Lynis es una herramienta de auditoría de seguridad ampliamente utilizada en entornos Unix y Linux, diseñada para evaluar el estado de seguridad del sistema de forma automatizada. A diferencia de otros escáneres que se centran en redes o aplicaciones web, Lynis analiza el sistema operativo desde dentro.
Gracias a su enfoque modular, Lynis permite ejecutar auditorías completas o centrarse en categorías específicas como autenticación, redes o detección de malware — ideal tanto para auditorías rutinarias como para investigaciones tras un incidente de seguridad.
# Actualizar la lista de paquetes sudo apt update # Instalar Lynis sudo apt install lynis -y # Ejecutar la auditoría completa sudo lynis audit system
| Comando | Descripción |
|---|---|
| sudo lynis audit system | Auditoría integral del sistema — evalúa todas las áreas disponibles: autenticación, servicios, logs, kernel, permisos y más. |
| sudo lynis audit system --quick | Modo no interactivo — auditoría automática y silenciosa sin solicitar confirmaciones. Ideal para scripts y tareas programadas (cron). |
| sudo lynis show tests | Muestra la lista completa de pruebas disponibles para identificar áreas específicas que se pueden auditar. |
| sudo lynis show groups | Muestra todos los grupos temáticos de pruebas disponibles para facilitar auditorías parciales. |
| sudo lynis audit system --tests-from-group "authentication" | Ejecuta solo el grupo especificado. Grupos disponibles: authentication, filesystems, malware, networking, entre otros. |
| sudo lynis update info | Actualizar Lynis — importante para asegurar que las auditorías consideren las amenazas más recientes. |
# Log detallado de la auditoría /var/log/lynis.log # Reporte estructurado con datos parseables /var/log/lynis-report.dat
| Tipo | Módulo | Descripción | Acción recomendada |
|---|---|---|---|
| PELIGRO | Usuarios | Permisos incorrectos en /etc/sudoers.d — podrían permitir escalada de privilegios. | Debe ser root:root con permisos 0755 o más restrictivos (0750). Verifica con ls -la /etc/sudoers.d. |
| PELIGRO | Paquetes | Paquetes vulnerables encontrados (PKGS-7392) — versiones desactualizadas con CVEs conocidos. | Ejecuta sudo apt update && sudo apt upgrade para aplicar todas las actualizaciones de seguridad disponibles. |
| PELIGRO | Correo | Divulgación de información en el banner SMTP (MAIL-8818) — el servidor expone versión y SO. | Configura Postfix para ocultar la versión: modifica smtpd_banner en /etc/postfix/main.cf. |
| PELIGRO | Firewall | Módulos iptables cargados pero sin reglas activas (FIRE-4512) — firewall sin configuración. | Configura y activa ufw o reglas iptables para restringir conexiones entrantes. sudo ufw enable. |
| PELIGRO | Impresoras | Permisos inseguros en el archivo de configuración CUPS — permite modificaciones no autorizadas. | Revisar y restringir permisos en /etc/cups/cupsd.conf para evitar modificaciones sin autorización. |
| PELIGRO | Logging | Archivos eliminados en uso — procesos usando archivos borrados del disco. Las correcciones de seguridad pueden no haberse aplicado. | Reiniciar los servicios afectados o el sistema completo. Frecuente después de actualizaciones de paquetes. |
kernel.kptr_restrict (visibilidad de direcciones del kernel), net.ipv4.conf.all.accept_redirects y send_redirects (prevenir ataques MITM), fs.suid_dumpable (control de core dumps en binarios SUID).yescrypt, argon2 o sha512, con suficientes rondas de hash habilitadas./etc/login.defs para nuevos archivos y directorios./home, /tmp y /var — permite aplicar opciones restrictivas como nodev, noexec y nosuid para limitar vectores de ataque.libpam-tmpdir, apt-listbugs, apt-listchanges y needrestart (para saber qué servicios reiniciar tras una actualización).fail2ban para proteger servicios expuestos como Apache o SSH.sudo apt update && sudo apt upgrade para abordar la vulnerabilidad de paquetes (PKGS-7392)./etc/sudoers.d — debe ser root:root con permisos 0755 o 0750.ufw con reglas apropiadas: permitir solo los puertos necesarios (80/443 para Apache) y bloquear el resto por defecto./etc/postfix/main.cf para cambiar smtpd_banner y ocultar la versión y el SO del servidor de correo.# 1. Actualizar sistema sudo apt update && sudo apt upgrade -y # 2. Revisar permisos sudoers ls -la /etc/sudoers.d sudo chmod 0750 /etc/sudoers.d # 3. Activar firewall UFW sudo ufw enable sudo ufw default deny incoming sudo ufw allow 80/tcp sudo ufw allow 443/tcp # 6. Ocultar banner Postfix sudo nano /etc/postfix/main.cf # smtpd_banner = $myhostname ESMTP
default.prf (que puede ser sobreescrito por actualizaciones), usa custom.prf.# Crear el archivo si no existe sudo touch /etc/lynis/custom.prf # Consultar todas las opciones disponibles cat /etc/lynis/default.prf
# Ignorar el aviso de que la versión de Lynis es antigua # (se actualizará más adelante) skip-test = LYNIS
sudo lynis audit system, el test LYNIS (aviso de versión antigua) ya no aparecerá en el informe. El ID del test a ignorar se encuentra al final de cada línea de advertencia en el output de Lynis, entre corchetes.