Conceptos básicos de ciberseguridad para proteger Linux
Fundamentos de Ciberseguridad en Linux: conceptos, hardening y casos prácticos
La ciberseguridad es un pilar crítico en cualquier infraestructura. Dado que Linux es ampliamente utilizado en servidores y entornos empresariales, los administradores y profesionales de TI deben conocer sus fundamentos y aplicar buenas prácticas. En esta guía verás conceptos esenciales, configuraciones de hardening y casos prácticos con comandos reales.
Índice
Conceptos básicos de ciberseguridad
1) Autenticación
Es el proceso de verificar la identidad del usuario. Lo más habitual es usuario + contraseña, pero conviene reforzarlo con doble factor (2FA) o llaves SSH con passphrase.
Consejo: usa una política de contraseñas con longitud mínima, complejidad y rotación razonable; complementa con 2FA cuando sea posible.
2) Autorización
Define qué puede hacer un usuario una vez autenticado. En Linux se gestiona con permisos (rwx) y, cuando necesitas granularidad, con ACLs.
# Ver permisos y ACL de un archivo
ls -l fichero
getfacl fichero
3) Registro y auditoría
Los logs permiten detectar actividad anómala. En sistemas con systemd, consulta los eventos con journalctl
, y revisa /var/log/
para servicios concretos.
# Intentos y actividad de SSH
sudo journalctl -u ssh -S "today"
# Inicios de sesión recientes
last -a | head
Hardening del sistema
- Minimiza superficie de ataque: desinstala o desactiva servicios que no uses.
- Actualiza el sistema y habilita parches de seguridad automáticos cuando proceda.
- Principio de mínimo privilegio: limita el uso de
sudo
y separa cuentas. - Backups y restauración probada: una copia no verificada no es un backup.
# Ejemplos rápidos (Debian/Ubuntu)
sudo systemctl disable --now servicio-que-no-uses
sudo apt update && sudo apt -y upgrade
Cortafuegos: iptables y UFW
El firewall es tu primera barrera. Puedes usar iptables/nftables o una capa simple como UFW.
Ejemplo con iptables
# Permitir SSH en el puerto 22
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Permitir tráfico ya establecido y de loopback; bloquear el resto
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -P INPUT DROP
Ejemplo con UFW (más sencillo)
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose
Endurecimiento de SSH
SSH suele ser el principal vector de entrada. Endurézalo así:
- Usa claves públicas y desactiva el login por contraseña si es posible.
- Cambia el puerto o utiliza Port Knocking / segundo factor.
- Restringe usuarios/hosts con
AllowUsers
oAllowGroups
.
# /etc/ssh/sshd_config (fragmento)
PasswordAuthentication no
PermitRootLogin no
AllowGroups sshusers
LoginGraceTime 30
MaxAuthTries 3
# Aplicar cambios
sudo systemctl restart ssh
Protección contra fuerza bruta con Fail2ban
Fail2ban bloquea IPs que realizan intentos fallidos repetidos. Configura el tiempo de baneo y la cárcel de SSH:
# Tiempo de baneo de 24h para la cárcel de sshd
sudo fail2ban-client set sshd bantime 86400
# Archivo típico de override (Debian/Ubuntu)
sudo sh -c 'cat >/etc/fail2ban/jail.local << "EOF"
[sshd]
enabled = true port = 22 filter = sshd maxretry = 3 bantime = 86400 findtime = 600 EOF’ sudo systemctl restart fail2ban
Escaneo de puertos con Nmap
Descubre servicios expuestos y reduce la superficie de ataque.
# Escanear todos los puertos del host local
nmap -p 1-65535 localhost
# Escaneo rápido con detección de servicios
nmap -sV --top-ports 1000 192.168.1.0/24
Registro y auditoría en Linux
Auditar ayuda a responder incidentes y cumplir normativas.
# Buscar eventos de sudo fallidos
sudo journalctl -p warning -g "sudo"
# Revisar fallos de autenticación PAM
sudo grep "authentication failure" /var/log/auth.log 2>/dev/null | tail
Checklist rápida para servidores Linux
- ✅ Sistema actualizado y paquetes mínimos instalados.
- ✅ SSH con claves,
PermitRootLogin no
,MaxAuthTries
bajo. - ✅ Firewall activado con política por defecto restrictiva.
- ✅ Fail2ban activo para SSH y otros servicios expuestos.
- ✅ Logs revisados periódicamente y alertas configuradas.
- ✅ Backups verificados y restauración probada.
Conclusión
La seguridad en Linux no depende de una sola acción, sino de una estrategia continua: autenticación robusta, autorización granular, hardening, cortafuegos, protección contra fuerza bruta y auditoría. Mantente al día y automatiza lo posible: en un entorno de amenazas cambiante, la ciberseguridad no es opcional, es una necesidad..