5 parimat tava SSH brute-force sisselogimise rünnakute ärahoidmiseks
SSH-d töötavad serverid on tavaliselt toore jõu rünnakute pehme sihtmärk. Häkkerid toovad pidevalt välja uuenduslikke tarkvaratööriistu ja roboteid toore jõu rünnakute automatiseerimiseks, mis suurendab veelgi sissetungimise ohtu.
Selles juhendis uurime mõningaid näpunäiteid, mida saate rakendada oma SSH-serverite kaitsmiseks Debiani tuletistele suunatud jõhkrate rünnakute eest.
Keelake SSH-parooliautentimine ja lubage SSH-võtmega autentimine
SSH vaike autentimismeetod on kasutajanime/parooli autentimine. Kuid nagu nägime, on parooliga autentimine altid jõhkra jõu rünnakutele. Ohutuse huvides on soovitatav rakendada võtmepõhist SSH-autentimist, kus autentimine on võimalik avaliku ja privaatse SSH-võtmepaaride abil. Privaatvõti jääb kliendi arvutisse, kuni avalik võti serverisse kopeeritakse.
SSH-võtme autentimise ajal kontrollib server, kas klientarvutil on privaatvõti. Kui kontroll õnnestub, luuakse shellisessioon või täidetakse edukalt kaugserverisse saadetud käsk. Meil on põhjalik juhend SSH-võtmepõhise autentimise konfigureerimiseks.
Isegi pärast võtmepõhise autentimise seadistamist on teie server endiselt vastuvõtlik toore jõu rünnakutele sel lihtsal põhjusel, et parooli autentimine on endiselt aktiivne. See tuleb keelata.
Seetõttu redigeerige SSH-i vaikekonfiguratsioonifaili.
$ sudo vim /etc/ssh/sshd_config
Määrake parameetri PasswordAuthentication väärtuseks ei, nagu näidatud.
PasswordAuthentication no

Seejärel salvestage fail ja laadige muudatuste rakendamiseks uuesti SSH.
$ sudo systemctl reload ssh
Rakendage sissetungimise vältimise tööriist Fail2ban
Pythonis kirjutatud Fail2ban on avatud lähtekoodiga sissetungimise vältimise raamistik, mis kontrollib teenuste logifaile autentimistõrgete tuvastamiseks ja keelab kindlaksmääratud aja jooksul IP-d, mis korduvalt ebaõnnestuvad parooli autentimise kontrollimisel.
Fail2ban jälgib pidevalt serveri logifaile sissetungikatsete ja muude pahatahtlike tegevuste suhtes. Pärast eelmääratletud arvu autentimistõrkeid – enamikul juhtudel 3 ebaõnnestunud sisselogimiskatset – blokeerib Fail2ban automaatselt kaughosti juurdepääsu serverile ja hosti hoitakse ' Kindlaks ajaks vangi.
Seejuures vähendab Fail2ban märkimisväärselt vale parooli autentimise katsete arvu. Vaadake meie juhendit selle kohta, kuidas installida ja konfigureerida Fail2ban Linuxis, et kaitsta oma serverit Bruteforce'i rünnakute eest.
Piirake SSH autentimise katsete arvu
Teine lihtne viis oma serveri kaitsmiseks jõhkrate jõurünnakute eest on SSH-i sisselogimiskatsete arvu piiramine. Vaikimisi on see seatud väärtusele 3, kuid kui see on juhuslikult seatud suuremale väärtusele, seadke see maksimaalselt kolmele ühenduskatsele.
Näiteks selleks, et määrata maksimaalseks ühenduskatseteks 3, määrake parameetri MaxAuthTries väärtuseks 3, nagu näidatud
MaxAuthTries = 3
Veel kord salvestage muudatused ja laadige SSH-teenus uuesti.
$ sudo systemctl reload ssh
Rakendage TCP-mähiseid, et piirata klientidelt SSH-le juurdepääsu
TCP wrappers on teek, mis pakub hostipõhist juurdepääsukontrolli loendit (ACL), mis piirab kaugklientide juurdepääsu TCP-teenustele nende IP-aadresside alusel.
Kaughostid ei pääse süsteemi teenustele juurde. TCP wrappers kasutab /etc/hosts.allow ja /etc/hosts.deny konfiguratsioonifaile (selles järjekorras), et teha kindlaks, kas kaugkliendil on lubatud juurdepääs konkreetsele teenusele või mitte.
Tavaliselt kommenteeritakse neid faile ja kõik hostid lubatakse läbi TCP ümbriste kihi. Teatud teenusele juurdepääsu lubamise reeglid asetatakse faili /etc/hosts.allow ja need on ülimuslikud faili /etc/hosts.deny reeglite suhtes.
Parim tava soovitab blokeerida kõik sissetulevad ühendused. Seetõttu avage fail /etc/hosts.deny.
$ sudo vim /etc/hosts.deny
Lisage järgmine rida.
ALL: ALL
Salvestage muudatused ja väljuge failist.
Seejärel avage fail /etc/hosts.allow.
$ sudo vim /etc/hosts.allow
Konfigureerige hostid või domeenid, mis saavad SSH kaudu serveriga ühenduse luua, nagu näidatud. Selles näites lubame serveriga ühenduse luua ainult kahel kaughostil (173.82.227.89 ja 173.82.255.55) ning ülejäänu keelame.
sshd: 173.82.227.89 173.82.255.55
sshd: ALL: DENY

Salvestage muudatused ja väljuge konfiguratsioonifailist.
Selle testimiseks proovige luua ühendus serveriga hostist, mis pole nende hulgas, millele teil on juurdepääs lubatud. Peaksite saama loa veateate, nagu näidatud.
$ ssh [email
kex_exchange_identification: read: Connection reset by peer
Connection reset by 173.82.235.7 port 22
lost connection
Rakendage SSH kahefaktorilist autentimist
Kahe teguriga autentimine pakub parooliga autentimisele täiendavat turvakihti, muutes seeläbi teie serveri jõhkrate rünnakute eest turvalisemaks. Laialdaselt kasutatav kahefaktorilise autentimise lahendus on Google Authenticator App ja meil on hästi dokumenteeritud juhend kahe teguri autentimise seadistamise kohta.
See oli kokkuvõte viiest parimast tavast, mida saate rakendada, et vältida SSH Brute Force'i sisselogimisrünnakuid ja tagada oma serveri turvalisus. Võite lugeda ka OpenSSH-serveri turvalisuse ja tugevdamise kohta.