PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenVPN Gateway für das mobile Internet



xplod
24.09.11, 14:33
Hallo zusammen.

Ich möchte ausprobieren, wie negativ es sich auf mein mobiles Internet auswirkt, wenn mein Handy nicht direkt kommuniziert, sondern über einen verschlüsselten VPN-Tunnel.

Die Einrichtung des VPN als Tap war kein Problem, so dass ich ohne Probleme einen Samba Server ans VPN anbinden konnte. Jetzt möchte ich aber einen eigenen Tunnel aufsetzen, über den sämtlicher Traffic abgewickelt wird.

Die VPN Verbindung zwischen den Teilnehmern und dem Server steht, bei meinem Handy kann ich nach erfolgreicher Verbindung nicht mehr aufs Internet zugreifen, so dass ich auf ein fehlendes Routing beim Server tippe.
Der Windows Rechner hingegen geht einfach weiter über seinen normalen Router ins Netz...
Server.conf:


local <globale ip>
proto udp
port 1194
dev tun
server 10.8.0.0 255.255.255.0

keepalive 10 120
ifconfig-pool-persist /etc/openvpn/gateway_ipp.txt
persist-key
persist-tun

push "redirect-gateway"
push "dhcp-option DNS <globalIP>"

#Decrease user from root to nobody (security)
user nobody
group nobody

#Logging etc.
status /var/log/gateway_openvpn-status.log
log /var/log/gateway_openvpn.log

#Certificates
dh /etc/openvpn/xplod_keys/dh1024.pem
ca /etc/openvpn/xplod_keys/ca.crt
cert /etc/openvpn/xplod_keys/server.crt
key /etc/openvpn/xplod_keys/server.key


Die IPTables sind wie folgt konfiguriert:


Chain INPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
13 546 ACCEPT udp -- eth0 any anywhere anywhere udp dpt:openvpn
0 0 ACCEPT all -- tun+ any anywhere anywhere

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
385 25549 ACCEPT all -- any any anywhere anywhere state RELATED,ESTABLISHED
0 0 ACCEPT all -- eth0 any anywhere 10.8.0.0/24
19 6447 REJECT tcp -- any any anywhere anywhere tcp flags:!FIN,SYN,RST,ACK/SYN reject-with tcp-reset
0 0 DROP all -- any any anywhere anywhere state INVALID
0 0 ACCEPT all -- lo lo anywhere anywhere
415 26295 ACCEPT udp -- tun0 any anywhere anywhere
1217 66430 DROP all -- any any anywhere anywhere


Table = NAT:


Chain POSTROUTING (policy ACCEPT 146K packets, 9924K bytes)
pkts bytes target prot opt in out source destination
202 12480 MASQUERADE all -- any eth0 10.8.0.0/24 anywhere



Auf dem Windows System kann man nach der Verbindung folgende Routen auslesen:


IPv4-Routentabelle
================================================== =========================
Aktive Routen:
Netzwerkziel Netzwerkmaske Gateway Schnittstelle Metrik
0.0.0.0 0.0.0.0 10.8.0.9 10.8.0.10 30
10.8.0.1 255.255.255.255 10.8.0.9 10.8.0.10 30
10.8.0.8 255.255.255.252 Auf Verbindung 10.8.0.10 286
10.8.0.10 255.255.255.255 Auf Verbindung 10.8.0.10 286
10.8.0.11 255.255.255.255 Auf Verbindung 10.8.0.10 286
<globale IP> 255.255.255.255 192.168.1.1 192.168.1.2 10
127.0.0.0 255.0.0.0 Auf Verbindung 127.0.0.1 306
127.0.0.1 255.255.255.255 Auf Verbindung 127.0.0.1 306
127.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
192.168.1.0 255.255.255.0 Auf Verbindung 192.168.1.2 266
192.168.1.2 255.255.255.255 Auf Verbindung 192.168.1.2 266
192.168.1.255 255.255.255.255 Auf Verbindung 192.168.1.2 266
224.0.0.0 240.0.0.0 Auf Verbindung 127.0.0.1 306
224.0.0.0 240.0.0.0 Auf Verbindung 192.168.1.2 266
224.0.0.0 240.0.0.0 Auf Verbindung 10.8.0.10 286
255.255.255.255 255.255.255.255 Auf Verbindung 127.0.0.1 306
255.255.255.255 255.255.255.255 Auf Verbindung 192.168.1.2 266
255.255.255.255 255.255.255.255 Auf Verbindung 10.8.0.10 286
================================================== =========================


