program simulasi jaringan komputer tentang...
TRANSCRIPT
PROGRAM SIMULASI JARINGAN KOMPUTER TENTANG PACKET FILTERING DAN FIREWALL
SKRIPSI
Diajukan Untuk Memenuhi Syarat Memperoleh Gelar Sarjana Teknik Program Studi Teknik Informatika
oleh:
Andri Khrisharyadi
NIM : 045314061
PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS SANATA DHARMA
YOGYAKARTA 2008
COMPUTER NETWORK SIMULATION PROGRAM OF FILTERING PACKET AND FIREWALL
A THESIS
Presented as Partial Fulfillment of the Requirements To Obtain Informatics Engineering Degree In Informatics Engineering Department
by:
Andri Khrisharyadi
NIM : 045314061
INFORMATICS ENGINEERING STUDY PROGRAM INFORMATICS ENGINEERING DEPARTMENT
FACULTY OF SAINS AND TECHNOLOGY SANATA DHARMA UNIVERSITY
YOGYAKARTA 2008
ii
iii
iv
MOTTO
“Tuhanlah Gembalaku Takkan Kekurangan Aku”
PERSEMBAHAN
Tulisan ini kupersembahkan kepada :
Tuhan Yesus Kristus &
Bunda Maria
v
INTISARI
Jaringan komputer merupakan sebuah sistem dimana setiap orang dapat
masuk ke komputer orang lain yang berada di jaringan tersebut. Dalam suatu
jaringan komputer keamanan merupakan hal yang sangat penting. Salah satu cara
memberikan keamanan dalam suatu jaringan adalah menggunakan firewall
dengan teknik packet filtering. Packet filtering dapat melakukan pembatasan
akses kepada komputer lain dengan memfilter paket yang lewat di firewall,
dengan menggunakan policy dan rule.
Untuk belajar melakukan setting jaringan dengan firewall sering kesulitan
karena harus memakai banyak komputer. Maka penulis mencoba mengembangkan
progam untuk melakukan simulasi jaringan dengan firewall. Dengan program ini
user dapat melakukan simulasi dengan satu komputer saja. Program ini dapat
melakukan setting IP, setting zone dan interface, setting policy dan rule, simulasi
ping, ftp, http, ssh dan port number lain. Program ini dikembangkan dengan
Macromedia Flash 8 dan bahasa pemrograman action script 2.0.
vi
ABSTRACT
The computer network is a system where everybody could come into other
people’s computer in the same network. In a computer network, safety is a very
important thing. One of the ways to give safety in a network is by using firewall
with filtering packet technique. Packet filtering could limit access to other
computers by filtering packet which passes the firewall, by using policy and rule.
Student often get difficulties in doing network setting with firewall
because it should use many computers. Because of that reason, the writer tries to
develop virtual lab program to do network simulation with firewall. With this
program, user could do simulation with only one computer. This program could
perform setting IP, setting zone and interface, setting policy and rule, ping
simulation, ftp, http, ssh and the other port number. This program was developed
by using Macromedia Flash 8 and programming language Action Script 2.0.
vii
KATA PENGANTAR
Puji syukur saya ucapkan ke hadirat Tuhan Yang Maha Esa atas berkat
dan limpahan kasih karunia yang telah diberikan-Nya sehingga saya dapat
menyelesaikan skripsi ini dengan judul “PROGRAM SIMULASI JARINGAN
KOMPUTER TENTANG PACKET FILTERING DAN FIREWALL”.
Dalam penulisan sekripsi ini, penulis telah banyak memperoleh bantuan
dan bimbingan dari berbagai pihak, oleh karena itu tidak lupa penulis
mengucapkan terimakasih kepada:
1. Tuhan Yesus Kristus, yang telah menganugerahkan kasih karunia dan
rahmat-Nya serta selalu memberikan keberuntungan.
2. Bunda Maria yang telah mendengarkan segala doa dan permohonan.
3. Bapak, Ibu, kakak serta adikku yang selalu memberikan doa, dorongan dan
semangat baik moril maupun spiritual.
4. Romo Ir. Greg. Heliarko SJ, S.S., B.S.T., M.A., M.Sc. selaku Dekan
Fakultas Sains dan Teknologi Universitas Sanata Dharma Yogyakarta.
5. Bapak Puspaningtyas Sanjoyo Adi, S.T., M..T. selaku Ketua Jurusan Teknik
Informatika Fakultas Sains dan Teknologi Universitas Sanata Dharma
Yogyakarta.
6. Ibu Agnes Maria Polina, S.Kom., M.Sc., selaku Dosen Pembimbing
Akademik Angkatan 2004 Jurusan Teknik Informatika Fakultas Sains dan
Teknologi Universitas Sanata Dharma Yogyakarta.
viii
7. Bapak DS. Bambang Soelistijanto, ST.,MSc selaku pembimbing I dan
Agung Hernawan, ST selaku pembimbing II, yang telah memberikan waktu,
bantuan dan bimbingan serta ide-ide dalam menyelesaikan skripsi ini.
8. Kancil, Masbhe (arius_bhe), Kunto, MB, Benny, adwi pethuk dll yang telah
membantu dalam pengerjaan tugas Akhir, baik moril maupun spiritual.
9. Teman-teman TI’2004 yang lain yang telah menjadi teman seperjuangan
dalam melalui kuliah selama ini.
Akhirnya skripsi ini terselesaikan, disadari bahwa skripsi ini jauh dari
sempurna. Untuk itu penulis dengan rendah hati mengharapkan kritik dan saran
yang dapat memberikan kesempurnaan pada penulisan skripsi ini. Akhir kata,
semoga skripsi ini dapat bermanfaat bagi penulis, juga pihak yang membutuhkan.
Yogyakarta, 26 November 2008
Penulis
Andri Khrisharyadi
ix
PERNYATAAN KEASLIAAN KARYA
Saya menyatakan dengan sesungguhnya bahwa Tugas Akhir yang saya
tulis ini tidak memuat karya atau bagian karya orang lain, kecuali yang telah
disebutkan dalam kutipan daftar pustaka, sebagaimana layaknya karya ilmiah.
Yogyakarta, 24 November 2008
Andri Khrisharyadi
x
LEMBAR PERNYATAAN PERSETUJUAN
PUBLIKASI KARYA ILMIAH UNTUK KEPENTINGAN AKADEMIS
Yang bertanda tangan di bawah ini, saya mahasiswa Universitas Sanata Dharma :
Nama : Andri Khrisharyadi
Nomor Mahasiswa : 045314061
Demi pengembangan ilmu pengetahuan, saya memberikan kepada Perpustakaan
Universitas Sanata Dharma karya ilmiah saya yang berjudul :
PROGRAM SIMULASI JARINGAN KOMPUTER TENTANG PACKET
FILTERING DAN FIREWALL
beserta perangkat yang diperlukan (bila ada). Dengan demikian saya memberikan
kepada Perpustakaan Universitas Sanata Dharma hak untuk menyimpan, me-
ngalihkan dalam bentuk media lain, mengelolanya dalam bentuk pangkalan data,
mendistribusikan secara terbatas, dan mempublikasikannya di Internet atau media
lain untuk kepentingan akademis tanpa perlu meminta ijin dari saya maupun
memberikan royalti kepada saya selama tetap mencantumkan nama saya sebagai
penulis.
Demikian pernyataan ini yang saya buat dengan sebenarnya.
Dibuat di Yogyakarta
Pada tanggal : 26 November 2008
Yang menyatakan
(Andri Khrisharyadi )
xi
DAFTAR ISI
Halaman
HALAMAN JUDUL ......................................................................................... i
HALAMAN JUDUL ......................................................................................... ii
HALAMAN PERSETUJUAN PEMBIMBING ............................................. iii
HALAMAN PENGESAHAN ........................................................................... iv
MOTTO DAN PERSEMBAHAN.................................................................... v
INTISARI ......................................................................................... vi
ABSTRACT ......................................................................................... vii
KATA PENGANTAR ....................................................................................... viii
HALAMAN KEASLIAN KARYA .................................................................. x
LEMBAR PERNYATAAN .............................................................................. xi
DAFTAR ISI ..................................................................................................... xii
DAFTAR GAMBAR .................................................................................... xvii
DAFTAR TABEL ........................................................................................ xx
BAB I PENDAHULUAN .................................................................................. 1
1.1. Latar Belakang Masalah ....................................................................... 1
1.2. Rumusan Masalah ................................................................................. 2
1.3. Batasan Masalah ................................................................................... 2
1.4. Tujuan Penelitian ................................................................................... 2
1.5. Metodologi ................. .......................................................................... 2
1.6. Sistematika Penulisan ........................................................................... 4
BAB II LANDASAN TEORI ........................................................................... 5
2.1. Simulasi.................................................................................................. 5
xii
2.2. CAI (Computer Assisted Instruction) ................................................... 5
2.3. Metodologi Pengembangan Multimedia................................................ 6
2.3.1. Konsep ............................................................................................... 6
2.3.2 . Desain ................................................................................................. 7
2.3.3 . Pengumpulan Material ........................................................................ 9
2.3.4. Pembuatan .......................................................................................... 9
2.3.5. Testing ................................................................................................. 10
2.4.6. Distribusi ............................................................................................ 10
2.4. Jaringan Komputer ................................................................................ 11
2.5. Packet filtering ....................................................................................... 12
2.6. TCP/IP.................................................................................................... 12
2.6.1. Arsitektur Protokol TCP/IP ................................................................ 13
2.6.1.1. Physical Layer ................................................................................. 13
2.6.1.2. Network Access Layer ...................................................................... 13
2.6.1.3. Internet Layer ................................................................................... 14
2.6.1.4. Transport Layer................................................................................ 14
2.6.1.5. Application Layer ............................................................................. 14
2.7. Firewall .................................................................................................. 15
2.7.1. Fungsi Firewall ................................................................................... 16
2.7.2. Jenis Jenis Firewall .............................................................................. 17
2.7.3. Cara Kerja Firewall ........................................................................... 22
2.8. Shorewall ............................................................................................... 24
2.8.1. Konfigurasi Shorewall......................................................................... 24
xiii
2.9. Macromedia Flash 8............................................................................... 27
2.9.1. Timeline ............................................................................................. 27
2.9.2. Simbol ................................................................................................ 27
2.9.3. Library ............................................................................................... 28
2.9.4. Action Script ....................................................................................... 28
2.9.5. Event .................................................................................................. 28
BAB III ANALISA DAN DESAIN SISTEM ................................................. 31
3.1. Konsep Sistem ....................................................................................... 31
3.2. Spesifikasi Kebutuhan Hardware dan Software .................................... 33
3.3. Perancangan Sistem ............................................................................... 34
3.3.1. Perancangan Jaringan yang Digunakan .............................................. 34
3.3.2. Perancangan Struktur Menu Program ................................................. 35
3.3.3. Perancangan Flowchart Sistem ........................................................... 36
3.3.4. Perancangan Flowchart Filtering Paket ............................................. 37
3.3.5. Perancangan Antar Muka Program .................................................... 38
3.3.5.1. Perancangan Menu Jumlah Interface Firewall ................................ 38
3.3.5.2. Perancangan Menu Utama ............................................................... 38
3.3.5.3. Perancangan Form Setting IP .......................................................... 40
3.3.5.4. Perancangan From Setting Zone .................................................... 41
3.3.5.5. Perancangan Form Setting Interface .............................................. 41
3.3.5.6. Perancangan Form Tool Tip ........................................................... 42
3.3.5.7. Perancangan Form Policy ............................................................... 42
3.3.5.8. Perancangan Form Rule .................................................................. 43
xiv
3.3.5.9. Perancangan Form Status Firewall ................................................. 43
3.3.5.10 Perancangan Form Simulasi .......................................................... 44
3.3.5.11. Perancangan Animasi Paket ......................................................... 46
3.3.5.12. Perancangan IP Kalkulator ........................................................... 47
3.4. Pengumpulan Materi ............................................................................. 48
BAB IV IMPLEMENTASI DAN ANALISA HASIL .................................... 49
4.1. Implementasi Program ........................................................................... 49
4.1.1. Menjalankan Program ........................................................................ 49
4.1.2. Menggunakan Program ...................................................................... 49
4.1.2.1. Menu Utama ................................................................................... 49
4.1.2.2. Form setting IP ............................................................................... 51
4.1.2.3. Form Setting Zone .......................................................................... 52
4.1.2.4. Form Setting Interface .................................................................... 53
4.1.2.4. Form Setting Policy ........................................................................ 54
4.1.2.5. Form Setting Rule ........................................................................... 56
4.1.2.5. Form Status Firewall ....................................................................... 58
4.1.2.6. Menu Simulasi ................................................................................. 58
4.1.2.6.1. Simulasi Ping ................................................................................ 59
4.1.2.6.2. Simulasi Http ................................................................................ 63
4.1.2.6.3. Simulasi Other Port Number ........................................................ 64
4.1.2.7. Help Program .................................................................................. 65
4.2. Hasil Pengujian Program ...................................................................... 66
4.2.1. Ujicoba Setting IP ............................................................................... 67
xv
4.2.2. Ujicoba Setting Zone dan Interface ................................................... 68
4.2.3. Ujicoba Setting Policy ........................................................................ 70
4.2.3. Ujicoba Setting Rule .......................................................................... 74
4.2.4. Ujicoba Penambahan IP pada Rule .................................................... 76
4.2.5 Hasil Ujicoba dengan Shorewall asli ................................................... 77
4.3. Distribusi ............................................................................................... 79
BAB V KESIMPULAN DAN SARAN ......................................................... 80
5.1. Kesimpulan .......................................................................................... 80
5.2. Kelebihan dan Kekurangan Program .................................................. 80
5.3. Saran .................................................................................................... 80
DAFTAR PUSTAKA ....................................................................................... 82
LAMPIRAN ...................................................................................................... 83
xvi
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Tahap Pengembangan Multimedia 7
2.2 Contoh Ilustrasi Jaringan Komputer 11
2.3 Packet-Filter Firewall 18
2.4 Circuit Level Gateway
19
2.5 Application Level Firewall 21
3.1 Rancangan Jaringan dengan 3 interface di komputer
firewall
34
3.2 Rancangan Jaringan dengan 2 interface di komputer
firewall
34
3.3 Struktur Menu Program 35
3.3a Flowchart Sistem 36
3.4b Flowchart Filtering Paket 37
3.5 Rancangan Menu Jumlah Interface Firewall 38
3.6 Rancangan Menu Utama 38
3.7 Rancangan Form Setting IP 40
3.8 Rancangan Form Setting Zone 41
3.9 Rancangan From Setting Interface 41
3.10 Rancangan Form Tool Tip 42
3.11 Rancangan From Policy 42
xvii
3.12 Rancangan Form Rule 43
3.13 Rancangan Form Status Firewall 43
3.14a Rancangan Form Simulasi Ping 44
3.14b Rancangan Form Simulasi Http 44
3.14c Rancangan Form Simulasi Ftp 44
3.14d Rancangan Form Simulasi Ssh 45
3.14e Rancangan Form Simulasi Other Port Number 45
3.15a Rancangan Animasi Paket Accept 46
3.15b Rancangan Animasi Paket Reject 46
3.15c Rancangan Animasi Paket Drop 47
3.16 Rancangan IP Kalkulator 47
3.17 Gambar icon komputer 48
4.1 Tampilan awal program 49
4.2 Tampilan Menu Utama Program 50
4.3a Tampilan Form Setting IP 51
4.3b Mouse Over IP 52
4.4a Tampilan Form Setting Zone 52
4.4b Nama Zone 53
4.5a Tampilan Form Setting Interface 53
4.5b Tampilan Hasil Konfigurasi Interface 54
4.6a Tampilan Tool Tips Policy 54
4.6b Tampilan Form Policy 55
xviii
4.7a Tool Tips Rule 56
4.7b Tampilan Form rule 57
4.8a Tampilan Form Status Firewall 58
4.9 Tampilan Form Ping 59
4.9 Contoh Tampilan Animasi Ping 60
4.10a Tampilan Paket Terkirim 60
4.10b Tampilan Paket Tidak Terkirim 60
4.11a Tampilan Animasi Pencarian Atruran yang Cocok 61
4.11b Tampilan Paket di-REJECT 61
4.11c Tampilan Paket di-DROP 62
4.12 Tampilan Form Http 63
4.13 Tampilan Form Simulasi Other Port Number 64
4.14 Tampilan Help Program 65
4.15 Konfigurasi Jaringan untuk Ujicoba 66
4.16a Ping dari loc ke dmz 68
4.16b Ping dari firewall ke internet 68
4.17a Error Zone belum didefinisikan 69
4.17a Error Interface belum didefinisikan 69
4.18a Ping dari Zone fw ke Zone net 70
4.18b Http dari Zone net ke Zone dmz 71
4.18c Http dari Zone dmz ke Zone loc 72
4.18d Ping dari Zone loc ke Zone fw 73
xix
4.19a Ujicoba Ping dari Zone loc ke Zone fw 74
4.19b Ujicoba Ftp dari Zone loc ke Zone fw 75
4.20a Ujicoba Ssh dari Zone loc ke fw 76
4.20b Ujicoba Ssh dari Zone loc ke fw setelah rule diubah 76
DAFTAR TABEL
Tabel Keterangan Halaman
2.1 Arsitektur Protokol TCP/IP 13
3.1 Deskripsi Konsep Sistem 32
4.1 Hasil Perbandingan Hasil ujicoba Program Simulasi dan
Shorewall Asli
77
xx
BAB I
PENDAHULUAN
1.1 Latar Belakang
Jaringan komputer merupakan sebuah sistem dimana setiap orang dapat
masuk ke komputer orang lain yang berada di jaringan tersebut. Dengan demikian
orang dapat melakukan pengaksesan data dari komputer lain. Jika data tersebut
sangat penting bisa diambil bahkan disalahgunakan.
Sistem perlu dilengkapi suatu pengendalian antar jaringan yang dapat
melakukan pembatasan akses untuk komputer tertentu. Pembatasan akses dapat
dilakukan dengan pembatasan akses terhadap port tertentu. Cara ini dapat
menggunakan teknik firewall. Jenis jenis firewall ada beberapa macam, salah
satunya dengan menggunakan teknik packet filtering. Dengan demikian paket
yang lewat dapat diatur oleh komputer firewall. Pada sistem operasi linux,
firewall dapat menggunakan perangkat lunak yang disebut Shorewall.
Untuk berlatih melakukan setting jaringan dengan firewall sering kesulitan
karena harus memakai banyak komputer. Maka penulis mencoba
mengembangkan progam untuk melakukan simulasi jaringan dengan firewall.
Program ini dikembangkan dengan Macromedia Flash 8 dan bahasa pemrograman
action script 2.0.
1
2
1.2 Rumusan Masalah
Bagaimana membuat sebuah program bantu yang dapat melakukan
simulasi setting mesin firewall di jaringan internet dengan teknik packet filtering
menggunakan paket aplikasi shorewall.
1.3 Batasan Masalah
Program ini dibuat dengan batasan sebagai berikut :
1. Program mensimulasikan firewall dengan teknik packet filtering yang
melakukan berdasarkan zone, IP dan port.
2. Program hanya mensimulasikan firewall dengan jumlah interface 2 dan 3 (
jumlah eth di mesin firewall ).
3. Program hanya mensimulasikan firewall sampai pokok bahasan policy dan
rules. Tidak mensimulasikan SNAT, DNAT, one to one NAT dan Proxy
ARP.
1.4 Tujuan
Tujuan dari penulisan ini adalah untuk mengembangkan sebuah program
simulasi yang dapat mensimulasikan firewall pada jaringan komputer dengan
teknik packet filtering.
1.5 Metodologi
Metodologi yang digunakan untuk menyelesaikan penulisan ini adalah
metodologi pengembangan multimedia (Luther, 1994) :
3
1. Konsep
Pada tahap ini dilakukan identifikasi masalah, tujuan pembuatan
program dan identifikasi pengguna,
2. Desain
Pada tahap ini dilakukan analisa kebutuhan pembuatan program.
Kemudian diakukan perancangan sistem sesuai rancangan sistem hasil
analisis yang telah dilakukan. Rancangan tersebut meliputi rancangan
user interface dan rancangan sistem.
3. Pengumpulan bahan
Pada tahap ini dilakukan pengumpulan bahan seperti gambar serta
bahan-bahan lain yang diperlukan untuk tahap berikutnya.
Pengumpulan bahan dapat dilakukan secara paralel atau bersamaan
dengan tahap implementasi atau pengembangan.
4. Implementasi
Pada tahap ini dilakukan proses implemnetasi (pengembangan)
program berdasarkan desain yang telah dibuat, yaitu menerjemahkan
desain ke dalam bahasa pemrograman action script.
5. Pengujian
Pada tahap ini dilakukan pengujian program untuk mencari kesalahan
dan kemudian dilakukan perbaikan.
4
6. Distribusi
Pada tahap ini dilakukan proses distribusi dari program yang telah
dibuat.
1.6 Sistematika Penulisan
1. Bab I Pendahuluan
Menjelaskan latar belakang masalah, rumusan masalah, batasan masalah,
tujuan penulisan, metodologi dan sistematika penulisan
2. Bab II Landasan Teori
Menjelaskan landasan teori dari metodologi yang digunakan, jaringan
komputer berbasis firewall, macromedia flash dan bahasa pemrograman
action script.
3. Bab III Analisis dan Perancamgan
Menganalisa secara umum perancangan konsep sistem, perancangan
antarmuka sistem dan pengumpulan kebutuhan.
4. Bab IV Implementasi
Menjelaskan secara rinci tentang pembuatan program pada setiap bagian.
5. Bab V Kesimpulan dan Saran
Berisi tentang kesimpulan dan saran saran terhadap hasil program.
BAB II
LANDASAN TEORI
2.1 Simulasi
Simulasi adalah peniruan nyata beberapa hal, keadaan, atau proses.
Perbuatan dari simulasi umumnya memerlukan suatu yang mewakili karakteristik
tertentu atau kunci perilaku yang dipilih sistem fisik atau abstrak. Simulasi
digunakan dalam banyak konteks, termasuk modeling sistem alam atau sistem
manusia untuk mendapatkan informasi tentang mereka berfungsi. konteks lain
termasuk simulasi teknologi untuk optimasi performa, keselamatan rekayasa,
pengujian, pelatihan dan pendidikan. Simulasi dapat digunakan untuk
menunjukkan sikap yang nyata efek dari alternatif kondisi dan program aksi
(Indrianto,2003).
2.2 CAI (Computer Assisted Instruction) Pemanfaatan komputer sekarang sudah menjangkau dunia pendidikan.
Aplikasi pengajaran yang menggunakan komputer salah satunya meliputi
Computer Assited Instruction (CAI). CAI atau pengajaran berbantuan komputer
adalah sistem komputer dimana dalam prosentase tertentu mengganti peran
seorang guru/pengajar dalam penyampaian materi pembelajaran (Surjono, 1996).
Ada beberapa media pengajaran yang dapat diimplementasikan untuk
menyampaikan materi pengajaran bagi para siswa, antara lain :
a. Media cetak, termasuk diantaranya adalah textbooks dan modul
b. Media audio visual, termasuk diantaranya sound slides, video dan televisi
5
6
c. Komputer, yaitu CAI
d. Media audio, termasuk diantaranya radio, dan program audio cassette
2.3 Metodologi Pengembangan Multimedia
Menurut Arch Luther (Luther 1994), pengembangan multimedia dilakukan
berdasarkan 6 tahap, yaitu konsep, perancangan, pengumpulan bahan, pembuatan,
testing dan distribusi.
Gambar 2.1 Tahap Pengembangan Multimedia
2.3.1 Konsep
Pada tahap ini terdiri dari beberapa langkah meliputi :
a. Tujuan Aplikasi (informasi, hiburan, pelatihan, dan lain-lain)
b. Identifikasi Pengguna
c. Bentuk Aplikasi (presentasi, interaktif, dan lain-lain)
d. Spesifikasi Umum (ukuran aplikasi, dasar perancangan, target yang ingin
dicapai, dan lain-lain)
7
2.3.3 Desain
Desain (perancangan) adalah membuat spasifikasi secara rinci mengenai
struktur aplikasi multimedia yang akan dibuat, gaya dan kebutuhan bahan
(material) untuk aplikasi. Spesifikasi dibuat cukup rinci sehingga pada tahap
berikutnya, yaitu tahap pengumpulan bahan dan pembuatan tidak dibutuhkan
keputusan baru, melainkan menggunakan apa yang telah ditetapkan pada tahap
desain. Namun demikian, sering terjadi penambahan atau pengurangan bahan,
bahkan ada perubahan pada bagian aplikasi pada awal pengerjaan multimedia.
Tahap desain multimedia sering melibatkan kegiatan:
a. Pembuatan Bagan Alir (Flow Chart), yaitu menggambarkan struktur
aplikasi multimedia yang disarankan.
b. Pembuatan Storyboard, yaitu pemetaan elemen-elemen atau bahan
(material) multimedia pada setiap layar aplikasi multimedia.
Storyboard digunakan untuk:
a. Memungkinkan tim dan klien (pengguna) memeriksa, menyetujui, dan
meningkatkan rancangan.
b. Menjadi panduan bagi programmer dan graphics designer.
c. Mengetahui elemen (material) multimedia yang dipakai.
d. Menjaga konsistensi di sepanjang aplikasi multimedia.
e. Memungkinkan rancangan diimplentasikan pada platform yang berbeda,
karena storyboard bersifat platform independent.
8
Storyboard perlu mengandung:
a. Nama aplikasi (program) atau modul dan nomor halaman atau nomor
layar.
b. Gambar sketsa layar atau halaman beserta rincian objek-objek yang ada
pada layar, meliputi: Teks, Gambar, Animasi, Audio, Narasi, Video,
Warna, penempatan, ukuran gambar, jika penting, Warna dan font dari
teks.
c. Interaksi: pencabangan dan aksi-aksi lainnya (tombol).
Perancangan Antarmuka Pemakai:
a. Graphics Designer merancang antarmuka pemakai berdasarkan
storyboard.
b. Antarmuka pemakai harus : menggapai “look and feel” dari organisasi
klien, memproyeksikan yang sesuai bagai pemakai, tidak boleh lebih kuat
daripada pesan yang ingin disampaikan, tetapi harus mendukung
pesannya.
9
2.3.3 Pengumpulan Material
Pada tahap ini dilakukan beberapa langkah antara lain :
a. Melakukan pengumpulan bahan (material) seperti: clipart, image, animasi,
audio, berikut pembuatan grafik, foto, audio, dan lain-lain yang diperlukan
untuk tahap berikutnya.
b. Bahan yang diperlukan dalam multimedia dapat diperoleh dari sumber-
sumber seperti: library, bahan yang sudah ada pada pihak lain, atau
pembuatan khusus yang dilakukan oleh pihak luar.
c. Pengumpulan material dapat dilakukan paralel dengan tahap pembuatan
(assemby).
2.3.4 Pembuatan
Pada tahap ini dilakukan beberapa langkah antara lain :
a. Tahap pembuatan (assembly) merupakan tahap dimana seluruh objek
multimedia dibuat atau diintegrasikan.
b. Pembuatan aplikasi berdasarkan flow chart, storyboard, struktur navigasi
atau diagram objek yang berasal dari tahap disain.
c. Dapat menggunakan perangkat lunak authoring yang mempunyai fitur
pembuatan flow chart dan desain, misal: Microsoft Frontpage,
Macromedia, dan lain-lain.
10
2.3.5 Testing
Pada tahap ini dilakukan beberapa langkah antara lain :
a. Tahap testing dilakukan setelah tahap pembuatan dan seluruh bahan
(material) telah dimasukkan.
b. Biasanya pada tahap awal dilakukan testing secara modular untuk
memastikan apakah hasilnya seperti yang diinginkan.
c. Aplikasi yang telah dihasilkan harus dapat berjalan dengan baik di
lingkungan pengguna (klien), dimana pengguna dapat merasakan adanya
kemudahan dan manfaat dari aplikasi tersebut serta dapat menjalankan
sendiri terutama untuk aplikasi yang interaktif.
2.3.6 Distribusi
Pada tahap ini dilakukan beberapa langkah antara lain :
a. Bila aplikasi multimedia akan digunakan dengan mesin yang berbeda,
penggandaan menggunakan floppy disk, CD-ROM, tape, atau distribusi
dengan jaringan sangat diperlukan.
b. Tahap distribusi juga merupakan tahap evaluasi terhadap suatu produk
multimedia, diharapkan akan dapat dikembangkan sistem multimedia yang
lebih baik di kemudian hari.
11
2.4 Jaringan Komputer
Jaringan komputer adalah sebuah kumpulan komputer, printer dan
peralatan lainnya yang terhubung. Informasi dan data bergerak melalui kabel-
kabel sehingga memungkinkan pengguna jaringan komputer dapat saling bertukar
dokumen dan data, mencetak pada printer yang sama dan bersama sama
menggunakan hardware/software yang terhubung dengan jaringan. Tiap
komputer, printer atau periferal yang terhubung dengan jaringan disebut node.
Sebuah jaringan komputer dapat memiliki puluhan, ribuan atau bahkan
jutaan node. Sebuah jaringan biasanya terdiri dari 2 atau lebih komputer yang
saling berhubungan diantara satu dengan yang lain, dan saling berbagi sumber
daya misalnya CDROM, printer, pertukaran file, atau memungkinkan untuk saling
berkomunikasi secara elektronik. Komputer yang terhubung, dimungkinkan
berhubungan dengan media kabel, saluran telepon, gelombang radio, satelit, atau
sinar infra merah (Ardiyansah, 2004).
Gambar 2.2 Contoh Ilustrasi Jaringan Komputer
12
2.5 Packet filtering
Packet filtering adalah mekanisme yang dapat memblokir paket-paket data
jaringan yang dilakukan berdasarkan peraturan yang telah ditentukan sebelumnya.
Packet filtering adalah salah satu jenis teknologi keamanan yang digunakan untuk
mengatur paket-paket apa saja yang diizinkan masuk ke dalam sistem atau
jaringan dan paket-paket apa saja yang diblokir. Packet filtering umumnya
digunakan untuk memblokir lalu lintas yang tidak dikenal yang datang dari alamat
IP yang tidak dikenal, nomor port TCP/UDP yang tidak dikenal, jenis protokol
aplikasi yang tidak dikenal. Akhir-akhir ini, fitur packet filtering telah
dimasukkan ke dalam banyak sistem operasi (IPTables dalam GNU/Linux, dan IP
Filter dalam Windows) sebagai sebuah fitur standar, selain tentunya firewall dan
router (Mansfiled, 2004).
2.6 TCP/IP
TCP/IP merupakan protokol yang paling banyak digunakan dan standar
untuk komunikasi di internet karena memiliki banyak kelebihan. Arsitektur
TCP/IP bersifat terbuka sehingga siapapun dapat mengembangkannya. TCP/IP
tidak tergantung kepada suatu sistem operasi maupun hardware. TCP/IP saat ini
diterapkan di semua sistem operasi dan dapat berjalan di semua hardware
jaringan. TCP/IP merupakan protokol yang memiliki fasilitas routing sehingga
dapat digunakan pada internetworking. TCP/IP juga merupakan protokol yang
handal karena memiliki sistem pengontrol data agar data yang sampai di tempat
tujuan benar-benar dalam keadaan baik. Karena kelebihannya tersebut, sangat
13
banyak layanan dan aplikasi yang menggunakan TCP/IP, contohnya yang paling
banyak digunakan adalah web (Lukas, 2007).
2.6.1 Arsitektur Protokol TCP/IP
Karena tidak ada perjanjian umum tentang bagaimana melukiskan TCP/IP
dengan model layer, biasanya TCP/IP didefinisikan dalam 3-5 level fungsi dalam
arsitektur protokol. TCP/IP dilukiskan dalam 5 layer model, yaitu seperti
digambarkan dalam diagram di bawah ini :
Tabel 2.1 Arsitektur Protokol TCP/IP
Application layer
Transport layer
Internet layer
Network Access layer
Physical layer
2.6.1.1 Physical Layer
Physical layer mendefinisikan karakteristik yang dibutuhkan hardware
untuk membawa sinyal data transmisi. Hal hal seperti level tegangan, nomor dan
lokasi pin interface, didefinisikan pada layer ini.
2.6.1.2 Network Access Layer
Protokol pada layer ini menyediakan media bagi system untuk
mengirimkan data ke device lain yang terhubung secara langsung. Network Access
Layer merupakan gabungan antara Network, Data Link dan Physical layer. Fungsi
Network Access Layer dalam TCP/IP disembunyikan, dan protokol yang lebih
14
umum dikenal (IP, TCP, UDP, dll) digunakan sebagai protokol-level yang lebih
tinggi.
Fungsi dalam layer ini adalah mengubah IP datagram ke frame yang
ditransmisikan oleh network, dan memetakan IP Address ke physical address
yang digunakan dalam jaringan. IP Address ini harus diubah ke alamat apapun
yang diperlukan untuk physical layer untuk mentransmisikan datagram.
2.6.1.3 Internet Layer
Internet Protokol adalah jantung dari TCP/IP dan protokol paling penting
pada Internet Layer (RFC 791). IP menyediakan layanan pengiriman paket dasar
pada jaringan tempat TCP/IP network dibangun. Seluruh protokol, diatas dan
dibawah Internet layer, menggunakan Internet Protokol untuk mengirimkan data.
Semua data TCP/IP mengalir melalui IP, baik incoming maupun outgoing, dengan
mengabaikan tujuan terakhirnya.
2.6.1.4 Transport Layer
Dua protokol utama pada layer ini adalah Transmission Control Protocol
(TCP) dan User Datagram Protocol (UDP). TCP menyediakan layanan
pengiriman data handal dengan end-to-end deteksi dan koreksi kesalahan. UDP
menyediakan layanan pengiriman datagram tanpa koneksi (connectionless) dan
low-overhead. Kedua protokol ini mengirmkan data diantara Application Layer
dan Internet Layer.
2.6.1.5 Application Layer
Pada sisi paling atas dari arsitektur protokol TCP/IP adalah Application Layer.
Layer ini termasuk seluruh proses yang menggunakan transport layer untuk
15
mengirimkan data. Banyak sekali application protocol yang digunakan saat ini.
Beberapa diantaranya adalah :
a. TELNET, yaitu Network Terminal Protocol, yang menyediakan remote login
dalam jaringan
b. FTP, File Transfer Protocol, digunakan untuk file transfer
c. SMTP, Simple Mail Transfer Protocol, dugunakan untuk mengirimkan
electronic mail
d. DNS, Domain Name Service, untuk memetakan IP Address ke dalam nama
tertentu
e. RIP, Routing Information Protocol, protokol routing
f. OSPF, Open Shortest Path First, protokol routing
g. NFS, Network File System, untuk sharing file terhadap berbagai host dalam
jaringan
h. HTTP, Hyper Text Transfer Protocol, protokol untuk web browsing
2.7 Firewall
Firewall merupakan suatu cara atau mekanisme yang diterapkan baik
terhadap hardware, software ataupun sistem itu sendiri dengan tujuan untuk
melindungi, dengan cara menyaring, membatasi atau bahkan menolak suatu atau
semua hubungan/kegiatan suatu segmen pada jaringan pribadi dengan jaringan
luar yang bukan merupakan ruang lingkupnya. Segmen tersebut dapat merupakan
sebuah local area network (LAN), workstation, server atau router (Muammar,
2004).
16
Konfigurasi sederhananya :
pc (jaringan lokal) <==> firewall <==> internet (jaringan lain)
Firewall untuk komputer, pertama kali dilakukan dengan menggunakan prinsip
“non-routing” pada sebuah Unix host yang menggunakan 2 buah network
interface card. Network interface card yang pertama dihubungkan ke internet
(jaringan lain) sedangkan yang lainnya dihubungkan ke pc (jaringan lokal dengan
catatan tidak terjadi “route” antara kedua network interface card di pc ini). Untuk
dapat terkoneksi dengan Internet(jaringan lain) maka harus memasuki server
firewall (bisa secara remote atau langsung), kemudian menggunakan resource
yang ada pada komputer ini untuk berhubungan dengan internet(jaringan lain).
2.7.1 Fungsi Firewall
Menurut Muammar (2004), secara fundamental, firewall dapat melakukan
fungsi berikut :
1. Mengatur dan mengontrol lalu lintas jaringan
2. Melakukan autentikasi terhadap akses
3. Melindungi sumber daya dalam jaringan privat
4. Mencatat semua kejadian, dan melaporkan kepada administrator
17
2.7.2 Jenis Jenis Firewall
Menurut Muammar (2004), jenis firewall dapat digolongkan sebagai berikut :
1. Packet-Filter Firewall
Pada bentuknya yang paling sederhana, sebuah firewall adalah sebuah
router atau komputer yang dilengkapi dengan dua buah NIC (Network
Interface Card, kartu antarmuka jaringan) yang mampu melakukan penapisan
atau penyaringan terhadap paket-paket yang masuk. Perangkat jenis ini
umumnya disebut dengan packet-filtering router.
Firewall jenis ini bekerja dengan cara membandingkan alamat sumber
dari paket-paket tersebut dengan kebijakan pengontrolan akses yang terdaftar
dalam Access Control List firewall, router tersebut akan mencoba
memutuskan apakah hendak meneruskan paket yang masuk tersebut ke
tujuannya atau menghentikannya. Pada bentuk yang lebih sederhana lagi,
firewall hanya melakukan pengujian terhadap alamat IP atau nama domain
yang menjadi sumber paket dan akan menentukan apakah hendak meneruskan
atau menolak paket tersebut.
Packet-filtering router juga dapat dikonfigurasikan agar menghentikan
beberapa jenis lalu lintas jaringan dan tentu saja mengizinkannya. Umumnya,
hal ini dilakukan dengan mengaktifkan/menonaktifkan port TCP/IP dalam
sistem firewall tersebut. Sebagai contoh, port 25 yang digunakan oleh
[[|SMTP|Protokol SMTP]] (Simple Mail Transfer Protocol) umumnya
18
dibiarkan terbuka oleh beberapa firewall untuk mengizinkan surat elektronik
dari Internet masuk ke dalam jaringan lokal, sementara port lainnya seperti 23
yang digunakan oleh protokol Telnet dapat dinonaktifkan untuk mencegah
pengguna internet untuk mengakses layanan yang terdapat dalam jaringan
lokal tersebut. Firewall juga dapat memberikan semacam pengecualian
(exception) agar beberapa aplikasi dapat melewatinya. Dengan menggunakan
pendekatan ini, keamanan akan lebih kuat tapi memiliki kelemahan yang
signifikan yakni kerumitan konfigurasi, yakni daftar Access Control List
firewall akan membesar seiring dengan banyaknya alamat IP, nama domain,
atau port yang dimasukkan ke dalamnya, selain tentunya juga exception yang
diberlakukan.
Gambar 2.3 Packet-Filter Firewall
2. Circuit Level Gateway
Circuit-Level Gateway pada umumnya berupa komponen dalam
sebuah proxy server. Firewall jenis ini beroperasi pada level yang lebih tinggi
dalam model referensi tujuh lapis OSI (bekerja pada lapisan sesi atau session
layer) daripada Packet Filter Firewall. Modifikasi ini membuat firewall jenis
ini berguna dalam rangka menyembunyikan informasi mengenai jaringan
19
terproteksi, meskipun firewall ini tidak melakukan penyaringan terhadap
paket-paket individual yang mengalir dalam koneksi.
Dengan menggunakan firewall jenis ini, koneksi yang terjadi antara
pengguna dan jaringan pun disembunyikan dari pengguna. Pengguna akan
dihadapkan secara langsung dengan firewall pada saat proses pembuatan
koneksi dan firewall pun akan membentuk koneksi dengan sumber daya
jaringan yang hendak diakses oleh pengguna setelah mengubah alamat IP dari
paket yang ditransmisikan oleh dua belah pihak. Hal ini mengakibatkan
terjadinya sebuah sirkuit virtual (virtual circuit) antara pengguna dan sumber
daya jaringan yang ia akses.
Firewall ini dianggap lebih aman dibandingkan dengan Packet-Filtering
Firewall, karena pengguna eksternal tidak dapat melihat alamat IP jaringan
internal dalam paket-paket yang ia terima, melainkan alamat IP dari firewall.
Protokol yang populer digunakan sebagai Circuit-Level Gateway adalah
SOCKS v5.
Gambar 2.4 Circuit Level Gateway
20
3. Application Level Firewall
Firewall jenis ini adalah Application Level Gateway (sering juga disebut
sebagai Proxy Firewall), yang umumnya juga merupakan komponen dari
sebuah proxy server. Firewall ini tidak mengizinkan paket yang datang untuk
melewati firewall secara langsung. Tetapi, aplikasi proxy yang berjalan dalam
komputer yang menjalankan firewall akan meneruskan permintaan tersebut
kepada layanan yang tersedia dalam jaringan privat dan kemudian meneruskan
respons dari permintaan tersebut kepada komputer yang membuat permintaan
pertama kali yang terletak dalam jaringan publik yang tidak aman.
Umumnya, firewall jenis ini akan melakukan autentikasi terlebih dahulu
terhadap pengguna sebelum mengizinkan pengguna tersebut untuk mengakses
jaringan. Selain itu, firewall ini juga mengimplementasikan mekanisme
auditing dan pencatatan (logging) sebagai bagian dari kebijakan keamanan
yang diterapkannya. Application Level Firewall juga umumnya mengharuskan
beberapa konfigurasi yang diberlakukan pada pengguna untuk mengizinkan
mesin klien agar dapat berfungsi. Sebagai contoh, jika sebuah proxy FTP
dikonfigurasikan di atas sebuah application layer gateway, proxy tersebut
dapat dikonfigurasikan untuk mengizinlan beberapa perintah FTP, dan
menolak beberapa perintah lainnya. Jenis ini paling sering diimplementasikan
pada proxy SMTP sehingga mereka dapat menerima surat elektronik dari luar
(tanpa menampakkan alamat e-mail internal), lalu meneruskan e-mail tersebut
kepada e-mail server dalam jaringan. Tetapi, karena adanya pemrosesan yang
21
lebih rumit, firewall jenis ini mengharuskan komputer yang dikonfigurasikan
sebagai application gateway memiliki spesifikasi yang tinggi, dan tentu saja
jauh lebih lambat dibandingkan dengan packet-filter firewall
.
Gambar 2.5 Application Level Firewall
4. NAT Firewall
NAT (Network Address Translation) Firewall secara otomatis
menyediakan proteksi terhadap sistem yang berada di balik firewall karena
NAT Firewall hanya mengizinkan koneksi yang datang dari komputer-
komputer yang berada di balik firewall. Tujuan dari NAT adalah untuk
melakukan multiplexing terhadap lalu lintas dari jaringan internal untuk
kemudian menyampaikannya kepada jaringan yang lebih luas (MAN, WAN
atau Internet) seolah-olah paket tersebut datang dari sebuah alamat IP atau
beberapa alamat IP. NAT Firewall membuat tabel dalam memori yang
mengandung informasi mengenai koneksi yang dilihat oleh firewall. Tabel ini
akan memetakan alamat jaringan internal ke alamat eksternal. Kemampuan
untuk menaruh keseluruhan jaringan di belakang sebuah alamat IP didasarkan
terhadap pemetaan terhadap port-port dalam NAT firewall.
22
5. Statefull Firewall
Stateful Firewall merupakan sebuah firewall yang menggabungkan
keunggulan yang ditawarkan oleh packet-filtering firewall, NAT Firewall,
Circuit-Level Firewall dan Proxy Firewall dalam satu sistem. Stateful
Firewall dapat melakukan filtering terhadap lalu lintas berdasarkan
karakteristik paket, seperti halnya packet-filtering firewall, dan juga memiliki
pengecekan terhadap sesi koneksi untuk meyakinkan bahwa sesi koneksi yang
terbentuk tersebut diizinlan. Tidak seperti Proxy Firewall atau Circuit Level
Firewall, Stateful Firewall umumnya didesain agar lebih transparan (seperti
halnya packet-filtering firewall atau NAT firewall). Tetapi, stateful firewall
juga mencakup beberapa aspek yang dimiliki oleh application level firewall,
sebab ia juga melakukan inspeksi terhadap data yang datang dari lapisan
aplikasi (application layer) dengan menggunakan layanan tertentu. Firewall
ini hanya tersedia pada beberapa firewall kelas atas, semacam Cisco PIX.
Karena menggabungkan keunggulan jenis-jenis firewall lainnya, stateful
firewall menjadi lebih komplek.
2.7.3 Cara Kerja Firewall
Menurut Muammar (2004), cara kerja firewall terdiri sebagai berikut :
1. Service control (kendali terhadap layanan)
Berdasarkan tipe-tipe layanan yang digunakan di Internet dan boleh
diakses baik untuk kedalam ataupun keluar firewall. Biasanya firewall
23
akan mencek no IP Address dan juga nomor port yang di gunakan baik
pada protokol TCP dan UDP, bahkan bisa dilengkapi software untuk
proxy yang akan menerima dan menterjemahkan setiap permintaan akan
suatu layanan sebelum mengijinkannya. Bahkan bisa jadi software pada
server itu sendiri , seperti layanan untuk web ataupun untuk e-mail.
2. Direction Conrol (kendali terhadap arah)
Berdasarkan arah dari berbagai permintaan (request) terhadap layanan
yang akan dikenali dan diijinkan melewati firewall.
3. User control (kendali terhadap pengguna)
Berdasarkan pengguna untuk dapat menjalankan suatu layanan, artinya
ada yang dapat dan ada yang tidak dapat menjalankan suatu servis,hal ini
di karenakan user tersebut tidak di ijinkan untuk melewati firewall.
Biasanya digunakan untuk membatasi user dari jaringan lokal untuk
mengakses keluar, tetapi bisa juga diterapkan untuk membatasi terhadap
pengguna dari luar.
4. Behavior Control (kendali terhadap perlakuan)
Berdasarkan seberapa banyak layanan itu telah digunakan. Misalnya,
firewall dapat memfilter e-mail untuk menanggulangi atau mencegah
spam.
24
2.8 Shorewall
Shorewall merupakan salah satu alat (aplikasi) yang berbasis linux,
digunakan untuk melakukan setting aturan masuk / keluar serta kebijakan yang
perlu dilakukan dalam pengamanan komputer yang terhubung ke jaringan.
Shorewall banyak diaplikasikan untuk pembuatan gateway atau firewall.
Sebagai langkah awal pembuatan PC router atau gateway yang hanya memiliki
alokasi satu IP publik. Artinya bahwa lalu lintas keluar masuk jaringan hanya
akan dikenali sebagai satu IP tersebut (Eastep, 2005).
2.8.1 Konfigurasi Shorewall
Untuk melakukan konfigurasi shorewall terdapat berberapa langkah yang
dilakukan antara lain (Modul Praktikum jaringan Komputer Firewall, 2008) :
Untuk melakukan konfigurasi zone pada shorewall menggunakan file
/etc/shorewall/zone.
File ini untuk mendefinisikan zona asal trafik pada jaringan
Isi file /etc/shorewall/zone :
#ZONE DISPLAY COMMENTS
net Net Internet
loc Local Local networks
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Server tempat shorewall diinstall dikenal sebagai zona yang disebut fw.
Menghubungkan masing-masing zone pada interface-nya dengan mengedit
25
/etc/shorewall/interface
#ZONE INTERFACE BROADCAST OPTION
net eth0 detect routefilter,norfc1918
loc eth1 detect
dmz eth2 detect
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Membuat hubungan antar zone dengan mengedit /etc/shorewall/policy.
File ini menentukan apa yang harus dikerjakan (ACCEPT, DROP, REJECT) jika
ada komunikasi dari SOURCE (didefinisikan pada zone : fw, net, loc, dmz dan all
berarti semua zone) menuju ke DEST. Pencocokan source/dest dilakukan dari atas
ke bawah (mengikuti pola if … else) oleh sebab itu URUTAN masing-masing
source/dest SANGAT MENENTUKAN.
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
fw all ACCEPT -
net all DROP info
all all REJECT info
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Membuat rule antar zone dengan mengedit /etc/shorewall/rules.
File ini mengatur komunikasi - melalui ACTION (ACCEPT, REJECT, DROP,
REDIRECT, dsb) - antara SOUCE/DEST.
Bahkan lebih spesifik lagi kita bisa mengatur pada level protokol komunikasi
pada kolom PROTO PORT (icmp, udp, tcp, all dan - ). Nomer port baik DEST /
SOURCE PORT(S) pun bisa ditentukan secara lebih spesifik.
26
Sama halnya seperti pada policy, URUTAN SANGAT PENTING.
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)
ACCEPT loc fw icmp
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Pada SOURCE / DEST kita bisa menentukan hubungan antar zona, kalau ingin
lebih dispesifikan lagi hanya untuk satu atau beberapa host maka bisa dituliskan
menjadi misalnya loc:192.168.0.2 , yang berarti menunjukan host 192.168.0.2
pada zona loc. Atau bahkan loc:!192.168.0.2 yang berarti seluruh zona loc,
keculai 192.168.0.2. Contoh lain adalah loc:192.168.0.2,192.168.0.3 yang
menunjuk host 192.168.0.2 dan 192.168.03 pada zona loc. Contoh lagi
loc:192.168.0.0/25 yang berarti menunjukan network 192.168.0.0/25 pada zona
loc.
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S) DEST
…
ACCEPT loc fw tcp 22
…
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
semua traffic yang lewat pada firewall diatur pada /etc/shorewall/rules, jika tidak
terdefinisikan pada file tersebut maka akan dicek pada /etc/shorewall/policy.
27
2.9 Macromedia Flash 8
Macromedia Flash 8 adalah versi terbaru dari Flash. Kemampuan dan
fitur-fiturnya menjadi lebih lengkap sehingga dapat digunakan untuk membuat
berbagai macam aplikasi seperti animasi web, kartun, multimedia interaktif,
sampai aplikasi untuk ponsel. Selain itu, Flash 8 juga kompatibel dengan software
desain dan animasi lainnya (Herlambang, 2007).
2.9.1 Timeline
Timeline merupakan panel utama yang berfungsi untuk mengatur cepat atau
lambatnya animasi yang kita buat dan sebagai wadah untuk menyatukan objek-
objek dari setiap layer.
2.9.2. Simbol
Dengan merubah suatu obyek menjadi simbol, itu artinya obyek tersebut
sudah menjadi bentuk yang pasti dan kita tidak bisa memanipulasinya lagi
didalam stage misalnya merubah warna atau memberikan coretan diatasnya.
Jenis Simbol (Behavior) antara lain :
a. Movie clip : obyek digunakan untuk beranimasi
b. Button : obyek dibuat sebagai tombol
c. Grafik : obyek dibuat sebagai gambar yang statis atau tidak beranimasi
28
2.9.3 Library
Library didalam flash fungsinya sesuai dengan namanya adalah sebuah
tempat penyimpan symbol yang sudah kita buat. Jika kita membuat sebuah
symbol maka secara otomatis symbol tersebut akan masuk ke dalam library. Jadi
selama kita bekerja semua symbol yang sudah pernah kita buat, walaupun sudah
kita hapus, simbol tersebut masih tersimpan dalam library.
2.9.4 Action Script
Action Script adalah bahasa yang menjembatani antara bahasa yang kita
kenal dengan bahasa yang dikenali oleh flash. Action Script mengijinkan kita
membuat instruksi berorientasi action dan instruksi berorientasi logic (analisa
masalah sebelum melakukan perintah). Sama dengan bahsa pemrograman yang
lain, action script berisi banyak elemen yang berbeda serta sturkturnya sendiri.
Sebuah action biasanya berada pada beberapa baris yang menginstruksikan pada
Flash untuk berbuat, membuat, mengubah, me-load atau menghapus
(Herlambang, 2007).
2.9.5 Event
Events terjadi selama pemutaran sebuah movie dan menjadi pemicu bagi
script. Setiap script dipicu oleh sebuah event, dan movie dapat bereaksi terhadap
bermacam macam event.
Dalam Action Script terdapat beberapa perintah yang sering digunakan untuk
membuat animasi, antara lain :
29
Action Script – goto
1. gotoAndPlay
Digunakan untuk menuju ke frame tertentu dan memainkan animasi yang
ada di frame tersebut.
Bentuk Penulisannya :
on(release) {
gotoAndPlay(“Scene 2”,25);
}
Maksud perintah diatas adalah menuju ke scene 2 frame 25 dan langsung
memainkan animasi yang ada di frame 25.
2. gotoAndStop
Digunakan untuk menuju ke frame tertentu dan berhenti di frame tersebut.
Bentuk Penulisannya :
on(release) {
gotoAndStop(“Scene 2”,25);
}
Maksud perintah diatas adalah menuju ke scene 2 frame 25 dan langsung
berhenti di frame 25.
Action Script – on
Perintah On digunakan untuk mendukung perintah yang lain.
Bentuk penulisannya :
On ( ) {
}
Action Script – play
Perintah Play digunakan untuk menjalankan animasi movie.
30
Bentuk penulisannya :
play();
Action Script – stop
Perintah Stop digunakan untuk menjalankan animasi movie.
Bentuk penulisannya :
stop();
Action Script – stopAllSound
Perintah Stop digunakan untuk mengentikan semua suara yang terdapat di
animasi movie.
Bentuk Penulisannya :
on(release) {
stopAllSound();
}
Action Script – loadMovie
Perintah LoadMovie digunakan untuk memanggil dan menjalankan
animasi flash yang telah disimpan.
Bentuk Penulisannya :
on(release) {
loadMovie(“alamat file”,0);}
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 Konsep Sistem
Dalam suatu jaringan komputer keamanan merupakan hal yang sangat penting.
Salah satu cara untuk membuat suatu keamanan jaringan adalah dengan firewall.
Salah satu teknik firewall yang digunakan adalah packet filtering.
Di jurusan Teknik informatika terdapat mata kuliah praktikum jaringan
komputer yang mengajarkan tentang firewall dengan packet filtering. Dalam hal ini
digunakan suatu perangkat lunak berbasis linux yakni Shorewall. Tetapi dalam
praktikum tersebut masih shorewall masih berbasis text mode dan membutuhkan
minimal 4 komputer. Hal ini kadang menyulitkan mahasiswa ketika ingin belajar
harus memakai banyak komputer. Terkadang mereka harus datang ke Lab untuk
belajar, bagi yang tidak memiliki banyak komputer.
Maka dibuatlah suatu program simulasi setting firewall. Program ini dapat
dijalankan dalam satu komputer saja. Dengan menggunakan program ini mahasiswa
dapat belajar mengenai setting firewall. Program simulasi ini memiliki langkah
langkah yang sama dengan praktikum, antara lain setting IP, zone, interface, policy
dan rule. Program ini juga dilengkapi dengan animasi saat melakukan percobaan ping,
http atau ftp yang menunjukkan terjadinya filtering paket di mesin firewall.
Cara kerja program simulasi ini adalah program ini memfilter paket yang
lewat di firewall dengan menganalisa aturan yang ada di policy dan rule. Policy
berada di layer 3(internet layer) pada sistem protocol TCP/IP, sedangkan rule berada
di layer 4(Transport layer) Pada policy, proses filtering berdasarkan dari net id dan
31
32
nama zone. Sedangkan rule, lebih spesifik dari policy. Selain menggunakan nama
zone juga berdasarkan protokol, port number atau IP address. Misalnya pada rule
diinputkan aturan yang source atau destination-nya menggunakan nama zone
ditambah IP address. Maka program harus bisa menganalisa apakah komputer source
atau komputer destination masuk dalam range IP tersebut. Jika tidak ditemukan
aturan di rule yang cocok, program harus bisa melakukan seleksi di policy.
Diharapkan dengan adanya program bantu ini mahasiswa dapat lebih mudah
belajar tentang proses fitering paket dengan menggunakan policy dan rule.
Program ini dikembangkan dengan Macromedia Falsh 8 dengan bahasa
pemrograman action script 2.0. Software ini memiliki fitur-fitur yang dapat digunakan
untuk membuat visualisasi dengan animasi interaktif yang menarik.
Adapun deskripsi konsep dari sistem dapat dilihat pada tabel berikut ini:
Tabel 3.1. Deskripsi Konsep Sistem
Judul Simulasi Firewall
User Mahasiswa Teknik Informatika.
Durasi Sesuai kebutuhan user
Image Menggunakan image dengan format
JPEG, PNG dan GIF
Video Tidak menggunakan
Audio Tidak menggunakan
Animasi Animasi jalannya paket data
interaktif Setting IP, zone, interface, policy, rule
dan simulasi ping, http, ftp dan ssh
33
3.2 Spesifikasi Kebutuhan Hardware dan Software
Untuk bisa menjalankan aplikasi ini dibutuhkan beberapa perangkat keras dan
perangkat lunak pendukung.
Adapun komponen-komponen pendukungnya adalah sebagai berikut:
1. Prosesor Pentium III atau lebih baik
2. Memori minimal 128 MB atau lebih baik
3. Harddisk 1 GB
4. Monitor VGA
5. Keyboard, Mouse
6. Sistem Operasi Microsoft Windows XP
7. Flash Player 8 atau lebih baik
8. Internet Explore (untuk membaca help program).
Program ini juga akan diujicoba menggunakan jaringan yang asli dengan
menggunakan shorewall. Adapun perangkat keras dan perangkat lunak yang
dibutuhkan untuk ujicoba antara lain :
1. 5 buah komputer dengan masing-masing spesifikasi :
a. Prosesor Pentium 4
b. Memori 128 Mb
c. Hardisk 20 Gb
d. Lan card 10/100 Mbps
2. Sistem operasi Linux Fedora Core 2
3. Software Shorewall-3.0.6-1.noarch (digunakan untuk mesin firewall)
4. Software httpd-2.0.49-4.i386 (digunakan sebagai web server Apache,
untuk ujicoba http).
34
5. Software vsftpd-1.2.1-5.i386 (digunakan sebagai ftp server, untuk ujicoba
ftp).
6. Software lynx-2.8.5-15.i386 (digunakan sebagai web browser berbasis
text untuk ujicoba http).
3.3 Perancangan Sistem
3.3.1 Perancangan Jaringan yang Digunakan
Rancangan jaringan yang digunakan dalam program simulasi ini adalah
sebagai berikut :
Gambar 3.1 Rancangan Jaringan dengan 3 interface di komputer firewall
Gambar 3.2 Rancangan Jaringan dengan 2 interface di komputer firewall
35
Jaringan yang digunakan berdasarkan jumlah interface (eth) yang digunakan
di komputer firewall. Interface yang ada di firewall nantinya akan digunakan untuk
membatasi zone-zone masing masing komputer. Sehingga setiap komputer yang
terhubung di komputer firewall akan mengikuti zone sesuai dengan interface yang
terhubung. Jumlah interface ini diinputkan yang oleh user. Gambar 3.1 adalah
jaringan yang jumlah interface di firewallnya 3, sedangkan gambar 3.2 adalah
jaringan yang jumlah interface-nya 2.
3.3.2 Perancangan Struktur Menu Program
Gambar 3.3 Struktur Menu Program
36
3.3.3 Perancangan Flowchart Sistem
Gambar 3.4a Flowchart Sistem
37
3.3.4 Perancangan Flowchart Filtering Paket
Gambar 3.4b Flowchart Filtering Paket
Penjelasan Flowchart :
Pada saat user memilih simulasi dan menginputkan alamat IP komputer tujuan,
sistem akan mencari zone dari komputer asal dan komputer tujuan. Kemudian mencari
aturan di rule, dicek actionnya apakah REJECT, ACCEPT, atau DROP, lalu
38
ditampilkan animasi sesuai action yang ditemukan. Jika tidak ditemukan di rule,
sistem akan melakukan pencarian di policy.
3.3.5 Perancangan Antar Muka Program
3.3.5.1 Perancangan Menu Jumlah Interface Firewall
Gambar 3.5 Rancangan Menu Jumlah Interface Firewall
Form pada gambar 3.5 adalah tampilan awal saat program pertama kali
dijalankan. Interface adalah jumlah eth yang digunakan di komputer firewall. Hal ini
juga menunjukkan jumlah komputer yang terhubung dengan komputer firewall.
Dalam simulasi ini interface yang bisa dipilih adalah 2 atau 3.
3.3.5.2 Perancangan Menu Utama
Gambar 3.6 Rancangan Menu Utama
39
Gambar di atas adalah tampilan menu utama bila jumlah interfacenya 3.
Tampilan ini merupakan menu utama dari program ini. Terdiri dari menu menu antara
lain :
1. Menu File, terdiri dari :
a. Hapus Semua Setting, digunakan untuk menghapus seluruh setting.
b. Simpan Setting, digunakan untuk menyimpan seluruh setting.
c. Load Setting, digunakan untuk meload seluruh setting yang telah
disimpan.
d. Keluar, digunakan untuk keluar dari program ini.
2. Menu Step
a. Setting IP, digunakan untuk melakukan setting IP pada setiap
komputer.
b. Setting Zone, digunakan untuk mendefinisikan nama-nama zone.
c. Setting Interface, digunakan untuk mendefinisikan zone pada setiap
eth di komputer firewall.
d. Setting Policy, digunakan untuk menginputkan policy.
e. Setting Rule, digunakan untuk menginputkan rule.
3. Menu Simulasi
a. Ping, digunakan untuk melakukan simulasi ping (ICMP).
b. Http, digunakan untuk melakukan simulasi http.
c. Ftp, digunakan untuk melakukan simulasi ftp.
d. Ssh, digunakan untuk melakukan simulasi ssh.
e. Other Port Number, digunakan untuk melakukan simulasi untuk port
number yang lain dari inputan user.
4. Menu Status, digunakan untuk start atau stop firewall.
40
5. Menu Bantuan, terdiri dari :
a. IP Kalkulator, digunakan untuk untuk membantu melakukan
perhitungan IP.
b. Tip, digunakan untuk mengaktifkan dan menonaktifkan tool tip pada
policy dan rule.
c. Bantuan Program, berisi bantuan untuk mengunakan program ini.
d. Tentang, berisi informasi mengenai program ini.
3.3.5.3 Perancangan Form Setting IP
Gambar 3.7 Rancangan Form Setting IP
Form pada gambar 3.7 adalah form untuk melakukan settting IP pada setiap
komputer. Klik salah satu PC untuk menampilkan form ini. Setting IP yang
diinputkan adalah IP address, prefix, subnet masking dan gateway. Subnet masking
akan otomatis terisi jika prefix yang terisi sudah valid atau sebaliknya. Untuk gateway
bisa diisi atau tidak, tergantung setting jaringan apakah membutuhkan gateway atau
tidak.
41
3.3.5.4 Perancangan From Setting Zone
Gambar 3.8 Rancangan Form Setting Zone
Form pada gambar 3.8 digunakan untuk mendefinisikan nama-nama zone.
Jumlah zone yang diinputkan sesuai dengan jumlah interface di komputer firewall.
3.3.5.5 Perancangan Form Setting Interface
Gambar 3.9 Rancangan From Setting Interface
Form pada gambar 3.9 digunakan untuk menghubungkan zone yang telah
didefinisikan dengan masing-masing eth pada komputer firewall atau memberikan
zone pada setiap eth firewall
.
42
3.3.5.6 Perancangan Form Tool Tip
Gambar 3.10 Rancangan Form Tool Tip
Form pada gambar 3.10 adalah form yang muncul di depan form policy dan
rule. Berisi sedikit penjelasan tentang policy atau rule.
3.3.5.7 Perancangan Form Policy
Gambar 3.11 Rancangan From Policy
Form pada gambar 3.11 adalah form untuk menginputkan policy. Untuk field
SOURCE dan DEST yang dimasukkan harus nama zone atau all. Untuk field
POLICY yang diinputkan adalah REJECT, DROP atau ACCEPT. Inputan disini
bersifat case sensitive.
43
3.3.5.8 Perancangan Form Rule
Gambar 3.12 Rancangan Form Rule
Form pada gambar 3.12 adalah form untuk menginputkan rule. Untuk field
SOURCE dan DEST yang dimasukkan harus nama zone, all atau bisa diikuti IP
(misalnya, net:10.10.1.1 atau net:!10.10.1.1). Untuk field ACTION yang diinputkan
adalah REJECT, DROP atau ACCEPT. Untuk field PROTO diinputkan icmp,tcp atau
udp.
Untuk field DEST PORT bisa diisi port number atau nama aplikasi (80 atau http).
Untuk field SOURCE PORT diisi port number misalnya; 31298.
3.3.5.9 Perancangan Form Status Firewall
Gambar 3.13 Rancangan Form Status Firewall
Form pada gambar 3.13, digunakan untuk mengubah status firewall menjadi
start atau stop.
44
3.3.5.10 Perancangan Form Simulasi
Form simulasi terdiri dari form Ping, Http, Ftp, Ssh dan Other Port Number.
Berikut rancangan form simulasi :
Gambar 3.14a Rancangan Form Simulasi Ping
Gambar 3.14b Rancangan Form Simulasi Http
Gambar 3.14c Rancangan Form Simulasi Ftp
45
Gambar 3.14d Rancangan Form Simulasi Ssh
Gambar 3.14e Rancangan Form Simulasi Other Port Number
Form simulasi digunakan untuk melakukan simulasi filtering paket di
komputer firewall. Untuk simulasi ping, http, ftp dan ssh yang diisikan adalah IP
address komputer tujuan. Sedangkan untuk simulasi other port number selain IP
tujuan, juga protokol, port tujuan dan port asal.
46
3.3.5.11 Perancangan Animasi Paket
Gambar 3.15a Rancangan Animasi Paket Accept
Gambar 3.15b Rancangan Animasi Paket Reject
47
Gambar 3.15c Rancangan Animasi Paket Drop
Gambar 3.15a adalah rancangan animasi paket dimana paket di Accept, sehingga
paket terdapat paket reply ke komputer asal.
Gambar 3.15b adalah rancangan animasi paket dimana paket di Reject, sehingga paket
terlihat berhenti di komputer firewall.
Gambar 3.15c adalah rancangan animasi paket dimana paket di Reject, sehingga paket
terlihat dibuang dari komputer firewall.
3.3.5.12 Perancangan IP Kalkulator
Gambar 3.16 Rancangan IP Kalkulator
Form pada gambar 3.16 adalah IP kalkulator, digunakan sebagai bantuan untuk
melakukan perhitungan IP. Yang diinputkan adalah IP address, prefix atau masking.
Setelah diklik tombol Hitung akan tampil broadcast, network dan host range.
48
3.4 Pengumpulan Materi
Tahap ini adalah pengumpulan segala materi yang akan digunakan dalam
pembuatan aplikasi. Tahap ini bisa dilakukan secara pararel dengan tahap assembly
(implementasi). Bahan-bahan yang dikumpulkan berupa gambar (image). Gambar ini
nantinya digunakan sebagai gambar komputer, form, tombol, icon dan background.
Gambar yang digunakan formatnya adalah JPEG, PNG dan GIF. Sebagai contoh,
berikut ini adalah gambar yang digunakan sebagai gambar untuk icon
komputer(monitor.png).
Gambar 3.17 Gambar icon komputer
Sebelum diimport ke dalam macromedia flash, gambar yang telah
dikumpulkan bisa dirubah ukuran, warna maupun formatnya disesuaikan dengan
kebutuhan. Sehingga saat digunakan nantinya bisa sesuai dengan rancangan user
interface yang telah dibuat.
BAB IV
IMPLEMENTASI DAN PEMBAHASAN
4.1 Implementasi Program
Implementasi merupakan tahap pengembangan dari hasil perancangan. Pada
bab ini akan dijelaskan hasil implementasi (pengembangan) dan jalannya program
4.1.1 Menjalankan Program
Progam ini dapat langsung dijalankan dengan double klik icon program yang
berekstensi “Simulasi Firewall.exe” karena file “Simulasi Firewall.swf” sebelumnya
telah dieksport ke format exe.
Gambar 4.1 Tampilan awal program
Pada gambar 4.1 merupakan tampilan awal program yang pertama kali
dijalankan. Form ini digunakan untuk menentukan jumlah interface (eth) pada
komputer firewall. Jumlah eth bisa dipilih 2 atau 3.
4.1.2 Menggunakan Program.
4.1.2.1 Menu Utama
Setelah form jumlah interface dipilih, maka akan tampil menu utama program.
49
50
Gambar 4.2 Tampilan Menu Utama Program
Gambar 4.2 merupakan tampilan menu utama program. Tampilan diatas
merupakan contoh bila interface dipilh 3. Terlihat komputer firewall memiliki 3 eth
yang tersambung ke masing masing komputer. Menu utama terdiri dari : File, Step,
Simulasi, Status dan Bantuan. Selain itu juga terdapat tombol shortcut load, Simpan,
IP kalkulator, policy, bantuan dan status. Untuk fungsi dari masing masing menu dan
shortcut telah dijelaskan di bab III.
51
4.1.2.2 Form setting IP
Untuk masuk ke form setting IP, pilih menu Step -> Setting IP.
Gambar 4.3a Tampilan Form Setting IP
Gambar 4.3a merupakan tampilan form setting IP. Untuk masuk ke setting IP,
klik komputer yang diinginkan, maka akan tampil form diatas. Data yang diisikan di
form adalah nama PC, IP address, prefix, masking dan gateway. Untuk inputan IP dan
gateway formatnya harus xxx.xxx.xxx.xxx (terdiri dari 4 segement). Segement
pertama harus lebih kecil atau sama dengan 223 dan segment lainnya harus lebih kecil
atau sama dengan 255. Jika format inputan IP salah maka saat di klik tombol Simpan,
muncul pesan error misalnya ;
“Invalid IP Address
Segment pertama IP arus 1-233”.
Untuk field gateway format pengisianya formatnya sama dengan IP. Jika field prefix
diisi dan isiannya valid maka field masking otomatis terisi dan sebalikanya. Untuk
mengurangi kesalahan saat pengisian prefix, jika diisi lebih dari 32 maka field prefix
otomatis terisi 32. Jika diisi lebih kecil dari -1 akan otomatis terisi 1. Misalnya di
prefix diisi 24, maka di masking otomatis akan muncul 255.255.255.0. Untuk gateway
bisa diisi atau tidak, tergantung konfigurasi jaringan (tergantung letak PC, apakah
52
butuh gateway atau tidak). Jika komputer memiliki lebih dari satu eth, untuk
berpindah ke eth lain gunakan tombol eth di samping Pilih Eth. Klik tombol Simpan
untuk menyimpan konfigurasi IP. Klik tombol Hapus untuk mengosongkan form. Jika
inputan IP sudah benar, maka akan tampil pesan “Konfigurasi IP disimpan”. Untuk
melihat IP suatu komputer, cukup lakukan mouse over pada komputer yang
diinginkan, maka akan muncul informasi IPnya. Seperti contoh pada gambar 4.3b
berikut ini.
Gambar 4.3b Mouse Over IP
4.1.2.3 Form Setting Zone
Untuk masuk ke form setting IP, pilih menu Step -> Setting Zone.
Gambar 4.4a Tampilan Form Setting Zone
Form pada gambar 4.4a digunakan untuk mendefinisikan nama zone yang
nantinya akan digunakan. Jumlah zone disini sesuai dengan jumlah eth di firewall
Untuk nama zone pada firewall defaultnya ‘fw’ dan tidak bisa diubah. Selain itu nama
zone bebas, tetapi tidak boleh ada yang sama.
53
Setelah tombol Simpan diklik dan nama zone disimpan. Maka di kanan atas akan
muncul kotak yang menunjukkan nama nama zone yang memiliki warna berbeda,
berfungsi untuk membedakan setiap zone. Seperti pada gambar 4.4b berikut.
Gambar 4.4b Nama Zone
4.1.2.4 Form Setting Interface.
Untuk masuk ke form setting IP, pilih menu Step -> Setting Interface.
Gambar 4.5a Tampilan Form Setting Interface
Form pada gambar 4.5a digunakan untuk menghubungkan setiap zone dengan
eth yang ada di komputer firewall. Untuk menghubungkan nama zone dengan eth
tertentu, menggunakan combo box yang berisi semua nama zone dan dipilih salah satu.
Maka setiap komputer yang terhubung ke eth tertentu, nama zone-nya akan mengikuti
zone yang telah didefinisikan dengan eth tersebut. Jika nama zone belum didefinisikan
pada form zone, maka seluruh combo box akan kosong. Zone untuk setiap eth harus
berbeda. Klik tombol Save untuk menyimpan konfigurasi interface. Klik tombol
Hapus untuk mereset pemilihan zone pada semua eth. Setelah konfigurasi interface
54
disimpan, maka seluruh komputer akan dikelilingi kotak yang warna sesuai dengan
nama zone yang telah didefinisikan di form setting zone. Dengan kotak warna lebih
memudahkan user melihat komputer itu ada di zone mana. Seperti pada gambar 4.5b
berikut ;
Gambar 4.5b Tampilan Hasil Konfigurasi Interface
4.1.2.4 Form Setting Policy
Untuk masuk ke form setting IP, pilih menu Step -> Setting Policy.
Saat pertama kali masuk ke setting policy, maka muncul tool tip policy di depan form
setting policy. Sementara form policy belum bisa diakses.
Gambar 4.6a Tampilan Tool Tips Policy
55
Tool Tips ini merupakan form yang berisi sedikit penjelasan dan tutorial
mengenai policy. Dengan adanya tool tips ini diharapkan user bisa lebih paham
mengenai policy sebelum mengisi policy. Klik tombol panah untuk menuju ke
halaman berikutnya. Tool tips ini akan selalu muncul jika masuk ke setting policy.
Untuk menonaktifkan klik ‘check box show in next open’. Untuk mengaktifkan
kembali klik menu utama Help -> Tool Tips -> Policy.
Setelah tool tips ditutup, form policy dapat diakses.
Gambar 4.6b Tampilan Form Policy
Form di gambar 4.6b merupakan tampilan form policy. Untuk field SOURCE
adalah nama zone komputer asal. DEST adalah zone komputer tujuan. SOURCE dan
DEST harus diisi nama zone yang telah didefinisikan di setting policy. Juga bisa diisi
‘all’ artinya mengacu pada semua zone. Policy hanya menggunakan nama zone dan
net id untuk proses seleksi policy. Untuk policy diisi action ACCEPT, DROP atau
REJECT. Klik tombol Add untuk menyimpan inputan policy. Form ini menampilkan
policy sebanyak 5. Untuk melihat policy diatasnya dapat di scroll menggunakan
tombol ‘V’ atas dan ‘V’ untuk scroll policy ke bawah. Atau menggunakan tombol
panah atas dan panah bawah di keyboard. Untuk menghapus policy gunakan tombol
hapus (tombol Delete di keyboard). Dalam policy urutan sangatlah penting, karena
jika sudah menggunakan logika IF.. ELSE. Maka harus hati hati meletakkan policy.
56
Jika sudah ditemukan sebuah policy, maka policy dibawahnya diabaikan. Gunakan
tombol Move Up (tombol Page UP dikeyboard) dan Move Down (tombol Page Down
di keyboard) untuk merubah urutan policy. Untuk mengedit policy, ketika diklik
tombol Edit, policy yang dipilih akan tampil di text field atas dan tombol Add berubah
menjadi Save. Untuk melakukan aksi hapus, edit, scroll dan move, policy yang dipilih
harus diklik hingga policy berubah menjadi biru.
4.1.2.5 Form Setting Rule
Untuk masuk ke form setting IP, pilih menu Step -> Setting Rule.
Saat pertama kali masuk ke setting rule, seperti pada saat setting policy.
Gambar 4.7a Tool Tips Rule
Tool tips ini berisi sedikit penjelasan tentang rule.
57
Gambar 4.7b Tampilan Form rule
Form di gambar 4.6b merupakan tampilan form rule. Untuk field SOURCE
adalah nama zone komputer asal. DEST adalah zone komputer tujuan. SOURCE dan
DEST harus diisi nama zone yang telah didefinisikan di setting rule. Juga bisa diisi
‘all’ artinya mengacu pada semua zone. SOURCE dan DEST bisa lebih spesifik
dengan menggunakan IP dari pada policy yang hanya mengacu pada nama zone dan
net id. Selain itu juga bisa diisi nama zone diikuti dengan IP, maka zone itu akan lebih
spesifik hanya pada komputer yang memiliki IP itu. Misalnya ; “loc:10.1.1.2”, berarti
rule tersebut mengacu hanya pada zone loc yang komputernya memiliki IP 10.1.1.2.
Atau diisi dengan “dmz:!11.1.1.2”, berarti mengacu pada zone dmz yang IPnya selain
11.1.1.2. Untuk ACTION dapat diisi ACCEPT, DROP atau REJECT. Untuk PROTO
diisi nama protokol ; imp, tcp dan udp. Untuk DEST PORT dapat diisi nama aplikasi
atau port number misalnya (http atau 80, ftp atau 21). Untuk SOURCE DEST adalah
port number asal dan dapat didefinisikan sembarang oleh user. SOURCE DEST ini
nantinya bisa digunakan di simulasi Other Port Number. Jika protokol diisi icmp,
maka DEST PORT danSOURCE DEST dikosongkan. Untuk cara kerja add, edit,
move, hapus dan scroll sama dengan cara policy.
58
4.1.2.5 Form Status Firewall
From ini digunakan untuk mengubah status firewall start atau stop. Seperti ditampilan
gambar 4.8a.
Gambar 4.8a Tampilan Form Status Firewall
Jika status firewall start maka akan terjadi proses filtering paket, jadi akan
terjadi proses seleksi aturan di rule dan policy. Jika status firewall stop, tidak akan
terjadi proses filtering paket. Rule dan policy yang telah diinputkan akan diabaikan
jika status belum start. Jika nama zone atau interface belum didefinisikan maka pada
saat firewall di-start, terjadi error. Error ini akan dijelaskan di bagian pengujian
program.
4.1.2.6 Menu Simulasi
Di menu simulasi ini terdapat beberapa simulasi antara lain : Ping, Http, Ftp
dan Other Port Number. Menu simulasi ini digunakan untuk test koneksi (konfigurasi
IP) dan aturan di policy dan rule. Simulasi yang dibahas disini simulasi ping, http dan
other port number, karena http dan ftp tampilannya hampir. Pada simulasi http, ftp,
ssh dan other port number default protokolnya adalah ‘tcp’, sedangkan pada simulasi
other port number protokolnya bisa ditentukan sendiri (icmp, udp atau tcp). Sebelum
melakukan simulasi simulasi tersebut pastikan setting IP setiap komputer sudak benar,
59
sehingga simulasi bisa berjalan lancar dan tidak ada pesan error (berupa ; gateway
salah atau koneksi antar komputer tidak satu network ) yang muncul.
4.1.2.6.1 Simulasi Ping
Untuk melakukan simulasi ping, pilih menu utama Simulasi -> Ping.
Kemudian klik salah satu komputer yang diinginkan. Maka tampilannya seperti
gambar 4.9 berikut.
Gambar 4.9 Tampilan Form Ping
Nama komputer tujuan akan tampil di form tersebut. Pada gambar 4.9
komputer tujuan adalah ‘pcA’. IP komputer tujuan diinputkan di text field ping. Untuk
mulai simulasi klik tombol Ping. Saat tombol ping diklik program akan menjalankan
action script berupa fungsi pings() yang berada di layer ping frame 1. Fungsi ini
akan mengembalikan nilai berupa ‘reply’ atau pesan error lainnya. Hasilnya akan
tampil di text area Result.
Setelah tombol Ping diklik akan muncul animasi paket berjalan(berbentuk amplop).
Seperti pada gambar 4.10 berikut.
60
Gambar 4.9 Contoh Tampilan Animasi Ping
Gambar 4.9 diatas adalah contoh animasi ping. Jika paket sampai di tujuan
maka akan muncul tanda check hijau seperti gambar 4.10a. Kemudian paket akan
kembali (reply) ke komputer asal dan di form ping menampilkan pesan reply. Jika
ping tidak menunjukan reply atau gagal (kemungkinan request time out atau
destination host unreachable), maka paket akan berhenti ditengah jalan dan akan
tampil tanda silang merah seperti gambar 4.10b.
Gambar 4.10a Tampilan Paket Terkirim
Gambar 4.10b Tampilan Paket Tidak Terkirim
61
Jika firewall start maka saat paket melewati komputer firewall akan terjadi
proses seleksi aturan di rule dan policy, dalam hal di visualisasikan komputer firewall
berkelip kelip dan di atasnya akan muncul teks yang berisi aturan yang berlaku. Saat
tombol ping diklik, setelah menjalankan fungsi pings() program akan langsung
mengeksekusi fungsi cari_action() yang berada di layer policy_rule frame 1. Fungsi
ini mengembalikan nilai berupa object yang berisi jenis aturan (policy atau rule),
urutan dan action. Nilai inilah yang digunakan untuk menentukan animasi ping dan
ditampilkan di teks di atas komputer firewall. Seperti gambar 4.11 berikut ini.
Gambar 4.11a Tampilan Animasi Pencarian Atruran yang Cocok.
Jika action yang ditemukan ACCEPT maka paket akan sampai di tujuan dan kembali
reply ke komputer asal dan pesan di bagian Result form ping akan muncul reply.
Seperti tampilan gambar 4.10a diatas. Jika action yang ditemukan REJECT maka
paket akan berhenti di komputer firewall dan pesan di bagian Result form ping akan
muncul Destination host unreachable. Seperti pada tampilan gambar 4.11b berikut.
Gambar 4.11b Tampilan Paket di-REJECT
62
Jika action yang ditemukan DROP maka paket akan dibuang keluar dari
komputer firewall dan tidak kembali ke komputer asal. Pesan di bagian Result form
ping akan muncul Request time out. Seperti pada tampilan gambar 4.11c berikut.
Gambar 4.11c Tampilan Paket di-DROP
63
4.1.2.6.2 Simulasi Http
Untuk melakukan simulasi Http, pilih menu utama Simulasi -> Http. Kemudian klik
salah satu komputer yang diinginkan. Maka tampilannya seperti gambar 4.12 berikut.
Gambar 4.12 Tampilan Form Http
Form Http digunakan untuk melakukkan simulasi akses web server komputer
tujuan. Nama komputer tujuan akan tampil di form tersebut. Pada gambar 4.12
komputer tujuan adalah ‘pcA’. IP komputer tujuan diinputkan di text field http. Untuk
mulai simulasi klik tombol GO. Hasilnya akan tampil di text area Result. Jika
simulasi sukses dan paket bisa kembali (reply) ke asal atau action yang ditemukan
adalah ACCEPT, maka di text area Result akan tampil pesan :
Connected to : IP tujuan
Welcome to Web Server : nama komputer tujuan
Jika paketnya berhenti ditengah jalan dan tidak bisa reply ke komputer asal atau
action yang ditemukan DROP, maka di text area Result akan tampil pesan :
http : connect : connection time out
Jika paketnya berhenti ditengah jalan dan tidak dapat menemukan komputer tujuan
atau action yang ditemukan REJECT, maka di text area Result akan tampil pesan :
Http : unable to find host : IP tujuan
Untuk tampilan animasi paket sama dengan simulasi Ping.
64
4.1.2.6.3 Simulasi Other Port Number
Untuk melakukan simulasi ping, pilih menu utama Simulasi -> Other Port Number .
Kemudian klik salah satu komputer yang diinginkan. Maka tampilannya seperti
gambar 4.13 berikut.
Gambar 4.13 Tampilan Form Simulasi Other Port Number
Form simulasi ini digunakan melakukan simulasi dengan port number yang
lain. Dengan user dapat menentukan sediri protokol, port tujuan dan port asal. Karena
untuk simulasi ftp, http dan ssh defaultnya protokol = tcp dan port numbernya =21, 80,
22. Untuk field Destination diisi IP komputer tujuan. Klik tombol GO untuk memulai
simulasi. Hasilnya akan tampil di text area Result.
Jika simulasi sukses dan paket bisa kembali (reply) ke asal atau action yang
ditemukan adalah ACCEPT, maka di text area Result akan tampil pesan :
Packet accepted
Jika paketnya berhenti ditengah jalan dan tidak bisa reply ke komputer asal atau
action yang ditemukan DROP, maka di text area Result akan tampil pesan :
Packet dropped
65
Jika paketnya berhenti ditengah jalan dan tidak dapat menemukan komputer tujuan
atau action yang ditemukan REJECT, maka di text area Result akan tampil pesan :
Packet rejected
Untuk tampilan animasi paket sama dengan simulasi Ping.
4.1.2.7 Help Program
Untuk masuk ke help, pilih menu utama Help -> Help Program. Help program
ini berbentuk html. Maka ketika masuk ke help akan langsung tampil internet explorer
berisi tentang panduan cara menggunakan program ini. Maka user harus memiliki web
browser Internet Explorer yang terinstal dikomputer untuk membaca help ini. Seperti
tampak pada gambar 4.14 berikut ini.
Gambar 4.14 Tampilan Help Program
66
4.2 Hasil Pengujian Program
Pada tahap ini dilakukan ujicoba (testing) pada program yang sudah selesai
implementasinya. Ujicoba ini menggunakan data di modul praktikum jaringan
komputer 2 tentang Firewall / Shorewall 3.0.x tahun 2008.
Konfigurasi jaringan yang diujikan adalah sebagai berikut :
Gambar 4.15 Konfigurasi Jaringan untuk Ujicoba
Untuk membuat konfigurasi pada gambar 4.15, pada saat memilih jumlah
interface firewall pilihlah 3. Pada konfigurasi tersebut digunakan 5 buah komputer.
Dimana pcB difungsikan sebagai komputer firewall. Komputer firewall (pcB)
memiliki 3 eth, masing masing eth berbeda net id. Masing masing eth terhubung
dengan komputer. Eth 0 terhubung dengan pcA, eth1 dengan pcC dan eth2 dengan
pcD. Sehingga setiap komputer yang terhubung akan memiliki zone sendiri. Untuk
pcD dan pcE berada dalam satu zone karena pcD terhubung dengan eth2 komputer
firewall Masing masing eth tersebut mewakili 3 zone yang digunakan di ujicoba ini.
Ujicoba ini ada beberapa langkah, antara lain :
67
4.2.1 Ujicoba Setting IP
Konfigurasi IP yang digunakan adalah sebagai berikut :
a. Komputer firewall
Nama : firewall
eth0 : 192.168.0.1 / 24
eth1 : 10.1.1.1 / 24
eth2 : 130.10.10.1/29 gateway : 130.10.10.6 (eth0 pcD)
b. pcA
Nama : client
eth0 : 192.168.0.2 /24 gateway : 192.168.0.1 (eth0 komputer firewall)
c. pcC
Nama : server
eth0 : 10.1.1.2 / 24 geteway : 10.1.1.1 (eth1 komputer firewall)
d. pcD
Nama : router
eth0 : 130.10.10.6/29
eth1 : 130.130.130.10/24
Tidak membutuhkan gateway karena berfungsi sebagai router.
e. pcE
Nama : internet
eth0 : 130.130.130.130/24 gateway 130.130.130.10 (eth1 pcD)
Untuk melakukan setting IP masing masing komputer menggunakan menu
Setting IP, seperti telah dijelaskan di sub bab 4.1.2.2 Form Setting IP.
Untuk menguji konfigurasi IP setiap komputer harus bisa ping ke komputer komputer
lainnya. Contohnya sebagai berikut :
68
a. Ping dari komputer client ke server
Gambar 4.16a Ping dari loc ke dmz
b. Ping dari komputer firewall ke internet
Gambar 4.16b Ping dari firewall ke internet
Jika ping menghasilkan pesan reply maka berarti konfigurasi IP sudah benar.
Untuk animasi ping, jika reply akan ada paket reply kembali ke komputer asal seperti
yang sudah dijelaskan di sub bab 4.1.2.6 Menu Simulasi.
4.2.2 Ujicoba Setting Zone dan Interface
Jika zone dan interface belum didefinisikan firewall akan menampilkan pesan
error saat di-start.
69
Gambar 4.17a Error Zone belum didefinisikan
Gambar 4.17a Error Interface belum didefinisikan
Nama zone yang digunakan dalam ujicoba :
a. fw : zone untuk komputer firewall. Nama zone ini harus ‘fw’ dan tidak boleh
diubah.
b. net
c. loc
d. dmz
Hubungan interface komputer firewall dengan zone.
a. loc –> eth0
b. dmz -> eth1
c. net -> eth2
70
4.2.3 Ujicoba Setting Policy
Pada ujicoba policy ini, data policy awal yang digunakan sebagai berikut :
SOURCE DEST POLICY
fw all ACCEPT
net all DROP
all all REJECT
Pada policy tersebut berarti, semua komunikasi dari komputer di zone fw ke zone
apa saja diizinkan (ACCEPT). Semua komunikasi dari net ke zone apa saja di-DROP.
Selain itu ditolak (REJECT). Berikut contoh Ujicoba yang telah dilakukan.
a. Ujicoba Ping dari zone fw ke zone net
Gambar 4.18a Ping dari Zone fw ke Zone net
Dari gambar 4.18a dan simulasi shorewall yang asli terlihat ping dari
komputer firewall ke komputer router hasilnya reply. Ketika paket sampai di
komputer fw sistem akan mencari aturan yang cocok. Pertama sistem akan mencari di
Rule, karena Rule masih kosong dilanjutkan ke policy. Dengan menggunakan logika
IF.. ELSE ditemukan policy fw – all ACCEPT. Sistem akan mencari baris per baris
dicek policy yang SOURCE-nya (‘fw’ atau ‘all’) dan DEST-nya (‘net’ atau ‘all’). All
mengacu pada semua zone. Karena yang ditemukan pertama kali adalah fw – all
71
ACCEPT. Maka fungsi cari_action() akan mengembalikan nilai ACCEPT, sehingga
tampil pesan reply.
Hal ini juga berlaku untuk semua komunikasi dari komputer firewall ke loc, dmz dan
net. Karena policy tidak menggunakan protokol tetapi berdasarkan nama zone dan net
id.
b. Ujicoba Http dari net ke dmz
Gambar 4.18b Http dari Zone net ke Zone dmz
Dari gambar 4.18b dan simulasi shorewall yang asli terlihat http dari komputer
router ke komputer dmz hasilnya ‘Http: connect : Connection time out’, karena paket
http hilang ditengah jalan. Dengan menggunakan logika IF.. ELSE ditemukan policy
net – all DROP. Sistem akan mencari baris per baris dicek policy yang SOURCE-
nya (‘net’ atau ‘all’) dan DEST-nya (‘dmz’ atau ‘all’). Karena yang ditemukan
pertama kali adalah net – all DROP. Maka fungsi cari_action() akan
mengembalikan nilai DROP, sehingga tampil pesan time out.
Hal ini juga berlaku untuk semua komunikasi dari komputer zone net ke loc, dmz dan
fw.
72
c. Ujicoba Ftp dari dmz ke loc
Gambar 4.18c Http dari Zone dmz ke Zone loc
Dari gambar 4.18c dan simulasi shorewall yang asli terlihat ftp dari komputer
server ke komputer local hasilnya ‘ftp: connect : Connection refused’, karena paket
http ditolak saat sampai di komputer firewall. Dengan menggunakan logika IF.. ELSE
ditemukan policy all – all REJECT. Sistem akan mencari baris per baris dicek
policy yang SOURCE-nya (‘net’ atau ‘all’) dan DEST-nya (‘dmz’ atau ‘all’). Karena
sistem tidak menemukan policy yang sesuai maka akan langsung menuju ke all –
all REJECT. Policy ini merupakan aturan default jika tidak ditemukan diatasnya,
sehingga harus diletakkan dibawah.
Hal ini juga berlaku untuk semua komunikasi dari komputer zone dmz ke local, dmz
dan net.
73
d. Ping dari dari zone loc ke zone fw
Gambar 4.18d Ping dari Zone loc ke Zone fw
Dari gambar 4.18d dan dan simulasi shorewall yang asli terlihat ping dari
komputer loc ke komputer firewall hasilnya ‘destination host unreachable’, karena
paket icmp ditolak saat sampai di komputer firewall. Dengan menggunakan logika IF..
ELSE ditemukan policy all – all REJECT. Prosesnya dilakukan dengan cara,
Sistem akan mencari baris per baris dicek policy yang SOURCE-nya (‘net’ atau ‘all’)
dan DEST-nya (‘dmz’ atau ‘all’). Karena sistem tidak menemukan policy yang sesuai
maka akan langsung menuju ke all – all REJECT. Policy ini merupakan aturan
default jika tidak ditemukan diatasnya, sehingga harus diletakkan dibawah.
Hal ini juga berlaku untuk semua komunikasi dari komputer zone loc ke dmz, net
Jika policy ditambahkan aturan :
SOURCE DEST POLICY
loc fw ACCEPT
loc dmz ACCEPT
dmz fw ACCEPT
... ... ...
Maka semua komunikasi dari zone loc ke fw, dari loc ke dmz, dari dmz kef w
dizinkan. Sehingga komunikasi Ping, Http, Ftp, Ssh dan Other Port Number sukses
(menghasilkan reply).
74
4.2.3 Ujicoba Setting Rule
Policy dikembalikan ke posisi awal.
SOURCE DEST POLICY
fw all ACCEPT
net all DROP
all all REJECT
Ujicoba pertama Rule ditambahkan aturan :
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)
ACCEPT loc fw icmp - -
Aturan diatas berarti komukasi dari zone loc ke fw yang diizinkan (ACCEPT) hanya
yang protokolnya ‘icmp’. Berikut ujicoba yang dilakukan ;
a. Ping dari Zone loc ke Zone fw
Gambar 4.19a Ujicoba Ping dari Zone loc ke Zone fw
75
b. Ftp dari Zone loc ke Zone fw
Gambar 4.19b Ujicoba Ftp dari Zone loc ke Zone fw
Dari hasil yang tampak dari gambar 4.19a dan 1.19b serta dan simulasi
shorewall yang asli, ftp dan ping memberikan hasil yang berbeda meskipun tujuannya
sama 192.168.0.1. Pada proses Ping, saat proses pencarian aturan sistem menemukan
aturan ACCEPT - loc - fw - icmp di Rule. Jadi pada rule aturan bisa didefinisikan
untuk protokol tertentu, dalam hal ini ‘icmp’. Sedangkan pada sebuah policy bisa
berlaku untuk semua komunikasi asalkan nama zone dan net id cocok. Pada proses
Ftp, sistem akan mencari di Rule aturan yang nama zone asalnya loc, zone tujuannya
fw, protokolnya tcp dan port tujuannya ftp (21). Karena tidak ditemukan proses
pencarian dilanjutkan di policy dan ditemukan aturan all - all – REJECT .
Jika Rule ditambahkan aturan :
ACCEPT loc fw tcp 80 -
ACCEPT loc fw tcp 22 -
Maka http dan ssh dari zone loc ke fw sukses, tampak pada hasil simulasi berikut ;
a. Untuk Http (port 80)
Connected to : 192.168.0.1
Welcome to Web Server : firewall
b. Untuk Ssh (port 22)
Connected to : 192.168.0.1
76
Pada simulasi a diatas sistem akan mencari aturan yang zone asalnya ‘loc’, zone
tujuannya ‘fw’, protokolnya ‘tcp’ dan port tujuanya 80 (http). Untuk simulasi b port
tujuannya 22 (ssh).
4.2.4 Ujicoba Penambahan IP pada Rule
Komputer local IPnya diubah menjadi 192.168.0.3. Simulasi ssh ke 192.168.0.1 (dari
zone loc ke fw) sukses. Seperti pada tampilan gambar 4.20a.
Gambar 4.20a Ujicoba Ssh dari Zone loc ke fw
Kemudian dilakukan perubahan di rule
ACCEPT loc fw tcp 80 -
ditambahkan ip pada ‘loc’ menjadi
ACCEPT loc:192.168.0.2 fw tcp 80 -
Dilakukan simulasi ssh ke 192.168.0.1, hasilnya sebagai berikut ;
Gambar 4.20b Ujicoba Ssh dari Zone loc ke fw setelah rule diubah
77
Setelah rule diubah, ssh akan gagal seperti pada gambar 4.20b dan simulasi
shorewall yang asli. Pada rule yang telah diubah zone loc ditambahkan IP menjadi
‘loc:192.168.0.2’, berarti rule tersebut berlaku untuk zone asalnya loc yang IPnya =
192.168.0.1. Karena IP komputer local telah diubah menjadi 192,168.0.3, maka aturan
tersebut tidak dipilih. Rule bisa didefinisikan untuk IP tertentu, berbeda dengan policy
yang hanya berdasarkan net id saja (sekumpulan IP). Karena tidak menemukan di rule
sistem akan mencari di policy dan menemukan aturan all – all REJECT.
Sehingga ssh dari loc fw di-REJECT.
4.2.5 Hasil Ujicoba dengan Shorewall asli
Pada langkah ini dilakukan ujicoba (testing) dengan Shorewall linux yang asli,
menggunakan data dan konfigurasi jaringan yang sama dengan ujicoba program
simulasi diatas. Berikut ini adalah perbandingan hasil ujicoba program simulasi
dengan shorewall yang asli.
Tabel 4.1 Hasil Perbandingan Hasil ujicoba Program Simulasi dan Shorewall Asli
Hasil Aturan Policy dan
Rule Ujicoba
Program Simulasi Shorewall Asli
Ping dari zone fw
ke zone net
(ping ke
130.10.10.6)
Berhasil (reply) Berhasil (reply) policy :
fw–all-ACCEPT
net–all-DROP
all–all-REJECT
Http dari net ke
dmz
(http ke 10.1.1.2)
Gagal (time out) Gagal(koneksi time
out)
78
ftp dari dmz ke loc
(http ke 10.1.1.2)
Gagal(koneksi
ditolak)
Gagal(koneksi
ditolak)
Ping dari loc ke fw
(ping ke
192.168.0.1)
Berhasil (reply) Berhasil (reply) Rule :
ACCEPT-loc-fw-
icmp
Ftp dari loc ke fw
(ftp ke 192.168.0.1)
Gagal(koneksi
ditolak)
Gagal(koneksi
ditolak)
Http dari loc ke fw
(Http ke
192.168.0.1)
Berhasil Berhasil (dapat
membuka halaman
web server
komputer fw)
Rule :
ACCEPT-loc-fw-
icmp
ACCEPT-loc-fw-
tcp-80
ACCEPT-loc-fw-
tcp-22
Ssh dari loc ke fw
(Http ke
192.168.0.1)
Berhasil Berhasil (dapat
melakukan remote
pada komputer fw)
Rule :
ACCEPT-
loc:192.168.10.2-
fw-icmp
Komputer local
IPnya diubah
menjadi
192.168.0.3
Ping dari loc ke fw
(ping ke
192.168.0.1)
Gagal (destination
host unreachable)
Gagal (destination
host unreachable)
79
4.3 Distribusi
Aplikasi yang dibuat akan didistribusikan dalam bentuk CD interaktif. File aplikasi
formatnya *.exe. Jadi aplikasi dapat dijalankan secara langsung tanpa flash player.
CD akan dibuat autorun (aplikasi otomatis berjalan saat CD dibuka di komputer).
Aplikasi ini dapat juga dicopy ke hardisk. Sehingga dapat dijalankan dari hardisk.
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan
Dalam pembuatan program simulasi firewall ini dapat disimpulkan :
1. Dari hasil ujicoba program simulasi dan shorewall asli dengan konfigurasi
jaringan dan data yang sama diperoleh hasil yang sama. Maka program ini
diharapkan dapat digunakan sebagai alternatif dalam membantu user
mempelajari setting firewall karena berbasis gui dibandingkan shorewall asli
yang berbasis text.
5.2 Kelebihan dan Kekurangan Program
Kelebihan yang dimiliki program ini adalah :
1. Program ini dapat melakukan simulasi firewall dengan menggunakan satu
komputer saja.
2. Program ini dapat menampilkan animasi jalannya paket dan melihat aturan
mana yang digunakan saat filtering paket.
Kekurangan yang ada pada program ini adalah :
1. Kecepatan animasi paket tidak bisa diatur, sehingga jika jarak 2 komputer
yang disimulasikan terletak di ujung maka membutuhkan waktu yang agak
lama.
5.3 Saran
Saran yang diberikan penulis dalam pengembangan program ini lebih lanjut antara
lain :
80
81
1. Program simulasi dapat dikembangkan dengan ditambahkan materi sampai
dengan SNAT, DNAT, one to one NAT atau Proxy ARP.
DAFTAR PUSTAKA Herlambang, F., 2007, Membuat Efek Khusus dengan Action Script 2.0 Falsh 8. Jakarta :
PT. Elex Media Komputindo Hernawan, A., 2008, Modul Praktikum Jaringan Komputer Firewall / Shorewall 3.0.x.
Yogyakarta : Teknik Informatika USD Luther, A., 1994. Authoring Interactive Multimedia. Boston : AP Profesional Oetomo, D., 2004, Konsep dan Perancangan Jaringan Komputer. Yogyakarta : Penerbit
Andi Lukas, J., 2006, Jaringan Komputer. Yogyakarta: Graha Ilmu Mansfield, N., 2004, Practical TCP/IP Mendesain, Menggunakan dan Troubleshooting
Jaringan TCP/IP di Linux dan Windows. Yogyakarta : Penerbit Andi Thomas, E., 2005, Shorewall 3.x Documentation, [pdf],
(http://www.shorewall.net/Shorewall-3.0.x_1.pdf, diakses tanggal 25 Agustus 2008 )
Muammar, A., 2004, Firewall, [pdf], (http://ilmuKomputer.com/ammar-firewall.pdf,
diakses 25 maret 2008) Ardiyansah, D., 2004. Teknologi Jaringan Komputer, [pdf],
(http://ilmuKomputer.com/dian-jaringan.pdf, diakses 25 maret 2008) Picano Sanjaya, A., 2005, Linux Proxy Server Dengan Squid dan Shorewall, [pdf],
(http://ilmuKomputer.com/anton-squid.pdf, diakses 8 Agustus 2008) Triswikuharso, T., 2004, Firewall dan NAT, [pdf], (http://ilmuKomputer.com/teguh-
nat.pdf, diakses 25 september 2008) ____, 2008, Shorewall Configuration in Debian and Shorewall GUI, [online],
(http://www.debianhelp.co.uk/manual/shorewall.htm, diakses 12 Maret 2008)
83
LAMPIRAN Listing Program Listing pada Layer Var IP Frame 1 stop(); var temp_zone_name; var msg,klik=false; var idClick,idTemp; var id_sumulasi; var id_massage; var tips_policy=true; var tips_rule=false; //jumlah interface var jml_interface=2; //firewall status var fw_status=0; //property pcA //pcA eth1 var namaA="pcA",eth0A,msk0A,gt0A; //property pcB //pcB eth1,eth2,eth3; var namaB="pcB",eth0B,msk0B,gt0B; var eth1B,msk1B,gt1B; var eth2B,msk2B,gt2B; //property pcC //pcC eth1 var namaC="pcC",eth0C,msk0C,gt0C; //property pcD //pcD eth1,eth2; var namaD="pcD",eth0D,msk0D; var eth1D,msk1D; //property pcE //pcE eth1,eth2; var namaE="pcE",eth0E,msk0E,gt0E; //nama zone //var zoneTempF="fw",zoneTemp0,zoneTemp1,zoneTemp2; var zoneTempF="fw",zoneTemp0,zoneTemp1,zoneTemp2; var jmlA=1,jmlB=3,jmlC=1,jmlD=2,jmlE=1; ///Zone untuk setiap interface //var idZoneF="F",idZone0=0,idZone1=1,idZone2=2; var idZoneF="F",idZone0,idZone1,idZone2; //zone untuk pc var zone_pcA=0; var zone_pcB="F"; var zone_pcC=1; var zone_pcD=2; var zone_pcE=2;
Listing pada Layer fungsi_IP Frame 1 //fungsi mengubah bentuk prefix ke masking function prefixToMask(n:Number):Array{ pesan=false; if(n<0 || n>32){ _root.msg="Prefix harus antara 0-32" return pesan; } var subn:Array=new Array(); var one=""; for(var i=1;i<=n;i++){ one=one+"1"; } for(var i=1;i<=32-n;i++){ one=one+"0"; } subn[0]=parseInt(one.substr(0,8),2); subn[1]=parseInt(one.substr(8,8),2); subn[2]=parseInt(one.substr(16,8),2); subn[3]=parseInt(one.substr(24,8),2); return subn; } //fungsi cek per bagian subnet function Cek_partOfSubnet(subn:Number){ var part:Array=new Array(0,128,192,224,240,248,252,254,255); for(var i=0;i<part.length;i++){ if(part[i]==subn){ return i; } } return -1; } //fungsi memecah IP menjadi 4 bagian function pecahIp(myStr:String):Array{ var ip_i : Array =new Array(); l1=myStr.length; k1=myStr.indexOf("."); hasil1=myStr.substr(0,k1); myStr2=myStr.substr(k1+1,l1-1); k2=myStr2.indexOf("."); hasil2=myStr2.substr(0,k2); myStr3=myStr2.substr(k2+1,l1-1); k3=myStr3.indexOf("."); hasil3=myStr3.substr(0,k3); myStr4=myStr3.substr(k3+1,l1-1); k4=myStr4.indexOf("."); hasil4=myStr4; var pesan=false; if(k1 == -1 || k2 == -1 || k3 == -1 || k4 != -1){ _root.msg="Invalid IP Address.\nIP harus terdiri dari 4 segment"; return pesan; }
if(parseInt(hasil1)<=0 || parseInt(hasil1)>223){ _root.msg="Invalid IP Address.\nSegment pertama IP harus 1 - 223"; return pesan; } if(parseInt(hasil2)<0 || parseInt(hasil2)>255 || parseInt(hasil3)<0 || parseInt(hasil3)>255 || parseInt(hasil4)<0 || parseInt(hasil4)>255){ _root.msg="Invalid IP Address.\nSegment 2,3 dan 4 IP harus 0 - 255"; return pesan; } ip_i[0]=hasil1; ip_i[1]=hasil2; ip_i[2]=hasil3; ip_i[3]=hasil4; return ip_i; } //fungsi cek gateway function pecahGateway(myStr:String):Array{ var ip_i : Array =new Array(); l1=myStr.length; k1=myStr.indexOf("."); hasil1=myStr.substr(0,k1); myStr2=myStr.substr(k1+1,l1-1); k2=myStr2.indexOf("."); hasil2=myStr2.substr(0,k2); myStr3=myStr2.substr(k2+1,l1-1); k3=myStr3.indexOf("."); hasil3=myStr3.substr(0,k3); myStr4=myStr3.substr(k3+1,l1-1); k4=myStr4.indexOf("."); hasil4=myStr4; var pesan=false; if(k1 == -1 || k2 == -1 || k3 == -1 || k4 != -1){ _root.msg="Invalid Gateway.\nGateway harus terdiri dari 4 segment"; return pesan; } if(parseInt(hasil1)<=0 || parseInt(hasil1)>255){ _root.msg="Invalid Gateway.\nSegment pertama Gateway harus 1 - 255"; return pesan; }
if(parseInt(hasil2)<0 || parseInt(hasil2)>255 || parseInt(hasil3)<0 || parseInt(hasil3)>255 || parseInt(hasil4)<0 || parseInt(hasil4)>255){ _root.msg="Invalid Gateway.\nSegment 2,3 dan 4 Gateway harus 0 - 255"; return pesan; } ip_i[0]=hasil1; ip_i[1]=hasil2; ip_i[2]=hasil3; ip_i[3]=hasil4; return ip_i; }
//fungsi memecah subnet function pecahSubnet(myStr:String):Array{ var subnt : Array =new Array(); l1=myStr.length; k1=myStr.indexOf("."); hasil1=myStr.substr(0,k1); myStr2=myStr.substr(k1+1,l1-1); k2=myStr2.indexOf("."); hasil2=myStr2.substr(0,k2); myStr3=myStr2.substr(k2+1,l1-1); k3=myStr3.indexOf("."); hasil3=myStr3.substr(0,k3); myStr4=myStr3.substr(k3+1,l1-1); k4=myStr4.indexOf("."); hasil4=myStr4; var pesan=false; if(k1 == -1 || k2 == -1 || k3 == -1 || k4 != -1){ _root.msg="Invalid Masking.\nMasking harus terdiri dari 4 segment"; return pesan; } if(hasil1<hasil2 || hasil1<hasil3 || hasil1<hasil4 || hasil2<hasil3 || hasil2<hasil4 || hasil3<hasil4 ){ _root.msg="Invalid Masking"; return pesan; } if( parseInt(hasil1)<0 || parseInt(hasil1)>255|| parseInt(hasil2)<0 || parseInt(hasil2)>255 || parseInt(hasil3)<0 || parseInt(hasil3)>255 || parseInt(hasil4)<0 || parseInt(hasil4)>255 || _root.Cek_partOfSubnet(parseInt(hasil1))==-1 || _root.Cek_partOfSubnet(parseInt(hasil2))==-1 || _root.Cek_partOfSubnet(parseInt(hasil3))==-1 || _root.Cek_partOfSubnet(parseInt(hasil4))==-1 ){ _root.msg="Tiap Segment masking harus 0 - 255"; return pesan; } subnt[0]=hasil1; subnt[1]=hasil2; subnt[2]=hasil3; subnt[3]=hasil4; return subnt; } //fungsi ubah bentuk masking ke prefix function maskToPrefix(myStr:String){ var subnet : Array =new Array(); var pesan=false; subnet=pecahSubnet(myStr); if(subnet==false){ return pesan; } var b1=parseInt(subnet[0]).toString(2); var b2=parseInt(subnet[1]).toString(2); var b3=parseInt(subnet[2]).toString(2); var b4=parseInt(subnet[3]).toString(2);
var gabung=b1+b2+b3+b4; var jml=gabung.indexOf("0"); if(subnet[3]=="255"){ jml=32; } return jml; } Listing pada Layer fungsi_ping Frame 1 stop(); ///fungsi cari jalur function cari_rute(srce:String,dest:String):Array{ var rute_temp:Array = new Array(); var ind_f1,ind_l1,ind_f2,ind_l2,ind_f3,ind_l3; var fst,lst; var pesan="tidak ada"; for(i=0;i<rute.length;i++){ if(rute[i]==srce){ ind_f1=i; } if(rute[i]==dest){ ind_l1=i; } } for(i=0;i<rute2.length;i++){ if(rute2[i]==srce){ ind_f2=i; } if(rute2[i]==dest){ ind_l2=i; } } for(i=0;i<rute3.length;i++){ if(rute3[i]==srce){ ind_f3=i; } if(rute3[i]==dest){ ind_l3=i; } } if(ind_f1 !=undefined && ind_l1 !=undefined){ if(ind_f1<ind_l1){ for(var i=ind_f1;i<=ind_l1;i++){ rute_temp.push(rute[i]); } } else if(ind_f1>ind_l1){ for(var i=ind_f1;i>=ind_l1;i--){ rute_temp.push(rute[i]); } } return rute_temp; } else if(ind_f2 !=undefined && ind_l2 !=undefined){ if(ind_f2<ind_l2){ for(var i=ind_f2;i<=ind_l2;i++){ rute_temp.push(rute2[i]); }
} else if(ind_f2>ind_l2){ for( var i=ind_f2;i>=ind_l2;i--){ rute_temp.push(rute2[i]); } } return rute_temp; } else if(ind_f3 !=undefined && ind_l3 !=undefined){ if(ind_f3<ind_l3){ for(var i=ind_f3;i<=ind_l3;i++){ rute_temp.push(rute3[i]); } } else if(ind_f3>ind_l3){ for( var i=ind_f3;i>=ind_l3;i--){ rute_temp.push(rute3[i]); } } return rute_temp; } else {return pesan;} } ///fungsi hitung ip function hitung_ip(ip_in:String,sl:Number):Object{ var hasil:Object=new Object(); var ip_pecah :Array=new Array(); ip_pecah=pecahIp1(ip_in); if( ip_pecah !="invalid"){ var ip1=ip_pecah[0]; var ip2=ip_pecah[1]; var ip3=ip_pecah[2]; var ip4=ip_pecah[3]; var k; if(sl>=1 && sl<=8) { k=8-sl; z=ip1; } else if(sl>=9 && sl<=16) { k=16-sl; z=ip2; } else if(sl>=17 && sl<=24) { k=24-sl; z=ip3; } else if(sl>=25 && sl<=32) { k=32-sl; z=ip4; } var pang=Math.pow(2,k) var i=0; var net; while(i<=z){ net=i; i=i+pang; } var brod=(pang-1)+net; var net_id; var brodcast; var range_1;
var range_2; if(sl>=1 && sl<=8)
{ net_id=net+"."+"0"+".0"+".0"; brodcast=brod+"."+"255"+".255"+".255"; range_1=net+"."+"0"+".0"+".1"; range_2=brod+"."+"255"+".255"+".254"; } else if(sl>=9 && sl<=16) { net_id=ip1+"."+net+".0"+".0"; brodcast=ip1+"."+brod+".255"+".255"; range_1=ip1+"."+net+".0"+".1"; range_2=ip1+"."+brod+".255"+".254"; } else if(sl>=17 && sl<=24) { net_id=ip1+"."+ip2+"."+net+".0"; brodcast=ip1+"."+ip2+"."+brod+".255"; range_1=ip1+"."+ip2+"."+net+".1"; range_2=ip1+"."+ip2+"."+brod+".254"; } else if(sl>=25 && sl<32) { net_id=ip1+"."+ip2+"."+ip3+"."+net; brodcast=ip1+"."+ip2+"."+ip3+"."+brod; range_1=ip1+"."+ip2+"."+ip3+"."+(net+1); range_2=ip1+"."+ip2+"."+ip3+"."+(brod-1); } else if(sl==32) { net_id=ip1+"."+ip2+"."+ip3+"."+net; brodcast=ip1+"."+ip2+"."+ip3+"."+brod; range_1=ip1+"."+ip2+"."+ip3+"."+(net+1); range_2=ip1+"."+ip2+"."+ip3+"."+brod; } hasil.net_id=net_id; hasil.brodcast=brodcast; hasil.range_1=range_1; hasil.range_2=range_2; return hasil; } //end if atas else {return "invalid ip";} } //fungsi apakah cek 1 network function cek_net(sr:String,de:String){ var kon=cek_g(sr,de); var id_net1=koneksi[kon].ethSc; var id_mask1="msk"+(id_net1.substr(3,2)); var id_net2=koneksi[kon].ethDe; var id_mask2="msk"+(id_net2.substr(3,2)); var ip1=this[id_net1]; var mk1=this[id_mask1]; var ip2=this[id_net2]; var mk2=this[id_mask2]; var ip1Ob:Object=new Object(); ip1Ob=hitung_ip(ip1,mk1); //trace("net_id1 "+ip1Ob.net_id); //trace("brod1 "+ip1Ob.brodcast); var ip2Ob:Object=new Object(); ip2Ob=hitung_ip(ip2,mk2); if(ip1Ob.net_id==ip2Ob.net_id && ip1Ob.brodcast==ip2Ob.brodcast){ return "sukses" } else {
_root.msg=substring(id_net1,0,4)+" "+_root['nama'+(substring(id_net1,5,1))]+" harus satu network\n
"+substring(id_net2,0,4)+" "+_root['nama'+(substring(id_net2,5,1))]; return "filled "+id_net1+" harus satu network "+id_net2; } } //cek gateway function cek_gw(srt:String,dt:String){ var kon=cek_g(srt,dt); //trace("kon"+kon); var id_ethSr=koneksi[kon].ethSc; var id_gtw1="gt"+(id_ethSr.substr(3,2)); //trace ("id "+id_gtw1); var gtw1=this[id_gtw1]; var id_ethDe=koneksi[kon].ethDe; var ipDe=this[id_ethDe]; //trace("cc "+gtw1); //trace("cc1 "+ipDe); if(gtw1==ipDe){ return "sukses"; }else if(koneksi[kon].id=="RT"){ //router return "sukses" } else { _root.msg="Gateway "+substring(id_ethSr,0,4)+" "+_root['nama'+(substring(id_ethSr,5,1))]+" \nharus sama dengan ip "+substring(id_ethDe,0,4)+" "+_root['nama'+(substring(id_ethDe,5,1))]; return ("gateway "+id_ethSr+" harus sama dengan ip "+id_ethDe); } } //cek koneksi function cek_g(n1:String,n2:String){ for(j=0;j<koneksi.length;j++){ if(koneksi[j].pc==n1 && koneksi[j].to==n2){ return j; } } } //fungsi cariPc function cari_pc(ip_in:String){ var abjad:Array=new Array("A","B","C","D","E"); for(var i=0;i<5;i++){ for(var j=0;j<3;j++){ if(_root['eth'+j+abjad[i]]==ip_in){ return 'pc'+abjad[i]; } } } return -1; } //cek apakah ip inputan sudah digunakan function cek_duplikasi_ip(ip_in:String,id_pc:String,id_eth:String){ var abjad:Array=new Array("eth0A","eth0B","eth1B","eth2B","eth0C","eth0D","eth1D","eth0E"); var ip_temp='eth'+id_eth+id_pc; function cari_eth(temp:String){ for(var i=0;i<8;i++){
if(abjad[i]==temp){ return i; } } return -1; } var letak_i=cari_eth(ip_temp); abjad.splice(letak_i,1); for(var i=0;i<8;i++) { if(_root[abjad[i]] == ip_in ){ _root.msg="Duplikasi IP.\nIP sudah digunakan "+(substring(abjad[i],0,4))+" "+_root['nama'+(substring(abjad[i],5,1))]; return true; } } return false } //fungsi ping function pings(pcSr:String,pcDe:String,ip_in){ var jalur:Array=new Array(); var jalur_temp_se:Array=new Array(); var jalur_temp_rp:Array=new Array(); jalur=cari_rute(pcSr,pcDe); var cek_n,cek_g; if(pcSr==pcDe){ jalur_an.push(pcSr); return "reply"; } else { if(jalur.length==2 && _root['jml'+pcDe.substr(2,3)]){ var id_eth_use:Object=new Object(); id_eth_use=pasangan_eth_used(pcSr,pcDe); if(id_eth_use.ip_tuju==ip_in){ cek_n=_root.cek_net(jalur[0],jalur[1]); if(cek_n !="sukses"){ trace('if 1'); jalur_an.push(jalur[0]); return cek_n; } jalur_an.push(jalur[0]); jalur_an.push(jalur[1]); jalur_rep.push(jalur[1]); jalur_rep.push(jalur[0]); return "reply"; }else if(id_eth_use.ip_tuju !=ip_in){ cek_n=cek_net(jalur[0],jalur[1]); cek_g=cek_gw(jalur[0],jalur[1]); if(cek_n !="sukses"){ trace('if 2a'); jalur_an.push(jalur[0]); return cek_n; } if(cek_g !="sukses"){ jalur_an.push(jalur[0]); return cek_g; } jalur_an.push(jalur[0]); jalur_an.push(jalur[1]);
jalur_rep.push(jalur[1]); jalur_rep.push(jalur[0]); return "reply"; } } else { //jika jalur <2 //send ping for(i=0;i<jalur.length-1;i++){ cek_n=cek_net(jalur[i],jalur[i+1]); if(cek_n !="sukses"){ jalur_an.push(jalur[jalur_an.length]); return cek_n; } if(i<jalur.length-2){ cek_g=cek_gw(jalur[i],jalur[i+1]); if(cek_g !="sukses"){ jalur_an.push(jalur[jalur_an.length]); return cek_g; } } jalur_an.push(jalur[i]); } jalur_an.push(jalur[jalur_an.length]); //reply var cek_rp; for(i=(jalur.length-1);i>1;i--){ cek_rp=cek_gw(jalur[i],jalur[i-1]); if(cek_rp !="sukses"){ jalur_rep.push(jalur[(jalur.length-jalur_rep.length)-1]); return cek_rp; } jalur_rep.push(jalur[i]); } jalur_rep.push(jalur[1]); jalur_rep.push(jalur[0]); return "reply"; } } } //var act="REJECT" function cari_pcB(){ for(var i=0;i<jalur_an.length;i++){ if(jalur_an[i]=="pcB"){ return i; } } } //buat jalur animasi function jalur_animasi() { jalur = jalur_an.concat(jalur_rep); } //memeotong jalur jika action selain ACCEPT function potong_jalur(in_action:String) { var letak_pcB = cari_pcB(); trace ("leatk B " + letak_pcB);
if (letak_pcB != -1) { if (in_action == "REJECT") { jalur_an.splice(letak_pcB + 1, jalur_an.length - (letak_pcB + 1)); jalur_rep.splice(0, jalur_rep.length); } else if (in_action == "DROP") { jalur_an.splice(letak_pcB + 1, jalur_an.length - (letak_pcB + 1)); jalur_rep.splice(0, jalur_rep.length); jalur_rep.push("hole"); } // end if } // end else if } //fungsi apakah cek 1 network untuk input IP function cek_network_input(sr:String,ip_in:String,msk_in:Number){ //cari koneksi function cari_koneksi(n1:String){ for(j=0;j<koneksi.length;j++){ if(koneksi[j].ethSc==n1 ){ return j; } } } var kon=cari_koneksi(sr); var id_net2=koneksi[kon].ethDe; var id_mask2="msk"+(id_net2.substr(3,2)); var ip2=this[id_net2]; var mk2=this[id_mask2]; if(ip2==undefined){ return true; } var ip1Ob:Object=new Object(); ip1Ob=hitung_ip(ip_in,msk_in); var ip2Ob:Object=new Object(); ip2Ob=hitung_ip(ip2,mk2); if(ip1Ob.net_id==ip2Ob.net_id && ip1Ob.brodcast==ip2Ob.brodcast){ return true; } else { _root.msg=substring(sr,0,4)+" "+_root['nama'+(substring(sr,5,1))]+" harus satu network\ndengan "+substring(id_net2,0,4)+" "+_root['nama'+(substring(id_net2,5,1))]; return false; } } //fungsi mencari eth yang digunakan pc asal dan pc tuju saat pings function pasangan_eth_used(src:String,dest:String):Object{ //mencari eth yang digunakan di pc asal function cari_eth_pcAsal(asal1:String,asal2:String){ for(var j=0;j<koneksi.length;j++){ if(koneksi[j].pc==asal1 && koneksi[j].to==asal2){ return koneksi[j].ethSc; } } } //mencari eth yang digunakan di pc asal
function cari_eth_pcTuju(tuju1:String,tuju2:String){ for(var j=0;j<koneksi.length;j++){ if(koneksi[j].pc==tuju1 && koneksi[j].to==tuju2){ return koneksi[j].ethDe; } } } var eth_pc:Object=new Object(); var rute_temp:Array=new Array(); rute_temp=cari_rute(src,dest); var ip_asal=cari_eth_pcAsal(rute_temp[0],rute_temp[1]); var ip_tuju=cari_eth_pcTuju(rute_temp[rute_temp.length-2],rute_temp[rute_temp.length-1]); //trace(ip_asal); eth_pc.ip_asal=_root[ip_asal]; eth_pc.ip_tuju=_root[ip_tuju]; return eth_pc; } Listing pada Layer policy_rule Frame 1 stop(); var policy:Array = new Array(); var rule:Array = new Array(); function cari_zone(in_pc:String){ if(in_pc == "pcB"){ return "fw"; } var no_zone=_root['zone_'+in_pc]; var id_zone=_root['idZone'+no_zone]; var nama_zone=_root['zoneTemp'+id_zone]; return nama_zone; } function cari_policy(in_src:String, in_dest:String){ for(var i=0;i<policy.length;i++){ if(policy[i].src ==in_src && policy[i].dest ==in_dest){ return i; } else if( (policy[i].src=="all" && policy[i].dest==in_dest) || (policy[i].src==in_src && policy[i].dest=="all") ){ return i; } else if(policy[i].src=="all" && policy[i].dest=="all"){ return i; } } return -1 } ///pecah zone function pecahZone(zoneStr:String):Array{ var zone_i : Array =new Array(); var l1=zoneStr.length; var k1=zoneStr.indexOf(":"); var hasil1=zoneStr.substr(0,k1); if(zoneStr.indexOf(":")==-1){
zone_i[0]=zoneStr; } else { if(zoneStr.charAt(k1+1)=="!"){ var zoneStr2=zoneStr.substr(k1+2,l1-1); zone_i[0]=hasil1; zone_i[1]="!"; zone_i[2]=zoneStr2; } else { var zoneStr2=zoneStr.substr(k1+1,l1-1); zone_i[0]=hasil1; zone_i[1]=""; zone_i[2]=zoneStr2; } } return zone_i; } //cek pecahan zone function cek_input_zone(in_zone:String,in_ip:String){ var array_pecah_zone1:Array=new Array(); array_pecah_zone1=pecahZone(in_zone); if(array_pecah_zone1.length==1){ return "none"; } else if(array_pecah_zone1.length==3){ if(array_pecah_zone1[1]==""){ if(array_pecah_zone1[2]==in_ip){ return "ip_cocok"; } else { return "ip_tdk_cocok" } } else if(array_pecah_zone1[1]=="!"){ if(array_pecah_zone1[2]!=in_ip){ return "ip_cocok"; } else { return "ip_tdk_cocok" } } } } ///cek detination port function cek_dest_port(in_protocol_arr:String,in_protocol:String,in_port_cari:String,in_port:String,in_src_dest:String){ if(in_protocol=="tcp" && in_protocol_arr=="tcp" && in_src_dest==""){ if( (in_port_cari=="http" || in_port_cari=="80") && (in_port=="http" || in_port=="80") ){ return true; } if( (in_port_cari=="ftp" || in_port_cari=="21") && (in_port=="ftp" || in_port=="21") ){ return true; } if( (in_port_cari=="ssh" || in_port_cari=="22") && (in_port=="ssh" || in_port=="21") ){ return true; }
if( (in_port_cari=="") && (in_port=="") ){ return true; } if( (in_port_cari=="") ){ return true; } } else if(in_protocol=="icmp" && in_protocol_arr=="icmp"){ if( (in_port_cari=="") && (in_port=="") ){ return true; } } } //cari rule function cari_rule(eth_obj:Object,in_src:String, in_dest:String, in_proto:String, in_dest_port:String){ var array_src:Array=new Array(); var array_dest:Array=new Array(); for(var i=0;i<rule.length;i++){ array_src=pecahZone(rule[i].src); array_dest=pecahZone(rule[i].dest); if( (rule[i].src ==in_src || array_src[0]==in_src) && (rule[i].dest ==in_dest || array_dest[0]==in_dest)&& cek_dest_port(rule[i].proto,in_proto,rule[i].dest_port,in_dest_port, rule[i].src_dest)==true ){ if( (cek_input_zone(rule[i].src,eth_obj.ip_asal) =="none" || cek_input_zone(rule[i].src,eth_obj.ip_asal) =="ip_cocok") && (cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="none" || cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="ip_cocok") ) { return i; } } else if( (rule[i].src =="all" ) && (rule[i].dest ==in_dest || array_dest[0]==in_dest)&& cek_dest_port(rule[i].proto,in_proto,rule[i].dest_port,in_dest_port, rule[i].src_dest)==true ){ if( (cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="none" || cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="ip_cocok") ) { return i; } } if( (rule[i].src ==in_src || array_src[0]==in_src) && (rule[i].dest =="all") && cek_dest_port(rule[i].proto,in_proto,rule[i].dest_port,in_dest_port, rule[i].src_dest)==true ){ if( (cek_input_zone(rule[i].src,eth_obj.ip_asal) =="none" || cek_input_zone(rule[i].src,eth_obj.ip_asal) =="ip_cocok") ) { return i; } } if( (rule[i].src =="all") && (rule[i].dest =="all") && cek_dest_port(rule[i].proto,in_proto,rule[i].dest_port,in_dest_port, rule[i].src_dest)==true ){ return i; } } return -1; } function cari_action(pc_scr:String, pc_dest:String, in_proto:String, in_dest_port:String):Object{ var hasil:Object=new Object();
var in_src=cari_zone(pc_scr); var in_dest=cari_zone(pc_dest); var eth_pakai:Object=new Object(); eth_pakai=pasangan_eth_used(pc_scr,pc_dest); if(in_src !=in_dest){ var cari=cari_rule(eth_pakai,in_src, in_dest, in_proto, in_dest_port); if(cari !=-1){ hasil.type_aturan="rule"; hasil.no_aturan=cari; hasil.action=rule[cari].act; return hasil; } else { cari=cari_policy(in_src, in_dest); if(cari !=-1){ hasil.type_aturan="policy"; hasil.no_aturan=cari; hasil.action=policy[cari].act; return hasil; } else { return false; } } } else{ return "same"; } } //untuk other port ///cek detination port untuk oterPort function cek_dest_otherPort(in_protocol_arr:String,in_protocol:String, in_port_cari:String,in_port:String,in_src_dest_cari:String,in_src_dest:String){ if( (in_protocol== in_protocol_arr && (in_protocol=="tcp"||in_protocol=="udp") ) && (in_src_dest_cari==in_src_dest || in_src_dest_cari=="") ){ if( (in_port_cari=="http" || in_port_cari=="80") && (in_port=="http" || in_port=="80") ){ return true; } if( (in_port_cari=="ftp" || in_port_cari=="21") && (in_port=="ftp" || in_port=="21") ){ return true; } if( (in_port_cari=="ssh" || in_port_cari=="22") && (in_port=="ssh" || in_port=="21") ){ return true; } if( (in_port_cari==in_port) ){ return true; } if( (in_port_cari=="") ){ return true; } } else if( in_protocol== in_protocol_arr &&(in_protocol=="icmp" || in_protocol=="icmp") ){ if( (in_port_cari=="") && (in_src_dest_cari=="") ){ return true; } } }
//cari rule other port function cari_rule_otherPort(eth_obj:Object,in_src:String, in_dest:String, in_proto:String, in_dest_port:String, in_src_dest:String){ var array_src:Array=new Array(); var array_dest:Array=new Array(); for(var i=0;i<rule.length;i++){ array_src=pecahZone(rule[i].src); array_dest=pecahZone(rule[i].dest); if( (rule[i].src ==in_src || array_src[0]==in_src) && (rule[i].dest ==in_dest || array_dest[0]==in_dest) && cek_dest_otherPort(rule[i].proto,in_proto,rule[i].dest_port ,in_dest_port,rule[i].src_dest,in_src_dest)==true ){ if( (cek_input_zone(rule[i].src,eth_obj.ip_asal) =="none" || cek_input_zone(rule[i].src,eth_obj.ip_asal) =="ip_cocok") && (cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="none" || cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="ip_cocok") ) { return i; } } else if( (rule[i].src =="all" ) && (rule[i].dest ==in_dest || array_dest[0]==in_dest) && cek_dest_otherPort(rule[i].proto,in_proto,rule[i].dest_port, in_dest_port,rule[i].src_dest,in_src_dest)==true ){ if( (cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="none" || cek_input_zone(rule[i].dest,eth_obj.ip_tuju) =="ip_cocok") ) { return i; } } if( (rule[i].src ==in_src || array_src[0]==in_src) && (rule[i].dest =="all") && cek_dest_otherPort(rule[i].proto,in_proto,rule[i].dest_port, in_dest_port,rule[i].src_dest,in_src_dest)==true ){ if( (cek_input_zone(rule[i].src,eth_obj.ip_asal) =="none" || cek_input_zone(rule[i].src,eth_obj.ip_asal) =="ip_cocok") ) { return i; } } if( (rule[i].src =="all") && (rule[i].dest =="all") && cek_dest_otherPort(rule[i].proto,in_proto,rule[i].dest_port, in_dest_port,rule[i].src_dest,in_src_dest)==true ){ return i; } } return -1; } function cari_action_otherPort(pc_scr:String, pc_dest:String, in_proto:String, in_dest_port:String,in_src_dest:String):Object{ var hasil:Object=new Object(); var in_src=cari_zone(pc_scr); var in_dest=cari_zone(pc_dest); var eth_pakai:Object=new Object(); eth_pakai=pasangan_eth_used(pc_scr,pc_dest); if(in_src !=in_dest){ var cari=cari_rule_otherPort(eth_pakai,in_src, in_dest, in_proto, in_dest_port, in_src_dest); if(cari !=-1){ hasil.type_aturan="rule"; hasil.no_aturan=cari; hasil.action=rule[cari].act; return hasil; } else {
cari=cari_policy(in_src, in_dest); if(cari !=-1){ hasil.type_aturan="policy"; hasil.no_aturan=cari; hasil.action=policy[cari].act; return hasil; } else { return false; } } } else{ return "same"; } } Listing pada Movie Clip form_ping on (release) { asal = "pc"+_root.idClick; _root.jalur.splice(0,_root.jalur.length); _root.jalur_an.splice(0,_root.jalur_an.length); _root.jalur_rep.splice(0,_root.jalur_rep.length); if (ip_inp.text != "") { _root.stat=1; kotak.i=0; kotak.hasil.text=""; removeMovieClip(_root.kk); _root.stat_ping = 1; _root.pc_tuju = _root.cari_pc(ip_inp.text); trace("tuju "+_root.pc_tuju); if (_root.pc_tuju != -1) { //var cek_rule_policy:Object=new Object(); var hasil = _root.pings(asal,_root.pc_tuju,ip_inp.text); _root.status_ping = hasil; if(asal != _root.pc_tuju){ if(_root.fw_status==1 && _root.msg==undefined){ _root.temp_action=_root.cari_action(asal,_root.pc_tuju,"icmp",""); if(_root.temp_action != "same") { if(_root.temp_action !=false){ if(_root.temp_action.action=="REJECT" || _root.temp_action.action=="DROP"){ _root.status_ping="filled"; } _root.potong_jalur(_root.temp_action.action); } } else { _root.status_ping="reply"; } } } else { trace("satu pc"); _root.status_ping="reply"; } _root.jalur_animasi(); if(_root.jalur.length==1 && _root.msg !=undefined){ _root.id_massage="Error"; _root.warning(_root.msg); }
trace("hasil "+_root.status_ping); } else { _root.status_ping = "filled"; trace("Destination Host Unreachable"); _root.jalur.push(asal); } _root.createEmptyMovieClip('kk',1); _root.kk.attachMovie('bola', 'kk', 1); } } Listing pada Movie Clip animasi_paket_ping onClipEvent (load) { this._x=_root[_root.jalur[0]]._x+30; this._y=_root[_root.jalur[0]]._y+30; var id1:Number = 0; var id2:Number = 1; var count:Number = 0; var x1:Number; var x2:Number; var y1:Number; var y2:Number; var dy:Number; var dx:Number; var dy1:Number; var dx1:Number; var speed = 3; var dist:Number = speed+1; trace('length '+_root.jalur.length+" "+_root.status_ping); } onClipEvent (enterFrame) { if(this.hitTest(_root[_root.jalur[(Math.round(_root.jalur.length/2))]]) ){ _root.hitung_ping=true; } else {_root.hitung_ping=false;} if (id1<_root.jalur.length-1 && id2<_root.jalur.length && _root.stat==1) { if (dist>speed) { x1 = (_root[_root.jalur[id1]]._x)+30; y1 = (_root[_root.jalur[id1]]._y)+30; x2 = (_root[_root.jalur[id2]]._x)+30; y2 = (_root[_root.jalur[id2]]._y)+30; dy = y2-y1; dx = x2-x1; dy1 = Math.abs(y2-this._y); dx1 = Math.abs(x2-this._x); var sudut = Math.atan2(dy, dx); var speedx = speed*Math.cos(sudut); var speedy = speed*Math.sin(sudut); if(x1==x2 && y1==y2){ this._x=x1; this._y=y1; } else{ this._x = x1+speedx*count; this._y = y1+speedy*count;} dist = Math.sqrt(dy1*dy1+dx1*dx1); count++; } else { count = 1; dist = 10;
if((id2==_root.jalur.length-1 && id1==_root.jalur.length-2) ){ if(_root.msg !=undefined){ _root.id_massage="Error"; _root.warning(); } } id1++; id2++; } } }