分享

配置Coovachilli 作为 Web认证Portal和网关

 Dead n Gone 2013-04-12

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:///CoovaChilli)上的拓扑图来说明一下问题:

Coova Chilli - linux_yjy - Linux_yjy
 

2. Coova chilli 安装

coova chilli 有为ubuntu编译好的版本,可用dpkg直接安装,软件包页面在: http:///CoovaChilli/Binaries

cd

wget http://ap./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:///projects/haserl/files/

安装常规下载、编译和安装:

cd

wget http:///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不通,应该是正常的

-- 多个内网子网支持?暂时好像没有配置的办法

-- 网络上有配置防火墙的方式,应该不是必须的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多