我想使用iptables来阻止所有传入流量,但另一方面我想将所有传出流量列入白名单。目前,我的iptables阻止了所有传出的流量。我怎样才能将其列入白名单?
iptables规则
iptables -F
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A OUTPUT -o enp0s18 -j ACCEPT
iptables -I INPUT -p tcp --dport 26666 -j ACCEPT
iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:26666
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere
但它不起作用:
curl http://google.com
curl: (6) Couldn't resolve host 'google.com'
有什么问题?
答案 0 :(得分:2)
它没有阻止出站流量;您只是阻止作为响应的入站数据(特别是在这种情况下,DNS服务器的响应)。
将此内容添加到最后,以允许ESTABLISHED
和RELATED
数据通过INPUT
链进入:
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Here's一个explainhell.com链接,它将引导您完成规则的操作。