使用以下规则时:
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 所有其他连接。