在 iptables 中,状态 ESTABLISHED 是否需要稍后的状态 NEW 来建立 ESTABLISHED 连接?

在 iptables 中,状态 ESTABLISHED 是否需要稍后的状态 NEW 来建立 ESTABLISHED 连接?

使用以下规则时:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 

...您是否需要添加包括NEW状态在内的特定规则以允许ESTABLISHED连接?

就像这样:

iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT 

...或者只是由他们建立连接ACCEPTING

我已阅读了有关此问题的几篇教程,但在任何地方都找不到这个说明。

答案1

通常,NEW状态将用于过滤您不想看到流的第一个数据包的情况。

例如 :

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

将丢弃所有看起来不像有效 TCPSYN数据包的内容。

如果你的用例是允许世界连接到你的服务器端口 443,允许你的服务器回复并建立连接,那么你需要添加第二条规则,但状态NEW不是强制的

因此您的配置可以是:

iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m state --state NEW --dport 443 -j ACCEPT 

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

或者

iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT 

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

或更好)

iptables -P INPUT DROP
iptables -P OUTPUT DROP

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT 

iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

答案2

只需这样做就足够了:

iptables -A INPUT -p tcp --dport 443 -j ACCEPT 

当然,为了不接受连接,您需要将策略设置为 DROP,或者制定规则来 DROP 所有其他连接。

相关内容