LATAR BELAKANG
Tutorial ini ditulis berdasarkan pengalaman penulis dalam melakukan instalasi dan setup Billing Hotspot menggunakan : ChilliHotSpot, Freeradius dan phpMyPrepaid. Diinstall pada Ubuntu 8.04 ( Hardy Heron ).
KEBUTUHAN DASAR
Assumsi dalam tutorial ini adalah System menggunakan Apache2 dan php5 dan Mysql 5.01 ( bawaan dari Ubutu 8.04 ) jika system ada belum memiliki Apache2, MySQL dan php5 lakukan instalasi terlebih dahulu. Anda bisa menggunakan perintah
$sudo taksel
atau
$sudo apt-get install apache2 mysql dan php5
Simbol Penulisan
$ --> user level
# --> root level
mysql> --> Saat berada di dalam MySQL Shell
## --> Komentar / keterangan
PERSIAPAN
Langkah pertama yang harus kita lakukan adalah mengupdate software repository dalam system kita. Lakukan dengan cara :
$sudo apt-get update
$sudo apt-get upgrade
Selesai melakukan update dan upgrade yang diperlukan. Hal pertama yang kita akan lihat adalah Jaringan Komputer yang kita miliki. Dalam kasus ini skema / IP ADDRESS jaringan yang saya inginkan adalah
eth0 ---> 192.168.0.21 Netmask 255.255.255.0 Gateway 192.168.0.254
eth1 ---> 192.168.20.1 Netmask 255.255.255.240 ( ip ini akan diperoleh secara dynamic - DHCP dari chilliSpot )
eth1 terhubung ke Akses Point ( IP ADDRESS Akses Point DHCP dari ChilliSpot melalui eth1 )
IP ADDRESS jaringan bisa disesuaikan dengan kebutuhan dan IP yang berbeda.
SETUP JARINGAN
$sudo cat /etc/network/interfaces
## interface loopback
auto lo
iface lo inet loopback
##interface ke jaringan lokal kabel
##koneksi internet melalui interface ini
auto eth0
iface eth0 inet static
address 192.168.0.21
netmask 255.255.255.0
gateway 192.168.0.254
##interface yang berhubungan dengan Akses Point
auto eth1
MENGAKTIFKAN PACKET FORWARDING DAN DEVICE "tun"
$sudo su
Password:
#echo "1" > /proc/sys/net/ipv4/ip_forward
tambahkan device tun pada file /etc/modules
#vi /etc/modules
AKTIFKAN DEVICE "tun"
#modprobe tun
INSTALASI CHILLISPOT
Instalasi ChilliSpot dilakukan dengan memanfaat repository ubuntu yang ada dengan melakukan perintah :
$sudo apt-get install chillispot
Saat proses instalasi selesai anda akan dibawa masuk dalam proses konfigurasi dengan muncul beberapa pertanyaan yang harus dijawab, seperti :
P : IP ADDRESS Radius Server 1
J : 127.0.0.1
P : Radius Shared Secret
J : yourRadiusSecretPassword
P : Etheret interface for DHCP to Listen to :
J : eth1
P : UAM of URL Server
J : https://192.168.20.1/cgi-bin/hotspotlogin.cgi
P : URL of UAM Homepage
J : https://192.168.20.1/welcome.html
P : Shared Password between ChilliSpot and Webserver
J : yourSecretPasswordSharedChilliAndWebServer
... proses konfigurasi selesai
Apa yang telah dikonfigurasi adalah file /etc/chilli.conf dengan isi
net 192.168.0.0/24 ## ubah sesuai dengan IP ADDRESS anda
dns1 192.168.0.21 ## ubah sesuai dengan DNS anda
dns2 192.168.0.254 ## ubah sesuai dengan DNS anda
dhcpif eth1
## interface yang akan digunakan sebagai pendistribusi
## IP ADDRESS ke Client Akses Point. Pastikan tidak ada
## DHCP Server lain yang aktif pada interface ini
domain name opendns.org ## ubah sesuai dengan domain
## search ISP anda atau anda juga bisa menggunakan opendns.org
uamserver https://192.168.20.1/cgi-bin/hotspotlogin.cgi
## uamhomepage https://192.168.20.1/welcome.html
## uamhomepage optional di tutup dengan simbol komentar saja
uamallowed 192.168.0.0/24,192.168.20.0/28
## dua network ini harus kita isikan agar chillispot bisa berjalan pada kedua network tersebut
uamsecret yourSecretPasswordSharedChilliAndWebServer
uamlisten 192.168.20.1 ## ubah sesuai dengan IP ADDRESS anda
Aktifkan ChilliSpot Portal di /etc/default/chillispot dan hilangkan komentar dibagian
#ENABLED=1
menjadi
ENABLED=1
$sudo vi /etc/default/chillispot
##
ENABLED=1
INSTALASI FreeRadius FreeRadius-MySQL dan FreeRadius-DialUpAdmin
Softwara lain yang kita perlukan adalah Freeradius. Lakukan installasi dengan perintah apt-get :
$sudo apt-get install freeradius freeradius-mysql freeradius-dialupadmin
MENYIAPKAN MySQL DATABASE Freeradius
$mysql -u root -p
password:
mysql>use mysql;
mysql>CREATE DATABASE radius;
mysql>use radius;
mysql>GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'yourSecretRadiusSQLPassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>\q
Ubah konfigurasi Database Radius :
$sudo vi /etc/freeradius/sql.conf
## ubah bagian sql hingga menjadi seperti ini
server = "localhost"
login = "radius"
password = "yourSecretRadiusSQLPassword"
Masukan password freeradius pada /etc/freeradius/clients.conf
$sudo vi /etc/freeradius/clients.conf
client 127.0.0.1 {
secret = yourRadiusSecretPassword
}
Kita akan melakuan checking apakah konfigurasi kita sudah benar, tapi sebelumnya kita ubah dulu file /etc/freeradius/users
$sudo vi /etc/freeradius/users
## hilangkan komentar pada baris berikut ( hingga menjadi sepe
"John Doe" Auth-Type := Local, User-Password == "hello"
Reply-Message = "Hello, %u"
Sepertinya kita memerlukan REBOOT system
$sudo reboot
Setelah melakukan reboot system kita akan check konfigurasi freeradius
stop freeradius
$sudo /etc/init.d/freeradius stop
$sudo freeradius -XXX -A
pastikan kita mendapatkan baris berikut pada akhir proses
.................... Info : ready to procces request
tekan Ctrl + C untuk keluar
Kita jalankan lagi freeradius
$sudo /etc/init.d/freeradius start
Kita lakuan test authentificasi file freeradius dengan cara
$sudo radtest "John Doe" hello 127.0.0.1 0 yourRadiusSecretPassword
Jika semuanya benar anda akan mendapatkan hasil seperti dibawah ini :
Sending Access-Request of id 136 to 127.0.0.1 port 1812
User-Name = "John Doe"
User-Password = "hello"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=136, length=37
Reply-Message = "Hello, John Doe"
Untuk bisa memanfatkan Akses MySQL dari Freeradius maka kita akan merubah menambahkan baris "sql" dan memberi komentar pada file menjadi #file
$sudo vi /etc/freeradius/radiusd.conf
authorize {
preprocess
# auth_log
# attr_filter
chap
mschap
# digest
# IPASS
suffix
# ntdomain
eap
# files
sql
# etc_smbpasswd
# ldap
# daily
# checkval
}
kemudian edit file seperti dibawah ini
$sudo vi /etc/freeradius/sql.conf
sql {
driver = "rlm_sql_mysql"
server = "localhost"
login = "radius"
password = "mysqlsecret"
radius_db = "radius"
[...]
# Set to 'yes' to read radius clients from the database ('nas' table)
readclient = yes ###change manually
}
$sudo vi /etc/freeradius/radiusd.conf
$INCLUDE ${confdir}/sql.conf
authorize {
preprocess
chap
suffix
eap
#files
sql
}
authenticate {
Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
eap
}
accounting {
detail
radutmp
sql ### tambahkan jika belum ada
}
session {
sql ### tambahkan jika belum ada
}
echo "INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('hobong', 'Password', 'passwordku');" | mysql -u radius -p radius
Enter password : yourSecretRadiusSQLPassword
Restart Freeradius
$sudo /etc/init.d/freeradius restart
Lakukan Test koneksi MySQL
$sudo radtest hobong passwordku 127.0.0.1 0 yourRadiusSecretPassword
Pastikan akan menghasilkan :
Sending Access-Request of id 180 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=180, length=20
SETUP Apache2
Langkah selanjutnya adalah mensetup Apache2 untuk web akses Login ke Akses Point.
Dalam tulisan ini web root diasumsikan di /var/www
Buat Direktori hotspot pada /var/www
$sudo mkdir -p /var/www/hotspot/cgi-bin
Mengambil login page pada file sample ChilliSpot
$zcat /usr/share/doc/chillispot/hotspotlogin.cgi.gz | sudo tee /var/www/hotspot/cgi-bin/hotspotlogin.cgi
Memberikan properti execute pada file hotspotlogin.cgi
$sudo chmod +x /var/www/hotspot/cgi-bin/hotspotlogin.cgi
Edit file hotspotlogin.cgi untuk menghilangkan komentar pada baris $uamsecret dan $userpassword menjadi
$sudo vi /var/www/hotspot/hotspotlogin.cgi
$uamsecret = "yourSecretPasswordSharedChilliAndWebServer";
$userpassword=1;
Menambahkan SSL
jika belum diinstall lakukan instalasi software libapache2-mod-auth-mysql dan ssl dengan perintah :
$sudo apt-get install libapache2-mod-auth-mysql ssl-cert
Kita akan membuat SSL certificate untuk kebutuhan akses hppts dengan langkah :
Pastikan nama hostname :
$hostname -f
Buat direktori ssl di /etc/apache2
$sudo mkdir -p /etc/apache2/ssl
$sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
Jawab pertanyaan yang muncul seperti dibawah ini saat pembuatan Certivicate SSL
P : Contry Name :
J : ID
P : State Of Province Name :
J : Masukan Provinsi Anda
P : Locality Name :
J : Masukan Nama Kota Anda
P : Organization Name :
J : Masukan Nama Organisasi Anda atau sembarang Nama
P : Organization Unit Name :
J : IT Dept
P : Host Name :
J : Masukan Nama Host Anda ## Pastikan nama host anda saat melakukan perintah $hostname -f
Aktifkan module SSL pada apache2 dan restart apache2
$sudo a2enmod ssl
$sudo /etc/init.d/apache2 force-reload
Buat virtualhost pada direktori apache2
$sudo vi /etc/apache2/site-available/hotspot
dengan isi seperti contoh dibawah ( sesuaikan IP ADDRESS dengan milik anda )
NameVirtualHost 192.168.20.1:443
ServerAdmin webmaster@domain.org
DocumentRoot "/var/www/hotspot"
ServerName "192.168.20.1"
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
Alias "/dialupadmin/" "/usr/share/freeradius-dialupadmin/htdocs/"
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
ScriptAlias /cgi-bin/ /var/www/hotspot/cgi-bin/
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
ErrorLog /var/log/apache2/hotspot-error.log
LogLevel warn
CustomLog /var/log/apache2/hotspot-access.log combined
ServerSignature On
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
Aktifkan virtualhost yang baru kita buat dan reload apache2
$sudo a2ensite hotspot
$sudo /etc/init.d/apache2 force-reload
Karena https harus listen pada port 443 maka kita perlu mengedit file /etc/apache2/ports.conf hingga menjadi seperti ini
$sudo vi /etc/apache2/ports.conf
Listen 192.168.20.1:80 ## Sesuaikan dengan IP ADDRESS anda
Listen 192.168.20.1:443 ## Sesuaikan dengan IP ADDRESS anda
#
# Listen 443
#
Pastikan pada File /etc/apache2/sites-available/default berisikan
$sudo vi /etc/apache2/sites-available/default
NameVirtualHost *:80
dan pada file /etc/apache2/apache2.conf ditambahkan
$sudo vi /etc/apache2/apache2.conf
ServerName 192.168.20.1 ## Sesuuikan dengan IP ADDRESS anda
pada file /etc/hosts tambahkan baris seperti dibawah ini dengan penyesuain IP ADDRESS anda.
$sudo vi /etc/hosts
192.168.20.1 host.name ## ganti dengan nama hostname yang anda peroleh dengan printah $sudo hostname -f
Restart Apache2, ChilliSpot dan Freeradius
$sudo /etc/init.d/freeradius restart
$sudo /etc/init.d/chillispot restart
$sudo /etc/init.d/apache2 restart
lakukan browsing dari client wireless ke alamat :
https://192.168.20.1/cgi-bin/hotspotlogin.cgi
Selamat Mencoba ...
Anda bisa melakukan refrensi ke situs
https://help.ubuntu.com/community/WifiDocs/ChillispotHotspot/8.04
Labels: Billing Hotspot, Chillispot, Freeradius, Hotspot, Linux, phpmyprepaid, Ubuntu
2 comments:
- At 30 Desember 2008 pukul 01.11 Anonim said...
-
Mas ak coba ikuti langkah2 nya tp waktu tess ke mysql eror tampilannya
Re-sending Access-Request of id 175 to 127.0.0.1 port 1812
User-Name = "hobong"
User-Password = "passwordku"
NAS-IP-Address = 255.255.255.255
NAS-Port = 0 - At 7 Januari 2009 pukul 09.58 Linux is My Friends said...
-
@jadmiko
Apakah mas jadmiko udah install dan setup MySQL nya ?
data yang mas jadmiko sebutkan menunjukan bahwa akses dengan User-Name : hobong dan Password : passwordku
mungkin bisa lebih dispesifik lagi errornya ?