Oft sind es die ganz einfachen Werkzeuge, die – passend angewendet – zu schönen Erfolgen führen. Diesmal nimmt Sysadmin-Kolumnist Charly einen IP-Adressen-Filter zur Hand und zählt damit die Geräte im Haus oder stellt Spammern ein Bein.
Obwohl es so viele Grep-Varianten gibt, finde ich immer wieder mal eine neue. Grepcidr [1] habe ich vor einigen Monaten erst entdeckt. Das Tool filtert, wie der Name andeutet, eine Eingabe nach IP-Adressen und -Netzen. Es kommt mit IPv4 und IPv6 gleichermaßen klar. Um zu zeigen, was Grepcidr so draufhat, werde ich damit eine Liste aller IPv4-Adressen des heimischen Netzes zusammentragen. Die bekomme ich aus dem Syslog der Firewall, die auch DHCP-Server ist:
cd /var/log grepcidr 10.0.0.0/24 syslog|grep DHCPACK|tail -n 1500|cut -f9 -d" "|sort|uniq > 1stlist
In der Datei »1stlist« stehen nun 46 IP-Adressen:
10.0.0.135 10.0.0.15 10.0.0.150 10.0.0.16 10.0.0.166 [...41 weitere...]
Das finde ich automatisiert mit dem Kommando
grepcidr 10.0.0.0/24 -c < ./1stlist
heraus. In diesem einfachen Fall wäre ich mit »wc -l < ./istlist« zwar schneller gewesen, aber Grepcidr spielt seine Stärken spätestens dann aus, wenn ich unterschiedliche Netze aus einer solchen Datei herausfiltern muss.
Nach einiger Zeit wiederhole ich das Spiel und lasse die Liste der IP-Adressen nun in die Datei »2ndlist« schreiben. »grepcidr 10.0.0.0/24 -c < .2ndlist« zeigt für meine Statistik, dass die Datei eine Zeile kürzer ist, also ein Gerät weniger im Netz steckt. Welches gegenüber vorher fehlt, ermittle ich ganz einfach mit Diff:
diff 1stlist 2ndlist 2d1 < 10.0.0.15
Um zu sehen, wie viele Geräte im Haus Dauerläufer sind, schicke ich die Daten in eine Round-Robin-Datenbank und lasse einen Verlaufsgraphen zeichnen. Die Unterbrechung um zirka 6 Uhr in Abbildung 1 geht auf einen Routine-Reboot des DHCP-Servers zurück.
Post-Lästlinge niederringen
Außerdem fertige ich IP-Blacklists auf meinem Mailserver mit Grepcidr an. Ich habe nämlich einige Mailadressen eingerichtet, die ich nicht benutze, deren Existenz Spammer aber gerne raten, »sales@…« beispielsweise. Zweimal am Tag pflügt Grepcidr durch das Log und extrahiert alle IPs aus den Logzeilen, die diese Postfächer betreffen, und schreibt sie in die Datei »harvest«.
Da in diesen Zeilen aber auch die IPs meiner eigenen Server auftauchen, muss ich sie mit einer Whitelist entfernen. Auch diese Whitelist ist ein File mit IP-Adressen.
Die sofort verwendbare Blacklist baut Grepcidr jetzt in einem einzigen Arbeitsschritt auf:
cat harvest|grepcidr -vf whitelist > blacklist
Mit diesem Kniff halte ich mir so manche Spammer vom Hals. (jk)
Infos
-
Grepcidr: http://www.pc-tools.net/unix/grepcidr/







