Kā izmantot Fail2ban, lai aizsargātu savu Linux serveri


Servera drošības uzlabošanai vajadzētu būt vienai no galvenajām prioritātēm Linux servera pārvaldībā. Pārskatot servera žurnālus, jūs bieži varat atrast dažādus mēģinājumus veikt brutālu spēku pieteikšanos, tīmekļa plūdus, izmantot meklēšanu un daudzus citus.

Izmantojot ielaušanās novēršanas programmatūru, piemēram, fail2ban, varat pārbaudīt servera žurnālus un pievienot papildu iptables kārtulas, lai bloķētu problemātiskās IP adreses.

Šī apmācība parādīs, kā instalēt fail2ban un iestatīt pamata konfigurāciju, lai aizsargātu savu Linux sistēmu no rupja spēka uzbrukumiem.

Fail2ban ir rakstīts pitonā, un vienīgā prasība ir, lai python būtu instalēts:

  • Fail2ban atzaram 0.9.x ir nepieciešams Python> = 2.6 vai Python> = 3.2
  • Fail2ban filiālei 0.8.x nepieciešams Python> = 2.4
  • Saknes piekļuve jūsu sistēmai
  • Pēc izvēles iptables vai showewall un sendmail

Kā instalēt Fail2Ban Linux sistēmās

Fail2ban instalēšana ir samērā vienkārša:

Vispirms atjauniniet paketes, iespējojiet Epel krātuvi un instalējiet fail2ban, kā parādīts.

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

Vispirms atjauniniet paketes un instalējiet fail2ban, kā parādīts.

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

Ja vēlaties iespējot pasta atbalstu (pasta paziņojumiem), varat instalēt sentmail.

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

Lai iespējotu fail2ban un sendmail, izmantojiet šādas komandas:

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

Kā konfigurēt Fail2ban Linux sistēmās

Pēc noklusējuma fail2ban izmanto .conf failus, kas atrodas mapē/etc/fail2ban/un kurus vispirms nolasa. Tomēr tos var ignorēt faili .local , kas atrodas tajā pašā direktorijā.

Tādējādi failā .local nav jāiekļauj visi iestatījumi no faila .conf , bet tikai tie, kurus vēlaties ignorēt. Izmaiņas jāveic failos .local , nevis failā .conf . Tas novērsīs izmaiņu pārrakstīšanu, jauninot fail2ban pakešu paketi.

Šīs apmācības vajadzībām mēs kopēsim esošo fail2ban.conf failu fail2ban.local.

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

