PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : OpenSWAN L2TP/IPSEC: Verbindung geht nur über NAT in Virtueller Maschine



dave_the_wave
15.01.12, 13:24
Hallo Forum,

ich setze gerade einen VPN-Server unter Ubuntu auf, damit Clients per L2TP/IPSEC auf Dienste in unserem Netz zugreifen können. Ich habe mich dabei primär an folgende Anleitung gehalten:

http://rootmanager.com/ubuntu-ipsec-l2tp-windows-domain-auth/setting-up-openswan-xl2tpd-with-native-windows-clients-lucid.html

Wenn ich mich intern im Netz befinde, funktioniert die Verbindung wunderbar. Allerdings kann ich mich von zuhause erstmal nicht einwählen. Dort befinde ich mich hinter einem normalen Heimrouter (NAT).

Wenn ich das ganze innerhalb einer virtuellen Maschine (in VMWare Player, Windows 7) teste, und das Netzwerk auf NAT einstelle, dann kann ich seltsamerweise eine Verbindung aufbauen. Bei Bridged-Network funktioniert das wiederum nicht.

Das sieht ungefähr so aus:

funktioniert:

VPN (oeffentl. IP) <-----> Heimrouter (NAT) <-----> PC <-----> VM (NAT)

funktioniert nicht:

VPN (oeffentl. IP) <-----> Heimrouter (NAT) <-----> PC

VPN (oeffentl. IP) <-----> Heimrouter (NAT) <-----> PC <-----> VM (Bridged)


Ich habe schon mehrere Sachen ausprobiert, darunter auch NAT-T zu erzwingen (forceencaps=yes). Hat aber alles nichts genützt.

Das ganze ist echt seltsam, aber vielleicht hat jemand eine Idee.

derRichard
15.01.12, 13:41
hmm, was genau geht nun und was nicht?

ipsec/l2tp kann man in vier modi verwenden (nach größes der schmerzen für den admin sortiert):

client - internet - server
client - nat - internet - server
client - internet - nat server
client - nat - internet - nat - server


ich rate dir dringend strongswan statt openswan zuverwenden.
openswan+nat+l2tp sind keine freunde, da gibt es oft probleme.
die genaue bugid habe ich grad nicht im kopf, aber bei openswan gibt
es ein paar show-stopper.

welche clients musst du bedienen?
ipsec/l2tp ist schon recht antik.
win7 kann beispielsweise schon ikev2

//richard

derRichard
15.01.12, 14:21
ich sehe grad, dass du den beitrag bearbeitet hast.

wo genau schlägt der verbindungsaufbau fehl?
mit welchen clients testest du es?

kannst du es mal ohne virtuelles netzwerk testen?
wenn man ipsec ohne nat verwendet, dann geht alles über esp.
vielleicht wird das nicht richtig weitergeleitet.
es gibt ja noch immer entwickler, die denken es gäbe nur tcp, udp und icmp. :P

//richard

dave_the_wave
15.01.12, 14:43
Hi,

Hier mal ein tcpdump von einer fehlgeschlagenen Verbindung (vllt. hilfts ja):

15:21:57.241440 IP <meine_ip>.500 > <server_ip>.500: isakmp: phase 1 I
ident
15:21:57.242515 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:21:58.237831 IP <meine_ip>.500 > <server_ip>.500: isakmp: phase 1 I
ident
15:21:58.238520 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:00.237893 IP <meine_ip>.500 > <server_ip>.500: isakmp: phase 1 I
ident
15:22:00.238554 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:04.241296 IP <meine_ip>.500 > <server_ip>.500: isakmp: phase 1 I
ident
15:22:04.241956 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:07.245142 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:08.246309 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:10.248528 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:14.252716 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:27.264717 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:28.265890 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:30.268059 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident
15:22:34.272268 IP <server_ip>.500 > <meine_ip>.500: isakmp: phase 1 R
ident

Als irgendwie scheint kein NAT-T gemacht zu werden.

Wie gesagt, ich frage mich warum es dann über 2xNAT funktioniert? Also NAT bei meinem Heimrouter und NAT in der VM. Von meinem Hostsystem funktioniert es nicht.

Ich teste zur Zeit Clients mit Windows 7 und Ubuntu. Wobei ich als Ziel habe alle gängigen Betriebssysteme zu unterstützen ( also z.B. auch Apple IOS und Android).

In bezug auf Windows habe ich noch dies hier gefunden:

http://blog.isrichtig.de/Lists/Beitraege/Post.aspx?List=1d9a40b5-d004-4ace-8b09-2ba5b094501c&ID=102&Web=c6f338be-ae15-4558-a9d5-6cb4b33e4f50

Hat aber auch nichts gebracht.

Mir ist wichtig, dass die User möglichst wenig Probleme mit der Konfiguration haben. Sie sollten auch nicht extra Software installieren müssen. Sonst würde ich nicht den Aufwand betreiben und stattdessen einfach OpenVPN nehmen.

Aber StrongSWAN werd ich mir auch mal ansehen, wenn das hier nicht hin haut.

derRichard
15.01.12, 15:06
bei vpns ist ein tcpdump nur selten hilfreich.
schau lieber direkt die logs an.
das musst du aber selbst machen.

wegen "ipsec/l2tp" geht überall ohne installation, da wäre ich vorsichtig.

//richard