OpenVPN: Konfigurationsdateien automatisch wechseln

XAF

Cadet 2nd Year
Registriert
Aug. 2015
Beiträge
31
Hi. Ich verwende den Raspberry PI 2 als VPN Router mit OpenVPN und Raspbian.

Ist es möglich, dass die Konfigurationsdateien automatisch "durchgewechselt" werden?

Ich möchte, dass bei einem Verbindungsabbruch nachdem Zufallsprinzip einfach eine andere .opvn-Datei verwendet wird und sich nicht erneut mit der alten .ovpn verbunden wird. Im /etc/openvpn/ Ordner befinden sich bei mir verschiedene .ovpn Dateien.
 
Und warum genau? Es gibt bei OpenVPN die Möglichkeit, mehrere Server anzugeben und diese dann per Zufall zu verbinden.

remote-random
remote a.b.c.d x
remote b.c.d.e y

Ansonsten könntest du nen cronjob mit einem Script einrichten, das a) den Tunnel prüft und b) gegebenenfalls wiederherstellt (mit der nächsten Konfig)
 
Raijin schrieb:
Wenn die Verbindung abbricht, ist der Server meistens gerade überlastet.
Dann möchte ich einfach zur Sicherheit auf einen anderen gehen. Wenn ich dies nicht mache, bricht mir die Verbindung einfach zu oft ab.

Raijin schrieb:
Es gibt bei OpenVPN die Möglichkeit, mehrere Server anzugeben und diese dann per Zufall zu verbinden.

Wie mache ich das bitte? Also alle .ovpn zu einer zusammenführen und dann den Befehl --remote-random verwenden? Bin mir noch nicht sicher wie das aussehen soll.

Meine .ovpn Dateien sind nach diesem Schema aufgebaut:
Code:
client
dev tun
proto udp
remote hamburg.name.com 443
resolv-retry infinite
nobind
persist-key
persist-tun
persist-remote-ip
ca ca.hamburg.name.com.crt
tls-remote hamburg.name.com
auth-user-pass user_pass.txt
comp-lzo
verb 3
auth SHA256
cipher AES-256-CBC
keysize 256
tls-cipher DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:AES256-SHA
script-security 2
keepalive 10 120
auth-retry interact
Das mit dem Cronjob wäre wohl die bessere Lösung, allerdings habe ich als Laie leider auch davon keinen Plan... :)
 
Du fügst einfach nach Zeile 4 weitere Server mit demselben Befehl zu. Mit "remote-random" wählt OpenVPN beim Verbindungsaufbau dann per Zufall einen aus dieser Liste.


Code:
[..]
remote-random
remote vpnserver1.com 1234
remote vpnserver2.com 2345
remote vpnserver3.com 3456
[..]

Wie gut das als Failover funktioniert weiß ich aber offen gestanden nicht, weil ich die Funktion so nicht nutze. Probier es aus ob es deinen Wünschen entspricht. Falls nicht, kann man das eben per Script lösen.


*edit:
Ich hab mal in die Doku geschaut:

An OpenVPN client will try each connection profile sequentially until it achieves a successful connection.

--remote-random can be used to initially "scramble" the connection list.
Quelle

Das deutet darauf hin, dass die Liste nur einmalig beim Start gemischt wird, nicht aber bei einem Verbindungsverlust. Allerdings werden die Server so oder so nacheinander abgeklappert bis eine Verbindung zustande kommt. Ob das deinen Ansprüchen genügt, musst du wissen. Probieren geht über studieren.


*edit2:
Evtl. musst du das Zeitfenster für keepalive kleiner stellen, wenn der Reconnect zu lange dauert:
(zB alle 10 Sekunden ein Ping, bei 60 Sekunden ohne Antwort --> reconnect).

keepalive 10 60
 
Zuletzt bearbeitet:
Vielen Dank für deinen ausführlichen Post schon einmal, teste die Konfiguration spätestens morgen - setze das gerade noch einmal neu auf.

Was kann man von dieser Lösung halten?

/etc/default/openvpn Originaldatei ist

Code:
# This is the configuration file for /etc/init.d/openvpn

#
# Start only these VPNs automatically via init script.
# Allowed values are "all", "none" or space separated list of
# names of the VPNs. If empty, "all" is assumed.
# The VPN name refers to the VPN configutation file name.
# i.e. "home" would be /etc/openvpn/home.conf
#
#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office"
#
# Refresh interval (in seconds) of default status files
# located in /var/run/openvpn.$NAME.status
# Defaults to 10, 0 disables status file generation
#
#STATUSREFRESH=10
#STATUSREFRESH=0
# Optional arguments to openvpn's command line
OPTARGS=""
#
# If you need openvpn running after sendsigs, i.e.
# to let umountnfs work over the vpn, set OMIT_SENDSIGS
# to 1 and include umountnfs as Required-Stop: in openvpn's
# init.d script (remember to run insserv after that)
#
OMIT_SENDSIGS=0

