El momento en que levantas un servidor Linux, incluso antes de que termines de instalar tu stack LAMP o NGINX, ya estás siendo escaneado. No importa si es una Raspberry Pi en tu casa o una instancia EC2 en AWS: estar conectado a Internet es sinónimo de estar expuesto.
Lo interesante es que la mayoría de las intrusiones no ocurren por sofisticadas técnicas de espionaje cibernético, sino por negligencia básica: puertos abiertos innecesarios, contraseñas débiles, actualizaciones pendientes y… ausencia total de monitoreo.
Por suerte, Linux ofrece un ecosistema maduro de herramientas libres que permiten levantar una defensa bastante robusta con poco esfuerzo. En este artículo exploraré cinco de las más efectivas: UFW, Fail2Ban, PSAD, Lynis y Logwatch. Cada una cumple un rol distinto, pero al trabajar juntas, cubren muchos de los flancos que un atacante suele explotar. Cabe recalcar que existen una infinidad de otras herramientas de pago que cumplen de igual forma o mejor cada uno de estos roles, pero en mi opinión, esta es una muy buena forma para poder comenzar un stack seguro y potente.
UFW, el muro.
¿Qué es UFW?
UFW (Uncomplicated Firewall) es una interfaz simplificada para manejar iptables, el sistema de firewall por defecto en la mayoría de distribuciones Linux. Si bien iptables es poderoso, su sintaxis es compleja y propensa a errores. UFW simplifica todo con una sintaxis amigable, ideal para quienes no son administradores de sistemas de carrera pero quieren proteger su infraestructura.
¿Cómo funciona?
UFW se comporta como una linea de defensa impenetrable (dependiendo de qué instrucciones le des). Puedes decirle qué tipo de tráfico dejar entrar y cuál rechazar, basándote en puertos, IPs, protocolos, etc. Por ejemplo:
- Permitir tráfico SSH (puerto 22).
- Bloquear todo el tráfico entrante por defecto.
- Permitir solo tráfico HTTP/HTTPS al servidor web.
¿Por qué es fundamental?
Porque todo empieza por controlar qué entra y qué sale de tu servidor. Sin un firewall correctamente configurado, cualquier servicio que levantes queda disponible para el mundo. UFW te permite definir una política de «mínimo privilegio», en la cual solo lo estrictamente necesario tiene acceso.
Instalación:
sudo apt update && sudo apt install ufw -y
Configuración esencial:
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw enable
Primero deniegas todo tráfico hacia tu servidor, luego permites el tráfico de salida, después permites SSH y finalmente activas UFW. Si quieres permitir un puerto en particular, puedes hacerlo de la siguiente manera:
sudo ufw allow 2222/tcp
También puedes denegar el tráfico de una IP o subnet específica:
sudo ufw deny from 172.28.79.3 #ip especifica
sudo ufw deny from 172.28.79.0/24 #subnet
Activar logging para que PSAD funcione:
sudo nano /etc/ufw/ufw.conf
Luego buscas la linea LOGLEVEL y puedes dejar high o medium (personalmente prefiero high, ya que contiene más detalles):
LOGLEVEL=medium
Recuerda que siempre que hagas un cambio en la configuración, debes deshabilitar y habilitar UFW:
sudo ufw disable && sudo ufw enable
Fail2Ban, el vigilante.
¿Qué problema resuelve?
Imagina que UFW es un portero que sigue una lista para dejar acceder o restringir el acceso. Fail2Ban, en cambio, es un guardia que observa el comportamiento de quienes ya pasaron por la puerta. Si detecta algo sospechoso (como muchos intentos fallidos de iniciar sesión por SSH), los expulsa y les prohíbe volver por un tiempo.
¿Cómo funciona?
Fail2Ban escanea archivos de logs en busca de patrones definidos. Por ejemplo, si encuentra 5 intentos fallidos de login en menos de 10 minutos, puede crear una regla de firewall (en iptables o nftables) que bloquee temporalmente la IP ofensora.
Lo interesante es que Fail2Ban no depende de un puerto específico, sino de lo que los servicios escriben en los logs. Por eso también puede proteger servidores de correo, web, phpmyadmin, apache y otros servicios públicos.
¿Por qué es crucial?
Porque no hay firewall que bloquee un ataque si no sabe que está ocurriendo. Los ataques de fuerza bruta automatizados son una constante. Fail2Ban no solo bloquea al atacante, sino que lo hace con rapidez y sin intervención manual.
Instalación:
sudo apt install fail2ban -y
Luego creas tu configuración local:
sudo nano /etc/fail2ban/jail.local
No edites la configuración por default de fail2ban ubicado en /etc/fail2ban/jail.d lo mejor es crear tu propio archivo de configuración para poder tener mayor control sobre tus jails. Por ejemplo, un jail para ssh:
[sshd]
enabled = true
port = ssh
logpath = /var/log/auth.log
maxretry = 3
findtime = 10m
bantime = 1h
Esta jail para ssh analiza el log auth.log para distinguir 3 intentos fallidos de logueo en menos de 10 minutos y banea la ip por 1 hora. Ahora, si quieres ver el estado de cada jail, puedes hacerlo de la siguiente manera:
sudo fail2ban-client status sshd
Podrás ver algo como esto:

