Потом ставим на роутер coova-chilli
Ставится он почему-то БЕЗ стартового скрипта.
Добавляем
Вставляем:
Код: Выделить всё
#!/bin/sh /etc/rc.common
START=91
# - init script for chilli -
NAME=chilli
RUN_D=/var/run
CMDSOCK=$RUN_D/$NAME.sock
PIDFILE=$RUN_D/$NAME.pid
option_cb() { [ -n "$2" ] && echo "HS_$(echo $1|tr 'a-z' 'A-Z')=\"$2\"" | sed 's/\$/\\\$/g'; }
config_load hotspot > /etc/chilli/config
. /etc/chilli/functions
start() {
# HS_SSID=$(wl status|grep '^SSID:'|awk '{print $2}'|sed s/\"//g)
# HS_NASMAC=$(grep perm_etheraddr /proc/net/wl0|awk '{print toupper($2)}'|sed s/:/-/g|head -n1)
# HS_WANIF=$(nvram get wan_ifname)
# HS_NASIP=${HS_WANIF:+$(ifconfig $HS_WANIF 2>/dev/null|grep 'inet addr'|awk -F: '{print $2}'|awk '{print $1}')}
HS_DNS_DOMAIN=${HS_DNS_DOMAIN:-cap.coova.org}
HS_DNS1=${HS_DNS1:-$HS_UAMLISTEN}
HS_DNS2=${HS_DNS2:-$HS_NASIP}
HS_NASID=${HS_NASID:-$HS_NASMAC}
HS_MACAUTHMODE=${HS_MACAUTHMODE:-local}
HS_USELOCALUSERS=${HS_USELOCALUSERS:-off}
HS_PROXY_TYPE=${HS_PROXY_TYPE:-none}
HS_RADCONF_URL=${HS_RADCONF_URL:-http://ap.coova.org/config/tos.conf}
HS_CFRAME_URL=${HS_CFRAME_URL:-http://coova.org/cframe/default/}
HS_CFRAME_SZ=${HS_CFRAME_SZ:-100}
HS_DEFSESSIONTIMEOUT=${HS_DEFSESSIONTIMEOUT:-0}
HS_DEFIDLETIMEOUT=${HS_DEFIDLETIMEOUT:-0}
HS_DEFINTERIMINTERVAL=${HS_DEFINTERIMINTERVAL:-300}
HS_LAN_ACCESS=${HS_LAN_ACCESS:-deny}
HS_CFRAME_POS=${HS_CFRAME_POS:-top}
HS_PROVIDER=${HS_PROVIDER:-Coova}
HS_PROVIDER_LINK=${HS_PROVIDER_LINK:-http://coova.org/}
HS_LOC_NAME=${HS_LOC_NAME:-My HotSpot}
HS_LOC_NETWORK=${HS_LOC_NETWORK:-Coova}
HS_OPENIDAUTH=${HS_OPENIDAUTH:-off}
HS_ANYIP=${HS_ANYIP:-off}
[ -z "$HS_LANIF" ] && {
[ -e /tmp/device.hotspot ] && {
stop
}
HS_LANIF=$(wlanconfig ath create wlandev wifi0 wlanmode ap)
for i in 0 1 2 3 4; do ifconfig ath$i mtu 1500; done 2>/dev/null
echo $HS_LANIF > /tmp/device.hotspot
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iwconfig $HS_LANIF essid ${HS_SSID:-Coova} 2>/dev/null
}
writeconfig
radiusconfig
# (crontab -l 2>&- | grep -v $0
# echo "*/10 * * * * $0 checkrunning"
# test ${HS_ADMINTERVAL:-0} -gt 0 && echo "*/$HS_ADMINTERVAL * * * * $0 radconfig"
# test ${HS_CHECKARP:-0} -gt 0 && echo "*/$HS_CHECKARP * * * * $0 arping"
# ) | crontab - 2>&-
[ -d $RUN_D ] || mkdir -p $RUN_D
/sbin/insmod tun >&- 2>&-
/usr/sbin/chilli
}
stop() {
[ -f $PIDFILE ] && kill $(cat $PIDFILE).
# crontab -l 2>&- | grep -v $0 | crontab -
rm -f $PIDFILE $LKFILE $CMDSOCK 2>/dev/null
iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
wlanconfig $(cat /tmp/device.hotspot) destroy
rm /tmp/device.hotspot
}
Собственно говоря в этом скрипте есть лишнее, но пусть остается..
Делаем исполняемым:
Редактируем /etc/chilli/defaults
Код: Выделить всё
HS_NASID=nas1 #"!Имя сервера доступа. Должно совпадать с указанным в Abills"
HS_RADIUS=10.0.0.200 #(Адрес радиус-сервера 1)
HS_RADIUS2=10.0.0.200 #(Адрес радиус-сервера 2)
HS_UAMALLOW=ya.ru,10.0.0.0/24 #Адреса разрешенные без авторизации
HS_RADSECRET=radsecret # RADIUS shared secret Должно совпадать с аналогичным в конфиге радиуса !И! В файле hotspotlogin.cgi
HS_UAMSECRET=HkjJKHiJOPOKOPk # Set to be your UAM secret Должно совпадать с параметром в файле В файле hotspotlogin.cgi иначе пароль будет попадать в радиус кракозябрами.
HS_UAMALIASNAME=chilli
Затем там же редактируем расположение страницы авторизации:
Код: Выделить всё
# Use HS_UAMFORMAT to define the actual captive portal url.
# Shell variable replacement takes place when evaluated, so here
# HS_UAMSERVER is escaped and later replaced by the pre-defined.
# HS_UAMSERVER to form the actual "--uamserver" option in chilli.
###!HS_UAMFORMAT=http://\$HS_UAMLISTEN:\$HS_UAMUIPORT/www/login.chi
HS_UAMFORMAT=https://(адрес web-сервера abills):9443/hotspotlogin.cgi #Адрес ДОЛЖЕН быть разрешен для доступа без авторизации
# Same principal goes for HS_UAMHOMEPAGE.
###!HS_UAMHOMEPAGE=http://\$HS_UAMLISTEN:\$HS_UAMPORT/www/coova.html
HS_UAMHOMEPAGE="" #Оставляем пустым.
Комментируем
Код: Выделить всё
###
# Post-Auth proxy settings
#
# HS_POSTAUTH_PROXY=<host or ip>
# HS_POSTAUTH_PROXYPORT=<port>
# Directory specifying where internal web pages can be served
# by chilli with url /www/<file name>. Only extentions like .html
# .jpg, .gif, .png, .js are allowed. See below for using .chi as a
# CGI extension.
##HS_WWWDIR=/etc/chilli/www
# Using this option assumes 'haserl' is installed per-default
# but, and CGI type program can ran from wwwsh to process requests
# to chilli with url /www/filename.chi
##HS_WWWBIN=/etc/chilli/wwwsh
# Some configurations used in certain user interfaces
#
##HS_PROVIDER=Coova
Не забываем отключить за ненадобностью dnsmasq и включить файрволл:
Код: Выделить всё
/etc/init.d/dnsmasq disable
/etc/init.d/firewall enable
/etc/init.d/firewall start
Обязательно запускаем один раз
Код: Выделить всё
/etc/init.d/chilli start
/etc/init.d/chilli stop
для создания файлов /etc/chilli/local.conf, /etc/chilli/main.conf etc
Потом запускаем для отладки
и видим при подключении клиента что-то типа:
Код: Выделить всё
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=975)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 975
redir.c: 2969: 0 (Debug) close_exit
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=40)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 40
chilli.c: 273: 0 (Debug) caught 18 via selfpipe
chilli.c: 232: 0 (Debug) child 22764 terminated
chilli.c: 127: 0 (Debug) Freed child process 22764 [[redir]]
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=54
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=40)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 40
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=54
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=40)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 40
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=74
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=60)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 60
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=54
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=66
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=263
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=52)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 52
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=1475)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 1475
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=66
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=264
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=52)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 52
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=334)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 334
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=66
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=66
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=89)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 89
tun.c: 705: 0 (Debug) tun_decaps(idx=0, len=52)
dhcp.c: 3714: 0 (Debug) adding 14 to IP frame length 52
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=54
dhcp.c: 3420: 0 (Debug) dhcp_decaps: src=00:92:c9:05:55:7f dst=f8:d1:11:94:15:d4 prot=0800 2048 len=54
Параллельно смотрим на вывод радиуса, запущенного с ключем -X - вывод очень информативен, все ошибки в конфигурации показываются сразу.
Плюс - в биллинге / Отчёт/ Internet/ Ошибка/ - тоже много полезного.
Разберусь глубже - дополню инструкцию.