Python 实现的中山大学东校区校园网认证客户端
Python
Switch branches/tags
Nothing to show
Pull request Compare This branch is 2 commits behind humiaozuzu:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
screenshots
scripts
yah3c
.gitignore
AUTHORS
CHANGES
LICENSE
README.md
setup.py

README.md

YaH3C

YaH3C 是用于校园网认证的客户端,支持中山大学东校区.

为什么不用iNode

  • i开头完全是对Apple的侮辱嘛 = =
  • 强制添加启动项
  • gui和cli使用的udp交互,很多时候Linux/Mac下掉线完全是因为实现的效率太低
  • 安装脚本居然是自删除的
  • 默认强制记录日志文件,增加CPU负载,减少硬盘寿命,一段时间后就过GB了(是否有敏感信息不得而知了)
  • Linux下仅仅支持Ubuntu 32位系统
  • Mac下安装后居然要重启
  • 使用的第三方库乱放和HomeBrew冲突

依赖

  • 主流Linux发行版,包括OpenWrt/DD-WRT
  • Python2

安装

首先,从github上下载,可以直接利用git clone,也可以下载压缩包自己解压然后安装。下面以git为例,如果没有则需要先安装:

# Ubuntu/Debian
sudo apt-get install git

# ArchLinux
sudo pacman -S git

然后,从项目中clone下来并安装

git clone git://github.com/humiaozuzu/YaH3C.git
cd YaH3C
sudo python setup.py install

ArchLinux默认安装的python是python3,你需要手动安装python2。

使用

完整的联网过程有2步,首先使用本客户端通过交换机的认证,然后获取ip。

认证

程序运行时必须要有root权限:

sudo yah3c

根据程序的提示输入账号密码就可以开始认证了,有些选项如果看不懂请直接按Enter

获取ip

因为YaH3C仅仅是认证客户端,所以通过认证后你需要自己获取ip联网,不过为了方便还是添加了dhcp支持。

如果没有指定dhcp的命令,你可以在认证成功后使用自己喜欢的网络管理工具获取IP,如NetworkManager或Wicd。

YaH3C支持基本的命令行参数,执行yah3c -h可以看到支持的命令行参数

$ yah3c -h       
usage: yah3c [-h] [-u USERNAME] [-debug]

Yet Another H3C Authentication Client

optional arguments:
  -h, --help            show this help message and exit
  -u USERNAME, --username USERNAME
                        Login in with this username
  -debug                Enable debugging mode

如执行sudo yah3c -u Maple可以自动认证Maple这个帐号

配置文件格式

用户的登陆信息按照如下的格式保存在文件/etc/yah3c.conf中:

[account]                  # 你的帐户 
password = 123456          # 密码
ethernet_interface = eth0  # 使用的网卡,默认为eth0
dhcp_command = dhcpcd      # 验证成功后使用的dhcp命令(dhcpcd/dhclient),默认为空
daemon = True              # 验证成功后是否变成daemon进程,默认为是

ScreenShots

认证成功:

success

认证失败:

failure

Todo

  • 添加BSD BPF 支持,这样在OS X也可以使用了
  • 完善收集调试信息的功能,方便用户提交认证信息
  • 完善对H3C协议的支持

Thanks

License

YaH3c的代码使用MIT License发布,此外,禁止使用YaH3C以及YaH3C的修改程序用于商业目的(比如交叉编译到路由进行销售等行为)