13 Maret 2008

Buat Hotspot dengan menggunakan Apache, Freeradius, Chillispot, mysql dan phpmyprepaid di Ubuntu (Bagian 2 – Installasi dan konfigurasi)

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

15 komentar:

Anonim mengatakan...

boss munkin perlu dijelaskan, APnya musti yang mendukung otorisasi menggunakan radius.

Anonim mengatakan...

mas...punya billing di phpmyprepaid bisa diganti ke kurs rupiah gak ya???

adnanhidayat mengatakan...

Parameter /S/D fungsinya buat apa ya mas? Aku liat helpnya ga begitu mudenk. Tapi pake apa ngga outputnya tetep sama.

adnanhidayat mengatakan...

Wah mas...aku masih belum apa-apa sama hacker macam kevin mitnick mereka rata-rata berhasil njebol situs di umur 15san tahun..
Ya..mudenk-mudenk, makasih ya mas.

Anonim mengatakan...

mas, saya dah coba semua, sama persis, tapi ada beberapa masalah, tolong dijawab ya...
1. Pas buka phpmyprepaid bagian configuration , kolom untuk radius, chillispot, dll masih kosong, apa itu normal?
2. ketika mau connect ke hotspot, ada ballon tulisannya "click here to select certificate or other credentials for connection". intinya diminta memilih sertifikat, sertifikatnya dari mana ya? saya jadi bingung.

tengkyu.

Anonim mengatakan...

mas tanya gimana kalau dengan based quata apakah bisa jalan!!!

lilin putih mengatakan...

mas, di nomer 10....

#mysql –u root –p

(masukkan password mysql yang dibuat tadi)

>show databases;

ko aku keluarnya gini sih..?

auto-rehash TRUE
character-sets-dir (No default value)
default-character-set latin1
compress FALSE
database (No default value)
delimiter ;
vertical FALSE
force FALSE
named-commands FALSE
local-infile FALSE
no-beep FALSE
host (No default value)
html FALSE
xml FALSE
line-numbers TRUE
unbuffered FALSE
column-names TRUE
sigint-ignore FALSE
port 3306
prompt mysql>
quick FALSE
raw FALSE
reconnect TRUE
socket /var/run/mysqld/mysqld.sock
ssl FALSE
ssl-ca (No default value)
ssl-capath (No default value)
ssl-cert (No default value)
ssl-cipher (No default value)
ssl-key (No default value)
ssl-verify-server-cert FALSE
table FALSE
debug-info FALSE
user (No default value)
safe-updates FALSE
i-am-a-dummy FALSE
connect_timeout 0
max_allowed_packet 16777216
net_buffer_length 16384
select_limit 1000
max_join_size 1000000
secure-auth FALSE
show-warnings FALSE

dia (ubuntu) ga minta password ga apa, langsung keluar yang begituan itu yang di atas..
kenapa ya?

Anonim mengatakan...

all..
kalo mau pake Billing HotSpotnya..
bisa di lihat dan reviu di indohotspot.net aja.

fasilitasnya bisa quota base time , dan bandwidth, cetak voucher, login HotSpot customized, report pemakaian, dll.

Anonim mengatakan...

situs ini ga bs dibuka :
http://192.168.10.10/phpmyprepaid/www/install/setup.php
ada alternatif yg lain ga???
klo koneksinya pake im2 modem zte mf 622 ada paduannya ga?

Anonim mengatakan...

bantu dong...
aku pake modem zte seri mf 622
pake ubuntu 8.04
pake wireless tp-link
minta paduan yg lengkapnya dong. trims
kitaniagung@yahoo.com

Basse Sangtempe (B4T60) mengatakan...

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'

roland_snazzy_scc@yahoo.com

PANDE mengatakan...

Dear Mas,

Saya sudah menginstall Radius dan chilli serta phpmyprepaid, semua sudah sukses. Yang menjadi masalah adalah kenapa IP komputer saya tidak redirect ke https://10.200.20.1/cgi-bin/hotspotlogin.cgi ?

mohon bantuannya .

Atass perhatiannya saya ucapkan terima kasih.

Anonim mengatakan...

mas kalau mw mwngubah tampilan hotspotlogin.cginya gmn ya?

el7cosmos mengatakan...

waduuuh...ga ngerti dah yang namanya jaringan!!

Anonim mengatakan...

mas mohon bantuannya, saya newbi di linux.
saya sudah mengikuti semua cara yang disebutkan dalam tutorial. namun saya mengalami kendala di bagian edit file radiusd.conf
saya tidak menemukan konfigurasi untuk accounting, authorization.
disebutkan pada penjelasan radius.conf untuk settingan accounting, authorization terdapat dalam file raddb/sites-availeble/default. namun setelah saya cari saya tidak dapat menemukan file tersebut.
di mana saya bisa menemukan file raddb/sites-available/default ?