23 marzo 2011

Separar el log de Ssh

Días atrás mostré como Securizar SSH y deje pendiente como separar el log de ssh. Esto es bastante cómodo si tienes ssh a la vista y quieres revisar sus eventos, ataques, ... evitando el "ruido" y los eventos de otros servicios.

Esto se puede aplicar no solo para ssh sino para cualquier servicio que deseemos. Los cambios los realizaré en un Ubuntu Maverik pero es transcribible a cualquier distribución o unix que use rsyslogd. Lo primero es decirle que cuando encuentre una línea de log que contenga ssh nos lo escriba en un archivo aparte. Creamos el siguiente archivo y escribimos el siguiente contenido

sudo vim /etc/rsyslog.d/49-ssh.conf

:msg,contains,"ssh" /var/log/ssh.log

Ahora reiniciamos rsyslog y ya tenemos nuestros logs de ssh en /var/log/ssh.log

sudo reload rsyslog

Lo que nos queda es crear la rotación de logs para que en cada tiempo indicado cree un backup y vacie el archivo, guardando tantos backups como queramos. Para ello configuraremos logrotate, que es el encargado de estas funciones. Creamos el siguiente archivo con este contenido

sudo vim /etc/logrotate.d/ssh

/var/log/ssh.log
{
        rotate 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        postrotate
                reload rsyslog >/dev/null 2>&1 || true
        endscript
}

Con lo que conseguimos que rote cada semana, conserve 4 backups, los comprima dejando uno sin comprimir y recargue rsyslog después de cada rotación. Para más información de todas la opciones disponibles de logrotate podemos consultar

man logrotate

No hay comentarios: