修改OpenWRT的设置接入802.1X认证的网络

 前面写了一篇《俺在德国上网的十八般武艺》描述俺的上网艰难历程和各种上网方式,最后说到用中继放大器连接马尔堡大学的网络作为终极解决方式,下面就说说查找的一些资料和解决的办法。

  一、查找的资料:

  1. 马尔堡大学WLan的介绍 (link is external)Wifi热点分布情况 (link is external)Linux下的认证设置 (link is external)

  2. 一篇介绍利用OpenWRT连接德国某大学网络802.1x认证的文章 (link is external)

  3. IEEE8021X 设置及报错的一篇讨论,其中有马堡大学的人留言咨询 (link is external)

  4. wpa_supplicant.conf的设置参数介绍 (link is external)

  5. OpenWRT的Wireless设置参数介绍 (link is external)

  二、具备的条件:

  很早前就查到上面的第1篇,知道马尔堡大学可以WLan上网,然后过一阵子仔细查找Wifi热点分布找到附近有接入点,背电脑过去几百米可以用大学的用户名、密码接入使用;

  查到第2篇文章,这是最接近我这里使用环境的介绍,只是这里面用的Lan上网,我这里用的WLan上网,这里面的设备需要改安装OpenWRT,我这里本身就是OpenWRT(并且已经安装插件attitude_adjustment和gargoyle),并且无需卸载wpad-mini和安装wpa-cli/wpa-supplicant/hostapd,这些都是现成安装好的软件;

BusyBox v1.19.4 (2013-07-15 20:24:29 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

------------------------------------------------------------------
|            _____                             _                 |
|           |  __ \                           | |                |
|           | |  \/ __ _ _ __ __ _  ___  _   _| | ___            |
|           | | __ / _` | '__/ _` |/ _ \| | | | |/ _ \           |
|           | |_\ \ (_| | | | (_| | (_) | |_| | |  __/           |
|            \____/\__,_|_|  \__, |\___/ \__, |_|\___|           |
|                             __/ |       __/ |                  |
|                            |___/       |___/                   |
|                                                                |
|----------------------------------------------------------------|
| Gargoyle version 1.5.X    | OpenWrt Attitude Adjustment branch |
| Gargoyle revision e9259ee | OpenWrt revision r36669            |
| Built 星期一7 15, 2013     | Target  ar71xx/routerstation       |
------------------------------------------------------------------

  三、解决的过程:

  先进入shell后查看各种目录和文件,例如/root/、/www/、/etc/、/etc/config/、/etc/init.d/、/var/run/等,了解关键机制涉及的文件以及可能需要修改的地方;

  开始试着自己编写一个staff.conf文件,使用wpa-eap认证方式:

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
scan_ssid=1
ssid="UMRnet_staff"
key_mgmt=WPA-EAP
eap=PEAP
identity="yourname@staff.uni-marburg.de"
password="yourpassword"
phase1="peaplabel=0"
phase2="auth=MSCHAPV2"
}

  然后运行这个命令来尝试802.1x认证:

wpad wpa_supplicant -b br-wan -i wlan0-1 -D nl80211 -c /etc/staff.conf

  尝试认证过程中遇到过的一些问题和解决办法:

  • 运行上面命令后无线网络断掉,内部、外部无线网络都断掉,解决办法:用网线连接路由器的Lan来调试;

  • 找不到lan接口、wlan接口的问题,以及wlan中找不到ssid的问题,文章2中介绍的是lan,需要改conf文件为wlan,scan_ssid从0改为1等,运行的命令也与文章中不同;

  • 认证不通过的问题,一般是.conf文件各种参数设置有问题,参考文章4来修改设置;

  • 显示认证通过,但接下来又显示认证被断开,reason=2和reason=3,查了好些资料,说是先通过了认证到后面又断开了,百思不得其解,我又改了用户名/密码,直接就显示认证错误,说明曾经通过了认证,但估计是后面其它地方的设置不符合还需要修改;

  • 再复制staff.conf到/var/run/wpa_supplicant-wlan0-1.conf,还是不能解决,又参照文章2查看和修改/etc/config/wireless 终于是可以通过认证,ping通外面的网络了!

  再接下来就是设法用无线中继、添加WiFi密码、自动通电设置:

  • 找了半天终于找到需要修改的核心是/etc/config/wireless这个文件,估计/www/中的web管理界面中相关的部分就是读取和写入这个文件,默认是不支持802.1x认证,现在人工来修改这个文件实现:

config wifi-device 'radio0'
        option noscan '1'
        option type 'mac80211'
        option hwmode '11ng'
        option macaddr '00:15:6d:ae:a3:d3'
        option htmode 'HT40-'
        list ht_capab 'SHORT-GI-20'
        list ht_capab 'SHORT-GI-40'
        list ht_capab 'RX-STBC1'
        list ht_capab 'DSSS_CCK-40'
        option channel '5'

config wifi-iface 'ap_g'
        option device 'radio0'
        option mode 'ap'
        option network 'lan'
        option ssid 'WiFi'
        option encryption 'psk2'
        option key 'innerpassword'

config wifi-iface 'stacfg'
        option device 'radio0'
        option mode 'sta'
        option network 'wan'        
        option ssid 'UMRnet_staff'
        option encryption 'wpa2'
        option identity 'yourname@staff.uni-marburg.de'
        option password 'yourpassword'
        option eap_type 'peap'
        option auth 'MSCHAPV2'

  这样就算大功告成了,运行网络重启命令就可以实现需要的网络功能:

/etc/init.d/network restart

  这个命令运行后,/var/run/wpa_supplicant-wlan0-1.conf的内容也随之改变了,不再需要我另外设置的staff.conf或者自己修改wpa_supplicant-wlan0-1.conf,这说明wpa_supplicant-wlan0-1.conf的内容是自动从/etc/config/wireless读取生成的,而这个wireless的设置我也是摸索了一阵子,从文章5才得到正确的设置参数资料。

  四、结论和总结:

  • 只需要人工修改/etc/config/wireless就可以了,然后重新加电启动也都可以正常运转;

  • OpenWRT真好,只要有一定的Linux知识,多查资料、多花时间尝试,问题总是可以解决的!


本文章由作者:佐须之男 整理编辑,原文地址: 修改OpenWRT的设置接入802.1X认证的网络
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