PSAD, el radar.
¿Qué es PSAD?
PSAD (Port Scan Attack Detector) no es un firewall, ni un sistema de prevención de intrusos completo, pero juega un rol clave: detecta escaneos de puertos y patrones anómalos en el tráfico. En otras palabras, te avisa cuando alguien está «tomando nota» de qué servicios tienes disponibles.
¿Cómo se diferencia de Fail2Ban?
- Fail2Ban actúa cuando algo ya ha ocurrido (por ejemplo, intentos de login fallidos).
- PSAD actúa cuando ve un comportamiento que anticipa un ataque, como escaneos SYN, FIN, NULL o XMAS.
Además, PSAD funciona en conjunto con tu firewall (como iptables o ufw) y analiza los logs del kernel para detectar estos comportamientos.
¿Por qué deberías usarlo?
Porque la mayoría de los ataques comienzan con un reconocimiento. Detectar escaneos a tiempo puede ayudarte a tomar acciones preventivas, como bloquear esa IP, alertarte por correo, o levantar un honeypot (hablaré de honeypots en otro artículo más adelante).
Instalación:
sudo apt install psad -y
Activar registros de firewall:
Ya está cubierto si usas UFW con LOGLEVEL=medium o superior.
Configuración:
sudo nano /etc/psad/psad.conf
Luego busca y ajusta las siguientes variables:
EMAIL_ADDRESSES tu@email.com;
HOSTNAME $(hostname);
ENABLE_AUTO_IDS Y;
Activa actualización de firmas y reinicia:
sudo psad --sig-update
sudo psad -R
sudo psad -H
Ver estado actual:
sudo psad -S
Puedes definir listas blancas, personalizar los niveles de peligro (DL1 a DL5) y bloquear automáticamente IPs agresivas. Te dejo aquí un link para ver su manual.
Linys, el auditor y pentester
¿Qué es?
Lynis es una herramienta de auditoría de seguridad para sistemas Linux y Unix. A diferencia de las herramientas anteriores, no protege en tiempo real, sino que analiza tu sistema en busca de configuraciones débiles, servicios innecesarios, permisos incorrectos, y más.
¿Qué hace exactamente?
Realiza un escaneo profundo de:
- Configuraciones del kernel.
- Permisos de archivos críticos.
- Presencia de herramientas peligrosas (como compiladores en servidores de producción).
- Servicios que están corriendo.
- Actualizaciones pendientes.
- Sugerencias de hardening.
En general, te entrega un resumen con un puntaje de seguridad y recomendaciones claras para mejorar la seguridad de tu máquina.
¿Por qué es importante?
Porque muchas veces confiamos en que nuestro servidor «ya está bien» sin tomar en cuenta configuraciones que probablemente olvidamos o desconocemos. Lynis demuestra que siempre hay algo por mejorar, como una revisión técnica para tu sistema operativo.
Instalación:
sudo apt install lynis -y
Ejecución de auditoria completa:
sudo lynis audit system
Al final verás un resumen con sugerencias, advertencias y una puntuación de seguridad.

También puedes usar el modo pentest para simular una visión más ofensiva (no realiza un ataque, pero revisa configuraciones en base a un posible ataque).
sudo lynis audit system --pentest
Logwatch, reporteria
El quinto elemento fundamental para poder unir las 4 herramientas anteriormente descritas, Logwatch.
¿Qué hace?
Genera reportes diaarios con resúmenes de los eventos importantes de tu servidor, como por ejemplo:
- Inicios de sesión.
- Actividad del sistema.
- Accesos SSH.
- Cambios de servicios.
- Errores de aplicaciones.
- Eventos sospechosos.
Todo esto lo condensar en un email que puedes recibir cada mañana para que puedas revisar en la comodidad de tu escritorio disfrutando de un buen café, sin entrar directamente al servidor para revisar log por log.
¿Por qué usarlo?
Porque si algo extraño ocurre y tú no te enteras, es como si no tuvieras seguridad alguna. Logwatch te obliga de alguna manera a mirar, aunque sea por encima, lo que pasó en tu sistema el día anterior.
Instalación:
sudo apt install logwatch -y
Prueba manual:
sudo logwatch --detail high --range yesterday --service all
Para que te envíe automáticamente los correos puedes configurarlo aquí:
sudo nano /etc/cron.daily/00logwatch
Agrega o reemplaza:
/usr/sbin/logwatch --output mail --mailto tunombre@tudominio.com --detail high
También puedes definir el remitente en /usr/share/logwatch/default.conf/logwatch.conf
BONUS
Te dejo un script que personalmente uso en donde junto todo lo anterior y manda un reporte general a mi correo, puedes guardarlo como «blue_team_report.sh» y agregarlo a un cron con «crontab -e».
!/bin/bash
REPORT_DATE=$(date '+%Y-%m-%d')
{
echo "=== Reporte Blue Team - $REPORT_DATE ==="
echo
echo "== LOGWATCH =="; /usr/sbin/logwatch --detail high --range yesterday --service all --hostname $(hostname) --output stdout
echo
echo "== FAIL2BAN =="; fail2ban-client status sshd
echo
echo "== UFW BLOCKS =="; grep 'BLOCK' /var/log/ufw.log | awk '{for(i=1;i<=NF;i++) if ($i ~ /^SRC=/) print $i}' | cut -d= -f2 | tail -n 20 | sort | uniq -c | sort -nr
echo
echo "== PSAD =="; psad -S
} | mail -s "Reporte Blue Team - $REPORT_DATE" tunombre@tudominio.com
Lo haces ejecutable:
chmod +x blue_team_report.sh
Y lo agregas a tu crontab:
crontab -e
0 7 * * * /ruta/a/blue_team_report.sh
Si bien, todas estas herramientas no son «sofisticadas», creo firmemente que son efectivas. Ideales para montar un esquema de defensa sólido sin necesidad de tener experiencia en ciberseguridad avanzada ni pagar licencias. Porque:
- UFW cierra las puertas.
- Fail2Ban expulsa a los sospechosos reincidentes.
- PSAD detecta a los que andan merodeando.
- Lynis revisa que todo esté bien adentro.
- Logwatch te avisa cada mañana si hubo fiesta anoche.
Y eso para mi, ya es un comienzo. ¿Tú, qué opinas?