LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 23423|回复: 72

实达802.1x认证的linux官方版本

[复制链接]
发表于 2004-7-28 04:36:17 | 显示全部楼层 |阅读模式
很多学校都用实达-锐捷的802.1认证系统,现在(其实是上个月)锐捷出了linux客户端认证程序了,叫xrgsu.

我下载了一个,可以用.不过需要libpcap.so,这个可有点麻烦,因为网上下载的多数编译出LIBPCAP.A,我搞了好久,最后看到一篇说明,转贴如下:
-----------------------------------------------------
2、编译安装libpcap库
假设libpcap-0.7.2.tar.gz是放置在/home/andy目录下的。步骤如下:
[root@t113 /]# cd /home/andy
[root@t113 andy]#gunzip libpcap-0.7.2.tar.gz
[root@t113 andy]# tar -xvf libpcap-0.7.2.tar
[root@t113 andy]# cd libpcap-0.7.2
[root@t113 libpcap-0.7.2]#
注意了(大声的说~~),在这儿编译时是编译成静态函数库,但是等会儿你编译DNSTOP时却是需要共享函数库(动态函数库)。所以偶们要修改一下libpcap-0.7.2目录下的Makefile.in文件,打开文件找到如下语句:
[code:1:248ab9a8fe]all: libpcap.a(第96行)

libpcap.a: $(OBJ)
        @rm -f $@
        ar rc $@ $(OBJ)
        $(RANLIB) $@[/code:1:248ab9a8fe]
修改为:
[code:1:248ab9a8fe]all: libpcap.so

libpcap.so: $(OBJ)
        @rm -f $@
#       ar rc $@ $(OBJ)
        gcc $(OBJ) -shared -o libpcap.so
