Frage zu OpenVPN

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
phoenix79
Beiträge: 46
Registriert: 02.03.2006 16:04:51
Wohnort: Göttingen

Frage zu OpenVPN

Beitrag von phoenix79 » 12.08.2006 02:21:32

Hallo, ich weis, der Titel ist nicht gerade aussagekraeftig.

Eine OpenVPN im internen Netzwek habe ich bereits hinbekommen. Nun moechte ich aber folgendes machen:

Rechner "Notebook" ist per Wlan in der Firma in einem normalen Netzwek mit Internet. Nun moechte ich die "Daten" tunneln und zwar zum Rechner "Alpha", der wiederum per DSL zuhause im Netz ist. Ab hier moechte ich nun weiter ins Internet gehen und Mails abrufen, surfen etc. Kurz ich moechte ueber meinen Rechner zuhause ins Internet und nicht ueber das Firmennetzwerk.

In wie weit ist das moeglich?

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 12.08.2006 09:30:52

Das ist überhaupt kein Problem. Du mußt nur die default-Route über den ovpn-Server (z. B. 10.8.0.1) legen und diesen natürlich als Router (mit Masquerading) konfigurieren.
Daß die maximale Download- dann die heimische Uploadrate ist, ist Dir ja sicher bewußt ...

Schneiderlein

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 12.08.2006 11:15:23

Jap, das ist durchaus möglich.
Als Ergänzung zum Vorposter sei hier noch angemerkt, daß du natürlich die IP-Adresse deiner DSL-Verbindung zu Hause irgendwie bekannt machen musst, um überhaupt aus dem Firmen-Netzwerk in dein Heimnetz zu kommen. Da bieten sich DynDNS.org und Co. an.

Was die Konfiguration deines Netzwerkes angeht, müsstest du schon mehr Informationen über dein Heim-Netz preisgeben.

Wie geht der PC Alpha ins Internet ? (Hardware-DSL-Router oder stellt Alpha die Verbindung mittels PPPOE(?) selbst her ?)

Daraus ergibt sich dann, ob du für OpenVPN den UDP-Port 1194 vom HW-DSL-Router an Alpha weiterleiten musst und wie du entsprechende Routing-Einträge und evtl. SNAT/Masqerading konfigurieren musst, damit dein Vorhaben klappt ....

phoenix79
Beiträge: 46
Registriert: 02.03.2006 16:04:51
Wohnort: Göttingen

Beitrag von phoenix79 » 12.08.2006 11:43:49

Hallo, danke fuer die schnellen antworten. Es sieht so aus, dass der Rechner zuhause (alpha) ganz normal an einem DSL 2000 haengt ueber einen Router. Mein Router kann btw VPN. Hinzuzufuegen waere noch, dass der Rechnner (alpha) eine statische IP vom Router bekommt. DynDNS ist natuerlich schon mittels ddclient installiert. Wenn ich das jetzt richtig verstehe, muss ich dem Notebook in der Firma die dyndns vernindung vom Rechner (alpha) klar machen und beim Rechner alpha muesste ja ebenfalls die Internetverbindung vom Notebook in der Konfiguration bekannt gemacht werden. Wie sieht denn jetzt das File in der /etc/openvpn/ aus?

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 12.08.2006 14:41:07

phoenix79 hat geschrieben:der Rechner zuhause (alpha) ganz normal an einem DSL 2000
Wenn es ADSL ist, ist Deine Uploadrate evtl. nur 128-384 kbit/s (aber das nur nebenbei).
Mein Router kann btw VPN
Wenn er auch OpenVPN kann -- das können z. B. (modifizierte) Fritz!-Boxen oder OpenWRT-Router --, kannst Du alpha auch ausgeschaltet lassen. Bei IPSec und Co. müßtest Du mal nach nem passenden Client (open/free-swan) fürs Notebook schauen. Ich kann OpenVPN aber eigentlich empfehlen.
. Hinzuzufuegen waere noch, dass der Rechnner (alpha) eine statische IP vom Router bekommt.
Das ist gut, dann kannst Du einfach im Router UDP-Port 1194 von außen an die interne IP von alpha weiterleiten (geht irgendwo im Router-Setup-Menü unter »Port Forwarding«, »NAT« o. ä.).
DynDNS ist natuerlich schon mittels ddclient installiert.
Dabei mußt Du nur drauf achten, daß ddclient auch die *externe* IP an den DNS-Server übermittelt.
Wenn ich das jetzt richtig verstehe, muss ich dem Notebook in der Firma die dyndns vernindung vom Rechner (alpha) klar machen
Korrekt (s. u.).
und beim Rechner alpha muesste ja ebenfalls die Internetverbindung vom Notebook in der Konfiguration bekannt gemacht werden.
Nein, ist eigentlich nicht nötig, weil der OpenVPN-Server einfach auf die Pakete des -Clients antwortet.
Wie sieht denn jetzt das File in der /etc/openvpn/ aus?
Auf dem Server z. B.:

