GNU/Linux >> Znalost Linux >  >> Debian

Jak nainstalovat Fail2ban na Debian 10 nebo 11 Bullseye

fail2ban je balík klientských, serverových a konfiguračních souborů, který slouží k ochraně systému před různými škodlivými útoky. Zabezpečuje také linuxové serverové služby proti odmítnutí služby (DoS). Mezi další základní funkce patří monitorovací protokolové soubory, vyhledávání předdefinovaných vzorů a dočasné blokování IP adres. Je publikován pod GNU General Public License verze 2 a je založen na Pythonu.

Může běžet na pozadí (jako démon) i v popředí. Program je užitečný například v ssh serveru, kde chcete omezit počet pokusů o přihlášení. Program fail2ban prozkoumá protokolové soubory systému, zda neobsahují neúspěšné pokusy o přihlášení, a poté na určitou dobu zablokuje internetovou adresu (IP) útočníka.

Zde se naučíme kroky k instalaci Fail2ban na Debian 11 Bulleyes a jeho konfigurační proces.

Instalace Fail2ban na Debian 11

Balíčky pro instalaci a konfiguraci Fail2ban jsou dostupné v oficiálním repozitáři Debianu 11, takže k jeho instalaci stačí použít příkaz apt.

Nejprve spusťte příkaz update pro opětovné sestavení mezipaměti úložiště-

sudo apt update

A pak hlavní příkaz k získání tohoto bezpečnostního nástroje-

sudo apt install fail2ban

Po spuštění výše uvedeného příkazu budou po instalaci dostupné následující programy:

  • fail2ban-server – server
  • fail2ban-client – ​​Klientský program pro konfiguraci a vyhodnocení serveru
  • fail2ban-regex- Program pro testování regulárních výrazů

Povolte a zkontrolujte stav jeho služeb-

sudo systemctl enable fail2ban
sudo systemctl status fail2ban

Konfigurace v Debianu 10/11

fail2ban čte typy konfiguračních souborů s příponami .conf a .local . Soubory s příponou .conf jsou vytvořeny během instalace a budou přepsány během aktualizace balíčku takže všechny změny musí být provedeny v odpovídajícím .local soubory. V tomto souboru tedy přidávejte nebo měňte pouze hodnoty, které se liší od výchozího nebo globálního nastavení.

Fail2ban má tři typy konfiguračních souborů:

