Table of Contents

Додаткові налаштування гостьового Wi-Fi

Вступ

Додатково

Подвійний діапазон (Dual-band)

Якщо ви хочете використовувати обидва діапазони Wi-Fi. Змініть ідентифікатор інтерфейсу за потреби.

# Налаштування бездротової мережі
WIFI_DEV="$(uci get wireless.@wifi-iface[1].device)"
uci -q delete wireless.guest2
uci set wireless.guest2="wifi-iface"
uci set wireless.guest2.device="${WIFI_DEV}"
uci set wireless.guest2.mode="ap"
uci set wireless.guest2.network="guest"
uci set wireless.guest2.ssid="guest2"
uci set wireless.guest2.encryption="none"
uci commit wireless
wifi reload

Наведені нижче налаштування потрібно застосувати окремо для кожного SSID/діапазону.

Шифрування

Захистіть вашу гостьову мережу.

# Налаштування шифрування
WIFI_PSK="GUEST_WIFI_PASSWORD"
uci set wireless.guest.encryption="psk2"
uci set wireless.guest.key="${WIFI_PSK}"
uci commit wireless
wifi reload

Ізоляція клієнтів

Ізолюйте клієнтів гостьової мережі один від одного. Деяке обладнання або драйвери можуть не підтримувати цю опцію.

# Увімкнення ізоляції
uci set wireless.guest.isolate="1"
uci commit wireless
wifi reload

ICMP / ICMPv6

Дозвольте вхідний трафік ICMP та ICMPv6. Змініть індекси правил, якщо потрібно. Мета — змінити стандартні правила фаєрволу OpenWrt, щоб дозволити певні типи ICMP/ICMPv6 з усіх зон, а не лише з WAN.

# Налаштування фаєрволу
uci rename firewall.@rule[1]="icmp"
uci rename firewall.@rule[5]="icmp6"
uci set firewall.icmp.src="*"
uci set firewall.icmp6.src="*"
uci commit firewall
service firewall restart

IPv6

Увімкніть IPv6 для гостьової мережі. Дозвольте ICMPv6, призначте префікс, налаштуйте DHCPv6 пул і дозвольте запити DHCPv6.

# Налаштування IPv6 мережі
uci set network.guest.ip6assign="60"
uci commit network
service network restart
 
# Налаштування DHCP
uci set dhcp.guest.dhcpv6="server"
uci set dhcp.guest.ra="server"
uci -q delete dhcp.guest.ra_flags
uci add_list dhcp.guest.ra_flags="managed-config"
uci add_list dhcp.guest.ra_flags="other-config"
uci commit dhcp
service odhcpd restart
 
# Налаштування фаєрволу
uci -q delete firewall.guest_dhcp6
uci set firewall.guest_dhcp6="rule"
uci set firewall.guest_dhcp6.name="Allow-DHCPv6-Guest"
uci set firewall.guest_dhcp6.src="guest"
uci set firewall.guest_dhcp6.dest_port="547"
uci set firewall.guest_dhcp6.proto="udp"
uci set firewall.guest_dhcp6.family="ipv6"
uci set firewall.guest_dhcp6.target="ACCEPT"
uci commit firewall
service firewall restart

Гостьова мережа лише з IPv6

У той час як у вашій основній LAN можуть бути пристрої лише з підтримкою IPv4, більшість сучасних смартфонів, планшетів і ноутбуків підтримують IPv6. Тож ви можете створити гостьову мережу лише з IPv6, не призначаючи IPv4-адреси.

Щоб гостьові клієнти IPv6 могли отримати доступ до сайтів лише з IPv4, налаштуйте DNS64 + NAT64:

Обмеження доступу до інтернету

Дозвольте гостьовим клієнтам лише перегляд вебсайтів.

# Налаштування фаєрволу
uci -q delete firewall.guest_wan
uci -q delete firewall.guest_fwd
uci set firewall.guest_fwd="rule"
uci set firewall.guest_fwd.name="Allow-HTTP/HTTPS-Guest-Forward"
uci set firewall.guest_fwd.src="guest"
uci set firewall.guest_fwd.dest="wan"
uci add_list firewall.guest_fwd.dest_port="80"
uci add_list firewall.guest_fwd.dest_port="443"
uci set firewall.guest_fwd.proto="tcp"
uci set firewall.guest_fwd.target="ACCEPT"
uci commit firewall
service firewall restart

Обмеження upstream доступу / Безпровідна точка доступу (AP)

Дозвольте гостьовим клієнтам доступ до інтернету, але обмежте доступ до внутрішньої мережі.

# Отримати підмережу і зону
. /lib/functions/network.sh
network_flush_cache
network_find_wan NET_IF
network_get_subnet NET_SUB "${NET_IF}"
FW_WAN="$(fw3 -q network "${NET_IF}")"
 
# Налаштування фаєрволу
uci -q delete firewall.guest_wan
uci -q delete firewall.guest_fwd
uci set firewall.guest_fwd="rule"
uci set firewall.guest_fwd.name="Allow-Guest-Forward"
uci set firewall.guest_fwd.src="guest"
uci set firewall.guest_fwd.dest="${FW_WAN}"
uci set firewall.guest_fwd.dest_ip="!${NET_SUB}"
uci set firewall.guest_fwd.proto="all"
uci set firewall.guest_fwd.target="ACCEPT"
uci commit firewall
service firewall restart

Увімкніть маскарадинг для зони LAN, якщо використовується бездротова точка доступу.

# Налаштування фаєрволу
uci rename firewall.@zone[0]="lan"
uci set firewall.lan.masq="1"
uci set firewall.lan.masq_src="!${NET_SUB}"
uci commit firewall
service firewall restart

Усунення конфліктів ініціалізації (race conditions)

Виправлення проблеми гонки служби netifd.

# Налаштування DHCP
uci set dhcp.guest.force="1"
uci commit dhcp
service dnsmasq restart

Обмеження швидкості

Обмеження пропускної здатності гостьової мережі (в кб/с).

opkg update
opkg install qos-scripts
uci -q delete qos.guest
uci set qos.guest="interface"
uci set qos.guest.enabled="1"
uci set qos.guest.upload="5000"
uci set qos.guest.download="80000"
uci commit qos
service qos restart

Альтернативно, можна встановити luci-app-sqm і налаштувати через вебінтерфейс. Див. також розділ про SQM (Smart Queue Management): sqm

Кілька мережевих пристроїв

Для конфігурацій з декількома мережевими пристроями (роутер, комутатори, точки доступу) потрібно налаштувати окремий VLAN. На кожному роутері, комутаторі чи AP додаємо інтерфейс типу bridge, щоб об’єднати дротові й бездротові гостьові інтерфейси в одну мережу.

HotSpot / Каптив-портал

Щоб реалізувати просту гостьову Hotspot-мережу, скористайтесь Nodogsplash або WiFiDog.

Для комерційних сервісів, сумісних із ChilliSpot, дивіться CoovaChilli.

Автоматичне налаштування

Автоматичне налаштування гостьової мережі.

URL="https://openwrt.org/_export/code/docs/guide-user/network/wifi/guestwifi/guest-wlan"
cat << EOF > guest-wlan.sh
$(wget -U "" -O - "${URL}?codeblock=0")
$(wget -U "" -O - "${URL}?codeblock=1")
$(wget -U "" -O - "${URL}?codeblock=2")
$(wget -U "" -O - "${URL}?codeblock=3")
EOF
sh guest-wlan.sh