Kaip apsaugoti SSH Linux VPS serveryje

Autorius ONIE inžinerijos komanda · Atnaujinta 2026 m. lapkričio 12 d. · 2 min skaitymo

Viešas VPS sulaukia automatinių prisijungimo bandymų vos per kelias minutes po paleidimo. Šie žingsniai žymiai apsunkina SSH puolimą. Jie parašyti Ubuntu ar Debian sistemoms; jei serverio dar neturite, galite išsinuomoti Linux VPS ir pradėti nuo švaraus vaizdo. Palikite dabartinę SSH sesiją atidarytą tol, kol iš antro lango neišbandysite naujų nustatymų.

1. Sukurkite įprastą vartotoją su sudo

adduser deploy
usermod -aG sudo deploy

2. Naudokite SSH raktus vietoj slaptažodžių

Savo kompiuteryje:

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

Prisijunkite su raktu vieną kartą, kad įsitikintumėte, jog jis veikia, prieš išjungdami slaptažodžius.

3. Išjunkite slaptažodžių ir root prisijungimą

Sukurkite failą /etc/ssh/sshd_config.d/99-hardening.conf:

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Patikrinkite sintaksę ir perkraukite paslaugą. Paslauga Ubuntu ir Debian sistemose vadinasi ssh, o RHEL pagrindo sistemose – sshd:

sudo sshd -t && sudo systemctl reload ssh

Atidarykite antrą terminalą ir prisijunkite iš naujo. Tik tada uždarykite seną sesiją.

4. Įjunkite ugniasienę

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

Atverkite tik reikalingus prievadus, pavyzdžiui, 80 ir 443 tinklalapiui. SSH taip pat galite apriboti tik savo IP adresui ugniasienės taisykle debesijos valdymo konsolėje.

5. Blokuokite pakartotinius nesėkmingus bandymus su Fail2ban

sudo apt install -y fail2ban

Sukurkite failą /etc/fail2ban/jail.local:

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

6. Įdiekite saugumo atnaujinimus automatiškai

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

7. Papildomi patarimai

  • Keičiant SSH prievadą sumažėja žurnalo triukšmo, tačiau savaime tai nėra saugumo priemonė.
  • Apsaugokite privatų raktą slaptafraze ir laikykite jo atsarginę kopiją saugioje vietoje.
  • Peržiūrėkite prisijungimus komandomis last ir sudo journalctl -u ssh --since today.
  • Padarykite momentinę kopiją, kai serveris bus sukonfigūruotas, kad galėtumėte atkurti švarią pradinę būseną.

Jei užsirakinote, prisijunkite per naršyklės konsolę debesijos valdymo skydelyje ir ištaisykite konfigūraciją. Mūsų DDoS apsaugos vadovas aprašo kitą apsaugos lygmenį.

Dažniausiai užduodami klausimai

Is it safe to disable root login?

Yes, if you first create a sudo user and test that its key works. You can still run administrative commands with sudo.

Do I need Fail2ban if I use keys only?

It is optional. With password login disabled, brute force cannot succeed, but Fail2ban reduces log noise and load.

What if I lose my SSH key?

Use the console in your cloud panel to log in, add a new public key to ~/.ssh/authorized_keys and remove the old one.

Šaltiniai ir tolesnė literatūra

Daugiau VPS vadovų