如何编写iptables自动测试?
我正在使用配置Linux路由器iptables。我想为断言这样的配置编写验收测试: 互联网上某人的流量不会转发,并且 从公司LAN上的主机转发到DMZ中Web服务器上端口80的TCP。 古老的FAQ暗示了一个iptables -C选项,该选项允许人们询问诸如“从X到Z端口的Y的数据包,它会被接受还是丢弃?”。尽管FAQ暗示它的工作原理是这样的,iptables但对于(但可能不如ipchains示例中所使用的那样),该-C选项似乎不是模拟运行所有规则的测试数据包,而是检查是否存在完全匹配的规则。作为测试,这没有什么价值。我想断言规则具有预期的效果,而不仅仅是它们的存在。 我考虑过创建更多的测试VM和虚拟网络,然后使用诸如nmap效果之类的工具进行探测。但是,由于创建所有这些其他虚拟机非常复杂,因此我避免使用此解决方案,这实际上是生成某些测试流量的一种繁重的方法。拥有一种自动测试方法也可以在生产中的真实服务器上运行也很好。 我还能怎么解决这个问题?我是否可以使用某种机制来生成或模拟任意流量,然后知道它是否被(或将被)丢弃或接受iptables?