und daran einfach folgendes hängen:

Code:
ONFIG_DIR=/etc/openvpn/mein pfad
[...]
test -d $CONFIG_DIR || exit 0

# Helper array and selector variable to pick random element
returnRandomVPN (){  
    CHOSEN=`find $CONFIG_DIR -maxdepth 1 -type f | shuf -n1 | grep conf`
    CHOSEN=`basename $CHOSEN .conf`
    # If empty, choose new one
    if [ ! "$CHOSEN" ]; then
        returnRandomVPN
    else
        echo $CHOSEN
    fi
}

# Source defaults file; edit that file to configure this script.
AUTOSTART=`returnRandomVPN`  
[...]

Das Script habe ich hier gefunden. Könnte das nicht auch funktionieren? Bin mir gerade nicht ganz sicher und kann's nicht testen, aber sollte in der Theorie ja eigentlich.
Ergänzung ()

Irgendwas mache ich nun ganz falsch, jetzt bekomme ich nicht mal mehr eine Verbindung zum testen...


Inhalt von /etc/network/interfaces - verwende kein WLAN, nur einen Ethernet zu USB Adapter (der wird auch erkannt und geht).

auto lo
iface lo inet loopback

# auto eth0
iface eth0 inet static
address 192.168.2.101
netmask 255.255.255.0
subnet 255.255.255.0
gateway 192.168.2.255
dns-search local
dns-nameservers 4.2.2.5 4.2.2.6

auto eth0:0
iface eth0:0 inet static
address 192.168.2.102

# auto eth1
iface eth1 inet static
address 192.168.2.104
netmask 255.255.255.0
subnet 255.255.255.0
gateway 192.168.2.255
dns-search local
dns-nameservers 4.2.2.5 4.2.2.6

auto eth1:0
iface eth1:0 inet static
address 192.168.2.105

# auto wlan0
# allow-hotplug wlan0
# iface wlan0 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

# auto wlan1
# allow-hotplug wlan1
# iface wlan1 inet manual
# wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

Die IPs werden aber nicht korrekt zugeordnet im Speedport W 724V Typ B
- auch nicht nach diversen Neustart beider Geräte:

Der interne LAN Port wird als 192.168.2.105 erkannt, sollte aber eigentlich 192.168.2.101 sein.
Der Adapter wird als 192.168.2.106 erkannt, sollte aber eigentlich 192.168.2.104 sein.

DHCP ist eingeschaltet.

Außerdem erhalte ich diese Meldung:

Code:
pi@raspberrypivpn /etc/openvpn/ipvanish $ sudo /etc/init.d/networking restart
[warn] Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces ... (warning).
[ ok ] Reconfiguring network interfaces...done.

Eine OpenVPN Verbindung bekomme ich nicht:

Code:
pi@raspberrypivpn /etc/openvpn/ipvanish $ openvpn ipvanish-HU-Budapest-bud-c01.ovpn
Tue Sep 15 04:53:45 2015 OpenVPN 2.2.1 arm-linux-gnueabihf [SSL] [LZO2] [EPOLL] [PKCS11] [eurephia] [MH] [PF_INET6] [IPv6 payload 20110424-2 (2.2RC2)] built on Dec  1 2014
Tue Sep 15 04:53:45 2015 WARNING: file 'user_pass.txt' is group or others accessible
Tue Sep 15 04:53:45 2015 WARNING: Make sure you understand the semantics of --tls-remote before using it (see the man page).
Tue Sep 15 04:53:45 2015 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Tue Sep 15 04:53:45 2015 LZO compression initialized
Tue Sep 15 04:53:45 2015 Control Channel MTU parms [ L:1570 D:138 EF:38 EB:0 ET:0 EL:0 ]
Tue Sep 15 04:53:45 2015 Socket Buffers: R=[163840->131072] S=[163840->131072]
Tue Sep 15 04:53:45 2015 Data Channel MTU parms [ L:1570 D:1450 EF:70 EB:135 ET:0 EL:0 AF:3/1 ]
Tue Sep 15 04:53:45 2015 Local Options hash (VER=V4): [I]'gelöscht'[/I]
Tue Sep 15 04:53:45 2015 Expected Remote Options hash (VER=V4): [I]'gelöscht'[/I]
Tue Sep 15 04:53:45 2015 UDPv4 link local: [undef]
Tue Sep 15 04:53:45 2015 UDPv4 link remote: [AF_INET]79.172.193.16:443
Tue Sep 15 04:53:45 2015 TLS: Initial packet from [AF_INET]79.172.193.16:443, sid=[I]gelöscht gelöscht[/I]
Tue Sep 15 04:53:45 2015 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Tue Sep 15 04:53:45 2015 VERIFY OK: depth=1, /C=US/ST=FL/L=Winter_Park/O=IPVanish/OU=IPVanish_VPN/CN=IPVanish_CA/emailAddress=support@ipvanish.com
Tue Sep 15 04:53:45 2015 VERIFY X509NAME OK: /C=US/ST=FL/L=Winter_Park/O=IPVanish/OU=IPVanish_VPN/CN=bud-c01.ipvanish.com/emailAddress=support@ipvanish.com
Tue Sep 15 04:53:45 2015 VERIFY OK: depth=0, /C=US/ST=FL/L=Winter_Park/O=IPVanish/OU=IPVanish_VPN/CN=bud-c01.ipvanish.com/emailAddress=support@ipvanish.com
Tue Sep 15 04:53:46 2015 Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Tue Sep 15 04:53:46 2015 Data Channel Encrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Tue Sep 15 04:53:46 2015 Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key
Tue Sep 15 04:53:46 2015 Data Channel Decrypt: Using 256 bit message hash 'SHA256' for HMAC authentication
Tue Sep 15 04:53:46 2015 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Tue Sep 15 04:53:46 2015 [bud-c01.ipvanish.com] Peer Connection Initiated with [AF_INET]79.172.193.16:443
Tue Sep 15 04:53:48 2015 SENT CONTROL [bud-c01.ipvanish.com]: 'PUSH_REQUEST' (status=1)
Tue Sep 15 04:53:49 2015 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 198.18.0.1,dhcp-option DNS 198.18.0.2,rcvbuf 262144,explicit-exit-notify 5,route-gateway 172.20.32.1,topology subnet,ping 20,ping-restart 40,ifconfig 172.20.33.119 255.255.252.0'
Tue Sep 15 04:53:49 2015 OPTIONS IMPORT: timers and/or timeouts modified
Tue Sep 15 04:53:49 2015 OPTIONS IMPORT: explicit notify parm(s) modified
Tue Sep 15 04:53:49 2015 OPTIONS IMPORT: --sndbuf/--rcvbuf options modified
Tue Sep 15 04:53:49 2015 Socket Buffers: R=[131072->327680] S=[131072->131072]
Tue Sep 15 04:53:49 2015 OPTIONS IMPORT: --ifconfig/up options modified
Tue Sep 15 04:53:49 2015 OPTIONS IMPORT: route options modified
Tue Sep 15 04:53:49 2015 OPTIONS IMPORT: route-related options modified
Tue Sep 15 04:53:49 2015 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Tue Sep 15 04:53:49 2015 ROUTE default_gateway=192.168.2.11
Tue Sep 15 04:53:49 2015 Note: Cannot ioctl TUNSETIFF tun: Operation not permitted (errno=1)
Tue Sep 15 04:53:49 2015 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Sep 15 04:53:49 2015 /sbin/ifconfig  172.20.33.119 netmask 255.255.252.0 mtu 1500 broadcast 172.20.35.255
SIOCSIFADDR: Operation not permitted
: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: Operation not permitted
SIOCSIFMTU: Operation not permitted
SIOCSIFBRDADDR: Operation not permitted
: ERROR while getting interface flags: No such device
Tue Sep 15 04:53:49 2015 Linux ifconfig failed: external program exited with error status: 255
Tue Sep 15 04:53:49 2015 Exiting

Ob ich die originale /etc/default/openvpn oder die modifizierte Version (siehe oben) verwende, ist dabei egal.

Mir ist klar das meine Netzwerkconfig zu den Fehler führt, aber weiß nicht ganz warum...
Netmask, MTU und Broadcast muss man doch eigentlich setzen?

Mir ist auch nicht ganz klar warum die IP die mit *.106 endet doppelt zugeordnet wird...

Code:
pi@raspberrypivpn ~ $ ifconfig
eth0      Link encap:Ethernet  Hardware Adresse [I]gelöscht[/I]
          inet Adresse:192.168.2.[B]106[/B]  Bcast:192.168.2.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:1967 errors:0 dropped:0 overruns:0 frame:0
          TX packets:771 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:174192 (170.1 KiB)  TX bytes:187571 (183.1 KiB)

