MANAJEMEN FIREWALL BERBASIS WEB.

(1)

SKRIPSI

Disusun Oleh :

ANDY ROSYADI ILMAWAN

NPM. 0434010275

JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

UNIVERSITAS PEMBANGUNAN NASIONAL “VETERAN” JAWA TIMUR SURABAYA


(2)

Pertama kali ijinkanlah kami mengucapkan puja dan puji syukur ke Hadirat Allah Yang Maha Esa atas selesainya laporan Tugas Akhir ini. Karena atas berkat rahmat serta hidayah-Nya, kami dapat menyelesaikan laporan Tugas Akhir ini yang telah menyita banyak waktu, tenaga, namun kami tetap diberi kesehatan dan semangat kerja yang tinggi. Amin.

Pada laporan ini, kami akan membahas tentang Manajemen Firewall Berbasis Web.

Penyusunan laporan ini tidak lepas dari bantuan serta kerja sama dari banyak pihak. Untuk itu dengan segala kerendahan hati kami mengucapkan terima kasih yang sebesar – besarnya kepada:

1. Kedua Orang Tua kami tercinta atas semua doa, dukungan serta harapan-harapanya pada saat kami menyelesaikan kerja praktek lapang dan laporan ini. Yang kami minta hanya doa restunya.s

2. Bapak Basuki Rahmat, S.Si, MT. dan Bapak Achmad Junaidi, S.Kom selaku dosen pembimbing TA. Terima kasih atas semua bimbingannya selama kami menyelesaikan laporan TA ini. Terima kasih juga atas semua sarannya yang telah diberikan selama bimbingan.

3. Bapak Ir. SUTIYONO, MT selaku Dekan Fakultas Teknologi Industri Universitas Pembangunan Nasional “Veteran” Jawa Timur.


(3)

4. Bapak Nur Cahyo Wibowo, S. Kom, M. Kom dan Bapak Budi Nugroho, S.Kom selaku dosen penguji T.A yang juga memberikan semangat dan motivasi kepada kami.

5. Dosen – Dosen Jurusan Teknik Informatika UPN “VETERAN” JATIM, yang telah membuat kami membuka pikiran dan merubah pola pikir kami.

6. Kawan – kawan seperjuangan, Dwi Cahyo, S.Kom, Muhammad Faizal, S.Kom, Mat Toenk, Deni Duro, Gondrong, A’an, Eko Teweh, Yohannes, Mahdi, Basra, Ali, dan semua teman-teman kami yang belum disebut, terima kasih atas segala bantuan dan dorongannya.

Kami sebagai manusia biasa pasti mempunyai keterbatasan dan banyak sekali kekurangan, terutama dalam pembuatan laporan ini. Untuk itu kami sangat membutuhkan kritik dan saran yang membangun dalam memperbaiki penulisan laporan ini.

Surabaya, Juni 2010


(4)

ABSTRAK .... ... i

KATA PENGANTAR ... ii

DAFTAR ISI ... iv

DAFTAR GAMBAR ... viii

DAFTAR TABEL... xi

BAB I PENDAHULUAN ... 1

1.1.Latar Belakang ... 1

1.2.Identifikasi Masalah ... 2

1.3.Rumusan Masalah ... 3

1.4.Batasan Masalah ... 3

1.5.Tujuan Penelitian ... 4

1.6.Manfaat Penelitian ... 4

1.7.Metodologi Penelitian ... 5

1.8.Sistematika Penulisan ... 5

BAB II DASAR TEORI ... 7

2.1. Sejarah Perkembangan Firewall ... 7

2.2. Linux ... ... 10

2.3. Shell ……….. ... 14

2.3.1. Macam-macam Shell …... 15


(5)

2.5.1.1. Target dan Jump ... 27

2.5.1.2. Iptables Option ... 29

2.6. Apache Web Server ... 32

2.6.1. Apache . ... 32

2.7. PHP ... ... 33

2.7.1. Kelebihan PHP . ... 34

BAB III ANALISA DAN PERANCANGAN SISTEM... 36

3.1. Analisa Sistem…... 36

3.2. Perancangan Sistem ... 37

3.2.1. Deskripsi Sistem ... 37

3.2.2. Skema Sistem ... ... 38

3.2.3. Design Web Template ... 39

3.3. Kebutuhan Perangkat Keras dan Perangkat Lunak ... 40

3.3.1. Kebutuhan Perangkat Keras . ... 40

3.3.2. Kebutuhan Perangkat Lunak . ... 41

3.4. Alur sistem ( Flowchart ) . ... 41

BAB IV IMPLEMENTASI APLIKASI ... 44

4.1. Proses Instalasi perangkat lunak beserta Konfigurasi ... 44

4.1.1. Proses Instalasi dan konfigurasi apache sebagai web server. 44 4.1.2. Proses Instalasi dan konfigurasi PHP5 . ... 47

4.2. Pengkodean aplikasi ( Coding ) ... 50

4.2.1. Interface ( Antar Muka ) ... 51

4.2.1.1. Halaman Login . ... 51

4.2.1.2. Halaman Utama ( Halaman Paket filtering ) ... 51


(6)

4.2.1.4. Halaman NAT (Network Adress Translation ) . .... 53

4.2.1.5. Halaman Tambah Rule ( Paket filtering ) ... 54

4.2.1.5.1. Halaman tambah rule ( Chain Input ) . ... 54

4.2.1.5.2. Halaman tambah rule ( Chain Forward ) ... 55

4.2.1.5.3. Halaman tambah rule ( Chain Output ) . ... 56

4.2.1.6. Halaman Tambah Rule ( Paket Mangle ) . ... 57

4.2.1.6.1. Halaman tambah rule ( Prerouting ) . ... 58

4.2.1.6.2. Halaman tambah rule ( Postrouting ) . ... 58

4.2.1.7. Halaman Tambah Rule ( Paket NAT ) . ... 59

4.2.1.7.1. Halaman tambah rule ( Prerouting ) . ... 59

4.2.1.7.2. Halaman tambah rule ( Output ) ... 60

4.2.1.7.3. Halaman tambah rule ( Postrouting ) . ... 61

BAB V PENGUJIAN APLIKASI ... 63

5.1. Lingkungan Uji Coba ... 63

5.2.Pelaksanaan Uji Coba Sistem Manajemen Firewall Berbasis Web 64 5.2.1. Tes Koneksi Jaringan... 64

5.2.2. Uji Coba Aplikasi oleh Komputer Server ... 65

5.2.2.1. Uji coba pada proses Login . ... 65

5.2.2.2. Uji coba pada halaman utama (Paket filtering ) .... 66

5.2.2.3. Uji coba pada halaman Paket Mangle . ... 68

5.2.2.4. Uji coba pada halaman NAT . ... 69

5.2.2.5. Uji coba Penambahan rule secara Manual ... 69

5.2.2.6. Uji coba Penambahan rule untuk tabel NAT secara manual . ... 73


(7)

5.2.3. Uji coba Aplikasi antara Client dan Server ... 79

5.2.3.1. Arsitektur Jaringan Manajemen Firewall ... 80

5.2.3.2. Uji Coba Aplikasi oleh Server pada Client ... 81

5.2.3.3. Uji Coba Aplikasi terhadap File Sharing Antar Client ... 84

BAB VI PENUTUP ... 88

6.1. Kesimpulan ... 88

6.2. Saran ... 88


(8)

Pembimbing II : Achmad Junaidi, S.Kom ABSTRAK

Dalam perkembangannya media komunikasi data mengalami perubahan yang begitu cepat. Perkembangan teknologi telah menyebabkan terjadinya perubahan didalam aktivitas manusia sehari-hari, dimana manusia selalu menginginkan segala sesuatunya efisien dan efektif. Tak lepas dari perkembangan teknologi, keamanan jaringan sangatlah penting. Keamanan jaringan berfungsi untuk menjaga hal-hal yang tidak diinginkan oleh pihak-pihak yang tidak bertanggung jawab. Oleh karena itu keamanan jaringan sangat diutamakan. Namun, aplikasi yang menawarkan sistem keamanan terhadap jaringan tergolong mahal, sehingga orang akan cenderung mencari aplikasi yang gratis. Namun, kebanyakan aplikasi tersebut susah dioperasikan oleh orang-orang awam.

Pada penelitian Tugas Akhir ini, akan dilakukan pembuatan suatu sistem manajemen firewall berbasis web. Sebagai tahap awal pembuatan adalah menganalisa apa saja yang dibutuhkan untuk pembentukan jaringan, kemudian dibuatlah perancangan sistem manajemen firewall. Pembuatan aplikasi ini berbasis website, mulai dari bahasa pemrograman yang digunakan adalah PHP dan Apache sebagai web servernya serta iptables sebagai fungsi firewallnya.

Dengan adanya Sistem Manajemen Firewall Berbasis Web proses pengamanan jaringan akan lebih efektif dan efisien serta tidak akan menghabiskan banyak biaya karena aplikasi bersifat open source ( gratis ). Hal ini dapat dibuktikan bahwa harga windows firewall sekarang mencapai minimal Rp.700.000,- ( tujuh ratus ribu rupiah ) bahkan bisa lebih dari itu. Dan dengan adanya interface web akan lebih memudahkan semua kalangan untuk pengoperasiannya.


(9)

1.1 Latar Belakang

Keamanan pada suatu jaringan sangat diutamakan, karena berfungsi untuk menjaga hal-hal yang tidak diinginkan oleh pihak-pihak yang tidak bertanggung jawab. Saat ini, telah banyak beredar di pasaran aplikasi-aplikasi yang menawarkan sistem keamanan terhadap jaringan, namun aplikasi tersebut masih menimbulkan beberapa kendala bagi beberapa kalangan baik instansi maupun perorangan yang masih dalam tahap berkembang, kendala yang terjadi terutama dari segi harga yang masih relatif mahal, sehingga muncul pemikiran untuk mencari alternatif pengganti untuk aplikasi tersebut.

Dalam hal ini, aplikasi yang dimaksud adalah firewall. Aplikasi firewall dapat berfungsi menjaga keamanan jaringan, mencatat trafik jaringan secara efisien dan juga dapat membatasi akses antar komputer di intranet. Namun aplikasi firewall yang beredar di pasaran relatif tergolong mahal, sehingga tidak semua kalangan dapat memilikinya dan menggunakannya.

Solusi untuk mengatasi hal tersebut adalah dengan memanfaatkan aplikasi-aplikasi open source yang bersifat gratis atau bebas untuk dimiliki maupun disebarluaskan. Dari segi fitur, aplikasi open source bisa dihandalkan dikarenakan bersifat open source maka banyak dukungan dari


(10)

programmer dunia untuk mengembangkan aplikasi ini, sehingga lebih cepat dalam hal pengembangan dan penyempurnaan aplikasi. Akan tetapi bila ditinjau dari segi pengoperasiannya memang masih memiliki kekurangan dibandingkan aplikasi komersil, dikarenakan masih menggunakan baris-baris perintah yang tidak semua orang dapat dengan mudah dan cepat mempelajari aplikasi berbasis open source ini.

Dalam pengkonfigurasiannya setiap pengguna harus mengetikkan baris-baris perintah sehingga masih memungkinkan kesalahan dalam pengetikkan, akibatnya aplikasi tersebut tidak berjalan sebagaimana mestinya, seperti yang dikehendaki.

1.2 Identifikasi Masalah

Dari beberapa uraian yang telah diutarakan diatas terdapat beberapa identifikasi masalah yang dapat ditemukan antara lain adalah :

