http://www.360doc.com/content/13/0412/16/4171006_277815910.shtml http://www.360doc.com/content/13/0412/17/4171006_277837434.shtml http://www.360doc.com/content/13/0412/13/4171006_277778317.shtml 0. 环境 Ubuntu Server 10.10 (in vbox)+Coova Chilli 1.2.5 (deb)+ haserl 0.9.27 FreeRadius作为认证服务。
1. 原理 Coova Chilli是一个Web Portal认证(Captive Portal、UMA)和网关解决方案。可以作为嵌入程序到路由器中,或者作为独立服务软件运行。 它需要两个网络端口,内网(默认eth1)和外网(默认eth0),使用NAT方式做路由,内网端口不需要专门配置,在服务启动时系统会建立一个临时网络端口tun0,它可以为内网客户端分配IP并作为NAT网关。内网客户端需要访问外网资源时,如果没有认证,系统会导向到认证页面,通过认证后正常访问外部资源。 Coova Chilli的认证页面可以是独立可定义的,通过json作为数据链路,提供了很高的灵活性。 Coova Chilli可以使用标准Radius作为认证系统,也可以用约定格式的http webservice作为认证系统。 这里借用一下Coova Chilli网站(http://coova.org/CoovaChilli)上的拓扑图来说明一下问题: 2. Coova chilli 安装 coova chilli 有为ubuntu编译好的版本,可用dpkg直接安装,软件包页面在: http://coova.org/CoovaChilli/Binaries。 cd wget http://ap.coova.org/chilli/coova-chilli_1.2.5_i386.deb dpkg -i coova-chilli_1.2.5_i386.deb
安装完成后,配置文件在 /etc/chilli.conf(引用文件,一般不需要修改) 和 /etc/chilli 中。 defaults 默认参数 main.conf 主配置文件 hs.conf 认证服务配置文件 www 认证网站 wwwsh cgi网关脚本 up.sh 网络接口启动脚本 down.sh 网络接口关闭脚本
3. Harserl安装 Harserl是一个超小型(据说只有20k)的应用服务器,可作为简化的cgi网关使用,适合做嵌入式应用(相对php太大了)。 Harserl 的程序主页在: http://sourceforge.net/projects/haserl/files/ 安装常规下载、编译和安装: cd wget http://sourceforge.net/projects/haserl/files/haserl-devel/0.9.27/haserl-0.9.27.tar.gz/download mv download haserl-0.9.27.tar.gz tar xfzv haserl-0.9.27.tar.gz cd haserl-0.9.27 ./configure sudo make & sudo make install 安装完成后,查看 /usr/local/bin/haserl 是否存在。此程序不需要配置,只需要在使用时引用(wwwsh脚本文件)。
4. Cooval Chilli配置 -- 开启 Chilli控制 没有这个,所有功能都无从谈起,编辑 /etc/default/chilli, START_CHILLI=1 CONFFILE="/etc/chilli.conf"
-- 指定chilli正确使用 Harserl 这里可能有个小小bug,编辑 /etc/chilli/wwwsh ,这是chilli默认的cgi脚本入口文件,但好像有点问题,需要直接指定haserl文件的位置(编译安装haserl后确认一下)。 #haserl=$(which haserl 2>/dev/null) haserl=/usr/local/bin/haserl
-- 外网接口,编辑 defaults 文件,打开外网接口 HS_WANIF=eth0 同时确认内网接口的配置正确。
-- 启动 sudo service chilli start 启动后用ifconfig查看一下,应该生成了一个tun0接口,配置是main.conf中的配置。
5. 页面定制 所有页面都在/etc/chilli/www目录下,重要的几个界面文件包括: login_form.tmpl (登录表单)、login.tmpl(登录提示)、css.tmpl(样式表)、hearder.thml(页头)、footer.teml(页脚)、login_success.teml(登录成功页面)、login_footer.teml(登录框下信息)、config-local.sh(各种生成页面元素的脚本)... 可以直接编辑书写自己想要的内容,包括中文化。
6. 注销 Coova Chilli没有专门的链接维护页面,就没有通常所说的断开链接按钮,一般直接关闭页面就行了。 确实要注销的话(有计费的问题),在浏览器地址栏里输入: http://logout
7. 认证服务器 系统可以使用标准radius服务器作为验证源,只需要在hs.conf 配置相关参数即可。 需要注意的是Coova Chilli默认使用CHAP认证方式,如果你的radius服务器配置不方便,需要使用pap时,可以编辑 www/config-local.sh 文件,修改hs_rad_proto的值为pap,就可以了。 #hs_rad_proto=$(getconfig rad_proto) hs_rad_proto=pap
8. 常见问题 -- 错误You need to install haserl to serve pages with this wwwsh script! 通常是没有安装haserl,或者没有修改wwwsh文件造成的。
-- 可以认证,但不能访问外网 检查外网接口是否打开,defaults文件中的HS_WANIF是否正确,并且保持此端口本身能够访问外网。 -- 修改配置后,最好重启一下chilli服务。 -- 客户端不能访问创建在网关上的网站,也ping不通,应该是正常的 -- 多个内网子网支持?暂时好像没有配置的办法 -- 网络上有配置防火墙的方式,应该不是必须的 |