eth1      Link encap:Ethernet  Hardware Adresse [I]gelöscht[/I]
          inet Adresse:192.168.2.[B]106[/B]  Bcast:192.168.2.255  Maske:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:1363 errors:0 dropped:0 overruns:0 frame:0
          TX packets:97 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:94062 (91.8 KiB)  TX bytes:7587 (7.4 KiB)

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metrik:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:72 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:6288 (6.1 KiB)  TX bytes:6288 (6.1 KiB)

Weil das gleiche Gerät vorübergehend 2 mal über die beiden Netzwerkstellen mit dem Speedport verbunden ist?
 
Zuletzt bearbeitet:
Das Skript sieht ganz ok aus. Auf den ersten Blick spuckt die random-Funktion eine .ovpn-Datei per Zufall aus und das Init-Skript von OpenVPN startet anschließend dieses VPN. Das heißt man kann vermutlich einen Zufallswechsel erzwingen, wenn man /etc/init.d/openvpn restart ausführt. Falls offen wird der Tunnel geschlossen und per Random wieder gestartet. Das ist aber nur eine Vermutung ohne den Rest des Skripts gesehen zu haben.

/etc/init.d/networking ist veraltet. Mit ifdown eth0 bzw. ifup eth0 kannst du die Interfaces manuell neustarten. Wenn du via SSH drin bist, bricht nach dem ifdown eth0 natürlich die Verbindung zusammen. Daher lieber gleich so:

sudo ifdown eth0 && sudo ifup eth0

Für jedes Interface muss man das manuell machen. Um sich Arbeit zu sparen kann man das selbstverständlich auch skripten.

Bei deiner IP-Konfiguration ist nicht so ganz klar welchen Weg die Daten nun nehmen. Du hast 2 Interfaces im selben Subnetz und jeweils auch ein Default Gateway konfiguriert. Welchen Weg nimmt nun ein Ping auf den Router? Es gibt zwei Standardrouten zum Speedport, einmal über den internen LAN-Adapter eth0, einmal über den USB-Adapter eth1. Was genau bezweckst du damit? Der Sinn erschließt sich mir nicht so ganz..

Vorübergehend ist da nix, du hast die IPs statisch konfiguriert und dann ist der PI nicht vorübergehend, sondern dauerhaft über zwei Interfaces mit dem Speedport verbunden - sofern nicht eine davon geändert wird. Wie gesagt, den Sinn dahinter verstehe ich nicht wirklich. Dass bei ifconfig nu aber beide Interfaces dieselbe IP zugewiesen bekommen obwohl sie statisch konfiguriert ist, kapiere ich gerade auch nicht so recht. Was mir allerdings aufgefallen ist: Was genau tut die Option "subnet 255.255.255.0" im iface Block? Die Option ist mir nicht geläufig, netmask ist die Subnetzmaske, mehr braucht man nicht. Evtl. liegt da der Hund begraben. Die Datei /etc/network/interfaces ist evtl. fehlerhaft und es wird automatisch auf DHCP gewechselt?

sudo ifup --no-act eth0

Damit kannst du testen ob eth0 richtig konfiguriert ist. Falls nicht steht da sowas wie "ifup: file corrupt" oder sowas. Wenn alles ok ist, dann müsste es ungefähr so heißen "ifup: eth0 already up".


Zum OpenVPN-Log: Sobald da irgendwas von "not permitted" steht, denke ich sofort an sudo. Bei einem VPN-Tunnel werden in aller Regel auch neue Routen gesetzt und dafür braucht man entsprechende Rechte.



P.S.: Bitte erkläre mal genauer warum du mit dem USB-LAN-Adapter arbeitest. Was genau möchtest du erreichen? Linux kann soweit ich weiß etwas merkwürdig reagieren, wenn es zwei Interfaces im selben Subnetz hat. Wenn ich mich recht entsinne, muss man in dem Fall auf PBR (PolicyBasedRouting) umsteigen. Für jedes Interface wird eine eigene Routing-Tabelle erstellt und über entsprechende Filterregeln wird dann so oder so geroutet. Ist aber schon länger her, dass ich mich damit beschäftigt habe, also lieber nochmal selbst googlen bzw. darüber nachdenken ob das so überhaupt sinnvoll ist.
 
Zuletzt bearbeitet:
Danke auch für diese Antwort.

Raijin schrieb:
Das ist aber nur eine Vermutung ohne den Rest des Skripts gesehen zu haben.
Laut den Kommentaren wo ich es her ab funktioniert es anscheinend, ich teste es wenn erst einmal alles so läuft. :)