a) Aplikasi firewall yang beredar di pasaran tergolong mahal harganya, tidak semua kalangan biasa dapat memiliki dan menggunakannya. Sehingga muncul solusi alternatif untuk menggunakan aplikasi open source sebagai gantinya.

b) Aplikasi open source sebagai solusi alternatif untuk menggantikan produk komersil masih terdapat beberapa kekurangan dalam masalah interface terhadap pengguna, dikarenakan masih bersifat baris-baris perintah yang memang tidak semua orang bisa dengan cepat dan


(11)

teks atau baris perintah memungkinkan terjadinya kesalahan pengetikan sehingga menimbulkan aplikasi tidak berjalan sebagaimana mestinya. Oleh karena itu diharapkan dengan adanya penelitian ini bisa memberikan kemudahan dalam pengoperasiannya.

1.3 Rumusan Masalah

Rumusan masalah dalam pembuatan Tugas Akhir ini meliputi : a) Bagaimana cara penelitian ini bisa berjalan dengan lancar sehingga

dampaknya dapat memberikan kemudahan bagi pengguna aplikasi berbasis open source untuk mengoprasikannya?

b) Bagaimana mengoptimalkan dan memanfaatkan aplikasi berbasis open source sebagai alternatif pengganti, yang diharapkan bisa dihandalkan dan bisa lebih efektif dan efisien serta berjalan dengan optimal?

c) Bagaimana menguji aplikasi ini untuk mengetahui keberhasilan konsep yang diterapkan, sekaligus pemantauan (monitoring) hasil pengujian yang diperoleh?

1.4 Batasan Masalah

Adapun batasan masalah dalam pembuatan Tugas Akhir ini adalah sebagai berikut :

a) Aplikasi dari sistem ini meliputi, bagaimana cara membangun alat bantu berbasis web untuk pengoperasian atau pengaturan Firewall. b) Firewall yang digunakan berbasis iptables.

c) Rancangan interface yang dibangun berbasis web dan menggunakan bahasa pemrogramman PHP.


(12)

d) Dikarenakan berbasis web maka harus digunakan web server yang mendukung pemrograman tersebut, web server yang digunakan masih berbasis open source yakni Apache web server.

1.5 Tujuan Penelitian

Adapun tujuan dari penelitian dari Tugas Akhir ini adalah : a) Merupakan salah satu syarat untuk mendapat gelar S1

b) Memperkenalkan dan menjelaskan aplikasi yang telah dikembangkan agar dapat bermanfaat bagi pengguna dalam memahami konsep firewall dan pengoptimalannya.

c) Setelah adanya penelitian ini diharapkan pengimplementasian terhadap aplikasi berbasis open source firewall pada khususnya bisa lebih mudah untuk diterapkan.

d) Bisa dijadikan bahan acuan dan pertimbangan bagi para mahasiswa dan praktisi-praktisi pada bidang kemanan jaringan untuk menggunakan produk open source.

e) Diharapkan agar pengembangan terhadap produk open source bisa lebih ditingkatkan lagi, guna memberikan kemudahan terhadap para pengguna produk open source.

1.6 Manfaat Hasil Penelitian

Adapun manfaat yang bisa diperoleh dari peneltitian Tugas Akhir ini adalah sebagai berikut :


(13)

a. Dengan adanya penelitian ini, diharapkan dapat menunjang perkembangan open source baik di lingkungan kampus khususnya dan keamanan jaringan pada umumnya.

b. Diharapkan dengan adanya penelitian ini, dapat memberikan kemudahan dalam menggunakan aplikasi firewall bagi semua kalangan.

1.7 Metodologi Penelitian

Langkah – langkah yang dilakukan dalam menyusun tugas akhir ini adalah sebagai berikut :

a) Studi Literatur.

Studi ini membahas tentang teknologi web, jaringan dan bahasa pemrograman PHP sebagai dasar pembuatan aplikasi ini.

b) Pengumpulan Data.

Pada tahap ini dilakukan pengumpulan data, dimana data tersebut didapatkan dari media buku maupun media internet.

c) Desain Aplikasi.

d) Penyusunan Buku Tugas Akhir.

Bagian ini merupakan tahap akhir dari serangkaian metodologi yang dilakukan penulisan dokumentasi dari tahapan konsep, tahapan desain sampai tahapan akhir.

1.8 Sistematika Penulisan

Dalam laporan Tugas Akhir ini, pembahasan disajikan dalam enam


(14)

BAB I PENDAHULUAN

Berisi latar belakang yang menjelaskan tentang pentingnya penelitian Tugas Akhir yang dilakukan, identifikasi masalah, rumusan masalah, tujuan, manfaat, metodologi dan sistematika penulisan yang digunakan dalam laporan Tugas Akhir ini. BAB II LANDASAN TEORI

Bab ini menjelaskan tentang landasan teori penunjang yang akan mendukung dalam pembuatan laporan Tugas Akhir ini. BAB III ANALISIS DAN DESAIN APLIKASI

Berisi tentang metode penelitian Tugas Akhir, dan metode perancangan dan desain dari sistem aplikasi yang dibuat.

BAB IV IMPLEMENTASI APLIKASI

Berisi tentang implementasi perancangan sistem aplikasi yang telah dibuat beserta instalasi software yang dibutuhkan. BAB V PENGUJIAN APLIKASI

Bab ini menjelaskan tentang pengujian atau testing terhadap aplikasi yang telah dibuat dalam penelitian Tugas Akhir ini. BAB VI PENUTUP

Bab ini berisi tentang kesimpulan dari keseluruhan isi laporan Tugas Akhir beserta saran untuk kesempurnaan sistem.

DAFTAR PUSTAKA


(15)

2.1 Sejarah Perkembangan Firewall

Dewasa ini, minat dan pemahaman terhadap sistem keamanan jaringan (network security) semakin meningkat seiring dengan tingginya kebutuhan untuk itu. Hal ini, tidak diragukan lagi, terjadi akibat meluasnya penggunaan internet dan banyaknya perusahaan yang telah mengimplementasikan teknologi informasi berbasis jaringan pada bisnis mereka. Internet firewall, dengan segala kelebihan maupun kekurangannya, adalah salah satu mekanisme pengamanan yang paling banyak dipakai saat ini. Dalam artikel ini, akan dipelajari secara sepintas tentang apa itu internet firewall, sejarahnya, serta melihat bagaimana ia digunakan pada saat ini maupun di masa mendatang.

Istilah “firewall” sendiri sebenarnya juga dikenal dalam disiplin lain, dan dalam kenyataannya, istilah ini tidak hanya bersangkutan dengan terminologi jaringan. Masyarakt juga menggunakan firewall, misalnya untuk memisahkan garasi dari rumah, atau memisahkan satu apartemen dengan apartemen lainnya. Dalam hal ini, firewall adalah penahan (barrier) terhadap api yang dimaksudkan untuk memperlambat penyebaran api seandainya terjadi kebakaran sebelum petugas pemadam kebakaran datang untuk memadamkan api. Contoh lain dari firewall juga


(16)

bisa ditemui pada kendaran bermotor, dimana firewall memisahkan antara ruang penumpang dan kompartemen mesin.

Dalam terminologi internet, istilah “firewall” didefinisikan sebagai sebuah titik diantara dua/lebih jaringan dimana semua lalu lintas (trafik) harus melaluinya (chooke point); trafik dapat dikendalikan oleh dan diautentifikasi melalui sautu perangkat, dan seluruh trafik selalu dalam kondisi tercatat (logged). Dengan kata lain, “firewall adalah penghalang (barrier) antara ‘kita’ dan ‘mereka’ dengan nilai yang diatur (arbitrary) pada ‘mereka’” (Chesswick, W & Bellovin, S., 1994).

Network firewall yang pertama muncul pada akhir era 1980-an, berupa perangkat router yang dipakai untuk memisahkan suatu network menjadi jaringan lokal (LAN) yang lebih kecil. Dalam kondisi ini, penggunaan firewall hanya dimaksudkan untuk mengurangi masalah peluberan (spill over) data dari LAN ke seluruh jaringan. Hal ini mencegah masalah-masalah semacam error pada manajemen jaringan, atau aplikasi yang terlalu banyak menggunakan sumber daya meluber ke seluruh jaringan. Firewall untuk keperluan sekuriti (security firewall) pertama kali digunakan pada awal dekade 1990-an, berupa router IP dengan aturan filter tertentu. Aturan sekuriti saat itu berupa sesuatu seperti: ijinkan setiap orang “di sini” untuk mengakses “ke luar sana”, juga cegahlah setiap orang (atau apa saja yang tidak disukai) “di luar sana” untuk masuk “ke sini”.


(17)

terbatas. Seringkali sangat sulit untuk menggunakan aturan filter secara benar. Sebagai contoh, dalam beberapa kasus terjadi kesulitan dalam mengenali seluruh bagian dari suatu aplikasi yang dikenakan restriksi. Dalam kasus lainnya, aturan filter harus dirubah apabila ada perubahan “di luar sana”.

Firewall generasi selanjutnya lebih fleksibel, yaitu berupa sebuah firewall yang dibangun pada apa yang disebut “bastion hosts”. Firewall komersial yang pertama dari tipe ini, yang menggunakan filter dan gateway aplikasi (proxies), kemungkinan adalah produk dari Digital Equipment Corp. (DEC) yang dibangun berdasarkan firewall korporat DEC. Brian Reid dan tim engineering di laboratorium sistem jaringan DEC di Pallo Alto adalah pencipta firewall DEC. Firewall komersial pertama dikonfigurasi untuk, dan dikirimkan kepada pelanggan pertamanya, sebuah perusahaan kimia besar yang berbasis di pantai timur AS pada 13 Juni 1991. Dalam beberapa bulan kemudian, Marcus Ranum dari Digital Corp. menciptakan security proxies dan menulis ulang sebagian besar kode program firewall. Produk firewall tersebut kemudian diproduksi massal dengan nama dagang DEC SEAL (singkatan dari Security External Access Link)

Pada 1 Oktober 1993, Trusted Information System (TIS) Firewall Toolkit (FWTK) diluncurkan dalam bentuk kode sumber (source code) ke komunitas internet. Ini menyediakan basis dari produk firewall komersial


(18)

dari TIS yang kemudian dinamai Gauntlet. Dalam fase ini, FWTK masih digunakan untuk keperluan eksperimen, dan untuk kalangan industri dan pemerintahan sebagai basis dari sekuriti jaringan internet mereka. Pada

1994, Check Point menyusul dengan produknya, Firewall-1 yang

memperkenalkan kemudahan penggunaan (user friendliness) di dunia sekuriti internet. Generasi firewall sebelum Firewall-1 memerlukan editing file berformat ASCII dengan ASCII editor. Check Point memperkenalkan ikon, warna, kendali mouse, konfigurasi berbasis X-11, dan antarmuka manajemen (management interface) sehingga sangat memudahkan proses instalasi dan administrasi firewall.

Kebutuhan firewall generasi awal lebih mudah untuk didukung karena dibatasi oleh layanan internet yang tersedia pada masa itu. Tipikal organisasi atau bisnis yang terkoneksi ke internet saat itu hanya memerlukan akses yang secure ke remote terminal access (Telnet), file transfer (FTP), electronic mail (SMTP), dan Usenet (Network News Transfer Protocol, NNTP). Dewasa ini kita menambahkan daftar ini dengan akses ke web, live news broadcasts, informasi cuaca, perkembangan bursa saham, music on demand, audio dan videoconferencing, telephony, akses database, filer sharing, dan segudang layanan lainnya.


(19)

lisensi GNU, sistem operasi 32-64 bit, yang merupakan turunan dari Unix dan dapat dijalankan pada berbagai macam platform perangkat keras mulai dari Intel (x86), hingga prosesor RISC. Linux sebagai program open source yang gratis. Salah satu yang membuat Linux terkenal adalah karena gratis. Dengan lisensi GNU (Gnu Not Unix) user dapat memperoleh program, lengkap dengan kode sumbernya (source code). Tidak hanya itu, user diberikan hak untuk mengkopi sebanyak user mau, atau bahkan mengubah kode sumbernya. Dan itu semua legal dibawah lisensi. Meskipun gratis, lisensi GNU memperbolehkan pihak yang ingin menarik biaya untuk penggandaan maupun pengiriman program.

Kebebasan yang paling penting dari Linux, terutama bagi programmer dan administrator jaringan, adalah kebebasan memperoleh kode sumber (source code) dan kebebasan untuk mengubahnya. Ini berimplikasi pada beberapa hal penting. Pertama keamanan, yang kedua dinamika.

Jika perangkat lunak komersial tidak memperkenankan user untuk mengetahui kode sumbenya maka user tidak akan pernah tahu apakah program yang user beli dari mereka itu aman atau tidak (sering disebut security by obscurity). Hidup user di tangan para vendor. Dan jika ada pemberitahuan tentang bug dari perangkat lunak komersial tersebut, seringkali sudah terlambat. Dengan Linux, user dapat meneliti kode sumbernya langsung, bersama dengan pengguna Linux lainnya.


(20)

Berkembangnya pengguna Linux sebagai komunitas yang terbuka, membuat bug akan cepat diketahui, dan secepat itu pula para programmer akan memperbaiki programnya. User sendiri juga yang menentukan kode yang cocok sesuai dengan perangkat keras maupun kebutuhan dasar perangkat lunak lainnya untuk dapat diimplementasikan. Ibarat sebuah mobil, user bisa memodifikasi sesukanya, bahkan hingga mesin sekalipun, untuk memperoleh bentuk yang diinginkan.

Keterbukaan kode sumber juga memungkinkan sistem operasi berkembang dengan pesat. Jika sebuah program dengan sistem tertutup dan hanya dikembangkan oleh vendor tertentu, paling banyak sekitar seribu hingga lima ribu orang. Sedangkan Linux, dengan keterbukaan kode sumbernya, dikembangkan oleh sukarelawan seluruh dunia. Bug lebih cepat diketahui dan program penambalnya (patch) lebih cepat tersedia. Pendekatan pengembangan sistem operasi ini disebut Bazaar. Kebalikannya sistem Chatedraal sangat tertutup dan hanya berpusat pada satu atau dua pengembang saja.

Linux juga di identikan dengan Kernel. Tegasnya, Linux tidak lain adalah kernel Linux. Namun, Linux adalah istilah yang digunakan untuk menggambarkan Linux sebagai sebuah sistem operasi. Istilah distribusi Linux yang digunakan untuk merujuk pada berbagai sistem operasi yang dibangun di atas Linux Kernel.


(21)

software, dan untuk pekerjaan sehari-hari. Kebebasan yang paling penting dari Linux, terutama bagi programmer dan administrator jaringan, adalah kebebasan memperoleh kode sumber (source code) dan kebebasan untuk mengubahnya. Ini berimplikasi pada beberapa hal penting, yaitu : keamanan dan dinamika.

Karena sifatnya yang kompatible dengan UNIX maka linux dapat berinteraksi baik dengan sistem operasi lain seperti Windows-nya Microsoft, Macintosh-nya Apple, Netware-nya Novell, dan lain-lain. Sistem operasi ini juga menyediakan bahasa pemrograman gratis, lengkap dengan kompilernya, maupun program pembantunya. Beberapa diantaranya adalah :

• ADA

• BASIC

• C

• C++

• Expect

• FORTRAN

• GTK, untuk membuat aplikasi GUI di Linux


(22)

• Phyton

• Skrip Shell

• TCL

• Perl (The Practical Extraction and Report Language), sering dipakai untuk membuat skrip CGI di web.

2.3 Shell

Shell adalah program penerjemah perintah yang dijembatani user dengan sistem operasi. Pada umumnya shell menyediakan prompt sebagai user interface, tempat dimana user mengetikkan perintah-perintah yang diinginkan, baik perintah internal shell ataupun perintah eksternal shell untuk mengeksekusi suatu file program. Disamping itu, shell memungkinkan user menyusun sekumpulan perintah pada sebuah atau beberapa file dengan menggunakan editor teks, untuk dieksekusi seperti layaknya sebuah program.

Hal lain yang sangat penting untuk diketahui mengenai shell selain fungsinya sebagai penjembatan adalah shell menyediakan bahasa pemrograman yang telah disediakan, dan hampir sama dengan bahasa pemrograman tingkat tinggi lainnya, karena pada shell juga terdapat variabel, flow control, quoting dan fucntion.


(23)

arsitektur sistem linux.

Gambar 2.1 Arsitektur Sistem Linux

Dari Gambar 2.1 terlihat bahwa shell merupakan jembatan untuk mengakses kernel, sedangkan hardware hanya dapat diakses oleh kernel. Shell merupakan sebuah interface untuk mengakses kernel baik dari aplikasi maupun utilitas, oleh karena itu maka sebuah penguasaan terhadap shell amat diperlukan untuk menggunakan sistem linux, ditambah lagi banyak perintah maupun konfigurasi yang dilakukan di tingkat shell.

2.3.1 Macam-macam shell

Tidak seperti sistem operasi lain yang hanya menyediakan satu atau 2 shell, sistem operasi dari keluarga unix misalnya linux sampai saat ini dilengkapi oleh banyak shell dengan kumpulan perintah yang sangat


(24)

banyak, sehingga memungkinkan pemakai memilih shell mana yang paling baik untuk membantu menyelesaikan pekerjaannya, atau dapat pula berpindah-pindah dari shell yang satu ke shell yang lain dengan mudah, beberapa shell yang ada di linux dapat dilihat pada tabel di bawah ini Tabel 2.1 Macam-macam Shell

Nama-nama Shell Keterangan

Bourne Shell (sh) sh adalah shell standar Unix yang dibuat tahun 1979

oleh Stephen Bourne dari AT&T dengan memakai bahasa pemrograman Algol. sh terkenal karena sederhana, compact, and cepat. Kelemahannya adalah kurang interkatif seperti tidak ada history, aliasing, dan job control. Default prompt shell sh adalah $ (dolar).

Bourne Again Shell (bash)

Bash merupakan default shell Linux yang merupakan pengembangan dari bourne shell sehingga kompatibel juga di Unix. Shell ini dibuat pada tahun 1988 oleh Brian Fox dari FSF GNU. Fitur yang dimiliki bash antara lain interaktif, dapat membuat shortcut, bisa berwarna, dan lain sebagainya. Default Bash prompt adalah $ (dolar).


(25)

Lanjutan Tabel 2.1 Macam-macam shell

Nama-nama Shell Keterangan

C Shell (csh) csh memiliki feature yang lebih lengkap

dibandingkan sh. Shel ini dibuat tahun 1970an oleh Bill Joy dari University of California at Berkeley dengan menggunakan bahasa C. Fitur csh antara lain command-line history, aliasing, built-in arithmetic, filename completion, dan job control. Kelemahannya adalah shel ini cenderung lambat bila digunakan pada mesin kecil. Default prompt shell csh adalah % (persen).

Tcl Shell Tcl Shell adalah shell yang menggunakan interpreter

Tcl, sehingga Tcl dapat membaca perintah-perintah Tcl dari standar input atau file.

Korn Shell (ksh) Ksh merupakan pengembangan dari bourne shell

yang ditulis oleh David Korn dari AT&T pada pertengahan 1980an. Feature ksh antara lain editable history, aliases, functions, regular expression wildcards, built-in arithmetic, job control, coprocessing, dan special debugging. Default prompt shell ksh adalah $ (dolar).


(26)

Nama-nama Shell Keterangan

A Shell Ash merupakan variasi dari sh yang dibuat oleh

Kenneth Almquist pada tahun 1989. Bila dalam sistem linux terdapat shell bsh maka bsh merupakan symbolic link dari ash.

Z Shell Zsh merupakan bentuk lain dari Korn Shell yang

dikembangkan oleh Paul Falsted. Zsh merupakan bentuk lain dari Tenex C Shell.

2.4 Dasar Arsitektur TCP/IP

