Como Hacer una Auditoria de Seguridad en GNU/Linux con Lynis

Muy buenas, en este post te hablaré de Lynis, una herramienta de auditoria probablemente no muy conocida entre el grueso de usuarios, pero que te puede resultar muy útil para saber, o por lo menos tener una idea aproximada, del nivel de protección o hardening de tu sistema.

Para hacer el tutorial un poco más entretenido y práctico, realizaré el test en una instalación nueva de Ubuntu 18.04 LTS, que he tomado como referencia (aunque el resultado no debería variar mucho en otras distros como Debian o Linux Mint). De este modo podrás ver, por un lado, la puntuación obtenida en la instalación por defecto, y luego como consigo mejorarla.

Tabla de contenidos:

  1. Qué es Lynis y como funciona
  2. Como descargar e instalar Lynis
  3. Haz una auditoria de tu sistema
  4. Análisis de los resultados
  5. Algunas recomendaciones para mejorar la puntuación
  6. Conclusiones

Que es Lynis y Como Funciona

Lynis es una herramienta de auditoria de sistemas de software libre y código abierto, desarrollada y ofrecida por Cisofy. Puede correr en la gran mayoría de sistemas operativos basados en Unix, como GNU/Linux, macOS, OpenBSD y FreeBSD, entre otros.

Aunque dispone de muchas opciones de análisis (incluso se puede complementar con plugins), el funcionamiento base es el de analizar una serie de aspectos del sistema y comprobar si la configuración es la correcta.

Antes que nada es importante aclarar que se trata de un análisis general, que se encarga de analizar parámetros muy dispares entre si. De hecho, es interesante porqué te permite entender muy bien como la seguridad en GNU/Linux (y en cualquier sistema), no depende en absoluto de una sola herremienta ni configuración, sino que es una suma de muchísimos factores.

Al final, en base a los resultados obtenidos, te ofrecerá una puntuación orientativa sobre 100, lo que ellos denominan el hardening index, junto con un buen registro de todos los Warnings y las medidas correctivas que te sugiere aplicar. Pero de esto ya hablamos luego al final del examen.

Dependiendo del contexto en el que te encuentres, habrá una serie de puntos que, o directamente no aplicarán, o bien no serán suficientemente importantes como para tenerlos en cuenta, por lo que el propio Lynis ya te recomiende que deshabilites los exámenes que no apliquen en tu caso, para que la puntuación sea más acertada.

Diferencias Entre Lynis y Nessus

En este sentido, el enfoque es algo diferente a Nessus, pues mientras el segundo es más un analizador de vulnerabilidades, Lynis no se centra tanto en esto (si bien, de pasada, puede llegar a proponer medidas para corregir la existencia de ellas) sino más bien en auditar diferentes aspectos del sistema, detectando configuraciones inadecuadas y proponiendo medidas correctivas.

Como Descargar e Instalar Lynis

Dispone de una versión completamente gratuita pensada para uso particular, así como una versión de pago, con la misma funcionalidad pero un modo diferente de utilizarla, pues complementa el análisis en si con un conjunto de dashboards en el que puedes ver mucho mejor representados los diferentes parámetros.

Si optas por la versión gratuita de Lynis (que es el objeto de este post), tienes dos opciones a la hora de instalarlo en tu sistema. Por un lado, en distribuciones GNU/Linux como Debian y derivados, lo mas probable es que los paquetes necesarios se encuentren en los repositorios oficiales.

Instalación Desde los Repositorios

Está es seguramente la opción más fácil y rápida. Si estás en Ubuntu, Debian o Linux Mint, tan solo necesitas abrir una ventana de terminal e instalar el paquete lynis mediante un simple y rápido apt install. Aquí tienes el comando.

sudo apt install lynis

Ten en cuenta que si lo instalas desde los repositorios oficiales, probablemente no habrás obtenido la versión de Lynis más reciente, y a la hora de ejecutar el análisis el mismo programa te advertirá de ello.

Instalación Desde la Web: Lynis Free o Enterprise

Si por el contrario quieres instalar tu mismo la versión más reciente de Lynis, entonces lo más recomendable es descargar el paquete desde la web oficial. A continuación te pongo los enlaces de descarga tanto para la versión gratuita como para la de pago.

Haz una Auditoria Completa de tu Sistema

Una vez instalado, ya estarás en disposición de realizar una primera auditoria completa de tu sistema. Para ofrecerte una referencia, he realizado este primer análisis en una instalación limpia de Ubuntu 18.04, con la configuración inicial por defecto, es decir que no he instalado nada (aparte del propio Lynis, claro), ni he aplicado ninguna configuración propia.

Si lo haces así, podrás establecer una comparación de resultados antes y después de aplicar algunas de las medidas que te propondré luego para mejorar el resultado. Para realizar una primera auditoria, tan solo debes teclear lo siguiente en una ventana de terminal.

sudo lynis audit system

El escaneo completo consta de varias partes entre las cuales tendrás que ir pulsando Intro manualmente (aunque más adelante te explico como configurarlo para que no pida esto) para indicar que quieres pasar a la siguiente.

A continuación te muestro un resumen (en construcción) de las diferentes fases del análisis y que se tiene en cuenta en cada una de ellas. Puede ser que te resulte algo extenso e innecesario, pero he creído interesante profundizar algo mas en este punto (puedes ir al apartado siguiente aquí).

System Tools, Debian Tests

La primera parte hace una comprobación de las herramientas disponibles y posteriormente empieza los denominados Debian Tests, que son una serie de comprobaciones propias de distros del entorno de Debian, entre las cuales destacaría las siguientes:

  • Sistema de archivos. Si se implementa cifrado en el disco duro. Esto incluye tanto el cifrado dm-crypt+ LUKS, que funciona a nivel de bloque, como el cifrado eCryptfs, que funciona a nivel de sistema de archivos. Es posible que te indique un Warning en este sentido si no dispones de ninguno de ellos. Más adelante te hablo de ellos.
  • Software. Si están instaladas herramientas de chequeo como apt-listbugs, apt-listchanges, checkrestart, debsecan, etc. Probablemente te indicará un Warning, pues generalmente no vienen instaladas por defecto.

Boot and Services

Hace una serie de comprobaciones relacionadas con el arranque del sistema y otros servicios relacionados con él. Entre otras cosas, destacaría lo siguiente:

  • GRUB2 con protección con contraseña. La mayoría de distros más recientes ya suelen incorporar GRUB2 como sustituto de GRUB. Lo que hay que habilitar expresamente es la protección con password. En este caso probablemente te indicará un Warning, a no ser que lo hayas habilitado expresamente.
  • Systemctl. Hace un comprobación de los servicios que están corriendo, así como de los servicios habilitados en el arranque del sistema.

Kernel

Hace una serie de comprobaciones básicas más relacionadas con el entorno del kernel. Podemos destacar las siguientes:

  • Nivel de ejecución por defecto o run level en el que opera el núcleo. Si el sistema arranca en un entorno gráfico y en modo multiusuario, probablemente el nivel de ejecución será de 5.
  • Soporte NX/PAE. La mayoría de CPU soportan por defecto la funcionalidad PAE del Kernel. NX es un mecanismo de protección parecido al DEP en Windows, que también suele estar soportado siempre.
  • Versión del Kernel. Imagino que se refiere a si dispones de una versión actual, o que no se encuentre fuera de soporte.
  • Actualizaciones disponibles en tu versión del kernel. Comprueba si existen actualizaciones sin aplicar, o si, por el motivo que sea, se requiere un reinicio del sistema.

Users, Groups and Authentication

Se centra principalmente en estos dos aspectos:

  • Cuentas administrativas. Hacer una búsqueda de las cuentas administrativas del sistema.
  • Archivo sudoers. Comprueba la existencia de este archivo, así como también si está bien configurado. Por defecto no debería indicar ningún Warning en este sentido.

