- Dynaamisen IP-estojärjestelmän toteutus käyttölokien analysoinnin perusteella.
- .Local-määritystiedostojen käyttö asetusten katoamisen estämiseksi järjestelmäpäivitysten aikana.
- Monikanavainen suojausominaisuus kriittisille palveluille, kuten SSH:lle, web-palvelimille, tietokannoille ja FTP:lle.
- Reaaliaikainen porttikieltojen ja niiden peruutusten hallinta fail2ban-client-komentorivityökalulla.
Linux-palvelimen pitäminen alttiina verkolle on pohjimmiltaan kuin vetäisit puoleesi magneetin botteja. Jos et ole määrittänyt mitään turvatoimenpiteitä, lokeissasi on todennäköisesti jo tuhansia epäonnistuneita kirjautumisyrityksiä; automaattiset koneet kokeilevat jatkuvasti käyttäjätunnus- ja salasanayhdistelmiä yrittääkseen ottaa koneesi hallintaansa raa'alla voimalla tehtävällä hyökkäyksellä.
Tässä kohtaa Fail2ban astuu kuvaan, työkaluna, joka toimii väsymättömänä vahtikoirana. Se ei ole palomuuri sanan varsinaisessa merkityksessä, vaan se analysoi järjestelmälokeja ja havaitessaan jonkun yrittävän tunkeutua sisään, se paiskaa oven heidän naamalleen estämällä heidän IP-osoitteensa työkaluilla, kuten iptables tai nftables. Katsotaanpa, miten se konfiguroidaan tekemään palvelimestasi vaikean pähkinän purtavaksi.
Mikä tarkalleen ottaen on Fail2ban ja miten se toimii?
Yksinkertaisesti sanottuna Fail2ban on daemon, joka jatkuvasti valvoo palveluidesi lokitiedostoja. Kun se löytää epäilyttäviä kaavoja, jotka vastaavat ennalta määritettyjä sääntöjä, joita kutsutaan suodattimiksi , se alkaa laskea epäonnistumisia. Jos IP-osoite saavuttaa sallittujen yritysten rajan tietyn ajan kuluessa, ohjelma suorittaa toiminnon , johon tyypillisesti kuuluu kyseisen IP-osoitteen lisääminen palomuurin mustalle listalle.
Nämä kokoonpanot on järjestetty niin sanotuiksi jail- lokeiksi . Jail on pohjimmiltaan joukko sääntöjä, joita sovelletaan tiettyyn palveluun (kuten SSH, Apache tai MySQL). Tällä tavoin voit käyttää erittäin tiukkaa käytäntöä etäkäytölle ja sallivampaa käytäntöä web-palvelimelle, mikä varmistaa, että tunkeilijat estetään automaattisesti ilman, että sinun tarvitsee tarkistaa lokeja manuaalisesti viiden minuutin välein.

Asennus Linux-jakelusi mukaan
Käyttämästäsi järjestelmästä riippuen asennuskomento vaihtelee hieman, mutta se on yleensä saatavilla lähes kaikissa virallisissa arkistoissa.
- Ubuntussa ja Debianissa: Se on hyvin yksinkertaista, sinun tarvitsee vain juosta
sudo apt updatesen jälkeensudo apt install fail2ban. - Rocky Linuxissa tai AlmaLinuxissa: Koska nämä ovat yritystason jakeluita, sinun on ensin otettava EPEL-arkisto käyttöön
sudo dnf install epel-releaseja asenna sitten paketti, jossa onsudo dnf install fail2ban fail2ban-firewalld. - Alpine Linuxissa: Käytä APK-hallintaa
sudo apk add fail2banJa koska se käyttää OpenRC:tä, sinun on otettava se käyttöönsudo rc-update add fail2ban defaultja aloita silläsudo rc-service fail2ban start.

Pääkonfiguraatio: .local-tiedoston salaisuus
Hyvin yleinen virhe on tiedoston muokkaaminen suoraan. jail.confÄlä tee sitä! Tiedosto voidaan korvata järjestelmän päivityksen yhteydessä. Kultainen sääntö on luoda kopio nimeltä jail.localTähän toiseen tiedostoon lisäämäsi parametrit ovat etusijalla alkuperäisiin parametreihin nähden, ja muutoksesi korvataan. suojassa päivityksiltä.
Aloittaaksesi voit kloonata alkuperäisen tiedoston sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local ja avaa se sitten suosikkieditorillasi, kuten nanolla tai vimillä. Osiossa [DEFAULT] Tässä määrität järjestelmän yleisen toiminnan:
- kieltoaika: Haitallisen IP-osoitteen jäädytettynä pysymisen kesto. Tämä voi olla sekunteina tai minuuttien merkiksi käytetään 'm':ää (esim. 10m).
- löytöaika: Aikaväli, jonka Fail2ban tarkistaa virheiden varalta. Jos joku epäonnistuu viisi kertaa tunnissa, mutta hakuaika on 10 minuuttia, häntä ei porttikieltoa anneta.
- maxretry: Epäonnistuneiden yritysten määrä, ennen kuin järjestelmä ilmoittaa Riittää ja estä IP-osoite.
- ignoreip: Olennaista, jotta et saa porttikieltoa. Tässä sinun on annettava julkinen IP-osoite tai VPN-alueesi.