TCP/IP (singkatan dari Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Protokol ini tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini. Data tersebut diimplementasikan dalam bentuk perangkat lunak (software) di sistem operasi. Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack.


(27)

Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal 1980-an sebagai sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas (WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat independen terhadap mekanisme transport jaringan fisik yang digunakan, sehingga dapat digunakan di mana saja. Protokol ini menggunakan skema pengalamatan yang sederhana yang disebut sebagai alamat IP (IP Address) yang mengizinkan hingga beberapa ratus juta komputer untuk dapat saling berhubungan satu sama lainnya di Internet. Protokol ini juga bersifat routable yang berarti protokol ini cocok untuk menghubungkan sistem-sistem berbeda (seperti Microsoft Windows dan keluarga UNIX) untuk membentuk jaringan yang heterogen.

Protokol TCP/IP selalu berevolusi seiring dengan waktu, mengingat semakin banyaknya kebutuhan terhadap jaringan komputer dan Internet. Pengembangan ini dilakukan oleh beberapa badan, seperti halnya Internet Society (ISOC), Internet Architecture Board (IAB), dan Internet Engineering Task Force (IETF). Macam-macam protokol yang berjalan di atas TCP/IP, skema pengalamatan, dan konsep TCP/IP didefinisikan dalam dokumen yang disebut sebagai Request for Comments (RFC) yang dikeluarkan oleh IETF.

Secara umum untuk jaringan sekarang, pembakuan yang paling banyak digunakan adalah model yang dibuat oleh International Standard


(28)

Organization (ISO) yang dikenal dengan Open System Interconnection (OSI). Model OSI tidak membahas secara detail cara kerja dari lapisan-lapisan OSI, melainkan hanya memberikan suatu konsep dalam menentukan proses apa yang harus terjadi, dan protokol-protokol apa yang dapat dipakai di suatu lapisan tertentu.

Model jaringan TCP/IP sangat mirip dengan referensi model dari OSI ( Open System Interconnection ) pada “lower layer”, yaitu pada layer 1 “physical” dan layer 2 “data-link”. Berikut ilustrasi perbandingan model OSI dan TCP/IP.

Gambar 2.2 Model jaringan TCP/IP

Model OSI dibagi atas tujuh lapisan (layer) yang masing-masing lapisan mempunyai fungsi dan aturan tersendiri. Tujuan pembagian adalah untuk mempermudah pelaksanaan standar tersebut secara praktis dan untuk memungkinkan fleksibilitas dalam arti perubahan salah satu lapisan tidak mempengaruhi perubahan di lapisan lain.


(29)

Berikut ini akan dijabarkan mengenai fungsi dari masing-masing lapisan:

1. Lapisan Aplikasi (Application Layer)

Merupakan interface pengguna dengan Layer OSI lainnya di layer inilah aplikasi-aplikasi jaringan berada seperti e-mail,ftp, http,danlain sebagainya. Tujuan dari layer ini adalah menampilkan data dari layer dibawahnya kepada pengguna. Protokol yang digunakan : DHCP, DNS, FTP, HTTP, SNMP, SMTP, Telnet, SSH, SMB dan NFS.

2. Lapisan Presentasi (Presentation Layer)

Adalah suatu lapisan yang berfungsi menterjemahkan semua format yang berbeda dari berbagai sumber yang ada pada lapisan OSI ke dalam format yang bisa dimengerti oleh masing-masing lapisan yang terdapat pada lapisan OSI.

3. Lapisan Session (Session Layer)

Berfungsi mensinkronisasikan pertukaran data antar proses aplikasi dan mengkoordinasikan komunikasi antar aplikasi yang berbeda.

Sebagai contohnya adalah sebuah interaktif login dan file transfer

connection, session akan menghubungkan dan menghubungkannya

kembali jika terjadi suatu interupsi. Mencatat nama pada session dan meregisterkan nama/identitas tersebut pada history. Sebagian protokol


(30)

yang digunakan adalah : NetBIOS, RPC. Beberapa perangkat jaringan yang digunakan adalah : Gateway.

4. Lapisan Transport (Transport Layer)

Layer ini menginisialisasi, memelihara, serta mengakhiri komunikasi antar komputer,selain itu juga memastikan data yang dikirim benar serta memperbaiki apabila terjadi kesalahan. Protokol yang dipakai : TCP, ARP, NetBIOS/NetBEUI. Sebagian perangkat

jaringan yang digunakan adalah sebagai berikut : Router, Gateway,

Advanced Cable Tester.

5. Lapisan Network (Network Layer)

Adalah suatu lapisan yang berfungsi untuk menterjemahkan alamat dan nama dari logikal network kepada alamat fisik, sebagai contohnya

adalah : Nama Komputer → MAC address, bertanggung jawab atas

pengamatan, menentukan jalur pengiriman, memanage masalah

jaringan seperti penukaran paket, data congestion dan routing.

Sebagian protokol yang digunakan adlah IP, ARP, ICMP, IMGP. Sebagian perangkat yang digunakan adalah router, ATM switch.

6. Lapisan Data Link (Data Link Layer)


(31)

metode yang digunakan dalam mengirim dan menerima data pada jaringan, serta bertanggung jawab atas pengiriman frame yang valid (error-free) ke komputer lainnya melalui lapisan fisik. Protokol yang digunakan adalah 802.1 OSI model, 802.2 Logical Link Control, 802.3 Ethernet, 802.4 Token Bus, 802.5 Token Ring. Sebagian perangkat keras yang digunakan adalah bridge, switch, NIC, Cable Tester.

7. Lapisan Fisik (Physical Layer)

Adalah lapisan paling bawah, yang berfungsi untuk mendefinisikan kabel, kartu jaringan, dan segala jenis aspek fisik lainnya. Baik itu

mendefinisikan NIC ( Network Interface Card ) ke perangkat keras

maupun mendefinisikan bagaimana kabel dihubungkan melalui NIC. Protokol yang digunakan adalah IEEE (Institute of Electrical and Electronics Engineers) 802, IEEE 802.2. Adapun contoh perangkat keras yang digunakan adalah hub, switch, amplifier.

2.5 IP Tables

Iptables adalah suatu aplikasi open source yang berjalan diatas sistem operasi Linux dengan kernel versi 2.4.x ke atas. Iptables bisa dibilang versi penyempurna dibandingkan versi terdahulunya yakni ipchains yang berjalan pada kernel 2.2.x dan ipwadm yang berjalan pada kernel versi 2.0.x. Aplikasi ini berfungsi untuk menjaga keamanan jaringan yang biasa dikenal dengan firewall. Pada Iptables terdapat fungsi


(32)

Mangling.

Apa saja yang bisa kita lakukan dengan Iptables.

a. Dengan Iptables kita dapat menggunakan NAT untuk membagi akses

koneksi internet kita jika tidak cukup banyak IP Public yang kita dapat dari Internet Service Provider (ISP) yang kita pilih.

b. Kita juga dapat membuat rule firewall untuk membatasi akses terhadap pengguna yang memang tidak diinginkan.

c. Kita juga bisa membuat transparent proxy dengan memanfaatkan

fasilitas NAT yang terdapat pada Iptables.

d. Iptables dapat mengubah atau memanipulasi paket yang bisa disebut

dengan Mangling packet.

Jika service pada Iptables diaktifkan, semua paket yang melalui gateway server atau router akan diproses dan dikontrol terlebih dahulu oleh Iptables. Ada tiga tabel utama yang terdapat pada Iptables, yang berfungsi untuk memproses paket, yakni :

1. Mangle

Berfungsi untuk merespon atau bertanggung jawab atas quality of services.

2. Filter

Bertanggung jawab untuk menyaring paket. Iptables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan, daftar tersebut dinamakan rantai firewall (firewall chain) atau sering


(33)

dan FORWARD.

a. Forward berfungsi untuk menyaring paket yang melalui

router.

b. Input berfungsi untuk menyaring paket yang masuk router.

c. Output berfungsi untuk menyaring paket yang berasal dari

router.

Gambar 2.3 Diagram Rantai Firewall (Firewall Chain)

Pada diagram tersebut, lingkaran menggambarkan ketiga rantai atau chain. Pada saat sebuah paket sampai pada sebuah lingkaran, maka disitulah terjadi proses penyaringan. Rantai akan memutuskan nasib paket tersebut. Apabila keputusannnya adalah DROP, maka paket tersebut akan di-drop. Tetapi jika rantai memutuskan untuk ACCEPT, maka paket akan dilewatkan melalui diagram tersebut.

Sebuah rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan menyatakan “jika paket memiliki informasi awal (header) seperti ini, maka inilah yang harus dilakukan terhadap paket”. Jika


(34)

aturan tersebut tidak sesuai dengan paket, maka aturan berikutnya akan memproses paket tersebut. Apabila sampai aturan terakhir yang ada, paket tersebut belum memenuhi salah satu aturan, maka kernel akan melihat kebijakan bawaan (default) untuk memutuskan apa yang harus dilakukan kepada paket tersebut. Ada dua kebijakan bawaan yaitu default DROP dan default ACCEPT.

3. NAT

Secara umum digunakan untuk melakukan Network Address Translation. NAT adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket. Pada NAT Queue ini terdapat dua bagian utama yang terbentuk pada chain. Dua bagian itu yakni, Prerouting dan Postrouting.

a. Prerouting adalah proses mentranslasikan alamat yang akan

dituju dan berasal dari sumber yang akan melalui router.

b. Postrouting adalah proses mentranslasikan alamat yang

akan dituju dan paket yang ditranslasikan yang terdapat pada router.

2.5.1 Istilah-istilah atau Perintah pada Iptables

Ada beberapa istilah yang terdapat pada Iptables, dimana istilah-istilah tersebut juga merupakan perintah yang digunakan


(35)

2.5.1.1 Target dan Jump

Bagian ini merupakan proses firewall mensortir atau mengidentifikasi berbagai macam IP Paket, sehingga jika terdapat suatu paket dari target yang telah ditentukan maka paket tersebut akan dialihkan ke tempat yang sudah disediakan dan akan diproses lebih lanjut oleh Iptables.

Beberapa target yang lain biasanya memerlukan parameter tambahan:

a. LOG Target

Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice, warning, err, crit, alert dan emerg.Yang kedua adalah -j LOG --log-prefix yang digunakan untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.

b. REJECT Target

Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak untuk memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error message ke host


(36)

pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT dan FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.

Ada beberapa tipe pesan yang bisa dikirimkan yaitu net-unreachable, host-net-unreachable, port-net-unreachable, icmp-proto-unrachable, icmp-net-prohibited dan icmp-host-prohibited.

c. SNAT Target

Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada chain POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.

d. DNAT Target

Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil


(37)

e. MASQUERADE Target

Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option --to-source. MASQUERADE memang didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada user nomor IP yang berubah-ubah.

f. REDIRECT Target

Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk membangun sebuah sistem jaringan yang menggunakan transparent proxy. Contohnya user ingin mengalihkan semua koneksi yang menuju port http untuk memasuki aplikasi http proxy misalnya squid. Target ini hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau pada chain buatan yang dipanggil dari kedua chain tersebut.

2.5.1.2 Iptables Option

Pada Iptables terdapat beberapa opsi yang berfungsi untuk mencocokkan suatu paket terhadap rule yang diberlakukan.


(38)

Option-option tersebut adalah seperti yang dapat dilihat pada tabel di bawah ini :

Tabel 2.2 Tabel Option Iptables

Option Keterangan -A, --append chain

rule-specification

Menambahkan satu atau lebih aturan pada akhir dari rantai aturan. Jika asal dan/atau tujuan menunjuk ke lebih dari satu alamat, sebuah aturan akan ditambahkan ke setiap kombinasi alamat yang mungkin

-D, --delete chain rule-specification

Menghapus satu atau lebih aturan dari rantai yang terpilih. Ada dua versi dari aturan ini : aturan dapat dispesifikasikan sebagai nomor yang dimulai dari angka 1 atau nama aturan yang harus diikuti.

-I, --insert chain rule-specification

Menambahkan satu atau lebih aturan didalam sebuah rantai aturan sebagai sebuah rule number. Jika, sebuah nomor aturan adalah 1, maka aturan akan diletakkan pada kepala rantai aturan. Menjadi default jika tidak ada nomor yang disebutkan. -R, --replace chain

rule-specification

Mengganti aturan pada sebuah rantai aturan. Jika nama sumber atau tujuan menunjuk ke beberapa alamat, perintah akan gagal. Aturan diberi nomor


(39)

Lanjutan Tabel 2.2 Tabel Option Iptables

Option Keterangan

-L, --list [chain] Membuat daftar seluruh aturan yang ada didalam

chain. Jika tidak ada chain yang dipilih, maka seluruh rantai aturan akan ditampilkan.

-F, --flush [chain] Membuang aturan pada rantai aturan yang dipilih (Seluruh aturan didalam tabel jika tidak ada yang diberikan. Sama dengan menghapus seluruh aturan satu demi satu.

-N, --new-chain chain

Digunakan untuk membuat rantai aturan dengan nama tertentu. Nama haruslah belum digunakan.

-p, --protocol Berfungsi untuk mendefinisikan protokol yang

diinginkan.

-s, --source Spesifikasi asal paket

-d, --destination Menspesifikasikan tujuan.

-g, --goto Pemrosesan diteruskan ke rantai aturan yang dibuat

oleh administrator (user specified chain). Jika selesai maka akan kembali ke aturan yang memanggil.

-i, --in-interface Nama interface tempat paket diterima (hanya untuk

paket yang masuk ke INPUT, FORWARD, dan PREROUTING).


(40)

Option Keterangan

-o, --out-interface Nama interface yang digunakan oleh paket untuk

keluar (untuk paket yang masuk rantai aturan FORWARD, OUTPUT, dan POSTROUTING).

2.6 Apache Web Server

Web Server adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan web browser dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML. Salah satu server web yang terkenal di linux adalah Apache.

2.6.1 Apache

Server HTTP Apache atau Server Web/WWW Apache adalah

server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini mengunakan HTTP.

Apache memiliki fitur-fitur canggih seperti pesan kesalahan yang dapat dikonfigurasi, autentikasi berbasis basis data dan lain-lain. Apache


(41)

Apache merupakan perangkat lunak sumber terbuka dikembangkan oleh komunitas terbuka yang terdiri dari pengembang-pengembang dibawah naungan Apache Software Foundation.

2.7 PHP

PHP adalah salah satu bahasa pemrograman berbasis Internet. PHP juga termasuk bahasa pemrograman yang cepat dan gratis, selain itu PHP mendukung penggunaan database seperti MySQL, PostgreSQL, mSQL, Oracle. Untuk dapat menjalankan PHP melalui browser, maka diharuskan

terlebih dahulu menginstall web server (misalnya Apache), Karena PHP

adalah server side scripting language, artinya adalah language script (bahasa skrip) yang dijalankan pada sisi server.

Professional Home Page atau PHP adalah bahasa scripting server side yaitu bahasa yang digunakan pada server tanpa perlu melakukan kompilasi tetapi cukup menuliskan tulisan dalan bentuk ASCII-nya saja. PHP disebut juga sebagai bahasa interpreter. PHP sangat mirip dengan bahasa C. Bahasa pemrograman biasanya diterjemahkan atau dikompilasi terlebih dahulu. Interpreter adalah sebuah program yang digunakan untuk

membaca file yang berisi kode program yang akan dijalankan, kemudian

interpreter tersebut akan meminta CPU untuk melakukan perintah yang

diterimanya. Compiler adalah sebuah program yang membaca file yang

berisi source code kemudian mengkompilasi source code tersebut menjadi kode biner yang dapat dieksekusi secara langsung oleh komputer. Kode


(42)

biner ini tidak dapat dibaca dan dimengerti oleh kebanyakan orang kecuali oleh orang yang tahu bahasa assembler atau mesin.

PHP tersedia untuk hampir semua platform termasuk Linux dan Windows. Seperti halnya dengan program open source lainnya, PHP dibuat di bawah lisensi GNU (General Public License).

PHP dapat digunakan bersama dengan HTML sehingga memudahkan dalam membangun aplikasi web dengan cepat. PHP juga

dapat digunakan untuk update database, menciptakan database dan

mengerjakan perhitungan matematika yang kompleks. Selain itu PHP juga dapat digunakan untuk menghapus file secara acak di suatu sistem

komputer, tergantung pada level keamanan yang menjalankan PHP. PHP

dapat membuat koneksi jaringan Internet dan melayani koneksi tersebut. Karena kehandalannya, cepat, kuat, stabil dan mudah berinteraksi dengan berbagai aplikasi pendukung lainnya seperti MySQL, PostgressSQL, Interbase, ODBC, mSQL, Oracle, Sybase menjadikan PHP

banyak digunakan oleh para web developer untuk membangun aplikasi

web.

2.7.1 Kelebihan PHP

PHP mempunyai kelebihan antara lain :

a. Bahasa pemrograman PHP adalah sebuah bahasa script yang


(43)

b. Web Server yang mendukung PHP dapat ditemukan dimana - mana dari mulai IIS sampai dengan apache, dengan konfigurasi yang relatif mudah.

c. Dalam sisi pemahamanan, PHP adalah bahasa scripting yang

mirip dengan C++

d. PHP adalah bahasa open source yang dapat digunakan di

berbagai mesin (linux, unix, windows) dan dapat dijalankan secara runtime melalui console serta juga dapat menjalankan perintah-perintah system.

Berikut ini adalah cara menyisipkan kode PHP pada halaman HTML biasa.

<script language="php">

. . . . kode PHP . . . .

</script>

Cara yang lebih singkat adalah:

<?php

. . . . kode PHP . . . .

?>

Atau bisa juga

<?

. . . . kode PHP . . . .


(44)

BAB III

ANALISA DAN PERANCANGAN SISTEM

Pada bab ini akan dijelaskan mengenai proses pembangunan Server Manajemen Firewall Berbasis Web yang akan dibuat. Proses pembangunan sistem dalam sub-bab ini akan dibagi menjadi beberapa tahap antara lain, analisa sistem dan perancangan sistem.

3.1 Analisa Sistem

Banyak aplikasi firewall yang beredar di pasaran dan harganya tergolong relatif mahal, dan juga tidak semua kalangan dapat memiliki dan menggunakannya. Solusi lain adalah dengan memanfaatkan aplikasi-aplikasi open source yang bersifat gratis atau bebas untuk dimiliki maupun disebarluaskan. Akan tetapi dalam pengoperasiannya memang masih memiliki kekurangan dibandingkan aplikasi komersil, dikarenakan masih menggunakan baris-baris perintah yang tidak semua orang dapat dengan mudah dan cepat mempelajari aplikasi berbasis open source ini. Dengan alasan tersebut sistem ini dibangun untuk memenuhi kebutuhan akan keamanan jaringan berupa firewall yang mudah dioperasikan oleh semua kalangan.

Karena berbasis web, maka sistem ini bersifat sebagai server. Server merupakan media yang berfungsi sebagai admin. Server bertugas


(45)

akses kepada client dan berhak memblok akses bagi client atau menghapus daftar ip address client yang tecatat pada server. Semua konfigurasi firewall juga diatur oleh server.

3.2. Perancangan Sistem

Pada sub-bab ini akan dijelaskan tentang perancangan pembangunan manajemen firewall berbasis web, dimulai dari awal pembangunan sampai pada simulasi pembangunan sistem, dimana di dalamnya terdapat kebutuhan perangkat keras dan perangkat lunak, work flow diagram, dan deskripsi sistem.

3.2.1. Deskripsi Sistem

Untuk sistem manajemen firewall berbasis web, rancangan prosesnya adalah sebagai berikut : Server melakukan login terlebih dahulu, setelah login benar maka server dapat masuk ke halaman utama yang merupakan halaman control panel. Di halaman control panel inilah konfigurasi firewall dilakukan. Pada halaman ini terdapat 3 sub-menu pilihan yang merupakan tabel utama dari iptables. Diantaranya adalah Packet filtering ( filter ), Packet alteration ( mangle ) dan network address translation ( NAT ).

Konsep yang dibangun dalam sistem ini adalah dengan memanfaatkan perintah-perintah dari iptables untuk membangun firewall. Sama halnya dengan iptables, dalam ketiga tabel utama tersebut juga memiliki rantai firewall ( firewall chain ) atau biasa disebut chain saja.


(46)

Chain-chain tersebut antara lain INPUT, FORWARD dan OUTPUT. Untuk tabel NAT, chain yang sering digunakan adalah Prerouting dan Postrouting.

Dalam sistem ini, user dapat menambahkan suatu rule atau aturan untuk masing-masing chain. Dimana dengan rule yang dimasukkan merupakan manajemen firewall yang dimaksud dalam sistem ini. Rule ini yang nantinya mengatur aliran paket dan data di dalam jaringan. Setelah kita mengkonfigurasi firewall tersebut, user dapat menyimpannya sehingga setting dari firewall tersebut bersifat default. Atau kita juga mengembalikan ke settingan awal atau mereset konfigurasi ke setting awal.

3.2.2. Skema Sistem

Setelah memahami cara kerja dari sistem manajemen firewall berbasis web diatas, maka dapat diimplementasikan sebagai berikut :

  Gambar 3.1 Skema Sistem

Berdasarkan gambar diatas, server mengendalikan aliran paket atau data kepada komputer client. Sedangkan client untuk mengakses data dari server harus melalui firewall terlebih dahulu. Dengan adanya firewall,


(47)

3.2.3. Design web-template sistem

Pada sub-bab ini, akan dijelaskan web-template yang digunakan dalam pembuatan sistem manajemen firewall berbasis web ini. Pada gambar berikut adalah contoh dari web-template yang digunakan.

Header

Menu fungsi utama iptabel Penambahan chain

Kondisi rule Fungsi tabel 1

Kondisi rule Fungsi Tabel 2

Kondisi ruleFungsi Tabel 3

Penyimpanan dan reset firewall

Halaman Utama

header

Input username & pasword

Halaman Login

 

Gambar 3.2 Web-template Sistem

Pada halaman login hanya terdapat dua bagian saja, yaitu header yang merupakan judul atau title dari web dan bagian input username dan password yang nantinya digunakan server untuk login ke dalam sistem. Untuk halaman utama terdapat beberapa bagian, diantaranya adalah header yang isinya adalah nama sistem, kemudian bagian menu fungsi iptable yang berisi 3 fungsi utama yakni filter, mangle dan NAT. Selanjutnya pada bagian penambahan chain difungsikan untuk menambahkan chain, untuk


(48)

bagian kondisi fungsi tabel 1, 2 dan 3 merupakan kondisi yang ditampilkan sesuai dengan aliran paket data. Untuk bagian penyimpanan dan reset firewall difungsikan untuk meletakkan tombol-tombol yang berfungsi menyimpan konfigurasi atau mengembalikan konfigurasi ke setting awal. 3.3. Kebutuhan Perangkat Keras dan Perangkat Lunak

Untuk dapat membangun server Manajemen Firewall basis web dibutuhkan beberapa perangkat keras dan perangkat lunak yang dapat mendukung pembangunan server firewall basis web untuk manajemen firewall. Pada sub-bab ini akan dilakukan perincian terhadap kebutuhan perangkat keras dan kebutuhan perangkat lunak.

Dalam merancang suatu sistem jaringan maka user perlu menentukan jenis-jenis atau spesifikasi perangkat keras yang akan di gunakan. Hal ini merupakan persiapan awal yang harus dilakukan. Dimana tiap-tiap komputer yang digunakan memiliki spesifikasi perangkat keras yang berbeda-beda dapat dijelaskan sebagai berikut:

3.3.1. Kebutuhan Perangkat Keras

1. Komputer server, spesifikasi dari komputer ini adalah :

a) Processor Pentium(R) Dual Core CPU T4200 @ 2.00 GHz b) Hardisk 250GB – 7200 rpm


(49)

d) Marvell Yukon PCI-E Fast Ethernet Controller e) Kabel RJ 45