Filesystems

Comprueba entre otras cosas:

  • Puntos de montaje /home, /tmp, /var. Es posible que te indique una sugerencia en esta parte, puesto que suele ser una buena practica mantener estos directorios en particiones separadas.

Ports and Packages

En esta fase, las comprobaciones se centran principalmente en los siguientes puntos:

  • Package Manager. Disponibilidad de un gestor de paquetes, como APT. Esto es algo que siempre suele ser así.
  • Repositorios de seguridad. Comprueba si hay un repositorio de seguridad en el archivo sources.list. Este es generalmente de donde proceden las actualizaciones importantes de seguridad, y suele ser mantenido por el equipo de seguridad de cada distribución.
  • Paquetes vulnerables o desactualizados. Comprueba la existencia de estos paquetes. En caso de encontrarlos lo verás con un Warning.
  • Herramienta de auditoria de paquetes. Se asegura que el gestor de paquetes disponga de una herramienta de este tipo. En el caso de APT es apt-check, que suele venir siempre instalado.

Software: Firewalls o Cortafuegos

Comprueba si existe alguna configuración explícita del cortafuegos del kernel Iptables para filtrar las conexiones entrantes.

  • Firewall configurado. Por defecto Ubuntu dispone de UFW pero viene deshabilitado, por lo que este punto seguramente te lo marcara con un Warning. Otras distros como OpenSuse o Fedora ya llevan su propia herramienta de gestión de cortafuegos, por lo que en estos casos no deberías tener problema.

Databases

Por defecto, ni Ubuntu ni Linux Mint, en sus versiones de escritorio, disponen de ningún software de gestión de bases de datos, por lo que este test diríamos que no aplica. El caso de Debian si que sería diferente, pues, si no me equivoco, viene con MariaDB.

  • MySQL. En caso de que si dispongas de algún software como MySQL, comprobará que las configuraciones básicas sean las correctas.

Security Frameworks

Comprueba entre otros puntos:

  • AppArmor. Comprueba si se dispone de AppArmor y si está bien configurado (viene por defecto en Ubuntu y OpenSuse).
  • SELinux. Se centra en SELinux, una herramienta similar a AppArmor pero bastante más compleja. Es la que utilizan distribuciones como RedHat y Fedora, como alternativa a AppArmor.

Analiza los Resultados

Acabada tu primera auditoria con Lynis, es hora de pasar a la parte de resultados. Esta se compone de una lista de Warnings y Sugerencias, tras la cual le sigue el Hardening index, del que ya te he hablado antes.

Lynis. Análisis de Resultados Iniciales

Para que te hagas una idea, este es el resultado que he obtenido yo en una instalación limpia de Ubuntu 18.04 en una máquina virtual, y tras haber instalado todas las actualizaciones del sistema. Ten cuenta, eso si, que el sistema analizado contaba con la opción de cifrado de disco duro LUKS, algo que influye en el resultado final.

Si lo prefieres, tambien puedes consultar a posteriori los resultados del análisis junto con el listado de todas las sugerencias en el archivo de logs generado automáticamente tras el análisis.

sudo gedit /var/log/lynis.log

Algunas Recomendaciones Para Mejorar la Puntuación

Dependiendo de como tengas configurado tu sistema, estas recomendaciones serán unas u otras, pero por tal de hacerlo del modo más «estándar» posible, me basaré en la puntuación que se obtiene en una instalación reciente de Ubuntu 18.04 LTS, sin haber aplicado ninguna modificación adicional más allá de instalar las actualizaciones pertinentes.

Evidentemente mejoras a aplicar hay muchísimas, de hecho queda patente si te fijas en detalle con el listado de recomendaciones del final del análisis. Del mismo modo, puede que no todas las mejoras sean tu caso, al igual que habrá otras tantas difíciles de implementar, sobretodo si no tienes conocimientos avanzados en administración de sistemas GNU/Linux.

