在我们的部署中,我们有两台服务器。我想通过主机到主机 VPN 连接它:使用 Openswan 的主机到主机 VPN
在一台服务器上我们有 JMS 代理,在另一台服务器上我们有 JMS 客户端,并且我希望仅当通过 IPSec 通道传递时才允许访问 JMS 代理(JMS 代理和客户端仅用于示例)。
是否可以检查数据包是否通过 IPSec 通道传输?
答案1
您可以根据特定字段 ipsec 过滤数据包。例如,您可以使用 iptables 提供的不同模块以及 -m 选项或 --match:
- 政策
- 哈
- 尤其是
- IP 源和目标隧道
http://linux.die.net/man/8/iptables请参阅匹配扩展
政策
该模块与 IPsec 处理数据包所使用的策略匹配。
--目录输入|输出
用于选择是否匹配用于解封装的策略或者将用于封装的策略。in 在PREROUTING、INPUT 和FORWARD 链中有效,out 在POSTROUTING、OUTPUT 和FORWARD 链中有效。
--pol 无|ipsec
如果数据包需要经过 IPsec 处理则匹配。
- 严格的
选择是否匹配精确策略,或者如果策略的任何规则与给定策略匹配则进行匹配。
--reqid 标识
匹配策略规则的 reqid。可以使用 setkey(8) 以 unique:id 作为级别来指定 reqid。
--spi spi
匹配SA的SPI。
--proto ah|esp|ipcomp
匹配封装协议。
--模式隧道|传输
匹配封装模式。
–隧道源地址[/掩码]
匹配隧道模式 SA 的源端点地址。仅与 --mode tunnel 一起使用时有效。
–隧道目标地址[/掩码]
匹配隧道模式 SA 的目标端点地址。仅与 --mode tunnel 一起使用时有效。
- 下一个
开始策略规范中的下一个元素。只能与 --strict 一起使用