Port per Skript weiterleiten

  • 'nabend,
    Ich sitze mit meinem Pi hinter einem OpenWRT Router und möchte gerne per Skript auf dem Router eine Portweiterleitung öffnen. Per SSH Skripte auf dem Router ausführen kann der Pi schon. Ich frage mich jetzt, wie es am einfachsten möglich ist, Ports zu öffnen und vor allem, diese auch irgendwann wieder zu schließen! Eine Möglichkeit bei meinem Router ist wohl, etwas in die /etc/firewall.user einzutragen und die firewall zu restarten. Das hab ich mir kurz überlegt, aber wie krieg ich den Eintrag da wieder raus, ohne die komplette Datei zu leeren? :-/ Die Alternative, die mir glaube ich besser gefallen würde, wäre, das mittels UPnP zu regeln (auf meinem Router läuft miniupnp). Zum Bespiel für Skype und Steam funktioniert das auch wunderbar mit der dynamischen Portfreigabe. Gibt es eine Möglichkeit, vom Pi aus dem Router über UPnP mitzuteilen, dass er bitte mal einen Port aufmachen soll? Und falls ja, wie lange bleibt der dann offen?
    Vielen Dank im Voraus


  • Eine Möglichkeit bei meinem Router ist wohl, etwas in die /etc/firewall.user einzutragen und die firewall zu restarten. Das hab ich mir kurz überlegt, aber wie krieg ich den Eintrag da wieder raus, ohne die komplette Datei zu leeren? :-/

    Du könntest doch einfach eine zweite firewall.user anlegen und dann diese einfach entsprechend ersetzten.
    Also eine mit aktivierter Portweiterleitung und eine ohne. Und dann diese wie du's brauchst mit der /etc/firewall.user austauschen(einfach drüber kopieren).

    Sonst je nach Aufbau der Konfig vielleicht mit "grep -v" oder "sed" oder ...

    Von upnp hab ich ehrlich gesagt keine Ahnung. Man hört nur immer wieder von diversen Sicherheitslücken. :)

    DON'T PANIC!

    Einmal editiert, zuletzt von joh.raspi (21. November 2014 um 17:54)

  • Die Idee mit 2 Dateien gefällt mir eigentlich ganz gut. Ich hab nur ein Problem... Ich komm' mit iptables nicht so gut klar. Was meigrafd gepostet hat, kenne ich schon. Leider ist das die UCI Syntax und die nimmt er nur in der /etc/config/firewall und nicht in included Dateien. Das heißt, ich müsste den Krempel ins passende Format bringen (iptables Syntax). Hab n bisschen damit rumprobiert, aber nix hingekriegt :(

  • Wieso erstellst du dir nicht einfach eine Kopie der Konfigurationsdatei und überschreibst die aktive dann bei Bedarf?

    /etc/config/firewall.normal
    /etc/config/firewall.special

    Letztere änderst du so ab das dort deine temporäre Weiterleitung eingetragen ist und dein SSH-Script kopiert dann zum öffnen des Ports die Datei /etc/config/firewall.special nach /etc/config/firewall ... Und anschließend "/etc/init.d/firewall restart" nicht vergessen.
    Wenn du die Weiterleitung wieder deaktivieren willst kopierst du /etc/config/firewall.normal nach /etc/config/firewall

  • Ich hab mit dem UCI grad noch was schönes gefunden. Ich brauch gar keine weiteren Dateien zu erstellen. Ich kann einfach die Regel aktivieren und deaktivieren. Hab die Regel jetzt auf die erste Position geschoben, dass auch keine zwischendrin gelöscht wird. Dann geht das ganz einfach mit folgenden Befehlen :)

    uci set firewall.@redirect[0].enabled=1
    uci commit firewall
    /etc/init.d/firewall restart

    Einmal editiert, zuletzt von KrawallKurt (21. November 2014 um 19:09)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!