如何丢弃所有外部源地址与我的内部网络匹配的数据包?

如何丢弃所有外部源地址与我的内部网络匹配的数据包?

我感到困惑的是如何使用匹配规则在我的 iptables 中?

我是否使用 if 语句?

if [ -i == eth0 ]
then
iptables -A INPUT -j DROP

我错过了什么?

我如何知道源是否与我的内部网络 eth1 匹配?

答案1

好的,首先,如果您在路由器的两个不同分支上使用相同的 IP 地址,那就很糟糕。其次,如果您尝试过滤以本地 IP 进入的互联网流量,您实际上不必担心每个受人尊敬的 ISP 都会在其边缘过滤 RFC 1918 地址。第三,如果您在同一个广播域上使用相同的 IP,A) 这真的很糟糕,B) 它永远不会击中您的防火墙。

那么,这已经解决了。如何在 iptables 规则中指定接口是我思考你的询问。

你所做的就是传递-i <interface>选项。

举例来说,我想丢弃所有来自外部的 ICMP 回显请求流量,我会这样做:

-A INPUT -i eth0 -p icmp -m icmp --icmp-type 8 -j DROP

其中: -A INPUT是我要附加到的链(-A 表示附加) -i eth0是接口 eth0(-i 表示接口) -p icmp是 icmp 协议(-p 表示协议) -m icmp是匹配 icmp(-m 表示匹配) --icmp-type 8是回显请求 -j DROP是跳转到丢弃规则

如果我想将其限制为仅一个主机 - 比如说 10.10.10.99,那么我会添加-d 10.10.10.99/32以告诉它只有当目的地是主机 10.10.10.99 时才执行。规则如下:

-A INPUT -i eth0 -d 10.10.10.99/32 -p icmp -m icmp --icmp-type 8 -j DROP

答案2

类似下面的方法可能对你有用:

iptables -A 输入 -s 192.168.7.1 -i eth0 -j DROP

我读到的是:

如果在 eth0 接口上收到了来自 192.168.7.1 的输入数据包,则将其丢弃。

相关内容