2. Komputer Client, spesifikasi dari komputer ini adalah : a) Processor AMD Athlon 64 3000 + 1,8 GHz

b) Hardisk SeaGate 160 GB – 7200 rpm ATA c) Memory DDR2 1024 RAM

d) NVIDIA nForce Networking Controller 3.3.2. Kebutuhan Perangkat Lunak

Ada beberapa perangkat lunak yang digunakan dalam perancangan kali ini diantaranya:

1. Linux Ubuntu 9.10 merupakan sistem operasi opensource yang digunakan pada komputer server dan client.

2. Apache webserver difungsikan sebagai aplikasi web server. 3. PHP 5 sebagai bahasa pemrograman.

4. Mozilla firefox dipakai sebagai aplikasi web browser.  

3.4. Alur Sistem (Flowchart)

Proses alur kerja aplikasi manajemen firewall berbasis web ini dapat dijelaskan sebagai berikut :


(50)

Pada aplikasi ini diawali dengan tampilan login yang mengharuskan

server untuk memasukkan username dan password untuk memasuki halaman

utama atau control panel. Jika login gagal maka server harus memasukkan kembali username dan password sampai benar.

Setelah masuk halaman utama, server secara default akan masuk ke halaman tabel packet filter. Dalam halaman ini, server dapat menambahkan rule-rule untuk masing-masing chain, baik itu input, forward atau output. Jika tidak menghendaki proses filtering Server juga bisa juga memilih halaman paket mangle atau halaman NAT untuk dilakukan konfigurasi seperti halnya pada halaman paket filter.

Setelah melakukan konfigurasi, server dapat menyimpan konfigurasi yang telah dilakukan sehingga tidak perlu lagi mengkonfigurasi ulang ketika menjalankan sistem ini lagi. Server juga dapat mengembalikan ke settingan awal konfigurasi jika server menghendaki. Apabila server telah selesai melakukan konfigurasi maka server dapat keluar sistem atau logout untuk mengakhiri aplikasi dan kembali ke halaman login.

Untuk lebih jelasnya mengenai deskripsi alur dari sistem dapat dilihat pada Gambar 3.3 berikut.


