安裝 Captive Portal – CoovaChilli
環境
CentOS 5.5
需求
gcc
openssl openssl-devel
haserl
coovachilli
freeradius2 freeradius2-utils
iptables
安裝網路卡
vi /etc/sysconfig/network-scripts/ifcfg-eth0 [對內的網卡]
vi /etc/sysconfig/network-scripts/ifcfg-eth1 [對外的網卡]
安裝必要套件
yum install gcc openssl openssl-devel
安裝 Haserl (一種使用 shell 或 Lua 腳本來編寫網頁的程式)
wget http://sourceforge.net/projects/haserl/files/haserl-devel/0.9.27/haserl-0.9.27.tar.gz/download
tar -zxvf haserl-0.9.27.tar.gz
cd haserl-0.9.27
./configure
make
make install
安裝 CoovaChilli
cd ~
wget http://ap.coova.org/chilli/coova-chilli-1.2.5.tar.gz
tar -zxvf coova-chilli-1.2.5.tar.gz
cd coova-chilli-1.2.5
./configure –enable-miniportal –with-openssl
make
make install
設定開機啟動 Chilli
ln -s /usr/local/etc/init.d/chilli /etc/init.d/chilli
設定 Chilli 組態檔
cd /usr/local/etc/chilli
cp defaults config
vi config
HS_WANIF=eth1 [對外網卡]
HS_LANIF=eth0 [對內網卡]
HS_NETWORK=10.1.0.0 [內網網段]
HS_NETMASK=255.255.255.0 [內網netmask]
HS_UAMLISTEN=10.1.0.1 [內網卡IP]
HS_DNS1=168.95.1.1 [指派內網使用DNS]
HS_RADIUS=localhost [radius server]
HS_RADSECRET=testing123 [radius溝通密碼]
在 Chilli 主機上安裝 iptables
yum install iptables
設定 Chilli 主機上的NAT機制,並且開機啟動
vi /etc/sysctl.conf
尋找 net.ipv4.ip_forward = 0 , 然後將 0 替換成 1
存檔
mkdir -p /usr/local/virus/iptables
vi /usr/local/virus/iptables/iptables.rule
echo ”1″ > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A PREROUTING -s 10.1.0.0/24 -d 192.168.173.103 -j ACCEPT
iptables -t nat -A PREROUTING -s 192.168.173.103 -d 10.1.0.0/24 -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.1.0.0/24 -d 192.168.173.103 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.173.103 -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.173.103
存檔
vi /etc/rc.d/rc.local
# 1. Firewall
/usr/local/virus/iptables/iptables.rule
安裝 freeradius (帳號管理驗证軟體)
yum install freeradius2 freeradius2-utils
建立帳號
vi /etc/raddb
test Cleartext-Password := ”testing”
啟動 freeradius
radiusd -X
驗证 radius 機制
radtest test testing 127.0.0.1 0 testing123
使用
使用處於內網的任何一台電腦上網, 這時候就會被導向一個輸入帳號的網頁. 只需要輸入剛剛建立的 test 帳號就可.
問題處理
網頁顯示 “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