Verdächtige IP mit Linux Firewall Daemon sperren

Brute-Force Angriffe mit Firewall Daemon blockieren aus Bash Script

Firewall Daemon für den Schutz vor laufenden Brute-Force Attacken, bei der Erkennung versuchter Angriffe auf den Linux Host. Um den Host permanent zu schützen, können verdächte Anfragen von angreifenden Quellen schnell gesperrt werden. Das folgende bash Script sperrt die IP, diese als Argument übergeben wird und von firewall-cmd auf reject gesetzt wird.

Das Script wurde auf Debian 10 (buster) geschrieben, bei Debian muss firewalld erst installiert werden, wie auch unter Ubuntu 20. Bei RHEL und CentOS Linux 7+ und Fedora 30 oder höher ist firewalld im Standard und das Script ist gleich anwendbar.

Firewalld Installation auf Debian

Das firewalld-Paket ist in den offiziellen Debian 10 Repositorys verfügbar. Die Installation ist unschwer wie folgender Ablauf zeigt.

Bereitstellung von Firewalld im Terminal mit Root Privileg.

Wenn ufw aktiviert ist, muss die Uncomplicated Firewall (ufw) zur Verwaltung der Netfilter deaktiviert werden, um firewalld zur Standard-Firewall zu machen.

Den Firewall daemon starten und für den Systemstart aktivieren.

Ausführung und Erreichbarkeit des Dienstes überprüfen.

Laden der neuen Firewall-Regeln unter beibehalten des Status.

Erscheint bei Debian nach firewall-cmd –reload der Fehler:

Error: COMMAND_FAILED: ‚/usr/sbin/ip6tables-restore -w -n‘ failed: ip6tables-restore v1.8.2 (nf_tables:
line 4: RULE_REPLACE failed (no such file ordirectory): rule in chain OUTPUT

Ist die Lösung das Ausführen von update-alternatives, um Debian zu erzwingen, iptables anstelle von nftables zu verwenden.

Nach dem wechsel von nftables zu iptables den Linux Rechner mit reboot neu starten.

Firewalld Konfiguration

Firewalld ist eine Firewall-Verwaltungslösung als Frontend für das vom Linux-Kernel bereitgestellte iptables-Paketfiltersystem. firewall-cmd ist das Dienstprogramm zum Verwalten der Firewall-Konfiguration. Der firewalld Daemon verwaltet Gruppen von Regeln mithilfe von Entitäten, die als „Zonen“ bezeichnet werden. Zonen sind wie Regelsätze, die festlegen, welcher Datenverkehr zugelassen werden soll, anhand des Vertrauen der Netzwerke, mit denen der Computer verbunden ist. Den Netzwerkschnittstellen wird eine Zone zugewiesen, um das Verhalten festzulegen, das die Firewall zulassen soll.

Ein Netzwerk Interface zur Default Zone public zugewiesen, unter Verwendung des firewall-cmd Tools, mit dem Kommand zur Überprüfung von Zonen und den Interfaces.

Erscheint bei interfaces (bei Zeile 6) keine Netzwerk Schnittstelle, muss dieses der Zone noch zugeweisen werden, dazu mit ip oder ifconfig (net-tools) die Schnittstellen abfragen.

Hier bei unserem virtuellen Debian (buster) ist es Link 2 ens33.

Das Interface ens33 wird zur Default Zone public zugewiesen.

Das zur Zone zugewiesene Interface überprüfen mit der Ausgabe.

Das Interface ens33 ist mit der Zone verbunden.

Fail2ban und Firewalld Interaktion

Fail2ban (Fehlschlag führt zum Bann) ist ein in Python entwickeltes IPS und Framework zur Vorbeugung gegen Einbrüche, das auf allen Unixoiden OS läuft, die ein manipulierbares Paketfiltersystem oder eine Firewall besitzen wie iptables oder firewalld unter Linux.

Bei Zeile 13 im Script reject.sh (oben), wird falls vorhanden und ausgeführt, die von Fail2ban verbannten (banned) Adressen nach der manipulation von firewalld, den zuvor aktive Zustand wieder hergestellt. Wird Fail2ban nicht angewandt, können die Zeilen 12 – 14 gelöscht werden.

Script ausführen

Mit Übergabe der Source-IP wird das Script in der bash ausgeführt, um verdächtige Anfragen durch die Firewall abzulehnen.

Die abgelehnte IP-Adresse kann mit folgender Kommandozeile in der Shell wieder entfernt werden.

Die Regel mit firewall-cmd –remove wieder entfernen.

Mit firewall-cmd –reload wird die Änderung aktiviert.

Anwendung und Hilfe zu firewall-cmd

Ausgeben der geänderten und aktivierten Regel der Zone Public.

Aktuelle Firewall Regeln überprüfen mit folgenden Kommandos.

Standardzone für Verbindungen und Schnittstellen ausgeben.

Eine Zone zur Defaultzone festlegen.

Derzeit aktive Zonen ausgeben.

Vordefinierte Zonen ausgeben.

Hilfe und man page von firewall-cmd ausgeben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.