© Yanik Chauvin, Fotolia
Das IPtables-Modul Recent blockiert hartnäckige
Hausverbot
von Michael Schwartzkopff
Erschienen im Linux-Magazin
2007/04
Fühlt sich ein Intrusion-Prevention-System attackiert, dann erteilt es dem Störer striktes Lokalverbot und lässt ihn an keinen Dienst mehr ran. Alle anderen Benutzer bleiben von der Blockade verschont. Mit dem Recent-Modul von Netfilter ist dieses Verhalten bestens steuerbar.
Firewalls sind weit mehr als reine Filterlisten-Verwalter. Stateful Inspection gehört längst zur Pflicht. In der Kür passen sie dynamisch ihre Regelsätze an, um enttarnte Angreifer von allen Zugängen fernzuhalten. Das gelingt zum Beispiel mit einer Kombination aus dem Intrusion-Detection-System Snort [3] und dem Recent-Modul [1] für Netfilter [2]. Snort bemerkt Angriffe und Recent verwaltet dynamisch eine Liste mit deren IP-Adressen. Der Clou: Die Liste darf in Firewallregeln vorkommen.
Oft ist Snort gar nicht nötig. Wenn bereits eine Firewallregel Angriffe detektiert, kann sie auch selber Einträge in der Recent-Liste ergänzen. Die Option »--set« des Recent-Moduls trägt die Source-Adresse des aktuell untersuchten Pakets in die Liste ein. Mit »--rcheck« prüft Netfilter, ob die Absenderadresse des untersuchten Pakets bereits in der Liste steht. Zusätzlich kann der Admin mit »--seconds« angeben, wie lange zurück der letzte Eintrag in der Liste liegen darf. Eine Prüfung mit der Option »--update« funktioniert so wie »--rcheck«, setzt aber den Zeitstempel neu.
Das Beispiel in Listing 1 zeigt das Recent-Modul im Einsatz. Zeile 1 sorgt dafür, dass Pakete einer bestehenden Verbindung weiterhin durchkommen (Stateful Inspection). Zeile 2 prüft, ob das Recent-Modul den Absender schon kennt, und blockiert ihn in diesem Fall. Danach folgen in einem vollständigen Skript alle Regeln für die erlaubte Kommunikation.
01 iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
02 iptables -A FORWARD -m recent --update -j DROP
03 [andere Regeln]
04 iptables -A FORWARD -i Extern-Interface -p tcp --dport 135 -m recent --set -j DROP
05 iptables -A FORWARD -j DROP
|
Blockadehaltung
Das Kommando in Zeile 4 füllt die Recent-Liste mit den IP-Adressen aller Angreifer, die sich von außen (externes Interface) an Port 135/TCP versuchen. Den Port verwenden Würmer, um dank einer DCOM-RPC-Schwachstelle in Windows-Systeme einzudringen. Die letzte Zeile bestimmt als Default-Policy »DROP«.
Sollte sich derselbe Rechner innerhalb des Standard-Timeout von 60 Sekunden noch einmal melden, blockt ihn die Firewall, egal auf welchen Port und Zielrechner er diesmal zugreift (Zeile 2). Zugleich setzt das Recent-Modul den Zeitstempel neu (wegen der Option »--update«) und die 60 Sekunden beginnen von vorn. Das Ablaufdiagramm in Abbildung 1 zeigt die Schritte der Pakete durch das Firewallskript.

|
Abbildung 1: Bei neuen Paketen prüft das Recent-Modul, ob es den Absender kennt. Wenn ja, verwirft es das Paket sofort. Wenn nein, folgen die restlichen Regeln. Erkennt das Skript am Ende eine verbotene Kommunikation, sperrt es künftig den Täter.
|
Tiefer im Modul
Das Modul kann auch mehrere dynamische Listen verwalten, zum Beispiel eine für den Mailserver und eine für die restlichen Systeme. Den Namen der jeweiligen Liste gibt das Firewallskript über die Option »--name Bezeichnung« an. Ohne diesen Parameter verwendet das Modul die Liste »DEFAULT«.
Userspace-Tools erreichen IP-Listen über das Proc-Verzeichnis »/proc/net/ipt_recent/Liste«. Das Recent-Modul hinterlegt hier die Adresse und die Zeitstempel der erkannten Pakete. Neue Einträge darf auch ein Userspace-Skript besorgen:
echo Adresse > /proc/net/ipt_recent/DEFAULT
Das ist nützlich, um die Kommunikationen mit einer bestimmten IP-Adresse schnell zu unterbinden. Ebenso gelingt es, Nummern aus der Liste zu löschen:
echo -Adresse > /proc/net/ipt_recent/DEFAULT
Üblicherweise verwaltet Recent nur 100 Einträge pro Liste. Kommen neue hinzu, verdrängen sie ältere Felder, auch wenn die Zeitspanne noch gar nicht abgelaufen ist. Das gerät bei schnellen Internetanbindungen zum Problem, lässt sich aber leicht umgehen: »modprobe ipt_recent ip_list_tot=1000« erhöht beim Initialisieren des Moduls sein Fassungsvermögen auf 1000 Adressen.
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|