iptables 中已阻止 IP,但仍可在 apache 日志中看到它

iptables 中已阻止 IP,但仍可在 apache 日志中看到它

我正在运行 Centos 6.0 服务器,带有 Apache 2/MySQL。我已经运行了 iptables。今晚我按照以下步骤使用 iptables 阻止来自 IP 的所有流量:

iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP
iptables -A OUTPUT -d xxx.xxx.xxx.xxx -j DROP
service iptables save
service iptables restart

但即使在我重新启动 Apache 之后,我仍然会在 Apache 访问日志中不断看到来自该 IP 的点击。iptables 肯定正在运行,而且它肯定是正确的 IP 地址。

以下是我的其余 iptables 条目:

Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere            
2    REJECT     all  --  anywhere             loopback/8          reject-with icmp-port-unreachable 
3    ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
4    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http 
5    ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
6    ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:30000 
7    ACCEPT     icmp --  anywhere             anywhere            icmp echo-request 
8    REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable 

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  anywhere             anywhere

我错过了什么?

答案1

首先我建议你使用system-config-firewallsystem-config-firewall-tui。 有一个“自定义规则”部分可以为你执行此操作。

如果你想手动做这种事情,你必须在 tcp dpt:http 的“ACCEPT”之前插入规则。最简单的方法是: iptables -I INPUT 1 -s xxx.xxx.xxx.xxx -j DROP

(在位置 1 处插入,而不是追加)

答案2

您的第一个 iptables 规则允许您试图阻止的流量。

1    ACCEPT     all  --  anywhere             anywhere            

秩序很重要。

答案3

既然您的问题已经解决,让我补充一点:您的 INPUT 链已经将策略设置为“接受”。接受所有流量的规则不仅会弄乱您的防火墙,而且它也是多余的,其工作方式与策略不同(取决于链中接受规则的位置)——这使得它既无用又难以调试。不要在防火墙中两次覆盖同一件事。

答案4

您可以看到该 IP,因为您有接受 RELATED 和 ESTABLISHED 会话的规则:

3    ACCEPT     all  --  anywhere             anywhere state RELATED,ESTABLISHED

您需要使用 tcpkill 来终止被阻止 IP 的连接,这样该 IP 将不再连接:)

相关内容