Kuidas kasutada Fail2bani oma Linuxi serveri turvamiseks


Serveri turvalisuse parandamine peaks olema Linuxi serveri haldamise üks peamisi prioriteete. Oma serverilogid üle vaadates võite sageli leida erinevaid katseid toore jõu sisselogimiseks, veebi üleujutuste, otsingu ärakasutamise ja paljude teiste jaoks.

Sissetungi tõkestamise tarkvara, näiteks fail2ban, abil saate uurida oma serverilogisid ja lisada probleemsete IP-aadresside blokeerimiseks täiendavaid iptables-reegleid.

See õpetus näitab teile, kuidas installida fail2ban ja seadistada põhikonfiguratsioon, et kaitsta oma Linuxi süsteemi jõhkrate rünnakute eest.

Fail2ban on kirjutatud pythonis ja ainus nõue on, et python oleks installitud:

  • Fail2bani haru 0.9.x nõuab Pythoni> = 2,6 või Pythoni> = 3,2
  • Fail2bani haru 0.8.x nõuab Pythoni> = 2,4
  • Juurdepääs oma süsteemile
  • Valikuliselt ka iptables või showwall ja sendmail

Fail2Bani installimine Linuxi süsteemidesse

Fail2bani installimine on suhteliselt lihtne:

Kõigepealt värskendage oma pakette, lubage Epeli hoidla ja installige fail2ban nagu näidatud.

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

Kõigepealt värskendage oma pakette ja installige fail2ban nagu näidatud.

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

Soovi korral võite meilisõnumi jaoks lubada ka postitoe (postiteadete jaoks).

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

Fail2bani ja sendmaili lubamiseks kasutage järgmisi käske:

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

Fail2bani konfigureerimine Linuxi süsteemides

Vaikimisi kasutab fail2ban faile .conf , mis asuvad kataloogis/etc/fail2ban/ja mida loetakse esimesena. Kuid need saab tühistada samas kataloogis asuvate failidega .local .

Seega ei pea fail .local sisaldama kõiki faili .conf sätteid, vaid ainult neid, mida soovite alistada. Muudatused tuleks teha failides .local , mitte failis .conf . See hoiab ära fail2ban paketi värskendamisel muudatuste ülekirjutamise.

Selle õpetuse jaoks kopeerime olemasoleva faili fail2ban.conf faili fail2ban.local.

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

