GNU/Linux >> Znalost Linux >  >> Linux

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

Pokud jste správce systému, pak je ochrana vašeho serveru před různými druhy útoků nezbytnou součástí vaší práce; Fail2Ban firewall vám toho může pomoci dosáhnout. Fail2Ban je systém prevence narušení napsaný v jazyce Python používaný k blokování škodlivých IP adres, které se snaží narušit zabezpečení vašeho systému. Funguje tak, že skenuje různé soubory protokolu a blokuje adresy IP, které se po určitou dobu snaží o časté přihlášení. Umožňuje také sledovat sílu a frekvenci útoků. Díky své jednoduchosti je považován za preferovaný software pro zabezpečení vašeho serveru před DOS, DDOS a útoky hrubou silou.

V tomto tutoriálu vám ukážeme, jak zabezpečit SSH a Apache server pomocí Fail2Ban na CentOS 8.

Předpoklady

  • Nový CentOS 8 VPS na cloudové platformě Atlantic.net.
  • Heslo uživatele root nakonfigurované na vašem serveru.

Krok 1 – Vytvořte cloudový server Atlantic.Net

Nejprve se přihlaste ke svému cloudovému serveru Atlantic.Net. Vytvořte nový server a jako operační systém vyberte CentOS 8 s alespoň 1 GB RAM. Připojte se ke svému cloudovému serveru přes SSH a přihlaste se pomocí přihlašovacích údajů zvýrazněných v horní části stránky.

Jakmile se přihlásíte k serveru CentOS 8, spusťte následující příkaz a aktualizujte svůj základní systém nejnovějšími dostupnými balíčky.

dnf update -y

Krok 2 – Instalace Fail2Ban

Můžete jej nainstalovat pomocí následujícího příkazu:

dnf install epel-release -y

Po instalaci úložiště EPEL můžete nainstalovat Fail2Ban pomocí následujícího příkazu:

dnf install fail2ban -y

Po instalaci spusťte službu Fail2Ban a povolte její spuštění po restartu systému:

systemctl start fail2ban
systemctl enable fail2ban

Krok 3 – Zabezpečte SSH pomocí Fail2Ban

V této části se naučíme, jak zabezpečit SSH server pomocí Fail2Ban.

Nakonfigurujte Fail2Ban pro SSH

Soubor jail.local pro SSH můžete vytvořit pomocí následujícího příkazu:

nano /etc/fail2ban/jail.local

Přidejte následující řádky:

[DEFAULT]
ignoreip = your-server-ip
bantime = 300
findtime = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd

[sshd]
enabled = true

Po dokončení uložte a zavřete soubor. Poté restartujte službu Fail2Ban, aby se změny projevily:

systemctl restart fail2ban

Nyní můžete zkontrolovat stav vězení SSH pomocí následujícího příkazu:

fail2ban-client status

Měli byste vidět, že je povoleno vězení SSH:

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

Krátké vysvětlení každého parametru je uvedeno níže:

  • ignoreip :Používá se k definování IP adres, které chcete ignorovat.
  • bantime :Používá se k definování počtu sekund, na které bude IP adresa zakázána.
  • najít čas :Používá se k definování doby mezi pokusy o přihlášení, než bude IP zakázána.
  • maxretry :Používá se k definování počtu pokusů, které mají být provedeny, než bude IP adresa zakázána.
  • banán :Zákaz akce.
  • povoleno :Tato možnost povolí ochranu pro službu SSH.

Otestujte SSH proti útokům na heslo

V tomto okamžiku je Fail2Ban nainstalován a nakonfigurován. Je čas vyzkoušet, zda to funguje nebo ne.

Chcete-li tak učinit, přejděte na vzdálený počítač a zkuste SSH na IP adresu serveru:

ssh [email protected]

Budete požádáni o zadání hesla uživatele root. Zadejte znovu a znovu nesprávné heslo. Jakmile dosáhnete limitu pokusů o přihlášení, vaše IP adresa bude zablokována.

