You are on page 1of 151

PERANCANGAN SISTEM PENCEGAHAN FLOODING DATA PADA JARINGAN KOMPUTER (Studi Kasus Chevron Geothermal Indonesia Ltd.

Darajat )

Saepudin, 0606070 : Bapak Lutfhi Nurwadi, MT selaku Pembimbing.I dan Bapak Nurdianto. MT. selaku Pembimbing.II. ABSTRAK
Suatu serangan ke dalam sebuah jaringan komputer dapat terjadi kapan saja, sehingga dibutuhkan suatu sistem pertahanan didalam server itu sendiri yang bisa menganalisa langsung apakah setiap paket yang masuk tersebut adalah data yang diharapkan ataupun data yang tidak diharapkan. Kalau paket tersebut merupakan data yang tidak diharapkan, komputer bisa mengambil tindakan dengan memblok atau memblokir IP asal paket tersebut. Pemodelan suatu sistem yang digunakan untuk mengatasi flooding data pada suatu jaringan. Sistem ini membuat suatu firewall yang aktif yang dapat mendefinisikan setiap data yang masuk ke dalam server, apakah data yang datang itu merupakan sebuah data flood atau data yang diperlukan oleh user. Pemodelan dibuat dengan menggunakan bahasa pemrograman Delphi 7 dan dalam lingkungan jaringan komputer berbasis IP address Local Area Network. Flooding data yang terjadi hanya bisa dicegah sampai titik server saja, dan hanya bisa mencegah data masuk kedalam jaringan yang bisa menyebabkan kerusakan yang lebih parah. Akan tetapi proses pengiriman data oleh pelaku flooding masih tetap berlangsung tanpa bisa dihentikan, sebagai akibat pengiriman data yang terus menerus itu tentunya traffic yang ada akan mengalami kelambatan, sehingga masih diperlukan suatu sistem untuk menyempurnakan sistem ini dengan menambahkan sutu komunikasi dari server ke server. Dalam hal ini hubungan server lokal ke server yang lebih tinggi. Tujuan komunikasi ini adalah untuk mengadakan pemblokiran IP pada server yang lebih tinggi sehingga gangguan yang ada lebih bisa dikurangi lagi. Traffic di jaringan lokal akan kembali normal karena data yang sebelumnya datang sudah diblokir ditingkat lebih atas.

Kata Kunci: Sistem Pencegahan Flooding Data, Jaringan Komputer.

ii

KATA PENGANTAR
Segala puji dan syukur penyusun panjatkan kehadirat ALLAH SWT yang telah memberikan rahmat, hidayah dan ridho-Nya sehingga penulis dapat menyelesaikan Tugas Akhir ini, Tugas akhir ini merupakan syarat wajib kelulusan pada program sarjana strata satu di Jurusan Teknik Informatika, Sekolah Tinggi Teknologi Garut STTG. Berbagai kemudahan dan hambatan yang dihadapai penulis dalam proses pengerjaan tugas akhir ini semoga dapat memberikan pengalaman kepada penulis di masa mendatang. Tugas Akhir ini Berjudul Perancangan Sistem Pencegahan Flooding Data Pada Jaringan Komputer . Tidak diperkenankan untuk memperbanyak, mengcopy ataupun menggandakan seluruh data yang ada pada laporan ini penyusun laporan ini. kecuali atas izin penulis dan

Dalam penyusunan laporan Tugas Akhir ini penyusun mendapat bimbingan, saran, penjelasan, ilmu pengetahuan yang berharga, dan dorongan moril serta doa dari berbagai pihak, maka dalam kesempatan ini izinkan penyusun mengucapkan banyak terima kasih kepada pihak-pihak yang telah banyak membantu baik secara langsung ataupun tidak, antara lain sebagai berikut:

Bapak Luthfi Nurwadi. MT selaku dosen Pembimbing.I TA. Bapak Nurdianto. MT selaku dosen Pembimbing.II TA. Bapak Erwin Gunadi MT selaku Ketua Jurusan Tehnik Informatika Bapak Soedyharso Pembimbing Lapangan atas informasi mengenai Sistem Teknologi Informasi di Chevron Geothermal Indonesia,Ltd Teman-teman satu angkatan di Jurusan Teknik Informatika Sekolah Tinggi Teknologi Garut yang telah banyak membantu dalam bentuk doa dan bantuan baik dalam suka dan duka. Always keep our Solidarity Forever, Informatika3x.

iii

Istri dan ketiga anaku tercinta (You Are My Inspiration), yang dengan tulus telah mencurahkan doa restu, kasih sayang dan dukungan moril dan spirituil yang tak terbatas kepada penyusun.

Semoga hasil penulisan laporan Tugas akhir ini dapat bermanfaat bagi penulis khususnya dan pembaca pada umumnya.

Garut,

J u l i 2011

Penyusun

iv

DAFTAR ISI
Halaman

LEMBAR PENGESAHAN ............................................................................................... i ABSTRAK.........................................................................................................................ii KATA PENGANTAR......................................................................................................iii DAFTAR ISI.....................................................................................................................iv DAFTAR GAMBAR ........................................................................................................v DAFTAR TABEL ............................................................................................................ x BAB I PENDAHULUAN..................................................................................................1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 Latar Belakang ...........................................................................................1 Identifikasi Masalah ..... .6 Tujuan Penelitian.6 Pembatasan Masalah...... 6 Kerangka Pemikiran................................................................................... 7 Metodologi Penelitian................................................................................ 8 Sistematika Penulisan................................................................................11

BAB II LANDASAN TEORI..........................................................................................12 2.1 2.2 2.3. Tehnik Informatika ..................................................................................13 Perancangan Sistem..................................................................................14 Flooding data .......................................................................................... 14 2.3.1. Data............................................................................................ 14

2.3.2. Flooding........................................................................................15 2.4. Pencegahan Flooding data .......................................................................17 2.4.1 Hub ..............................................................................................18

2.4.2. Switch ......................................................................................... 19 2.4.3. Bridge ..........................................................................................19 2.4.4. 2.5. Router .........................................................................................20

Metode Pemblokiran IP............................................................................21 2.5.1. Windows 2003 Server .................................................................21 2.5.2. Linux ...........................................................................................22 v

Halaman

2.5.3. 2.5.4. 2.6.

FreeBSD .....................................................................................22 Proteksi Perangkat keras ............................................................22

Jaringan Komputer ..................................................................................24 2.6.1. Topologi Jaringan ....................................................................... 31 2.6.2. Model Jaringan ......................................................................... .37 2.6.2.1. Local Area Network .......................................................38 2.6.2.2. Metropolitan Area Network ...........................................39 2.6.2.3. Wide Area Network ........................................................40

2.7.

Protocol TCP/IP ......................................................................................42 2.7.1. Arsitektur TCP/IP ........................................................................43 2.7.2. Transfer Control Protocol (TCP)..................................................47 2.7.3. User Datagram Protocol (UDP.................................................... 49 2.7.4. Internet Protocol (IP) ...................................................................50 2.7.5. Internet Control Message Protocol ( ICMP) ...............................53 2.7.6. Routing IP .................................................................................. .54

2.8.

Keamanan Jaringan .................................................................................56 2.8.1. Firewall ........................................................................................59

2.9.

Transmisi data .........................................................................................62 2.9.1 2.9.2 2.10. Standar Komunikasi data ............................................................ 68 Keamanan komunikasi data .........................................................70 Rekayasa perangkat lunak ...........................................................72 2.10.1 Model Proses Perangkat lunak ........................................72 2.10.2. Model Analisis ................................................................73 2.10.3. Analsisi Terstruktur .........................................................74 2.10.4.Aplikasi perangkat Lunak Delphi dan Perkembangannya74

BAB III ANALISIS SISTEM..........................................................................................77 3.1 Gambaran Umum/current sistem .............................................................79 3.1.1 Topologi Jaringan Chevron Darajat ...............................................79 3.1.2. Mekanisme Jaringan .....................................................................80 3.2. Spsesifikasi Sistem .................................................................................81 vi

Halaman

3.3. 3.4. 3.5. 3.6.

Sistem Operasi dan alat bantu ................................................................82 Desain Pengambilan data ........................................................................84 Desain Pengidentifikasian Data................................................................85 Desain Data Base .....................................................................................86 3.6.1. Pemrosesan database ICMP dan UDP .........................................87 3.6.2 Pemrosesan database paket pada TCP........................................88

3.7.

Desain Pengolahan Data ..........................................................................89 3.7.1. Pengolahan data ICMP ................................................................90 3.7.2. Pengolahan data UDP ..................................................................96 3.7.3 Pengolahan Data TCP..................................................................92

3.8

Desain Pemblokiran IP.............................................................................93

BAB IV IMPLEMENTASI DAN PENGUJIAN.............................................................94 4.1 Inplementasi (Pembuatan aplikasi ) ........................................................94 4.1.1. Pendefinisian /Identifikasi paket data Flooding .........................94

4.1.2. Recognizing paket data flooding .................................................94 4.1.3. Aksesoris data flooding ...............................................................96 4.1.4. 4.2. Monitoring Paket Data Flooding ...............................................97

Pengujian Aplikasi .................................................................................97 4.2.1. Identifikasi Flooding ...................................................................97 4.2.2. Pengujian aplikasi recognizing paket data flooding ....................98 4.2.3. Pengujian aplikasi aksesoris paket data flooding ........................98 4.2.4. Pengujian Aplikasi Monitoring paket data flooding ..................99

4.3.

Analisa dan pengujian ...........................................................................100 4.3.1. Program yang di hasilkan...........................................................100 4.3.1.1. Program secara keseluruhan ........................................100 4.3.1.2. Option Program ...........................................................101 4.3.1.3.Tabel List data paket masuk .........................................103 4.3.1.4. List IP yang di Blok yang melakukan flooding...........103 4.3.2. 4.3.3. Kemampuan sistem dalam mengambil data ............................104 Kemampuan sistem dalam mengolah data ..............................104 vii

alaman

4.3.4. Pengujian ketahanan sistem pada flooding data.........................105

BAB V KESIMPULAN DAN SARAN...................................................................... ..110 5.1 5.2 Kesimpulan.............................................................................................110 Saran.......................................................................................................110

DAFTAR PUSTAKA LAMPIRAN LISTING PROGRAM

viii

DAFTAR GAMBAR
Halaman

Gambar. 1.1. Lokasi Lapanganan Panas Bumi Darajat ................................................ 1 Gambar. 1.2. Logo Perusahaan...................................................................................... 3 Gambar. 1.3. Diagram Alur Kerangka Pemikirian........................................................ 7 Gambar. 1.4. Diagram Alur Metodologi Penelitian ..................................................... 8 Gambar. 2.1. Proses data TCP ..................................................................................... 16 Gambar. 2.2. Ethernet HUB Operation ...................................................................... . 18 Gambar. 2.3. Switch .................................................................................................... 29 Gambar. 2.4. Bridge Operation ................................................................................ .. 20 Gambar. 2.5. Data Router operation .......................................................................... 20 Gambar. 2.6. Cisco Router ......................................................................................... 21 Gambar. 2.7. IPSECPOL............................................................................................ 22 Gambar. 2.8. Model Peer to Peer tersentralisasi ...................................................... .. 28 Gambar. 2.9. Model Client Server dengan sebuah server yang berfungsi umum......... 30 Gambar. 2.10. Model Client Server dengan dedicated server ...................................... 30 Gambar. 2.11. Topologi Ring ...................................................................................... Gambar. 2.12. Topologi Bus ....................................................................................... Gambar. 2.13. Topologi Start ...................................................................................... Gambar. 2.14. Topologi Tree ..................................................................................... Gambar. 2.15. Topologi Mesh .................................................................................... Gambar. 2.16. Topologi Hybrid ................................................................................. Gambar. 2.17. Model Jaringan MAN .......................................................................... Gambar. 2.18. Topologi Local Area Network.. ........................................................... Gambar. 2.19. Teknologi Local Area Network ........................................................... Gambar. 2.20. Jaringan MAN ..................................................................................... 32 33 33 34 35 37 37 38 39 40

Gambar. 2.21. Diagram Jaringan MAN dan Piranti Pendukungnya............................ 41 Gambar. 2.22. Cara Kerja Jaringan ............................................................................ 42

Gambar. 2.23. Model OSI Layer TCP IP.................... ................................................ 45 Gambar. 2.24. Pergerakan data dalam Layer TCP/IP .................................................. 46 Gambar. 2.25. Format TCP ......................................................................................... vi 47

Halaman

Gambar. 2.2.6. Three way handshake ......................................................................... Gambar. 2.,27. Format UDP ....................................................................................... Gambar. 2.28. Format datagram IP ............................................................................. Gambar. 2.29. Format Pembagian Kelas IP ................................................................

48 49 51 52

Gambar. 2.30. Notasi Desimal bertitik dari IP Address............................................. . 53 Gambar. 2.31. Format Pesan ICMP ............................................................................ 53

Gambar. 2.32. Paket data dalam Jaringan IP ............................................................... 55 Gambar. 2.29. Sinyal Analog ....................................................................................... 63 Gambar. 2.30. Sinyal Digital ........................................................................................ 63 Gambar. 2.31. Konfigurasi Transmisi Point to Point Direck link ................................ 64 Gambar. 2.32. Konfigurasi transmisi Multipoint .......................................................... 65 Gambar. 2.33. Bandwith ............................................................................................... 67 Gambar. 2.34. Kardinalitas dan modalitas. ................................................................... 73 Gambar. 3.1. Topologi jaringan Chevron Darajat ....................................................... 80 Gambar. 3.2. Desain Umum Blokir otomatis pada foold ........................................... 83 Gambar. 3.3. Proses Pengambilan Data ...................................................................... 83 Gambar. 3.4. Header IP ............................................................................................... 85 Gambar. 3.5. Pengidentifikasian data Paket ................................................................ 85 Gambar. 3.6. Pengaturan Database umum .................................................................. 87 Gambar. 3.7. Proses Database Paket data ICMP dan UDP ........................................ 88 Gambar. 3.8. Proses Database paket data TCP ........................................................... 89 Gambar. 3.9. Flowchart Flood detektor pada paket ICMP ......................................... 90 Gambar. 3.10. Flood Detektor pada paket data UDP ................................................. .. 91 Gambar. 3.11. Flood Detektor pada paket data TCP .................................................... 92 Gambar. 3.12. Desain Blokir IP ................................................................................... 93 Gambar. 4.1. Layout Jaringan .................................................................................... 95 Gambar. 4.2. Monitoring paket data Flooding ........................................................... 97 Gambar. 4.3. Tampilan identifikasi flooding secara keseluruhan ............................. 98 Gambar. 4.4. Aplikasi tester aksesories paket data flooding yang dipakai ................ 99 Gambar. 4.5. Monitoring paket data .......................................................................... 100 Gambar. 4.6. Tampilan Program keseluruhan .......................................................... ..101 vii

Halaman

Gambar. 4.7

Option ICMP, UDP dan TCP ............................................................. 102

Gambar. 4.8. Pengaturan Ethernet card. ................................................................... 102 Gambar. 4.9 Tabel List paket masuk........................................................................ 103

Gambar. 410 Table List IP yang di blokir yang melakukan flooding....................... 103 Gambar. 4.11 Pengambilan data ............................................................................... 104

viii

DAFTAR TABEL
Halaman

Tabel. 1 Tabel. 2 Tabel. 4. Tabel. 4.1. Tabel. 4.2. Tabel. 4.3. Tabel. 4.4.

Pembagian IP dalam format bilangan decimal .................................... 55 Spektrum Frequency ... 68 Standar Komunikasi data .................................................................... 69 Paket Besar ......................................................................................... 105 Paket Kecil .......................................................................................... 106 Pengiriman dalam port yang diperbolehkan ....................................... 108 Pengiriman dalam port yang tidak diperbolehkan .............................. 108

ix

BAB I PENDAHULUAN

1. Latar Belakang Di Pulau Jawa, Chevron Geothermal Indonesia, Ltd. (CGI) adalah operator dari PLTP Darajat II DAN Unit III yang menyediakan uap air untuk PLTP Darajat I yang dioperasikan oleh PT. Indonesia Power. Ketiga plant ini (Darajat I, II dan Darajat III ) menghasilkan listrik sebesar 255 MW. CGI juga mengoperasikan gas fired cogeneration plant di utara Duri yang menghasilkan daya sebesar 300 MW yang menyediakan steam bertekanan tinggi dan energi listrik ke PT Chevron Pacific Indonesia. Darajat Geothermal Operation dioperasikan oleh CGI (Chevron Geothermal Indonesia, Ltd.) yang merupakan bagian dari Chevron IBU (IndoAsia Business Unit) dalam bidang Geothermal and Power Operation. CGI sebelumnya bernama ChevronTexaco Energy Indonesia, Ltd. (CTEI) yang dahulu bernama Amoseas Indonesia Inc. Wilayah operasi CGI berada di Desa Padaawas, Kecamatan Pasirwangi, Kabupaten Garut, Jawa Barat, yang masuk dalam kawasan cagar alam dan hutan lindung Gunung Papandayan dengan WKP (Wilayah Kerja Pertambangan) seluas 5000 hektar.

Gambar 1.1 Lokasi Lapangan Panas Bumi Darajat

Proyek lapangan panas bumi Darajat dimulai pada tahun 1984 ketika Chevron Darajat Limited dan Texaco Darajat Limited masuk dalam Joint Operation Contract (JOC) dengan Pertamina, serta Energy Sales Contract (ESC) dengan PLN untuk mengembangkan potensi panas bumi di Garut, Jawa Barat. 1

Hal ini ditandai dengan operasi PLTP Darajat I (55 MW) pada bulan November 1994. Pada tahun 1995, Amoseas Indonesia Inc. sebagai operator dari Darajat Geothermal Operation berhasil mendapatkan ESC untuk Darajat. Pencapaian ini memungkinkan perusahaan untuk tidak hanya menjual uap saja, tetapi perusahaan dapat memanfaatkan uap dari lapangan panas bumi Darajat untuk energi primer pembangkit tenaga listrik. Sejak 1 Juni 2000, Amoseas Indonesia Inc. mengoperasikan PLTP Darajat II dengan kapasitas 90 MW dan pada kuartal ketiga 2006, CGI mengoperasikan PLTP Darajat III dengan kapasitas 110 MW sampai dengan sekarang. Dalam mengembangkan usahanya, Chevron Geothermal Indonesia Ltd mempunyai pijakan atau falsafah keunggulan beroperasi. Falsafah Keunggulan Beroperasi Prinsip: Dikerjakan dengan selamat atau tidak usah dikerjakan Selalu ada waktu untuk bekerja dengan benar. Selalu: a. Beroperasi dalam batas-batas desain dan lingkngan b. Beroperasi dalam keadaan aman dan terkendali. c. Memastikan alat-alat pengaman terpasang dan berfungsi. d. Mengikuti praktek dan prosedur kerja yang selamat. e. Memenuhi atau melebihi kebutuhan pelanggan. f. Menjaga kebutuhan sistim sesuai peruntukannya. g. Mentaati semua peraturanh yang berlaku. h. Menangani keadaan yang tidak normal. i. Mengikuti prosedur yang tertulis untuk pekerjaan yang berisiko tinggi atau yang tidak biasa. j. Melibatkan orang-orang yang tepat dalam pengambilan keputusan yang mempengaruhi prosedur dan peralatan.

Gambar berikut adalah lambang Chevron yang dipakai di seluruh dunia:

Gambar 1.2 Logo Chevron Corporation

Struktur Organisasi Chevron Geothermal Indonesia Ltd Darajat Operation Chevron Geothermal Indonesia, Ltd yang terletak di Darajat Garut, dipimpin oleh seorang Geothermal Asset Darajat teridiri dari departement, yaitu: a. Support and Service Group b. Bussinnes Planning c. OE/HES d. Operation e. Facilities & Maintenance f. Facilities Engineer g. SCM/Accounting h. Resource Managament Dari beberpa department yang direct reportnya langsung ke Pusat di jakarta dan tidak ada dalam Organisasi Chat Darajat adalah IT, namun untuk daily nya report ke Departement Support and Services group di Darajat sebagai dot line . IT Darajat di bawah department IT TELNET SATOJ, Java Operation. Personil IT Darajat hanya terdiri dari 2 orang, satu sebagai Analyst IT dan satu orang sebagai Asst IT Analsyt. Tugas dan wewenang IT Darajat adalah mengelola semua infrastruktur dan pelayanan IT di Darajat dan Service terhadap User yang meliputi : Telekomunikasi : 1. Radio Trunking Terdiri dari : Radio Repeater, Radio Base dan Handy Talkie 2. Telephone System : IP Phone, PSTN, JWOT, Facsimile beberapa

Jaringan Network Terdiri dari : LAN, WAN, Leased Line, FO.Wirring Closet

Multimedia Terdiri dari : Netmeeting, Meeting place Express, Video Teleconference.

Desktop Support

Perkembangan Teknologi yang pesat diabad ke-21 ini makin menuntut sikap profesional yang harus dimiliki oleh setiap lulusan perguruan tinggi. Artinya, dalam situasi yang bagaimanapun dalam dunia industri yang nyata, seorang lulusan perguruan tinggi dituntut untuk dapat menemukan alternatif solusi atas masalah yang ditemui. Selain itu seorang lulusan perguruan tinggi juga harus memiliki pemahaman bagaimana pola hidup seorang pekerja profesional, karena terdapat perbedaan yang sangat mendasar antara pola hidup seorang mahasiswa dengan seorang profesional. Tuntutan profesional diatas tidak cukup diperoleh hanya dengan mengandalkan apa yang didapat dari mata kuliah teori saja. Karena itu, sejak awal seorang calon lulusan perguruan tinggi di bidang Teknik, harus melatih semua aspek yang dibutuhkan untuk terjun ke dunia yang akan digelutinya nanti. Tuntutan adanya suatu kondisi yang menciptakan suatu kondisi yang dinamakan link and match antara lulusan-lulusan yang dihasilkan oleh perguruan tinggi dengan tenaga-tenaga profesional yang dibutuhkan oleh dunia usaha dan industri menuntut adanya suatu jembatan yang akan menghubungkan antara keduanya. Sesuai dengan tuntutan tersebut maka Program Studi Teknik Informatika Sekolah Tinggi Teknologi Garut, mensyaratkan kelulusan mahasiswanya untuk

membuat karya ilmiah agar bisa siap kerja didunia kerja sekaligus belajar menerapkan ilmu yang didapat melalui bangku kuliah. Akibat perkembangan tehnologi yang sangat pesat ini, maka teknologi satu dengan yang lainnya menjadi saling terkait. Perbedaan-perbedaan yang terjadi dalam pengiriman dan penyimpanan suatu data ataupun voice dan pengolahan informasi telah dapat diatasi. Sehingga pengguna dapat memperoleh informasi dengan cepat dan akurat. Sudah banyak Perusahaan yang menggunakan internet sebagai sarana untuk membantu dalam melaksanakan aktivitas rutin perusahaan dan aktivitas rutin lainnya seperti halnya Chevron. Dalam hal ini tidak hanya perusahaan yang bergerak di bidang telekomunikasi saja yang menggunakan internet, tetapi juga perusahaan lain yang tidak

bergerak di bidang tersebut juga menggunakannya. Kecenderungan penggunaan internet ini disebabkan oleh didapatkan kemudahan dalam hal komunikasi dan transfer data. Kenyataan ini bisa kita lihat pada bidang perbankan, sistem komunikasi data sangat berguna dalam membantu perusahaan tersebut untuk melayani para nasabahnya, juga dalam bidang marketing suatu barang hasil industri suatu perusahaan. Kemudahan dan kepraktisan merupakan kunci dari mengapa dipilihnya internet . Tetapi disamping keuntungan yang banyak tersebut, internet juga menyimpan banyak kekurangan yang sangat mengkhawatirkan bagi para penggunanya. Salah satu yang menjadi kendala adalah dalam bidang keamanan. Banyak kasus yang membuktikan bahwa perusahaan yang tersambung di internet sering kali mendapatkan gangguan baik dalam data yang dimiliki maupun peralatannya. Kerugian yang diderita akan hal ini bisa dibilang tidak kecil. Kasus pencurian atau manipulasi data perusahaan saja dapat mencapai kerugian sampai jutaan dollar amerika. Belum lagi kerusakan peralatan yang digunakan oleh perusahaan tersebut, yang bisa dibilang tidak murah. Dalam faktor keamanan ini biasanya perusahaan menempatkan administrator untuk menjaga. Tetapi fungsi administrator tentunya akan terbatas waktunya, hanya saat jam kerja. Meskipun di jam kerja pun kadang kala karena terlalu banyaknya aliran data tentunya administrator tentunya akan kesulitan dan kewalahan dalam menganalisa apakah data yang diterima oleh server adalah data yang diharapkan atau data yang tidak diharapkan. Sedangkan suatu serangan ke sistem keamanan bisa terjadi kapan saja. Baik pada saat administrator sedang kerja atupun tengah malam dimana tidak ada yang menjaga server tersebut. Dengan demikian dibutuhkan sistem pertahanan didalam server itu sendiri yang bisa menganalisa langsung apakah setiap paket yang masuk tersebut adalah data yang diharapkan ataupun data yang tidak diharapkan. Kalau paket tersebut merupakan data yang tidak diharapkan, diusahakan agar komputer bisa mengambil tindakan untuk mengantisipasi agar serangan yang terjadi tidak menimbulkan kerugian yang besar. Akan lebih baik kalau server bisa mengantisipasinya langsung, sehingga kerugian bisa mendekati nol atau tidak ada sama sekali. Dalam Pembuatan Tugas akhir ini di fokuskan pada system perancangan Sistem Pencegahan Flooding data pada jaringan komputer dimana dalam pelaskanaannya dapat diketahui sampai sejauh mana flooding data terjadi pada sistem yang sedang berjalan.

1.2 Identifikasi Masalah Berdasarkan latar belakang diatas, maka dapat diidentisikasikan masalah yang dihadapi yaitu masalah security sistem, bandwith dan transfer data yang tidak terkontrol membanjiri server sehingga kemungkinan tidak terkendali maka dibuat suatu model Perancangan Sistem Pencegahan Flooding Data Pada Jaringan Komputer

1.3 Tujuan Penelitian Tugas akhir ini bertujuan untuk membuat sebuah sistem yang dapat mencegah terjadinya flooding data secara otomatis dan melakukan blok IP apabila terjadi data flood pada sebuah server.

1.4 Pembatasan Masalah Upaya untuk memperjelas solusi alternatif dari pencegahan masalah yang dikaji, maka permasalahan dan pencarian solusi dibatasi pada hal-hal sebagai berikut : a. Sistem yang dibangun hanya digunakan untuk memantau TCP/IP, UDP, ICMP. b. Sistem yang dibangun pada Operating System windows. c. Sistem memiliki kemampuan mengirimkan perintah blok pada server d. Sistem dibangun menggunakan aplikasi Perangkat lunak Delfhi.Ver.7 e. Sistem digunakan pada koneksi leased line dengan bandwith 8 mbps

1.5

Kerangka pemikiran Dalam Perancangan sistem Pencegahan Flooding data pada jaringan komputer

dalam

penelitian tugas akhir ini, berdasarkan kepada metodologi yang digunakan,

terlebih dahlulu dilakukan analisis terhadap sistem yang sedang berjalan , dimana dari hasil analisis ini nantinya akan menentukan perancangan sistem yang akan datang, khusus nya sistem pencegahan flooding data pada jaringan komputer yang akan di rancang. Berikut adalah gambaran kerangka pemikiran perancangan sistem pencegahan flooding data pada jaringan komputer.

Gambar 1.3 Diagram Alur kerangka pemikiran

Penjelasan dari Gambar 1.3 : Paket yang datang dari jaringan akan di didentifikasi terlebih dahulu sebelum masuk database server apakah paket tersebut adalah paket TCP/UDP atau Paket ICMP, setelah didapat rincian dari paket-paket tersebut akan di masukan ke dalam database. Tujuan pemasukan ke dalam database server tersebut agar lebih memudahkan data tersebut diolah seluruhnya dalam kesatuan data. Apabila paket tersebut terbukti melakukan flooding pada jaringan maka sistem akan mengirimkan paket UDP ke Server untuk mengirimkan perintah bloking kepada IP yang bersangkutan. Namun apabila paket tersebut tidak terjadi flooding makan paket akan diteruskan ke user.

1.6

Metodologi Penelitian Metode penelitian yang digunakan dalam tugas akhir ini adalah metode

penelitian studi literatur pada buku-buku dan sumber-sumber lain yang relevan dengan topik penulisan, diantaranya buku-buku referensi dan sumber-sumber lain yang terdapat pada daftar pustaka.

Gambar 1.4 Diagram Alur Metodelogi Penelitian

a. Studi Pendahuluan Studi Pendahuluan yang dilakukan penyusun dalam penyusunan tugas akhir ini antara lain adalah dengan melakukan survei dan observasi di tempat penelitian untuk mengetahui sistem apa saja yang dibutuhkan sehingga dapat menentukan kebutuhan apa saja yang nanti akan di perlukan.

b. Studi Pustaka Studi Pustaka ini penulis lakukan dengan membaca buku buku manual dan buku-buku pendukung yang telah tersedia di perpustakaan,website dan dari mentor, data-data tersebut selanjutnya dibandingkan dengan keadaan nyata yang ada dilapangan di tempat penyusun melakukan penelitian tugas akhir.

c. Pengumpulan Data Metode yang dilakukan penulis dalam rangka memperoleh data dan informasi yang diperlukan adalah sebagai berikut : Metode Observasi Pengumpulan dengan cara melakukan pengamatan langsung terhadap alat dan proses yang dijadikan objek permasalahan Metode Wawancara Pengumpulan data dengan cara melakukan wawancara atau diskusi dengan narasumber dari perusaahaan yang memiliki pengetahuan mengenai objek permasalahan. Metode studi litelatur. Metode studi literatur ini penulis lakukan dengan membaca buku-buku referensi yang sesuai dengan judul tugas akhir dan buku-buku pendukung yang telah tersedia di perpustakaan, perusahaan dan website.

d. Pengolahan Data Metode Pengolahan data yang dilakukan penulis adalah data mentah yang telah dikumpulkan perlu di pecah-pecahkan terlebih dahulu dan dikelompokan, setelah itu diadakan kategorisasi dan manipulasi serta diperas sedemikian rupa sehingga data tersebut mempunyai makna untuk menjawab masalah dan bermanfaat untuk menguji hipotesa atau pertanayaan penelitian. Steleh data disusun dalam kelompok-kelompok serta hubungan-hubunga yang terjadi dianalisa dan dibuat penafsiran-penafsiran terhadap hubungan antara fenomena lain diluar penelitian tersebut. Pengolahan data-data lapangan mengunakan tehnik non statik, mengingat data-data lapangan diperoleh dalam bentuk narasi atau kata-kata, maka pengolahan datanya tidak bisa di kuantifikasikan. Diatas dikatakan bahwa pengolahan data dapatdiartikan sebagai proses mengartikan data lapangan, yang berarti supaya data lapangan yang diperoleh melalui alat pengumpul data dapat diolah dimaknai, baik secara kuantitatif mapun kualitatif, sehingga proses penarikan kesimpulan penelitian dapat dilaksanakan.

10

e. Perancangan Penulis melakukan perancangan spesifikasi sistem, mekanisme sistem , alat Bantu dan sistem operasi yang digunakan, selain sistem secara umum, pengambilan data dari jaringan, identifikasi data dan proses data. metode rekayasa perangkat lunak yang akan penulis kembnagkan menggunakan metode SDLC ( System Development Life Cycle ). Gambaran dari metode Perancangan perangkat lunak dapat dilihat pada gambar dibawah ini :

Identifikasi dan pemilihan proyek

Inisialisasi dan Perancangan Proyek

Analisis

Perawatan

Implementasi

Desain

Analisis kebutuhan Sistem Apabila pengujian sistem berhasil dilakukan,maka sistem itu akan

dianalisa, upaya yang dilakukan terdiri dari penelaahan untuk penyempurnaan sistem itu sendiri yang telah dibuat. Iplementasi Kegiatan-kegiatan yang dilakukan dengan tersencana dan dilakukan secara sungguh-sungguh berdasarkan acuan norma tertentu untuk mencapai tujuan kegiatan, seperti yang telah diuraikan diatas dari mulai pengumpulan dan pengolahan data, perancanagan dalam konteks didimplementasikan ke dalam suatu program. Pengujian Mekanisme yang dilakukan untuk menentukan data uji yang dapat menguji perangkat lunak secara lengkap dan mempunyai kemungkinan

tinggi untuk menentukan kesalahan-kesalahan dalam pembuatan program yaitu menguji semua elemen-elemen program (data internal, loop, logika keputusan dan jlaur ) data uji di bandingkan dengan mengetahui struktur internal (kode sumber) dari perangkat lunak. Pengujian dilakukan dengan mengeksekusi data uji dan mengecek apakah fungsional perangkat lunak

11

bekerja dengan baik. Data uji dibangkitkan dari sfesifikasi perangkat lunak, jika pengujian gagal, maka akan kembali ke perancangan awal.

f. Kesimpulan Setelah dilakukan penganalisaan sistem kemudian akan ditarik kesimpulan.

1.7

Sistematika Penulisan

Bab I Pendahuluan, merupakan pendahuluan yang membahas latar belakang, ruang lingkup dan sistematika pembahasan flooding data pada sistem Jaringan Komputer.

Bab II Tinjauan Pustaka, Berisi dasar teori penunjang yang digunakan untuk membangun sistem ini. Dalam bab ini akan dibahas mengenai Perancangan sistem, struktur komputer, jaringan computer, Parameter analisis kerja jaringan, konsep TCP/IP, UDP, ICMP, keamanan sistem jaringan, keamanan komunikasi data, metode tranfer data.

Bab III Analisis sistem, membahas perancangan dan simulasi sistem. Pada bab ini dibahas tentang spesifikasi sistem, mekanisme sistem , alat Bantu dan sistem operasi yang digunakan, selain sistem secara umum, pengambilan data dari jaringan, identifikasi data dan proses data.

Bab IV Perancangan Sistem, berisi tentang pengujian program. Dalam hal ini akan dilihat pula hasil-hasil pengujian program

Bab V Kesimpulan dan Saran, berisi kesimpulan dan saran dari bab-bab sebelumnya

Lampiran-lampiran

Daftar Pustaka

BAB II TINJAUAN PUSTAKA

2.1.

Teknik Informatika Informatika merupakan ilmu yang mempelajari tentang perangkat (bisa sistem

atau alat) yang dapat menghasilkan dan mendistribusikan informasi. Jadi kata kunci pertama pada definisi ini adalah kata : informasi, sehingga itulah makanya bidang ini disebut sebagai : informatika. Sedangkan kata kunci kedua adalah pada kata menghasilkan dan mendistribusikan. Kata menghasilkan informasi itu maksudnya KOMPUTER, sedangkan mendistribusikan informasi maksudnya : Jaringan atau TELEKOMUNIKASI. Perhatikanlah bahwa kedua perangkat ini, yaitu komputer dan telekomunkasi saat ini telah mewabah kemana pun ada celah pekerjaan yg ada dijagad raya ini. Inilah istimewanya bidang informatika. (http://fatur.student.umm.ac.id) Sistem informasi lebih mengarah ke penerapan komputer untuk dunia business dan manajemen, sedangkan sistem komputer lebih mengarah ke belajar perangkat keras (hardware) komputer. Yang kedua ini menurut saya lebih mirip2 ke jurusan elektro digital, sedangkan yang pertama tadi kadang-kadang ilmunya mendekati bidang ekonomi. Sebenarnya ada bidang (jurusan) lain yang juga mengarah ke rumpun komputer seperti : Komputer akuntansi, komputer perbankan, dan sebagainya. yang lebih dikonsentrasikan ke penerapan lebih khusus. Ada beberapa pendapat yang mendefinisikan bahwa tehnik informatika adalah : "Disiplin Ilmu Komputer, Yang Pada dasarnya merupakan Teknik khusus untuk menangani masalah transformasi Pengolahan Fakta-Fakta /data untuk memecahkan suatu masalah. (http://blog.uad.ac.id) "Teknik Informatika adalah ilmu pengetahuan yang berisi tentang teori, metodelogi, desain dan inplementasi, berhubungan dengan komputasi, komputer dan algoritmanya 12

13

dalam persefektif perangkat lunak (software) maupun perangkat keras (hardware ). (Danning Peter1989), 2.2. Perancangan sistem Perancangan : Perancangan adalah langkah pertama dalam fase pengembangan rekayasa produk atau sistem. Perancangan itu adalah proses penerapan berbagai teknik dan prinsip yang bertujuan untuk mendefinisikan sebuah peralatan, satu proses atau satu sistem secara detail yang membolehkan dilakukan realisasi fisik (Pressman (2010), Sistem : Sistem adalah kumpulan elemen-elemen yang saling berinteraksi satu sama lain untuk mencapai tujuan yang telah ditetapkan. Sebuah sistem terdiri dari bagian-bagian yang saling berkaitan yang beroperasi bersama untuk mencapai beberapa sasaran atau maksud, tujuan dan sasaran yang sama. (Jogiyanto H.M ( 2001 : 2) Perancangan sistem dapat dibagi dalam dua bagian yaitu : 1. Perancangan sistem secara umum/perancangan konseptual, perancangan secara makro / perancangan logical. 2. Perancangan sistem terinci / perancangan sistem secara phisik.

Perancangan sistem dapat diartikan sebagai berikut ini : 1. Tahap setelah analisis dari siklus pengembangan sistem 2. Pendefinisian dari kebutuhan-kebutuhan fungsional 3. Persiapan untuk rancang bangun implementasi 4. Menggambarkan bagaimana suatu sistem dibentuk 5. Penggambaran, perencanaan dan pembuatan sketsa atau pengaturan dari beberapa elemen yang terpisah kedalam satu kesalahan yang utuh dan berfungsi 6. Mengkonfigurasikan dari komponen-komponen perangkat lunak dan perangkat keras dari suatu system

Tahap perancangan sistem mempunyai 2 tujuan utama yaitu : 1. Untuk memenuhi kebutuhan kepada pemakai sistem

14

2. Untuk memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada pemrogram komputer dan ahli-ahli teknik lainnya yang terlibat.

Perancangan sistem secara umum Tujuan dari desain sistem secara umum adalah untuk memberikan gambaran secara umum kepada user tentang sistem yang baru. Desain sistem secara umum merupakan persiapan dari desain secara terinci. Desain secara umum mengidentifikasikan komponen-komponen sistim informasi yang akan didesain secara rinci. Desain terinci dimaksudkan untuk pemogramn komputer dan ahli teknik lainnya yang akan mengimplementasi sistem. Tahap desain sistem secara umum dilakukan setelah tahap analisis sistem selesai dilakukan dan hasil analisis disetujui oleh manajemen. Pada tahap desain secara umum, komponen-komponen sistem informasi dirancang dengan tujuan untuk dikomunikasikan kepada user bukan untuk pemograman.

2.3.

Flooding Data 2.3.1 Data Data merupakan kumpulan huruf atau angka yang belum diolah sehingga tidak memiliki arti, atau juga bisa disebut sebagai catatan atas kumpulan fakta. Data merupakan bentuk jamak dari datum , berasal dari bahasa latin yang berarti sesuatu yang di berikan . Dalam penggunaan sehari-hari data berarti suatu pernyataan yang diterima secara apa adanya. Pernyataan ini adalah hasil pengukuran atau pengamatan suatu variable yang bentuknya dapat berupa

angka, kata-kata atau citra. Dalam keilmuan (ilmiah), fakta dikumpulkan dikumpulkan untuk menjadi data. Data kemudian diolah sehingga dapat diutarakan secara jelas dan tepat sehingga dapat dimengerti oleh orang lain yang tidak langsung mengalaminya sendiri, hal ini dinamakan deskripsi. Pemilihan banyak data sesuai dengan persamaan atau perbedaan yang dikandungnya dinamakan klasifikasi. (http://id.wikipedia.org)

15

2.3.2. Flooding Pengiriman data yang berlebihan baik dari besar paket maupun jumlah paket kedalam suatu jaringan dan umumny merupakan data yang tidak berguna disebut dengan Flood Data , adakalanya data-data yang berbeda dalam traffic merupakan data yang tidak perlu . Data-data tersebut memang sengaja dikirim oleh seseorang untuk merukan jaringan data yang ada. Pengiriman data tersebut dapat mengakibatkan lambatnya jalur traffic yang ada dalam jaringan dan juga bisa mengakibatkan kerugian lain yang cukup berarti, misalnya kerusakan

program karena adanya intruder yang masuk kedalam jaringan. Traffic data yang ada dalam suatu jaringan akan mengalami turun naik selama pemakaiannya. Pada jam-jam sibuk traffic suatu data akan sangat padat, sehingga traffic data tersebut akan terganggu. Baik data yang akan dikirim maupun data yang akan datang akan mengalami antrian data yang mengakibatkan kelambatan dalam pengiriman dan penerimaan data.

(http://www.kb.cert.org)

Untuk mengidentifikasi terjadinya flooding data diguanakan suatu konsep 4W+1H yaitu What, Why, Where, When dan How. Dimana konsep ini digunakan untuk mengumpulkan suatu informasi agar dapat diperoleh data yang utuh kenapa terjadi Flooding data pada suatu jaringan. Penjelasan dari konsep tersebut adalah : (http://en.wikipedia.org/wiki)

1. What : Apa yang di maksud dengan Flooding data. Pengiriman data yang berlebihan baik dari besar paket maupun jumlah paket ke dalam suatu jaringan dan umumnya merupakan data yang tidak berguna. 2. Why : Kenapa terjadi Flooding data. Karena keterbatasan ketahanan sistem dalam menangani traffic data yang besar 3. Where : Dimana terjadinya Flooding data. Pada sebuah sistem jaringan yang tidak dapat terkontrol ketika paket data masuk secara kontinue dan besar. 4. When : Kapan terjadinya Flooding data.

16

Ketika sistem tidak bisa mendeteksi paket data dan flood tidak bisa melakukan pengeblokan sebuah sistem jaringan. 5. How : Bagaimana pencegahan agar tidak terjadinya flooding data. Yaitu merancang dan membangun suatu sistem yang mampu mendeteksi data flood sekaligus melakukan blocking pada data yang terbukti flood. Macam-macam Flood attack ( http://www.kb.cert.org/vuls/id/539363
Syn flood.2009-12-12. http://en.wikipedia.org/wiki/SYN_flood)

paket data yang dianggap flooding pada

1. Ping of death Pengiriman paket echo request ICMP ke dalam suatu jaringan secara berlebihan. Pengiriman paket ini dapat mengakibatkan sistem crash, hang ataupun reboot 2. Smurf Attack Hampir sama dengan Ping of death tetapi untuk smurf attack paket ICMP tidak dikirim secara langsung ke korban, melainkan melalui perantara. Pada awalnya dikirim sebuah paket ICMP echo request ke sebuah host lain, paket ini bertujuan agar host tersebut mengirimkan paket ICMP PING secara terus menerus ke korban terakhirnya. 3. Syn Flooding Dalam proses pengiriman data yang melalui TCP, proses data yang terjadi adalah sebagai berikut :
Jaringan 1 jaringan2

SYN

SYN-ACK

ACK

Gambar 2.1 Proses data TCP

Hubungan TCP dimulai dengan mengirimkan paket SYN-TCP ke host yang dituju, pengiriman paket SYN adalah merupakan pembuka untuk membuka jalur koneksi antara dua host melalui protokol TCP. Apabila hubungan tersebut disetujui host tujuan akan mengirimkan paket SYN-ACK sebagai tanda bahwa

17

jalur sudah terbentuk. Dan bagian terakhir adalah pengiriman paket ACK dari host awal ke host tujuan sebagai konfirmasi. Sedangkan flood SYN terjadi bila suatu host hanya mengirimkan paket SYN TCP saja secara kontinyu tanpa mengirimkan paket ACK sebagai konfirmasinya. Hal ini akan menyebabkan host tujuan akan terus menunggu paket tersebut dengan menyimpannya kedalam backlog. Meskipun besar paket kecil, tetapi apabila pengiriman SYN tersebut terus menerus akan memperbesar backlog. Hal yang terjadi apabila backlog sudah besar akan mengakibatkan host tujuan akan otomatis menolak semua paket SYN yang datang, sehingga host tersebut tidak bisa dikoneksi oleh host-host yang lain.

4. UDP flood Pengiriman data UDP secara berlebihan kedalam suatu jaringan, pengiriman UDP flood ini akan membentuk suatu jalur hubungan dengan suatu servis UDP dari host tujuan. Flood UDP ini akan mengirimkan karakter-karakter yang akan mengetes jaringan korban. Sehingga terjadi aliran data yang tidak perlu dalam jaringan korban tersebut.

2.4

Pencegahan Flooding Data Mengidentifikasikan suatu data apakah data tersebut termasuk data yang

diperlukan oleh user dari server tersebut ataukah data yang termasuk data yang tidak dibutuhkan dengan kata lain data serangan. Maka terlebih dahulu harus bisa mendapatkan keterangan-keterangan dari semua data yang masuk. Kemana tujuan dari data itu, darimana datangnya data itu ataupun berapa jumlah byte yang dibawa oleh data. Keterangan-keterangan yang diperlukan tersebut dapat diperoleh langsung dari data itu. (http://digilib.its.ac.id) Semua komunikasi data yang terjadi dijaringan akan melewati router sebagai perantaranya. Baik data dari jaringan lokal yang akan keluar ke internet, maupun data yang datang dari luar jaringan lokal yang menuju ke lokal. Bisa di katakan router merupakan satu-satunya tempat yang memungkinkan untuk mendapatkan semua data paket yang ada. Pengambilan data paket yang akan berfungsi sebagai masukan untuk mengidentifikasikan paket bisa juga dilakukan di router tersebut.

18

Tetapi fungsi router sebagai pengatur bisa terganggu kalau harus dilakukan pengecekan yang rutin terhadap sejumlah database yang besar. Untuk itu dibuat suatu komputer yang di tujukan untuk mengatur lalulintas keluar masuknya data di tempat lain. Untuk pengambilan data tersebut dilakukan oleh sniffer, Sniffer disini adalah suatu program yang dapat mengambil setiap paket yang masuk dan keluar didalam suatu jaringan. Sehingga setiap ada data yang melewati jaringan tersebut bisa terdeteksi dan bisa dilihat isi dari data tersebut, dengan cara mengidentifikasikannya sesuai dengan aturan yang ada disetiap protokol pembawanya. Tetapi proses sniffing ini

mempunyai kelemahan bila ditempatkan di luar router. Kelemahannya ini bergantung dari penghubung yang ada didalam jaringan tersebut. Penghubung dalam suatu jaringan bisa dalam bentuk HUB atau SWITCH, yang mempunyai karakteristik masing-masing dalam menyalurkan data nya. Adapun penjelasan dari masing-masing komponen tersebut adalah : (http://digilib.its.ac.id)

2.4.1. Hub : Hub adalah suatu penghubung dalam jaringan sehingga suatu jaringan bisa memiliki user lebih dari satu. Prinsip dasar dari dari HUB adalah token ring, dengan menggunakan token ring maka secara periodik setiap titik dalam jaringan dapat tersambungkan. Meskipun demikian karena jalur yang digunakan adalah satu maka kesempatan yang di dapat juga probabilitas, dengan artian user dapat mengirim atau menerima data jika memang pada saat pengiriman jalur kosong. Tetapi jika tidak maka harus menunggu untuk mengirim sampai jalur kosong. Sistem penyaluran data nya adalah broadcast, jadi setiap komputer sebenarnya bisa mengetahui aliran data tersebut. HUB (Star T/R or Star Bus)

Gambar 2.2 Ethernet HUB Operation


(Dony ariyus & Rum Andri K.R, 2008)

19

2.4.2. Switch : Seperti halnya Hub, switch juga merupakan penghubung dalam suatu jaringan. Tetapi dasar yang dipakai adalah switching, sehingga memungkinkan alur dari lalu lintas data lebih banyak option-nya. Pada waktu sibuk user tidak terlalu lama untuk menungu giliran mengirimkan data karena jalan yang dipakai banyak (tidak cuma satu). Metode pengerimannya adalah point-to-point, dianggap jika ada yang datang langsung terhubung satu sama lain secara kontinyu.

Gambar 2.3 Switch


(Dony ariyus & Rum Andri K.R, 2008)

2.4.3. Bridge : Adalah sebuah komponen

jaringan yang digunakan untuk

meemperluas jaringan atau membuat sebuah segmen jaringan. Bridge jaringan beroperasi di dalam lapisan data link pada model OSI. Bridge juga dapat

digunakan untuk menggabungkan dua buah media jaringan yang berbeda, seperti halnya antara media kabel unshielded twisted-pair (UTP) dengan kabel serat optik atau dua buah arsitektur jaringan yang berbeda , seperti halnya pada token ring dan ethernet. Brideg akan membuat sinyal yang di transmisikan oleh konversi terhadap protokol, sehingga dua

pengirim tetapi tidak melakukan

segmen jaringan yang dikoneksikan ke bridge tersebut harus memiliki protokol jaringan yang sama ( Seperti halnya TCP/IP). Bridge Jaringan kadang-kadang mendukukung protokol simple Network Management Protocol ( SNMP ), dan beberapa diantaranya memiliki fitur diagnosis lainnya, terdapat tiga jenis bridge jaringan yang umum dijumpai : Bridge lokal : Sebuah Bridge yang dapat menghubungkan segmensegmen jaringan lokal. Bridge Remote : Dapat digunakan untuk membuat sebuah sambungan (Link ) antara LAN untuk membuat sebuah Wide Area Network.

20

Bridge Nirkabel : Sebuah Bridge yang dapat menghubungkan jaringan LAN berkabel dan Jaringan LAN nirkabel.

Gambar 2.4. Data Bridge Operation


(Dony Ariyus & Rum Andri KR, 2008)

2.4.4. Router : Merupakan perangkat layer 3, yang merupakan perangkat lebih rumit dan cerdas, router berfungsi meneruskan paket data dari satu tempat ke tempat lain, tergantung nilai alamat jaringan, bukan alamat hardware (MAC) seperti Bridge, hal yang membedakan router dengan bridge adalah router dapat menghubungkan dua topologi jaringan yang berbeda jenisnyam, seperti jaringan ethernet ke token ring. Router bekerja dengan membaca protokol seperti internet protokol (IP), untuk membuat keputusan kemana harus mengirim dan

meneruskan data yang diterima . seperti halnya bridge, router memberikan kendali terhadap konsumsi bandwith dengan menjaga data diantara subnet.

Gambar 2.5 Data Roter Operation


(Dony Ariyus & Rum Andri KR, 2008)

21

Gambar 2.6 Cisco Router


(Dony Ariyus & Rum Andri KR, 2008)

2.5.

Metoda Pemblokiran IP Pemblokiran IP tersebut disesuaikan dengan operating system yang ada di router,

apakah Windows 2000, Linux, ataukah FreeBSD

2.5.1

WINDOWS 2003 Server Di dalam windows 2003 server telah dilengkapi dengan cara untuk

mengatur IP baik itu mengeblok IP maupun melewatkan suatu IP. Program tersebut adalah IPSECPOL. Utility ini hampir sama kegunaannya pada iptables dan ipchains dalam program LINUX. Hanya saja untuk utility ini hanya bekerja pada windows 2003 server. Pengaturan IPSECPOL pada tampilan windows dapat dijumpai pada "IP Security Policies on Local Machine" yang berada pada "Computer Configuration Security Settings" di MMC (Microsoft Management Console). Yang pada defaultnya terdapat 3 ketentuan yang telah ditetapkan :

a.

Client (Respond Only)

Digunakan oleh client untuk memberikan respon kepada windows 2000 server pada saat ada permintaan menggunakan servis yang ada didalamnya.

b.

Secure Server (Require Security)

Ketentuan ini digunakan pada windows 2000 server dan windows 2000 host yang menghasilkan network-based services untuk meyakin kan bawa tidak ada non-authentication dan non-encryption traffic yang di abaikan.

22

c.

Server (Request Security)

Ketentuan ini hampir sama dengan ketentuan yang ada pada Secure Server, yang menjadi perbedaan adalah pada ketentuan ini terdapat ketentuan untuk mengadakan hubungan enkripsi pada tingkat lebih tinggi di user.

Gambar 2.7 IPSECPOL pada tampilan windows

2.5.2. Linux Untuk sistem pemblokiran dengan menggunakan operating system ini dengan menggunakan aplikasi yang sudah tersedia yaitu dengan menggunakan IPTABLES atau IPCHAINS tergantung versi yang digunakan. Pada aplikasi ini tersedia berbagai fungsi tentang routing baik forwarding, accepting ataupun bloking. 2.5.3. FreeBSD FreeBSD juga mempunyai aplikasi untuk pengaturan routing yang fungsinya mirip dengan IPTABLES pada linux ataupun IPSECPOL pada windows, hanya saja pada sistem FreeBSD untuk pengaturannya menggunakan perintah IPFW.( http://www.freebsd.org)

2.5.4 Proteksi Perangkas keras Pada saat suatu proses sedang berjalan, ada keadaan dimana processor berhenti. Hal ini menandakan tidak adanya lagi data yang diproses oleh processor. Oleh karena itu, processor pastinya akan mencari data ke dalam memori. Pengaksesan data tersebut memerlukan banyak clock cycle. Situasi ini tidak bisa ditoleransi sehingga membutuhkan perbaikan dalam kecepatan

23

pengaksesan antara CPU dan memori utama. Tidak hanya peduli tentang kecepatan tersebut, tetapi juga memastikan operasi yang benar untuk melindungi pengaksesan sistem operasi dari proses lainnya, dan melindungi proses yang satu dari pengaksesan proses lainnya pula. Perlindungan atau proteksi ini disediakan oleh perangkat keras. (http://bebas.ui.ac.id/)

Sistem komputer terdahulu berjenis programer operational systems, ketika komputer di operasikan dalam konsul mereka (Pengguna ) harus melengkapi sistem terlebih dahulu. Akan tetapi setelah sistem operasi lahir, maka hal tersebut diambil alih oleh sistem operasi, sebagai contoh pada monitor yang proses I/O sudah diambil alih oleh sistem operasi, padahal dahulu hal ini dilakukan oleh pengguna.

a.

Operasi Dual Mode

Untuk memastikan operasi berjalan dengan baik kita harus melindungi sistem operasi, program, dan data dari program-program yang salah. Proteksi ini memerlukan share resources. Hal ini bisa dilakukan sistem operasi dengan cara menyediakan pendukung perangkat keras yang mengijinkan kita membedakan mode pengeksekusian program. Mode yang kita butuhkan ada dua mode operasi : Mode Monitor Mode Pengguna

Pada Perangkat keras akan ada bit atau bit mode yang berguna untuk membedakan mode apa yang sedang digunakan dan apa yang sedang dikerjakan. Jika mode monitor maka benilai 0, dan jika mode pengguna akan bernilai 1. Pada saat boot time, perangkat keras bekerja pada mode monitor dan setelah sistem operasi di-load maka akan mulai masuk ke mode pengguna. Ketika terjadi trap atau interupsi, perangkat keras akan men-switch lagi ke keadaan mode pengguna menjadi mode monitor (Terjadi perubahan state menjadi bit 0 ) dan akan kembali menjadi mode pengguna jika sistem operasi mengambil alih proses dan kontrol komputer ( state akan berubah menjadi bit.1).

24

b.

Proteksi I/O

Pengguna bisa mengacaukan sistem operasi dengan melakukan instruksi I/O ilegal dengan mengakses lokasi memori untuk sistem operasi atau dengan cara hendak melepaskan diri dari prosessor. Untuk mencegahnya kita menganggap semua instruksi I/O sebagai priviladge instruction sehingga mereka tidak bisa mengerjakan instruksi I/O secara langsung ke memori tapi harus lewat sistem operasi terlebih dahulu. Proteksi I/O dikatakan selesai jika pengguna dapat dipastikan tidak akan menyentuh mode monitor. Jika hal ini terjadi proteksi I/O dapat di kompromikan.

c.

Proteksi Memory

Salah satu proteksi perangkat keras ialah dengan proteksi memori yanti dengan pembatasan penggunaan memori. Disini diperlukan beberapa istilah yaitu : Base register yaitu : alamat memori fisik awal yang dialokasikan/boleh di

gunakanoleh pengguna Limit register yaitu : nilai batas alamat memori fisik awal yang di

alokasikan/boleh digunakan oleh pengguna Proteksi perangkat keras.

Sebagai contoh sebuah pengguna dibatasi mempunyai base register 300040 dan mempunyai limit register 120900 maka pengguna hanya diperbolehkan menggunakan alamat memori fisik antara 3000400 hingga 420940 saja.

2.6.

Jaringan komputer Jaringan komputer adalah interkoneksi antara 2 komputer autonomous atau

lebih, menggunakan protokol komunikasi yang terhubung dengan media transmisi kabel atau tanpa kabel (Wireless) untuk keperluan komunikasi data. Aoutonomus adalah apabila sebuah komputer tidak melakukan kontrol terhadap komputer lain dengan akses penuh, sehingga dapat membuat komputer lain melakukan restart, shutdown, kehilangan file atau kerusakan sistem. Dalam definisi jaringan yang lain, atounoumous dijelaskan sebagai jaringan yang independen dengan manajemen sistem sendiri ( Punya admin sendiri ), memiliki

topologi jaringan, memiliki hardware dan software sendiri dan di koneksikan dengan

25

jaringan autonomous lain. Internet merupakan contoh kumpulan jaringan aoutonomous yang sangat besar (Dony Ariyus & Rum Andri KR, 2008)

Dua unit komputer dikatakan terkoneksi apabila keduanya bisa saling bertukar data/informasi, berbagi sumber daya yang dimiliki, seperti file, printer, media penyimpanan data. Baik data yang berupa teks, audio maupun video bergerak melalui media kabel atau tanpa kabel ( Wireless) sehingga memungkinkan pengguna komputer dalam jaringan komputer itu saling bertukar file/data, mencetak pada printer yang sama dan menggunakan hardware/software yang ada dalam jaringan secara bersama-sama. Tiap komputer, printer atau peripheral yang terhubung dalam jaringan disebut dengan Node . Sebuah Jaringan komputer sekurang-kurangnya terdiri dari dua unit komputer, ribuan atau bahkan jutaan node yang saling terhubung satu sama lainnya. Di dalam jaringan komputer dikenal sistem koneksi antarnode (komputer ). yakni : (Stalling, 2001)

Peer to peer ( Workgroup ) Jaringan komputer P2P termasuk sebuah cabang (subset) dari bidang

komputasi terdistribusi. Namun komputasi terdistribusi sendiri bukanlah cabang dari Peer to per. Sebutan peer-to-peer mengisyaratkan sebuah hubungan

kesetaraan (egalitarian relationship) diantara para peer (baca: pengguna satu dengan yang lainnya). Dan yang terpenting, hubungan ini haruslah menghasilkan interaksi langsung antara komputer pengguna yang satu dengan komputer pengguna lainnya. Tanpa embel-embel ada komputer yang berstatus sebagai client dan berstatus sebagai server. Secara teknis, jaringan P2P (peer-to-peer) adalah sebuah jaringan yang memungkinkan semua komputer dalam

lingkungannya bertindak/berstatus sebagai server yang memiliki kemampuan untuk mendistribusikan sekaligus menerima berkas-berkas atau sumber daya (resource) yang ada dalam komputer mereka ke komputer lainnya. Jaringan bertipe ini sangat banyak dijumpai di kantor-kantor yang tidak membutuhkan sebuah sentral pengaturan laiknya jaringan client-server. Di internet, jaringan peer to peer hidup dan berkembang melalui aplikasi-aplikasi populer seperti Napster dan Genutella.

26

Klasifikasi Peer to Peer Berdasarkan tingkat/derajat sentralisasinya, jaringan Peer to Peer terbagi ke dalam 2 tipe, yakni: a. Peer to Peer Murni (Pure P2P), dengan ciri-ciri sebagai berikut: Masing-masing peer berstatus setara (egaliter), setiap peer berstatus sebagai client juga server. Tidak ada server pusat yang mengatur jaringan. Tidak ada router yang menjadi pusat jaringan.

b.

Peer to peer Hybrid (Hybrid P2P), dengan ciri-ciri sebagai berikut: Mempunyai server pusat yang memantau dan menjaga informasi yang berada di setiap peer sekaligus merespon peer ketika ada yang meminta informasi itu. Setiap peer bertanggung jawab untuk menyediakan resource yang tersedia. Hal ini terjadi karena server pusat diatur sedemikian rupa untuk tidak memilikinya. Selain itu, hal ini juga dilakukan agar server pusat tersebut dapat mengetahui resource apa saja yang akan didistribusikan didalam jaringan. Ada router yang menjadi pusat jaringan.

Manfaat Per to peer Tujuan utama dari jaringan Peer to Peer adalah agar semua peer dapat menyediakan sekaligus memanfaatkan resource komputer, termasuk bandwith, media penyimpanan, dan kemampuan komputasi yang ada didalam jaringan tersebut. Dengan demikian, ketika node-node (komputer-komputer) telah banyak terhubung dan terjadi banyak permintaan terhadap sistem, kapasitas total yang dimiliki oleh sistem juga akan meningkat. Hal ini merupakan kontraproduktif dengan apa yang terjadi pada sistem clientserver. Dalam sistem client-server, bertambahnya client justru dapat menyebabkan melambatnya transfer data didalam sistem. Sifat terdistribusi yang dimiliki oleh jaringan Peer to Peer ini juga dapat meningkatkan kestabilan/kekokohan (robustness) sistem dari

kemungkinan kegagalan (system failure). Kestabilan ini disebabkan oleh dua

27

faktor. Pertama, adanya replikasi/penggandaan data yang terjadi di antara para pengguna (peer). Kedua, dengan memanfaatkan resource komputer peer itu sendiri untuk mencari data yang ada di dalam jaringan tanpa mengandalkan satu resource komputer server saja.

Topologi Jaringan Peer to Peer Shuman Ghosemajumder dalam makalahnya yang berjudul Advanced Peer-Based Technology Business Models yang diterbitkan pada tahun 2002 membagi topologi Jaringan Peer to Peer ke dalam 2 tipe. Berikut tipe-tipe tersebut: 1. Centralized Model Model ini adalah model yang digunakan oleh Napster. Semua peer (pengguna) akan terhubung ke satu atau sekelompok (cluster) server. Server ini berfungsi untuk memfasilitasi (baca: sebagai mediator) hubungan antara peer dalam jaringan tersebut. Server tersebut dapat memainkan satu, dua atau ketiga peran berikut ini: a. Discovery. Server yang memainkan peran ini akan meyimpan informasi tentang user yang sedang terhubung ke dalam sistem

sekaligus memungkinkan semua user untuk mengetahui bagaimana cara menghubungi user tertentu yang sedang berada di dalam jaringan. b. Lookup. Server dengan peran lookup memiliki kemampuan server dengan peran discovery. Hanya saja, server ini juga akan menyediakan mekanisme pencarian yang tersentralisasi. c. Content Delivery. Dalam peran ini, peer akan meng-upload semua atau beberapa data (content) milik mereka ke server pusat. Dengan cara ini, proses transfer data menjadi relatif lebih cepat ketimbang dengan kedua model peran sebelumnya. Dengan beberapa pertimbangan keadaan tentunya. Gambar topologi model tersentralisasi dapat dilihat pada gambar di bawah ini:

28

Gambar 2.8 : Model Peer to Peer Tersentralisasi


(Dony Ariyus & Rum Andri KR, 2008)

Model ini membutuhkan sebuah atau beberapa server yang digunakan untuk melakukan beberapa tugas atau fungsi tertentu.

2.

Decentralized Model Model ini akan membuat semua peer memiliki status dan fitur

yang sama dalam sebuah jaringan. Jadi, tidak akan ada server atau client di dalamnya. Contoh aplikasinya adalah Freenet. Dalam model terdesentralisasi, seorang peer tidak akan dapat mengetahui jumlah peer lainnya yang sedang terhubung didalam jaringan. Selain itu, seorang peer juga tidak akan dapat mengetahui alamat dari peer lain yang akan dihubunginya. Satu lagi kekurangan model ini adalah bahwa peer tidak dapat mengetahui isi (content) komputer milik peer lainnya yang sedang tersedia dalam jaringan. Meskipun begitu, model desentralisasi juga memiliki kelebihan. Diantaranya berkaitan dengan masalah keamanan, baik itu dilihat dari segi teknologi maupun hukum hak cipta. Dari segi teknologi, model desentralisasi menguntungkan karena akan lepas dari kemungkinan satu serangan tunggal yang dapat mematikan jaringan. Sedangkan dari segi hukum hak cipta, meskipun masih menyisakan bias, model ini relatif lebih bebas dari jerat undang-undang hak cipta karena content yang tersebar dalam jaringan merupakan data yang hendak saling dipertukarkan. Bukan untuk dijual atau dibajak.

29

2.

Client Server ( Domain ) Client-Server adalah arsitektur jaringan yang memisahkan client (biasanya aplikasi yang menggunakan GUI ) dengan server. Masingmasing client dapat meminta data atau informasi dari server. Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan karakteristik yaitu : http://www.wimpermana.web.ugm.ac.id),

a.

Servis (layanan) - Hubungan antara proses yang berjalan pada mesin yang berbeda - Pemisahan fungsi berdasarkan ide layanannya. - Server sebagai provider, client sebagai konsumen

b.

Sharing resources (sumber daya), Server bisa melayani beberapa

client pada waktu yang sama, dan meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya. c. Asymmetrical protocol (protokol yang tidak simetris ) Many-to-one relationship antara client dan server.Client selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu secara pasif request dari client. d. Transparansi lokasi, Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada mesin yang berbeda melalui jaringan.Lokasi server harus mudah diakses dari client. e. Mix-and-Match, Perbedaan server client platforms f Pesan berbasiskan komunikasi, Interaksi server dan client melalui

pengiriman pesan yang menyertakan permintaan dan jawaban. g. Pemisahan interface dan implementasi, Server bisa diupgrade tanpa

mempengaruhi client selama interface pesan yang diterbitkan tidak berubah.

30

Gambar : 2.9 Model client server dengan sebuah server yang berfungsi umum.
(Dony Ariyus & Rum Andri KR, 2008)

Gambar. 2.10 Model Client Server dengan dedicated Server


(Dony Ariyus & Rum Andri KR, 2008)

Adapaun perbedaan dari tipe Client Server adalah : 1. File Servers - File server vendors mengklaim bahwa mereka pertama menemukan istilah client-server. - Untuk sharing file melalui jaringan 2. Database Servers Client mengirimkan SQL requests sebagai pesan pada database server,selanjutnya hasil perintah SQL dikembalikan - Server menggunakan kekuatan proses yang diinginkan untuk menemukan data yang diminta dan kemudian semua record dikembalikan pada client.

31

3. Transaction Servers (Transaksi Server) - Client meminta remote procedures yang terletak pada server dengan sebuah SQL database engine. - Remote procedures ini mengeksekusi sebuah grup dari SQL statement - Hanya satu permintaan / jawaban yang dibutuhkan untuk melakukan transaksi 4 Groupsware Servers - Dikenal sebagai Computer-supported cooperative working - Manajemen semi-struktur informasi seperti teks, image, bulletin boards dan aliaran kerja - Data diatur sebagai dokumen 5 Object Application Servers - Aplikasi client/server ditulis sebagai satu set objek komunikasi - Client objects berkomunikasi dengan server objects melalui Object Request Broker (ORB) - Client meminta sebuah method pada remote object 6 Web Application Servers (Aplikasi Web Servers) - World Wide Web adalah aplikasi client server yang pertama yang digunakan untuk web. - Client dan servers berkomunikasi menggunakan RPC seperti protokol yang disebut HTTP.

2.6.1 Topologi Jaringan Topologi Jaringan merupakan gambaran umum secara fisik dari pola hubungan antara komponen-komponen jaringan yang meliputi beberapa interface dan system pengkabelan dari jaringan yang tersedia, Jaringan komputer pada dasarnya adalah jaringan kabel, menghubungkan satu sisi dengan sisi yang lain, namun bukan berarti kurva tertutup, bisa jadi merupakan kurva terbuka (dengan terminator diujungnya). Seiring dengan perkembangan teknologi, penghubung antar komputer pun mengalami perubahan serupa. Mulai dari teknologi telegraf yang memanfaatkan gelombang radio hingga teknologi serat optik dan laser menjadi tumpuan perkembangan jaringan komputer. Hingga sekarang, teknologi

32

jaringan komputer bisa menggunakan teknologi kelas (seperti 10BaseT- 100 baseT atau hingga 1 ghz menggunakan Cable UTP CAT6.) hingga menggunakan teknologi seperti laser dan serat optik). Jaringan komputer adalah jaringan kabel, dimana bentuk dan fungsi dari jaringan tersebut menentukan pemilihan jenis kabel, demikian juga sebaliknya, ketersediaan kabel dan harga menjadi pertimbangan utama untuk membangun sebuah network (. Sebenarnya ada banyak topologi jaringan komputer, namun yang sering didengar pada umumnya berkisar pada 3 bentuk (topology) jaringan komputer, antara lain yaitu : (http://id.wikipedia.org)

1.

Topologi Ring

Gambar. 2.11 Topologi Ring


(http://www.scribd.com)

Di dalam topologi Ring semua workstation dan server dihubungkan sehingga terbentuk suatu pola lingkaran atau cincin. Tiap workstation ataupun server akan menerima dan melewatkan informasi dari satu komputer ke komputer lain, bila alamat- alamat yang dimaksud sesuai maka informasi diterima dan bila tidak informasi akan dilewatkan. Kelemahan dari topologi ini adalah setiap node dalam jaringan akan selalu ikut serta mengelola informasi yang dilewatkan dalam jaringan, sehingga bila terdapat gangguan di suatu node maka seluruh jaringan akan terganggu. Keunggulan topologi Ring adalah tidak terjadinya collision atau tabrakan pengiriman data seperti pada topologi Bus, karena hanya satu node dapat mengirimkan data pada suatu saat.

33

2.

Tolpologi Bus

Gambar 2.12 Topologi Bus


(http://www.scribd.com)

Topologi linear bus merupakan topologi yang banyak dipergunakan pada masa penggunaan kabel Coaxial menjamur. Dengan menggunakan T-Connector (dengan terminator 50ohm pada ujung network), maka komputer atau perangkat jaringan lainnya bisa dengan mudah dihubungkan satu sama lain. Kesulitan utama dari penggunaan kabel coaxial adalah sulit untuk mengukur apakah kabel coaxial yang dipergunakan benarbenar matching atau tidak. Karena kalau tidak sungguh-sungguh diukur secara benar akan merusak NIC (network interface card) yang dipergunakan dan kinerja jaringan menjadi terhambat, tidak mencapai kemampuan maksimalnya. Topologi ini juga sering digunakan pada jaringan dengan basis fiber optic (yang kemudian digabungkan dengan topologi star untuk menghubungkan dengan client atau node).

3.

Tolopolgi Star

Gambar 2.13 Tolopogi Start


(http://www.scribd.com)

34

Topologi jaringan ini banyak digunakan di berbagai tempat, karena kemudahan untuk menambah, mengurangi atau mendeteksi kerusakan jaringan yang ada. Selain itu, permasalahan panjang kabel yang harus sesuai (matching) juga tidak menjadi suatu yang penting lagi. Pokoknya asal ada hub (yang masih beres tentunya) maka bisa terhubunglah beberapa komputer dan sumber daya jaringan secara mudah. Dengan berbekal crimptool, kabel UTP (biasanya CAT5e atau yang baru adalah CAT6) dan connector, seseorang dengan mudah membuat sebuah sistem jaringan. Tentu ada beberapa kerugian karena panjang kabel (loss effect) maupun karena hukum konduksi, namun hampir bisa dikatakan semua itu bisa diabaikan. Paparan ketiga topologi diatas hanya sebagai sebuah pengantar. Intinya bahwa sebuah jaringan bisa jadi merupakan kombinasi dari dua atau tiga topologi diatas. Misalnya saja ada yang menyebut tree topology, dimana sebenarnya topologi ini merupakan gabungan atau kombinasi dari ketiga topologi yang ada.

4.

Topologi Tree

Gambar 2.14 Topologi Tree


(http://www.scribd.com)

Tidak Semua Station mempunyai kedudukan yang sama, statiun yang kedudukannya lebih tinggi menguasai semua stasiun di bawahnya, sehingga jaringan sangat tergantung pada stasiun yang berkedudukan lebih tinggi (

Hierachical topology ) dan kedudukan stasiun yang sama, disebut peer topology.

35

5.

Topologi Mesh

Gambar 2.15. Topoogi Mesh


(http://www.scribd.com)

Topologi mesh adalah suatu bentuk hubungan antar perangkat dimana setiap perangkat terhubung secara langsung ke perangkat lainnya yang ada di dalam jaringan. Akibatnya, dalam topologi mesh setiap perangkat dapat berkomunikasi langsung dengan perangkat yang dituju (dedicated links). Dengan demikian maksimal banyaknya koneksi antar perangkat pada jaringan bertopologi mesh ini dapat dihitung yaitu sebanyak n(n-1)/2. Selain itu karena setiap perangkat dapat terhubung dengan perangkat lainnya yang ada di dalam jaringan maka setiap perangkat harus memiliki sebanyak n-1 Port Input/Output (I/O ports). Berdasarkan pemahaman di atas, dapat dicontohkan bahwa apabila sebanyak 5 (lima) komputer akan dihubungkan dalam bentuk topologi mesh maka agar seluruh koneksi antar komputer dapat berfungsi optimal, diperlukan kabel koneksi sebanyak 5(5-1)/2 = 10 kabel koneksi, dan masing-masing komputer harus memiliki port I/O sebanyak 5-1 = 4 port (lihat gambar). Dengan bentuk hubungan seperti itu, topologi mesh memiliki beberapa kelebihan, yaitu:

Hubungan dedicated links menjamin data langsung dikirimkan ke

komputer tujuan tanpa harus melalui komputer lainnya sehingga dapat lebih cepat karena satu link digunakan khusus untuk berkomunikasi dengan komputer yang dituju saja (tidak digunakan secara beramai-ramai/sharing).

36

Memiliki sifat Robust, yaitu Apabila terjadi gangguan pada koneksi

komputer A dengan komputer B karena rusaknya kabel koneksi (links) antara A dan B, maka gangguan tersebut tidak akan mempengaruhi koneksi komputer A dengan komputer lainnya.

Privacy dan security pada topologi mesh lebih terjamin, karena

komunikasi yang terjadi antara dua komputer tidak akan dapat diakses oleh komputer lainnya.

Memudahkan proses identifikasi permasalahan pada saat terjadi

kerusakan koneksi antar komputer..

Meskipun demikian, topologi mesh bukannya tanpa kekurangan. Beberapa kekurangan yang dapat dicatat yaitu: 1. Membutuhkan banyak kabel dan Port I/O. semakin banyak komputer di dalam topologi mesh maka diperlukan semakin banyak kabel links dan port I/O (lihat rumus penghitungan kebutuhan kabel dan Port). 2. Hal tersebut sekaligus juga mengindikasikan bahwa topologi jenis ini membutuhkan biaya yang relatif mahal. 3. Karena setiap komputer harus terkoneksi secara langsung dengan komputer lainnya maka instalasi dan konfigurasi menjadi lebih sulit. 4. Banyaknya kabel yang digunakan juga mengisyaratkan perlunya space yang memungkinkan di dalam ruangan tempat komputer-komputer tersebut berada. Berdasarkan kelebihan dan kekurangannya, topologi mesh biasanya diimplementasikan pada komputer-komputer utama dimana masing-masing komputer utama tersebut membentuk jaringan tersendiri dengan topologi yang berbeda (hybrid network).

6.

Topologi Hybrid : Topologi ini merupakan topologi gabungan dari beberapa topologi yang

ada, yang bisa memadukan kinerja beberapa topologi yang berbeda, baik berbeda sistem maupun berbeda transmisinya.

37

Gambar 2.16 Topologi Hybrid : Star backbone dengan jaringan tiga bus
(http://cangkruk.com)

2.6.2

Model Jaringan Model Jaringan pada umumnya terbagi dalam dua kategori utama yaitu :

Local Area Network ( LAN ) dan Wide Area Network ( WAN ) keduanya dibedakan berdasarkan area komunikasinya. Antara LAN dan WAN ada model Jaringan lain yang disebut Metropolitan Area Network (MAN).

Gambar 2.17 Model Jaringan MAN


(Dony Ariyus & Rum Andri KR, 2008)

38

2.6.2.1 Local Area Network Local Area Network ( LAN ) adalah jaringan computer yang mencakup area local seperti rumah, kantor, atau group dari bangunan. LAN Sekarang lebih banyak menggunakan teknologi berdasar IEEE

802.3 Ethernet Switch ate dengan WIFI, daerah Jangkauan LAN yang tidak terlalu jauh, misalnya saja dalam suatu ruangan atau dalam satu area dengan radius antara 100 s/d 200 meter tergantung dari kabel yang digunakan. Penerapan ini biasanya dibangun untuk perkantoran skala kecil, jika ingin diterapkan diperusahaan besar diterapkan dalam ruang lingkup per departementnya. Kecepatan pada jaringan local relative tinggi, mulai dari 10, 100 sampai dengan 1000 mbps, jika dilihat dari segi kecepatannya ini tidak hanya transfer teks saja yang didukungnya, transfer data berupa grafis, audio dan video pun sangatlah memungkinkan juga. Walaupun sekarang Ethernet switch yang paling banyak di gunakan pada layer fisik dengan menggunakan TCP/IP sebagai protocol, setidaknya masih banyak perangkat lain yang dapat di gunakan untuk membangun LAN. LAN dapat di hubungkan dengan LAN lain dengan menggunakan router dan leased line untuk membangun WAN, selain itu dapat terkoneksi dengan internet dan dapat terhubung dengan LAN lain menggunakan tunnel fdan teknologi VPN.

Gambar 2.18. Topoligi Local Area Network


(Dony Ariyus & Rum Andri KR, 2008)

39

Teknologi yang digunakan untuk LAN menurut Doni ariyus dalam bukunya Komunikasi data adalah sebagai berikut :

Gambar 2.19. Teknologi LAN


(Dony Ariyus & Rum Andri KR, 2008)

Ethernet dan IEEE 802.X Local Area Network Perangkat Jaringan yang paling banyak digunakan dengan standarisasi IEEE 802.3 format datanya dapat dilihat sebagai berikut :
Preamble Destination Address 8 Bytes 6 Bytes Source Address 6 Bytes 6 Bytes 46<=N<=1500 Bytes 4 Bytes Type Info FCS

Ethrenet IEEE 802.3 Header


Preamble SFC Destination Sourc Length DSAF SSAF Ctrl Info FCS Address Address
7 Bytes 1 Byets 6 Bytes 6 bytes 2 byets 1 bytes 1 byets 1 Bytes Variable 4 Bytes

Pada Layer data link digunakan IEEE.802.2 yaitu Logical link Controler (LLC) dimana digunakan pada media Acsess Control (MAC).

2.6.2.2 Metropolitan Area Network Sebuah MAN Bisasanya meliputi Area yang lebih besar dari LAN, Misalnya antar gedung dalam suatu daerah (wilayah seperti propinsi atau negara bagian) dalam Hal ini jaringan menghubungkan beberapa buah jaringan kecil ke dalam lingkungan area yang lebih besar,

40

seperti jaringan beberapa kantor cabang sebuah bank didalam sebuah kota besar yang dihubungkan antara satu dengan lainnya.

Gambar 2.20 Jaringan MAN (http://www.cisco.com)

2.6.2.3 Wide Area Network Wide area network adalah suatu jaringan yang digunakan untuk membuat interkoneksi antar jaringan local yang secara fisik tidak berdekatan satu sama lain, bisa dipisahkan dengan kota, propinsi, atau bahkan melintasi batas geography lintas negara dan benua. Ada beberapa Teknologi Jaringan WAN saat ini yang bisa kita gunakan. Berbeda dengan jaringan LAN, ada perbedaan utama antara keduanya dimana terletak pada jarak yang memisahkan jaringan-jaringan yang terhubung tersebut. WAN menggunakan media transmisi yang berbeda, maupun hardware dan protocol yang berbeda pula dengan LAN. Data transfer rate dalam komunikasi WAN umumnya jauh lebih rendah dibanding LAN. (http://www.sysneta.com)

Perangkat modem yang akan digunakan haruslah bisa mendukung kebutuhan lebar bandwidth dan kebutuhan aplikasi jaringan untuk yang sekarang maupun untuk rencana kedepannya. Banyak aplikasi jaringan yang baru seperti Voice oer IP (VoIP) dan kolaborasi messaging memerlukan aktivasi services khusus dari jaringan. Dengan demikian kita

41

bisa memanfaatkan untuk keperluan layanan seperti keamanan jaringan, qualitas services (QoS), sistem redundansi link dan juga IP multicasting.

Gambar 2.21 : Diagram Jaringan WAN dan Piranti Pendukungya (Http://www.Sysneta.com)

Beberapa protokol komunikasi jaringan yang saat ini berkembang antara lain adalah : (Ahmad yani, 2008)

a.

NeBEUI (NetBios Extended User Interface), menggunakan aturan

penamaan dengan 16 karakter, 15 karakter untuk nama dan 1 karakter untuk type entity, NetBEUI tidak memiliki kemampuan routing, sehingga jaringan NetBEUI bersifat lokal atau tidak menghubungkan dua jaringan NetBEUI.

b.

IPX/SPX (Internet/Squence Packet eXchange ), merupakan

pengembangan dari NetBEUI dengan penambahan kemampuan routing dan remote console c. TCP/IP (Transmission Control?internet Protocol ) menggunakan

aturan penamaan dengan beberapa angka numerik yang dipisahkan dengan titik (dot decimal). TCP/IP merupakan protokol jaringan yang paling banyak digunakan, karena didorong dari kenyataan bahwa internet menggunakan TCP/IP.

42

Perbedaan Mendasar dari jaringan komputer dan komunikasi data adalah sebagai berikut : (Ahmad Yani, 2008 )

1.

Komunikasi data lebih cenderung pada keandalan dan efisiensi sejumlah bit-bit dari titik ke tujuannya.

2.

Jaringan komputer menggunakan tehnik komunikasi data, tetapi lebih mementingkan arti dari tiap bit dalam proses pengiriman hingga diterima ditujuannya.

Berikut adalah cara kerja jaringan :

Network Client ( Access Data on Other system )

Network Server (Allow other system to access Data on your local disk )

Network Protocol : NetBEUI

Network Protocol : NetBEUI

IPX/SPX TCP/IP

IPX/SPX TCP/IP

Network Adafter

Network Adafter

Medium

Gambar 2.22 Cara Kerja Jaringan (Jaringan Komputer : Ahmad Yani, kawan Pustaka 2008 )

2.7

Protocol TCP/IP Transmission Control Protocol/Internet Protocol / TCP/IP adalah standar

komunikasi data yang digunakan oleh komunitas internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Protokol ini

43

tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini. Data tersebut diimplementasikan dalam bentuk perangkat lunak (software) di sistem operasi. Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal 1980an sebagai sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas (WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat independen terhadap mekanisme transport jaringan fisik yang digunakan, sehingga dapat digunakan di mana saja. Protokol ini menggunakan skema pengalamatan yang sederhana yang disebut sebagai alamat IP (IP Address) yang mengizinkan hingga beberapa ratus juta komputer untuk dapat saling berhubungan satu sama lainnya di Internet. Protokol ini juga bersifat routable yang berarti protokol ini cocok untuk menghubungkan sistem-sistem berbeda (seperti Microsoft Windows dan keluarga UNIX) untuk membentuk jaringan yang heterogen. Protokol TCP/IP selalu berevolusi seiring dengan waktu, mengingat semakin banyaknya kebutuhan terhadap jaringan komputer dan Internet. Pengembangan ini dilakukan oleh beberapa badan, seperti halnya Internet Society (ISOC), Internet Architecture Board (IAB), dan Internet Engineering Task Force (IETF). Macam-macam protokol yang berjalan di atas TCP/IP, skema pengalamatan, dan konsep TCP/IP didefinisikan dalam dokumen yang disebut sebagai Request for Comments (RFC) yang dikeluarkan oleh IETF. (http://id.wikipedia.org) 2.7.1. Aristekture TCP/IP Pada dasarnya jika dua komputer akan melakukan pertukaran data/informasi memerlukan sebuah protokol yang bertugas untuk mengatur bagaimana komunikasi antar komputer tersebut. Sekelompok komputer yang terhubung satu sama lain dengan netework Interface (antar-muka jaringan) yang kemudian disebut Comouter Network (jaringan komputer) dapat menggunakan banyak macam protokol, agar dua buah komputer dapat berkomunikasi maka diperlukan protokol yang sama. Protokol berfungsi mirip bahasa manusia, dimana untuk dapat berbicara dan mengerti satu sama lain diperlukan bahasa yang sama. TCP/IP Suite (Transfor Control Protocol/Internet Protocol) merupakan sekelompok protokol yang mengatur komunikasi data komputer dan

44

memungkinkan komputer berbagai vendor jenis dan berbagai serta berbeda sistem operasi untuk berkomunikasi bersama dengan baik. TCP/IP ini dikembangkan pertama kali oleh lembaga riset Departemen Pertahanan Amerika, DARPA ( Defense Advance Research Project Agency) pada akhir 1960-an dengan berlanjut pada keberhasilan ARPANET pada tahun 1972. Pada tahun 1982 DARPA mendanai pembuatan protokol komunikasi yang lebih umum yang kemudian dinamakan TCP/IP. Berikutnya pada tahun 1986 lembaga ilmu pengetahuan nasional Amerika Serikat U.S. National Science Foundation (NSF) mendanai pembuatan jaringan TCP/IP yang dinamai NSFNET, jaringan inilah yang menjadi embrio berkembangnya Internet. Perkembangan pun tidak berhenti begitu saja dan terus berlanjut pada tahun-tahun berikutnya. Hingga akhirnya pada awal tahun 1990-an TCP/IP menjadi protokol yang paling banyak dan luas digunakan. Dengan perkembangan dan fungsi yang sedemikian kemudian TCP/IP digunakan secara luas dalam dunia Internet yang sekarang ini telah kita gunakan bersama. Perkembangan TCP/IP yang cepat dan diterima secara luas tidak hanya dikarenakan rekomendasi DARPA, melainkan fitur-fitur penting yang ada pada TCP/IP, diantaranya: TCP/IP dikembangkan menggunakan standar protokol yang terbuka. Tersedia secara bebas dan dikembangkan tanpa bergantung pada perangkat keras ataupun sistem operasi tertentu. Tidak tergantung pada spesifik perangkat jaringan tertentu. Hal ini memungkinkan TCP/IP untuk mengintegrasikan berbagai macam jaringan. TCP/IP menggunakan pengalamatan yang unik dalam skala global. Dengan demikian memungkinkan komputer dapat saling berhubungan walaupun jaringannya seluas Internet sekarng ini. Standarisasi protokol TCP/IP dilakukan secara konsisten dan tersedia secara luas untuk siapapun tanpa biaya. Hal ini diwujudkan dalam RFC (Request For Comment). TCP/IP terdiri atas sekumpulan protokol yang masing-masing

bertanggung jawab atas bagian-bagian tertentu dalam komunikasi data dan didesain untuk melakukan fungsi-fungsi komunikasi data pada LAN (Local Area Network ) maupun WAN ( Wide Area Network). Dengan prinsip pembagian

45

tersebut TCP/IP menjdai protokol komunikasi data yang fleksibel dan dapat diterapkan dengan mudah di setiap jenis komputer dan antar-muka jaringan, karena sebagian besar isi kumpulan protokol ini tidak spesifik terhadap satu komputer atau peralatan jaraingan tertentu. Agar TCP/IP dapat berjalan pada antar-muka jaringan tertentu, hanya diperlukan perubahan pada bagian protokol yang berhubungan dengan antar-muka jaringan saja. Sekumpulan protokol TCP/IP ini dimodelkan dalam empat lapisan/layer yang bertingkat. Keempat layer tersebut ialah: 1. Aplication Layer merupakan layer program aplikasi yang menggunakan

protokol TCP/IP. Beberapa diantaranya adalah: Telnet, FTP ( File Transfer Protocol ), SMTP (Simple Mail transfort Protocol), SNMP (Simple Network Management Protocol), HTTP (Hypertext Transfer Protocol ). 2. Transfort Layer, berisi protokol yang bertanggung jawab untuk mengadakan komunikasi antar dua komputer. Pada layer ini terdiri atas dua protokol, yaitu: TCP (Tranfort Control Protocol) dan UDP (User Datagram Protocol ). 3. Internet Layer, berfungsi untuk menangani pergerakan paket data dalam jaringan dari komputer pengirim ke komputer tujuan. Protokol yang berada dalam fungsi ini antara lain: IP (Internet Protocol), ICMP (Internet Control Message Protocol), dan IGMP (Internet Group Managament Protocol). 4. Network Layer, merupakan layer paling bawah yang bertanggung jawab

mengirim dan menerima data dari dan ke media fisik. Model sekumpulan protokol TCP/IP tersebut dapat digambarkan sebagaimana terlihat pada gambar 2.23

Gambar. 2.23. Osi Layer Protokol TCP/IP ( W. Richard Steven. 1994: 2)

46

Pada TCP/IP terjadi penyampaian data dari protokol di satu layer ke protokol dilayer lain. Setiap layer memiliki stuktur data yang tidak saling bergantung. Secara konseptual sebuah layer tidak memperhatikan stuktur data yang digunakan oleh layer-layer di atas dan dibawahnya. Pada kenyataannya struktur data didesain untuk kompatibel antar layer dengan tujuan efisiensi transmisi data. Setiap protokol pada masing-masing layer memperlakukan semua informasi yang diterimanya dari protokol lain sebagai data. Setiap protokol pada masing-masing layer akan menambahkan informasi tambahan miliknya pada data, jika protokol tersebut menerima data dari protokol lain di layer atasnya. Tambahan informasi tersebut disebut Header, yang berfungsi sebagai kontrol informasi protokol tersebut. Proses penambahan informasi tersebut dinamakan . encapsulation. Proses tersebut ditunjukkan pada gambar 2.24.

Proses sebaliknya akan terjadi jika sebuah protokol menerima data dari protokol lain pada layer di bawahnya. Jika data tersebut dianggap benar, protokol tersebut akan membuang Header -nya dan meneruskan data tersebut ke protokol lain di layer atasnya.

Gambar 2.24 Pergerakan data dalam layer TCP/IP (Craig Hunt. 1992: 10)

47

2.7.2. Transport Control Protocol (TCP) TCP (Transport Control Protocol) merupakan protokol yang berada pada layer Transfor dari layer TCP/IP. TCP adalah protokol yang bersifat byte stream, connection - oriented dan reliable dalam pengiriman data. TCP menggunakan komunikasi byte stream, yang berarti bahwa data dinyatakan sebagai suatu urutan-urutan byte. Connection oriented berarti sebelum terjadi proses

pertukaran data antar komputer terlebih dahulu harus dibentuk suatu hubungan. Hal ini dapat dianalogikan dengan proses pendialan nomor telepon dan akhirnya terbentuk suatu hubungan. Keandalan TCP dalam megirimkan data didukung oleh mekanisme yang disebut Positive Acknowledgement with Re-transmission (PAR) [Craig Hunt. 1992: 20]. Data yang dikirim dari layer aplikasi akan dipecah-pecah dalam bagian-bagian yang lebih kecil dan diberi nomor urut (Squence number ) sebelum dikirimkan ke layer berikutnya. Unit data yang sudah dipecah-pecah tadi disebut segmen ( Segment ). TCP selalu meminta konfirmasi setiap kali selesai mengirimkan data, apakah data tersebut sampai pada komputer tujuan dan tidak rusak. Jika data berhasil sampai mencapai tujuan, TCP akan mengirimkan data urutan berikutnya. Jika tidak berhasil,maka TCP akan melakukan pengiriman ulang urutan data yang hilang atau rusak tersebut. Dalam kenyataannya TCP menggunakan sebuah Acknowledgement (ACK) sebagai suatu pemberitahuan antara komputer pengirim dan penerima. Format segmen TCP diperlihatkan pada gambar 2.25.

Gambar 2.25 Format TCP ( Steven, W. Richard. 1994: 225)

48

Data yang diterima pada sisi penerima akan disusun berdasarkan nomor urut yang diberikan oleh sisi pengirim. Untuk mengatasi kerusakan data yang diterima, TCP menggunakan sebuah Cheksum untuk memastikan bahwa data tersebut tidak rusak. Model komunikasi dua arah antara komputer sisi kirim dan sisi terima sebelum terjadi proses pengiriman data disebut handshake Tipe handshake yang digunakan TCP adalah karena menggunakan tiga segmen. Tujuan ini adalah untuk pembentukan koneksi, sinkronisasi segmen, dan pemberitahuan besar data yang bisa diterima pada suatu saat antara sisi kirim dan sisi terima. Proses sederhana three-way handshake tersebut dapat ditunjukkan pada gambar 2.26

Gambar 2.26. Three-way Handshake ( Craig Hunt. 1992: 21)

Komputer

memulai

hubungan

dengan

mengirimkan

segmen

sinkronisasi nomor urut (SYN) pada komputer B. Segmentersebut merupakan pemberitahuan pada komputer B bahwa komputer A ingin melakukan sebuah hubungan dan menanyakan nomor urut berapa yang akan digunakan sebagai awal urutan segmen yang akan dikirim. (Nomor urut tersebut digunakan agar data tetap berada pada urutan yang benar). Komputer B memberikan respon pada komputer A dengan sebuah segmen yang memberikan ACK dan SYN. Dengan demikian komputer A akan tahu informasi nomor urut yang digunakan untuk komputer B. Akhirnya, komputer A pun mengirimkan sebuah segmen sebagai balasan dari segmen yang dikirim komputer B, sekaligus melakukan pengiriman

49

data yang sebenarnya pertama kali. Setelah terjadi proses tersebut komputer A mendapati bahwa komputer B siap menerima data dan segera setelah hubungan dipastikan dapat terjadi data pun dikirim sepenuhnya ke komputer B. Pada saat seluruh data telah selesai dikirim, proses three-way handshake untuk mengakhiri hubungan pun terjadi untuk memastikan bahwa tidak ada lagi data yang dikirim.

2.7.3. User Datagram Protocol (UDP) UDP (User Datagram Protocol ) merupakan protokol yang juga berada pada layer transport selain TCP. Protokol ini bersifat Unreliable dalam pengiriman data Connection dan

berarti tidak diperlukannya suatu bentuk berarti pada

hubungan terlebih dahulu untuk mengirimkan data. Unrealible

protokol ini data tidak dijamin akan sampai pada tujuan yang benar dan dalam kondisi yang benar pula. Keandalan pengiriman data pada protokol ini menjadi tanggung jawab dari program aplikasi pada layer di atasnya. Gambar 2.27. menunjukkan format Header UDP.

Gambar 227. Format UDP ( Steven, W. Richard. 1994: 144)

Jika dibandingkan dengan TCP, UDP adalah protokol yang lebih sederhana dikarenakan proses yang ada di dalamnya lebih sedikit. Dengan demikian aplikasi yang memanfaatkan UDP sebagai protokol transport dapat mengirimkan data tanpa melalui proses pembentukan koneksi terlebih dulu. Hal ini pun terjadi pada saat mengakhiri suatu koneksi, sehingga dalam banyak hal proses yang terjadi sangatlah sederhana dibanding jika mengirimkan data melalui protokol TCP. Secara teknis protokol UDP memiliki header yang lebih kecil dibanding protokol TCP seperti terlihat pada format header masing-masing. Bila suatu program aplikasi memanfaatkan protokol UDP untuk mengirimkan informasi, protokol UDP melakukan fungsi

50

multiplexing/demultiplexing seperti yang dilakukan protokol TCP

dengan

menentukan nomor port pengirim ( Source Port ) dan nomor port penerima ( destination Port), kemudian menambahkan sedikit fungsi koreksi kesalahan lalu meneruskan segmen yang terbentuk ke protokol layer Internet. Pada layer internet segmen tersebut ditambahi informasi dalam bentuk datagram IP dan kemudian ditentukan cara terbaik untuk mengantarkan segmen tersebut ke sisi penerima. Jika segmen tersebut tiba pada sisi penerima, protokol UDP menggunakan nomor port informasi IP pengirim dan penerima untuk mengantarkan data dalam segmen ke proses program aplikasi yang sesuai. Beberapa hal yang harus diperhatikan jika suatu program aplikasi akan menggunakan protokol UDP sebagai protokol tansport: - Tidak ada pembentukan koneksi. Protokol UDP hanya mengirim informasi begitu saja tanpa melakukan proses awal sebelumnya. - Tidak ada pengkondisian koneksi. Protokol UDP tidak melakukan penentuan kondisi koneksi yang berupa parameter-parameter seperti buffer kirim dan terima, kontol kemacetan, nomor urutan segmen dan Acknowledgement. - Memiliki header yang kecil. Protokol UDP memiliki 8 byte header dibanding 20 byte header pada TCP. - Tidak ada pengaturan laju pengiriman data. Protokol UDP hanya menekankan kecepatan kirim pada laju program aplikasi dalam menghasilkan data, kemampuan sumber kirim data (berdasarkan CPU, laju pewaktuan, dll) dan Bandwith akses menuju Internet. Jika terjadi kemacetan jaringan sisi penerima tidak perlu menerima seluruh data yang dikirim. Dengan demikian laju penerimaan data dibatasi oleh faktor kemacetan jaringan ang terjadi walaupun pada sisi kirim tidak memperhatikannya. Protokol UDP lebih sering diimplementasikan untuk aplikasi-aplikasi yang mengarah proses real time seperti aplikasi multimedia, dimana rugi-rugi paket data yang kecil lebih ditoleransi daripada nilai delay yang terjadi [Keith W. Ross and Jim Kurose: 1996].

2.7.4. Internet Protocol (IP) IP ( Internet Protocol ) merupakan protokol yang paling penting yang berada pada layer Internet TCP/IP. Semua protokol TCP/IP yang berasal dari

51

layer atasnya mengirimkan data melalui protokol IP ini. Seluruh data harus dilewatkan, diolah oleh protokol IP dan dikirimkan sebagai datagram IP untuk sampai ke sisi penerima. Dalam melakukan pengiriman data, protokol IP ini bersifat unrealible connectionless, dan datagram delivery service. Unrealible berarti protokol IP tidak menjamin datagram yang dikirim pasti sampai ke tujuan. Protokol IP hanya melakukan cara terbaik untuk menyampaikan datagram yang dikirim ke tujuan. Jika pada perjalanan datagram tersebut terjadi hal-hal yang tidak diinginkan (putusnya jalur, kemacetan, atau sisi penerima yang dituju sedang mati), protokol IP hanya memberikan pemberitahuan pada sisi kirim kalau telah terjadi permasalahan pengiriman data ke tujuan melalui protokol ICMP. Connectionless berarti tidak melakukan

pertukaran kontrol informasi (handshake ) untuk membentuk koneksi sebelum mengirimkan data. Datagram delivery service berarti setiap datagram yang dikirim tidak tergantung pada datagram lainnya. Akibatnya jalur yang ditempuh oleh masingmasing datagram IP ke tujuan bisa berbeda satu sama lainnya. Dengan demikian kedatangan datagram pun bisa jadi tidak berurutan. Metode ini dipakai untuk menjamin sampainya datagram ke tujuannya walaupun salah satu jalur menuju ke tujuan mengalami masalah.

Gambar 2.28. Format datagram IP (Steven, W. Richard. 1994: 34)

52

Pada bagian header dari protokol IP seperti terlihat pada gambar 4.1 terdapat bagian pengalamatan sumber kirim dan tujuan masing-masing sebesar 32-bit. Pengalamatan (IP Addressing) adalah bagian yang terpenting dalam jaringan TCP/IP. Alamat inilah yang sering dinamakan sebagai alamat Internet yang harus dimiliki setiap node yang terhubung dalam jaringan Internet. Format IP adsress yang dinyatakan dalam bilangan 32-bit dimana tiap 8 bitnya

dipisahkan oleh tanda titik. Untuk memudahkan distribusinya, IP dibagi dalam kelas-kelas. Pembagian kelas dalam IP diperlihatkan pada gambar 2.29

Gambar 2.29 Format pembagian kelas IP (Steven, W. Richard. 1994: 8)

Tabel 1. Pembagian IP dalam format bilangan desimal (Steven, W. Richard. 1994: 8)

Pembagian tersebut di atas didasarkan pada dua hal, yakni: Network ID dan Host ID dari suatu IP Address IP . adalah bagian dari IP yang digunakan untuk menunjukkan jaringan tempat komputer itu berada. HostT ID adalah bagian dari IP Address yang digunakan untuk menunjukkan Host /komputer itu sendiri. Pada satu jaringan, ini harus unik (tidak boleh ada yang sama). Format

53

IP Address yang dinyatakan dalam bentuk biner kemudian ditulis sebagai 4 bilangan desimal yang masing-masing dipisahkan tanda titik. Format seperti ini disebut dotted-decimal notation Setiap bilangan desimal tersebut merupakan nilai dari 8 bit IP Address seperti terlihat pada gambar 2.30

Gambar 2.30 Notasi desimal bertitik dari IP Address

2.7.5. Internet Control Message Protocol (ICMP) ICMP (Internet control message protocol) merupakan bagian dari layer IP, dimana protokol ini bertugas mengirimkan pesan-pesan kesalahan atau

kondisi lain yang memerlukan perhatian khusus. Pesan ICMP ini akan dikirim jika terjadi masalah layer IP dan layer atasnya (TCP atau UDP). Gambar 2.31 menunjukkan format dari sebuah pesan ICMP.

Gambar 2.31. Format Pesan ICMP (Steven, W. Richard. 1994: 70)

Pesan ICMP tersebut ditentukan dari kombinasi tipe dan kodenya. Pesan kesalahan yang mungkin dikirimkan dengan ICMP diantaranya adalah: . Destination unreachable Pesan ini dikirim oleh Router jika pengiriman paket data mengalami kegagalan akibat masalah putusnya jalur, baik secara fisik maupun logik.

54

. Time Exceded Pesan ini dikirim oleh

Router jika batas waktu (life time

)sebuah paket data dalam jaringan sudah habis. Hal ini dapat terjadi jika sampai batas waktu yang ditentukan paket data tersebut belum dapat mencapai alamat tujuannya. . Parameter Problem Pesan ini dikirim jika terdapat kesalahan parameter pada header datagram IP. . Source Quench Pesan ICMP ini dikirim jika router atau tujuan mengalami kemacetan/kongesti proses dan sebagai respon balik atas pesan ini pada sis pengirim paket data harus memperlambat pengiriman paket datanya. . Redirect Pesan yang dikirim jika pada router merasa pengirim melewatkan data pada router yang salah, sehingga harusnya dikirimkan melalui lain. . Echo dan echo reply . Merupakan pesan yang menyediakan mekanisme pengujian keaftifan alamat pengirim dan alamat tujuan. . Time stamp dan Time stamp reply Menyediakan mekanisme untuk mengetahui informasi waktu yang diperlukan sistem tujuan untuk memproses suatu paket data. . Address mask request dan address mask reply Untuk mengetahui pengalamatan yang harus digunakan oleh host /komputer dalam suatu alamat jaringan. IP tidak didesain dengan keandalan pengiriman data yang mutlak. Tujuan dari ICMP ini adalah untuk memberikan pesan balik terhadap permasalahan yang terjadi dalam jaringan komunikasi IP, bukan untuk membuat protokol IP menjadi andal (reliable ) [RFC 792]. Pesan ICMP sendiri dikirim dalam beberapa situasi, misal: jika sebuah datagram tidak dapat mencapai tujuannya, jika gateway /router tidak mampu meneruskan datagram dikarenakan penuhnya kapasitas buffer yang ada, dan jika tidak dapat menemukan alamat tujuan.

2.7.6. Routing pada IP Routing pada IP adalah suatu proses penentuan jalur untuk melewatkan datagram IP dari alamat pengirim ke alamat tujuan. Alat yang berfungsi melakukan routing IP disebut Router. Proses routing dilakukan pada setiap

hop. Hop adalah perjalanan paket data dari satu router atau host ke router

55

Gambar 2.3.2 paket data dalam jaringan IP (Craig Hunt. 1992: 15)

Pada gambar 2,32. diperlihatkan proses routing paket data dari host /komputer A ke host /komputer C, dimana paket data dari komputer A tersebut melalui dua route/gateway sebelum sampai di komputer C. Routing paket data berkerja berdasarkan informasi routing paada setiap Host atau router Sebagai contoh pada gambar 2.32, sebelum komputer A mengirimkan data terlebih dahulu melihat informasi tabel routing yang ada padanya, kemudian diketahui untuk

mengirimkan data ke komputer C harus lewat router R1. Pada saat data sampai di router R1 , data tersebut diperiksa alamat tujuannya dan dikonfirmasikan dengan informasi tabel -nya. Oleh router R1 data tersebut diteruskan melalui router R2 sampai akhirnya data tadi ditujukan ke komputer C oleh router R2. Proses routing ini menjadi sangat penting sekali dalam jaringan Internet yang menghubungkan berbagai jenis jaringan LAN, MAN maupun WAN. Pada TCP/IP terdapat pula protokol Routing yang bertugas melakukan proses routing tersebut

pemilihan jalur data dari pengirim ke tujuannya. Protokol diantaranya: Routing Gateway Protocol (RIP), (OSPF), dan

Open shortest Path Protocol

Border Gateway Protokol (BGP). Protokol-protokol Routing

tersebut dimasukkan dalam dua kategori yang berbeda. RIP dan OSPF masuk dalam ketegori Interior Gateway Protokol (IGP), sedang BGP berada dalam kategori Exterior Gateway Protocol (EGP). IGP adalah protokol routing yang

56

menangani routing jaringan Internet pada sebuah autonomous system sementara EGP menangani routing antar autonomous system (AS) secara umum didefinisikan sebagai jaringan internet yang berada dalam satu kendali administrasi dan teknis. Internet merupakan kumpulan dari ribuan autonomous system.

2.8

Keamanan Jaringan Keamanan jaringan komputer sendiri sering dipandang sebagai hasil dari

beberapa faktor. Faktor ini bervariasi tergantung pada bahan dasar, tetapi secara normal setidaknya beberapa hal dibawah ini diikutsertakan :
(http://robby.c.staff.gunadarma.ac.id)

Availability (ketersediaan). Confidentiality (kerahasiaan). Integrity (integritas). Keamanan klasik penting ini tidak cukup untuk mencakup semua aspek dari

keamanan

jaringan

komputer

pada

masa

sekarang.

Hal-hal

tersebut

dapat

dikombinasikan lagi oleh beberapa hal penting lainnya yang dapat membuat keamanan jaringan komputer dapat ditingkatkan lagi dengan mengikut sertakan hal dibawah ini: Nonrepudiation. Authenticity. Possession. Utility . Availability (ketersediaan). Ketersediaan data atau layanan dapat dengan mudah dipantau oleh pengguna dari sebuah layanan. Yang dimana ketidaktersediaan dari sebuah layanan (service) dapat menjadi sebuah halangan untuk maju bagi sebuah perusahaan dan bahkan dapat berdampak lebih buruk lagi, yaitu penghentian proses produksi. Sehingga untuk semua aktifitas jaringan, ketersediaan data sangat penting untuk sebuah system agar dapat terus berjalan dengan benar.

57

Confidentiality (kerahasiaan). Ada beberapa jenis informasi yang tersedia didalam sebuah jaringan komputer. Setiap data yang berbeda pasti mempunyai grup pengguna yang berbeda pula dan data dapat dikelompokkan sehingga beberapa pembatasan kepada pengunaan data harus ditentukan. Pada umumnya data yang terdapat didalam suatu perusahaan bersifat rahasia dan tidak boleh diketahui oleh pihak ketiga yang bertujuan untuk menjaga rahasia perusahaan dan strategi perusahaan. Backdoor, sebagai contoh, melanggar kebijakan perusahaan dikarenakan menyediakan akses yang tidak diinginkan kedalam jaringan komputer perusahaan. Kerahasiaan dapat ditingkatkan dan didalam beberapa kasus pengengkripsian data ate menggunakan VPN. Topik ini tidak akan, tetapi bagaimanapun juga, akan disertakan dalam tulisan ini. Kontrol akses adalah cara yang lazim digunakan untuk membatasi akses kedalam sebuah jaringan komputer. Sebuah cara yang mudah tetapi mampu untuk membatasi akses adalah dengan menggunakan kombinasi dari usernamedan-password untuk proses otentifikasi pengguna dan memberikan akses kepada pengguna (user) yang telah dikenali. Didalam beberapa lingkungan kerja keamanan jaringan komputer, ini dibahas dan dipisahkan dalam konteks otentifikasi.

Integrity (integritas). Jaringan komputer yang dapat diandalkan juga berdasar pada fakta bahwa data yang tersedia apa yang sudah seharusnya. Jaringan komputer mau tidak mau harus terlindungi dari serangan (attacks) yang dapat merubah dataselama dalam proses persinggahan (transmit). Man-in-the-Middle merupakan jenis serangan yang dapat merubah integritas dari sebuah data yang mana penyerang (attacker) dapat membajak "session" atau memanipulasi data yang terkirim. Didalam jaringan komputer yang aman, partisipan dari sebuah "transaksi" data harus yakin bahwa orang yang terlibat dalam komunikasi data dapat diandalkan dan dapat dipercaya. Keamanan dari sebuah komunikasi data sangat diperlukan pada sebuah tingkatan yang dipastikan data tidak berubah selama proses pengiriman dan penerimaan pada saat komunikasi data. Ini tidak harus selalu berarti bahwa "traffic" perlu di enkripsi, tapi juga tidak tertutup kemungkinan serangan "Man-in-the-Middle" dapat terjadi.

58

Nonrepudiation. Setiap tindakan yang dilakukan dalam sebuah system yang aman telah diawasi (logged), ini dapat berarti penggunaan alat (tool) untuk melakukan pengecekan system berfungsi sebagaimana seharusnya. "Log" juga tidak dapat dipisahkan dari bagian keamanan "system" yang dimana bila terjadi sebuah penyusupan atau serangan lain akan sangat membantu proses investigasi."Log" dan catatan waktu, sebagai contoh, bagian penting dari bukti di pengadilan jika cracker tertangkap dan diadili. Untuk alasan ini maka "nonrepudiation" dianggap sebagai sebuah faktor penting didalam keamanan jaringan komputer yang berkompeten.

ITU-T telah mendefinisikan "nonrepudition" sebagai berikut : 1. Kemampuan untuk mencegah seorang pengirim untuk menyangkal kemudian bahwa dia telah mengirim pesan atau melakukan sebuah tindakan. 2. Proteksi dari penyangkalan oleh satu satu dari entitas yang terlibat didalam sebuah komunikasi yang turut serta secara keseluruhan atau sebagian dari komunikasi yang terjadi. Jaringan komputer dan system data yang lain dibangun dari beberapa komponen yang berbeda yang dimana masing-masing mempunyai karakteristik spesial untuk keamanan. Sebuah jaringan komputer yang aman perlu masalah keamanan yang harus diperhatikan disemua sektor, dimana mata rantai keamanan yang komplit sangat lemah, selemah titik terlemahnya. Pengguna (user) merupakan bagian penting dari sebuah rantai. "Social engineering" merupakan cara yang efisien untuk mencari celah (vulnerabilities) pada suatu sistem, dan kebanyakan orang menggunakan "password" yang mudah ditebak. Ini juga berarti meninggalkan "workstation" tidak dalam keadaan terkunci pada saat makan siang atau yang lainnya. Sistem operasi (operating system : Windows, Unix, Linux, MacOS) terdapat dimana-mana, komputer mempunyai sistem operasi yang berbeda-beda antara satu dengan yang lainnya (tergantung selera), dan bahkan router juga dijalankan oleh oleh sistem operasi. Setiap sistem operasi mempunyai gaya dan karakteristik sendiri yang membedakannya dengan sistem operasi yang lainnya, dan beberapa bahkan digunakan untuk kepentingan "server". Beberapa sistem operasi juga mempunyai masalah yang dapat digunakan sehingga menyebabkan sistem operasi tersebut berhenti merespon pengguna.

59

Layanan pada "server" memainkan peranan penting dalam keamanan. Developer perangkat lunak mengumumkan celah keamanan pada perangkat lunak dengan cepat. Alasan yang digunakan adalah celah ini kemungkinan akan digunakan oleh pihak yang tidak bertanggung jawab untuk menyusupi sebuah sistem ataupun setiap pengguna komputer. Pengelola atau pengguna server dan workstation harus melakukan pengecekan untuk "update" masalah keamanan secara regular. Perangkat keras mungkin sedikit susah dipahami sebagai sesuatu yang mempunyai potensi untuk mempunyai masalah keamanan. Yang sesungguhnya adalah sangat berbeda dengan apa yang kita pikirkan, apabila perangkat keras terletak di sebuah lokasi yang tidak aman maka terdapat resiko untuk pemasangan perangkat keras yang tidak diinginkan kedalam jaringan komputer dan ini dapat membuat penyusupan menjadi mudah. Juga, bila sebuah perangkat keras jaringan computer dirubah setting-nya ke konfigurasi default oleh orang luar. Pemilihan jenis metode transmisi juga mempunyai peranan penting didalam masalah keamanan. Setiap informasi rahasia tidak boleh di transmisikan secara wireless, setidaknya tidak tanpa menggunakan enkripsi yang bagus, sehingga setiap orang dapat menyadap komunikasi "wireless" yang terkirim. Sangat dianjurkan untuk menggunakan firewall untuk membatasi akses kedalam jaringan komputer ke tingkat yang dibutuhkan. Firewall juga dapat menjadi titik terlemah yang mana dapat membuat perasaan aman. Firewall harus mengizinkan arus data kedalam sebuah jaringan komputer jika terdapat juga arus data keluar dari jaringan komputer tersebut melalui firewall dan ini dapat menjadi titik terlemah. Fakta penting lainnya bahwa tidak semua serangan dilancarkan melalui firewall. (http://belajarit.um.ac.id)

2.8.1 Firewall Firewall merupakan perangkat keamanan jaringan. Firewall dapat berupa software atau hardware yang di rancang untuk menfilter informasi yang diperbolehkan atau yang tidak diperbolehkan antara jaringan privat dengan jaringan publik. www.robby.c.staff.gunadarma.ac.id

Alasan menggunakan firewall antara lain: Control (mengendalikan) :

60

Saat jaringan pribadi kita terhubung dengan jaringan publik (internet), kita dapat menfilter track yang masuk maupun yang keluar dengan mengizinkan tipe track tertentu dan memblok tipe yang lain.

Secure (mengamankan) Firewall berfungsi memblok usaha penyerangan serta akses tidak sah yang datang dari luar.

Prevent (mencegah) Kadang software yang bug atau mesin yang tidak terkonfgurasi dengan baik akan mengeluarkan sembarang paket keluar. Untuk mengantisipasinya, kita dapat meng- instruksikan firewall agar memberitakan berbagai hal abnormal yang terjadi pada jaringan.

Iptables Iptables atau NetFilter adalah software Linux yang

mengimplementasikan sebuah frame-work untuk firewall yang bersifat statefull. Iptables juga memiliki future Network Address Translation (NAT). NetFlter hanya bekerja pada kernel versi 2.4 atau 2.6 dan tidak dapat bekerja pada kernel yang lebih rendah dari 2.4. NetFlter membuat aturan-aturan apa yang dilakukan tentang paket-paket network yang lewat. Aturan tersebut bisa meneruskannya, menolaknya, dll. Pada iptables di kenal istilah chain yaitu tempat terjadi proses pem_lteran (pada Gambar 15 berwarna hijau). Macam-macam chain : PREROUTING, titik dimana kita bisa memanipulasi paket network sebelum dia memasuki keputusan routing, apakah ia akan masuk ke dalam Linux kita atau Cuma sekedar 'lewat'.

INPUT, titik dimana bisa melakukan pemeriksaan terhadap paket network yang akan Masukke dalam Linux.

OUTPUT, titik dimana kita melakukan pemeriksaan terhadap paket network yang dihasilkan oleh Linux kita keluar sebelum routing.

61

FORWARD, titik dimana saat melakukan pemeriksaan terhadap paket network yang cuma numpang lewat Linux kita.

POSTROUTING, titik dimana kita bisa melakukan manipulasi terhadap paket yang akan keluar dari Linux kita.

Masing-masing chain berisi daftar rules. Ketika sebuah paket dikirim ke suatu chain, paket ini dibandingkan dengan masing-masing rule di dalam chain dalam urutan atas ke bawah. rule bisa dalam bentuk user-de_ned chain atau salah satu dari built-in target:

ACCEPT, Target ini menyebabkan iptables menerima paket. Paket yang diterima dari chain INPUT diizinkan lewat dan diterima oleh host lokal, sedangkan paket yang diterima dari chain OUTPUT akan diizinkan meninggalkan host, dan paket yang diterima dari chain FORWARD akan diizinkan untuk di-route ke host.

DROP, Target ini menyebabkan iptables mendrop paket tanpa proses yang lebih lanjut. Paket hilang tanpa ada indikasi yang diberikan ke host pengirim bahwa paket ini telah didrop. Yang tampak dari sender biasanya adalah communication timed-out.

MASQUERADING, IPMASQ adalah algoritme perubahan source-NAT suatu paket data tanpa menye- butkan asal paket yang sebenarnya. Dengan IPMASQ administrator tidak perlu memasukkan ke daftar tabel routing ketika suatu alamat IP lokal baru ingin men-gakses internet lewat gateway IP live. Pada iptables juga dikenal adanya table yaitu tempat rule-rule/aturan-aturan yang kita buat disimpan.

Ada 3 buah table, secara general dapat kita defnisikan: Table Filter, adalah tempat rule-rule yang berkaitan dengan boleh/tidaknya suatu paket network melewati sebuah CHAIN di atas. dalam table ini terdapat Chain INPUT, OUTPUT dan FORWARD

62

- Table nat, adalah singkatan dari Network Address Translation, yaitu table tempat rule-rule yang berkaitan dengan manipulasi suatu paket network ketika melewati CHAIN PREROUTING, POSTROUTING, dan OUTPUT. - Table mangle, adalah tempat rule-rule yang berkaitan dengan manipulasi suatu paket network untuk keperluan advance, seperti QOS (quality of service), packet marking, dll. dalam table ini terdapat semua Chain diatas.

Dua pendekatan setup firewall ; Di mailing list sering ada yang bertanya: "Port apa saja sih yang harus kita TUTUP?" Ini adalah pendekatan 'negative list', dimana secara DEFAULT semua port kita BUKA, baru kemudian satu per satu kita TUTUP port yang diinginkan.

Pendekatan kedua adalah: 'positive list', yaitu dimana secara DEFAULT semua port di TUTUP, dan baru kemudian satu per satu kita BUKA port yang diinginkan. Mana dari kedua pendekatan itu yang sebaiknya kita pakai? Berikut ini adalah kelebihan dan kekurangan masing-masing. - Negative List: Mudah disetup ( Beresiko lupa menutup port) - Positive List: Sangat secure, sebab semua port tertutup (Relatif lebih sulit disetup)

2.9.

Transmisi Data Transmisi Data dibagi menjadi dua yaitu : Transmisi Analog dan Transmisi

Digital. Sinyal Analog disebut juga dengan Broadbrand ; merupakan gelombanggelombang elektronik yang bervariasi dan secara continue ditransmisikan melalui beragam media tergantung frequensinya. Sinyal Analog bisa di ubah ke bentuk sinyal digital dengan dimodulasi terlebih dahulu. (Dony Ariyus & Rum Andri KR, 2008)

63

Gambar 2.29 Sinyal Analog


(Dony Ariyus & Rum Andri KR, 2008)

Sinyal Digital juga disebut dengan Baseband , memuat denyut voltase yang ditransmisikan melalui media kawat.

Gambar 2.30 Sinyal Digital


(Dony Ariyus & Rum Andri KR, 2008)

Perbedaan antara dua type sinyal ini antara lain :

Analog : Dirancang untuk Suara ( voice ) Tidak Efesien untuk data Banyak Kesalahan Noise dan rentan kesalahan (Error) Kecepatan relative rendah Overloading Tinggi Setiap sinyal analaog bisa di konversi ke bentuk Digital. Digital : Dirancang untuk data dan suara Informasi Dicrete Level Kecepatan t inggi Overhead rendah, Setiap

sinyal digital dapat di konversi ke analog. (Dony Ariyus & Rum Andri KR, 2008). Sinyal analog merupakan sinyal untuk menampilkan data analog. Sinyal analog berupa berbagai macam gelombang elektromagnetik yang langsung, terus menerus dan disebarkan melalui media transmisi. Data analog merupakan data yang diimplikasikan melelui ukuran fisik serta memeiliki nilai berulang secara terus-menerus dalam beberapa intereval. Biasanya data analog menempati spectrum frequency yang terbtas. Contoh

64

data analog adalah data suara, audio dan video. Suara percakapan manusia ditemukan memiliki frequency berkisar antara 100 hz-khz dan rentang dinamis sekitar 25 db. Sinyal digital merupakan sinyal untuk menampilkan data digital. Data digital merupakan data yang memiliki deretan nilai yang berbeda dan memiliki cirri tersendiri. Contoh data Digital adalah teks, bilangan bulat dan karakter-karakter lain. Terdapat beberapa permasalahan pada data digital. Bahwa data dalam bentuk karakter-karakter yang dapat di pahami menusia tidak dapat langsung ditransmisikan dengan mudah dalam system komunikasi. Data tersebut harus ditranmisikan dalam bentuk binner terlebih dahulu. Konsep dan Istilah Data ditransmisikan melalui Tranmitter ( Pemancar ) dan Reciver (Penerima) dengan melalui medium tranmisi. Media transmisi diklasifikasikan sebagai berikut : Media terpadu (Guided Media ): Gelombang-gelombang dipandu melewati jalur fisik. Contoh: twisted pair, kabel koaksial dan serat optic. Media Tak terpadu ( un-guided media ) menyediakan suatu peralatan untuk mentransmisikan gelombang elektromagnetik tetapi tidak memandunya. Contoh : penyebaran melalui udara, ruang hampa udara dan air laut. Direck link : menyatakan arah transmisi antara dua perangkat dimana sinyal disebarkan langsung dari transmitter ke pesawat penerima tanpa perangkat perantara (amplifier atau repeater yang dipakai untuk meningkatkan sinyal) Gambar 2.32 menunjukan medium transmisi point to point untuk direct link antara dua perangkat. Gamabar 2.33 menunjukan konfigurasi multipoint dimana terdapat lebih dari dua perangkat pada medium yang sama.

Gambar 2.31 Konfigurasi Transmisi Point-to point untuk direct link


(Dony Ariyus & Rum Andri KR, 2008)

65

Gambar 2.32 Konfigurasi Transmisi Multipoint


(Dony Ariyus & Rum Andri KR, 2008)

Definisi transmisi ( menurut definisi ANSI ) : Simplex, Sinyal yang ditrasnmisikan dalam satu arah saja, stasiun yang satau bertindak sebagai pengirim dan yang lainnya sebagai penerima. Half Duplex kedua stasiun dapat melakukan transmisi tetapi hanya sekali dalam satu waktu. Full Duplex Kedua stasiun dapat melakukan trasmisi secara simultan, medium membawa dalam dua arah pada waktu yang sama.

Bandwith : D(Dony Ariyus & Rum Andri KR, 2008)a Bandwith adalah luas atau lebar cakupan frequency yang di gunkaan oleh sinyal dalam medium transmisi. Dalam kerangka ini bandwith dapat diartikan sebagai perbedaan antara komponen sinyal frequency tinggi dan sinyal frequency rendah . Frequency di ukur dalam satuan hertz, sinyal suara tipikal mempunyai bandwith sekitar 3 khz, analog tv broadcast mempunyai bandwith sekitar 6 mhz. Bandwith diartikan juga sebagai takaran jarak frequency, dalam bahasa mudahnya adalah sebuah takaran lalu lintas data yang masuk dan keluar, dalam dunia hosting kita di berikan jatah bandwith. Habisnya bandwith ditentukan oleh seberapa banyak kita mendownload dan meng upload, makin banyak anada melakukan aktivitas upload ditambah makin banyaknya

66

pengunjung yang mengakses jaringan maka makin berkurang jatah bandwith yang di berikan. Alokasi atau reservasi bandwith adalah sebuah proses menentukan jatah bandwith kepada pemakai dan aplikasi dalam sebuah jaringan termasuk di dalamnya menentukan prioritas terhadap berbagai jenias aliran data berdasarkan seberapa penting atau krusial dan delay sensitive aliran data tersebut. Hal ini memungkinkan penggunaan bandwith yang tersedia secara efisien dan apabila sewaktu-waktu jaringan menjadi lambat, aliran data yang memiliki prioritas yang lebih rendah dapat dihentikan , sehingga aplikasi yang penting dapat tetap berjalan dengan lancar. Besarnya saluran atau bandwith akan berdampak pada kecepatan transmisi. Data dalam jumlah besar akan menempuh saluran yang memiliki bandwith kecil lebih lama dibandingkan melewati saluran yang memiliki bandwith yang besar. Kecepatan transmisi tersebut sangat di butuhkan untuk aplikasi computer yangmemerlukan jaringan terutama aplikasi real time, seperti video conference, penggunaan bandwith untuk LAN bergantung pada tipe alat atau medium yang digunakan , umumnya semakin tinggi bandwith yang ditawarkan oleh sebuah alat atau medium, semakin tinggi pula nilai jualnya. Sedangkan penggunaan bandwith untuk WAN bergantung kapasitas yang di tawarkan dari pihak ISP, perusahaan harus membeli bandwith diinginkan, semakin dikembangkan tinggi dari ISP, dan semalin tinggi bandwith yang Sebuah teknologi jaringan baru

pula harganya.

dan infrastruktur

jarinagan yang ada di perbaharui, palikasi yang

digunakan umumnya juga akan mengalami peningkatan dalam hal komsumsi bandwith. Video Streaming dan dan Voice Over IP ( VOIP ) adalah beberapa contoh penggunaan teknologi baru yang turut mengkomsmsi Bandwith dalam jumlah besar. Bandwith sebenarnya adalah besaran yang menunjukan seberapa banyak data yang dapat dilewatkan dalam koneksi melalui sebuah network. lebar pita atau kapasitas saluran informasi, kemampuan maksimum dari suatu alat untuk menyalurkan informasi informasi dalam satuan waktu detik, dikenal dengan perbedaan ate interval , antara batas teratas dan terbawah dari suatu frequency gelombang transmisi dalam suatu kanal komunikasi. Satuan yang di gunakan Hertz untuk sircuit analog dan detik dalam suatu satuan digital. Jalur lebar analog diukur dalam unit hertz (Hz) atau kiraan second, jalur lebar digital pula merujuk kepada jumlah ate volume data yang di lewatkan melalui satu satuan komunikasi yang diukur dalam unit bit/second (Bps) tanpa melibatkan gangguan. Istilah lebar jalur (Bandwith ) sepatutnya tidak di kelirukan dengan istilah

67

lebar jalur (bandwith) sepatutnya tidak di kelirukan dengan istilah jalur (band), seperti pada telephone tanpa kabel, contohnya beroperasi pada jalur 800 mhz, lebar jalur adalah ruang yang di gunakan pada jalur tersebut. Bandwith seperti diunagkapkan diatas adalah kemampuan maksimum dari pipa untuk mengalirkan data dalam waktu satu detik. Sedankan kecepatan adalah jarak yang ditempuh dari suatu satuan waktu detik, sedangkan kecepatan adalah jarak yang di tempuh dari suatu satuan waktu, misalnya dalam satu detik server anda terhubug melalui kabel telephone anda menghubungkan terhubung dengan modem ke internet service provider (ISP) dengan bandwith 56 kbps. Semakin lebar bandwith yang ada tentu ada yang dilewatkan akan semakin besar . Saluran ini dibagi menjadi dua, Narrowband (jalur sempit) dan wideband (jalur). ( Sumber : www.speedtest.net atau bandwithplace.com Wikipedia.com, www.total.or.id. Untuk mengirim informasi, system komunikasi harus menggunakan spectrum elektromagnetik dalam jumlah atau range tertentu, sebagai contoh music menggunakan range frequency dari 0 sampai 20.000 siklus perdetik ( Cycle per second ) ate juga disebut dengan hertz (Hz) yang memiliki besar bandwith 20 khz, konsekuensinya, untuk mengirim keseluruhan sinyal music, system komunikasi harus mengalokasikan bandwith paling tidak 20 khz.

Gambar 2.33 Bandwith


(Dony Ariyus & Rum Andri KR, 2008)

Secara definitive, bandwith merupakan kapasitas total ( volume dan kecepatan ) sebuah dawai ate total frekuensi yang tersedia pada pembawa transmisi data. Bandwith dapat di analogikan sebuah pipa air. Pipa 5 inci mampu mengalirkan air lebih banyak dibandingkan pipa 2 inci.

68

Tabel 2 Spektrum Frequency


(Dony Ariyus & Rum Andri KR, 2008)

2.9.1. Standar Komunikasi Data. Semua komunikasi data, khusunya komunikasi data pada tingkat internasional, selalu mengalamai masalah karena penggunaan standar yang berbeda antara negara satu dengan negara lainnnya. Pada awalnya standar

ditentukan oleh pabrik pembuat perangkat komunikasi khususnya mainframe atau host komputer, tetapi hal ini menyebabkan pengguna bergantung pada pabrik untuk peralatan komunikasi dan komputasinya. Sekarang ini hampir semua aspek komunikasi data di tangani oleh standar internasional yang berdasarkan rekomendasi dari ITU-T, yang dikenal sebagai CCITT ( International Telegraph adn Telephone Consultative Commite ) untuk komunikasi data yang meliputi jaringan telephone yang dinyatakan dalam seri V, dan termasuk spsesifikasi untuk modem anatarmuka, peralatan test dan kualitas jalur. Rekomendasi ITU-T dibuat oleh beragam kelompok studi dan di publikasikan secara berkala dalam bentuk buku. Rekomendasi ITU T dipecah ke dalam beberapa seri.

Rekomendasi ITU-T dapat dilihat pada tabel dibawah ini :

69

Tabel 3 Standar Komunikasi Data


(Dony Ariyus & Rum Andri KR, 2008)

VI V2 V3 V4 V5 V6 V42 V42bis V50 V51 V53 V54 V55 V56 V57 V10

V11

V13 V15 V16 V19 V20 V21 V22 V23 V24 V25

Ekivalen antara simbol dalam notasi binner dengan kondisi signifikan sandi dua kondisi Arus daya dari pengiriman data melewati jalur Telephone Alfavet no.5 untuk data dan pengiriman pesan Struktur umum dari isyarat untuk IA5 dan pengiriman pesan lewat jaringan telephone umum Standarisasi kecepatan pengisyaratan data untuk pengiriman sinkron pada pstn Standarisasi kecepatan pengisyaratan data untuk pengiriman sinkron pada leased line telephone-type Standarisasi modem yang menggunakan teknih konversi tak sinkron ke sinkron untuk pemeriksaan kesalahan. Spesifikasi kompresi data yan digunakan dengan V42 Batas standar untuk kualitas pengiriman data Organisasi perwatan telephone type circuit yang digunakan untuk pengiriman data Batas untuk perawatan telephone type circuit yang digunakan untuk pengiriman data Peranti untuk pengujian perulangan (loop test) pada modem Spesifikasi untuk perangkat pengukur derau influsif pada telephone type circuits Test komparatif untuk modem yang digunakan dalam telephone type circuit Kumpulan Test data komprehensif untuk pengisyaratan data pada pada kecepatan tinggi. Karakteristik electris dari unbalanced double current interchange circuit untuk pemakaian umum dengan perangkat IC dalam komunikasi data Karakteristik electris dari unbalanced double current interchange circuit untuk pemakaian umum dengan perangkat IC dalam komunikasi data Simulator Aswer Back Unit Penggunaan Kopling ekustik untuk pengiriman data Modem Pengiriman data medis Analog Modem Untuk Pengiriman Pararel Modem Untuk Pengiriman Pararel standar untuk pemakaian secara umum didalam PSTN Modem 200 baud standar untuk di gunakan dalam pstn Stadraisasi kecepatan pengisyaratan data sinkron pada leased telephone circuit Modem 600/1200 baud standar untuk di guanakan dalam pstn Daftar Definisi circuit pemindah (interchange circuit ) antara DTE dan DCE Panggilan dan jawan secara otomatis dalam pstn

70

Lanjutan Tabel.3 V25bis V26 V27 V27bis V27ter V28 V29 V30 V31 V32 V33 V35 V36 V37 V40 V41 Modem 4800 baud dengan equalizer otomatis terstandar untuk di gunakan dalam leased line circuit Modem 2400 baud standar untuk di gunakan dalam pstn Modem untuk kecepatan pengisyaratan data sampai 4800 bit/detik lewat leased line circuit Modem 4800 baud dengan equalizer otomatis terstandar untuk di gunakan dalam leased line circuit Modem 4800/2400 baud standar untuk di guanakan dalam pstn Karakteristik elektris untuk unbalanced double current circuit Modem 9600 baud untuk digunakan dalam leased line circuit Sistem pengiriman data pararel untuk di gunakan secara umum dalam pstn Karakteristik elektris untuk single current interchange circuit yang di kendalikan oleh contact closure Modem Pembatal gema 9600 baud untuk digunakan pada untaian dua kawat Modem 14400 baud untuk di gunakan pada untaian empat kawat yang menggunakan modulasi trellis Pengiriman data pada kecepatan 48 kbit/detik dengan menggunakan arangkaian dengan frequency 60 s/d 108 khz. Modem untuk pengiriman data sinkron menggunakan frequency 60 s/d 108 khz Pengiriman data data sinkron pada kecepatan pengisyaratan data sampai 72 kbit/detik menggunakan frequency 60 s/d 108 khz Petunjuk kesalahan menggunakan perangkat elektromekanik Sistem pengendali kesalahan sandi bebas ( Pemeriksanaan kesalahan 16 bit CRC )

2.9.2

Keamanan Komunikasi Data Masalah Keamanan merupakan salah satu aspek terpenting dari sebuah

sistem komunikasi. Apalagi pada komunikasi data dan informasi. Pada era komputerisasi sekarang ini dibutuhkan sistem keamanan yang bisa melindungi data dan informasi. Hanya sedikit hal yang bisa di lakukan didunia modern tanpa melibatkan pengumpulan, penukaran, pembuatan dan pengaksesan data dan informasi. Informasi saat ini sudah menjadi komoditas yang sangat penting bahkan ada yang mengatakan bahwa kita sudah berada disebuah Infomation based society . Keamanan untuk mengakses dan menyediakan informasi secara cepat dan akurat menjadi sangat esensial bagi sebuah organisasi, baik yang berupa organisasi komersial (Perusahaan), perguruan tinggi, lembaga

pemerintahan maupun individu ( Pribadi ), hal ini dimungkinkan karena adanya perkembangan pesat dibidang teknologi komputer dan telekomunikasi, atau juga

71

disebut denga end user computeing. Hal yang mendorong end user computing adalah meningkatkan pngetahuan manusia tentang komputer, banyaknya jasa informasi yang tersedia, perangkat keras yang murah dan banyaknya perangkat lunak yang tersedia dipasaran. (Dony Ariyus & Rum Andri KR, 2008) Kemajuan sistem komunikasi memiliki banyak keuntungan bagi kehidupan umat manusia, tetapi aspek negatifnya juga banyak, seperti kejahatan komputer, yang meliputi pencurian,penipuan , pemerasan, kompetisi penyadapan komunikasi dan sebagainya. Pada zaman end user computing, hampir semua lapisan masyarakat menggunakan sistem informasi yang berbasis komputer, apalagi informasi lebih mudah di dapat dengan adanya jaringan komputer,

seperti LAN, dan Internet, fasilitas ini memungkinkan untuk penyediaan informasi secara cepat dan akurat. Banyak hal yang perlu di cermati dalam hal keamanan komunikasi data. Salah satu contohnya, penyadapan telephone yang di lakukan oleh pihak ketiga untuk kepentingan dan tujuan terrtentu yang dilakukan dengan memanfaatkan celah dari sistem komunikasi tersebut. Salah satu cara manusia untuk menyembunyikan enkripsi terhadap pesan yang akan dikirim melalui saluran publik, hal ini dipelajari pada ilmu kriptografi (ilmu penyembunyian pesan ).

Ancaman keamanan Tingginya lalu lintas pertukaran informasi setiap detik di internet, baik itu komunikasi melalui kabel maupun komunikasi tanpa kabel ( Wireless),

mendorong terjadinya pencurian informasi oleh pihak-pihak yang tidak bertanggung jawab. Ancaman keamanan yang terjadi terhadap informasi adalah :
(Dony Ariyus & Rum Andri KR, 2008)

a.

Interuption merupakan suatu ancaman terhadap avaibability, informasi,

data yang ada dalam sistem Komputer dirusak, dihapus, sehingga jika data, informasi tersebut dibutuhkan tidak ada lagi b. Interception : merupakan ancaman terhadap kerahasiaan (secrecy).

Informasi yang ada disadap atau orang yang tidak berhak mendapat akses ke komputer dimana informasi tersebut disimpan. c. Fabrikasi : Merupakan ancaman terhadap integritas, orang yang tidak

berhak berhasil menyadap lalu lintas informasi yang sedang dikirim dan diubah sesuai dengan keinginan orang tersebut.

72

d.

Febrication :merupakan Ancaman Keamanan yang merupakan salah satu

ancaman terhadap integritas. Orang yang tidak berhak berhasil meniru (memalsukan) suatu informasi yang ada sehingga orang yang menerima informasi tersebut menyangka informasi tersebut berasal dari orang yang dikehendaki oleh sipenerima informasi tersebut.

2.10.

Rekayasa Perangkat Lunak Rekayasa Perangkat Lunak adalah teknik yang baik untuk memilih alat bantu

dalam perencanaan maupun dalam penerapan perangkat lunak, menilai kualitas perangkat lunak, mengkoordinasi, mengontrol, dan mengatur pelaksanaan pembuatan perangkat lunak.(Pranata, Antony. 2000)

2.10.1.Model Proses Perangkat Lunak Fondasi dalam perangkat lunak merupakan bentangan proses, sedangkan proses perangkat lunak adalah perekat yang menjaga bentangan-bentangan teknologi secara bersama-sama dan memungkinkan perkembangan perangkat lunak komputer yang tepat waktu dan rasional. Sedangkan Metode Rekayasa Perangkat Lunak memberikan teknik untuk membangun perangkat lunak, metode-metode itu menyangkut serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan. Dan tools rekayasa perangkat lunak memberikan topangan yang otomatis ataupun semi-otomatis pada proses-proses dan metode-metode yang ada. Strategi ini sering diacukan sebagai model proses atau paradigma rekayasa perangkat lunak. (Pranata, Antony. 2000)

2.10.2. Model Analisis


Model analisis sebenarnya merupakan serangkaian model dari representasi teknis yang pertama dari sistem. Terdapat dua jenis model analisis, yaitu : 1. 2. Model Analisis Terstruktur. Model Analisis Object Oriented.

Model analisis harus dapat mencapat tiga sasaran utama, yaitu :

73

a.

Dapat

menggambarkan

apa

yang dibutuhkan

oleh

pelanggan b. lunak. c. Dapat membatasi serangkaian persyaratan yang dapat Dapat membangun dasar bagi pembuatan desain perangkat

divalidasi bersamaan dengan saat perangkat lunak yang dibangun.

2.10.3 Analisis Terstruktur Sebuah konsep pemodelan data yang disebut kardinalitas merupakan sejumlah spesifikasi dari sejumlah peristiwa dari satu objek yang dapat dihubungkan ke sejumlah peristiwa objek yang lain. Kardinalitas biasanya diekspresikan sebagai secara sederhana satu atau banyak. Dengan mempertimbangkan semua kombinasi dari satu ke banyak, dua objek dapat digambarkan sebagai berikut : (kelana, 2010) Satu ke Satu (1 : 1). Adalah suatu peristiwa dari objek A dapat berhubungan dengan satu atau hanya satu kejadian dari objek B dan sebuah peristiwa dari B hanya dapat berhubungan dengan satu kejadian A. Satu ke Banyak (1 : N). Adalah suatu kejadian A dapat berhubungan dengan satu atau lebih kejadian dari objek B, tetapi sebuah kejadian B dapat berhubungan dengan hanya satu kejadian dari A. Banyak ke Banyak (M : N). adalah sebuah kejadian objek A dapat berhubungan dengan satu atau lebih kejadian dari B, sementara sebuah kejadian dari B dapat berhubungan dengan satu atau lebih kejadian dari A.
Kardinalitas : Mengimplikasikan bahwa pelanggan tunggal menunggu tindakan perbaikan Kardinalitas : Mengimplikasikan bahwa ada banyak tindakan perbaikan

Disediakan dengan Pelanggan Tindakan Perbaikan

Modalitas : Mandatory Harus mengimplikasikan bahwa untuk mempunyai tindakan perbaikan, kita harus mempunyai pelanggan

Modalitas : Optional Opsional mengimplikasikan bahwa ada situasi dimana tindakan perbaikan tidak diperlukan

Gambar 2.34 Kardinalitas dan modalitas

74

2.10.4. Aplikasi Perangkat Lunak Delphi dan perkemabagannya. Aplikasi Delphi adalah sebuah bahasa pemograman. Produk ini dikembangkan oleh Borland, sebelumnya dikenal sebagai inprise. Bahasa Delphi yang sebelumnya dikenal sebagai object pascal ( Pascal dengan extensi pemograman berorientasi object ( PBO/OOP ) pada mulanya ditujukan hanya untuk microsoft windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk linux dan Microsoft.Net framwork. Dengan menggunakan free pascal yang merupakan proyek open source, bahasa ini dapat pula digunakan untuk membuat program yang berjalan disistem operasi MAC OS dan Windows CE. Windows CE adalah perangkat lunak keluaran Microsoft untuk perangkat keras organizer. Organizer Windows CE tersedia dalam dua bentuk, sebagai Handheld yang horizontal dan Palmsize yang vertikal.

(Http://www.abdi10.co.tv/2009)

Umumnya Delphi lebih banyak digunakan untuk pengembangan aplikasi desktop dan enterprise berbasis database, tapi sebagai perangkat pengembangan yang bersipat general purpose ia juga mampu dan digunakan dalam berbagai jenis proyek

pengembangan software, ia juga yang dikenal sebagai salah satu yang membawa istilah RAD tool, kepanjangan dari Rapid Aplication Developmnet, saat dirilis tahun 1995 untuk windows 16 bit. Delphi 2 dirilis setahun kemudian, mendukung lingkungan windows 32 bit, dan versi C++, C++ Builder, dirilis beberapa tahun kemudian. Pada tahun 2001 sebuah versi linux yang dikenal sebagai Kylix tersedia , dengan satu rilis baru setiap tahunnya, pada tahun 2002 dukungan untuk linuk ( melalui kylix dan ClX component library ) ditambahkan pada tahun 2003. Net di dukung dengan munculnya Delphi.Net (Delphi 8). Chief Architect yang membidangi Delphi dan pendahulunya turbo pascal adalah andreas Hejlsberg sampai kemudian ia pindah ke Microsoft sampai tahun 1996 dimana isa sebagai chief designer C# dan teremasuk orang kunci dalam perancangan Microsoft. Net Framework. Dukungan penuh untuk.Net di tambahkan pada Delphi 8 ( dirilis pada bulan desember 2003 ) dengan penampilan user interface (Look and Feel) mirip dengan Microsoft Sutudio.Net.

75

Delphi 2005 (Nama Lain Delphi9) mendukung Code generation baik untuk Win32 maupun.Net dan seperti yang telah dikenal, fitur-fitur manipulasi data secara live, ia juga membawa banyak pembaharuan pada DE secara signifikan. Para penganjur Delphi mengklaim dengan bahasa pemograman Delphi, IDE dan component library ( VCL?CLX) yang disediakan oleh vendor tunggal memungkinkan satu paket yang lebih konsisten dan mudah dikenali. Produk Delphi ini didistribusikan dalam beberapa rancangan : Personal, Profesional, Enterprise (Sebelumnya

Client/Server) dan Architect.

Bahasa Pemograman Perbedaan fitur yang utama antara Delphi, kylix dengan ide-ide yang lain adalah keberadaan bahasanya (Bahasa pemograman Delphi ) VCL/CLX ( Visual Componen Library) Penekanan konektifitas database yang sangat baik dan banyaknya komponenkomponen pihak ketiga yang mendukungnya. Aspek Penting yang perlu di catat tentang bahasa pemograman Delphi termasuk : (Ilmu Kompurer, 2003) 1. Penagananan object sebagai referency/pointer secara transparan 2. Properti sebagai bagian dari bahasa tersebut sebagai getter dan setter ( Atau accessor dan mutator ) yang secara transfaran mengengkapsulasi akess pada field-field anggota dalam kelas tersebut. 3. Property index dan default yang menyediakan akses pada data kolektif 4. Pendelagasian (Type Safe mode Pointer) yang digunakan untuk memproses event yang dipicu oleh component 5. Pendelegasian implementasi interface dapa field ataupun proferty dari class 6. Implementasi penanganan Windows message dengan cara membuat method dalam class dengan nomor / nama dari windows message yang akan dihandle. 7. COM bersifat sebagai interface yang independen dengan inplementasi class sebagai reference counted 8. Kompilasi yang dapat menghasilkan kode yang berjalan secara native X86 ataupun manage code pada arsitektur framework.NET

76

Delphi membawa keuntungan-keuntungan berikut : 1. Komunitas pengguna yang besar pada Use Net maupun WEB 2. Dapat mengkompilasi menjadi single executable, memudahkan distribusi dan meminimalisir masalah yang terekait dengan versioning. 3. Banyaknya dukungan dari pihak terhadap VCL ( biasanya tersedia berikut source code nya ) Taupun tools pendukung lainnya ( Dokumentasi tools debugging ) 4. Optimasi kompiler yang cukup cepat 5. Mendukung multiple platform dari source code yang sama.

Berikut ini Kerugiannya : 1. Partial Singel Vendor Lock-in (Borland dapat menetapkan standar bahasa kompatibilitas yang harus mengikutinya ) 2. Terbatasnya kemampuan portabilitas antar platform OS (Sebelum ada Kylix) 3. Akses pada platform dan library pihak ketiga memutuhkan file-file header yang diterjemahkan kedalam bahasa pascal. 4. Dokumentasi atas plaform dan tehnik-tehik yang menyertainya sulit ditemukan dalam bahasa pascal ( contoh : access com dan win32) (Http://www.abdi10.co.tv/2009/10/apa-itu-delphi.html)

BAB III ANALISIS SISTEM

Analisis sistem didefinisikan sebagai penguraian dari suatu sistem informasi yang utuh ke dalam bagian-bagian komponennya, dengan maksud untuk

mengidentifikasi dan mengevaluasi permasalahn, kesempatan, hambatan yang terjadi dan kebutuhan yang diharapkan sehingga dapat diusukan perbaikan. http://iaprima.staff.gunadarma.ac.id/.../files/.../D3_3b_Analisis_Sistem Pada bab ini dibahas tentang bagaimana proses yang digunakan untuk merancang dan mensimulasikan sistem pengamanan server yang akan dibuat. Pembahasan yang akan dilakukan meliputi spesifikasi dan mekanisme kerja program yang diinginkan. Setelah itu berlanjut ke pembahasan mengenai alat Bantu yang akan digunakan. Setelah masing-masing alat bantu itu dijabarkan, pembahasan menyentuh hal-hal yang lebih spesifik dari sistem, yaitu bagaimana data diambil dan bagaimana pengolahan data-data tersebut. Kemudian akan dijabarkan secara lebih jelas mengenai desain sistem secara keseluruhan. Proses implementasinya dijelaskan melalui algoritma dari programprogram yang akan di buat. Langkah-langkah yang dilalui dalam analisis sistem perancangan pencegahan flooding data yaitu dengan melakukan :

1. Untuk mengidentifikasi terjadinya flooding data di gunakan suatu konsep 4W+1H yaitu : What, Why, Where, When dan How. Dimana konsep ini di gunakan untuk mengumpulkan suatu informasi agar dapat memperoleh data yang utuh kenapa terjadi flooding data pada suatu jaringan. Penjelasan dari Konsep tersebut adalah : What : Apa yang di maksud flooding data Pengiriman data yang berlebihan baik dari besar paket maupun jumlah paket kedalam suatu jaringan dan umumnya merupakan data yang tidak berguna. Why : Kenapa terjadi Flooing data. Karena keterbatasan katahanan sistem dalam menangani traffic data yang besar.

77

78

Where : Dimana terjadinya flooding Pada sebuah sistem jaringan yang tidak dapat tercontrol ketika paket data masuk secara kontinue dan besar.

When : Kapan terjadinya flooding data Ketika sistem tidak bisa mendeteksi paket data flood dan tidak bisa melakukan pengeblokan paket data yang di anggap flooding pada sebuah sistem jaringan.

How : Bagaimana pencegahan agar tidak terjadinya flooding data Yaitu merancang dan membangun suatu system yang mampu mendeteksi data flood sekaligus melakukan blocking pada data yang terbukti flood.

2. Langkah pertama agar dapat di definisikan permasalahan yang ada sehingga masalah tersebut bisa dipecahkan, masalah yang terjadi kenapa terjadinya flooding pada jaringan adalah karena : a. Human Error. Sesuatu yang telah dilakukan, yang tidak di harapkan oleh pelaku, tidak diinginkan oleh sesuatu aturan yang ditetapkan atau oleh pengamat luar atau yang membuat sistem tidak berjalan atau melapaui batasnya. Senders and moray 1991. b. Kelemahan Hardware Hardware tidak dapat bekerja berdasarkan perintah yang telah di tentukan atau di sebut instruction set atau perintah yang di mengerti oleh hardware tersebut untuk melakukan berbagai kegiatan yang ditentukan oleh si pemberi perintah, karena apabila sistem hardware tidak berfungsi akan mengakibatkan tidak berfungsinya suatu sistem yang sudah di desain sebelumnya. c. Kelemahan Software Salah satu lemahan Software aplikasi yang digunakan tidak berlaku di flatfom linuk d. Kelemahan sistem Jaringan. Ada banyak definisi kenapa sistem jaringan begitu lemah terhadap ancaman dari luar, diantaranya karena jaringan tidak di lengkapi dengan

79

akses kontrol yang kuat dan pertahanan seperti menggunakan Firewall dan sebagainya.

3. Memahami kerja sistem yang ada : Mempelajari secara terperinci bagaimana sistem yang ada beroperasi, menganalisi permasalahan, kelemahan dan kebutuhan pemakai sistem untuk dapat memberikan recomendasi dan pemecahannya. 4. Baru kemudian menganalisa sistem. Dalam tahapan ini yang dilakukan adalah mentrasmformasikan dua masukan utama diatas kedalam sfesifikasi sistem yang terstruktur. Ada tiga komponen utama penyebab terjadinya Flooding data pada jaringan yang menyebabkan sistem menjadi hang bahkan bisa menjadi rusak. Diantaranya adalah : a. File yang dikirim secara broadcast mengandung Virus b. Sistem keamanan jaringan lemah c. Fasilitas jaringan yang tidak available

3.1.

Gambaran Umum / Current system 3.1.1. Topology Jaringan Chevron Darajat. Teknologi komputer sangat diperlukan dalam membantu meningkatkan kinerja suatu perusahaan dewasa ini. Tahun demi tahun orang mulai menggunakan komputer yang saat ini dikenal dengan Personal Computer (PC). Asal mulanya Personal Computer digunakan oleh masing-masing orang dan berdiri sendiri (stand alone). Komputer-komputer tersebut tidak terhubung satu sama lainnya. Namun orang kemudian berpikir bahwa pengolahan data yang bersifat stand alone tersebut di rasa sangat lambat dan tidak efisien. Untuk PC stand alone, program aplikasi harus dimuat ke masing-masing PC, dan prosesnya harus berpindah-pindah PC. Untuk meningkatkan efisiensi dan meminimalisir waktu yang dibutuhkan maka diciptakan suatu jaringan yang saat ini dikenal dengan nama jaringan komputer. Topologi menggambarkan struktur dari suatu jaringan atau bagaimana sebuah jaringan didesain. Dalam definisi topologi terbagi menjadi dua, yaitu topologi fisik (physical topology) yang menunjukan posisi pemasangan kabel

80

secara fisik dan topologi logik (logical topology) yang menunjukan bagaimana suatu media diakses oleh host. Gambar 3.1 merupakan Gambaran tolopologi jaringan di chevron Darajat yang menghubungan antar switch sebelum ke pc/host.

Gambar. 3.1. : Topologi Jaringan Chevron Darajat

3.1.2. Mekanisme Jaringan. Mekanisme Komunikasi pada jaringan di Chevron darajat tentunya tidak jauh berbeda dengan komunikasi jaringan di tempat lain, hanya sedikit perbedaan yang ada di bandingkan dengan jaringan di tempat lain. Tujuan dibangunnya sebuah jaringan komputer tentunya akan membawa dan mengantarkan informasi secara cepat dan akurat dari sisi pengirim sebagai transmiter ke sisi penerima yaitu receiver sehingga pemanfaatannya dapat di rasakan begitu nyata, beberapa manfaat dari penggunanan jaringan adalah antara lain : a. Speed = Dengan Jaringan pekerjaan akan lebih cepat, efisien, fasilitas sharing akan memudahkan trnasfer data antar komputer.

81

b. Cost ( Sumber daya hardware dapat diminimalisir karena dapat berbagi hardware antar komputer, tidak perlu membeli perangkat baru untuk dipasang ditiap-tiap unit komputer ) c. Security ( Jaringan komputer memberikan layanan hak akses terhadap file atau sumber daya yang lain ) d. Centralized Software Management ( pemusatan program aplikasi. Ini akan mengurangi waktu dan tenaga untuk instalasi program dimasing-masing komputer ) e. Integrasi Data ( Jaringan komputer dapat mencegah ketergantungan pada komputer pusat, karena setiap proses data tidak harus dilakukan pada satu komputer saja,melainkan dapat didistribusikan ke tempat lainnya. Oleh sebab inilah maka dapat terbentuk data yang terintegrasi yang memudahkan pemakai untuk memperoleh dan mengolah informasi setiap saat ). f. Resource Sharing ( Jaringan komputer dapat mengatasi terbatasnya hardware (printer, CDROM, dll) maupun data ) g. Flexible Access ( User dapat mengakses data yang terpusat dari komputer manapun ) h. High reliability ( Sistem Pelayanan teknologi client-server, internet maupun intranet dapat diterapkan pada jaringan komputer, sehingga dapat memberikan pelayanan yang handal, cepat dan akurat sesuai kebutuhan dan harapan ).

3.2.

Spesifikasi Sistem Sebelum melakukan proses pembuatan sistem, terlebih dahulu ditentukan

spesifikasi sistem. Spesifikasi sistem akan menjadi titik tolak sekaligus menjadi acuan untuk pembuatan sistem dan juga menentukan kapabilitas dan kemampuan apa saja yang harus bisa dipenuhi sistem yang dimaksud. Sistem yang dibangun memiliki spesifikasi sebagi berikut: 1. Sistem beroperasi pada platform Windows. 2. Sistem yang digunakan harus bisa mengambil data-data dari jaringan. 3. Semua data yang dikumpulkan disimpan dalam database 4. Resource yang digunakan harus seminimal mungkin 5. Sistem harus bersifat multiuser dan multitasking. Dikembangkan dengan alat Bantu yang mudah dan/atau gratis

82

3.3

Sistem Operasi dan Alat Bantu yang digunakan Setelah spesifikasi dari sistem dan mekanisme kerja sistem telah dapat

dijabarkan maka proses selanjutnya adalah memilih sistem operasi dan tool yang akan digunakan untuk membangun sistem tersebut. Alat Bantu tersebut merupakan paket aplikasi dan bahasa pemrograman yang memiliki kemampuan sesuai dengan kebutuhan untuk membangun sistem ini. Beberapa hal yang menjadi dasar pemikiran untuk memilih tool adalah: 1. Alat bantu harus murah atau sedapatnya gratis, agar sesuai dengan tujuan semula yaitu membuat sistem yang semurah mungkin. 2. Alat Bantu yang digunakan sedapat mungkin adalah alat Bantu yang biasa digunakan dalam platform windows dan akan lebih baik lagi bila merupakan tool default pada platform itu 3. alat Bantu harus memiliki dokumentasi yang lengkap dan juga harus bersifat open source. Sub bab berikut ini akan membahas mengenai sistem operasi dan alat Bantu yang akan digunakan. Pembahasan meliputi deskripsi umum, kegunaan dan keunggulan sistem tersebut.

Windows XP Profesional Operating sistem dari keluarga windows yang merupakan perbaikan dari windows-windows Sebelumnya. Merupakan operating sistem yang user friendly dan sangat stabil. Operating sistem ini sangat banyak digunakan oleh masyarakat umum pada saat ini. Keunggulannya adalah kemudahan yang dimiliki baik pada waktu instalasi ataupun pada saat penggunaanya. Operating sistem ini dikeluarkan oleh perusahaan yang memproduksi yaitu microsoft pada pertengahan. Operating sistem ini dibuat dengan menggunakan program C, yang dikembangkan untuk mempermudahkan user dalam penggunannya. Operating sistem ini dikembangkan dengan mengeluarkan windows XP. SP2. Yang terbukti stabil untuk digunakan sebagai user. Tampilan suara dan resolusi gambar yang mantap. Dengan bug dari sistem yang relatif cukup baik di banding dengan OS system yang lain seperti windows7 atau pun windows vista, padahal OS tersebut merupakan Operating system keluaran terbaru setelah windows XP.

83

Windows 2000 server Merupakan Operating Sistem dari keluarga windows yang keluar pada pertengahan tahun 1999. yang merupakan pengembangan dari windows sebelumnya. Windows 2000 lebih condong ke pengembangan windows NT yang diterbukti stabil dalam pemakaiannya. Sedangkan windows 2000 server merupakan versi server dari windows 2000. yang sudah dilengkapi dengan berbagai kebutuhan untuk server misalnya SNMP, mailserver, webserver dan lain-lain.

Delphi 7. Delphi merupakan perangkat pengembangean aplikasi yang sangat terkenal di lingkungan windows. Dengan menggunakan perangkat lunak ini dapat dibangun berbagai aplikasi windows (permainan, multimedia, database, dan lain-lain) dengan sangat cepat dan mudah. Dengan pendekatan visual, kita dapat menciptakan aplikasi yang canggih (dan pasti akan disukai oleh pemakai) tanpa banyak menuliskan kode. Delphi menggunakan bahasa object Pascal sebagai bahasa dasarnya.

Desain Sistem Secara Umum Secara umum sistem yang akan dibangun adalah sebagai berikut :
start

Blok IP & Port Data jaringan tidak

Flooding ?

ya

Permintaan user ?

tidak

Parsing Data

ya

End

Gambar 3.2 Desain umum program blokir otomatis pada flood

84

Keterangan gambar: Input dari program adalah data jaringan yang masuk kemudian akan di proses apakah data yang ada tersebut melakukan flooding atau tidak. Jika data yang datang adalah flooding maka computer akan mencari apakah data merupakan permintaan user atau tidak. Jika terbukti tidak maka secara otomatis akan memblok ip dan port darimana data itu berasal dan kalau ya berarti data akan ditujukan kepada tujuanya.

3.4

Desain Pengambilan Data Apabila kita menggunakan Windows 2000 sebagai router tentunya hal tersebut

akan tidak bisa dilakukan secara langsung. Karena kita harus mengambil data dari paket tersebut secara detail, walaupun yang akan kita ambil hanya sebatas header dari data. Bukan keseluruhan dari paket tersebut untuk menjaga privasi user dari server. Dengan demikian kita perlu menempatkan sniffer untuk memperoleh header dari data itu.. Seperti yang tergambar sebagai berikut

USER

INTERNET Server Controler

Data dari luar

Data dari dalam USER Sniffing

Gambar 3.3 Proses pengambilan data

Dari gambar tersebut bisa dijelaskan data yang akan masuk ataupun akan keluar di belokkan terlebih dahulu untuk diambil datanya sebelum dilanjutkan ketujuan sebenarnya. Didalam pembelokan ini tidak berarti bahwa data paket ditahan dulu untuk di teliti melainkan data hanya yang datang maupun keluar di-capture headernya.

85

3.5

Desain Pengidentikasian Data Menurut standar protokol yang ada sekarang ini hampir semuanya menggunakan

struktur data Ethernet II sebagai struktur untuk mengirimkan atau menerima data. Struktur data dalam Ethernet II itu sendiri disebut frame. Format frame Ethernet II adalah sebagai berikut :

Preamble (8 octets)

Destination Address (6 octets)

Source Address (6 octets)

Type (2 octets)

Data (46-1500 octets)

FCS (3 octets)

Gambar 3.4 Header IP

Pembukaannya mengandung serangkaian 8 bit dengan pola tertentu yang memberitahu node penerimaan setiap suatu frame dimulai. Untuk alamat tujuan dan sumber masingmasing 48 bit (6 oktet). Field type menunjukkan jenis data dari field data, dengan besar 16 bit (2 oktet).

Dengan mengetahui header dari setiap paket yang masuk dapat kita peroleh datadata dari paket, yang kemudian kita bisa mengklasifikasikan setiap data yang datang apakah itu paket TCP, UDP atau juga ICMP. Beserta semua keterangan dari mana paket itu berasal, kemana tujuannya, juga besar dari paket tersebut.

START

Paket datang

Identifikasi paket

TCP

UDP

ICMP

Detail paket TCP

Detail paket UDP

Detail Paket ICMP

database

END

Gambar 3.5.Pengidentifikasian data paket

86

Keterangan gambar: Paket yang datang kemudian akan diidentipikasikan apakah data tersebut merupakan data untuk ICMP,UDP atau data TCP.Setelah didapatkan rincian dari paket paket yang datang tersebut kemudian data dari paket-paket tersebut dimasukkan kedalam database. Tujuan pemasukkan ke dalam database adalah agar lebih memudahkan dalam data tersebut diolah seluruhnya dalam suatu kesatuan data. Data yang diolah bukan data yang ditampilkan saja tetapi semua data yang keluar dan masuk dari jaringan. Selain itu juga digunakan untuk mengurangi penggunaan dari besar data yang tersimpan. Karena semakin besar data yang harus diolah akan mengakibatkan kelambanan dari proses secara keseluruhan. Kemungkinan terburuk yang terjadi adalah program akan mengalami overflow atau crash.

3.6

Desain Data Base Pengaturan data dari paket dalam database adalah sebagai berikut:Apabila ada

data dari paket masuk akan diambil kemudian disimpan dalam database. dalam hal ini database bersifat sementara dan disimpan hanya di memory bukan dalam hardisk. Karena penyimpanan dalam hardisk akan memperlama proses. Oleh karena itu data data yang sudah tidak diperlukan lagi harus dihapus. Hanya data yang dalam selang waktu yang ditentukan saja yang di olah, untuk defaultnya diambil angka 10. Suatu jaringan komputer dengan user lebih dari 5 tentunya data yang lewat dalam router dalam waktu 10 detik akan sangatlah banyak, terutama dalam jam-jam sibuk. Karena pengiriman data dalam jaringan adalah bentuk paket-paket yang terpecah, bukan dalam satu kesatuan file. Sehingga untuk satu koneksi dari host ke host paket yang tercatat akan banyak. Hal ini belum termasuk kalau terjadi pengiriman file. Semakin banyak data paket yang tersimpan maka semakin banyak pula memory dari komputer yang dibutuhkan.

87

START

Paket datang

Save data

T = N (variabel)+Tawal

tidak

Apakah Tnow > T ya

Cek data

Hapus data

Tnow = Tawal

END

Gambar 3.6 Pengaturan database umum

3.6.1

Pemrosesan data base ICMP dan UDP Pada data yang menggunakan ICMP data yang ditampilkan adalah

dengan cara sebagai berikut:proses dilakukan adalah mengacu pada setiap periodik waktu yang ditentukan dalam variabel option yang telah ditetapkan sebelumnya. Apabila data paket datang memenuhi kriteria pertama data disimpan dalam database sedangkan bila tidak maka data dihapus langsung karena kriterianya tidak terpenuhi. Setelah waktu yang ditetapkan data kembali di lakukan cek apakah memenuhi kriteria kedua maka data langsung dimasukkan ke tabel list lain untuk diproses selanjutnya. Kriteria pertama dan kedua dapat dilihat secara jelas pada sub bab berikutnya.Proses diatas dapat lebih jelas pada flow chart berikut ini:

88

START

Paket datang

Hapus data

tampilkan

tidak Memenuhi kriteria pertama ya

Simpan data

T = t variabel

tidak Memenuhi kriteria kedua

ya

END

Gambar 3.7 Proses database paket data ICMP dan UDP

3.6.2

Pemrosesan database pada paket TCP

Berbeda dengan penanganan data base pada UDP ataupun ICMP pengolahan data paket TCP hanya ditujukan pada TCP SYN saja, dan penggunaan port dari paket tersebut. Untuk data paket yang lainya misalnya ACK ataupun SYN ACK tidak ditampilkan untuk mempersingkat waktu tampilan dan juga untuk menanggulangi komputer tempat program berlangsung akan crash ataupun hang.

89

START

Paket datang TCP

Paket SYN? tidak Hapus data tampilkan ya Memenuhi kriteria pertama tidak ya

Simpan data

T = t variabel

Memenuhi kriteria kedua tidak ya Masukkan tabel 2

END

Gambar 3.8 Proses database pada paket TCP

3.7

Desain Pengolahan Data Setelah semua data dari paket-paket tersebut masuk kedalam database yang

dilakukan selanjutnya adalah pengolahan data. Pengolahan ini ditujukan untuk menentukan data yang datang apakah termasuk data yang flood atau bukan. Proses pengolahan ini dilakukan terpisah antar protokol. Karena setiap protokol mempunyai karakteristik sendiri-sendiri.

90

3.7.1

Pengolahan Data ICMP Pengolahan data-data paket yang menggunakan ICMP, untuk

mengantisipasi flood data yang disebabkan oleh paket yang menggunakan protokol ICMP. Dari bab sebelumnya diketahui bahwa kebanyakan flood yang disebabkan oleh paket yang menggunakan protokol ICMP adalah PING Flood. Pada kondisi normalnya penggunaan protokol ICMP untuk suatu kegiatan PING adalah paket dalam ukuran yang kecil, besar normalnya adalah 56 byte. Tentunya untuk kondisi suatu bandwith 128 kbps hal ini dapat diabaikan. Tetapi dalam kondisi lain hal ini sangatlah mengganggu, misalnya pada jam-jam sibuk. Akan mengakibatkan lambatnya alur keluar masuknya data. Dengan asumsi tersebut tentunya pengiriman paket ICMP dengan skala besar akan sangat lah mengganggu. Untuk itu diberi batasan bahwa paket ICMP yang masuk adalah kurang dari 100 byte. Sedangkan paket ICMP besar tidak diperbolehkan masuk, atau bisa dianggap sebagai flood ICMP. Begitu pula perlu juga dibatasi bahwa paket ICMP dari luar hanya diperbolehkan 5 buah paket dalam setiap detiknya Untuk lebih jelasnya bisa dilihat diagram flowchart berikut ini:

START

DATA ICMP tidak

Parsing Data Paket UDP >n setiap 1 s tidak ya Paket besar?

Paket ICMP >n setiap 10s ya ya

tidak

Data flooding

Block IP & Port

END

Gambar 3.9 Flowchart flood detektor pada paket ICMP

91

3.7.2

Pengolahan Data UDP Seperti halnya protokol ICMP pengiriman paket melalui UDP juga

merupakan jenis pengiriman paket berupa datagram. Yang pada skala normalnya juga merupakan paket data yang berukuran kecil. Penggunaan protokol ini pun juga termasuk jarang digunakan untuk hubungan antar host, mengingat sifatnya yang tidak baik keamanannya. Sehingga apabila ada hubungan UDP dengan kontinuitas yang tinggi atau besar paket UDP nya besar bisa dianggap sebagai suatu flooding. Pengaturannya dapat dilihat sebagai berikut :

START

DATA UDP tidak

Parsing Data Paket UDP >n setiap 1 s tidak ya Paket besar?

Paket UDP >n setiap 10s ya ya

tidak

Data flooding

Block IP & Port

END

Gambar 3.10 Flood detektor pada paket data UDP

92

3.7.3

Pengolahan Data TCP Flood yang disebabkan oleh TCP mungkin lebih jelas karena jenis flood

yang digunakan adalah SYN TCP flood. Yaitu pengiriman paket TCP untuk request koneksi hubungan host-to-host menggunakan protokol TCP sebagai perantaranya. Meskipun demikian flood yang diakibatkan oleh TCP adalah fatal bagi koneksi. Mengingat paket TCP adalah paket yang besar membutuhkan bandwithnya. Dengan demikian untuk mendefinisikan suatu paket TCP apakah suatu paket yang dianggap flood adalah dengan melihat berapa kali munculnya paket TCP SYN dalam jumlah waktu 10 detik. Apabila ternyata melebihi

batasan maka bisa di kategorikan dalam flood TCP SYN. Paket TCP biasanya sudah di atur bekerja di port tertentu, misalnya port web adalah 80 dan lain sebagainya. Apabila kemudian diketahui bahwa ada paket TCP yang menggunakan port-port yang tidak di definisikan, atau tidak melalui port yang diperbolehkan maka bisa dianggap sebagai intruder. Paket intruder ini pun juga harus di cegah keberadaaanya karena biasanya paket-paket tersebut membawa file-file berbahaya bagi server, misalnya virus. Untuk lebih jelasnya dapat dilihat dari flowchart berikut ini
START

DATA TCP

Dari dalam

Parsing Data

tidak Available port?

ya

intruder

TCP SYN dr PORT dan IP sama >5 setiap 10s

tidak

ya

Data flooding

Block IP & Port

END

Gambar 3.11 Flood detektor pada paket TCP

93

3.8

Desain Pemblokiran IP Setelah data terbukti melakukan flooding pada jaringan maka sistem akan

mengirimpkan paket UDP ke server untuk mengirimkan perintah blooking kepada IP yang besangkutan. Sebelumnya program daemon sudah diletakkan didalam server terlebih dahulu dan dijalankannya,untuk program daemon akan ditanyakan pakah paket UDP sama dengan nol,jika sama maka data akan ditujukan ketujuanya,sebaliknya jika tidak maka data akan diblok.

START

Data Base flood detect Komputer control

Kirim paket UDP

UDP = 0 ?

Daemon di server RELEASE IP BLOCK IP

END

Gambar 3.12 Desain blokir IP

BAB IV INPLEMENTASI DAN PENGUJIAN

Pada bab ini membahas mengenai Implementasi dan pengujian terhadap sistem. Pertama-tama menjelaskan mengenai batasan inplementasi dari sistem yang dibangun kemudian dijabarkan, Setelah itu pembahasan berlanjut ke hasil pengujian.

4.1.

Inplemantasi (Pembuatan Aplikasi) 4.1.1. Pendefinisian/Identifikasi paket data flooding


Setelah dilakukan perancangan spesifikasi sistem, mekanisme sistem , alat Bantu dan sistem operasi yang digunakan, selain sistem secara umum, pengambilan data dari jaringan, identifikasi data dan proses data, kemudian dimplementasikan kedalam program, Identifikasi yang dilakukan meliputi paket data ICMP, UDP dan TCP.

4.1.2. Recognizing paket data flooding Recognize Paket data flooding pada sebuah jaringan komputer dapat di identifikasi dengan cara melakukan pengujian diantaranya dengan cara menjalankan sebuah prototype dari sebuah hubungan Host to Host, sebelumnya dilakukan Setting Konfigurasi sistem Prototype LAN(Setting IP Address ), setelah dilakukan konfigurasi, dilakukan Flooding ke Host yang telah di beri sistem dan melihat hasil Flooding apakah Flood dapat di Blok atau tidak. Dalam Pengujian data flooding yang sebenarnya disiapkan 2 buah server dan satu PC sebagai pengontrol, dalam hal ini server 2 adalah host kita, sedangkan kontrol adalah komputer tempat program penguji berada. Spesifikasi dari jaringan tersebut adalah sebagai berikut: a. Server dengan spesifikasi : Procesor : Pentium IV Memory : 2 Gb b. Controler dengan spesifikasi Procesor : Pentium IV Memory : 1 Gb

94

95

Server1

Server2

Control

Gambar 4.1 Layout Jaringan Uji Coba

Disini diletakan kontrol yang berfungsi sebagai client dan pengontrol, fungsi client untuk memberikan input dari dalam sehingga diketahui data berasal dari dalam. Sedangkan kontrol merupakan tempat program diletakkan, peletakan program di client dimaksudkan untuk tidak mengganggu kerja router. Konfigurasi sistem Pengaturan dari sistem untuk mendapatkan hasil pengujian seperti kejadian flooding yang nyata adalah sebagai berikut: 1. Komputer server Komputer ini berfungsi sebagai host yang kita miliki yang akan di gunakan sebagai korban dari flooding data. Komputer ini dirancang agar bisa melakukan pemblokiran IP kalau host 1 melakukan flooding. Didalam komputer ini diletakkan 2 buah LAN card yang di gunakan sebagai routing data dari dalam dan data luar. Untuk itu komputer ini dilengkapi dengan Windows 2000 server. Untuk pengesetan IP dilakukan sebagai berikut ETH 0 : IP : 192.168.0.1

Netmask :255.255.255.0 Gateway : 192.168.0.3 ETH 1 : IP : 192.168.0.5

Netmask :255.255.255.0

Selain windows 2000 server sebagai operating system juga diletakkan dua buah program. a. Program Daemon

96

Program ini berfungsi agar komputer ini dapat diperintah oleh komputer kontrol untuk melakukan pemblokiran IP apabila komputer kontrol mendapatkan flooding data. b. Program Trojan Program ini digunakan untuk membuka jalan bagi komputer server 1 agar dapat melakukan flooding TCP SYN.

2.

Komputer pengontrol Komputer yang sudah dilengkapi dengan program pengontrol atau sistem

yang akan diuji, dengan menggunakan windows xp sebagai operating systemnya. Pengesetan IP dilakukan sebagai berikut: IP : 192.168.0.3

Netmask : 255.255.255.0 Gateway : 192.168.0.1

4.1.3. Aksesories data Flooding. Aksesories data flooding meliputi : 1. Host, merupakan target data yang akan dikirim. Dalam kejadian flood host adalah korban yang akan di flooding. 2. ICMP, merupakan pengiriman paket Yang perlu diatur dalam hal ini adalah : a. Frequency , selang pengiriman setiap paketnya. Satuan yang diatur adalah milidetik b. Length, besar setiap yang dikirimkan. 3. UDP, pengiriman paket UDP. Yang perlu diatur dalam hal ini adalah : a. Frequency , selang pengiriman setiap paketnya. Satuan yang diatur adalah milidetik b. Length, besar paket setiap yang dikirimkan c. Port, port yang akan digunakan untuk mengirimkan data tersebut 4. TCP, Port 80 untuk membuka jalur data foolding yang akan di lalui oleh data.

97

4.1.4. Monitoring paket data flooding Sistem keamanan dan network monitoring adalah salah satu faktor komponen yang esensi untuk memprediksi dan mengenali model-model serangan, Berikut adalah monitoring flooding data pada sebuah jaringan pada aplikasi yang penyusun rancang.

Gambar 4.2. Monitoring Paket data flooding

4.2.

Pengujian aplikasi 4.2.1. Identifikasi flooding Terdapat variable-varaible yang perlu diisikan terlebih dahulu untuk mengatur bagaimana program itu bekerja. Variabel-variabel tersebut dibuat didasarkan atas dasar kebutuhan, kita dapat menyesuaikan bandwith yang digunakan secara fleksibel. Tabel data yang berisi data-data paket yang merupakan hasil sniffing dibagi menjadi dua buah tabel, yaitu :

a. b.

Tabel yang berisi data paket yang sedang masuk Tabel yang berisi IP dan paket yang melakukan flood dan telah di blok

98

Gambar 4.3. Tampilan identifikasi Flooding secara keseluruhan

4.2.2. Pengujian aplikasi Recognizing paket data flooding Untuk mengetahui program jalan atau tidak tentunya harus disimulasikan suatu kejadian yang mencerminkan keadaan yang sebenarnya. Untuk mendapatkan suatu flood yang disebabkan protokol dalam keadaan sebenarnya adalah susah dan jarang terjadi, sehingga dibuat suatu program yang digunakan mengirimkan paket-paket data melalui protokol TCP, UDP dan ICMP. Pada program ini akan mengirimkan paket-paket secara kontinyu dan ukuran yang beraneka ragam sesuai yang diinginkan. Port yang digunakan juga bisa ditentukan sebelumnya, sehingga dapat menyerupai flood yang sebenarnya.

4.2.3. Pengujian Aplikasi aksesoris Paket data Flooding Pengujian aplikasi Aksesoris paket data floding digambarkan seperti pada gambar di bawah ini : yaitu dengan memasukan Ip Host sebagai tujuan dan freq ICMP, UDP dan Port TCP serta panjang paket/lenght(byte) sebelum program di jalankan

99

Gambar 4.4 Aplikasi Tester aksesoris paket data flooding yang dipakai

Dari hasil pengujian aplikasi diatas diperoleh kesimpulan bahwa paket data flooding yang dikrimkan dengan paket TCP tidak bisa dikirimkan secara langsung tapi dibutuhkan suatu Trojan untuk mengaktikan pengiriman paket dan membuka port yang akan dilalui sehingga paket TCP SYN bisa di kirimkan secara kontinyu

4.2.4. Pengujian Aplikasi Monitoring Paket data Flooding Pengujian aplikasi monitoring paket data flooding dilakukan ketika komunikasi data antar jaringan terkoneksi seperti terlihat pada gambar 4.5 dibawah ini. Adapun penjelasan dari gambar tersebut adalah sebagai berikut : Form NIC adalah menu pilihan untuk memilih ethernet yang di gunakan, sedangkan IP server adalah Ip host sebagai tujuan, sedangkan Form menu sebelah kanan adalah monitoring identifikasi Mac Address dari Client yang teridentifikasi. Form kriteria flooding adalah jenis Paket yang di gunakan serta satuan paket yang dikrimkan, Form Data paket yang masuk adalah identifikasi data paket waktu masuk, IP address, port yang digunakan, mac address, besarnya paket, type paket dan keterangan paket data flood atau bukan.

100

Gambar 4.5. Monitoring Paket data

Berdasarkan hasil pengujian diatas didapat bahwa sistem mempunyai kemampuan melihat semua paket yang datang dalam bentuk apapun ketika jaringan terkoneksi.

4.3.

Analisa hasil pengujian 4.3.1. Program yang dihasilkan Pada bab ini akan dibahas mengenai bagian-bagian dari program yang dihasilkan, beserta hasil-hasil dari pengujian dengan menggunakan program flood. Penjelasan disertai dengan gambar-gambar hasil snapshoot untuk memperjelas pembahasan.

4.3.1.1 Program secara keseluruhan Secara keseluruhan program dapat dilihat sebagai berikut:

101

Gambar 4.6 Tampilan program keseluruhan Dari hasil Pengujian seperti terlihat pada gambar 4.6. di dapatkan hasil bahwa semua paket yang datang yang di nyatakan sebagai data flooding akan teridentifikasi true. 4.3.1.2 Option program Sistem melalui option yang ada untuk mengatur apa saja yang merupakan batasan dari sistem. Option program yang harus diisikan untuk memudahkan pengaturan program. Bagian-bagian dari option program adalah: ICMP, UDP dan TCP.

102

80

Gambar 4.7 Option ICMP,UDP dan TCP

1.

Ethernet card Pendefinisian bahwa ethernet mana yang merupakan ETH 0 dan

ETH1 untuk memudahkan pengolahan data paket. Apakah paket itu berasal dari luar jaringan ataukah berasal dari dalam jaringan itu sendiri. Dan juga memudahkan sniffer bekerja.

Gambar 4.8 Pengaturan Ethernet card

103

4.3.1.3 Tabel list data paket masuk

Gambar 4.9 Tabel List paket masuk

Tabel ini berisi paket masuk yang sudah di olah system. Tidak semua paket ditampilkan di dalam tabel ini karena dengan menampilkan semua paket yang masuk bisa membuat komputer bekerja berat karena harus mengolah data dalam jumlah besar. Untuk satu kali hubungan dengan sebuah host dalam bentuk web akan masuk banyak sekali paket yang diterima, hal ini disebabkan pengiriman suatu file dalam jaringan akan dipecah dalam betuk fragmen-fragmen yang kecil. Maksimal dalam satu pengiriman paket melalui tcp hanya bisa sebesar 1500 byte. Bisa dibayangkan jika suatu halaman web site sebesar 3 Mega byte berapa jumlah fragmen yang akan muncul dalam setiap detiknya. Oleh karena itu maka perlu dilakukan pembatasan pembatasan untuk mengurangi kerja dari komputer pengontrol.

4.3.1.4 Tabel list IP yang di blok yang melakukan flooding

Gambar 4.10 Tabel list IP yang diblokir yang melakukan flooding

Pada tabel ini akan ditampilkan paket-paket flood yang telah dilakukan pengeblokan IP-nya. Dengan tombol release untuk

mengalirkan kembali data-data dari IP yang sebelumnya tidak bisa lewat karena di lakukan pemblokiran. Dari tabel ini kita bisa mengetahui IP mana saja yang melakukan flooding terhadap jaringan kita juga bisa tahu

104

sampai komputer mana yang melakukan dengan melihat MAC address dari Lan Card yang dipakai.

4.3.2 Kemampuan sistem dalam mengambil data Sistem mempunyai kemampuan melihat semua paket yang masuk dalam bentuk apapun. Meskipun demikian sistem hanya mengambil paket-paket dari tiga protokol utama yang biasa digunakan untuk mentransfer data. Protokol itu adalah TCP, UDP dan ICMP. Hal ini disebabkan karena flood yang biasa terjadi dalam jaringan dilakukan melalui tiga protokol tersebut. Sedangkan protokol lain hampir tidak pernah mengalami data flooding.

Gambar 4.11 Pengambilan data

4.3.3 Kemampuan sistem dalam mengolah data Pengolahan data dari setiap paket masuk yang masuk ditujukan untuk mengoptimasikan kerja komputer agar tidak terjadi komputer mengalami crash atau hang. Karena sistem mengolah data-data yang tidak perlu. Pengolahan data tersebut meliputi: a. Pemisahan paket data Pada pengolahan ini sistem akan memisahkan data-data mana yang perlu ditampilkan pada tabel dan data-data mana yang tidak perlu ditampilkan pada

105

tabel. Untuk paket UDP dan ICMP data-data yang tidak masuk kategori flood dihapus langsung. Untuk data yang menggunakan TCP sebagai protokol, data yang ditampilkan hanya data yang merupakan paket SYN saja, data acknowledge tidak ditampilkan. b. Pengidentifikasian data flood System mampu mengidentifikasikan apakah data yang masuk itu flood atau tidak. Secara visual data yang dikategorikan flood akan masuk lansung dalam tabel blacklist untuk di blok IP pengirimnya. c. Pengiriman data UDP secara otomatis untuk blokir IP Apabila setelah teridentifikasi flood maka control akan mengirimkan satu paket data melalui protokol UDP. Pengiriman paket UDP ini digunakan untuk memerintahkan server melakukan pengeblokan IP sever yang melakukan flooding terhadap kita.

4.3.4 Pengujian ketahanan sistem pada flooding data Pada bagian ini diperlihatkan ketahanan sistem dengan melakukan pemberian sistem dengan paket data flooding melalui protokol UDP, TCP dan ICMP

a. Pengujian dengan protokol ICMP Kondisi awal : 1. Panjang data maksimal = 100 byte 2. Frekuensi paket besar (lebih besar dari 100 byte) maksimal = 5 / 10 s 3. Frekuensi paket kecil (lebih kecil dari 100 byte) maksimal = 5 / 1 s

Tabel 4.1 Paket Besar Periode (ms) 1000 500 100 50 10 1 Besar paket (byte) 2500 2500 2500 2500 2500 2500 Pemblokiran Ya Ya Ya Ya Ya Ya

106

Tabel 4.2 Paket kecil Periode (ms) 1000 500 100 50 10 1 Besar paket (byte) 80 80 80 80 80 80 Pemblokiran Tidak Tidak Ya Ya Ya Ya

ICMP Merupakan bagian untuk menentukan sensitifitas flood detektor, yang akan digunakan pada pendeteksian ICMP flood. Bagian ini terdiri dari dua bagian yaitu : a. Panjang atau ukuran maksimal dari paket yang masuk. Apabila paket ICMP yang masuk melebihi standar dianggap sebagai tindakan atau usaha flooding, sehingga paket tersebut perlu diteliti lebih lanjut untuk memastikan apakah paket yang masuk tersebut adalah flood. b. Banyaknya paket maksimal setiap 10 detiknya. Banyak nya paket ini akan menentukan apakah data tersebut flooding atau tidak. Jika data yang masuk banyaknya setiap 10 detiknya melebihi ketentuan akan diidentifikasikan sebagai usaha untuk flooding. Option ini berguna untuk mendeteksi data dengan paket besar. c. Banyak paket maksimal setiap detiknya. Untuk mendeteksi paket yang dikirimkan adalah paket kecil. Apabila ada paket kecil yang masuk lebih dari ketentuan setiap detiknya maka dianngap merupakan paket flood. Apabila kedua syarat tersebut dipenuhi maka data-data ICMP yang masuk tersebut dikatergorikan sebagai flooding. Uji coba ini ditujukan untuk menguji ketahanan pada system dalam menghadapi beban traffic yang datang. Sebuah program penguji akan melakukan tekanan ke server dengan beban traffic jaringan yang besar, dan akan diukur seberapa besar jumlah beban traffic yang bisa diatasi oleh sistem. Dengan melihat data yang ada diatas maka semua data-data yang melewati batas yang telah ditentukan atau melewati batas ketentuan flooding akan dilakukan blooking pada IP-nya. Sedang data paket yang tidak melewati

107

ketentuan akan diteruskan, seperti yang terlihat pada pengujian di data paket kecil yang mempunyai periode 1000 dan 500 ms b. Pengujian dengan protokol UDP Kondisi awal : 1. Panjang data maksimal = 100 byte 2. Frekuensi paket besar (lebih besar dari 100 byte) maksimal = 5 / 10 s 3. Frekuensi paket kecil (lebih kecil dari 100 byte) maksimal = 5 / 1 s Pengujian Flooding UDP Untuk Paket Besar dan Paket Kecil Paket besar

Periode (ms) 1000 500 100 50 10 1 Paket kecil Periode (ms) 1000 500 100 50 10 1

Besar paket (byte) 2500 2500 2500 2500 2500 2500

Pemblokiran Ya Ya Ya Ya Ya Ya

Besar paket (byte) 80 80 80 80 80 80

Pemblokiran Tidak Tidak Ya Ya Ya Ya

UDP, Pada bagian ini hampir sama pengaturannya dengan ICMP, karena dianggap untuk sekarang data-data UDP belum dijadikan protokol transfer yang digunakan untuk pengiriman data yang besar. Pengiriman data yang mempunyai panjang paket terbesar hanya berlangsung diprotokol TCP saja. Sehingga pada pengaturannya sama seperti paket ICMP yaitu: a. Panjang maksimal dari paket UDP yang masuk, apabila paket yang masuk memiliki panjang lebih dari panjang maksimal dianggap sebagai usaha untuk melakukan flood yang perlu mendapat perhatian khusus.

108

b. Banyak nya paket yang diterima dalam 10 detiknya. Banyak paket UDP yang masuk apabilaApabila ada paket kecil yang masuk lebih dari ketentuan setiap detiknya maka dianggap merupakan paket flood, Jadi apabila kedua syarat itu terpenuhi maka paket yang masuk bisa dianggap flood. banyaknya

melibihi standar yang ditetapkan akan dianggap sebagai usaha dari paket tersebut untuk melakukan flood. Digunakan untuk mendeteksi paket besar. c. Banyak paket maksimal setiap detiknya. Untuk mendeteksi paket UDP yang dikirimkan adalah paket kecil. Data-data UDP yang masuk apabila melewati batas ketentuan akan di blok sedang yang tidak melwati akan diteruskan.

c. Pengujian dengan protokol TCP Kondisi awal : 1. Pengecekan setiap = 10 s 2. Banyak TCP SYN maksimal (dalam satu kali pengecekan) = 5 s 3. Port yang diperbolehkan : 8080, 3128, 80

Tabel 4.3. Pengiriman dalam port yang diperbolehkan

Port 8080 8080 8080 8080 8080 8080

PeriodeTCP SYN 2000 1000 500 100 10 1

Pemblokiran Tidak Ya Ya Ya Ya Ya

Tabel 4.4. Pengiriman dalam port yang tidak diperbolehkan

Port 5000 5000 5000 5000 5000 5000

PeriodeTCP SYN 2000 1000 500 100 10 1

Pemblokiran Ya Ya Ya Ya Ya Ya

109

TCP, Pada penerimaan paket TCP panjang suatu variabel dari paket menunjukkan paket tersebut dianggap flood atau bukan, karena pada paket TCP kebanyakan memiliki panjang paket yang lebar. Sedangkan variabel yang

dipakai apabila data terebut ingin melakukan flood atau tidak adalah: a. Port yang digunakan. Port yang digunakan adalah port dari server yang sudah didefinisikan terlebih dahulu. Apabila ternyata paket TCP yang masuk mengambil port yang tidak diperbolehkan dari server. Maka secara langsung paket tersebut dianggap melakukan flooding. b. Lama perhitungan. Lama waktu yang ditentukan untuk melakukan satu kali identifikasi dari paket TCP SYN. c. Banyak max paket TCP SYN, jumlah maksimal dari paket TCP SYN yang masuk setiap waktu yang ditentukan. Apabila melebihi dari banyak yang ditetapkan sudah dipastikan paket-paket tersebut melakukan flood pada jaringan. Pengiriman data TCP melalui port yang tidak diperbolehkan akan langsung diblok sedangkan apabila melalui port yang diperbolehkan maka dilakukan pemerikasaan apakah banyak TCP SYN yang masuk melebihi ketentuan atau tidak. Jika ternyata banyak data paket masuk melebihi ketentuan akan dilakukan pengeblokan IP.

BAB V KESIMPULAN DAN SARAN


5.1 Kesimpulan Berdasarkan hasil analisis dan sajikan pada bab IV pengujian sistem sebagaimana yang telah di

maka dapat diambil kesimpulan bahwa sistem yang dibuat

memiliki keunggulan sebagai berikut : 1. Sistem dapat mendeteksi flooding data Data yang keluar masuk akan dideteksi, sehingga semua data bisa dilihat apakah data itu merupakan flooding atau bukan, sehingga data bisa mengklasifikasikan bahwa data tersebut benar-benar melakukan flooding atau tidak. 2. Sistem dapat bekerja meskipun di berikan flood yang besar Karena pembatasan paket datang yang masuk merupakan variabel yang bisa diubah besar kecilnya maka berapapun besar flood yang masuk dapat di deteksi dan diatasi, selain itu pengolahan data bukan semua data yang ada melainkan data-data yang sudah sangat terseleksi. 3. Sistem dapat bekerja meskipun tidak ada admin Karena sifat dari sistem yang otomatis keberadaan seorang admin untuk mengatur server apabila flood terjadi tidak diperlukan lagi. Sistem mampu mengatasi sendiri dengan melakukan pengambilan keputusan data masuk apakan flood atau tidak. Dan juga sekaligus melakukan tindakan akhir apabila flood benar-benar terjadi yaitu dengan melakukan blooking data. 4. Keamanan data lebih terjamin Dengan adanya penanggulangan yang dini atas flooding data maka keamanan dari jaringan akan lebih terjamin baik dari segi kemanan alat maupun dari segi keamanan data

5.2

Saran
Flooding data yang terjadi hanya bisa dicegah sampai titik server saja, dan hanya

bisa mencegah data masuk kedalam jaringan yang bisa menyebabkan kerusakan yang lebih parah. Tetapi proses pengiriman data oleh pelaku flooding masih tetap berlangsung tanpa bisa dihentikan. Sebagai akibat pengiriman data yang terus menerus itu tentunya 110

111

traffic yang ada masih mengalami ganguan, yaitu berupa penuhnya jaringan yang ada. Proses pengiriman data dan penerimaan data akan mengalami kelambatan. Sehingga masih diperlukan suatu sistem untuk menyempurnakan sistem ini dengan menambahkan suatu komunikasi dari server ke server. Dalam hal ini hubungan server lokal ke server yang lebih tinggi. Tujuan komunikasi ini adalah untuk mengadakan pemblokiran IP pada server yang lebih tinggi sehingga gangguan yang ada lebih bisa dikurangi lagi. Traffic di jaringan lokal akan kembali normal karena data yang sebelumnya datang sudah di blokir di tingkat lebih atas.

DAFTAR PUSTAKA 1. Ahmad Yani, Jaringan Komputer PT.Kawan Pustaka Cetakan Pertama. Jakarta, 2008. 2. Craig Hunt. 1992: 10) 3. Choirul Amri, 2003,Mengelola Mail Server dengan Mdaemon. 4. Danning Peter, Computing as a Discipline Communications of ACM, 32 January 9-23, 1989 5. Doni Ariyus & Rum Andri. KR, Komunikasi Data Andy Yogyakarta, 2008. 6. Steven, W. Richard. 1994: 80,144, 225 7. Heywood, Drew, Microsoft TCP/IP Pearson Education Pte. Ltd, 2001 8. Pranata, Antony, Pemograman Borland Delphi Edisi 3 Andi Yogyakarta, 2000 9. Senders and moray 1991 Terjadinya flooding pada jaringan 10. William Stalling,Data & Computer Communication 6th Edition Prenticehall, inc Saddie New Jersey 07458

URL : 1. Http://www.abdi10.co.tv/2009/10/apa-itu-delphi.html 2. http://www.bebas.ui.ac.id/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X2/ch01s02.html 3. http://www.blog.uad.ac.id/imam162/2011/03/21/informatikainformatikateknikartikel download/ 4. http://www.belajarit.um.ac.id/index.php/jaringan/18-pengenalan-jaringankomputer/65-firewall.html. 5. http://www.blog.uad.ac.id/imam162 6. http://www.cangkruk.com/index.php?option=com_content&view=article&id=283&I temid=251 7. http://www.cisco.com/warp/public/cc/so/neso/vpn/unvpnst/atomf_an 8. http://www.cert.org/incident_notes/IN-99-04.html 9. http://www.digilib.its.ac.id/public/ITS-Undergraduate-9794-Paper.pdf 10. http://www.dwiantoro.com

11. http://www.en.wikipedia.org/wiki/SYN_flood) 12. http://www.freebsd.org/doc/handbook/ 13. http://www.fatur.student.umm.ac.id/informasi dan telekomunikasi 14. http://www.iaprima.staff.gunadarma.ac.id/.../files/.../D3_3b_Analisis_Sistem 15. http://www.id.wikipedia.org/wiki/Jaringan_komputer 16. http://www.id.wikipedia.org/wiki/Transmission_Control_Protocol/Internet_Protocol 17. http://www.kb.cert.org/vuls/id/539363 Macam-macam Flood attack 18. http://www.Ilmu Kompurer.com/Pemograman Delphi dan struktur Pemograman 19. http://www.robby.c.staff.gunadarma.ac.id/.../files/.../KEAMANAN-JARINGAN.doc 20. http://www.scribd.com/doc/2424865/Topologi-Jaringan 21. http://www.speedtest.net atau bandwithplace.com Wikipedia.com, www.total.or.id 22. http://www.scribd.com/doc/2424865/Topologi-Jaringan 23. Http://www.Sysneta.com/Jaringan-wan 24. http://www.wimpermana.web.ugm.ac.id/budi_s/wp-content/client_server.pdf

LAMPIRAN LISTING PROGRAM Listing Program Perancangan Sistem Pencegahan Flooding data pada jaringan komputer
unit packet32; {$ALIGN ON} interface uses windows; const NDIS_PACKET_TYPE_DIRECTED = NDIS_PACKET_TYPE_MULTICAST = NDIS_PACKET_TYPE_ALL_MULTICAST = NDIS_PACKET_TYPE_BROADCAST = NDIS_PACKET_TYPE_SOURCE_ROUTING = NDIS_PACKET_TYPE_PROMISCUOUS = NDIS_PACKET_TYPE_SMT = NDIS_PACKET_TYPE_MAC_FRAME = NDIS_PACKET_TYPE_FUNCTIONAL = NDIS_PACKET_TYPE_ALL_FUNCTIONAL = NDIS_PACKET_TYPE_GROUP = $0001; $0002; $0004; $0008; $0010; $0020; $0040; $8000; $4000; $2000; $1000;

MAX_LINK_NAME_LENGTH = 5; type USLONG = LongInt; USLONG = LongWord;

ADAPTER = packed record hFile: THandle; szAdapterName: array [0..MAX_LINK_NAME_LENGTH-1] of Char; SymbolicLink: array [0..MAX_PATH-1] of Char; end; LPADAPTER = ^ADAPTER; PACKET = packed record hEvent: THandle; xOverlapped: TOVERLAPPED; Buffer: PChar; Length: USLONG; end; LPPACKET = ^PACKET; ADAPTER_DESC = packed record szAdapterName: array[0..MAX_LINK_NAME_LENGTH-1] of Char; szAdapterDesc: array[0..MAX_PATH-1] of Char; end; LPADAPTER_DESC = ^ADAPTER_DESC; function PacketOpenAdapter( AdapterName: LPSTR ): DWORD; stdcall; function PacketSendPacket( AdapterObject: LPADAPTER; plpPacket: LPPACKET; Sync: Boolean ): Boolean; stdcall; function PacketAllocatePacket( AdapterObject: LPADAPTER ): DWORD; stdcall; procedure PacketInitPacket( plpPacket: LPPACKET; Buffer: PChar; Length: USLONG); stdcall; procedure PacketFreePacket( plpPacket: LPPACKET ); stdcall; function PacketResetAdapter( AdapterObject: LPADAPTER ): Boolean; stdcall;

function PacketGetAddress( AdapterObject: LPADAPTER; AddressByffer: PUCHAR; cbBytes: DWORD; lpcbBytes: LPDWORD): Boolean; stdcall; function PacketWaitPacket( AdapterObject: LPADAPTER; plpPacket: LPPACKET; BytesReceived: PULONG): Boolean; stdcall; function PacketReceivePacket( AdapterObject: LPADAPTER; plpPacket: LPPACKET; Sync: Boolean; BytesReceived: PULONG): Boolean; stdcall; procedure PacketCloseAdapter( AdapterObject: LPADAPTER ); stdcall; function PacketSetFilter( AdapterObject: LPADAPTER; Filter: ULONG): Boolean; stdcall; function PacketGetAdapterNames( pAdapterDescs: PChar; nAdapterDescs: USLONG;

pnAdapterDescsMax: PUINT ): BOOL; stdcall; function PacketAdapterDesc( AdapterObject: LPADAPTER; lpszVendorSays: LPSTR; cbBytes: DWORD; lpcbBytes: LPDWORD ): Boolean; stdcall; implementation const Packet32Lib = 'Packet32.dll'; function PacketOpenAdapter; external Packet32Lib name 'PacketOpenAdapter'; function PacketSendPacket; external Packet32Lib name 'PacketSendPacket'; function PacketAllocatePacket; external Packet32Lib name 'PacketAllocatePacket'; procedure PacketInitPacket; external Packet32Lib name 'PacketInitPacket'; procedure PacketFreePacket; external Packet32Lib name 'PacketFreePacket'; function PacketResetAdapter; external Packet32Lib name 'PacketResetAdapter'; function PacketGetAddress; external Packet32Lib name 'PacketGetAddress'; function PacketWaitPacket; external Packet32Lib name 'PacketWaitPacket'; function PacketReceivePacket; external Packet32Lib name 'PacketReceivePacket'; procedure PacketCloseAdapter; external Packet32Lib name 'PacketCloseAdapter'; function PacketSetFilter; external Packet32Lib name 'PacketSetFilter'; function PacketGetAdapterNames; external Packet32Lib name 'PacketGetAdapterNames'; function PacketAdapterDesc; external Packet32Lib name 'PacketAdapterDesc'; end.

unit Protohdr; interface uses windows; type ETHERNET_HDR = packed record Destination: array[0..5] of UCHAR; Source: array[0..5] of UCHAR; Protocol: array[0..1] of UCHAR; Data: array[0..0] of UCHAR; end; PETHERNET_HDR = ^ETHERNET_HDR; const //rfc1340 PROTO_IP = PROTO_ARP = PROTO_XNS = PROTO_SNMP = PROTO_OLD_IPX = PROTO_NOVELL = PROTO_IPNG =

$0800; $0806; $0600; $814C; $8137; $8138; $86DD;

OFFSET_IP =

14;

type // IPv4 Header (* typedef struct _IP_RHDR { UCHAR VerLen; UCHAR Service; UCHAR Length[2]; UCHAR Ident[2]; UCHAR Flagoff[2]; UCHAR Timelive; UCHAR Protocol; UCHAR Checksum[2]; UCHAR Source[4]; UCHAR Destination[4]; UCHAR Data[1]; } IP_RHDR, *PIP_RHDR; *) IP_RHDR = packed record Verlen: UCHAR; Service: UCHAR; Length: array[0..1] of UCHAR; Ident: array[0..1] of UCHAR; Flagoff: array[0..1] of UCHAR; TimeLive: UCHAR; Protocol: UCHAR; Checksum: array[0..1] of UCHAR; Source: array[0..3] of UCHAR; Destination: array[0..3] of UCHAR; Data: array[0..0] of UCHAR; end; PIP_RHDR = ^IP_RHDR; // IPv6 Header (*

typedef

struct _IPNG_RHDR { UCHAR VerPrio; UCHAR FlowLabel[3]; UCHAR Length[2]; UCHAR NextHdr; UCHAR HopLimit; UCHAR Source[16]; UCHAR Destination[16]; UCHAR Data[1]; } IPNG_RHDR, *PIPNG_RHDR; *) IPNG_RHDR = packed record VerPrio: UCHAR; FlowLabel: array[0..2] of UCHAR; Length: array[0..1] of UCHAR; NextHadr: UCHAR; HopLimit: UCHAR; Source: array[0..15] of UCHAR; Destination: array[0..15] of UCHAR; Data: array[0..0] of UCHAR; end; PIPNG_RHDR = ^IPNG_RHDR; // TCP Header, RFC793 (* typedef struct _TCP_RHDR { UCHAR Source[2]; UCHAR Destination[2]; UCHAR Seq[4]; UCHAR Ack[4]; UCHAR Rsvd0:4; UCHAR Offset:4; UCHAR Flags:6; UCHAR Rsvd1:2; UCHAR Window[2]; UCHAR Checksum[2]; UCHAR UrgPoint[2]; UCHAR Data[1]; } TCP_RHDR, *PTCP_RHDR; *) TCP_RHDR = packed record Source: array[0..1] of UCHAR; //Source Port Destination: array[0..1] of UCHAR; //Destination Port Seq: array[0..3] of UCHAR; Ack: array[0..3] of UCHAR; Rsvd0_Off: UCHAR; Flags_Rsvd1: UCHAR; Window: array[0..1] of UCHAR; Checksum: array[0..1] of UCHAR; UrgPoint: array[0..1] of UCHAR; Data: array[0..0] of UCHAR; end; PTCP_RHDR = ^TCP_RHDR; const TCP_FLAG_FIN = TCP_FLAG_SYN = TCP_FLAG_RST = TCP_FLAG_PSH = TCP_FLAG_ACK = TCP_FLAG_URG = PROTO_TCP = 6; type // UDP Header (* typedef struct _UDP_RHDR { UCHAR Source[2]; UCHAR Destination[2]; UCHAR Length[2]; UCHAR Checksum[2]; UCHAR Data[1]; } UDP_RHDR, *PUDP_RHDR; *) UDP_RHDR = packed record Source: array[0..1] of UCHAR; Destination: array[0..1] of UCHAR; Length: array[0..1] of UCHAR; Checksum: array[0..1] of UCHAR; Data: array[0..0] of UCHAR; end; PUDP_RHDR = ^UDP_RHDR;

$01; $02; $04; $08; $10; $20;

// Pseudo Header for evaluating TCP/UDP Checksum (* typedef struct _PSU_RHDR { UCHAR Source[4]; UCHAR Destination[4];

UCHAR Zero; UCHAR Protocol; UCHAR Length[2]; UCHAR Data[1]; } PSU_RHDR, *PPSU_RHDR; *) PSU_RHDR = packed record Source: array[0..3] of UCHAR; Destination: array[0..3] of UCHAR; Zero: UCHAR; Protocol: UCHAR; Length: array[0..1] of UCHAR; Data: array[0..0] of UCHAR; end; PPSU_RHDR = ^PSU_RHDR;

//Borland CBuilder is 32 bit Win App //#ifdef WIN32 //#define TOUSHORT(x) //#define TOULONG(x) //#else //#define TOUSHORT(x) //#define TOULONG(x) //#endif

(USHORT)(*(x)<<8|*(x+1)) (ULONG)(*(x)<<24|*(x+1)<<16|*(x+2)<<8|*(x+3)) (*(USHORT *)x) (*(ULONG *)x) //Big-Endian

function TOUSHORT(x: PChar): SHORT; function TOULONG(x: PChar): ULONG; implementation function TOUSHORT(x: PChar): SHORT; begin Result := (SHORT(x^) shl 8) or (SHORT((x + 1)^)); end; function TOULONG(x: PChar): ULONG; begin Result := (ULONG(x^) shl 24) or (ULONG((x + 1)^) shl 16) or (ULONG((x + 2)^) shl 8) or (ULONG((x + 3)^)); end; end.

unit Ingusclass; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Packet32, Protohdr; const MAX_ADAPTER_COUNT = 5; type TIngusPacketBase = class; TPacketDirection = (pdOutput, pdInput, pdPassThrough); TParsePacketEvent = procedure( nPacketSeq: Longint; uBuffer: PChar; nRecvBytes: integer; sPacket: TIngusPacketBase ) of object; TIngusPacketBase = class(TObject) private FMacAddr: PChar; FBuffer: PChar; FEthernetHdr: PETHERNET_HDR; FPacketDirection: TPacketDirection; FProtocol: Integer; FData: PChar; protected public constructor Create(MacAddr: PChar; uBuffer: PChar); virtual; destructor Destroy; override; property EthernetProtocol: integer read FProtocol; property PacketDirection: TPacketDirection read FPacketDirection; property EthernetHeader: PETHERNET_HDR read FEthernetHdr; property EthernetData: PChar read FData; end; TIngusSnifferThread = class(TThread) private FMacAddr: PChar; FpAdapter: LPADAPTER; FpPacket: LPPACKET;

FdwRxBytes: DWORD; FRxPacketSeq: Longint; FParsePacketEvent: TParsePacketEvent; protected public constructor Create; virtual; destructor Destroy; override; procedure Execute; override; procedure SyncParseEvent; property MacAddr: PChar read FMacAddr write FMacAddr; property Adapter: LPADAPTER read FpAdapter write FpAdapter; property Packet: LPPACKET read FpPacket write FpPacket; property OnParsePacket: TParsePacketEvent read FParsePacketEvent write FParsePacketEvent; end;

TAfterGetAdapterDesc = procedure(bStatus: Boolean; sAdapterDesc: string) of object; TAfterGetMacAddress = procedure(bStatus: Boolean; pMacAddr: PChar) of object; TAfterSetFilter = procedure(bStatus: Boolean; uFilter: ULONG) of object; TIngusSniffer = class(TObject) private //FuBuffer: array[0..1520] of Char; FuMac: array[0..5] of UCHAR; FAdapterDescs: array[0..MAX_ADAPTER_COUNT-1] of ADAPTER_DESC; FAdapterNames: TStringList; FAdapterCount: integer; FpPacket: LPPACKET; FhAdapter: DWORD; FbStartSnoop: Boolean; FParsePacketEvent: TParsePacketEvent; FIngusThread: TIngusSnifferThread; FAfterGetAdapterDesc: TAfterGetAdapterDesc; FAfterGetMacAddress: TAfterGetMacAddress; FAfterSetFilter: TAfterSetFilter; protected procedure GetAdapterNameList; function GetMacAddr: PChar; public constructor Create; virtual; destructor Destroy; override; //zero-based index function StartSnoop(nAdapterIndex: integer): Boolean; procedure StopSnoop; property MacAddr: PChar read GetMacAddr; property AdapterNameList: TStringList read FAdapterNames; property AdapterCount: integer read FAdapterCount; property OnParsePacket: TParsePacketEvent read FParsePacketEvent write FParsePacketEvent; property OnAfterGetAdapterDesc: TAfterGetAdapterDesc read FAfterGetAdapterDesc write FAfterGetAdapterDesc; property OnAfterGetMacAddress: TAfterGetMacAddress read FAfterGetMacAddress write FAfterGetMacAddress; property OnAfterSetFilter: TAfterSetFilter read FAfterSetFilter write FAfterSetFilter; end; var FuBuffer: array[0..1520] of Char; implementation uses IngusPacket; //----- PacketBase ------// constructor TIngusPacketBase.Create(MacAddr: PChar; uBuffer: PChar); begin inherited Create; FMacAddr := MacAddr; FBuffer := uBuffer; FEthernetHdr := PETHERNET_HDR(FBuffer); FProtocol := TOUSHORT(@(FEthernetHdr^.Protocol[0])); FData := @(FEthernetHdr^.Data[0]); //Packet Direction FPacketDirection := pdPassThrough; if CompareMem(FMacAddr, @(FEthernetHdr^.Destination[0]), 6) then begin //Input FPacketDirection := pdInput; end else if CompareMem(FMacAddr, @(FEthernetHdr^.Source[0]), 6) then begin

//Output FPacketDirection := pdOutput; end; end; destructor TIngusPacketBase.Destroy; begin //... inherited Destroy; end; //----- SnifferThread ------// constructor TIngusSnifferThread.Create; begin //Initiate vars FpAdapter := nil; FpPacket := nil; inherited Create(True); end; destructor TIngusSnifferThread.Destroy; begin //... inherited Destroy; end; procedure TIngusSnifferThread.Execute; begin if (FpAdapter = nil)or(FpPacket = nil) then exit; FRxPacketSeq := 0; while (not Terminated) do begin PacketReceivePacket(FpAdapter, FpPacket, TRUE, @FdwRxBytes); if (not Terminated) then Synchronize(SyncParseEvent); Inc(FRxPacketSeq); end; end; procedure TIngusSnifferThread.SyncParseEvent; var sPacket: TIngusPacketBase; pEthernetHdr: PETHERNET_HDR; pIPHeader: PIP_RHDR; nProto, nIPProto: integer; begin if (FpPacket = nil) then exit; pEthernetHdr := PETHERNET_HDR(@(FpPacket^.Buffer[0])); nProto := TOUSHORT(@(pEthernetHdr^.Protocol[0])); case nProto of //IP PROTO_IP: begin pIPHeader := PIP_RHDR(@(pEthernetHdr^.Data[0])); nIPProto := pIPHeader^.Protocol; case nIPProto of //ICMP 1: sPacket := TIngusICMPPacket.Create( FMacAddr, @(FpPacket^.Buffer[0]) ); //TCP 6: sPacket := TIngusTCPPacket.Create(FMacAddr, @(FpPacket^.Buffer[0])); //UDP 17: sPacket := TIngusUDPPacket.Create(FMacAddr, @(FpPacket^.Buffer[0])); else sPacket := TIngusIPPacket.Create(FMacAddr, @(FpPacket^.Buffer[0])); end; end; else sPacket := TIngusPacketBase.Create( FMacAddr, @(FpPacket^.Buffer[0]) ); end; //Call Event handler if Assigned(FParsePacketEvent) then FParsePacketEvent( FRxPacketSeq, @(FpPacket^.Buffer[0]), FdwRxBytes, sPacket ); sPacket.Free; end; //----- TIngusSniffer ------// procedure TIngusSniffer.GetAdapterNameList; var i: integer; begin //Get Adapter names if (PacketGetAdapterNames(@FAdapterDescs[0], MAX_ADAPTER_COUNT, @FAdapterCount) = FALSE) then begin //Error....

exit; end; for i := 0 to FAdapterCount-1 do begin FAdapterNames.Add(StrPas(FAdapterDescs[i].szAdapterDesc)); end; end; function TIngusSniffer.GetMacAddr: PChar; begin Result := @FuMac; end; constructor TIngusSniffer.Create; begin inherited Create; FAdapterNames := TStringList.Create; //Get Adapter Names GetAdapterNameList; FbStartSnoop := FALSE; end; destructor TIngusSniffer.Destroy; begin if FbStartSnoop then StopSnoop; //Avoid Blue-Screen :) FAdapterNames.Free; inherited Destroy; end; function TIngusSniffer.StartSnoop(nAdapterIndex: integer): Boolean; var i: integer; begin Result := False; if (FbStartSnoop) then exit; if (nAdapterIndex >= FAdapterCount) then exit; //Open Adapter FhAdapter := PacketOpenAdapter(FAdapterDescs[nAdapterIndex].szAdapterName); if (FhAdapter = 0) then begin //Error in open adapter... exit; end; //Get Adapter Description if (PacketAdapterDesc(LPADAPTER(FhAdapter), @FuBuffer[0], sizeof(FuBuffer), @i) = TRUE) then begin if Assigned(FAfterGetAdapterDesc) then FAfterGetAdapterDesc(TRUE, StrPas(@FuBuffer[0])); end else begin //Error if Assigned(FAfterGetAdapterDesc) then FAfterGetAdapterDesc(FALSE, ''); end; //Get Current Mac Address if (PacketGetAddress(LPADAPTER(FhAdapter), @FuMac[0], 6, @i) = TRUE) then begin if Assigned(FAfterGetMacAddress) then FAfterGetMacAddress(TRUE, @FuMac[0]); end else begin //Error if Assigned(FAfterGetMacAddress) then FAfterGetMacAddress(FALSE, nil); end; //Select Filter mode if (PacketSetFilter(LPADAPTER(FhAdapter), NDIS_PACKET_TYPE_PROMISCUOUS) = TRUE) then begin if Assigned(FAfterSetFilter) then FAfterSetFilter(TRUE, NDIS_PACKET_TYPE_PROMISCUOUS); end else begin //Error if Assigned(FAfterSetFilter) then FAfterSetFilter(FALSE, NDIS_PACKET_TYPE_PROMISCUOUS); end; //Allocate Packet FpPacket := LPPACKET( PacketAllocatePacket(LPADAPTER(FhAdapter)) ); if (FpPacket = Nil) then begin //Error... PacketCloseAdapter(LPADAPTER(FhAdapter)); exit; end;

//set the packet's buffer and its max. length PacketInitPacket(FpPacket, @FuBuffer[0], 1520); FbStartSnoop := TRUE; //Create Thread FIngusThread := TIngusSnifferThread.Create; //Create Suspended Thread FIngusThread.MacAddr := @FuMac[0]; FIngusThread.Adapter := LPADAPTER(FhAdapter); FIngusThread.Packet := FpPacket; FIngusThread.OnParsePacket := FParsePacketEvent; FIngusThread.Resume; //Resume thread -> Execute Result := TRUE; end; procedure TIngusSniffer.StopSnoop; begin if not FbStartSnoop then exit; FIngusThread.Terminate; //close the underlying adapter PacketCloseAdapter(LPADAPTER(FhAdapter)); //free packet PacketFreePacket(FpPacket); FbStartSnoop := FALSE; FIngusThread.Free; end; end.

unit IngusPacket; interface uses windows, Protohdr, Ingusclass; type tagTRANSPORT_PROTOCOLS = packed record Protocol: UCHAR; szName: array [0..19] of Char; szDescription: array[0..MAX_PATH-1] of Char; end; TRANSPORT_PROTOCOLS = tagTRANSPORT_PROTOCOLS; LPTRANSPORT_PROTOCOLS = ^TRANSPORT_PROTOCOLS; TRANSPORT_PROTOCOLS_ARRAY = array [0..20] of TRANSPORT_PROTOCOLS; const transProtos: TRANSPORT_PROTOCOLS_ARRAY = ( (Protocol: 1; szName: 'ICMP'; szDescription: 'Internet Control Message'), (Protocol: 2; szName: 'IGMP'; szDescription: 'Internet Group Management'), (Protocol: 3; szName: 'GGP'; szDescription: 'Gateway-to-Gateway'), (Protocol: 4; szName: 'IP' ; szDescription: 'IP in IP (encasulation)'), (Protocol: 5; szName: 'ST' ; szDescription: 'Stream'), (Protocol: 6; szName: 'TCP'; szDescription: 'Transmission Control'), (Protocol: 8; szName: 'EGP'; szDescription: 'Exterior Gateway Protocol'), (Protocol: 9; szName: 'IGP'; szDescription: 'any private interior gateway'), (Protocol: 17; szName: 'UDP'; szDescription: 'User Datagram'), (Protocol: 27; szName: 'RDP'; szDescription: 'Reliable Data Protocol'), (Protocol: 28; szName: 'IRTP'; szDescription: 'Internet Reliable Transaction'), (Protocol: 29; szName: 'ISO-TP4'; szDescription: 'ISO Transport Protocol Class 4'), (Protocol: 35; szName: 'IDPR' ; szDescription: 'Inter-Domain Policy Routing Protocol'), (Protocol: 37; szName: 'DDP' ; szDescription: 'Datagram Delivery Protocol'), (Protocol: 38; szName: 'IDPR-CMTP'; szDescription: 'IDPR Control Message Transport Proto'), (Protocol: 88; szName: 'IGRP' ; szDescription: 'IGRP'), (Protocol: 89; szName: 'OSPFIGP' ; szDescription: 'OSPFIGP'), (Protocol: 92; szName: 'MTP' ; szDescription: 'Multicast Transport Protocol'), (Protocol: 94; szName: 'IPIP' ; szDescription: 'IP-within-IP Encapsulation Protocol'), (Protocol: 97; szName: 'ETHERIP' ; szDescription: 'Ethernet-within-IP Encapsulation'), (Protocol: 98; szName: 'ENCAP' ; szDescription: 'Encapsulation Header') ); const TRANSPROTOS_MAX = (* typedef struct _XICMPProto{ UCHAR icmp_type; UCHAR icmp_code; USHORT icmp_cksum; ULONG filler; }XICMP_HDR, *PXICMP_HDR; *) type _XICMPProto = packed record icmp_type: UCHAR; icmp_code: UCHAR; icmp_cksum: SHORT;

20; //it's Delphi :)

filler: ULONG; end; XICMP_HDR = _XICMPProto; PXICMP_HDR = ^XICMP_HDR;

_XARPProto = packed record ar_hwtype: SHORT; ar_prtype: SHORT; ar_hwlen: UCHAR; ar_prlen: UCHAR; ar_op: UCHAR; ar_addr: array[0..0] of Char; end; const ARP_REQUEST = 1; ARP_REPLY = 2; RARP_REQUEST = 3; RARP_REPLY = 4; type // //This classes will allow to trap event based on type of packet // TIngusIPPacket = class(TIngusPacketBase) private FIPProto: integer; FIPSourceAddr: PChar; FIPDestAddr: PChar; FData: PChar; FpIPHdr: PIP_RHDR; FIPLength: integer; protected public constructor Create(MacAddr: PChar; uBuffer: PChar); override; destructor Destroy; override; property IPProtocol: integer read FIPProto; property IPHeader: PIP_RHDR read FpIPHdr; property IPSourceAddr: PChar read FIPSourceAddr; property IPDestAddr: PChar read FIPDestAddr; property IPData: PChar read FData; property IPLength: integer read FIPLength; end; TIngusICMPPacket = class(TIngusIPPacket) private FIcmpType: UCHAR; FIcmpCode: UCHAR; FpIcmpHdr: PXICMP_HDR; protected public constructor Create(MacAddr: PChar; uBuffer: PChar); override; destructor Destroy; override; property ICMPHdr: PXICMP_HDR read FpIcmpHdr; property ICMPType: UCHAR read FIcmpType; property ICMPCode: UCHAR read FIcmpCode; end; TIngusTCPPacket = class(TIngusIPPacket) private FSourcePort: SHORT; FDestPort: SHORT; FSeq: ULONG; FAck: ULONG; FFlag: integer; FTCPHdr: PTCP_RHDR; protected function GetFlag: integer; public constructor Create(MacAddr: PChar; uBuffer: PChar); override; destructor Destroy; override; property TCPHeader: PTCP_RHDR read FTCPHdr; property SourcePort: SHORT read FSourcePort; property DestPort: SHORT read FDestPort; property SeqNum: ULONG read FSeq; property AckNum: ULONG read FAck; property Flag: integer read FFlag; end; TIngusUDPPacket = class(TIngusIPPacket) private FSourcePort: SHORT; FDestPort: SHORT; FUDPHdr: PUDP_RHDR; public

constructor Create(MacAddr: PChar; uBuffer: PChar); override; property UDPHeader: PUDP_RHDR read FUDPHdr; property SourcePort: SHORT read FSourcePort; property DestPort: SHORT read FDestPort; end; implementation //------ TIngusUDPPacket ------// constructor TIngusUDPPacket.Create(MacAddr: PChar; uBuffer: PChar); begin inherited Create(MacAddr, uBuffer); FUDPHdr := PUDP_RHDR(IPData); FSourcePort := TOUSHORT(@(FUDPHdr^.Source[0])); FDestPort := TOUSHORT(@(FUDPHdr^.Destination[0])); end; //------ TIngusTCPPacket ------// function TIngusTCPPacket.GetFlag: integer; begin Result := FTCPHdr^.Flags_Rsvd1 and $FC; if Result <> 0 then Result := FTCPHdr^.Flags_Rsvd1 div $4; //Shift Right 2 bits end; constructor TIngusTCPPacket.Create(MacAddr: PChar; uBuffer: PChar); begin inherited Create(MacAddr, uBuffer); FTCPHdr := PTCP_RHDR(IPData); FSourcePort := TOUSHORT(@(FTCPHdr^.Source[0])); FDestPort := TOUSHORT(@(FTCPHdr^.Destination[0])); FSeq := TOULONG(@(FTCPHdr^.Seq[0])); FAck := TOULONG(@(FTCPHdr^.Ack[0])); FFlag := GetFlag; end; destructor TIngusTCPPacket.Destroy; begin //... inherited Destroy; end; //----- TIngusIPPacket -----// constructor TIngusIPPacket.Create(MacAddr: PChar; uBuffer: PChar); begin inherited Create(MacAddr, uBuffer); FpIPHdr := PIP_RHDR(EthernetData); FIPSourceAddr := @(FpIPHdr^.Source[0]); FIPDestAddr := @(FpIPHdr^.Destination[0]); FData := @(FpIPHdr^.Data[0]); FIPProto := FpIPHdr^.Protocol; FIPLength := TOUSHORT(@(FpIPHdr^.Length[0])); end; destructor TIngusIPPacket.Destroy; begin //... inherited Destroy; end; //----- TIngusICMPPacket -----// constructor TIngusICMPPacket.Create(MacAddr: PChar; uBuffer: PChar); begin inherited Create(MacAddr, uBuffer); FpIcmpHdr := PXICMP_HDR(IPData); FIcmpType := FpIcmpHdr^.icmp_type; FIcmpCode := FpIcmpHdr^.icmp_code; end; destructor TIngusICMPPacket.Destroy; begin //... inherited Destroy; end; end.

10

program Monitor; uses Forms, Unit1 in 'Unit1.pas' {Form1}, Ingusclass in 'Ingusclass.pas', Protohdr in 'Protohdr.pas', packet32 in 'Packet32.pas', IngusPacket in 'IngusPacket.pas', Unit2 in 'Unit2.pas' {Form2}, Unit3 in 'Unit3.pas' {Form3}; {$R *.RES} begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.CreateForm(TForm2, Form2); Application.CreateForm(TForm3, Form3); Application.Run; end.

Unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Ingusclass, Protohdr, IngusPacket, Grids, DBGrids, DB, DBTables, ExtCtrls, Variants, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient; type TForm1 = class(TForm) ComboBox1: TComboBox; Button1: TButton; Button2: TButton; GroupBox1: TGroupBox; GroupBox2: TGroupBox; LabeledEdit1: TLabeledEdit; LabeledEdit2: TLabeledEdit; Label1: TLabel; GroupBox3: TGroupBox; Label2: TLabel; LabeledEdit3: TLabeledEdit; LabeledEdit4: TLabeledEdit; GroupBox4: TGroupBox; LabeledEdit5: TLabeledEdit; LabeledEdit6: TLabeledEdit; Label4: TLabel; ListBox1: TListBox; Label3: TLabel; Button3: TButton; Button4: TButton; Label5: TLabel; GroupBox5: TGroupBox; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; Label6: TLabel; Table1: TTable;

11

DataSource1: TDataSource; DBGrid1: TDBGrid; Label7: TLabel; DBGrid2: TDBGrid; Table2: TTable; DataSource2: TDataSource; Button5: TButton; Button6: TButton; Button7: TButton; TimerICMP: TTimer; Table1Org: TTable; TableTmp: TTable; TimerUDP: TTimer; TimerTCP: TTimer; UDPClient: TIdUDPClient; LabeledEdit7: TLabeledEdit; LabeledEdit8: TLabeledEdit; Label8: TLabel; LabeledEdit9: TLabeledEdit; GroupBox6: TGroupBox; ListBox2: TListBox; Button8: TButton; Button9: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char); procedure LabeledEdit1Change(Sender: TObject); procedure LabeledEdit2Change(Sender: TObject); procedure LabeledEdit3Change(Sender: TObject); procedure LabeledEdit4Change(Sender: TObject); procedure LabeledEdit5Change(Sender: TObject); procedure LabeledEdit6Change(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); procedure ComboBox1Change(Sender: TObject); procedure CheckBox1Click(Sender: TObject); procedure CheckBox2Click(Sender: TObject); procedure CheckBox3Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure TimerICMPTimer(Sender: TObject); procedure TimerUDPTimer(Sender: TObject); procedure TimerTCPTimer(Sender: TObject); procedure Button7Click(Sender: TObject); procedure LabeledEdit8Change(Sender: TObject); procedure LabeledEdit9Change(Sender: TObject); procedure Button8Click(Sender: TObject); procedure Button9Click(Sender: TObject); private { Private declarations } sIngus: TIngusSniffer; FIniFileName: String; idxICMPLength, idxICMPFrequency, idxICMPFrequencyB, idxUDPLength, idxUDPFrequency, idxUDPFrequencyB, idxTCPCheckSYN, idxTCPMaxSYN, idxPort, idxNIC, idxViewICMP, idxViewUDP, idxViewTCP : Integer; nCounterICMP: Integer; sIPICMP: String; nCounterUDP: Integer; sIPUDP: String; nCounterTCP: Integer; sIPTCP: String; procedure WriteINI; procedure ReadINI; procedure ClearTmp; procedure DelICMPTmp(nTotPacketICMP: Integer); procedure DelUDPTmp(nTotPacketUDP: Integer); procedure DelTCPTmp(nTotPacketTCP: Integer); procedure BlockIP(bBlock: Boolean; S: String); public { Public declarations } procedure OnParsePacketHandle( nPacketSeq: Longint; uBuffer: PChar; nRecvBytes: integer; sPacket: TIngusPacketBase );

12

procedure OnAfterGetAdapterDesc(bStatus: Boolean; sAdapterDesc: string); procedure OnAfterGetMacAddress(bStatus: Boolean; pMacAddr: PChar); end; var Form1: TForm1; implementation uses IniFiles, Unit2, Unit3; {$R *.DFM} const sSectionData = 'Data'; sSectionPort = 'Port'; sSectionUser = 'User'; sICMPLength = 'ICMPLength'; sICMPFrequency = 'ICMPFrequency'; sICMPFrequencyB = 'ICMPFrequencyB'; sUDPLength = 'UDPLength'; sUDPFrequency = 'UDPFrequency'; sUDPFrequencyB = 'UDPFrequencyB'; sTCPCheckSYN = 'TCPCheckSYN'; sTCPMaxSYN = 'TCPMaxSYN'; sUser = 'user'; sPort = 'Port'; sNIC = 'NIC'; sViewICMP = 'ViewICMP'; sViewUDP = 'ViewUDP'; sViewTCP = 'ViewTCP'; sIPServer = 'IPServer'; procedure TForm1.BlockIP(bBlock: Boolean; S: String); begin if bBlock then UDPClient.Send('0'+S) else UDPClient.Send('1'+S); end; procedure TForm1.ClearTmp; begin if Table1.RecordCount>0 then begin repeat Table1.First; Table1.Delete; until Table1.RecordCount<=0; end; end; procedure TForm1.FormCreate(Sender: TObject); begin FIniFileName := LowerCase(ExtractFileName(Application.ExeName)); FIniFileName := Copy(FIniFileName, 1, Length(FIniFileName) - 3) + 'ini'; sIngus := TIngusSniffer.Create; sIngus.OnParsePacket := OnParsePacketHandle; sIngus.OnAfterGetAdapterDesc := OnAfterGetAdapterDesc; sIngus.OnAfterGetMacAddress := OnAfterGetMacAddress; ComboBox1.Items.Assign(sIngus.AdapterNameList); //ComboBox1.ItemIndex := 0; nCounterICMP:=0; sIPICMP:=''; nCounterUDP:=0; sIPUDP:=''; nCounterTCP:=0; sIPTCP:=''; ClearTmp; ReadINI; end; procedure TForm1.FormDestroy(Sender: TObject); begin sIngus.Free; UDPClient.Active:=False; end; procedure TForm1.OnParsePacketHandle( nPacketSeq: Longint; uBuffer: PChar; nRecvBytes: integer; sPacket: TIngusPacketBase ); var S, sIP, sMacAddr: string;

13

//pIPHdr: PIP_RHDR; sIpPacket: TIngusIPPacket; sIcmpPacket: TIngusICMPPacket; sTCPPacket: TIngusTCPPacket; sUDPPacket: TIngusUDPPacket; nSrcPort, nDestPort: integer; I: Integer; bFound, sFound: Boolean; begin if sPacket.EthernetProtocol <> PROTO_IP then exit; sIPPacket := TIngusIPPacket(sPacket); // FPiette May 17, 1999 sMacAddr := Format( '%.2X:%.2X:%.2X:%.2X:%.2X:%.2X', [ UCHAR(sIngus.MacAddr[0]), UCHAR(sIngus.MacAddr[1]), UCHAR(sIngus.MacAddr[2]), UCHAR(sIngus.MacAddr[3]), UCHAR(sIngus.MacAddr[4]), UCHAR(sIngus.MacAddr[5]) ] ); sIP:=Format('%u.%u.%u.%u', [ UCHAR(sIPPacket.IPSourceAddr^), UCHAR((sIPPacket.IPSourceAddr+1)^), UCHAR((sIPPacket.IPSourceAddr+2)^), UCHAR((sIPPacket.IPSourceAddr+3)^) ]); { sIP:=Format('%u.%u.%u.%u', [ UCHAR(sIPPacket.IPDestAddr^), UCHAR((sIPPacket.IPDestAddr+1)^), UCHAR((sIPPacket.IPDestAddr+2)^), UCHAR((sIPPacket.IPDestAddr+3)^) ]); } { Memo1.Lines.Add(''); Memo1.Lines.Add(IntToStr(nPacketSeq)); Memo1.Lines.Add(sMacAddr); Memo1.Lines.Add(Format('Source: %u.%u.%u.%u', [ UCHAR(sIPPacket.IPSourceAddr^), UCHAR((sIPPacket.IPSourceAddr+1)^), UCHAR((sIPPacket.IPSourceAddr+2)^), UCHAR((sIPPacket.IPSourceAddr+3)^) ])); Memo1.Lines.Add(Format('Destination: %u.%u.%u.%u', [ UCHAR((sIPPacket.IPDestAddr)^), UCHAR((sIPPacket.IPDestAddr+1)^), UCHAR((sIPPacket.IPDestAddr+2)^), UCHAR((sIPPacket.IPDestAddr+3)^) ])); } if sIP=LabeledEdit7.Text then exit; begin sFound:=False; for I:=0 to ListBox2.Count-1 do begin S:=sIP; if ListBox2.Items.Strings[I]=S then sFound:=True; end; if not sfound then begin case sIPPacket.IPProtocol of 1: begin //ICMP Table1.Append; Table1['DateTime']:=Now; Table1['IP']:=sIP; Table1['Port']:=null; Table1['MAC']:=sMacAddr; Table1['Length']:=sIPPacket.IPLength; Table1['Quantity']:=1; Table1['Type']:='ICMP'; Table1['Note']:=False; Table1.Post;

//Memo1.Lines.Add('ICMP'); end; 17: begin //UDP sUDPPacket := TIngusUDPPacket(sPacket); Table1.Append; Table1['DateTime']:=Now; Table1['IP']:=sIP; Table1['Port']:=sUDPPacket.DestPort; Table1['MAC']:=sMacAddr; Table1['Length']:=sIPPacket.IPLength; Table1['Quantity']:=1; Table1['Type']:='UDP'; Table1['Note']:=False; Table1.Post; end;

14

6: begin //TCP sTCPPacket := TIngusTCPPacket(sPacket); //Memo1.Lines.Add('TCP'); //nSrcPort := sTCPPacket.SourcePort; //nDestPort := sTCPPacket.DestPort; //Memo1.Lines.Add('PS: '+IntToStr(nSrcPort)); //Memo1.Lines.Add('DS: '+IntToStr(nDestPort)); if (sTCPPacket.TCPHeader.Flags_Rsvd1 and 2)<>0 then begin bFound:=False; for I:=0 to ListBox1.Count-1 do begin S:=IntToStr(sTCPPacket.SourcePort); if ListBox1.Items.Strings[I]=S then bFound:=True; end; if not bFound then begin //TCP flooding if not Table2.Locate('IP', sIP, [loCaseInsensitive]) then begin Table2.Append; Table2['DateTime']:=Now; Table2['IP']:=sIP; Table2['Port']:=sTCPPacket.SourcePort; Table2['MAC']:=sMacAddr; Table2['Length']:=sIPPacket.IPLength; Table2['Quantity']:=1; Table2['Type']:='TCP'; Table2['Note']:=True; Table2.Post; BlockIP(True, sIP); end; end else begin //next check for SYN Table1.Append; Table1['DateTime']:=Now; Table1['IP']:=sIP; Table1['Port']:=sTCPPacket.SourcePort; Table1['MAC']:=sMacAddr; Table1['Length']:=sIPPacket.IPLength; Table1['Quantity']:=1; Table1['Type']:='TCP'; Table1['Note']:=False; Table1.Post; end; end; end; end; end; end; end; procedure TForm1.OnAfterGetAdapterDesc(bStatus: Boolean; sAdapterDesc: string); begin //Memo1.Lines.Add('***Adapter Desc: '+sAdapterDesc); end; procedure TForm1.OnAfterGetMacAddress(bStatus: Boolean; pMacAddr: PChar); begin { Memo1.Lines.Add(Format( '***MAC Address: %.2X:%.2X:%.2X:%.2X:%.2X:%.2X', [ UCHAR(pMacAddr^), UCHAR((pMacAddr+1)^), UCHAR((pMacAddr+2)^), UCHAR((pMacAddr+3)^), UCHAR((pMacAddr+4)^), UCHAR((pMacAddr+5)^) ] )); } end; procedure TForm1.Button1Click(Sender: TObject); begin //Start //Memo1.Lines.Clear; Button1.Enabled:=False; Button2.Enabled:=True; sIngus.StartSnoop(ComboBox1.ItemIndex); end; procedure TForm1.Button2Click(Sender: TObject); begin //Stop Button2.Enabled:=False; Button1.Enabled:=True; sIngus.StopSnoop; end; procedure TForm1.WriteINI; var

15

IniFile : TIniFile; S: String; I: Integer; begin IniFile := TIniFile.Create(FIniFileName); S:=IntToStr(idxICMPLength); IniFile.WriteString(sSectionData, sICMPLength, S); S:=IntToStr(idxICMPFrequency); IniFile.WriteString(sSectionData, sICMPFrequency, S); S:=IntToStr(idxICMPFrequencyB); IniFile.WriteString(sSectionData, sICMPFrequencyB, S); S:=IntToStr(idxUDPLength); IniFile.WriteString(sSectionData, sUDPLength, S); S:=IntToStr(idxUDPFrequency); IniFile.WriteString(sSectionData, sUDPFrequency, S); S:=IntToStr(idxUDPFrequencyB); IniFile.WriteString(sSectionData, sUDPFrequencyB, S); S:=IntToStr(idxTCPCheckSYN); IniFile.WriteString(sSectionData, sTCPCheckSYN, S); S:=IntToStr(idxTCPMaxSYN); IniFile.WriteString(sSectionData, sTCPMaxSYN, S); S:=IntToStr(idxNIC); IniFile.WriteString(sSectionData, sNIC, S); S:=IntToStr(idxViewICMP); IniFile.WriteString(sSectionData, sViewICMP, S); S:=IntToStr(idxViewUDP); IniFile.WriteString(sSectionData, sViewUDP, S); S:=IntToStr(idxViewTCP); IniFile.WriteString(sSectionData, sViewTCP, S); IniFile.WriteString(sSectionData, sIPServer, LabeledEdit7.Text); IniFile.EraseSection(sSectionPort); if ListBox1.Items.Count>0 then begin for I:=0 to ListBox1.Items.Count-1 do begin IniFile.WriteString(sSectionPort, sPort+IntToStr(I), ListBox1.Items.Strings[I]); end; end; IniFile.EraseSection(sSectionUser); if ListBox2.Items.Count>0 then begin for I:=0 to ListBox2.Items.Count-1 do begin IniFile.WriteString(sSectionuser, sUser+IntToStr(I), ListBox2.Items.Strings[I]); end; end; IniFile.Free; end; procedure TForm1.ReadINI; var IniFile : TIniFile; S: String; C,D: Integer; begin IniFile:=TIniFile.Create(FIniFileName); S:=IniFile.ReadString(sSectionData, sICMPLength, '100'); Val(S, idxICMPLength, C); S:=IniFile.ReadString(sSectionData, sICMPFrequency, '5'); Val(S, idxICMPFrequency, C); S:=IniFile.ReadString(sSectionData, sICMPFrequencyB, '5'); Val(S, idxICMPFrequencyB, C); S:=IniFile.ReadString(sSectionData, sUDPLength, '100'); Val(S, idxUDPLength, C); S:=IniFile.ReadString(sSectionData, sUDPFrequency, '5'); Val(S, idxUDPFrequency, C); S:=IniFile.ReadString(sSectionData, sUDPFrequencyB, '5'); Val(S, idxUDPFrequencyB, C); S:=IniFile.ReadString(sSectionData, sTCPCheckSYN, '5'); Val(S, idxTCPCheckSYN, C); S:=IniFile.ReadString(sSectionData, sTCPMaxSYN, '5'); Val(S, idxTCPMaxSYN, C); S:=IniFile.ReadString(sSectionData, sNIC, '0'); Val(S, idxNIC, C); S:=IniFile.ReadString(sSectionData, sViewICMP, '1'); Val(S, idxViewICMP, C); S:=IniFile.ReadString(sSectionData, sViewUDP, '1'); Val(S, idxViewUDP, C); S:=IniFile.ReadString(sSectionData, sViewTCP, '1'); Val(S, idxViewTCP, C); S:=IniFile.ReadString(sSectionData, sIPServer, '192.168.0.1'); LabeledEdit7.Text:=S; UDPClient.Host:=S; C:=-1; ListBox1.Clear; repeat Inc(C, 1); S:=IniFile.ReadString(sSectionPort, sPort+IntToStr(C), ''); if S<>'' then ListBox1.Items.Append(S); until S='';

D := -1; ListBox2.Clear; repeat Inc(D, 1); S:=IniFile.ReadString(sSectionUser, sUser+IntToStr(D), ''); if S<>'' then ListBox2.Items.Append(S); until S=''; IniFile.Free; ComboBox1.ItemIndex:=idxNIC; CheckBox1.Checked:=Boolean(idxViewICMP); CheckBox2.Checked:=Boolean(idxViewUDP); CheckBox3.Checked:=Boolean(idxViewTCP); LabeledEdit1.Text:=IntToStr(idxICMPLength); LabeledEdit2.Text:=IntToStr(idxICMPFrequency); LabeledEdit8.Text:=IntToStr(idxICMPFrequencyB); LabeledEdit3.Text:=IntToStr(idxUDPLength);

16

LabeledEdit4.Text:=IntToStr(idxUDPFrequency); LabeledEdit9.Text:=IntToStr(idxUDPFrequencyB); LabeledEdit5.Text:=IntToStr(idxTCPCheckSYN); LabeledEdit6.Text:=IntToStr(idxTCPMaxSYN); end; procedure TForm1.LabeledEdit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', #8]) then Key:=#0; end; procedure TForm1.LabeledEdit1Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit1.Text, idxICMPLength, C); WriteINI; end; procedure TForm1.LabeledEdit2Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit2.Text, idxICMPFrequency, C); WriteINI; end; procedure TForm1.LabeledEdit3Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit3.Text, idxUDPLength, C); WriteINI; end; procedure TForm1.LabeledEdit4Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit4.Text, idxUDPFrequency, C); WriteINI; end; procedure TForm1.LabeledEdit5Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit5.Text, idxTCPCheckSYN, C); WriteINI; end; procedure TForm1.LabeledEdit6Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit6.Text, idxTCPMaxSYN, C); WriteINI; end; procedure TForm1.Button3Click(Sender: TObject); begin if Form2.ShowModal<>mrOK then exit; ListBox1.Items.Append(Form2.LabeledEdit1.Text); WriteINI; end; procedure TForm1.Button4Click(Sender: TObject); begin if ListBox1.ItemIndex<0 then exit; if Application.MessageBox('Hapus Port ?','Konfirmasi',MB_OKCancel)<>IDOK then exit; ListBox1.DeleteSelected; WriteIni; end; procedure TForm1.Button5Click(Sender: TObject); begin WriteINI; sIngus.StopSnoop; Close; end; procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); begin if Application.MessageBox('Keluar ?','Konfirmasi',MB_OKCancel)<>IDOK then CanClose:=False; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin idxNIC:=ComboBox1.ItemIndex;

17

WriteINI; end; procedure TForm1.CheckBox1Click(Sender: TObject); begin idxViewICMP:=Integer(CheckBox1.Checked); WriteINI; end; procedure TForm1.CheckBox2Click(Sender: TObject); begin idxViewUDP:=Integer(CheckBox2.Checked); WriteINI; end; procedure TForm1.CheckBox3Click(Sender: TObject); begin idxViewTCP:=Integer(CheckBox3.Checked); WriteINI; end; procedure TForm1.Button6Click(Sender: TObject); begin ClearTmp; end; procedure TForm1.DelICMPTmp(nTotPacketICMP: Integer); var bNext: Boolean; begin //if (nTotPacketICMP>0) and (nTotPacketICMP<idxICMPFrequency) then begin if TableTmp.RecordCount>0 then begin TableTmp.First; while not TableTmp.Eof do begin bNext:=True; if TableTmp['IP']=sIPICMP then begin TableTmp.Delete; bNext:=False; end; if bNext then TableTmp.Next; end; sIPICMP:=''; nCounterICMP:=0; Table1.Refresh; end; end; end; procedure TForm1.TimerICMPTimer(Sender: TObject); var bNext: Boolean; nTotPacketICMP: Integer; begin Inc(nCounterICMP, 1); nTotPacketICMP:=0; if Table1Org.RecordCount>0 then begin Table1Org.First; while not Table1Org.Eof do begin bNext:=True; if Table1Org['Type']='ICMP' then begin if Table1Org['Length']>idxICMPLength then begin //Big Packet if nCounterICMP>=10 then begin if sIPICMP='' then begin sIPICMP:=Table1Org['IP']; Inc(nTotPacketICMP, 1); end else begin if sIPICMP=Table1Org['IP'] then Inc(nTotPacketICMP, 1); end; if nTotPacketICMP>=idxICMPFrequencyB then begin //ICMP Flooding if not Table2.Locate('IP', sIPICMP, [loCaseInsensitive]) then begin Table2.Append;

18

Table2['DateTime']:=Table1['DateTime']; Table2['IP']:=Table1['IP']; Table2['Port']:=Table1['Port']; Table2['MAC']:=Table1['MAC']; Table2['Length']:=Table1['Length']; Table2['Quantity']:=Table1['Quantity']; Table2['Type']:=Table1['Type']; Table2['Note']:=True; Table2.Post; BlockIP(True, sIPICMP); end; DelICMPTmp(nTotPacketICMP); end; end; end else begin //Small Packet if sIPICMP='' then begin sIPICMP:=Table1Org['IP']; Inc(nTotPacketICMP, 1); end else begin if sIPICMP=Table1Org['IP'] then Inc(nTotPacketICMP, 1); end; if nTotPacketICMP>=idxICMPFrequency then begin //ICMP Flooding if not Table2.Locate('IP', sIPICMP, [loCaseInsensitive]) then begin Table2.Append; Table2['DateTime']:=Table1['DateTime']; Table2['IP']:=Table1['IP']; Table2['Port']:=Table1['Port']; Table2['MAC']:=Table1['MAC']; Table2['Length']:=Table1['Length']; Table2['Quantity']:=Table1['Quantity']; Table2['Type']:=Table1['Type']; Table2['Note']:=True; Table2.Post; BlockIP(True, sIPICMP); end; DelICMPTmp(nTotPacketICMP); //daemon routine end else begin Table1Org.Delete; bNext:=False; end; end; end; if bNext then Table1Org.Next; end; //DelICMPTmp(nTotPacketICMP); end; Table1.Refresh; end; procedure TForm1.DelUDPTmp(nTotPacketUDP: Integer); var bNext: Boolean; begin //if (nTotPacketUDP>0) and (nTotPacketUDP<idxUDPFrequency) then begin if TableTmp.RecordCount>0 then begin TableTmp.First; while not TableTmp.Eof do begin bNext:=True; if TableTmp['IP']=sIPUDP then begin TableTmp.Delete; bNext:=False; end; if bNext then TableTmp.Next; end; sIPUDP:=''; nCounterUDP:=0; Table1.Refresh; end; end;

19

end; procedure TForm1.TimerUDPTimer(Sender: TObject); var bNext: Boolean; nTotPacketUDP: Integer; begin Inc(nCounterUDP, 1); nTotPacketUDP:=0; if Table1Org.RecordCount>0 then begin Table1Org.First; while not Table1Org.Eof do begin bNext:=True; if Table1Org['Type']='UDP' then begin if Table1Org['Length']>idxUDPLength then begin //Big Packet if nCounterUDP>=10 then begin if sIPUDP='' then begin sIPUDP:=Table1Org['IP']; Inc(nTotPacketUDP, 1); end else begin if sIPUDP=Table1Org['IP'] then Inc(nTotPacketUDP, 1); end; if nTotPacketUDP>=idxUDPFrequencyB then begin //UDP Flooding if not Table2.Locate('IP', sIPUDP, [loCaseInsensitive]) then begin Table2.Append; Table2['DateTime']:=Table1['DateTime']; Table2['IP']:=Table1['IP']; Table2['Port']:=Table1['Port']; Table2['MAC']:=Table1['MAC']; Table2['Length']:=Table1['Length']; Table2['Quantity']:=Table1['Quantity']; Table2['Type']:=Table1['Type']; Table2['Note']:=True; Table2.Post; BlockIP(True, sIPUDP); end; DelUDPTmp(nTotPacketUDP); end; end; end else begin //Small Packet if sIPUDP='' then begin sIPUDP:=Table1Org['IP']; Inc(nTotPacketUDP, 1); end else begin if sIPUDP=Table1Org['IP'] then Inc(nTotPacketUDP, 1); end; if nTotPacketUDP>=idxUDPFrequency then begin //UDP Flooding if not Table2.Locate('IP', sIPUDP, [loCaseInsensitive]) then begin Table2.Append; Table2['DateTime']:=Table1['DateTime']; Table2['IP']:=Table1['IP']; Table2['Port']:=Table1['Port']; Table2['MAC']:=Table1['MAC']; Table2['Length']:=Table1['Length']; Table2['Quantity']:=Table1['Quantity']; Table2['Type']:=Table1['Type']; Table2['Note']:=True; Table2.Post; BlockIP(True, sIPUDP); end; DelUDPTmp(nTotPacketUDP); //daemon routine end else begin Table1Org.Delete;

20

bNext:=False; end; end; end; if bNext then Table1Org.Next; end; //DelUDPTmp(nTotPacketUDP); end; Table1.Refresh; end; procedure TForm1.DelTCPTmp(nTotPacketTCP: Integer); var bNext: Boolean; begin if (nTotPacketTCP>0) and (nTotPacketTCP<idxTCPMaxSYN) then begin if TableTmp.RecordCount>0 then begin TableTmp.First; while not TableTmp.Eof do begin bNext:=True; if TableTmp['IP']=sIPTCP then begin TableTmp.Delete; bNext:=False; end; if bNext then TableTmp.Next; end; sIPTCP:=''; nCounterTCP:=0; Table1.Refresh; end; end; end; procedure TForm1.TimerTCPTimer(Sender: TObject); var bNext: Boolean; nTotPacketTCP: Integer; begin Inc(nCounterTCP, 1); nTotPacketTCP:=0; if Table1Org.RecordCount>0 then begin Table1Org.First; while not Table1Org.Eof do begin bNext:=True; if Table1Org['Type']='TCP' then begin //chek kriteria if nCounterTCP>=idxTCPCheckSYN then begin if sIPTCP='' then begin sIPTCP:=Table1Org['IP']; Inc(nTotPacketTCP, 1); end else begin if sIPTCP=Table1Org['IP'] then Inc(nTotPacketTCP, 1); end; if nTotPacketTCP>=idxTCPMaxSYN then begin //TCP Flooding if not Table2.Locate('IP', sIPTCP, [loCaseInsensitive]) then begin Table2.Append; Table2['DateTime']:=Table1['DateTime']; Table2['IP']:=Table1['IP']; Table2['Port']:=Table1['Port']; Table2['MAC']:=Table1['MAC']; Table2['Length']:=Table1['Length']; Table2['Quantity']:=Table1['Quantity']; Table2['Type']:=Table1['Type']; Table2['Note']:=True; Table2.Post; BlockIP(True, sIPTCP); end; DelTCPTmp(nTotPacketTCP);

21

//daemon routine end; end; end; if bNext then Table1Org.Next; end; DelTCPTmp(nTotPacketTCP); end; Table1.Refresh; end; procedure TForm1.Button7Click(Sender: TObject); begin { if Table2.RecordCount>0 then begin repeat Table2.First; Table2.Delete; until Table2.RecordCount<=0; end; } if Table2.RecordCount<=0 then exit; if Table2['IP']=null then exit; if Table2['IP']='' then exit; BlockIP(False, Table2['IP']); Table2.Delete; end; procedure TForm1.LabeledEdit8Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit8.Text, idxICMPFrequencyB, C); WriteINI; end; procedure TForm1.LabeledEdit9Change(Sender: TObject); var C: Integer; begin Val(LabeledEdit9.Text, idxUDPFrequencyB, C); WriteINI; end; procedure TForm1.Button8Click(Sender: TObject); begin if Form3.ShowModal<>mrOK then exit; ListBox2.Items.Append(Form3.LabeledEdit1.Text); WriteINI; end; procedure TForm1.Button9Click(Sender: TObject); begin if ListBox2.ItemIndex<0 then exit; if Application.MessageBox('Hapus User ?','Konfirmasi',MB_OKCancel)<>IDOK then exit; ListBox2.DeleteSelected; WriteIni; end; end.

unit Unit2; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm2 = class(TForm) LabeledEdit1: TLabeledEdit; Button1: TButton; Button2: TButton; procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject); procedure FormActivate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form2: TForm2;

22

implementation {$R *.dfm} procedure TForm2.LabeledEdit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', #8]) then Key:=#0; end; procedure TForm2.FormShow(Sender: TObject); begin LabeledEdit1.SetFocus; end; procedure TForm2.FormActivate(Sender: TObject); begin LabeledEdit1.Text:=''; end; end.

unit Unit3; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm3 = class(TForm) LabeledEdit1: TLabeledEdit; Button1: TButton; Button2: TButton; procedure LabeledEdit1KeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject); procedure FormActivate(Sender: TObject); //procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.LabeledEdit1KeyPress(Sender: TObject; var Key: Char); begin if not (Key in ['0'..'9', #8]) then Key:=#0; end; procedure TForm3.FormShow(Sender: TObject); begin LabeledEdit1.SetFocus; end; procedure TForm3.FormActivate(Sender: TObject); begin LabeledEdit1.Text:=''; end;

end.

Listing Program Daemon pada Server

unit main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdSocketHandle, IdComponent, IdUDPBase, IdUDPServer; type TfrmMain = class(TForm) Button1: TButton; UDPServer: TIdUDPServer; procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); private

23

{ Private declarations } function FileExec(const aCmdLine: String; aHide, aWait: Boolean): Boolean; public { Public declarations } end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.Button1Click(Sender: TObject); begin Close; end; procedure TfrmMain.FormDestroy(Sender: TObject); begin UDPServer.Active:=False; end; procedure TfrmMain.UDPServerUDPRead(Sender: TObject; AData: TStream; ABinding: TIdSocketHandle); var DataStringStream: TStringStream; s: String; begin s:=''; DataStringStream := TStringStream.Create(''); try DataStringStream.CopyFrom(AData, AData.Size); s:=DataStringStream.DataString; finally DataStringStream.Free; end; if s<>'' then begin if s[1]='0' then begin //block System.Delete(s, 1, 1); FileExec('c:\ipsecpol -w REG -p "firewall" -f '+s+'+0 -n BLOCK', False, False); end else begin //release System.Delete(s, 1, 1); FileExec('c:\ipsecpol -w REG -p "firewall" -f '+s+'+0 -n PASS', False, False); end; end; end; // aCmdLine Path and filename of file to launch : String // aHide Hide this program while the launched one runs : Boolean // aWait Wait for the launched program to finish : Boolean function TfrmMain.FileExec(const aCmdLine: String; aHide, aWait: Boolean): Boolean; var StartupInfo : TStartupInfo; ProcessInfo : TProcessInformation; begin {setup the startup information for the application } FillChar(StartupInfo, SizeOf(TStartupInfo), 0); with StartupInfo do Begin cb := SizeOf(TStartupInfo); dwFlags := STARTF_USESHOWWINDOW or STARTF_FORCEONFEEDBACK; If aHide Then wShowWindow := SW_HIDE else wShowWindow := SW_SHOWNORMAL; End; Result := CreateProcess(nil,PChar(aCmdLine), nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo); If aWait Then If Result Then Begin WaitForInputIdle(ProcessInfo.hProcess, INFINITE); WaitForSingleObject(ProcessInfo.hProcess, INFINITE); End; end;

end.

Listing Program Penguji ( Flooding data)

24

unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdRawBase, IdRawClient, IdIcmpClient, StdCtrls, ExtCtrls, Ping, IdUDPBase, IdUDPServer, IdTCPConnection, IdTCPClient, IdTCPServer; type TForm1 = class(TForm) GroupBox1: TGroupBox; LabeledEdit2: TLabeledEdit; Button1: TButton; Button2: TButton; Button3: TButton; TimerICMP: TTimer; LabeledEdit3: TLabeledEdit; ICMP: TPing; LabeledEdit1: TLabeledEdit; GroupBox2: TGroupBox; LabeledEdit4: TLabeledEdit; Button4: TButton; Button5: TButton; LabeledEdit5: TLabeledEdit; TimerUDP: TTimer; UDP: TIdUDPServer; LabeledEdit6: TLabeledEdit; GroupBox3: TGroupBox; Button6: TButton; Button7: TButton; LabeledEdit9: TLabeledEdit; TCPServer: TIdTCPServer; procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure TimerICMPTimer(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure TimerUDPTimer(Sender: TObject); procedure Button6Click(Sender: TObject); procedure Button7Click(Sender: TObject); procedure TCPServerExecute(AThread: TIdPeerThread); private { Private declarations } sUDP, sTCP: String; portUDP: Integer; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button3Click(Sender: TObject); begin Close; end; procedure TForm1.Button1Click(Sender: TObject); var I, C: Integer; begin ICMP.Address:=LabeledEdit1.Text; Val(LabeledEdit3.Text, I, C); ICMP.Size:=I; Val(LabeledEdit2.Text, I, C); TimerICMP.Interval:=I; TimerICMP.Enabled:=True; end; procedure TForm1.Button2Click(Sender: TObject); begin TimerICMP.Interval:=0; TimerICMP.Enabled:=False; end; procedure TForm1.TimerICMPTimer(Sender: TObject); begin ICMP.Ping; end; procedure TForm1.Button4Click(Sender: TObject); var I, C: Integer;

25

begin Val(LabeledEdit5.Text, I, C); SetLength(sUDP, I); FillChar(sUDP[1], I, 'x'); Val(LabeledEdit6.Text, I, C); UDP.DefaultPort:=I; portUDP:=I; UDP.Active:=True; Val(LabeledEdit4.Text, I, C); TimerUDP.Interval:=I; TimerUDP.Enabled:=True; end; procedure TForm1.Button5Click(Sender: TObject); begin TimerUDP.Interval:=0; TimerUDP.Enabled:=False; UDP.Active:=False; end; procedure TForm1.TimerUDPTimer(Sender: TObject); begin UDP.Send(LabeledEdit1.Text, portUDP, sUDP); end; procedure TForm1.Button6Click(Sender: TObject); var I, C: Integer; begin Val(LabeledEdit9.Text, I, C); TCPServer.DefaultPort:=I; TCPServer.Bindings.Clear; TCPServer.Bindings.Add.Port:=I; TCPServer.Active := True; end; procedure TForm1.Button7Click(Sender: TObject); begin TCPServer.Active:=False; end; procedure TForm1.TCPServerExecute(AThread: TIdPeerThread); begin with AThread.Connection do begin WriteLn('xxx'); Disconnect; end; end; end.

Listing Program Trojan pada Server

unit ClientMain; interface uses {$IFDEF Linux} QForms, QGraphics, QControls, QDialogs, QStdCtrls, QExtCtrls, {$ELSE} windows, messages, graphics, controls, forms, dialogs, stdctrls, extctrls, {$ENDIF} SysUtils, Classes, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient; type TForm2 = class(TForm) TCPClient: TIdTCPClient; pnlTop: TPanel; btnGo: TButton; lstMain: TListBox; LabeledEdit1: TLabeledEdit; LabeledEdit3: TLabeledEdit; TimerTCP: TTimer; LabeledEdit2: TLabeledEdit; Button1: TButton; Button2: TButton; procedure btnGoClick(Sender: TObject); procedure TimerTCPTimer(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private public end;

26

var Form2: TForm2; implementation {$IFDEF MSWINDOWS}{$R *.dfm}{$ELSE}{$R *.xfm}{$ENDIF}

// Any data received from the client is added as a text line in the ListBox procedure TForm2.btnGoClick(Sender: TObject); var I, C: Integer; begin Val(LabeledEdit3.Text, I, C); TCPClient.Port:=I; TCPClient.Host:=LabeledEdit2.Text; Val(LabeledEdit1.Text, I, C); TimerTCP.Interval:=I; TimerTCP.Enabled:=True; end; procedure TForm2.TimerTCPTimer(Sender: TObject); begin with TCPClient do begin Connect; try lstMain.Items.Add(ReadLn); finally Disconnect; end; end; end; procedure TForm2.Button1Click(Sender: TObject); begin //TCPClient.DisconnectSocket; //TCPClient.Disconnect; TimerTCP.Interval:=0; TimerTCP.Enabled:=False; end; procedure TForm2.Button2Click(Sender: TObject); begin lstmain.Clear; end; end.

27

You might also like