Akagi201
8/5/2014 - 2:55 PM

chilli.md

chilli是一个Software Access Controller for Captive Portal and WPA

chilli支持2种不同的access methods对于一个Wireless LAN HotSpot: (UAM)Universal Access Method和WPA(Wireless Protected Access).

chilli主要有3个接口: 一个downlink interface接收来自客户端的连接, 一个radius interface用于authenticating clients 和 一个uplink network interface用于转发流量到其他网络.

clients的Authentication是由外部的radius服务器进行的. 对于UAM方式, CHAP-Challenge和CHAP-Password(在RFC 2865规定)被使用. 对于WPA方式, radius EAP-Message attribute(在RFC 2869规定)被使用. 在RFC 2548中描述的message attributes用于转移encryption keys从radius服务器到chilli. 另外, radius interface支持accounting.

downlink interface接收来自clients的DHCP和ARP requests, client可以是两种状态: Unauthenticated和authenticated. 在Unauthenticated状态, 来自clients的web requests被重定向到一个authentication web server - the captive portal.

在一个典型应用中, unauthenticated clients会被转发到一个web server并且提示username和password. web server转发user credentials给chilli通过浏览器重定向. 在chilli这边, authentication requests被发送到一个radius server. 如果authentication是成功, 那么client的状态变成authenticated. 这种authentication method就叫做UAM(Universal Access Method).

相比UAM, access points可以被配置成通过WPA(Wireless Protected Access)来authenticate the clients. 在这种情况下, authentication credentials被转发从WPA access point到chilli, 通过radius协议. 接收到的radius request被chilli代理转发到远程radius server.

uplink interface是通过TUN/TAP driver实现的. 当chilli启动, 一个tun interface被建立, 一个可选的external configuration script被调用.

运行时错误用syslogd(8) facility记录.

命令行参数的优先级高于配置文件(chilli.conf)中参数, 也就是会覆盖配置文件中参数.

信号

发送HUP信号给chilli会导致配置文件被重新读取, DNS lookups被执行. configuration options不受HUB信号影响: fg, conf, pidfile, statedir, net, dynip, statip, uamlisten, uamport, radiuslisten, coaport, coanoipcheck, proxylisten, proxyport, proxyclient, proxysecret, dhcpif, dhcpmac, lease, or eapolenable.

上面的configuration options只有当重启daemon时候被执行.

Refs