来自iptables背景,在定义新的防火墙规则时,我可以指定数据包连接状态(通常是NEW和/或ESTABLISHED)。例如,这一对规则将确保只有在我的主机发起时才允许http连接,在远程主机发起时才允许删除:
iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT然而,当我开始探索作为替代方案的firewalld时,除了firewalld是一个有状态的防火墙管理服务之外,我找不到很多关于状态的文档,而且它似乎在内部处理包状态。有人能帮助解释在使用iptables创建防火墙规则时是否可以定义数据包状态(如上面的firewalld示例)吗?否则,我们如何在使用firewalld时实现相同效果的东西?
发布于 2023-03-26 07:55:26
单独为每个特定规则指定ESTABLISHED、RELATED语句没有多大意义,因为大多数手册、教程和firewalld只是创建这三条规则,并将它们放在各自的输入/输出/转发链的顶部:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT对于nft,应该是:ct state { established, related } accept
我几乎无法想象不使用这些全局规则的情况:可能用于测试TCP/IP堆栈,但在这种情况下,没有任何预定义的规则会更好。
https://unix.stackexchange.com/questions/740976
复制相似问题