Null Routing und die Windows Firewall
Es gibt Phänomene, für die muss man erstmal eine Erklärung finden, wie dieses. Einer meiner Virtuellen Server, ein Webserver 2008 R2 wird eigentlich wie gewollt überwacht von einem OSSEC Agenten auf Integrität überwacht. Ein zentraler OSSEC Server wertet die Event und Anwendungslogfiles aus, und reagiert automatisch auf Angriffe. Naja, zumindest war genau dass, der Plan. Aber eine ganz allgemeine Gegenmaßnahme gegen Angreifer scheint auf diesem Host nicht wie gewollt zu funktionieren – das Null oder Blackhole Routing.
Also genaugenommen funktioniert es schon, etwa ein Paket lang dann fließen die Pakete auf einmal wieder über das Standard Gateway. Was ist passiert ? Null Routing war bei Windows im Gegensatz zu anderen Betriebssystemen nie wirklich direkt implementiert. Eigentlich musste man sich solange ich denken kann mit einem Umweg behelfen:
route -p add 10.0.0.2 MASK 255.255.255.255 10.99.99.254
^ IP die man blockieren will ^ Nicht existierende AdresseZusammen mit einem HIDS ist das keine schlechte Gegenmaßnahme. Allerdings ändert Windows auf magische Weise mithilfe der “dead gateway detection” die Metrik meiner künstlich angelegten Route auf
Metrik des Default Gateways + 1
sobald mein Rechner das erste Paket ins Nirvana bewegt. Also Zeit sich eine richtige Lösung zu überlegen und sich ein Wenig mit der Windows Firewall auseinanderzusetzen.
Vorbereitungen
Zuerst benötigen wir eine IP Security Policy, eine Filter Aktion und eine IP Filter Liste, diese legen wir mit den folgenden drei Befehlen an:
$ netsh ipsec static add policy name="KeineVerbindung" description="Zu diesen Hosts wird keine Verbindung aufgebaut" $ netsh ipsec static add filteraction name="Block" description="Alles blockieren" action=block $ netsh ipsec static add filterlist name="Angreifer" description="Diese Liste enthält Hosts die Bekannte Angreifer sind"
Verwenden
Wollen wir nun eine IP Blockieren ist es notwendig IP Filter hinzuzufügen und diese der IP Filterliste zuzuordnen:
$ netsh ipsec static add filter filterlist="Angreifer" srcaddr=10.0.0.2 dstaddr=any description="19.08.2011 - Versuchter Einbruch auf FTP Server"
Aktivieren
Nun müssen wir die Filteraktion noch der Filterliste zuweisen:
$ netsh ipsec static add rule policy="KeineVerbindung" filterlist="Angreifer" filteraction="Block" activate=yes
Zuguterletzt müssen wir nun noch den gesammelten Regelsatz zuweisen. An dieser Stelle solltet Ihr überprüfen, dass Ihr nicht einen falschen Host hinzugefügt habt!
Zuweisen des Regelsatzes:
netsh ipsec static set policy name="KeineVerbindung" assign=yes