#       $(RANLIB) $@[/code:1:248ab9a8fe]
再找到如下语句:
[code:1:248ab9a8fe]install:(第139行)
        [ -d $(DESTDIR)$(libdir) ] || \
            (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
        $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
        $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a[/code:1:248ab9a8fe]
修改为:
[code:1:248ab9a8fe]install:
#       [ -d $(DESTDIR)$(libdir) ] || \
#           (mkdir -p $(DESTDIR)$(libdir); chmod 755 $(DESTDIR)$(libdir))
#       $(INSTALL_DATA) libpcap.a $(DESTDIR)$(libdir)/libpcap.a
#       $(RANLIB) $(DESTDIR)$(libdir)/libpcap.a
        cp libpcap.so /usr/lib/[/code:1:248ab9a8fe]
搞定!开始编译:
[root@t113 libpcap-0.7.2]# ./configure --prefix=/usr
[root@t113 libpcap-0.7.2]# make
[root@t113 libpcap-0.7.2]# make install
到这儿,偶们可以松口气了。
------------------------------------------------
xrgsu则是二进制程序,复制到/usr/bin下就可以用了.

下载连接http://seal.blogchina.com/

下载后改后缀为.tar.gz
发表于 2004-7-28 10:07:03 | 显示全部楼层
你不妨给需要的人一个可以直接下载的补丁文件。
 楼主| 发表于 2004-7-28 16:28:37 | 显示全部楼层
500 多k,传不上来,单传一个文件,解压后替换原文件再编译,当然,如果你下载的本身就是可以编译出libpcap.so的,那就不用这么麻烦了.
原文件可以很容易搜索到(libpcap-0.8.3),xrgsu在ftp://ftp.jnu.edu.cn/student
发表于 2004-7-28 17:01:05 | 显示全部楼层
支持一下,以前802.1x的linux实现一直是个问题.不知道楼主能不能给个wireless卡通过802.1x认证的例子.
 楼主| 发表于 2004-7-28 17:19:06 | 显示全部楼层
没有用过,不过有线和无线认证都是一样的,xsupplicant里就可以任意选择.
发表于 2004-8-3 19:44:05 | 显示全部楼层
学校上网开始认证了,我们用的都是固定ip,用户名和ip绑定了。在windows下用Star Supplicant没有问题,可是在linux下用xrgsu客户端认证上网时总是打开几个网页认证程序就会断,在windows下要是不关闭网卡的IEEE802.1x身份认证就会有这种情况,不知在linux下也是这个原因!不过在linux下用ftp和apt-get都没问题,只是上网才会出现这种情况,请问如何解决?

这是认证程序的连接状况:

tux:/data# xrgsu -a
XRGSupplicant 1.0.1
RuiJie Network CopyRight 2004
Please input your user name:ryo
Please input your password:
Use DHCP,1-Use,0-UnUse(Default: 0):
Use default auth parameter,0-Use 1-UnUse(Default: 0):
Searching server...
Connecting server...
Authenticating...


Authenticate SUCCESSFULLY!
Please input 'unauth' to LogOff:
Detect Proxy Server!Err = 4

xrgsu exit!
tux:/data#

还有,我从官方下载了xsupplicant1.0pre2,可是和大家所用的原来版本不太一样了,没有-u和-p参数了,而且etc下就一个xsupplicant.conf文件,不知道应该如何配置,有没有能用的配置文件上传一个看看,多谢了!
 楼主| 发表于 2004-8-4 18:47:42 | 显示全部楼层
楼上的情况我机上不会出现,Detect Proxy Server!Err = 4 就是说xrgsu发现你的机器开了代理给他人上网。在windows下开wingate之类的代理软件也会出现这样的错误,很多学校就是这样限制学生使用代理服务。
如果你没有开,那么检查一下你的进程有没有自动开的,比如apache之类。如果你不作服务器的话,关掉无用的那些“服务”,这样也可以加快系统运行速度。
我用redhat9.0安装“工作站”,在默认的情况下不会出现类似代理的进程。

xrgsu同样没有u、p参数,我的解决办法是自己用expect编一个shell解决。shell的运行需要expect-5.38.0-88.i386.rpmexpect-devel-5.38.0-88.i386.rpm
 楼主| 发表于 2004-8-4 19:17:18 | 显示全部楼层
xrgsu同样没有u、p参数,我的解决办法是自己用expect编一个shell解决。shell的运行需要expect-5.38.0-88.i386.rpm\expect-devel-5.38.0-88.i386.rpm
由于xrgsu只能在root下运行,因此在普通用户下和root下有所不同:
xrgsu需要复制ro连接到/usr/local/bin or /usr/bin
root用户请将下面蓝色部分复制命名为connect-root.sh(其他文件名也可以),保存到路径/usr/local/bin,并将红色部分替换为你的id和pw。再做个联接到桌面上,双击就可以上网了(不要关这个会话),再不用每天输入帐号密码了。
#! /usr/bin/expect
#supplicant
spawn xrgsu -a
expect "lease input your user name:"
send "
yourname\r"
expect "lease input your password:"
send "
yourpassword\r"
expect "Use DHCP,1-Use,0-UnUse(Default: 0):"
send "\r"
expect "Use default auth parameter,0-Use 1-UnUse(Default: 0):"
send "\r"
expect "LogOff:"
sleep 360000
#end

非root用户将下面蓝色部分复制命名为connect-user.sh(其他文件名也可以),保存到路径/usr/local/bin,并替换你的id和pw。
#! /usr/bin/expect
spawn su -c xrgsu
expect "assword:*"
send "
yourrootpassword\r"
#supplicant

expect "lease input your user name:"
send "
yourname\r"
expect "lease input your password:"
send "
yourpassword\r"
expect "Use DHCP,1-Use,0-UnUse(Default: 0):"
send "\r"
expect "Use default auth parameter,0-Use 1-UnUse(Default: 0):"
send "\r"
expect "LogOff:"
sleep 360000
#end

注意,以明文的形式将密码保存在硬盘上是非常危险的,尤其是root密码。所以强烈不赞成第二个文件。普通用户最好是做好第一个文件,然后在会话中输入su,登陆,在运行connect-root.sh。
 楼主| 发表于 2004-8-4 19:31:27 | 显示全部楼层
第三贴的附件还差一个连接,这个附件改好了:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2004-8-5 06:43:06 | 显示全部楼层
应该是没有开代理服务,我们学校用linux我知道的都有这个错误,不知道是不是学校做了什么手脚!

下面的脚本我会试试的,非常感谢linuxjerry的热心帮助,又问题还会请教你的!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表