Cómo usar Lynis para auditar tu servidor Rocky Linux y mejorar su seguridad

Actualizada:

Si has terminado de instalar tu servidor Rocky Linux, a lo mejor es el momento de pasar a hacer un poco de ‘hardening’. Básicamente, es el proceso por el cual intentamos que el servidor tenga los menos fallos de seguridad posibles y seguir unas cuantas recomendaciones para evitar que alguien mal intencionado visite tu servidor.

¿No es seguro Rocky Linux recién instalado? Sí, está basado en RHEL, y es una de las distribuciones que más tienen en cuenta la seguridad de sus usuarios, peor nunca está de más en cerrar algunas puertas que no necesitan estar abiertas. Y como no podemos revistar todo por nuestra cuenta, ahí es donde entra este magnífico programa, Lynis, uno de los mejor valorados en linuxsecurity.expert.

¿Qué es Lynis? Lynis es una herramienta de auditoría de seguridad Open Source totalmente gratuita y que está disponible en las repo de Rocky Linux 9. ¿Objetivo? Evaluar sistemas que ejecutan Linux y proporcionar sugerencias para instalar, configurar o corregir cualquier medida de seguridad. Y lo bueno que tiene es que tiene menos falsos positivos que otras herramientas como OpenSCAP, por ejemplo. ¿Cómo funciona? Debes ejecutar la app en tu sistema y en unos minutos tienes listo el informe y sus sugerencias. Si usas su plan de pago, te va a ayudar un poco más a solucionar los problemas, pero no es necesario que te des de alta. Puedes hacerlo tú mismo.

¿Y no es mejor OpenSCAP que hasta te ofrece remediar los problemas mediantes scripts automáticos? No. Porque esos scripts, si no analizas bien lo que van a hacer a tu sistema, se lo pueden cargar. De verdad. También vas a tener que ir problema a problema y analizar bien la solución para ver si se ajusta a tu sistema. No puedes ir a lo loco y aplicar los remedios propuestos. Y lo peor, es que da muchos falsos positivos, algo que no suele pasar con Lynis.

Vamos a instalar Lynis

Muy sencillo. Directamente, desde los repositorios de Rocky Linux 9, que es el sistema donde lo he probado yo.

sudo dnf install lynis

Y ya lo tienes en tu sistema. Ahora solo tienes que correr tu primer informe y ver que tal se porta tu sistema. En mi caso, creo recordar que empecé con unos 72 puntos y lo he subido a unos 87 puntos. A mi entender, cualquier valor entre 80 y 90 es un buen resultado en Lynis. Tampoco hay que volverse loco ejecutando todas las recomendaciones, que nos podemos cargar el sistema.

Ejecutamos nuestra primera auditoría de seguridad

El comando vuelve a ser muy sencillo. Vamos a chequear todo el sistema:

sudo lynis audit system

Pero aquí tienes todo el listado de opciones:

 Usage: lynis command [options]


  Command:

    audit
        audit system                  : Perform local security scan
        audit system remote <host>    : Remote security scan
        audit dockerfile <file>       : Analyze Dockerfile

    show
        show                          : Show all commands
        show version                  : Show Lynis version
        show help                     : Show help

    update
        update info                   : Show update details


  Options:

    Alternative system audit modes
    --forensics                       : Perform forensics on a running or mounted system
    --pentest                         : Non-privileged, show points of interest for pentesting

    Layout options
    --no-colors                       : Don't use colors in output
    --quiet (-q)                      : No output
    --reverse-colors                  : Optimize color display for light backgrounds
    --reverse-colours                 : Optimize colour display for light backgrounds

    Misc options
    --debug                           : Debug logging to screen
    --no-log                          : Don't create a log file
    --profile <profile>               : Scan the system with the given profile file
    --view-manpage (--man)            : View man page
    --verbose                         : Show more details on screen
    --version (-V)                    : Display version number and quit
    --wait                            : Wait between a set of tests
    --slow-warning <seconds>  : Threshold for slow test warning in seconds (default 10)

    Enterprise options
    --plugindir <path>                : Define path of available plugins
    --upload                          : Upload data to central node

    More options available. Run '/bin/lynis show options', or use the man page.