Con el listado de abajo no pretendo ni mucho menos cubrir todos los puntos, sino darte una serie de recomendaciones probadas, fáciles y rápidas de aplicar, con las que tu mismo podrás comprobar una mejora considerable en los resultados. A partir de aquí, lo profundo que quieras llegar ya depende de ti, de tus necesidades y de tus conocimientos.

Habilita el Firewall del Kernel

No solo habilitarlo, también configurarlo para denegar todas las conexiones entrantes por defecto. Al final de lo que se trata es de comunicarte con Iptables, ya sea directamente, a través de herramientas intermedias como UFW o Arno Iptables, como te indico a continuación.

  • Habilitar UFW. La más fácil, sobretodo si estás en Ubuntu, es habilitar UFW, que automáticamente te creará una serie de reglas en Iptables para denegar todas las conexiones entrantes por defecto. Solo habilitando UFW, Lynis ya me ha subido el hardening index de 55 a 59.
  • Instalar y habilitar Arno-Iptables-Firewall. Otra opción utilizar el script Arno Iptables Firewall, que en lo que se refiere a denegar las conexiones entrantes, vendría a hacer la misma función que UFW, aunque seguramente habrá diferencias en el conjunto de reglas utilizadas.

Proteger GRUB con Contraseña

Como habrás visto a lo largo del análisis, uno de los puntos aspectos que tiene en cuenta Lynis, es si el gestor de arranque GRUB está protegido con contraseña. Esto te ayudará a evitar que otros usuarios puedan acceder a la línea de comandos de GRUB, y poder restringir las diferentes opciones de arranque.

Utiliza Cifrado

Esto es algo que, aunque puedes realizar a posteriori, lo mejor es realizarlo en el momento de la instalación.

Antivirus o Antimalware

Si has estado alerta a lo largo del examen, habrás visto que una de las comprobaciones que realiza Lynis es verificar si dispones de un Antivirus como ClamAV. Esto es algo que podría ser más o menos discutido, pero lo cierto es que de cara a Lynis, el hecho de contar con él te hace ganar puntos.

  • ClamAV. Hay otros antivirus, pero este es el que tiene en cuenta Lynis. Al inicio de estas líneas te enlazo una guía de uso del antivirus ClamAV por si te decides a instalarlo.

Instala un Analizador de Rootkits

Otra cosa que tiene en cuenta Lynis a lo largo del escaneo (y que afecta a la puntuación global que obtienes al final) es si dispones de una herramienta de escaneo de rootkits.

  • Chkrootkit y Rkhunter. Son probablemente las dos herramientas Anti-Rootkit más conocidas y utilizadas en entornos GNU/Linux. Al principio del párrafo te he adjuntado una guía sobre como puedes utilizar ambos.

Utiliza un IDS o IPS

Otro de los parámetros analizados es el hecho de disponer de un sistema de detección de intrusos (IDS o Intrusion Detection System por sus siglas en ingles). Este es uno de los puntos que probablemente debes valorar si aplica en tu caso.

Mientras que en el caso de un administrador de sistemas responsable de toda una red de ordenadores es algo frecuente (sobretodo de cara a la protección de toda la red), para un uso personal probablemente no lo necesitas (aunque depende también de tus conocimientos y expectativas de seguridad)

  • Snort. Uno de los IPS más conocidos y utilizados en GNU/Linux es probablemente Snort. De momento no lo conozco de primera mano (es una asignatura pendiente) pero si en un futuro me animo a probarlo, aquí tendrás tu guía enlazada.

Instala Herramientas de Chequeo de Paquetes

No hace falta que los instales todos, pero a continuación te presento un listado de los que recomienda Lynis, por si te quieres informar sobre ellos y valorar si te interesan o no. En este post te hablo de algunos de ellos.

  • Apt-listbugs. Instalando esta utilidad podrás conocer los bugs críticos relativos a uno o varios paquetes antes de ser instalados mediante APT.
  • Apt-listchanges. Esta herramienta te indicará los cambios más significativos antes de un upgrade mediante APT.

