
Automatisierte Netzwerksicherheit mit Rust: Erkennung und Blockierung von Port-Scannern
Dieses Tool soll die Fähigkeiten der nfnetlink_queue-Funktion des Linux-Kernels demonstrieren.
Für detailliertere Informationen kannst du diesen Artikel lesen.
Bevor Pakete vom Kernel verworfen werden, werden sie zur weiteren Verarbeitung an dieses Tool gesendet. Wenn ein entfernter Peer versucht, zu viele geschlossene Ports auf deiner Maschine zu erreichen, wird er automatisch gesperrt, indem eine Drop-Anweisung für seine IP-Adresse sehr früh im Netzwerk-Stack eingefügt wird (bevor eine Paketdefragmentierung oder Connection Tracking stattfindet).
Gesperrte IPs werden nach einem bestimmten Zeitraum automatisch wieder entsperrt. Das ist hilfreich, falls:
Damit dieses Tool funktioniert, musst du die folgende Anweisung am Ende deiner nftables-Eingabekette hinzufügen:
queue num 0-3 fanout
Starte danach den nftables-Dienst neu:
sudo systemctl restart nftables
Um dieses Tool aus dem Quellcode zu installieren, musst du die stabile Rust-Toolchain installiert haben. Du kannst dafür rustup verwenden.
Führe dann die folgenden Befehle aus:
make
sudo make install
set-Funktion von nftables nutzen, um gesperrte IPs schneller nachzuschlagen, anstatt für jeden Client eine neue Sperrregel hinzuzufügen.