Linux

允許 DNS 的傳出連接

  • June 9, 2014

我是 IPtables 的新手,但我正在嘗試設置一個安全伺服器來託管一個網站並允許 SSH。這是我到目前為止所擁有的:

#!/bin/sh

i=/sbin/iptables

# Flush all rules
$i -F
$i -X

# Setup default filter policy
$i -P INPUT DROP
$i -P OUTPUT DROP
$i -P FORWARD DROP

# Respond to ping requests
$i -A INPUT -p icmp --icmp-type any -j ACCEPT

# Force SYN checks
$i -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# Drop all fragments
$i -A INPUT -f -j DROP

# Drop XMAS packets
$i -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

# Drop NULL packets
$i -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# Stateful inspection
$i -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT

# Allow established connections
$i -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Allow unlimited traffic on loopback
$i -A INPUT -i lo -j ACCEPT
$i -A OUTPUT -o lo -j ACCEPT

# Open nginx
$i -A INPUT -p tcp --dport 443 -j ACCEPT
$i -A INPUT -p tcp --dport 80 -j ACCEPT

# Open SSH
$i -A INPUT -p tcp --dport 22 -j ACCEPT

但是我已經鎖定了我的傳出連接,這意味著我無法解析任何 DNS。我怎麼允許呢?此外,任何其他回饋表示讚賞。

詹姆士

使用 UDP 協議在埠 53 上與遠端主機建立 DNS 連接,如果答案對於 UDP 數據報來說太大,則回退到 TCP。

您應該允許目標埠為 UDP:53 或 TCP:53 的傳出連接。

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