技术文章 / 排查笔记

pfSense 访客 VLAN 怎么隔离办公内网?从接口、DHCP 到防火墙规则的部署教程

面向初级网工的pfSense访客VLAN部署教程:从独立接口、交换机标签与PVID、DHCP和DNS到规则排序,验证办公内网及管理页面阻断并准备回退。

pfSense 访客 VLAN 怎么隔离办公内网?从接口、DHCP 到防火墙规则的部署教程技术文章配图

给访客换一个 Wi-Fi 名称,并不能保证办公服务器、NAS 和防火墙管理页面无法访问。真正需要检查的是:访客接入哪个 VLAN、网关在哪里、哪些目的地址被拒绝,以及规则实际命中了什么流量。

直接答案:在 pfSense 新建 VLAN20 访客接口,为其单独配置地址和 DHCP,再在访客入口按顺序允许必要 DNS、阻断防火墙自身与内部网段、最后放行网页流量。本例使用独立物理网口连接访客交换机,保留原办公 LAN 和管理连接。验收必须同时看到“网页能打开”和“内部测试服务被对应规则阻断”;仅能获取地址、能上网或不能 Ping,都不足以证明隔离。

本文根据 Netgate 官方文档整理为操作示例,以 pfSense CE 2.9.0 的界面字段为参照;2.8.1 的部分字段和 DHCP 页面会不同。版本说明见官方发布记录。本文不安排防火墙升级,已有设备应先确认自己的版本、维护状态及厂商说明。

一、先确认适用环境和隔离范围

这份教程适合已有 pfSense 网关、需要新增一个小型有线访客试点的企业。准备一台能配置 802.1Q VLAN、端口 PVID 和管理访问限制的交换机,以及一台测试电脑。VLAN 是交换机上的二层广播域;pfSense 负责不同网络之间的三层访问控制。

本例不迁移现有办公网络,不配置无线 AP、访客认证门户、双机高可用、多 WAN、网桥或第三方过滤包。如果已有这些功能,必须先评估它们与新接口的规则、路由及服务关系,不能直接套用末尾放行规则。

项目 本文操作示例 开始前要确认
WAN igc0,已有正常 IPv4 上网 原办公电脑能正常访问外网
办公管理 LAN igc1,192.168.10.1/24 保持现有接口、地址、规则和管理连接
访客物理父接口 空闲 igc2 未承载业务、没有 IP、未加入桥或链路聚合
新逻辑接口 igc2 上的 VLAN20,命名 GUEST20 不与现有 VLAN、接口或 VPN 网段重叠
访客网关 192.168.20.1/24 此地址由 pfSense 持有,不在交换机上重复建立三层网关
DHCP 地址池 192.168.20.100—192.168.20.199 没有其他 DHCP 服务器或中继服务冲突
访客 DNS 192.168.20.1 使用现有 DNS Resolver,并确认其访问控制
交换机管理 示例 192.168.99.2/24,独立管理口 设备能把管理访问限制在管理 VLAN/指定端口或管理 ACL
试点范围 一个访客端口、一台电脑 测试电脑关闭办公 Wi-Fi、其他网卡及 VPN

地址和接口名称都必须按实际设备替换。不要把“第三个插孔”直接认成 igc2:在 Status → Interfaces 对照物理链路、设备标识和预先记录的端口,逐一确认。没有空闲物理口时,应另做共享 Trunk 的变更方案,不在生产管理链路上边试边改。

这套规则限制的是访客经 pfSense 发起的路由连接,不阻止同一 VLAN 内的两台设备直接通信。无线访客之间的隔离需要 AP 的客户端隔离能力;有线同网段的设备隔离需要交换机相应功能和另行验证。

二、备份配置,先准备好撤回路径

  1. 用办公管理电脑登录 pfSense,进入 Diagnostics → Backup & Restore,选择完整配置备份并下载。按公司规范加密保存,配置文件可能包含敏感信息;不要放进公开工单。备份方法见官方说明。
  2. 在交换机管理页面导出现有配置,记录型号、硬件版本、固件版本、各端口的 VLAN 成员关系、PVID 和管理地址。配置保存到启动配置的方法以设备手册为准。
  3. 保留一台通过原办公 LAN 登录的管理电脑,准备交换机独立管理口或控制台。整个试点期间,这条连接保持可用。
  4. 先从办公电脑访问一项允许测试的内部 HTTPS 服务,例如 NAS 的管理入口或专用测试页,记录其地址、端口、正常响应和时间。这是后面判断阻断是否有效的对照,不能把本来就停机的服务器当隔离证据。
  5. 记录 Firewall → Rules 的 Floating、接口组和 LAN 规则,以及 Firewall → NAT → Outbound 的当前模式。已有广泛放行的 Floating/接口组规则可能先于新接口规则生效。