Code: Alles auswählen

port 1194
proto udp
dev tun

ca ca.crt
cert server.crt
key server.key

dh dh1024.pem

server 10.8.0.0 255.255.255.0

ifconfig-pool-persist ipp.txt

keepalive 10 120

comp-lzo

user nobody
group nogroup

persist-key
persist-tun
Auf dem Client z. B.:

Code: Alles auswählen

client
proto udp
dev tun

ca ca.crt
cert notebook.crt
key notebook.key

remote alpha.myhome.dyndns.org 1194

resolv-retry infinite

nobind

user nobody
group nogroup

persist-key
persist-tun

ns-cert-type server

comp-lzo
Die Zertifikate und Keys kannst Du einfach mithilfe der vorbereiteten Skripte in /usr/share/doc/openvpn/examples/easy-rsa/ erstellen, das kennst Du aber sicher schon aus Deinen Versuchen im LAN.

Viel Spaß
Schneiderlein

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 12.08.2006 15:05:18

Zitat:
und beim Rechner alpha muesste ja ebenfalls die Internetverbindung vom Notebook in der Konfiguration bekannt gemacht werden.
Nein, ist eigentlich nicht nötig, weil der OpenVPN-Server einfach auf die Pakete des -Clients antwortet.
Um die Internetverbindung über die VPN-Verbindung zu nutzen, muss auf Alpha aber IP-Forwarding aktiviert sein.

Code: Alles auswählen

echo "1" > /proc/sys/net/ipv4/ip_forward
Darüberhinaus musst du beim DSL-Router eine Route ins VPN-Netz 10.8.0.0 konfigurieren, damit die Antwortpakete des Routers auch "den Weg ins VPN zurück finden". Sollte die Eumex zusätzliche Routen (bzw. statische Routen) nicht unterstützen, musst du die VPN-Verbindung auf Alpha mit iptables "maskieren/natten" - Stichwort SNAT bzw. MASQUERADING

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 12.08.2006 15:17:16

DynaBlaster hat geschrieben:Um die Internetverbindung über die VPN-Verbindung zu nutzen, muss auf Alpha aber IP-Forwarding aktiviert sein.

Code: Alles auswählen

echo "1" > /proc/sys/net/ipv4/ip_forward
Ja, klar, siehe oben (»... als Router konfiguriert mit Masquerading ...«).
Darüberhinaus musst du beim DSL-Router eine Route ins VPN-Netz 10.8.0.0 konfigurieren, damit die Antwortpakete des Routers auch "den Weg ins VPN zurück finden".
Nein, das brauchst Du nicht. Die Antwortpakete von alpha an das Notebook gehen an dessen VPN-IP (vermutlich 10.8.0.6). Die Route für 10.8.0.0/24 setzt ovpn beim Start des Servers auf alphas Device tun0, so daß der DSL-Router davon gar nichts mitbekommt ...

Schneiderlein

phoenix79
Beiträge: 46
Registriert: 02.03.2006 16:04:51
Wohnort: Göttingen

Beitrag von phoenix79 » 12.08.2006 15:36:03

Danke schonmal, aber die config- datei verwirrt mich etwas (eventuell mal kommentieren) da meine bisher ganz anderst aussah:

Beispiel vom Notebook

Code: Alles auswählen

remote 192.168.0.161
dev tun
ifconfig 192.168.10.2 192.168.10.161
secret meinedatei.txt
port 5000

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 12.08.2006 16:04:32

phoenix79 hat geschrieben:die config- datei verwirrt mich etwas (eventuell mal kommentieren)

Code: Alles auswählen

#### Server ####
# Der Port, auf dem OpenVPN lauscht
port 1194

# das zu verwendende Protokoll
proto udp

# VPN-Typ: tun für IP-Tunnel, tap für virt. Ethernet
dev tun

# Auth über Keys und Zertifikate (zu empfehlen)
# (bei Dir vorher "secret meinedatei.txt")

# Das CA-Zertifikat (Datei ca.crt)
ca ca.crt

# Das Server-Zertifikat
cert server.crt

# Der Server-Key
key server.key

# Die Diffie-Hellman-Parameter (werden von den easyrsa-Skripten 
# erstellt, glaub' ich)
dh dh1024.pem

# welches IP-Netz für das VPN (der Server nimmt sich selbst die *.1 und 
# verteilt den Rest)
server 10.8.0.0 255.255.255.0

# den CLients möglichst immer dieselbe IP geben und deshalb Buch führen
ifconfig-pool-persist ipp.txt

# die Verbindung durch künstliche Pings aktiv halten (wichtig, damit evtl. 
# NAT-Router zwischen den Endpunkten Pakete als Antwortpakete einstufen
keepalive 10 120

# Komprimieren der Daten
comp-lzo

# dem Server jegliche Rechte entziehen
user nobody
group nogroup