Leider funktioniert ausser dem Zugriff auf den Server selber sonst keine Verbindung ins Internet. Kann mir jemand sagen, was noch fehlt?

xplod
01.10.11, 10:08
Gibt es eine Möglichkeit herauszufinden, ob es am Routing oder am VPN Server hakt?

Wenn ich auf eine der Domains zugreife, die auf dem Server gehostet werden, dann läuft alles einwandfrei. Wenn ich aber auf irgendeine andere Internetseite zugreifen möchte, dann löst er die IP erfolgreich auf, kann sie aber nicht öffnen. Die IP 10.8.0.9 aus den Routing Infos kann ich nicht anpingen. Ist das normal?

Muß ich die Fehlerquelle nun am VPN suchen, oder in den iptables?

Gruß,
Dirk

derRichard
01.10.11, 11:34
Muß ich die Fehlerquelle nun am VPN suchen, oder in den iptables?


schau doch mal nach wo genau die pakete verloren gehen...
tcpdump kann dir dabei helfen.

//richard

xplod
03.10.11, 10:40
<globalIP> ist die Addresse meines Servers.

Hier erstmal ein tcpdump -v meines Mobiltelefons (Android).
10.140.221.217 scheint ein Loopback device von Android zu sein, denn der ping dorthin geht extrem schnell.


