Com assegurar SSH en un VPS Linux
Un VPS públic rep intents automàtics d'inici de sessió en pocs minuts després de posar-se en marxa. Aquests passos fan que SSH sigui molt més difícil d'atacar. Estan escrits per a Ubuntu o Debian; si encara no has creat el servidor, pots llogar un VPS Linux i començar amb una imatge neta. Mantén oberta la teva sessió SSH actual fins que hagis provat la nova configuració des d'una segona finestra.
1. Crea un usuari normal amb sudo
adduser deploy
usermod -aG sudo deploy2. Usa claus SSH en lloc de contrasenyes
Al teu ordinador:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPInicia sessió una vegada amb la clau per confirmar que funciona abans de desactivar les contrasenyes.
3. Desactiva l'accés per contrasenya i com a root
Crea /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Comprova la sintaxi i recarrega el servei. El servei es diu ssh a Ubuntu i Debian, i sshd als sistemes basats en RHEL:
sudo sshd -t && sudo systemctl reload sshObre un segon terminal i torna a iniciar sessió. Només després tanca la sessió antiga.
4. Activa un tallafoc
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseObre només els ports que necessitis, com el 80 i el 443 per a un servidor web. També pots restringir SSH a la teva pròpia adreça IP amb una regla de tallafoc a la consola del núvol.
5. Bloqueja els errors repetits amb Fail2ban
sudo apt install -y fail2banCrea /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Instal·la actualitzacions de seguretat automàticament
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Extres opcionals
- Canviar el port SSH redueix el soroll als registres, però no és una mesura de seguretat per si sola.
- Protegeix la clau privada amb una frase de pas i guarda'n una còpia en un lloc segur.
- Revisa els inicis de sessió amb
lastisudo journalctl -u ssh --since today. - Fes una instantània un cop configurat el servidor, perquè puguis restaurar una base neta.
Si et quedes bloquejat, utilitza la consola del navegador del teu panell del núvol per iniciar sessió i corregir la configuració. La nostra guia de protecció contra DDoS explica la següent capa de defensa.
Preguntes freqüents
És segur desactivar l'accés com a root?
Sí, si primer crees un usuari sudo i proves que la seva clau funciona. Encara pots executar ordres administratives amb sudo.
Necessito Fail2ban si només faig servir claus?
És opcional. Amb l'inici de sessió per contrasenya desactivat, un atac de força bruta no pot tenir èxit, però Fail2ban redueix el soroll als registres i la càrrega.
Què passa si perdo la meva clau SSH?
Usa la consola del teu panell del núvol per iniciar sessió, afegeix una nova clau pública a ~/.ssh/authorized_keys i elimina la antiga.