Comprueba la Mejora

Una vez aplicadas todas estas mejoras, o como mínimo aquellas que consideres aplicables a tu caso de acuerdo a tus necesidades, conocimientos, etc., que mejor que realizar el mismo examen y comprobar la mejora.

sudo lynis audit system

Por supuesto que hay muchas otras mejoras que puedes aplicar, pero se trata de valorar realmente cuales puedes aplicar, de acuerdo también a la mejora real que crees que va a portar, a los conocimientos de que dispongas, etc.

Conclusiones

Si has llegado hasta aquí, espero que te haya resultado útil el post y que puedas poner en práctica todo lo que has visto. Como ves, muchas de las mejoras a aplicar son cosas bastante obvias y relativamente rápidas y fáciles de implementar.

Otras en camino son algo más complejas de aplicar, pero al final, se trata de que tu mismo encuentres el equilibrio con el que te sientas confortable de acuerdo a tu situación y tus necesidades.

Categorías Linux, SeguridadEtiquetas , ,

14 comentarios en “Como Hacer una Auditoria de Seguridad en GNU/Linux con Lynis

  1. Gregorio Pérez Gómez 19 Mar 2022 — 17:24

    Absolutamente perfecto,tan perfecto como todos los análisis publicados sobre Linux ,uso y configuración.
    Quiero darte las gracias públicamente por tu valiosísima ayuda.
    La configuración de Linux para principiantes (y no tan principiantes) es un agradable paseo gracias a ti y a tus escritos.
    Muchas gracias.
    Saludos cordiales.
    Agradecidisimo.

    Me gusta

    1. Muchísimas gracias a ti por tu comentario Gregorio! Es un honor poder recibir comentarios como el tuyo, y me motivan mucho a seguir adelante!
      Un gran abrazo!

      Me gusta

  2. Re CRACK, Gracias

    Me gusta

  3. buenas, acabo de actualizar lynis a 2.7.5, y a diferencia de la versión 2.4 que venia teniendo. En primera instancia no me reconoce plugin:debian, por lo cual, no realiza el check de las herramientas debian. A que se debe? eso está bien? Muchas gracias por los aportes. Saludos,

    Me gusta

    1. Hola Ernesto,

      ¿En que distribución estás ejecutando Lynis? Supongo que a diferencia de la que viene instalada, la que te has instalado manualmente no debe llevar incorporados algunos plugins. Puedes probar de descargarte Lynis Plugin a ver si se soluciona (que no forma parte del paquete oficial, pero que pueden igualmente pre-instalar muchas distribuciones, como es el caso de Debian o Ubuntu). Copio el enlace debajo:

      https://cisofy.com/downloads/lynis-plugins-community/

      Cualquier cosa ya me dices!

      Me gusta

  4. Desde Chile, felicitaciones Oriol buen trabajo.

    Me gusta

    1. Muchísimas gracias Sergio!

      Un abrazo!

      Me gusta

  5. Hola Oriol muy buen reporte. Pero se puede aplicar a un equipo remoto, en ese caso cómo sería?

    Me gusta

  6. me resulto de mucha ayuda a un que vengo presentando algunos problemas con mi so.

    Me gusta

  7. Excelente Blog, Muchas Gracias por tu aporte y tu trabajo

    Me gusta

  8. Bueno felicitarte por este Blog y la información tan interesante que aportas. Saludos.

    Me gusta

    1. Muchas gracias por el comment Jesus!
      Me alegra saber que el blog te resulta de utilidad;)
      Espero poder publicar más a menudo..

      Me gusta

  9. Interesante artículo ,muchas gracias por compartir .

    Me gusta

    1. Gracias a ti Fred, es un gusto!

      Me gusta

Deja un comentario

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