GNU/Linux >> Znalost Linux >  >> Linux

Jak zabezpečit SSH pomocí Fail2Ban

Ochrana vašeho serveru před útoky hrubou silou je nutností. Otázkou je, jak přesně? Naštěstí pro vás je Fail2Ban hned za rohem, aby chránil váš server, ale výchozí konfigurace Fail2Ban vyžaduje určité úpravy pro optimální zabezpečení. Ale nebojte se, tento tutoriál vám pomůže.

V tomto tutoriálu se naučíte, jak nastavit Fail2Ban a odvrátit útoky hrubou silou zabezpečením vašeho SSH serveru.

Připraveni? Čtěte dále a optimalizujte zabezpečení vašeho serveru SSH!

Předpoklady

Tento tutoriál obsahuje pokyny krok za krokem. Pokud chcete pokračovat, ujistěte se, že máte následující:

  • Servery Ubuntu a Debian – Tento výukový program používá server se systémem Ubuntu 18.04 LTS k nastavení Fail2Ban a server Debian 10 k testování konfigurací zákazu Fail2Ban.
  • Přístup uživatele root nebo oprávnění sudo na serveru pro provádění příkazů jako superuživatel.
  • Fail2Ban nainstalovaný na serveru Ubuntu nebo Debianu.

Nastavení základní brány firewall

Fail2Ban chrání váš server sledováním protokolů a zákazem IP adres, které provádějí příliš mnoho pokusů o přihlášení v určitém časovém rámci. Nejprve však nastavíte základní firewall, do kterého můžete přidat pravidla pro blokování škodlivých činů na vašem serveru.

1. Nejprve spusťte service příkaz níže k zastavení Fail2Ban (fail2ban stop ) od běhání. Zastavte Fail2Ban, když provádíte změny v konfiguračních souborech, abyste mohli změny otestovat a ujistit se, že fungují podle očekávání.

sudo service fail2ban stop

2. Spusťte apt install příkaz k instalaci Sendmail a IPTables-persistent . Sendmail je program, který Fail2Ban používá k upozornění, když zakáže IP adresu. Zatímco IPTables-persistent je program, který ukládá vaše změněná konfigurační nastavení do /etc/sysconfig/iptables soubor.

Po instalaci těchto programů zůstane nastavení brány firewall nedotčené, i když se stane něco neočekávaného, ​​například výpadek proudu.

sudo apt install sendmail iptables-persistent -y

Nyní spusťte každý iptables níže uvedený příkaz pro nastavení vašeho firewallu. Tyto příkazy nevygenerují žádný výstup, ale přidají čtyři pravidla do vašeho firewallu. Tato pravidla buď povolují, nebo blokují připojení k vašemu serveru.

## First Rule - Accepts all traffic generated by the server (lo interface) 
sudo iptables -A INPUT -i lo -j ACCEPT
## Second Rule - Accepts all traffic that are part 
## of an established o related connection
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
## Third Rule - Allows SSH traffic on port 22
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
## Fourth Rule - Arops all other traffic
sudo iptables -A INPUT -j DROP

4. Spusťte iptables příkazem níže zobrazíte souhrn toho, co jste ve svém firewallu nastavili.

sudo iptables -S

Níže jsou zvýrazněna pravidla, která jste přidali do svého firewallu.

5. Dále spusťte následující příkazy a uložte pravidla do /etc/sysconfig/iptables-config soubor a spusťte službu Fail2Ban. Soubor iptables-config soubor obsahuje všechna vaše trvalá pravidla brány firewall.

Fail2Ban automaticky přidá do vašeho firewallu několik pravidel pro ochranu vašeho serveru.

sudo dpkg-reconfigure iptables-persistent
sudo service fail2ban start

6. Nakonec znovu spusťte iptables příkazem níže zobrazíte pravidla brány firewall.

sudo iptables -S

Níže jsou uvedena červeně zvýrazněná nová pravidla, která Fail2Ban přidal do vašeho firewallu.

Úprava místní konfigurace Fail2Ban

