Linux

VPN:無法使用 ipsec/strongswan 訪問我自己的網關

  • May 30, 2018

我已按照本教程使用 StrongSwan 和 IPSec 設置我的私有 VPN。它工作得很好。

但是當我嘗試直接連接到我的網關/伺服器(使用 SSH)時,連接不會通過 VPN。

如果我在客戶中查找表格,我會看到:

$ netstat -nr

Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
default            link#19            UCS            85        0  ipsec0
default            172.21.15.254      UGScI          18        0     en0
8.8.8.8            link#19            UHWIi           7       33  ipsec0
10.10.10.1         10.10.10.1         UH              0        0  ipsec0
13.32.153.9        link#19            UHW3I           0        3  ipsec0     10
17.248.144.80      link#19            UHWIi           2       22  ipsec0
17.252.76.33       link#19            UHWIi           1       40  ipsec0
18.184.56.218      link#19            UHWIi           1        1  ipsec0
54.37.155.XX       172.21.15.254      UGHS          397      197     en0
...

當我連接到 VPN 時,最後一行被添加到我的客戶端。54.37.155.XX 是我伺服器的公共地址。我不明白是什麼程序將此行添加到我的路由表中。

如果我刪除最後一行,效果很好:

sudo route -n delete 54.37.155.XX 172.21.15.254

我懷疑/etc/ipsec.conf配置文件中缺少一條規則正在添加此路由條目,但我不知道是哪一個:

config setup
   charondebug="ike 1, knl 1, cfg 0"
   uniqueids=no

conn ikev2-vpn
   auto=add
   compress=no
   type=tunnel
   keyexchange=ikev2
   fragmentation=yes
   forceencaps=yes
   ike=aes256-sha1-modp1024,3des-sha1-modp1024!
   esp=aes256-sha1,3des-sha1!
   dpdaction=clear
   dpddelay=300s
   rekey=no
   left=%any
   leftid=@server_name_or_ip
   leftcert=/etc/ipsec.d/certs/vpn-server-cert.pem
   leftsendcert=always
   leftsubnet=0.0.0.0/0
   right=%any
   rightid=%any
   rightauth=eap-mschapv2
   rightdns=8.8.8.8,8.8.4.4
   rightsourceip=10.10.10.0/24
   rightsendcert=never
   eap_identity=%identity

任何的想法 ?

這是 macOS/iOS 客戶端的一個已知問題。那裡的客戶端安裝到 VPN 伺服器的直接路由,以防止 IKE 流量通過 VPN 傳輸。但是,這意味著您也無法通過 VPN 伺服器的公共 IP 通過 VPN 訪問其他服務。

作為一種解決方法,您可以從用於分配給客戶端的虛擬 IP 的子網中為伺服器分配一個虛擬 IP。例如,如果您進行了配置,rightsourceip=10.10.10.2/24那麼您可以將保留分配給10.10.10.1伺服器的一個介面,您應該能夠從您的 VPN 客戶端訪問該 IP。

引用自:https://serverfault.com/questions/912530