ubuntuusers.de

OpenVPN Konfiguration

Status: Gelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Comfreak

Anmeldungsdatum:
20. Februar 2009

Beiträge: 49

Hi,

vorweg der aufbau meines Netzes bzw. Situation:

Ich habe ein normales privates Lan mit dem Netz 192.168.1.0, dem Subnetz 255.255.255.0 und der Linuxrechner (virtualisiert mit XenServer) mit OpenVPN ist dort drin. Ich nutze den Router "Gigaset SE105 dsl/cable" und habe den Port 1194 dort freigegeben.

Ich bin mal diese Anleitung durchgegangen und habe mir die Konfiguration mal kopiert und angepasst: http://nefarius.darkhosters.net/linux/mit_openvpn_ins_internet#weblinks

Ich kann mich mit meinem Notebook (Windows 7 Proffesional 64 bit) innerhalb dieses Netzes über die öffentliche Adresse zum OpenVPN - Server verbinden und kann den Linuxrechner selbst pingen, alle anderen PC's nicht. Wenn ich jedoch z.B. eine Internetseite öffnen will, bekomme ich keine Verbindung. Das selbe habe ich auch, wenn ich auf meine Windowsfreigabe zugreifen will. Kann ich das überhaupt aus dem selben Netz testen, oder muss ich das von einer anderen öffentlichen Adresse aus testen? (Ich habe es noch nicht von einer anderen öffentlichen Adresse probiert)

Hier meine client.conf (Ich habe meine Adresse zensiert 😉 ):

# OpenVPN-Instanz als Client starten
client
 
# Je nach Verwendungszweck verwende TUN oder TAP
dev tap
;dev tun
 
# Nutze Protokoll TCP um durch Firewalls zu kommen
# andernfalls sollte man UDP verwenden (höherer Speed)
;proto tcp
proto udp
 
# Adresse und Port des VPN-Servers
remote xxx.xxx.xxx.xxx
 
# Endloser Reconnect-Versuch
resolv-retry infinite
 
# Beliebiger lokaler Port
nobind
 
# Verbindung immer gleich halten
persist-key
persist-tun
 
# Falls Proxy vorhanden, hier einstellen
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port]
 
# Pfade zu den Zertifikaten (müssen auf jeden Fall stimmen!)
ca ca.crt
cert client.crt
key client.key
 
# Authentifizierung per Zertifikaten
ns-cert-type server
 
# Hash-Algorithmus
auth SHA1
 
# Schnelle und sichere Blowfish-Verschlüsselung
cipher BF-CBC
 
# Kompression
comp-lzo
 
# Log-Level
verb 3
 
# Workaround für Windows Vista/7 
# damit wird die Änderung des Default-Gateways erzwungen
# ACHTUNG! Nur einkommentieren, wenn es Verbindungsprobleme gibt,
# neuere TAP-Treiber benötigen diese Zeile nicht mehr!
;redirect-gateway def1 bypass-dhcps

Hier meine aktuelle server.conf:

# IP Adresse des Interfaces, an das du den Server binden möchtest 
# (auskommentieren, falls an alle gebunden werden soll)
;local xxx.xxx.xxx.xxx

# Port
port 1194
 
# Zu verwendendes Protokoll 
# (TCP empfiehlt sich, wenn man hinter einer Firewall sitzt, sonnst 
# ist UDP wegen der Geschwindigkeit vorzuziehen)
;proto tcp
proto udp
 
# Erzeuge das Tunnel-Device (IP Tunnel)
dev tap
;dev tun
 
# Die folgenden Zeilen geben die Pfade zu den Zertifikaten an und
# müssen korrekt sein
ca ./easy-rsa2/keys/ca.crt
cert ./easy-rsa2/keys/server.crt
key ./easy-rsa2/keys/server.key  # Diese Datei muss geheim bleiben
 
# Diffie Hellman Schlüssel
dh ./easy-rsa2/keys/dh1024.pem
 
