// MISIÓN: Perimeter Defense (Fortress Mode)
// TARGET: SSH Service & User Access
// REF: CIS Benchmark v2.0.0
En el post anterior (0x00) establecimos la base.
Ahora toca cerrar las compuertas.
Un servidor expuesto a Internet recibe una media de 3.000 intentos de login por día en el puerto 22.
En esta fase 0x01, vamos a configurar el bastionado del servicio SSH y el Firewall para reducir esa superficie de ataque a cero.
0x00. El Principio de Menor Privilegio
Antes de bloquear a root, necesitamos un operador capaz de asumir el mando.
Nunca operes como root directamente.
# 1. Crear usuario operativo sudo adduser operador2. Conceder privilegios sudo (Wheel group)
sudo usermod -aG sudo operador
3. Verificar membresía
groups operador
Output: operador : operador sudo
Ahora, loguéate con el nuevo usuario antes de continuar.
Si cierras la sesión actual sin comprobarlo, perderás el control del servidor.
0x01. SSH Hardening
El archivo /etc/ssh/sshd_config es tu primera línea de defensa. Basándonos en las guías de bastionado, aplicaremos cambios críticos para cumplir con el estándar CIS.
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Editamos sudo nano /etc/ssh/sshd_config y ajustamos los siguientes parámetros:
# --- 0x01 Security Config ---1. Mover puerto (Evita scanners masivos)
Port 2222
2. Protocolo 2 (Deshabilita SSH-1 obsoleto)
Protocol 2
3. NO permitir root (CIS 5.2.10)
PermitRootLogin no
4. Máximos intentos de autenticación (Mitiga Brute Force)
MaxAuthTries 3
5. Tiempo de gracia para login (Evita conexiones zombies)
LoginGraceTime 60
6. Deshabilitar contraseñas vacías
PermitEmptyPasswords no
Si ya tienes claves SSH configuradas, cambia PasswordAuthentication no para forzar el uso de criptografía asimétrica y eliminar el riesgo de robo de passwords.
0x02. UFW The Moat
Un firewall bien configurado debe ser paranoico:
Denegar todo lo que no sea explícitamente necesario.
# 1. Resetear a estado limpio sudo ufw reset2. Política de Denegación por Defecto (Inbound)
sudo ufw default deny incoming
3. Permitir Salida (Outbound) - Necesario para updates/curl
sudo ufw default allow outgoing
4. ABRIR EL PUERTO NUEVO (¡CRÍTICO!)
sudo ufw allow 2222/tcp comment ‘SSH Custom Port’
5. Activar escudos
sudo ufw enable
Verifica el estado final con sudo ufw status verbose.
Deberías ver solo el puerto 2222 permitido.
"Security is not a product, it's a mindset."