Tiettyjen palveluiden suojaaminen vaihe vaiheelta
Kun yleiset asetukset on määritetty, on aika aktivoida jails-toiminnot palveluille, jotka ovat sinulle tärkeimpiä. Jotta suojaus toimisi, sinun on asetettava enabled = true sen omassa osiossa jail.local.
SSH-yhteys (kriittisin kohta)
Portti 22 on ykköskohde. Vankka kokoonpano määrittäisi maxretry = 3 ja bantime = 3600 (yksi tunti). Fail2ban lukee tiedoston. /var/log/auth.log (Debianilla/Ubuntulla) tai / Var / log / turvallista (CentOS/RHEL-käyttöjärjestelmässä) todennusvirheiden havaitsemiseksi ja hyökkääjän pääsyn estämiseksi.
Verkkopalvelimet (Apache ja Nginx)
Jos sinulla on verkkosivusto tai verkkokauppa, botit yrittävät käyttää arkaluontoisia reittejä, kuten /wp-admin o /login.phpVoit luoda mukautettuja suodattimia kohdassa /etc/fail2ban/filter.d/ näiden kaavojen havaitsemiseksi. Esimerkiksi Suojaa WordPress403-virheitä tai epäonnistuneita yrityksiä seurataan wp-login.php, estää IP-osoitteen, jos se ylittää Apachen tai Nginxin jailissa asetetut rajat.
Tietokannat ja FTP
MySQL:ssä voit seurata lausekkeen virhelokia Käyttäjältä evätty pääsyFTP:n (kuten ProFTPD:n) tapauksessa on tärkeää varmistaa, että logpath Tarkista lokitiedostojen todellinen polku, koska jos Fail2ban ei löydä lokitiedostoa, suojaus ei yksinkertaisesti toimi.
Edistynyt hallinta fail2ban-client-sovelluksella
Sinun ei aina tarvitse muokata tiedostoja ja käynnistää palvelua uudelleen tehdäksesi nopeita muutoksia. Komento fail2ban-client Sen avulla voit hallita järjestelmää lennossa konsolista.
Jos haluat nähdä, mitkä jailat ovat aktiivisia ja kuinka monta IP-osoitetta on estetty, käytä sudo fail2ban-client statusJos haluat perehtyä tarkemmin palveluun, kuten SSH:hon, suorita sudo fail2ban-client status sshdLisäksi, jos vahingossa Olet estänyt työtoverin Tai voit vapauttaa IP-osoitteen nopeasti itse komennolla sudo fail2ban-client set sshd unbanip IP_A_DESBLOQUEAR.
Huolto ja vianetsintä
Jos huomaat, että Fail2ban ei estä niin kuin sen pitäisi, tarkista ensin työkalun oma lokitiedosto. /var/log/fail2ban.log. Käyttämällä tail -f Näet reaaliajassa, ketkä on bannattu ja miksi.
Muista, että Fail2ban tallentaa lukitustilan SQLite-tietokantaan /var/lib/fail2ban/fail2ban.sqlite3Siksi, jos käynnistät palvelimen uudelleen, estetyt IP-osoitteet poistetaan. pysyy estetyksi kunnes rangaistusjaksosi päättyy. Aina kun teet muutoksia määritystiedostoihin, muista ottaa muutokset käyttöön sudo systemctl restart fail2ban.
Tämän työkalun käyttöönotto muuttaa palvelimesi helposta kohteesta automatisoiduksi linnoitukseksi, vähentäen suorittimen kuormitusta hylkäämällä haitallisen liikenteen verkkotasolla ja antaen sinun nukkua sikeästi tietäen, että botit eivät pääse väkisin sisään. Yhdistämällä .local-tiedostojen käytön, tiettyjen jail-tiedostojen hallinnan ja jatkuvan lokien valvonnan saavutat syvällisen puolustusjärjestelmän, joka on välttämätön kaikille Linux-järjestelmänvalvojille.