# Ressourcen wie Key und sowas im Speicher halten
persist-key
persist-tun

Code: Alles auswählen

#### Client ####

# ich bin der Client und initiiere die Verbindung
client

# mit diesem Protokoll
proto udp

# über ein TUN-Device
dev tun 

# siehe Server (ca.crt ist auf allen beteiligten Systemen identisch)
ca ca.crt
cert notebook.crt
key notebook.key

# wohin soll ich mich verbinden: Dyndns-Adresse von zuhause auf Port 1194
remote alpha.myhome.dyndns.org 1194
# (bei Dir vorher "remote 192.168.0.161")

# immer mal wieder die dyndns-Adresse auflösen (weil die sich eben ändert)
resolv-retry infinite

# vermutlich nicht unbedingt nötig
nobind

# siehe Server
user nobody
group nogroup

# dito
persist-key
persist-tun

# nur Zertifikate mit gesetztem Server-Bit akzeptieren (als Schutz vor möglichen
# Man-in-the-Middle-Angriffen durch andere Teilnehmer des VPNs)
ns-cert-type server

# siehe Server
comp-lzo
Edit by Snoopy:
Code-Tags angepasst.

phoenix79
Beiträge: 46
Registriert: 02.03.2006 16:04:51
Wohnort: Göttingen

Beitrag von phoenix79 » 12.08.2006 16:08:34

Vielen Dank ;)

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 12.08.2006 16:14:16

Nein, das brauchst Du nicht. Die Antwortpakete von alpha an das Notebook gehen an dessen VPN-IP (vermutlich 10.8.0.6). Die Route für 10.8.0.0/24 setzt ovpn beim Start des Servers auf alphas Device tun0, so daß der DSL-Router davon gar nichts mitbekommt ...
Schon klar! Das Problem für den DSL-Router ist aber nun folgendes: Nehmen wir an, der DSL-Router hat die interne IP 192.168.0.1 - dann weiss er, daß er die Clients im Netz 192.168.0.0/24 über dieses Device, das an 192.168.0.1 gebunden ist, erreicht. Alle anderen IP-Adressen und Netze versucht er über sein Standard-Gateway zu erreichen (bei einer DSL-Verbindung bekommt er dieses Gateway und die Nameserver automatisch beim Verbindungsaufbau vom Provider mitgeteilt.).
Folglich passiert ohne gesetzte statische Route auf dem DSL-Router folgendes: Das Notebook will eine Webseite ansurfen und stellt dafür über sein tun-Device (z.B. 10.8.0.6) eine entsprechende Anfrage an sein Standard-Gateway, welches ihm vom OpenVPN-Server mitgeteilt wurde (also z.B. 10.8.0.1). Soweit so gut. Das Paket kommt also bei tun0 von Alpha an. Alpha schickt das Paket nun über eth0 (z.B. 192.168.0.2) an sein eigenes Standard-Gateway weiter (also an den DSL-Router mit der IP 192.168.0.1). Der DSL-Router empfängt jetzt also ein Paket von der IP 10.8.0.6.
Und eben hier liegt das Problem: Woher soll der DSL-Router jetzt wissen, daß er seine Antwort an 10.8.0.6 an 192.168.0.2 schicken muss, damit es von da weiter geroutet wird ? Genau dafür braucht man eine statische Route oder eben SNAT/MASQUERADING

tapferesschneiderlein
Beiträge: 189
Registriert: 11.08.2005 09:27:01

Beitrag von tapferesschneiderlein » 12.08.2006 16:50:38

DynaBlaster hat geschrieben:
Nein, das brauchst Du nicht. Die Antwortpakete von alpha an das Notebook gehen an dessen VPN-IP (vermutlich 10.8.0.6). Die Route für 10.8.0.0/24 setzt ovpn beim Start des Servers auf alphas Device tun0, so daß der DSL-Router davon gar nichts mitbekommt ...
Schon klar!
[...]
Alpha schickt das Paket nun über eth0 (z.B. 192.168.0.2) an sein eigenes Standard-Gateway weiter (also an den DSL-Router mit der IP 192.168.0.1). Der DSL-Router empfängt jetzt also ein Paket von der IP 10.8.0.6.

Durch das Masquerading steht als Absender nicht 10.8.0.6 sondern 192.168.0.2 drin.
Genau dafür braucht man eine statische Route oder eben SNAT/MASQUERADING
Genau ;-)

Schneiderlein

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Beitrag von DynaBlaster » 12.08.2006 17:18:29

Ups !, wer lesen kann, ist klar im Vorteil.

Habe den kleinen, aber feinen Hinweis zum Router (mit Masquerading) doch glatt überlesen. Trotzdem denke ich, daß die Lösung mittels statischer Route schneller und vor allem einfacher zu realisieren ist. Es entfällt halt das Erstellen des init-Scripts.

Aber egal, wir meinen das Gleiche ...

Antworten