基於802.1x的銳捷linux客戶端

校園網的Linux用戶大概都有這樣的苦惱,現在大多數校園網都必須安裝基於802.1X協議的認證軟件才能夠上網,也許windows操作系統的用戶覺得安裝這樣的軟件上網,那是一件很簡單的事情,但是對於linux操作系統的用戶時常會覺得很棘手,我也曾經有過同樣的感覺,於是到處找了很多有關 802.1X協議的資料以及認證軟件,整理成爲這篇文章,並附上相關軟件包,與大家共享一下研究的心得。
 
安裝步驟:
1.將lib文件夾中的將所需庫文件複製到/usr/lib/文件夾中;
2.將bin文件夾中的所有文件複製到/usr/bin/文件夾中;
3.可選:(如果不安裝expect,只能在root下用myxrgsu -a命令進行認證)

網絡設置:
1.靜態認證方式:如果校園網採用的是靜態IP認證的方式,那麼請先在網絡配置那裏配置好你的靜態IP、子網掩碼和網關,然後使用 myxrgsu -a 命令通過認證。
2.動態認證方式:如果校園網採用的是動態IP認證的方式,那麼請先在網絡配置那裏設置成自動獲取IP地址的形式,然後使用 xrgsu 命令通過認證。
(這種方式我現在還沒測試成功過,估計它的源程序有點問題。假如你們校園的校園網採用動態IP地址認證,可以按照以下方法解決)
方法:
1.在windows下運行銳捷的認證客戶端,通過認證之後查看你當前被分配到的IP地址信息,把IP信息記錄下來,由於校園網的DHCP服務的IP租借期一般都比較長,我們學校是n個月才換一次,所以我們可以在linux下使用靜態IP配置,也照樣能夠通過認證。
2.進入linux,將網絡配置成靜態IP的形式,IP信息要跟先前我們在windows下看到的一致。
3.如果不安裝expect,只能在root下用myxrgsu -a命令進行認證。
4.如果安裝了expect,在命令提示行(普通用戶或root都行)中輸入netlogin就會自動連接上網了。
#如果你還嫌麻煩,那就在桌面上做個快捷方式,對象命令爲:netlogin,以後雙擊就可以上網了。爽吧?
#如果你是第一次使用這個腳本,請先到/usrl/bin/下用vi或gedit修改autoconnect和autoconnectasroot兩個文件。
#按說明填上您的帳號資料等。記住要保存哦!
#以後使用這個腳本就不用輸入任何帳號密碼了,不過這樣做的安全性,呵呵,你知道的啦。
#如果你的802.1x協議感興趣,想了解更多它的原理,可以參考我收集到的一篇寫得不錯的文章:
[url]http://andrewlee.blog.51cto.com/66132/135396[/url]
這是目前爲止LINUX下使用銳捷認證上網的比較完美的解決方法了。以前那個版本的說明還有些不完善的地方,應廣大網友的要求,最近抽空寫了這個比較完善的說明,如果有寫得不夠清晰的地方,歡迎隨時找我交流。

附自動腳本範例:

netlogin:
#!/bin/bash

#by linuxjerry
#這個腳本用於自動判斷當前用戶是root還是普通用戶,從而調用autoconnectasroot或autoconnect來進行上網認證。
#還有自動重連功能,方便在網絡不好的條件下使用。下面的1000是重試次數,你可以自行更改。

for ((i=1;i<=1000;i++))
do
[[ $(id -u) -eq 0 ]]&&autoconnectasroot||autoconnect
done

自動配置腳本(也放在/usr/bin文件夾中):
autoconnectasroot:
#! /usr/bin/expect
#    --by Linuxjerry  2004.10.

#這個腳本是爲root用戶使用xrgsu而寫的,目的是省去每次輸入上網帳戶的麻煩。
#root用戶要上網只需在命令提示行中輸入autoconnectasroot就會自動連接上網了。
#在非root下不能使用本命令,所以建議用netlogin命令,它會自動判斷是否可以使用本命令而做出正確的選擇。
#如果你還嫌麻煩,那就在桌面上做個快捷方式,對象命令爲:netlogin,以後雙擊就可以上網了。爽吧?
#如果您是第一次使用這個腳本,請先到/usr/local/bin/下用vi或kwrite修改autoconnectasroot文件,
#按說明填上您的帳號資料等。記住要保存哦!
#一般修改myNetUsername、myNetPassword 2處即可。
#以後使用這個腳本就不用輸入任何帳號密碼了,不過這樣做的安全性,呵呵,你知道的啦。

send "如果您是第一次使用這個腳本,請先到/usr/local/bin/下修改autoconnect和autoconnectasroot文件,按說明填上您的帳號資料等。\r\n "
set timeout 3
spawn myxrgsu -a
expect "Please input your user name:"
send "myNetUsername\r"
#用你的上網帳號替換myNetUsername。
expect "Please input your password:"
send "myNetPassword\r"
#用你的上網密碼myNetPassword
expect "Use DHCP,1-Use,0-UnUse(Default: 0):"
send "1\r"
#如果你是用動態ip,就將0改爲1,否則爲0
expect "Use default auth parameter,0-Use 1-UnUse(Default: 0):"
#是否使用默認參數,爲了腳本簡單這裏只設計了爲0的。
send "0\r"
sleep .2
set timeout 10
expect "Please input 'unauth' to LogOff:"
set timeout 360000
expect "xrgsu exit!"
sleep .2
send_user "Reconnect please.\r\r"
close
#end
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章