劉玉琪
摘要:闡述了路由器刷入PandoraBox固件,將基于C語言開發(fā)的跨平臺第三方安騰認證客戶端交叉編譯并在路由器上運行的過程。打破了校園網(wǎng)絡(luò)的限制,將有線網(wǎng)絡(luò)轉(zhuǎn)變成無線網(wǎng)絡(luò),所使用的方法同樣適用于其他路由器系統(tǒng)。
關(guān)鍵詞:安騰認證; 交叉編譯; PandoraBox固件; 無線路由器; atclient
中圖分類號:TP393 文獻標識碼:A 文章編號:1009-3044(2018)09-0039-02
Abstract: This article demonstrates the method of flashing PandoraBox firmware into router and cross-compiling a cross-platform third-party amtium authentication client based on C language which running on router.Breaking the limitation of campus network, transforming wired network into wireless network, this method also suit for other router systems.
Key words:Amtium Certification Program; cross compiling; PandoraBox firmware; Router; atclient
當(dāng)代網(wǎng)絡(luò)技術(shù)發(fā)展十分迅速,大學(xué)生與互聯(lián)網(wǎng)的結(jié)合也越來越緊密,各高校也在學(xué)生宿舍內(nèi)部署了校園有線局域網(wǎng)。有別于傳統(tǒng)的PPOE、 802.1X、Portal認證,這些局域網(wǎng)需要用專用的客戶端進行登錄。盡管這樣的認證方式有利于學(xué)校計費管理與接入控制,但卻使傳統(tǒng)認證方式的無線路由器無法正常運行,導(dǎo)致宿舍不能覆蓋無線網(wǎng)絡(luò)。由于絕大部分高校僅提供有線網(wǎng)絡(luò)接入,大學(xué)生在宿舍內(nèi)想要上網(wǎng),必須用電腦打開客戶端進行認證,然后再用電腦上網(wǎng),依賴于無線網(wǎng)絡(luò)的平板電腦、手機等設(shè)備終端便成了擺設(shè)。
本文提供了一種改造路由器的方法,通過筆者編寫的基于C語言的第三方安騰認證客戶端,成功地將僅限Windows系統(tǒng)使用的認證客戶端移植到了無線路由器所運行的PandoraBox系統(tǒng)上。在經(jīng)過認證后,無線路由器發(fā)射出來的Wi-Fi信號可提供給手機、平板電腦上網(wǎng)。
1 路由器進行安騰校園網(wǎng)認證原理
安騰校園網(wǎng)認證是一種基于UDP連接的認證方式,通常使用這種認證方式的校園網(wǎng)認證客戶端還有安朗、神州客戶端等客戶端。本文以安騰客戶端為例,經(jīng)過分析,客戶端發(fā)送的報文是加密過后的UDP數(shù)據(jù)包。在獲取加密算法后,筆者根據(jù)加密算法編寫了一個開源的第三方安騰認證客戶端atclient,它基于C語言,可移植性好,適合嵌入式設(shè)備運行。在刷入第三方PandoraBox系統(tǒng)替換原有操作系統(tǒng)后,將此第三方安騰認證客戶端atclient交叉編譯并上傳到路由器上,完成認證。
2 路由器進行安騰校園網(wǎng)認證步驟
2.1 交叉編譯atclient
交叉編譯指在某一平臺下編譯另一平臺的可執(zhí)行文件。以本文為例,由于本文編譯環(huán)境使用的是Linux桌面版,運行平臺是X86,所以我們需要通過交叉編譯在Linux桌面版上編譯MIPS平臺的Linux的可執(zhí)行文件。
2.1.1 atclient介紹
atclient是一款適用于Linux系統(tǒng)的安騰第三方認證客戶端,可替代官方客戶端完成認證,基于C語言編寫,可交叉編譯至PandoraBox系統(tǒng)運行。
2.1.2 準備工作
1) 一臺運行Linux系統(tǒng)的電腦,筆者選用的是Centos6.4(64位)系統(tǒng)。
2) 下載atclient源碼并解壓,源碼下載地址:https://github.com/lyq1996/atclient
3) 下載交叉編譯所需要的工具鏈并解壓,下載地址:https://downloads.openwrt.org/chaos_calmer/15.05.1/ar71xx/generic/OpenWrt-SDK-15.05.1-ar71xx-generic_gcc-4.8-linaro_uClibc-0.9.33.2.Linux-x86_64.tar.bz2
2.1.3 配置編譯環(huán)境
按下Ctrl+T打開終端,分別輸入:
export PATH=$PATH:/pandorabox/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin:/pandorabox/staging_dir/host/bin
export STAGING_DIR=/pandorabox/staging_dir/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/mips-openwrt-linux-uclibc
這兩個命令把工具鏈中的可執(zhí)行文件目錄添加到了環(huán)境變量中,指定交叉編譯所使用gcc編譯器,這里的路徑是工具鏈解壓后所在的路徑。
2.1.4 交叉編譯atclient
按下Ctrl+T打開終端,輸入:cd atclient && ./configure --host=mips-openwrt-linux-uclibc && make,等到終端輸出編譯完成后關(guān)閉終端,編譯后生成的atclient文件在/src目錄。
2.2 路由器刷入PandoraBox系統(tǒng)
2.2.1 PandoraBox介紹
PandoraBox是一種嵌入式Linux系統(tǒng),基于OpenWrt深度定制,系統(tǒng)底層部分采用了商業(yè)驅(qū)動,并非開源驅(qū)動,因而其對比于OpenWrt更穩(wěn)定。它的所有目錄均可寫,與普通電腦無異,可以運行用戶自己編寫的程序。市面上部分無線路由器都可以支持這個系統(tǒng),筆者本文中使用的是一款CPU為MTK MT7620A、內(nèi)存64MB、閃存8MB的2.4Ghz、5Ghz雙頻100Mbps路由器。
2.2.2 刷入PandoraBox系統(tǒng)
PandoraBox系統(tǒng)受到廣大無線路由器用戶歡迎,接下來是刷入PandoraBox系統(tǒng)的步驟。
1) 進入PandoraBox下載地址: http://downloads.openwrt.org.cn/PandoraBox/,選擇對應(yīng)路由器型號的.bin固件。
2) 將電腦連接路由器的LAN口,等待路由器分配IP地址。
3) 打開終端,在終端輸入:ifconfig查看路由器的IP地址,通常路由器的IP地址為192.168.1.1。
4) 在瀏覽器輸入http://192.168.1.1進入路由器網(wǎng)頁后臺管理頁面,點擊固件。
5) 在彈出來的選取框中選取下載的PandoraBox固件,點擊升級刷入PandoraBox固件。
2.3 在路由器上完成安騰認證
2.3.1 將atclient可執(zhí)行文件上傳到路由器
1) 等待刷入PandoraBox系統(tǒng)并自動重啟后,將電腦連接路由器的LAN口。
2) 打開終端,在終端輸入:scp /atclient/src/atclient root@192.168.1.1:/bin,其中root表示以root用戶登錄,默認訪問22端口,輸入后要求輸入密碼,若未修改則默認密碼為admin,此命令將安騰認證程序atclient上傳到路由器的/bin目錄。
2.3.2 測試atclient能否正常運行
1) 在瀏覽器中輸入http://192.168.1.1進入路由器網(wǎng)頁后臺管理頁面。
2) 在網(wǎng)頁后臺管理頁面的側(cè)欄標題為網(wǎng)絡(luò)的選項中,點擊接口,記錄WAN口的eth號,PandoraBox系統(tǒng)的WAN口默認是eth0.2。
3) 再點擊WAN口旁邊的修改,將協(xié)議設(shè)置成DHCP客戶端,路由器即可自動獲取內(nèi)網(wǎng)地址,點擊保存&應(yīng)用后關(guān)閉瀏覽器。
4) 等待無線路由器獲取到校園網(wǎng)內(nèi)網(wǎng)地址,此時可以訪問校內(nèi)資源,但由于未經(jīng)過二次認證,所以無法訪問外網(wǎng)。
5) 打開終端,在終端輸入:ssh root@192.168.1.1,以root用戶登錄路由器的Secure Shell。
6) 再輸入 atclient –u admin –p 123456 –i 1.1.1.1 –d eth0.2,此命令可以運行atclient,以用來測試atclient是否能完成安騰認證。這里的-u指定用戶名參數(shù)為admin,-p指定密碼參數(shù)為123456,-i指定服務(wù)器地址為1.1.1.1,-d指定網(wǎng)卡為eth0.2。
7) 若測試時終端輸出 [atclient]:Login Success! 則安騰認證成功。
2.3.3 設(shè)置路由器開機自啟動atclient
1) 在瀏覽器中輸入http://192.168.1.1進入路由器網(wǎng)頁后臺管理頁面。
2) 在網(wǎng)頁后臺管理頁面的側(cè)欄標題為系統(tǒng)的選項中,點擊啟動項,在本地啟動腳本的輸入框中輸入:sleep 30,換行,再輸入:atclient –u admin –p 123456 –i 1.1.1.1 –d eth0.2 >/dev/null &。
3) 點擊提交,設(shè)置開機自啟動atclient完成。
4) 重啟路由器。
2.3.4 常見問題解決方法
1) 若測試時終端輸出[ERROR]: ioctl: Cannot assign requested address,原因是啟動命令-d指定的網(wǎng)卡不正確,atclient無法獲取網(wǎng)卡上的IP地址,解決方法是在啟動命令中的-d指定正確的網(wǎng)卡。
2) 若測試時終端輸出[ERROR]:Recvice Size Error,原因是接受到的數(shù)據(jù)包字節(jié)數(shù)與包頭的字節(jié)數(shù)不一致,表明數(shù)據(jù)包可能被人篡改,解決方法是重新認證。
3) 若測試時終端輸出[atclient]:Login Failed!Retry,原因是用戶名、密碼不正確,或賬戶欠費,解決方法是檢查用戶名或密碼、充值賬戶。
3 結(jié)束語
通過上述步驟,路由器刷寫了PandoraBox系統(tǒng),運行了atclient安騰認證第三方客戶端,成功的將校園有線網(wǎng)絡(luò)轉(zhuǎn)變成Wi-Fi發(fā)射了出去,讓手機等移動設(shè)備也可以享受校園網(wǎng)絡(luò)的方便與快捷。
參考文獻:
[1] 林雄.智能路由器固件的編譯及燒寫[J].電腦編程技巧與維護,2017(19).
[2] 張曉華,張玉華.基于路由器的開源嵌入式操作系統(tǒng)學(xué)習(xí)平臺[J].單片機與嵌入式系統(tǒng)應(yīng)用,2013(2).
[3] 閻書強.DD-WRT 讓我們的無線路由器用上Linux[J].電腦迷,2007(3).
[4] 劉耀義.基于嵌入式Linux系統(tǒng)的無線路由器設(shè)計[J].科技與創(chuàng)新,2016(21).
[5] 陳永強,陶品,王篤強.嵌入式Linux移植[J].實驗室研究與探索,2012(9).