Kako blokirati SSH Brute Force napade koristeći SSHGUARD
SSHGuard demon je otvorenog koda koji štiti hostove od brutalnih napada. To postiže praćenjem i agregacijom zapisnika sustava, otkrivanjem napada i blokiranjem napadača pomoću jednog od pozadina vatrozida Linuxa: iptables, FirewallD, pf i ipfw.
U početku dizajniran da pruži dodatni sloj zaštite za OpenSSH uslugu, SSHGuard također štiti širok raspon usluga kao što su Vsftpd i Postfix. Prepoznaje nekoliko formata dnevnika uključujući Syslog, Syslog-ng i neobrađene log datoteke.
SSHGuard prilično je sličan Fail2banu samo što je napisan u C (Fail2ban je napisan u Pythonu), lakši i pruža manje značajki.
U ovom ćemo vodiču pokazati kako možete instalirati i konfigurirati SSHGuard za blokiranje SSH grubih napada na vašem Linux poslužitelju.
Korak 1: Instalirajte SSHGuard na Linux
Počinjemo s instalacijom SSHGuarda na Linuxu.
Instalirajte SSHGuard na Debian/Ubuntu
Najprije ažurirajte popise paketa, a zatim instalirajte SSHGuard iz zadanih repozitorija pomoću odgovarajućeg upravitelja paketa.
sudo apt update
sudo apt install sshguard
Nakon instaliranja, usluga SSHGuard automatski se pokreće, a to možete provjeriti pomoću naredbe:
sudo systemctl status sshguard
Instalirajte SSHGuard na RHEL Systems
Za distribucije temeljene na RHEL-u kao što su CentOS, Rocky i AlmaLinux, započnite instaliranjem spremišta EPEL kao navedeno u naredbi ispod.
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
sudo dnf install epel-release
S EPEL na mjestu, samo naprijed i instalirajte SSHGuard pomoću dnf upravitelja paketa.
sudo dnf install sshguard
Nakon instalacije, pokrenite i postavite SSHGuard da se pokrene pri pokretanju ili ponovnom pokretanju sustava.
sudo systemctl start sshguard
sudo systemctl enable sshguard
Obavezno provjerite radi li SSHGuard kako se očekuje.
sudo systemctl status sshguard
Korak 2: Konfiguracija SSHGuarda na Linuxu
SSHGuard aktivno nadzire /var/log/auth.log, /var/log/secure systemd dnevnik i syslog-ng zapisničke datoteke za neuspjele pokušaje prijave.
Za svaki neuspješni pokušaj prijave, udaljeni host je zabranjen na ograničeno vrijeme koje je prema zadanim postavkama postavljeno na 120 sekundi. Nakon toga, vrijeme zabrane raste za faktor 1,5 sa svakim uzastopnim neuspjelim pokušajem prijave.
Vrijeme zabrane hostova koji su prekršili navedeno je uz ostale parametre u datoteci sshguard.conf. Konfiguracijskoj datoteci možete pristupiti pomoću vim editora kao što je prikazano.
sudo vim /etc/sshguard/sshguard.conf
Na distribucijama temeljenim na RHEL-u, konfiguracijska datoteka nalazi se na sljedećoj stazi.
sudo vim /etc/sshguard.conf
Ovdje je primjer konfiguracijske datoteke kada se gleda iz Ubuntu/Debian.
Usredotočimo se na glavnu opciju.
- Direktiva BACKEND pokazuje na punu stazu izvršne pozadinske datoteke. U ovom primjeru vidimo da je IPtables postavljen kao zadana pozadina vatrozida.
- Direktiva THRESHOLD blokira napadače kada njihov rezultat napada premaši navedenu vrijednost.
- Opcija BLOCK_TIME je broj sekundi u kojima je napadač blokiran nakon svakog uzastopnog neuspjelog pokušaja prijave. Prema zadanim postavkama, ovo je postavljeno na 120 nakon prvog pokušaja. To se povećava sa svakim sljedećim neuspjelim pokušajem prijave.
- Opcija DETECTION_TIME odnosi se na vrijeme u sekundama tijekom kojeg je napadač registriran ili zapamćen od strane sustava prije nego što se njihov rezultat poništi.
- Opcija WHITELIST_file ukazuje na punu stazu datoteke popisa dopuštenih koja sadrži hostove koji ne bi trebali biti na crnoj listi./li>
Korak 3: Konfigurirajte SSHGuard za blokiranje SSH Brute Force napada
Kako biste odbili brute-force napade, trebate konfigurirati sljedeće vatrozide za rad s sshguardom.
Blokirajte SSH napade pomoću UFW-a
Ako imate UFW instaliran i omogućen na vašem Ubuntu/Debian sustavu, izmijenite datoteku /etc/ufw/before.rules.
sudo vim etc/ufw/before.rules
Dodajte sljedeće retke neposredno nakon odjeljka allow all on loopback
.
allow all on loopback
-A ufw-before-input -i lo -j ACCEPT
-A ufw-before-output -o lo -j ACCEPT
hand off control for sshd to sshguard
:sshguard - [0:0]
-A ufw-before-input -p tcp --dport 22 -j sshguard
Spremite datoteku i ponovno pokrenite UFW.
sudo systemctl restart ufw
Sada se pokušajte prijaviti na poslužitelj s drugog sustava s pogrešnim vjerodajnicama i primijetite da ćete biti zaključani na 120 sekundi nakon prvog neuspjelog pokušaja prijave.
To možete provjeriti provjerom datoteke dnevnika auth.log.
sudo tail -f /var/log/auth.log
Nakon sljedećeg neuspjelog pokušaja zapisivanja, vrijeme blokiranja se povećava na 240 sekundi, zatim 480 sekundi, zatim 960 sekundi, i tako dalje.
Blokirajte SSH napade pomoću Firewallda
Ako koristite firewall, provjerite je li postavljen i omogućen. Zatim izvršite sljedeću naredbu da biste omogućili sshguard u željenoj zoni.
sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule source ipset=sshguard4 drop"
Da biste primijenili promjene, ponovno učitajte Firewalld i sshguard.
sudo firewall-cmd --reload
sudo systemctl restart sshguard
Zatim provjerite pravilo na sljedeći način:
sudo firewall-cmd —-info-ipset=sshguard4
Blokirajte SSH napade koristeći Iptables
Ako još uvijek koristite Iptables, prvo izradite novo lančano pravilo za sshguard u Iptables kako biste počeli blokirati negativce.
iptables -N sshguard
Zatim ažurirajte lanac INPUT kako biste usmjerili promet na sshguard i blokirali sav promet zlonamjernih strana.
iptables -A INPUT -j sshguard
Za blokiranje određenih priključaka kao što su SSH, POP i IMAP od zlostavljača pokrenite naredbu:
iptables -A INPUT -m multiport -p tcp --destination-ports 22,110,143 -j sshguard
I na kraju, spremite pravilo da promjene stupe na snagu.
iptables-save > /etc/iptables/iptables.rules
Korak 4: Kako staviti SSH blokirane hostove na bijelu listu
Da biste blokirani host stavili na bijelu listu, jednostavno navedite njegovo ime hosta ili IP adresu u datoteci s bijelom listom koja se nalazi u:
/etc/sshguard/whitelist - Ubuntu/Debian
/etc/sshguard.whitelist - RHEL-based distros
Nakon toga svakako ponovno pokrenite sshguard demon i pozadinu vatrozida kako bi se promjene primijenile.
U ovom smo vodiču pokazali kako možete blokirati SSH Bruteforce napade koristeći SSHGuard demon u Linux poslužiteljima. Vaše povratne informacije su dobrodošle.