Apache-2.2

在 iptables 中阻止了 IP,但仍然在 apache 日誌中看到它

  • January 29, 2018

我正在執行帶有 Apache 2/MySQL 的 Centos 6.0 伺服器。我已經執行了 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 訪問日誌中不斷地看到這個 IP 的命中,即使在我重新啟動 Apache 之後也是如此。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

我錯過了什麼?

起初我建議你使用system-config-firewallor system-config-firewall-tui。有一個“自定義規則”部分將為您執行此操作。

如果您想手動執行此類操作,則必須在 tcp dpt:http 的“接受”之前插入規則。最簡單的方法是: iptables -I INPUT 1 -s xxx.xxx.xxx.xxx -j DROP

(在位置 1 插入,而不是 Append )

您的第一個 iptables 規則允許您嘗試阻止的流量。

1    ACCEPT     all  --  anywhere             anywhere            

訂單很重要。

引用自:https://serverfault.com/questions/357119