Cum să securizezi SSH pe un VPS Linux
Un VPS public primește încercări automate de autentificare în câteva minute de la pornire. Pașii de mai jos fac SSH mult mai greu de atacat. Sunt scriși pentru Ubuntu sau Debian; dacă nu ai încă un server, poți închiria un VPS Linux și porni de la o imagine curată. Păstrează sesiunea SSH curentă deschisă până testezi noile setări dintr-o a doua fereastră.
1. Creează un utilizator obișnuit cu sudo
adduser deploy
usermod -aG sudo deploy2. Folosește chei SSH în loc de parole
Pe calculatorul tău:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPAutentifică-te o dată cu cheia pentru a confirma că funcționează, înainte să dezactivezi parolele.
3. Dezactivează autentificarea cu parolă și login-ul root
Creează fișierul /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Verifică sintaxa și reîncarcă serviciul. Serviciul se numește ssh pe Ubuntu și Debian și sshd pe sistemele bazate pe RHEL:
sudo sshd -t && sudo systemctl reload sshDeschide un al doilea terminal și autentifică-te din nou. Abia apoi închide vechea sesiune.
4. Activează un firewall
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseDeschide doar porturile de care ai nevoie, de exemplu 80 și 443 pentru un server web. De asemenea, poți restricționa SSH la adresa ta IP printr-o regulă de firewall din consola cloud.
5. Blochează eșecurile repetate cu Fail2ban
sudo apt install -y fail2banCreează fișierul /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Instalează automat actualizările de securitate
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Extra opționale
- Schimbarea portului SSH reduce zgomotul din jurnale, dar nu este, în sine, o măsură de securitate.
- Protejează cheia privată cu o parolă (passphrase) și păstrează o copie de siguranță într-un loc sigur.
- Verifică autentificările cu
lastșisudo journalctl -u ssh --since today. - Fă un snapshot după ce serverul este configurat, ca să poți restaura o stare de referință curată.
Dacă ți-ai pierdut accesul, folosește consola din browser din panoul cloud pentru a te autentifica și a corecta configurația. Ghidul nostru de protecție DDoS acoperă următorul nivel de apărare.
Întrebări frecvente
Este sigur să dezactivezi login-ul root?
Da, dacă mai întâi creezi un utilizator sudo și testezi că cheia lui funcționează. Poți rula în continuare comenzi administrative cu sudo.
Am nevoie de Fail2ban dacă folosesc doar chei?
Nu este obligatoriu. Cu autentificarea prin parolă dezactivată, un atac de tip brute force nu poate reuși, dar Fail2ban reduce zgomotul din jurnale și încărcarea sistemului.
Ce fac dacă îmi pierd cheia SSH?
Folosește consola din panoul cloud pentru a te autentifica, adaugă o cheie publică nouă în ~/.ssh/authorized_keys și șterge-o pe cea veche.