• Tidak ada hasil yang ditemukan

MANAJEMEN FIREWALL BERBASIS WEB.

N/A
N/A
Protected

Academic year: 2017

Membagikan "MANAJEMEN FIREWALL BERBASIS WEB."

Copied!
98
0
0

Teks penuh

(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)

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

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

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

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

(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.

(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.

(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.

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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

(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)

(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

(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

(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

(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

(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

(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

(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

(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

(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:

(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.

(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 ).

(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

(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

Gambar 3.2 Web-template Sistem

(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

(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)

(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.

(51)

 

Gambar 3.3 Flowchart Sistem Aplikasi

(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

(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

(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

(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.

(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 )

(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 )

(60)

Gambar 4.8 Halaman Filtering

4.2.1.3. Halaman Mangle ( Halaman Paket alteration )

(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.

(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

(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 )

(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.

(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 )

(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 )

(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

(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.

(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.

(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 )

(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

(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

(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

(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 :

(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 ).

Gambar

Gambar 2.3 Diagram Rantai Firewall (Firewall Chain)
Tabel 2.2 Tabel Option Iptables
Gambar 3.1 Skema Sistem
Gambar 3.2 Web-template Sistem
+7

Referensi

Dokumen terkait

Dalam hal ini bertanggung jawab atas segala hal yang terjadi dalam lingkup sekolah, membantu kepala sekolah mengawasi para staf- stafnya dan bertanggung jawab

Berdasarkan hal diatas maka untuk meningkatkan sistem keamanan serta melindungi data-data alumni dari pihak- pihak yang tidak diinginkan digunakan sebuah sistem keamanan

Berdasarkan hal diatas maka untuk meningkatkan sistem keamanan serta melindungi data-data alumni dari pihak- pihak yang tidak diinginkan digunakan sebuah sistem keamanan

Suatu keamanan merupakan suatu hal yang sangat penting dalam dunia internet baik keamanan komputer maupun keamanan jaringan yang banyak dipenuhi dengan berbagai ancaman

sistem informasi yang ada tidak disalah gunakan oleh pihak yang tidak bertanggung jawab. Kadung Indomedia bekerja sama dengan pihak Bank, sehingga proses pembayaran dapat

Sebagai administrator jaringan anda di minta untuk menjaga sistem agar tidak terjadi hal-hal yang tidak diinginkan baik yang dari  jaringan dalam atau dari jaringan

Berdasarkan hal diatas maka untuk meningkatkan sistem keamanan serta melindungi data-data alumni dari pihak- pihak yang tidak diinginkan digunakan sebuah sistem keamanan

Nah firewall pun berfungsi sama, yaitu melindungi komputer atau jaringan dari akses komputer lain yang tidak memiliki hak untuk mengakses komputer atau jaringan Anda.. Jadi