Results 1 to 14 of 14

Thread: iptables Konfiguration für openvpn (/usr/local/sbin/post-firewall)

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jan 2010
    Location
    Frankfurt
    Posts
    12

    iptables Konfiguration für openvpn (/usr/local/sbin/post-firewall)

    Hallo,

    scheinbar werden meine Firewallregeln bei einem Systemstart nicht richtig verarbeitet.
    Habe einen WL500gPv2 mit 1.9.2.7-d-r1000 nach dem Howto von wengi eingerichtet und openvpn installiert. Wenn ich nun die iptables in /usr/local/sbin/post-firewall eintrage, klappt die vpn Verbindung nicht. Lasse ich die "post-firewall"-Datei aber leer und führe meine Regeln nach einem Neustart "per Hand" aus (gleiche Datei in anderem Verzeichnis), dann gehts.
    Kann es vielleicht sein, dass die angehängte USB-Festplatte etwas mit Verzögerung hochfährt und das System noch nicht vollen Zugriff auf alle Dteien hat? Zumindest dem Geräusch nach zu urteilen kommt die Festplatte etwas später.

    Vielen Dank im voraus für Eure Hilfe.
    hornau
    Last edited by akbor; 18-03-2010 at 17:18. Reason: Titel angepasst

  2. #2
    Wenn es darum geht, die iptables zu verändern, ist die post-firewall die richtige Stelle. An der Stelle brauchst du aber noch keinen Zugriff auf die Platte, wozu auch?

    Wenn du irgendetwas von der Platte starten willst, dafür gibt es die /usr/local/sbin/post-mount.

    Oder noch besser, ein Startscript unter /opt/etc/init.d/, so starten auch sonst alle Dienste in der Wengis Anleitung.

    Gruß

    Robert
    ISP: TV Cable 50/5 Mbit
    Modem: Arris Touchstone TM822S
    "NAS": 1000 GB 2.5" HDD, EXT4, (USB @ RT-AC87U)
    Router: Asus RT-AC87U 380.68 (Merlin build), vsftpd, Samba3, NFS, Transmission, PyLoad...)
    Clients: mittlerweile unzählige...

  3. #3
    Join Date
    Jan 2010
    Location
    Frankfurt
    Posts
    12
    Hallo Robert,

    vielen Dank für Deine Antwort. Eigentlich geht es mir darum, openvpn zum Laufen zu bringen. Der startet auch mit /opt/etc/init.d/*S20openvpn .

    Wenn ich nun meine Firewallregeln in /usr/local/sbin/*post-firewall eintrage:
    Code:
    #!/bin/sh
    # Deleting this rule temporarily and add it again in the end
    iptables -D INPUT -j DROP
    
    # SSH access from WAN:
    #iptables -A INPUT -m tcp -p tcp --dport 51901 -j ACCEPT
    
    # Webserver access from WAN:
    #iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    #iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    
    # OpenVPN access from WAN
    iptables -A INPUT -p udp --dport 1234 -j ACCEPT
    iptables -t nat -A PREROUTING -i vlan1 -p udp --dport 1234 -j DNAT --to-destination $4:1234
    # Allow direct connections between VPN-Clients and Router
    iptables -A INPUT -i tun+ -j ACCEPT
    iptables -A OUTPUT -o tun+ -j ACCEPT
    # Allow connections from VPN-Clients to LAN-Clients
    iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o br0 -j MASQUERADE
    # Allow connections from LAN-Clients to VPN-Clients
    iptables -I FORWARD -i tun+ -o br0 -s 10.8.0.0/24 -j ACCEPT
    iptables -I FORWARD -i br0 -o tun+ -s 192.168.1.0/24 -j ACCEPT
    # Allow forwarding to/from VPN-Clients (needed at least for ping)
    iptables -A FORWARD -i tun+ -j ACCEPT
    iptables -A FORWARD -o tun+ -j ACCEPT
    # Allow VPN-clients to tunnel internet traffic through VPN-Server
    iptables -I FORWARD -i tun+ -o vlan1 -s 10.8.0.0/24 -j ACCEPT
    
    # Drop all other input
    iptables -A INPUT -j DROP
    zeigt mir das WIF nach dem reboot folgendes Portforwarding an:
    Code:
    Destination     Proto.  Port Range  Redirect to
    all             UDP     1234        192.168.1.1
    Und ich kann das vpn nicht aufbauen.

    Wenn ich alternativ /usr/local/sbin/*post-firewall leer lasse und nach dem reboot die Regeln manuell ausführe, funktioniert der Aufbau des vpn. Im WIF ist dann das Portforwarding
    Code:
    Destination     Proto.  Port Range  Redirect to
    all             UDP     1234        0.0.0.0
    eingetragen.

    Ich habe mir daraufhin mal die Bootscripte in /usr/local/sbin/ angeschaut und in alle eine Zeile z. B.
    Code:
    echo "post-firewall" >> /tmp/start
    eingetragen mit dem Ergebnis in /tmp/start:
    Code:
    post-firewall
    post-boot
    post-firewall
    pre-mount
    post-mount
    /usr/local/sbin/post-firewall wird scheinbar zweimal ausgeführt?
    Gibt es eine Datei, aus der ich entnehmen kann, wann die Startscripte verarbeitet werden?

    Auch habe ich festgestellt, dass die Routingtabelle erst nach Ausführung von /usr/local/sbin/post-mount vollständig aufgebaut ist. Wird dann die Variable $4 in
    Code:
    iptables -t nat -A PREROUTING -i vlan1 -p udp --dport 1234 -j DNAT --to-destination $4:1234
    nochmal anders belegt?

    Ich habe nun meine Firewallregeln an /usr/local/sbin/post-mount angehängt und jetzt geht es. Ist aber irgendwie nicht im Sinne des Erfinders, glaube ich...

    Grüße
    hornau

  4. #4
    Eine etwas banale Frage, bitte nicht sauer sein, aber ist die /usr/local/sbin/post-firewall auch ausführbar?

    Quote Originally Posted by hornau View Post
    Gibt es eine Datei, aus der ich entnehmen kann, wann die Startscripte verarbeitet werden?
    Da geht z.B. indem du aus dem jeweiligen Script folgendes machst:

    date > /tmp/post-firewal-executed

    oder so ähnlich

    Gruß

    Robert
    Last edited by akbor; 14-03-2010 at 16:20.
    ISP: TV Cable 50/5 Mbit
    Modem: Arris Touchstone TM822S
    "NAS": 1000 GB 2.5" HDD, EXT4, (USB @ RT-AC87U)
    Router: Asus RT-AC87U 380.68 (Merlin build), vsftpd, Samba3, NFS, Transmission, PyLoad...)
    Clients: mittlerweile unzählige...

  5. #5
    Join Date
    Jan 2010
    Location
    Frankfurt
    Posts
    12
    Ja, ausführbar ist die post-firewall schon. ls in /usr/local/sbin ergibt
    Code:
    total 24
    drwxr-xr-x 2 admin root  160 Jan  1  2000 .
    drwxr-xr-x 6 admin root  140 Jan  1  2000 ..
    -rwxr-xr-x 1 admin root   90 Mar 14 13:35 post-boot
    -rwxr-xr-x 1 admin root   45 Mar 14 14:18 post-firewall
    -rwxr-xr-x 1 admin root 1368 Mar 14 14:17 post-mount
    -rwxr-xr-x 1 admin root   40 Mar 14 14:23 pre-boot
    -rwxr-xr-x 1 admin root  252 Mar 14 13:40 pre-mount
    -rwxr-xr-x 1 admin root  170 Jan  2 23:34 pre-shutdown
    Wenn ich in jedes Startscript am Anfang und am Ende ein "date" einfüge, kommt das heraus (Die Firewall-Regeln habe ich wieder in "post-firewall" eingestellt.):
    Code:
    post-firewall started:
    Thu Jan  1 01:00:05 MEZ 1970
    post-firewall executed:
    Thu Jan  1 01:00:05 MEZ 1970
    post-boot started:
    Thu Jan  1 01:00:06 MEZ 1970
    post-firewall started:
    Sun Mar 14 18:19:29 MESZ 2010
    post-boot executed:
    Sun Mar 14 18:19:29 MESZ 2010
    post-firewall executed:
    Sun Mar 14 18:19:29 MESZ 2010
    pre-mount started:
    Sun Mar 14 18:19:38 MESZ 2010
    pre-mount executed:
    Sun Mar 14 18:19:39 MESZ 2010
    post-mount started:
    Sun Mar 14 18:19:39 MESZ 2010
    post-mount executed:
    Sun Mar 14 18:19:44 MESZ 2010
    Zumindest nicht in Reihenfolge.

    Ich meinte mit meiner Frage eigentlich: ob es eine Datei gibt, die die unter /usr/local/sbin abgelegten Startscripte aufruft und wo die zu finden ist?

    Grüße
    hornau

  6. #6
    Join Date
    Jul 2007
    Location
    Austria
    Posts
    1,336
    Quote Originally Posted by hornau View Post
    Ich meinte mit meiner Frage eigentlich: ob es eine Datei gibt, die die unter /usr/local/sbin abgelegten Startscripte aufruft und wo die zu finden ist?
    Ja, diese Datei gibt es - kann aber nicht so einfach geändert werden.
    Sehe dir dazu die Datei /linuxrc letzte Zeile an. Dort wird zum Schluss die /sbin/init aufgerufen. Das ist wohl die Datei, welche du suchst. Leider kann diese Datei nicht geändert werden, dennoch sollte es Abhilfe geben.

    Zuerst würde ich folgendes versuchen: Jeder Aufruf von irgend einem Befehl unbedingt mit voller Pfadangabe! Am Beginn vom Booten sind die Pfade noch nicht gesetzt und deshalb kann es passieren, dass diese Befehle einfach ignoriert werden. Genau so würde ich auch den Versuch mit Date ergänzen.

    Falls das alles nichts hilft, würde ich die gesamte Firmware auf den Flash-Stick oder HDD incl. /opt geben. Dadurch wird das gesamte Verzeichnis writeable. Das ist für verschiedene Einstellungen und Versuche sehr nützlich.
    Die Anleitung dazu von hier:
    http://oleg.wl500g.info/
    Speziel die Section Root filesystem on external HDD, sowie
    customizing firewall sind für dich interessant.

    Ist auch die linuxrc auf der HDD kannst du ja deine eigenen Dinge starten.

    Hoffe es hilft, denn es ist wahrlich nicht sauber und gut, wenn die Firewall erst nach vollständigem Routerstart funktioniert. Vermutlich hilft jedoch die volle Pfadangabe bei jedem Befehl.

    LG
    Newbiefan
    Last edited by newbiefan; 14-03-2010 at 20:37.
    Alle HowTo's, all howto's

    RT-N16 1.9.2.7-rtn-r3121, Samba, VSFTP, Lightthpd, PHP, Perl, MySQL, Serendipity, Aria2web, HDD 640GB
    RT-N66U, 16GB MicroSD/ 2 Partitions, 2,5" HDD 1TB, running with Merlin's FW and Entware, 16 Mbit A1,
    Netgear DGND 3700V2, QNAP TS119PII 4 TB, QNAP TS209 2 TB Raid1, Backup Synology DS107+ 1 TB, HP CP1515n

  7. #7
    @newbiefan
    Pfadangabe? Welche Pfade meinst du denn? Du hast ja seine post-firewall gesehen, es manipuliert dort nur iptables und sonst ruft er gar nichts auf. Mir ist aufgefallen, dass die Variable $4 (LAN IP, soweit ich mich richtig erinnere) an einer Stelle eingesetzt wird, sonst werden aber alle Interfaces und Adressen "in Klartext" angesprochen. Ist das vielleicht ein Problem? Oder ist es so gewollt? Oder bin ich auf dem falschen Dampfer und habe das Problem nicht verstanden?

    @hornau
    was ist nochmal dein Problem? Bekommst du iptables nicht geändert wie du möchtest (so interpretiere ich zumindest die aktuelle Thread-Überschrift), oder startet dein VPN-Service nicht?

    P.S: bedenke, dass "$4" ausserhalb von post-firewall nicht funktioniert. $4 ist innerhalb der post-firewall die LAN IP, also in deinem Fall vermutlich 192.168.1.1. Ich glaube, genau das ist deine Fehlerquelle!

    P.P.S: deinen Angaben nach werden alle Scripts unter /usr/local/sbin/ richtig ausgeführt.

    Gruß

    Robert
    Last edited by akbor; 14-03-2010 at 21:13.
    ISP: TV Cable 50/5 Mbit
    Modem: Arris Touchstone TM822S
    "NAS": 1000 GB 2.5" HDD, EXT4, (USB @ RT-AC87U)
    Router: Asus RT-AC87U 380.68 (Merlin build), vsftpd, Samba3, NFS, Transmission, PyLoad...)
    Clients: mittlerweile unzählige...

Similar Threads

  1. Asus P5Q Deluxe startet nicht
    By Victor22 in forum German Discussion - Deutsch (DE)
    Replies: 3
    Last Post: 09-02-2010, 10:00
  2. Firefly startet nicht
    By D. Düsentrieb in forum German Discussion - Deutsch (DE)
    Replies: 3
    Last Post: 30-12-2008, 21:19
  3. Cron startet nicht
    By Pay87 in forum German Discussion - Deutsch (DE)
    Replies: 2
    Last Post: 27-11-2008, 12:32
  4. Firewall komplett ausgesperrt
    By Jeremia in forum German Discussion - Deutsch (DE)
    Replies: 1
    Last Post: 09-09-2007, 06:40
  5. Samba 3 startet nicht
    By mackd in forum German Discussion - Deutsch (DE)
    Replies: 8
    Last Post: 24-06-2007, 12:27

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •