Kategorie: Perl RSS-Feed für diese Kategorie
Perl: automatisch iptables Drop-Regeln aus Vorkommnissen in Logdateien erstellen
Inhalt Beschreibung Quellcode Projektdaten Beschreibung Das folgende Script ist eine Weiterentwicklung des „w00tw00t.pl„-Scripts. Ziel ist es weiterhin, automatisiert auf Spam oder Angriffe auf bestimmte Dienste zu reagieren, in dem die verursachende IP-Adresse über iptables ausgesperrt wird. Das Script beschränkt sich nun nicht mehr auf nur ein Logfile – es können beliebig viele Logdateien auf verdächtige Aktivitäten überwacht werden. Das Script setzt sich in den Hintergrund und forkt sich für jede konfigurierte Logdatei. Ist eine Logdatei nicht vorhanden, wird alle 30 Sekunden versucht, die Logdatei zu öffnen – zum Beispiel beim Einsatz von logrotate notwendig. Hier ein kleines Beispiel zur Konfiguration
Perl: w00tw00t-Einträge im Apache-Log automatisch für iptables-Firewallregeln verwenden
Im Apache-Errorlog finden sich bei mir immer wieder einige Einträge dieser Art: „[Wed Apr 07 23:17:01 2010] [error] [client 88.191.61.110] client sent HTTP/1.1 request without hostname (see RFC2616 section 14.23): /w00tw00t.at.ISC.SANS.DFind:“. Diese Einträge entstehen wohl, wenn Apache von einem Tool namens `dfind‘ gescannt wird. `dfind‘ sucht nach Schwachstellen in der verwendeten Server-Software. Da solche Log-Einträge ziemlich überhand nahmen, schrieb ich ein kleines Perl-Script, dass ähnlich wie `tail‘ das Apache-Logfile beobachtet und bei einem Eintrag nach entsprechendem Muster („.*request without hostname.*w00tw00t.*“) iptables anweist, die Client-IP zu sperren – falls diese IP ohnehin nicht schon gesperrt ist. Das Script setzt sich selbst
Perl: veraltetete Distfiles von gentoo Linux automatisiert löschen
Gentoo Linux verwendet bekanntermaßen den sogenannten Portage zur Verwaltung der Software auf dem System. Wenn mittels `emerge‘ ein Paket installiert wird, zieht der Portage die Quelldateien der Software aus dem Netz und speichert diese standardmäßig in /usr/portage/distfiles/. Je nach Konfiguration in /etc/portage/make.conf belässt der Portage die Quelldateien auf dem Dateisystem, um bei Änderungen der USE-Flags und der daraus erforderlichen Recompilierung des Pakets die Dateien nicht erneut herunterladen zu müssen. Aktualisiert man nun die Paketinformationen mit `emerge –sync‘, werden veraltete ebuilds entfernt. In diesen ebuilds (bzw. dessen Manifest-Dateien) ist hinterlegt, welches Quellpaket in welcher Version verwendet werden soll. Ist also ein