Domain-Name-System

在打開適當埠的 iptables 配置後,站點變得緩慢且無響應?

  • November 21, 2010

這是“iptables-save”的輸出:

# Generated by iptables-save v1.4.4 on Sun Nov 21 11:28:56 2010
*mangle
:PREROUTING ACCEPT [921:116690]
:INPUT ACCEPT [921:116690]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [856:343403]
:POSTROUTING ACCEPT [856:343403]
COMMIT
# Completed on Sun Nov 21 11:28:56 2010
# Generated by iptables-save v1.4.4 on Sun Nov 21 11:28:56 2010
*nat
:PREROUTING ACCEPT [18:1076]
:POSTROUTING ACCEPT [189:12510]
:OUTPUT ACCEPT [189:12510]
COMMIT
# Completed on Sun Nov 21 11:28:56 2010
# Generated by iptables-save v1.4.4 on Sun Nov 21 11:28:56 2010
*filter
:INPUT DROP [188:58400]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [856:343403]
-A INPUT -p icmp -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT 
-A INPUT -p udp -m udp --dport 22 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT 
-A INPUT -p udp -m udp --dport 80 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 53 -j ACCEPT 
-A INPUT -p udp -m udp --dport 53 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p udp -m udp --dport 443 -j ACCEPT 
COMMIT
# Completed on Sun Nov 21 11:2

該伺服器託管我的綁定伺服器,該伺服器用作相關特定域的權威名稱伺服器。伺服器還託管站點本身。在這些埠打開的情況下啟動 iptables 規則時,什麼會導致速度變慢?我是否缺少一些應該允許 dns 正常工作的埠?

您的網路伺服器是否試圖將 IP 地址反向解析為主機名?當 bind 必須遞歸或轉發請求時,預設情況下(從 bind 8.1 開始)它會選擇隨機埠來發出請求。由於 UDP 數據包返回到發送它的埠,因此它們被此防火牆阻止。

你可以取消註釋

query-source address * port 53;

在 named.conf.options 文件中(無論如何在 Debian 上)強制它使用埠 53。選擇隨機埠是為了幫助防止記憶體中毒攻擊(在真正的數據包到達之前,有人將欺騙的響應數據包返回給您) 所以修復防火牆而不是更改綁定是個好主意。

如果您的綁定伺服器(以及/etc/resolv.conf所有其他應用程序)配置為使用特定的轉發器,那麼您可以創建一個規則(如果有多個),例如

iptables -A INPUT -p udp -s OTHERDNSSERVER --sport 53 -j ACCEPT

這將允許來自您的外部 DNS 伺服器(埠 53)的數據包。如果您的 ISP/主機沒有為您提供要使用的 DNS 伺服器,並且綁定使用遞歸來查找所有內容,那麼響應可能來自任何地方。在這種情況下,您將使用 conntrack:

iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

這允許響應出站連接。如果您有很多 DNS 查詢,您可能需要增加 conntrack 表大小或減少其超時。

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