Buat Hotspot dengan Apache, Freeradius, Chillispot, mysql dan phpmyprepaid di Ubuntu

Ok, sekarang kita lanjutin yaitu bagian penginstallan program dan mengkonfigurasinya. Sebelum dilanjutkan aku mau ngejelasin sedikit mengenai kerja programnya, pertama setiap user yang masuk kedalam hotspot kita lewat wireless dan mencoba untuk browsing internet, semuanya akan diredirect ke login username dan password yang dibuat oleh chillispot. Ketika username dan password telah dimasukkan maka sang chillispot akan menanyakan ke freeradius apakah ada username dan password yang dimasukkan oleh si user bersangkutan. Freeradius akan mencocokkan username dan password yang dimasukkan melalui database yang dibuat di mysql. Jika ada, si freeradius akan melaporkan kepada chillispot dan chillispot akan memberikan izin sehingga si user bisa surfing di internet, dan jika tidak, maka si freeradius akan melaporkan ke chillispot bahwa username dan password yang dimasukkan tidak ada, chillispot tidak akan membuka akses untuk surfing internet, dan akan meminta login ulang. Begitu seterusnya….

Sedangkan fungsi dari phpmyprepaid sendiri adalah untuk memudahkan kita dalam memanajemen database mysql. Sebenarnya sich bisa juga menggunakan dialupadmin. Tapi kupikir phpmyprepaid jauh lebih unggul dibandingkan dengan dialupadmin.

Ya kupikir penjelasannya cukup sekian sekarang kita masuk kepada tutorial….

1. Install program – program yang dibutuhkan

#apt-get install unzip

#apt-get install fakeroot

#apt-get install ssh

#apt-get install build-essential

#apt-get install rrdtool

#apt-get install snmp

#apt-get install mysql-server

#apt-get install apache2 php5 php5-mysql

#apt-get install ssl-cert

#apt-get install freeradius freeradius-mysql

#wget http://www.chillispot.info/download/chillispot_1.0_i386.deb

#dpkg –i chillispot_1.0_i386.deb

Ket:

Sewaktu menginstall mysql-server anda akan dimintai password untuk root mysql. Jika anda tidak dimintai untuk memasukkan password anda dapat membuatnya dengan perintah:

#mysqladmin -u root password ‘sangatrahasia’

2. buat file options di folder network dengan perintah

#nano /etc/network/options

— tulis sebagai berikut —

ip_forward = yes

— berakhir diatas tulisan ini —

simpan dan keluar dengan perintah:

ctrl+x, ketik y dan tekan enter

restart network dengan perintah

#/etc/init.d/networking restart

3. Edit file apache2.conf sbb:

#nano /etc/apache2/apache2.conf

— dibagian paling bawah nya ditulis —

ServerName 192.168.10.10

— berakhir diatas tulisan ini —

Simpan make perintah:

Ctrl+x ketik y dan tekan enter

ip address 192.168.10.10 hanya permisalan doang, ini tergantung dari eth0 ip anda

Restart apache2 nya:

#/etc/init.d/apache2 restart

4. Edit file php.ini sbb:

#nano /etc/php5/apache2/php.ini

Cari tulisan:

; extension=msql.so

Hilangkan tanda titik koma nya dan ganti msql.so menjadi mysql.so sbb:

extension=mysql.so

Cari juga tulisan berikut:

post_max_size = 8M

Ubah 8M menjadi 16 M:

post_max_size = 16M

Simpan dengan perintah:

Ctrl+x ketik y kemudian enter

5. ambil paket phpmyprepaid dan letakkan di folder /var/www dan ekstrak

#cd /var/www

#rm –rf apache2-default

#wget http://downloads.sourceforge.net/phpmyprepaid/phpmyprepaid04b3.tgz?modtime=1187550638&big_mirror=0

#tar –zxvf phpmyprepaid04b3.tgz

6. install program phpmyprepaid