(51)

 

Gambar 3.3 Flowchart Sistem Aplikasi

Berdasarkan flowchart tersebut, maka dapat dilihat bagaimana alur dari sistem ini bekerja dari awal penginputan login, hingga keluar dari sistem.


(52)

BAB IV

IMPLEMENTASI APLIKASI

Pada proses implementasi akan dijelaskan beberapa tahap pembangunan aplikasi Manajemen Firewall Berbasis Web, antara lain adalah sebagai berikut :

1. Proses Instalasi perangkat lunak yang digunakan beserta Konfigurasinya.

2. Pengkodean Aplikasi ( Coding ).

4.1 Proses Instalasi perangkat lunak ( software ) beserta Konfigurasi.

Pada proses ini, akan dijelaskan mengenai perangkat lunak apa saja yang akan digunakan dalam pembangunan aplikasi ini. Perangkat lunak yang digunakan antara lain : Apache dan PHP5. Berikut adalah proses dan penjelasan dari instalasi perangkat lunak yang digunakan.

4.1.1. Proses Instalasi dan Konfigurasi Apache sebagai web server

Dalam perancangan kali ini sistem operasi yang digunakan adalah Ubuntu 9.10 (Lucid) dan aplikasi yang digunakan sebagai web servernya adalah Apache web server.


(53)

Ubuntu Linux, langkah pertama yang harus disiapkan adalah menyiapkan source.list untuk apt-get. Perintah apt-get bisa menggunakan repository online maupun repository offline (DVD). Setelah siap, lakukan instalasi apache dengan mengetikan command line berikut ini di terminal :

root@andi:# apt-get install apache

Selanjutnya sistem akan mendownload dan menginstal apache. Untuk lebih jelasnya dapat dilihat pada gambar berikut.

Gambar 4.1. Proses Instalasi Apache

Setelah itu langkah selanjutnya adalah periksa instalasi Apache untuk memastikan bahwa itu bekerja dengan baik. Buka browser firefox dan masukkan baris berikut ke Address bar :


(54)

Langkah diatas akan memperlihatkan pesan yang mengatakan "It works!"Itu berarti Anda telah menginstal Apache 2.2 sukses. Seperti yang terlihat pada gambar berikut.

Gambar 4.2. Proses Pengecekan Apache

Jika tidak muncul seperti seperti gambar diatas, maka user harus memulai Apache dengan menjalankan command line sebagai berikut :

root@andi:#sudo /etc/init.d/apache2 start

Dengan menjalankan perintah tersebut, maka secara otomatis apache akan start. Jika apache sudah dapat berjalan kembali, maka dapat diketikkan kembali langkah sebelumnya untuk pengecekan kembali. Untuk lebih jelasnya dapat dilihat pada gambar berikut.


(55)

Gambar 4.3. Proses start apache

4.1.2. Proses Instalasi dan Konfigurasi PHP 5.

Setelah instalasi dan konfigurasi Apache sudah dilakukan selanjutnya user lakukan instalasi bahasa pemrograman. Bahasa pemrograman yang dipakai adalah PHP. Dan yang digunakan adalah bahasa pemrograman PHP5. Langkah penginstalan untuk PHP 5 dapat digunakan perintah seperti dibawah ini :

root@andi:#apt-get install php5

Dengan mengetikkan perintah di atas, maka secara otomatis sistem akan mendownload dan menginstal PHP. Untuk lebih jelasnya dapat dilihat pada gambar berikut.


(56)

Gambar 4.4. Proses Instalasi PHP

Sesuai dengan gambar diatas, PHP akan terinstall setelah perintah dijalankan tersebut dijalankan. Untuk mengecek apakah PHP sudah terinstall atau belum, user dapat mencoba mengetesnya PHPnya. Namun sebelumnya, harus merestart Apache-nya supaya dapat mengenali PHPnya. Berikut adalah perintahnya :

root@andi:#sudo /etc/init.d/apache2 restart

Setelah perintah tersebut dijalankan, sekarang user dapat mengetes PHPnya dengan cara mencoba untuk membuat file phpinfo yang kemudian disave ke directory /var/www dengan nama file phpinfo.php. Langkahnya, gunakan perintah :

root@andi:#gedit /var/www/info.php

Setelah perintah tersebut dijalankan, maka akan tampil halaman seperti notepad atau wordpad, dimana di dalamnya diisikan syntax php.


(57)

Gambar 4.5 Test PHP5

Sebelum dimasukkan perintah diatas, pastikan directory tersebut sudah diberi permission write terlebih dahulu. Sebab kalau tidak perintah gedit tidak bisa write disana.

Setelah langkah diatas dilakukan, langkah selanjutnya adalah membuka browser mozilla, kemudian pada address bar-nya dimasukkan :

http://localhost/info.php

Maka akan tampak halaman yang menunjukkan apakah PHP 5 sudah terinstall ke dalam sistem. Dimana di dalam halaman ini, terdapat info-info seperti sistem yang digunakan, tahun pembuatan, server API-nya, maupun lokasi konfigurasi PHP 5 dengan apache2.

Untuk lebih jelasnya mengenai halaman ini, dapat dilihat seperti gambar interface berikut ini.


(58)

Gambar 4.6 Halaman info.php

Gambar diatas menunjukkan bahwa PHP5 sudah terinstall di dalam linux. Setelah kedua file tersebut terinstal, maka user dapat memulai membuat website untuk sistem manajemen firewall ini.

4.2. Pengkodean Aplikasi ( Coding )

Seperti yang telah dijelaskan di atas pembuatan aplikasi ini menggunakan bahasa pemrograman PHP dengan Apache sebagai web servernya. Pada sub bab ini akan dijelaskan interface (antar muka) dari masing-masing halaman/form yang terdapat pada aplikasi ini.


(59)

4.2.1. INTERFACE ( Antar Muka )

4.2.1.1. Halaman Login

Halaman ini merupakan halaman pertama ketika user mengakses web aplikasi ini. Disini server harus memasukkan username dan pasword untuk login ke dalam sistem. Username dan pasword yang dimasukkan juga harus valid. Berikut adalah interfacenya.

Gambar 4.7 Halaman Login

4.2.1.2. Halaman Utama ( Halaman Paket filtering )

Halaman ini merupakan halaman pertama kali ditampilkan ketika login dinyatakan benar. Halaman ini merupakan halaman pengaturan fungsi iptables untuk paket filtering. Disini juga terdapat bagian-bagian yang dimana user dapat menambahkan rule untuk masing-masing tables INPUT, FORWARD dan OUTPUT. User juga dapat memilih menu untuk ke halaman fungsi iptables lainnya. Berikut adalah interface dari halaman filtering.


(60)

Gambar 4.8 Halaman Filtering

4.2.1.3. Halaman Mangle ( Halaman Paket alteration )

Halaman ini merupakan halaman untuk fungsi iptables paket alteration ( mangle ). Sama halnya dengan halaman filtering, pada halaman ini juga terdapat bagian-bagian dimana user dapat menambahkan rule, namun berbeda dengan filtering, di halaman mangle ini terdapat tambahan tabel PREROUTING dan POSTROUTING. Berikut adalah interface dari halaman mangle.


(61)

Gambar 4.9 Halaman Mangle

4.2.1.4. Halaman NAT ( Halaman Network Address Translation )

Halaman fungsi ketiga dari iptables, yaitu halaman NAT. Tidak jauh beda dengan kedua fungsi iptables di atas, namun untuk panambahan rule hanya terdapat pada PREROUTING, Output dan POSTROUTING.

Umumnya pada tabel NAT digunakan untuk koneksi internet, bisa juga difungsikan untuk membagi koneksi internet antara client dengan server. Berikut merupakan interface dari halaman NAT.


(62)

Gambar 4.10 Halaman NAT

4.2.1.5. Halaman Tambah Rule ( Paket Filtering )

Pada halaman ini, user dapat mengkonfigurasi untuk menambahkan sebuah rule untuk tabel-tabel dari paket filtering. Dikarenakan pada halaman paket filtering terdapat tiga chain. Maka untuk penambahan rule juga terdapat tiga halaman penambahan rule untuk masing-masing dari ketiga chain tersebut.

4.2.1.5.1 Halaman Tambah Rule ( Chain Input )

Halaman ini adalah halaman pengkonfigurasian penambahan rule untuk tabel input pada paket filtering. Pada halaman ini, user dapat mengonfigurasi penambahan rule untuk tabel input ( incoming paket ), dimana user hanya tinggal memasukkan apa saja yang ingin dimasukkan ke dalam rule untuk tabel input. Rule-rule


(63)

filtering. Berikut adalah interface dari Halaman Tambah Rule untuk tabel input.

Gambar 4.11 Halaman Tambah Rule Chain Input ( Paket filtering )

4.2.1.5.2 Halaman Tambah Rule ( Chain Forward )

Merupakan halaman untuk pengkonfigurasian penambahan rule untuk tabel forward pada paket filtering. Sama halnya dengan tabel input, pada halaman ini user juga dapat mengkonfigurasi tabel forward untuk paket filtering untuk ditambahkan sebuah rule. Sama dengan tabel input, rule-rule yang dimasukkan juga akan ditampilkan pada halaman paket filtering. Berikut adalah interfacenya.


(64)

Gambar 4.12 Halaman Tambah Rule untuk Chain Forward

4.2.1.5.3 Halaman Tambah Rule ( Chain Output )

Halaman ini merupakan halaman pengkonfigurasian penambahan rule untuk tabel output pada paket filtering. Sama halnya dengan kedua tabel sebelumnya, pada halaman ini user juga dapat menambahkan sebuah rule untuk tabel output.

Rule yang dimasukkan nantinya juga akan ditampilkan pada halaman paket filtering. Rule yang dimasukkan bisa ditambahkan sebuah kondisi sesuai dengan keadaan yang ada. Untuk lebih jelasnya, dapat dilihat pada gambar interface dari halaman berikut.


(65)

Gambar 4.13 Halaman Tambah Rule Chain Output

4.2.1.6. Halaman Tambah Rule ( Paket Mangle )

Pada halaman paket mangle, terdapat 5 chain yang menjadi bagian dari tabel paket mangle. Sama halnya dengan tabel filter, namun untuk paket mangle terdapat tambahan yaitu Prerouting dan Postrouting. Chain-chain tersebut juga dapat ditambahkan sebuah rule untuk mengatur lalu lintas jaringan yang ada. Pada sub-bab ini, akan dijelaskan interface dari tabel paket mangle untuk Prerouting dan Postrouting. Untuk chain input, forwad dan output penjelasannya hampir sama dengan chian input, forward dan output pada tabel paket filtering.

4.2.1.6.1 Halaman Tambah Rule ( Prerouting )

Halaman ini merupakan halaman pengaturan konfigurasi untuk penambahan rule untuk tabel prerouting pada paket mangle.


(66)

Disini user dapat menambahkan rule untuk tabel prerouting. Berikut adalah interfacenya.

Gambar 4.14 Halaman Tambah Rule Chain Prerouting

4.2.1.6.2 Halaman Tambah Rule ( Postrouting )

Halaman ini adalah halaman pengaturan konfigurasi untuk paket-paket yang melewati router ( Postrouting ) untuk ditambahakan sebuah rule. Sama halnya dengan prerouting, disini user dapat menambahkan berbagai rule untuk mengkonfigurasi paket-paket yang telah melewati router. User dapat juga memasukkan sebuah condition atau kondisi untuk masing-masing rule yang dimasukkan. Untuk lebih jelasnya dapat dilihat pada Gambar interface dari halaman berikut.