Informe de Lynis en servidor Rocky Linux 9.

En apenas unos minutos, tienes el listado de comprobaciones que ha realizado. todo se ve de manera muy visual. Está separado por secciones. El resultado puede ser OK, FOUND, NOT FOUND, DIFFERENT, ENABLED, DISABLED, NONE, YES, NO, WEAK, NOT ENABLED, FILES FOUND, ACTIVE, RUNNING, AUTO… hay muchos resultados al lado de cada prueba, pero lo importante es si ves ese resultado en verde, amarillo, rojo. Sí está en verde, todo correcto. Si está en amarillo, probablemente te va a dar alguna recomendación para solucionarlo. Si está en rojo, deberías revisarlo.

Y si te vas al final del informe que ha salido en pantalla, te vas a encontrar lo importante, si tienes algún Warning que debas corregir:

Great, no warnings, en el informe de Lynis en un servidor Rocky Linux.

Si ves Great, no warnings, las cosas han empezado bien. Pero, aun así, te va a dar unas cuantas recomendaciones después que puedes ir revisando. Ahora te digo cómo.

Si bajas un poco más al final del informe, verás tu puntuación y otros datos importante, como donde puedes encontrar el archivo del informe, normalmente en /var/log/lynis-report.dat.

Resultados y puntuación de Lynis en un servidor Rocky Linux 9.

¿Qué puedes hacer ahora? Puedes visualizar ese informe con:

cat /var/log/lynis-report.dat

Donde vas a poder más en detalle las cosas que ha revisado y sus posibles soluciones. Pero esto no ayuda mucho. Mejor hacer otra cosa. Podemos emplear el siguiente comando para ir comprobando una a una todas las recomendaciones y ver que nos aconseja el programa. Ya te adelanto que vas a tener que hacer uso de algún buscador para buscar las soluciones. O puedes intentar usar ChatGPT para entender un poco el problema.

Solucionamos algunos problemas del servidor con los consejos de Lynis

Una de las sus recomendaciones me dice: Check what deleted files are still in use and why. [LOGG-2190] https://cisofy.com/lynis/controls/LOGG-2190/. En la página web puedes leer con más detalle el problema. Pero puede usar este comando en la terminal también:

sudo lynis show details LOGG-2190

Y te puede dar algo como esto:

2024-08-05 14:15:19 Performing test ID LOGG-2190 (Checking for deleted files in use)
2024-08-05 14:15:19 Test: checking deleted files that are still in use
2024-08-05 14:15:20 Result: found one or more files which are deleted, but still in us
2024-08-05 14:15:20 Found deleted file: /var/tmp/#unnumeromuylargo (mariadbd)
2024-08-05 14:15:20 Suggestion: Check what deleted files are still in use and why. [test:LOGG-2190] [details:-] [solution:-]
2024-08-05 14:15:20 ====

Te dice que ha encontrado en tu sistema y una posible solución, borrar esos archivos. Como puedes ver son archivos temporales que al final el sistema va a terminar borrando. No hay que hacer nada.

Este es el proceso que deberías seguir analizando paso a paso cada punto. Lo que sí tienes que tener en cuenta es que Lynis va otorgando a algunos apartados más puntos que otros. Yo me centraría en:

