Últimamente me llegan varios mensajes del tipo “me abrieron el VPS” o “me entraron por SSH y no sé cómo”. No te voy a vender humo: si self-hosteás, la seguridad básica no es opcional. Por eso armé este video con un checklist mínimo, realista y aplicable en 15–30 minutos para que tu server no quede regalado. Nada raro: lo que todo server debería tener de base.
1) Usá un usuario que no sea root (y dale sudo solo cuando haga falta)
Entrar como root directo por SSH es invitar problemas. Creá un usuario normal y, si necesitás privilegios, usá sudo.
# Crear usuario
adduser dev
# Darle sudo (en Debian/Ubuntu)
usermod -aG sudo dev
# Probar login con el usuario nuevo
su - dev
sudo -v
Opcional (pero recomendado): deshabilitá el login de root por SSH. Editá:
sudo nano /etc/ssh/sshd_config
# Asegurate de tener:
PermitRootLogin no
Y reiniciá el servicio:
sudo systemctl restart ssh
2) SSH con claves, nada de passwords
Las contraseñas las adivinás con fuerza bruta. Las claves, no.
-
Generá tu key (en tu máquina):
ssh-keygen -t ed25519 -C "tu-mail" -
Subila al server:
ssh-copy-id dev@tu-server -
Probá que entrás con la key y recién ahí deshabilitá passwords:
sudo nano /etc/ssh/sshd_config
Asegurate de tener:
PasswordAuthentication no
PubkeyAuthentication yes
Opcional:
Port 2222
- Reiniciar SSH:
```bash
sudo systemctl restart ssh
Tip: si cambiás el puerto, no es “seguridad” en sí, pero baja el ruido de bots.
3) Firewall encendido y solo lo necesario abierto
Que entre lo que vos decidas, no todo.
Con UFW (Debian/Ubuntu):
# Política restrictiva por defecto
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Permití SSH (ajustá si cambiaste el puerto)
sudo ufw allow OpenSSH
# o, si usás un puerto custom:
# sudo ufw allow 2222/tcp
# Si vas a servir web:
sudo ufw allow 80,443/tcp
# Activar y revisar
sudo ufw enable
sudo ufw status verbose
Atajo: para SSH podés usar rate limit:
sudo ufw limit OpenSSH
4) Updates automáticos: parches de seguridad sin pensar
Muchas intrusiones vienen por vulnerabilidades ya conocidas. Actualizá y automatizá.
Debian/Ubuntu:
sudo apt update && sudo apt upgrade -y
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
Chequeá que se actualicen los paquetes de seguridad y que los reboots automáticos estén configurados si te sirven. En distros RPM, mirá dnf-automatic.
5) Fail2ban para frenar intentos y bots cabezones
Bloquea IPs que fallan muchas veces, especialmente útil para SSH.
sudo apt install -y fail2ban
sudo systemctl enable --now fail2ban
Config rápida:
# Crear override local
sudo nano /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
maxretry = 5
findtime = 10m
bantime = 1h
Aplicá y verificá:
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
Bonus opcional:
- 2FA para SSH (pam_google_authenticator).
- Backups fuera del server (si te cifran o rompen algo, te salvás).
- Alertas básicas: logwatch, healthchecks para cron, y un ping si el server se cae.
Mirá el paso a paso en el video
Cierre
No hace falta ser paranoico, pero sí disciplinado. Con estas cinco cosas ya pasás de “expuesto” a “razonable” en muy poco tiempo. Después podés ir sumando capas, pero arrancá por acá. Si te sirve, dejame un comentario contándome qué agregaste en tu setup, y andá a auditar tu server con un mate al lado. Nos vemos en el próximo.
![]()