09:46:13.478571 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 81) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 53
09:46:22.343927 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 81) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 53
09:46:23.398584 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 81) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 53
09:46:23.945246 IP (tos 0x0, ttl 64, id 48961, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.1864 > <globalIP>.domain: 770+ A? home.dolphin-browser.com. (42)
09:46:25.511621 IP (tos 0x0, ttl 64, id 49118, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.43698 > <globalIP>.domain: 42356+ A? www.google.com. (32)
09:46:28.400965 arp who-has 10.140.221.218 tell 10.140.221.217
09:46:28.406946 arp reply 10.140.221.218 is-at 02:50:f3:00:00:00 (oui Unknown)
09:46:28.950922 IP (tos 0x0, ttl 64, id 48962, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.1864 > <globalIP>.domain: 770+ A? home.dolphin-browser.com. (42)
09:46:30.517084 IP (tos 0x0, ttl 64, id 49119, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.43698 > <globalIP>.domain: 42356+ A? www.google.com. (32)
09:46:31.716883 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 81) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 53
09:46:33.883875 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 81) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 53
09:46:33.951624 IP (tos 0x0, ttl 64, id 49962, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.61565 > <globalIP>.domain: 60451+ A? home.dolphin-browser.com. (42)
09:46:35.521265 IP (tos 0x0, ttl 64, id 50119, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.40940 > <globalIP>.domain: 39854+ A? www.google.com. (32)
09:46:38.956842 IP (tos 0x0, ttl 64, id 49963, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.61565 > <globalIP>.domain: 60451+ A? home.dolphin-browser.com. (42)
09:46:40.526789 IP (tos 0x0, ttl 64, id 50120, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.40940 > <globalIP>.domain: 39854+ A? www.google.com. (32)
09:46:42.275415 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 81) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 53
09:46:43.442743 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 81) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 53
09:46:43.962305 IP (tos 0x0, ttl 64, id 50963, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.52429 > <globalIP>.domain: 51617+ A? home.dolphin-browser.com. (42)
09:46:45.534723 IP (tos 0x0, ttl 64, id 51120, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.18154 > <globalIP>.domain: 16995+ A? www.google.com. (32)
09:46:48.983667 IP (tos 0x0, ttl 64, id 50964, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.52429 > <globalIP>.domain: 51617+ A? home.dolphin-browser.com. (42)
09:46:49.812799 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 129) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 101
09:46:50.325373 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 129) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 101
09:46:50.326837 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 121) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 93
09:46:50.329492 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 169) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 141
09:46:50.551172 IP (tos 0x0, ttl 64, id 51121, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.18154 > <globalIP>.domain: 16995+ A? www.google.com. (32)
09:46:51.145593 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 121) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 93
09:46:51.145593 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 121) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 93
09:46:51.149896 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 121) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 93
09:46:51.156275 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 121) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 93
09:46:51.191370 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 121) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 93
09:46:53.648981 IP (tos 0x0, ttl 64, id 51931, offset 0, flags [DF], proto UDP (17), length 74) 10.140.221.217.37440 > <globalIP>.domain: 36602+ A? services.dolphin-browser.com. (46)
09:46:54.004541 IP (tos 0x0, ttl 64, id 51967, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.31162 > <globalIP>.domain: 30015+ A? home.dolphin-browser.com. (42)
09:46:54.820947 arp who-has 10.140.221.218 tell 10.140.221.217
09:46:54.830560 arp reply 10.140.221.218 is-at 02:50:f3:00:00:00 (oui Unknown)
09:46:55.576288 IP (tos 0x0, ttl 64, id 52124, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.45918 > <globalIP>.domain: 44227+ A? www.google.com. (32)
09:46:58.651087 IP (tos 0x0, ttl 64, id 51932, offset 0, flags [DF], proto UDP (17), length 74) 10.140.221.217.37440 > <globalIP>.domain: 36602+ A? services.dolphin-browser.com. (46)
09:46:59.027063 IP (tos 0x0, ttl 64, id 51968, offset 0, flags [DF], proto UDP (17), length 70) 10.140.221.217.31162 > <globalIP>.domain: 30015+ A? home.dolphin-browser.com. (42)
09:47:00.575586 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 81) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 53
09:47:00.613336 IP (tos 0x0, ttl 64, id 52125, offset 0, flags [DF], proto UDP (17), length 60) 10.140.221.217.45918 > <globalIP>.domain: 44227+ A? www.google.com. (32)
09:47:01.633478 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 81) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 53
09:47:03.656702 IP (tos 0x0, ttl 64, id 52932, offset 0, flags [DF], proto UDP (17), length 74) 10.140.221.217.28887 > <globalIP>.domain: 27506+ A? services.dolphin-browser.com. (46)
09:47:06.297602 IP (tos 0x0, ttl 64, id 53196, offset 0, flags [DF], proto UDP (17), length 63) 10.140.221.217.59031 > <globalIP>.domain: 57691+ A? en.mywebzines.com. (35)
09:47:08.661310 IP (tos 0x0, ttl 64, id 52933, offset 0, flags [DF], proto UDP (17), length 74) 10.140.221.217.28887 > <globalIP>.domain: 27506+ A? services.dolphin-browser.com. (46)
09:47:11.085352 IP (tos 0x0, ttl 50, id 0, offset 0, flags [DF], proto UDP (17), length 81) <globalIP>.openvpn > 10.140.221.217.43426: UDP, length 53
09:47:11.086237 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 81) 10.140.221.217.43426 > <globalIP>.openvpn: UDP, length 53
09:47:11.308252 IP (tos 0x0, ttl 64, id 53197, offset 0, flags [DF], proto UDP (17), length 63) 10.140.221.217.59031 > <globalIP>.domain: 57691+ A? en.mywebzines.com. (35)
09:47:13.666040 IP (tos 0x0, ttl 64, id 53933, offset 0, flags [DF], proto UDP (17), length 74) 10.140.221.217.20983 > <globalIP>.domain: 16942+ A? services.dolphin-browser.com. (46)
09:47:16.311457 IP (tos 0x0, ttl 64, id 54198, offset 0, flags [DF], proto UDP (17), length 63) 10.140.221.217.56260 > <globalIP>.domain: 55102+ A? en.mywebzines.com. (35)