停止门槛:不能取得管理恢复通道、无法确认接口用途、地址存在重叠、或现有办公网络本来就异常时,先处理这些问题。不要通过“临时放开所有流量”寻找运气。

三、交换机先配 VLAN 成员关系,再配 PVID

访客电脑经交换机P2无标签接入,再由P1以VLAN20标签送到防火墙igc2的路径

图:本例只展示访客接入路径。电脑侧发送普通无标签帧,交换机上联侧携带 VLAN20 标签;原办公 LAN 走另一物理接口,不在图中。P1、P2 是本例的端口角色标识,图中位置不代表具体型号的面板编号顺序。手机可点开原图查看端口标签,具体参数以正文表格为准。

使用一台专用于试点、未连接办公交换机的管理型交换机。以下为通用字段,实际菜单可能叫 VLAN Membership、802.1Q VLAN、Port VLAN 或 PVID;不要把端口聚合菜单里的 Trunk 当成 VLAN Trunk。Tag、Untag 和 PVID 的概念可参考TP-Link 官方配置说明,具体设备仍按其型号手册操作。

端口 接什么 VLAN20 出口成员关系 入口 PVID 其他要求
P1 pfSense 的空闲 igc2 Tagged 按设备要求保留管理/未使用的 Native VLAN,示例 1 不把 VLAN20 设为无标签出口;pfSense 父接口不配置地址
P2 访客试点电脑 Untagged 20 从 VLAN1 及其他办公/管理 VLAN 移除;可用时设置仅接收无标签帧和入口检查
P8 交换机临时管理电脑 非 VLAN20 成员 管理 VLAN,示例 1 保留管理通道,不连接办公交换机
其他端口 暂不使用 非 VLAN20 成员 按原管理方案 关闭未使用端口或保持隔离,勿接入其他网络

操作顺序:在 802.1Q 页面创建 VLAN20,设置 P1 为 Tagged、P2 为 Untagged并应用;进入 PVID 页面将 P2 改为 20;再核对 P2 已退出其他 VLAN,且 P8 管理连接仍正常。最后按厂商方式保存到启动配置。只改 PVID 不改出口成员关系,或只设 Untagged 不改 PVID,都会造成收发方向不一致。

交换机如果有三层路由功能,本例不启用 VLAN20 的三层接口、DHCP 或跨 VLAN 路由。访客必须通过 pfSense 才能去其他网络。部分入门设备的管理平面可从多个 VLAN 访问,不要仅凭 VLAN 成员表就认为管理入口安全;设备不支持管理访问限制,或从访客侧仍能打开管理页,应停止扩大试点并更换合适的设备或方案。

四、在 pfSense 创建并启用 GUEST20

按照官方 VLAN 配置文档操作:

  1. 进入 Interfaces → Assignments → VLANs → Add。
  2. Parent Interface 选择刚核对的 igc2;若有 VLAN Tag Type 字段,普通单层 802.1Q 选择 C-Tag (0x8100);VLAN Tag 填 20,描述填 Guest VLAN20,保存。2.8.1 可能没有 Tag Type 字段,不要为寻找该字段去改其他高级选项。
  3. 返回 Interface Assignments,在可用网络端口中选中刚建立的 VLAN20,点 Add。点新出现的 OPT 接口,勾选启用,Description 改成 GUEST20。
  4. IPv4 Configuration Type 选 Static IPv4,地址填 192.168.20.1、前缀长度 24;IPv4 Upstream Gateway 保持 None。它是内部接口,不能把自己填成上游网关。
  5. IPv6 Configuration Type 选 None。GUEST20 不启用 DHCPv6 和 Router Advertisements,不从 WAN 跟踪前缀。这里不改变原办公网络或 WAN 的 IPv6 配置。
  6. 本例访客使用私有地址,GUEST20 不勾选 Block private networks;不要照搬 WAN 的该选项。保存并应用。
  7. 在 Status → Interfaces 检查新接口启用、地址正确、物理父口链路正常;原 LAN 管理页面仍可访问。此时尚无访客放行规则,不能以暂时无法上网判断失败。

五、只为新接口开启 DHCP 和必要 DNS

DHCP:不要顺手切换整个设备的后端

