Zabezpečení je pro systémové administrátory neustálým bojem, protože musíte zabezpečit své systémy dostatečně, abyste je ochránili před nechtěnými útoky, ale ne natolik, aby byla omezena produktivita uživatelů. Je těžké udržet rovnováhu. Vždy se objevují stížnosti na "příliš mnoho" zabezpečení, ale když je systém ohrožen, stížnosti se pohybují od "Nebylo dostatečné zabezpečení" až po "Proč jste nepoužili lepší bezpečnostní kontroly?" Boj je skutečný. Existují ovládací prvky, které můžete zavést a které jsou účinné proti útoku vetřelců a zároveň dostatečně nenápadné, aby uživatelům umožnily pracovat obecně neomezeným způsobem. Fail2ban je odpovědí na ochranu služeb před hrubou silou a jinými automatizovanými útoky.
Poznámka:Fail2ban lze použít pouze k ochraně služeb, které vyžadují ověření uživatelského jména/hesla. Například nemůžete chránit ping pomocí fail2ban.
V tomto článku demonstruji, jak chránit démona SSH (SSHD) před útokem hrubou silou. Filtry můžete nastavit jako fail2ban
zavolá je, aby byla chráněna téměř každá naslouchací služba ve vašem systému.
Instalace a počáteční nastavení
Naštěstí existuje balíček připravený k instalaci pro fail2ban
to zahrnuje všechny případné závislosti pro váš systém.
$ sudo dnf -y install fail2ban
Povolte a spusťte fail2ban
.
$ sudo systemctl enable fail2ban
$ sudo systemctl start fail2ban
Pokud nemáte nějaký problém se syntaxí ve vašem fail2ban
konfiguraci, neuvidíte žádné standardní výstupní zprávy.
Nyní nakonfigurujte několik základních věcí v fail2ban
chránit systém, aniž by do něj zasahoval. Zkopírujte /etc/fail2ban/jail.conf
soubor do /etc/fail2ban/jail.local
. jail.local
soubor je konfigurační soubor, který nás zajímá.
$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Otevřete /etc/fail2van/jail.local
ve svém oblíbeném editoru a proveďte následující změny nebo zkontrolujte, zda je nastaveno těchto několik parametrů. Hledejte nastavení ignoreip
a přidejte na tento řádek všechny IP adresy, které musí mít přístup bez možnosti uzamčení. Ve výchozím nastavení byste měli přidat adresu zpětné smyčky a všechny místní IP adresy do chráněného systému.
ignoreip = 127.0.0.1/8 192.168.1.10 192.168.1.20
Můžete také přidat celé sítě IP adres, ale odebere to velkou část ochrany, kterou chcete použít fail2ban
pro. Nechte to zatím jednoduché a místní. Uložte soubor jail.local
a restartujte fail2ban
službu.
$ sudo systemctl restart fail2ban
Musíte restartovat fail2ban
pokaždé, když provedete změnu konfigurace.
Nastavení filtrované služby
Nová instalace fail2ban
ve skutečnosti pro vás mnoho nedělá. Pro každou službu, kterou chcete chránit, musíte nastavit tzv. filtry. Téměř každý systém Linux musí být přístupný pomocí SSH. Existují určité okolnosti, kdy byste zcela jistě zastavili a deaktivovali SSHD, abyste lépe zabezpečili svůj systém, ale předpokládám, že každý systém Linux umožňuje připojení SSH.
Hesla, jak každý ví, nejsou dobrým bezpečnostním řešením. Často je to však standard, podle kterého žijeme. Pokud je tedy uživatelský nebo administrativní přístup omezen na SSH, měli byste podniknout kroky k jeho ochraně. Pomocí fail2ban
„sledovat“ SSHD na neúspěšné pokusy o přístup s následným zablokováním je dobrý začátek.
Poznámka:Před implementací jakékoli bezpečnostní kontroly, která by mohla bránit v přístupu uživatele do systému, informujte uživatele, že tento nový ovládací prvek je může uzamknout ze systému na deset minut (nebo jak dlouho se rozhodnete), pokud jejich neúspěšné pokusy o přihlášení překročí vaši prahovou hodnotu. .
Chcete-li nastavit filtrované služby, musíte vytvořit odpovídající soubor "jail" v /etc/fail2ban/jail.d
adresář. Pro SSHD vytvořte nový soubor s názvem sshd.local
a zadejte do něj pokyny pro filtrování služeb.
[sshd]
enabled = true
port = ssh
action = iptables-multiport
logpath = /var/log/secure
maxretry = 3
bantime = 600
Vytvořte [sshd] a zadejte nastavení, které vidíte výše jako výchozí místo. Většina nastavení je samovysvětlující. U dvou, které nemusí být intuitivně zřejmé, nastavení „action“ popisuje akci, kterou chcete fail2ban
vzít v případě porušení. Pro nás fail2ban
používá iptables
zakázat IP adresu porušujícího systému na „bantime“ 600 sekund (10 minut).
Kterékoli z těchto nastavení můžete samozřejmě změnit, aby vyhovovalo vašim potřebám. Deset minut se zdá být dostatečně dlouhá doba na to, aby přiměla bota nebo skript k „přesunu“ na méně zabezpečené hostitele. Deset minut však není tak dlouhá doba, aby odradila uživatele, kteří více než třikrát zadají chybně svá hesla.
Jakmile budete s nastavením spokojeni, restartujte fail2ban
službu.
Jak vypadá zákaz
V chráněném systému (192.168.1.83), tail
/var/log/fail2ban.log
zobrazit všechny aktuální akce zákazu.
2020-05-15 09:12:06,722 fail2ban.filter [25417]: INFO [sshd] Found 192.168.1.69 - 2020-05-15 09:12:06
2020-05-15 09:12:07,018 fail2ban.filter [25417]: INFO [sshd] Found 192.168.1.69 - 2020-05-15 09:12:07
2020-05-15 09:12:07,286 fail2ban.actions [25417]: NOTICE [sshd] Ban 192.168.1.69
2020-05-15 09:22:08,931 fail2ban.actions [25417]: NOTICE [sshd] Unban 192.168.1.69
Můžete vidět, že IP adresa 192.168.1.69 byla zakázána v 09:12 a odblokována o deset minut později v 09:22.
Na vzdáleném systému 192.168.1.69 vypadá akce zákazu takto:
$ ssh 192.168.1.83
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
$ ssh 192.168.1.83
ssh: connect to host 192.168.1.83 port 22: Connection refused
Můžete vidět, že jsem třikrát zadal nesprávné heslo, než mi byl zakázán přístup. Zakázaný uživatel, pokud nebude výslovně informován, nebude vědět, proč se již nemůže dostat do cílového systému. fail2ban
filtr provede akci tichého zákazu. Neposkytuje vzdálenému uživateli žádné vysvětlení, ani není informován, když je zákaz zrušen.
Zrušení zákazu systému
Nevyhnutelně se stane, že bude zakázán systém, který je třeba rychle zrušit. Jinými slovy, nemůžete nebo nechcete čekat na vypršení doby zákazu. Následující příkaz okamžitě odblokuje systém.
$ sudo fail2ban-client set sshd unbanip 192.168.1.69
Po zadání tohoto příkazu nemusíte restartovat démona fail2ban.
Sbalit
To je v podstatě způsob fail2ban
funguje. Nastavíte filtr a po splnění podmínek je vzdálený systém zakázán. Můžete zablokovat na delší dobu a můžete nastavit více filtrů pro ochranu vašeho systému. Pamatujte, že fail2ban
je jediné řešení a nezabezpečuje váš systém před jinými zranitelnostmi. Vrstvený, mnohostranný přístup k zabezpečení je strategie, kterou chcete sledovat. Žádné jediné řešení neposkytuje dostatečné zabezpečení.
Můžete najít příklady dalších filtrů a některé pokročilé fail2ban
implementace popsané na fail2ban.org.
[ Chcete se dozvědět více o zabezpečení? Podívejte se na kontrolní seznam zabezpečení IT a dodržování předpisů. ]