Raijin schrieb:
sudo ifdown eth0 && sudo ifup eth0
Dies kommt gerade bei mir raus:

Code:
pi@raspberrypivpn ~ $ sudo ifdown eth0 && sudo ifup eth0
ifdown: interface eth0 not configured
RTNETLINK answers: File exists
Failed to bring up eth0.
pi@raspberrypivpn ~ $

Raijin schrieb:
Bei deiner IP-Konfiguration ist nicht so ganz klar welchen Weg die Daten nun nehmen. [...] Welchen Weg nimmt nun ein Ping auf den Router?
Stimmt, die ist leider sinnlos wie ich mittlerweile auch festgestellt habe. Habe mich leider an diversen Tutorials bedient, die zum Teil veraltet sind oder einen anderen Lösungsweg als ich verfolgen (siehe bitte unten in diesem Post).

Code:
pi@raspberrypivpn ~ $ ping speedport.ip
PING speedport.ip (192.168.2.11) 56(84) bytes of data.
64 bytes from speedport.ip (192.168.2.11): icmp_req=1 ttl=64 time=0.502 ms
64 bytes from speedport.ip (192.168.2.11): icmp_req=2 ttl=64 time=0.447 ms
64 bytes from speedport.ip (192.168.2.11): icmp_req=3 ttl=64 time=0.475 ms

Code:
pi@raspberrypivpn ~ $ traceroute kim.com
traceroute to kim.com (104.18.36.227), 30 hops max, 60 byte packets
 1  speedport.ip (192.168.2.11)  0.577 ms  0.725 ms  0.804 ms
 2  87.186.224.104 (87.186.224.104)  27.923 ms  32.227 ms  33.750 ms
 3  87.186.202.166 (87.186.202.166)  34.029 ms  33.995 ms  34.038 ms
 4  f-ed5-i.F.DE.NET.DTAG.DE (217.5.95.6)  41.937 ms  42.679 ms  43.180 ms
 5  xe-11-0-1.fra29.ip4.gtt.net (141.136.101.233)  44.480 ms  44.587 ms  44.726 ms
 6  xe-3-2-1.fra61.ip4.gtt.net (89.149.181.238)  44.836 ms  44.655 ms  44.779 ms
 7  ip4.gtt.net (46.33.81.2)  44.879 ms  44.030 ms  37.529 ms
 8  104.18.36.227 (104.18.36.227)  37.675 ms  37.798 ms speedport.ip (192.168.2.11)  1.744 ms

Raijin schrieb:
Was genau tut die Option "subnet 255.255.255.0" im iface Block? --- [...] Die Datei /etc/network/interfaces ist evtl. fehlerhaft
Aus Versehen von einem Tutorial kopiert, kenne mich mit der Konfiguration von Netzwerken wie man merkt leider gar nicht aus. Meine /etc/network/interfaces ist definitiv Murks.

Raijin schrieb:
sudo ifup --no-act eth0

Hier die Ausgabe:

Code:
pi@raspberrypivpn ~ $ sudo ifup --no-act eth0
run-parts  /etc/network/if-pre-up.d
ip addr add 192.168.2.101/255.255.255.0 broadcast 192.168.2.255           dev eth0 label eth0
ip link set dev eth0   up
 ip route add default via 192.168.2.255  dev eth0
run-parts  /etc/network/if-up.d


Raijin schrieb:
Zum OpenVPN-Log: Sobald da irgendwas von "not permitted" steht, denke ich sofort an sudo.
Verwende immer sudo bzw. logge mich gleich als root ein. Habe ein wenig die OpenVPN Dokumentation studiert und anscheinend erlaubt der VPN Anbieter gewisse Sachen nicht, z.B. ein eigenes Subnetz legen oder ähnliches - daher macht die Fehlermeldung Sinn.

Raijin schrieb:
Bitte erkläre mal genauer warum du mit dem USB-LAN-Adapter arbeitest. Was genau möchtest du erreichen?
Ich habe einen USB 3.0 auf RJ45 Ethernet Adapter, dieser wird nativ vom Linux Kernel unterstützt.

Ich möchte an diesen meinen Router anschließen und an den internen LAN Eingang vom Raspherry das LAN-Kabel was wiederum zu meinem PC führt, damit dieser permanent den OpenVPN verwendet um ortsbasierte IP-Beschränkungen zu umgehen.

