Už jste někdy vytvořili webový server, otevřeli terminál a všimli si počtu pokusů o přihlášení, když jste byli offline? Útočníci používají metodu zvanou „hrubé násilí“. Hrubé vynucení je metoda, jak získat přístup k webovému serveru zadáním náhodných hesel pomocí skriptu v naději na získání přístupu.
Abychom tomu zabránili, používáme nástroj nazvaný Fail2Ban.
Co je Fail2Ban?
Fail2Ban je softwarový rámec pro prevenci narušení, který chrání počítačové servery před útoky hrubou silou. Je napsán v programovacím jazyce Python a je schopen běžet na systémech POSIX, které mají lokálně nainstalované rozhraní k systému kontroly paketů nebo firewallu, například iptables nebo TCP Wrapper. — Wikipedie
Instalace Fail2Ban
V této příručce se budeme zabývat instalací a konfigurací Fail2Ban na webovém serveru Ubuntu 20.04.
Krok 1 — Aktualizujte systém a nainstalujte Fail2Ban
Spusťte náš příkaz aktualizace.
$ sudo apt update &&sudo apt upgrade -y
Nyní nainstalujme Fail2Ban.
$ sudo apt install fail2ban
Po instalaci by se měl Fail2Ban spustit automaticky. Pro jistotu zkontrolujme jeho stav pomocí níže uvedeného příkazu.
$ sudo systemctl status fail2ban
Naše instalace Fail2Ban je nainstalována a aktivní. :)
Krok 2 – Konfigurace Fail2Ban
Při instalaci Fail2Ban skript vytvoří dva konfigurační soubory /etc/fail2ban/fail.conf
a /etc/fail2ban/fail.d/defaults-debian.conf
. Jakékoli změny těchto souborů mohou být během aktualizací balíčku přepsány.
Fail2ban čte konfigurační soubory v tomto pořadí. Soubor .local
soubor přepíše nastavení .cong
soubor.
/etc/fail2ban/jail.conf
/etc/fail2ban/jail.d/*.conf
/etc/fail2ban/jail.local
/etc/fail2ban/jail.d/*.local
Nejúčinnějším způsobem konfigurace Fail2Ban bude zkopírování obsahu jail.conf
na jail.local
poté upravte místní soubor.
Krok 2.1 — Vytvořte náš místní soubor a nakonfigurujte server
Nyní zkopírujeme náš jail.conf
soubor na naše jail.local
soubor.
$ sudo cp /etc/fail2ban/jail.{conf,local}
Po zadání tohoto příkazu terminál okamžitě otevře nový řádek.*
Nakonfigurujte server Fail2Ban otevřením jail.local
soubor s nano nebo vaším oblíbeným textovým editorem.
$ sudo nano /etc/fail2ban/jail.local
Nyní byste měli být v jail.local
soubor a podívejte se na komentáře popisující, co jednotlivé konfigurace dělají.
Krok 2.2 — Seznam povolených IP adres
IP adresy, rozsahy a hostitele, které chcete vyloučit ze zákazu, je třeba přidat do ignoreip
směrnice.
Odkomentujte (odstraňte symbol #) řádek ignoreip a přidejte své IP adresy oddělené mezerou.
Krok 2.3 — Nastavení pravidel zákazu
Pár řádků pod komentářem ignoreip najdete bantime
, najít čas
a maxretry
.
bantime
je doba, po kterou je IP zakázána. Výchozí doba zákazu je 10 minut. S největší pravděpodobností budete chtít delší bantime
. Pomocí záporného čísla můžete uživatele trvale zakázat. Pokud nepoužijete příponu (tj. 10 místo 10d), čas bude v sekundách. Tento čas můžete nastavit na libovolnou dobu trvání, my použijeme 10d.
bantime =10d
najít čas
je doba mezi počtem selhání, než je IP zakázána. To se liší od maxretry
protože to nezakazuje na základě počtu pokusů o přihlášení, nikoli počtu za sebou.
finetime =5 m
maxretry
je počet neúspěšných přihlášení před zakázáním IP. Opět si to můžete nastavit podle svých představ.
maxretry =5
Krok 2.4 – E-mailová upozornění
Fail2Ban lze nastavit tak, aby zasílal e-mailová upozornění, když byla IP zakázána. Na svém webovém serveru musíte mít nakonfigurovaný SMTP. Prvním krokem je, že musíme změnit komentář akce.
akce =%(action_MW)s
To zablokuje IP a odešle e-mailové upozornění s hlášením whois. Pokud chcete do e-mailu přidat protokoly, použijte %(action_MWl)s
místo toho.
Budete také muset upravit odesílací a přijímací e-mailové adresy, aby vás systém správně upozornil.
destemail =[e-mail chráněný]
odesílatel =[e-mail chráněn]
Krok 2.5 – Vězení
Vězení ve Fail2Ban je kombinací filtru a jedné nebo několika akcí. Filtr definuje regulární výraz, který odpovídá vzoru odpovídajícímu neúspěšnému pokusu o přihlášení nebo jiné podezřelé aktivitě. Akce definují příkazy, které se provedou, když filtr zachytí zneužívající IP adresu. — Plesk
Fail2Ban přichází s řadou vězení pro různé služby. Včetně možnosti vytvořit si vlastní.
Výchozí instalace Fail2Ban má povolenou věznici ssh. Chcete-li povolit vězení, budete muset přidat enabled =true
po titulu vězení. Použití OpenWebMail jako příklad:
[openwebmail]
povoleno =true
port =http,https
cesta protokolu =/var/log/openwemail.log
Pokud chcete nastavit pravidla zákazu pro službu, můžete tak učinit pod službou.
[sshd]
povoleno =true
maxretry =5
findtime =5 m
bantime =10 d
ignoreip =192.169.0.1/8 12.34.56.78
Filtry můžete upravit v /etc/fail2ban/filter.d
adresář.
Krok 3 – Restartujte Fail2Ban
Po každé dokončené instalaci a konfiguraci je nejlepší restartovat službu, aby se změny projevily.
$ sudo systemctl restart fail2ban
Krok 4 — Příkazový řádek Fail2ban
Pomocí nástroje fail2ban-client
změny můžete provádět pomocí skriptu Fail2Ban. Chcete-li použít příkazový řádek, použijte:
$ sudo fail2ban-client
[následuje váš příkaz]
Chcete-li zobrazit dostupné možnosti, použijte:
$ sudo fail2ban-client -h
Zde je několik užitečných příkazů:
Zrušit zákaz IP adresy:
$ sudo fail2ban-client set sshd unbanip 12.34.56.789
Zakázat IP adresu:
$ sudo fail2ban-client set sddh banip 12.34.56.789