我正在尝试阻止来自服务器的所有输出流量,只允许通过 HTTP/HTTPS 访问几个域。
当我ferm
使用以下配置重新启动时(我删除了 INPUT 和 FORWARD 链,因为它们不相关),出现错误iptables v1.6.1: host/network 'serverfault.com' not found
:
table filter {
chain OUTPUT {
policy DROP;
# allow ICMP protocol
protocol icmp ACCEPT;
# allow DNS lookup
protocol (tcp udp) dport 53 ACCEPT;
protocol tcp dport (http https) {
daddr serverfault.com ACCEPT;
}
# connection tracking
mod conntrack ctstate INVALID DROP;
mod conntrack ctstate (ESTABLISHED RELATED) ACCEPT;
}
}
我允许端口 53 进行 DNS 查找,似乎我可以访问此域(之前不允许运行该host
命令)。我是否遗漏了防火墙中应该允许的某些内容?
$ host serverfault.com
serverfault.com has address 151.101.193.69
serverfault.com has address 151.101.129.69
serverfault.com has address 151.101.65.69
serverfault.com has address 151.101.1.69
答案1
您需要在 IPTables 规则中使用 IP 地址,不能使用 DNS 名称。