天天看点

linux系统 锐捷_基于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协议感兴趣,想了解更多它的原理,可以参考我收集到的一篇写得不错的文章:这是目前为止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

来源:http://andrewlee.blog.51cto.com/66132/135389