Kaip naudoti „Fail2ban“, kad apsaugotumėte savo „Linux“ serverį
Serverio saugumo gerinimas turėtų būti vienas iš svarbiausių prioritetų, kai kalbama apie Linux serverio valdymą. Peržiūrėdami savo serverio žurnalus, dažnai galite rasti įvairių bandymų prisijungti prie brutalios jėgos, interneto potvynių, išnaudojimo paieškos ir daugelio kitų.
Naudodami įsibrovimų prevencijos programinę įrangą, pvz., fail2ban, galite peržiūrėti serverio žurnalus ir pridėti papildomų iptables taisyklių, kad blokuotumėte probleminius IP adresus.
Taip pat skaitykite: kaip įdiegti „Fail2Ban“, kad būtų apsaugotas SSH „CentOS/RHEL 8“
Ši mokymo programa parodys, kaip įdiegti fail2ban ir nustatyti pagrindinę konfigūraciją, kad apsaugotumėte „Linux“ sistemą nuo žiaurios jėgos atakų.
Reikalavimai
Fail2ban yra parašytas python ir vienintelis reikalavimas yra įdiegti python:
- Fail2ban filialas 0.9.x reikalauja Python >=2.6 arba Python >=3.2
- Fail2ban filialas 0.8.x reikalauja Python >=2.4
- Root prieiga prie jūsų sistemos
- Pasirinktinai, iptables arba showwall ir sendmail
Kaip įdiegti „Fail2Ban“ „Linux“ sistemose
Įdiegti fail2ban yra gana paprasta:
Įdiekite „Fail2Ban“ „CentOS“/RHEL
Pirmiausia atnaujinkite paketus, įgalinkite Epel saugyklą ir įdiekite fail2ban, kaip parodyta.
yum update
yum install epel-release
yum install fail2ban
Įdiekite „Fail2Ban“ „Debian“/„Ubuntu“.
Pirmiausia atnaujinkite paketus ir įdiekite fail2ban, kaip parodyta.
apt-get update && apt-get upgrade -y
apt-get install fail2ban
Pasirinktinai, jei norite įjungti pašto palaikymą (pašto pranešimams), galite įdiegti sendmail.
yum install sendmail [On CentOS/RHEL]
apt-get install sendmail-bin sendmail [On Debian/Ubuntu]
Norėdami įjungti fail2ban ir sendmail, naudokite šias komandas:
systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail
Kaip sukonfigūruoti Fail2ban Linux sistemose
Pagal numatytuosius nustatymus fail2ban naudoja .conf
failus, esančius /etc/fail2ban/, kurie nuskaitomi pirmiausia. Tačiau juos gali nepaisyti .local
failai, esantys tame pačiame kataloge.
Taigi į failą .local
nereikia įtraukti visų .conf
failo nustatymų, o tik tuos, kuriuos norite nepaisyti. Pakeitimai turi būti atliekami .local
failuose, o ne .conf
. Tai neleis perrašyti pakeitimų atnaujinant fail2ban paketą.
Šios mokymo programos tikslais esamą fail2ban.conf failą nukopijuosime į fail2ban.local.
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
Dabar galite atlikti failo .local
pakeitimus naudodami mėgstamą teksto rengyklę. Vertės, kurias galite redaguoti, yra:
Žurnalo lygis – tai detalumo lygis, kuris turi būti registruojamas. Galimi variantai:
- KRITIŠKAS
- KLAIDA
- ĮSPĖJIMAS
- PASTEBĖTI
- INFORMACIJA
- DERINTI
logtarget – užregistruokite veiksmus konkrečiame faile. Numatytoji reikšmė yra /var/log/fail2ban.log. Tačiau galite tai pakeisti į:
- STDOUT – išvesti bet kokius duomenis
Konfigūruokite Fail2ban jail.local
Vienas iš svarbiausių fail2ban failų yra jail.conf
, kuris apibrėžia jūsų kalėjimus. Čia apibrėžiate paslaugas, kurioms fail2ban turėtų būti įjungtas.
Kaip minėjome anksčiau, .conf
failai gali būti pakeisti atnaujinant, todėl turėtumėte sukurti jail.local failą, kuriame galėtumėte pritaikyti pakeitimus.
Kitas būdas tai padaryti – tiesiog nukopijuoti .conf failą su:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Jei naudojate CentOS arba Fedora, turėsite pakeisti backend jail.local iš „auto“ į „systemd“.
Jei naudojate Ubuntu/Debian, šio pakeitimo atlikti nereikia, net jei jie taip pat naudoja systemd.
Įkalinimo failas pagal numatytuosius nustatymus įgalins SSH Debian ir Ubuntu, bet ne CentOS. Jei norite tai įjungti, tiesiog pakeiskite šią eilutę /etc/fail2ban/jail.local:
[sshd]
enabled = true
Uždrausti ir pakartotinai
Galite konfigūruoti aplinkybę, po kurios IP adresas blokuojamas. Tuo tikslu fail2ban naudoja bantime, findtime ir maxretry.
- bantime – tai sekundžių skaičius, per kurį IP adresas bus uždraustas (numatytasis 10 min.).
- findtime – laikas tarp bandymų prisijungti, kol priegloba uždrausta. (numatytasis 10 min.). Kitaip tariant, jei fail2ban nustatytas blokuoti IP adresą po 3 nesėkmingų prisijungimo bandymų, tie 3 bandymai turi būti atlikti per radimo laikotarpį (10< min.).
- Maxretry – bandymų, kuriuos reikia atlikti prieš taikant draudimą, skaičius. (numatytasis 3).
Į baltąjį sąrašą įtrauktas IP adresas
Žinoma, tam tikrus IP adresus norėsite įtraukti į baltąjį sąrašą. Norėdami sukonfigūruoti tokius IP adresus, atidarykite /etc/fail2ban/jail.local naudodami mėgstamą teksto rengyklę ir panaikinkite šios eilutės komentarą:
ignoreip = 127.0.0.1/8 ::1
Tada galite įdėti IP adresus, kurių norite nepaisyti. IP adresai turi būti atskirti nuo tarpo arba kablelio.
El. pašto įspėjimai
Jei norite gauti įspėjimus el. paštu apie įvykį, /etc/fail2ban/jail.local turėsite sukonfigūruoti šiuos nustatymus:
- destemail – pašto adresas, kuriuo gausite pranešimą.
- Siuntėjo vardas – siuntėjas, kurį matysite gavę pranešimą.
- siuntėjas – el. pašto adresas, iš kurio fail2ban siųs el. laiškus.
Numatytasis mta (pašto perdavimo agentas) yra sendmail.
Jei norite gauti pranešimus el. paštu, taip pat turėsite pakeisti veiksmo nustatymą iš:
Action = %(action_)s
Į vieną iš šių:
action = %(action_mw)s
action = %(action_mwl)s
- %(action_mw)s – uždraus prieglobą ir išsiųs laišką su „whois“ ataskaita.
- %(action_mwl)s – uždraus prieglobą, pateiks whois informaciją ir visą susijusią informaciją iš žurnalo failo.
Papildoma Fail2ban Jail konfigūracija
Iki šiol peržiūrėjome pagrindines konfigūracijos parinktis. Jei norite sukonfigūruoti kalėjimą, turėsite jį įjungti jail.local faile. Sintaksė gana paprasta:
[jail_to_enable]
. . .
enabled = true
Kur turėtumėte pakeisti jail_to_enable į tikrąjį kalėjimą, pvz., “sshd ”. Failo jail.local ssh paslaugai bus iš anksto nustatytos šios reikšmės:
[sshd]
port = ssh
logpath = %(sshd_log)s
Galite įjungti filtrą, kuris padės nustatyti, ar žurnalo eilutė yra neveikianti. Filtro reikšmė iš tikrųjų yra nuoroda į failą su paslaugos pavadinimu, po kurio yra .conf. Pavyzdžiui: /etc/fail2ban/filter.d/sshd.conf.
Sintaksė yra tokia:
filter = service
Pavyzdžiui:
filter = sshd
Esamus filtrus galite peržiūrėti šiame kataloge: /etc/fail2ban/filter.d/.
Naudokite fail2ban-client
Fail2ban yra su klientu, kurį galima naudoti norint peržiūrėti ir pakeisti esamą konfigūraciją. Kadangi jame yra daug parinkčių, galite peržiūrėti jo vadovą su:
man fail2ban-client
Čia pamatysite keletą pagrindinių komandų, kurias galite naudoti. Norėdami peržiūrėti dabartinę fail2ban būseną arba konkretų kalėjimą, galite naudoti:
fail2ban-client status
Rezultatas atrodys panašiai:
Asmeniniame kalėjime galite paleisti:
fail2ban-client status sshd
Žemiau esančioje ekrano kopijoje pamatysite, kad man tyčia nepavyko prisijungti prie kelių, todėl fail2ban gali užblokuoti IP adresą, iš kurio bandžiau prisijungti:
Išvada
Fail2ban yra puiki, gerai dokumentuota įsilaužimo prevencijos sistema, kuri suteikia papildomos apsaugos jūsų Linux sistemai. Reikia šiek tiek laiko priprasti prie jos sąrankos ir sintaksės, tačiau susipažinę su ja, galėsite keisti ir išplėsti taisykles.