Geht das mit iptables?

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Hallo zusammen,

mal wieder Thema iptables :) Hätte dazu ein Frage an alle die das Teil gut kennen. Kann man eine chain-Regel definieren, die bei Zutreffen der Bedingungen ein externes Script ausführt? Mein Ziel wäre es bei genau definierten IPs eine Mail an den admin zu senden. Man kann ja mit dem LOG-target ins Syslog schreiben, aber dann muss man das wieder durchsuchen und das ist mir zu mühsam :) Ein externes Script wäre perfekt.

Thanks für alle Ideen + Gruss

tobi
 

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
Gegenfrage:
Kann man an eine iptables chain das -exec als zusätzlichen Parameter dranhängen um ein Script auszuführen?

Mit find klappt das ala "search and -exec destroy" ich weiß aber nicht ob iptables diesen parameter akzeptiert. Sonst müsste man das Pferd von hinten aufzäumen und einen cronjob einrichten der ein find Script mit -exec Parameter ausführt welches das Syslog durchwühlt und bei Treffern die Mail an den Admin sendet.


Grüße Kidaru
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Die Logs abzusuchen ist keine Option. Dann brauch ich keine spezielle IP-tabels Regel, sondern nur ein Script und cron. Der Vorteil der Lösung via iptables ist, dass man den Event des zugriffs als Starter für das eigene Script nutzen kann. Mit cron würde das Script u.U. unnötigerweise zu oft ausgeführt. Zwischenzeitlich habe ich den Daemon specter gefunden, welcher eine EXEC Option kennt und als Ziel von IP-Tables-Regeln verwendet werden kann. Allerdings wird der seit lenny nicht mehr weiterentwickelt und hat so seine Mühen mit Leerzeichen im Kommando und/oder Ausgabeumleitung resp der Pipe. Bis jetzt habe ich das Kommando für specter inline in the specter conf geschrieben. Ich werde mal noch probieren ob specter weniger Probleme hat wenn ich den Code in ein eigenes SCript packe und nur den Scriptaufruf in specter mache und nicht mehr das ganze Kommando
 

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Hi
danke für den Link. Werde mir das mal angucken. Das lenny Paket, das ich von specter installiert habe, hat
Code:
 specter -V
specter 1.4
als Version. Scheinbar ist unter deinem Link die Version 1.5
Ich guck mir das am Weeky mal an ob die Versionen effektiv unterschiedlich sind oder nur unterschiedliche Versionsnummern tragen
 

janus

Benutzer
Mitglied seit
07. Sep 2010
Beiträge
667
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

mal wieder Thema iptables :) Hätte dazu ein Frage an alle die das Teil gut kennen. Kann man eine chain-Regel definieren, die bei Zutreffen der Bedingungen ein externes Script ausführt? Mein Ziel wäre es bei genau definierten IPs eine Mail an den admin zu senden. Man kann ja mit dem LOG-target ins Syslog schreiben, aber dann muss man das wieder durchsuchen und das ist mir zu mühsam :) Ein externes Script wäre perfekt.

Thanks für alle Ideen + Gruss

tobi

Vielleicht hilft ja folgende Idee etwas:

syslog-ng aktivieren und von iptables entsprechende Logmeldungen schreiben lassen.
syslog-ng kann dann filtern und entsprechende Maßnahmen einleiten. Auf meinem Rechner werden mit dieser Methode ssh scanns geloggt und eine entsprechende IP ggf. per iptables geblockt.

Gruß

Janus
p.s. Ansonsten könnte man versuchen den syslog in eine pipe schreiben zu lassen, um diese pipe dann per Script auszulesen und dort die logmeldungen des iptables auszuwerten.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
das mit dem Auslesen des syslogs wäre auch eine Option, nur wäre es unnötigerweise auch mehr Aufwand (systemmäsig). Denn mein Script müsste jedesmal das gesamte Log einlesen nur um eine neue IP zu ermitteln. Durch den "Event" in iptables hätte ich ja bereits alle nötigen Infos (IP, Port und Uhrzeit/Datum). Zudem wäre das Script zeitlich verzögert, der "Event" im iptables wird sofort ausgelöst. Meine Logs werden schon sehr häufig von fail2ban durchsucht, da möchte ich mir gern ein weiteres Einlesen des Logs ersparen :)
Das Problem mit der syslog-Pipe ist, dass iptables nur ins Log schreibt, welches man mit dmesg auslesen kann d.h. ich müsste dieses Log komplett pipen, wobei die gewünschten Infos nur den kleinsten Teil des Logs ausmachen. Zudem müsste ich dann auch wieder zurück pipen damit ich mit dmesg wieder was zum Lesen habe :)

Ich denke ich werde dem specter eine weitere Chance geben. Mal gucken ob's sauber geht wenn ich das Kommando in ein File packe und nur noch das File aufrufe. Und sonst mach im mal noch das Update auf 1.5 und wenn das auch ned geht, dann komme ich gerne wieder auf syslog zurück :)
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Der Vollständigkeit halber: mit dem Code in einem externen Script funzt der specter 1.4 sauber d.h. ip und port werden durch specter sauber an mein php Script geschickt, welches die Daten in die mysql-DB einträgt. So solls sein :)
Wen es interessiert, so schauts aus http://tobisworld.homeip.net/ip2mysql-client.php wenn man die dann Tabelle abfragt :)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat