![networkmanager-strongswan vpn - VPN을 통해 특정 IP 라우팅](https://rvso.com/image/168784/networkmanager-strongswan%20vpn%20-%20VPN%EC%9D%84%20%ED%86%B5%ED%95%B4%20%ED%8A%B9%EC%A0%95%20IP%20%EB%9D%BC%EC%9A%B0%ED%8C%85.png)
Linux Mint 19.2에서 VPN을 설정하려고 합니다.
나는네트워크 관리자-strongswan그래서 저는 이 파일을 추가했습니다.VPN아래에/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산출*
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
에는 패킷을 어떻게 처리할지 명시되어 있습니다172.26.199.18/32
.0.0.0.0/0
패킷은 암호화되어 VPN 터널을 통해 전송되어야 합니다. - 및 정책은 암호화된 패킷이 들어올 때 수행할 작업을 알려줍니다. 암호 해독 후 ~에서 ~까지 의 패킷이 지정된 터널에서 오지 않으면 해당 패킷은 삭제됩니다
dir in
. 일반 텍스트 패킷에는 이 사항이 적용되지 않습니다.dir fwd
0.0.0.0/0
172.26.199.18/32
VPN 네트워크 사용을 제한하려면 다음 세 가지 해결 방법이 있습니다.
- 이러한 규칙에 나타나는 네트워크는 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 사용을 포기하고 설치할 수 있습니다.charon 시스템간단한 구성 파일(예: )을 만듭니다
/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
.