Untuk menginstall phpmyprepaid, anda perlu menggunakan komputer desktop lain dalam satu jaringan yang terinstall mozilla firefox. Alasannya karena ada beberapa tampilan yang tidak bisa ditampilkan di web browser lain selain mozilla. Satu lagi, nyettingnya make ssh dong, biar gak repot.

Buka mozilla firefox dan arahkan addressnya ke :

http://192.168.10.10/phpmyprepaid/www/install/setup.php

aku inget lagi, ip address 192.168.10.10 hanya permisalan doang, ini tergantung dari settingan eth0 ip address anda.

Kik start.

Pilih I accept dan klik next lagi.

Perhatikan dan edit konfigurasi seperti berikut:

PhpMyPrepaid install directory : /var/www/phpmyprepaid

FreeRADIUS binary files directory : /usr/sbin

FreeRADIUS config files directory : /etc/freeradius

FreeRADIUS Dictionary directory : /usr/share/freeradius

FreeRADIUS start/stop/restart/status script : /etc/init.d/freeradius

RRDTOOL binary path : /usr/bin/rrdtool

Sudo binary path : /usr/bin/sudo

System log file path : /var/log/messages

FreeRADIUS radius.log file path : /var/log/freeradius/radius.log

Radclient command : /usr/bin/radclient

MySQL client command : /usr/bin/mysql

snmpwalk command : /usr/bin/snmpwalk

snmpget command : /usr/bin/snmpget

Klik next

Disini anda diminta untuk mem verifikasi konfigurasi.. jika ada yang belum periksa kembali apa yang kurang, dan klik recheck.. jika sudah…

Klik next lagi

Pada bagian ini anda akan diminta untuk mengkonfigurasi database, anda dapat mencontoh sebagai berikut:

Root password for Mysql : sangatrahasia

PhpMyPrepaid Database Name (phpmyprepaid) : phpmyprepaid

PhpMyPrepaid Database Password : sangatrahasia

Confirm Password : sangatrahasia

Database location (localhost) : localhost

FreeRADIUS location (localhost). *Not applicable by now : localhost

FreeRADIUS version. *Not applicable by now : 1.X

Klik next lagi

Pada bagian ini anda akan diminta untuk mengkonfigurasi user interface yaitu sebagai super administrator dalam memanajemen phpmyprepaid, anda dapat mencontoh sebagai berikut:

Administrator login for PhpMyPrepaid : pinokiook

Administrator password for PhpMyPrepaid : sangatrahasia

Confirm Password : sangatrahasia

Administrator name for PhpMyPrepaid : pinokiook

Administrator surname for PhpMyPrepaid : pinokiook

Administrator email for PhpMyPrepaid : pinokiook@yahoo.com

Administrator language for PhpMyPrepaid. *Only english is supported by now. : es

Klik next

Pada bagian ini merupakan informasi yang dilaporkan oleh phpmyprepaid dalam membuat database pada mysql

Klik next

Anda akan diminta untuk memasukkan lokasi daerah anda, contohnya sebagai berikut:

Location name : terserah

Location Domain : terserah.net

Location Country Code : Indonesia

Location Area code : —

Location City : Pekanbaru

Klik next

Installasi finish, silahkan klik interface

Pertama anda diminta untuk menghapus folder install dan mengubah hak akses folder www menjadi 755. (arti mengenai 755 cari aja di google yach, bukan disini tempatnya untuk ngejelasin itu).

#rm –rf /var/www/phpmyprepaid/www/install

#chmod 755 /var/www/phpmyprepaid/www

refresh mozilla firefox anda, anda akan melihat tampilan perbedaannya…

7. Setting chillispot

a. edit file chilli.conf

#nano /etc/chilli.conf

— contoh yang harus disetting —

net 192.168.100.0/24

dns1 202.93.32.146

dns2 202.93.32.147

radiusserver1 127.0.0.1

radiusserver2 127.0.0.1

radiussecret sangatrahasia

dhcpif eth1

uamserver https://192.168.100.1/cgi-bin/hotspotlogin.cgi

