Informe diario de tu Ubuntu con Logwatch

Con la herramienta Logwatch podemos recibir cada día en nuestro buzón de correo un resumen del análisis de los logs del servidor para saber qué ha pasado en la máquina.

Este tutorial ha sido creado en un VPS de Clouding.io. Puedes crear tu propio VPS desde 3€/mes.

Además, tienes la posibilidad de crear tu VPS con la imagen de WordPress en un clic.

COLABORACIÓN

Comenzaremos con la instalación de Logwatch

apt -y install logwatch

Y posteriormente crearemos la carpeta donde va a guardar todos los ficheros que necesita para operar.

mkdir /var/cache/logwatch/

Copiaremos la plantilla de configuración para posteriormente configurar a nuestro gusto.

cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/
vim /etc/logwatch/conf/logwatch.conf
LogDir = /var/log
TmpDir = /var/cache/logwatch
Output = mail
Format = text
Encode = none
#CharEncoding = ""
MailTo = wordpress@example.com
MailFrom = logwatch@example.com
#Filename = /tmp/logwatch
Archives = yes
Range = yesterday
Detail = 10
Service = all
mailer = "/usr/sbin/sendmail -t"

Una vez hayamos acabado podemos ejecutar el comando para ver los resultados por pantalla.

logwatch --output=stdout --detail high --format text

Si queremos programar el envío diario, podemos configurar un cron para ello, por ejemplo, cada día a las 8 de la mañana.

crontab -e
0 1 * * * rm -rf /var/cache/logwatch/* && /sbin/logwatch

En el siguiente resultado se puede ver, como ejemplo, un montón de ataques contra el servidor:

 ################### Logwatch 7.5.2 (07/22/19) ####################
        Processing Initiated: Sun Jul 11 08:34:25 2021
        Date Range Processed: yesterday
                              ( 2021-Jul-10 )
                              Period is day.
        Detail Level of Output: 10
        Type of Output/Format: stdout / text
        Logfiles for Host: example
 ##################################################################

 --------------------- Cron Begin ------------------------

 Commands Run:
    User root:
          cd / && run-parts --report /etc/cron.hourly: 24 Time(s)
          test -x /etc/cron.daily/popularity-contest && /etc/cron.daily/popularity-contest --crond: 1 Time(s)
       test -e /run/systemd/system || SERVICE_MODE=1 /sbin/e2scrub_all -A -r: 1 Time(s)
       test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ): 1 Time(s)

 ---------------------- Cron End -------------------------


 --------------------- pam_unix Begin ------------------------

 cron:
    Sessions Opened:
       root: 27 Time(s)

 sshd:
    Authentication Failures:
       root (221.131.165.23): 486 Time(s) 
       www-data (81.70.149.29): 1 Time(s)
    Invalid Users:
       Unknown Account: 2002 Time(s)
    Sessions Opened:
       root: 2 Time(s)

 systemd-user:
    Sessions Opened:
       root: 2 Time(s)


 ---------------------- pam_unix End -------------------------


 --------------------- SSHD Begin ------------------------


 Network Read Write Errors: 17

 Negotiation failed:
    no matching host key type found
       143.137.166.137: 3 Times
         ecdsa-sha2-nistp384: 1 Time
         ecdsa-sha2-nistp521: 1 Time
         ssh-dss: 1 Time
    no matching key exchange method found
       105.203.195.68: 2 Times
         diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1: 2 Times
       141.98.10.203: 25 Times
         diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1: 25 Times

 Disconnecting after too many authentication failures for user:
    root : 2 Times

 Failed logins from:
    1.14.195.32: 50 Times
       root/password: 50 Times
    1.116.101.225: 38 Times
       root/password: 38 Times
    1.116.237.80: 70 Times
       root/password: 70 Times 

 Illegal users from:
    1.116.101.225: 1 Time
       minist123: 1 Time
    1.117.147.110: 29 Times
       postgres: 2 Times
       user: 2 Times
       123456: 1 Time
       admin: 1 Time
       argo: 1 Time
       bot2: 1 Time
       cent: 1 Time
       chandra: 1 Time
       deploy: 1 Time
       ekp: 1 Time
       hadoop: 1 Time
       info: 1 Time
       jessica: 1 Time
       joao: 1 Time
       maria: 1 Time
       minecraft: 1 Time
       odoo: 1 Time
       root123: 1 Time
       rosa: 1 Time
       scs: 1 Time
       sdtdserver: 1 Time
       starbound: 1 Time
       test_ftp: 1 Time
       usuario2: 1 Time
       webuser: 1 Time
       wei: 1 Time
       zhanglei: 1 Time

 Users logging in through sshd:
    root:
       185.140.212.136: 2 Times

 Received disconnect:
     [preauth]
       221.131.165.23 : 162 Time(s)
       221.131.165.56 : 83 Time(s)
    Bye Bye [preauth]
       1.116.101.225 : 39 Time(s)
       1.116.237.80 : 70 Time(s)
       1.117.147.110 : 31 Time(s) 
    disconnected by user [preauth]
       34.136.86.240 : 14 Time(s)

 **Unmatched Entries**
 error: Protocol major versions differ: 2 vs. 1 : 2 Times
 error: kex protocol error: type 30 seq 1 [preauth] : 2 Times
 error: kex_exchange_identification: Connection closed by remote host : 48 Times
 error: kex_exchange_identification: banner line contains invalid characters : 7 Times
 error: kex_exchange_identification: client sent invalid protocol identifier "" : 1 Time
 error: kex_exchange_identification: client sent invalid protocol identifier "\214#" : 1 Time
 error: kex_exchange_identification: read: Connection reset by peer : 13 Times
 error: send_error: write: Connection reset by peer : 1 Time
 message repeated 2 times: [ Failed password for root from 221.131.165.23 port 10780 ssh2] : 1 Time
 message repeated 5 times: [ Failed password for root from 34.136.86.240 port 60426 ssh2] : 1 Time

 ---------------------- SSHD End -------------------------


 --------------------- Disk Space Begin ------------------------

 Filesystem      Size  Used Avail Use% Mounted on
 /dev/sda1       9.8G  5.7G  3.8G  61% /


 ---------------------- Disk Space End -------------------------


 ###################### Logwatch End #########################

Sobre este documento

Este documento está regulado por la licencia EUPL v1.2, publicado en WP SysAdmin y creado por Javier Casares. Por favor, si utilizas este contenido en tu sitio web, tu presentación o cualquier material que distribuyas, recuerda hacer una mención a este sitio o a su autor, y teniendo que poner el material que crees bajo licencia EUPL.