Nyní, když máte spuštěnou základní bránu firewall, je čas upravit váš místní konfigurační soubor Fail2Ban, abyste získali větší kontrolu nad zabezpečením vašeho serveru. Tento tutoriál používá /etc/fail2ban/jail.conf konfigurační soubor, protože obsahuje všechny potřebné možnosti pro konfiguraci globálního nastavení aplikace Fail2Ban.

Možná budete chtít vytvořit vlastní pravidla pro váš server SSH. Pokud ano, vytvoříte nový jail.local (na základě souboru jail.conf soubor) a pravidla specifická pro SSH vložte do jail.local soubor. To vám umožní přepsat nastavení v jail.conf soubor pro váš server.

1. Spusťte awk níže proveďte následující:

  • Vytiskněte obsah ('{ printf "# "; print; }' ) z /etc/fail2ban/jail.conf soubor.
  • Vytvořte soubor s názvem jail.local (na základě jail.conf soubor), který lze použít k přepsání výchozího nastavení v jail.conf soubor.
  • Propojte obsah /etc/fail2ban/jail.conf soubor do tee příkaz. Pokud tak učiníte, zapíše se jail.conf obsah souboru do vašeho místního souborového systému (/etc/fail2ban/jail.local ).
awk '{ printf "# "; print; }' /etc/fail2ban/jail.conf | sudo tee /etc/fail2ban/jail.local

2. Jakmile vytvoříte jail.local spusťte ls příkaz níže. Příkaz vypíše obsah adresáře Fail2Ban vašeho serveru (/etc/fail2ban ), abyste ověřili, že vaše jail.local soubor je vygenerován správně.

ls /etc/fail2ban

Pokud vidíte nový jail.local soubor, jak je uvedeno níže, byl váš místní soubor vygenerován správně.

3. Otevřete /etc/fail2ban/jail.local soubor ve vašem preferovaném textovém editoru a přejděte na [ssh] sekce.

Odkomentujte [sshd] a povoleno možnosti odstraněním # symbol před možnostmi, jak je uvedeno níže, abyste povolili SSH.

Od této chvíle po zbytek výukového programu odeberte # symbol před sekcemi nebo možnostmi pro jejich povolení.

4. Přejděte dolů a odkomentujte [VÝCHOZÍ] sekce zobrazená níže. V této části nakonfigurujete výchozí nastavení pro Fail2Ban. Jakékoli nastavení v této sekci bude použito pro všechny věznice, které Fail2Ban spravuje.

5. Dále přejděte dolů na bantime a nastavte bantime za 60 minut. bantime nastavuje dobu v minutách, po kterou je IP adresa po neúspěšném pokusu o přihlášení zakázána.

Výchozí nastavení bantime je 600 sekund (10 minut). Toto nastavení si můžete upravit podle svých představ, ale je důležité si uvědomit, že čím nižší je nastavení bantime, tím větší zatížení bude server zažívat.

6. Přejděte na vyhledat čas a maxretry možnosti. Udržujte čas na nalezení jak je (10 m ) a snižte maxretry do 3 .

čas nalezení volba nastavuje dobu v minutách, po kterou se IP adresa nemůže přihlásit, než bude zakázána. Zatímco maxretry nastavuje počet neúspěšných pokusů o přihlášení, než bude IP adresa zakázána.

Výchozí čas hledání nastavení je 10 minut a maxretry je 5 minut. V důsledku toho bude IP adresa, která se 5krát během 10 minut nepřihlásí, zablokována.

7. Přejděte dolů, zrušte komentář a nakonfigurujte destemail , odesílatel a mta možnosti:

  • destemail – Zadejte e-mailovou adresu, na kterou bude Fail2Ban zasílat upozornění.
  • odesílatel – Nastavte pole „Od“ v e-mailu, který Fail2Ban odesílá na destemail .
  • mta – Ponechte výchozí (sendmail ) tak jak je. mta volba nastavuje agenta pro doručování e-mailů, kterého Fail2Ban používá k odesílání upozornění.

8. Přejděte na akci možnosti, jak je uvedeno níže, a zrušte komentář u action_mwl volba. Díky tomu vám umožní Fail2Ban posílat vám e-maily s logwatch. Můžete si prohlédnout e-maily s logwatch a dále prozkoumat jakékoli potenciální bezpečnostní problémy na vašem serveru.

