Kako zavarovati SSH na Linux VPS-u

Avtor: Ekipa za inženiring ONIE · Posodobljeno 12. november 2026 · Branje: 2 min

Javni VPS prejme samodejne poskuse prijave v nekaj minutah po zagonu. Ti koraki močno otežijo napade na SSH. Napisani so za Ubuntu ali Debian; če strežnika še nimate, lahko najamete Linux VPS in začnete s čisto sliko. Trenutno SSH sejo odprto pustite, dokler nove nastavitve ne preizkusite v drugem oknu.

1. Ustvarite običajnega uporabnika s sudo pravicami

adduser deploy
usermod -aG sudo deploy

2. Uporabite SSH ključe namesto gesel

Na svojem računalniku:

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

Pred izklopom gesel se enkrat prijavite s ključem in preverite, ali deluje.

3. Izklopite prijavo z geslom in prijavo kot root

Ustvarite datoteko /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Preverite sintakso in ponovno naložite storitev. Storitev se na Ubuntu in Debianu imenuje ssh, na sistemih RHEL pa sshd:

sudo sshd -t && sudo systemctl reload ssh

Odprite drugi terminal in se znova prijavite. Šele nato zaprite staro sejo.

4. Vklopite požarni zid

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

Odprite samo vrata, ki jih potrebujete, na primer 80 in 443 za spletni strežnik. SSH lahko omejite tudi na svoj IP naslov s pravilom požarnega zidu v spletni konzoli ponudnika.

5. Blokirajte ponavljajoče se neuspešne poskuse z Fail2ban

sudo apt install -y fail2ban

Ustvarite datoteko /etc/fail2ban/jail.local:

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Samodejno namestite varnostne posodobitve

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Dodatne možnosti

  • Sprememba vrat SSH zmanjša število dnevniških zapisov, vendar sama po sebi ni varnostni ukrep.
  • Zasebni ključ zaščitite z geslom in hranite varno kopijo na varnem mestu.
  • Prijave pregledujte z ukazom last in sudo journalctl -u ssh --since today.
  • Ko je strežnik nastavljen, naredite posnetek stanja, da lahko kasneje obnovite čisto izhodišče.

Če ste zaklenjeni iz strežnika, uporabite brskalniško konzolo v svoji nadzorni plošči za prijavo in popravilo nastavitev. Naš vodnik za zaščito pred DDoS opisuje naslednjo plast obrambe.

Pogosto zastavljena vprašanja

Ali je varno onemogočiti prijavo kot root?

Da, če prej ustvarite uporabnika s sudo pravicami in preverite, ali njegov ključ deluje. Administrativne ukaze še vedno lahko izvajate s sudo.

Ali potrebujem Fail2ban, če uporabljam samo ključe?

Ni nujno. Ko je prijava z geslom onemogočena, napad z grobo silo ne more uspeti, vendar Fail2ban zmanjša število dnevniških zapisov in obremenitev.

Kaj storiti, če izgubim SSH ključ?

Prijavite se prek konzole v svoji nadzorni plošči, dodajte nov javni ključ v datoteko ~/.ssh/authorized_keys in odstranite stari.

Viri in za nadaljnje branje

Več vodnikov za VPS