Kako uporabiti Fail2ban za zaščito vašega strežnika Linux


Izboljšanje varnosti strežnika bi morala biti ena od vaših glavnih prednostnih nalog pri upravljanju strežnika linux. S pregledom dnevnikov strežnika lahko pogosto najdete različne poskuse za prijavo z grobo silo, spletne poplave, iskanje izkoriščanja in številne druge.

S programsko opremo za preprečevanje vdorov, kot je fail2ban, lahko pregledate dnevnike strežnika in dodate dodatna pravila iptables, da blokirate problematične naslove IP.

Ta vadnica vam bo pokazala, kako namestiti fail2ban in nastaviti osnovno konfiguracijo za zaščito vašega sistema Linux pred napadi z grobo silo.

Fail2ban je napisan v pythonu in edina zahteva je, da ima nameščen python:

  • Fail2ban veja 0.9.x zahteva Python> = 2.6 ali Python> = 3.2
  • Fail2ban veja 0.8.x zahteva Python> = 2.4
  • Korenski dostop do vašega sistema
  • Izbirno, iptables ali showewall in sendmail

Kako namestiti Fail2Ban v sisteme Linux

Namestitev fail2ban je razmeroma enostavna:

Najprej posodobite svoje pakete, omogočite skladišče Epel in namestite fail2ban, kot je prikazano.

# yum update
# yum install epel-release
# yum install fail2ban

Najprej posodobite svoje pakete in namestite fail2ban, kot je prikazano.

# apt-get update && apt-get upgrade -y
# apt-get install fail2ban

Če želite omogočiti podporo za pošto (za obvestila po pošti), lahko po želji namestite sendmail.

# yum install sendmail                   [On CentOS/RHEL]
# apt-get install sendmail-bin sendmail  [On Debian/Ubuntu]

Če želite omogočiti fail2ban in sendmail, uporabite naslednje ukaze:

# systemctl start fail2ban
# systemctl enable fail2ban
# systemctl start sendmail
# systemctl enable sendmail

Kako konfigurirati Fail2ban v sistemih Linux

Fail2ban privzeto uporablja datoteke .conf v/etc/fail2ban/, ki se najprej preberejo. Vendar pa jih lahko preglasijo datoteke .local , ki se nahajajo v istem imeniku.

Tako datoteki .local ni treba vključevati vseh nastavitev iz datoteke .conf , ampak le tiste, ki jih želite preglasiti. Spremembe je treba narediti v datotekah .local , ne pa v .conf . To bo preprečilo prepisovanje sprememb pri nadgradnji paketa fail2ban.

Za namene te vadnice bomo obstoječo datoteko fail2ban.conf kopirali v fail2ban.local.

# cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

