Linux下使用zdclient进行神州数码上网认证

Author:zumikua Updated at:2013-09-23 14:11:33 UTC

本来是个很简单的事请……但是因为我是个煞笔的原因搞得很复杂…… 因为个人问题我一开始下的版本是[github](https://github.com/isombyt/zdcclient)版本的,一开始编译就出问题,没有pcap安装包,用apt-get安装提示包已经被废弃,没办法只好自己下源码自己编译,不过还好pcap的依赖没啥大要求,咱好像只安装了个flex什么的就成功编译了,记得make 和 sudo make install之前先./configure一下看看需求有没有满足 然后就是编译zdclient,编译成功后的确能运行,但是总是提示用户名与密码错误,怎么修改runzdclient脚本都没用……然后在windows下试用zdclient是有效的,真是奇怪的问题啊是吧? 然后我就直接下载了原来的工程,然后翻readme的时候看到了这样一句话“安装前先修改runzdclient文件内的账户信息。”然后我就先修改了runzdclient再继续安装,然后就尼!玛!好!了! 心存怀疑的我到/usr/bin下一看,特么runzdclient竟然是直接拷贝进去不是通过软硬链接链过去的!也就是说之前咱用自己编译的程序压根就没该过用户名和密码!卧槽,就这问题还困扰了我老半天,甚至还自己亲自抓包来实验从作者博客上看到的协议过程……简直不能再坑。 嘛,实际上现在还有一个需要解决的问题就是断线了……我先在在linux下基本想用网就得runzdclient -l再runzdclient,和在windows下使用官方客户端勾选了使用私有报文地址是一样效果,看样子这个问题要想修复又是个大工程了……嘛,以后再说吧……

关于武汉大学文理学部校园网使用非官方认证客户端zdcclient常断线问题的处理

Author:zumikua Updated at:2013-11-06 12:56:46 UTC

zdcclient作为从09年开始服役的一个非官方认证客户端到现在还能够完成基本的认证功能实属不易,感谢神州数码公司的不思进取让我们能够在与官方、闭源的认证客户端对抗的拉锯战中获得暂时的喘息之机。 感谢pentie大神开源出来的zdcclient,感谢他为我们带来的深入浅出的[教程](http://apt-blog.net/tag/8021x)。 本文所述内容仅在武汉大学文理学部的网络环境中获得过测试。 zdcclient现在因协议的更新已经不能胜任本地的校园网环境了,在成功认证的两到三分钟后便会失去网络响应。在观察zdcclient的log后可以发现,zdclient经常会截获到Unknown的包,其eap_type位的数据为0xfa。后根据原版客户端的抓包发现,该0xfa包即为改进后的REQUEST_IDENTITY_KEEP_ALIVE包,其中附带了4字节的数据(attach_key)。因zdcclient中并未有对此包的相应代码,所以无法回传对应的保鲜报文,导致在认证后因长时间没有回传保险报文而被强制断线。 在了解问题的症结后我们开始着手研究RESPONSE_IDENTITY_KEEP_ALIVE报文的具体格式。经过推理与验证,发现其是由原版RESPONSE_IDENTITY_KEEP_ALIVE修改而来。其中EAP通信id与REQUEST中的id相同(在测试中按顺序递增),EAP协商类型为0xfa。而其中原本应该是用户名ASCII字符串的地方则变为了md5(用户名ASCII+REQUEST中提供的attach_key)。最后在EAPOL的尾部的DCBA信息体中没有了占据13字节的客户端版本信息, 只剩33字节。 由此我们便可以构造出对应的保鲜报文,具体还请参考程序。 git:https://gitcafe.com/ZumiKua/zdcclient4whu/ 参考资料: http://apt-blog.net/details_about_802_1x_in_campus_authentication_1 http://apt-blog.net/eap_explaination_2
Main