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.