# Subnetz, welches der Server erzeugen soll 
# (darf keines der vorhandenen privaten Netzwerke sein!)
server 10.8.0.0 255.255.255.0
 
# In dieser Datei speichert der Server die Client-IPs
ifconfig-pool-persist ipp.txt
 
# Gebe dem Client Routen-Informationen mit, damit dieser 
# das private Subnetz findet
push "route 192.168.1.0 255.255.255.0"
 
# Damit wird erzwungen, dass am Client alle Anfragen 
# (DNS, Browser) über den Tunnel laufen
push "redirect-gateway"
 
# Hier werden die Adressen von OpenDNS mitgeschickt, damit 
# die Namensauflösung ebenfalls durch den Tunnel geschieht
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option WINS 208.67.220.220"
 
# Clients können sich auch "sehen", nicht nur 
# die Clients den Server
client-to-client
 
# Maximale Anzahl von Clients
;max-clients 100
 
# Pinge alle 10 Sekunden um Verbindung aufrecht zu erhalten
keepalive 10 120
 
# Hash-Algorithmus
auth SHA1
 
# Schnelle und sichere Blowfish-Verschlüsselung
cipher BF-CBC
 
# Kompression
# (wenn angegeben, müssen auch alle Clients dies unterstützen!)
comp-lzo
 
# Bindet laufenden OpenVPN Prozess an Account ohne spezielle Rechte 
# (User und Gruppe müssen existieren)
user openvpn
group openvpn
 
# Verbindung immer gleich halten
persist-key
persist-tun
 
# Optionen fürs Logging
status openvpn-status.log
log         openvpn.log
log-append  openvpn.log
 
# "Verbose" Level - Logge nur Fehler
verb 3

Hier mein Logfile vom Client (Adressen auch hier zensiert):