Zdaj lahko spremenite datoteko .local s svojim priljubljenim urejevalnikom besedil. Vrednosti, ki jih lahko uredite, so:

  • loglevel - to je raven podrobnosti, ki se beleži. Možne možnosti so:
    • KRITIČNO
    • NAPAKA
    • OPOZORILO
    • OBVESTILO
    • INFO
    • ODLAGUJANJE

    • STDOUT - izhod vseh podatkov
    • STDERR - prikaže vse napake
    • SYSLOG-beleženje na podlagi sporočil
    • Datoteka - izhod v datoteko

    Ena najpomembnejših datotek v fail2ban je jail.conf , ki definira vaše zapore. Tu določite storitve, za katere je treba omogočiti fail2ban.

    Kot smo že omenili, lahko datoteke .conf med nadgradnjami spremenite, zato ustvarite datoteko jail.local, kjer lahko uporabite svoje spremembe.

    Drug način za to je, da datoteko .conf preprosto kopirate z:

    # cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    

    Če uporabljate CentOS ali Fedora, boste morali zalednik v jail.local spremeniti iz\"auto" v\"systemd".

    Če uporabljate Ubuntu/Debian, te spremembe ni treba izvajati, čeprav tudi oni uporabljajo systemd.

    Zaporna datoteka bo privzeto omogočila SSH za Debian in Ubuntu, ne pa tudi za CentOS. Če ga želite omogočiti, preprosto spremenite naslednjo vrstico v /etc/fail2ban/jail.local:

    [sshd]
    enabled = true
    

    Nastavite lahko okoliščine, po katerih je naslov IP blokiran. V ta namen fail2ban uporablja bantime, findtime in maxretry.

    • bantime - to je število sekund, ko bo naslov IP ostal prepovedan (privzeto 10 minut).
    • findtime - čas med poskusi prijave, preden je gostiteljica prepovedana. (privzeto 10 minut). Z drugimi besedami, če je fail2ban nastavljen tako, da blokira naslov IP po treh neuspelih poskusih prijave, je treba te tri poskuse izvesti v obdobju najdbe (10 minut).
    • maxretry - število poskusov, preden se uporabi prepoved. (privzeto 3).

    Seveda boste določene naslove IP želeli dodati na beli seznam. Če želite konfigurirati take naslove IP, odprite /etc/fail2ban/jail.local s svojim najljubšim urejevalnikom besedil in razkomentirajte naslednjo vrstico:

    ignoreip = 127.0.0.1/8  ::1
    

    Nato lahko vnesete naslove IP, ki jih želite prezreti. Naslove IP je treba ločiti od presledka ali vejice.

    Če želite ob dogodku prejemati opozorila po pošti, morate v /etc/fail2ban/jail.local konfigurirati naslednje nastavitve:

    • destemail - poštni naslov, na katerega boste prejeli obvestilo.
    • Ime pošiljatelja - pošiljatelj, ki ga boste videli ob prejemu sporočila.
    • pošiljatelj - e -poštni naslov, s katerega fail2ban pošilja e -poštna sporočila.

    Privzeti mta (agent za prenos pošte) je nastavljen na sendmail.

    Če želite prejemati obvestila po pošti, morate tudi spremeniti nastavitev\"dejanje" iz:

    Action = %(action_)s
    

    Na eno od teh:

    action = %(action_mw)s
    action = %(action_mwl)s
    

    • %(action_mw) s - onemogoči gostitelja in pošlje pošto s poročilom whois.
    • %(action_mwl) s - onemogoči gostitelja, posreduje whois podatke in vse ustrezne podatke iz datoteke dnevnika.

    Dodatna konfiguracija zapora Fail2ban

    Doslej smo preučili osnovne možnosti konfiguracije. Če želite konfigurirati zapor, ga morate omogočiti v datoteki jail.local. Sintaksa je precej preprosta:

    [jail_to_enable]
    . . .
    enabled = true
    

    Kjer morate zamenjati jail_to_enable z dejanskim zaporom, na primer\"sshd". V datoteki jail.local bodo za storitev ssh vnaprej določene naslednje vrednosti:

    [sshd]
    
    port = ssh
    logpath = %(sshd_log)s
    

    Omogočite lahko filter, ki bo pomagal ugotoviti, ali je vrstica v dnevniku neuspešna. Vrednost filtra je dejansko sklic na datoteko z imenom storitve, ki ji sledi .conf. Na primer: /etc/fail2ban/filter.d/sshd.conf.

    Sintaksa je:

    filter = service
    

    Na primer:

    filter = sshd
    

    Obstoječe filtre si lahko ogledate v naslednjem imeniku: /etc/fail2ban/filter.d/.

    Fail2ban prihaja s odjemalcem, ki ga lahko uporabite za pregled in spreminjanje trenutne konfiguracije. Ker ponuja veliko možnosti, lahko poiščete njegov priročnik z:

    # man fail2ban-client 
    

    Tu boste videli nekaj osnovnih ukazov, ki jih lahko uporabite. Če želite pregledati trenutno stanje fail2ban ali za določeno zaporo, lahko uporabite:

    # fail2ban-client status
    

    Rezultat bo videti podobno:

    Za posamezni zapor lahko zaženete:

    # fail2ban-client status sshd
    

    Na spodnjem posnetku zaslona boste videli, da sem namenoma neuspešno prijavil več prijav, zato lahko fail2ban blokira naslov IP, s katerega sem se poskušal povezati:

    Fail2ban je odličen, dobro dokumentiran sistem za preprečevanje vdorov, ki zagotavlja dodatno varnost vašemu sistemu Linux. Nekaj časa traja, da se navadite na njegovo nastavitev in skladnjo, a ko se boste seznanili z njo, boste lahko spremenili in razširili njena pravila.