Answers:
您需要两个规则来做到这一点:
iptables -I OUTPUT -o eth0 -d 0.0.0.0/0 -j ACCEPT
iptables -I INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
一些注意事项。
-I
强制将这些规则放在第一位。iptables
规则是自上而下评估的。-o
和-i
分别为“中”标志的意思是“去”和。替换eth0
为正确的以太网接口名称。-d 0.0.0.0/0
是多余的,不需要。
当前,我们基本上使用OUTPUT默认策略ACCEPT。
这对于OUTPUT就足够了,因为Netfilter不需要特殊的规则即可开始有状态连接跟踪。
但是,如果您想根据“ 默认拒绝 ”策略过滤出入站流量,可以通过将INPUT
-chain 切换为DROP
:iptables -P INPUT DROP
之后,将仅用2条规则进行设置:
iptables -A INPUT -j ACCEPT -i lo
iptables -A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
请注意规则允许回送接口上的输入流量 -正如我在博客文章“ 最终用户的最小防火墙 ”中指出的那样,除非明确允许,否则与“返回”相比,“建立的”状态检查将不会处理回送流量。交通过来,说,eth0
。
为了保证这个最小规则集装“ 为是 ” W与已经可能是有规则/ O干扰,这是较方便的使用iptables-restore
在SHELL会话:
lptables-restore <<__EOF__
-P INPUT DROP
-A INPUT -j ACCEPT -i lo
-A INPUT -j ACCEPT -m state --state RELATED,ESTABLISHED
__EOF__
在执行此操作之前,请确保您不会断开自己的网络连接1,尽管已经打开的SSH会话应继续正常工作,但是尝试打开新的SSH会话将不会起作用。
__
-A INPUT -j ACCEPT -p tcp --dport 22
-无需在-m state
这里进行修改。也不要忘记修复lptables-restore
回iptables-restore
想出来之前;)