Гостьовий Wi-Fi через CLI
Ця сторінка надає скрипт, що створює окрему гостьову мережу та нову зону брандмауера для неї на вашому пристрої OpenWrt.
Іншими словами — створюється гостьова Wi-Fi мережа, яка має доступ до Інтернету, але не може отримати доступ до вашої локальної мережі (LAN).
Покроково
- Перед початком уважно прочитайте всю цю сторінку. Сформуйте хоча б загальне уявлення про те, що саме налаштовує код нижче.
- Створіть гостьову WLAN як додаткову конфігурацію на радіо 2,4 ГГц або 5 ГГц, зазвичай це буде
@wifi-iface[0]або@wifi-iface[1]. Нова гостьова мережа буде працювати на тій самій частоті, що й наявні WLAN. - Скопіюйте увесь блок коду нижче в SSH-консоль вашого пристрою OpenWrt і натисніть Enter. Або ж створіть shell-скрипт і виконайте його на вашому пристрої OpenWrt.
# Configuration parameters NET_ID="guest" WIFI_DEV="$(uci -q get wireless.@wifi-iface[0].device)" # Fetch upstream zone . /lib/functions/network.sh network_flush_cache network_find_wan NET_IF FW_WAN="$(fw4 -q network ${NET_IF})" # Set up guest WLAN uci -q batch << EOI delete network.${NET_ID}_dev set network.${NET_ID}_dev=device set network.${NET_ID}_dev.type=bridge set network.${NET_ID}_dev.name=br-${NET_ID} delete network.${NET_ID} set network.${NET_ID}=interface set network.${NET_ID}.proto=static set network.${NET_ID}.device=br-${NET_ID} set network.${NET_ID}.ipaddr=192.168.3.1/24 commit network delete wireless.${NET_ID} set wireless.${NET_ID}=wifi-iface set wireless.${NET_ID}.device=${WIFI_DEV} set wireless.${NET_ID}.mode=ap set wireless.${NET_ID}.network=${NET_ID} set wireless.${NET_ID}.ssid=${NET_ID} set wireless.${NET_ID}.encryption=none commit wireless delete dhcp.${NET_ID} set dhcp.${NET_ID}=dhcp set dhcp.${NET_ID}.interface=${NET_ID} set dhcp.${NET_ID}.start=100 set dhcp.${NET_ID}.limit=150 set dhcp.${NET_ID}.leasetime=1h commit dhcp delete firewall.${NET_ID} set firewall.${NET_ID}=zone set firewall.${NET_ID}.name=${NET_ID} set firewall.${NET_ID}.network=${NET_ID} set firewall.${NET_ID}.input=REJECT set firewall.${NET_ID}.output=ACCEPT set firewall.${NET_ID}.forward=REJECT delete firewall.${NET_ID}_${FW_WAN} set firewall.${NET_ID}_${FW_WAN}=forwarding set firewall.${NET_ID}_${FW_WAN}.src=${NET_ID} set firewall.${NET_ID}_${FW_WAN}.dest=${FW_WAN} delete firewall.${NET_ID}_dns set firewall.${NET_ID}_dns=rule set firewall.${NET_ID}_dns.name=Allow-DNS-${NET_ID} set firewall.${NET_ID}_dns.src=${NET_ID} set firewall.${NET_ID}_dns.dest_port=53 add_list firewall.${NET_ID}_dns.proto=tcp add_list firewall.${NET_ID}_dns.proto=udp set firewall.${NET_ID}_dns.target=ACCEPT delete firewall.${NET_ID}_dhcp set firewall.${NET_ID}_dhcp=rule set firewall.${NET_ID}_dhcp.name=Allow-DHCP-${NET_ID} set firewall.${NET_ID}_dhcp.src=${NET_ID} set firewall.${NET_ID}_dhcp.dest_port=67 set firewall.${NET_ID}_dhcp.proto=udp set firewall.${NET_ID}_dhcp.family=ipv4 set firewall.${NET_ID}_dhcp.target=ACCEPT commit firewall EOI service network reload service dnsmasq restart service firewall restart
Пояснення конфігурації
Усі зміни будуть видимі у веб-інтерфейсі після застосування:
- створюється гостьова мережа з іменем “guest”
- створюється DHCP-конфігурація для гостьової мережі (припускається, що
192.168.3.1/24не конфліктує з іншими мережами у вашій мережі) - створюється зона брандмауера з назвою “guest” для цієї мережі
- створюється правило переспрямування трафіку з гостьової зони до зони “wan” (але не навпаки)
- створюється правило брандмауера для доступу гостьової мережі до DHCP-сервісу OpenWrt
- створюється правило брандмауера для доступу гостьової мережі до DNS-сервісу OpenWrt
Налаштування під себе
Можливості для персоналізації майже безмежні:
- Зверніть увагу, що за замовчуванням не застосовуються спеціальні обмеження доступу до Інтернету для гостей. Якщо хочете дозволити тільки HTTP(S) або заблокувати UDP — доведеться вручну додати відповідні правила брандмауера.
- Також ви можете налаштувати винятки, якщо гості повинні мати доступ до вашого принтера чи стрімінгу з телефона на телевізор. На жаль, універсального шаблону для всіх випадків не існує.
- За бажанням можна навіть виділити один LAN-порт на маршрутизаторі через VLAN і прив’язати його до гостьової мережі, якщо гості хочуть користуватися дротовим підключенням.
Ручне видалення змін
Якщо ви колись захочете видалити зміни, створені цим скриптом, зробіть наступне у веб-інтерфейсі OpenWrt:
- Видаліть гостьовий інтерфейс у вкладці «Інтерфейси»
- Видаліть гостьову зону брандмауера у вкладці «Брандмауер»
- Усі правила брандмауера будуть автоматично видалені разом із зоною
- Конфігурація DHCP також буде автоматично видалена разом з інтерфейсом
- Потім натисніть «Зберегти та застосувати»
Використання за потребою
Можливо, гості не знаходяться у вашому домі постійно.
Вам не потрібно повністю видаляти конфігурацію після їхнього відходу.
Просто відкрийте веб-інтерфейс OpenWrt та увімкніть або вимкніть гостьову Wi-Fi мережу в будь-який момент.
Див. також
- OpenWrt-guest_wifi — скрипт для автоматичного налаштування гостьової Wi-Fi мережі