[Problem] MASQURADE nach OPENVPN lässt sich nicht automatisieren (7390)

tcbox

Neuer User
Mitglied seit
7 Aug 2011
Beiträge
73
Punkte für Reaktionen
0
Punkte
0
Hallo Freetz-Gemeinde,

ich hatte vor, bei onlinechanged ein VPN aufzubauen und anschliessend die Routen und das MASQUERADE zu setzen.

Dazu hatte ich in /var/tmp/flash/onlingechanged ein kleines Script start_vpn.sh aufrufen lassen:

Code:
#!/bin/sh
NAME=blahfasel.com.
for IP in $(nslookup $NAME | sed -n "/$NAME/,$ p" | sed -n "/Address/ s/Address [0-9]: \([0-9\.]*\).*/\1/ p"); do
      route add $IP dev dsl
done
openvpn --config /var/tmp/flash/openvpn/vpn1.conf
route add -net 0.0.0.0/1 dev tun0
route add -net 128.0.0.0/1 dev tun0
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Leider wird nur das VPN gestartet, aber die Routen werden nicht gesetzt und auch das MASQUERADE nicht ausgeführt.

Wenn ich Routen und MASQUERADE danach manuell setze, geht es. Ich muss das leider einbauen, da OpenVPN immer meldet:

Code:
NOTE: unable to redirect default gateway -- Cannot read current default gateway from system

Wenn ich openvpn manuell starte, bleibt es auch immer nach:
Code:
Initialization Sequence Completed
stehen und kehrt nicht mehr zur Eingabe zurück.

Mache ich etwas falsch oder ist es ein Problem vom System?

Vielen Dank für Euer Feedback.
 
Versuche mal, in deine OpenVPN-Config "daemon" mit aufzunehmen oder "--daemon" beim Aufruf anzugeben, dann wird das im Hintergrund gestartet und die nachfolgenden Befehle werden auch ausgeführt.
Eventuell vor den folgenden Befehlen noch mit "sleep <X>" X Sekunden auf den Aufbau warten, oder diese Dinge in "up-/down"-Skripte für das OpenVPN umwandeln...
 
Wenn openvpn beim Aufruf von Hand nicht beendet wird, ist doch nachvollziehbar, dass dann auch im Skript die Anweisungen dahinter nicht ausgeführt werden, was auch noch andere Nebeneffekte haben wird.

Wenn Du jedes mal iptables im onlinechanged aufrufst, hast Du irgendwann sehr viele Regeln angelegt.
 
Hi, danke erstmal.

Ok, es muss als daemon laufen. Soweit verstanden.

