GNU/Linux >> LINUX-Kenntnisse >  >> AlmaLinux

So installieren Sie Fail2ban mit Firewalld auf AlmaLinux 8

Fail2ban ist ein Intrusion-Prevention-Software-Framework, das Computerserver hauptsächlich vor Brute-Force-Angriffen schützt, bösartige Benutzeragenten verbietet, URL-Scanner verbietet und vieles mehr. Fail2ban erreicht dies durch das Lesen von Zugriffs-/Fehlerprotokollen Ihrer Server- oder Webanwendungen. Fail2ban ist in der Programmiersprache Python codiert.

Der Leitfaden gibt einen Überblick über die Installation von Fail2ban auf AlmaLinux 8 und einige grundlegende Einstellungen und Tipps.

Voraussetzungen

  • Empfohlenes Betriebssystem: AlmaLinux 8.
  • Benutzerkonto: Ein Benutzerkonto mit sudo-Privilegien oder Root-Zugriff (su-Befehl) .

Betriebssystem aktualisieren

Aktualisieren Sie Ihr AlmaLinux Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:

sudo dnf upgrade --refresh -y

Das Tutorial verwendet den sudo-Befehl und vorausgesetzt, Sie haben den Sudo-Status . So überprüfen Sie den Sudo-Status Ihres Kontos:

sudo whoami

Beispielausgabe, die den Sudo-Status zeigt:

[joshua@localhost ~]$ sudo whoami
root

Wenn Sie noch kein sudo-Benutzerkonto eingerichtet haben und dies gerne tun würden, besuchen Sie unser Tutorial zum So fügen Sie einen Benutzer zu Sudoers auf AlmaLinux hinzu .

So verwenden Sie das Root-Konto verwenden Sie den folgenden Befehl mit dem Root-Passwort, um sich anzumelden.

su

EPEL-Repository installieren

Der erste Schritt besteht darin, das Repository von EPEL (Extra Packages for Enterprise Linux) zu importieren wie folgt:

sudo dnf install epel-release

Beispielausgabe:

Geben Sie „J“ ein, Drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren.

Es ist immer eine gute Idee zu überprüfen, ob das Repository erfolgreich hinzugefügt wurde; Dies kann mit dem dnf repolist-Befehl erfolgen wie unten:

sudo dnf repolist

Beispielausgabe:

Wie Sie sehen, wurde das EPEL-Repository korrekt hinzugefügt. Praktischer Hinweis:Sie können diesen Befehl wiederverwenden, um zukünftige Repository-Importe anzuzeigen.

Firewalld konfigurieren

Standardmäßig wird AlmaLinux mit installierter Firewall geliefert. Um dies zu überprüfen, verwenden Sie den folgenden Befehl:

sudo dnf info firewalld

Beispielausgabe:

Wie Sie sehen können, ist dies standardmäßig auf AlmaLinux 8 installiert; Außerdem sollte es automatisch auf Ihrem System aktiviert werden.

Um dies zu bestätigen, verwenden Sie den folgenden systemctl-Befehl :

sudo systemctl status firewalld

Beispielausgabe:

Ein weiterer praktischer Trick mit firewalld besteht darin, den Befehl firewall-cmd –state zu verwenden, um zu überprüfen, ob es ausgeführt wird oder nicht:

sudo firewall-cmd --state

Beispielausgabe:

running

Wenn Ihre Firewall ausgeschaltet ist, verwenden Sie zum Starten Folgendes:

sudo systemctl start firewalld

Um es für den Start beim Systemstart wieder zu aktivieren, verwenden Sie Folgendes:

sudo systemctl enable firewalld

Beispielausgabe bei Erfolg:

Created symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service → /usr/lib/systemd/system/firewalld.service.
Created symlink /etc/systemd/system/multi-user.target.wants/firewalld.service → /usr/lib/systemd/system/firewalld.service.

Wenn Ihre Firewall entfernt wurde, können Sie firewalld mit dem folgenden Befehl neu installieren:

sudo dnf install firewalld

Um schließlich die aktuellen Regeln zu überprüfen, bevor fail2ban neue hinzufügt, listen Sie die vorhandenen auf, um sich mit firewalld vertraut zu machen:

sudo firewall-cmd --list-all

Beispielausgabe:

Fail2ban installieren

Nachdem Sie nun das EPEL-Repository installiert haben, ist es an der Zeit, fail2ban und das Zusatzpaket fail2ban-firewalld zu installieren, das Fail2ban für die zukünftige Verwendung mit firewalld korrekt konfiguriert.