(67)

Gambar 4.15 Halaman Tambah Rule Chain Postrouting

4.2.1.7. Halaman Tambah Rule ( Paket NAT )

Sama halnya dengan tabel paket filtering dan paket mangle, pada paket NAT juga terdapat tabel-tabel yaitu Prerouting, Output dan Postrouting.Untuk ketiga tabel tersebut juga dapat ditambahkan rule masing-masing. Berikut adalah interface dari masing-masing tabel.

4.2.1.7.1 Halaman Tambah Rule Prerouting

Halaman ini merupakan halaman pengaturan konfigurasi untuk menambahkan sebuah rule untuk tabel Prerouting pada tabel NAT. User dapat menambahkan rule untuk mengkonfigurasi proses mentranslasikan alamat yang akan dituju dan berasal dari sumber yang akan melalui router atau disebut prerouting. Berikut adalah interfacenya.


(68)

Gambar 4.16 Halaman Tambah Rule Chain Prerouting ( NAT )

4.2.1.7.2 Halaman Tambah Rule Output

Halaman ini adalah halaman konfigurasi penambahan rule untuk tabel output pada tabel NAT. Dalam tabel ini, user dapat memasukkan rule untuk mengatur konfigurasi tabel output.

Selain rule chain, user juga dapat menyertakan sebuah condition atau kondisi untuk rule-rule chain yang dimasukkan sesuai dengan kondisi yang ada.

Berikut ini adalah interface dari halaman tambah rule untuk tabel output.


(69)

Gambar 4.17 Halaman Tambah Rule Chain Output ( NAT )

4.2.1.7.3 Halaman Tambah Rule Postrouting

Merupakan halaman untuk mengatur konfigurasi penambahan rule untuk tabel Postrouting pada tabel NAT. Melalui halaman ini, user dapat menambahkan sebuah rule untuk mengkonfigurasi proses mentranslasikan alamat yang akan dituju dan paket yang ditranslasikan yang terdapat pada router atau yang disebut postrouting.

Rule yang telah dimasukkan dan disimpan akan ditambahkan dan ditampilkan ke halaman tabel NAT. User juga dapat menambahkan sebuah kondisi untuk sebuah rule yang dimasukkan sesuai dengan kondisi yang diinginkan oleh user. Berikut adalah Gambar interfacenya.


(70)

Gambar 4.18 Halaman Tambah Rule chain Postrouting ( NAT )

Pada Gambar 4.18 tersebut, ditunjukkan halaman penambahan rule untuk chain Postrouting yang nantinya konfigurasi yang telah dilakukan akan tersimpan pada tabel NAT.


(71)

5.1. Lingkungan Uji Coba

Lingkungan uji coba yang digunakan meliputi perangkat keras dan perangkat lunak. Untuk perangkat keras dan sistem operasi yang digunakan memiliki spesifikasi sebagai berikut,

1. Spesifikasi untuk komputer server adalah :

a) Processor Pentium(R) Dual Core CPU T4200 @ 2.00 GHz b) Hardisk 250GB – 7200 rpm

c) Memory DDR-1GB PC3200

d) Marvell Yukon PCI-E Fast Ethernet Controller e) Kabel RJ 45

2. Spesifikasi untuk komputer client adalah : a) Processor AMD Athlon 64 3000 + 1,8 GHz b) Hardisk SeaGate 160 GB – 7200 rpm ATA c) Memory DDR2 1024 RAM


(72)

5.2. Pelaksanaan Uji Coba Sistem Manajemen Firewall Berbasis Web

Pada sub-bab ini akan dibahas ujicoba dari implementasi aplikasi manajemen firewall berbasis web. Dalam pengujian kali ini akan diuji bagaimana koneksi antar jaringan lokal LAN ( Local Area Network ) antara komputer server dengan komputer client melalui sebuah firewall. Dimana dalam pengujiannya, menggunakan iptables sebagai firewallnya. Adapun proses pengaturan firewall yang dilakukan oleh server berbasis web.

5.2.1. Tes Koneksi Jaringan

Dalam pengujian kali ini akan diuji bagaimana koneksi antar jaringan yang sudah dibentuk. Dimana dalam pengujiannya menggunakan “ping” untuk membuktikan bahwa koneksi antar mesin dapat berjalan dengan baik. Pengujian koneksi antar jaringan dilakukan dengan melakukan ”ping” dari komputer server menuju komputer client.


(73)

baik dan tidak ada masalah maka komputer akan menjawab (me-reply) dan ini memberikan indikasi bahwa jaringan yang dibentuk terhubung dengan baik.

5.2.2. Uji Coba Aplikasi oleh Komputer Server

Seperti yang dijelaskan pada bab 4, sistem ini memiliki beberapa interface ( antar muka ) untuk masing-masing proses firewall. Pada sub-bab ini, akan dijelaskan pengujian untuk masing-masing interface dari web yang dibuat oleh komputer server yang nantinya akan mempengaruhi komputer client berdasarkan proses firewall yang dilakukan komputer server.

5.2.2.1. Uji Coba pada Proses Login

Komputer server harus login setiap kali akan melakukan akses pada sistem ini. Komputer server harus memasukkan username dan password dengan benar. Jika komputer server memasukkan username dan password yang salah maka akan muncul sebuah jendela atau window yang menampilkan pesan bahwa login salah sehingga tidak akan dapat masuk ke halaman utama. Username dan password yang dimasukkan merupakan username root dan password root dari sistem linux yang digunakan pada komputer server.


(74)

Gambar 5.3. Login Gagal

Seperti yang terlihat pada Gambar 5.3 diatas, jendela peringatan akan muncul ketika server salah dalam memasukkan username dan password. Ketika server berhasil memasukkan username dan password maka server akan masuk ke halaman utama seperti yang terlihat pada Gambar 5.4 berikut ini.

Gambar 5.4. Halaman Utama

Gambar diatas merupakan halaman utama yang juga merupakan halaman untuk tabel paket filtering.

5.2.2.2. Uji Coba pada Halaman Utama ( Paket filtering )

Halaman ini merupakan halaman utama web serta halaman untuk melihat konfigurasi apa saja yang berjalan pada paket filtering. Server dapat


(75)

hanya paket filtering saja, server juga dapat memilih untuk mengkonfigurasi tabel paket mangle dan paket NAT dengan memilih paket mangle atau NAT pada combo box untuk menuju ke halaman yang dimaksud.

Melalui halaman ini, sever juga dapat menentukan chain secara default dengan memilih rule chain pada combo box yang telah disediakan untuk masing-masing chain untuk INPUT, FORWARD dan OUTPUT ( Lihat Gambar 5.5 ). Sebagai contoh, kita akan menentukan untuk chain INPUT dengan menambahkan sebuah rule chain ACCEPT. Maka proses firewall yang terjadi adalah komputer server akan mengijinkan atau menerima semua paket yang masuk ke dalam router.

Gambar 5.5 Default Rule Chain

Gambar 5.6 Penambahan Rule Accept untuk INPUT secara Default Pada Gambar 5.6, jika rule chain yang ditambahkan akan masuk ke dalam chain INPUT dengan kondisi menerima semua paket yang masuk ke dalam router. Selain rule ACCEPT, server juga dapat menambahkan rule yang lain sesuai dengan yang diinginkan bukan hanya pada chain INPUT


(76)

melainkan pada chain yang lainnya seperti FORWARD dan OUTPUT. proses firewall dengan kondisi yang sama yaitu always.

5.2.2.3 Uji Coba pada Halaman Paket Mangle

Mangle berguna untuk melakukan perubahan paket yang dispecialkan. Sama halnya dengan tabel paket filter, pada halaman ini terdapat chain seperti INPUT, FORWARD dan OUTPUT, hanya saja pada paket mangle ini terdapat tambahan PREROUTING dan POSTROUTING. Sama dengan tabel filtering, di dalam mangle dapat ditambahkan rule secara default untuk masing-masing chain. Sebagai contoh, ditambahkan rule DROP untuk chain PREROUTING. Maka proses firewall yang terjadi adalah semua proses perubahan paket yang datang sebelum terjadi routing akan di DROP.

Gambar 5.7 Penambahan Rule DROP untuk chain PREROUTING secara default

Berdasarkan Gambar 5.7 tersebut, jika rule chain ditambahkan, maka akan masuk ke chain PREROUTING dengan kondisi always sama halnya dengan paket filtering sebelumnya dikarena rule chain yang


(77)

5.2.2.4 Uji Coba pada Halaman Paket NAT

NAT ( Network Address Translation ) berguna ketika paket yang membuat koneksi baru ditemukan. Pada halaman tabel ini, chain yang dipakai adalah PREROUTING, OUTPUT dan POSTROUTING. Sama halnya dengan tabel filtering dan mangle, server juga dapat menambahkan rule secara default untuk masing-masing chain tersebut. Sebagai contoh, coba tambahkan rule DROP untuk chain OUTPUT. Proses firewall yang terjadi untuk proses ini adalah semua perubahan paket lokal yang keluar dari routing akan didrop.

Gambar 5.8 Penambahan Rule REJECT chain OUTPUT secara default Pada Gambar 5.8 tersebut, apabila rule chain ditambahkan untuk chain OUTPUT, maka rule akan ditambahkan ke dalam chain OUTPUT dengan kondisi always dikarenakan penambahan rule ditambahkan dengan cara penambahan secara default. Hal ini juga berlaku untuk semua chain untuk ketiga tabel.

5.2.2.5 Uji Coba Penambahan Rule secara Manual

Selain penambahan rule secara default, server juga dapat menambahkan rule secara manual untuk mengkonfigurasi masing-masing


(78)

chain dengan mengklik tombol ”Add Rule” yang ada pada masing-masing chain. Selanjutnya akan ditampilkan menu seperti Gambar 5.9 berikut.

Gambar 5.9 Halaman Penambahan Rule secara Manual

Pada gambar tersebut, server dapat menentukan rule chain apa yang ingin ditambahkan ke dalam chain yang diinginkan. Khusus untuk rule chain REJECT, terdapat tambahan opsi reject type sebagai berikut :

1. icmp-net-unreachable 2. icmp-host-unreachable 3. icmp-port-unreachable


(79)

5. icmp-net-prohibited 6. echo-reply

7. tcp-reply

Gambar 5.10 Opsi Tambahan untuk Rule REJECT

Seperti yang terlihat pada gambar tersebut, opsi tambahan tersebut hanya difungsikan pada rule REJECT saja. Selanjutnya server juga dapat menambahkan condition atau kondisi untuk rule yang ditambahkan. Dimana dalam menu kondisi tersebut terdapat berbagai macam pilihan untuk mengkonfigurasi kondisi rule yang akan ditambahkan ke dalam chain.

Gambar 5.11 Salah Satu Menu Penambahan Kondisi Rule Chain

Sesuai dengan gambar tersebut, user dapat mengkondisikan sebuah rule untuk dilakukan pengaturan alamat sumber paket dan tujuan alamat paket ( destination ).

Oleh karena proses penambahan rule untuk masing-masing tabel hampir sama kecuali untuk tabel NAT, maka sebagai contoh kita akan uji coba dengan membuat sebuah rule sederhana untuk sebuah chain. User akan


(80)

