Linux

iptables ip地址塊被忽略?

  • August 17, 2015

在我們的伺服器上執行top給了我們

平均負載:68.67、63.48、60.30

我們懷疑這是由於太多的 httpd 連接造成的。

跑步:

netstat -tun 2>/dev/null | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr

給我們(所有 IP 轉換為私有地址):

418 
176 192.168.1.1
41 192.168.1.2
 8 192.168.1.3
 5 192.168.1.4
 5 192.168.1.5
 4 192.168.1.6
 2 192.168.1.7
 2 192.168.1.8
 2 192.168.1.9
 2 127.0.0.1
 1 servers)
 1 Address
 1 192.168.1.10
 1 192.168.1.11

正如您所看到的192.168.1.1(從 WAN 地址轉換而來,僅用於此處),它似乎有 176 個連接到我們的伺服器。遠端查找此 IP 可將其重新解析為 DDOS 服務。

我們跑了

sudo iptables -I INPUT -m iprange --src-range 192.168.0.0-192.168.0.255 -j DROP

嘗試刪除與其完整範圍相關的所有範圍,但在執行 netstat 命令時仍會顯示請求。

IPtables 命令或 netstat 命令有問題嗎?

我們跑

sudo service iptables save
sudo service httpd restart

儲存它並使其處於活動狀態,然後

sudo iptables --list

確認它已添加,它是。不確定我們是否缺少某些東西。謝謝。

更新

跑步iptables -L -nv節目

pkts bytes target     prot opt in
30179 1793K DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           source IP range STARTRANGE-ENDRANGE

這是否意味著30179請求被阻止?

我們的 IPtables 也看起來像這樣(STARTRANGE/ENDRANGE 是實際的四字節地址)…

Chain INPUT (policy DROP)
target     prot opt source               destination         
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE 
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE 
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:http 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:https 
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 
ACCEPT     icmp --  anywhere             anywhere            
ACCEPT     all  --  anywhere             anywhere            
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 
ACCEPT     tcp  --  anywhere             anywhere            tcp dpt:mysql 
DROP       all  --  anywhere             anywhere            source IP range STARTRANGE-ENDRANGE  

縮短的 Netstat 輸出(命令執行:)netstat -n | grep '192.168'

tcp        0      1 OUR_SERVER_IP:44531          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44675          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44600          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44587          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44641          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44578          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44626          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44604          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44541          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44678          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44625          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44661          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44543          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44602          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44644          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44580          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44688          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44683          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44588          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44556          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44681          192.168.1.1:443          SYN_SENT    
tcp        0      1 OUR_SERVER_IP:44631          192.168.1.1:443          SYN_SENT 

現在您終於發布了netstat有問題的輸出(感謝您),我們可以看到它獲取的連接幾乎肯定不是來自遠端伺服器,正如您所想的那樣。相反,您的伺服器正努力在埠 443 (HTTPS) 上啟動與該遠端伺服器的**連接。**這就是為什麼他們沒有被INPUT鍊式規則阻止的原因;第一個數據包是出站的 - 只有遠端伺服器生成的響應被INPUT規則阻止,連接SYN_SENT一直保持到超時。

的使用netstat -apn表明,建立這些連接的是系統上的 HTTPD 伺服器。您不知道您的伺服器應該這樣做的任何原因,因此您將離開仔細研究它的設置。

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