Linux
53埠的iptables規則未生效
我的 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