Kuidas blokeerida SSH brute Force rünnakuid SSHGUARDi abil


SSHGuard on avatud lähtekoodiga deemon, mis kaitseb hoste toore jõu rünnakute eest. See saavutab süsteemilogide jälgimise ja koondamise, rünnakute tuvastamise ja ründajate blokeerimise, kasutades ühte Linuxi tulemüüri taustaprogrammidest: iptables, FirewallD, pf ja ipfw.

Esialgu mõeldud OpenSSH-teenuse täiendava kaitsekihi pakkumiseks, kaitseb SSHGuard ka paljusid teenuseid, nagu Vsftpd ja Postfix. See tunneb ära mitu logivormingut, sealhulgas Syslog, Syslog-ng ja töötlemata logifailid.

[Sulle võib meeldida ka: OpenSSH-serveri turvamine ja tugevdamine]

SSHGuard on Fail2baniga üsna sarnane ainult selle poolest, et see on kirjutatud C-keeles (Fail2ban on kirjutatud Pythonis), on kergem ja pakub vähem funktsioone.

Selles juhendis demonstreerime, kuidas saate installida ja konfigureerida SSHGuardi, et blokeerida SSH jõhkra jõu rünnakud teie Linuxi serveris.

1. samm: installige SSHGuard Linuxi

Alustame SSHGuardi installimisega Linuxisse.

Esmalt värskendage pakettide loendeid ja seejärel installige SSHGuard vaikehoidlatest, kasutades apt paketihaldurit.

$ sudo apt update
$ sudo apt install sshguard

Pärast installimist käivitub teenus SSHGuard automaatselt ja saate seda kontrollida käsuga:

$ sudo systemctl status sshguard

RHEL-põhiste distributsioonide (nt CentOS, Rocky ja AlmaLinux) puhul alustage EPEL-i hoidla installimisega, nagu on kirjeldatud allolevas käsus.

$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
OR
$ sudo dnf install epel-release

Kui EPEL on paigas, installige SSHGuard dnf-paketihalduri abil.

$ sudo dnf install sshguard 

Pärast installimist käivitage ja seadistage SSHGuard süsteemi käivitamisel või taaskäivitamisel käivituma.

$ sudo systemctl start sshguard
$ sudo systemctl enable sshguard

Veenduge, et SSHGuard töötaks ootuspäraselt.

$ sudo systemctl status sshguard

2. samm: SSHGuardi konfigureerimine Linuxis

SSHGuard jälgib aktiivselt /var/log/auth.log, /var/log/secure systemd journal ja syslog-ng logifaile ebaõnnestunud sisselogimiskatsete osas.

Iga ebaõnnestunud sisselogimiskatse korral keelatakse kaughost piiratud ajaks, milleks on vaikimisi seatud 120 sekundit. Seejärel pikeneb keeluaeg iga järjestikuse ebaõnnestunud sisselogimiskatse korral 1,5 korda.

Aeg, mil rikkuvad hostid on keelatud, määratakse lisaks muudele parameetritele failis sshguard.conf. Konfiguratsioonifailile pääsete juurde vim-redaktoriga, nagu näidatud.

$ sudo vim /etc/sshguard/sshguard.conf

RHEL-põhiste distributsioonide puhul asub konfiguratsioonifail järgmisel teel.

$ sudo vim /etc/sshguard.conf

Siin on konfiguratsioonifaili näidis Ubuntu/Debianist vaadatuna.

Keskendume peamisele võimalusele.

  • Direktiiv BACKEND osutab taustaprogrammi käivitatava faili täielikule teele. Selles näites näeme, et IPtables on seatud tulemüüri vaiketaustaprogrammiks.
  • Direktiiv THRESHOLD blokeerib ründajad, kui nende rünnakuskoor ületab määratud väärtuse.
  • Valik BLOCK_TIME on sekundite arv, mille jooksul ründaja blokeeritakse pärast iga järjestikust ebaõnnestunud sisselogimiskatset. Vaikimisi on see pärast esimest katset seatud väärtusele 120. See suureneb iga järjestikuse ebaõnnestunud sisselogimiskatsega.
  • Valik DETECTION_TIME viitab ajale sekundites, mille jooksul ründaja registreeritakse või süsteemile meelde jääb, enne kui tema skoori lähtestatakse.
  • Valik WHITELIST_file osutab valge nimekirja faili täielikule teele, mis sisaldab hoste, mis ei peaks olema musta nimekirja kantud./li>

3. samm: konfigureerige SSHGuard SSH jõhkrate jõurünnakute blokeerimiseks

Toore jõu rünnakute tõrjumiseks peate konfigureerima järgmised tulemüürid sshguardiga töötamiseks.

Kui teie Ubuntu/Debiani süsteemis on UFW installitud ja lubatud, muutke faili /etc/ufw/before.rules.

$ sudo vim etc/ufw/before.rules

Lisage järgmised read vahetult pärast jaotist luba kõik tagasisilmuses.

# 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

Salvestage fail ja taaskäivitage UFW.

$ sudo systemctl restart ufw

Proovige nüüd valede mandaatidega teisest süsteemist serverisse sisse logida ja pange tähele, et pärast esimest ebaõnnestunud sisselogimiskatset lukustatakse teid 120 sekundiks.

Saate seda kontrollida logifaili auth.log abil.

$ sudo tail -f  /var/log/auth.log

Pärast järgmist ebaõnnestunud logimiskatset pikeneb blokeerimisaeg 240 sekundini, seejärel 480 sekundini, seejärel 960 sekundini ja nii edasi.

Kui kasutate tulemüüri, veenduge, et see oleks seadistatud ja lubatud. Seejärel käivitage järgmine käsk, et lubada sshguard oma eelistatud tsoonis.

$ sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule source ipset=sshguard4 drop"

Muudatuste rakendamiseks laadige Firewall ja sshguard uuesti.

$ sudo firewall-cmd --reload
$ sudo systemctl restart sshguard

Seejärel kontrollige reeglit järgmiselt:

$ sudo firewall-cmd —-info-ipset=sshguard4

Kui kasutate endiselt Iptablesi, looge esmalt Iptablesis sshguardi jaoks uus ketireegel, et hakata pahalasi blokeerima.

# iptables -N sshguard

Järgmisena värskendage INPUT-ahelat, et suunata liiklus sshguardi ja blokeerida kogu liiklus pahatahtlikelt osapooltelt.

# iptables -A INPUT -j sshguard

Konkreetsete portide (nt SSH, POP ja IMAP) blokeerimiseks kuritarvitajatelt käivitage käsk:

# iptables -A INPUT -m multiport -p tcp --destination-ports 22,110,143 -j sshguard

Ja lõpuks salvestage reegel, et muudatused jõustuksid.

# iptables-save > /etc/iptables/iptables.rules

4. samm: SSH blokeeritud hostide valgesse nimekirja lisamine

Blokeeritud hosti valgesse loendisse lisamiseks määrake lihtsalt selle hostinimi või IP-aadress valge nimekirja failis, mis asub:

/etc/sshguard/whitelist - Ubuntu/Debian 
/etc/sshguard.whitelist - RHEL-based distros

Seejärel taaskäivitage muudatuste rakendumiseks kindlasti sshguardi deemon ja tulemüüri taustaprogramm.

Selles juhendis oleme näidanud, kuidas saate Linuxi serverites SSHGuardi deemoni abil blokeerida SSH Bruteforce'i rünnakud. Teie tagasiside on teretulnud.