Chillispot Ubuntu daloradius

  • Upload
    kikwete

  • View
    77

  • Download
    0

Embed Size (px)

DESCRIPTION

hotspot configuration

Citation preview

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    2

    ChilliSpot + Ubuntu + phpmyprepaidRC3

    !"# $% &'(% )+,!%- (% .%/0$# .12%3"%4 50#67 !%.(71# .7. !" 21 %& 2552

    ()" -1 +),-.& ),,.%/

    0,)" eth0 &!,!" 5)" 1 6 +, ),,768+7,&! eth1 &!,!" 5)" 2 5 +,),,7 DHCP server 5 6+&!".@ ,),,768+7,&!

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    3

    1. 21(%(:; Ubuntu Linux .71#4- 8.04 [27] ,-.+D Ubuntu Linux " 8.04 .&!".68)"7+. 6O".Ubuntu P680 67@ 6),) 6O".Q,0,68,756 www.ubuntu.com 6O".-,-.- ,-.6857" , LAMP (Linux, Apache, MySQL + PHP) 6O".,-. MySQL - +7+Q Password `7,a Password P mysqladminsecret 7- .& &8 .d,.)-

    & &8.& 7+.. root ,.-7+.. Password . root 0,&`".,.)-

    wifi@wifi-desktop:/$ sudo passwd root Enter new UNIX password: Retype new UNIX password: ,..P root 0,&`". wifi@wifi-desktop:/$ su root

    ` update + upgrade Ubuntu )&)"%, 0,&`". wifi@wifi-desktop:/$ sudo apt-get update wifi@wifi-desktop:/$ sudo apt-get upgrade +`-.& update 0 &`".,.)- sudo apt-get remove update-notifier

    `,-. ubuntu-desktop !".7 ubuntu server )",-.57 7+.P text - + ) desktop graphic ,-., Q. desktop graphic 5.,-.0"0,&`".

    wifi@wifi-desktop:/$ sudo apt-get install ubuntu-desktop

    & &8,5.68 ! 7+8,P5 )")-! eth1 P5 + eth0 P local network 8 /etc/network/interfaces ,.)-

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    4

    wifi@wifi-desktop:/$ sudo nano /etc/network/interfaces

    auto lo iface lo inet loopback

    auto eth0

    auto eth1 iface eth1 inet dhcp

    8 /etc/sysctl.conf ,.)- wifi@wifi-desktop:/$ sudo nano /etc/sysctl.conf

    "& )-)"+/,)" 39 net.ipv4.ip_forward=1

    &`". )- wifi@wifi-desktop:/$ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

    restart 5,&`". wifi@wifi-desktop:/$ sudo /etc/init.d/networking restart

    ` enable TUN/TAP device driver support 0,8 /etc/modules wifi@wifi-desktop:/$ sudo nano /etc/modules

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    5

    "& )-)",%,.8

    tun

    enable ,&`".

    wifi@wifi-desktop:/$ sudo modprobe tun

    ,-. ssh server linux ubuntu !" secure shell connection 7 Windows Desktop `.68, ,&`". sudo apt-get install openssh-server

    wifi@wifi-desktop:/$ sudo apt-get install openssh-server

    -.& timezone Q. )"+Q. ,&`". wifi@wifi-desktop:/$ sudo tzselect wifi@wifi-desktop:/$ sudo nano .profile TZ='Asia/Bangkok'; export TZ

    -.& )"+Q. ,&`".

    wifi@wifi-desktop:/$ sudo nano /etc/cron.daily/update-time #!/bin/bash /usr/sbin/ntpdate pool.ntp.org wifi@wifi-desktop:/$ sudo chmod +x /etc/cron.daily/update-time wifi@wifi-desktop:/$ sudo /etc/init.d/cron restart

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    6

    2. 21&1/67B'7;C7B(#).1# Apache [27], [28] !".768 Apache Q,-.6857 LAMP -,-. Ubuntu Linux ,.-7O. .,-.6-` +Q&8!"., ,.)-

    `,68,.57 unsecure ! http Q.,0,Q &!".68- localhost .)" URL .56 QP.7&!".!" ),,.&!".68- 6O".)")-&! 192.168.2.134 .)" URL .56

    `,68,.57 secure ! https 7+.&8,.)- , ssl module ,&`".

    wifi@wifi-desktop:/$ sudo a2enmod ssl

    ,-.8 apache2-ssl.tar.gz 0,&`". )- wifi@wifi-desktop:/$ sudo wget ftp://ftp.psu.ac.th/pub/apache/apache2-ssl.tar.gz wifi@wifi-desktop:/$ sudo tar zxvf apache2-ssl.tar.gz C /tmp wifi@wifi-desktop:/$ sudo mv /tmp/ssleay.cnf /usr/share/apache2 wifi@wifi-desktop:/$ sudo mv /tmp/apache2-ssl-certificate /usr/sbin wifi@wifi-desktop:/$ sudo mkdir p /etc/apache2/ssl

    ,-. openssl . ssl-certificate ,&`". wifi@wifi-desktop:/$ sudo apt-get install openssl

    . ssl-certificate ,&`". wifi@wifi-desktop:/$ sudo apache2-ssl-certificate

    +7+)& , Enter .,)757

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    7

    8 /etc/apache2/sites-available/default ,.)- wifi@wifi-desktop:/$ sudo nano /etc/apache2/sites-available/default

    &8P,.)- NameVirtualHost 10.0.134.1:80 NameVirtualHost 10.0.134.1:443

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/ ServerName origin.hostname.domain Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn

    CustomLog /var/log/apache2/access.log combined ServerSignature On

    Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    8

    AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128

    ServerAdmin webmaster@localhost

    DocumentRoot /var/www/secure/ ServerName new.name.domain Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all

    ScriptAlias /cgi-bin/ /var/www/secure/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn

    CustomLog /var/log/apache2/access.log combined ServerSignature On

    Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    9

    Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128

    SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.pem

    .,) secure !"55 login wifi@wifi-desktop:/$ sudo mkdir /var/www/secure/

    restart apache ,&`".

    wifi@wifi-desktop:/$ sudo /etc/init.d/apache2 force-reload

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    10

    3. 21(%(:;)$F&1/67B'7;C7B(#).1# FreeRADIUS [19], [26], [27] ,-.68 Setting up freeradius (1.1.7-1ubuntu0.2) ,&`".

    wifi@wifi-desktop:/$ sudo apt-get install freeradius

    ". FreeRADIUS `.,&`". wifi@wifi-desktop:/$ sudo /etc/init.d/freeradius start

    ,`.. FreeRADIUS ,&`". wifi@wifi-desktop:/$ sudo radtest root your_root_password localhost 0 testing123

    0,7 .&`".. & . your_root_password ,& Password )"-.-.@!" root ,-. Ubuntu Linux ,Q. +7+,.&&d,.)-

    Sending Access-Request of id 144 to 127.0.0.1 port 1812 User-Name = "root" User-Password = "your_root_password" NAS-IP-Address = 255.255.255.255 NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=144, length=20

    ,. Q. FreeRADIUS , 0,P7@ localhost

    7-,.)"& &88 /etc/freeradius/clients.conf ,&`". sudo nano /etc/freeradius/clients.conf +/,)" 35 0,)"& secret .

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    11

    client 127.0.0.1 P .!" sharedsecret ". FreeRADIUS `. ,&`". sudo /etc/init.d/freeradius restart

    ,.})@ !"@ test )@ testing ,&`". wifi@wifi-desktop:/$ sudo adduser test

    ,`.. FreeRADIUS ,!"@ test ,&`". wifi@wifi-desktop:/$ sudo radtest test testing localhost 0 sharedsecret

    . RADIUS client 6O".5&! local network %}-.5 /24 (eth0 () 0,"&8 /etc/freeradius/clients.conf )-

    client 10.0.134.0/24 { secret = sharedsecret shortname = private-network }

    ". FreeRADIUS `. ,&`". sudo /etc/init.d/freeradius restart ,`. chillispot

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    12

    4. 21(%(:;)$F&1/67B'7;C7B(#).1# ChilliSpot [26], [27] ,-.68 chillispot (1.0-8ubuntu1) ,&`".

    wifi@wifi-desktop:/$ sudo apt-get install chillispot

    6O".-,-. +7+ .d- ,.)- IP address of radius server 1: 127.0.0.1 Radius shared secret: sharedsecret Ethernet interface for DHCP to listen: eth0 URL for UAM server: https://10.0.134.1/cgi-bin/hotspotlogin.cgi URL for UAM homepage: http://10.0.134.1/welcome.html

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    13

    Shared password between chillispot and webserver: sharedsecret

    7-8 /etc/default/chillispot ,.)- wifi@wifi-desktop:/$ sudo nano /etc/default/chillispot

    0,"& ENABLED=1 ,)" 6 .8

    8 /etc/chilli.conf 0,&`".,.)- wifi@wifi-desktop:/$ sudo nano /etc/chilli.conf

    &8, .d,.)- net 10.0.134.0/24 radiusserver1 127.0.0.1 radiusserver2 127.0.0.1 radiussecret sharedsecret dhcpif eth0 uamserver https://10.0.134.1/cgi-bin/hotspotlogin.cgi uamhomepage http://10.0.134.1/welcome.html uamsecret sharedsecret uamlisten 10.0.134.1

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    14

    `8 firewall.iptables .0,&`".,.)- wifi@wifi-desktop:/$ sudo cp /usr/share/doc/chillispot/firewall.iptables /etc/init.d/chilli.iptables wifi@wifi-desktop:/$ sudo chmod a+x /etc/init.d/chilli.iptables wifi@wifi-desktop:/$ sudo ln /etc/init.d/chilli.iptables /etc/scS.d/S41chilli.iptables

    &8 /etc/init.d/chilli.iptables 0,&`".,.)- wifi@wifi-desktop:/$ sudo nano /etc/init.d/chilli.iptables

    `,& 8 )-)"+/,)" 19 + 20 EXTIF="eth1" INTIF="eth0"

    &`". )-!"". firewall `. wifi@wifi-desktop:/$ sudo /etc/init.d/chilli.iptables

    `8 hotspotlogin.cgi .0,&`".,.)- wifi@wifi-desktop:/$ sudo mkdir p /var/www/secure/cgi-bin wifi@wifi-desktop:/$ zcat c /usr/share/doc/chillispot/hotspotlogin.cgi.gz | sudo tee /var/www/secure/cgi-bin/hotspotlogin.cgi wifi@wifi-desktop:/$ sudo chmod a+x /var/www/secure/cgi-bin/hotspotlogin.cgi

    &8 /var/www/secure/cgi-bin/hotspotlogin.cgi 0,&`".,.)- wifi@wifi-desktop:/$ sudo nano /var/www/secure/cgi-bin/hotspotlogin.cgi

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    15

    comment +)" Password .++/,)" 27 + 31,.)- $uamsecret = "sharedsecret"; $userpassword=1;

    .8 /var/www/welcome.html !"P`.,&`". sudo nano /var/www/welcome.html 0,7),. .

    Welcome to Chilli Hotspot, Wireless Network. TESTING ONLY Welcome to Chilli Hotspot, Wireless Network. You are connected to an authentication and restricted network access point. Click here to login Enjoy.

    Q. chillispot.png ,0,756 . ,&`".,.)-

    wifi@wifi-desktop:/$ wget http://mamboeasy.psu.ac.th/~wiboon.w/images/stories/chillispot/chillispot.png

    &,8)- /var/www/ ,&`".,.)-

    wifi@wifi-desktop:/$ sudo cp chillispot.png /var/www/

    6O".7+,5,.()" -2

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    16

    ()" -2 .5 Welcome

    "."`.. ChilliSpot ,&`".

    wifi@wifi-desktop:/$ sudo /etc/init.d/chillispot start

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    17

    5. 214K-7 (L7)$FM4+;261K7L2,1+2 -)-7+.!" %/668+7,&! )",!" 5)" 1 ,.,.()" -1 6O".-.& .67+ . )" 0,")-.& )"`&},.)- 1. SSID .&! -.P!" Chilli-Hotspot 2. Channel ! .}}/&+(,)",-. 3. IP address !6),,768+7,&! +&!".@)768+ 6O".!" 668+7,&! !"!" &!".@&! +,56.56,d +7+,.5 Welcome ,.()" -2 !"&. Click here to login 7+, Web Login ,.()" -3

    ()" -3 Web Login . ChilliSpot

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    18

    -)- Username + Password . root ! test 6O"..O--,-. Ubuntu Linux &% Login 7+Q&! , 0,+7+,.Q+. Login . Logout ,.()" -4

    ()" -4 ,.Q+. Login +!"-%,.+.7+ &. Logout !"7+6O".7+),.Q/ Logout . Login !".)&-. ,.,.()" -5

    ()" -5 ,.Q+. Logout

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    19

    6. 21&1/67B'!K-7 Login M4+P2+7 0$Q0+M4+R2 MySQL [26], [27] .)"P Username + Password 6O".P root .&!".68. 6O"..7.7+.).a. Username + Password O- !"[email protected]` ,.-7O..`&8!"+7,&! ..a@6O"..O- 68 MySQL 6O".)-,.)-

    ,-.68",.)- wifi@wifi-desktop:/etc/freeradius$ sudo apt-get install freeradius-mysql

    .a radius !", 0,&`".,.)- wifi@wifi-desktop:/etc/freeradius$ mysql -uroot -p Enter password: mysqladminsecret mysql> CREATE DATABASE radius; mysql> quit

    ``0&..7!-a. FreeRADIUS ,.)- wifi@wifi-desktop:/$ zcat /usr/share/doc/freeradius/examples/mysql.sql.gz | mysql -u root -p radius

    !"+ Password P mysqladminsecret )",-.&-.

    ,-.6857 LAMP

    7- "})@.a!" radius ,.)- wifi@wifi-desktop:/$ mysql -u root -p

    mysql> GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'mysqladminsecret';

    mysql> FLUSH PRIVILEGES; mysql> quit

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    20

    8 /etc/freeradius/sql.conf + /etc/freeradius/radiusd.conf ,.)- wifi@wifi-desktop:/etc/freeradius$ sudo nano -w /etc/freeradius/sql.conf

    &8+/,)" 20-25 P,.)- # Connect info server = "localhost" login = "radius" password = "mysqladminsecret"

    # Database table configuration radius_db = "radius" wifi@wifi-desktop:/etc/freeradius$ sudo nano -w /etc/freeradius/radiusd.conf

    authorize &8+/,)" 1863-1870 P,.)- 0, &!". # &` files +&!". # &` sql

    # # Read the 'users' file # files

    # # Look in an SQL database. The schema of the database # is meant to mirror the "users" file. # # See "Authorization Queries" in sql.conf sql

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    21

    accounting &!". # )- # # Accounting. Log the accounting data. # accounting { # # Create a 'detail'ed log of the packets. # Note that accounting requests which are proxied # are also logged in the detail file. detail # daily # Update the wtmp file # # If you don't use "radlast", you can delete this line. # unix # # For Simultaneous-Use tracking. # # Due to packet losses in the network, the data here # may be incorrect. There is little we can do about it. # radutmp # sradutmp # Return an address to the IP Pool when we see a stop record. # main_pool # sqlippool #

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    22

    # Log traffic to an SQL database. # # See "Accounting queries" in sql.conf sql # # Instead of sending the query to the SQL server, # write it into a log file. # # sql_log # Cisco VoIP specific bulk accounting # pgsql-voip } session `,& login ,). 1 &-. &!". # , radutmp +&!". # 7, sql # Session database, used for checking Simultaneous-Use. Either the radutmp # or rlm_sql module can handle this. # The rlm_sql module is *much* faster session { # radutmp # # See "Simultaneous Use Checking Querie" in sql.conf sql }

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    23

    `,& Simultaneous-login ,&`". wifi@wifi-desktop:/etc/freeradius$ sudo nano /etc/freeradius/sql.conf ,)" 299 - 302 &!". # 7 simul_count_query

    # Uncomment simul_count_query to enable simultaneous use checking simul_count_query = "SELECT COUNT(*) \ FROM ${acct_table1} \ WHERE UserName='%{SQL-User-Name}' \ AND AcctStopTime = 0"

    ."@!" mysqltest +) Password P testsecret .a0,&`".,.)-

    wifi@wifi-desktop:/etc/freeradius$ mysql -uroot -p Enter password: mysqladminsecret mysql> use radius;

    mysql> INSERT INTO radcheck (UserName, Attribute, Op, Value) VALUES ('mysqltest', 'Password', '==', 'testsecret');

    mysql> quit

    7- restart FreeRADIUS ,&`". wifi@wifi-desktop:/etc/freeradius$ sudo /etc/init.d/freeradius restart

    ,7. FreeRADIUS , Username + Password )""+ ,&`".

    wifi@wifi-desktop:/etc/freeradius$ sudo radtest mysqltest testsecret 127.0.0.1 0 sharedsecret

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    24

    7+,@,.)- ,. Q77.a)".O-, Sending Access-Request of id 152 to 127.0.0.1 port 1812 User-Name = "mysqltest" User-Password = "testsecret" NAS-IP-Address = 255.255.255.255 NAS-Port = 0 rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=152, length=20

    7-,,.+&! 0, Login , Username + Password )"".a 7+.Q.&! ,!/))" Login , Username + Password . root

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    25

    7. 21(%(:;C7B(#).1# phpMyPrepaid )$F&1/67B'!K-7M4+;21L. [25], [26], [29] )-7+ QO.,-.68 phpMyPrepaid !"`)"7,a@. 0, phpMyPrepaid 7+.+7,a@.)"..68 MySQL 6O"..)"@ Q.+7,&! a,. , 7O.!).&8+,-.68 phpMyPrepaid !"Q., 0,)-,.)-

    a radius ,)",-)"@ 0,&`".,.)- wifi@wifi-desktop:/etc/freeradius$ mysql -u root -p Enter password: mysqladminsecret mysql> DROP DATABASE radius; mysql> quit

    .a !" phpmyprepaid 0,&`".,.)- wifi@wifi-desktop:/etc/freeradius$ mysql -u root -p Enter password: mysqladminsecret

    mysql> CREATE DATABASE phpmyprepaid;

    mysql> GRANT ALL PRIVILEGES ON phpmyprepaid.* to 'phpmyprepaid'@'localhost' IDENTIFIED BY 'prepaidadminsecret';

    mysql> FLUSH PRIVILEGES;

    mysql> quit

    8 /etc/freeradius/sql.conf ,.)- wifi@wifi-desktop:/etc/freeradius$ sudo nano sql.conf

    &8+/,)" 20-25 P,.)-

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    26

    # Connect info server = "localhost" login = "phpmyprepaid" password = "prepaidadminsecret"

    # Database table configuration radius_db = "phpmyprepaid"

    7- restart FreeRADIUS ,&`". wifi@wifi-desktop:/etc/freeradius$ sudo /etc/init.d/freeradius restart

    8 /etc/freeradius/radiusd.conf ,.)- wifi@wifi-desktop:/etc/freeradius$ sudo nano /etc/freeradius/radiusd.conf

    " sqlcounter )"+/,)" 1461 ,.)- sqlcounter noresetcounter { counter-name = Max-All-Session-Time check-name = Max-All-Session sqlmod-inst = sql key = User-Name reset = never query = "SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{%k}'" }

    +"&)"+/,)" 1896 (%,. authorize) ,.)- # Append for sql counter noresetcounter dailycounter monthlycounter

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    27

    7- restart FreeRADIUS )&-.,&`".

    wifi@wifi-desktop:/etc/freeradius$ sudo /etc/init.d/freeradius restart

    .8 dictionary.chillispot ,) /etc/freeradius ,.)- wifi@wifi-desktop:/etc/freeradius$ sudo nano /etc/freeradius/dictionary.chillispot

    )&,.)-

    # # ChilliSpot (and CoovaChilli) captive portal # http://coova.org/wiki/index.php/CoovaChilli # # $Id: dictionary.chillispot,v 1.3 2007/09/24 16:16:22 dwbird Exp $ #

    VENDOR ChilliSpot 14559

    BEGIN-VENDOR ChilliSpot

    ATTRIBUTE ChilliSpot-Max-Input-Octets 1 integer ATTRIBUTE ChilliSpot-Max-Output-Octets 2 integer ATTRIBUTE ChilliSpot-Max-Total-Octets 3 integer ATTRIBUTE ChilliSpot-Bandwidth-Max-Up 4 integer ATTRIBUTE ChilliSpot-Bandwidth-Max-Down 5 integer ATTRIBUTE ChilliSpot-Config 6 string ATTRIBUTE ChilliSpot-Lang 7 string ATTRIBUTE ChilliSpot-Version 8 string ATTRIBUTE ChilliSpot-OriginalURL 9 string ATTRIBUTE ChilliSpot-Acct-View-Point 10 integer ATTRIBUTE ChilliSpot-Require-UAM 11 string ATTRIBUTE ChilliSpot-Require-Splash 12 string

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    28

    ATTRIBUTE ChilliSpot-Route-To-Interface 13 string

    ATTRIBUTE ChilliSpot-DHCP-Vendor-Class-Id 50 string ATTRIBUTE ChilliSpot-DHCP-Client-Id 51 string ATTRIBUTE ChilliSpot-DHCP-Options 52 string ATTRIBUTE ChilliSpot-DHCP-Filename 53 string ATTRIBUTE ChilliSpot-DHCP-Hostname 54 string ATTRIBUTE ChilliSpot-DHCP-Server-Name 55 string ATTRIBUTE ChilliSpot-DHCP-Client-FQDN 56 string ATTRIBUTE ChilliSpot-DHCP-Parameter-Request-List 57 string

    VALUE ChilliSpot-Acct-View-Point ChilliSpot-NAS-View-Point 1 VALUE ChilliSpot-Acct-View-Point ChilliSpot-Client-View-Point 2

    # Configuration management parameters (ChilliSpot Only) ATTRIBUTE ChilliSpot-UAM-Allowed 100 string ATTRIBUTE ChilliSpot-MAC-Allowed 101 string ATTRIBUTE ChilliSpot-Interval 102 integer

    # Inline with RFC 2882 use of VSE-Authorize-Only for remote config # Note that 14559 = 0x38df is used as prefix for the VSE. # This is recognized as the best (but bad) way of doing VSEs. # (ChilliSpot Only - CoovaChilli uses Service-Type = Administrative-User) VALUE Service-Type ChilliSpot-Authorize-Only 0x38df0001

    END-VENDOR ChilliSpot

    "&8 /etc/freeradius/dictionary )& )-)"+/,)" 15

    $INCLUDE /usr/share/freeradius/dictionary $INCLUDE /etc/freeradius/dictionary.chillispot

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    29

    7- restart FreeRADIUS )&-.,&`". wifi@wifi-desktop:/etc/freeradius$ sudo /etc/init.d/freeradius restart

    ,-.68 php5 ,&`".,.)- wifi@wifi-desktop:/etc/freeradius$ sudo apt-get install php5

    ,-.68 rrdtool ,&`".,.)- wifi@wifi-desktop:/etc/freeradius$ sudo apt-get install rrdtool

    ,-.68 phpMyPrepaid 0,,0,87. )- http://downloads.sourceforge.net/phpmyprepaid/phpmyprepaidRC3.tgz ,&`". wget 5,)`. /home/wifi &`".,.)-

    wifi@wifi-desktop:~$ cd /var/www wifi@wifi-desktop:/var/www$ sudo tar -zxvf ~/phpmyprepaidRC3.tgz wifi@wifi-desktop:/var/www$ sudo chown -R www-data:www-data /var/www/phpmyprepaid

    !"-,. 57- )"&!".68+7,&! ,6 URL http://10.0.134.1/phpmyprepaid/www/install/setup.php !" -,-. 6O".7+,5 Welcome to PhpMyPrepaid Setup

    ()" -6

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    30

    ()" -6 5)"",-. phpMyPrepaid &% Start )"% . 7+ )-7.!". License ,.()" -7 &&!".Q&` I Accept & Next

    ()" -7 &`)-7.)" License

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    31

    7+ Verifying Configuration 6O".+7+,.@7&!".)"7+

    ,-. ,.()" -8 % . )} & Next !",`

    ()" -8 @7&8.&!". 7+ Environment Configuration ,.()" -9 % . )} & Next

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    32

    ()" -9 @7(,.&!".

    7+ Radius Configuration ,.()" -10 & Next

    ()" -10 7&8. RADIUS

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    33

    7+ User Interface Configuration ,.()" -11 Administrator login -.!"})@ phpmyprepaid @ &! padminsecret P )"7+.+!",-.57- +!" Administrator & Next

    ()" -11 -.& &8.+

    7+ Database Configuration ,.()" -12 Root password, Database name + Database Password P mysqladminsecret, phpmyprepaid + Password P prepaidadminsecret )"`,.a & Next

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    34

    ()" -12 -.& &8, a)".

    +7+,.Q+.. Database !"% .57& Next

    ()" -13 ,.Q+..a

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    35

    7--.& )" Location ,.()" -14 & Next

    ()" -14 -.& Location

    -.& )" general configuration ,.()" -15 & Next

    ()" -15 -.& general configuration

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    36

    7+, .,.()" -16 & You can now return to your configured interface.

    ()" -16 Installation Finished

    7+ )"Q Login + ,.()" -17 6O".7+)&7.,))",-. +)"0,.,)

    ()" -17 Installation Finished

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    37

    &`".!",),. 5)" home directory )"7+-. +)"0,.,),.)-

    wifi@wifi-desktop:/etc$ sudo mv /var/www/phpmyprepaid/www/install/ ~ wifi@wifi-desktop:/var/www/phpmyprepaid$ sudo chmod 755 /var/www/phpmyprepaid/www

    P57--,-.68 phpMyPrepaid

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    38

    8. 21M4+;2C7B(#).1# phpMyPrepaid !"`,-.68 phpMyPrepaid 57 7+Q.,0,,6+ URL http://10.0.134.1/phpmyprepaid/www/ 7+,)" Username + Password )"-()" -11 &% Login

    ()" -18 Login .+ phpMyPrepaid

    7+Q .+, ,.()" -19

    ()" -19 .7,})@, phpMyPrepaid

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    39

    Q.,6! ( Create Accounts 7+)!.})@, ,.()" -20

    ()" -20 Create Accounts .})@ !"! Timed Accounts 7+Q.})@)"Q.,)"`,+( 30 ) + 10 "0. 0,Q`,7`}))".., !"& CREATE CARDS +7+.})@0,0 ,.()" -21

    ()" -21 .})@ Timed Accounts

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    40

    })@ Octets Accounts 7+P.})@)"Q.,7`)"`, ., 20 Mega Octets ! 20 Giga Octets P +),. Billing Plan )"`, . 0,Q`,7`}))".., ,) ++7+.})@0,0 ,.,.()" -22

    ()" -22 .})@ Octets Accounts })@ Expiration Accounts Q`,, })Q.,QO.!",

    Billing Plan )"`, ++7+.})@0,0

    7`)". ,.,.()" -23

    ()" -23 .})@ Expiration Accounts `})@ Subscriber Timed 7+P.})@)"Q`, Username + Password )".., +Q )")".@.})-, 0,7+) .!"-% & ),, -.Q`,7`

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    41

    session )"Q. +Q7`,, upload + download , ,.,.()" -24

    ()" -24 .})@ Subscriber Time })@ Mac Account 7+P`,})@0,.. MAC address .&!".@ 6O". .)"`,57+ Q., P7

    MAC address filtering ,.()" -25

    ()" -25 .})@ Mac Account

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    42

    .})@)" . P})@ Billing Plan )"`,O-0,68 phpMyPrepaid 6O".+.Q@,Q. Billing Plan O-,&. 0,7+.!. Billing Plan .,6! 6O".Q. Billing Plan , 3 , Time, Octets + Expiration ,.,.()" -26

    ()" -26 . Billing Plan " !"&! Add Billing Plan ,6! ( Billing Plan ,.()" -27

    ()" -27 . Billing Plan

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    43

    7+Q`,+),. Billing Plan ,,.()" -28 +()" -29 , !". Billing Plan, +(. Billing Plan, & 7 . + Account, 7` session )"Q.,, 7`.%,)"Q upload ,, ,%.}) +}) +Q7`,, upload + download

    ()" -28 +),.. Billing Plan (1)

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    44

    ()" -29 +),.. Billing Plan (2) .7,`.})@+( . Q,+),.})@+(.}), ,.,.()" -30 6O".P,.}) Timed Accounts )") + 0,& Timed Accounts ( View Accounts ,6!

    ()" -30 ,.})@ Timed Accounts )")+ +Q,.@)".-d, ,.,.()" -31 0,& Today ( Useful View Accounts ,6!

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    45

    ()" -31 ,.})@-.,)". 1 ,..Q

    .+ 0,& General statistics ( Statistics ,.()" -32

    ()" -32 Q

    .+ ,.Q

    .0,+(. Account + Billing Plan ,.,.()" -33

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    46

    ()" -33 Q

    . Account + Billing Plan 7)-.Q7,a+, 0,& Database mgt ,6! ,.()" -34

    ()" -34 7,a.+

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    47

    21(1.R7/W2+7Q%!$2

    tail /var/log/freeradius/radius.log @)",. `. Tue Oct 20 22:02:15 2009 : Info: rlm_sql (sql): Attempting to connect to phpmyprepaid@localhost:/phpmyprepaid Tue Oct 20 22:02:15 2009 : Info: rlm_sql_mysql: Starting connect to MySQL server for #0 Tue Oct 20 22:02:15 2009 : Info: rlm_sql_mysql: Starting connect to MySQL server for #1 Tue Oct 20 22:02:15 2009 : Info: rlm_sql_mysql: Starting connect to MySQL server for #2 Tue Oct 20 22:02:15 2009 : Info: rlm_sql_mysql: Starting connect to MySQL server for #3 Tue Oct 20 22:02:15 2009 : Info: rlm_sql_mysql: Starting connect to MySQL server for #4 Tue Oct 20 22:02:16 2009 : Info: Ready to process requests. @)",. .`. , Tue Oct 20 22:00:27 2009 : Error: radiusd.conf[1959] Unknown Auth-Type "unix" in authenticate section. 211 FreeRADIUS M debug mode 4L.M21.%612FW#W22W(X

    sudo /etc/init.d/freeradius stop sudo freeradius -X ,% Ctrl-C !" @)",. debug mode + FreeRADIUS `., Listening on authentication *:1812 Listening on accounting *:1813 Ready to process requests. @)",. login `57 rad_recv: Access-Request packet from host 127.0.0.1:57037, id=0, length=194 User-Name = "comiwh"

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    48

    User-Password = "alm" NAS-IP-Address = 0.0.0.0 Service-Type = Login-User Framed-IP-Address = 10.0.134.3 Calling-Station-Id = "00-13-02-69-41-FA" Called-Station-Id = "00-60-97-DB-72-40" NAS-Identifier = "nas01" Acct-Session-Id = "4adddbab00000000" NAS-Port-Type = Wireless-802.11 NAS-Port = 0 Message-Authenticator = 0xeb7fed00146470902f457c21afad1242 WISPr-Logoff-URL = "http://10.0.134.1:3990/logoff" Processing the authorize section of radiusd.conf modcall: entering group authorize for request 0 modcall[authorize]: module "preprocess" returns ok for request 0 modcall[authorize]: module "chap" returns noop for request 0 modcall[authorize]: module "mschap" returns noop for request 0 rlm_realm: No '@' in User-Name = "comiwh", looking up realm NULL rlm_realm: No such realm "NULL" modcall[authorize]: module "suffix" returns noop for request 0 rlm_eap: No EAP-Message, not doing EAP modcall[authorize]: module "eap" returns noop for request 0 radius_xlat: 'comiwh' rlm_sql (sql): sql_set_user escaped user --> 'comiwh' radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radcheck WHERE Username = 'comiwh' ORDER BY id' rlm_sql (sql): Reserving sql socket id: 4 radius_xlat: 'SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radg

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    49

    roupcheck.op FROM radgroupcheck,usergroup WHERE usergroup.Username = 'comiwh' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id' radius_xlat: 'SELECT id, UserName, Attribute, Value, op FROM radreply WHERE Username = 'comiwh' ORDER BY id' radius_xlat: 'SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE usergroup.Username = 'comiwh' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id' rlm_sql (sql): Released sql socket id: 4 modcall[authorize]: module "sql" returns ok for request 0 modcall[authorize]: module "pap" returns updated for request 0 rlm_sqlcounter: Entering module authorize code sqlcounter_expand: 'SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='%{User-Name}'' radius_xlat: 'SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='comiwh'' sqlcounter_expand: '%{sql:SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='comiwh'}' radius_xlat: Running registered xlat function of module sql for string 'SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='comiwh'' rlm_sql (sql): - sql_xlat radius_xlat: 'comiwh' rlm_sql (sql): sql_set_user escaped user --> 'comiwh' radius_xlat: 'SELECT SUM(AcctSessionTime) FROM radacct WHERE UserName='comiwh'' rlm_sql (sql): Reserving sql socket id: 3 rlm_sql (sql): - sql_xlat finished rlm_sql (sql): Released sql socket id: 3 radius_xlat: '391' rlm_sqlcounter: (Check item - counter) is greater than zero rlm_sqlcounter: Authorized user comiwh, check_item=1800, counter=391 rlm_sqlcounter: Sent Reply-Item for user comiwh, Type=Session-Timeout, value=1409

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    50

    modcall[authorize]: module "noresetcounter" returns ok for request 0 rlm_sqlcounter: Entering module authorize code rlm_sqlcounter: Could not find Check item value pair modcall[authorize]: module "dailycounter" returns noop for request 0 rlm_sqlcounter: Entering module authorize code rlm_sqlcounter: Could not find Check item value pair modcall[authorize]: module "monthlycounter" returns noop for request 0 modcall: leaving group authorize (returns updated) for request 0 rad_check_password: Found Auth-Type pap auth: type "PAP" Processing the authenticate section of radiusd.conf modcall: entering group PAP for request 0 rlm_pap: login attempt with password alm rlm_pap: Using clear text password "alm". rlm_pap: User authenticated successfully modcall[authenticate]: module "pap" returns ok for request 0 modcall: leaving group PAP (returns ok) for request 0 Sending Access-Accept of id 0 to 127.0.0.1 port 57037 Session-Timeout = 1409 Finished request 0 Going to the next request --- Walking the entire request list --- Waking up in 6 seconds... rad_recv: Accounting-Request packet from host 127.0.0.1:35889, id=6, length=131 Acct-Status-Type = Start User-Name = "comiwh" Calling-Station-Id = "00-13-02-69-41-FA" Called-Station-Id = "00-60-97-DB-72-40" NAS-Port-Type = Wireless-802.11 NAS-Port = 0

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    51

    NAS-Port-Id = "00000000" NAS-IP-Address = 0.0.0.0 NAS-Identifier = "nas01" Framed-IP-Address = 10.0.134.3 Acct-Session-Id = "4adddbab00000000" Processing the preacct section of radiusd.conf modcall: entering group preacct for request 1 modcall[preacct]: module "preprocess" returns noop for request 1 rlm_acct_unique: Hashing 'NAS-Port = 0,Client-IP-Address = 127.0.0.1,NAS-IP-Address = 0.0.0.0,Acct-Session-Id = "4adddbab00000000",User-Name = "comiwh"' rlm_acct_unique: Acct-Unique-Session-ID = "36cfa1c321666c81". modcall[preacct]: module "acct_unique" returns ok for request 1 rlm_realm: No '@' in User-Name = "comiwh", looking up realm NULL rlm_realm: No such realm "NULL" modcall[preacct]: module "suffix" returns noop for request 1 modcall[preacct]: module "files" returns noop for request 1 modcall: leaving group preacct (returns ok) for request 1 Processing the accounting section of radiusd.conf modcall: entering group accounting for request 1 radius_xlat: '/var/log/freeradius/radacct/127.0.0.1/detail-20091020' rlm_detail: /var/log/freeradius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /var/log/freeradius/radacct/127.0.0.1/detail-20091020 modcall[accounting]: module "detail" returns ok for request 1 radius_xlat: 'comiwh' rlm_sql (sql): sql_set_user escaped user --> 'comiwh' radius_xlat: ' INSERT INTO radacct (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol,

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    52

    FramedIPAddress, AcctStartDelay, AcctStopDelay, XAscendSessionSvrKey) VALUES ('4adddbab00000000', '36cfa1c321666c81', 'comiwh', '', '0.0.0.0', '0', 'Wireless-802.11', '2009-10-20 22:48:28', '0', '0', '', '', '', '0', '0', '00-60-97-DB-72-40', '00-13-02-69-41-FA', '', '', '', '10.0.134.3', '0', '0', '')' rlm_sql (sql): Reserving sql socket id: 2 rlm_sql_mysql: MYSQL check_error: 1054 received rlm_sql (sql): Couldn't insert SQL accounting START record - Unknown column 'XAscendSessionSvrKey' in 'field list' radius_xlat: 'UPDATE radacct SET AcctStartTime = '2009-10-20 22:48:28', AcctStartDelay = '', ConnectInfo_start = '' WHERE AcctSessionId = '4adddbab00000000' AND UserName = 'comiwh' AND NASIPAddress = '0.0.0.0'' rlm_sql (sql): Released sql socket id: 2 modcall[accounting]: module "sql" returns ok for request 1 modcall: leaving group accounting (returns ok) for request 1 Sending Accounting-Response of id 6 to 127.0.0.1 port 35889 Finished request 1 Going to the next request Cleaning up request 1 ID 6 with timestamp 4adddbcc Waking up in 6 seconds... --- Walking the entire request list --- Cleaning up request 0 ID 0 with timestamp 4adddbcc Nothing to do. Sleeping until we see a request. @)",. logout `57 rad_recv: Accounting-Request packet from host 127.0.0.1:35889, id=7, length=179 Acct-Status-Type = Stop User-Name = "comiwh" Calling-Station-Id = "00-13-02-69-41-FA" Called-Station-Id = "00-60-97-DB-72-40" NAS-Port-Type = Wireless-802.11

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    53

    NAS-Port = 0 NAS-Port-Id = "00000000" NAS-IP-Address = 0.0.0.0 NAS-Identifier = "nas01" Framed-IP-Address = 10.0.134.3 Acct-Session-Id = "4adddbab00000000" Acct-Input-Octets = 4475 Acct-Output-Octets = 11306 Acct-Input-Gigawords = 0 Acct-Output-Gigawords = 0 Acct-Input-Packets = 41 Acct-Output-Packets = 37 Acct-Session-Time = 83 Acct-Terminate-Cause = User-Request Processing the preacct section of radiusd.conf modcall: entering group preacct for request 2 modcall[preacct]: module "preprocess" returns noop for request 2 rlm_acct_unique: Hashing 'NAS-Port = 0,Client-IP-Address = 127.0.0.1,NAS-IP-Address = 0.0.0.0,Acct-Session-Id = "4adddbab00000000",User-Name = "comiwh"' rlm_acct_unique: Acct-Unique-Session-ID = "36cfa1c321666c81". modcall[preacct]: module "acct_unique" returns ok for request 2 rlm_realm: No '@' in User-Name = "comiwh", looking up realm NULL rlm_realm: No such realm "NULL" modcall[preacct]: module "suffix" returns noop for request 2 modcall[preacct]: module "files" returns noop for request 2 modcall: leaving group preacct (returns ok) for request 2 Processing the accounting section of radiusd.conf modcall: entering group accounting for request 2 radius_xlat: '/var/log/freeradius/radacct/127.0.0.1/detail-20091020'

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    54

    rlm_detail: /var/log/freeradius/radacct/%{Client-IP-Address}/detail-%Y%m%d expands to /var/log/freeradius/radacct/127.0.0.1/detail-20091020 modcall[accounting]: module "detail" returns ok for request 2 radius_xlat: 'comiwh' rlm_sql (sql): sql_set_user escaped user --> 'comiwh' radius_xlat: ' UPDATE radacct SET AcctStopTime = '2009-10-20 22:49:51', AcctSessionTime = '83', AcctInputOctets = '0'

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    55

    Nothing to do. Sleeping until we see a request. 21)+, error 3-!/M debug mode

    rlm_sql (sql): Couldn't insert SQL accounting START record - Unknown column 'XAscendSessionSvrKey' in 'field list' ,. )8, XAscendSessionSvrKey ,0,"8,)-. radacct ,.)- mysql -u root -p Enter password:

    Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 55 Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)

    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

    mysql> show databases; +--------------------+

    | Database | +--------------------+

    | information_schema | | mysql | | phpmyprepaid | +--------------------+

    3 rows in set (0.00 sec)

    mysql> use phpmyprepaid;

    mysql> show tables; +------------------------+

    | Tables_in_phpmyprepaid | +------------------------+

    | AP | | BillingPlan | | ap_config | | apache_config | | areacode | | badusers | | bpradiusprofile | | cards_tpl | | chillispot | | countrycode | | cron_config | | dns_config | | firewall_config | | general_opt | | group_template | | isocode | | locations | | mtotacct | | nas | | paypal |

  • ChilliSpot + Ubuntu + phpmyprepaidRC3 ,

    56

    | pdf_print | | phpmyprepaid | | radacct | | radcheck | | radgroupcheck | | radgroupreply | | radius_attribute | | radius_config | | radius_template | | radiusprofile | | radiusprofile_template | | radpostauth | | radreply | | redirect_pages | | resources | | securelogin_table | | session | | sitepages | | ssh_config | | totacct | | user | | user_location | | usergroup | | userinfo | | wlogin | | wlogin_freeurl | | wlogin_popup_list | +------------------------+

    47 rows in set (0.01 sec)

    mysql> ALTER TABLE radacct ADD XAscendSessionSvrKey VARCHAR(10); Query OK, 4 rows affected (0.01 sec) Records: 4 Duplicates: 0 Warnings: 0

    mysql> quit Bye