马上注册,结交更多好友,享用更多功能,让你轻松玩转闽南师范大学。
您需要 登录 才可以下载或查看,没有账号?立即加入
×
在网上找到的一篇关于锐捷802.1x在Linux下认证上网的文章,不敢独占,贴出来与大家共享,希望对Linux比较熟的朋友实践一下。——————laohou
" d2 _0 O: V+ K) P# `+ E2 L由于现在不少大学学生宿舍上网采用的是锐捷802.1x认证,所以如何在Linux下认证上网也就 成了一个很多人遇到的问题。
' B t# a! I8 s7 {2 ] IEEE 802.1x 称为基于端口的访问控制协议(Port based network access control protocol)。
7 Z5 v' U. Z' K; m. U. j% s( l! r" D4 u- [1 g( \! r2 v8 t
1 u7 ]3 \8 S7 o5 F
1,安装篇
( c# q$ X) W+ _/ Z+ I' e% i0 X介绍如何在linux安装上校园网的必要软件。
8 A& ]6 x9 ?, C! @6 Q
6 E) t# Z/ n& r1 j* eRH下:
# R6 F' X, p5 ?9 B6 @; h8 T
4 p+ z4 `; \3 N( V9 ?* n下载xrgsupplicant.zip,解压之。对于RH用户之需要libpcap-0.7.2
/ P" A$ N" I( [9 r' m! ?. |7.9.1.1.i686.rpm和xrgsu。xrgsu就是校园网需要的认证软件,目前只有这个可以顺利通过校园网的认证是jierui出的-0-。
- b2 t7 V( Y& Z' a8 J. C安装libpcap:
, P; v( t _9 P6 X3 c#rpm -ivh libpcap-0.7.2-7.9.1.1.i686.rpm
% _9 X; L: r0 b0 i& t########################################[100%]
* u& |" C% l) T5 h) F1 L6 w x; v- e5 d/ Q" J& i! Z
Debian下: 6 S. I2 Z' V# ? V2 M+ @/ R
# ]9 T2 ~4 u( ?3 C5 C
Debian下稍微麻烦点,因为这个rpm不能直接用在Debian上,而标准打包的libpcap deb包缺少libpcap.so.0.6.2这个软件会导致认证软件出错的,如果你的认证软件出现 4 ~! s- Y! j3 |( ?( u
findalldevs错误,那就是缺少这个so,需要手工复制到lib库里面。这个so是我从rpm提取出来的,可以在debian下正常工作。
+ m1 {4 L1 ~* s% ^4 Z安装开始: " H1 o9 i) l v
9 _! f; t# y2 K
$dpkg -i libpcap0.8_0.8.3-4_i386.deb * s9 L. ^6 t3 m! P7 K/ V
% s: q- q9 y4 j然后复制libpcap.so.0.6.2到/lib目录下 3 c& u, A0 O( }7 j8 Y) q7 B1 }! g
# Y* f d. y3 j6 B3 ]
2,使用篇 c1 e, \0 P- X7 U: `6 d9 H
, P" c! d. Q6 B2 o6 w
好了!到此前面的安装过程你都完成了,那么可以开始认证了,就像xp拨号一样。 ! W( y( y2 m- G# ?( P" P; t
. ?8 ?4 z6 a9 a- R" Ocd ./xrgsupplicant
# J) y5 {: W8 [% J' bchmod 777 xrgsu //加上执行的权限
3 w8 D9 m/ I/ W2 W1 U* ]./xrgsu //执行认证软件
* _( H+ b% T( s/ h9 o Z6 E* sXRGSupplicant 1.0.1
. H% P2 A& e6 L y& O J0 m/ KRuiJie Network CopyRight 2004 . t+ s; c8 F- u% [2 y/ O9 E4 }
Please input your user name:*********** 0 J8 C8 d: u+ X6 x% r8 a" V; {
Please input your password: 7 W" Y) \& s7 s1 z4 u, [
Use DHCP,1-Use,0-UnUse(Default: 0):
1 z9 S1 X$ s5 d. |( l4 SUse default auth parameter,0-Use 1-UnUse(Default: 0):1 ; Q# S0 y' M6 k; Q% Z4 l1 |
Please input Eap-start Timeout(Default: 30s): , B) L0 d. W2 F0 |6 L6 U
please input Eap-response Timeout(Default: 30s):
# Y' c) [7 V$ ?3 B* o: T/ xplease input Eap-packet resend Time(Default: 3):
( S$ r& Z+ f3 q) V: `1 S( RUse Red-Giant private MAC? 1-Use,0-UnUse(Default: 1): ( A4 T7 s$ t0 @' F
Searching server...
& F; r* n5 r4 S: K9 JConnecting server... , @$ i N+ ~2 x0 b. g9 k0 a, X# C
Authenticating... " a0 W) i4 f; ?2 x1 A- w* N! s
, ~ t m1 @( |4 j0 w, N
欢迎进入 客户端版本较低, 建议升级! 2 w a7 R; l; f! z5 l
Authenticate SUCCESSFULLY! : E. @! c6 ~- s+ f+ ~
Please input 'unauth' to LogOff: 0 O/ u9 P7 {! q$ ^' N
* ~& V4 e; x/ H/ x
, b6 c( q3 f' X- I到此就可以在上校园网了. c7 P. Z. n& i+ Z; M& L0 _1 D
6 r3 j" n4 c3 E
3,有用的教本 . S: ]6 K* z! k, _
' v) u. F; ^, c4 U
xrgsu同样没有u、p参数,我的解决办法是自己用expect编一个shell解决。shell的运行需要expect-5.38.0-88.i386.rpm\expect-devel-5.38.0-88.i386.rpm
; T4 P- f+ j9 x4 ?' X0 w4 P* j由于xrgsu只能在root下运行,因此在普通用户下和root下有所不同: + i4 F3 M; A' i1 t
xrgsu需要复制ro连接到/usr/local/bin or /usr/bin 2 a5 V) x0 B4 Z2 a
root用户请将下面蓝色部分复制命名为connect-root.sh(其他文件名也可以),保存到路径/usr/local/bin,并将红色部分替换为你的id和pw。再做个联接到桌面上,双击就可以上网了(不要关这个会话),再不用每天输入帐号密码了。 6 J7 }$ N1 [+ ?8 Z" t8 h g
***********************************************************************
* z- O$ H( D8 X5 F!这里yourname和yourpassword代表你的lan用户名和密码,yourrootpassword代表 - q: m2 J, [# p |; E6 a5 T6 O9 S4 Y
root的密码。 + m. |; Z1 b5 q0 G0 z, g6 U
*********************************************************************** ( s' O( ^+ W2 |- L- y) t
5 [" ?5 V& q- H- G#! /usr/bin/expect
3 @# S# d: J K- q. c& w1 E#supplicant
) }+ Q3 K; C& V4 x- i) p- Uspawn xrgsu -a . Q9 X( N# K# f' q
expect " lease input your user name:" : W$ a8 R1 z/ N
send "yourname\r" # Y( p& r! F1 R9 [9 A6 {
expect " lease input your password:" 2 v9 ?4 N x4 o( N6 e: o; o
send "yourpassword\r"
9 Q/ j3 u0 E1 R2 b$ [ B) c2 \& Lexpect "Use DHCP,1-Use,0-UnUse(Default: 0):" 9 Q* Y2 a1 t& ]
send "\r"
/ r. K. n9 B: W4 E1 J1 x! T, A+ Xexpect "Use default auth parameter,0-Use 1-UnUse(Default: 0):" " @3 x( \0 i: e$ F9 h
send "\r" . ?3 `1 d( U# J0 B# H
expect "LogOff:"
6 _% j& Z9 l1 t* Q# v+ Usleep 360000
* D9 F. A7 N; `* q; y& H8 t#end
6 B5 Q8 B1 L1 J1 s非root用户将下面部分复制命名为connect-user.sh(其他文件名也可以),保存到路径/usr/local/bin,并替换你的id和pw。 u& u& U! y; A$ O) Y7 T+ V! @
#! /usr/bin/expect ' a/ P; A0 o6 b. M: D, o$ h! }" n
spawn su -c xrgsu 0 ^! h- R% i: L; c
expect " assword:*"
8 p$ @5 U% c6 G, |. psend "yourrootpassword\r"
" v. H; S) B/ h2 u#supplicant
- b: W: X j9 ^( K4 \% s; M* \expect " lease input your user name:" ! Z& S6 D6 e4 j: {# c$ `
send "yourname\r" * M/ ]( Y; o5 ~/ k+ R3 x8 y
expect " lease input your password:"
/ m% V: l+ [2 r6 Z: Hsend "yourpassword\r"
4 [2 J% B4 v: E) ^, g- gexpect "Use DHCP,1-Use,0-UnUse(Default: 0):"
- p4 U) h2 A8 H1 k' Y0 wsend "\r"
' K% l7 k9 z9 t; U9 Nexpect "Use default auth parameter,0-Use 1-UnUse(Default: 0):" , Z9 ~/ @5 a: L' a3 t w
send "\r"
" [ @, Z( G* v" T9 F* oexpect "LogOff:"
q, Q: U) w4 s F: _% y# n- Jsleep 360000
/ F) Q' i6 h5 f$ I5 I$ t7 v#end
* x% [4 G; W& Q }/ {注意,以明文的形式将密码保存在硬盘上是非常危险的,尤其是root密码。所以强烈不赞成第二个文件。普通用户最好是做好第一个文件,然后在会话中输入su,登陆,在运行connect-root.sh。 * K% [4 b) s' U1 g# U. A8 q) T }* \
2 t: W9 X' v% ^0 W7 W
4,有用的资料
& p b" n" I0 l5 n( l' U8 O9 l* b& c5 R8 j
如果你想多了解一下start认证的东西,或者想自己编译libpcap的话可以参考下面的资料:
0 x' x# e- ] z! m2 Nhttp://www.linuxsir.org/bbs/showthread.php?s=&threadid=128897&perpage=15&highlight=findalldevs&pagenumber=1 |