如果我想在我的服务器build议中添加INPUT防火墙规则,我看到的是执行以下操作(端口80在这里,但可以是任何其他服务的众所周知的端口)
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
这和以前有什么不同?
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
即:检查INPUT链中连接状态的好处是什么,因为服务器必须在端口80上提供任何请求?
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
这将只允许目的地端口80上的新的和build立的会话,并且将不允许相关的(由另一个会话运行开始的)和无效的会话。 所以,如果有人带着例如一个非SYN标志首先进入一个新的连接,比如一个ACK标志,服务器将会发送一个复位信号,这个复位信号最终(如果数量很大)可能会使服务器处理不堪重负。 现在由于这个规则正在丢弃这样的数据包,所以它更安全。
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
第二条规则不会阻止这样的数据包,因此不如第一条安全。