![networkmanager-strongswan vpn - VPN 経由で特定の IP をルーティングする](https://rvso.com/image/168784/networkmanager-strongswan%20vpn%20-%20VPN%20%E7%B5%8C%E7%94%B1%E3%81%A7%E7%89%B9%E5%AE%9A%E3%81%AE%20IP%20%E3%82%92%E3%83%AB%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%81%99%E3%82%8B.png)
Linux Mint 19.2 で VPN を設定しようとしています。
私はネットワーク マネージャー StrongSwanそこで、このファイルを追加しました仮想プライベートネットワーク下/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
接続は良好で、プライベート ネットワーク上で ssh を使用してアクセスできます。大きな問題は、接続後にインターネットを閲覧できなくなり、VPN に接続すると他のすべてのアドレスがロックされることです。構成にフラグ
を追加したのにignore-auto-routes
、なぜ接続がロックされているのでしょうか?
ip a出力*
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
ルート -n出力
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 ポリシー出力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 ポリシー出力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
出力を比較すると、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
いろいろ試してみましたが、うまくいきませんでした。
Metric
yy.26.199.18 を 1050 と 1100 に増やそうとしました。route del default
&&ip route add default via yy.26.199.18 dev ens33
- ルートエントリ yy.26.199.18 を削除しようとしましたが、何も変わりません
その他にもたくさんの馬鹿げたものがあります。
そこで、特定のアドレスを VPN 経由でルーティングしながら、「通常のインターネット」に接続を使用したいと考えています。
これは可能ですか?
答え1
ストロングスワンxfrm
ポリシーを通じて設定されるポリシー ルーティングを使用します。
- ポリシーは、から
dir out
へのパケットをどのように処理するかを指定します。パケットは暗号化され、VPN トンネルを介して送信される必要があります。172.26.199.18/32
0.0.0.0/0
- およびポリシー
dir in
は、暗号化されたパケットが着信したときに何を行うかを指定します。 復号化後、からdir fwd
のパケットが指定されたトンネルから来ていない場合は、そのパケットはドロップされます。 プレーンテキスト パケットはこれの対象になりません。0.0.0.0/0
172.26.199.18/32
VPN ネットワークの使用を制限するには、次の 3 つの解決策があります。
- これらのルールに表示されるネットワークは、IKE サーバーとリモート サーバーの間でネゴシエートされます。NetworkManager プラグインは常に、
your_ip/32
との間のトンネルを提案します0.0.0.0/0
。リモート サーバーが と を提案した場合0.0.0.0/0
、10.0.0.0/8
結果として得られる接続は次のようになります:your_ip/32
との間10.0.0.0/8
。したがって、リモート エンドポイントの管理者に IKE デーモンを適切に構成するように依頼する必要があります。 VPNトンネルにNetworkManagerを使用することをやめて、カロンシステム簡単な設定ファイルを作成します (例
/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 } } } }
デーモン(
systemctl reload strongswan-swanctl
)をリロードして実行します:swanctl --initiate --ike my_vpn --child my_tunnel
自動的にインストールされる値よりも小さい値を持つ独自のポリシーを追加して
priority
、暗号化されていないトラフィックを許可します。例: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
これにより、プレーンテキストのトラフィックが許可されます
192.0.2.0/24
。