menambahkan rule ACCEPT untuk chain INPUT pada tabel paket filtering. Langkah awalnya adalah kita pilih “Add Rule” untuk chain INPUT pada halaman tabel filtering, selanjutnya akan masuk ke halaman penambahan rule. Kita tentukan pada baris Action to take yaitu ACCEPT ( Lihat Gambar 5.12 ). Kemudian tentukan Source addressnya Equal dengan alamat 1.2.3.0, destination addressnya ditentukan Equal dengan alamat 192.168.1.0. Untuk Incoming interface ditentukan Equals dengan Eth0 dan Outgoingnya kita Ignore dikarenakan aturan INPUT tidak dapat digunakan bersamaan dengan opsi output.

Gambar 5.12 Action to take Diset menjadi ACCEPT

Gambar 5.13 Penambahan Kondisi Rule Chain INPUT

Setelah melakukan langkah tersebut, langkah selanjutnya adalah memilih tombol create untuk menambahkan rule chain tersebut pada chain INPUT. Hasil dari penambahan rule tersebut akan disimpan oleh sistem dan ditampilkan pada halaman paket filtering seperti yang terlihat pada Gambar


(81)

Gambar 5.14 Hasil dari Penambahan Rule ACCEPT untuk Chain INPUT Seperti yang terlihat pada gambar tersebut, proses firewall yang terjadi adalah komputer server hanya menerima dan membiarkan paket lewat jika alamat sumbernya 1.2.3.0 dan alamat tujuannya 192.168.1.0 melalui eth0.

5.2.2.6 Uji Coba Penambahan Rule untuk tabel NAT secara Manual Untuk tabel NAT, halaman penambahan rulenya berbeda dengan tabel filter dan mangle. Ada tambahan rule chain untuk masing-masing chain. Untuk chain PREROUTING dan OUTPUT terdapat rule Destination NAT ( DNAT ) yang digunakan untuk menentukan address tujuan yang semestinya diubah, untuk POSTROUTING terdapat rule MASQUERADE dan Source NAT ( SNAT ).


(82)

Gambar 5.16 Penambahan Rule untuk Chain POSTROUTING tabel NAT Untuk rule REDIRECT pada chain PREROUTING, kita dapat menyertakan target port yang akan diREDIRECT namun Network Protocolnya juga harus disertakan. Untuk aturan pada Destination NAT minimal juga harus disertakan IPs and ports for DNAT, dan Network Protocol. Untuk rule MASQUERADE pada chain POSTROUTING, kita juga dapat menyertakan source ports yang akan diMASQUERADE. Sama halnya dengan Destination NAT, untuk aturan pada Source NAT minimal harus disertakan juga IPs and ports for SNAT, dan Network Protocol.

Sebagai contoh, akan di uji coba dengan menambahkan rule REDIRECT pada chain PREROUTING. Langkah awalnya sama dengan sebelumnya yaitu pilih “Add Rule” pada halaman NAT khususnya untuk chain PREROUTING. Selanjutnya akan masuk ke halaman penambahan rule untuk chain PREROUTING. Tentukan Action to take-nya menjadi Redirect ( Lihat gambar 5.17). Tentukan port range-nya misalnya 666 to 777 pada target port-nya. Sesuai dengan aturan diatas jika target port disertakan maka Network Protocol juga harus disertakan. Jadi kita set juga untuk Network Protocolnya menjadi Equal dan kita pilih TCP.


(83)

Gambar 5.17 Penambahan Rule REDIRECT untuk Chain PREROUTING Setelah memasukkan konfigurasi tersebut, maka langkah selanjutnya adalah mengklik tombol create untuk menambahkan rule tersebut pada chain PREROUTING. Hasil dari penambahan rule tersebut akan dismpan oleh sistem dan akan ditampilkan pada halaman paket NAT seperti yang terlihat pada Gambar 5.18 berikut.

Gambar 5.18 Hasil dari penambahan rule REDIRECT untuk chain PREROUTING

Sepert yang terlihat pada Gambar 5.18 diatas, proses firewall yang terjadi adalah komputer server akan mendirected atau meneruskan paket jika protokolnya adalah TCP dan target portnya adalah 666-777.


(84)

5.2.2.7 Uji Coba untuk Edit Rule Chain

Selain menambahkan rule, server juga dapat megedit atau mengupdate rule yang sudah ada. Ini difungsikan supaya server dapat mengatasi kesalahan yang terjadi pada jaringan. Sebagai contoh untuk uji coba, akan dicoba melakukan edit pada rule chain yang sudah ada. Berikut adalah gambar contoh rule chain yang sudah ada.

Gambar 5.19 Rule Chain yang Sudah Ada

Gambar tersebut merupakan gambar chain input yang sudah memiliki rule. Rule yang sudah ada tersebut akan diedit atau rubah dari rule accept menjadi drop untuk rule chainnya. Untuk melakukan editing, langkah awalnya kita lakukan dengan mengklik pilihan edit seperti yang ditunjukkan oleh gambar. Selanjutnya halaman editing akan muncul seperti gambar berikut.


(85)

Gambar 5.20 Halaman Edit Rule

Setelah masuk halaman seperti pada gambar tersebut, maka user dapat merubah konfigurasi yang sudah ada menjadi konfigurasi yang diinginkan. Oleh karena user merubah rule accept menjadi drop, maka langkahnya adalah dengan mengklik pilihan drop pada menu “Action to take”, kemudian pilih create kembali untuk menyimpan konfigurasi.


(86)

Gambar tersebut merupakan hasil dari proses editing rule yang telah dilakukan. Rule chain yang telah diedit sekarang berubah dari rule accept menjadi rule drop. Untuk editing rule tabel yang lainnya langkahnya hampir sama dengan langkah ini.

5.2.2.8 Uji Coba untuk Delete Rule Chain

Selain menambahkan rule dan mengedit rule, server juga dapat menghapus rule yang sudah ada. Ini difungsikan untuk menghapus rule-rule yang sudah tidak dipakai atau tidak diinginkan lagi oleh server. Sebagai contoh untuk uji coba delete rule ini, dapat dilihat pada gambar berikut.

Gambar 5.22 Rule firewall yang Tersimpan

Pada gambar tersebut, terdapat beberapa rule untuk masing-masing chain. Salah satu dari rule tersebut akan dihapus dari sistem. Misalnya yang akan dihapus adalah rule pada chain FORWARD. Langkah yang harus dilakukan adalah dengan mengklik tombol delete seperti yang


(1)

85

Gambar 5.31 Folder yang Di-Share

Seperti yang terlihat pada Gambar diatas, folder yang telah dishare adalah folder My Music. Langkah selanjutnya adalah dengan mengkonfigurasi firewall, dengan menambahkan sebuah rule ACCEPT pada chain FORWARD. Dengan kondisi rule ACCEPT, maka client 2 akan dapat mengakses folder tersebut.

Selanjutnya, client 2 memasukkan alamat ip address dari client 1 pada address bar yang ada di windows explorer yaitu 10.134.11.2. Maka akan tampak seperti gambar berikut ini.


(2)

Pada Gambar tersebut dapat dilihat, ketika client 2 memasukkan ip address client 1, maka folder yang telah dishare oleh client 1 akan ditampilkan pada client 2. Sehingga client 2 dapat mengakses file-file yang ada pada folder tersebut.

Uji coba berikutnya yaitu dengan merubah kondisi rule dari ACCEPT menjadi DROP pada chain tersebut. Dengan kondisi rule ini, maka client 2 tidak akan dapat mengakses folder tersebut.

Gambar 5.33 Kondisi Dirubah Dari ACCEPT Menjadi DROP

Pada Gambar diatas, rule untuk chain FORWARD diset menjadi DROP dengan kondisi semua paket yang melalui dan melewati router akan di-DROP. Langkah berikutnya adalah dengan memasukkan ip address client 1 pada address bar windows explorer client 2 sama halnya langkah sebelumnya. Maka akan didapat sebuah pesan error yang menunjukkan bahwa ip address dari client 1 ( 10.134.11.2 ) tidak dapat diakses. Untuk lebih jelasnya dapat dilihat pada Gambar berikut.

Hak Cipta © milik UPN "Veteran" Jatim :


(3)

87

Gambar 5.34 Pesan Error ketika Akses Client 1

Seperti yang terlihat pada Gambar 5.24 diatas, sebuah pesan error akan ditampilkan ketika client 2 memasukkan ip address dari client 1. Pada pesan error tersebut, dinyatakan bahwa ip address dari client 1 tidak dapat diakses karena network atau jaringan tidak ditemukan. Hal ini dikarenakan rule yang dimasukkan pada chain FORWARD adalah DROP sehingga firewall akan membuang semua paket baik yang masuk maupun yang keluar.


(4)

PENUTUP

6.1. Kesimpulan

Dari uraian pada sub-bab sebelumnya dan dari hasil pengujian terhadap aplikasi manajemen firewall berbasis web, maka dapat disimpulkan :

a) Dengan mempelajari dan memahami konsep yang diterapkan pada penelitian ini, maka akan memberikan suatu kemudahan bagi pengguna aplikasi open source dalam pengoperasiannya.

b) Untuk memanfaatkan dan mengoptimalkan aplikasi open source, dapat dilakukan dengan studi literatur dari masing-masing aplikasi seperti Linux, Apache, PHP dan Iptables.

c) Pengujian aplikasi dilakukan dengan mencoba koneksi antar jaringan pada komputer server dengan komputer client, hal ini dilakukan untuk mengetahui keberhasilan konsep yang diterapkan.

d) Monitoring ( Pemantauan ) hasil pengujian dilakukan oleh server, dimana hal ini digunakan untuk memonitor atau memantau koneksi antar jaringan yang ada.

6.2. Saran

Adapun saran yang dapat digunakan untuk pengembangan dan implementasi manajemen firewall berbasis web adalah sebagai berikut :

88

Hak Cipta © milik UPN "Veteran" Jatim :


(5)

89  

a) Untuk interface pada halaman web dibuat lebih menarik dan interaktif.

b) Untuk konfigurasi penambahan rule untuk masing-masing chain, perlu ditambahkan auto cek error dalam input data sehingga jika terjadi kesalahan akan dapat menampilkan error yang dimaksud.

c) Untuk koneksi yang terjadi di dalam jaringan intra, perlu ditambahkan sebuah grafik yang menggambarkan trafik antar jaringan yang ada.


(6)

90  

1. Ribhy. 2008. Pengertian Linux. Diakses online Maret 2010 dari

http://ribhy.co.cc/v1/sistem-operasi/linux/48-pengertian-linux.html

2. Sanjaya. 2008. Jamu Linux Blogspot. Diakses online Maret 2010 dari

http://jamulinux.blogspot.com/2008/11/perintah-dasar-shell-linux.html

3. Rendy. 2009. Sejarah Pengertian Linux. Diakses online Maret 2010 dari

http://rendyrivai.ngeblogs.com/2009/10/12/sejarah-pengertian-linux/

4. Wordpress. 2009. Linux Shell. Diakses online Maret 2010 dari

http://rhyerphy.wordpress.com/2009/06/10/about-linux-shell/

5. Wikipedia. 2007. Pengertian WebServer. Diakses online Maret 2010 dari

http://id.wikipedia.org/wiki/Web_server

6. TamaHome. 2008. Definisi TCP/IP. Diakses online Maret 2010 dari

http://www.acehforum.or.id/showthread.php?5358-Definisi-TCP-IP

7. Wikibooks. 2010. Pengertian PHP. Diakses online Maret 2010 dari

http://id.wikibooks.org/wiki/Pemrograman_PHP/Pendahuluan/Penge rtian_PHP

8. Wordpress. 2008. Pengertian dan Sejarah PHP. Diakses online Maret

2010 dari http://websick.wordpress.com/2008/06/21/pengertian-dan-sejarah-php/

Hak Cipta © milik UPN "Veteran" Jatim :