Facebook Developers Network

Join MamakSpot Fb Developer Network


New Project unleashed !!!
Build You Own SMS System at home
http://cakesms.blogspot.com

Introduction to MamakSpot



Watch the demo video here

What is MamakSpot ?
A wifi controller. You can control your wifi users using a web based management system.

Features ? You can control the users by
1.by maximum usage hours
2.by expire date
3.by upload/download speed in kbps

How many versions of MamakSpot ?
1. MamakSpot Prepaid Edition
2. MamakSpot Manage Edition

MamakSpot Prepaid Edition ?
MamakSpot prepaid is targeted to people who wants to run prepaid business using Wifi. Admin can create X numbers of prepaid and registered or public users can buy the prepaid for their internet usage.

Mamakspot Manage Edition ?
This is fork from version 1 of MamakSpot. User must be registered first. Admin the, can select which user have the rights to surf the net. Admin simply enable particular user with some credentials like
1. upload/bandwith speed
2. Expiry date
Admin can check every connected user internet history like :
1. When he/she online
2. Number of hours online by day,month,year
3. Total bandwidth downloaded/uploaded
4. Sites visited
Who are the developer for MamakSpot ?
Currently, I'm the only one doing the RnD. From understanding how Radius server works to Web Management Interface. I can be contacted at 014.6412.911 ( Malaysia ) or by email at azril.nazli@gmail.com