Sun May 16 17:37:31 2010 OpenVPN 2.1_rc19 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Jul 16 2009
Sun May 16 17:37:31 2010 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Sun May 16 17:37:31 2010 LZO compression initialized
Sun May 16 17:37:31 2010 Control Channel MTU parms [ L:1574 D:138 EF:38 EB:0 ET:0 EL:0 ]
Sun May 16 17:37:31 2010 Data Channel MTU parms [ L:1574 D:1450 EF:42 EB:135 ET:32 EL:0 AF:3/1 ]
Sun May 16 17:37:31 2010 Local Options hash (VER=V4): 'd79ca330'
Sun May 16 17:37:31 2010 Expected Remote Options hash (VER=V4): 'f7df56b8'
Sun May 16 17:37:31 2010 Socket Buffers: R=[8192->8192] S=[8192->8192]
Sun May 16 17:37:31 2010 UDPv4 link local: [undef]
Sun May 16 17:37:31 2010 UDPv4 link remote: xxx.xxx.xxx.xxx:1194
Sun May 16 17:37:31 2010 TLS: Initial packet from xxx.xxx.xxx.xxx:1194, sid=c3e03a93 d5938d50
Sun May 16 17:37:31 2010 VERIFY OK: depth=1, /C=DE/ST=NRW/L=Stolberg/O=pascal-privat/CN=xxx.xxx.xxx.xxx/emailAddress=xxx@xxx.xx
Sun May 16 17:37:31 2010 VERIFY OK: nsCertType=SERVER
Sun May 16 17:37:31 2010 VERIFY OK: depth=0, /C=DE/ST=NRW/L=Stolberg/O=pascal-privat/CN=xxx.xxx.xxx.xxx/emailAddress=xxx@xxx.xx
Sun May 16 17:37:31 2010 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun May 16 17:37:31 2010 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun May 16 17:37:31 2010 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Sun May 16 17:37:31 2010 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Sun May 16 17:37:31 2010 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Sun May 16 17:37:31 2010 [www.pascal-weisshaupt.de] Peer Connection Initiated with 94.220.152.106:1194
Sun May 16 17:37:33 2010 SENT CONTROL [xxx.xxx.xxx.xxx]: 'PUSH_REQUEST' (status=1)
Sun May 16 17:37:33 2010 PUSH: Received control message: 'PUSH_REPLY,route 10.8.0.0 255.255.255.0,route 192.168.1.0 255.255.255.0,redirect-gateway,dhcp-option DNS 208.67.222.222,dhcp-option WINS 208.67.220.220,route-gateway 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.4 255.255.255.0'
Sun May 16 17:37:33 2010 OPTIONS IMPORT: timers and/or timeouts modified
Sun May 16 17:37:33 2010 OPTIONS IMPORT: --ifconfig/up options modified
Sun May 16 17:37:33 2010 OPTIONS IMPORT: route options modified
Sun May 16 17:37:33 2010 OPTIONS IMPORT: route-related options modified
Sun May 16 17:37:33 2010 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Sun May 16 17:37:33 2010 ROUTE default_gateway=192.168.1.1
Sun May 16 17:37:33 2010 TAP-WIN32 device [LAN-Verbindung 2] opened: \\.\Global\{567D6AA6-284F-4DCE-B46F-4C2208CC8A6B}.tap
Sun May 16 17:37:33 2010 TAP-Win32 Driver Version 9.6 
Sun May 16 17:37:33 2010 TAP-Win32 MTU=1500
Sun May 16 17:37:33 2010 Notified TAP-Win32 driver to set a DHCP IP/netmask of 10.8.0.4/255.255.255.0 on interface {567D6AA6-284F-4DCE-B46F-4C2208CC8A6B} [DHCP-serv: 10.8.0.0, lease-time: 31536000]
Sun May 16 17:37:33 2010 Successful ARP Flush on interface [65] {567D6AA6-284F-4DCE-B46F-4C2208CC8A6B}
Sun May 16 17:37:38 2010 TEST ROUTES: 3/3 succeeded len=2 ret=1 a=0 u/d=up
Sun May 16 17:37:38 2010 C:\WINDOWS\system32\route.exe ADD 94.220.152.106 MASK 255.255.255.255 192.168.1.1
Sun May 16 17:37:38 2010 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=25 and dwForwardType=4
Sun May 16 17:37:38 2010 Route addition via IPAPI succeeded [adaptive]
Sun May 16 17:37:38 2010 C:\WINDOWS\system32\route.exe ADD 10.8.0.0 MASK 255.255.255.0 10.8.0.1
Sun May 16 17:37:38 2010 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Sun May 16 17:37:38 2010 Route addition via IPAPI succeeded [adaptive]
Sun May 16 17:37:38 2010 WARNING: potential route subnet conflict between local LAN [192.168.1.0/255.255.255.0] and remote VPN [192.168.1.0/255.255.255.0]
Sun May 16 17:37:38 2010 C:\WINDOWS\system32\route.exe ADD 192.168.1.0 MASK 255.255.255.0 10.8.0.1
Sun May 16 17:37:38 2010 ROUTE: CreateIpForwardEntry succeeded with dwForwardMetric1=30 and dwForwardType=4
Sun May 16 17:37:38 2010 Route addition via IPAPI succeeded [adaptive]
Sun May 16 17:37:38 2010 Initialization Sequence Completed

Wo liegt hier das Problem, dass ich auf keine anderen Rechner zugreifen kann und keine Verbindung mehr ins Internet habe

Ich hoffe, dass mir geholfen werden kann...☺

Grüße,

Comfreak

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Comfreak schrieb:

Wenn ich jedoch z.B. eine Internetseite öffnen will, bekomme ich keine Verbindung.

Ähm *hust* server.conf

# Damit wird erzwungen, dass am Client alle Anfragen 
# (DNS, Browser) über den Tunnel laufen
push "redirect-gateway"

Typisch Copypasta ☺ Das tät ich mal ganz flott auskommentieren, was die Zeile macht sollte eig. klar sein 😉

Was sagt denn das Routung auf deinem Server? Ist das IP-Forwarding aktiviert? ifconfig Ausgabe?

