我有一台 Ubuntu Server 16,我将其用作iptables
防火墙。HTTP
流量HTTPS
位于我无法控制的反向代理后面,但我已经X-Forwarded-For
激活了字段。
是否有可能在阶段过滤掉流量iptables
而不是在 Apache 中添加规则?
如果不是,那么在 Apache 中实现黑名单的最佳方法是什么?
答案1
iptables
无法深入检查数据包。即使可以,也只能检查 HTTP 流量,而不能检查 HTTPS。在 Apache 中,您可以使用指令将其列入黑名单Limit
。
答案2
这实际上是完全有可能的,尽管根据您的发行版,可能需要内核补丁。有一个string
netfilter 扩展,它允许您根据数据包中是否包含字符串来匹配特定数据包。我们过去曾用它来处理 DDOS 流量。
这是一个未经测试的示例:
# iptables -A INPUT -m string --string 'X-Forwarded-For: badIP' -j DROP
请记住,这是一种相当不灵活的手段,可能会导致流量意外丢失 - 请确保你制定的规则是谨慎而明确的。正如 EEAA 所述,它不适用于加密流量。
更多信息请参见:https://www.netfilter.org/documentation/HOWTO/netfilter-extensions-HOWTO-3.html#ss3.18