iptables:RELATED和ESTABLISHED状态之间的区别?

我试过在网上阅读很多文章,但是没有一篇很清楚。 我也知道类似的问题已经发布在这里,但没有一个解释我的情况。 之前我因此浪费了2-3个小时。

手册说:

新 – 意味着数据包已经开始了一个新的连接,或者是与在两个方向上没有看到数据包的连接相关联

ESTABLISHED – 表示数据包与在两个方向上都看到数据包的连接相关联,

相关 – 意味着数据包正在启动一个新的连接,但与现有的连接相关联,如FTP数据传输或ICMP错误。

服务器上的我的iptables看起来像:

iptables -P FORWARD ACCEPT iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT # Flush old rules iptables -F # Loopback iptables -I INPUT 1 -i lo -j ACCEPT # Allow responses from OUTPUT connection iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT # Apache iptables -A INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -P FORWARD DROP iptables -P INPUT DROP iptables -P OUTPUT ACCEPT 

每当我尝试curl --verbose https://server_ip/从我的电脑,它完美的作品。 但是当我在SSH服务器里面试过这个服务器时,它总是停留在CLIENT HELLO 。 为什么发生? 注意: curl --verbose http://server_ip/ (没有SSL)在本地PC和服务器上工作完美。

当我执行iptables -A INPUT -m state --state RELATED -j ACCEPT ,它也开始在服务器内部工作。 又是为什么开始工作?

手动说RELATED -- meaning that the packet is starting a new connection 。 这是一个安全风险吗? 客户端可以使用这个打开到不同端口的连接吗? 什么时候有用?

RELATED对于那些需要打开一个新连接的协议很有用。 它通常与ip_conntrack_ftp结合使用来进行ftp连接, 在这里查看活动ftp是如何工作的。