Raijin schrieb:
Linux kann soweit ich weiß etwas merkwürdig reagieren, wenn es zwei Interfaces im selben Subnetz hat. [...] Für jedes Interface wird eine eigene Routing-Tabelle erstellt und über entsprechende Filterregeln wird dann so oder so geroutet.
Ich habe sofern ich mich recht entsinne die gleiche Info bei diversen Tutorials zum Thema "Raspberry VPN Gateway" gefunden. Ich werde mich dzbgl. noch mal genauer erkundigen.

Leider weiß ich nicht wie die /etc/network/interfaces in diesem Fall aussehen soll. Meine Originaldatei nach der Installation sah so aus:

Code:
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface eth1 inet static 
        address 192.168.2.108
        netmask 255.255.255.0
        gateway 192.168.2.255
 
Das Problem beim Zusammenkopieren aus Tutorials ist, dass die meisten Leute die Konfiguration blind übernehmen, ohne sie verstanden zu haben. Der Teufel steckt aber im Detail und allgemeine Tutorial-Konfigs sind oftmals nur 90% von dem was man braucht - oder eben 110%.

XAF schrieb:
Code:
pi@raspberrypivpn ~ $ ping speedport.ip
PING speedport.ip (192.168.2.11) 56(84) bytes of data.
64 bytes from speedport.ip (192.168.2.11): icmp_req=1 ttl=64 time=0.502 ms
64 bytes from speedport.ip (192.168.2.11): icmp_req=2 ttl=64 time=0.447 ms
64 bytes from speedport.ip (192.168.2.11): icmp_req=3 ttl=64 time=0.475 ms
Das ist eine ungewöhnliche IP. Üblicherweise belässt man den Router, der ins übergeordnete Netz (in dem Falle das Internetz) routet, auf der .1. Weitere Router, APs oder auch Server setzt man gerne auf die .2, .3, .4, etc. Im Folgenden verwende ich daher "Standard-IPs", weil ich die .11 für den Speedport in 3 Zeilen schon wieder vergessen habe ;-)

XAF schrieb:
Ich möchte an diesen meinen Router anschließen und an den internen LAN Eingang vom Raspherry das LAN-Kabel was wiederum zu meinem PC führt, damit dieser permanent den OpenVPN verwendet um ortsbasierte IP-Beschränkungen zu umgehen.
Davon rate ich dir ab. Zum einen kann es sein, dass zB Streaming- oder Download-Portale generell IPs von VPN-Anbietern sperren, und zum anderen ist man so permanent auf die Bandbreite des VPNs angewiesen. Online-Shops reagieren zT auch allergisch auf VPN-IPs. Die Bestellung wird entweder gar nicht akzeptiert oder man wird aufgefordert, sich mit der richtigen IP einzuloggen. Doof, wenn man dann den PC umstöpseln muss. Ich würde VPNs für den Zweck der Regionssperre stets selektiv nutzen. Das musst du aber selbst wissen. Es ist in meinen Augen deutlich handlicher, vor Netflix kurz zB das Gateway umzuschalten, als bei jeder Online-Bestellung die Bestellung zwei Mal aufgeben zu müssen (PC umstöpseln nicht vergessen).



Wie dem auch sei, du willst den PI effektiv als Router zwischen Internet-Router und PC nutzen. Dann müssen aber beide Subnetze unterschiedlich sein.

Internet-Router (192.168.2.1) -- (192.168.2.2 eth0) PI (192.168.3.1 eth1) -- (192.168.3.2) PC

Es funktioniert nicht, wenn der PI auf beiden Interfaces im selben Subnetz unterwegs ist!

Basiskonfiguration für /etc/network/interfaces (aus dem Ärmel geschüttelt)
Code:
auto lo
iface lo inet loopback

#eth0 könnte auch dynamisch sein, also DHCP. Ich bevorzuge wie oben erwähnt feste IPs für die Infrastruktur.
auto eth0 iface inet static
   address 192.168.2.2
   netmask 255.255.255.0
   gateway 192.168.2.1
   dns-nameservers 192.168.2.1

auto eth1 iface inet static
   address 192.168.3.1
   netmask 255.255.255.0

Anschließend in /etc/sysctl.conf
net.ipv4.ip_forward = 1
Damit sagst du dem PI, dass er tatsächlich routen soll. Ansonsten würde er alles wegwerfen was von einem ins andere Subnetz will.

