IPSec:是否可以检查通过IPSec隧道传递的数据包?

在我们的部署中我们有两台服务器。 我想通过主机连接到主机VPN: 主机到主机VPN使用Openswan

在一台服务器上,我们有第二个服务器上的JMS代理,我们有JMS客户端,只有当它通过IPSec通道(JMS代理和客户端仅用于这个例子)时,我才允许访问JMS代理。

是否可以检查数据包是否通过IPSec通道?

您可以根据特定字段ipsec过滤数据包。 例如,您可以使用iptables提供的不同模块,使用-m选项或–match:

  • 政策
  • ESP
  • IP源和目的地隧道

http://linux.die.net/man/8/iptables ,请参阅匹配扩展

政策

此模块与IPsec用于处理数据包的策略相匹配。

– input|输出

用于select是否匹配用于解封装的策略或将用于封装的策略。 in在PREROUTING,INPUT和FORWARD链中有效,out在POSTROUTING,OUTPUT和FORWARD链中有效。

–pol none | ipsec

匹配如果数据包进行IPsec处理。

– 严格

select是否匹配确切的策略,或匹配策略的任何规则是否匹配给定的策略。

–reqid ID

匹配策略规则的reqid。 reqid可以使用setkey(8)使用unique:id作为级别来指定。

–spi spi

匹配SA的SPI。

–proto啊| esp | ipcomp

匹配封装协议。

– 模式隧道运输

匹配封装模式。

–tunnel-src addr [/ mask]

匹配隧道模式SA的源端点地址。 只适用于–mode隧道。

–tunnel-dst addr [/ mask]

匹配隧道模式SA的目的端点地址。 只适用于–mode隧道。

– 下一个

启动策略规范中的下一个元素。 只能与 – 严格一起使用