Site Network: Home | Blogcrowds | Gecko and Fly | About

HotSpot Login Open Sources

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

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 ?

 

Posting Komentar