Führen Sie einen Systembefehl aus, wenn eine IPTables-Regel übereinstimmt

8

:)

Ich möchte einen Systembefehl ausführen können, wenn eine IPTable-Regel ausgelöst wird, und die IP-Adresse des Remote-Geräts an sie übergeben.

Ich habe mich umgesehen, aber nichts gefunden. Ich dachte daran, Protokolle zu greppen, aber ich erwarte viel Verkehr.

Jede Hilfe wäre fantastisch!

Danke

(Wenn es hilft, ist Ubuntu Linux meine Plattform der Wahl)

    
AndyD 20.07.2012, 18:15
quelle

2 Antworten

4

So machen Sie es:

iptables -I FORWARD -p tcp --dport 80 -d a.b.c.d -j LOG --log-prefix="TRIGGER ME NOW !!!"

tail -f some-logfile | awk '/some-pattern/ {system("run-some-command")}'

Sollte einfach genug sein und sollte in der Lage sein, viel Verkehr zu bewältigen, sollte der Schwanz Befehl schnell genug sein ... Nur sicherstellen, dass die Datei nicht zu viel wächst.

    
Yannick 20.07.2012, 19:08
quelle
1

Mach es stattdessen mit klockd. Sie konfigurieren eine Port-Klopfsequenz von nur einem Port und teilen dann klockd den Befehl mit, den Sie ausführen möchten. Normalerweise wird es verwendet, um iptables-Regeln hinzuzufügen / zu entfernen - um einen Dienst (zB ssh-Zugang) nach einer bestimmten Klopffolge zu öffnen, aber ich sehe nicht, warum man nicht einfach einen Befehl nach einem sehr einfachen Befehl ausführen kann Paket auf einer erwarteten Port-Regel.

'apt-get install knockd' auf Ihrem Ubuntu-System und die man-Seite hat Beispiele, die Sie leicht anpassen können.

    
Craig Constantine 20.07.2012 19:44
quelle

Tags und Links