如何为多个连接配置 Libreswan IPsec?

如何为多个连接配置 Libreswan IPsec?

我正在尝试在我的 Linux 机器上设置 Xauth IPsec。此 IPsec 服务器位于 NAT 后面。

我的目标是让两种类型的用户可以使用密码和 PSK 进行身份验证。

第一组(普通用户)应该只能访问服务器 LAN 上的某个 IP,而第二组(高级用户)应该能够访问整个 LAN(但这两个组都应该有权访问默认网关)。这部分配置对我来说似乎或多或少很清楚(只是关于配置防火墙),它只是为您提供一个概述。

因此,我想为每个组分配一个特定的子网/地址池:

╔══════════╦══════════════════════════════╦═════════════════════════════╦════════════════╗
║  Class   ║ Virtual IP Range             ║     Allowed LAN Access      ║  Common Names  ║
╠══════════╬══════════════════════════════╬═════════════════════════════╬════════════════╣
║ Regular  ║ 192.168.43.10-192.168.43.250 ║ Custom service at 10.66.4.4 ║ Custom service ║
║ Advanced ║ 192.168.42.10-192.168.42.250 ║ Entire 10.66.4.0/24 subnet  ║ Advanced       ║
╚══════════╩══════════════════════════════╩═════════════════════════════╩════════════════╝

假设 10.66.4.0/24 是我的 LAN。

这是我配置 IPsec 的方式:

version 2.0

config setup
  virtual-private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:!192.168.42.0/24,%v4:!192.168.43.0/24
  protostack=netkey
  interfaces=%defaultroute
  uniqueids=no

conn shared
  left=%defaultroute
  leftid=raspberrypi
  right=%any
  encapsulation=yes
  authby=secret
  pfs=no
  rekey=no
  keyingtries=5
  dpddelay=30
  dpdtimeout=120
  dpdaction=clear
  ikev2=never
  ike=aes256-sha512;modp8192,aes256-sha512;modp4096,aes256-sha512;modp2048
  phase2alg=aes_gcm-null,aes256-sha512,aes256-sha2
  sha2-truncbug=no

conn xauth-psk-1
  auto=add
  leftsubnet= 10.66.4.0/24
  rightaddresspool=192.168.43.10-192.168.43.250
  modecfgdns="10.66.4.1"
  leftxauthserver=yes
  rightxauthclient=yes
  leftmodecfgserver=yes
  rightmodecfgclient=yes
  modecfgpull=yes
  xauthby=file
  ike-frag=yes
  cisco-unity=yes
  also=shared

conn xauth-psk-2
  auto=add
  leftsubnet= 10.66.4.0/24
  rightaddresspool=192.168.42.10-192.168.42.250
  modecfgdns="10.66.4.1"
  leftxauthserver=yes
  rightxauthclient=yes
  leftmodecfgserver=yes
  rightmodecfgclient=yes
  modecfgpull=yes
  xauthby=file
  ike-frag=yes
  cisco-unity=yes
  also=shared

我在文件中添加了两个用户/etc/ipsec.d/passwd

user1:$1$gGFrE5Sz$BqPBohuaLhHoVr7cQjd/C0:xauth-psk-1
user2:$1$gGFrE5Sz$BqPBohuaLhHoVr7cQjd/C0:xauth-psk-2

它可以很好地进行身份验证user1。但是,当尝试以 身份登录时user2,身份验证失败:

"xauth-psk-1"[6] 10.66.4.23 #9: XAUTH: User <unknown>: Authentication Failed (retry 1)

显然,它选择了错误的连接名称。

我该如何正确设置?

相关内容