Tagad jūs varat veikt izmaiņas failā .local , izmantojot iecienīto teksta redaktoru. Rediģējamās vērtības ir:

  • loglevel - tas ir reģistrēšanas detalizācijas līmenis. Iespējamās iespējas ir:
    • KRITISKA
    • KĻŪDA
    • BRĪDINĀJUMS
    • PAZIŅOJUMS
    • INFO
    • atkļūdošana

    • STDOUT - izvadiet visus datus
    • STDERR - izvadiet visas kļūdas
    • SYSLOG - uz ziņām balstīta reģistrēšana
    • Fails - izvade failā

    Viens no vissvarīgākajiem failiem fail2ban ir jail.conf , kas nosaka jūsu cietumus. Šeit jūs definējat pakalpojumus, kuriem būtu jāiespējo fail2ban.

    Kā jau minējām iepriekš, jaunināšanas laikā faili .conf var tikt mainīti, tāpēc jums jāizveido jail.local fails, kurā varat piemērot izmaiņas.

    Vēl viens veids, kā to izdarīt, ir vienkārši nokopēt .conf failu ar:

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

    Gadījumā, ja izmantojat CentOS vai Fedora, jail.local aizmugure būs jāmaina no “auto” uz “systemd”.

    Ja izmantojat Ubuntu/Debian, šī modifikācija nav jāveic, kaut arī viņi izmanto systemd.

    Cietuma fails pēc noklusējuma iespējo SSH Debian un Ubuntu, bet ne CentOS. Ja vēlaties to iespējot, vienkārši mainiet šādu rindu mapē /etc/fail2ban/jail.local:

    [sshd]
    enabled = true
    

    Jūs varat konfigurēt apstākli, pēc kura tiek bloķēta IP adrese. Šim nolūkam fail2ban izmanto bantime, findtime un maxretry.

    • bantime - tas ir sekunžu skaits, kurā IP adrese paliks aizliegta (pēc noklusējuma 10 minūtes).
    • findtime - laiks starp pieteikšanās mēģinājumiem, pirms resursdators tiek aizliegts. (noklusējums 10 min). Citiem vārdiem sakot, ja fail2ban ir iestatīts bloķēt IP adresi pēc 3 neveiksmīgiem pieteikšanās mēģinājumiem, šie 3 mēģinājumi jāveic meklēšanas laikā (10 minūtes).
    • maxretry - mēģinājumu skaits, kas jāveic pirms aizlieguma piemērošanas. (noklusējums 3).

    Protams, jūs vēlaties iekļaut dažas IP adreses baltajā sarakstā. Lai konfigurētu šādas IP adreses, atveriet /etc/fail2ban/jail.local ar iecienīto teksta redaktoru un noņemiet komentāru no šīs rindiņas:

    ignoreip = 127.0.0.1/8  ::1
    

    Pēc tam varat ievietot tās IP adreses, kuras vēlaties ignorēt. IP adreses jāatdala no atstarpes vai komata.

    Ja vēlaties saņemt brīdinājumus par pastu, mapē /etc/fail2ban/jail.local būs jākonfigurē šādi iestatījumi:

    • destemail - pasta adrese, kur saņemsit paziņojumu.
    • Sūtītāja vārds - sūtītājs, kuru redzēsiet, saņemot ziņojumu.
    • sūtītājs - e-pasta adrese, no kuras fail2ban nosūtīs e-pastus.

    Noklusējuma mta (pasta pārsūtīšanas aģents) ir iestatīts uz sendmail.

    Lai saņemtu paziņojumus pa pastu, jums būs jāmaina arī iestatījums “darbība” no:

    Action = %(action_)s
    

    Vienam no šiem:

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

    • % (action_mw) s - aizliedz resursdatoru un nosūtīs pastu ar Whois ziņojumu.
    • % (action_mwl) s - aizliedz resursdatoru, no žurnāla faila sniegs informāciju par Whois un visu atbilstošo informāciju.

    Papildu Fail2ban cietuma konfigurācija

    Līdz šim mēs esam izskatījuši pamata konfigurācijas iespējas. Ja vēlaties konfigurēt cietumu, tas jāiespējo failā jail.local. Sintakse ir diezgan vienkārša:

    [jail_to_enable]
    . . .
    enabled = true
    

    Ja jums jāaizstāj jail_to_enable ar faktisko cietumu, piemēram, “sshd”. Failā jail.local ssh pakalpojumam būs iepriekš noteiktas šādas vērtības:

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

    Jūs varat iespējot filtru, kas palīdzēs noteikt, vai žurnālā esošā rinda ir neizdevusies. Filtra vērtība faktiski ir atsauce uz failu ar pakalpojuma nosaukumu, kam seko .conf. Piemēram: /etc/fail2ban/filter.d/sshd.conf.

    Sintakse ir:

    filter = service
    

    Piemēram:

    filter = sshd
    

    Esošos filtrus varat pārskatīt šajā direktorijā: /etc/fail2ban/filter.d/.

    Fail2ban nāk ar klientu, kuru var izmantot pašreizējās konfigurācijas pārskatīšanai un mainīšanai. Tā kā tajā ir daudz iespēju, varat izlasīt rokasgrāmatu, izmantojot:

    # man fail2ban-client 
    

    Šeit jūs redzēsiet dažas pamata komandas, kuras varat izmantot. Lai pārskatītu fail2ban vai konkrēta cietuma pašreizējo statusu, varat izmantot:

    # fail2ban-client status
    

    Rezultāts izskatīsies līdzīgs šim:

    Atsevišķā cietumā varat palaist:

    # fail2ban-client status sshd
    

    Tālāk redzamajā ekrānuzņēmumā jūs redzēsiet, ka man ir apzināti neizdevušies vairāki pieteikumvārdi, tāpēc fail2ban var bloķēt IP adresi, no kuras mēģināju izveidot savienojumu:

    Fail2ban ir lieliska, labi dokumentēta ielaušanās novēršanas sistēma, kas nodrošina papildu drošību jūsu Linux sistēmā. Tas prasa zināmu laiku, lai pierastu pie tā iestatīšanas un sintakses, taču, iepazīstoties ar to, jūs varat brīvi mainīt un paplašināt tā noteikumus.