我正在使用 OpenWRT 设置无线 AP 来支持由 RADIUS 服务器提供的动态 VLAN。
我发现了一个OpenWRT.org 上的指南我按照步骤做了,再进行一些额外的研究,我几乎做到了。唯一不起作用的是动态 VLAN 分配。我不知道为什么。
我在 TP-link Archer C7 上以“ap”模式运行 15.05 Chaos Calomer。防火墙和 DHCP 已关闭,因为它们由网络提供。
如果我手动将 SSID 桥接到所需的 VLAN,我可以使用 RADIUS 服务器进行身份验证并登录到我的内部和访客网络。但是动态 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'
但我在 hostapd 配置文件中找不到这些 vlan 设置:/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)
答案1
我会发表评论而不是回答,但我在这里的声誉不够。我确实写了你在 OP 中链接的关于在 OpenWRT 中使用 802.1x 动态 VLAN 的 HOWTO,并找出并提交了补丁以使它们正常工作。
你说的有些话似乎没有道理。特别是,如果能正常option dynamic_vlan '1'
工作,但option dynamic_vlan '2'
甚至没有出现在 hostapd 配置文件中,情况就不应该如此。OpenWRT 脚本读取您的 /etc/config/wireless 文件并将其转换为 hostapd 配置文件,只需查找 dynamic_vlan 选项,如果该选项存在并且具有整数值,则将其放入 hostapd 文件中,因此如果 1 出现在 hostapd 文件中,那么 2 也应该如此。当您将 dynamic_vlan 设置为 1 时,请检查它是否出现在您的 hostapd 配置文件中。这将提供更多信息以供参考。
答案2
这是一个老问题,但通过网络搜索尚不容易找到答案。操作指南帮助我缩小了工作概念的范围。以下是最后一个对我有用的配置。
首先,我在设备 EAP225v3 上使用版本 OpenWRT 21.02.1。
- 删除 wpad-basic* 包并安装 wpad。
- 默认 hostapd 存在“格式错误的 Radius 数据包”问题,无法与 WPA-EAP 设置配合使用。请使用以下帮助更正文件 /lib/netifd/hostapd.shGitCommit.并重新启动hostapd或者重启设备。
- 这是 /etc/config/network 中每个 VLAN 的示例
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'
- 最后,创建一个无线 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'
答案3
config wifi-iface
option dynamic_vlan '2'
似乎不起作用,一旦改为
config wifi-iface
option dynamic_vlan '1'
一切都正常进行。
这确实带来了安全风险。
答案4
我认为并非一切都按预期运行。您只是自动返回到无动态 VLAN(或选项dynamic_vlan '0'
)。也许您的 hostapd 不支持动态 VLAN(例如,如果您正在使用hostapd-mini
或hostapd-common
)。您应该安装完整版本
opkg install hostapd
更多详情请见此处: