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

Tampilkan postingan dengan label Hotspot. Tampilkan semua postingan
Tampilkan postingan dengan label Hotspot. Tampilkan semua postingan

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