假设我有一个至少有 2 个接口的路由器,192.168.10.254
并且192.168.20.254
链接到两个具有 24 位掩码的不同网络。
如果我们删除 ) 标志,下面的 iptables 命令会有什么不同吗-s = --source
?
iptables -A OUTPUT -s 192.168.10.0/24 -d 192.168.10.0/24 -p icmp -j ACCEPT
据我了解,路由器将始终使用其192.168.10.254
接口来 ping192.168.10.0/24
网络,因此我认为该-s
标志完全无用且具有误导性。然而它在 OUTPUT 情况下被 iptables 接受,所以我一定错过了一些东西?
答案1
如果有足够的权限,系统上的进程可能会使用伪造的发送者地址制作 TCP/IP 数据包。例如,这在 DOS 攻击中很常见。
除此之外,您的系统可能有多个有效的源地址。
实施规则(例如不允许在 OUTPUT 中使用源)似乎超出了 iptables 应该做的范围。