iptables und Befehle
-
Hallo zusammen,
da meine Firewall (iptables) einwandfrei funktioniert,
wollte ich etwas damit herumexperimentieren.
Gibt es eine Möglichkeit statt -j ACCEPT/DROP/LOG...
einen Befehl bzw. ein Script auszuführen und erst
danach die Regel zu erlauben oder zu blockieren.
Ich wollte beim blocken verschiedener Ereignisse
eine .mp3 Datei abspielen.Ich hoffe Ihr könnt mir auch dieses Mal helfen.
Danke schon mal im Voraus allen Helfern.Bye Peter.
-
So explizit weiss ich leider auch keine Möglichkeit ein Script o.ä. laufen zu lassen. Aber du könntest die Events loggen, in eine Datei oder auf ein Terminal und von dort aus einen Daemon im Hintergrund laufen lassen der bei z.B. einer bestimmten Zeichenkette "MP3" dein Sound ausgibt.
-
ich würde das target QUEUE mal ausprobieren.
-
ich habe gerade etwas danach gegoogelt.
So wie ich es verstanden habe übergibt man das komplette
Paket an einen laufenden Prozess.
Nun meine Frage, wie bekommt so ein Prozess die Daten
übergeben bzw. wie sieht so eine Behandlung in einem
kleinen Programm aus. Ich habe bisher nur unter Windows
mit C++ sowie reinem C programmiert, daher wäre ich
für ein kleines Codegerüst für so einen Fall dankbar.
Ich bedanke mich schonmal im Voraus bei euch.Bye Peter.
-
aus http://www.linuxfaq.de/f/cache/382.html
QUEUE ist ein besonderes Ziel, welches das Paket an die Reihe der
Benutzerprozesse anhaengt. Damit das nuetzlich ist, werden zwei
weitere Komponenten benoetigt:o Ein "queue handler", der mit dem wirklichen Mechanismus vom Reichen
der Pakete vom Kernel zur Anwenderseite arbeitet; und
o eine Anwendung, die Pakete empfaengt, moeglicherweise manipuliert
und Urteile darueber faellt.
Der Standard "queue handler" fuer IPv4 iptables ist das ip_queue
Modul, das mit dem Kernel geliefert wird und als EXPERIMENTAL
gekennzeichnet ist.
Das Folgende ist ein kleines Beispiel dafuer, wie man iptables
verwendet, um Pakete fuer den Userspace einzureihen:# modprobe iptable_filter
# modprobe ip_queue
# iptables -A OUTPUT -p icmp -j QUEUEMit dieser Regel werden lokal generierte, ausgehende ICMP Pakete (wie
sie zum Beispiel mit ping erstellt werden) dem ip_queue Modul
uebergeben, welches dann versucht, die Pakete an eine Anwendung zu
liefern. Wenn es keine Anwend- ung gibt, die darauf wartet, werden die
Pakete verworfen.Um eine Anwendung zu schreiben, solltest Du die libipq API verwenden.
Sie wird mit iptables geliefert. Beispielcode (z.B. redirect.c) kann
in der Testsuite Tools auf dem CVS Server gefunden werden.Der Status von ip_queue kann wie folgt ueberprueft werden:
/proc/net/ip_queue
Die maximale Laenge der Queue (ich meine die Anzahl der an eine
Anwendung gelieferten Pakete, ueber die kein Urteil gefaellt wurde)
kann wie folgt kontrolliert werden:/proc/sys/net/ipv4/ip_queue_maxlen
Der Standardwert der maximalen Laenge der Queue liegt bei 1024. Sobald
dieses Limit erreicht wird, werden neue Pakete solange verworfen
werden, bis die Laenge der Queue wieder unter das Limit faellt. Nette
Protokolle, wie TCP, interpretieren verworfenen Pakete als
'Ueberfuellung' und werden hoffentlich das Senden einstellen, wenn die
Queue sich fuellt. Wie auch immer, wenn der Standardwert in einer
gegebenen Situation zu klein sein sollte, koennen ein paar Experimente
erforderlich sein, um die ideale maximale Laenge der Queue zu
bestimmen.mehr weiß ich auch nicht drüber. also nur, daß es angeblich irgendwie klappen soll.
was mich zur these veranlaßt, daß mans innerhalb weniger tage schafen könnte, ist "Beispielcode (z.B. redirect.c) kann in der Testsuite Tools auf dem CVS Server gefunden werden". könnte auch ne geschichte von 20 minuten sein. keine ahnung.
-
evtl hab ich was.
mit
iptables ... -j LOG --log-prefix "playmp3"
dafür sorgen, daß das geloggt wird.und wenn du metalog als logger hast, was ich mal annehmen, in der
metalog.conf (siehe http://metalog.sourceforge.net/README) mit command
sowas wie mp3blaster bla.mp3 starten.edit: ich werd wohl meinen piepen lassen, wenn pakete da sind, die ich nicht genehmigt hab.
-
volkard schrieb:
und wenn du metalog als logger hast, was ich mal annehmen, in der
metalog.conf (siehe http://metalog.sourceforge.net/README) mit command
sowas wie mp3blaster bla.mp3 starten.edit: ich werd wohl meinen piepen lassen, wenn pakete da sind, die ich nicht genehmigt hab.
[OT]Irgendwie ist metalog ziemlicher Schrott, ich bin mittlerweile auf syslog-ng umgestiegen und finde ihn viel besser als metalog, nur so als kleiner Tip...[/OT]
Das Piepsen würde ich mir nicht antun, da wird man ja verrückt, wenn Du sowas machen möchtest dann vergiss zumindest die limit bzw. limit-burst Angaben nicht!
-
thx. limit und limit-burst hatte ich schon gefunden und angemacht. und nach syslog-ng umsteigen werd ich auch.
-
@alle,
danke für die Informationen!
Ich werde mich am Wochenende mal etwas
näher damit beschäftigen und sehen ob
das so funktioniert wie ich mir
das denke.Bye Peter.