openvpn - config: windows -> freetz

xsapling

Mitglied
Mitglied seit
30 Jan 2005
Beiträge
755
Punkte für Reaktionen
0
Punkte
0
Hallo,

mittels der nachfolgenden Config, kann ein Windows-Client eine Openvenpn-Verbindung zu einem Server aufbauen.
Der Windows-Client wird auch in das Server-Netz integriert so dass auch der ganze Traffic über den Server läuft.

Client:
Code:
proto tcp-client
dev tap
 
tls-client
 
ca "D:\\Program Files (x86)\\OpenVPN\\config\\ch-neu\\ca.crt"
cert "D:\\Program Files (x86)\\OpenVPN\\config\\ch-neu\\eins.crt"
key "D:\\Program Files (x86)\\OpenVPN\\config\\ch-neu\\eins.key"




script-security 2






remote XX.XX.XXX.XXX 443


pull


verb 3


cipher AES-128-CBC
comp-lzo

Server:
Code:
user openvppn
group openvppn


#bei startproblemen - user + group auskommentieren - ändern


local XX.XX.XXX.XXX
port 443




proto tcp




dev tap


tun-mtu 1500
tun-mtu-extra 32
mssfix 1450


ca /etc/openvpn/easy-rsa2/keys/ca.crt
cert /etc/openvpn/easy-rsa2/keys/server.crt
key /etc/openvpn/easy-rsa2/keys/server.key    # Diese Datei geheim halten.  # This file should be kept secret




dh /etc/openvpn/easy-rsa2/keys/dh1024.pem




cipher AES-128-CBC


server 10.8.0.0 255.255.255.0






push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 4.2.2.1"
#push "route 192.168.2.0 255.255.255.0"   #neu


keepalive 5 30
comp-lzo
persist-key
persist-tun
status /etc/openvpn/443.log
log-append /etc/openvpn/443-ovp.log


verb 3
#verb 0 bis 9 denkbar

Wenn ich aber diese config in freetz eintrage, wird die Verbindung aufgebaut, aber es geht kein Internetverkehr mehr raus.

freetz:
Code:
#put your config here
# to use Keys and Certs from GUI here are samples
#ca /tmp/flash/openvpn/openvpn_2/ca.crt
#cert /tmp/flash/openvpn/openvpn_2/box.crt
#key /tmp/flash/openvpn/openvpn_2/box.key
#dh /tmp/flash/openvpn/openvpn_2/dh.pem




proto tcp-client
dev tap


tls-client




ca /tmp/flash/openvpn/openvpn_2/ca.crt
cert /tmp/flash/openvpn/openvpn_2/zwei.crt
key /tmp/flash/openvpn/openvpn_2/zwei.key




script-security 2


remote XX.XX.XXX.XXX 443


pull


verb 3


cipher AES-128-CBC
comp-lzo

Im Log der Box steht zum Verbindungsaufbau:

