我在 Debian Jessie 上使用 strongSwan 5.2.1,在配置它以执行我想要的操作时遇到了问题。
前提
在测试环境中,我试图在 Linux 虚拟机和配置为主动模式的 FTP 服务器的 Windows 虚拟机之间使用传输模式 IPsec。将应用 IPsec仅有的FTP 流量;即 Windows VM 上往返于 TCP 端口 20 和 21 的流量。两台主机之间的所有其他流量(例如 ping)都应未加密。
在我正在执行此操作的实际场景中,FTP 服务器的 IP 地址会有所不同,因此我希望我的 strongSwan 配置不必引用特定的远程 IP。
Linux 上的 ipsec.conf 文件
内容如下:
# ipsec.conf - strongSwan IPsec configuration file
# basic configuration
config setup
# strictcrlpolicy=yes
# uniqueid = no
# Add connections here.
include /var/lib/strongswan/ipsec.conf.inc
conn main
type=transport
left=%any
right=10.1.1.2
leftauth=psk
rightauth=psk
ike=3des-sha1-modp1024
esp=3des-sha1
keyexchange=ikev1
conn data
also=main
rightsubnet=%dynamic[6/20]
auto=route
conn command
also=main
rightsubnet=%dynamic[6/21]
auto=route
问题
上面的 IPsec.conf 完成了我想要做的所有事情,除了文件中的 FTP 服务器的 IP 地址由该行指定right=10.1.1.2
。
该also=route
参数意味着仅当检测到10.1.1.2
TCP 端口 20 或 21 上的流量时才会启动密钥交换。我想要一个启动密钥交换的配置来任何 IP 地址当检测到往返于该地址的流量时'TCP 端口 20 和 21。
在 strongSwan 中是否可以进行这样的配置?如果不可以,是否有其他 Linux 密钥守护进程可以完成我想要实现的功能?
补充笔记
- 此设置
right=%any
无法实现我想要的效果。此设置允许任何远程主机启动与本地主机的密钥交换;但这并不意味着本地主机将启动与任何远程主机的密钥交换。 - Windows 主机的 IPsec 配置设置为
Any IP Address
在连接的两端使用,并且按照我想要的方式成功运行。 - 在我的配置中使用 IKEv1 是为了与旧版本兼容。
谢谢。
答案1
要使用right=%any
传输模式陷阱策略(即auto=route
),您至少需要strongSwan 5.3.3。请参阅ikev2/trap-any场景为例。