/etc/fail2ban/action.d/*.conf/*
/etc/fail2ban/filter.d/*.conf/*
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf

Actions.d

Soubory v adresáři /etc/fail2ban/action.d/ obsahují příkazy pro (odblokování) IP adres. Soubory akcí obsahují dvě části: [Definice][Init] . Položky v [Init] sekce se používá k přepsání pravidel definovaných ve vězení. Příklady v následující tabulce jsou převzaty z iptables-multiport-conf akce. Všechny příkazy jsou prováděny s uživatelskými právy fail2ban.

Přehled možností
záznam popis příklad
[Definice]
spuštění akce Příkazy, které se provádějí při spuštění fail2ban. actionstart =iptables -N fail2ban-
iptables -A fail2ban- -j RETURN
iptables -I <řetěz> -p -m multiport --dports -j fail2ban-
actionstop Příkazy, které se provádějí při ukončení fail2ban. actionstop =iptables -D <řetěz> -p -m multiport --dports -j fail2ban-
iptables -F fail2ban-[[BR]]iptables -X fail2ban-
akční kontrola Příkazy, které se provádějí před každým zákazem akcí. Používají se ke kontrole funkčnosti aktuálního prostředí. actioncheck =iptables -n -L <řetěz> | grep -q 'fail2ban-[ \t]'
akční zákaz Příkazy, které se provádějí, když je IP zakázána. Podmínka je vždy maxretry musí být překročeno a čas hledání poklesl krátký. actionban =iptables -I fail2ban- 1 -s -j
actionunban Příkazy, které se mají použít pro zrušení zákazu. actionunban =iptables -D fail2ban- -s -j
[Init]
jméno Výchozí název řetězce name =default
port port port =ssh
protokol Používá jej interně konfigurační čtečka. Možné hodnoty: tcpudpicmpvše . protokol =tcp
řetěz Řetěz iptables, do kterého by měla být přidána pravidla fail2ban. Standardní je INPUT . řetěz =INPUT
Značky akcí Značky akcí jsou zástupné symboly, které lze použít v actionbanactionunbanactioncheck .
ip Adresa IPv4, která má být zakázána.
selhání Počet započítaných neúspěšných pokusů.
čas Unixové časové razítko (v sekundách) zákazu.
odpovídá Zřetězené položky z řádků souboru protokolu, které vedou k zákazu. Mnoho znaků shellu je escapováno.

Filter.d 

Soubory v adresáři /etc/fail2ban/filter.d/ obsahuje regulární výrazy pro analýzu souborů protokolu a pro extrakci IP adresy nebo pokud jsou použity usedns, název hostitele. Tyto soubory obsahují pouze dvě části: [Definice][Zahrnuje] . Ten lze použít ke čtení jiných konfiguračních souborů.

Příklady v následující tabulce jsou převzaty z iptables-multiport-conf akce. Všechny příkazy jsou prováděny s uživatelskými právy fail2ban.

Přehled možností
vstup popis příklad
[Definice]
failregex Pomocí tohoto regulárního výrazu se v souborech protokolu vyhledávají shody. Značka je HOST k dispozici zde,
který se používá jako součást regulárního výrazu a obsahuje název hostitele nebo IP adresu.
Rozdíl mezi IP adresou a názvem hostitele je určen automaticky pomocí fail2ban.
failregex =^%(__prefix_line)sFAIL:\S+ adresa z=$
^%(__prefix_line)sFAIL:\S+ libwrap z=$
ignoreregex Zde lze definovat výjimky, i když byly platné pro
výše uvedený failregex. ignoreregex podporuje interpolaci řetězců
, takže můžete použít své vlastní proměnné s %(variablenname)s .
ignoreregex =
[ZAHRNUTÍ]
před Použijte k tomu, aby byl soubor načten před nastaveným souborem.
Příkladem je common.conf
before =common.conf
po Soubor se přečte po nastaveném souboru po =example_after.local
příklad Po integraci common.conf je _daemon k dispozici.
Viz /etc/fail2ban/filter.d/common.conf pro více podrobností.
_daemon =xinetd

Jail.conf

Zatímco jail.conf soubor kombinuje Akce a vytvořili filtr do vězení. Uživatel musí uložit tento soubor s příponou.loca l začít přidávat jeho vlastní pravidla nebo je přizpůsobovat.

Soubor jail.conf a následující tabulka poskytuje přehled výchozích možných hodnot.


Přehled možností
vstup popis příklad
[VÝCHOZÍ]
ignoreip Mezerou oddělený seznam IP adres nebo sítí, které mají být ignorovány. ignoreip =127.0.0.1/8 192.168.1.33
bantime Čas zákazu v sekundách. Záporná hodnota je trvalý zákaz. bantime =86400
findtime Počet sekund, po kterých je počítadlo pro maxretry resetovat. findtime =660
maxretry Maximální počet neúspěšných pokusů před tím, než fail2ban zakáže IP. maxretry =2
backend Zde lze nastavit backend, například systemd. Výchozí hodnota je auto (doporučeno). backend =systemd
usedns Nastavení pro chování zpětného vyhledávání fail2ban. Možné hodnoty jsou yesnevarovat .
To druhé znamená, že záznamy s názvy hostitelů zobrazí v souboru protokolu varování, což může vést k velkému počtu záznamů.
usedns =varovat
[myJail] Zde lze přiřadit název věznice. [ssh]
povoleno (De-) aktivuje vězení povoleno =true
port Definice portu, může být číselná. Více hodnot je odděleno čárkami. port =ssh
filtr =sshd Název souboru filtru /etc/fail2ban/filter.d/sshd.conf
cesta protokolu Soubor protokolu, který má být monitorován a který je zkontrolován na filtr. cesta protokolu =/var/log/auth.log
maxretry, bantime,... Lze také definovat různé hodnoty pro výchozí možnosti. maxretry =3


Vytvořte si vlastní konfigurační soubor vězení


Nyní tedy zkopírujeme jail.conf soubor k vytvoření jail.local soubor pro přidání jakýchkoli vlastních nastavení, která tam zůstanou i po upgradu fail2ban.

sudo cp /etc/fail2ban/jail.{conf,local}

Chcete-li nakonfigurovat různá nastavení, upravte vytvořené místní soubory vězení

sudo nano /etc/fail2ban/jail.local

Několik příkladů-

Přidat některé IP adresy, rozsahy IP nebo hostitele na seznam povolených

Nyní, když se soubor otevře, řekněme, že chcete přidat některé IP adresy, rozsahy IP nebo hostitele na seznam povolených, aby nebyli blokováni službou File2ban. Za tímto účelem definujeme totéž v nově vytvořeném Jail.local soubor.
Viz :Jak zkontrolovat IP adresu na Linux Command terminal

V souboru najděte #igonreip řádek a odstraňte # z toho. Poté přidejte IP adresu nebo rozsah, který chcete přidat na seznam povolených.

Bantime, findtime a maxretry

Podobně můžeme také zvýšit nebo snížit dobu zakázané IP adresy změnou hodnot volby bantime uvedené v souboru.

[Default]

bantime = 10m

Chcete-li zkrátit nebo prodloužit časové období, jednoduše změňte výchozích 10 minut na cokoliv, co chcete. Zatímco k trvalému zablokování IP adresy použijte nějakou zápornou hodnotu.

maxretry

Kolik maximálních pokusů musela IP adresa provést, aby byla zablokována? Ve výchozím nastavení je to pět a je deklarováno pomocí maxretry možnost v jail.local soubor. Pokud ji chcete snížit, řekněme až po dvou škodlivých pokusech, měla by IP dostat blokátor, pak změňte číslo z 5 na 2. Stejným způsobem můžete zvýšit i počet maximálních pokusů.

maxretry = 5

najít čas

Je to doba mezi maximálním opakováním, ke kterému by mělo dojít u jakéhokoli škodlivého kódu nebo přihlášení do systému, než Fail2Ban zablokuje konkrétní IP adresu. Například , někdo se snaží přihlásit, pokud to udělal 5 pokusů ve stanovených 10 minutách, tak se mu zablokuje IP. Čas hledání však můžete změnit hodnotu pro zvýšení nebo snížení tohoto časového období.

findtime = 10m

Fail2ban může odesílat e-mailová upozornění

Ano, pokud bude některá IP zakázána, můžete obdržet upozornění e-mailem na totéž. Musíte však povolit a definovat, jakou e-mailovou adresu chcete používat k přijímání upozornění.

Nainstalovat Sendmail- Agent pro přenos pošty s otevřeným zdrojovým kódem (MTA)

sudo apt install sendmail

Nyní musíme provést dvě klíčová nastavení v jail.local soubor pro příjem upozornění e-mailem.

  1. destemail – e-mailová adresa, která bude použita pro zasílání upozornění.
  2. odesílatel – e-mailová adresa, ze které bude fail2ban odesílat e-maily.

V souboru tedy najděte dvě výše uvedená nastavení a přidejte svou e-mailovou adresu-

Dále vyhledejte řádek níže

action = %(action_)s

A změňte jej pomocí některého z následujících –

akce =%(action_)s – Tento odešle e-mailové upozornění, když bude nějaká IP adresa zakázána.

nebo

akce =%(action_mwl)s – V případě, že chcete dostávat e-mailové upozornění na zakázanou IP hostitele včetně informací v protokolech, použijte tuto možnost akce.
Kromě toho se můžete podívat na náš seznam nejlepších aplikací e-mailového klienta pro Ubuntu nebo Debian Linux.

Povolte služby v souboru vězení Fail2ban

Jak jsem již zmínil, vytvoření jail.local obsahuje obě Akce a Filtry které lze použít k zakázání/povolení výchozích povolených služeb nebo k vytvoření vlastních.

Například – Ve výchozím nastavení je SSH povoleno v Jail.local z Fail2ban.

Ve skutečnosti v souboru Fail2ban Jail uvidíte, že s ním přichází spousta služeb. Musíte je však povolit. NEBO si můžete vytvořit vlastní.

Pod /etc/fail2ban/filters.d ve složce můžete vidět veškerý konfigurační filtr soubory pro každou tam dostupnou službu Fai2ban Jail.

Než si ukážeme, jak je zapnout,  podívejme se, jaké jsou povolené vězeňské služby-

sudo fail2ban-client status

Výstup bude takový-

Status
|- Number of jail: 1
`- Jail list: sshd

Nyní, pokud chceme zapnout nějakou službu Jail, musíme přidat enabled =true v jail.conf soubor za titulem vězeňské služby. Následující příklad ukazuje, jak povolit apache-auth vězení:

Příklad – Pojďme zapnout službu Apache-auth Fail2ban

Upravte jail.local a najděte předdefinované Apache-Auth  Vězeňská služba

Uložit soubor pomocíCtrl+X , Y, a stisknutím klávesy Enter Klíč.

Restartujte server Fail2ban

sudo systemctl restart fail2ban

Nyní , opět použijteklienta Fail2ban zkontrolovat, kolik vězeňských služeb je povoleno-

sudo fail2ban-client status

Tentokrát bude výstup-

Status
|- Number of jail: 2
`- Jail list: apache-auth, sshd

Další informace o službě použijte její název s výše uvedeným příkazem-

sudo fail2ban-client status apache-auth

Výstup:

Status for the jail: apache-auth
|- Filter
| |- Currently failed: 0
| |- Total failed: 0
| `- File list: /var/log/apache2/error.log
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:

Chyba:

Pokud se vám zobrazují následující chyby, znamená to, že konkrétní služba, kterou chcete povolit, ještě není na vašem systému nebo serveru nainstalována. Například Pokud jsem povolil Apache Jail, ale samotný Apache není na mém serveru dostupný, objeví se tento druh chyby.

fail2ban.service: Main process exited, code=exited, status=255/EXCEPTION

[6613]: ERROR Failed to access socket path: /var/run/fail2ban/fail2ban.sock. Is fail2ban running?

Použití klienta Fail2ban

Dokonce i my můžeme použít klientský příkazový nástroj Fail2ban k řešení jeho různých služeb – pro zobrazení všech souvisejících příkazů můžete použít příznak Nápověda –

fail2ban-client -h

Například Chcete-li zakázat nebo zrušit zákaz některé IP pro nějakou službu, použijte následující syntaxi

Zakázat

fail2ban-client set <JAIL-service> banip <IP>

Zrušení zákazu

fail2ban-client set <JAIL-service> unbanip <IP>

Příklad-

sudo fail2ban-client set sshd banip 192.168.0.6

Konečná poznámka-

Toto byl rychlý přehled instalace a konfigurace Fail2ban na Debian 11 Bullseye nebo 10 Buster. Přestože dokumentace nástroje Fail2ban není rozsáhlá, přesto, pokud se někteří chtějí podívat, podívejte se na jeho oficiální web. Zde jsou odkazy:Stránka projektu, Dokumentace, stránka GitHub pro zdrojový kód


Debian
  1. Jak nainstalovat R na Debian 9

  2. Jak nainstalovat Python 3.8 na Debian 11 Bullseye

  3. Jak nainstalovat Python 3.9 na Debian 11 Bullseye

  1. Jak nainstalovat R na Debian 10

  2. Jak nainstalovat Debian 11 (Bullseye) krok za krokem

  3. Jak nainstalovat Debian 11

  1. Jak nainstalovat GIMP na distribuci Debian 11 Bullseye

  2. Jak nainstalovat Clonezillu na distribuci Debian 11 Bullseye

  3. Jak nainstalovat Docker v Debian 11 (Bullseye)