Mamakspot V1 is free ( http://code.google.com/p/mamakspot/ )

Wednesday, April 16, 2008

Tutorial 5: Install Coova Chilli

Coova Chilli adalah server untuk mengawal user.coova akan mendapatkan data dari server radius dan akan check samaada pengguna yang ingin login mempunyai akaun, status aktif atau tidak. Jika user failed dari segi memberi password atau tidak wujud dalam sistem atau status == reject, Coova tidak membenarkan user tersebut dari masuk ke dalam sistem.

Sekiranya user berjaya masuk dalam sistem, Radius server bersama Coova akan mengawasi user tersebut dan akan membuat accounting dari segi jumlah masa online,jumlah kilobyte data download upload, ip range yang diberi.

Coova juga berfungsi memberikah IP secara DHCP kepada connected clients.

Harap anda membaca documentation dahulu di site Coova Chilli : http://coova.org/wiki/index.php/CoovaChilli

Saya menggunakan Coova Chilli versi 1.0.11

Doanload source code : http://ap.coova.org/chilli/coova-chilli-1.0.11.tar.gz

Untar : tar zxvf coova-chilli-1.0.11.tar.gz
Configure : ./configure
Make : make
Install : make install

Setelah install, kita kena configure Coova untuk menggunakan setting radius server FreeRadius. Dalam tutorial 4, kita berjaya authenticate user "mankukhayun" dengan password "abc123"

jadi perlu ingat setting radius di bawah
radius ip : 127.0.0.1
nas secret : testing123
port acct : 1812
test user account : mankukhayun
test user password : abc123
IP eth1 : 10.0.0.1

1. Edit fail configuration Coova di vi /usr/local/etc/chilli/config

vi /usr/local/etc/chilli/config

Ubah data di dalam fail config

# -*- /bin/sh -*-
#
# Coova-Chilli Default Configurations.
# To customize, copy this file to /usr/local/etc/chilli/config
# and edit to your liking. This is included in shell scripts
# that configure chilli and related programs before file 'config'.


###
# Local Network Configurations
#

HS_WANIF=eth0 # WAN Interface toward the Internet
HS_LANIF=eth1 # Subscriber Interface for client devices
HS_NETWORK=10.0.0.1 # HotSpot Network (must include HS_UAMLISTEN)
HS_NETMASK=255.255.255.0 # HotSpot Network Netmask
HS_UAMLISTEN=10.0.0.1 # HotSpot IP Address (on subscriber network)
HS_UAMPORT=3990 # HotSpot Port (on subscriber network)

# HS_DYNIP=
# HS_DYNIP_MASK=255.255.255.0
# HS_STATIP=
# HS_STATIP_MASK=255.255.255.0
# HS_DNS_DOMAIN=
# HS_DNS1=
# HS_DNS2=

###
# HotSpot settings for simple Captive Portal
#
HS_NASID=hotspot
#HS_UAMSECRET=testing123
HS_RADIUS=127.0.0.1
# HS_RADIUS2=rad01.coova.org
HS_RADSECRET=testing123
# HS_UAMALLOW=coova.org

# Put entire domains in the walled-garden with DNS inspection
# HS_UAMDOMAINS=".paypal.com,.paypalobjects.com"

# Optional initial redirect and RADIUS settings
# HS_SSID= # To send to the captive portal
# HS_NASMAC= # To explicitly set Called-Station-Id
# HS_NASIP= # To explicitly set NAS-IP-Address

# The server to be used in combination with HS_UAMFORMAT to
# create the final chilli 'uamserver' url configuration.
HS_UAMSERVER=10.0.0.1

Save fail tersebut dan kita akan runningkan daemon chilli tersebut. laksanakan command di bawah

/usr/local/etc/init.d/chilli start


Pastikan apache web server anda sedang berjalan dan berfungsi. Kebiasaannya Apache Web Server didatangkan sekali dengan Centos. Jika anda tidak mempunyai Apache web server , sila install dahulu

Secara default, folder webroot apache terletak di path ini : /var/www/html
Folder untuk menyimpan fail cgi pula terletak di sini : /var/www/cgi-bin

Coova Chilli menggunakan fail hotspotlogin.cgi untuk authenticate user. Fail tersebut di datangkan sekali dengan source tarball yang anda telah download


[root@hotspot uam]# find / | grep 'hotspotlogin.cgi'
/root/coova/coova-chilli-1.0.11/doc/hotspotlogin.cgi


Salin fail tersebut ke dalam folder cgi-bin di /var/www/cgi-bin
Ubah permission fail tersebut

chmod +x hotspotlogin.cgi


Mari kita cuba invoke hotspotlogin.cgi menggunakan web browser. Halakan web browser anda ke http://192.168.1.2/cgi-bin/hotspotlogin.cgi

Sepatutnya anda akan menerima page seperti di dalam gambar rajah di bawah



Seterusnya kita perlu buat satu page UAM. UAM atau dikenali sebagai Universal Access Method ialah page yang serve login form dan juga status.

Anda perlu download fail ini http://protonmania.com/freeradius/uam.tar.gz
Untar fail tersebut dan copy ke folder berikut

/var/www/html/uam/

Pastikan fail-fail tersebut ada di dalam folder uam

[root@hotspot html]# ls -l /var/www/html/uam
total 20
-rw-r--r-- 1 root root 8034 Feb 23 15:47 chilliController.js
-rw-r--r-- 1 root root 1068 Dec 20 19:59 chilli.js
-rw-r--r-- 1 root root 3491 Aug 11 2007 coova.jpg
-rw-r--r-- 1 root root 1231 Mar 1 05:34 index.html
[root@hotspot html]#


Bagaimana kita hendak menguji Coova dan Radius sedang berjalan lancar ?

1.Setting TCP/IP di dalam Laptop ( atau pc ujian ) disetkan kepada DHCP ( lihat gambar rajah di bawah )


Kemudian sambungkan ke ethernet port2 Linksys di mana port 1 linksys telah disambungkan ke port ETH1 ( ip server linux ialah 10.0.0.1 )

2. Tunggu sebentar dan sepatutnya anda akan diberikan IP range 10.0.0.x secara automatik.

3. Jika anda berjaya mendapat IP, cuba surf ke internet

4. Sepatutnya anda akan ditahan dan menerima page login seperti di dalam gambar ini.

5. Masukkan username "mankukhayun" dan password "abc123" dan sepatutnya akan akan diauthenticate dan akan menerima page seperti di dalam gambar ini.

6. Anda boleh surf ke mana sahaja. Dan cuba logout menerusi status page tadi. Dan cuba untuk surf ke site lain. Sepatutnya anda akan ditahan oleh Coova Captive Portal.

7. Jika anda telah berjaya sampai ke tahap ini, secara teorinya anda berjaya mencipta HotSpot login ciptaan sendiri.

Saya menghabiskan dekat 2 bulan untuk membolehkan sistem ini dapat dibina. Jika anda gagal, sila cuba dan usaha lagi.

Tutorial seterusnya ialah saya akan mengajar bagaimana untuk menggunakan command-command Free Radius.

14 comments:

  1. Wah.... tutorial sebegini yang dicari2.. sangat mudah dipahami saya. daripada mencari di forum-forum. bingung terus. saya budak baru belajar hehehe.

    Sokong lah open-source community

    ReplyDelete
  2. Salam saudara;

    Saya dah cuba buat config utk chillispot and bila saya run:

    [root@localhost init.d]# /usr/local/etc/init.d/chilli start

    saya dpt error mcm ni pulak:
    Starting chilli: coova-chilli[4952]: options.c: 79: Invalid mask
    coova-chilli[4952]: options.c: 322: Invalid network address: /!

    Kat mana saya nak trouble shoot?

    Buat pengetahuan saudara saya install FreeRADIUS-1.1.7 + MySQL on Fedora 8
    CoovaChilli pun sama run pada same machine.

    Network diagram saya sama dgn saudara cuma instead of using Linksys hub, saya guna RUCKUS Wireless AP. Saya nak user authenticated via wireless.

    Terima Kasih saudara..
    Wassalam..

    ReplyDelete
  3. emel saya configuration chilli.cnf dan bacaan ifconfig -a

    azril.nazli@gmail.com

    ReplyDelete
  4. Wa-alai komusalam...
    Nice to see your blog, I just come to say Hi. I found you in coova forum congratulation for your success coova building.

    ReplyDelete
  5. Salam saudara;

    Saya nak ucapkan thank you very much atas pertolongan saudara masa saya nak build hotspot dulu..

    Alhamdulillah the freeradius works fine with coovachilli, dan laptop saya dpt diauthenticatekan.

    Cuma saya nak tanyer klu2 saudara pernah configure billing mechanism pada freeradius (e.g radiusd.conf.)

    Saya nak cuba buat billing mechanism di mana user dpt view bandwidth usage and how much (dalam RM)they have used, selepas user login.

    Lepastu, adakah saya patut modify database radius utk tambah column utk list down jumlah penggunaan (dlm RM) yg telah user gunakan. Ini adalah utk reference administrator.

    Terima Kasih saudara.

    p/s: Development yg saya buat ni bukan utk deployment seperti yg saudara buat. Utk RnD purposes. Tp saya nak kena produce billing mechanism supaya boleh di adopt oleh industry.

    ReplyDelete
  6. tahniah, molek benar jika saudara blogkan pengalaman install mamakspot dan share dengan pengguna yg lain.

    Mengenai billing pula, kena fikir guna PHP

    Database radius hanya membekalkan kita data sahaja seperti

    1. Jumlah masa online
    2. Jumlah saiz download
    3. Jumlah saiz bandwidth upload

    Jadi pengiraan untuk billing, katakan Ahmad telah melanggan selama 30 jam, just buat kiraan mudah guna PHP untuk kira jumlah wang yang perlu Ahmad bayar. Katakan Ahmad nak beli 100 jam prepaid, PHP kenalah kira jumlah kos untuk 100 jam, dan bila Ahmad dah bayar, sistem PHP kena update data dalam table raddacct/radcheck untuk membolehlah Ahmad activated hanya selama 100 jam

    ReplyDelete
  7. Terima kasih...

    Ada tak alternatif utk admin section?..
    - create user
    - view report(usage)

    macam dalam firmware
    http://coova.org/wordpress/index.php/2008/01/17/new-year-new-features/

    data dah ada dlm radius.. tinggal nak manipulate je... ade jumpe kat mane2 org dah buat?.. bleh share?..

    trime kasih..

    ReplyDelete
  8. cuba tengok screenshot mamakspot

    http://mamakspot.protonmania.com/hotspot/

    boleh cuba kat sana, tapi tuh demo aja..tak functional

    ReplyDelete
  9. ada perbezaan ker kalau install apache v1.3 dengan v2.
    dan step
    1. Edit fail configuration Coova di vi /usr/local/etc/chilli/config
    (tiada jumpa fail config tetapi fail default sama dengan file yg diberi)

    ReplyDelete
  10. rename default jadi config

    apache takder beza, cuma suka guna yg latest.

    ReplyDelete
  11. service "mysqld" , "httpd" , "init.d/coova" sudah bila try masuk yahoo.com dari laptop ia akan redirecting oleh coova tetapi saya dapat error

    https://10.0.0.1/app/uam/chilli?res=notyet&uamip=10.0.0.1&uamport=3990......www.yahoo.com%2f

    Not Found
    The requested URL /app/uam/chilli was not found on this server.
    Apache/2.2.3 (CentOS) Server at 10.0.0.1 Port 443

    ada apa2 yang tertinggal ker???file uam pun dah download dan bila tukar file dalam folder uam chilli.js kepada chilli redirecting coova dapat tunjukkan source code file tersebut...

    ReplyDelete
  12. Terima Kasih sebab banyak membantu terutama en. bazet. Saya beginner dalam linux dan perlu belajar linux project dalam masa yang terdekat. turtorial ini telah bantu saya belajar banyak perkara tentang Linux system. Thanks a lot. PEACE..

    ReplyDelete
  13. kenapa yer saya setup ,tapi cuma bila masuk url 192.168.1.xx dia redirect ke .../hotspotlogin.cgi .. taip url biasa tak direct.. pls help ;)

    ReplyDelete
  14. thanks bro...bgus arr tutorial nih... senang faham..

    ReplyDelete