进入 Services → DHCP Server → GUEST20,确认当前选中的是新接口。勾选为此接口启用 DHCP,地址池填 192.168.20.100—192.168.20.199,DNS Server 填 192.168.20.1。网关留空时通常使用该接口地址;保存后必须在客户端确认实际收到的默认网关是 192.168.20.1。官方 DHCPv4 文档说明了接口标签页和字段差异。

Kea 是当前官方推荐的 DHCP 后端,但切换后端属于全局变化。本轮沿用已有后端,不为新增 VLAN 去切换原 LAN 的 DHCP 引擎。新建环境可按当前官方建议使用 Kea;已有 ISC 环境的迁移另约维护窗口。设备启用了 DHCP Relay 时也不能直接同时启用本地 DHCP Server,应先明确原设计。

此处不配置未知客户端拒绝、MAC 白名单或静态绑定,避免把地址分配问题混入第一轮试点。pfSense 为启用的 DHCP 服务加入必要的自动规则,后续规则表不要求手工复制一条来源任意的 DHCP 放行规则。

DNS:确认监听接口和访问控制

进入 Services → DNS Resolver,确认现有 Resolver 已启用。Network Interfaces 若为 All,核对新接口被包含;若原来是手工选择,保留原选择并追加 GUEST20。不要删掉办公接口,也不要将 Outgoing Network Interfaces 误改为 GUEST20。

在 Access Lists 页面核对 192.168.20.0/24 是否已被自动允许;自定义拒绝或关闭自动访问列表的环境,需要按原策略添加针对该网段的 Allow,不能增加面向所有来源的开放解析权限。保存应用可能重载共享解析服务,应在维护窗口内操作,并复查办公侧解析正常。

允许访客使用同一个 Resolver,意味着它可能查询到该 Resolver 已知的内部名称或主机覆盖记录。本文实现路由访问限制,不保证内部 DNS 信息不可见。有独立 DNS 保密需求时,应另行设计访客解析服务与 DNS 策略;不要把“网站打不开”当作内部名称没有泄露。

六、按顺序建立访客防火墙规则

访客流量在防火墙先获得DNS例外、再遇到内部访问阻断、最后才放行网页的简化策略示意

图:DNS 是到防火墙自身的必要例外,内部访问在网页放行之前被挡住。示意图合并了部分步骤,实际规则以下表为准。

先做 LOCAL_PROTECTED 和 WEB_PORTS 两个别名

进入 Firewall → Aliases → IP → Add,名称填 LOCAL_PROTECTED,类型选 Network(s)。至少逐行加入 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16,并补上公司实际使用的其他内部地址:VPN 对端、服务器/管理网络、运营商私网、专线及企业在内部路由的公网前缀。示例交换机管理地址 192.168.99.2 已被 192.168.0.0/16 覆盖。

这里不是声称 RFC1918 就是全部内网。若企业使用 100.64.0.0/10 中的地址或公网地址作为内部路由目标,必须根据真实地址表纳入;同一公网地址还承载公司内部服务的,也要评估其是否应对访客开放。不要填写不存在的假公网前缀。

进入 Aliases 的 Ports 页面,建立 WEB_PORTS,分别加入 80 和 443。保存并应用。别名是便于维护的集合,不是程序脚本。

再做 GUEST20 入口规则

进入 Firewall → Rules → GUEST20。普通接口规则按流量进入防火墙的接口匹配,因此应该配置访客入口,不是仅在 WAN 页加规则。每条都检查 Address Family 为 IPv4、Source 为 GUEST20 net、Source Port 为 any、Gateway 为 default,不启用目的地址取反。规则方向及自动规则见官方规则机制。

自上而下 Action / Protocol Destination / 目的端口 描述示例与作用
1 Pass / TCP/UDP GUEST20 address / 53 G20_ALLOW_DNS,只允许访客向本网关查询 DNS
2 Block / any This Firewall (self) / any G20_BLOCK_FIREWALL,拒绝其他防火墙自有地址和管理服务;启用日志
3 Block / any LOCAL_PROTECTED / any G20_BLOCK_INTERNAL,拒绝内部和管理网段;启用日志
4 Pass / TCP any / WEB_PORTS G20_ALLOW_WEB_TCP,允许网页 HTTP/HTTPS
5(可选) Pass / UDP any / 443 G20_ALLOW_QUIC,需要 HTTP/3 时才添加
6 Block / any any / any G20_BLOCK_OTHER,记录其余 IPv4 拒绝流量;IPv6 仍无放行规则

第2、3、6条启用日志。以上控制访客发起的连接,不代表同时限制了办公电脑主动访问访客。

