coovachilli无线认证

一、coovachilli介绍
    Coova Chilli是一个Web Portal认证(Captive Portal、UMA)和网关解决方案。可以作为嵌入程序到路由器中,或者作为独立服务软件运行。它需要两个网络端口,内网(默认eth1)和外网(默认 eth0),使用NAT方式做路由,内网端口不需要专门配置,在服务启动时系统会建立一个临时网络端口tun0,它可以为内网客户端分配IP并作为NAT 网关。内网客户端需要访问外网资源时,如果没有认证,系统会导向到认证页面,通过认证后正常访问外部资源。
    Coova Chilli的认证页面可以是独立可定义的,通过json作为数据链路,提供了很高的灵活性。Coova Chilli可以使用标准Radius作为认证系统,也可以用约定格式的http webservice作为认证系统。
注:
     1、chillispot原维护作者停止更新,被chillispot.info接管继续开发;
     2、coova-chilli 是基于chillispot开发拓展的,功能最为强大;可以去官方看一下Coova-chilli。
    Haserl,一个小型WEB服务器,和coova-chilli配合,负责WEB页面的显示,coova-Chilli,接受请求,执行dhcp分配,并调用Haserl并推送PORTAL,调用Radius执行认证,Radius结合Mysql提供认证服务。
二、软件配置
yum -y install gcc*
yum -y install openssl*
yum -y install freeradius2* (freeradius的配置这里不做介绍,详见论坛其他帖子)
yum -y install mysql*  (这里我就偷懒下,全部装上)
tar -zxvf haserl-0.9.29.tar.gz
cd haserl-0.9.29.tar.gz
./configure
make
make install
tar -zxvf coova-chilli-1.2.9.tar.gz
cd coova-chilli-1.2.9.tar.gz
./configure --enable-miniportal --with-openssl (这里不要忘了加参数,否则web页面推送的时候会出问题)
make
make install
安装完成后,配置文件在: /usr/local/etc/chilli.conf(引用文件,一般不需要修改)
/usr/local/etc/chilli:
functionsdefaults 默认参数
www 认证网站
wwwsh cgi网关脚本
up.sh 网络接口启动脚本
down.sh 网络接口关闭脚本
hs.conf 认证服务配置文件
local.conf 其他的自定义配置(才装的一般是空的)
main.conf 主配置文件 (3个conf文件好像安装好后是没有的,第一次启动服务后自动生成)
页面定制,所有页面都在/etc/chilli/www目录下,重要的几个界面文件包括:
ogin_form.tmpl (登录表单)
login.tmpl(登录提示)
css.tmpl(样式表)
hearder.thml(页头)
footer.teml(页脚)
login_success.teml(登录成功页面)
login_footer.teml(登录框下信息)
config-local.sh(各种生成页面元素的脚本)
(可以直接编辑书写自己想要的内容,包括中文化)
认证服务器
系统可以使用标准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
(我装好后就没改过,你可以根据自己的情况更改)
三、配置chilli
cd  /usr/local/etc/chilli
cp  defaults  config (看下chilli.conf就明白为啥这样做了)
vi  config
HS_WANIF=eth0                         [外网网卡]
HS_LANIF=eth1                          [内网网卡]
HS_NETWORK=10.1.0.0              [内网网段]
HS_NETMASK=255.255.255.0      [内网netmask]
HS_UAMLISTEN=10.1.0.1            [內网卡IP]
HS_UAMPORT=3990
HS_UAMUIPORT=4990
HS_DNS1=8.8.8.8                       [指派內网使用DNS]
HS_DNS2=8.8.4.4
HS_NASID=nas01
HS_RADIUS=localhost                 [radius服务器,我的是本地的]
HS_RADIUS2=localhost
HS_UAMALLOW=www.coova.org [可以修改的,我没改他]
HS_RADSECRET=testing123
HS_UAMSECRET=change-me
HS_UAMALIASNAME=chilli
HS_UAMSERVER=$HS_UAMLISTEN
HS_UAMFORMAT=http://\$HS_UAMLISTEN:\$HS_UAMUIPORT/www/login.chi
HS_UAMHOMEPAGE=http://\$HS_UAMLISTEN:\$HS_UAMPORT/www/coova.html
HS_MODE=hotspot
HS_TYPE=chillispo
HS_WWWDIR=/usr/local/etc/chilli/www
HS_WWWBIN=/usr/local/etc/chilli/wwwsh
HS_PROVIDER=Coova
HS_PROVIDER_LINK=http://www.coova.org/ [可以修改]
HS_LOC_NAME="My HotSpot"(有些是不需要修改的,当然你也可以修改它)
设定开机启动
ln  -s  /usr/local/etc/init.d/chilli  /etc/init.d/chilli
Coova-Chilli程式执行PID存放目录
mkdir  -p  /usr/local/var/run
四、网络
vi  /etc/sysconfig/network-scripts/ifcfg-eth0  [外网]
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.80.123
NETMASK=255.255.255.0
GATEWAY=192.168.80.254
DNS1=8.8.8.8
HWADDR=08:00:27:3E:99:B5
vi  /etc/sysconfig/network-scripts/ifcfg-eth1  [内网]
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
HWADDR=08:00:27:47:e7:98 (它是做tun0用的,配置是没用的,所以是static;但是这个网卡一定要有)
开启ip转发
#vi /etc/sysctl.conf
/proc/sys/net/ipv4/ip_forward=1 (他是将eth1上的所有包转发到eth0,一定要开启否则无线无法上网)
#sysctl -p
配置防火墙
vi iptables.sh
iptables -t nat -A PREROUTING -s 10.1.0.0/24 -d 192.168.80.123 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.80.123 -d  10.1.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -d 192.168.80.123 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.80.123 -d  10.1.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -o eth0 -j SNAT --to-source  192.168.80.123
./iptables.sh
service iptables save
插入一个测试用户:
mysql -uroot -p123456
use radius;
insert into radcheck (username,attribute,value,op) values (‘test’,'User-Password’,'123456′,’:=’);
使用处于内网的任何一台电脑上网, 这时候就会被导向一个输入帐号的网页. 只需要输入刚刚建立的test 帐号就可.
五、问题处理:
1、启动时报错:Starting chilli: /etc/init.d/chilli: line 77: which: command not found
修改/etc/init.d/chilli第77行
$(which start-stop-daemon)

$(which  start-stop-daemon  2>/dev/null)
下面还有一行同样也要替换
2、crond服务要装上,否则在关闭服务的时候会报错;
3、网页显示"You need to install haserl to serve pages with this wwwsh script!"
原因是Chilli 无法从系统正确辨识haserl 已经安装, 需要修改程式
vi /usr/local/etc/chilli/wwwsh
寻找$(which haserl 2>/dev/null)
替换成$(/usr/local/bin/haserl 2>/dev/null)
寻找所有的$haserl $file
替换成/usr/local/bin/haserl $file

 

原帖来源:http://www.inagios.org/forum.php?mod=viewthread&tid=645,感谢作者的辛勤工作。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值