Wireless LAN memang menyajikan akses internet yang fleksibel. Ga usah ribet-ribet nyambung kabel sana sini, cukup dengan alat yang namanya Acces Point, dah konek ke jaringan deh hehehehe.. Nah.. Tapi kadang-kadang ada instansi/kampus atau apalah…. yang menyediakan area hotspot tapi membutuhkan otentikasi untuk bisa mengakses internet. Dan hal itu dinamakan teknik Captive Portal.
Seperti postingan saya yang lama (yang ini ni..), Captive Portal adalah suatu teknik autentikasi dan pengamanan data yang lewat dari network internal ke network eksternal. Captive Portal sebenarnya merupakan mesin router atau gateway yang memproteksi atau tidak mengizinkan adanya trafik, hingga user melakukan registrasi. Biasanya Captive Portal ini digunakan pada infrastruktur wireless sseperti hotspot area, tapi tidak menutup kemungkinan diterapkan pada jaringan kabel.
Pada postingan kali ini, aku mencoba menuliskan kembali pengalaman aku ketika membuat server hotspot dengan Chillispot sebagai aplikasi otentikasi, Freeradius sebagai manajemen client/user, dan MySql sebagai database Billing Hotspot. Seperti biasa, aku menggunakan OS FreeBSD, kali ini menggunakan FreeBSD 6.2. Langsung aja ke Step By Step proses instalasinya.
1. OS FreeBSD aku sudah terinstall dan berjalan denga baik di komputer oprekan aku.
2. Web Server Apache dengan SSL nya, PHP dan Mysql udah terinstall dengan baik.
3. Download dan Install Chillispot
Aku kemaren downloadnya dari website ini ni http://downloads.openwrt.org/sources/ Langsung aja download.
ns-rody # cd /home/rody
ns-rody # wget http://downloads.openwrt.org/sources/chillispot-1.0.tar.gz
ns-rody # tar –xzvf chillispot-1.0.tar.gz
ns-rody # cd chillispot-1.0
ns-rody # ./configure –prefix=/usr/local/chilli
ns-rody # make && make install
udah deh…
4. Konfigurasi chilli.conf
Kemudian aku mengedit file konfigurasi chillispot. Tapi sebelumnya copy file chilli.conf ke direktori /etc.
ns-rody # cp /home/rody/chillispot-1.0/doc/chilli.conf /etc/.
ns-rody # vi /etc/chilli.conf
nah ini dia file konfurasi yang udah aku sesuaikan dengan keadaan sistem aku
pidfile /var/run/chilli.pid
net 10.20.30.0/28
dynip 10.20.30.0/28
dns1 10.10.1.248
domain rodyngoprek.net
radiuslisten 127.0.0.1
radiusserver1 127.0.0.1
radiusserver2 127.0.0.1
radiusauthport 1812
radiusacctport 1813
radiussecret testing123
radiusnasid nas01
dhcpif fxp0
uamserver https://www.rodyngoprek.net/cgi-bin/hotspotlogin.cgi
uamsecret secretuam
uamlisten 10.20.30.1
uamport 3990
uamallowed 10.10.1.248
Udah deh. O iya jangan lupa untuk mengktifkan fitur SSL pada webserver kita.
5. Edit File hotspotlogin.cgi kemudian letakkan pada direktori cgi-bin pada webserver kita.
ns-rody # cp /home/rody/chillispot-1.0/doc/hotspotlogin.cgi /usr/local/apache2/cgi-bin/.
ns-rody # cd /usr/local/apache/cgi-bin
ns-rody # vi hotspotlogin.cgi
cari baris :
#$uamsecret = “ht2eb8ej6s4et3rg1ulp”;
#$userpassword=1;
Hilangkan tanda pagar didepannya :
$uamsecret = “sesuaikan dengan uamsecret yang ada pada chilli.conf”;
$userpassword=1;
Beres…
6. Download dan Install Freeradius
Pertama-tama download software freeradius nya dulu, klo aku downloadnya disini ni http://downloads.openwrt.org/sources/
ns-rody # cd /home/rody
ns-rody # wget http://downloads.openwrt.org/sources/freeradius-1.1.2.tar.gz
ns-rody # tar –xzvf freeradius-1.1.2.tar.gz
ns-rody # cd freeradius-1.1.2
ns-rody # ./configure –prefix=/usr/local/radius
ns-rody # make && make install
udah installnya, lanjut ke konfigurasi..
7. Konfigurasi clients.conf
ns-rody # cd /usr/local/radius/etc/raddb
ns-rody # vi clients.conf
cari baris yang seperti ini :
client 127.0.0.1 {
secret = testing123
shortname = localhost
nastype = other
}
Tinggal disesuaikan dengan sistem kita, untuk secret, sesuaikan dengan radiussecret yang ada pada chilli.conf.
8. Konfigurasi radiusd.conf
masih berada pada direktori yang sama dengan clients.conf, aku akan mengedit file radiusd.conf.
ns-rody # vi radiusd.conf
cari baris yang seperti ini :
$INCLUDE ${confdir}/sql.conf
Kemudian tambahkan beberapa baris konfigrasi sehingga menjadi seperti ini :
$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}’
“
}
Kemudian cari baris berikut dan sesuaikan dengan konfigurasi yang ada di bawah ini :
accounting {
unix
radutmp
sql
}
authenticate {
Auth-Type PAP {
pap
}
Auth-Type CHAP {
chap
}
Auth-Type MS-CHAP {
mschap
}
eap
}
instantiate {
exec
expr
noresetcounter
}
preacct {
preprocess
acct_unique
suffix
}
authorize {
preprocess
chap
mschap
suffix
sql
noresetcounter
}
session {
sql
}
9. Konfigurasi sql.conf
ns-rody # vi sql.conf
yang perlu di edit ada adalah baris berikut :
# Connect info
server = “localhost”
login = “user mysql kita”
password = “passwordnya”
# Database table configuration
radius_db = “radius atau terserah kita”
O iya, jangan lupa bikin database di mysql, sesuai kan dengan yang kita konfigurasi pada sql.conf misalnya “radius”
10. Installasi phpmyprepaid sebagai aplikasi web based untuk manajemen user dan billing hotspot.
Jangan lupa download packetnya, disini aku download phpmyprepaid0.3.3.tgz, soalnya klo versi yang di atasnya, aku gagal terus klo nginstallnya. Hehehe..
ns-rody # tar –xzvf phpmyprepaid0.3.3.tgz
ns-rody # mv phpmyprepaid0.3.3 /usr/local/apache2/htdocs/prepaid
ns-rody # cd /usr/local/apache2/htdocs/prepaid
terus aku coba untuk mengedit beberapa file.
ns-rody # vi config.inc.php
cari baris berikut, kemudian sesuaikan dengan keadaan sistem kita,
$fpdfdir=”/usr/local/apache2/htdocs/prepaid/fpdf”;
ns-rody # vi dbconnect.php
sesuaikan dengan keadaan sistem kita
$my_host=”localhost”;
$my_user=”usernya”;
$my_pass=”passwordnya”;
$my_dbase=”radius”;
Oke, beres..
Akses lewat browser http://ipaddressataudomain/prepaid/
Ntar dia bikin tabel-tael sendir pada database radius, lalu diminta masukin username dan password buat login, itu terserah kita.
Kemudian coba bikin user dan password pada phpmyprepaid tersebut.
11. Menjalankan daemon chillispot dan freeradius
ns-rody # /usr/local/chilli/sbin/chilli start &
ns-rody # /usr/local/radius/sbin/radius start &
12. Tes user radiusnya, apakah benar nge-load data dari mysql.
Oke, ak dah bikin user dan password lewat phpmyprepaid, user : rody, password : ganteng.. kemudian aku cek :
ns-rody# /usr/local/radius/bin/radtest rody ganteng localhost 1812 testing123
Sending Access-Request of id 251 to 127.0.0.1 port 1812
User-Name = “rody”
User-Password = “ganteng”
NAS-IP-Address = 255.255.255.255
NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=251, length=32
Idle-Timeout = 360
Session-Timeout = 180000
Nah, klo outputnya keluar seperti di atas, Insya Allah konfigurasi udah benar..
Selamat Mencoba.. Klo salah beritau ya…
Monday, 1 November 2010
Subscribe to:
Post Comments (Atom)
itu osnya apa
ReplyDelete