Code:
Nov  4 14:07:38 fritz daemon.notice openvpn[11087]: OpenVPN 2.3.2 mips-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [IPv6] built on Oct 28 2013
Nov  4 14:07:38 fritz daemon.warn openvpn[11087]: WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Nov  4 14:07:38 fritz daemon.warn openvpn[11087]: WARNING: file '/tmp/flash/openvpn/openvpn_2/zwei.key' is group or others accessible
Nov  4 14:07:38 fritz daemon.notice openvpn[11087]: Socket Buffers: R=[87380->131072] S=[16384->131072]
Nov  4 14:07:38 fritz daemon.notice openvpn[11088]: Attempting to establish TCP connection with [AF_INET]XX.XX.XXX.XXX:443 [nonblock]
Nov  4 14:07:39 fritz daemon.notice openvpn[11088]: TCP connection established with [AF_INET]XX.XX.XXX.XXX:443
Nov  4 14:07:39 fritz daemon.notice openvpn[11088]: TCPv4_CLIENT link local: [undef]
Nov  4 14:07:39 fritz daemon.notice openvpn[11088]: TCPv4_CLIENT link remote: [AF_INET]XX.XX.XXX.XXX:443
Nov  4 14:07:39 fritz daemon.notice openvpn[11088]: TLS: Initial packet from [AF_INET]XX.XX.XXX.XXX:443, sid=fde1824c 2be08398
Nov  4 14:07:40 fritz daemon.notice openvpn[11088]: VERIFY OK: depth=1, C=DE, ST=CA, L=SanFrancisco, O=keine-angabe, CN=keine-angabe CA, [email protected]
Nov  4 14:07:40 fritz daemon.notice openvpn[11088]: VERIFY OK: depth=0, C=DE, ST=CA, L=SanFrancisco, O=keine-angabe, CN=server, [email protected]
Nov  4 14:07:41 fritz daemon.notice openvpn[11088]: Data Channel Encrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Nov  4 14:07:41 fritz daemon.notice openvpn[11088]: Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Nov  4 14:07:41 fritz daemon.notice openvpn[11088]: Data Channel Decrypt: Cipher 'AES-128-CBC' initialized with 128 bit key
Nov  4 14:07:41 fritz daemon.notice openvpn[11088]: Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Nov  4 14:07:41 fritz daemon.notice openvpn[11088]: Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Nov  4 14:07:41 fritz daemon.notice openvpn[11088]: [server] Peer Connection Initiated with [AF_INET]XX.XX.XXX.XXX:443
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: SENT CONTROL [server]: 'PUSH_REQUEST' (status=1)
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 4.2.2.1,route-gateway 10.8.0.1,ping 5,ping-restart 30,ifconfig 10.8.0.2 255.255.255.0'
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: OPTIONS IMPORT: timers and/or timeouts modified
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: OPTIONS IMPORT: --ifconfig/up options modified
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: OPTIONS IMPORT: route options modified
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: OPTIONS IMPORT: route-related options modified
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: TUN/TAP device tap0 opened
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: TUN/TAP TX queue length set to 100
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: /sbin/ifconfig tap0 10.8.0.2 netmask 255.255.255.0 mtu 1500 broadcast 10.8.0.255
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: /sbin/route add -net XX.XX.XXX.XXX netmask 255.255.255.255 dev dsl
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: /sbin/route add -net 0.0.0.0 netmask 128.0.0.0 gw 10.8.0.1
Nov  4 14:07:43 fritz daemon.notice openvpn[11088]: /sbin/route add -net 128.0.0.0 netmask 128.0.0.0 gw 10.8.0.1
Nov  4 14:07:44 fritz daemon.notice openvpn[11088]: Initialization Sequence Completed

Inwiefern muss denn die Config für die Box hier angepasst werden?
 
Was genau heißt denn "es geht kein Internetverkehr mehr raus"? Meinst du die Box oder Geräte an der Box?
In der Config ist ja ein "redirect-gateway", so dass die Box allen Verkehr durch das VPN schickt.
"funktionieren" dürfte das erstmal nur von der Box aus, denn alles dahinter kommt ja von einer anderen IP.
Der Server brauchte also ein "route <dein FB-Netz> <VPN-IP der FB>".
Damit du von dem Netz ins Internet kommst, müsste der Server dein "FB-LAN" auch noch per NAT verstecken.
 
Was meinst Du denn mit dem Satz genau?

"Damit du von dem Netz ins Internet kommst, müsste der Server dein "FB-LAN" auch noch per NAT verstecken."
 
Wenn meine Vermutung richtig war (du willst aus einem LAN, das an der "VPN-FB" hängt durch da VPN ins Internet), dann muss der Server den ausgehenden Verkehr "natten". Das angeschlossene Netz kennt er (also das VPN-IP-Netz und wird es per NAT umsetzen) aber du müsstest prüfen und ggf. ergänzen, dass auch Pakete von deinem FB-LAN, die ins Internet gehen, hinter der Internet-IP des Servers "versteckt" werden.
 
Genau, das habe ich vor.
Und wie kann man das mit dem NAT am Besten umsetzen?
 
Was ist das denn für ein Server? Unter Linux machte man das per "iptables".
Ein "iptables -t nat -L" zeigt die aktuellen NAT-Regeln an.
Du bräuchtest sowas wie
iptables -t nat -I POSTROUTING -o <Interface Richtung Internet> -s <FB-LAN> -j MASQUERADE
 
Der Server ist ein aktueller Ubuntu LTS.
Ich werde es damit erst mal probieren.

Danke für Deine Tipps!!
 
iptables -t nat -I POSTROUTING -o <Interface Richtung Internet> -s <FB-LAN> -j MASQUERADE

Hallo Jörg,

bitte um Entschuldigung, wenn ich falsch liege .... Aber müßte das nicht so heißen ?

Code:
iptables -t nat [B][COLOR="#FF0000"]-A[/COLOR][/B] POSTROUTING -o <Interface Richtung Internet> -s <FB-LAN> -j MASQUERADE
Beste Grüße,

JD.
 
Hast Du nachgeschaut, was der Unterschied zwischen -A und -I ist?
Solange es die einzige Regel ist, macht es keinen Unterschied, ob man sie vorne oder hinten einfügt.
 