sudo dnf install fail2ban fail2ban-firewalld

Beispielausgabe:

Geben Sie Y ein, drücken Sie dann die ENTER-TASTE um mit der Installation fortzufahren.

Standardmäßig ist fail2ban nicht aktiv, daher müssen Sie es manuell mit dem folgenden systemctl-Befehl starten :

sudo systemctl start fail2ban

Um dann fail2ban beim Systemstart zu aktivieren, verwenden Sie Folgendes:

sudo systemctl enable fail2ban

Überprüfen Sie den Status mit dem folgenden Befehl:

sudo systemctl status fail2ban

Beispielausgabe:

Überprüfen Sie zuletzt die Version und den Build von fail2ban:

fail2ban-client --version

Beispielausgabe:

Fail2Ban v0.11.2

So konfigurieren Sie Fail2ban

Nach Abschluss der Installation müssen wir nun einige Einstellungen und grundlegende Konfigurationen vornehmen. Fail2ban wird mit zwei Konfigurationsdateien geliefert, die sich in /etc/fail2ban/jail.conf befinden und das standardmäßige fail2ban-Jail /etc/fail2ban/jail.d/00-firewalld.conf . Ändern Sie diese Dateien nicht. Die ursprünglichen Setup-Dateien sind Ihre Originale und werden in Zukunft bei jedem Update von Fail2ban ersetzt.

Jetzt fragen Sie sich vielleicht, wie wir Fail2ban eingerichtet haben, als ob Sie Ihre Einstellungen aktualisieren und verlieren würden. Ganz einfach, wir erstellen Kopien mit der Endung .local statt .conf da fail2ban immer .local lautet Dateien zuerst, bevor Sie .conf laden .

Verwenden Sie dazu die folgenden Befehle.

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

Standardmäßig jail.local ist für die Verwendung von IPTABLES eingerichtet . Um die Dinge einfach zu halten, verwenden Sie statt 00-firewalld.conf/jail und Ihre Regeln von Grund auf neu erstellen, öffnen Sie jail.local und gehen Sie zu Zeile 208 und ersetzen Sie :

Jail.local öffnen:

sudo nano /etc/fail2ban/jail.local

Finde Ol d-Code (IPTABLES):

anaction = iptables-multiport
banaction_allports = iptables-allports

Ersetzen durch (FIREWALLD):

banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]

Als Nächstes führt das Tutorial einige Einstellungen durch, die Sie nach Belieben verwenden oder ändern können. Beachten Sie, dass die meisten Einstellungen auskommentiert sind; Das Tutorial wird die betreffenden Zeilen auskommentieren oder die vorhandenen in den Beispieleinstellungen ändern.

Denken Sie daran, dass dies optionale Einstellungen sind, und Sie können festlegen, was Sie möchten, wenn Sie mehr über fail2ban wissen und sich sicher sind.

Sperrzeiterhöhung

Die erste Einstellung, auf die Sie stoßen werden, ist Zeitinkremente sperren . Sie sollten dies jedes Mal aktivieren, wenn der Angreifer zurückkehrt. Es erhöht die Sperrzeit und erspart Ihrem System das ständige erneute Sperren derselben IP, wenn Ihre Sperrzeitdauer gering ist; B. 1 Stunde, möchten Sie, dass dies länger ist, wenn der Angreifer x5-mal zurückkehrt.

Sie müssen auch einen Multiplikator oder Faktor festlegen, damit die Ban-Erhöhungslogik funktioniert. Sie können eine davon auswählen; In unserem Leitfaden bevorzugen wir jedoch Multiplikatoren, wie in unserem Beispiel unten hervorgehoben, da Sie benutzerdefinierte Erhöhungen der Sperrzeit nach Ihren Wünschen festlegen können. Weitere Erläuterungen finden Sie im Setup zur Mathematik dahinter.

Beispiel unten:

IPs in Fail2ban auf die weiße Liste setzen

Als nächstes in der Liste stoßen wir auf Whitelist-Optionen, kommentieren das Folgende aus und sprechen alle IP-Adressen an, die Sie auf die Whitelist setzen möchten.

ignoreip = 127.0.0.1/8 ::1 180.53.31.33 (example IP address)

Stellen Sie sicher, dass zwischen den IP-Adressen Leerzeichen oder Kommas stehen. Sie können auch IP-Bereiche auf die Whitelist setzen.

Beispiel unten:

Standardeinstellung der Sperrzeit

Die Sperrzeit beträgt standardmäßig 10 Minuten mit 10 Minuten Finder bei 5 Wiederholungen. Eine Erklärung dafür ist, dass das Fail2ban-Gefängnis mit Filterung Ihren Angreifer für 10 Minuten bannt, nachdem er denselben Angriff in 10 Minuten (Zeit finden) x 5 Mal (Wiederholungen) wiederholt hat. Sie können hier einige Standard-Sperreinstellungen festlegen.

Wenn Sie jedoch in Gefängnisse kommen, ist es ratsam, unterschiedliche Sperrzeiten festzulegen, da einige Sperren automatisch länger sein sollten als andere, einschließlich Wiederholungsversuche, die weniger oder mehr sein sollten.

Beispiel unten:

E-Mail mit Fail2ban eingerichtet

Sie können eine E-Mail-Adresse für Fail2ban festlegen, um Berichte zu senden. Die Standardeinstellung action =%(action_mw)s die die betreffende IP sperrt und eine E-Mail mit einem Whois-Bericht sendet, den Sie überprüfen können. In Ihrem action.d-Ordner gibt es jedoch andere E-Mail-Optionen, um nicht nur sich selbst zu melden, sondern auch E-Mails an Blacklist-Anbieter und den ISP des Angreifers zu senden, um zu melden.

Beispiel unten:

# Destination email address used solely for the interpolations in
# jail.{conf,local,d/*} configuration files.
destemail = [email protected]

# Sender e-mail address used solely for some actions
sender = [email protected]

Beachten Sie, dass Fail2ban standardmäßig Sendmail MTA verwendet für E-Mail-Benachrichtigungen. Sie können dies auf die Mail-Funktion ändern indem Sie Folgendes tun:

Ändern von:

mta = sendmail

Ändern zu:

mail = sendmail

Fail2ban-Gefängnisse

Als nächstes kommen wir zu den Gefängnissen. Sie können vordefinierte Jails mit Filtern und Aktionen festlegen, die von der Community erstellt wurden und viele beliebte Serveranwendungen abdecken. Sie können benutzerdefinierte Jails erstellen oder externe Jails auf verschiedenen Gists finden und Community-Websites; Wir werden jedoch die standardmäßigen Fail2ban-Paket-Jails einrichten.

Standardeinstellung für alle Jails wie im Bild unten. Beachten Sie, dass nichts aktiviert ist.

Beispiel unten:

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Wir haben also einen Apache 2 HTTP-Server, und wie beim Filtern/Verbieten bösartiger Bots müssen Sie nur wie im Beispiel unten enabled =true hinzufügen.

[apache-badbots]
# Ban hosts which agent identifies spammer robots crawling the web
# for email addresses. The mail outputs are buffered.
enabled = true
port     = http,https
logpath  = %(apache_access_log)s
bantime  = 48h
maxretry = 1

Beachten Sie, dass die maximale Wiederholung 1 beträgt und die Sperrzeit 48 Stunden beträgt. Dies ist eine individuelle Einstellung für die maximale Wiederholungs- und Sperrlänge für dieses Gefängnis, die automatisch mit dem Sperrmultiplikator erhöht wird, den wir zuvor in der Anleitung eingerichtet haben. Wenn dies bei einem der Filter fehlt, können Sie es als Beispiel hinzufügen.

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

Ändern Sie oben das folgende Beispiel unten:

[apache-noscript]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
bantime = 1d
maxretry = 3

Als nächstes möchten Sie andere Aktionen als in Ihrer Standardeinstellung in /etc/fail2ban/jail.local angegeben haben, zusätzliche Aktionen finden Sie im Verzeichnis action.d. Verschiedene Aktionen aus diesem Verzeichnis können einfach eingerichtet werden, indem Sie den Anweisungen in diesen Aktionskonfigurationszeilen in den Dateien folgen und daran denken, sie zuerst in .jail umzubenennen über .conf, und fügen Sie dann Folgendes zu Ihrem Jail-Setup hinzu.

[apache-botsearch]
enabled = true
port     = http,https
logpath  = %(apache_error_log)s
banaction = action_mw
cloudflare
bantime = 72h
maxretry = 1

Wie Sie sehen können, haben wir action_mw hinzugefügt, sodass es automatisch gemäß unserer Standardaktion bannt und uns einen Bericht mit Whois per E-Mail sendet. Wenn Sie dann Cloudflare verwenden, blockiert die folgende Aktion auch die IP-Adresse des Dienstes. Denken Sie daran, dass Cloudflare vor der Verwendung eingerichtet werden muss. Lesen Sie die action.d-Datei cloudflare.conf .

Wenn Sie mit Ihrer Einrichtung zufrieden sind, führen Sie den folgenden Befehl aus, um fail2ban neu zu starten und Ihre neuen Jails zu laden.

sudo systemctl restart fail2ban

Beispiele für die Verwendung des Fail2ban-Clients

Jetzt, da Sie mit Fail2ban einsatzbereit sind, müssen Sie einige grundlegende Betriebsbefehle kennen. Wir tun dies, indem wir den Befehl fail2ban-client verwenden. Abhängig von Ihrer Einrichtung benötigen Sie möglicherweise sudo-Berechtigungen.

Eine IP-Adresse sperren:

sudo fail2ban-client set apache-botsearch banip <ip address>

Eine IP-Adresse sperren:

sudo fail2ban-client set apache-botsearch unbanip <ip address>

Befehl zum Aufrufen des Hilfemenüs, wenn Sie zusätzliche Einstellungen finden oder Hilfe zu einer bestimmten benötigen.

sudo fail2ban-client -h

Firewalld und Fail2ban prüfen

Standardmäßig sollte firewalld so konfiguriert sein, dass es automatisch jede IP sperrt, die fail2ban sperrt. Um zu sehen, ob dies tatsächlich richtig funktioniert, verwenden Sie den folgenden Befehl:

Ein Schnelltest ist die in Ihrem Gefängnis befindliche [SSHD] und Setzen von enabled =true Auch wenn Sie dieses Jail nicht verwenden, da es nur ein Test ist, verwenden Sie den folgenden Ban-Befehl:

sudo fail2ban-client set sshd banip 192.155.1.7

Listen Sie nun die umfangreichen Regeln der Firewall-Liste wie folgt auf:

firewall-cmd --list-rich-rules

Beispielausgabe:

rule family="ipv4" source address="192.155.1.7" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"

Wie Sie sehen können, funktionieren fail2ban und firewalld in einer Live-Umgebung korrekt.

Fail2ban-Protokolle überwachen

Viele häufige Fehler sind die Errichtung von Gefängnissen und die Flucht, ohne zu testen oder zu überwachen, was sie tun. Das Überprüfen von Protokollen ist unerlässlich, das fail2ban-Protokoll befindet sich in seinem Standardpfad /var/log/fail2ban.log .

Wenn Sie einen Server haben, der anständigen Datenverkehr empfängt, ist die Verwendung des tail -f Befehls ein ausgezeichneter Befehl, um live zuzusehen, um Probleme zu sehen und ein Auge darauf zu haben, während Sie auf anderen Servern arbeiten unten.

sudo tail -f /var/log/fail2ban.log

Der Befehl kann sich für Stichproben als nützlich erweisen, ohne in die Protokollierung eintauchen zu müssen.

Fail2ban deinstallieren

Wenn Sie Fail2ban nicht mehr benötigen, verwenden Sie den folgenden Befehl, um es von Ihrem System zu entfernen:

sudo dnf autoremove fail2ban fail2ban-firewalld

Beispielausgabe:

Geben Sie Y ein, drücken Sie dann die ENTER-TASTE um mit der Deinstallation fortzufahren.

Beachten Sie, dass dadurch auch alle ungenutzten Abhängigkeiten entfernt werden, die mit Fail2ban installiert wurden.


AlmaLinux
  1. So installieren Sie Fail2ban mit Firewalld unter Rocky Linux 8.4

  2. So installieren Sie MongoDB auf AlmaLinux 8

  3. So installieren Sie das neueste PHP 8.1 auf AlmaLinux

  4. So installieren Sie Lighttpd auf AlmaLinux 8

  5. So installieren Sie Fail2ban mit Firewalld auf Rocky Linux 8

So installieren Sie Linux Kernel 5.15 auf AlmaLinux 8

So installieren und konfigurieren Sie Memcached auf AlmaLinux 8

So installieren und konfigurieren Sie Git unter AlmaLinux 8

So installieren Sie Redis &Configure unter AlmaLinux 8

So installieren Sie Elasticsearch auf AlmaLinux 8

So installieren Sie Fail2Ban auf AlmaLinux 8