Una solución general simple y efectiva es usar logcheck .
sudo apt-get install logcheck
[edit /etc/logcheck/logcheck.conf to your liking]
logcheck escanea periódicamente todos los registros de manera eficiente (comenzando donde se quedó la última vez), filtra lo que ve para eliminar cualquier cosa que se considere normal y, opcionalmente, envía alertas por correo electrónico con cualquier cosa que no coincida con los patrones normales / de rutina.
La idea principal es estar atento a la aparición de entradas serias en sus archivos de registro, todas ellas, todo el tiempo, para que no tenga que hacerlo.
logcheck es altamente configurable (man logcheck
). Puede configurar todo, incluyendo:
- frecuencia de controles
- qué archivos de registro se verifican
- lo que se considera normal vs no
- dónde enviar las alertas por correo electrónico (eventos anormales) a
y más. Sus patrones de ignorar (normal / rutina) residen en varios archivos en /etc/logcheck/ignore.d.* y puede personalizarlos según sus necesidades; principalmente es posible que desee agregar sus propios patrones para ignorar. El paquete predeterminado de Ubuntu viene con un extenso conjunto de archivos con patrones de ignorar para muchos servicios, por lo que no hay mucho que agregar a menos que su sistema sea inusual en lo que se ejecuta. Hay 3 conjuntos de perfiles de archivo de ignorar preconfigurados: ignore.d.workstation , ignore.d.server e ignore.d.paranoid que puede elegir.
La idea principal detrás de logcheck es que los diversos servicios que se ejecutan en un sistema ya registran eventos anormales. Por ejemplo, sshd o pam ya registran fallas de autenticación. Entonces, los principales componentes que faltan son:
- filtrando lo que es normal
- El servicio de alerta
Logcheck proporciona los dos en un paquete conveniente. Puede combinar logcheck con cualquier otro registro. Por ejemplo, iptables se puede configurar para registrar syslog cualquier intento de conexión de red que no esté explícitamente permitido al agregar las reglas:
iptables -A input -j LOG
iptables -A input -j DROP
inmediatamente después de todas las reglas de permiso.
Me parece que logcheck es mucho más útil que logwatch (sugerido en otras respuestas) porque viene preempacado con una gran cantidad de reglas para ignorar lo que se considera actividad normal. El resultado es una relación señal / ruido mucho mayor en las alertas que envía por correo electrónico. YMMV.
Otra ventaja de logcheck es que es ortogonal a cualquier servicio que registre, por lo que no hay duplicación de funciones. Cada vez que agrega un nuevo servicio que se utiliza syslog
para registrar eventos, anormales o no, en cualquier archivo debajo /var/log
, comienza a recibir alertas automáticamente.
CÓMO:
Como logcheck
ya viene preconfigurado, dos líneas en la parte superior de esta respuesta cubren esencialmente todo lo que necesita para comenzar. Simplemente instálelo y vaya al archivo de configuración superior:
/etc/logcheck/logcheck.conf
para cambiar su dirección de correo electrónicologcheck
correo electrónico para que le envíen alertas correo electrónico.
Aquí hay una referencia amistosa sobre el segundo paso con más detalle . Dado que Ubuntu se basa en Debian, estas instrucciones también deberían funcionar en Ubuntu.
Aquí hay otra buena referencia .
Una vez que instale, comienza el proceso de mejora continua. Con el tiempo, refina sus reglas para ignorar todo lo que ya sabe y siente que no debería ser motivo de preocupación. Este proceso de refinamiento es tan simple como agregar líneas de texto a un archivo en su editor de texto favorito.
Cada línea en un archivo de ignorar es una expresión regular extendida (ver man 7 regex
), pero puede usar cadenas simples siempre que coincidan con la línea de registro que desea ignorar. Sólo recuerde que los personajes como *
, ?
'+', []
, ()
son especiales en una expresión regular, por lo que si en realidad aparecen en las líneas de registro, que tendría que escapar de ellos con una barra invertida\
en el archivos de ignorar.
En otras palabras: si recibe una alerta que no desea recibir, mire la línea de registro que se le envió por correo electrónico y agregue un patrón que coincida, como una línea a cualquier archivo de ignoración que elija. Sugiero usar
/etc/logcheck/ignore.d.<yourloglevel>/my-ignores
como su archivo personal de ignorar. Dónde <yourloglevel>
es uno de paranoid
, server
o
workstation
(como ya seleccionó en el archivo de configuración principal:) /etc/logcheck/logcheck.conf
. Mire los ejemplos en otros archivos de ignorar para ver cómo dar cuenta del texto que cambia todo el tiempo como ID de proceso o marcas de tiempo. Hay muchos ejemplos existentes para aprender.
Un último consejo: logcheck
viene con una pequeña utilidad útil llamada logcheck-test
que es muy útil para probar nuevas reglas. man logcheck-test
para detalles.