Programación

Configurar servidor VPS desde cero II: uso de rkhunter

Configurar servidor VPS desde cero II: uso de rkhunter
5 (100%) 1 voto[s]

En el post anterior de la serie «Configurar servidor VPS desde cero«, instalamos rkhunter desde los repositorios. Esta versión es la 1.4.2, mientras que la última versión es la 1.4.6

Esto genera un error al actualizar la base de datos, si ejecutamos un:

rkhunter --update

nos mostrará un mensaje de error.

Mi teoría, es que, aunque no he podido confirmarlo en ningún sitio oficial, en alguna de las ultimas versiones han debido de cambiar las rutas de los ficheros de la base de datos y debido a eso no se han podido descargar:

rkhunter --update 
[ Rootkit Hunter version 1.4.2 ]

Checking rkhunter data files...
  Checking file mirrors.dat         [ Skipped ]
  Checking file programs_bad.dat    [ Update failed ]
  Checking file backdoorports.dat   [ Update failed ]
  Checking file suspscan.dat        [ Update failed ]
  Checking file i18n versions       [ Update failed ]

Please check the log file (/var/log/rkhunter.log)

Si queremos tener la ultima version (1.4.6), al no encontrar un repositorio para Debian Jessie (8.6)  con esta versión, explicare la forma de instalar el programa de forma manual.

Instalar rkhunter de forma manual

Lo primero que debemos hacer es descargar el programa de la ultima version (1.4.6) desde la pagina oficial de rkhunter y lo descomprimimos:

wget https://sourceforge.net/projects/rkhunter/files/rkhunter/1.4.6/rkhunter-1.4.6.tar.gz/download
mv download rkhunter-1.4.6.tar.gz
tar -xvzf rkhunter-1.4.6.tar.gz

Ahora solo tenemos que ejecutar el script de instalación:

cd rkhunter-1.4.6
./installer.sh --install

Si todo ha salido correctamente, nos mostrara el siguiente mensaje:

Checking system for:
 Rootkit Hunter installer files: found
 A web file download command: wget found
Starting installation:
 Checking installation directory "/usr/local": it exists and is writable.
 Checking installation directories:
  Directory /usr/local/share/doc/rkhunter-1.4.6: creating: OK
  Directory /usr/local/share/man/man8: exists and is writable.
  Directory /etc: exists and is writable.
  Directory /usr/local/bin: exists and is writable.
  Directory /usr/local/lib: exists and is writable.
  Directory /var/lib: exists and is writable.
  Directory /usr/local/lib/rkhunter/scripts: creating: OK
  Directory /var/lib/rkhunter/db: creating: OK
  Directory /var/lib/rkhunter/tmp: creating: OK
  Directory /var/lib/rkhunter/db/i18n: creating: OK
  Directory /var/lib/rkhunter/db/signatures: creating: OK
 Installing check_modules.pl: OK
 Installing filehashsha.pl: OK
 Installing stat.pl: OK
 Installing readlink.sh: OK
 Installing backdoorports.dat: OK
 Installing mirrors.dat: OK
 Installing programs_bad.dat: OK
 Installing suspscan.dat: OK
 Installing rkhunter.8: OK
 Installing ACKNOWLEDGMENTS: OK
 Installing CHANGELOG: OK
 Installing FAQ: OK
 Installing LICENSE: OK
 Installing README: OK
 Installing language support files: OK
 Installing ClamAV signatures: OK
 Installing rkhunter: OK
 Installing rkhunter.conf: OK
Installation complete

 

Ahora que ya tenemos instalada la última versión, pasaremos a la configuración y uso del rkhunter.

Configuración y uso del rkhunter

Actualización de las bases de datos

Lo primero es actualizar la base de datos de rootkits. Es sencillo, desde el terminal ejecutamos:

rkhunter --update

Nos descargara la ultima versión de las bases de datos y las actualizará en caso de estar anticuadas.

Primer chequeo del vps

Después de actualizar las bases de datos, debemos obtener una imagen del estado actual del vps. Esto es necesario para fijar un estado correcto de nuestro sistema sobre el que comparar en futuros análisis de rkhunter.

Ejecutamos desde la línea de comandos:

rkhunter --propupd

Cómo ejecutar el chequeo diario

En el dia a dia, para realizar el chequeo del vps, deberemos escribir:

rkhunter -c --sk

El parámetro --sk evita el tener que estar pulsando la tecla Intro cada pantalla de resultados. De esta manera realiza el chequeo completo sin necesidad de intervención del usuario.

Nos generará un fichero de log en /var/log/rkhunter.log con el resultado del chequeo. Tenemos que tener en cuenta que hay posibilidad que rkhunter nos reporte falsos positivos.

System checks summary
=====================

File properties checks...
    Required commands check failed
    Files checked: 150
    Suspect files: 5

Rootkit checks...
    Rootkits checked : 497
    Possible rootkits: 0

Applications checks...
    All checks skipped

The system checks took: 4 minutes and 10 seconds

All results have been written to the log file: /var/log/rkhunter.log

One or more warnings have been found while checking the system.
Please check the log file (/var/log/rkhunter.log)

Enviar el chequeo de rkhunter al correo electrónico

Si queremos recibir el resultado del chequeo en nuestro correo electrónico en caso de encontrar algún aviso, podemos hacerlo de manera sencilla.

Editamos el fichero /etc/rkhunter.conf, y descomentamos la línea MAIL-ON-WARNING, añadiendo la dirección de correo electrónico donde queremos recibir el resumen del chequeo.

MAIL-ON-WARNING=micorreo@este.es

Programar el chequeo diario

Podemos programar una tarea diaria en cron para actualizar la base de datos del rkhunter, chequear el vps y que nos envíe el resultado por correo electrónico.

Creamos un script con permisos de ejecución con este contenido:

#!/bin/sh
(
/usr/local/bin/rkhunter --versioncheck
/usr/local/bin/rkhunter --update
/usr/local/bin/rkhunter --cronjob \
--report-warnings-only
) | /usr/bin/mail –s 'Resultado Rkhunter' micorreo@este.es

donde tenemos que cambiar la dirección de correo de ejemplo (micorreo@este.es) por la dirección donde queremos recibir el resultado de los chequeos.

Ahora abrimos el cron como usuario root

crontab -e

Y añadimos la tarea del rkhunter para actualizar, chequear y recibir los resultados por correo electrónico:

30 03 * * * /root/rkhunter.sh

Nos ejecutara el chequeo cada dia a las 3:30 de la madrugada.

Resolución de problemas

A continuación incluyo una serie de mensajes de error que me he encontrado al ejecutar rkhunter, por si a algún lector se encuentra con el mismo problema, pueda arreglarlo de manera rápida y sencilla:

Invalid WEB_CMD configuration option: Relative pathname: «/bin/false»

Si al ejecutar rkhunter nos muestra el siguiente mensaje de error:

Invalid WEB_CMD configuration option: Relative pathname: "/bin/false"

Editamos el fichero /etc/rkhunter.conf y comentamos la línea que contiene el texto:

WEB_CMD="/bin/false"

Dejándola de la siguiente forma:

#WEB_CMD="/bin/false"

Warning: Download of ‘programs_bad.dat’ failed: Unable to determine the latest version number

rkhunter --update
[ Rootkit Hunter version 1.4.2 ]

Checking rkhunter data files...
  Checking file mirrors.dat              [ Skipped ]
  Checking file programs_bad.dat         [ Update failed ]
  Checking file backdoorports.dat        [ Update failed ]
  Checking file suspscan.dat             [ Update failed ]
  Checking file i18n versions            [ Update failed ]

Please check the log file (/var/log/rkhunter.log)

La única solución que he encontrado es actualizar a la ultima version (1.4.6) de forma manual como explico al principio del post.

Creo que la causa está en que entre esta version descarga desde los repositorios (1.4.2) y la ultima (1.4.6) han cambiado la ruta de los ficheros de base de datos en el servidor de actualizaciones de firmas de rkhunter y por eso no los puede descargar a nuestro vps.

Invalid SCRIPTWHITELIST configuration option: Non-existent pathname: /usr/bin/lwp-request

Editamos el fichero /etc/rkhunter.conf, y comentamos la línea:

SCRIPTWHITELIST=/usr/bin/lwp-request

Dejándola de esta manera:

#SCRIPTWHITELIST=/usr/bin/lwp-request

Con este cambio ya debería arreglarse el problema y podremos ejecutar rkhunter sin ningún mensaje de error.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *