我想配置 ufw 以拒绝除相关和已建立的连接之外的所有内容。在 iptables 上我通常会这样做:
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
我读到 ufw 上的下一个代码是密切相关的:
ufw default deny incoming
ufw default deny forwarding
ufw default allow outgoing
ufw allow 443/tcp
ufw allow 53/tcp
................
问题是,使用该 ufw 代码,我允许从该端口传入的所有流量。使用 iptables,只允许已建立的连接。我如何在 ufw 上配置相同的规则?
答案1
看起来你不需要做任何事情来允许关联/已建立连接。
在UFW 0.36 版我正在看Ubuntu 核心 16.04,默认存在允许 RELATED/ESTABLISHED 连接的规则。
打开规则之前规则,你会看到工作已经为你完成了:
# quickly process packets for which we already have a connection
-A ufw-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
答案2
ufw
被视为 的简单前端iptables
。它不支持 提供的所有功能,iptables
并且尚不支持基于连接匹配状态的过滤。
ufw
基本上是为了让任何用户都能理解或编辑基本的防火墙规则,而不必经历复杂的过程iptables
。你可以检查一下Ubuntu 维基进一步了解哪些功能已受支持。请注意,如果您知道,iptables
则无需ufw
。
答案3
尝试添加到 /etc/ufw/before.rules
*filter
:INPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
COMMIT