Da der Internet-Router aber nix von dem Subnetz hinter dem PI weiß, würde er auch keinerlei Anfragen daraus beantworten. Der PI muss also das Subnetz an eth1 für eth0 "natten".

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Das aktiviert NAT für eth0. Alles was den PI an eth0 - Richtung Internet-Router - verlässt, wird mit der Absende-IP 192.168.2.2 (die eth0-IP vom PI) versehen. So weiß der Internet-Router auch, dass er dem PI antworten soll, wenn zB ein Ping zurückkommt. Was der PI dann damit macht ist dem Internet-Router egal. Der PI übersetzt die Antwort anschließend wieder ins PC-Subnetz. Hinweis: iptables Kommandos sind nicht zwangsläufig permanent. Das heißt man muss sie an geeigneter Stelle beim Booten erneut laden. Mit iptables-save bzw. iptables-persistent kann man iptables speichern. (HowTo

Wenn du jetzt den PC an eth1 anschließt und ihm zB die IP 192.168.3.2 gibst und das Gateway auf die 192.168.3.1 setzt, müsstest du schon 8.8.8.8 pingen können. Sofern auf dem PI noch kein DNS läuft, wird aber zB google.de noch nicht aufgelöst. Entweder du richtest auf dem PI einen DNS ein (zB bind) oder du stellst am PC zB die 8.8.8.8 ein (192.168.2.1 ginge auch, das ist der Internet-Router).

Jetzt ist zumindest die grundsätzliche Internet-Funktionalität am PC hinter dem PI sichergestellt. Um das VPN kümmert man sich im Anschluss daran.
 
Zuletzt bearbeitet:
Raijin schrieb:
Das Problem beim Zusammenkopieren aus Tutorials ist, dass die meisten Leute die Konfiguration blind übernehmen, ohne sie verstanden zu haben.
Exakt, aber muss dazu auch sagen das ich zum Thema unfassbar schlechte Anleitungen gefunden habe, die nie und nimmer beim Verfassen funktioniert haben. Habe auch eine gefunden, was nicht mal zu ende geschrieben wurde. :lol:

Raijin schrieb:
Das ist eine ungewöhnliche IP. Üblicherweise
Habe die jetzt wieder geändert, leider hat sich der Router dann neu gestartet, nicht mehr reagiert und ich musste ihn neu einrichten. Komisches Teil muss ich schon sagen.

Raijin schrieb:
Davon rate ich dir ab. Zum einen kann es sein, dass zB Streaming- oder Download-Portale generell IPs von VPN-Anbietern sperren, und zum anderen ist man so permanent auf die Bandbreite des VPNs angewiesen.
Danke auch für die Info, allerdings ist mir dies schon bekannt - merkt man ja regelmäßig bei der Verwendung: Amazon und eBay sperren und / oder blockieren das Konto regelmäßig ganz, gefühlte 70 % des Internets blocken einen, da man auf allen Blacklists ist etc. pp. - ist aber alles kein Problem, da ich das nur an meinem stromsparenden Medien PC hängen habe und es mir da gar nichts ausmacht.

Momentan läuft's leider noch nicht, der DHCP Bereich ist beim Speedport W 724V Typ B begrenzt auf den Bereich 192.168.2.100 bis 192.168.2.199. Wenn ich DHCP also ausschalte, den PI und dann den Router neu starte und aus...

Internet-Router (192.168.2.1) -- (192.168.2.2 eth0) PI (192.168.3.1 eth1) -- (192.168.3.2) PC

dies hier in der Interfaces mache

Internet-Router (192.168.2.110) -- (192.168.2.2 eth0) PI (192.168.3.1 eth1) -- (192.168.3.2) PC

und manuell im Router eintrage trotz richtiger MAC-Adresse, wird dies nicht akzeptiert - er trägt das einfach nicht ein bzw. weigert es sich zu speichern und mit den anderen verbundenen Geräte aufzulisten.

Code:
    auto lo
    iface lo inet loopback
     
    #eth0 könnte auch dynamisch sein, also DHCP. Ich bevorzuge wie oben erwähnt feste IPs für die Infrastruktur.
    auto eth0 iface inet static
       address 192.168.2.110
       netmask 255.255.255.0
       gateway 192.168.2.1
       dns-nameservers 192.168.2.1
     
    auto eth1 iface inet static
       address 192.168.3.1
       netmask 255.255.255.0

Ich gebe Bescheid wenn's geht, kein Plan was ich mal wieder falsch mache.
 
Zuletzt bearbeitet:
Du musst DHCP nicht ausschalten. Wenn ein Client nicht per DHCP nach einer IP anfragt, kriegt er auch keine zugewiesen. Das hat 0,garnix damit zu tun ob der Client trotzdem eine manuell eingestellte IP hat. Lass den DHCP im Speedport eingeschaltet (*.100-*.199). Wichtig ist nur, dass statisch eingestellte IPs außerhalb der DHCP-Range sind, weil der DHCP sie sonst früher oder später an einen DHCP-Client vergibt. Ein IP-Konflikt ist also garantiert(!), wenn man eine feste IP innerhalb der DHCP-Range vergibt. Natürlich kann es eine Weile dauern, wenn man zB die *.199 fest einstellt. Der DHCP vergibt aufsteigend, kommt also iiiiigendwann bei der .199 an und dann knallt es.

Halte das Setup möglichst einfach und gehe Step-By-Step vor:

  1. PI => IP, Gateway und DNS einstellen (*.2.2 ; *.2.1 ; *.2.1).

  2. PI => ping 8.8.8.8 + ping google.de
    Wenn die funktionieren, hat der PI eine funktionierende Internetverbindung und du kannst zum nächsten Step gehen.

  3. PI => eth1 konfigurieren (s.o.)

  4. PI => ip forwarding aktivieren (s.o.)

  5. PI => NAT aktivieren (s.o.)

  6. PC => An PI anschließen

  7. PC => IP , Gateway und DNS einstellen (*.3.2 ; *.3.1 ; *.2.1)
    Beachte den DNS, die Speedport-IP 192.168.2.1!

  8. PC => ping 192.168.3.1 + ping 192.168.2.1 + ping 8.8.8.8 + ping google.de
    Wenn der Ping zB nur bis zum PI geht, dann klappt das Forwarding/NATten noch nicht. Klappt google.de nicht, liegts am DNS.

P.S.: Mittlerweile sprengt das Thema den Rahmen. Gewisse Grundkenntnisse sollten schon vorhanden sein.. Sonst sollte man lieber einen Bekannten fragen, der sich damit auskennt. Es ist etwas müßig, wenn es schon an den Basics hapert :-/
 
Zuletzt bearbeitet:
Danke, dies geht jetzt schon einmal! Habe gestern mal meine Firmware geupdatet weil mir nichts mehr einfiel warum es nicht geht und über Nacht gewartet, auf einmal klappt es.
 
Dann funktioniert schon mal das Routing und das NAT im PI. Jetzt richtest du die OpenVPN-Verbindung ein. Auch hier wieder step-by-step. Erstmal nur so, dass der PI über VPN surft. Anschließend machst du dich ans rotieren der Konfigurationsdateien und am Ende kümmerst du dich um den PC dahinter. Grundsätzlich ist letzteres aber unkritisch. Es kommt im Prinzip nur eine neue NAT-Regel dazu (für ausgehenden Traffic am VPN-Interface). Der Rest wie Gateway, Routen und DNS wird von OpenVPN erledigt.
 
Sind schon Fortschritte zu verzeichnen?
 
Ich plane das gleiche, aber schließe das ganze am WLAN Router an.

XAF schrieb:
Code:
    auto lo
    iface lo inet loopback
     
    #eth0 könnte auch dynamisch sein, also DHCP. Ich bevorzuge wie oben erwähnt feste IPs für die Infrastruktur.
    auto eth0 iface inet static
       address 192.168.2.110
       netmask 255.255.255.0
       gateway 192.168.2.1
       dns-nameservers 192.168.2.1
     
    auto eth1 iface inet static
       address 192.168.3.1
       netmask 255.255.255.0

Das funktioniert nicht, dann bekommt man einen Fehler beim Netzwerk neu starten und daher wird das nicht richtig zugeordnet.

Funktionieren tut folgendes:

Code:
    auto lo
    iface lo inet loopback

    iface eth0 inet static
       address 192.168.2.100
       netmask 255.255.255.0
       gateway 192.168.2.1
       dns-nameservers 192.168.2.1

    iface eth1 inet static
       address 192.168.3.1
       netmask 255.255.255.0
 
Cisa schrieb:
Das funktioniert nicht, dann bekommt man einen Fehler beim Netzwerk neu starten und daher wird das nicht richtig zugeordnet.

Raijin schrieb:
Basiskonfiguration für /etc/network/interfaces (aus dem Ärmel geschüttelt)
Man will es den Leuten ja nicht zu einfach machen ;-)

Mach hinter dem "auto eth0" bzw. "auto eth1" mal ein enter und dann sollte es klappen. Lässt man die Zeile weg, kann es Probleme mit ifup bzw. beim Booten geben. ifup -a checkt nämlich die auto-einträge bei den Interfaces.
 
Zuletzt bearbeitet:
Ich habe nichts weiter vom TE gehört. Keine Ahnung ob es bei ihm jetzt läuft.
 
Zurück
Oben