Näin suojaat SSH:n Linux VPS:llä
Julkinen VPS saa automaattisia kirjautumisyrityksiä minuuteissa sen käynnistymisen jälkeen. Nämä vaiheet vaikeuttavat SSH:n hyökkäämistä merkittävästi. Ohjeet on kirjoitettu Ubuntulle ja Debianille. Jos palvelinta ei ole vielä luotu, voit vuokrata Linux VPS:n ja aloittaa puhtaasta levykuvasta. Pidä nykyinen SSH-istunto auki, kunnes olet testannut uudet asetukset toisesta ikkunasta.
1. Luo tavallinen käyttäjä sudo-oikeuksilla
adduser deploy
usermod -aG sudo deploy2. Käytä SSH-avaimia salasanojen sijaan
Omalla tietokoneellasi:
ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IPKirjaudu kerran avaimella varmistaaksesi, että se toimii, ennen kuin poistat salasanat käytöstä.
3. Poista salasana- ja root-kirjautuminen käytöstä
Luo /etc/ssh/sshd_config.d/99-hardening.conf:
PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3Tarkista syntaksi ja lataa palvelu uudelleen. Palvelun nimi on ssh Ubuntulla ja Debianilla ja sshd RHEL-pohjaisilla järjestelmillä:
sudo sshd -t && sudo systemctl reload sshAvaa toinen pääte ja kirjaudu uudelleen. Sulje vanha istunto vasta sitten.
4. Ota palomuuri käyttöön
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verboseAvaa vain tarvitsemasi portit, kuten 80 ja 443 web-palvelimelle. Voit myös rajoittaa SSH:n omaan IP-osoitteeseesi pilvipaneelin palomuurisäännöllä.
5. Estä toistuvat epäonnistumiset Fail2banilla
sudo apt install -y fail2banLuo /etc/fail2ban/jail.local:
[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1hsudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd6. Asenna tietoturvapäivitykset automaattisesti
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades7. Valinnaiset lisät
- SSH-portin vaihtaminen vähentää lokikohinaa, mutta ei ole sellaisenaan tietoturvatoimi.
- Suojaa yksityinen avain salasanalauseella ja säilytä varmuuskopio turvallisessa paikassa.
- Tarkista kirjautumiset komennoilla
lastjasudo journalctl -u ssh --since today. - Ota snapshot, kun palvelin on konfiguroitu, jotta voit palauttaa puhtaan lähtötilan.
Jos lukitset itsesi ulos, käytä pilvipaneelin selainkonsolia kirjautumiseen ja asetusten korjaamiseen. DDoS-suojausopas kertoo seuraavasta puolustuskerroksesta.
Usein kysytyt kysymykset
Onko root-kirjautumisen poistaminen turvallista?
Kyllä, kunhan luot ensin sudo-käyttäjän ja testaat, että sen avain toimii. Ylläpitokomentoja voi edelleen suorittaa sudo-komennolla.
Tarvitsenko Fail2bania, jos käytän pelkkiä avaimia?
Se on valinnainen. Kun salasanakirjautuminen on pois käytöstä, salasanan arvaushyökkäys ei voi onnistua, mutta Fail2ban vähentää lokikohinaa ja kuormaa.
Mitä jos kadotan SSH-avaimeni?
Kirjaudu pilvipaneelin konsolin kautta, lisää uusi julkinen avain tiedostoon ~/.ssh/authorized_keys ja poista vanha.