Rabu, 26 Juni 2013

Membangun Captive Portal di Freebsd


Perkembangan teknologi hotspot pada saat ini sudah merajalela. Yang mana hampir disetiap tempat kita dapat menemukan jaringan hostpot. Namun terkadang ada beberapa instansi, institusi, maupun perusahahan yang membutuhkan sebuah otentikasi agar bisa menggunakan layanan internet tersebut. Hal ini dilakukan agar si penyedia layanan internet dapat mengatur dan mengelola seluruh pemakai, bandwith, dll didalam hotspot tersebut.

Metode yang dijelaskan diatas disebut dengan metode Captive Portal. Captive Portal merupakan suatu teknik otentikasi 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, sampai user melakukan registrasi terlebih dahulu ke dalam sistem. Biasanya Captive Portal ini digunakan pada infrastruktur wireless seperti hotspot area, tapi tidak menutup kemungkinan diterapkan pada jaringan kabel.
Mekanisme proses teknologi captive portal ini yaitu ketika seorang pengguna berusaha untuk mengakses Internet, sistem akan memaksa pengguna yang belum terotentikasi untuk menuju ke autentication login yang telah disiapkan. Router / gateway mempunyai mekanisme untuk menghubungi autentication server untuk mengetahui identitas dari pengguna wireless yang tersambung, jika cocok maka login akan diallow sesuai rule yang telah kita buat.

Pada pembangunan captice portal ini, untuk system operasi yang digunakan yaitu freebsd, untuk manajement client/user disini menggunakan freeradius, dan untuk database billing menggunakan Mysql. Sedangkan software yang digunakan sebagai aplikasi otentikasi yaitu Chillispot. Pada saat ini. Software untuk aplikasi otentikasi beraneka ragam, namun akan kita bahas pada artikel berikutnya.

Ok. Langkah-langkah pembuatan captive portal adalah sebagai berikut :

1.      Sistem operasi Freebsd sudah di install dan berjalan dengan baik
2.      Instal web server beserta SSL-nya, PHP dan Mysql
3.      Download dan install aplikasi chilispot
      # cd /home/cpa
      # wget 
http://downloads.openwrt.org/sources/chillispot-1.0.tar.gz
      # tar –xzvf chillispot-1.0.tar.gz
      # cd chillispot-1.0
      # ./configure –prefix=/usr/local/chilli
      # make && make install

4.      Konfigurasi aplikasi chilispot
      Copy file chilli.conf ke direktori /etc. Kemudian edit file konfigurasi chilli.conf
      # cp /home/rody/chillispot-1.0/doc/chilli.conf /etc/.
      # vi /etc/chilli.conf

      pidfile /var/run/chilli.pid
      net 172.16..0/28
      dynip 172.16.0/28
      dns1 172.16.1.3
      domain captport.net
      radiuslisten 127.0.0.1
      radiusserver1 127.0.0.1
      radiusserver2 127.0.0.1
      radiusauthport 1812
      radiusacctport 1813
      radiussecret cpatest
      radiusnasid nas01
      dhcpif fxp0
      uamserver 
https://captport.net/cgi-bin/hotspotlogin.cgi
      uamsecret secretuam
      uamlisten 172.16.1.3
      uamport 3990
      uamallowed 172.16.1.3
      setelah konfigurasi chilispot selesai, aktifkan fitur SSL pada webserver.

5.      Edit File hotspotlogin.cgi, dan letakkan pada direktori cgi-bin pada webserver.

      # cp /home/cpa/chillispot-1.0/doc/hotspotlogin.cgi /usr/local/apache2/cgi-bin/.
      # cd /usr/local/apache/cgi-bin
      # vi hotspotlogin.cgi
      cari baris #$uamsecret dan #$userpassword, setelah itu sesuaikan dengan chilli.conf dan hilangkan tanda pagar, contoh :

      Hilangkan tanda pagar didepannya :

      $uamsecret = “sesuaikan dengan uamsecret yang ada pada chilli.conf”;
      $userpassword=1;

6.      Download dan Install Freeradius
Download :  
http://downloads.openwrt.org/sources/
      # cd /home/cpa
      # wget 
http://downloads.openwrt.org/sources/freeradius-1.1.2.tar.gz
      # tar –xzvf freeradius-1.1.2.tar.gz
      # cd freeradius-1.1.2
      # ./configure –prefix=/usr/local/radius
      # make && make install

7.      Konfigurasi clients.conf
      # cd /usr/local/radius/etc/raddb
      # vi clients.conf

       client 127.0.0.1 {
       secret = isinya sama seperti pd file chilli.conf
       shortname = localhost
       nastype = other
       }


8.      Konfigurasi radius.conf
      Untuk konfigurasi radius.conf, edit file radius.conf yang berada pada direktori yang sama dengan    clients.conf
      # vi radiusd.conf
      
      cari baris dibawah 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
      # vi sql.conf
      yang perlu di edit ada adalah baris berikut :
      # Connect info
         server = “localhost”
         login = “user mysql anda”
         password = “passwordnya”
      # Database table configuration
         radius_db = “databaseradius”
      Pada  database di mysql, sesuaikan dengan yang dikonfigurasi pada sql.conf misalnya “databaseradius”

10.  Installasi phpmyprepaid sebagai aplikasi web based untuk manajemen user dan billing hotspot
      download paket phpmyprepaid0.3.3.tgz
      # tar –xzvf phpmyprepaid0.3.3.tgz
      # mv phpmyprepaid0.3.3 /usr/local/apache2/htdocs/prepaid
      # cd /usr/local/apache2/htdocs/prepaid
      # vi config.inc.php 
         $fpdfdir=”/usr/local/apache2/htdocs/prepaid/fpdf”;
      # vi dbconnect.php
      Pada hal ini, sesuaikan dengan system yang telah dibuat
      $my_host=”localhost”;
      $my_user=”usernya”;
      $my_pass=”passwordnya”;
      $my_dbase=”databaseradius”;

     Setelah semua selesai, akses di browser dengan mengetikkan http://ipaddressataudomain/prepaid/,  tabel-tabel pada database radius akan tercreate sendiri dan kita akan diminta username dan password untuk masuk login. Apabila sudah selesai, cobalah buat user beserta password pada phpmyprepaid tersebut.

11.  Menjalankan daemon chillispot dan freeradius
      # /usr/local/chilli/sbin/chilli start &
      # /usr/local/radius/sbin/radius start &

12. Ujicoba dengan membuat user di aplikasi phpmyprepaid, jika OK, Captive Portal siap digunakan.

0 komentar:

Posting Komentar