Linux

如何將 ipsec 客戶端與 StrongSwan 中的不同連接連結?

  • April 30, 2022

我使用 strongswan ipsec 作為移動設備 (Android) 的 VPN 網關。在 StrongSwan 配置中,我為 2 個不同的使用者組設置了 2 個連接(兩個不同的子網 10.10.10.0/24、10.10.20.0/24 具有不同的路由策略)。

而且我不明白(並且在手冊和論壇中找不到)如何將使用者與連接聯繫起來。在哪里以及如何設置嚴格的使用者>連接關係?

謝謝!

我的 ipsec 配置:

cat /etc/ipsec.conf

config setup
   charondebug="ike 1, knl 1, cfg 0"
   uniqueids=no
conn any2ex
   auto=add
   compress=yes
   type=tunnel
   keyexchange=ikev2
   fragmentation=yes
   forceencaps=yes
   dpdaction=clear
   dpddelay=300s
   rekey=no
   left=%any
   leftid=*.*.233.132 #I've masked server IP for this post. Certificate was issued for the ip address.
   left=*.*.233.132  
   leftcert=server-cert.pem
   leftsendcert=always
   leftsubnet=0.0.0.0/0
   right=%any
   rightid=%any
   rightauth=eap-mschapv2
   rightsourceip=10.10.10.0/24
   rightdns=8.8.8.8,8.8.4.4
   rightsendcert=never
   eap_identity=%identity

conn ex2loc
   auto=add
   compress=yes
   type=tunnel
   keyexchange=ikev2
   fragmentation=yes
   forceencaps=yes
   dpdaction=clear
   dpddelay=300s
   rekey=no
   left=*.*.233.132
   leftid=*.*.233.132
   leftcert=server-cert.pem
   leftsendcert=always
   leftsubnet=0.0.0.0/0
   right=%any
   rightid=%any
   rightauth=eap-mschapv2
   rightsourceip=10.10.20.0/24
   rightdns=8.8.8.8,8.8.4.4
   rightsendcert=never
   eap_identity=%identity

我用這個配置Android客戶端

https://docs.strongswan.org/strongswan-docs/5.9/os/androidVpnClientProfiles.html#_example

在 /etc/ipsec.conf

config setup
   charondebug="ike 1, knl 1, cfg 0"
   uniqueids=no
conn net1
   ...
   rightid=*@net1.com
   ... 
conn net2
   ...
   rightid=*@net2.com
   ... 

然後在 /etc/ipsec.secrets

user1@net1.com : EAP "user_password"
user1@net2.com : EAP "user_password"

使用此配置,user1@net1.com 將連接到 net1,而 user1@net2.com 將相應地連接到 net2。

連接選擇基於rightid並取決於客戶端用作 IKE 身份的內容。如果您的使用者將 RFC822_ADDR 顯示為身份,您可以使用某種帶有 * 的萬用字元rightid%any區分它們。

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