WireGuard 和 UFW:UFW 会阻止 wg0 上的流量,即使规则允许

WireGuard 和 UFW:UFW 会阻止 wg0 上的流量,即使规则允许

我在 Debian 上使用附加接口运行 Wireguard wg0。有了这个 ufw 规则,我期望 ufw 能够传递我的流量:

ufw allow in on wg0 to any

但相反,ufw 阻止了流量:

[14674.950320] [UFW BLOCK] IN=wg0 OUT=eth0 MAC= SRC=10.0.0.2 DST=54.xx.xx.xx LEN=64 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=TCP SPT=54263 DPT=443 WINDOW=65535 RES=0x00 SYN URGP=0 
[14675.451891] [UFW BLOCK] IN=wg0 OUT=eth0 MAC= SRC=fd00:0000:0000:0000:0000:0000:0000:0002 DST=2a05:xxx LEN=84 TC=0

有人知道这里发生什么事吗?

答案1

日志显示两个接口:IN=wg0 OUT=eth0。这意味着它是路由/转发流量,而不是以节点为目的地的流量,其中OUT=将为空。它在后端(iptables)中转换为filter/FORWARD链而不是链filter/INPUT

UFW 语法控制路由流量的方法是:

ufw [--dry-run] route [delete] [insert NUM] [prepend] allow|deny|reject|limit [in|out on INTERFACE] [log|log-all]

(不是很明显,但inout可以同时使用)

因此,为了允许 OP 案例中被阻止的流量:

ufw route allow in on wg0 out on eth0

或者对于来自wg0任何目标接口的转发流量,只需:

ufw route allow in on wg0

相关内容