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.