uamsecret sangatrahasia

uamlisten 192.168.100.1

— berakhir diatas tulisan ini —

Simpan make perintah:

Ctrl+x tekan y kemudian enter

Ket:

– uamlisten 192.168.100.1 disini adalah ip address eth1 yang akan dimasukkan oleh chillispot

– net 192.168.100.0/24 adalah ip address dhcp yang diberikan oleh chillispot kepada user, mulai dari 192.168.100.2 – 192.168.100.254

b. Buat file hotspotlogin.cgi di folder cgi-bin:

#cp /usr/share/doc/chillispot/hotspotlogin.cgi.gz /usr/lib/cgi-bin

#gunzip /usr/lib/cgi-bin/hotspotlogin.cgi.gz

#cd /usr/lib/cgi-bin/

#chmod 755 hotspotlogin.cgi

#nano hotspotlogin.cgi

— cari tulisan berikut —

# $uamsecret = “sangatrahasia”;

dan

# $userpassword=1;

——————————

Hilangkan tanda pagarnya menjadi:

$uamsecret = “sangatrahasia”;

dan

$userpassword=1;

Simpan make perintah:

Ctrl+x tekan y kemudian enter

c. Aktifkan firewall chillispot dan buat firewallnya agar diaktifkan setiap kali server restart:

#sh /usr/share/doc/chillispot/firewall.iptables

#cp /usr/share/doc/chillispot/firewall.iptables /etc/init.d/chilli.iptables

#chmod u+x /etc/init.d/chilli.iptables

#ln -s /etc/init.d/chilli.iptables /etc/rcS.d/S40chilli.iptables

8. Setting freeradius

a. Edit file clients.conf

#nano /etc/freeradius/clients.conf

— cari konfigurasi berikut dan modifikasi menjadi seperti ini —

client 127.0.0.1 {

secret = sangatrahasia

shortname = localhost

nastype = other

}

— berakhir diatas tulisan ini —

Simpan make perintah:

Ctrl+x tekan y kemudian enter

b. Setting file sql.conf

#nano /etc/freeradius/sql.conf

— cari konfigurasi berikut dan edit —

# Connect info

server = “localhost”

login = “phpmyprepaid”

password = “sangatrahasia”

# Database table configuration

radius_db = “phpmyprepaid”

c. edit file radiusd.conf

#nano /etc/freeradius/radiusd.conf

— cari konfigurasi berikut —

“$INCLUDE ${confdir}/sql.conf”

tambahkan dibawahnya sehingga menjadi menjadi:

“$INCLUDE ${confdir}/sql.conf”

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}'”

}

— cari konfigurasi untuk accounting dan setting menjadi seperti ini dengan cara menghilangkan tanda pagarnya, selain itu berikan tanda pagar untuk yang lain —

accounting {

unix

radutmp

sql

}

— cari juga untuk instantiate, setting dengan menghilangkan tanda pagar, seperti berikut, dan dibawah expr tambahkan noresetcounter —

instantiate {

exec

expr

noresetcounter

}

— cari juga pada bagian authorize, setting dengan cara yang sama, dan dibagian bawah sql tambahkan tulisan noresetcounter —

authorize {

preprocess

chap

mschap

suffix

sql

noresetcounter

}

simpan dengan ctrl+x tekan y kemudian enter

9. Konfigurasi sertifikasi

#cd /etc/apache2

#mkdir ssl

#make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Contoh jawaban pertanyaan seputar SSL:

– Country Name: ID

– State Or Province Name: Riau

– Locality Name : Pekanbaru

– Organization Name : Hotspot Pekanbaru

– Organization Unit Name : Engineering hotspot pekanbaru

– Host Name : localhost

– Email Address : pinokiook@yahoo.com

Aktifkan dengan cara:

#a2enmod ssl

#/etc/init.d/apache2 force-reload

Buat dan mengenable file ssl :

#cd /etc/apache2/sites-available/

#cp default ssl

#nano ssl

pada bagian

