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.



  • @volkard,

    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 QUEUE

    Mit 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.


Anmelden zum Antworten