Como desabilitar as entradas da lista crontab no log do cron?

Como desabilitar as entradas da lista crontab no log do cron?

Eu tenho um script no servidor que é executado a cada poucos minutos e, entre outras coisas, verifica se algumas entradas maliciosas do crontab foram injetadas. Para fazer isso, verifico os crontabs de todos os usuários, o que funciona muito bem, mas meu /var/log/cronarquivo é preenchido com entradas de todas as listagens de crontab, então toda vez que eu executo o script, ele registra todas as listas de crontab assim:

Nov 30 17:16:02 myserv crontab[348610]: (root) LIST (root)
Nov 30 17:16:02 myserv crontab[348611]: (root) LIST (bin)
Nov 30 17:16:02 myserv crontab[348612]: (root) LIST (daemon)
Nov 30 17:16:02 myserv crontab[348613]: (root) LIST (adm)
Nov 30 17:16:02 myserv crontab[348614]: (root) LIST (lp)
Nov 30 17:16:02 myserv crontab[348615]: (root) LIST (sync)
Nov 30 17:16:02 myserv crontab[348616]: (root) LIST (shutdown)
Nov 30 17:16:02 myserv crontab[348617]: (root) LIST (halt)
Nov 30 17:16:02 myserv crontab[348618]: (root) LIST (mail)
Nov 30 17:16:02 myserv crontab[348619]: (root) LIST (operator)
Nov 30 17:16:02 myserv crontab[348620]: (root) LIST (games)
Nov 30 17:16:02 myserv crontab[348621]: (root) LIST (ftp)
Nov 30 17:16:02 myserv crontab[348622]: (root) LIST (smb)
Nov 30 17:16:02 myserv crontab[348623]: (root) LIST (named)
Nov 30 17:16:02 myserv crontab[348624]: (root) LIST (postgres)
Nov 30 17:16:02 myserv crontab[348625]: (root) LIST (mysql)
.....

então ele preenche o arquivo de log desnecessariamente. Joguei com diferentes seletores, mas parece que ao escolher cron.infoele mostra todas as informações, enquanto cron.noticenão mostra quando o crontab foi editado ou executado, o que novamente gosto em meus logs.

# Log cron stuff
cron.*                                                  /var/log/cron

cron.*parece ser o mesmo que cron.info Alguma idéia de como excluir entradas "LIST"? então /var/log/cronficaria assim:

Nov 30 17:24:02 mysrv CROND[349831]: (root) CMDEND (/etc/cron.b/check nout >/dev/null 2>&1)
Nov 30 17:28:01 mysrv CROND[350781]: (root) CMD (/etc/cron.b/check nout >/dev/null 2>&1)

Responder1

Experimente com cron.none. Se você usar *um asterisco ( * ) corresponde a zero ou mais ocorrências.

Agora você pode modificar a regra para mover o log para outro arquivo/path/to/another/file

ATUALIZAR

Comparar-Operações

As seguintes operações de comparação são atualmente suportadas:

contém

Verifica se a string fornecida em value está contida na propriedade. Deve haver uma correspondência exata, curingas não são suportados.

é igual

Compara a string de “valor” fornecida e o conteúdo da propriedade. Esses dois valores devem ser exatamente iguais para corresponder. A diferença para contains é que contains procura o valor em qualquer lugar dentro do valor da propriedade, enquanto todos os caracteres devem ser idênticos para isequal. Como tal, isequal é mais útil para campos como syslogtag ou FROMHOST, onde você provavelmente conhece o conteúdo exato.

começa com

Verifica se o valor é encontrado exatamente no início do valor da propriedade. Por exemplo, se você pesquisar “val” com

:msg, startswith, "val"

será uma correspondência se a mensagem contiver “valores estão nesta mensagem”, mas não corresponderá se a mensagem contiver “Existem valores nesta mensagem” (no último caso, “contém” corresponderia). Observe que “startswith” é muito mais rápido que expressões regulares. Portanto, mesmo depois de implementados, pode fazer muito sentido (em termos de desempenho) usar “startswith”.

expressão regular

Compara a propriedade com a expressão regular POSIX BRE fornecida.

ereregex

Compara a propriedade com a expressão regular POSIX ERE fornecida.

Você pode usar o caractere bang (!) imediatamente antes de uma operação de comparação, o resultado desta operação será negado. Por exemplo, se msgcontiver “Esta é uma mensagem informativa”, o exemplo a seguir não corresponderá:

:msg, contains, "error"

mas este corresponde:

:msg, !contains, "error"

Usar a negação pode ser útil se você quiser fazer algum processamento genérico, mas excluir alguns eventos específicos. Você pode usar a ação de descarte em conjunto com isso. Uma amostra seria:

*.* /var/log/allmsgs-including-informational.log
:msg, contains, "informational"  ~
*.* /var/log/allmsgs-but-informational.log

Não negligencie o til na linha 2! Neste exemplo, todas as mensagens são gravadas no arquivo allmsgs-incluindo-informational.log. Então, todas as mensagens contendo a string “informacional” são descartadas. Isso significa que as linhas do arquivo de configuração abaixo da “linha de descarte” (número 2 em nosso exemplo) não serão aplicadas a esta mensagem. Então, todas as linhas restantes também serão gravadas no arquivo allmsgs-but-informational.log.

Responder2

Encontrei solução com filtro, para quem tiver interesse. Inseri uma declaração acima do cron.info, para remover mensagens indesejadas. então minha solução se parece com:

:msg, contains, "(root) LIST"                           ~
cron.*                                                  /var/log/cron

agora todas as linhas com entradas com "(root) LIST" serão descartadas.

informação relacionada