Jinsi ya kutumia Fail2ban Kulinda Seva yako ya Linux


Kuboresha usalama wa seva yako inapaswa kuwa moja ya vipaumbele vyako vya juu linapokuja suala la kudhibiti seva ya linux. Kwa kukagua kumbukumbu za seva yako, mara nyingi unaweza kupata majaribio tofauti ya kuingia kwa nguvu ya kinyama, mafuriko ya wavuti, kutafuta matumizi mabaya na mengine mengi.

Ukiwa na programu ya kuzuia uingiliaji kama vile fail2ban, unaweza kuchunguza kumbukumbu za seva yako na kuongeza sheria za iptables za ziada ili kuzuia anwani za IP zenye matatizo.

Mafunzo haya yatakuonyesha jinsi ya kusakinisha fail2ban na kusanidi usanidi msingi ili kulinda mfumo wako wa Linux dhidi ya mashambulizi ya kinyama.

Fail2ban imeandikwa kwa python na hitaji pekee ni kuwa na python iliyosanikishwa:

  • Tawi la Fail2ban 0.9.x linahitaji Chatu >=2.6 au Chatu >=3.2
  • Tawi la Fail2ban 0.8.x linahitaji Python >=2.4
  • Ufikiaji wa mizizi kwa mfumo wako
  • Hiari, iptables au showewall na sendmail

Jinsi ya kusakinisha Fail2Ban katika Mifumo ya Linux

Ufungaji wa fail2ban ni rahisi:

Kwanza, sasisha vifurushi vyako, wezesha hazina ya Epel na usakinishe kushindwa2ban kama inavyoonyeshwa.

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

Kwanza, sasisha vifurushi vyako na usakinishe fail2ban kama inavyoonyeshwa.

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

Kwa hiari, ikiwa ungependa kuwezesha usaidizi wa barua (kwa arifa za barua), unaweza kusakinisha sendmail.

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

Ili kuwezesha fail2ban na sendmail tumia amri zifuatazo:

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

Jinsi ya kusanidi Fail2ban katika Mifumo ya Linux

Kwa chaguomsingi, fail2ban hutumia .conf faili zilizo katika /etc/fail2ban/ ambazo husomwa kwanza. Hata hivyo, hizo zinaweza kubatilishwa na .local faili zilizo katika saraka sawa.

Kwa hivyo, faili ya .local haihitaji kujumuisha mipangilio yote kutoka kwa faili ya .conf, lakini ile tu unayotaka kubatilisha. Mabadiliko yanapaswa kufanywa katika faili za .local, si katika .conf. Hii itazuia kubatilisha mabadiliko wakati wa kusasisha pakiti ya fail2ban.

Kwa madhumuni ya somo hili, tutanakili faili iliyopo ya fail2ban.conf kwa fail2ban.local.

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

Sasa unaweza kufanya mabadiliko katika faili ya .local kwa kutumia kihariri chako cha maandishi unachokipenda. Thamani unazoweza kuhariri ni:

  • loglevel - hiki ni kiwango cha maelezo ya kurekodi. Chaguzi zinazowezekana ni:
    • MUHIMU
    • KOSA
    • ONYO
    • TAARIFA
    • TAARIFA
    • TATUA

    • STDOUT - toa data yoyote
    • STDERR - toa hitilafu zozote
    • SYSLOG - uwekaji kumbukumbu kulingana na ujumbe
    • Faili – toa kwa faili

    Mojawapo ya faili muhimu zaidi katika fail2ban ni jail.conf ambayo inafafanua jela zako. Hapa ndipo unapofafanua huduma ambazo fail2ban inapaswa kuwezeshwa.

    Kama tulivyotaja awali faili za .conf zinaweza kubadilishwa wakati wa uboreshaji, kwa hivyo unapaswa kuunda faili ya jail.local ambapo unaweza kutumia marekebisho yako.

    Njia nyingine ya kufanya hivi ni kunakili kwa urahisi faili ya .conf na:

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

    Iwapo unatumia CentOS au Fedora, utahitaji kubadilisha mazingira ya nyuma katika jail.local kutoka \otomatiki hadi \systemd.

    Ikiwa unatumia Ubuntu/Debian, hakuna haja ya kufanya marekebisho haya, ingawa wao pia hutumia systemd.

    Faili ya jela itawezesha SSH kwa chaguo-msingi kwa Debian na Ubuntu, lakini sio kwenye CentOS. Ikiwa ungependa kuiwezesha, badilisha tu laini ifuatayo katika /etc/fail2ban/jail.local:

    [sshd]
    enabled = true
    

    Unaweza kusanidi hali baada ya ambayo anwani ya IP imezuiwa. Kwa madhumuni hayo, fail2ban hutumia bantime, findtime na maxretry.

    • bantime - hii ni idadi ya sekunde ambazo anwani ya IP itaendelea kuwa imepigwa marufuku (dakika 10 chaguomsingi).
    • muda wa kupata - muda kati ya majaribio ya kuingia, kabla ya mwenyeji kupigwa marufuku. (chaguo-msingi dakika 10). Kwa maneno mengine, ikiwa fail2ban imewekwa ili kuzuia anwani ya IP baada ya majaribio 3 ya kuingia bila kushindwa, majaribio hayo 3, lazima yafanywe ndani ya muda wa kupatikana (dakika 10).
    • maxretry - idadi ya majaribio ya kufanywa kabla ya kupiga marufuku kutumika. (chaguo-msingi 3).

    Bila shaka, utataka kuorodhesha baadhi ya anwani za IP. Ili kusanidi anwani kama hizi za IP fungua /etc/fail2ban/jail.local na kihariri chako cha maandishi unachokipenda na uondoe maoni kwenye mstari ufuatao:

    ignoreip = 127.0.0.1/8  ::1
    

    Kisha, unaweza kuweka anwani za IP ambazo ungependa kupuuzwa. Anwani za IP zinapaswa kutengwa na nafasi au koma.

    Ikiwa ungependa kupokea arifa za barua kwenye tukio, itabidi usanidi mipangilio ifuatayo katika /etc/fail2ban/jail.local:

    • destemail - anwani ya barua pepe, ambapo utapokea arifa.
    • Jina la mtumaji - mtumaji ambaye utamwona unapopokea ujumbe.
    • mtumaji - barua pepe ambayo fail2ban itatuma barua pepe kutoka kwayo.

    Mta chaguo-msingi (wakala wa kuhamisha barua) imewekwa kuwa barua pepe.

    Ili kupokea arifa za barua, utahitaji pia kubadilisha mipangilio ya \kitendo kutoka:

    Action = %(action_)s
    

    Kwa moja ya haya:

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

    • %(action_mw)s - itapiga marufuku mwenyeji na kutuma barua iliyo na ripoti ya nani.
    • %(action_mwl)s - itapiga marufuku mwenyeji, itatoa maelezo ya nani na taarifa zote muhimu kutoka kwa faili ya kumbukumbu.

    Usanidi wa Ziada wa Fail2ban Jela

    Kufikia sasa tumeangalia chaguzi za usanidi wa msingi. Ikiwa ungependa kusanidi jela utahitaji kuiwasha katika faili ya jail.local. Syntax ni rahisi sana:

    [jail_to_enable]
    . . .
    enabled = true
    

    Ambapo unapaswa kuchukua nafasi ya jail_to_enable na jela halisi, kwa mfano, \sshd. Katika faili ya jail.local, thamani zifuatazo zitafafanuliwa awali kwa huduma ya ssh:

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

    Unaweza kuwezesha kichungi ambacho kitasaidia kutambua ikiwa mstari kwenye logi umeshindwa. Thamani ya kichujio ni marejeleo ya faili yenye jina la huduma ikifuatiwa na .conf. Kwa mfano: /etc/fail2ban/filter.d/sshd.conf.

    Sintaksia ni:

    filter = service
    

    Kwa mfano:

    filter = sshd
    

    Unaweza kukagua vichujio vilivyopo katika saraka ifuatayo: /etc/fail2ban/filter.d/.

    Fail2ban inakuja na kiteja ambacho kinaweza kutumika kukagua na kubadilisha usanidi wa sasa. Kwa kuwa hutoa chaguzi nyingi, unaweza kupitia mwongozo wake na:

    # man fail2ban-client 
    

    Hapa utaona baadhi ya amri za msingi ambazo unaweza kutumia. Ili kukagua hali ya sasa ya fail2ban au kwa jela maalum, unaweza kutumia:

    # fail2ban-client status
    

    Matokeo yake yataonekana sawa na hii:

    Kwa jela ya mtu binafsi, unaweza kukimbia:

    # fail2ban-client status sshd
    

    Katika picha ya skrini hapa chini, utaona kuwa nimeshindwa kwa makusudi kuingia nyingi kwa hivyo fail2ban inaweza kuzuia anwani ya IP ambayo nilikuwa najaribu kuunganisha:

    Fail2ban ni mfumo bora zaidi, ulio na kumbukumbu vizuri wa kuzuia uvamizi, ambao hutoa usalama wa ziada kwa mfumo wako wa Linux. Inahitaji muda kuzoea usanidi wake na sintaksia, lakini ukishaifahamu, utajisikia huru kubadilisha na kupanua sheria zake.