Svou zablokovanou IP adresu můžete ověřit pomocí následujícího příkazu:

fail2ban-client status sshd

Vaši zablokovanou IP byste měli vidět v následujícím výstupu:

Status for the jail: sshd
|- Filter
|  |- Currently failed:   7
|  |- Total failed:          39
|  `- Journal matches:  _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned: 1
   |- Total banned:        2
   `- Banned IP list:     190.8.80.42

Můžete také zkontrolovat protokol SSH pro neúspěšné přihlášení:

tail -5 /var/log/secure | grep 'Failed password'

Měli byste vidět následující výstup:

Mar  1 03:55:03 centos8 sshd[11196]: Failed password for invalid user bpadmin from 190.8.80.42 port 55738 ssh2

Konkrétní IP adresu můžete také zablokovat a odblokovat ručně.

Chcete-li například odblokovat IP 190.8.80.42, spusťte následující příkaz:

fail2ban-client set sshd unbanip 190.8.80.42

Chcete-li zablokovat IP 190.8.80.42, spusťte následující příkaz:

fail2ban-client set sshd banip 190.8.80.42

Krok 4 – Zabezpečení Apache pomocí Fail2Ban

Webový server Apache můžete také zabezpečit před různými druhy útoků. Budete muset nakonfigurovat soubor jail.local pro Apache, jak je uvedeno níže:

nano /etc/fail2ban/jail.local

Na konec souboru přidejte následující řádky:

[apache-auth]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

[apache-badbots]
enabled = true
port    = http,https
logpath = %(apache_access_log)s
bantime = 48h
maxretry = 1

[apache-noscript]
enabled = true
port    = http,https
logpath = %(apache_error_log)s

Po dokončení uložte a zavřete soubor. Poté restartujte službu Fail2Ban, abyste provedli změny:

systemctl restart fail2ban

Nyní můžete ověřit stav všech vězení pomocí následujícího příkazu:

fail2ban-client status

Měli byste vidět následující výstup:

Status
|- Number of jail:        5
`- Jail list:        apache-auth, apache-badbots, apache-noscript, sshd

Krátké vysvětlení každého vězení je uvedeno níže:

  • apache-auth :Toto vězení se používá k ochraně Apache před neúspěšnými pokusy o přihlášení.
  • apache-badbots :Toto vězení se používá k zákazu hostitelů, jejichž agent identifikuje roboty spammerů, kteří procházejí web a hledají e-mailové adresy.
  • apache-noscript :Používá se k zablokování adresy IP, která se snaží na webu vyhledávat skripty ke spuštění.

Závěr

Ve výše uvedeném tutoriálu jsme se naučili, jak chránit SSH a Apache server pomocí Fail2Ban. Jedná se o velmi užitečný systém prevence narušení, který dodává vašemu systému Linux další zabezpečení. Nyní můžete nakonfigurovat Fail2Ban, který bude vyhovovat vašim specifickým potřebám zabezpečení. Začněte s Fail2Ban ještě dnes s VPS Hosting od Atlantic.Net!


Linux
  1. Jak nainstalovat Apache Hive s Hadoop na CentOS, Ubuntu a LinuxMint

  2. Jak nainstalovat Apache 2.4.2 ze zdroje na CentOS 6.2 s SSL

  3. Jak prozkoumat únik paměti pomocí Apache a PHP?

  1. Jak nainstalovat a nakonfigurovat Fail2ban na CentOS 8

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

  3. Jak nainstalovat a nakonfigurovat Fail2ban na CentOS 8?

  1. Jak nainstalovat a zabezpečit phpMyAdmin s Apache na CentOS 7

  2. Jak nainstalovat a nakonfigurovat Nextcloud s Apache na CentOS 7

  3. Jak nainstalovat WordPress s Apache na CentOS 7