Ejecutar una auditoría con Lynis es la forma más rápida de obtener una imagen honesta de la postura de seguridad de tu servidor Linux. Lynis es una herramienta de auditoría de seguridad de código abierto que realiza más de 300 comprobaciones — cubriendo autenticación, permisos del sistema de archivos, endurecimiento del kernel, servicios de red, vulnerabilidades de software y controles de cumplimiento — y luego produce un índice de hardening entre 0 y 100. En esta guía instalarás Lynis, interpretarás su salida, aplicarás las recomendaciones de hardening más impactantes y automatizarás auditorías recurrentes para el cumplimiento continuo en Linux.
Requisitos Previos
- Un servidor Linux (Ubuntu 20.04/22.04, Debian 11/12, RHEL/CentOS/AlmaLinux 8/9 o equivalente)
- Acceso root o
sudo - Familiaridad básica con la línea de comandos y la lectura de registros
- Opcional:
auditdyaideinstalados para cobertura completa de pruebas
Instalación de Lynis
Lynis está disponible en los repositorios de paquetes estándar, pero el repositorio mantenido por CISOfy siempre proporciona la versión más reciente — lo cual importa porque las pruebas de Lynis se actualizan frecuentemente a medida que se publican nuevos CVEs.
Ubuntu / Debian:
sudo apt install -y apt-transport-https gnupg
curl -fsSL https://packages.cisofy.com/keys/cisofy-software-public.key | sudo gpg --dearmor -o /usr/share/keyrings/cisofy.gpg
echo "deb [signed-by=/usr/share/keyrings/cisofy.gpg] https://packages.cisofy.com/community/lynis/deb/ stable main" \
| sudo tee /etc/apt/sources.list.d/cisofy-lynis.list
sudo apt update && sudo apt install lynis
RHEL / CentOS / AlmaLinux:
sudo rpm --import https://packages.cisofy.com/keys/cisofy-software-public.key
cat <<EOF | sudo tee /etc/yum.repos.d/cisofy-lynis.repo
[lynis]
name=CISOfy Software - Lynis package
baseurl=https://packages.cisofy.com/community/lynis/rpm/
enabled=1
gpgcheck=1
gpgkey=https://packages.cisofy.com/keys/cisofy-software-public.key
EOF
sudo yum install lynis
Verifica la instalación:
lynis show version
Ejecutando tu Primera Auditoría con Lynis
Una auditoría completa del sistema tarda entre 2 y 5 minutos y requiere acceso root para probar todos los controles:
sudo lynis audit system
Lynis transmite los resultados al terminal y escribe un registro detallado en /var/log/lynis.log y un informe en /var/log/lynis-report.dat. La salida del terminal utiliza etiquetas con código de colores:
| Etiqueta | Significado |
|---|---|
[OK] | Prueba superada |
[WARNING] | Debilidad de seguridad — corregir con prioridad |
[SUGGESTION] | Mejora recomendada — menor urgencia |
[FOUND] | Elemento detectado (neutro) |
[NOT FOUND] | Herramienta o archivo no presente |
Al final del análisis busca la línea Hardening index:
Hardening index : 62 [############ ]
Un servidor Ubuntu 22.04 recién instalado con configuración predeterminada suele obtener una puntuación de alrededor de 60-65. Tu objetivo es 80+.
Comprensión y Priorización de la Salida de Lynis
Advertencias — corregir primero
Las advertencias indican brechas de seguridad reales. Las advertencias comunes en una instalación predeterminada incluyen:
- Inicio de sesión root por SSH habilitado —
PermitRootLogin yesen/etc/ssh/sshd_config - Sin contraseña para GRUB — gestor de arranque desprotegido
- Herramientas de compilación instaladas —
gccen un servidor de producción - Sin firewall activo — no se encontraron reglas de
ufw,firewalldniiptables - Archivos con permisos de escritura para todos — archivos que cualquiera puede modificar
Para cada advertencia, Lynis imprime un ID de prueba como SSH-7412. Úsalo para consultar la solución exacta:
lynis show details SSH-7412
Sugerencias — endurecer con el tiempo
Las sugerencias son buenas prácticas de seguridad que no son urgentes pero elevan tu puntuación:
- Instalar
auditdpara registro de auditoría a nivel de kernel - Habilitar contabilidad de procesos (
acct) - Configurar
umask 027para permisos de creación de archivos más restrictivos - Añadir
apt-listchangespara monitorear avisos de seguridad en el registro de cambios de paquetes - Habilitar
AIDE(monitoreo de integridad de archivos)
Acciones Clave de Hardening Tras una Auditoría con Lynis
A continuación se presentan las correcciones de mayor impacto que más mejoran el índice de hardening.
1. Endurecer SSH
sudo nano /etc/ssh/sshd_config
Establece estos valores:
PermitRootLogin no
PasswordAuthentication no
X11Forwarding no
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowTcpForwarding no
Reinicia SSH: sudo systemctl restart sshd
2. Aplicar hardening del kernel con sysctl
Crea /etc/sysctl.d/99-hardening.conf:
# Deshabilitar enrutamiento de origen IP
net.ipv4.conf.all.accept_source_route = 0
net.ipv6.conf.all.accept_source_route = 0
# Ignorar redirecciones ICMP
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
# Habilitar protección de cookies SYN
net.ipv4.tcp_syncookies = 1
# Registrar paquetes marcianos
net.ipv4.conf.all.log_martians = 1
# Deshabilitar IPv6 si no es necesario
net.ipv6.conf.all.disable_ipv6 = 1
Aplica: sudo sysctl --system
3. Instalar y configurar auditd
sudo apt install auditd audispd-plugins
sudo systemctl enable auditd --now
Añade reglas para el registro de comandos privilegiados:
sudo auditctl -a always,exit -F arch=b64 -S execve -k exec_commands
4. Habilitar un firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Tras aplicar estos cuatro cambios, la puntuación de un servidor típico sube de 62 a 75-80.
Comparativa de Lynis con Herramientas de Auditoría de Seguridad Alternativas
| Herramienta | Tipo | Alcance | Benchmarks CIS | Remediación | Ideal Para |
|---|---|---|---|---|---|
| Lynis | Agente local | Linux/macOS | Parcial | Sugerencias | Hardening manual por sysadmin |
| OpenSCAP | Agente local | Linux | SCAP/XCCDF completo | Automatizada | Organizaciones orientadas al cumplimiento (DISA STIG) |
| CIS-CAT Lite | Agente local | Multi-OS | CIS completo | Solo informe | Puntuación de benchmarks CIS |
| Wazuh | Agente + servidor | Multi-OS | Sí | Alertas | SIEM centralizado + cumplimiento |
| Nessus Essentials | Escáner de red | Multi-OS | Sí | Informe | Análisis externo de vulnerabilidades |
| Trivy | Contenedor/código | Contenedores, IaC | Parcial | Informe | Pipelines de DevSecOps |
Lynis sobresale para el hardening de servidores individuales por un sysadmin. Para paneles de cumplimiento a nivel empresarial o seguridad de contenedores, combina Lynis con Wazuh u OpenSCAP.
Escenario del Mundo Real
Tienes un servidor web de producción ejecutando Ubuntu 22.04 con Nginx, MySQL y una aplicación Node.js. Fue desplegado hace seis meses y nunca ha sido auditado. Ahora se requiere una revisión de seguridad antes de la auditoría ISO 27001 de la empresa.
Ejecutas sudo lynis audit system y obtienes una puntuación de 58 con 7 advertencias y 34 sugerencias. Las advertencias críticas son:
- Inicio de sesión root por SSH habilitado — los scripts de despliegue todavía usan la cuenta root
- Sin reglas de firewall — la instancia depende únicamente del grupo de seguridad de la nube
- MySQL escuchando en 0.0.0.0 — expuesto innecesariamente a la red interna
/tmpmontado con permisosexec— permite la ejecución de código desde archivos temporales
Trabajas en cada advertencia:
- Actualiza los scripts de despliegue para usar un usuario dedicado con sudo, luego establece
PermitRootLogin no - Añade reglas
ufwque solo permitan los puertos 22, 80 y 443 - Vincula MySQL a
127.0.0.1en/etc/mysql/mysql.conf.d/mysqld.cnf - Añade
noexecal montaje de/tmpen/etc/fstaby vuelve a montarlo
Al volver a ejecutar Lynis obtienes una puntuación de 79. Abordas cinco sugerencias de alta prioridad más (instalar auditd, establecer umask 027, deshabilitar módulos de kernel no utilizados) y alcanzas 84 — muy por encima del umbral de 80 requerido para la auditoría.
Errores Comunes y Casos Especiales
La puntuación varía según lo que está instalado. Lynis omite pruebas para herramientas que no están presentes (por ejemplo, si postfix no está instalado, se omiten todas las pruebas relacionadas con el correo). Un servidor mínimo puede puntuar más alto simplemente porque se aplican menos pruebas de superficie de ataque — no porque esté más endurecido.
Algunas sugerencias entran en conflicto con los requisitos de la aplicación. Deshabilitar las herramientas de compilación (gcc) suma puntos, pero un servidor que compila software (runner de CI, host de compilación) las necesita legítimamente. Aplica criterio — Lynis es una guía, no un libro de reglas absoluto.
Volver a ejecutar sin cambios aún varía ligeramente. Lynis prueba el estado del sistema en tiempo real. Si un proceso se inicia o detiene entre ejecuciones, las puntuaciones pueden variar 1-2 puntos. Considera esto como ruido normal.
Pruebas solo para root. Ejecutar Lynis como usuario no root omitirá muchas pruebas privilegiadas y producirá una puntuación más baja y menos significativa. Ejecuta siempre con sudo.
Perfiles personalizados. Para entornos con requisitos específicos (PCI-DSS, HIPAA), usa --profile para cargar un perfil Lynis personalizado que habilite o deshabilite grupos de pruebas específicos. Copia /etc/lynis/default.prf y modifícalo para suprimir falsos positivos en tu entorno.
Solución de Problemas
“Warning: lynis executable not found” — el paquete del repositorio CISOfy se instala en /usr/bin/lynis. Si lo instalaste mediante un tarball, asegúrate de que la ruta esté en tu $PATH o llámalo con la ruta completa.
La auditoría sale con errores de permisos — ciertas pruebas comprueban /proc, /sys y /etc/shadow. Estas requieren root. Ejecuta con sudo lynis audit system, no como usuario normal.
El archivo de registro no se escribe — /var/log/lynis.log requiere permisos de escritura. En sistemas con SELinux en modo enforcing, comprueba: ausearch -m avc -ts recent para denegaciones relacionadas con lynis. Es posible que necesites añadir una política SELinux personalizada o usar --logdir /tmp como solución alternativa.
La puntuación bajó tras una actualización del SO — las actualizaciones de paquetes pueden instalar nuevo software que Lynis ahora prueba. Revisa las nuevas advertencias y sugerencias introducidas por la actualización; representan una superficie de ataque recién detectada.
La tarea cron no produce salida — ejecuta con --quiet --cronjob y redirige la salida a un archivo: sudo lynis audit system --quiet --cronjob >> /var/log/lynis-cron.log 2>&1. Usa logrotate para gestionar el tamaño del archivo.
Resumen
- La auditoría de Lynis analiza más de 300 controles de seguridad y produce un índice de hardening de 0 a 100
- Las instalaciones Linux recientes suelen obtener 55-65; apunta a 80+ para servidores de producción
- Aborda primero los elementos WARNING (vulnerabilidades reales), luego trabaja los elementos SUGGESTION
- Las correcciones de mayor impacto son: deshabilitar el inicio de sesión root por SSH, habilitar un firewall, instalar auditd y aplicar hardening del kernel con sysctl
- Lynis es de solo lectura — nunca modifica tu sistema; todos los cambios se aplican manualmente
- Usa
--profilepara suprimir falsos positivos específicos de tu entorno - Programa ejecuciones semanales por cron para mantener tu puntuación de hardening a lo largo del tiempo a medida que el sistema cambia
- Para cumplimiento empresarial (CIS, DISA STIG), combina Lynis con OpenSCAP o Wazuh