Implementasi index.html Implementasi Proses

BAB IV IMPLEMENTASI SISTEM

4.1 Lingkungan Implementasi

Aplikasi pengaman jaringan komputer dengan menggunakan metode Port Knocking diimplementasikan pada sistem komputer dengan spesefikasi sebagai berikut : a Processor Intel Pentium 4 atau lebih. b Memory 1 Gb atau lebih. c Harddisk 40 Gb atau lebih. d Sistem operasi Linux Ubuntu 8.04. e PHP 5, PHP CLI Command Line Interface, IPTABLES. f SSH Server Secure Shell Server

4.2 Implementasi Program

Berikut ini merupakan tampilan dari pseudeu code dan form yang digunakan pada aplikasi pengaman jaringan komputer dengan menggunakan metode Port Knocking.

4.2.1 Implementasi index.html

Dari perancangan diperoleh 3 tiga menu yaitu pengaturan user, proses, dan report. Setiap menu yang ada pada aplikasi tersebut memiliki form sendiri. Berikut potongan dari pseudeu code dari fungsi index.html yang membangun 2 dua menu tersebut. 47 a href=processip.php img src=imagesbpls_17.png width=286 height=100 alt= onClick=javascript:window.open processip.php,_parent;atd img src=imagesbpls_21.png width=284 height=100 alt= onClick=javascipt:window.open reportindex.php,_parent Proses Port Knocking dijalankan ketika pengguna memilih menu proses, sedangkan untuk memilih aktifitas yang dicatat oleh log file pengguna dapat memilih menu report. Terdapat 2 dua menu, setiap menu mempunyai form yang berbeda. Form tersebut adalah form untuk proses dan form report.

4.2.2 Implementasi Proses

Pada implementasi proses terdapat 4 empat file yang dijalankan agar metode port knocking dapat berjalan. 4 empat file tersebut adalah : 1. Fle ip.php File ip.php adalah file yang menjalankan aplikasi dari metode port knocking, fungsi untuk cek alamat IP pengguna, rule knocking, aksi yang dijalankan, dan mencatat waktu dan alamat IP kedalam sebuah log file . Berikut pseudeu code dari fungsi tersebut. a. Fungsi mendapatkan alamat IP pengguna, Function getIP { ip; if getenvHTTP_CLIENT_IP ip = getenvHTTP_CLIENT_IP; else ifgetenvHTTP_X_FORWARDED_FOR ip = getenvHTTP_X_FORWARDED_FOR; else ifgetenvREMOTE_ADDR ip = getenvREMOTE_ADDR; else ip = UNKNOWN; return ip; } client_ip=getIP; Pada function getIP, fungsi inilah yang membaca alamat IP dari seorang pengguna saat pengguna menggunakan aplikasi Port Knocking. Fungsi ini yang nantinya menentukan pengguna dapat melakukan aksi untuk membuka atau menutup sebuah port. Karena setiap IP memiliki hak yang berbeda. b. Fungsi Rule Knocking, if_SESSION[hitung]=2 { _SESSION[hitung]++; _SESSION[input_._SESSION[hitung]]=_POST[textjumlah] ; input1=_SESSION[input_1]; input2=_SESSION[input_2]; input3=_SESSION[input_3]; _SESSION[hitung]==0; session_unregisterhitung; ifinput1==100 input2==200 input3==300 { } Fungsi rule knocking adalah fungsi dari salah satu rule knocking ketukan. Setiap ketukan yang dilakukan pengguna akan dijadikan session, yang dimana aplikasi ini menggunakan 3 tiga session. Setiap alamat IP yang terdaftar memiliki fungsi rule untuk knocking ketukan yang berbeda, baik untuk membuka ataupun menutup sebuah port. Jika dari alamat IP yang telah terdaftar tidak dapat melakukan knocking ketukan secara benar yang telah ditentukan maka pengguna tersebut tidak dapat melakukan aksi yang diinginkan. c. Fungsi buka port, { shell_execvarwwwsave2file1.sh TRUE; echo SUKSES BUKA PORT 22; } Fungsi buka port adalah salah satu aksi untuk membuka sebuah port. Agar pengguna dapat membuka port yang pengguna tuju, terlebih dahulu menjalankan suatu file DAEMON untuk mengubah kondisi menjadi TRUE yang sebelumnya kondisi awalnya adalah FALSE. Setelah kondisi berubah menjadi TRUE maka secara otomatis akan merubah perintah IPTABLES sebelumnya. Yaitu untuk membuka port yang dituju agar dapat diakses oleh pengguna yang telah melakukan knocking ketukan secara benar. d. Fungsi tutup Port { shell_execvarwwwsave2file1.sh CLOSE ; echo SUKSES TUTUP PORT 22; } Fungsi tutup port adalah salah satu aksi untuk menutup sebuah port. Agar pengguna dapat menutup port yang pengguna tuju, terlebih dahulu menjalankan suatu file DAEMON untuk mengubah kondisi menjadi CLOSE yang sebelumnya kondisi awalnya adalah FALSE. Setelah kondisi berubah menjadi CLOSE maka secara otomatis akan merubah perintah IPTABLES sebelumnya. Yaitu untuk menutup port yang dituju agar tidak dapat diakses oleh pengguna lainnya yang tidak memiliki hak untuk mengaksesnya. e. Fungsi mencatat alamat IP dan waktu entry_line = --------------------------- Waktu: dtime Alamat IP : client_ip Port : port Status : status --------------------------- ; fp = fopenlog.txt, a; fputsfp, entry_line; fclosefp; Fungsi untuk mencatat alamat IP, waktu, port, status port kedalam log.txt. sehingga nanti dapat dilihat alamat ip mana saja yang telah berhasil melakukan aksi untuk membuka atau menutup sebuah port. 2. File sekerip.sh file sekerip.sh adalah file yang menjalankan perintah IPTABLES, semua perintah IPTABLES sudah disimpan dalam file ini. Perintah yang dijalankan dalam file sekerip.sh sesuai dengan kondisi yang didapat dari state.txt. Berikut pseudeu code untuk file sekerip.sh, binbash while [ 1 ];do STATE1=`cat state1.txt`; if [ STATE1 = TRUE ]; then iptables -I INPUT -p tcp -m tcp -s 192.168.1.11 – dport 22 -j ACCEPT echo iptables -I INPUT -p tcp -m tcp -s 192.168.1.11 --dport 22 -j ACCEPT; echo FALSE state1.txt; fi STATE7=`cat state1.txt`; if [ STATE7 = CLOSE ]; then iptables -I INPUT -p tcp --dport 22 -j REJECT echo iptables -I INPUT -p tcp -m tcp -s 192.168.1.11 --dport 22 -j REJECT; echo FALSE state1.txt; fi 3. File savefile.sh File save2file.sh adalah sebuah file DAEMON, file yang berfungsi untuk merubah kondisi file state.txt yang kondisi tersebut didapat dari file ip.php. Berikut pseudeu code untuk file save2file.sh binsh echo 1 state1.txt binsh echo 1 state2.txt 4. File state.txt File state.txt adalah sebuah file yang menyimpan suatu kondisi untuk menjalankan perintah IPTABLES yang disimpan dalam file sekerip.sh. Kondisi yang ditulis di file state.txt dicatat oleh file save2file.sh. Berikut contoh salah satu kondisi yang dicatat kedalam file state.txt, CLOSE

4.2.3 Implementasi Report