神州数码802.1x、DCBA协议认证方案:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Pentie留言 | 贡献
无编辑摘要
 
(未显示26个用户的85个中间版本)
第1行: 第1行:
本文作者:PT <br>
本文作者:PT  


授权许可:[http://www.creativecommons.cn/licenses/by-nc-sa/1.0/ 创作共享协议 ]<br>
授权许可:[http://www.creativecommons.cn/licenses/by-nc-sa/1.0/ 创作共享协议]  


测试平台:Ubuntu 8.04  
测试平台:Ubuntu 8.04、8.10、9.04  


网络环境:广州大学(大学城校区宿舍)校园网接入<br>
= '''前言'''  =
 
神舟数码的认证主要有两种:
 
# 802.1x EAPOL协议,基于链路层的认证;
# DCBA-BAS,基于应用层的认证协议。
 
常见采用其中一种或者两种联合使用。
 
其中802.1x的认证官方没有提供Win平台以外的软件,但有第三方分析出来版本如scut_supplicant,以及本文介绍的[http://code.google.com/p/zdcclient/ ZDClient]; 至于BAS的认证,官方提供了一个Linux的CLI程序upnet,也有基于其反汇编后写出的开源客户端[http://gitorious.org/aecium aecium]。
 
本文介绍两种协议的认证方法和具体的步骤,在其他Linux发行版下应该也通用。
 
= ZDClient 使用教程  =


<br>
== 下载解压  ==


= '''前言''' =
从[http://code.google.com/p/zdcclient/ ZDClient项目主页]下载最新的二进制包,下面以zdclient_bin_1.1_i686_bin.tar.gz为例:
 
  tar xvfz zdclient_bin_1.1_i686_bin.tar.gz


神舟数码的认证主要有两种,一是私有化的802.1x协议,基于链路层的认证;另一是DCBA协议,也是神州私有的,基于应用层的认证。国内高校常见采用其中一种或者两种联合使用。<br>
== 配置与安装  ==


其中私有802.1x的认证官方没有提供Win平台以外的认证软件,但庆幸的是已经有人将其协议破解并写出了基于Java的认证软件(802.1x client for DigitalChina 软件作者:姚琦),至于DCBA的认证,官方提供了一个Linux的Console程序,虽不完美,但至少可以使用。<br>
现在目录下有Readme.txt  install  runzdclient  zdclient四个文件,先使用gedit之类的编辑器编辑runzdclient,把开始的user、pass分别换成您的帐号和密码并保存。


本文将以Step by Step的方式介绍在Ubuntu 8.04下两种协议的认证方法和具体的步骤,在其他Linux发行版下应该也通用。
安装需要root权限,这通常使用sudo或者su -c


<br>
sudo ./install


= '''神州数码802.1x私有协议认证'''  =
成功执行安装将看到####Installation Done.####的提示。


<br>
== 运行  ==


== 准备工作<br>  ==
如果用户配置的帐号信息无误并且安装成功,那么用户只需要运行runzdclient,即可看到有关的认证成功的信息。
<blockquote>认证软件运行需要jre6、jdk6软件包,同时需要一个java的第三方库:jpcap。</blockquote><blockquote>(由于jpcap库无法支持amd64的系统,因此64位系统下的认证未能解决。)</blockquote>
=== 下载文件  ===
<blockquote>'''考虑未认证的Ubuntu无法使用网络,需要在其他平台下载以下的文件再到Ubuntu中安装: '''<pre>http://archive.ubuntu.org.cn/ubuntu/pool/main/libt/libtool/libltdl3_1.5.26-1ubuntu1_i386.deb
http://archive.ubuntu.org.cn/ubuntu/pool/main/j/java-common/java-common_0.28ubuntu3_all.deb
http://archive.ubuntu.org.cn/ubuntu/pool/main/u/unixodbc/libodbcinstq1c2_2.2.11-16build1_i386.deb
http://archive.ubuntu.org.cn/ubuntu/pool/main/u/unixodbc/odbcinst1debian1_2.2.11-16build1_i386.deb
http://archive.ubuntu.org.cn/ubuntu/pool/main/u/unixodbc/unixodbc_2.2.11-16build1_i386.deb
http://archive.ubuntu.org.cn/ubuntu/pool/multiverse/s/sun-java6/sun-java6-bin_6-07-3ubuntu2_i386.deb
http://archive.ubuntu.org.cn/ubuntu/pool/multiverse/s/sun-java6/sun-java6-jre_6-07-3ubuntu2_all.deb
http://archive.ubuntu.org.cn/ubuntu/pool/multiverse/s/sun-java6/sun-java6-jdk_6-07-3ubuntu2_i386.deb
http://netresearch.ics.uci.edu/kfujii/jpcap/jpcap-0.7.deb
</pre><br></blockquote>


=== 安装软件运行环境  ===
如果系统内安装有libnotify的工具,运行脚本时会出现如图的提示(Ubuntu中的效果,如果没有,请安装sudo apt-get libnotify-bin):[没有安装libnotify-bin虽然不能显示,但并不影响认证。]
<blockquote>1.安装odbc支持、java-common......<br><pre>$sudo dpkg -i libltdl3_1.5.26-1ubuntu1_i386.deb
$sudo dpkg -i odbcinst1debian1_2.2.11-16.deb
$sudo dpkg -i unixodbc_2.2.11-16build1_i386.deb
$sudo dpkg -i java-common_0.30_all.deb
</pre>
2.安装下载的jre、jdk(安装过程中出现协议,按Tab移动光标。jdk的安装过程耗时较长)  
<pre>$sudo dpkg -i sun-java6*</pre>
<strike>3.安装libcap(这一步不确定,libpcap库Ubuntu 8.04 DVD版本默认安装了,但其他发行版最好自己用新立得检查一下)</strike>


4.安装jpcap-0.7
[[Image:Notify.png|border|150px|服务器信息]]
<pre>$sudo dpkg -i jpcap-0.7.deb </pre></blockquote>


== <br> 安装、配置认证软件<br>  ==
可以通过桌面的启动器运行runzdclient,或把把runzdclient加入到比如GNOME的“系统->首选项->启动程序“当中,以便每次登录系统即可自动认证上网。
<blockquote>[http://wiki.ubuntu.org.cn/images/9/97/802.1x_client_for_DigitalChina_0.6.1.tar.gz 802.1x_client_for_DigitalChina_0.6.1.tar.gz]‎ (文件大小: 80 KB, MIME 类型: application/x-gzip) </blockquote> <blockquote>这里提供的是简化版本,可到作者网站下载最新版:[http://www.yaoqi.name/ http://www.yaoqi.name/] (先匿名登录,然后进入“软件开发”)。<br> 解压文件,例子中解压到~/DigiChina。 </blockquote> <blockquote>1.给文件赋予可执行属性 <pre>chomd +x 8021x_linux
</pre>
2.把软件安装到系统程序目录
<pre>sudo cp 8021x_linux /usr/local/bin
</pre>
3.在桌面建立启动器: (右击桌面-创建启动器,类型选择“应用程序”、名称填写DigiChina、命令中填入)
<pre>gksu 8021x_linux +javahome /usr/lib/jvm/java-6-sun</pre>  
(java的版本可能会不一样,比如我的就是/usr/lib/jvm/java-6-sun-1.6.0.07,可以先用新得立软件包管理器看看sun-java装在哪里了,记下来,然后把启动器里的改过来就好了)


第一次运行程序,注意Program菜单里面有个“中文界面”,点击了软件就变成中文了。按照提示在配置信息里面把东西填好,然后 保存配置信息,回到主界面,连接即可。
更详细请看ZDClient的用户手册:[http://code.google.com/p/zruijie4gzhu/wiki/zRuijie_User_Manual]


<br> [[Image:Sup2.png|thumb]]
= DCBA-BAS 使用教程  =


可以参照右图:(勾上自动连接的时候,密码框内容不能修改,请注意) <br>
DCBA-BAS的认证是基于应用层的:
[[File:LinuxClient.tar.gz]]
下载附件到主文件夹,解压后有一个linuxClient文件夹。


<br> 有些认证方案中,是认证后才通过DHCP分配的IP,勾上“自动分配IP”即可。如果在认证之前本机就已经获取IP的,需要填上本机的ip、dns、网关等。 [[Image:Sup.jpg|thumb]]<br>
运行终端进入linuxClient:


<br>
./upnet -h host -u username -p password


<br>
(-h是认证主机的IP,-u是用户名,-p是密码,如果不清楚网络的认证主机,可以查看Win版本的客户端中的ini文件的信息)


<br>
之后程序会提示选择服务,按1,回车即可。屏幕提示如下:


连接成功的界面(右图):
$ ./upnet -h 192.168.28.5 -u user -p password
Warning: bad ps syntax, perhaps a bogus '-'? See [http://procps.sf.net/faq.html http://procps.sf.net/faq.html]
select server:
1. servicename
please select(e-Exit):1'''(输入1选择服务器)'''
The attestation is successful, you can be then now internet access!(提示认证成功,可以上网了)


<br>
== 使用shell脚本保存账号密码  ==


在802.1x和DCBA双重认证的系统中,如果认证了802.1x后30秒内没有进行DCBA认证,则程序会提示掉线,此时需要退出程序重新运行、连接。<br>
1.复制程序到系统本地程序目录


<br>
$sudo cp upnet downnet /usr/local/bin


==== 最新版本的认证软件<br>  ====
2.在用户目录下运行完整运行一次认证(生成attrfile.ini自动应答文件)


最新版本0.7.5中程序添加了一些功能,尤其有“'''自定义认证版本'''”的选项,可能对某些因升级不能使用linux客户端认证的环境有效。
$cd
$upnet -h 192.168.28.5 -u user -p password


'''但是在使用中,新版的稳定性不若0.6.1版本,且内存占用很大(50M)。若旧版能够正常认证,不推荐升级。'''  
'''若能成功上网,可运行downnet,再执行一次不带-h参数的upnet,应该能正常免应答认证。'''  


作者的网站:[http://www.yaoqi.name http://www.yaoqi.name]/ (先匿名登录,然后进入“软件开发”)。 [[Image:Screenshot-神州数码802.1x协议认证辅助客户端 V0.7.5.png|right|350px]][[Image:Screenshot-神州数码802.1x协议认证辅助客户端 V0.7.5高级设置.png|left|350px]]&nbsp; <br></blockquote>
3.创建认证脚本


<br> <br> <br> <br> <br>
$sudo gedit /usr/local/bin/authupnet


<br><br><br><br><br>
输入如下内容


<br><br><br><br><br><br><br><br><br>
#!/bin/sh
upnet -u username -p password


= '''<br>神州数码DCBA认证''' =
4.保存后给该文件赋予可执行权限
<blockquote>DCBA的认证是基于应用层的,使用相对简单一些: [http://wiki.ubuntu.org.cn/images/3/37/LinuxClient.tar.gz LinuxClient.tar.gz‎] (文件大小: 15 KB, MIME 类型: application/x-gzip) <br></blockquote><blockquote>下载附件到主文件夹,解压后有一个linuxClient文件夹。 运行终端进入linuxClient: <pre>./upnet –h host –u username –p password</pre>
 
(-h是认证主机的IP,-u是用户名,-p是密码,如果不清楚网络的认证主机,可以查看Win版本的客户端中的ini文件的信息)
  $sudo chmod +x /usr/local/bin/authupnet


之后程序会提示选择服务,按1,回车即可。屏幕提示如下:
5.在终端里面直接执行authupnet,就可以上网了!
<pre>$ ./upnet -h 192.168.28.5 -u user -p password(运行命令)


&nbsp;Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html(这行提示不用理会)
$authupnet
&nbsp;select server:
&nbsp;1. servicename
&nbsp;please select(e-Exit):1(输入1选择服务器)
&nbsp;The attestation is successful, you can be then now internet access!(提示认证成功,可以上网了)


</pre></blockquote>
或者为authupnet建立一个桌面启动器,以后双击即可。
=== 使用shell脚本保存账号密码的简便方法<br>  ===
<blockquote>!!!注意!!! '''在使用脚本登录前先在终端手动认证,成功后再配置脚本,可减少出错的可能。''' </blockquote><blockquote>1.安装程序到系统本地程序目录 <pre>$sudo cp upnet /usr/local/bin</pre> 2.运行一次认证<pre>$upnet -h 192.168.28.5 -u user -p password</pre>
'''若能成功上网,继续,否则请<u>耐心调试</u>:'''<br>


3.创建认证脚本
<pre>$sudo gedit /usr/local/bin/authupnet</pre>
输入如下内容(脚本中不要用-f、-h的参数)<br>
<blockquote><pre>#!/bin/sh
upnet -u username -p password
</pre> </blockquote>
2.保存后给该文件赋予可执行权限
<pre>$chmod +x /usr/local/bin/authupnet</pre>
3.运行:<br>在终端里面直接执行authupnet,就可以上网了!或者为authupnet建立一个桌面启动器,双击即可。<br>
<pre>$authupnet</pre></blockquote>
=== 注意事项  ===
=== 注意事项  ===
<blockquote>1. 强烈建议第一次运行DCBA认证时不要使用脚本,至少在终端中命令方式运行一次upnet成功上网后,再考虑配置脚本(第一次成功认证后程序会将一些参数记录,以后认证时作为默认参数)。 </blockquote><blockquote>2. 常见程序给出This procedure has Exsit!的错误提示,但是又不能上网,是因为之前错误运行了upnet,而进程又没有正常退出的缘故。使用killall upnet命令终止程序,重新执行upnet。若情况依旧,试试执行downnet或者重启系统(重启x upnet不会终止)。 <br><br>3.在自动登录脚本里面不要使用-h和-f参数,否则会出现服务选择菜单而无法自动应答。</blockquote>
<br>


= '''一个小研究:其实不需要jdk.......'''  =
#至少在终端中命令方式运行一次upnet成功上网后,再配置脚本(第一次成功认证后程序会在当前目录下生成自动应答文件attrfile.ini)。
#常见程序给出This procedure has Exsit!的错误提示,但是又不能上网,是因为之前错误运行了upnet,而进程又没有正常退出的缘故。使用killall upnet命令终止程序,重新执行upnet。若情况依旧,试试执行downnet或者重启系统(重启x upnet不会终止)。
#upnet程序不会响应用户名密码是否正确,即使给与错误的帐号,其提示和正常认证一样。如发现不能上网,检查账户是否错误。
 
=== 开源的aecium  ===
 
[http://gitorious.org/aecium aecium]本来是针对“安腾通信”公司的认证系统的客户端,不过和神州数码的BAS兼容。上面所说的upnet的缺点是只能使用系统中的eth0设备,如果你的网卡是eth1或者其他,就别想用了,而aecium则支持使用不同的网卡设备。 aecium的用法和上述的upnet程序几乎完全一致。
 
Aecium的二进制版本可在这里下载[[Image:Aecium.tar.gz]]
 
= '''可正常使用的环境'''  =
 
===广州大学===
广州大学使用aecium二次认证电信4M成功上网,操作系统ubuntu12.04。
 
===山东财经大学===
山东财经大学舜耕校区使用DCBA-BAS可以正常认证校园网
 
===山东工商学院===
山东工商学院使用DCBA-BAS可以正常认证校园网


安装jpcap包时,会要求依赖jdk&gt;=1.6,但是jpcap的项目主页里面的资料说,运行jpcap based程序并不需要安装jdk。因此,只需要:
=== 武汉大学  ===
<blockquote><pre>sudo --force-depends -i jpcap.deb
武汉大学使用ZDClient 0.4 以上可正常认证校园网
</pre></blockquote>
然后就可以运行认证软件了。 另外在Fedora中的测试,开源的OpenJDK-jre也能运行这个认证软件。OpenJDK在Ubuntu中对应的包名称为:openjdk-6-jre


<br>
=== 山东聊城大学 ===
山东聊城大学使用ZDClient 1.1以上可正常认证校园网,若使用1.0或以前版本,需要使用参数--ver 3.5.04.1110fk来定义认证版本。
2016年4月22号,测试聊城大学无法认证


= '''具体环境的认证过程细节'''  =
===烟台大学===
烟台大学使用DCBA-BAS可以正常认证校园网


=== 广州大学 大学城校区<br>  ===
===三亚琼州学院===
三亚琼州学院使用802.1X可以正常认证校园网


大学城校区使用的正是本套神州数码认证,但是具体到不同的宿舍,又有不同的认证流程。(原Win下的认证都分成3个版本)
===华农珠江学院===
华农珠江学院使用DCBA-BAS可以正常认证校园网


其中B15宿舍楼使用的是802.1x和DCBA联合认证方法,故联网必须先按本文的方法先后验证。而其他宿舍楼宇,则只需使用DCBA协议验证。 <br>
===广州工程技术职业学院===
<pre>B14、B15楼使用的DCBA服务器 192.168.28.5
广州工程技术职业学院使用www.gameztc.com正常认证校园网
[[Category:联网]]


&nbsp; 其他楼宇使用的DCBA服务器 &nbsp;192.168.28.4</pre>
===广州中医药大学===
<br>
广州中医药大学使用802.1X可以正常认证校园网
并且在RHEL5.X使用成功


=== 武汉大学<br>  ===
12月6号起校园网升级    只要用zdclient一次认证就能上网了


由于武汉大学的验证协议升级,即使Win平台下以前版本的验证客户端都不能用了(会显示“版本过低,禁止登录“等字样),而对应的linux版神州数码也不能用了。= =#,现暂无其他解决办法。
===华中科技大学文华学院===
华中科技大学文华学院使用ZDClient 1.2可正常认证校园网,安装时需设置--dhcp参数。


<br>
===重庆教育学院===
重庆教育学院可以使用Aecium 0.0.1正常认证上互联网。


(原作者提醒:不知道武大的同学有没有测试过0.7.5版本的验证软件,可以自定义验证版本)
===临沂职业学院===
临沂职业学院使用802.1X可以正常认证校园网 测试平台ubuntu9.10,ubuntu11.04。


(武汉大学的同学回复:刚刚试过,我们的版本号是3.5.04.1013 Beta,改过来后依然显示版本过低,...,强烈期待姚琦出新的版本!) <br>
===华南理工大学===
华南理工大学使用ZDClient1.2一次认证就成功上网,操作系统ubuntu11.04。

2016年4月22日 (五) 17:01的最新版本

本文作者:PT

授权许可:创作共享协议

测试平台:Ubuntu 8.04、8.10、9.04

前言

神舟数码的认证主要有两种:

  1. 802.1x EAPOL协议,基于链路层的认证;
  2. DCBA-BAS,基于应用层的认证协议。

常见采用其中一种或者两种联合使用。

其中802.1x的认证官方没有提供Win平台以外的软件,但有第三方分析出来版本如scut_supplicant,以及本文介绍的ZDClient; 至于BAS的认证,官方提供了一个Linux的CLI程序upnet,也有基于其反汇编后写出的开源客户端aecium

本文介绍两种协议的认证方法和具体的步骤,在其他Linux发行版下应该也通用。

ZDClient 使用教程

下载解压

ZDClient项目主页下载最新的二进制包,下面以zdclient_bin_1.1_i686_bin.tar.gz为例:

tar xvfz zdclient_bin_1.1_i686_bin.tar.gz

配置与安装

现在目录下有Readme.txt install runzdclient zdclient四个文件,先使用gedit之类的编辑器编辑runzdclient,把开始的user、pass分别换成您的帐号和密码并保存。

安装需要root权限,这通常使用sudo或者su -c

sudo ./install 

成功执行安装将看到####Installation Done.####的提示。

运行

如果用户配置的帐号信息无误并且安装成功,那么用户只需要运行runzdclient,即可看到有关的认证成功的信息。

如果系统内安装有libnotify的工具,运行脚本时会出现如图的提示(Ubuntu中的效果,如果没有,请安装sudo apt-get libnotify-bin):[没有安装libnotify-bin虽然不能显示,但并不影响认证。]

服务器信息

可以通过桌面的启动器运行runzdclient,或把把runzdclient加入到比如GNOME的“系统->首选项->启动程序“当中,以便每次登录系统即可自动认证上网。

更详细请看ZDClient的用户手册:[1]

DCBA-BAS 使用教程

DCBA-BAS的认证是基于应用层的: 文件:LinuxClient.tar.gz 下载附件到主文件夹,解压后有一个linuxClient文件夹。

运行终端进入linuxClient:

./upnet -h host -u username -p password

(-h是认证主机的IP,-u是用户名,-p是密码,如果不清楚网络的认证主机,可以查看Win版本的客户端中的ini文件的信息)

之后程序会提示选择服务,按1,回车即可。屏幕提示如下:

$ ./upnet -h 192.168.28.5 -u user -p password
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
select server:
1. servicename
please select(e-Exit):1(输入1选择服务器)
The attestation is successful, you can be then now internet access!(提示认证成功,可以上网了) 

使用shell脚本保存账号密码

1.复制程序到系统本地程序目录

$sudo cp upnet downnet /usr/local/bin

2.在用户目录下运行完整运行一次认证(生成attrfile.ini自动应答文件)

$cd
$upnet -h 192.168.28.5 -u user -p password

若能成功上网,可运行downnet,再执行一次不带-h参数的upnet,应该能正常免应答认证。

3.创建认证脚本

$sudo gedit /usr/local/bin/authupnet

输入如下内容

#!/bin/sh
upnet -u username -p password

4.保存后给该文件赋予可执行权限

$sudo chmod +x /usr/local/bin/authupnet

5.在终端里面直接执行authupnet,就可以上网了!

$authupnet

或者为authupnet建立一个桌面启动器,以后双击即可。

注意事项

  1. 至少在终端中命令方式运行一次upnet成功上网后,再配置脚本(第一次成功认证后程序会在当前目录下生成自动应答文件attrfile.ini)。
  2. 常见程序给出This procedure has Exsit!的错误提示,但是又不能上网,是因为之前错误运行了upnet,而进程又没有正常退出的缘故。使用killall upnet命令终止程序,重新执行upnet。若情况依旧,试试执行downnet或者重启系统(重启x upnet不会终止)。
  3. upnet程序不会响应用户名密码是否正确,即使给与错误的帐号,其提示和正常认证一样。如发现不能上网,检查账户是否错误。

开源的aecium

aecium本来是针对“安腾通信”公司的认证系统的客户端,不过和神州数码的BAS兼容。上面所说的upnet的缺点是只能使用系统中的eth0设备,如果你的网卡是eth1或者其他,就别想用了,而aecium则支持使用不同的网卡设备。 aecium的用法和上述的upnet程序几乎完全一致。

Aecium的二进制版本可在这里下载文件:Aecium.tar.gz

可正常使用的环境

广州大学

广州大学使用aecium二次认证电信4M成功上网,操作系统ubuntu12.04。

山东财经大学

山东财经大学舜耕校区使用DCBA-BAS可以正常认证校园网

山东工商学院

山东工商学院使用DCBA-BAS可以正常认证校园网

武汉大学

武汉大学使用ZDClient 0.4 以上可正常认证校园网

山东聊城大学

山东聊城大学使用ZDClient 1.1以上可正常认证校园网,若使用1.0或以前版本,需要使用参数--ver 3.5.04.1110fk来定义认证版本。 2016年4月22号,测试聊城大学无法认证

烟台大学

烟台大学使用DCBA-BAS可以正常认证校园网

三亚琼州学院

三亚琼州学院使用802.1X可以正常认证校园网

华农珠江学院

华农珠江学院使用DCBA-BAS可以正常认证校园网

广州工程技术职业学院

广州工程技术职业学院使用www.gameztc.com正常认证校园网

广州中医药大学

广州中医药大学使用802.1X可以正常认证校园网 并且在RHEL5.X使用成功

12月6号起校园网升级 只要用zdclient一次认证就能上网了

华中科技大学文华学院

华中科技大学文华学院使用ZDClient 1.2可正常认证校园网,安装时需设置--dhcp参数。

重庆教育学院

重庆教育学院可以使用Aecium 0.0.1正常认证上互联网。

临沂职业学院

临沂职业学院使用802.1X可以正常认证校园网 测试平台ubuntu9.10,ubuntu11.04。

华南理工大学

华南理工大学使用ZDClient1.2一次认证就成功上网,操作系统ubuntu11.04。