Hier ein Dumpvon meinem Server für ETH0:


10:28:55.630560 IP (tos 0x10, ttl 64, id 58788, offset 0, flags [DF], proto TCP (6), length 748) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 334352:335060(708) ack 1665 win 175
10:28:55.630615 IP (tos 0x10, ttl 64, id 58789, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 335060:335320(260) ack 1665 win 175
10:28:55.630663 IP (tos 0x10, ttl 64, id 58790, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 335320:335580(260) ack 1665 win 175
10:28:55.630709 IP (tos 0x10, ttl 64, id 58791, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 335580:335840(260) ack 1665 win 175
10:28:55.630755 IP (tos 0x10, ttl 64, id 58792, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 335840:336100(260) ack 1665 win 175
10:28:55.630801 IP (tos 0x10, ttl 64, id 58793, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 336100:336360(260) ack 1665 win 175
10:28:55.630847 IP (tos 0x10, ttl 64, id 58794, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 336360:336620(260) ack 1665 win 175
10:28:55.630900 IP (tos 0x10, ttl 64, id 58795, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 336620:336880(260) ack 1665 win 175
10:28:55.630947 IP (tos 0x10, ttl 64, id 58796, offset 0, flags [DF], proto TCP (6), length 300) <globalIP> > ip-88-153-118-209.unitymediagroup.de.49657: P 336880:337140(260) ack 1665 win 175


Hier ein tcpdump -v -i tun0, wenn ich von meinem Handy per SMB auf den 10.8.0.1 zugreifen möchte. (Der Samba Server ist aber nicht an dieses Netz gekoppelt!)


tcpdump -v -i tun0
tcpdump: listening on tun0, link-type LINUX_SLL (Linux cooked), capture size 96 bytes
10:34:22.120010 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 78) 10.8.0.6.38279 > 10.8.0.1.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:34:25.126576 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 78) 10.8.0.6.38279 > 10.8.0.1.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:34:28.127181 IP (tos 0x0, ttl 64, id 50547, offset 0, flags [DF], proto TCP (6), length 60) 10.8.0.6.60772 > 10.8.0.1.netbios-ssn: S, cksum 0x0de3 (correct), 752278502:752278502(0) win 4380 <mss 1369,sackOK,timestamp 663189 0,nop,wscale 1>
10:34:28.127213 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40) 10.8.0.1.netbios-ssn > 10.8.0.6.60772: R, cksum 0xa50c (correct), 0:0(0) ack 752278503 win 0
10:34:28.159115 IP (tos 0x0, ttl 64, id 8125, offset 0, flags [DF], proto TCP (6), length 60) 10.8.0.6.52217 > 10.8.0.1.microsoft-ds: S, cksum 0x093c (correct), 745603367:745603367(0) win 4380 <mss 1369,sackOK,timestamp 663194 0,nop,wscale 1>
10:34:28.159149 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40) 10.8.0.1.microsoft-ds > 10.8.0.6.52217: R, cksum 0xa06a (correct), 0:0(0) ack 745603368 win 0
10:34:28.198827 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 78) 10.8.0.6.57196 > 10.8.0.1.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:34:31.207425 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 78) 10.8.0.6.57196 > 10.8.0.1.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST


Wenn ich aber per Browser auf irgendwelche Domains surfen möchte (egal, ob selbst gehostet oder nicht), dann bleibt das -i tun0 log leer.

Somit müsste das Problem doch eigentlich am Routing vom Mobiltelefon auf das OpenVPN Gateway liegen, oder?