IMPLEMENTASI IPTABLES DAN SQUID SEBAGAI
FIREWALL DAN TRANSPARENT PROXY
JARINGAN PADA SERVER CENTOS DI
PT. DMC TEKNOLOGI INDONESIA
SKRIPSI
Oleh:SUARJAN
311521038
TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI PELITA BANGSA
BEKASI
IMPLEMENTASI IPTABLES DAN SQUID SEBAGAI
FIREWALL DAN TRANSPARENT PROXY
JARINGAN PADA SERVER CENTOS DI
PT. DMC TEKNOLOGI INDONESIA
SKRIPSI
Diajukan Sebagai Salah Satu Syarat Untuk Menyelesaikan Program Strata Satu (S1) pada Program Studi Teknik Informatika
Oleh:
SUARJAN
311521038
TEKNIK INFORMATIKA
SEKOLAH TINGGI TEKNOLOGI PELITA BANGSA
BEKASI
i
PERSETUJUAN
SKRIPSI
IMPLEMENTASI IPTABLES DAN SQUID SEBAGAI FIREWALL DAN TRANSPARENT PROXY
JARINGAN PADA SERVER CENTOS DI PT. DMC TEKNOLOGI INDONESIA
Yang disusun oleh Suarjan 311521038
telah disetujui oleh Dosen Pembimbing Skripsi pada tanggal ………
Dosen Pembimbing 1 Dosen Pembimbing 2
Muhammad Fatchan, S.Kom, Muhammad Makmun Effendi, S.Kom, M.Kom M.Kom
NIDN : 0403107605 NIDN : 0430087804
Mengetahui
Kaprodi Teknik Informatika
Aswan S. Sunge, S.E, M.Kom NIDN : 0426018083
i
PENGESAHAN
SKRIPSI
IMPLEMENTASI IPTABLES DAN SQUID SEBAGAI FIREWALL DAN TRANSPARENT PROXY
JARINGAN PADA SERVER CENTOS DI PT. DMC TEKNOLOGI INDONESIA
Yang disusun oleh Nama Lengkap
Suarjan
telah dipertahankan di depan Dewan Penguji pada tanggal ………..
Susunan Dewan Penguji
Nama Penguji Tanda Tangan
Nama dan gelar penguji 1 __________________
Nama dan gelar penguji 2 __________________
Mengetahui
Kaprodi Teknik Informatika
Aswan S. Sunge, S.E, M.Kom NIDN : 0426018083
iii
PERNYATAAN KEASLIAN PENELITIAN
Saya yang bertandatangan dibawah ini menyatakan bahwa, skripsi ini merupakan karya saya sendiri (ASLI), dan isi dalam skripsi ini tidak terdapat karya yang pernah diajukan oleh orang lain untuk memperoleh gelar akademis di suatu institusi pendidikan tinggi manapun, dan sepanjang pengetahuan saya juga tidak terdapat karya atau pendapat yang pernah ditulis dan/atau diterbitkan oleh orang lain, kecuali yang secara tertulis diacu dalam naskah ini dan disebutkan dalam daftar pustaka.
Segala sesuatu yang terkait dengan naskah dan karya yang telah dibuat adalah menjadi tanggungjawab saya pribadi.
Bekasi, 23 Oktober 2018
Materai 6.000
Suarjan NIM : 311521038
iv
KATA PENGANTAR
Puji syukur penulis panjatkan ke hadiran Allah SWT. yang telah melimpahkan segala rahmat dan hidayah-Nya, sehingga tersusunlah Skripsi yang berjudul “IMPLEMENTASI IPTABLES DAN SQUID SEBAGAI FIREWALL DAN TRANSPARENT PROXY JARINGAN PADA SERVER CENTOS DI PT. DMC TEKNOLOGI INDONESIA”.
Skripsi tersusun dalam rangka melengkapi salah satu persyaratan dalam rangka menempuh ujian akhir untuk memperoleh gelar Sarjana Komputer (S.Kom.) pada Program Studi Teknik Informatika di Sekolah Tinggi Teknologi Pelita Bangsa. Penulis sungguh sangat menyadari, bahwa penulisan Skripsi ini tidak akan terwujud tanpa adanya dukungan dan bantuan dari berbagai pihak. Sudah selayaknya, dalam kesempatan ini penulis menghaturkan penghargaan dan ucapan terima kasih yang sebesar-besarnya kepada:
a. Bapak Dr. Ir. Suprianto, M.P selaku Ketua STT Pelita Bangsa.
b. Bapak Aswan S. Sunge S.E., M.Kom selaku Ketua Program Studi Teknik Informatika STT Pelita Bangsa.
c. Bapak Muhammad Fatchan, S.Kom, M.Kom. selaku Pembimbing Utama yang telah banyak memberikan arahan dan bimbingan kepada penulis dalam penyusunan Skripsi ini.
d. Bapak Muhammad Makmun Effendi, S.Kom, M.Kom. selaku Pembimbing Kedua yang telah banyak memberikan arahan dan bimbingan kepada penulis dalam penyusunan Skripsi ini.
e. Seluruh Dosen STT Pelita Bangsa yang telah membekali penulis dengan wawasan dan ilmu di bidang teknik informatika.
f. Seluruh staf STT Pelita Bangsa yang telah memberikan pelayanan terbaiknya kepada penulis selama perjalanan studi jenjang Strata 1.
g. Rekan-rekan mahasiswa STT Pelita Bangsa, khususnya angkatan 2013, yang telah banyak memberikan inspirasi dan semangat kepada penulis untuk dapat menyelesaikan studi jenjang Strata 1.
v
h. Ibu, istri dan anak-anak tercinta yang senantiasa mendoakan dan memberikan semangat dalam perjalanan studi Strata 1 maupun dalam kehidupan penulis.
Akhir kata, penulis mohon maaf atas kekeliruan dan kesalahan yang terdapat dalam Skripsi ini dan berharap semoga Skripsi ini dapat memberikan manfaat bagi khasanah pengetahuan Teknologi Informasi di lingkungan STT Pelita Bangsa khususnya dan Indonesia pada umumnya.
Bekasi, 23 Oktober 2018
vi
DAFTAR ISI
PERSETUJUAN ... i
PENGESAHAN ... i
PERNYATAAN KEASLIAN PENELITIAN ... iii
KATA PENGANTAR ... iv DAFTAR ISI ... vi DAFTAR TABEL ... ix DAFTAR GAMBAR ... x ABSTRACT ... xiii ABSTRAK ... xiv BAB I PENDAHULUAN ... 1 1.1 Latar Belakang... 1 1.2 Identifikasi Masalah ... 3 1.3 Rumusan Masalah ... 3 1.4 Batasan Masalah ... 4
1.5 Tujuan dan Manfaat ... 4
1.5.1 Tujuan ... 4
1.5.2 Manfaat ... 4
1.6 Sistematika Penulisan ... 5
vii
2.1 Kajian Pustaka ... 7
2.2 Implementasi ... 9
2.3 Jaringan Komputer... 10
2.3.1 Topologi Jaringan Komputer ... 11
2.3.2 Kategori Jaringan Komputer ... 18
2.4 Firewall ... 21
2.4.1 Karakteristik Firewall ... 21
2.4.2 Teknik yang digunakan oleh Firewall... 22
2.4.3 Tipe Firewall ... 23
2.5 Linux ... 28
2.5.1 Distribusi Linux ... 29
2.5.2 Perintah Dasar Linux ... 29
2.5.3 CentOS ... 33
2.6 IPTables ... 34
2.6.1 Syntax Pada IPTables ... 36
2.7 Squid ... 48
BAB III METODE PENELITIAN ... 49
3.1 Waktu dan Tempat Penelitian ... 49
3.2 Teknik Pengumpulan Data ... 49
3.3 Jenis Data ... 50
viii
3.5 Analisis Sistem ... 51
3.6 Rancangan Sistem yang Berjalan ... 52
3.7 Rancangan Sistem yang Diajukan ... 53
BAB IV HASIL DAN PEMBAHASAN ... 55
4.1 Hasil ... 55
4.1.1 Instalasi Linux CentOS 7 di Virtual Box ... 55
4.1.2 Konfigurasi IPTables sebagai Firewall Rules ... 73
4.1.3 Konfigurasi Squid sebagai Transparent Proxy ... 77
4.2 Pembahasan ... 81
4.2.1 Firewall menggunakan IPTables ... 83
4.2.2 Transparent Proxy menggunakan Squid ... 85
BAB V KESIMPULAN ... 88
5.1 Kesimpulan... 88
5.2 Saran ... 89
DAFTAR PUSTAKA ... 90
ix
DAFTAR TABEL
Table 2. 1 End of Support CentOS ... 34
Table 2. 2 Command IPTables ... 36
Table 2. 3 Options IPTables ... 38
Table 2. 4 Generic Matches IPTables ... 39
Table 2. 5 Implicit Matches IPTables ... 40
x
DAFTAR GAMBAR
Gambar 2. 1 Topologi Ring ... 12
Gambar 2. 2 Topologi Bus ... 13
Gambar 2. 3 Topologi Star ... 14
Gambar 2. 4 Topologi Mesh... 16
Gambar 2. 5 Topologi Tree ... 17
Gambar 2. 6 LAN ... 19
Gambar 2. 7 MAN ... 19
Gambar 2. 8 WAN ... 20
Gambar 2. 9 Packet-Filtering Router ... 25
Gambar 2. 10 Application-Level Gateway ... 26
Gambar 2. 11 Circuit-Level Gateway ... 27
Gambar 2. 12 Diagram Perjalanan Paket pada IPTables ... 35
Gambar 2. 13 Diagram Perjalanan paket pada Squid ... 48
Gambar 3. 1 SDLC Waterfall ... 51
Gambar 3. 2 Topologi Sistem yang Berjalan ... 52
Gambar 3. 3 Topologi Sistem yang Diajukan ... 53
Gambar 4. 1 Membuat Virtual Machine ... 56
Gambar 4. 2 Pengaturan RAM ... 57
Gambar 4. 3 Pembuatan Virtual Harddisk ... 57
Gambar 4. 4 Penentuan Tipe Virtual Harddisk ... 58
xi
Gambar 4. 6 Penentuan Kapasitas Virtual Harddisk ... 59
Gambar 4. 7 Pengisian File ISO CentOS 7 ... 60
Gambar 4. 8 Pemilihan Bahasa ... 61
Gambar 4. 9 Installation Summary Window ... 62
Gambar 4. 10 Pengaturan Regional, Tanggal dan Waktu ... 63
Gambar 4. 11 Pemilihan Lokasi Instalasi ... 64
Gambar 4. 12 Metode Partisi ... 65
Gambar 4. 13 Pengaturan Partisi ... 66
Gambar 4. 14 Rangkuman Perubahan ... 66
Gambar 4. 15 Pemilihan Paket Instalasi ... 67
Gambar 4. 16 Kolom Pembuatan User dan Password ... 68
Gambar 4. 17 Pembuatan User dan Password ... 68
Gambar 4. 18 Proses Finalisasi Penginstallan OS CentOS 7 ... 68
Gambar 4. 19 Pembuatan Jaringan NAT di Virtual Box ... 69
Gambar 4. 20 CentOS 7 Network Settings (Adapter 1) ... 70
Gambar 4. 21 CentOS 7 Network Settings (Adapter 2) ... 71
Gambar 4. 22 Windows 7 Network Settings (Adapter 1) ... 72
Gambar 4. 23 Login CentOS 7 ... 73
Gambar 4. 24 Disable service firewalld ... 73
Gambar 4. 25 Script Rules IPTables ... 75
Gambar 4. 26 Restore script IPTables ... 76
Gambar 4. 27 Restart Service IPTables ... 76
Gambar 4. 28 Status service IPTables ... 76
xii
Gambar 4. 30 Check rules table NAT ... 77
Gambar 4. 31 IP Forwarding ipv4 ... 77
Gambar 4. 32 Instalasi Squid ... 78
Gambar 4. 33 Konfigurasi Squid ... 78
Gambar 4. 34 Konfigurasi Squid Rules ... 79
Gambar 4. 35 File blokir.acl ... 79
Gambar 4. 36 Squid Parse ... 80
Gambar 4. 37 Start Squid ... 80
Gambar 4. 38 Enable Squid ... 80
Gambar 4. 39 Check Status Squid ... 81
Gambar 4. 40 Simulasi Pengujian ... 82
Gambar 4. 41 Client Ping ke Server ... 83
Gambar 4. 42 Server Ping ke Client ... 84
Gambar 4. 43 Client ping ke interface public server ... 84
Gambar 4. 44 Client dapat akses Internet ... 85
Gambar 4. 45 Akses website detik.com diluar rules... 86
Gambar 4. 46 Akses website detik.com didalam rules ... 86
Gambar 4. 47 Akses website nekonime.tv diluar rules ... 87
xiii
ABSTRACT
Suarjan, 311521038
“IPTables And Squid Implementation As A Network Firewall And Transparent Proxy On CentOS Server In PT. DMC Teknologi Indonesia”
Thesis, Department of Informatics Engineering, 2018
Computer network security is a very important thing in information technology that relies on the internet today. The number of attacks in the Internet network capable of causing damage to a system, must be assembled professionally by a system administrator in an institution or company by increasing security on the system itself. One technique that is widely applied is to use a firewall. Firewall itself is a device used to control and build access to the network in a system. Firewall itself can be shaped hardware and software.
At this time PT. DMC Technology Indonesia is already using a CentOS 7 operating system based on Linux on one of its servers. Linux is very famous for its strong and stable security system. One of the tools that can work as a firewall and transparent proxy on Linux is IPTables and Squid. With IPTables and Squid, a system administrator can control and hold access to the network and also the settings of any packets that may enter the system.
xiv
ABSTRAK
Suarjan, 311521038
“Implementasi IPTables Dan Squid Sebagai Firewall Dan Transparent Proxy Jaringan Pada Server CentOS Di PT. DMC Teknologi Indonesia”
Skripsi, Teknik Informatika, Sekolah Tinggi Teknik Informatika Pelita Bangsa, 2017
Keamanan jaringan komputer merupakan hal yang sangat penting dalam teknologi informasi yang mengandalkan internet saat ini. Banyaknya serangan dalam jaringan internet yang mampu menyebabkan rusaknya sebuah sistem, harus ditangani secara profesional oleh seorang System Administrator dalam sebuah lembaga atau perusahaan dengan cara meningkatkan keamanan pada sistem itu sendiri. Salah satu tehnik yang banyak diterapkan adalah dengan menggunakan firewall. Firewall sendiri adalah perangkat yang digunakan untuk mengontrol dan membatasi hak akses terhadap jaringan dalam sebuah sistem. Firewall sendiri dapat berbentuk hardware maupun software.
Pada saat ini PT. DMC Teknologi Indonesia sudah menggunakan sistem operasi CentOS 7 yang berbasis Linux pada salah satu servernya. Linux sangat terkenal dengan sistem keamanannya yang kuat dan stabil. Salah satu tools yang dapat berfungsi sebagai firewall dan transparent proxy pada Linux adalah IPTables dan Squid. Dengan IPTables dan Squid seorang System Administrator dapat mengontrol dan membatasi hak akses terhadap jaringan dan juga mengatur paket-paket apa saja yang boleh masuk ke dalam sistem.
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Pada era globalisasi saat ini, kebutuhan akan informasi yang cepat, tepat, dan akurat sangat penting sekali. Salah satu media untuk dapat menyalurkan informasi dengan sangat cepat pada saat ini adalah jaringan internet. Dengan adanya internet maka segala informasi baik itu berupa tulisan, audio, dan video dapat sampai ke tangan masyarakat dengan cepat, tepat, serta akurat. Jaringan internet tidak lagi menjadi sebuah kebutuhan sekunder atau tersier, melainkan sudah menjadi kebutuhan primer bagi setiap individu, apalagi individu-individu yang bergerak dalam sebuah perusahaan, instansi maupun lembaga, dimana hampir semua sistem sudah terhubung dalam sebuah jaringan, termasuk jaringan internet. Bahkan sudah bermunculan berbagai macam fasilitas di dalam internet seperti
E-Commerce, E-Campus, E-Payment, dll. Semua ini semakin memudahkan setiap
orang untuk dapet berinteraksi sesuai dengan kebutuhannya masing-masing, dan bahkan fasilitas-fasilitas berbasis internet tersebut mampu menggeser sistem-sistem manual dan tradisional yang sudah lama ada, seperti contohnya, sekarang setiap orang yang ingin membeli baju ataupun barang elektronik, tidak perlu lagi datang ke pasar atau mall untuk berbelanja, cukup dengan membuka situs E-Commerce seperti Bukalapak ataupun Tokopedia untuk mencari apa yang dibutuhkan, tentunya dengan harga yang relatif lebih murah, dikarenakan kebanyakan seller pada E-Commerce tidak selalu mempunyai toko fisik, yang artinya mengurangi biaya operasional penjual sendiri, dan tentunya sangat berpengaruh kepada harga barang yang dijual oleh si penjual.
2
Internet seperti sebuah pisau yang mempunyai dua sisi, di satu sisi dia berguna untuk hal-hal yang sifatnya positif dan bermanfaat bagi khalayak ramai. Tapi tidak sedikit juga beberapa orang maupun pihak yang memiliki pengetahuan lebih tentang dunia IT memanfaatkan jaringan internet untuk hal-hal negatif, dan mengambil keuntungan dengan cara-cara yang illegal. Hal-hal negatif ini yang biasanya dikenal sebagai cyber crime atau kejahatan siber. Contoh beberapa kejahatan dalam dunia siber seperti, virus, malware, website defacing, pencurian database kartu kredit, phising, wireless cracking, dll. Tentu saja ini mengakibatkan kerugian di satu pihak dan menguntungkan di pihak lainnya. Untuk itu di setiap perusahaan ataupun instansi memiliki satu orang atau lebih system administrator atau sebuah departemen khusus untuk bagian IT security yang berfungsi untuk menanggulangi segala macam kejahatan dalam dunia siber yang dapat mengakibatkan kerusakan fatal pada sistem tersebut.
PT. DMC Teknologi Indonesia merupakan sebuah perusahaan asing dari Jepang yang bergerak pada bidang industri elektronik, tepatnya dalam pembuatan produk touchscreen atau touchpanel, dan sebagian besar produknya diekspor keluar negeri. Pada saat ini PT. DMC Teknologi Indonesia sudah menggunakan jaringan internet di dalam sistemnya. PT. DMC Teknologi Indonesia saat ini sudah menggunakan dua produsen perangkat jaringan yang sangat terkenal dan diakui kualitasnya di dunia, yaitu Cisco dan Mikrotik. Namun perusahaan ini belum memiliki sebuah firewall rules di antara perangkat switch dengan client.
Oleh karena itu, perlunya dibuatkan sebuah firewall lagi di antara switch yang mengarah ke client untuk menciptakan sebuah topologi yang aman khususnya dalam mengatur paket-paket yang diperbolehkan masuk ke dalam client dan juga
3
mengurangin resiko serangan-serangan dari luar. Tentunya diharapkan dengan bertambahnya satu buah firewall ini dapat meningkatkan keamanan sistem dalam perusahaan dari serangan-serangan di dalam jaringan internet, dan juga dapat mengatur paket-paket apa yang diperbolehkan lewat di dalamnya, serta hak-hak akses apa saja yang dapat diterima oleh client di dalam sistem yang tentunya sudah disesuaikan dengan kebijakan perusahaan
1.2 Identifikasi Masalah
Permasalahan terjadi pada jaringan di dalam sistem, yaitu :
1. Belum adanya sebuah firewall yang dibutuhkan untuk meningkatkan keamanan di dalam area private network.
2. Belum terciptanya topologi DMZ (Demilitarized Zone) di dalam jaringan perusahaan.
3. Belum adanya rules yang digunakan di dalam jaringan perusahaan untuk mengatur paket-paket yang berjalan di dalam jaringan maupun hak akses dalam hal penggunaan internet untuk masing-masing client.
1.3 Rumusan Masalah
Adapun permasalahan yang dihadapi dapat dirumuskan sebagai berikut : Membangun sebuah firewall dengan menggunakan Linux CentOS 7 dan mengimplementasikan rules IPTables dan Squid serta menciptakan sebuah topologi DMZ (Demilitarized Zone) di dalamnya yang dapat meningkatkan keamanan jaringan di dalam sistem di PT. DMC Teknologi Indonesia agar terhindar dari
4
serangan-serangan dari dalam dan luar jaringan serta mengatur hak-hak akses yang akan digunakan untuk mengatur kegiatan client selama berada di dalam jaringan.
1.4 Batasan Masalah
Dalam penelitian ini penulis membatasi permasalahan yang akan dibahas sebagai studi kasus adalah sebagai berikut.
1. Menambahkan firewall, dan implementasi topologi DMZ di dalam jaringan perusahaan
2. Penggunaan Linux CentOS 7 sebagai sistem operasi untuk firewall dan
transparent proxy server.
3. Implementasi IPTables dan Squid sebagai pengatur rules kepada client.
1.5 Tujuan dan Manfaat
1.5.1 Tujuan
Membangun sebuah firewall dengan sistem operasi Linux CentOS 7 dan mengimplementasikan IPTables dan Squid sebagai rules untuk firewall yang berada di dalam jaringan perusahaan serta mengimplementasikan topologi DMZ.
1.5.2 Manfaat
Sedangkan manfaat dari penelitian ini antara lain : 1. Bagi Perusahaan :
Membantu departemen IT PT. DMC Teknologi Indonesia untuk meningkatkan keamanan dan memaksimalkan jaringan yang ada di dalam perusahaan dengan penambahan firewall dan pegimplementasian topologi
5
DMZ serta dapat menghemat biaya dengan memanfaatkan salah satu server untuk dijadikan firewall tanpa perlu membeli perangkat tambahan.
2. Bagi Pembaca :
Mampu menciptakan sebuah firewall dengan sistem operasi berbasis Linux, dan mampu mengimplementasikan serta memaksimalkan penggunaan IPTables dan Squid.
1.6 Sistematika Penulisan
Untuk memudahkan pemahaman dalam penyusunan penelitian ini, penulis membagi menjadi lima (5) bab secara sistematis sebagai berikut :
BAB I PENDAHULUAN
Pada bab ini berisi uraian latar belakang masalah, permasalahan penelitian, tujuan dan manfaat penelitian, teknik pengumpulan data, dan sistematika penulisan. BAB II LANDASAN TEORI
Pada bab ini dijelaskan tentang tinjauan pustaka mengenai jurnal dengan judul skripsi yang dibuat, jaringan komputer, firewall, internet, linux, CentOS 7, IPTables, Squid dan Virtual Box.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Pada bab ini dijelaskan tentang analisis terhadap seluruh spesifikasi sistem yang mencakup topologi jaringan yang sedang berjalan dan juga perancangan sistem baru.
6
BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM
Pada bab ini dibahas tentang implementasi dari hasil tahapan analisis dan perancangan sistem, serta kebutuhan perangkat keras dan perangkat lunak yang diperlukan untuk membangun sistem secara simulasi dengan menggunakan virtualisasi.
BAB V KESIMPULAN DAN SARAN
Pada bab ini terdiri dari kesimpulan dan saran yang berisikan hal-hal terpenting yang dibahas dan kemudian dibuat kesimpulan. Bab ini juga berisi saran-saran yang diberikan dan mungkin dapat menambah pengetahuan untuk pengembangan sistem dan jaringan yang telah dibuat.
7
BAB II
TINJAUAN PUSTAKA
2.1 Kajian Pustaka
Menurut Muhar Syarif (2008), dalam penelitiannya yang berjudul “Implementasi IPTables sebagai Filtering Firewall”, diperoleh kesimpulan bahwa penggunaan IPTables sebagai firewall memiliki beberapa keunggulan seperti biaya yang murah, kemampuan untuk menginspeksi paket serta mampu bekerja dengan ICMP dan UDP sebagaimana koneksi TCP, dan dapat membatasi usaha-usaha koneksi sebagai tindakan preventif serangan syn flooding denial of service (DOS).
Menurut Sujito dan Mukhamad Fakthur Roji (2010), dalam penelitiannya yang berjudul “Sistem Keamanan Internet dengan menggunakan IPTables sebagai
Firewall”, diperoleh kesimpulan bahwa penggunaan IPTables sebagai aplikasi dari firewall, dapat membantu administrator untuk memfilter jaringan dari pemakai
yang tidak mempunyai hak akses, agar tidak bebas keluar masuk jaringan internet. Menurut Qurrotul Aini dan Victor Amrizal (2010), dalam penelitiannya yang berjudul “Implementasi IPTables Firewall pada Linux sebagai Sistem Keamanan Jaringan yang handal”, diperoleh kesimpulan dengan menggunakan IPTables sebagai firewall sebenarnya cukup untuk melindungi jaringan yang terhubung dengan dunia luar dari berbagai macam serangan dan ancaman yang datang dari pihak-pihak yang tidak bertanggung jawab.
Menurut Akrom Musajid (2016), dalam bukunya yang berjudul “Panduan Singkat Membangun Server CentOS”, Squid dapat digunakan sebagai web caching
8
aktifitas user ketika menggunakan internet, pengaturan waktu untuk dapat mengakses internet, dan lain-lain. Sehingga dengan menggunakan Squid, seluruh permintaan akses terhadap internet dapat diatur di dalam Squid yang berfungsi sebagai sebuah proxy server.
Menurut Fatah Yasin Al Irsyadi (2012), dalam penelitiannya yang berjudul “Implementasi Squid Server Pada Proxy Cache Video”, bahwa Squid banyak sekali digunakan untuk mengatur lalu lintas akses ke website, meningkatkan kinerja ketika melakukan browsing kepada user, serta mampu menyediakan konten yang statis dan dinamis dalam penggunaan internet di lingkungan perusahaan.
Dari kelima penelitian di atas, maka penulis dapat menyimpulkan bahwa pengimplementasian IPTables dan Squid sebagai firewall di dalam sebuah jaringan memiliki banyak keunggulan seperti yang dijabarkan oleh Muhar Syarif (2008) dan Akrom Musajid (2016), yaitu mampu menginspeksi paket dan membatasi usaha-usaha koneksi sebagai tindakan preventif dari serangan denial of service (DOS) dan juga mampu melakukan caching terhadap website dan DNS, serta mengatur semua kebijakan yang berhubungan dengan akses internet. Begitupun dengan penelitian yang dilakukan oleh Sujito dan Mukhamad Fakthur Roji (2010) serta Fatah Yasin Al Irsyadi (2012), dimana penulis bisa mengambil kesimpulan bahwa seorang
system administrator sangat diuntungkan dengan penggunaan IPTables dan Squid
sebagai alat untuk memfilter jaringan dari pemakai yang tidak mempunyai hak akses, yang tentunya dapat berakibat fatal bila pemakai yang tidak mempunyai hak akses tersebut dapat masuk ke dalam jaringan sekaligus mampu melakukan proses
caching terhadap aktifitas user ketika mengunjungi website dan juga video.
9
firewall yang tangguh dalam sistem operasi berbasis Linux, yang mampu
memberikan keamanan yang maksimal pada sebuah jaringan di dalam sebuah perusahaan maupun instansi dengan biaya yang relatif murah.
2.2 Implementasi
Pengertian implementasi menurut Kamus Besar Bahasa Indonesia berarti pelaksanaan; penerapan. Adapun secara etimologis menurut kamus Webster yang dikutip oleh Solichin Abdul Wahab adalah Konsep implementasi berasal dari bahasa inggris yaitu to implement. Dalam kamus besar webster, to implement (mengimplementasikan) berarti to provide the means of carrying out (menyediakan sarana untuk melaksanakan sesuatu); dan to give practical effect to (untuk menimbulkan dampak/akibat terhadap sesuatu). (Webster dalam Wahab, 2004:64).
Secara sederhana implementasi dapat diartikan pelaksanaan atau penerapan. Majone dan Wildavsky (dalam Nurdin dan Usman, 2002), mengemukakan implementasi sebagai evaluasi. Browne dan Wildavsky (dalam Nurdin dan Usman, 2004:70) mengemukakan bahwa ”implementasi adalah perluasan aktivitas yang saling menyesuaikan”. Pengertian implementasi sebagai aktivitas yang saling menyesuaikan juga dikemukakan oleh Mclaughin (dalam Nurdin dan Usman, 2004). Adapun Schubert (dalam Nurdin dan Usman, 2002:70) mengemukakan bahwa ”implementasi adalah sistem rekayasa.”.
Pengertian-pengertian di atas memperlihatkan bahwa kata implementasi bermakna pada aktivitas, penerapan, atau pelaksanaan suatu sistem. Ungkapan penerapan mengandung arti bahwa implementasi bukan sekadar aktivitas, tetapi
10
suatu kegiatan yang terencana dan dilakukan secara sungguh-sungguh berdasarkan penelitian atau norma tertentu untuk mencapai tujuan kegiatan.
2.3 Jaringan Komputer
Menurut Jafar Noor Yudianto (2007), “Jaringan komputer adalah sebuah sistem yang terdiri atas komputer-komputer yang didesain untuk dapat berbagi sumber daya, berkomunikasi, dan dapat mengakses informasi. Agar tercapai tujuannya, setiap bagian dari jaringan komputer dapat meminta dan memberikan layanan (service). Pihak yang meminta/menerima layanan disebut klien (client), dan yang memberikan/mengirimkan layanan disebut peladen (server). Desain ini disebut dengan sistem client-server, dan digunakan pada hampir seluruh aplikasi jaringan komputer”.
"Jaringan komputer merupakan kumpulan dari perangkat keras dan lunak di dalam suatu sistem yang memiliki aturan tertentu untuk mengatur seluruh anggotanya dalam melakukan aktivitas komunikasi. Satu komputer yang terkoneksi ke jaringan menjadi satu node dari jaringan tersebut. Sedangkan host secara umum diartikan sebagai komputer yang terkoneksi ke jaringan yang dapat memberikan layanan jaringan (network service)." (Tanenbaum, Andrew S. (2003). Computer Networks 4th Edition. New Jersey: Prentice Hall)
Menurut Kristanto (2003), “Jaringan komputer merupakan sekelompok komputer otonom yang saling berhubungan satu sama lain, dengan menggunakan satu protokol komunikasi sehingga seluruh komputer yang saling terhubung
11
tersebut dapat berbagi informasi, program, sumber daya dan juga dapat saling menggunakan perangkat keras lainnya secara bersamaan."
Dari definisi di atas dapat diambil kesimpulan, bahwa jaringan komputer merupakan sebuah kumpulan dari beberapa perangkat keras dan perangkat lunak yang terkoneksi satu sama lain dan dapat digunakan untuk berbagi resources dan informasi dengan menggunakan metode client-server untuk saling memberikan dan menerima layanan atau informasi.
2.3.1 Topologi Jaringan Komputer
Topologi jaringan adalah suatu bentuk/struktur jaringan yang menghubungkan antar komputer satu dengan yang lainnya dengan menggunakan media kabel maupun nirkabel. Dalam jaringan komputer terdapat beberapa topologi yang umum untuk digunakan, yaitu :
1. Topologi Ring
Pada topologi ring setiap komputer dihubungkan dengan komputer lain dan seterusnya sampai kembali lagi ke komputer pertama, dan membentuk sebuah lingkaran sehinggan disebut dengan ring. Topologi ini berkomunikasi menggunakan data token untuk mengontrol hak akses komputer untuk menerima data, misalnya komputer 1 akan mengirim file ke komputer 4, maka data akan melewati komputer 2 dan 3 sampai diterima oleh komputer 4. Jadi sebuah komputer akan melanjutkan pengiriman data jika yang dituju bukanlah ip address nya.
12
Gambar 2. 1 Topologi Ring
Kelebihan :
- Lebih mudah dalam proses instalasi. - Biaya instalasi lebih murah.
- Kecepatan transfer data yang lebih cepat. Kekurangan :
- Jika salah satu komputer ataupun kabel bermasalah, berakibat putusnya koneksi dalam satu jaringan.
- Sering terjadinya collision (tubrukan) data. - Sulit dalam melakukan troubleshooting
2. Topologi Bus
Topologi bus menggunakan sebuah kabel tunggal sebagai media transmisinya atau kabel pusat tempat dimana seluruh client dan server
13
dihubungkan. Sehingga komputer atau jaringan lain dapat dengan mudah dihubungkan satu sama lain.
Kelebihan :
- Layout kabel sederhana sehingga instalasi relatif mudah.
- Biaya instalasi yang relatif murah.
- Kerusakan pada satu komputer client tidak akan berpengaruh terhadap jaringan.
- Penambahan dan pengurangan terminal dapat dilakukan tanpa menggangu operasi yang sedang berjalan
Kekurangan :
- Jika kabel utama atau backbone putus maka semua jaringan terganggu/terputus.
- Kabel utama yang panjang menyulitkan dalam troubleshooting. - Kemungkinan collision (tabrakan) data apabila banyak client yang
mengirimkan pesan dan dapat menurunkan kecepatan komunikasi. - Keamanan data kurang terjamin.
14
- Diperlukan repeater untuk jarak jauh. 3. Topologi Star
Topologi ini berbentuk seperti bintang karena semua komputer yang berada dalam jaringan dihubungkan ke sebuah hub atau switch dengan kabel UTP, sehingga hub/switch yang menjadi pusat dari jaringan dan bertugas untuk mengontrol lalu lintas data. Sebagai contoh jika komputer 1 ingin mengirimkan data ke komputer 4, data akan dikirim ke switch dan langsung dikirimkan ke komputer tujuan tanpa melewati komputer lain. Topologi jaringan inilah yang paling banyak digunakan sampai dengan saat ini karena kelebihannya lebih banyak dibandingkan dengan topologi lainnya.
15 Kelebihan :
- Mudah melakukan troubleshooting pada jaringan.
- Mudah melakukan penambahan atau pengurangan komputer tanpa menggangu jaringan.
- Tingkat keamanan data yang sangat tinggi.
Kekurangan :
- Memerlukan biaya instalasi yang tinggi karena membutuhkan banyak kabel dan switch/hub.
- Kestabilan jaringan sangat tergantung kepada terminal pusat, yaitu
switch/hub. Jika switch/hub terjadi gangguan, maka akan berakibat
gangguan kepada jaringan.
4. Topologi Mesh
Pada topologi ini setiap komputer akan terhubung dengan komputer lain dalam jaringannya menggunakan kabel tunggal, jadi proses pengiriman data akan langsung mencapai komputer tujuan tanpa melewati komputer lain ataupun switch/hub.
16
Gambar 2. 4 Topologi Mesh
Kelebihan :
- Proses pengiriman data dan informasi lebih cepat.
- Jika salah satu komputer mengalami kerusakan tidak akan mengganggu jaringan.
Kekurangan :
- Membutuhkan biaya yang sangat tinggi, karena membutuhkan banyak penggunanaan kabel dan port I/O.
17 5. Topologi Tree
Topologi tree merupakan gabungan dari beberapa topologi star yang dihubungkan dengan topologi bus, jadi setiap topologi star akan terhubung dengan topologi star lainnya menggunakan topologi bus. Biasanya dalam topologi ini terdapat beberapa tingkatan jaringan, dan jaringan yang berada pada tingkat yang lebih tinggi dapat mengontrol jaringan yang berada pada tingkat yang lebih rendah.
18 Kelebihan :
- Mudah dalam melakukan troubleshooting.
- Mudah melakukan penambahan dan perubahan dalam jaringan.
Kekurangan :
- Menggunakan banyak kabel sehingga biaya relatif tinggi.
- Jika terjadi kerusakan pada jaringan tingkat tinggi, jaringan pada tingkat yang lebih rendah akan mengalami gangguan juga.
2.3.2 Kategori Jaringan Komputer
Menurut Winarno Sugeng dan Theta Dinnarwaty Putri (2014:8-10), jaringan komputer saat ini umumnya dibagi kedalam tiga jenis kategori, yaitu LAN
(Local Area Network), MAN (Metropolitan Area Network), dan WAN (Wide Area Network).
1. LAN (Local Area Network)
Jaringan yang terdapat dalam sebuah gedung atau perkantoran. Umumnya jaringan LAN dimiliki oleh suatu perusahaan atau organisasi tertentu. Jaringan LAN digunakan untuk menghubungkan komputer-komputer yang terdapat dalam gedung tersebut. Komputer-komputer dihubungkan untuk berbagi sumber daya yang ada, misalnya printer agar dapat digunakan bersama-sama.
19
Gambar 2. 6 LAN
2. MAN (Metropolitan Area Network)
Merupakan versi LAN yang berukuran lebih besar dan biasanya memakai teknologi yang sama dengan LAN. MAN umumnya digunakan untuk menghubungkan beberapa kantor yang letaknya berdekatan. Jaringan MAN dibangun dengan tujuan agar beberapa lembaga atau instansi dapat saling berbagi data.
20 3. WAN (Wide Area Network)
Jaringan ini merupakan jaringan dengan skala yang sangat besar, mencakup sebuah negara atau benua. Jaringan WAN banyak digunakan oleh perusahaan besar dunia yang daerah operasinya mencakup beberapa negara yang terletak di berbagai belahan dunia. Jaringan WAN juga digunakan oleh negara-negara yang telah maju untuk menghubungkan database dari satu daerah ke daerah yang lain.
21
2.4 Firewall
Menurut Roji (2010), Firewall merupakan suatu cara atau mekanisme yang diterapkan baik terhadap hardware, software ataupun sistem itu sendiri dengan tujuan untuk melindungi, baik dengan menyaring, membatasi atau bahkan menolak suatu atau semua hubungan/kegiatan suatu segmen pada jaringan pribadi dengan jaringan luar yang bukan merupakan ruang lingkupnya. Segmen tersebut dapat merupakan sebuah workstation, server, router, atau local area network (LAN). Firewall secara umum diperuntukkan untuk melayani :
1. Mesin/komputer 2. Jaringan
2.4.1 Karakteristik Firewall
Menurut Roji (2010), terdapat tiga karakteristik dari sebuah firewall, yaitu :
1. Seluruh hubungan/kegiatan dari dalam ke luar, harus melewati
firewall. Hal ini dapat dilakukan dengan cara membatasi baik secara
fisik semua akses terhadap jaringan lokal, kecuali melewati firewall. Banyak sekali bentuk jaringan yang memungkinkan agar konfigurasi ini terwujud.
2. Hanya kegiatan yang terdaftar/dikenal yang dapat melewati/melakukan hubungan, hal ini dapat dilakukan dengan mengatur policy pada konfigurasi keamanan lokal. Banyak sekali
22
jenis firewall yang dapat dipilih sekaligus berbagai jenis policy yang ditawarkan.
3. Firewall itu sendiri haruslah kebal atau relatif kuat terhadap
serangan. Hal ini berarti penggunaan sistem yang dapat dipercaya dan dengan sistem yang relatif aman.
2.4.2 Teknik yang digunakan oleh Firewall
Menurut Sujito, dkk. (2010), terdapat empat teknik yang dapat digunakan oleh sebuah firewall, yaitu :
1. Service Control
Service Control (Kendali Terhadap Layanan), berdasarkan tipe-tipe
layanan yang digunakan di internet dan boleh diakses baik untuk ke dalam ataupun keluar firewall. Biasanya firewall akan mengecek ip
address dan juga nomor port yang digunakan baik pada protokol
TCP dan UDP, bahkan bisa dilengkapi software untuk proxy yang akan menerima dan menterjemahkan setiap permintaan akan suatu layanan sebelum mengijinkannya. Bahkan bisa jadi software pada
23 2. Direction Control
Direction Control (Kendali Terhadap Arah), berdasarkan arah dari
berbagai permintaan (request) terhadap layanan yang akan dikenali dan diijinkan melewati firewall.
3. User Control
User Control (Kendali Terhadap Pengguna), berdasarkan
pengguna/user untuk dapat menjalankan suatu layanan, artinya ada user yang dapat dan ada yang tidak dapat menjalankan suatu layanan, hal ini dikarenakan user tersebut tidak diijinkan untuk melewati firewall. Biasanya digunakan untuk membatasi user dari jaringan lokal untuk mengakses keluar, tetapi bisa juga diterapkan untuk membatasi terhadap pengguna dari luar.
4. Behavior Control
Behavior Control (Kendali Terhadap Perlakuan), berdasarkan
seberapa banyak layanan itu telah digunakan. Misalnya, firewall dapat menyaring e-mail untuk menanggulangi/mencegah spam.
2.4.3 Tipe Firewall
Menurut Sujito, dkk. (2010), berdasarkan tipenya, firewall dapat diklasifikasikan menjadi 3 kelompok yaitu :
1. Packet-Filtering Router
Packet-Filtering Router diaplikasikan dengan cara mengatur semua
paket ip baik yang menuju, melewati atau akan dituju oleh paket tersebut. Pada tipe ini paket tersebut akan diatur apakah akan
24
diterima dan diteruskan atau ditolak. Penyaringan paket ini dikonfigurasikan untuk menyaring paket yang akan ditransfer secara dua arah (baik dari, dan ke jaringan lokal). Aturan penyaringan didasarkan pada header ip dan transport header, termasuk juga alamat awal (ip) dan alamat tujuan (ip), protokol transport yang di gunakan (UDP, TCP), serta nomor port yang digunakan. Kelebihan dari tipe ini adalah mudah untuk di implementasikan, transparan untuk pemakai, dan relatif lebih cepat. Adapun kelemahannya adalah cukup rumitnya untuk mengatur paket yang akan disaring secara tepat, serta lemah dalam hal autentikasi.
Adapun serangan yang dapat terjadi pada firewall dengan tipe seperti ini adalah :
IP Address Spoofing : Intruder (Penyusup) dari luar dapat
melakukan ini dengan cara menyertakan/menggunakan ip
address jaringan lokal yang telah diijinkan melalui firewall.
Source Routing Attacks : Tipe ini tidak menganalisa informasi routing sumber ip, sehingga memungkinkan untuk melewati firewall.
Tiny Fragment Attacks : Intruder (Penyusup) membagi ip ke
dalam bagian-bagian (fragment) yang lebih kecil dan memaksa terbaginya informasi mengenai TCP header. Serangan jenis ini di desain untuk menipu aturan penyaringan yang bergantung kepada informasi TCP header.
25
Penyerang berharap hanya bagian (fragment) pertama saja yang akan diperiksa dan sisanya dapat lewat dengan bebas. Hal ini dapat ditanggulangi dengan cara menolak semua paket dengan protokol TCP dan memiliki Offset = 1 pada IP
fragment.
Sumber : http://cecs.wright.edu/~pmateti/InternetSecurity/Lectures/Firewalls/
2. Application-Level Gateway
Application-Level Gateway, yang biasa juga dikenal sebagai Proxy Server yang berfungsi untuk memperkuat/menyalurkan arus
aplikasi. Tipe ini akan mengatur semua hubungan yang menggunakan layer aplikasi, baik itu HTTP, FTP, GOPHER dll. Cara kerjanya adalah apabila ada pengguna yang menggunakan salah satu aplikasi semisal FTP untuk mengakses secara remote, maka gateway akan meminta user untuk memasukkan alamat
remote host yang akan diakses. Saat pengguna menggunakan user
26
ID serta informasi lainnya yang sesuai maka gateway akan melakukan hubungan terhadap aplikasi tersebut yang berada pada
remote host, dan menyalurkan data di antara kedua titik. Apabila
data tersebut tidak sesuai maka firewall tidak akan meneruskan data tersebut atau menolaknya. Firewall dengan tipe ini dapat dikonfigurasikan untuk hanya mendukung beberapa aplikasi saja dan menolak aplikasi lainnya untuk melewati firewall.
Kelebihannya adalah relatif lebih aman dibandingkan dengan tipe
Packet-Filtering Router karena lebih mudah untuk memeriksa
(audit) dan mendata (log) semua aliran data yang masuk pada level aplikasi. Sedangkan kekurangannya adalah terdapat pemrosesan tambahan yang berlebih pada setiap hubungan yang akan mengakibatkan terdapat dua buah sambungan koneksi antara pemakai dan gateway, dimana gateway akan memeriksa dan meneruskan semua arus dari dua arah.
Sumber : https://www.slideshare.net/reddivarihareesh/firewall-71991008
27
3. Circuit-Level Gateway
Tipe ketiga ini merupakan sistem yang berdiri sendiri, atau juga merupakan fungsi khusus yang terbentuk dari application-level
gateway. Tipe ini tidak mengijinkan koneksi TCP end to end
(langsung).
Cara kerja dari firewall ini, gateway akan mengatur kedua hubungan TCP dari user pada inner host (pengguna lokal) dan outside host (pengguna luar). TCP pada hubungan user lokal dengan firewall dan TCP pada hubungan user luar dengan firewall akan dihubungkan. Ketika dua buah hubungan sudah terlaksana maka gateway akan menyalurkan TCP segment dari satu hubungan ke lainnya tanpa memeriksa isinya. Fungsi keamanannya terletak pada penentuan hubungan mana yang diijinkan. Penggunaan dengan tipe ini biasanya dibuat karena administrator percaya dengan user lokal.
Sumber : http://slideplayer.com/slide/4947549/
28 2.5 Linux
Linux adalah sistem operasi, sebuah program yang memungkinkan program lain dan manusia sebagai pengguna untuk dapat menjalankan komputer sesuai dengan keinginannya. Ketika seorang pengguna komputer ingin melakukan pekerjaan seperti mengetik dokumen, pengguna itu harus memiliki komputer dan menggunakan program pengetikan, dan untuk membuat program pengetikan itu berjalan di dalam komputer dibutuhkan sebuah sistem operasi sebagai tempat program itu berjalan. Linux merupakan satu dari sistem operasi yang memungkinkan keinginan pengguna tadi terwujud, sama dengan sistem operasi Windows yang sudah dikenal saat ini. (Rendra Towidjojo:2016)
Linux ditemukan oleh Linus B. Torvalds yang lahir pada tanggal 28 Desember 1969 di Helsinki-Finlandia. Pada tahun 1991, Torvalds tercatat sebagai mahasiswa ilmu komputer di University of Helsinki, Finlandia. Torvalds kemudian membuat sistem operasi varian UNIX untuk digunakan pada komputer pribadinya, sebelum akhirnya kernel Linux (Linus MINIX) yang beliau bangun telah selesai dan dirilis ke internet melalui e-mail untuk memberitahukan informasi bahwa telah tersedia sebuah sistem operasi gratis beserta kode sumbernya. (Askari Azikin:2011) Menurut Askari Azikin (2011), Linux merupakan sistem operasi open
source di bawah lisensi General Public Licence v2 (GPLv2). Dimana GPL itu
sendiri merupakan gagasan dari GNU Project. Linux merupakan sistem operasi UNIX-like atau sistem operasi yang mirip dengan UNIX. Dengan lisensi GPL, Linux dapat diperoleh secara gratis lengkap dengan kode sumbernya, kode sumber itu sendiri adalah baris-baris pemrograman atau yang lebih dikenal dengan istilah source code. Selain itu, Linux dapat digandakan dan diedarkan secara bebas (free),
29
dan pengguna juga dapat dengan bebas merubah kode sumbernya, selama mengikuti aturan dari GPL.
2.5.1 Distribusi Linux
Distribusi Linux atau yang sering disingkat dengan Distro Linux adalah sebutan untuk sistem operasi komputer dan aplikasinya, merupakan keluarga UNIX yang menggunakan kernel Linux. Distro Linux bisa berupa perangkat lunak bebas dan juga perangkat lunak komersial seperti Red Hat Enterprise, SUSE, dan lain-lain. (https://id.wikipedia.org/wiki/Distribusi_Linux)
Beberapa distro Linux yang terkenal sampai saat ini adalah : 1 Arch Linux
2 Debian 3 Ubuntu 4 Kali Linux
5 Red Hat Enterprise
6 CentOS
7 OpenSUSE
2.5.2 Perintah Dasar Linux
Pada umumnya untuk melakukan konfigurasi atau menjalankan perintah pada Linux, dibutuhkan sebuah terminal untuk menjalankannya. Terminal adalah sebuah antar muka yang berbasis text yang menghubungkan pengguna dengan sistem operasi Linux.
30
Di bawah ini adalah beberapa contoh perintah-perintah dasar yang bisa digunakan untuk melakukan konfigurasi atau menjalankan perintah pada terminal di Linux CentOS 7. (Akrom Musajid:2016)
1. man
Perintah man digunakan untuk melihat manual dari suatu perintah, cara menggunakannya adalah dengan mengetikkan man diikuti dengan perintah yang ingin kita ketahui manual pemakaiannya.
2. cat
Perintah cat digunakan unutk menampilkan seluruh isi file ke layar. Sintaks penulisannya seperti berikut.
3. cd
Singkatan dari Change Directory, merupakan perintah yang digunakan untuk berpinda direktori pada saat mengoperasikan terminal Linux.
Dapat juga digunakan untuk mundur satu atau lebih ke direktori sebelumnya.
- Mundur satu direktori
[root@localhost ~]# man <command>
[root@localhost ~]# cat <nama_file>
[root@localhost ~]# cd <nama_direktori>
31 - Mundur dua direktori
- Mundur tiga direktori
Dan seterusnya.
4. cp
Perintah ini digunakan untuk menyalin file atau direktori. Untuk menyalin file dapat menggunakan sintaks
Kemudian untuk menyalin direktori berisi file digunakan penambahan option -rf.
5. ls
Perintah ls dapat digunakan untuk menampilkan isi dari sebuah direktori. Untuk menampilkan file yang tersembunyi dapat ditambahkan dengan parameter -a.
6. rm
Perintah rm digunakan untuk menghapus file atau direktori, biasanya ditambahkan parameter -rf untuk menghapus isi dari direktori sekaligus.
[root@localhost ~]# cd ../..
~]# cd ../../..
[root@localhost ~]# cp <file> <file>
[root@localhost ~]# cp -rf <direktori> <direktori>
[root@localhost ~]# ls -a <direktori>
32 7. mkdir
Perintah mkdir digunakan untuk membuat direktori baru.
8. sudo
Perintah sudo digunakan untuk menjalankan sebuah perintah dengan hak akses
superuser atau root. Perintah-perintah yang termasuk dalam hak akses superuser
terdapat di file konfigurasi /etc/sudoers.
9. clear
Perintah clear digunakan untuk membersihkan layar di terminal.
10. uname
Perintah uname digunakan untuk menampilkan informasi sistem operasi yang digunakan pada Linux. Paramater -a ditambahkan untuk melihat versi kernel yang berjalan.
[root@localhost ~]# mkdir <direktori baru>
[root@localhost ~]# sudo <command>
[root@localhost ~]# clear
33 2.5.3 CentOS
CentOS yang merupakan singkatan dari Community Enterprise Operating
System merupakan salah satu distribusi Linux yang berasal dari source code Red
Hat yang dikembangkan oleh sebuah komunitas yang disebut dengan CentOS
Project. (Akrom Musajid:2016)
Red Hat merupakan salah satu distribusi Linux berbayar, namun CentOS merupakan software yang dirilis dibawah General Public License (GPL) yang selanjutnya dikembangkan oleh komunitas tersebut.
CentOS saat ini sudah digunakan oleh banyak perusahaan karena merupakan salah satu Linux Operating System yang dapat digunakan dalam skala
Enterprise dan juga dapat digunakan secara gratis. Ada beberapa alasan yang
mendasar kenapa CentOS bisa menjadi opsi dari banyak distribusi Linux untuk sebuah server. Selain karena CentOS berasal dari source code Red Hat yang dikenal dengan kehandalannya sehingga CentOS didesain semirip mungkin dengan Red Hat namun juga karena alasan dukungan terhadap software dan hardware yang lebih baik. (Akrom Musajid:2016)
Dukungan ini merupakan salah satu alasan terpenting dari sebuah distribusi Linux skala Enterprise, karena CentOS memberikan support dalam produknya secara berkala dalam hal dukungan software packet untuk update. CentOS sendiri memiliki dukungan (life cycles) yang cukup panjang hingga lima tahun sampai sepuluh tahun. Berikut ini adalah data End-of-support dari semua versi CentOS.
34 2.6 IPTables
IPTables adalah sebuah firewall, yang secara default sudah terpasang di hampir semua distribusi Linux, seperti Ubuntu, Debian, CentOS, dan lain-lain. Akan tetapi secara default IPTables mengijinkan semua traffic untuk lewat tanpa menggunakan rules. (Onno W. Purbo:2008)
Pengaturan IPTabels paling setidaknya menangani tiga kumpulan aturan yang disebut chain. Paket-paket yang diarahkan ke mesin firewall dinamakan chain
INPUT, paket-paket yang diteruskan melewati firewall dinamakan chain FORWARD, dan paket-paket yang menuju jaringan eksternal meninggalkan mesin firewall disebut chain OUTPUT. (Sujito, dkk.:2010)
Paket-paket yang masuk diperiksa, apakah rusak, salah informasi, atau tidak, kemudian diberikan ke chain INPUT. Tergantung pada informasi yang
Versi CentOS Tanggal rilis Full updates Maintenance Updates
3 19 Maret 2004 20 Juli 2006 31 Oktober 2010
4 9 Maret 2005 31 Maret 2009 29 Februari 2012
5 12 April 2007 Q1 2014 31 Maret 2017
6 10 Juli 2011 Q2 2017 30 November 2020
7 7 Juli 2014 Q4 2020 30 Juni 2024
35
terdapat di dalam header paket dan kebijakan dalam rules set, keputusan yang diambil untuk suatu paket dapat berupa sebagai berikut. (Sujito, dkk.:2010)
1. ACCEPT, menerima paket dan selanjutnya diproses oleh kernel.
2. DROP, menolak paket tanpa pemberitahuan sama sekali.
3. REJECT, mengembalikan paket ke asalnya dengan pesan kesalahan ICMP.
4. LOG, melakukan log (pencatatan) terhadap paket yang bersesuaian.
5. RETURN, untuk chain user-defined akan dikembalikan ke chain yang
memanggil, sedangkan untuk chain INPUT, FORWARD, dan OUTPUT akan dijalankan kebijakan default.
6. Mengirim ke chain user-defined.
Keputusan kebijakan di atas dibuat oleh pernyataan jump yang terdapat dalam rules set. Keputusan-keputusan yang serupa dibuat dalam chain OUTPUT dan FORWARD. IPTables juga memberikan fasilitas pembuatan proxy transparan dan ip masquerade dengan skema NAT (Network Address Translation). (Sujito, dkk.:2010)
36 2.6.1 Syntax Pada IPTables
1. Table
IPTables memiliki 3 buah table di dalamnya, yaitu NAT, MANGLE dan
FILTER. Penggunannya disesuaikan dengan sifat dan karakteristik masing-masing.
Fungsi dari masing-masing tabel tersebut sebagai berikut :
1. NAT : Secara umum digunakan untuk melakukan Network Address
Translation. NAT adalah penggantian field alamat asal atau alamat tujuan
dari sebuah paket.
2. MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket,
seperti TTL, TOS dan MARK
3. FILTER : Disinilah fungsi untuk filter berjalan yang berfungsi untuk
menentukan apakah paket akan di ACCEPT, LOG, REJECT atau DROP.
2. Command
IPTables memiliki perintah untuk memberitahu apa yang harus dijalankan.
Table 2. 2 Command IPTables
Command Keterangan -A
–append
Perintah ini menambahkan aturan pada akhir
chain untuk dieksekusi terakhir
-D –delete
37 -R
–replace
Mengganti rule yang terdapat di dalam chain. Secara default menggantikan rule nomor 1 dalam chain
-I –insert
Memasukkan rule pada chain di posisi paling atas, sehingga akan dieksekusi pertama -L
–list
Menampilkan list rules pada chain yang sudah dimasukkan atau sudah berjalan di dalam chain -F
–flush
Menghapus rule di dalam chain, secara default jika tidak disebutkan rules yang spesifik untuk dihapus, maka akan menghapus semua rules di dalam chain
-N
–new-chain
Membuat chain baru.
-X
–delete-chain
Perintah ini akan menghapus chain yang disebutkan.
-P –policy
Mengganti kebijakan atau policy di dalam chain kepada target
-E
–rename-chain
38 3. Options
Option digunakan dengan mengkombinasikan perintah tertentu dan
menghasilkan perintah dengan tujuan yang bervariasi. Table 2. 3 Options IPTables
Option Command Pemakai Keterangan -v –verbose –list –append –insert –delete –replace
Memberikan output yang lebih detail, biasa dikombinasikan dengan –list.
-x –exact
–list Memberikan output yang lebih tepat.
-n –numeric
–list Memberikan output yang
berbentuk angka. Ip address dan nomor port akan ditampilkan dalam bentuk angka
–line-number –list Memberikan urutan nomor pada
rules untuk mempermudah
konfigurasi
–modprobe All Digunakan untuk memanggil modul tertentu.
39 4. Generic Matches
Syntax ini difungsikan untuk mendefiniskan protokol, lalu mendefiniskan
aturan yang lebih spesifik terkait dengan protokol tersebut. Karena tiap protokol memiliki karakteristik yang berbeda, maka setiap protokol harus diperlakukan secara khusus.
Table 2. 4 Generic Matches IPTables
Match Keterangan
-p –protocol
Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang umum adalah TCP, UDP, ICMP dan ALL.
-s –src –source
Digunakan untuk mencocokkan paket berdasarkan ip
address dari sumber. Bisa berupa ip tunggal, contoh
192.168.1.1, atau menggunakan subnet mask
192.168.1.0/255.255.255.0, atau 192.168.1.0/24. -d
–dst
–destination
Digunakan untuk mecocokkan paket berdasarkan ip
address tujuan. Penggunaannya sama dengan match –
src -i
–in-interface
Digunakan untuk mencocokkan paket berdasarkan
interface di mana paket datang. Hanya berlaku pada chain INPUT, FORWARD dan PREROUTING.
-o
–out-interface
Digunakan untuk mencocokkan paket berdasarkan
interface di mana paket keluar.Hanya berlaku untuk chain OUTPUT, FORWARD dan POSTROUTING
40 5. Implicit Matches
Implicit Matches adalah match yang lebih spesifik untuk tipe protokol
tertentu. Implicit Match merupakan sekumpulan rule yang akan di load setelah tipe protokol disebutkan. Ada 3 Implicit Match berlaku untuk tiga jenis protokol, yaitu TCP matches, UDP matches dan ICMP matches. 1. TCP Matches
Table 2. 5 Implicit Matches IPTables
Match Keterangan
–sport –source-port
Match ini berguna untuk mecocokkan paket
berdasarkan port asal. Dalam hal ini kia bisa mendefinisikan nomor port atau nama service-nya. Daftar nama service dan nomor port yang bersesuaian dapat dilihat di /etc/services.
–sport juga bisa dituliskan untuk range port tertentu. Misalkan kita ingin mendefinisikan range antara port 22 sampai dengan 80, maka kita bisa menuliskan – sport 22:80.
Jika bagian salah satu bagian pada range tersebut kita hilangkan maka hal itu bisa kita artikan dari port 0, jika bagian kiri yang kita hilangkan, atau 65535 jika bagian kanan yang kita hilangkan. Contohnya –sport :80 artinya paket dengan port asal nol sampai dengan 80, atau –sport 1024: artinya paket dengan port asal 1024 sampai dengan 65535.Match ini juga mengenal inversi.
41 –dport
–destination-port
Penggunaan match ini sama dengan match
–source-port.
–tcp-flags Digunakan untuk mencocokkan paket berdasarkan TCP flags yang ada pada paket tersebut. Pertama, pengecekan akan mengambil daftar flag yang akan diperbandingkan, dan kedua, akan memeriksa paket yang di-set 1, atau on.
Pada kedua list, masing-masing entry-nya harus dipisahkan oleh koma dan tidak boleh ada spasi antar
entry, kecuali spasi antar kedua list. Match ini
mengenali SYN,ACK,FIN,RST,URG, PSH. Selain itu kita juga menuliskan ALL dan NONE. Match ini juga bisa menggunakan inversi.
–syn Match ini akan memeriksa apakah flag SYN di-set dan
ACK dan FIN tidak di-set. Perintah ini sama artinya jika kita menggunakan match –tcp-flags SYN,ACK,FIN SYN
Paket dengan match di atas digunakan untuk melakukan request koneksi TCP yang baru terhadap
server
2. UDP Matches
Karena bahwa protokol UDP bersifat connectionless, maka tidak ada
flags yang mendeskripsikan status paket untuk untuk membuka atau
menutup koneksi. Paket UDP juga tidak memerlukan acknowledgement. Sehingga implicit match untuk protokol UDP lebih sedikit daripada TCP
42 Ada dua macam match untuk UDP: –sport atau –source-port
–dport atau –destination-port
3. ICMP Matches
Paket ICMP digunakan untuk mengirimkan pesan-pesan kesalahan dan kondisi-kondisi jaringan yang lain. Hanya ada satu implicit match untuk tipe protokol ICMP, yaitu : –icmp-type
6. Explicit Matches 1. MAC Address
Match jenis ini berguna untuk melakukan pencocokan paket
berdasarkan MAC source address. Perlu diingat bahwa MAC hanya berfungsi untuk jaringan yang menggunakan teknologi ethernet.
2. Multiport Matches
Ekstensi Multiport Matches digunakan untuk mendefinisikan port atau
port range lebih dari satu, yang berfungsi jika ingin didefinisikan aturan
yang sama untuk beberapa port. Tapi hal yang perlu diingat bahwa kita tidak bisa menggunakan port matching standard dan multiport matching dalam waktu yang bersamaan.
43 3. Owner Matches
Penggunaan match ini untuk mencocokkan paket berdasarkan pembuat atau pemilik/owner paket tersebut. Match ini bekerja dalam chain
OUTPUT, akan tetapi penggunaan match ini tidak terlalu luas, sebab ada
beberapa proses tidak memiliki owner (??).
Ex : iptables –A OUTPUT –m owner –uid-owner 500
Kita juga bisa melakukan filter berdasarkan group ID dengan sintaks – gid-owner. Salah satu penggunannya adalah bisa mencegah user selain yang dikehendaki untuk mengakses internet misalnya.
4. State Matches
Match ini mendefinisikan state apa saja yang cocok. Ada 4 state yang
berlaku, yaitu NEW, ESTABLISHED, RELATED dan INVALID. NEW digunakan untuk paket yang akan memulai koneksi baru.
ESTABLISHED digunakan jika koneksi telah tersambung dan
paket-paketnya merupakan bagian dari koneki tersebut. RELATED digunakan untuk paket-paket yang bukan bagian dari koneksi tetapi masih berhubungan dengan koneksi tersebut, contohnya adalah FTP data transfer yang menyertai sebuah koneksi TCP atau UDP. INVALID adalah paket yang tidak bisa diidentifikasi, bukan merupakan bagian dari koneksi yang ada.
44 7. Target/Jump
Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang memenuhi kriteria atau match. Jump memerlukan sebuah chain yang lain dalam tabel yang sama. Chain tersebut nantinya akan dimasuki oleh paket yang memenuhi kriteria. Analoginya ialah chain baru nanti berlaku sebagai prosedur/fungsi dari program utama. Sebagai contoh dibuat sebuah
chain yang bernama tcp_packets. Setelah ditambahkan aturan-aturan ke
dalam chain tersebut, kemudian chain tersebut akan direferensi dari chain
input.
Ex : iptables –A INPUT –p tcp –j tcp_packets
Table 2. 6 Target/Jump IPTables Target Keterangan
-j ACCEPT –jump
ACCEPT
Ketika paket cocok dengan daftar match dan target ini diberlakukan, maka paket tidak akan melalui baris-baris aturan yang lain dalam chain tersebut atau chain yang lain yang mereferensi chain tersebut. Akan tetapi paket masih akan memasuki chain-chain pada tabel yang lain seperti biasa.
-j DROP –jump DROP
Target ini men-drop paket dan menolak untuk memproses lebih jauh. Dalam beberapa kasus mungkin hal ini kurang baik, karena akan meninggalkan dead socket antara client dan server.
Paket yang menerima target DROP benar-benar mati dan target tidak akan mengirim informasi tambahan dalam bentuk apapun kepada client atau server.
-j RETURN Target ini akan membuat paket berhenti melintasi aturan-aturan pada chain dimana paket tersebut menemui target
45 –jump
RETURN
RETURN. Jika chain merupakan subchain dari chain yang
lain, maka paket akan kembali ke superset chain di atasnya dan masuk ke baris aturan berikutnya. Apabila
chain adalah chain utama misalnya INPUT, maka paket
akan dikembalikan kepada kebijakan default dari chain tersebut.
-j MIRROR Apabila kompuuter A menjalankan target seperti contoh di atas, kemudian komputer B melakukan koneksi http ke komputer A, maka yang akan muncul pada browser adalah
website komputer B itu sendiri. Karena fungsi utama target
ini adalah membalik source address dan destination
address.
Target ini bekerja pada chain INPUT, FORWARD dan
PREROUTING atau chain buatan yang dipanggil melalui chain tersebut.
Parameter target yang biasa ditambahkan yaitu:
1. LOG Target
Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa digunakan adalah debug, info, notice, warning, err,
crit, alert dan emerg.Yang kedua adalah -j LOG –log-prefix yang digunakan
untuk memberikan string yang tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.
Ex : iptables –A FORWARD –p tcp –j LOG –log-level debug
46 2. REJECT Target
Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak untuk memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error message ke host pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT dan FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.
Ex : iptables –A FORWARD –p tcp –dport 22 –j REJECT –reject-with icmp-host-unreachable
Ada beberapa tipe pesan yang bisa dikirimkan yaitu icmp-net-unreachable, icmp-host-unreachable, icmp-port-unreachable, icmp-proto-unrachable, icmp-net-prohibited dan icmp-host-prohibited.
3. SNAT Target
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk table nat pada chain POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.
Ex : iptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-source
47 4. DNAT Target
Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi
field alamat tujuan (Destination Network Address Translation) pada header
dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk
table nat pada chain PREROUTING dan OUTPUT atau chain buatan yang
dipanggil oleh kedua chain tersebut.
iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 –dport 80 –j DNAT –to-destination 192.168.0.2
5. MASQUERADE Target
Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti target SNAT, tetapi target ini tidak memerlukan option
–to-source. MASQUERADE memang didesain untuk bekerja pada komputer
dengan koneksi yang tidak tetap seperti dial-up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah.
Seperti halnya pada SNAT, target ini hanya bekerja untuk table nat pada chain POSTROUTING.
Ex : iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
6. REDIRECT Target
Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal ini sangat berguna untuk membangun sebuah sistem