Nüüd saate failis .local muudatusi teha oma lemmiktekstiredaktori abil. Väärtused, mida saate muuta, on:

  • loglevel - see on logimise üksikasjalikkuse tase. Võimalikud valikud on:
    • Kriitiline
    • VIGA
    • HOIATUS
    • TEATIS
    • INFO
    • VIGA

    • STDOUT - väljastage mis tahes andmed
    • STDERR - vigade väljastamine
    • SYSLOG - sõnumipõhine logimine
    • Fail - väljund faili

    Fail2bani üks olulisemaid faile on jail.conf , mis määrab teie vanglad. Siit saate määratleda teenused, mille fail2ban peaks olema lubatud.

    Nagu me varem mainisime, saab .conf -faile uuendatud versiooniuuenduste käigus muuta. Seetõttu peaksite looma faili jail.local, kus saate oma muudatusi rakendada.

    Teine võimalus seda teha on .conf-faili lihtsalt kopeerida järgmisega:

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

    Kui kasutate CentOSi või Fedorat, peate jail.local taustaprogrammi asendama\"auto"\"systemd" -ga.

    Kui kasutate Ubuntu/Debiani, pole seda muudatust vaja teha, kuigi ka nemad kasutavad systemd.

    Vangifail lubab Debiani ja Ubuntu jaoks vaikimisi SSH-i, kuid mitte CentOS-is. Kui soovite selle lubada, muutke lihtsalt /etc/fail2ban/jail.local järgmist rida:

    [sshd]
    enabled = true
    

    Saate konfigureerida olukorra, mille järel IP-aadress blokeeritakse. Selleks kasutab fail2ban bantime, findtime ja maxretry.

    • bantime - see on sekundite arv, mille jooksul IP-aadress jääb keelatuks (vaikimisi 10 min).
    • leidmisaeg - aeg sisselogimiskatsete vahel, enne kui host keelatakse. (vaikimisi 10 min). Teisisõnu, kui fail2ban on seatud blokeerima IP-aadressi pärast kolme ebaõnnestunud sisselogimiskatset, tuleb need 3 katset teha leidmisaja jooksul (10 minutit).
    • maxretry - enne keelu rakendamist tehtavate katsete arv. (vaikimisi 3).

    Muidugi soovite teatud IP-aadressid loendisse lisada. Selliste IP-aadresside konfigureerimiseks avage /etc/fail2ban/jail.local oma lemmiktekstiredaktoriga ja tühjendage järgmine rida:

    ignoreip = 127.0.0.1/8  ::1
    

    Seejärel saate panna IP-aadressid, mida soovite eirata. IP-aadressid tuleks eraldada tühikust või komast.

    Kui soovite sündmuse kohta saada meiliteatisi, peate seadistama kataloogis /etc/fail2ban/jail.local järgmised seaded:

    • postiaadress - e-posti aadress, kuhu saate teate.
    • Saatja nimi - saatja, mida näete sõnumi saamisel.
    • saatja - e-posti aadress, kust fail2ban meilid saadab.

    Vaikimisi mta (posti edastamise agent) on seatud sendmailile.

    Meiliteatiste saamiseks peate muutma ka seadet\"action» järgmiselt:

    Action = %(action_)s
    

    Ühele neist:

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

    • % (action_mw) s - keelab hosti ja saadab whois-aruandega kirja.
    • % (action_mwl) s - keelab hosti, edastab logifailist WHOIS-i teabe ja kogu asjakohase teabe.

    Täiendav Fail2bani vangla konfiguratsioon

    Siiani oleme uurinud põhilisi seadistusvõimalusi. Vangla konfigureerimiseks peate selle lubama failis jail.local. Süntaks on üsna lihtne:

    [jail_to_enable]
    . . .
    enabled = true
    

    Kus peaksite asendama jail_to_enable tegeliku vanglaga, näiteks\"sshd". Failis jail.local määratakse ssh-teenuse jaoks järgmised väärtused:

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

    Võite lubada filtri, mis aitab tuvastada, kas logi rida on ebaõnnestunud. Filtri väärtus on tegelikult viide failile teenuse nimega, millele järgneb .conf. Näiteks: /etc/fail2ban/filter.d/sshd.conf.

    Süntaks on:

    filter = service
    

    Näiteks:

    filter = sshd
    

    Olemasolevad filtrid saate üle vaadata järgmises kataloogis: /etc/fail2ban/filter.d/.

    Fail2ban on varustatud kliendiga, mida saab kasutada praeguse konfiguratsiooni ülevaatamiseks ja muutmiseks. Kuna see pakub palju võimalusi, saate selle käsiraamatu läbi vaadata järgmisega:

    # man fail2ban-client 
    

    Siin näete mõnda põhikäsku, mida saate kasutada. Fail2bani või konkreetse vangla praeguse oleku ülevaatamiseks võite kasutada järgmist.

    # fail2ban-client status
    

    Tulemus näeb välja sarnane järgmisega:

    Individuaalse vangla jaoks võite joosta:

    # fail2ban-client status sshd
    

    Alloleval ekraanipildil näete, et mul on tahtlikult mitu sisselogimist nurjunud, nii et fail2ban saab blokeerida IP-aadressi, millega proovisin ühendust luua:

    Fail2ban on suurepärane, hästi dokumenteeritud sissetungide vältimise süsteem, mis pakub teie Linuxi süsteemile lisaturvalisust. Selle seadistamise ja süntaksiga harjumine nõuab mõnda aega, kuid kui olete end sellega kurssi viinud, saate julgelt selle reegleid muuta ja laiendada.