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

Buat Hotspot dengan menggunakan Apache, Freeradius, Chillispot, mysql dan phpmyprepaid di Ubuntu (Bagian 1 – persiapan server)

Mohon Maaf kepada rekan-rekan karena sudah lama tidak menulis tutorial lagi. Abis aku sudah mulai sibuk dengan kegiatan perkuliahan (Udah tua masih kuliah?? Kacian yach!!) yach gimana mau kelar, kebanyakan chating mulu sich sich he, he, he….

Kali ini aku mau coba ngeshare gimana cara membuat hotspot dengan menggunakan freeradius, chillispot, mysql dan phpmypreaid. Seperti janji aku sebelumnya akan memaparkan tutorial ini jika udah berhasil membuatnya. Kebetulan banyak juga dari rekan-rekan yang minta aku untuk menshare pengalaman dalam membuat hotspot ini.

Sebenarnya sich banyak program yang bisa digunakan dalam membuat hotspot seperti coova, nocat, wifidog dsb. Tapi karena berhubung yang paling banyak digunakan adalah freeradius dan chillispot serta mysql dan phpmyprepaid sebagai management databasenya, yaa… ku jelasin yang ini aja. Aku akan coba menerangkan secara bertahap dan dasarnya saja. Pengembangannya kukembaliin sama kawan-kawan. Soalnya aku juga masih dalam tahap pembalajaran… Intinya kita sama-sama belajar, ok….

Aku akan coba ngejelasin dalam 2 tahap, bagi rekan-rekan yang udah familiar dengan linux dan jaringan bisa langsung masuk ketahap kedua, tapi kalo rekan-rekan masih ada yang baru coba-coba megang linux, aku akan ngejelasin dari tahap pembuatan server untuk sebuah hotspot, Peace yaaa…

1. Install linux ubuntu nya dulu (untuk tutorial installasinya bisa dilihat di tutorial bulan november “Buat server jaringan di ubuntu 7.10 (bagian 1-Installasi)” )

2. Setelah selesai installasi login ke ubuntu seperti biasa.

3. Biar bisa masuk ke root ketik "sudo su" (tanpa tanda kutip), kemudian masukin lagi passwordnya. Lihat perbedaannya. kalo user biasa ditandai dengan $ tapi kalo root ditandai dengan # .

4. buat dulu password root nya dengan perintah

#passwd root

(buat password root sesuai keinginan)

(masukin password yang dibuat tadi sekali lagi)

5. Edit konfigurasi untuk eth1 sebagai berikut

#nano /etc/network/interfaces

--isi tulisan ini bagian paling bawah dari interfaces—

# The secondary network interface

auto eth1

iface eth1 inet dhcp

--berakhir di atas tulisan ini—

Simpan dan keluar dengan cara

menekan ctrl+x ketik y kemudian tekan enter

Alasan menggunakan dhcp karena nanti yang akan memberikan ip dari chillispot.

6. masukkin dns yang dikasih oleh isp, caranya:

#nano /etc/resolv.conf

-- isi dengan perintah berikut dibawah –

nameserver 202.155.0.10

nameserver 202.155.0.15

-- berakhir diatas dari tulisan ini –

simpan dengan menekan ctrl+x tekan y kemudian enter

contoh diatas adalah permisalan dns 1 dan dns 2 nya.

7. edit file sysctl.conf caranya:

#nano /etc/sysctl.conf

cari tulisan berikut:

# net.ipv4.conf.default.forwarding=1

hilangkan tanda pagar nya jadi:

net.ipv4.conf.default.forwarding=1

simpan dan keluar dengan perintah:

ctrl+x, ketik y dan tekan enter

8. Masukin perinta berikut di rc.local dengan cara:

#nano /etc/rc.local

hapus exit=0

-- masukan tulisan berikut dibagian paling bawah rc.local —

echo "1" > /proc/sys/net/ipv4/ip_forward

-- berakhir diatas tulisan ini --

simpan dan keluar dengan perintah:

ctrl+x, ketik y dan tekan enter

9. Ganti repository dengan yang lokal (untuk tutorial ini dapat dilihat pada bagian tutorial “Ganti repository ubuntu dengan yang lokal”)

10.
Reboot / restart linux ubuntunya dengan perintah “reboot” (tanpa tanda kutip).

Untuk persiapan servernya udah jadi en tinggal masuk ketahap selanjutnya yaitu bagian installasi hotspot. Ceritanya bersambung nich. Kalo langsung abis kagak seru film nya. Ntar ratingnya sedikit lagi…

Udah dulu yach…sekarang sutradaranya mau bobo dulu jumpa soulmate di ruang rindu (mirip lagunya letto), maklumlah udah tiga tahun kagak jumpa. Cuma komunikasi lewat hp doang en komitmen untuk saling setia. Gila gak? Namanya juga first love. Makanya bagi cewek-cewek yang mau cari cowok, carilah tipe cowok yang setia seperti aku… he, he, he….

Salam dingin

Pinokio

NB:

(Setia = SElingkuh TIap hAri)