点 Add 新建规则时留意它插入顶部还是底部;全部保存后在列表中核对顺序,再点 Apply Changes。DNS 例外如果放在 This Firewall 阻断之后,会被前面的阻断规则遮住。阻断内网如果放在网页放行之后,内部 HTTPS 页面就可能被提前放行。

这是一份“基本网页访问”策略,不是任意应用都能上网:外部传统 DNS、SMTP、SSH、游戏及其他端口默认不通;NTP 等需求应单独评估,本文不额外放开。TCP443 也不等于只能浏览网页,HTTPS 中可以承载 VPN、代理和 DoH;本文不提供应用识别、内容过滤或强制 DNS 保证。

检查 Floating 和包含 GUEST20 的接口组,确认没有更早匹配的广泛 Pass。存在规则包、策略路由、NAT 反射、端口映射或内部公开服务时,按实际流量路径复核;不明确时停止试点,不复制生产 LAN 的 allow-all 规则。

验证 IPv6 和 NAT,别靠 NAT 证明隔离

本例只添加 IPv4 放行。访客接口没有 IPv6 路由、DHCPv6 或 RA,也不应被其他 IPv6 放行的接口组覆盖。若试点电脑拿到可路由 IPv6 地址并能访问外部或内部 IPv6 服务,先查其他路由器、AP/网桥和策略;仅有链路本地 IPv6 地址并不表示能路由上网。

打开 Firewall → NAT → Outbound。本例以既有 Automatic Outbound NAT 为前提,核对自动规则包含 192.168.20.0/24 到 WAN 的地址转换。如果当前是 Manual 或复杂 Hybrid 模式,先按现有策略补充精确源网段的规则并独立审查,不直接切换整个模式。NAT 只处理地址转换,隔离仍取决于防火墙和真实路由路径。官方 NAT 说明解释了这些模式。

七、按地址、网页、拒绝日志三层验收

Solomon203拍摄的Intel EXPI9301CTBLK单口PCIe网卡,展示实体网络接口

照片:Intel EXPI9301CTBLK 单口网卡,作者 Solomon203 / Wikimedia Commons,CC BY-SA 4.0,本文仅缩放并转换为 WebP,衍生图沿用同许可;非本文现场。它用于说明物理端口识别,不能据此推断实际防火墙型号、接口名或 VLAN 兼容性。

将试点电脑接入 P2,在系统网络设置中启用自动获取 IPv4 和 DNS,断开再连接网卡以重新获取租约;关闭其他网络路径和浏览器代理。Windows 可在“设置 → 网络和 Internet → 以太网”查看地址信息,macOS 可在“系统设置 → 网络 → 以太网 → 详细信息 → TCP/IP、DNS”检查。不要要求访客电脑手工打 VLAN 标签。

检查 预期观察 不满足时先查哪里
地址与租约 192.168.20.100—199、掩码 /24、网关及DNS 192.168.20.1;Status → DHCP Leases 有对应租约 P2 PVID、成员关系、P1 Tagged20、父接口及DHCP是否选错接口
外部网页 浏览器打开两家允许测试的公共 HTTPS 网站,页面正常加载 从Status → System Logs → Firewall 查测试电脑源地址;再分清DNS、规则、WAN和NAT
pfSense 管理入口 从访客浏览器访问 192.168.20.1 和原LAN管理地址的实际HTTPS端口,均不能进入;日志命中G20_BLOCK_FIREWALL DNS例外是否过宽、是否有旧状态、Floating/接口组是否先放行
内部已知服务 访问之前确认可用的内部HTTPS测试地址,连接被拒绝/超时且日志命中G20_BLOCK_INTERNAL LOCAL_PROTECTED漏项、规则顺序或流量是否绕过pfSense
交换机管理入口 访客不能打开交换机管理页;管理电脑仍能经P8管理 交换机自身管理VLAN/管理ACL,不仅是pfSense规则
办公侧对照 原管理会话、DNS及原内部服务正常 共享Resolver重载、全局DHCP/NAT误改或接线错误
IPv6与旁路 无本例之外的IPv6路由上网或内部访问路径 其他路由器RA、无线/有线双连接、VPN及桥接

负向测试需在公司授权的测试地址与服务内进行。浏览器证书警告不是“隔离成功”:能收到内部服务的证书或登录页,已经说明连接到达了不应到达的服务。不能打开页面却没有相应阻断日志,也不能排除服务停机、客户端代理或地址错误。