Ich hoffe, daß mir der Unterschied zwischen append und insert einigermaßen klar ist.
Da ich jedoch vermute(te), daß diese Regel beim Start der Box defaultmäßig geladen werden soll, dachte ich mir, daß da ein -A besser passen würde (weil es vermutlich generell in der POSTROUTING-Chain nicht allzu viele Einträge geben sollte und infolgedessen ein -I möglicherweise Verwirrung stiftet) In der Tat ist ein -I ohne rulenumber und ein -A äquivalent - solange es in bei POSTROUTING nur eine Regel gibt. Falls nicht, wäre wohl ein -A angebrachter.
 
Zuletzt bearbeitet:
Ich persönlich verwende auch eher -A. Solange es nur eine Regel gibt, macht es aber keinen Unterschied, und sobald es mehrere sind, sollte man sich Gedanken um die Reihenfolge machen und vorzugsweise alle Regeln an einer Stelle setzten.
 
Die Zeile

Code:
[COLOR=#333333]iptables -t nat [/COLOR][B][COLOR=#FF0000]-A[/COLOR][/B][COLOR=#333333] POSTROUTING -o <Interface Richtung Internet> -s <FB-LAN> -j MASQUERADE[/COLOR]
kann ich laut Ubuntu-Tutorial nicht nutzen, da das Interface venet0:0 (map) ist.
Quelle: http://wiki.ubuntuusers.de/OpenVPN

Deshalb habe ich folgende Zeile bislang verwendet:

Code:
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source EXT_IP

Wie muss diese Zeile eigentlich "umgestellt" werden, wenn der OpenVPN-Server nun eine
Code:
ifconfig 10.8.1.101 255.255.255.0
hat und die Clients als IP eine 10.8.1.102 ff. haben?
 
Dann würde aus 10.8.0.0/24 eben 10.8.1.0/24. Das "nattet" aber nur die VPN-Clients.
Dort sollte aber dein LAN hin, wenn du aus dem LAN das VPN in Richtung Internet nutzen willst.
 
kann man nicht Beides angeben, um sowohl derBbox mit ihrem Netz als auch im Einzelfall von der Box unabhängigen Clients das NAT zu ermöglichen?
Wie ist denn das LAN der Box anzugeben?
Ein
Code:
[COLOR=#333333]iptables -t nat -A POSTROUTING -s 172.30.2.0/24 -j SNAT --to-source EXT_IP[/COLOR]

funktioniert auf Anhieb nicht.

EDIT: Habe auf dem Server noch eine Route auf das LAN der Box gesetzt. Nun läuft es.

Wenn ich neben dieser Openvpn-Verbindung von der Box eine zweite OpenVPN-Verbindung zu einer zweiten Box aufgebaut habe, kann ich die zweite Box nicht mehr erreichen.
Kann man da was machen?

Die zweite Box ist ohne die hier gegenständliche OpenVPN-Verbindung uner 172.30.1.1 erreichbar.
Mit der hiesigen Verbindung

ergibt ein
Code:
traceroute to 172.30.1.1 (172.30.1.1), 30 hops max, 38 byte packets
 1  172.30.1.206  3003.451 ms !H  3009.776 ms !H  3009.816 ms !H

Und die Routen sehen so aus:
Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.173.68.20    *               255.255.255.255 UH    2      0        0 dsl
10.173.68.21    *               255.255.255.255 UH    2      0        0 dsl
172.30.1.112    172.30.1.123    255.255.255.255 UGH   0      0        0 tap1
XX.XX.XXX.XXX   *               255.255.255.255 UH    0      0        0 dsl
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
173.30.1.201    *               255.255.255.255 UH    2      0        0 dsl
172.30.1.0      172.30.1.201    255.255.255.0   UG    0      0        0 tap1
172.30.1.0      *               255.255.255.0   U     0      0        0 tap1
10.2.1.0        10.2.1.101      255.255.255.0   UG    0      0        0 tap0
10.2.1.0        *               255.255.255.0   U     0      0        0 tap0
172.30.2.0      *               255.255.255.0   U     0      0        0 lan
192.168.189.0   *               255.255.255.0   U     0      0        0 guest
10.173.24.0     *               255.255.248.0   U     2      0        0 dsl
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         10.2.1.101      128.0.0.0       UG    0      0        0 tap0
128.0.0.0       10.2.1.101      128.0.0.0       UG    0      0        0 tap0
default         *               0.0.0.0         U     2      0        0 dsl
 
Zuletzt bearbeitet:
Was steht denn da in der Config? Du hast da "so viele Routen" für 172.30.1.x (speziell noch diese eine Hostroute für 172.30.1.112)...
Was ist 172.30.1.206 in diesem VPN? Dieses Gerät sagt "Host unreachable".
Da du eine gebrückte Verbindung hast, solltest du ja direkt in dem Netz sein. Hast du einen ARP-Eintrag für dieses Gerät (arp -an)?
 
Zuletzt bearbeitet:
172.30.1.206 ist die IP der OpenVPN-Verbindung der Box mit der zweiten Box.
Code:
ifconfig 172.30.1.206 255.255.255.0


"arp -an"
Code:
root@fritz:/var/mod/root#   arp -an
? (172.30.2.25) at b4:82:fe:5d:0e:f9 [ether]  on lan
? (10.2.1.101) at ba:ed:41:58:4e:e1 [ether]  on tap1
? (172.30.2.21) at <incomplete>  on lan
 
Zuletzt bearbeitet:
Und die anderen? Die 172.30.1.201 dürfte die IP des VPN-Servers sein. Ist die erreichbar? Und was ist mit 172.30.1.112 und 172.30.1.123?
 
Genau, die 172.30.1.201 ist der Server.
Die 172.30.1.112 auf 172.30.1.123 resultiert auf dieser Zeile
Code:
route 172.30.1.112 255.255.255.255 172.30.1.123
und hat den Zweck einen Netzwerkdrucker unter der IP 172.30.1.112 nicht erreichbar zu machen. Um etwa unbeabsichtigte Ausdrucke am anderen Ort auszuschließen.

Zur Erreichbarkeit der 172.30.1.201: Die ist nicht erreichbar, insofern als versucht wird über die hiesige OpenVPN-Verbindung zu routen. Da der Server der hiesigen Verbindung und die Box der zweiten Verbindung in keinerlei Zusammenhang stehen, geht die Verbindung ins Leere.
Auf dem OpenVPN-Server der hiesigen Verbindung steht u.A. ein

Code:
ifconfig 10.2.1.101 255.255.255.0
push "route-gateway 10.2.1.101"


max-clients 10
mode server
#ip zu weisung an clients
#ifconfig-pool 10.2.1.102 10.2.1.120


push "route 10.2.1.0 255.255.255.0"




push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 4.2.2.1"

und hier als Ganzes:

Code:
user openvppn
group openvppn




 #  OpenVPN 2.1 Config, Thu Jan  1 01:02:19 CET 1970
local x.x.x.x
port 443




proto tcp-server
dev tap


#Helperline for rc.openvpn to add tap0 to lan bridge


ca /etc/openvpn/easy-rsa2/keys/ca.crt
cert /etc/openvpn/easy-rsa2/keys/server.crt
key /etc/openvpn/easy-rsa2/keys/server.key    # Diese Datei geheim halten.  # This file should be kept secret




dh /etc/openvpn/easy-rsa2/keys/dh1024.pem


#nicht in original-server-config drin
tls-server




port 443 
ifconfig 10.2.1.101 255.255.255.0
push "route-gateway 10.2.1.101"


max-clients 10
mode server
#ip zu weisung an clients
#ifconfig-pool 10.2.1.102 10.2.1.120


push "route 10.2.1.0 255.255.255.0"




push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 4.2.2.1"






#client-to-client


#nachfolgend erledigt
tun-mtu 1500
tun-mtu-extra 32
mssfix 1450




#
keepalive 5 30
comp-lzo
persist-key
persist-tun
status /etc/openvpn/443.log
log-append /etc/openvpn/443-ovp.log








## cipher AES-256-CBC
cipher AES-128-CBC


verb 3
route 172.30.2.0 255.255.255.0 10.2.1.102
 
Zuletzt bearbeitet:
Ich glaub nicht so recht an Routing (das ist ja für das Netz über tap1 auch o.k.).
Sicher, dass genau diese Config ohne das andere OpenVPN lief? Ich würde sonst als erstes mal auf eine falsche (asymmetrische) Einstellung zum "lzo" tippen.
 
so schaut das Routing aus, wenn die hiesige Verbindung nicht läuft. Verbindung auf die zweite Box klappt.


Code:
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.173.68.20    *               255.255.255.255 UH    2      0        0 dsl
10.173.68.21    *               255.255.255.255 UH    2      0        0 dsl
172.30.1.112    172.30.1.123    255.255.255.255 UGH   0      0        0 tap0
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
173.30.1.201    *               255.255.255.255 UH    2      0        0 dsl
172.30.1.0      *               255.255.255.0   U     0      0        0 tap0
172.30.2.0      *               255.255.255.0   U     0      0        0 lan
192.168.189.0   *               255.255.255.0   U     0      0        0 guest
10.173.24.0     *               255.255.248.0   U     2      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
 
Kostenlos!

Statistik des Forums

Themen
248,918
Beiträge
2,305,056
Mitglieder
378,640
Neuestes Mitglied
vapep43913