Короткий ответ
Гостевая сеть — отдельный L2 (пример: 10.0.40.0/24), SSID только туда, client isolation на AP, на шлюзе drop guest→10.0.10.0/24, 10.0.30.0/24, 10.0.99.0/24. Интернет (DNS/HTTP/HTTPS) — да. Корпоративный DC, SMB, RDP, mgmt — нет. Не сажайте guest в 10.0.10.0/24 с «паролем на SSID». Не выключайте firewall, чтобы «гости печатали».
WAN 203.0.113.10 к гостям отношения не имеет: дыра внутренняя.
Симптомы и как отличить
С телефона на Guest: ping 10.0.10.10, открывается внутренний портал, RDP. DHCP выдаёт 10.0.10.0/24 и шлюз офиса. На MikroTik один WLAN в том же bridge, что ether LAN. На AP нет isolation / «Guest network» флажка.
| Тест с guest | Должно | Сейчас плохо |
|---|---|---|
| ping 10.0.10.10 | fail | success |
| https://example.com | success | — |
| ping другого гостя | fail (isolation) | success |
| WinBox 10.0.10.1 | fail | success |
Отличие от «нет сегментации серверов»: там сотрудники видят серверы. Здесь недоверенные устройства видят корпоратив.
Возможные причины
- SSID на том же VLAN/bridge, что LAN.
- Нет AP isolation: гости ходят L2 друг к другу и к проводным, если мост общий.
- На шлюзе accept guest→LAN «для принтера».
- CAPsMAN forwarding в локальный bridge LAN.
- Клиент после captive portal попадает в корпоративный пул.
- IPv6 RA с корпоративного сегмента на том же эфире.
Диагностика
1. Адрес, который получил гость
На телефоне/ноутбуке: IP, маска, gw, DNS. Если 10.0.10.x — это LAN, не guest.
2. RouterOS / CAPsMAN
/interface wireless print
/caps-man security print
/caps-man datapath print
/interface bridge port print
/ip address print
/ip firewall filter print where src-address=10.0.40.0/24datapath local forwarding в bridge LAN — гости в L2 с ПК. Нужен отдельный VLAN или отдельный bridge.
3. Ubuntu + отдельная AP
AP должна тегировать VLAN guest на trunk. На шлюзе:
ip -br addr | grep -E '40|guest|vlan'
sudo nft list rulesetНет SVI guest — AP, скорее всего, бриджует в LAN.
4. Client isolation
На точке: опция isolation / «Block intra-BSS». Проверка: два телефона на Guest, ping друг друга. Success без isolation — гости могут атаковать чужие сессии (особенно без клиентского FW).
tcpdump на корпоративном SVI при заходе гостя: ARP/DHCP корпоративного пула.
Не сканируйте чужие телефоны посетителей портсканом. Тестируйте только свои стендовые устройства.
Решение
Целевая сеть guest: 10.0.40.0/24 (пример). DNS: публичный резолвер или внутренний только рекурсия без зоны AD; лучше отдельный unbound без записей DC.
Сценарий A. RouterOS 7, гостевой WLAN
Отдельный datapath/VLAN, адрес 10.0.40.1/24, DHCP только этот пул.
/ip firewall filter add chain=forward connection-state=established,related action=accept place-before=0
/ip firewall filter add chain=forward src-address=10.0.40.0/24 dst-address=10.0.10.0/24 action=drop comment="guest not to LAN"
/ip firewall filter add chain=forward src-address=10.0.40.0/24 dst-address=10.0.30.0/24 action=drop
/ip firewall filter add chain=forward src-address=10.0.40.0/24 dst-address=10.0.99.0/24 action=drop
/ip firewall filter add chain=forward src-address=10.0.40.0/24 dst-address=10.0.40.1 action=accept comment="DHCP/DNS gw"
/ip firewall filter add chain=forward src-address=10.0.40.0/24 out-interface-list=WAN protocol=udp dst-port=53 action=accept
/ip firewall filter add chain=forward src-address=10.0.40.0/24 out-interface-list=WAN protocol=tcp dst-port=80,443 action=accept
/ip firewall filter add chain=forward src-address=10.0.40.0/24 out-interface-list=WAN action=drop comment="guest egress tight"Wireless: isolation / forwarding=no между клиентами (в CAPsMAN datapath client-to-client forwarding выкл).
Сценарий B. nftables
sudo cp /etc/nftables.conf /root/nftables.conf.bak.guest
# iif guest0 ip daddr { 10.0.10.0/24, 10.0.30.0/24, 10.0.99.0/24 } counter drop
# iif guest0 oif wan tcp dport { 80, 443 } accept
# iif guest0 oif wan udp dport 53 accept
sudo nft -c -f /etc/nftables.confDefault drop прочего egress гостей (SMTP 25, VPN-обход, 445).
Сценарий C. Нужен принтер гостям
Не открывайте всю LAN. Выделенный print-VLAN или один IP МФУ с allow tcp 9100 на этот хост, плюс изоляция. Лучше гостевой портал «скинь на email». Любой allow guest→LAN фиксируйте в матрице с владельцем.
Сценарий D. Проводной «гостевой» порт в переговорке
Тот же VLAN 40, не untagged LAN. 802.1X ещё лучше. Порт «просто access LAN» в переговорке = тот же инцидент.
Концепция pfSense/OPNsense: optional Guest interface, rules: allow WAN 80/443/53, deny RFC1918. Не enable «allow private networks» на guest.
Связка: сегментация офиса, серверный VLAN.
Как проверить, что проблема устранена
Со своего тестового телефона на Guest (не сканируйте устройства посетителей):
- IP из
10.0.40.0/24. - Сайт в интернете открывается.
ping 10.0.10.10fail,Test-NetConnection 10.0.10.10 -Port 445fail.ping 10.0.99.1fail.- Второй тестовый клиент на Guest не пингуется (isolation).
- С LAN сотрудники работают как раньше.
На шлюзе counters drop guest→LAN растут при ваших тестах.
Если не помогло
- Гость получил IPv6 из корпоративного RA — режьте ip6, отключите RA на guest или отдельный prefix без маршрута в LAN.
- DNS отдаёт внутренние A-записи — split DNS с guest-резолвера убрать.
- Local forwarding на одной AP обошёл VLAN.
- «Корпоративный» SSID с тем же паролем, что Guest, путаница.
- VPN на телефоне гостя в LAN — это уже учётные данные, не Wi‑Fi; отзыв.
Профилактика
- Два SSID минимум: corp (802.1X) и guest (PSK/портал) на разных VLAN.
- Регламент: принтер для гостей не в DC VLAN.
- Квартальный тест с телефона из ящика IT.
- Client isolation по умолчанию.
- Captive portal не в AD-зоне.
FAQ
Можно ли гостей пустить в интернет через тот же NAT, что LAN?
Да, NAT на WAN 203.0.113.10 общий бывает. Фильтр forward разный. Не путайте NAT с доступом в LAN.
Нужен ли отдельный белый IP гостям?
Обычно нет. Отдельный VLAN важнее.
Client isolation ломает Chromecast в переговорке
Для corp VLAN isolation часто выкл. Для guest — вкл. Не смешивайте медиа-гостей с guest-интернетом посетителей.
Открыть RDP «только одной ВМ» гостям
Плохая идея. Демо-стенд в DMZ 10.0.30.0/24 с точечным allow, не DC.
Wi‑Fi printer в guest
Тогда сотрудники с corp не увидят его без маршрута. Держите печать в corp или отдельном print-VLAN, гостей туда не пускайте без заявки.