50
4.1 TAHAP IMPLEMENTASI
Setelah melakukan analisa perancangan sistem, tahapan selanjutnya adalah melakukan tahap implementasi dan pengujian terhadap sistem. Pada tahapan implementasi terbagi dalam beberapa tahapan yaitu perancangan topologi jaringan yang akan digunakan, instalasi dan konfigurasi sistem berdasarkan analisa yang sudah dilakukan dan juga mengatur bandwidth sesuai kebutuhan yang sudah dianalisa sebelumnya. Kemudian pada tahapan selanjutnya akan dilakukan tahap pengujian sistem, dari sisi administrator maupun dari sisi user.
4.1.1 IMPLEMENTASI PERANCANGAN JARINGAN
Dalam implementasi ini penulis menggunakan sebuah server yang bertugas sebagai server captive portal, server ini juga memiliki 2 buah kartu jaringan agar dapat berkomunikasi dengan jaringan internal (Local Area Network). Pada kartu jaringan yang pertama berada pada segmen IP address yang sama dengan jaringan lokal Dana Pensiun Pertamina, dan pada kartu jaringan yang kedua terhubung dengan akses poin.
4.1.2 IMPLEMENTASI PEMBUATAN SISTEM
Pada tahap ini akan membahas tentang instalasi dan konfigurasi dari perangkat lunak utama maupun pendukung dari terbentuknya sistem captive portal untuk otetentifikasi client pada jaringan nirkabel. Sebelum melakukan instalasi, atur konfigurasi repository ubuntu 9.04 pada file
/etc/apt/source.list agar mengambil paket-paket instalasi dari internet.
Dalam hal ini penulis menggunakan repository dari server yang berada di Indonesia.
Dalam hal ini diasumsikan bahwa server radius dan captive portal berada dalam satu mesin server yang sama dengan konfigurasi sebagai berikut ini :
1. Ehternet card 1 (eth0) menggunakan IP Address 192.9.200.149/24 yang terhubung langsung dengan jaringan LAN Dana Pensiun PERTAMINA. 2. Ethernet card 2 (eth1) tidak diberikan IP Address secara langsung,
melainkan mendapat IP Address dari perangkat lunak chillispot.
3. Password dari MySQL server dalam hal ini menggunakan password “indonesia123”
4. Password dari radius (radius secret) dalam hal ini menggunakan password “BismillaH”.
deb http://dl2.foss-id.web.id/ubuntu jaunty main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu jaunty-updates main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu jaunty-security main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu jaunty-backports main restricted universe multiverse
deb http://dl2.foss-id.web.id/ubuntu jaunty-proposed main restricted universe multiverse
5. Password dari chilllispot (uam_secret) menggunakan password “BismillaH123”
4.1.2.1 INSTALASI DAN KONFIGURASI CHILISPOT
Chilispot adalah perangkat lunak captive portal yang akan memaksa user yang terhubung dengan layanan jaringan nirkabel untuk melakukan authentifikasi sebelum dapat menggunakan jaringan nirkabel tersebut. Jadi pada saat setiap user yang akan melakukan koneksi ke jaringan nirkabel menggunakan wifi, mendeteksi ada nya sebuah SSID yang berasal dari sebuah akses poin dan melakukan koneksi maka akan mendapatkan satu buah ip address yang berasal dari perangkat lunak chillispot. Tetapi ketika ingin melakukan browsing ke internet menggunakan sebuah browser, maka seorang pengguna jaringan nirkabel ini akan secara otomatis diarahkan menuju halaman login untuk memasukan username dan password yang valid dan setelah proses otentikasi berhasil, baru kemudian user tersebut dapat menggunakan jaringan nirkabel tersebut.
Untuk melakukan instalasi chillispot dengan cara sebagai berikut :
Kemudian akan muncul bagian untuk konfigurasi dari chillispot, ditunjukan seperti pada gambar dibawah ini
Gambar 4.2 Konfigurasi Chillispot
Konfigurasi dapat melalui prompt yang muncul dengan menjawab pertanyaan konfigurasi dari instalasi chillispot seperti gambar diatas. Dapat juga melakukan konfigurasi dengan langsung mengedit file konfigurasi dari perangkat lunak chillispot yang terdapat pada /etc/chilli.conf. Dalam studi kasus kali ini, server captive portal dan server radius berada pada satu komputer server yang sama.
Jalankan perintah berikut agar daemon chillispot dapat berjalan secara otomatis ketika komputer server dihidupkan.
Untuk konfigurasi portal login (hotspotlogin.cgi) chillispot sudah menyediakannya, yang dapat diedit seperti untuk penggantian logo sesuai dengan kebutuhan dan lain-lain. File hotspotlogin.cgi dapat diambil didalam direktori berikut :
Jalankan perintah berikut jika file hotspotlogin.cgi masih dalam berbentuk file kompresi net 192.168.182.0/24 dns1 192.9.200.1 radiusserver1 127.0.0.1 radiusserver2 127.0.0.1 radiusauthport 1812 radiussecret BismillaH dhcpif eth1 uamserver https://192.168.182.1/cgi-bin/hotspotlogin.cgi uamhomepage https://192.168.182.1/index.html uamsecret BismillaH123 uamlisten 192.168.182.1 uamallowed www.dp-pertamina.com #chkconfig chillispot on #cd /usr/share/doc/chillispot
Edit file hotspotlogin.cgi dan cari baris $uamsecret dan $userpassword, jika ada tanda „ # ‟ pada baris tersebut maka hapuslah.
4.1.2.2 INSTALASI DAN KONFIGURASI FREERADIUS
Perangkat lunak untuk server radius yang digunakan dalam penelitian ini adalah freeradius, freeradius merupakan perangkat lunak server yang berbasis pada open source dan berlisensi GPL (General Public License) yang dapat digunakan tanpa harus membeli sebuah lisensi dari perangkat lunak tersebut.
Server radius menyediakan mekanisme keamanan dengan menangani otentikasi dan otorisasi koneksi yang dilakukan user. Pada saat komputer client akan menghubungkan diri dengan jaringan maka server radius akan meminta identitas user (username dan password) untuk kemudian dicocokkan dengan data yang ada dalam database server Radius untuk kemudian ditentukan apakah user diijinkan untuk menggunakan layanan dalam jaringan komputer. Jika proses otentikasi dan otorisasi berhasil maka proses pelaporan dilakukan, yakni dengan mencatat semua aktifitas koneksi user, menghitung durasi waktu dan jumlah transfer data dilakukan oleh user. Proses pelaporan yang dilakukan server Radius bisa dalam bentuk waktu (detik, menit, jam, dll) maupun dalam bentuk besar transfer data (Byte, KByte, Mbyte). Adapun cara untuk melakukan instalasi paket freeradius adalah sebagai berikut :
#gunzip hotspotlogin.cgi.gz #chmod 755 hotspotlogin.cgi #mkdir –p /var/www/hotspot/cgi-bin #cp hotspotlogin.cgi /var/www/hotspot/cgi-bin/ $userpassword = 1; $uamsecret = “BismillaH123”;
Beberapa file yang harus dikonfigurasi pada paket freeradius diantaranya :
a) Konfigurasi file client.conf menjadi seperti berikut :
b) Konfigurasi file radius.conf, hanya bagian seperti dibawah ini yang perlu untuk di edit:
c) Setting file sql.conf, yang di edit hanya pada bagian seperti di bawah ini. Untuk bagian lain tetap dibiarkan default.
/etc/freeradius/clients.conf /etc/freeradius/radiusd.conf /etc/freeradius/sql.conf /etc/freeradius/sites-enabled/default /etc/freeradius/sql/mysql/dialup.conf client localhost { ipaddr = 127.0.0.1 secret = BismillaH shortname = localhost nastype = other } run_dir = ${localstatedir}/run/freeradius pidfile = ${run_dir}/freeradius.pid $INCLUDE ${confdir}/sql.conf
d) Setting file /etc/freeradius/sites-enable/default
e) Setting file dialup.conf. Untuk mencegah simultan user, buang tanda pagar pada simul_count_query, dan rubah query menjadi:
Untuk mencoba apakah freeradius sudah berjalan bisa dilakukan dengan menjalankan freeradius pada mode debug dengan perintah berikut.
sql {
server = "localhost" login = "root"
password = "indonesia123" radius_db = "dialupadmin"
Tambahkan atau uncomment baris sql pada section berikut : Uncomment sql pada bagian authorize{}
# See “Authorization Queries” in sql.conf sql
Uncomment sql pada bagian accounting{}
# See “Accounting queries” in sql.conf sql
Uncomment sql pada bagian session{}
# See “Simultaneous Use Checking Queries” in sql.conf
sql
simul_count_query = “SELECT COUNT(*) FROM ${acct_table1} WHERE username = „%{SQL-User-Name}‟ AND acctstoptime IS NULL AND
Jika tidak ada pesan error berarti konfigurasi sudah benar. Tetapi jika masih ada pesan error berarti konfigurasi masih ada yang salah.
4.1.2.3 INSTALASI DAN KONFIGURASI MYSQL SERVER
MySQL adalah sebuah implementasi dari sistem manajemen basis data relasional (RDBMS) yang didistribusikan secara gratis dibawah lisensi GPL (General Public License). Setiap pengguna dapat secara bebas menggunakan MySQL, namun dengan batasan perangkat lunak tersebut tidak boleh dijadikan produk turunan yang bersifat komersial. MySQL sebenarnya merupakan turunan salah satu konsep utama dalam basisdata yang telah ada sebelumnya; SQL (Structured Query Language). SQL adalah sebuah konsep pengoperasian basisdata, terutama untuk pemilihan atau seleksi dan pemasukan data, yang memungkinkan pengoperasian data dikerjakan dengan mudah secara otomatis.
Pada saat instalasi mysql biasanya akan dimintai password untuk user root atau user administrator dari MySQL, namun jika pada saat instalasi di biarkan kosong begitu saja, maka ini bisa membahayakan data yang tersimpan didalam mysql. Untuk itu sebaiknya mysql server diberikan sebuah password agar keamanan data menjadi lebih aman, gunakan perintah berikut untuk memberikan password pada MySQL server.
Dengan perintah tersebut maka untuk admin MySQL dengan user root passwordnya adalah “indonesia123”. Karena dalam studi kasus kali ini penulis menggunakan password tersebut.
#/etc/init.d/freeradius restart #freeradius –X
#apt-get install mysql-server
freeradius membutuhkan database MySQL yang digunakan untuk menyimpan user/password dan juga informasi accounting yang tersimpan. Untuk membuat database dan tabel maka kita harus masuk ke MySQL client dengan root privileges dan menjalankan perintah berikut.
Perintah di atas adalah perintah untuk membuat database radius, dan memberikan semua privileges database radius untuk user root (bisa diganti dengan user lain, yang sebelumnya dibuat terlebih dahulu) yang diikuti password user setelah kata IDENTIFIED BY.
Freeradius sudah menyediakan schema dari database untuk keperluan radius server, tinggal melakukan import maka database untuk keperluan sebuah radius server sudah langsung bisa digunakan. Adapun file schema dan cara melakukan import adalah sebagai berikut.
# mysql -u root -p Enter password:
mysql> create database radius;
mysql> grant all privileges on radius.* to „root‟@localhost IDENTIFIED BY „indonesia123‟; Query OK, 0 rows affected (0.05 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 sec) mysql>exit
#mysql -u root -p radius <
/etc/freeradius/sql/mysql/schema.sql #mysql -u root -p radius <
4.1.2.4 INSTALASI DAN KONFIGURASI WEBSERVER
Jalankan perintah berikut untuk melakukan instalasi webserver dan SSL
Selanjutnya kita perlu menambahkan baris di file apache2.conf yang terletak di direktori /etc/apache dengan perintah berikut:
Kemudian edit kembali file php.ini, yang biasanya terletak di direktori etc/php5/apache2. Cari tulisan “;extension=mysql.so” dan “post_max_size = 8M”, kemudian ganti menjadi seperti berikut.
Mengubah 8M menjadi 16 M yang berarti kita mengubah ukuran maksimum data yang bisa di POST oleh PHP menjadi 16M. Hal ini perlu dilakukan karena pada saat menjalankan script-script dari dialupadmin data yang dieksekusi lebih besar dari 8M, jika tidak dirubah maka script tersebut tidak bisa dikerjakan. Simpan dan kemudian restart webserver apache dengan menggunakan perintah
#apt-get install apache2 php5 php5-mysql
ServerName 192.9.200.149 Atau bisa juga menggunakan ServerName localhost
;extension=mysql.so menjadi extension=mysql.so dan
post_max_size = 8M menjadi post_max_size = 16M
Agar server bisa memberikan sertifikasi bagi client yang sudah melewati proses otentikasi, maka diperlukan paket SSL. Cara menginstal paket SSL adalah sebagai berikut.
Untuk konfigurasi sertifikasi caranya sebagai berikut.
Aktifkan sertifikasi dengan cara sebagai berikut.
Kemudian edit file hotspot menjadi seperti berikut.
#apt-get install ssl-cert
#cd /etc/apache2 #mkdir ssl #make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem #a2enmod ssl #cd /etc/apache2/sites-available/ #cp default hotspot <VirtualHost _default_:443> ServerAdmin [email protected] DocumentRoot /var/www/hotspot <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/>
Options Indexes FollowSymLinks MultiViews AllowOverride None
Order allow,deny allow from all </Directory>
ScriptAlias /cgi-bin/ /var/www/hotspot/cgi-bin/ <Directory "/var/www/hotspot/cgi-bin">
AllowOverride None
#Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny Allow from all </Directory>
Setelah itu lihat konfigurasi ports.conf di direktori /etc/apache2/, kemudian edit menjadi seperti berikut.
Restart ulang webserver agar semua konfigurasi yang sudah dilakukan dapat berjalan, dengan perintah berikut.
4.1.3 IMPLEMENTASI PEMBAGIAN BANDWIDTH
Pada tahap ini diasumsikan bahwa tiap user akan mendapatkan jumlah bandwidth sesuai dengan hasil analisa pada bab sebelumnya. Untuk meng-implementasikannya diperlukan sebuah parameter “WISPr-Bandwidth-Max-Down”, yang harus yang dimasukan kedalam database radius dan dikonfigurasi sesuai dengan kebutuhan. Berikut adalah contoh dari otorisasi bandwidth yang didapatkan oleh masing-masing pengguna yang tergabung dalam suatu grup.
Tabel 4.1 Tabel pembagian bandwidth per grup NameVirtualHost *:80 Listen 80 <IfModule mod_ssl.c> Listen 443 </IfModule> #a2ensite ssl #/etc/init.d/apache2 reload #/etc/init.d/apache2 restart
Semua parameter seperti gambar diatas dimasukan kedalam tabel radgroupreply yang ada pada database radius yang digunakan. Parameter “WISPr-Bandwidth-Max-Down”, parameter ini berfungsi untuk mengatur atau membatasi bandwidth yang diterima oleh masing-masing pengguna yang tergabung didalam suatu grup pengguna.
4.1.3.1 ASUMSI YANG DIPAKAI
Dalam tahap implementasi ini digunakan asumsi-asumsi sebagai berikut : 1. Setiap user yang tergabung didalam grup Umum, Kepensiunan, Pengurus ,
Keuangan dan Investasi akan mendapat bandwidth sebesar 80000bits atau 80kbps
2. Setiap user yang berhasil melakukan login atau sudah ter-otentifikasi maka secara otomatis akan langsung diarahkan menuju website Dana Pensiun Pertamina
3. Setiap user memiliki waktu idle selama 1 menit atau 60 detik, jika user tidak melakukan aktifitas apapun selama waktu tersebut maka secara otomatis logout dan harus melakukan login kembali.
Untuk memenuhi asumsi diatas penulis melakukan input kedalam tabel radgroupreply yang ada di dalam database radius, sehingga menjadi seperti gambar berikut:
Tabel 4.3 Otorisasi pengguna pada grup Umum
Tabel 4.4 Otorisasi pengguna pada grup Investasi
4.2 PENGUJIAN SISTEM DAN APLIKASI
Setelah semua aturan telah di implementasikan, langkah selanjutnya adalah memastikan apakah aturan yang telah di implimentasikan telah atau dapat berjalan dengan baik. Dalam pengujian ini berfokus pada tiga aspek dalam mengontrol akses user sesuai dengan konsep AAA (Authentication, Authorize, Accounting), yaitu otentikasi, otorisasi dan pencatatan atau accounting. Pengujian ini menggunakan metode blackbox dan terbagi menjadi 2 bagian antara lain pengujian pada sistem captive portal dan juga pengujian pada aplikasi yang sudah dibuat. Tentang apa saja bagian-bagian yang diuji, dapat dilihat pada tabel berikut:
Tabel 4.5 Identifikasi dan Rencana Pengujian
Kelas Uji Butir Uji Jenis Pengujian
Konektifitas Deteksi Wifi Pengujian Sistem
Koneksi Ke wifi Pengujian Sistem
Otentikasi Validasi Login Pengujian Sistem
& Aplikasi
Otorisasi Test Otorisasi Pengujian Sistem
Pengolahan data user
Tambah data user Pengujian Aplikasi Hapus data user Pengujian Aplikasi Edit data user Pengujian Aplikasi Lihat data user Pengujian Aplikasi
Accounting
Lihat data login terakhir Pengujian Aplikasi
Lihat catatan koneksi
berdasarkan nama user Pengujian Aplikasi
Lihat catatan koneksi berdasarkan nama user dan berdasarkan tanggal
Pengujian Aplikasi
Ganti Akun Admin Aplikasi
Ganti Password Admin
Aplikasi Pengujian Aplikasi
4.2.1 PENGUJIAN KONEKTIFITAS
Tabel 4.6 Pengujian Konektifitas
No Cara Pengujian Kriteria yang diharapkan Hasil yang diharapkan
1
Seluruh user melakukan pendeteksian sinyal wifi di perangkat notebook
masing-masing
Seluruh user dapat mendeteksi sinyal wifi yang dipancarkan oleh akses poin
Memenuhi
2
Seluruh user melakukan koneksi ke sinyal wifi tersebut
Seluruh user dapat memperoleh ip address yang secara otomatis diberikan oleh server
4.2.2 PENGUJIAN PROSES AUTHENTICATION
Otentikasi (Authentication) yaitu proses pengesahan identitas pengguna (end user) untuk mengakses jaringan. Proses ini diawali dengan pengiriman kode unik misalnya, username, password) oleh pengguna kepada server. Di sisi server, sistem akan menerima kode unik tersebut, selanjutnya membandingkan dengan kode unik yang disimpan dalam database server. Jika hasilnya sama, maka server akan mengirimkan hak akses kepada pengguna. Namun jika hasilnya tidak sama, maka server akan mengirimkan pesan kegagalan dan menolak hak akses pengguna.
Tabel 4.7 Pengujian Otentikasi
No Cara Pengujian Kriteria yang
diharapkan
Hasil yang diharapkan
1
Seluruh user mencoba login menggunakan akun yang valid
User berhasil login, lalu secara otomatis di redirect ke halaman website tertentu dan dapat menggunakan jaringan internet
Memenuhi
2
Seluruh user mencoba login menggunakan akun yang salah
User diarahkan akan kembali ke halaman login
Memenuhi
3
Administrator mencoba login ke aplikasi menggunakan akun yang valid
Administrator akan diberikan menu-menu administrasi
Memenuhi
4
Administrator mencoba login ke aplikasi menggunakan akun yang salah atau tidak valid
Administrator akan diarahkan kembali ke halaman login
Gambar 4.3 Halaman Login Captive Portal
4.2.3 PENGUJIAN PROSES AUTHORIZATION
Tabel 4.8 Pengujian Pengolahan Data
No Cara Pengujian Kriteria yang diharapkan Hasil yang diharapkan
1 Seluruh user berhasil melewati proses otentikasi
Secara otomatis, user akan diarahkan ke halaman website Dana Pensiun Pertamina
Memenuhi
2
Seluruh user melakukan koneksi internet, download data
Seluruh user
mendapatkan otorisasi untuk download sesuai bagian masing-masing
Memenuhi
3
Seluruh user melakukan idle connection selama 10 menit
Seluruh user akan secara otomatis dikeluarkan oleh sistem dari sesi koneksi
Memenuhi
Berikut ini penulis mencoba untuk melakukan pengecekan kecepatan bandwidth yang diterima disisi klien sebelum adanya penerapan aturan pembagian bandwidth pada server radius. Pengecekan ini dilakukan dengan menggunakan bantuan sebuah website speedtest yaitu http://www.speedtest.cbn.net.id.
Berikut adalah kecepatan koneksi, ketika sesudah di-implementasikannya aturan pembagian bandwidth. Penulis mencoba mengunduh file pada saat jam kantor, dengan mencoba koneksi menggunakan username dari salah satu bagian dan bisa terbukti bahwa aturan ini telah berjalan dengan baik, bisa di lihat pada gambar berikut kecepatan downloadnya hanya mencapai 73 Kbps
Gambar 4.6 Speedtest sesudah adanya pembagian bandwidth
4.2.4 PENGUJIAN APLIKASI
Dalam proses ini, server radius akan mengumpulkan informasi seputar berapa lama pengguna melakukan koneksi, billing time (waktu start, waktu stop) yang telah dilaluinya selama pemakaian, sampai berapa besar data yang sudah dilewatkan dalam transaksi komunikasi tersebut, data dan informasi ini akan berguna sekali untuk seorang administrator jaringan. Biasanya informasi ini akan digunakan untuk pembuatan laporan pemakaian, penganalisisan karakteristik jaringan, dan lain-lain. Pada gambar berikut adalah beberapa contoh dari proses accounting, accounting ini hanya dapat dilihat oleh seorang administrator jaringan dengan menggunakan alat manajemen radius server yang dibuat oleh penulis.
Tabel 4.9 Pengujian Pengolahan Data User
No Cara Pengujian Kriteria yang diharapkan Hasil yang diharapkan
1
Penambahan data user, isi data sesuai field-nya kemudian tekan tombol simpan data
Ditampilkan pesan “Data
User Berhasil Disimpan” Memenuhi
2
Pengeditan data user, edit bagian yang diinginkan kemudian tekan tombol simpan
Ditampilkan pesan “Data
User Berhasil DiUpdate” Memenuhi
3
Penghapusan data user, pilih user yang diinginkan kemudian tekan tombol hapus
Ditampilkan pesan “Data
User Berhasil dihapus” Memenuhi
4 Lihat Data User Terdapat daftar user-user
pada aplikasi yang dibuat Memenuhi
Tabel 4.10 Pengujian Accounting
No Cara Pengujian Kriteria yang diharapkan Hasil yang diharapkan
1 Lihat data login terakhir
Ditampilkan list atau daftar user yang terakhir
menggunakan koneksi
Memenuhi
2 Lihat catatan koneksi berdasarkan nama user
Ditampilkan catatan koneksi yang dilakukan oleh user (total pemakaian per session dll) juga terdapat menu untuk cetak
Memenuhi
3
Lihat catatan koneksi berdasarkan nama user dan berdasarkan tanggal
Ditampilkan catatan koneksi yang dilakukan oleh user (total pemakaian per session dll)
berdasarkan tanggal tertentu dan juga terdapat menu untuk cetak
Tabel 4.11 Pengujian Penggantian Akun Aplikasi
No Cara Pengujian Kriteria yang diharapkan Hasil yang diharapkan
1 Ganti Password Aplikasi >= 6 karakter
Ditampilkan pesan “Data
Berhasil disimpan” Memenuhi
2 Ganti Password Aplikasi < 6 karakter
Ditampilkan pesan kegagalan dikarenakan password yang dimasukan kurang dari karakter yang diizinkan
Memenuhi
Gambar 4.7 Catatan accounting per user
Dari gambar diatas dapat terlihat jelas catatan penggunaan seorang klien, mulai dari tanggal koneksi, session time, jumlah download dan upload. Dan berikut adalah catatan koneksi dari seorang klien berdasarkan tanggal tertentu, ditunjukan pada gambar berikut ini.
Gambar 4.8 Catatan Koneksi Berdasarkan Tanggal
Pada gambar diatas menunjukan catatan koneksi seorang user berdasarkan tangal-tanggal tertentu tercatat dengan baik di-server.