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.

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í:

  1. Usa claves públicas y desactiva el login por contraseña si es posible.
  2. Cambia el puerto o utiliza Port Knocking / segundo factor.
  3. Restringe usuarios/hosts con AllowUsers o AllowGroups.
# /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..