您在這裡

修改OpenWRT的設置接入802.1X認證的網絡

James Qi 在 2014年4月8日 - 03:21 發表

  前面寫了一篇《俺在德國上網的十八般武藝》描述俺的上網艱難曆程和各種上網方式,最後說到用中繼放大器連接馬爾堡大學的網絡作為終極解決方式,下面就說說查找的一些資料和解決的辦法。

  一、查找的資料:

  1. 馬爾堡大學WLan的介紹Wifi熱點分布情況Linux下的認證設置
  2. 一篇介紹利用OpenWRT連接德國某大學網絡802.1x認證的文章
  3. IEEE8021X 設置及報錯的一篇讨論,其中有馬堡大學的人留言咨詢
  4. wpa_supplicant.conf的設置參數介紹
  5. OpenWRT的Wireless設置參數介紹

  二、具備的條件:

  很早前就查到上面的第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知識,多查資料、多花時間嘗試,問題總是可以解決的!

回應

你好!我不知道你說的證書指的是什麼,我其實也不是太懂wifi認證方面的詳細技術細節,隻是通過上面寫的這樣的摸索,算是可以實現接入802.1X認證的網絡。可能各個學校或者單位的認證方式都有些不一樣,需要根據具體情況來查找資料、設置參數。

James Qi / 祁勁松

其實我對wifi的一些術語和技術也沒有很深的研究,隻是遇到問題設法查資料再嘗試,能解決就OK,沒有深究。
我也不知道你說的“單卡中繼”是什麼,我購買的這個包含OpenWRT的無線路由器我想是應該包含了兩個無線線路的(可能算是雙卡吧),一個無線線路連接遠程wifi信号,另外一個無線線路對本地提供wifi接入信号,也算是中繼方式,我估計算是雙卡中繼。
具體設置辦法已經寫在上面了,這是802.1X認證的網絡的中繼辦法,算是比較複雜的,系統沒有默認的。如果是wpa/wep等簡單方式認證的,中繼的設置就很簡單,無線路由器自帶的web菜單就可以設置了。

James Qi / 祁勁松

你好,看了你文章,這,這簡直是我需要的模闆。我單位的wifi也是這樣的類型,我也是折騰了好久如何中繼。看了你的文章,我深受啟發。目前買了小米路由mini,準備刷openwrt按着您的方法試試能否中繼成功。唯一和你不同的是我們單位的wifi的ssid是隐藏的。對于openwrt我還是小白一個。希望能像你請教。

類似用這種認證方式的單位wifi應該還有一些,肯定會有人希望實現這種中繼的,隻是沒有很現成的辦法,我也是被逼無奈,費了九牛二虎之力才算是折騰出來的。你就俺我上面的辦法來試一試看,我自己現在都忘記得差不多了,隻記得當時不斷調試,連續搞了幾天幾夜,解決不了的時候睡覺都在想,有了新思路起床後再繼續調,最後算是折騰出來了,呵呵。

James Qi / 祁勁松

抱歉,設置的辦法我都忘記得差不多了,隻有這篇博文還在,我自己如果重新搞,也是需要對着這篇博文以及網上找到的一些資料慢慢來調試,我實在也沒有時間來搞了,隻有麻煩您自己來試了。

James Qi / 祁勁松

發表新回應

Plain text

  • 不允許使用 HTML 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。