Hvernig á að nota Fail2ban til að tryggja Linux netþjóninn þinn


Að bæta öryggi netþjónsins ætti að vera eitt af forgangsverkefnum þínum þegar kemur að stjórnun Linux netþjóns. Með því að skoða netþjónaskrárnar þínar gætirðu oft fundið mismunandi tilraunir til innskráningar á grimmdarkrafti, vefflóðum, nýtingarleit og margt fleira.

Með hugbúnaði til að koma í veg fyrir innbrot eins og fail2ban geturðu skoðað netþjónaskrárnar þínar og bætt við viðbótarreglum um iptables til að loka fyrir vandræðalegar IP tölur.

Þessi kennsla mun sýna þér hvernig á að setja upp fail2ban og setja upp grunnstillingar til að vernda Linux kerfið þitt fyrir árásum með brute-force.

Fail2ban er skrifað í python og eina krafan er að hafa python uppsett:

  • Fail2ban grein 0.9.x krefst Python >=2.6 eða Python >=3.2
  • Fail2ban grein 0.8.x krefst Python >=2.4
  • Rótaraðgangur að kerfinu þínu
  • Valfrjálst, iptables eða showewall og sendmail

Hvernig á að setja upp Fail2Ban í Linux kerfum

Uppsetning á fail2ban er tiltölulega auðveld:

Fyrst skaltu uppfæra pakkana þína, virkja Epel geymsluna og setja upp fail2ban eins og sýnt er.

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

Fyrst skaltu uppfæra pakkana þína og setja upp fail2ban eins og sýnt er.

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

Valfrjálst, ef þú vilt virkja póststuðning (fyrir pósttilkynningar), geturðu sett upp sendmail.

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

Til að virkja fail2ban og sendmail skaltu nota eftirfarandi skipanir:

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

Hvernig á að stilla Fail2ban í Linux kerfum

Sjálfgefið er að fail2ban notar .conf skrárnar sem eru staðsettar í /etc/fail2ban/ sem eru lesnar fyrst. Hins vegar er hægt að hnekkja þeim með .local skrám sem staðsettar eru í sömu möppu.

Þannig þarf .local skráin ekki að innihalda allar stillingar úr .conf skránni, heldur aðeins þær sem þú vilt hnekkja. Breytingar ættu að vera gerðar á .local skránum, ekki í .conf. Þetta kemur í veg fyrir að yfirskrifa breytingar þegar fail2ban pakkinn er uppfærður.

Í tilgangi þessarar kennslu munum við afrita núverandi fail2ban.conf skrá yfir á fail2ban.local.

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

Nú geturðu gert breytingarnar í .local skránni með því að nota uppáhalds textaritilinn þinn. Gildin sem þú getur breytt eru:

  • loglevel – þetta er smáatriðin sem á að skrá. Mögulegir valkostir eru:
    • KRITÍSK
    • VILLA
    • VIÐVÖRUN
    • TILKYNNING
    • UPPLÝSINGAR
    • KEMLA

    • STDOUT – gefa út hvaða gögn sem er
    • STDERR – birta allar villur
    • SYSLOG – skráning sem byggir á skilaboðum
    • Skrá – úttak í skrá

    Ein mikilvægasta skráin í fail2ban er jail.conf sem skilgreinir fangelsin þín. Þetta er þar sem þú skilgreinir þjónustuna sem fail2ban ætti að vera virkt fyrir.

    Eins og við nefndum áðan er hægt að breyta .conf skrám meðan á uppfærslu stendur, þannig að þú ættir að búa til jail.local skrá þar sem þú getur beitt breytingunum þínum.

    Önnur leið til að gera þetta er einfaldlega að afrita .conf skrána með:

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

    Ef þú ert að nota CentOS eða Fedora þarftu að breyta bakendanum í jail.local úr \auto\ í \systemd.

    Ef þú ert að nota Ubuntu/Debian, þá er engin þörf á að gera þessa breytingu, jafnvel þó þeir noti líka systemd.

    Fangelsisskráin mun virkja SSH sjálfgefið fyrir Debian og Ubuntu, en ekki á CentOS. Ef þú vilt virkja það skaltu einfaldlega breyta eftirfarandi línu í /etc/fail2ban/jail.local:

    [sshd]
    enabled = true
    

    Þú getur stillt aðstæður þar sem IP-tölu er læst. Í þeim tilgangi notar fail2ban bantime, findtime og maxretry.

    • bantime – þetta er fjöldi sekúndna sem IP-tala verður áfram bönnuð (sjálfgefið 10 mín).
    • findtime – sá tími sem líður á milli innskráningartilrauna, áður en gestgjafinn er bannaður. (sjálfgefið 10 mín). Með öðrum orðum, ef fail2ban er stillt á að loka á IP-tölu eftir 3 misheppnaðar innskráningartilraunir, verða þessar 3 tilraunir að vera gerðar innan uppgötvunartímabilsins (10 mín).
    • maxretry – fjöldi tilrauna sem þarf að gera áður en bann er beitt. (sjálfgefið 3).

    Auðvitað viltu setja ákveðnar IP tölur á hvítlista. Til að stilla slíkar IP tölur skaltu opna /etc/fail2ban/jail.local með uppáhalds textaritlinum þínum og afskrifa eftirfarandi línu:

    ignoreip = 127.0.0.1/8  ::1
    

    Síðan geturðu sett IP tölurnar sem þú vilt að verði hunsuð. IP tölur ættu að vera aðskildar frá bili eða kommu.

    Ef þú vilt fá tilkynningar í pósti við viðburðinn þarftu að stilla eftirfarandi stillingar í /etc/fail2ban/jail.local:

    • destemail – netfang, þar sem þú munt fá tilkynninguna.
    • Nafn sendanda – sendandinn sem þú munt sjá þegar þú færð skilaboðin.
    • sendandi – netfang sem fail2ban mun senda tölvupóstana frá.

    Sjálfgefið mta (póstflutningsmiðill) er stillt á sendmail.

    Til þess að fá tilkynningar í pósti þarftu einnig að breyta \aðgerð stillingunni úr:

    Action = %(action_)s
    

    Til einn af þessum:

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

    • %(action_mw)s – mun banna gestgjafann og senda póst með whois skýrslu.
    • %(action_mwl)s – mun banna gestgjafann, veita whois upplýsingar og allar viðeigandi upplýsingar úr annálaskránni.

    Viðbótaruppsetning Fail2ban fangelsis

    Hingað til höfum við skoðað grunnstillingarvalkostina. Ef þú vilt stilla fangelsi þarftu að virkja það í jail.local skránni. Setningafræðin er frekar einföld:

    [jail_to_enable]
    . . .
    enabled = true
    

    Þar sem þú ættir að skipta út jail_to_enable fyrir raunverulegt fangelsi, til dæmis, \sshd. Í jail.local skránni verða eftirfarandi gildi forskilgreind fyrir ssh þjónustu:

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

    Þú getur virkjað síu sem mun hjálpa til við að bera kennsl á hvort lína í skránni sé misheppnuð. Síugildið er í raun tilvísun í skrá með þjónustuheitinu á eftir .conf. Til dæmis: /etc/fail2ban/filter.d/sshd.conf.

    Setningafræðin er:

    filter = service
    

    Til dæmis:

    filter = sshd
    

    Þú getur skoðað núverandi síur í eftirfarandi möppu: /etc/fail2ban/filter.d/.

    Fail2ban kemur með biðlara sem hægt er að nota til að skoða og breyta núverandi uppsetningu. Þar sem það býður upp á marga möguleika geturðu farið í gegnum handbókina með:

    # man fail2ban-client 
    

    Hér munt þú sjá nokkrar af helstu skipunum sem þú getur notað. Til að skoða núverandi stöðu fail2ban eða fyrir tiltekið fangelsi geturðu notað:

    # fail2ban-client status
    

    Útkoman mun líta svipað út:

    Fyrir einstök fangelsi geturðu keyrt:

    # fail2ban-client status sshd
    

    Á skjámyndinni hér að neðan muntu sjá að ég hef viljandi mistekist margar innskráningar svo fail2ban getur lokað á IP töluna sem ég var að reyna að tengjast frá:

    Fail2ban er frábært, vel skjalfest innbrotsvarnakerfi, sem veitir Linux kerfinu þínu aukið öryggi. Það tekur nokkurn tíma að venjast uppsetningu þess og setningafræði, en þegar þú hefur kynnt þér það muntu ekki hika við að breyta og útvíkka reglurnar.