Y me preocuparía menos de las secciones:

  • Boot and services > Running ‘systemd-analyze security’: los programas que dice que son inseguros, no lo son. Están actualizados a su última versión, pero sí es cierto que se puede mejorar los permisos del servicio, políticas de control de acceso o directivas de seguridad… A costa de que muchos de ellos dejen de funcionar bien en tu sistema. Es complicado saber qué cambios debes hacer, sobre todo en un servidor en producción. Lo importante es que esos paquetes, estén actualizados a su última versión.
  • File systems > Checking mount points. Esto solo lo deberías de tener en cuenta si tienes que pasar algún control de seguridad oficial. Ahora mismo, la mayoría de la gente monta su sistema Linux en un servidor con una partición donde se mete todo y otra partición SWAP. No se separa /home de /tmp o /var. Menuda tarea imaginarse cuanto debe ocupar cada partición.
  • También tendría cuidado si quieres cambiar los valores de umask en varias partes del sistema. Programas como WordPress pueden dejar de funcionar si lo haces más restrictivo, pasando de 022 a 027.
  • Software: firewalls > Checking for unused rules: claro que puede haber reglas sin usar. A lo mejor todavía nadie ha intentado entrar al servidor de esa manera.
  • Logging and files > Checking remote logging: es posible que no necesites mandar tus logs a otro servidor, aunque que te recomiendo que tengas copias de seguridad semanales de todos ellos.
  • Software: System tooling > Automation tooling: es posible que no necesites usar herramientas como Ansible.
  • Puedes revisar Harden compilers like restricting access to root user only [HRDN-7222] y analiza tu situación. Pueden dejar de funcionar una cuantas cosas. Suelen ser gcc o as.

¿Algunos problemas que he resuelto?

STRG-1840 – USB storage drivers y STRG-1846 – Firewire storage drivers: En un servidor no vamos a necesitarlos:

#Creamos archivo
sudo vi /etc/modprobe.d/quitamos-alm.conf

#Ponemos lo siguiente en ese archivo
# Deshabilitar almacenamiento USB
install usb-storage /bin/true

# Deshabilitar almacenamiento FireWire
install firewire-core /bin/true

#Guardamos con ESC y luego :wq y ENTER

Hay que reiniciar el sistema.

Quitamos protocolos de comunicación no necesarios como rds, sctp, dccp o tipc:

#Creamos archivo
sudo vi /etc/modprobe.d/quitamos-comu.conf

#Ponemos lo siguiente en ese archivo
install rds /bin/true
install sctp /bin/true
install dccp /bin/true
install tipc /bin/true

#Guardamos con ESC y luego :wq y ENTER

Hay que reiniciar el sistema.

Si has terminado de instalar y probar todo tu sistema, a lo mejor puedes deshabilitar las Core Dumps, que ofrecen mucha información:

#Editamos el archivo:
sudo /etc/security/limits.conf

#Ponemos:
* hard core 0
* soft core 0

#Guardamos con ESC y luego :wq y ENTER

Enable process accounting [ACCT-9622]: nunca está de más saber que hacen tus usuarios en el sistema:

sudo dnf install psacct
sudo systemctl enable psacct.service
sudo systemctl start psacct.service

Conclusión

Para terminar, ten en cuenta este comando:

sudo lynis audit system --tests HRDN-7222

Con el que vas a probar de forma individual, solo uno de los test. Por si quieres comprobar si lo has corregido bien o mal sin tener que revisar todo el sistema.

Ten en cuenta, que la seguridad de un servidor es un proceso siempre vivo. Que corrijas todos los problemas que te indica Lynis, no significa que no tengas que hacer nada más. La seguridad en un servidor se suele hacer por capas. Cuantas más tengas activas mejor.

Te puede interesar: Cómo poner en marcha un servidor Linux VPS en Linode (Akamai)

Referencias:


Descubre más desde algoentremanos.com

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Foto del autor

Ivan Benito

Apasionado de la lectura y los viajes, experto en tecnología e informática y fan de la privacidad online. Desde el año 2007 me he dedicado al SEO, a escribir y a crear páginas web con WordPress sobre todo tipo de temáticas. Si tienes alguna duda y necesitas ayuda... ¡Pregúntame!

Si tienes preguntas, quieres que hagamos una review de una app, programa o producto, simplemente mándanos un e-mail mediante nuestro formulario de contacto. Te contestaremos en el menor tiempo posible. ¡Muchas gracias y salU2! Algoentremanos realiza reviews de manera profesional y en muchas ocasiones recibimos compensación de las compañías cuyos productos revisamos. Probamos cada producto a fondo y otorgamos altas calificaciones solo a los mejores. La propiedad de Algoentremanos.com es independiente y las opiniones expresadas aquí son solo nuestras. Algunos enlaces del artículo son afiliados: pueden generar un beneficio a algoentremanos.com. Saber más.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.