¿Cómo deshabilitar las entradas de la lista crontab en el registro cron?

¿Cómo deshabilitar las entradas de la lista crontab en el registro cron?

Tengo un script en el servidor que se ejecuta cada pocos minutos y, entre otras cosas, comprueba si se han inyectado algunas entradas crontab maliciosas. Para hacer esto, verifico los crontabs de todos los usuarios, lo cual funciona bien, pero mi /var/log/cronarchivo se llena con entradas de todos los listados de crontab, por lo que cada vez que ejecuto el script registrará todas las listas de crontab de esta manera:

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)
.....

por lo que llena el archivo de registro innecesariamente. Jugué con diferentes selectores, pero parece que al elegir cron.infomuestra toda la información, mientras que cron.noticeno muestra cuándo se editó ni ejecutó crontab, lo cual nuevamente me gusta en mis registros.

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

cron.*parece ser lo mismo que cron.info ¿Alguna idea de cómo excluir las entradas "LISTA"? así /var/log/cronse vería así:

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)

Respuesta1

Prueba con cron.none. Si utiliza *un asterisco ( * ), coincide con cero o más ocurrencias.

Ahora puedes modificar la regla para mover el registro a otro archivo./path/to/another/file

ACTUALIZAR

Operaciones de comparación

Actualmente se admiten las siguientes operaciones de comparación:

contiene

Comprueba si la cadena proporcionada en valor está contenida en la propiedad. Debe haber una coincidencia exacta; no se admiten comodines.

es igual

Compara la cadena de "valor" proporcionada y el contenido de la propiedad. Estos dos valores deben ser exactamente iguales para que coincidan. La diferencia con contiene es que contiene busca el valor en cualquier lugar dentro del valor de la propiedad, mientras que todos los caracteres deben ser idénticos para isequal. Como tal, isequal es más útil para campos como syslogtag o FROMHOST, donde probablemente conozcas el contenido exacto.

comienza con

Comprueba si el valor se encuentra exactamente al comienzo del valor de la propiedad. Por ejemplo, si busca "val" con

:msg, startswith, "val"

Será una coincidencia si el mensaje contiene "los valores están en este mensaje", pero no coincidirá si el mensaje contiene "Hay valores en este mensaje" (en el último caso, "contiene" coincidiría). Tenga en cuenta que "empieza con" es mucho más rápido que las expresiones regulares. Entonces, incluso una vez implementados, puede tener mucho sentido (en términos de rendimiento) usar "empieza con".

expresión regular

Compara la propiedad con la expresión regular POSIX BRE proporcionada.

ereregex

Compara la propiedad con la expresión regular POSIX ERE proporcionada.

Puede utilizar el carácter bang (!) inmediatamente delante de una operación de comparación; el resultado de esta operación se niega. Por ejemplo, si msgcontiene "Este es un mensaje informativo", el siguiente ejemplo no coincidirá:

:msg, contains, "error"

pero este coincide:

:msg, !contains, "error"

Usar la negación puede resultar útil si desea realizar algún procesamiento genérico pero excluir algunos eventos específicos. Puedes usar la acción de descarte junto con eso. Una muestra sería:

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

¡No pases por alto la tilde en la línea 2! En este ejemplo, todos los mensajes se escriben en el archivo allmsgs-incluido-informational.log. Luego, se descartan todos los mensajes que contengan la cadena "informativo". Eso significa que las líneas del archivo de configuración debajo de la "línea de descarte" (número 2 en nuestro ejemplo) no se aplicarán a este mensaje. Luego, todas las líneas restantes también se escribirán en el archivo allmsgs-but-informational.log.

Respuesta2

Encontré una solución con filtro, para cualquiera que esté interesado. Inserté una declaración arriba de cron.info para eliminar mensajes no deseados. entonces mi solución se ve así:

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

ahora se descartarán todas las líneas con entradas con "(raíz) LISTA".

información relacionada