我正在研究一些 iptables 防火墙规则,并且看到许多示例表明阻止来自不可路由 IP 地址空间的潜在不可能流量的重要性。这将包括 RFC 1918、RFC 1700、RFC 5735、RFC 3927、RFC 3068、RFC 2544、RFC 5737、RFC 3171 和 RFC 919 中的项目。一些示例包括以下内容:
- 当前 IP 地址
- 0.0.0.0/8
- 10.0.0.0/8
- 127.0.0.0/8
- 169.254.0.0/16
- 172.16.0.0/12
- 192.0.0.0/24
- 192.0.2.0/24
- 192.88.99.0/24
- 192.168.0.0/16
- 198.18.0.0/15
- 198.51.100.0/24
- 203.0.113.0/24
- 224.0.0.0/4
- 240.0.0.0/4
- 255.255.255.255
一些示例表明,只有当它是流量来源时,您才需要担心检查此流量。示例:
$IPT -A ANTISPOOF -s 0.0.0.0/8 -m limit --limit 5/min --limit-burst 5 -j LOG --log-prefix "Denied Spoofed Source IP Address: "
$IPT -A ANTISPOOF -s 0.0.0.0/8 -j DROP
在其他示例中,他们采取了更积极的立场,检查输入和输出的源和目标。示例包括:
iptables -A INPUT -d 172.0.0.0/8 -j DROP
iptables -A INPUT -s 172.0.0.0/8 -j DROP
iptables -A OUTPUT -d 172.0.0.0/8 -j DROP
iptables -A OUTPUT -s 172.0.0.0/8 -j DROP
我仍然有以下问题:
- 我是否需要检查上面项目符号列表中列出的 IP 范围的源地址?
- 我是否需要检查上面项目符号列表中列出的 IP 范围的目标地址?
- 为上面列出的 IP 范围创建包含 INPUT 和 OUTPUT 链的规则是否重要?
- 是否有我忘记检查的 IP 范围未列在上面的项目符号列表中?
在此先感谢您的帮助。
答案1
上述规则集中的大部分内容涉及通常称为 Bogon 过滤的内容:http://en.wikipedia.org/wiki/Bogon_filtering - 这些是往返于地址空间未分配区域的数据包。
然而,其中 3 个范围是 RFC1918 私有网络:http://en.wikipedia.org/wiki/Private_networks- 这些数据包仍然可以归类为 Bogon,但前提是它们不合法。(即使是玫瑰,如果它生长在停车场中间,也是杂草……)
如果这是您正在使用的路由器,请考虑以下事项:
- INPUT 和 OUTPUT 链分别处理发往/来自防火墙本身的某些本地进程的流量。大多数路由流量不会触及这些链。
- FORWARD 链处理通过机器路由到其他目的地的流量。
- 通常情况下,你会想要阻止入站来自这些的流量来源网络和出站流量到那些目的地网络。查看
-i
iptables 的标志,它允许您将匹配限制到给定的网络适配器。- 不过,我同意 topdog 的观点,认为像这样捕获出站流量可能没有必要。如果这是你的服务器,你应该控制它发送的内容。
- 请记住,您的内部 LAN 可能使用其中一个私有地址范围。您可能仍希望允许该流量通过。
答案2
* Do I need to check for the source address of the IP ranges listed above in the bulleted list?
是的,您不希望您的服务器尝试回答/发送数据包到列出的地址,即使您的 isp/nsp 应该丢弃它们。
* Do I need to check for the destination address of the IP ranges listed above in the bulleted list?
是的,传入的数据包不会被传递到操作系统,但您希望阻止尽可能靠近系统/网络边缘的尝试。
* Is is important to create rules for the IP ranges listed above that would include both the INPUT and OUTPUT chains?
是的,您不想向列出的地址发送数据包。
* Are there any IP ranges that I have forgotten to check from that are missing from the bulleted list above?
是的,您的 IP 地址应该被拒绝访问。您可以使用以下方法更积极地处理 (http://www.team-cymru.org/Services/Bogons/),但由于剩余的 IPv4 地址已被分配,因此您可能会阻止合法来源。
iptables 命中数将帮助您确定哪些规则正在起作用,而日志记录将有助于识别连接是被拒绝还是被接受。