Note :
Untuk mengaplikasikan Captive portal ini minimal menggunakan 2 ethernet card :
internet —- modem ——–ubuntu server ——- switch ——- AP dan/atau LAN
Tetapi pada tutorial ini saya menerapkan pada server dgn 3 ethernet card :
internet —- ADSL ——–(eth0)UBUNTU SERVER(eth2) ——- switch ——- Wired LAN
……………………………………………..(eth1)
…………………………………………………|
…………………………………………………|
…………………………………………..Access Point
Persiapan system :
1. Ubuntu 8.04 Hardy Heron dengan paket LAMP
2. Putty untuk remote server dari client.
3. Webmin untuk mempermudah edit file.
Buat eth0 terkoneksi dengan modem.
Konfigurasi untuk eth1 tidak usah diisi karena nanti eth1 diberi setingan DHCP dari Coova chilli.
Berikut adalah isi dari /etc/network/interfaces saya
[quote]
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1 —– ip modem
iface eth2 inet static
address 192.168.10.1
netmask 255.255.255.0
network 192.168.10.0
broadcast 192.168.10.255[/quote]
Pastikan juga ]/etc/resolv.conf setting DNS dari Server nya benar, saya anjurkan install DNS local
Edit file /etc/sysctl.conf, Uncomment bagian ini agar Kernel Ubuntu dapat forwarding packet
[quote]
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1[/quote]
Pastikan paket LAMP telah ter-install
[quote]
sudo tasksel[/quote]
dengan mencentang LAMP, maka semua package yang diperlukan otomatis terinstall.
Step Instalasi :
1. CakePHP
2. YFi CakePHP Application
3. YFi View Component
4. FreeRADIUS
5. Coova Chilli
1. Install CakePHP
Install juga PHP command line:
[quote]
sudo apt-get install php5-cli[/quote]
untuk mengubah skala file gambar, Install imagemagick.
[quote]
sudo apt-get install imagemagick[/quote]
Mulai versi Beta-3, Yfi Manager Hotspot sudah support multi bahasa
[quote]
sudo apt-get install language-pack-id — bahasa Indonesia
sudo apt-get install language-pack-af
sudo apt-get install language-pack-fr
sudo apt-get install language-pack-ms
sudo apt-get install language-pack-nl
sudo apt-get install language-pack-es[/quote]
Download versi terbaru CakePHP di http://cakephp.org.
versi terbaru (April 2010)= cake_1.2.6
Copy, extract di direktori apache. Default ubuntu di /var/www
[quote]
sudo cp cakephp-cakephp1x-1.2.6-0-gbe7ddfb.tar.gz /var/www
cd /var/www
sudo tar -xzvf cakephp-cakephp1x-1.2.6-0-gbe7ddfb.tar.gz[/quote]
Rename direktori hasil ekstrak, agar lebih simpel (misal:cake_1.2.6)
Buat symbolic link
[quote]
cd /var/www
sudo ln -s ./cake_1.2.6 ./c2[/quote]
Enable beberapa modul apache: rewrite, deflate untuk kompresi, dan headers untuk memodifikasi http header. Modul tersebut diperlukan untuk meningkatkan performance dan kecepatan web aplikasi..
[quote]
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo /etc/init.d/apache2 reload[/quote]
Edit file “/etc/php5/apache2/php.ini”
Pada baris :
[quote]
output_buffering = Off[/quote]
ubah dengan
[quote]Code:
output_buffering = 4096[/quote]
Edit file /etc/apache2/apache2.conf
Masukkan script dibawah ini:
[quote]
AllowOverride All
#——-COMPRESS CONTENT———–
# place filter ‘DEFLATE’ on all outgoing content
SetOutputFilter DEFLATE
# exclude uncompressible content via file type
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|jpg|png|pdf|zip|bz2|sit|rar)$ no-gzip
#dont-vary
# Keep a log of compression ratio on each request
DeflateFilterNote Input instream
DeflateFilterNote Output outstream
DeflateFilterNote Ratio ratio
LogFormat ‘”%r” %{outstream}n/%{instream}n (%{ratio}n%%)’ deflate
CustomLog /var/log/apache2/deflate.log deflate
# Properly handle old browsers that do not support compression
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
#———————————-
#——ADD EXPIRY DATE————-
Header set Expires “Thu, 15 Apr 2012 20:00:00 GMT”
#———————————-
#——–Remove ETags ——————–
FileETag none
#—————————————–[/quote]
Reload Apache
[quote]sudo /etc/init.d/apache2 reload
[/quote]
2. Install YFi CakePHP Application
Donwload versi terbaru YFi Cake, saya memakai versi yfi_cake-Beta-4.tar.gz
extract di direktori “/var/www/c2″.
[quote]sudo cp yfi_cake-Beta-4.tar.gz /var/www/c2
cd /var/www/c2
sudo tar -xzvf yfi_cake-Beta-4.tar.gz
sudo chown -R www-data. /var/www/c2/yfi_cake/tmp
sudo chown -R www-data. /var/www/c2/yfi_cake/webroot/img/graphics
[/quote]
Setting Database
Buat database ‘yfi’ dengan username dan password default ‘yfi’ (default).
Untuk settingan default gunakan perintah ini :
[quote]mysql -u root -p
create database yfi;
GRANT ALL PRIVILEGES ON yfi.* to ‘yfi’@’127.0.0.1′ IDENTIFIED BY ‘yfi’;
GRANT ALL PRIVILEGES ON yfi.* to ‘yfi’@'localhost’ IDENTIFIED BY ‘yfi’;
exit;[/quote]
Catatan: Untuk keamanan anda bisa ubah username dan password, misalsperti milik saya: “submajuli”
Jangan lupa untuk ubah File ‘/var/www/c2/yfi_cake/config/database.php’, Dibagian username dan password.
mysql -u root -p yfi /dev/null
# force-add the final rule necessary to fix routing tables
iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE
[/quote]
Tambahkan coa port pada file /etc/init.d/chilli, cari pada bagian ini :
[quote]
OPTS=”–pidfile /usr/local/var/run/$NAME.pid”[/quote]
Tambahkan –coaport 3799 untuk keperluan “Kick User off”
[quote]OPTS=”–pidfile /usr/local/var/run/$NAME.pid –coaport 3799″ ## Tambahkan coa port[/quote]
Halaman Login
Disini saya menggunakan login page coova_json
Copy folder coova_json ke direktori apache ” /var/www ”
sudo cp -R /var/www/c2/yfi_cake/setup/coova_json /var/www
Cek di file “/var/www/coova_json/login.php :
1. $uamsecret harus sama dengan di file ” /etc/chilli/config “, begitu juga di file ” /var/www/coova_json/uam.php “. Defaultnya adalah ‘greatsecret’.
2. $port di “/var/www/coova_json/login.php “, jika 3660 harus diganti dengan 3990.
Silahkan restart ubuntu anda
1. Tes dengan menggunakan komputer client. Setting network interface client ke dhcp, jika client mendapat ip 10.1.0.2 – dst. Berarti coova chilli berjalan normal
2. Coba browsing ke, misal www.google.com. Akan keluar halaman splash
3. Kemudian diarahkan ke halaman login: hs_land.php
4. Login dengan user dvdwalt@ri dan password dvdwalt@ri.
5. Jika akses diterima, akan nongol www.google.com
tahap instalasi Finish
Padukan dengan squid Transparent Proxy”
Berikut iptables yg saya gunakan untuk meredirec client HotSpot ke squid (squid satu server dengan captive portal)
[quote]iptables -A PREROUTING -t nat -i tun0 -p tcp -s 10.1.0.0/24 -d ! 10.1.0.1 –dport 80 -j REDIRECT –to 3128[/quote]
selamat mencoba ingat kegagalan adalah awal dari keberhasilan