![networkmanager-strongswan vpn - Routing einer bestimmten IP über VPN](https://rvso.com/image/168784/networkmanager-strongswan%20vpn%20-%20Routing%20einer%20bestimmten%20IP%20%C3%BCber%20VPN.png)
Ich versuche, ein VPN unter Linux Mint 19.2 einzurichten.
Ich verwende dieNetzwerkmanager-Strongswanalso habe ich diese Datei mit dem Namen hinzugefügtVPNunter/etc/NetworkManager/system-connections/
[connection]
id=VPN
uuid=be1d4fd1-bbaa-4aa9-9fdc-e293bf16fe67
type=vpn
autoconnect=false
permissions=
timestamp=1582680217
[vpn]
address=vpn********.it
certificate=
encap=yes
ipcomp=no
method=eap
password-flags=0
proposal=no
user=user
virtual=yes
service-type=org.freedesktop.NetworkManager.strongswan
[vpn-secrets]
password=password
[ipv4]
dns-search=
ignore-auto-dns=true
ignore-auto-routes=true
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=ignore
Die Verbindung ist in Ordnung, ich kann per SSH auf das private Netzwerk zugreifen. Das große Problem ist, dass ich nach der Verbindung nicht im Internet surfen kann, da die Verbindung zum VPN alle anderen Adressen sperrt.
Ich habe das ignore-auto-routes
Flag in der Konfiguration hinzugefügt, warum ist meine Verbindung also gesperrt?
IP-AdresseAusgabe*
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:3c:de:1b brd ff:ff:ff:ff:ff:ff
inet yy.16.209.132/24 brd yy.16.209.255 scope global dynamic noprefixroute ens33
valid_lft 1656sec preferred_lft 1656sec
inet yy.26.199.18/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::216e:bcc0:3b4f:44b2/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Route -nAusgabe
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 yy.16.209.2 0.0.0.0 UG 20100 0 0 ens33
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 ens33
yy.16.209.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
yy.26.199.18 0.0.0.0 255.255.255.255 UH 50 0 0 ens33
yy.26.199.18 0.0.0.0 255.255.255.255 UH 100 0 0 ens33
IP-XFRM-RichtlinieAusgabeKEIN VPN
src yy.16.209.0/24 dst yy.16.209.0/24
dir fwd priority 175423
src yy.16.209.0/24 dst yy.16.209.0/24
dir in priority 175423
src yy.16.209.0/24 dst yy.16.209.0/24
dir out priority 175423
src 169.254.0.0/16 dst 169.254.0.0/16
dir fwd priority 183615
src 169.254.0.0/16 dst 169.254.0.0/16
dir in priority 183615
src 169.254.0.0/16 dst 169.254.0.0/16
dir out priority 183615
src fe80::/64 dst fe80::/64
dir fwd priority 134463
src fe80::/64 dst fe80::/64
dir in priority 134463
src fe80::/64 dst fe80::/64
dir out priority 134463
src yy.26.199.18/32 dst 0.0.0.0/0
dir out priority 383615
tmpl src yy.16.209.132 dst xx.xx.124.58
proto esp spi 0xc57cfb3f reqid 7 mode tunnel
src 0.0.0.0/0 dst yy.26.199.18/32
dir fwd priority 383615
tmpl src xx.xx.124.58 dst yy.16.209.132
proto esp reqid 7 mode tunnel
src 0.0.0.0/0 dst yy.26.199.18/32
dir in priority 383615
tmpl src xx.xx.124.58 dst yy.16.209.132
proto esp reqid 7 mode tunnel
src ::1/128 dst ::1/128
dir fwd priority 68927
src ::1/128 dst ::1/128
dir in priority 68927
src ::1/128 dst ::1/128
dir out priority 68927
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
IP-XFRM-RichtlinieAusgabeUNTER VPN
src yy.26.199.18/32 dst 0.0.0.0/0
dir out priority 383615
tmpl src yy.16.209.132 dst xx.xx.124.58
proto esp spi 0xc787ea42 reqid 2 mode tunnel
src 0.0.0.0/0 dst yy.26.199.18/32
dir fwd priority 383615
tmpl src xx.xx.124.58 dst yy.16.209.132
proto esp reqid 2 mode tunnel
src 0.0.0.0/0 dst yy.26.199.18/32
dir in priority 383615
tmpl src xx.xx.124.58 dst yy.16.209.132
proto esp reqid 2 mode tunnel
src fe80::/64 dst fe80::/64
dir fwd priority 134463
src fe80::/64 dst fe80::/64
dir in priority 134463
src fe80::/64 dst fe80::/64
dir out priority 134463
src ::1/128 dst ::1/128
dir fwd priority 68927
src ::1/128 dst ::1/128
dir in priority 68927
src ::1/128 dst ::1/128
dir out priority 68927
src yy.16.209.0/24 dst yy.16.209.0/24
dir fwd priority 175423
src yy.16.209.0/24 dst yy.16.209.0/24
dir in priority 175423
src yy.16.209.0/24 dst yy.16.209.0/24
dir out priority 175423
src 169.254.0.0/16 dst 169.254.0.0/16
dir fwd priority 183615
src 169.254.0.0/16 dst 169.254.0.0/16
dir in priority 183615
src 169.254.0.0/16 dst 169.254.0.0/16
dir out priority 183615
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket in priority 0
src 0.0.0.0/0 dst 0.0.0.0/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
src ::/0 dst ::/0
socket in priority 0
src ::/0 dst ::/0
socket out priority 0
Beim Vergleichen der Ausgaben kann ich erkennen, dass dieser Teil hinzugefügt wird, während eine Verbindung zum VPN besteht:
src yy.26.199.18/32 dst 0.0.0.0/0
dir out priority 383615
tmpl src yy.16.209.132 dst xx.xx.124.58
proto esp spi 0xc787ea42 reqid 2 mode tunnel
src 0.0.0.0/0 dst yy.26.199.18/32
dir fwd priority 383615
tmpl src xx.xx.124.58 dst yy.16.209.132
proto esp reqid 2 mode tunnel
src 0.0.0.0/0 dst yy.26.199.18/32
dir in priority 383615
tmpl src xx.xx.124.58 dst yy.16.209.132
proto esp reqid 2 mode tunnel
Ich habe vieles probiert, aber ohne Erfolg.
Metric
habe versucht, den Wert für yy.26.199.18 auf 1050 und 1100 zu erhöhen .route del default
&&ip route add default via yy.26.199.18 dev ens33
- Habe versucht die Routeneinträge yy.26.199.18 zu löschen aber es ändert sich nichts
und jede Menge anderer Blödsinn.
Ich möchte meine Verbindung also für das „normale Internet“ nutzen und dabei bestimmte Adressen über VPN routen.
Ist das möglich?
Antwort1
Starker Schwanverwendet Policy-Routing, das über xfrm
Richtlinien konfiguriert wird:
- Die Richtlinie gibt an, was mit Paketen von an
dir out
zu tun ist : Sie müssen verschlüsselt und durch den VPN-Tunnel gesendet werden.172.26.199.18/32
0.0.0.0/0
- Die
dir in
unddir fwd
-Richtlinien geben an, was zu tun ist, wenn ein verschlüsseltes Paket eingeht. Wenn nach der Entschlüsselung ein Paket von0.0.0.0/0
nach172.26.199.18/32
nicht aus dem angegebenen Tunnel stammt, wird es verworfen. Klartextpakete unterliegen hiervon nicht.
Um die Nutzung des VPN-Netzwerks einzuschränken, haben Sie drei Lösungen:
- Die Netzwerke, die in diesen Regeln erscheinen, werden zwischen Ihrem IKE-Server und dem Remote-Server ausgehandelt. Das NetworkManager-Plugin schlägt immer einen Tunnel zwischen
your_ip/32
und vor0.0.0.0/0
. Wenn der Remote-Server und vorschlägt0.0.0.0/0
,10.0.0.0/8
lautet die resultierende Verbindung: zwischenyour_ip/32
und10.0.0.0/8
. Sie müssen also den Administrator des Remote-Endpunkts bitten, seinen IKE-Daemon richtig zu konfigurieren. Sie können auf die Verwendung von NetworkManager für den VPN-Tunnel verzichten, installierenCharon-systemdund erstellen Sie eine einfache Konfigurationsdatei (zB
/etc/swanctl/conf.d/my_vpn.conf
):connections { my_vpn { version = 2 local_addrs=%any remote_addrs=vpn********.it local { auth = eap eap_id = your_username } remote { auth = pubkey id = server_name } children { my_tunnel { #local_ts = dynamic remote_ts = remote_network } } } }
Laden Sie den Daemon (
systemctl reload strongswan-swanctl
) neu und führen Sie Folgendes aus:swanctl --initiate --ike my_vpn --child my_tunnel
Fügen Sie Ihre eigenen Richtlinien mit einem
priority
kleineren Wert als dem automatisch installierten hinzu, der unverschlüsselten Datenverkehr zulässt, z. B.:ip xfrm policy add src your_ip/32 dst 192.0.2.0/24 \ dir out priority 1000 ip xfrm policy add src 192.0.2.0/24 dst your_ip/32 \ dir in priority 1000
Dadurch wird Klartextverkehr ermöglicht
192.0.2.0/24
.