GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Fail2Ban na CentOS 7

Většina serverů Linux nabízí přihlášení SSH přes port 22 pro účely vzdálené správy. Tento port je známý port, proto je často napadán útoky hrubou silou. Fail2ban je software, který v reálném čase skenuje protokolové soubory na pokusy o přihlášení hrubou silou a zakazuje útočníkům pomocí firewallu nebo iptables. Fail2ban rozpozná nechtěný přístup nebo pokusy o narušení bezpečnosti k serveru v rámci administrátorem nastaveného časového rámce a zablokuje IP adresy, které vykazují známky útoků hrubou silou nebo slovníkových útoků. Tento program pracuje na pozadí a nepřetržitě kontroluje soubory protokolu, zda neobsahují neobvyklé vzory přihlášení a pokusy o narušení bezpečnosti.

Tento výukový program ukazuje instalaci a konfiguraci Fail2Ban s firewallem na CentOS 7.

Instalace Fail2Ban

Chcete-li nainstalovat Fail2Ban na CentOS 7, budeme muset nejprve nainstalovat úložiště EPEL (Extra Packages for Enterprise Linux). EPEL obsahuje další balíčky pro všechny verze CentOS, jedním z těchto dodatečných balíčků je Fail2Ban.

Po přepnutí na uživatele root je nutné provést následující příkazy.

yum install epel-release
yum install fail2ban fail2ban-systemd

Pokud máte nainstalovaný SELinux, aktualizujte zásady SELinux:

yum update -y selinux-policy*

Konfigurace nastavení pro Fail2Ban

Po instalaci budeme muset nakonfigurovat a přizpůsobit software pomocí konfiguračního souboru jail.local. Soubor jail.local má přednost před souborem jail.conf a používá se k zabezpečení aktualizace vlastní konfigurace.

Vytvořte kopii souboru jail.conf a uložte jej pod názvem jail.local:

cp -pf /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Otevřete soubor jail.local pro úpravy v Nano pomocí následujícího příkazu.

nano /etc/fail2ban/jail.local

Kód souboru se může skládat z mnoha řádků kódů, které se spouštějí, aby zabránily banu na jednu nebo více IP adres, nastavení doby trvání bantime atd. Typický konfigurační soubor vězení obsahuje následující řádky.

[DEFAULT]

#
# MISCELLANEOUS OPTIONS
#

# "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
# ban a host which matches an address in this list. Several addresses can be
# defined using space separator.
ignoreip = 127.0.0.1/8

# External command that will take an tagged arguments to ignore, e.g. <ip>,
# and return true if the IP is to be ignored. False otherwise.
#
# ignorecommand = /path/to/command <ip>
ignorecommand =

# "bantime" is the number of seconds that a host is banned.
bantime = 600

# A host is banned if it has generated "maxretry" during the last "findtime"
# seconds.
findtime = 600

# "maxretry" is the number of failures before a host get banned.
maxretry = 5

Ignoreip se používá k nastavení seznamu IP adres, které nebudou zakázány. Seznam IP adres by měl být uveden s oddělovačem mezery. Tento parametr se používá k nastavení vaší osobní IP adresy (pokud k serveru přistupujete z pevné IP adresy).

Bantime Parametr se používá k nastavení doby trvání v sekundách, na kterou musí být hostitel zakázán.

Najít čas je parametr, který se používá ke kontrole, zda hostitel musí být zakázán nebo ne. Když hostitel vygeneruje maxrety ve svém posledním vyhledávacím čase, je zakázán.

Maxretry je parametr používaný k nastavení limitu pro počet opakování hostitelem, při překročení tohoto limitu je hostitel zakázán.

Přidejte soubor vězení pro ochranu SSH.

Vytvořte nový soubor pomocí editoru Nano

nano /etc/fail2ban/jail.d/sshd.local

Do výše uvedeného souboru přidejte následující řádky kódu.

[sshd]
enabled = true
port = ssh
#action = firewallcmd-ipset
logpath = %(sshd_log)s
maxretry = 5
bantime = 86400

Parametr povolen je nastavena na hodnotu true, aby byla zajištěna ochrana, pro deaktivaci ochrany je nastavena na hodnotu false. Parametr filtru kontroluje konfigurační soubor sshd, který se nachází v cestě /etc/fail2ban/filter.d/sshd.conf.

Parametr akce se používá k odvození IP adresy, kterou je třeba zakázat pomocí filtru dostupného z /etc/fail2ban/action.d/firewallcmd-ipset.conf.

Port parametr může být změněn na novou hodnotu, jako je port=1212, jako v případě. Při použití portu 22 není potřeba tento parametr měnit.

Logpath poskytuje cestu, kde je uložen soubor protokolu. Tento soubor protokolu je zkontrolován Fail2Ban.

Maxretry se používá k nastavení maximálního limitu pro neúspěšné přihlášení.

Bantime Parametr se používá k nastavení doby trvání v sekundách, na kterou musí být hostitel zakázán.

Spuštění služby Fail2Ban

Pokud CentOS Firewall ještě nespouštíte, spusťte jej:

systemctl enable firewalld
systemctl start firewalld

Provedením následujících řádků příkazu spusťte ochranný software Fail2Ban na serveru.

systemctl enable fail2ban
systemctl start fail2ban 

Sledování neúspěšných přihlašovacích záznamů

Následující příkaz se používá ke kontrole, zda nedošlo k neúspěšným pokusům o přihlášení k serveru přes ssh port.

cat /var/log/secure | grep 'Failed password'

Provedením výše uvedeného příkazu získáte seznam neúspěšných pokusů o heslo uživatele root z různých IP adres. Formát výsledků bude podobný níže uvedenému:

Apr 4 17:05:12 htf sshd[4287]: Failed password for root from 108.61.157.25 port 23121 ssh2
Apr 4 17:05:15 htf sshd[3154]: Failed password for root from 108.61.157.25 port 14486 ssh2
Apr 4 17:05:16 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2
Apr 4 17:05:18 htf sshd[3154]: Failed password for root from 108.61.157.25 port 24157 ssh2

Kontrola zakázaných IP adres pomocí Fail2Ban

Následující příkaz se používá k získání seznamu zakázaných IP adres, které byly rozpoznány jako hrozby hrubou silou.

iptables -L -n

Zkontrolujte stav Fal2Ban

Pomocí následujícího příkazu zkontrolujte stav vězení Fail2Ban:

fail2ban-client status

Výsledek by měl být podobný tomuto:

[[email protected] ]# fail2ban-client status
Status
|- Number of jail: 1
`- Jail list: sshd

Zrušení zákazu IP adresy

Aby bylo možné odstranit IP adresu ze seznamu zakázaných, je parametr IPADDRESS nastaven na příslušnou IP, která vyžaduje odbanování. Název "sshd" je název vězení, v tomto případě vězení "sshd", které jsme nakonfigurovali výše. Úlohu provede následující příkaz.

fail2ban-client set sshd unbanip IPADDRESS

Cent OS
  1. Jak nainstalovat PHP 7, 7.2 a 7.3 na CentOS 7

  2. Nainstalujte Fail2ban na CentOS

  3. Jak nainstalovat Logaholic na CentOS

  1. Jak nainstalovat Java 11 &12 na CentOS 7

  2. Jak nainstalovat Wine 4.0 na CentOS 7

  3. Jak nainstalovat Vim 8.2 na CentOS 7

  1. Jak nainstalovat VirtualBox na CentOS 7

  2. Jak nainstalovat Git na CentOS 8

  3. Jak nainstalovat Docker na CentOS 8