Linux

53埠的iptables規則未生效

  • January 31, 2016

我的 ubuntu 14.04 LTS 伺服器在埠 53 上接收來自不同 IP 地址的大量傳入流量。我沒有託管任何 DNS 服務。所以我決定封鎖 53 埠:

iptables -A INPUT -p tcp --destination-port 53 -j DROP

iptables -A OUTPUT -p tcp --dport 53 -j DROP

之後我保存新規則:

invoke-rc.d iptables-persistent save

所以最終的結果是這樣的:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
DOCKER     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53

Chain DOCKER (1 references)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.3           tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            172.17.0.7           tcp dpt:8080

但是,當我使用 nethogs 監控流量時,我仍然在埠 53 上看到流量。知道為什麼規則沒有生效嗎?

請注意:我安裝了 docker 1.9.1。

Nethogs 輸出:

在此處輸入圖像描述

而且這個名單還在增長。

DNS 主要是埠 53 上的 UDP。

但是你為什麼還要在 OUTPUT 鏈中阻止它呢?您不想從此機器解析任何域名嗎?

DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:53

通常,DNS 流量是 UDP 並回退到 TCP。您還需要將 UDP 拖放到埠 53。

iptables -I INPUT -p udp --destination-port 53 -j DROP 

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