OpenWRT Dynamic VLAN
Я настраиваю беспроводную точку доступа с OpenWRT для поддержки динамического vlan, предоставляемого сервером RADIUS.
Я нашел руководство на OpenWRT.org, которым я следовал, и с некоторыми дополнительными исследованиями я почти там. Единственное, что не работает - это динамическое назначение vlan. И я не могу понять, почему.
Я использую 15.05 Chaos Calmer на TP-link Archer C7 в режиме 'ap'. Брандмауэр и DHCP отключены, так как они предоставляются сетью.
Я могу аутентифицироваться на сервере RADIUS и войти в систему как во внутренней, так и в гостевой сети, если я вручную соединю SSID с нужной VLAN. Динамические VLAN не работают, хотя. FreeRadius правильно передает Tunnel-Type, Tunnel-Medium-Type и Tunnel-Private-Group-ID; как проверено с wireshark. Я не уверен, но я думаю, что это может иметь какое-то отношение к hostapd, не получающему правильные настройки.
Любая помощь будет принята с благодарностью
Мой /etc/config/wireless выглядит следующим образом:
config wifi-iface
option device 'radio1'
option mode 'ap'
option ssid 'WTD_Test_Rad'
option encryption 'wpa2'
option server '172.16.20.105'
option key 'RadiusSecret'
option dynamic_vlan '2'
option vlan_tagged_interface 'eth1'
option vlan_naming 0
option vlan_bridge 'br-vlan'
но я не могу найти эти настройки vlan в конфигурационном файле hostapd: /var/run/hostapd-phy1.conf
interface=wlan1
ctrl_interface=/var/run/hostapd
disassoc_low_ack=1
preamble=1
wmm_enabled=1
ignore_broadcast_ssid=0
uapsd_advertisement_enabled=1
auth_server_addr=172.16.20.105
auth_server_port=1812
auth_server_shared_secret=RadiusSecret@WalkingTheDog
eapol_key_index_workaround=1
ieee8021x=1
auth_algs=1
wpa=2
wpa_pairwise=CCMP
ssid=WTD_Test_Rad
wpa_key_mgmt=WPA-EAP
okc=0
disable_pmksa_caching=1
bssid=60:e3:27:58:3a:8d
Hostapd -dd показывает получение правильных AVP, но, похоже, не заботится ни о чем из этого.
wlan1: RADIUS Received 195 bytes from RADIUS server
wlan1: RADIUS Received RADIUS message
RADIUS message: code=2 (Access-Accept) identifier=79 length=195
Attribute 79 (EAP-Message) length=6
Value: 03f50004
Attribute 80 (Message-Authenticator) length=18
Value: d544a5f47ae84b9716fd76fb447a54e7
Attribute 1 (User-Name) length=10
Value: 'Mdirickx'
Attribute 64 (Tunnel-Type) length=6
Value: 0000000d
Attribute 65 (Tunnel-Medium-Type) length=6
Value: 00000006
Attribute 81 (Tunnel-Private-Group-Id) length=3
Value: 32
Attribute 1 (User-Name) length=10
Value: 'Mdirickx'
wlan1: STA 40:78:6a:53:eb:fb RADIUS: Received RADIUS packet matched with a pending request, round trip time 0.00 sec
wlan1: STA 40:78:6a:53:eb:fb IEEE 802.1X: old identity 'Mdirickx' updated with User-Name from Access-Accept 'Mdirickx'
wlan1: STA 40:78:6a:53:eb:fb IEEE 802.1X: decapsulated EAP packet (code=3 id=245 len=4) from RADIUS server: EAP Success
wlan1: STA 40:78:6a:53:eb:fb IEEE 802.1X: Sending EAP Packet (identifier 245)
wlan1: STA 40:78:6a:53:eb:fb WPA: sending 1/4 msg of 4-Way Handshake
wlan1: STA 40:78:6a:53:eb:fb WPA: received EAPOL-Key frame (2/4 Pairwise)
wlan1: STA 40:78:6a:53:eb:fb WPA: sending 3/4 msg of 4-Way Handshake
wlan1: STA 40:78:6a:53:eb:fb WPA: received EAPOL-Key frame (4/4 Pairwise)
wlan1: STA 40:78:6a:53:eb:fb WPA: pairwise key handshake completed (RSN)
wlan1: AP-STA-CONNECTED 40:78:6a:53:eb:fb
wlan1: STA 40:78:6a:53:eb:fb IEEE 802.1X: authorizing port
wlan1: STA 40:78:6a:53:eb:fb RADIUS: starting accounting session 56EC0FBB-00000004
wlan1: STA 40:78:6a:53:eb:fb IEEE 802.1X: authenticated - EAP type: 25 (PEAP)
4 ответа
Я бы сделал комментарий вместо ответа, но мне здесь не хватает репутации. Я буквально написал HOWTO, с которым вы связались в своем OP по использованию динамических VLAN 802.1x в OpenWRT, а также разобрался и представил патчи, чтобы заставить их работать.
Кажется, что-то из того, что ты говоришь, не имеет смысла. В частности, что option dynamic_vlan '1'
работает но option dynamic_vlan '2'
даже не отображается в файле конфигурации hostapd, не должно быть так. Сценарий OpenWRT, который читает ваш файл /etc/config/wireless и переводит его в файл конфигурации hostapd, просто ищет параметр dynamic_vlan, и, если он есть и имеет целочисленное значение, помещает его в файл hostapd, поэтому, если 1 появляется в hostapd файл, 2 должен также. Пожалуйста, проверьте, отображается ли он в вашем конфигурационном файле hostapd, когда вы установите dynamic_vlan в 1. Это даст вам больше информации для работы.
Тихий старый вопрос, но ответить на него с помощью поиска в Интернете пока непросто. Практическое руководство помогло мне сузить концепцию работы. Вот последняя конфигурация, которая у меня сработала..
Прежде всего, я использую версию OpenWRT 21.02.1 на устройстве EAP225v3.
- Удалите пакет wpad-basic* и установите wpad.
- У хоста по умолчанию есть проблема «Неверный пакет Radius» для работы с настройкой WPA-EAP. Исправьте файл /lib/netifd/hostapd.sh с помощью GitCommit . И перезапустите хостапд или перезагрузите устройство.
- Это образец для каждой VLAN в файле /etc/config/network.
config device
option type '8021q'
option ifname 'br-lan'
option vid '172'
option name 'br-lan.172'
config device
option type 'bridge'
option name 'br-vlan172'
list ports 'br-lan.172'
list ports 'eth0'
config interface 'Guests'
option proto 'none'
option device 'br-vlan172'
- И наконец, создайте Wireless iface, например:
config wifi-iface 'default_radio1'
option device 'radio1'
option mode 'ap'
option ssid 'test-ssid'
option encryption 'wpa2'
option auth_server '192.168.2.5'
option auth_port '1812'
option auth_secret '123456'
option acct_server '192.168.2.5'
option acct_port '1813'
option acct_secret '123456'
option dynamic_vlan '2'
option vlan_tagged_interface 'br-lan'
option vlan_bridge 'br-vlan'
option vlan_naming '0'
config wifi-iface
option dynamic_vlan '2'
не похоже на работу, когда-то изменил
config wifi-iface
option dynamic_vlan '1'
все работало как надо.
Это создает угрозу безопасности.
Я думаю, что не все работало так, как должно. Вы просто автоматически отказываетесь от НЕТ динамического VLAN (или вариант dynamic_vlan '0'
). Возможно, ваш hostapd не поддерживает динамические vlans (например, если вы используете hostapd-mini
или же hostapd-common
). Вы должны установить полную версию
opkg install hostapd
Подробнее смотрите здесь: