Strongswan ikev2 网络管理器插件network-manager-strongswan
安装在 ubuntu 20.04.4 上并配置为自动重新连接。但是当 VPN 不可用时,我想阻止所有可能的传出流量。Strongswan 不会创建单独的隧道接口。而是将虚拟 IP(在我的情况下为 192.168.22.0/24 子网)添加到现有接口并插入相应的路由,例如:
$ 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
2: enp0s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:1c:dd:23:11:5d brd ff:ff:ff:ff:ff:ff
inet 10.22.48.4/24 brd 10.22.48.255 scope global dynamic noprefixroute enp0s5
valid_lft 1781sec preferred_lft 1781sec
inet 192.168.22.12/32 scope global enp0s5
valid_lft forever preferred_lft forever
$ ip route show table 220
default via 10.22.48.1 dev enp0s5 proto static src 192.168.22.12
10.22.48.0/24 dev enp0s5 proto static src 10.22.48.4
我不想依赖 vpn up/down 脚本。还有类似解决方案如何在 VPN 连接之前阻止通过 wifi 的流量?由于我没有单独的隧道接口,因此无法工作。
到目前为止我的防火墙配置:
ufw allow out 53 comment "dns"
ufw allow out 67:68/udp comment "dhcp"
ufw allow out 500,4500/udp comment "ipsec ikev2"
ufw allow out from 192.168.22.0/24 comment "from ipsec ip"
ufw allow out from 127.0.0.0/8 to 127.0.0.0/8 comment "lo"
ufw deny out to 0.0.0.0/0
但我不确定这个解决方案是否足够好。感觉我确实遗漏了一些东西。例如,我需要明确允许 DNS。看起来它没有通过隧道。
更新型多巴胺
服务器端的 Libreswan ikev2.conf
:
conn ikev2-cp
left=%defaultroute
leftcert=<hidden>
leftsendcert=always
leftsubnet=0.0.0.0/0
leftrsasigkey=%cert
right=%any
rightid=%fromcert
rightaddresspool=192.168.22.10-192.168.22.250
rightca=%same
rightrsasigkey=%cert
narrowing=yes
dpddelay=30
dpdtimeout=120
dpdaction=clear
auto=add
ikev2=insist
rekey=no
pfs=no
ike=aes256-sha2,aes128-sha2,aes256-sha1,aes128-sha1
phase2alg=aes_gcm-null,aes128-sha1,aes256-sha1,aes128-sha2,aes256-sha2
ikelifetime=24h
salifetime=24h
encapsulation=yes
leftid=<hidden>
modecfgdns="8.8.8.8 8.8.4.4"
mobike=no
authby=rsa-sha1