基于Debian 12、VirtualBox与nftables的类Whonix架构防火墙规则配置求助
基于Debian 12、VirtualBox与nftables的类Whonix架构防火墙规则配置求助
大家好,我正在搭建一个类Whonix的虚拟机环境,卡在了nftables防火墙规则的配置上,想请教下社区的大佬们。
环境说明
先跟大家明确下我用到的术语和环境:
- VM = Virtual Machine(虚拟机)
- WS = Workstation VM(工作站虚拟机)
- GW = Gateway VM(网关虚拟机)
- 虚拟化软件:
Oracle VirtualBox - 宿主机/客户机系统:全部为Debian 12
- 防火墙软件:
nftables
搭建目标
我想要实现的是类Whonix的网络架构:
- WS仅连接到内部虚拟网卡
- GW同时连接到同一个内部虚拟网卡和NAT网卡
- WS必须通过GW才能访问互联网
为什么不直接用NAT?
直接给WS配置NAT的话,WS可以连接到宿主机的环回接口,这是我不希望看到的,所以才选择这种分层架构。
当前遇到的问题
我需要配置防火墙规则,让WS只能通过GW转发流量但不能直接连接GW本身。
理由是:GW可能会给同一个内部网络里的其他VM提供服务,我不希望WS能访问这些服务。
我已理解的知识点
关于这个需求,我已经搞懂了两点:
- 数据包目标地址的差异:如果WS尝试直接连接GW,数据包的目标地址(daddr)就是GW的IP;如果是通过GW转发上网,数据包的目标地址是外部网络的地址。
- 知道
nexthop(下一跳)的概念——它是指示数据包下一步应该发往哪里的标识。
我的困惑点
目前还有两个核心问题搞不清楚:
- 如何用
nftables配置出符合需求的防火墙规则? - 我对整个网络流量转发的底层原理了解还比较有限,目前都是靠查man页和反复试错来摸索的,希望能得到更清晰的原理讲解。
备注:内容来源于stack exchange,提问作者EmErAJID
相关产品推荐
相关产品推荐

