A Fail2Ban telepítése és konfigurálása biztonságos Linux-kiszolgálóhoz
Ez a részletes útmutató megtanítja Önnek, hogy mi az a Fail2Ban, hogyan kell konfigurálni, és hogyan használhatja további biztonsági réteg biztosítására Linux rendszerén.
Mi az a Fail2Ban?
Ha engedélyezte az SSH-t, ellenőrizze a Linux-kiszolgáló bejelentkezési előzményeit. Meg fog lepődni, ha hatalmas számú IP-címet lát, amelyek SSH-n keresztül próbálnak bejelentkezni a szerverére.
Ha nincs olyan mechanizmus, amely megakadályozná ezeket a bejelentkezési kísérleteket, akkor rendszere érzékeny a bruteforce támadásokra. Alapvetően egy szkript/bot továbbra is megpróbál SSH-csatlakozni a rendszerhez a felhasználónév és a jelszavak különféle kombinációinak kipróbálásával.
Itt jön képbe egy olyan eszköz, mint a Fail2Ban. A Fail2Ban egy ingyenes és nyílt forráskódú szoftver, amely segít megvédeni Linux-kiszolgálóját a rosszindulatú bejelentkezésektől. A Fail2Ban letiltja az IP-címet (bizonyos időre), ha bizonyos számú sikertelen bejelentkezési kísérlet történik.
A Fail2Ban az alapbeállításokkal azonnal működik, de rendkívül konfigurálható is. Tetszés szerint módosíthatja, és igény szerint szűrőket és szabályokat hozhat létre.
Érdekesen hangzik? Miért nem teszteli a Fail2Ban-t? Olvassa el és kövesse a cikk többi részét, és próbálja ki a Fail2Ban-t.
A Fail2Ban telepítése Linuxra
A Fail2Ban népszerűségét abból sejtheti, hogy az összes jelentősebb Linux disztribúció hivatalos tárházában elérhető. Ez egyszerű feladattá teszi a Fail2Ban telepítését.
Telepítse a Fail2Ban-t a CentOS és a Red Hat rendszerre
Ahhoz, hogy új szoftvert telepíthessen a rendszerére, root vagy sudo felhasználónak kell lennie.
Meg kell győződnie arról, hogy rendszere naprakész, és telepítve van-e az EPEL repository.
sudo yum update && sudo yum install epel-releaseMost telepítheti a Fail2Ban-t a következő paranccsal:
sudo yum install fail2banTelepítse a Fail2Ban-t Ubuntu és Debian rendszerre
Először győződjön meg arról, hogy a rendszer frissítve van:
sudo apt update && sudo apt upgrade -yMost telepítse a Fail2Ban-t ezzel a paranccsal:
sudo apt install fail2banA Fail2Ban konfigurációs fájl megértése
A Fail2Banban két fő konfigurációs fájl található: /etc/fail2ban/fail2ban.conf és /etc/fail2ban/jail.conf. Hadd magyarázzam el, mit csinálnak.
/etc/fail2ban/fail2ban.conf: Ez a Fail2Ban démon működési beállításainak konfigurációs fájlja. Itt vannak megadva olyan beállítások, mint a naplószint, a naplófájl, a socket és a pid fájl.
/etc/fail2ban/jail.conf: Itt történik minden varázslat. Ez az a fájl, ahol beállíthat olyan dolgokat, mint az alapértelmezett kitiltási idő, az IP-k tiltása előtti reties-ek száma, az IP-k engedélyezése a listára, a levélküldési információk stb. Alapvetően ebből a fájlból szabályozhatja a Fail2Ban viselkedését.
Mielőtt megváltoztatná ezeket a fájlokat, a Fail2Ban azt tanácsolja, hogy készítsen másolatot .local fájllal ezekről a conf fájlokról. Ez azért van, mert az alapértelmezett conf-fájlok felülírhatók a frissítésekben, és elveszíti az összes beállítást.
sudo cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localMost értsük meg a jail.conf fájlt. Ha a less paranccsal olvassa el ezt a nagy fájlt, elég zavarónak tűnhet. A conf fájl mindent túl sok megjegyzéssel próbál megmagyarázni. Szóval, hadd egyszerűsítsem ezt le neked.
A jail.conf fájl szolgáltatásokra van felosztva. Van egy [Alapértelmezett] szakasz, amely minden szolgáltatásra vonatkozik. Ezután különféle szolgáltatásokat láthat a megfelelő beállításokkal (ha vannak ilyenek). Mindezek a szolgáltatások zárójelben vannak. Olyan szakaszokat fog látni, mint [sshd], [apache-auth], [squid] stb.
Ha eltávolítom a megjegyzéseket, az alapértelmezett rész így néz ki:
[DEFAULT]
ignorecommand =
bantime = 10m
findtime = 10m
maxretry = 5
backend = auto
usedns = warn
logencoding = auto
enabled = false
mode = normal
filter = %(name)s[mode=%(mode)s]
destemail = root@localhost
sender = root@
mta = sendmail
protocol = tcp
chain =
port = 0:65535
fail2ban_agent = Fail2Ban/%(fail2ban_version)s
banaction = iptables-multiport
banaction_allports = iptables-allports
action_abuseipdb = abuseipdb
action = %(action_)sHadd mondjam el néhány paraméter jelentését.
bantime: Állítsa be a tiltás hosszát. Az alapértelmezett 10 perc.
findtime: Az az ablak, amelyben egy IP-címen végrehajtják a műveletet. Az alapértelmezett 10 perc. Tegyük fel, hogy rossz bejelentkezést kísérelt meg egy bizonyos IP 10:30-kor. Ha ugyanaz az IP eléri az újrapróbálkozások maximális számát 10:40 előtt, a rendszer letiltja. Ellenkező esetben a következő sikertelen kísérlet 10:40 után az első sikertelen kísérletnek számít.
maxretry: A sikertelen újrapróbálkozások száma a művelet végrehajtása előtt
usedns: A „warn” beállítás megpróbálja a fordított DNS-t használni a gazdagépnév megkeresésére, és a gazdagépnév használatával letiltására. Ha nem értékre állítja, akkor az IP-címeket tiltja, nem a gazdagépnevet.
destemail: Az e-mail cím, amelyre a figyelmeztetéseket küldik (be kell állítani)
-
feladó: A feladó neve az értesítő e-mailben
mta: Az értesítő e-mailekhez használt levéltovábbítási ügynök
banaction: Ez a paraméter az /etc/fail2ban/action.d/iptables-multiport.conf fájlt használja a művelet beállításához a maximális sikertelen újrapróbálkozás után.
protokoll: A tiltás után megszűnő forgalom típusa
Ha bármilyen változtatást szeretne végrehajtani bármely börtönben (vagy az összes börtönben), például a maximális próbálkozások számát, a kitiltási időt, az időt találni stb., szerkessze a jail.local fájlt.
A Fail2Ban használata a Linux szerver biztonságossá tételére
Hadd mutassak meg néhány módszert, amellyel a Fail2Ban segítségével megerősítheti a Linux biztonságát.
Vegye figyelembe, hogy a fail2ban parancsok futtatásához root felhasználónak vagy sudo hozzáféréssel kell rendelkeznie.
Engedélyezze a Fail2Ban-t a kiszolgálón, és ellenőrizze az összes futó jail-t
A systemd parancsok segítségével elindíthatja és engedélyezheti a Fail2Ban-t a Linux-kiszolgálón:
systemctl start fail2ban
systemctl enable fail2banA Fail2Ban engedélyezése után a fail2ban-client paranccsal láthatja az állapotot és az aktív jaileket:
fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshdHa kíváncsi, az sshd jail alapértelmezés szerint engedélyezve van.
Lásd a Fail2Ban naplót
A Fail2Ban napló a /var/log/fail2ban.log címen található. A naplófájlok a következő formátumúak:
2019-03-25 07:09:08,004 fail2ban.filter [25630]: INFO [sshd] Found 139.59.69.76 – 2019-03-25 07:09:07
2019-03-25 07:09:36,756 fail2ban.filter [25630]: INFO [sshd] Found 159.89.205.213 – 2019-03-25 07:09:36
2019-03-25 07:09:36,757 fail2ban.filter [25630]: INFO [sshd] Found 159.89.205.213 – 2019-03-25 07:09:36
2019-03-25 07:09:36,774 fail2ban.actions [25630]: NOTICE [sshd] Ban 159.89.205.213
2019-03-25 07:09:36,956 fail2ban.filter [25630]: INFO [sshd] Found 182.70.253.202 – 2019-03-25 07:09:36
2019-03-25 07:09:36,957 fail2ban.filter [25630]: INFO [sshd] Found 182.70.253.202 – 2019-03-25 07:09:36
2019-03-25 07:09:36,981 fail2ban.actions [25630]: NOTICE [sshd] Ban 182.70.253.202
2019-03-25 07:09:37,247 fail2ban.filter [25630]: INFO [sshd] Found 112.64.214.90 – 2019-03-25 07:09:37
2019-03-25 07:09:37,248 fail2ban.filter [25630]: INFO [sshd] Found 112.64.214.90 – 2019-03-25 07:09:37
2019-03-25 07:09:37,589 fail2ban.actions [25630]: NOTICE [sshd] Ban 112.64.214.90Láthatja, hogy azonosítja az IP-címeket, és letiltja őket, ha átlépik a maximális újrapróbálkozás küszöbét.
Lásd a Fail2Ban által tiltott IP-címeket
Az egyik módja egy bizonyos börtön állapotának ellenőrzése. Erre a célra használhatja a Fail2Ban klienst.
fail2ban-client status <jail_name>Például, ha látnia kell a Fail2Ban által tiltott összes rossz ssh bejelentkezést, akkor a következő módon használhatja. A kimenet az összes sikertelen kísérletet és a tiltott IP-címeket jeleníti meg.
root@test-server:~# fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 14
| |- Total failed: 715
| `- File list: /var/log/auth.log
`- Actions
|- Currently banned: 7
|- Total banned: 17
`- Banned IP list: 177.47.115.67 118.130.133.110 68.183.62.73 202.65.154.110 106.12.102.114 61.184.247.3 218.92.1.150A sikertelen bejelentkezésből SSH-n keresztül bejelentkezni próbáló rendszernek ehhez hasonló hibát kell kapnia
ssh: connect to host 93.233.73.133 port 22: Connection refusedHogyan lehet véglegesen kitiltani egy IP-t a Fail2Ban segítségével
Mostanra már tudja, hogy a Fail2Ban által IP-címekre helyezett tiltás ideiglenes. Alapértelmezés szerint 10 percig tart, és a támadó 10 perc elteltével megpróbálhat újra bejelentkezni.
Ez biztonsági kockázatot jelent, mivel a támadók olyan szkriptet használhatnak, amely 10 perc elteltével megpróbál bejelentkezni.
Szóval, hogyan állíthat be végleges kitiltást a Fail2Ban használatával? Erre nincs egyértelmű válasz.
A Fail2Ban 0.11-es verziójától kezdve a tiltási idő automatikusan kiszámításra kerül, és a perzisztens IP-címek tiltási ideje exponenciálisan megnő.
De ha ellenőrzi a Fail2Ban verzióját, valószínűleg a 0.10-es verziót futtatja.
fail2ban-server --version
Fail2Ban v0.10.2
Copyright (c) 2004-2008 Cyril Jaquier, 2008- Fail2Ban Contributors
Copyright of modifications held by their respective authors.
Licensed under the GNU General Public License v2 (GPL).A korábbi verziókban használhatott negatív bantime-ot (bantime=-1), és ez egyenértékű lett volna egy állandó kitiltással, de ha ezt a módszert próbálja ki, valószínűleg megjelenik egy hibaüzenet, például "A fail2ban indítása: HIBA NOK: (" az adatbázis lemezképe hibás',)'.
Az egyik nem túl tiszta megoldás az lenne, ha a bantime-ot 1 napra, 1 hétre, 1 hónapra vagy 1 évre növelnénk. Ez megkerülheti a problémát, amíg az új verzió nem érhető el a rendszeren.
Hogyan lehet feloldani a Fail2Ban által blokkolt IP-címet
Először ellenőrizze, hogy az IP blokkolva van-e vagy sem. Mivel a Fail2Ban az iptables-on működik, az iptable-ban megtekintheti a szervere által letiltott IP-címeket:
iptables -n -LLehetséges, hogy grep parancsot kell használnia, ha túl sok IP-cím van tiltva.
Ha megtalálja a megadott IP-címet a kimenetben, akkor az letiltásra kerül:
Tehát a következő lépés annak megállapítása, hogy melyik „börtön” tiltja az említett IP-t. Itt kell használnia a Grep parancsot a fail2ban naplókkal.
Amint az alábbi kimenetben látható, az IP-t az sshd börtön tiltja.
root@test-server:~# grep -E ‘Ban.*61.184.247.3’ /var/log/fail2ban.log
2019-03-14 13:09:25,029 fail2ban.actions [25630]: NOTICE [sshd] Ban 61.184.247.3
2019-03-14 13:52:56,745 fail2ban.actions [25630]: NOTICE [sshd] Ban 61.184.247.3Most, hogy ismeri az IP-t blokkoló börtön nevét, feloldhatja az IP tiltását a fail2ban-client segítségével:
fail2ban-client set <jail_name> unbanip <ip_address>Hogyan lehet az IP-t engedélyezőlistára tenni a Fail2Ban-ban
Nem lesz jó, ha letiltod magad, igaz? Ha figyelmen kívül szeretne hagyni egy IP-címet, hogy a Fail2Ban aktuális munkamenete ne tiltsa le, az IP-címet engedélyezőlistára helyezheti egy ehhez hasonló paranccsal:
fail2ban-client set <JAIL_NAME> addignoreip <IP_Address>Az IP-címét Linux alatt könnyen megtalálhatja. Az én esetemben így volt
sudo fail2ban-client set sshd addignoreip 203.93.83.113
These IP addresses/networks are ignored:
`- 203.93.83.113Ha az IP-címet véglegesen engedélyezőlistára szeretné helyezni, szerkessze a börtön konfigurációs fájlját. Menjen az említett börtönrészhez, és adja hozzá az ignoreip sort a következőképpen:
ignoreip = 127.0.0.1/8 <IP_TO_BE_WHITELISTED>Ha engedélyezőlistára szeretne tenni egy IP-címet a rendszer összes jailjából, jobb ötlet lenne szerkeszteni az /etc/fail2ban/jail.local fájlt, és hozzáadni egy sort az ALAPÉRTELMEZETT szakaszhoz, mint ahogy fent láttuk.
A változtatás életbe lépéséhez újra kell indítania a Fail2Ban alkalmazást.
Hogyan lehet megtekinteni az IP-engedélyezőlistát börtönben
Ezzel a paranccsal megtekintheti a börtön által engedélyezett összes IP-címet:
fail2ban-client get <JAIL_NAME> ignoreipMeg kell mutatnia az összes IP-címet, amelyet a Fail2Ban figyelmen kívül hagy az adott börtön esetében:
sudo fail2ban-client set sshd addignoreip 203.93.83.113
These IP addresses/networks are ignored:
|- 127.0.0.0/8
|- ::1
`- 203.93.83.113IP-cím eltávolítása a Fail2Ban engedélyezőlistáról
Ha eltávolítja az IP-t egy bizonyos börtön engedélyezőlistájáról, akkor ezt a parancsot használhatja:
fail2ban-client set <JAIL_NAME> delignoreip <IP_Address>Ha véglegesen el szeretné távolítani az IP-címet, szerkessze az /etc/fail2ban/jail.local fájlt.
Mi más?
A Fail2Ban segítségével sokkal több mindent megtehet. Ez az útmutató megadja az alapokat a Fail2Ban használatához. Nem érintettem olyan témákat, mint a műveletek, e-mail értesítések, szűrők stb.
Miután tisztában van a Fail2Ban alapjaival, elkezdheti a további felfedezéseket. Egyelőre csak játsszon vele, és adjon hozzá egy további biztonsági réteget az SSH-hoz a Linux-kiszolgálón.