Kuinka käyttää Fail2bania Linux-palvelimesi suojaamiseen
Palvelimen turvallisuuden parantamisen pitäisi olla yksi tärkeimmistä prioriteeteistasi linux-palvelimen hallinnassa. Tarkastelemalla palvelinlokeja saatat usein löytää erilaisia brute force -kirjautumisyrityksiä, verkkotulvia, hyväksikäytön etsintää ja monia muita.
Tunkeutumisenestoohjelmistolla, kuten fail2ban, voit tarkastella palvelimesi lokeja ja lisätä ylimääräisiä iptables-sääntöjä estääksesi ongelmalliset IP-osoitteet.
Lue myös: Fail2Banin asentaminen SSH:n suojaamiseksi CentOS/RHEL 8:ssa
Tämä opetusohjelma näyttää, kuinka fail2ban asennetaan ja perusasetukset suojataan Linux-järjestelmäsi raakoja hyökkäyksiä vastaan.
Vaatimukset
Fail2ban on kirjoitettu pythonilla ja ainoa vaatimus on, että python on asennettu:
- Fail2ban-haara 0.9.x vaatii Python >=2.6 tai Python >=3.2
- Fail2ban-haara 0.8.x vaatii Pythonin >=2.4
- Pääkäyttäjän oikeudet järjestelmääsi
- Valinnaisesti iptables tai showwall ja sendmail
Kuinka asentaa Fail2Ban Linux-järjestelmiin
fail2ban:n asentaminen on suhteellisen helppoa:
Asenna Fail2Ban CentOS/RHELiin
Päivitä ensin paketit, ota Epel-arkisto käyttöön ja asenna fail2ban kuvan mukaisesti.
yum update
yum install epel-release
yum install fail2ban
Asenna Fail2Ban Debianiin/Ubuntuun
Päivitä ensin paketit ja asenna fail2ban kuvan mukaisesti.
apt-get update && apt-get upgrade -y
apt-get install fail2ban
Valinnaisesti, jos haluat ottaa sähköpostituen käyttöön (posti-ilmoituksia varten), voit asentaa sendmailin.
yum install sendmail [On CentOS/RHEL]
apt-get install sendmail-bin sendmail [On Debian/Ubuntu]
Ota fail2ban ja sendmail käyttöön käyttämällä seuraavia komentoja:
systemctl start fail2ban
systemctl enable fail2ban
systemctl start sendmail
systemctl enable sendmail
Kuinka määrittää Fail2ban Linux-järjestelmissä
Oletuksena fail2ban käyttää .conf
-tiedostoja, jotka sijaitsevat osoitteessa /etc/fail2ban/ ja jotka luetaan ensin. Ne voidaan kuitenkin ohittaa samassa hakemistossa olevilla .local
-tiedostoilla.
Siten .local
-tiedoston ei tarvitse sisältää kaikkia .conf
-tiedoston asetuksia, vaan vain ne, jotka haluat ohittaa. Muutokset tulee tehdä .local
-tiedostoihin, ei .conf
-tiedostoihin. Tämä estää muutosten korvaamisen fail2ban-pakettia päivitettäessä.
Tätä opetusohjelmaa varten kopioimme olemassa olevan fail2ban.conf-tiedoston tiedostoon fail2ban.local.
cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
Nyt voit tehdä muutokset .local
-tiedostoon suosikkitekstieditorillasi. Arvot, joita voit muokata, ovat:
lokitaso – tämä on kirjattavan yksityiskohtaisuuden taso. Mahdollisia vaihtoehtoja ovat:
- KRIITTINEN
- VIRHE
- VAROITUS
- ILMOITUS
- TIEDOT
- DEBUG
logtarget – kirjaa toiminnot tiettyyn tiedostoon. Oletusarvo on /var/log/fail2ban.log. Voit kuitenkin muuttaa tämän seuraavasti:
- STDOUT – tulosta kaikki tiedot
Määritä Fail2ban jail.local
Yksi fail2banin tärkeimmistä tiedostoista on jail.conf
, joka määrittää vankilasi. Tässä voit määrittää palvelut, joille fail2ban tulee ottaa käyttöön.
Kuten aiemmin mainitsimme, .conf
-tiedostoja voidaan muuttaa päivitysten aikana, joten sinun tulee luoda jail.local-tiedosto, jossa voit ottaa muutokset käyttöön.
Toinen tapa tehdä tämä on kopioida .conf-tiedosto seuraavasti:
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Jos käytössäsi on CentOS tai Fedora, sinun on vaihdettava taustajärjestelmä tiedostossa jail.local osoitteesta "auto " - "systemd".
Jos käytät Ubuntu/Debiania, tätä muutosta ei tarvitse tehdä, vaikka nekin käyttävät systemd-käyttöjärjestelmää.
Vankilatiedosto ottaa SSH:n käyttöön oletuksena Debianissa ja Ubuntussa, mutta ei CentOS:ssä. Jos haluat ottaa sen käyttöön, muuta yksinkertaisesti seuraavaa riviä tiedostossa /etc/fail2ban/jail.local:
[sshd]
enabled = true
Kielto- ja uudelleenyritysajat
Voit määrittää tilanteen, jonka jälkeen IP-osoite estetään. Tätä tarkoitusta varten fail2ban käyttää bantimea, findtime ja maxretry.
- bantime – tämä on sekuntien määrä, jonka IP-osoite pysyy estettynä (oletus 10 min).
- findtime – aika kirjautumisyritysten välillä, ennen kuin isäntä on estetty. (oletus 10 min). Toisin sanoen, jos fail2ban on asetettu estämään IP-osoite 3 epäonnistuneen kirjautumisyrityksen jälkeen, nämä 3 yritystä on tehtävä findtime-ajan kuluessa (10< minuuttia).
- Maxretry – yritysten määrä ennen kiellon soveltamista. (oletus 3).
IP-osoite sallittujen luetteloon
Tietenkin haluat lisätä tiettyjä IP-osoitteita sallittujen luetteloon. Voit määrittää tällaiset IP-osoitteet avaamalla /etc/fail2ban/jail.local suosikkitekstieditorillasi ja poistamalla seuraavan rivin kommentit:
ignoreip = 127.0.0.1/8 ::1
Sitten voit laittaa IP-osoitteet, jotka haluat ohittaa. IP-osoitteet tulee erottaa välilyönnistä tai pilkuista.
Sähköpostihälytykset
Jos haluat saada sähköpostihälytyksiä tapahtumasta, sinun on määritettävä seuraavat asetukset osoitteessa /etc/fail2ban/jail.local:
- destemail – sähköpostiosoite, johon saat ilmoituksen.
- Lähettäjänimi – lähettäjä, jonka näet, kun vastaanotat viestin.
- lähettäjä – sähköpostiosoite, josta fail2ban lähettää sähköpostit.
Oletusarvoksi mta (postinsiirtoagentti) on asetettu sendmail.
Jotta voit vastaanottaa sähköposti-ilmoituksia, sinun on myös muutettava "toiminta"-asetusta seuraavista:
Action = %(action_)s
Johonkin näistä:
action = %(action_mw)s
action = %(action_mwl)s
- %(action_mw)s – kieltää isännän ja lähettää sähköpostin whois-raportin kera.
- %(action_mwl)s – kieltää isännän, antaa whois-tiedot ja kaikki asiaankuuluvat tiedot lokitiedostosta.
Fail2ban Jail -lisämääritykset
Toistaiseksi olemme tarkastelleet peruskokoonpanovaihtoehtoja. Jos haluat määrittää vankilan, sinun on otettava se käyttöön jail.local-tiedostossa. Syntaksi on melko yksinkertainen:
[jail_to_enable]
. . .
enabled = true
Missä sinun tulee korvata jail_to_enable todellisella vankilalla, esimerkiksi "sshd". jail.local-tiedostossa ssh-palvelulle määritetään ennalta seuraavat arvot:
[sshd]
port = ssh
logpath = %(sshd_log)s
Voit ottaa käyttöön suodattimen, joka auttaa tunnistamaan, onko lokin rivi epäonnistunut. Suodattimen arvo on itse asiassa viittaus tiedostoon, jonka palvelun nimi seuraa .conf. Esimerkki: /etc/fail2ban/filter.d/sshd.conf.
Syntaksi on:
filter = service
Esimerkiksi:
filter = sshd
Voit tarkastella olemassa olevia suodattimia seuraavassa hakemistossa: /etc/fail2ban/filter.d/.
Käytä fail2ban-asiakasta
Fail2banin mukana tulee asiakas, jota voidaan käyttää nykyisen kokoonpanon tarkistamiseen ja muuttamiseen. Koska se tarjoaa monia vaihtoehtoja, voit käydä sen oppaassa läpi:
man fail2ban-client
Täältä näet joitain peruskomentoja, joita voit käyttää. Voit tarkistaa fail2banin tai tietyn vankilan nykyisen tilan seuraavasti:
fail2ban-client status
Tulos näyttää tältä:
Yksittäisen vankilan tapauksessa voit suorittaa:
fail2ban-client status sshd
Alla olevassa kuvakaappauksessa näet, että olen tarkoituksella epäonnistunut useissa kirjautumisissa, joten fail2ban voi estää IP-osoitteen, josta yritin muodostaa yhteyden:
Johtopäätös
Fail2ban on erinomainen, hyvin dokumentoitu tunkeutumisenestojärjestelmä, joka tarjoaa lisäturvaa Linux-järjestelmällesi. Se vaatii jonkin aikaa tottua sen asetuksiin ja syntaksiin, mutta kun olet perehtynyt siihen, voit vapaasti muuttaa ja laajentaa sen sääntöjä.