Cómo escanear tu seguridad en Linux con Lynis

Puedes verificar la seguridad de tu Linux con esta herramienta integral de auditoría de seguridad de código abierto.

¿Alguna vez has pensado en cuán segura es realmente tu máquina Linux? Existen numerosas distribuciones de Linux, cada una con su propia configuración predeterminada. En esta se suelen ejecutar docenas de paquetes de software con diferentes números de versión, y numerosos servicios que se ejecutan en segundo plano. En la mayoría de ocasiones apenas conocemos algunos o ni nos interesa conocerlos.

Para encontrar la postura de seguridad (el estado general de seguridad del software, la red y los servicios que se ejecutan en su máquina Linux), puedes ejecutar algunos comandos. Ejecutando estos comandos puedes obtener fragmentos de información relevante, pero la cantidad de datos que necesitas analizar es enorme.

Sería mucho mejor si pudieras ejecutar una herramienta que genera un informe sobre el estado de seguridad de una máquina. Y por suerte hay una: Lynis. Es una popular herramienta de auditoría de seguridad de código abierto que ayuda a fortalecer los sistemas basados ​​en Linux y Unix. Según las afirmaciones del proyecto:

“Realiza un análisis de seguridad en profundidad y se ejecuta en el propio sistema. El objetivo principal es probar las defensas de seguridad y proporcionar consejos para un mayor fortalecimiento del sistema. También buscará información general del sistema, paquetes de software vulnerables y posibles problemas de configuración”. Lynis [es] comúnmente utilizado por los administradores de sistemas y auditores para evaluar las defensas de seguridad de sus sistemas”.

Instalar Lynis

Lynis podría estar disponible en tu repositorio de software de Linux. Si es así, puedes instalarlo usando:

O

Sin embargo, si la versión en tu repositorio no es la última, será mejor que la instales desde GitHub. (Estoy usando un sistema Red Hat Linux, pero puedes ejecutarlo en cualquier distribución de Linux). Como con todas las herramientas, tiene sentido probarlo primero en una máquina virtual. Para instalarlo desde GitHub:

Una vez que hayas clonado el repositorio, muévete a él y observa qué hay disponible. La herramienta principal está en un archivo llamado lynis. En realidad es un script de shell, por lo que puedes abrirlo y leer lo que está haciendo. De hecho, Lynis se implementa principalmente utilizando scripts de shell:

Ejecutar Lynis

Debes probar Lynis proporcionándole una opción -h para ver la sección de Ayuda:

Verás una breve pantalla de información seguida de todos los comandos que admite Lynis.

A continuación, puedes probar algunos comandos de prueba para tener una idea de las cosas y sentirte cómodo. Para ver con qué versión de Lynis estás trabajando, ejecuta:

Para ver todos los comandos disponibles en Lynis debes ejecutar:

Auditar un sistema Linux

Para auditar el estado de seguridad de tu sistema, debes ejecutar el siguiente comando:

Esto se ejecuta rápidamente y devuelve un informe detallado: la salida puede parecer intimidante al principio, pero te guiaré a continuación. La salida del comando también se guarda en un archivo de registro. Por lo tanto, si deseas verla puedes volver más tarde y verificar cualquier cosa que pueda ser de tu interés.

Lynis guarda los registros aquí:

Puedes verificar si los archivos de registro fueron creados, y de hecho fueron:

Exploremos los informes

Lynis proporciona informes bastante completos, por lo que cubriré algunas de las secciones importantes. Lo primero que hace Lynis como parte de la inicialización es encontrar información completa sobre el sistema operativo que se ejecuta en la máquina. Esto es seguido por verificaciones para ver qué herramientas y complementos del sistema están instalados:

A continuación, el informe se divide en varias secciones, y cada sección comienza con un símbolo [+]. Algunas de las secciones se pueden ver a continuación. (¡Vaya, hay muchas áreas para auditar, y Lynis es la herramienta adecuada para el trabajo!).

Lynis utiliza códigos de colores para hacer que el informe sea más fácil de analizar:

  • Verde: Todo está bien
  • Amarillo: omitido, no encontrado, o puede tener una sugerencia
  • Rojo: es posible que debas echarle un vistazo más de cerca

En mi caso, la mayoría de las marcas rojas se encontraron en la sección Kernel Hardening. El núcleo tiene varias configuraciones ajustables que definen cómo funciona el núcleo, y algunos de estos ajustables pueden tener un contexto de seguridad. Es posible que la distribución no los configure de manera predeterminada por varios motivos. Pero debes examinar cada uno y ver si necesitas cambiar su valor en función de tu postura de seguridad:

SSH

Debemos observar SSH como ejemplo, ya que es un área clave y necesita ser asegurada. Aquí no hay nada en rojo, pero Lynis tiene muchas sugerencias sobre cómo fortalecer el servicio SSH en mi configuración:

No tengo máquinas virtuales o contenedores ejecutándose en mi sistema, por lo que muestran resultados vacíos:

Lynis verifica los permisos de archivos en algunos archivos que son importantes desde el punto de vista de la seguridad:

Hacia el final del informe, Lynis ofrece sugerencias basadas en los hallazgos del informe. A cada sugerencia le sigue una TEST-ID (ten esto a mano para la siguiente parte):

Lynis ofrece una opción para encontrar más información sobre cada sugerencia, a la que puedes acceder utilizando el comando show details seguido del número de test ID:

Esto mostrará información adicional sobre esa prueba. Por ejemplo, al verificar los detalles de SSH-7408:

Dale una oportunidad

Si deseas obtener más información sobre la seguridad de tu máquina Linux, debes consultar Lynis. Y, si deseas aprender cómo funciona Lynis, debes profundizar en sus scripts de shell para ver cómo recopila toda esta información.