如果此前曾用临时放行规则测试过,旧连接状态可能仍保留。到 Diagnostics → States,筛选试点电脑地址或 GUEST20,确认目标后删除对应的状态并建立新连接;需要批量 Kill States 时以试点 IP/网段作为明确过滤条件,不用全局 Reset States 中断其他办公会话。官方状态查看说明列出了按接口、地址过滤与删除方式。

还要单独验证交换机管理平面是否从二层泄露:保持测试电脑接在 P2、PVID20 不变,由管理员临时给它设置事先确认未占用并预留的管理网段测试地址,例如 192.168.99.250/24,网关和 DNS 均留空,其他网卡/VPN 继续关闭。重新连接交换机实际管理地址 192.168.99.2 的管理端口,应无法建立连接,而 P8 管理电脑仍应正常。这项测试不经过 pfSense,不能要求出现其阻断日志;如果能收到登录页或证书,即停止试点并修正交换机管理 VLAN/ACL。测试后把电脑恢复为自动获取地址和 DNS,重新取得 .20 网段租约。此验收方法由二层流量路径推导,可参考Netgate 对不可由网关过滤流量的说明,不把它当作已经执行的现场结果。

最小验收记录应包含:设备及版本、端口映射、配置备份位置、试点电脑租约、正向网页结果、两类阻断日志时间及规则描述、管理通道正常、IPv6检查和现有限制。不要用图中的箭头代替日志,也不要只留一张“上网成功”的截图就交付。

八、失败时怎样撤回,不影响办公网

遇到管理断连、访客能进内部服务、交换机管理口意外开放、IPv6绕行或办公侧原有服务退化,应停止接入更多访客。先拔掉访客 P2 或禁用该端口,保留原管理 LAN 与 P8 管理通道。

在 pfSense 停用新 GUEST20 接口的 DHCP,禁用 GUEST20 并应用;核对办公侧恢复正常。确需撤销时,仅删除本轮新建的接口规则/接口分配/VLAN对象,确认不再被引用后再删除新别名;若为DNS监听新增了GUEST20,仅撤回这个新增选择,不覆盖其他接口。交换机恢复本次涉及端口的成员关系、PVID及管理限制,核对后保存。

不要先恢复整机配置或重置全部规则。完整配置恢复会影响其他服务和并发变更,只在明确确认恢复范围、配置差异和维护窗口后,通过原管理通道或控制台按官方流程执行。原办公 LAN 在任何时候都不应靠访客 VLAN 才能管理。

常见问题

为什么访客有 IP,却打不开网页?

DHCP 成功只说明分配链路可用。继续核对DNS、GUEST20规则顺序、Resolver监听和ACL、WAN连通及对应NAT。不要通过开放所有协议掩盖根因。

只阻断 192.168.10.0/24 是否足够?

不够。还要考虑其他办公、服务器、管理、VPN、专线网段及内部使用的公网地址;防火墙自身地址也要单独限制。地址表更新后,LOCAL_PROTECTED与验收目标都应同步更新。

开了 VLAN20,访客之间就不能互访了吗?

不会自动做到。同一 VLAN 内的通信通常不经过 pfSense。本例不包含交换机私有VLAN/端口隔离或AP客户端隔离,这些需要设备支持和单独验收。

可以直接给访客访问内网打印机吗?

先明确是否真的需要以及具体目标和协议,再在内网阻断前增加最小范围例外并重新审查。不要为了发现打印机而开放整段办公网或跨VLAN广播转发。

HTTPS 放行能强制所有 DNS 走 pfSense 吗?

不能。传统外部53端口默认不通,但DoH可使用443端口。需要强制解析、内容审计或应用控制时,应单独设计,不把本例当成完整的访客安全体系。

相关解决方案

企业交换机、网关与地址规划可参考网络设备与交换路由方案。已有复杂专线或多站点网络时,先梳理实际路由和管理边界再实施。

相关阅读

如需现场实施,可先准备现有拓扑、设备型号、地址表和允许访客访问的服务清单,由煜企协助确定试点及验收范围。

返回文章列表

相关解决方案

把技术主题连接到可实施的方案

网络设备 & 交换路由

适合从交换机、路由、VLAN、PoE 或网络改造文章进入企业网络设备建设方案。

查看方案 →

容灾备份解决方案

适合从备份、误删、勒索、恢复或业务连续性文章进入数据保护方案。

查看方案 →

企业SDWAN组网设计

适合从多分支、专线、云访问或网络质量文章进入企业 SD-WAN 建设方案。

查看方案 →

相关文章

阅读相关内容

返回文章列表