配置 UFW 以仅允许已建立和相关的连接(在 IPv4 上)

配置 UFW 以仅允许已建立和相关的连接(在 IPv4 上)

我想配置 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

相关内容