VPN mit Libreswan verbindet, aber kein Datenverkehr
Hallo
Ich versuche mit Linux mich zu einem VPN-Server zu verbinden. Mit Windows funktioniert das wunderbar (hier nutze ich den ShrewSoft Client).
Mit Linux habe ich Probleme. Hier benutze ich Libreswan auf Debian (und auch mit einem Xubuntu-PC).
Fologende Konfiguration:
Verbindung wird aufgebaut und virtuelles Netzwerkgerät vti0 eingerichtet mit IP 192.168.92.234 (eine IP aus dem entfernten Netzwerk).
Ich habe dann noch ausgeführt:
ip address show liefert:
ip tunnel show liefert:
ip route show liefert:
Aber versuche ich zB ein Ping auf einen Server im entfernten Netzwerk, dann kommen keine Pakete zurück
tcpdump -i vti0 -n liefert:
Weiß jemand was hier ggf. noch fehlt? Muß ich ggf noch eine Route hinzufügen?
Ich wäre echt dankbar für Hilfe. Das kann doch nicht sein daß das so kompliziert ist - so n bissl VPN. Ich hab schon andere VPNs eingerichtet (zB zu ner Fritzbox) und das funktionierte einfach.
Vielen Dank
Johannes
Ich versuche mit Linux mich zu einem VPN-Server zu verbinden. Mit Windows funktioniert das wunderbar (hier nutze ich den ShrewSoft Client).
Mit Linux habe ich Probleme. Hier benutze ich Libreswan auf Debian (und auch mit einem Xubuntu-PC).
Fologende Konfiguration:
config setup
protostack = netkey
conn Office1
authby = secret
right = some.domain.tld
rightid = @Office_admin
rightnexthop = %defaultroute
left = 192.168.42.91
leftsubnet = 192.168.92.0/24
leftvti = 192.168.92.234/24
leftid = @Office
keyexchange = ike
ike = aes256-sha2;modp2048
esp = aes256-sha2;modp2048
ikelifetime = 4h
keylife = 8h
auto = add
aggrmode = yes
vti-interface = vti0
vti-routing = yes
mark = 5/0xffffffff
Verbindung wird aufgebaut und virtuelles Netzwerkgerät vti0 eingerichtet mit IP 192.168.92.234 (eine IP aus dem entfernten Netzwerk).
Ich habe dann noch ausgeführt:
sudo ip route add 192.168.92.0/24 dev vti0
ip address show liefert:
vti0@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1332 qdisc noqueue state UNKNOWN group default qlen 1000
link/ipip 192.168.42.91 peer xx.yyy.zzz.vv
inet 192.168.92.234/24 scope global vti0
valid_lft forever preferred_lft forever
ip tunnel show liefert:
vti0: ip/ip remote xx.yyy.zzz.vv local 192.168.42.91 ttl inherit key 5
ip_vti0: ip/ip remote any local any ttl inherit nopmtudisc key 0
ip route show liefert:
default via 192.168.42.129 dev enp0s12u2 proto dhcp metric 100
xx.yyy.zzz.v dev vti0 scope link
169.254.0.0/16 dev enp0s12u2 scope link metric 1000
192.168.42.0/24 dev enp0s12u2 proto kernel scope link src
192.168.42.91 metric 100
192.168.92.0/24 dev vti0 proto kernel scope link src 192.168.92.234
Aber versuche ich zB ein Ping auf einen Server im entfernten Netzwerk, dann kommen keine Pakete zurück
tcpdump -i vti0 -n liefert:
13:45:31.577013 IP 192.168.92.234 > 192.168.92.10: ICMP echo request, id 4654, seq 1, length 64
Weiß jemand was hier ggf. noch fehlt? Muß ich ggf noch eine Route hinzufügen?
Ich wäre echt dankbar für Hilfe. Das kann doch nicht sein daß das so kompliziert ist - so n bissl VPN. Ich hab schon andere VPNs eingerichtet (zB zu ner Fritzbox) und das funktionierte einfach.
Vielen Dank
Johannes
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 388188
Url: https://administrator.de/contentid/388188
Ausgedruckt am: 21.11.2024 um 21:11 Uhr
8 Kommentare
Neuester Kommentar
Ich versuche mit Linux mich zu einem VPN-Server zu verbinden.
Wir können aus dem Kontext ja nur raten, aber WELCHES VPN Protokoll nutzt du ??Vermutlich native IPsec mit IKE Ver. 1, oder ?
Ich habe dann noch ausgeführt:
Das ist in der Regel Blödsinn, denn die SA Negotiation von IPsec erledigt das automatisch. Da du ja schon mehrere IPsec VPNs eingerichtet hast solltest du das eigentlich auch wissen. Ein netstat -r -n oder ip route show auf deinem Ubuntu bei aktivem VPN Client (Routing Tabelle) sollte dir das dann auch zeigen das es auch OHNE diese statische Route geht.
Beunruhigen tut einen der show address Output, der hier von einer IP in IP Encapsulation spricht was dann nicht kompatibel wäre mit native IPsec. (IP in IP via native IPsec)
Ansonsten kann man nur vermuten das auf dem remoten VPN Server eine Firewall oder sowas aktiv ist.
Kannst du mit dem Windows Rechner pingen (ICMP) ?
Wenn ja wird es dann kein ICMP Filter sein.
Was man sich ernsthaft fragt ist warum du so einen Exoten wie Libreswan nimmst und nicht den Klassiker Strongswan ?
Und überhaupt... Wenn du schon weisst das es mit dem Shrew Client unter Windows sauber funktioniert WARUM dann bitte nimmst du nicht auch den Shrew Client für Linux ??
Mit apt get install ike kannst du den aus dem Repository installieren oder du nimmst den Code von der Website:
https://www.shrew.net/download/ike
Wenn du das machst achte darauf das keine 2 IPsec Clients auf dem Rechner aktiv oder installiert sind ! Das fürht in der Regel immer zum nicht Funktionieren des VPNs.
Sehr viel hilfreicher wären hier übrigens die Log Auszüge des VPN Servers und deines Libreswan Clients gewesen als die wenig hilfreichen Adress Outputs ! In den Logs sieht man meistens sofort warum es kneift.
Generell sind IPsec VPNs natürlich eine sehr einfache Sache. Siehe auch HIER und mit wenigen Mausklicks oder Konfig Zeilen installiert. Vorausgesetzt man weiss was man macht...
geht also leider auch nicht.
Da stimmt dann was mit deiner Konfig nicht. Auf jeder Seite gibst du ja immer jeweils das remote Netzwerk an. Das wird dann im Rahmen der SA Negotiation beim Tunnelaufbau in die Routing Tabelle übernommen. Statische Routen sind dann überflüssig.Macht ja auch Sinn das das so ist, denn der Routing Eintrag soll ja nur solange aktiv sein wie der VPN Client oder das VPN aktiv ist.
Bei dir scheint das schief zu laufen irgendwie. Du solltest dir also noichmal genau die SA Konfig ansehen und die Masken der Netze die du propagierst.
Übrigens funktioniert der Shrew Client auf einem aktuellen Raspian mit AES 256 und SHA256 als Hash vollkommen problemlos mit diversen IPsec Servern
Wenn die IPsec Verbindung zustande kommt dann ist VPN seitig auch alles richtig ! Ein kleiner Fehler dort in den Credentials würde das sofortige Aus für die VPN Verbindung bedeuten. Das kann man dann sicher als Fehler ausschliessen.
Dann bleibt eigentlich nur übrig das dort eine Firewall (iptables etc.) aktiv ist. Viel was anderes kann es ja nicht mehr sein...
Dann bleibt eigentlich nur übrig das dort eine Firewall (iptables etc.) aktiv ist. Viel was anderes kann es ja nicht mehr sein...