— modifikasi dibagian atas sebagai berikut —

NameVirtualHost *:443
(virtualhost *:443)

ServerAdmin webmaster@localhost

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

DocumentRoot /var/www/

— berakhir diatas tulisan ini —

simpan dengan ctrl+x tekan y kemudian enter

Ket: kurung buka dan kurung tutup pada baris kedua “(virtualhost *:443)” sebenarnya kurung buka dan kurung tutup dalam bahasa html. Habis ini blog gak bisa masukin kurung buka sama kurung tutup bhs html sich, ya terpaksa dech kayak gitu. Mohon pengertiannya yach. Harap Maklum. Peace….

Listen ke port 443

#cd /etc/apache2

#nano ports.conf

—pada bagian bawah di Listen 80 tambahkan—

Listen443

—berakhir diatas tulisan ini—

Simpen Make ctrl+x tekan y kemudian enter

Ket: Kalau disitu sudah ada tulisan Listen 443, tidak perlu di tambah/tulis lagi….

Setelah semuanya selesai, di enable dengan cara:

#a2ensite ssl

#/etc/init.d/apache2 reload

#/etc/init.d/apache2 restart

10. konfigurasi database mysql yang udah dibuat oleh phpmyprepaid tadi

#mysql –u root –p

(masukkan password mysql yang dibuat tadi)

>show databases;

>GRANT ALL PRIVILEGES ON phpmyprepaid.* to ‘phpmyprepaid’@’localhost’ IDENTIFIED BY ‘sangatrahasia’;

>FLUSH PRIVILEGES;

Setiap user yang dibuat oleh registrasi phpmyprepaid menggunakan time, jika anda ingin membuat registrasi member tanpa time anda dapat membuat dengan cara:

>use phpmyprepaid;

>INSERT INTO radcheck (UserName, Attribute, Value) VALUES (‘pinokiook’, ‘User-Password’, ‘sangatrahasia’);

>quit;

Ket:

Member ini khusus untuk kita aja, masa tukang buat hotspotnya musti dibatasin koneksi internetnya oleh phpmyprepaid. Nggak lucu kan…

11. Restart semua system yang dikonfigurasi

#/etc/init.d/apache2 restart

#/etc/init.d/mysql restart

#/etc/init.d/chilli restart

#/etc/init.d/freeradius restart

Atau biar lebih enakan, kalo aku sich biasanya reboot servernya dengan perintah

#reboot

He, he, he… biar lebih gimanaaaa…. Gitu!!

12. Setting wireless/radio

Mengenai ini aku rasa nggak perlu dijelasin lebih detail yach, soalnya make radionya tergantung dari kawan-kawan aja. kita bisa menggunakan berbagai merk wireless seperti linksys, dlink, senao, mikrotik, dsb dengan antenna omni directional atau apalah, terserah….Yang jelas inti yang musti disetting adalah:

SSID : hotspot_apa_aja

Ip address : dhcp

Security : no encryption

Ket:

– Fungsi chillispot disini adalah sebagai pemberi ip address, sebagai security, dan sebagai pemberi izin dalam melakukan surfing internet.

Saatnya percobaan….

a. koneksikan wireless yang terdapat pada computer / laptop client di hotspot wireless.

b. Buat sebuah tiket di phpmyprepaid dengan mozilla firefox

