iptables 不阻止 IP 访问 HTTP/HTTPS

iptables 不阻止 IP 访问 HTTP/HTTPS

iptables我在CentOS 7.7 网络服务器上阻止某些 IP 地址访问 HTTP/HTTPS 端口时遇到问题。

问题是当我将 IP 地址添加到iptables并确认它在规则中时,它不会阻止该 IP 地址访问 HTTP/HTTPS。然而阻止它们执行其他所有操作(ping、SSH、telnet 等)。

笔记

  • 该系统上没有 NAT 或转发。

  • 只有loeth0接口。

  • 网站在 Cloudflare 上,但是请阅读底部的音符。

这些是我目前的规则(需要阻止的 IP 为 1.2.3.4):

# iptables -L -v --line-numbers
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         
1      783  120K ACCEPT     all  --  lo     any     anywhere             anywhere            
2       15   780 drop       all  --  eth0   any     1.2.3.4              anywhere            
3        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-reply
4        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp destination-unreachable
5        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp time-exceeded
6        0     0 ACCEPT     icmp --  any    any     anywhere             anywhere             icmp echo-request limit: avg 10/sec burst 5
7        0     0 drop       icmp --  any    any     anywhere             anywhere            
8      224 18088 ACCEPT     tcp  --  eth0   any     anywhere             anywhere             tcp dpt:http
9      432 58244 ACCEPT     tcp  --  eth0   any     anywhere             anywhere             tcp dpt:https
10       0     0 drop       all  --  eth0   any     1.2.3.4              anywhere            
11     260  204K ACCEPT     all  --  any    any     anywhere             anywhere             state RELATED,ESTABLISHED
12     275 19648 drop       all  --  any    any     anywhere             anywhere            

Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2771 packets, 634K bytes)
num   pkts bytes target     prot opt in     out     source               destination         

Chain drop (4 references)
num   pkts bytes target     prot opt in     out     source               destination         
1      290 20428 DROP       all  --  any    any     anywhere             anywhere

如上所述,这将阻止 IP 1.2.3.4 访问我的服务器上的所有内容,除了访问我的网站之外。

我能想到的唯一可能导致问题或故障的事情是我的网站使用 Cloudflare。但即便如此,我也有mod_cloudflare 模块已安装,这基本上意味着它显示“真实访问者 IP 地址”和不是 Cloudflare 的 IP 地址在 Apache 日志中。

我测试的方法是,像上面一样将 1.2.3.4 添加到防火墙,确认它在规则和tailfApache 日志中的存在,然后我看到该 IP 地址仍在抓取我的网站。

有人知道我可能做错了什么吗?

编辑#1:根据帖子的更新,我已将移至drop 1.2.3.4下方,ACCEPT anywhere但这仍然无法阻止 IP 地址访问服务器上的 HTTP/HTTPS。我已将我的新iptables规则粘贴在上面,将 drop 放在 ACCEPT 之前和之后。

编辑#2:这似乎是 Cloudflare 独有的问题。我刚刚在一个不使用 Cloudflare DNS 的域上测试了这个问题,它按预期阻止了来自 IP 地址的 HTTP/HTTPS 访问。

答案1

mod_cloudflare_module 仅适用于 Apache 或您的 Web 服务器,用于查看源 IP。不适用于 IPTables。

IPTables 不知道这样的模块。

也就是说,您正在阻止然后接受 eth0 上的任何内容。可能是因为这个(不确定)。此外,eth0 实际上是绑定到您的 Web 服务(httpd 或其他)的接口/ip 来响应请求

我将保存该配置以开始,并尝试执行以下操作:

https://www.cyberciti.biz/faq/iptables-block-port/

相关内容