So installierst und konfigurierst du Fail2ban unter Alma Linux 8

Fail2ban ist ein freies und quelloffenes Intrusion Prevention System, das in Python geschrieben wurde. Es dient dazu, dein System vor Brute-Force-Angriffen zu schützen. Es überwacht die SSH-Logdateien (und andere) kontinuierlich auf Authentifizierungsversuche. Nach einer bestimmten Anzahl falscher Passwortversuche wird die IP-Adresse des Clients von Fail2Ban gesperrt. Fail2Ban kann zur Absicherung verschiedener Dienste wie SSH, vsftpd, Apache und Webmin verwendet werden.

In dieser Anleitung zeige ich dir, wie du die Fail2Ban Firewall auf Alma Linux 8 installierst.

Voraussetzungen

  • Ein Server, auf dem Alma Linux 8 läuft.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Überprüfe die Installation von Firewalld

Standardmäßig ist das Firewalld-Paket auf Alma Linux 8 vorinstalliert. Zuerst musst du überprüfen, ob es läuft oder nicht. Das kannst du mit dem folgenden Befehl überprüfen:

systemctl status firewalld

Wenn firewalld nicht läuft, erhältst du die folgende Ausgabe:

? firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Starte nun den firewalld-Dienst mit folgendem Befehl:

systemctl start firewalld

Du kannst den Status von firewalld mit dem folgenden Befehl überprüfen:

systemctl status firewalld

Du solltest die folgende Ausgabe sehen:

? firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-02-19 08:57:14 UTC; 40s ago
     Docs: man:firewalld(1)
 Main PID: 7214 (firewalld)
    Tasks: 2 (limit: 23696)
   Memory: 27.9M
   CGroup: /system.slice/firewalld.service
           ??7214 /usr/libexec/platform-python -s /usr/sbin/firewalld --nofork --nopid

Feb 19 08:57:14 linux systemd[1]: Starting firewalld - dynamic firewall daemon...
Feb 19 08:57:14 linux systemd[1]: Started firewalld - dynamic firewall daemon.

Nun listest du alle von firewalld konfigurierten Dienste mit folgendem Befehl auf:

firewall-cmd --list-all

Du solltest die folgende Ausgabe sehen:

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Fail2Ban installieren

Standardmäßig ist das Fail2Ban-Paket nicht im Alma Linux Standard-Repository verfügbar. Daher musst du es aus dem EPEL-Repository installieren. Du kannst das EPEL Repo mit dem folgenden Befehl installieren:

dnf install epel-release -y

Sobald das EPEL Repo installiert ist, kannst du die Fail2Ban Firewall mit folgendem Befehl installieren:

dnf install fail2ban fail2ban-firewalld -y

Wenn die Installation abgeschlossen ist, starte und aktiviere den Fail2Ban-Dienst mit dem folgenden Befehl:

systemctl start fail2ban
systemctl enable fail2ban

Du kannst den Status des Fail2Ban-Dienstes überprüfen, indem du den Befehl ausführst:

systemctl status fail2ban

Du solltest die folgende Ausgabe sehen:

? fail2ban.service - Fail2Ban Service
   Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2022-02-19 08:58:34 UTC; 6s ago
     Docs: man:fail2ban(1)
  Process: 7838 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 7840 (fail2ban-server)
    Tasks: 3 (limit: 23696)
   Memory: 10.8M
   CGroup: /system.slice/fail2ban.service
           ??7840 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start

Feb 19 08:58:34 linux systemd[1]: Starting Fail2Ban Service...
Feb 19 08:58:34 linux systemd[1]: Started Fail2Ban Service.
Feb 19 08:58:35 linux fail2ban-server[7840]: Server ready

Fail2Ban konfigurieren

Die Hauptkonfigurationsdatei von Fail2Ban befindet sich unter /etc/fail2ban/jail.conf. Es ist ratsam, eine Kopie der Hauptkonfigurationsdatei zu erstellen. Du kannst sie mit dem folgenden Befehl erstellen:

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

Standardmäßig verwendet Fail2Ban die Firewall Iptables. Um die Firewall-Unterstützung zu aktivieren, führe den folgenden Befehl aus:

mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

Starte anschließend den Fail2Ban-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart fail2ban

Sicheres SSH mit Fail2Ban

Standardmäßig ist Fail2Ban nicht so konfiguriert, dass entfernte IPs blockiert werden. Du musst die Fail2Ban-Jail-Konfigurationsdatei für jeden Dienst konfigurieren, den du schützen willst.

Um den SSH-Dienst zu schützen, erstellst du eine Jail-Konfigurationsdatei für SSH mit dem folgenden Befehl:

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

Füge die folgenden Zeilen hinzu:

# This configuration will block the remote host for 2 hours after 3 failed SSH login attempts. 
[sshd]
enabled = true
bantime = 2h
maxretry = 3

Speichere und schließe die Datei, wenn du fertig bist, und starte den SSH-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart fail2ban

Jetzt kannst du die Jail-Konfiguration mit dem folgenden Befehl überprüfen:

fail2ban-client status

Du erhältst die konfigurierte Jail in der folgenden Ausgabe:

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

Um die SSH-Jail auf gesperrte IPs zu überprüfen, führe folgenden Befehl aus:

fail2ban-client status sshd

Du erhältst die Liste aller gesperrten IPs in der folgenden Ausgabe:

Status for the jail: sshd
|- Filter
|  |- Currently failed:	6
|  |- Total failed:	15
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	2
   |- Total banned:	2
   `- Banned IP list:	96.9.67.48 43.154.142.8

Wenn du die gesperrte IP-Adresse manuell aufheben willst, führe folgenden Befehl aus:

fail2ban-client unban remote-ip-address

Fazit

In der obigen Anleitung haben wir erklärt, wie du Fail2Ban auf Alma Linux 8 installierst und wie du Fail2Ban zur Sicherung des SSH-Dienstes einsetzt. Jetzt kannst du Fail2Ban in der Produktionsumgebung einsetzen, um dein System vor Brute-Force-Angriffen zu schützen.

Das könnte dich auch interessieren …