Uložte změny a ukončete textový editor.

9. Nyní spusťte níže uvedené příkazy a restartujte fail2ban servis.

sudo service fail2ban stop
sudo service fail2ban start

10. Nakonec spusťte níže uvedený příkaz a zkontrolujte fail2ban služba status . sudo service fail2ban status Pokud služba Fail2Ban funguje, získáte výstup podobný tomu níže.

sudo service fail2ban status

Pokud služba Fail2Ban funguje, získáte výstup podobný tomu níže.

Testování vašich konfigurací zákazů

Právě jste nakonfigurovali Fail2Ban, takže nyní je čas otestovat, zda konfigurace zákazu skutečně fungují. Pokuste se o více neúspěšných přihlášení SSH k vašemu serveru Fail2Ban ze sekundárního serveru a zjistěte, zda není tento sekundární server zakázán.

1. Přihlaste se na svůj sekundární server (Debian) a spusťte níže uvedený příkaz pro SSH na váš Fail2Ban server.

Tato ukázka používá server Debian 10 s IP 134.122.20.103 až ssh na fail2ban server, který má IP 69.28.83.134 .

ssh [email protected]

2. Po zobrazení výzvy zadejte náhodné heslo a stiskněte klávesu Enter.

Při prvním pokusu server Fail2Ban zastaví pokus o přihlášení SSH a vytiskne Oprávnění odepřeno zprávu, jak je uvedeno níže. Opakujte pokus o přihlášení SSH ještě asi dvakrát až třikrát a server Fail2Ban nakonec přestane na váš pokus o přihlášení SSH reagovat.

V tuto chvíli nedostanete Oprávnění odepřeno zpráva už jen prázdná obrazovka. Zobrazení prázdné obrazovky znamená, že vašemu druhému serveru (Debianu) byl zakázán přístup na server Fail2Ban.

Možná však již máte seznam IP adres, které chcete blokovat ze serveru Fail2Ban. Pokud ano, otevřete jail.local a přejděte do [VÝCHOZÍ] sekce. Odkomentujte ignoreip a nastavte adresy IP na blokování, jak je znázorněno níže.

Adresa může být buď více samostatnými položkami IPv4 nebo IPv6, nebo oddělenými čárkami.

3. Na vašem serveru Fail2Ban (Ubuntu) znovu spusťte iptables příkazem níže zobrazíte pravidla brány firewall.

sudo iptables -S

Všimněte si níže, že existuje nové pravidlo, které odmítá pokusy o přihlášení SSH z 134.122.20.103 IP adresa.

Pokud máte na svém serveru Fail2Ban nastaven sendmail, obdržíte také e-mail od Fail2Ban, po úspěšném zabanování, s připojeným logem. E-mailové upozornění znamená, že Fail2Ban úspěšně zastavil útok hrubou silou a zachránil váš server před možným poškozením.

Závěr

V tomto tutoriálu jste se naučili, jak nakonfigurovat Fail2Ban na serveru Ubuntu. V tuto chvíli byste měli být dobře vybaveni znalostmi pro ochranu vašeho serveru SSH před útoky hrubou silou.

Proč tyto nově nalezené znalosti neposunout o stupeň výš? Možná začít s blokováním IP adres na všech portech pomocí Fail2Ban na hostitelském dockeru?


Linux
  1. Jak používat Fail2ban k zabezpečení SSH na CentOS 7

  2. Jak SSH na server pomocí jiného serveru?

  3. Zabezpečte svůj Linuxový server pomocí Fail2Ban [Příručka pro začátečníky]

  1. Jak nainstalovat SSH server na Ubuntu / Debian s OpenSSH

  2. Jak zabezpečit PostgreSQL Server

  3. Jak zabezpečit službu SSH pomocí funkce Port Knocking

  1. Jak vytvořit osobní souborový server s SSH na Linuxu

  2. Jak chránit Apache a SSH pomocí Fail2Ban na CentOS 8

  3. Jak zabezpečit server Ubuntu pomocí brány firewall CSF