MfG nefarius

Comfreak

(Themenstarter)

Anmeldungsdatum:
20. Februar 2009

Beiträge: 49

Hi,

push "redirect-gateway"

habe ich eben auch schon auskommentiert, ist mir auch nach dem Posten aufgefallen, dass das quatsch ist 😉.

ifconfig - Ausgabe:

pascal@Ubuntu-Server:~$ ifconfig
eth0      Link encap:Ethernet  Hardware Adresse 1a:ae:9e:6f:ac:3a
          inet Adresse:192.168.1.252  Bcast:192.168.1.255  Maske:255.255.255.0
          inet6-Adresse: fe80::18ae:9eff:fe6f:ac3a/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:11947 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7344 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:1553869 (1.5 MB)  TX bytes:1398546 (1.3 MB)
          Interrupt:32 Basisadresse:0x2000

lo        Link encap:Lokale Schleife
          inet Adresse:127.0.0.1  Maske:255.0.0.0
          inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
          UP LOOPBACK RUNNING  MTU:16436  Metrik:1
          RX packets:30 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:0
          RX bytes:2698 (2.6 KB)  TX bytes:2698 (2.6 KB)

tap0      Link encap:Ethernet  Hardware Adresse 3a:aa:1c:fc:2c:e2
          inet Adresse:10.8.0.1  Bcast:10.8.0.255  Maske:255.255.255.0
          inet6-Adresse: fe80::38aa:1cff:fefc:2ce2/64 Gültigkeitsbereich:Verbindung
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metrik:1
          RX packets:1076 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:100
          RX bytes:135573 (135.5 KB)  TX bytes:5022 (5.0 KB)

Meinst Du mit Ip - Forwarding das (aus dem Ubuntuusers - Wiki)?

Um diese Änderung permanent zu machen, kann man sie in die Datei /etc/sysctl.conf eintragen:

net.ipv4.ip_forward=1

Ja, habe ich aktiviert:

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Ich glaube das mit dem Routing ist mein Problem. Habe eben auch gegoogelt und ich denke, dass ich eine Route in meinem Router konfigurieren muss, richtig? Oder soll ich ein Routinglog vom VPN-Server posten, wenn ja wo liegt das?

Grüße,

Comfreak

Nefarius

Avatar von Nefarius

Anmeldungsdatum:
11. Dezember 2008

Beiträge: 1275

Na, hat das gestern noch geklappt? 😉

MfG Nefarius

Comfreak

(Themenstarter)

Anmeldungsdatum:
20. Februar 2009

Beiträge: 49

Hi,

hier nochmal ein Post für Andere, die ähnliche Probleme haben. Ich habe mich privat mit Nefarius mit dem Thema auseinandergesetzt und wir haben es dann ans Laufen bekommen.

Er konnte sich per VPN mit meinem Netz verbinden, aber nur den VPN - Server selbst erreichen. Nach Eintragung des folgenden Codes in die /etc/rc.local konnte er dann alle PC's im Netz erreichen, aber ich nur seinen PC vom VPN - Server aus selbst

# initialize natting for openvpn
iptables -t nat -F POSTROUTING
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -s 10.8.0.0/24 -j MASQUERADE

Nach einigem erfolglosem Ausprobieren haben wir festgestellt, dass wir noch eine Route im Router einfügen müssen. Dafür verweis ich auf den OpenVPN - Wikibeitrag: http://wiki.ubuntuusers.de/OpenVPN#LAN-einbeziehen

In meinem Router zu Hause kann ich diese Einstellung nicht vornehmen (das Teil ist ein Mistding ☺ ). Aufgrund Dessen habe ich die Standardgateway von meinen PC's auf die des OpenVPN - Servers geändert und siehe da, ich kann den PC erreichen, der sich per VPN eingewählt hat.

Vielen Dank nochmal an Nefarius für die tolle Hilfsbereitschaft!

Grüße,

Comfreak

Antworten |