De ce contează
Un VPS proaspăt pornit e o țintă. La câteva minute după ce primește un IP public, încep să vină încercări automate de ghicire a parolei SSH, scanări de porturi și încercări de exploit. Nu e paranoia: uită-te în log după jumătate de oră.
grep "Failed password" /var/log/auth.log | tail -20
O să vezi sute de încercări. Ghidul ăsta închide, pe rând, ușile evidente.
Comenzile sunt pentru Ubuntu 24.04, sistemul cu care vin VPS-urile Wiptor.
Pasul 1: un utilizator fără root
Să faci totul ca root e periculos. O greșeală sau o sesiune compromisă dă acces complet. Fă-ți un utilizator obișnuit și pune-l în grupul sudo:
adduser admin
usermod -aG sudo admin
Ieși și intră din nou cu utilizatorul nou pentru restul pașilor.
Pasul 2: autentificare cu cheie SSH
Parolele pot fi ghicite. Cheile SSH, practic, nu. Generează o pereche de chei pe calculatorul tău:
ssh-keygen -t ed25519 -C "email@exemplu.ro"
Copiază cheia publică pe server:
ssh-copy-id admin@IP_SERVER
Verifică dacă intri cu cheia înainte să dezactivezi parolele:
ssh admin@IP_SERVER
Pasul 3: setări mai sigure pentru SSH
Pe Ubuntu 24.04 e mai sigur să pui setările într-un fișier separat, pe care actualizările nu-l ating:
sudo nano /etc/ssh/sshd_config.d/10-securitate.conf
Pune în el:
Port 2277
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
AllowUsers admin
Portul 2277: dacă muți SSH de pe portul 22, scapi de majoritatea scanerelor automate, care încearcă doar portul implicit. Poți folosi orice port între 1024 și 65535.
Pe Ubuntu 24.04, SSH pornește printr-un socket, așa că după schimbarea portului dai:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
sudo systemctl restart ssh
Nu închide sesiunea curentă. Deschide alt terminal și verifică dacă intri pe portul nou:
ssh -p 2277 admin@IP_SERVER
Pasul 4: firewall cu UFW
Pune regulile de bază:
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing
Permite întâi portul SSH. E foarte important să faci asta înainte să pornești firewall-ul, altfel rămâi pe dinafară:
sudo ufw allow 2277/tcp
Dacă ai un server web:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Porturile pentru jocuri, după caz:
sudo ufw allow 25565/tcp
sudo ufw allow 27015/udp
sudo ufw allow 7777/udp
(Minecraft, jocuri Source, port de joc general.)
Pornește firewall-ul și verifică:
sudo ufw enable
sudo ufw status verbose
Pasul 5: ban automat cu fail2ban
fail2ban urmărește logurile și banează automat adresele care se poartă suspect, de exemplu prea multe încercări greșite de login pe SSH.
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban
Fă-ți propriul fișier de setări (nu modifica originalul, se suprascrie la actualizări):
sudo nano /etc/fail2ban/jail.local
Pune:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 3
backend = systemd
[sshd]
enabled = true
port = 2277
Repornește și verifică:
sudo systemctl restart fail2ban
sudo fail2ban-client status sshd
După trei încercări greșite, adresa respectivă e banată automat o oră.
Pasul 6: actualizări de securitate automate
Patch-urile de securitate importante trebuie să se instaleze singure, fără să-ți aduci tu aminte:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
Alege „Yes”. Se instalează automat doar actualizările de securitate, nu toate actualizările, care ar putea strica ceva.
Pasul 7: verificare de rootkit-uri
rkhunter caută rootkit-uri, backdoor-uri și exploit-uri cunoscute:
sudo apt install rkhunter -y
sudo rkhunter --update
sudo rkhunter --check --skip-keypress --report-warnings-only
Rulează verificarea săptămânal. Pentru asta, deschide sudo crontab -e și adaugă linia:
0 3 * * 0 /usr/bin/rkhunter --check --skip-keypress --report-warnings-only
Rulează în fiecare duminică la 3 dimineața. Rezultatele le găsești în /var/log/rkhunter.log.
Pasul 8: memoria partajată mai sigură
Memoria partajată poate fi folosită de procese rău intenționate. O poți monta cu restricții:
sudo nano /etc/fstab
Adaugă:
tmpfs /dev/shm tmpfs defaults,noexec,nosuid,nodev 0 0
Aplică fără repornire:
sudo mount -o remount /dev/shm
Atenție: unele programe (de exemplu anumite baze de date) au nevoie de /dev/shm fără restricții. Dacă ceva nu mai pornește după acest pas, scoate linia.
Pasul 9: oprește serviciile de care nu ai nevoie
Vezi ce rulează:
sudo systemctl list-units --type=service --state=running
Pe un server web sau de jocuri, de obicei nu ai nevoie de servicii ca:
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now cups
Oprește doar ce știi sigur că nu folosești.
Pasul 10: verificări periodice
Rulează din când în când:
who
sudo ss -tulpn
sudo grep "Failed password" /var/log/auth.log | tail -20
sudo fail2ban-client status sshd
sudo apt list --upgradable
(Cine e logat, ce porturi sunt deschise, încercările de login eșuate, adresele banate și actualizările disponibile.)
Ce ai acum
După ghid, serverul tău are: SSH doar cu cheie, pe un port nestandard, fără login de root, firewall care blochează tot ce nu ai permis, ban automat pentru încercările de ghicire a parolei, actualizări de securitate automate, verificare săptămânală de rootkit-uri și memorie partajată securizată.
Nu e securitate teoretică. E baza practică ce închide exact atacurile pe care le vezi deja în loguri.
Securitatea la Wiptor
Protecția DDoS Wiptor oprește atacurile la nivel de rețea (inundații de trafic, atacuri UDP, atacuri pe protocoale) înainte să ajungă la VPS-ul tău. Ghidul ăsta acoperă sistemul de operare. Împreună acoperă cele două mari zone de atac ale unui VPS. Securitatea aplicației tale (parole, versiuni actualizate, setări) e al treilea nivel și rămâne în grija ta.
Dacă nu vrei să faci toate astea singur, serviciile noastre administrate se ocupă de securizarea și întreținerea serverului pentru tine.
Vrei propriul server?
Servere de jocuri de la 3 €/lună, cu activare instantă și protecție DDoS inclusă.
Vezi planurile →