上网冲浪的最小 iptables 规则是什么?

ale*_*186 1 security linux

我正在尝试为我的 Linux iptables 规则文件设置最少的规则,以便能够上网。

这是我所做的:

* filter

-A OUTPUT -p tcp --dport 80 -j ACCEPT
-A OUTPUT -p tcp --dport 443 -j ACCEPT
-A OUTPUT -p udp --dport 53 -j ACCEPT

COMMIT
Run Code Online (Sandbox Code Playgroud)

仅凭这些规则,我就无法上网。

我注意到当我放置时-A INPUT -j ACCEPT,它可以工作,但我不明白为什么。那么我需要什么输入/输出端口才能上网?

非常感谢。问候

编辑:它仍然不起作用。

这是我的 iptables -L

Chain INPUT (policy DROP)
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED

Chain FORWARD (policy DROP)
blank

Chain OUTPUT (Policy ACCEPT)
ACCEPT all -- anywhere anywhere
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加-A INPUT -j ACCEPT,我可以上网。所以 INPUT 中应该有其他东西阻止它。

Sha*_*den 13

您还需要允许从远程服务器返回的流量。您的输入链需要允许这些响应;连接状态模块可以确保允许这些响应。

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)


Mag*_*lan 5

为什么您认为需要规范出站连接?

OUTPUT 表管理 OUTBOUND 数据包,INPUT 表管理入站数据包。

如果您希望保护您的工作站/服务器,您应该关注 INPUT 规则并使用默认的“DROP”规则和“RELATED,ESTABLISHED”规则,如下所示:

 /sbin/iptables -P INPUT DROP
 iptables -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

这将允许您打开额外的特定端口,同时将大部分流量拒之门外。