Habe mal ein startscript zum Testen:
Code:
#!/bin/sh
NAME=chpro.vpnswiss.com.
for IP in $(nslookup $NAME | sed -n "/$NAME/,$ p" | sed -n "/Address/ s/Address
  route add $IP dev dsl
done
openvpn --config /var/tmp/flash/openvpn/vpnswiss.conf --daemon
sleep 5
route add -net 0.0.0.0/1 dev tun0
route add -net 128.0.0.0/1 dev tun0

Danach erhalte ich folgende Route:
Code:
root@fritz:/var/tmp/flash/openvpn# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
84.187.89.28    *               255.255.255.255 UH    2      0        0 dsl
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
193.158.138.49  *               255.255.255.255 UH    4      0        0 dsl
80.74.157.215   *               255.255.255.255 UH    0      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
94.231.84.81    *               255.255.255.255 UH    0      0        0 dsl
80.74.157.216   *               255.255.255.255 UH    0      0        0 dsl
94.231.84.80    *               255.255.255.255 UH    0      0        0 dsl
94.231.84.82    *               255.255.255.255 UH    0      0        0 dsl
217.6.167.160   *               255.255.255.224 U     4      0        0 dsl
87.140.255.0    *               255.255.255.128 U     4      0        0 dsl
192.168.178.0   *               255.255.255.0   U     0      0        0 lan
192.168.179.0   *               255.255.255.0   U     0      0        0 guest
212.184.168.0   *               255.255.255.0   U     4      0        0 dsl
193.158.34.0    *               255.255.254.0   U     4      0        0 dsl
91.8.96.0       *               255.255.224.0   U     4      0        0 dsl
87.141.128.0    *               255.255.128.0   U     4      0        0 dsl
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
10.203.0.0      *               255.255.0.0     U     0      0        0 tun0
default         *               128.0.0.0       U     0      0        0 tun0
128.0.0.0       *               128.0.0.0       U     0      0        0 tun0
default         *               0.0.0.0         U     2      0        0 dsl

Wenn ich dann einen traceroute mache, löst der den Namen auf und geht nicht.
Code:
root@fritz:/var/tmp/flash/openvpn# traceroute www.odn.de
traceroute to www.odn.de (86.109.254.40), 30 hops max, 38 byte packets
 1  *  *  *
 2  *  *  *
 3  *

Nach einigen Sekunden fliegen alle tun0 raus und alles geht ohne vpn.
Code:
root@fritz:/var/tmp/flash/openvpn# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
84.187.89.28    *               255.255.255.255 UH    2      0        0 dsl
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
193.158.138.49  *               255.255.255.255 UH    4      0        0 dsl
80.74.157.215   *               255.255.255.255 UH    0      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
94.231.84.81    *               255.255.255.255 UH    0      0        0 dsl
80.74.157.216   *               255.255.255.255 UH    0      0        0 dsl
94.231.84.80    *               255.255.255.255 UH    0      0        0 dsl
94.231.84.82    *               255.255.255.255 UH    0      0        0 dsl
217.6.167.160   *               255.255.255.224 U     4      0        0 dsl
87.140.255.0    *               255.255.255.128 U     4      0        0 dsl
192.168.178.0   *               255.255.255.0   U     0      0        0 lan
192.168.179.0   *               255.255.255.0   U     0      0        0 guest
212.184.168.0   *               255.255.255.0   U     4      0        0 dsl
193.158.34.0    *               255.255.254.0   U     4      0        0 dsl
91.8.96.0       *               255.255.224.0   U     4      0        0 dsl
87.141.128.0    *               255.255.128.0   U     4      0        0 dsl
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         *               0.0.0.0         U     2      0        0 dsl
root@fritz:/var/tmp/flash/openvpn# traceroute www.odn.de
traceroute to www.odn.de (86.109.254.40), 30 hops max, 38 byte packets
 1  217.0.119.14 (217.0.119.14)  17.381 ms  17.544 ms  17.140 ms
 2  87.190.164.46 (87.190.164.46)  18.044 ms  20.430 ms  19.367 ms
 3  217.239.41.42 (217.239.41.42)  21.709 ms  217.239.41.110 (217.239.41.110)  20.657 ms  217.239.41.118 (217.239.41.118)  21.374 ms
 4  62.157.250.78 (62.157.250.78)  27.298 ms  27.425 ms  27.379 ms
 5  NUE-2-eth110.de.lambdanet.net (217.71.96.170)  28.023 ms  27.405 ms  27.483 ms
 6  ODN-NUE.de.lambdanet.net (217.71.108.110)  27.474 ms  27.677 ms  27.488 ms
 7  c4506-2.nbg-1.odn.net (212.34.160.71)  28.229 ms  28.080 ms  28.417 ms
 8  www.odn.de (86.109.254.40)  28.164 ms  27.918 ms  28.129 ms

Wo habe ich denn meinen Denkfehler? Ohne --daemon ist es ja über den Tunnel gegangen.

Danke nochmal.
 
Das sieht eher so aus, als ob OpenVPN nicht startet (oder wieder abbricht). Nimm einen Befehl zum Loggen auf ("--log /var/tmp/ovpn.log") um das zu sehen.
Ich vermute mal, so würde auch der "alte" Befehl (ohne das daemon) nicht laufen...
 
Hallo Jörg,
habe ein HW-Defekt an der Box. Eine Buchse hat einen Wackelkontakt und verursacht Probleme.
Sobald das Repa ist, spiele ich nochmal das Image drauf und teste was Du mir aufgetragen hast.
Mal sehen wie lange es dauert, bis ich die Box wieder habe :(
Danke erstmal.
 
Zuletzt bearbeitet:
Hallo,

ich habe die defekte Box getauscht bekommen. Anschliessend alles sauber
mit Freetz-1.2 erstellt. NAT ging nur, wenn ich beim Erstellen nicht Remove
AVM-VPN auswähle.

Nun bleibt auch alles stabil. Ich betreibe es mit der 84.04.91freetz-1.2-stable.

Nun noch eine Frage. Gibt es die Möglichkeit der Box zu sagen, nach einem
erfolgten Reboot nochmal einen reconnect durchzuführen?

Danke Euch :)
 
Code:
killall -SIGUSR1 openvpn
in Dein onlinechanged-Skript einzufügen - evtl. mit 'nem sleep vorher - könnte es bringen ...
 
Hi,

danke Dir. Werde ich mal ausprobieren.

Hab den killall bisher im Stop. Weil er so schneller wieder On war.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.