Skip to main content

homelab-vlan-segmentation

使用 UniFi、pfSense/OPNsense 和 MikroTik 将家庭网络分段为 VLAN,用于 IoT、访客、可信和服务器流量——包括交换机中继配置、防火墙规则和无线 SSID 映射。

Informations de source

Dépôt
aaione/everything-claude-code-zh
Dernière activité de la source
31 mai 2026 à 02:24
Langue détectée de SKILL.md
chinois
Étoiles
30
Forks
12

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
homelab-vlan-segmentation
description
使用 UniFi、pfSense/OPNsense 和 MikroTik 将家庭网络分段为 VLAN,用于 IoT、访客、可信和服务器流量——包括交换机中继配置、防火墙规则和无线 SSID 映射。
origin
社区
# 家庭实验室 VLAN 分段 如何将家庭网络分割为隔离的 VLAN,使 IoT 设备、访客和主 PC 无法相互通信。这是家庭网络最有效的安全升级。 此处显示的所有防火墙规则在分段之间添加隔离——它们不会移除现有保护。在维护窗口中应用更改,并在继续之前验证每个步骤后的分段间连接性。 ## 何时使用 - 首次在家庭网络上设置 VLAN - 将 IoT 设备(智能灯泡、摄像头、电视)与可信设备隔离 - 创建无法到达家庭设备的访客 Wi-Fi 网络 - 向不熟悉 VLAN 概念的人解释其工作原理 - 配置中继端口、接入端口和 SSID 到 VLAN 映射 - 排除 pfSense/OPNsense/UniFi 上的 VLAN 间路由或防火墙规则问题 ## 工作原理 ``` 无 VLAN — 扁平网络: 所有设备位于 192.168.1.0/24 智能电视(潜在恶意软件)→ 可以到达您的 NAS、PC、所有设备 使用 VLAN: VLAN 10 — 可信 192.168.10.0/24 (PC、手机、笔记本电脑) VLAN 20 — IoT 192.168.20.0/24 (智能电视、灯泡、摄像头) VLAN 30 — 服务器 192.168.30.0/24 (NAS、Pi、虚拟机) VLAN 40 — 访客 192.168.40.0/24 (访客 Wi-Fi) VLAN 99 — 管理 192.168.99.0/24 (交换机/AP Web UI) 智能电视 → 被阻止到达 192.168.10.0/24 和 192.168.30.0/24 访客 → 仅互联网,无法看到任何家庭设备 ``` ## VLAN 设计模板 ``` VLAN 名称 子网 网关 用途 10 trusted 192.168.10.0/24 192.168.10.1 PC、手机、笔记本电脑 20 iot 192.168.20.0/24 192.168.20.1 智能家居设备 30 servers 192.168.30.0/24 192.168.30.1 NAS、Pi、自托管 40 guest 192.168.40.0/24 192.168.40.1 访客 Wi-Fi 99 management 192.168.99.0/24 192.168.99.1 网络设备 Web UI ``` ## 示例 **带有 UniFi AP 和托管交换机的典型家庭实验室:** ``` 场景:3卧室住宅,UniFi Dream Machine + UniFi 8端口交换机 + 2个 AP VLAN 10 — 可信 192.168.10.0/24 MacBook、iPhone、iPad VLAN 20 — IoT 192.168.20.0/24 Nest 温控器、Philips Hue、Ring 门铃、智能电视 VLAN 30 — 服务器 192.168.30.0/24 Synology NAS (192.168.30.10)、Pi-hole (192.168.30.2) VLAN 40 — 访客 192.168.40.0/24 访客 Wi-Fi — 仅互联网 SSID → VLAN 映射: "Home" → VLAN 10 (WPA2、强密码、仅可信设备) "IoT" → VLAN 20 (WPA2、单独密码、打印在路由器上用于设置) "Guest" → VLAN 40 (WPA2、简单密码、可自由分享) 交换机端口行为: 端口 1 → 路由器中继(标记 VLAN 10,20,30,40,99) 端口 2 → AP 中继(标记 VLAN 10,20,40;AP 处理每个 SSID 标记) 端口 3 → 接入 VLAN 30 (NAS — 未标记,无需 VLAN 感知) 端口 4 → 接入 VLAN 30 (Pi-hole — 未标记) 端口 5–8 → 接入 VLAN 10 (有线工作站) 应用的防火墙规则(所有规则添加隔离,不移除现有保护): IoT → 可信:阻止 IoT → 服务器:阻止 192.168.30.2:53 例外 (允许 Pi-hole DNS) IoT → 互联网:允许 访客 → 本地网络:阻止 访客 → 互联网:允许 可信 → 所有地方:允许 ``` ## UniFi 配置 ### 在 UniFi 控制器中创建网络 ``` 设置 → 网络 → 创建新网络 对于每个 VLAN: 名称:IoT 用途:企业 (提供 DHCP + 路由) VLAN ID:20 网络:192.168.20.0/24 网关 IP:192.168.20.1 DHCP:启用 DHCP 范围:192.168.20.100 – 192.168.20.254 ``` ### 将 SSID 映射到 VLAN (UniFi) ``` 设置 → WiFi → 创建新 WiFi 名称:IoT-Network 密码:<单独密码> 网络:IoT ← 在此处选择您的 VLAN # 连接到此 SSID 的所有设备都落在 VLAN 20 中 名称:Guest 密码:<访客密码> 网络:Guest 访客策略:启用 ← 也将访客彼此隔离 ``` ### UniFi 防火墙规则(流量规则) ``` 设置 → 流量和安全性 → 流量规则 # 阻止 IoT 到达可信 VLAN 操作:阻止 类别:本地网络 源:IoT (192.168.20.0/24) 目标:可信 (192.168.10.0/24) # 仅允许 IoT 到达互联网 操作:允许 源:IoT 目标:互联网 # 阻止访客访问所有本地网络 操作:阻止 源:访客 目标:本地网络 ``` ## pfSense / OPNsense 配置 ### 创建 VLAN ``` 接口 → 分配 → VLAN → 添加 父接口:em1 (您的 LAN NIC) VLAN 标签:20 描述:IoT # 对每个 VLAN 重复,然后将每个 VLAN 分配给接口: 接口 → 分配 → 添加 选择您创建的 VLAN → 点击添加 启用接口,将 IP 设置为网关地址 (192.168.20.1/24) ``` ### 每个 VLAN 的 DHCP ``` 服务 → DHCP 服务器 → 选择您的 VLAN 接口 启用 DHCP 范围:192.168.20.100 至 192.168.20.254 DNS 服务器:192.168.30.2 ← Pi-hole IP(如果您有) ``` ### 防火墙规则(pfSense/OPNsense) ``` # 规则从上到下处理,首先匹配的获胜。 # 在 IoT 接口 (VLAN 20) 上: 规则 1:允许 IoT → Pi-hole DNS ← 必须在 RFC1918 阻止规则之前 协议:UDP/TCP 源:IoT 网络 目标:192.168.30.2 端口 53 操作:允许 规则 2:阻止 IoT → RFC1918 (所有私有 IP 范围) 协议:任何 源:IoT 网络 目标:RFC1918 (192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12) 操作:阻止 规则 3:允许 IoT → 互联网 协议:任何 源:IoT 网络 目标:任何 操作:允许 # 在可信接口 (VLAN 10) 上: 允许所有 (可信设备可以到达所有地方) 源:可信网络 目标:任何 操作:允许 # 需要特定本地服务的 IoT 设备的额外例外: 在规则 2 (RFC1918 阻止) 之前插入: 协议:TCP 源:IoT 网络 目标:192.168.30.x 端口 8123 ← Home Assistant 操作:允许 ``` ## MikroTik 配置 ``` # 步骤 1:创建启用 VLAN 过滤的网桥 /interface bridge add name=bridge vlan-filtering=yes # 步骤 2:将物理端口添加到网桥 # 到路由器/上行链路的中继端口(所有 VLAN 标记) /interface bridge port add bridge=bridge interface=ether1 frame-types=admit-only-vlan-tagged # 可信设备的接入端口(未标记 VLAN 10) /interface bridge port add bridge=bridge interface=ether2 pvid=10 frame-types=admit-only-untagged-and-priority-tagged # IoT 设备的接入端口(未标记 VLAN 20) /interface bridge port add bridge=bridge interface=ether3 pvid=20 frame-types=admit-only-untagged-and-priority-tagged # 步骤 3:定义哪些端口上允许哪些 VLAN /interface bridge vlan add bridge=bridge tagged=ether1 untagged=ether2 vlan-ids=10 add bridge=bridge tagged=ether1 untagged=ether3 vlan-ids=20 # 步骤 4:在网桥上创建 VLAN 接口(网关 IP) /interface vlan add interface=bridge name=vlan10 vlan-id=10 add interface=bridge name=vlan20 vlan-id=20 # 步骤 5:分配网关 IP /ip address add interface=vlan10 address=192.168.10.1/24 add interface=vlan20 address=192.168.20.1/24 # 步骤 6:DHCP 池和服务器 /ip pool add name=pool-trusted ranges=192.168.10.100-192.168.10.254 add name=pool-iot ranges=192.168.20.100-192.168.20.254 /ip dhcp-server add interface=vlan10 address-pool=pool-trusted name=dhcp-trusted add interface=vlan20 address-pool=pool-iot name=dhcp-iot /ip dhcp-server network add address=192.168.10.0/24 gateway=192.168.10.1 add address=192.168.20.0/24 gateway=192.168.20.1 # 步骤 7:防火墙 — 阻止 IoT 到达可信 VLAN /ip firewall filter add chain=forward src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \ action=drop comment="阻止 IoT 到可信" ``` ## 交换机中继与接入端口 ``` # 中继端口:承载多个 VLAN(标记)— 连接交换机到交换机、交换机到路由器、交换机到 AP # 接入端口:承载一个 VLAN(未标记)— 连接到终端设备 (PC、摄像头、NAS) # 连接到路由器的托管交换机端口应该是中继: 允许的 VLAN:10, 20, 30, 40, 99 # 连接到 PC 的端口应该是接入端口: VLAN:10 (可信) 无标记 — PC 不知道或不在乎 VLAN # 连接到 AP 的端口必须是中继: AP 使用正确的 VLAN ID 标记来自每个 SSID 的流量 允许的 VLAN:10, 20, 40 (AP 提供的任何 SSID) ``` ## 反模式 ``` # 错误:创建 VLAN 而不添加防火墙规则 # 没有防火墙规则的 VLAN 不提供安全性 — VLAN 间路由默认开放 # 正确:创建 VLAN 后立即添加显式阻止规则 # 错误:将 Pi-hole 放在 IoT VLAN 中 # IoT 设备可以到达它,但可信设备无法到达(需要额外规则) # 正确:Pi-hole 在服务器 VLAN 中,规则允许所有 VLAN 到达端口 53 # 错误:本机 VLAN 等于管理 VLAN # 未标记流量落在您的管理 VLAN 中启用 VLAN 跳跃攻击 # 正确:使用专用的未使用 VLAN 作为本机 (例如 VLAN 999),保持管理流量标记 # 错误:IoT SSID 和可信 SSID 使用相同的 Wi-Fi 密码 # 任何学习密码的人都可以将 IoT 设备连接到错误的分段 ``` ## 最佳实践 - 从 4 个 VLAN 开始:可信、IoT、服务器、访客 — 根据需要添加更多 - 将 Pi-hole 放在服务器 VLAN (192.168.30.x) 中 - 添加防火墙规则,允许所有 VLAN 到 Pi-hole IP 的 DNS(端口 53)—— 在任何 RFC1918 阻止规则之前 - 每次规则更改后测试隔离:从 IoT VLAN,尝试 ping 可信设备 — 应该失败 - 为交换机和 AP Web UI 使用管理 VLAN,并限制仅可信 VLAN 访问 - 在表格中记录您的 VLAN 设计 (VLAN ID、名称、子网、用途) ## 相关技能 - homelab-network-setup - homelab-pihole-dns - homelab-wireguard-vpn
Voir sur GitHub