Guest Wi-Fi basics
Set up a wireless interface bound to the guest network interface.
# Configure wireless WIFI_DEV="$(uci get wireless.@wifi-iface[0].device)" uci -q delete wireless.guest uci set wireless.guest="wifi-iface" uci set wireless.guest.device="$ " uci set wireless.guest.mode="ap" uci set wireless.guest.network="guest" uci set wireless.guest.ssid="guest" uci set wireless.guest.encryption="none" uci commit wireless wifi reload
Secure the guest network and isolate its clients if necessary.
3. DHCP
Configure a DHCP pool for the guest network.
# Configure DHCP uci -q delete dhcp.guest uci del_list dhcp.@dnsmasq[0].interface=br-guest uci add_list dhcp.@dnsmasq[0].interface=br-guest uci set dhcp.guest="dhcp" uci set dhcp.guest.interface="guest" uci set dhcp.guest.start="100" uci set dhcp.guest.limit="150" uci set dhcp.guest.leasetime="1h" uci set dhcp.guest.netmask="255.255.255.0" uci commit dhcp /etc/init.d/dnsmasq restart
4. Firewall
Configure firewall for the guest network. Allow to forward traffic from the guest network to WAN . Allow DHCP requests and DNS queries.
# Configure firewall uci -q delete firewall.guest uci set firewall.guest="zone" uci set firewall.guest.name="guest" uci set firewall.guest.network="guest" uci set firewall.guest.input="REJECT" uci set firewall.guest.output="ACCEPT" uci set firewall.guest.forward="REJECT" uci -q delete firewall.guest_wan uci set firewall.guest_wan="forwarding" uci set firewall.guest_wan.src="guest" uci set firewall.guest_wan.dest="wan" uci -q delete firewall.guest_dns uci set firewall.guest_dns="rule" uci set firewall.guest_dns.name="Allow-DNS-Guest" uci set firewall.guest_dns.src="guest" uci set firewall.guest_dns.dest_port="53" uci set firewall.guest_dns.proto="tcp udp" uci set firewall.guest_dns.target="ACCEPT" uci -q delete firewall.guest_dhcp uci set firewall.guest_dhcp="rule" uci set firewall.guest_dhcp.name="Allow-DHCP-Guest" uci set firewall.guest_dhcp.src="guest" uci set firewall.guest_dhcp.dest_port="67" uci set firewall.guest_dhcp.proto="udp" uci set firewall.guest_dhcp.family="ipv4" uci set firewall.guest_dhcp.target="ACCEPT" uci commit firewall /etc/init.d/firewall restart
Testing
Connect to the guest network. Check your internet connectivity.
Use ping, ping6 or nmap to verify your firewall configuration.
Troubleshooting
Collect and analyze the following information.
# Restart services /etc/init.d/log restart; /etc/init.d/network restart /etc/init.d/dnsmasq restart; /etc/init.d/firewall restart # Log and status logread; netstat -l -n -p | grep -e dnsmasq # Runtime configuration pgrep -f -a dnsmasq ip address show; ip route show table all ip rule show; ip -6 rule show; nft list ruleset head -v -n -0 /etc/resolv.* /tmp/resolv.* /tmp/resolv.*/* # Persistent configuration uci show network; uci show wireless; uci show dhcp; uci show firewall
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website. OK More information about cookies
Self-registration in the wiki has been disabled.
If you want to contribute to the OpenWrt wiki, please post HERE in the forum or ask on IRC for access.
Except where otherwise noted, content on this wiki is licensed under the following license:
CC Attribution-Share Alike 4.0 International
Настройка сети в OpenWRT
В этой статье я расскажу о том как настроить сеть в OpenWRT. В частности расскажу о том как сделать несколько SSID на одной радиокарте, настроить WPA2-Enterprise, поднять VLAN и как настроить программный свитча(swconfig).
UCI
Все настройки будем проводить через консоль так как она не ограничена в возможностях в отличии от веб интерфейса. Для настроек системы в OpenWRT используется подсистема UCI(Unified Configuration Interface), которая позволяет централизовано настраивать всевозможные сервисы начиная с сервиса монтирования файловых систем и заканчивая сервисом QoS. Все настройки UCI находятся в директории «/etc/config/» и имеют одинаковый синтаксис. Для управления системой UCI используется программа uci. С помощью неё можно редактировать конфигурационные файлы, просматривать текущие настройки и прочее. uci очень удобно использовать для конфигурирования системы из скриптов. Так-же есть возможность писать расширения для uci. Синтаксис конфигурационных файлов такой:
config 'example' 'test' option 'string' 'some value' option 'boolean' '1' list 'collection' 'first item' list 'collection' 'second item'
config ‘example’ ‘test’ — начало секции, example — тип по которому uci поймет как трактовать опции в этой секции, test — идентификатор секции. option или list определяет тип настроек, list — составные настройки(например список интерфейс для прослушивания apache’ем). string, boolean, collection — названия переменных.
Настройка сетевых интерфейсов
config interface lan option ifname eth1 option proto static option ipaddr 192.168.0.10 option netmask 255.255.255.0 option gateway 192.168.0.1 option dns 192.168.0.1
Где lan это роль данного интерфейса. Нужна она для того что-бы можно было абстрагироваться от названия интерфейсов. Например можно в фаерволе указать что разрешить весь входящий трафик c lan.
Пример добавления статического маршрута:
config route option interface lan option target 10.1.1.1 option netmask 255.255.255.255 option gateway 192.168.0.100
config interface guest option ifname "eth1.123" option type bridge option proto static option netmask 255.255.255.0 option ipaddr 192.168.2.2
Создаст интерфейс «br-guest» и включит в него интерфейс eth1.123(123 vlan-id на интерфейсе eth1). Ниже будет пример как добавить в этот бридж беспроводной интерфейс.
Так как чипсеты используемые в роутерах обычно имеют 1-2 ethernet порта, а хочется побольше, то используется отдельных контроллер для ethernet. Он подключается одним портом в главный чипсет, а остальными наружу. Непосредственно в сетевой системе такой программный коммутатор никак не представлен. Коммутатор можно настроить через утилиту swconfig, либо через uci. Предположим у нас есть один ethernet порт eth0 подключенный к 5-му порту управляемого коммутатора:
config 'switch' 'eth0' option 'enable' '1' option 'enable_vlan' '1' option 'reset' '1' config 'switch_vlan' option 'vlan' '0' option 'device' 'eth0' option 'ports' '0 1 2 5t' config 'switch_vlan' option 'vlan' '1' option 'device' 'eth0' option 'ports' '3 5t' config 'switch_vlan' option 'vlan' '124' option 'device' 'eth0' option 'ports' '6t 5t'
Здесь eth0 — название интерфейса куда подключен коммутатор. В первой секции включаем коммутатор и включаем поддержку теггированного(трафика с вланом) трафика. Каждая секция switch_vlan отвечает за определенный VLAN указанный в опции vlan. Этот тег будет использоваться для добавления метки для портов указанных в секции ports. Буква t у порта обозначает что трафик в этот порт должен быть передан теггированным(с меткой), в остальные перечисленные порты он попадет без метки. Запись ‘0 1 2 5t’ нужно читать так: передай нетегированный трафик с портов 0, 1, 2 в порт 5 с меткой 0. Так как VLAN с меткой 0 это тоже самое что трафик без метки, то на нашем порту eth0 мы получим трафик с портов 0, 1, 2 без всяких вланов. В следующей секции написано: ports=’3 5t’, vlan=1. Это значит что нетегированный трафик с порта 3 придет на eth0 с vlan-id=1(не рекомендую использовать vlan-id=1). В последней секции написано vlan=124, port=«6t 5t» — это значит что трафик пришедший на порт6 с тегом 124 придет на eth0 с тегом 124.
В network можно настроить подключения типа PPTP, PPPoE и даже 6to4.
Настройка wi-fi:
Конфигурационный файл находиться тут — /etc/config/wireless.
Настройка радио интерфейсов разделена на две части: настройки уровня phy(физика) и настройка интерфейса. Минимальные настройки выглядят так:
config 'wifi-device' 'radio0' option 'type' 'mac80211' option 'channel' '6' config 'wifi-iface' option 'device' 'radio0' option 'network' 'guest' option 'mode' 'ap' option 'ssid' 'guest' option 'encryption' 'none'
В первой секции мы указали что тип чипсета/драйвера — mac80211(определяется при загрузке), используемый канал — 6. Так-же можно указать используемые стандарты, мощность передатчика, используемые антенны и прочее. Во второй секции уже описываем сам интерфейс. Интерфейсов может быть несколько, например с разными SSID. В опции device необходимо указать идентификатор секции с описание устройства, в данном случае radio0. network=guest значит что нужно прикрепить это устройство к интерфейсу guest использующемся в network. Так как у нас(смотри выше) в описание сети написано что interface=guest это бридж, то этот беспроводной интерфейс добавить в бридж br-guest.
Пример настройки multi-ssid с шифрованием wpa2-enterprise+ccmp:
config 'wifi-iface' option 'device' 'radio1' option 'network' 'wlan' option 'mode' 'ap' option 'ssid' 'super' option 'encryption' 'wpa2' option 'server' '192.168.0.11' option 'port' '1812' option 'key' 'secret' config 'wifi-iface' option 'device' 'radio1' option 'network' 'wlan' option 'mode' 'ap' option 'ssid' 'puper' option 'encryption' 'wpa2' option 'server' '192.168.0.11' option 'port' '1812' option 'key' 'secret'
OpenWRT создаст два интерфейса с разными ssid(super и puper) и будет их авторизовывать через RADIUS-сервер 192.168.0.11. key — это ключ RADIUS’а. Обычно можно поднимать до 4 SSID, зависит от радиокарты. Отмечу так-же что OpenWRT для каждого wifi устройства автоматически создает устройства типа monitor, с помощью которых можно ловить заголовки уровня 802.11.
Ссылки по теме:
wiki.openwrt.org/doc/uci
wiki.openwrt.org/doc/uci/network
wiki.openwrt.org/doc/uci/wireless
wiki.openwrt.org/doc/uci/network/switch
OpenWRT.su
Подключение к интернет через Wi-Fi сеть в OpenWRT при помощи UCI
Если вы прошили свой роутер прошивкой, например, без вебморды LuCI, то это еще не повод искать и шить поверх другую. Можно установить любое расширение отдельным пакетом из репозитария, но для этого всего лишь нужно получить доступ в интернет для терминала OpenWRT вашего роутера. Как это быстро сделать через Wi-Fi сеть при помощи базовых команд UCI Openwrt разберем в этой небольшой статье.
Для начала посмотрим заданные интерфейсы в системе. На только что установленной прошивке это всего лишь lan.
Создадим новый интерфейс для Wi-Fi сети с выходом в интернет. Дадим ему имя wwan
uci set network.wwan=interface
Так как мы будем получать ip адрес от интернет-шлюза, то установим протокол dhcp
uci set network.wwan.proto=dhcp
Далее посмотрим что творится в конфигах беспроводных сетей
Для начала включим собственно саму wi-fi карточку роутера
uci set wireless.radio0.disabled=0
Зададим новую вай-фай сеть
uci set wireless.@wifi-iface[0].network=wwan
Укажем что мы хотит подключить к существующей сети как клиент
uci set wireless.@wifi-iface[0].mode=sta
Указаваем название существующей wi-fi точки доступа которая обладает выходом в интернет
uci set wireless.@wifi-iface[0].ssid=TP-LINK_F3F8
Далее указываем стандартный тип шифрования wps-psk2
uci set wireless.@wifi-iface[0].encryption=psk2
Запоминаем в конфигах собственно наш пароль
uci set wireless.@wifi-iface[0].key=90953354
Сохраняем наши изменения во всех конфигах OpenWRT
Ну а дальше, что вашей душе угодно при помощи установщика пакетов opkg
Комментарии
Большое спасибо! Прям выручил! только
wireless. @wifi-iface[0].