5 parasta käytäntöä SSH:n brute-Force -sisäänkirjautumishyökkäysten estämiseksi


Palvelimet, joissa on SSH, ovat yleensä pehmeä kohde raa'an voiman hyökkäyksille. Hakkerit kehittävät jatkuvasti innovatiivisia ohjelmistotyökaluja ja botteja raa'an voiman hyökkäysten automatisoimiseksi, mikä lisää tunkeutumisriskiä entisestään.

Tässä oppaassa tutkimme joitain vihjeitä, joita voit toteuttaa suojataksesi SSH-palvelimesi raakoja hyökkäyksiä vastaan RHEL-pohjaisia Linux-jakeluja ja Debian-johdannaisia vastaan.

Poista SSH-salasanatodennus käytöstä ja ota käyttöön SSH-avaintodennus

Oletustodennusmenetelmä SSH:lle on käyttäjänimen/salasanan todennus. Mutta kuten olemme nähneet, salasanatodennus on altis raa'an voiman hyökkäyksille. Varmuuden vuoksi on suositeltavaa ottaa käyttöön avainpohjainen SSH-todennus, jossa todennus on mahdollista julkisten ja yksityisten SSH-avainparien avulla. Yksityinen avain pysyy asiakkaan tietokoneessa, kun julkinen avain kopioidaan palvelimelle.

SSH-avaimen todennuksen aikana palvelin tarkistaa, onko asiakastietokoneella yksityinen avain. Jos tarkistus onnistuu, komentotulkkiistunto luodaan tai etäpalvelimelle lähetetty komento suoritetaan onnistuneesti. Meillä on kattava opas SSH-avainpohjaisen todennuksen määrittämiseen.

Jopa avainpohjaisen todennuksen määrittämisen jälkeen palvelimesi on edelleen alttiina raa'an voiman hyökkäyksille siitä yksinkertaisesta syystä, että salasanatodennus on edelleen aktiivinen. Tämä on poistettava käytöstä.

Muokkaa siksi oletusarvoista SSH-määritystiedostoa.

sudo vim /etc/ssh/sshd_config

Aseta PasswordAuthentication-parametrin arvoksi ei kuvan mukaisesti.

PasswordAuthentication no

Tallenna sitten tiedosto ja päivitä SSH ottaaksesi muutokset käyttöön.

sudo systemctl reload ssh

Ota käyttöön Fail2ban-tunkeutumisen estotyökalu

Pythonilla kirjoitettu Fail2ban on avoimen lähdekoodin tunkeutumisen estokehys, joka tarkistaa palveluiden lokitiedostot todennusvirheiden varalta ja estää IP-osoitteet, jotka toistuvasti epäonnistuvat salasanan todennustarkistuksissa tietyn ajan.

Fail2ban tarkkailee jatkuvasti palvelimen lokitiedostoja tunkeutumisyritysten ja muun ilkeän toiminnan varalta. Ennalta määritetyn määrän todennusvirheitä – useimmissa tapauksissa kolme epäonnistunutta kirjautumisyritystä – Fail2ban estää automaattisesti etäisännän pääsyn palvelimeen. isäntä pidetään vankilassa tietyn ajan.

Näin tehdessään Fail2ban vähentää merkittävästi virheellisten salasanan todennusyritysten määrää. Tutustu oppaaseemme siitä, kuinka voit asentaa ja määrittää Fail2banin Linuxissa suojaamaan palvelimesi Bruteforce-hyökkäyksiltä.

Rajoita SSH-todennusyritysten enimmäismäärää

Toinen yksinkertainen tapa suojata palvelimesi raakoja hyökkäyksiä vastaan on rajoittaa SSH-kirjautumisyritysten määrää. Oletuksena tämä on 3, mutta jos tämä on sattumalta asetettu korkeampaan arvoon, aseta se enintään kolmeen yhteysyritykseen.

Jos haluat esimerkiksi asettaa yhteysyritysten enimmäismääräksi 3, aseta MaxAuthTries-parametrin arvoksi 3 kuvan mukaisesti.

MaxAuthTries = 3

Jälleen kerran, tallenna muutokset ja lataa SSH-palvelu uudelleen.

sudo systemctl reload ssh

Käytä TCP-kääreitä rajoittamaan asiakkaiden SSH-käyttöä

TCP-kääreet on kirjasto, joka tarjoaa isäntäpohjaisen Access Control List -luettelon (ACL), joka rajoittaa etäasiakkaiden pääsyä TCP-palveluihin niiden perusteella. IP-osoitteet

Etäisännät pääsemästä järjestelmän palveluihin. TCP-kääreet käyttävät /etc/hosts.allow- ja /etc/hosts.deny-määritystiedostoja (tässä järjestyksessä) määrittääkseen, saako etäasiakas käyttää tiettyä palvelu vai ei.

Yleensä nämä tiedostot kommentoidaan ja kaikki isännät sallitaan TCP-käärekerroksen läpi. Tietyn palvelun käytön sallimista koskevat säännöt sijoitetaan /etc/hosts.allow-tiedostoon, ja ne ovat etusijalla /etc/hosts.deny-tiedoston sääntöihin nähden.

Paras käytäntö suosittelee kaikkien saapuvien yhteyksien estämistä. Avaa siksi tiedosto /etc/hosts.deny.

sudo vim /etc/hosts.deny

Lisää seuraava rivi.

ALL: ALL

Tallenna muutokset ja poistu tiedostosta.

Avaa sitten /etc/hosts.allow-tiedosto.

sudo vim /etc/hosts.allow

Määritä isännät tai toimialueet, jotka voivat muodostaa yhteyden palvelimeen SSH:n kautta, kuten kuvassa. Tässä esimerkissä sallimme vain kahden etäisännän muodostaa yhteyden palvelimeen (173.82.227.89 ja 173.82.255.55) ja estämme loput.

sshd: 173.82.227.89 173.82.255.55
sshd: ALL: DENY

Tallenna muutokset ja poistu asetustiedostosta.

Testaa sitä yrittämällä muodostaa yhteys palvelimeen isännästä, joka ei ole niiden joukossa, joihin sinulla on pääsy. Sinun pitäisi saada lupavirhe, kuten kuvassa.

ssh [email 

kex_exchange_identification: read: Connection reset by peer
Connection reset by 173.82.235.7 port 22
lost connection

Ota käyttöön SSH-kaksitekijätodennus

Kaksitekijäinen todennus tarjoaa lisäsuojauskerroksen salasanatodennukseen, mikä tekee palvelimestasi turvallisemman raakoja hyökkäyksiä vastaan. Laajalti käytetty Kaksitekijätodennus -ratkaisu on Google Authenticator -sovellus, ja meillä on hyvin dokumentoitu opas kaksifaktorisen todennuksen määrittämiseen.

Johtopäätös

Tämä oli yhteenveto viidestä parhaasta käytännöstä, jotka voit toteuttaa estääksesi SSH Brute Force -kirjautumishyökkäykset ja varmistaaksesi palvelimesi turvallisuuden. Voit myös lukea OpenSSH-palvelimen suojaaminen ja vahvistaminen.