允许 DNS 传出连接

允许 DNS 传出连接

我是 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。我该如何允许这种情况发生?此外,如果有任何其他反馈,我们将不胜感激。

詹姆士

答案1

DNS 连接通过 UDP 协议与端口 53 上的远程主机建立,如果答案对于 UDP 数据报来说太大,则回退到 TCP。

您应该允许目标端口为 UDP:53 或 TCP:53 的传出连接。

相关内容