(contoh http://192.168.10.10/phpmyprepaid/www)

c. Coba browsing internet ke alamat apa saja dengan program browser kesayangan anda, jika sukses, maka browsing akan diredirect dan dimintai login dan password oleh chillispot, masukkan login dan password yang dibuat oleh phpmyprepaid tadi. Jika berhasil maka anda sudah bisa browsing internet

Ket:

Anda juga bisa menggunakan username dan password member yang anda buat di mysql yang diterangkan pada nomor 10. Username dan password yang dibuat disana bersifat permanen dan tanpa limit waktu.

Selamat anda telah berhasil membuat server hotspot. Sekali lagi, Ini merupakan tutorial dasar saja. Pengembangan kembali kepada kawan-kawan. Kalau ada yang membingungkan dan ingin ditanyakan, silahkan kirimkan sms ke saya sebanyak-banyaknya ke 9898. Ketik reg spasi hotspot spasi pertanyaan. Sms yang anda kirim tidak akan pernah saya balas karena tidak pernah masuk ke handphone saya he, he, he…..

Salam dingin

Pinokio

9 thoughts on “Buat Hotspot dengan Apache, Freeradius, Chillispot, mysql dan phpmyprepaid di Ubuntu

  1. Mas,,, mohon dijelaskan secara detail pada fili ini:

    – cari konfigurasi untuk accounting dan setting menjadi seperti ini dengan cara menghilangkan tanda pagarnya, selain itu berikan tanda pagar untuk yang lain –

    accounting {

    unix

    radutmp

    sql

    }

    – cari juga untuk instantiate, setting dengan menghilangkan tanda pagar, seperti berikut, dan dibawah expr tambahkan noresetcounter –

    instantiate {

    exec

    expr

    noresetcounter

    }

    – cari juga pada bagian authorize, setting dengan cara yang sama, dan dibagian bawah sql tambahkan tulisan noresetcounter –

    authorize {

    preprocess

    chap

    mschap

    suffix

    sql

    noresetcounter

    }

    saya masih kebingungan karena tidak ada contoh seperti file file di atasnya. di menu ini,, configurasi accounting dan lainnya banyak sekali jadi bingung nie masss… mohin bantuannya

  2. mas sy uda cb tutorialx dan uda runing tp ada masalah dlm pembuatan voucher, yaitu 1. di octets accounts tdk bs buat tiket.
    2. trus tiket yg dibuat berdasarkan time accounts tidak dapat login/digunakan dan ini adalah pesan di logx thanks sebelumx….
    ronald@ronald-desktop:~$ tail -f /var/log/freeradius/radius.log
    Sun May 17 00:30:52 2009 : Info: rlm_sql (sql): No matching entry in the database for request from user [bbzuzt]
    Sun May 17 00:31:24 2009 : Error: rlm_sql (sql): Couldn’t insert SQL accounting START record – Unknown column ‘XAscendSessionSvrKey’ in ‘field list’
    Sun May 17 01:07:57 2009 : Info: rlm_sql (sql): No matching entry in the database for request from user [bbzuzt]
    Sun May 17 01:09:22 2009 : Info: rlm_sql (sql): No matching entry in the database for request from user [gplybt]
    Sun May 17 01:13:11 2009 : Error: rlm_sql (sql): Couldn’t insert SQL accounting START record – Unknown column ‘XAscendSessionSvrKey’ in ‘field list’
    Sun May 17 01:15:11 2009 : Error: rlm_sql (sql): Couldn’t insert SQL accounting START record – Unknown column ‘XAscendSessionSvrKey’ in ‘field list’
    Sun May 17 01:26:39 2009 : Info: rlm_sql (sql): No matching entry in the database for request from user [othfhb]
    Sun May 17 01:59:24 2009 : Error: rlm_sql (sql): Couldn’t insert SQL accounting START record – Unknown column ‘XAscendSessionSvrKey’ in ‘field list’

  3. mas,….tutorial di atas kan dpt koneksi internet via LAN, klo via modem zte mf 622 bs ga untuk dibikin hotspotan? trus masih bingung konfigurasi /etc/network/interface ama konfigurasi wirelessnya (tp-link atheros tl-wn550g)

  4. Mas, saya mau tanya. . .
    Ada gak cara untuk gabungin chillispot dan transparent proxy server dalam 1 router? ? ?
    Saya gunakan chillispot tapi squid nya gak bsa running. . .
    Mohon pencerahan nya. . .

  5. mas, tolong saya ..
    gimana caranya untuk pembagian kuota volume(volume based) pada aplikasi prabayar pada warnet ??
    urgent .
    terima kasih sebelumnya mas.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s