[LENGKAP] Cara Mendesain Sistem Keamanan Jaringan

Berikut ini adalah langkah-langkah yang diperlukan dalam membangun sebuah firewall:

  1. Menentukan topologi jaringan yang akan digunakan. Topologi dan kofigurasi jaringan akan menentukan bagaimana firewall akan dibangun.
  2. Menentukan kebijakan atau policy. Kebijakan yang perlu di atur di sini adalah penentuan aturan-aturan yang akan diberlakukan.
  3. Menentukan aplikasi–aplikasi atau servis-servis apa saja yang akan berjalan. Aplikasi dan servis yang akan berjalan harus kita ketahui agar kita dapat menentukan aturan-aturan yang lebih spesifik pada firewall kita.
  4. Menentukan pengguna-pengguna mana saja yang akan dikenakan oleh satu atau lebih aturan firewall.
  5. Menerapkan kebijakan, aturan, dan prosedur dalam implementasi firewall.
  6. Sosialisasi kebijakan, aturan, dan prosedur yang sudah diterapkan. Batasi sosialisasi hanya kepada personil teknis yang diperlukan saja.

Dengan melakukan sosialisasi kepada pengguna-pengguna yang di kenai aturan-aturan firewall kita, di harapkan tidak terjadi kesalah- pahaman terhadap peraturan- peraturan yang diberlakukan.

Berikut ini diberikan contoh penerapan iptables pada firewall. Konfigurasi network yang digunakan untuk contoh diilustrasikan pada gambar dibawah.

Skema Firewall dalam jaringan
Skema Firewall Dalam Jaringan

Pada gambar di atas terdapat suatu firewall yang mempunyai dua antar muka. Firewall berhubungan dengan jaringan internet melalui antar muka eth0 dan berhubungan dengan jaringan privat melalui antar muka eth1.

Kadang-kadang firewall berhubungan dengan jaringan internet menggunakan modem, dalam hal ini antarmuka eth0 dapat diganti dengan ppp0.

Kemampuan pertama yang harus di miliki firewall adalah melakukan forward IP Address dari antarmuka eth0 menuju antarmuka eth1 dan sebaliknya dari antarmuka eth1 menuju antarmuka eth0. Caranya adalah dengan memberi nilai 1 pada parameter ip_forward dengan perintah

#echo ”1” >/proc/sys/net/ipv4/ip_forward

Dalam beberapa variant Linux dilakukan dengan memberi baris konfigurasi pada file /etc/sysconfig/network.

FORWARD_IPV4=yes

A. Membuat Inisialisasi

Inisialisasi aturan iptables digunakan untuk membuat kebijakan umum terhadap rantai iptables yang akan di terapkan pada firewall. Kebijakan ini akan di terapkan jika tidak ada aturan yang sesuai. Kebijakan umum yang diterapkan dalam suatu firewall umumnya adalah sebagai berikut:

Kebijakan untuk membuang semua paket yang menuju, melintas dan keluar dari firewall. Kebijakan ini akan di terapkan pada paket apabila tidak ada satupun aturan yang sesuai dengan paket tersebut. Kebijakan ini di terapkan dengan memberikan status DROP untuk semua rantai pada tabel filter.

#iptables –p input DROP

#iptables –p forward DROP

#iptables –p output DROP

Kebijakan untuk menerima semua paket yang menuju dan meninggalkan perangkat loopback. Kebijakan ini di terapkan dengan memberikan status ACCEPT pada semua paket yang masuk dan keluar perangkat loopback.

#iptables – A INPUT – i lo – j ACCEPT

#iptables – A OUTPUT – o lo – j ACCEPT

Kebijakan menerima semua paket sebelum mengalami routing. Kebijakan ini diterapkan dengan memberikan status ACCEPT untuk rantai POSTROUTING dan PREROUTING pada tabel NAT.

#iptables – t nat – p POSTROUTING – j ACCEPT

#iptables – t nat – p PREROUTING – j ACCEPT

Tentu saja kebijakan umum yang di terapkan untuk suatu sistem sangat tergantung pada pengelolaan jaringan. Kebijakan tersebut tidak harus seperti di atas, tapi dapat disesuaikan dengan keperluan.

B. Mengijinkan lalu-lintas paket ICMP

Paket ICMP biasanya digunakan untuk menguji apakah suatu peralatan jaringan sudah terhubung secara benar dalam jaringan. Biasanya untuk menguji apakah suatu peralatan sudah terhubung secara benar dalam jaringan dapat dilakukan dengan perintah ping.

Perintah ini akan mencoba mengirim paket ICMP ke alamat IP tujuan dan menggunakan tanggapan dari alamat IP tersebut. Untuk memberikan keleluasaan keluar, masuk dan melintasnya paket ICMP diterapkan dengan aturan tersebut.

#iptables – A INPUT –p icmp -j ACCEPT

#iptables – A FORWARD –p icmp -j ACCEPT

#iptables – A OUPUT –p icmp -j ACCEPT

Maksud perintah di atas adalah sebagai berikut:

  • Firewall mengijinkan paket ICMP yang akan masuk.
  • Firewall mengijinkan paket ICMP yang akan melintas.
  • Firewall mengijinkan paket ICMP yang akan keluar.

Perintah ketiga ini memungkinkan firewall untuk mananggapi paket ICMP yang dikirim ke firewall. Jika perintah ketiga tidak diberikan, maka firewall tidak dapat mengirim keluar tanggapan paket ICMP.

Catatan : Kadang-kadang paket ICMP digunakan untuk tujuan yang tidak benar, sehingga kadang-kadang firewall ditutup untuk menerima lalu lintas paket tersebut. Jika firewall tidak diijinkan untuk menerima lalu lintas paket ICMP, maka perintah diatas tidak perlu dicantumkan.

C. Mengijinkan Paket SSH Masuk Firewall

Untuk mengkonfigurasi komputer dalam jaringan, biasanya dilakukan secara jarak jauh. Artinya pengelolaan tidak harus datang dengan berhadapan dengan komputer tersebut.

Termasuk dalam hal ini untuk pengelolaan firewall. Untuk mengelola firewall dari jarak jauh, dapat digunakan program SSH. Program SSH menggunakan paket TCP dengan port 22 untuk menghubungkan antara dua komputer. Oleh sebab itu firewall harus mengijinkan paket dengan tujuan port 22 untuk masuk ke firewall. 

Firewall juga harus mengijinkan paket yang berasal dari port 22 untuk keluar dari firewall. Berikut ini perintah yang diterapkan untuk mengijinkan akses SSH melalui antarmuka eth1 yaitu dari jaringan privat.

#iptables – A INPUT –p tcp –dport 22 –i eth1 -j ACCEPT

#iptables – A OUTPUT –p tcp –sport 22 –o eth1 -j ACCEPT

Maksud dari perintah di atas adalah sebagai berikut:

  • Firewall mengijinkan masuk untuk paket TCP yang punya tujuan port 22 melalui antarmuka eth1
  • Firewall mengijinkan keluar untuk paket TCP yang berasal dari port 22 melalui antarmuka eth1. Aturan tersebut memungkinkan akses SSH hanya dari jaringan privat melalui antarmuka eth1.

Untuk alasan keamanan, akses SSH dari jaringan privat dapat dibatasi untuk akses yang hanya berasal dari alamat jaringan tertentu atau bahkan dari komputer tertentu.

Hal ini dilakukan dengan menambah opsi –s diikuti alamat jaringan atau alamat IP pada perintah pertama, contohnya diijinkan dari sumber yang mempunyai alamat IP hanya 192.168.0.1

# iptables – A OUTPUT –s 192.168.0.1. –p tcp –sport 22 –o eth1 -j ACCEPT

D. Mengijinkan Akses HTTP Melintas Firewall

Akses http merupakan protokol yang paling banyak digunakan untuk berselancar di internet. Informasi yang disajikan pada internet umumnya menggunakan akses http ini. Akses http menggunakan port 80 dengan jenis paket TCP.

Firewall biasanya mengijinkan akses http terutama yang melintas firewall baik yang keluar atau masuk jaringan privat. Akses http yang keluar jaringan privat digunakan untuk memberi akses http bagi komputer yang berada di jaringan privat.

Sedangkan akses http dari internet terjadi apabila pada jaringan privat terdapat server web yang dapat diakses dari jaringan internet.

Penerapan aturan iptables untuk mengijinkan akses http adalah sbb:

#iptables – A FORWARD –p tcp –dport 80 –i eth1 -j ACCEPT

#iptables – A FORWARD –p tcp –sport 80 –o eth1 -j ACCEPT

#iptables – A FORWARD –p tcp –dport 80 –i eth0 -j ACCEPT

#iptables – A FORWARD –p tcp –sport 80 –o eth0 -j ACCEPT

Maksud dari perintah di atas adalah sebagai berikut:

  • Firewall mengijinkan melintas untuk paket TCP yang punya tujuan port 80 melalui antarmuka eth1
  • Firewall mengijinkan melintas untuk paket TCP yang punya asal port 80 melalui antarmuka eth1
  • Firewall mengijinkan melintas untuk paket TCP yang punya tujuan port 80 melalui antarmuka eth0
  • Firewall mengijinkan melintas untuk paket TCP yang punya asal port 80 melalui antarmuka eth0.

Perintah pertama dan keduadigunakan untuk mengijinkan akses http yang berasal dari jaringan privat, sedangkan perintah ketiga dan keempat digunakan untuk mengijinkan akses http yang berasal dari internet.

Keempat perintah tersebut dapatdiganti dengan satu perintahmenggunakan opsi multiport sebagai berikut:

#iptables – A FORWARD –p tcp –m multiport --port 80 -j ACCEPT

Perintah tersebut menyatakan bahwa firewall mengijinkan paket TCP yang punya port 80 (tujuan / asal) untuk melintas (dari eth0 atau eth1).

E. Mengijinkan QUERY Server DNS

Firewall biasanya mempunyai minimal satu alamat IP untuk server DNS. Untuk query server DNS digunakan paket UDP melalui port 53.

Firewall memerlukan query server DNS untuk menentukan alamat IP yang berhubungan dengan suatu nama host. Query server DNS pada firewall ini biasanya diijinkan untuk query server DNS keluar firewall (baik via eth0 atau eth1) dan query server DNS melintasi server firewall.

Aturan iptables yang diterapkan untuk mengijinkan query sever DNS keluar dari firewall adalah sebagai berikut:

#iptables – A OUTPUT –p udp –dport 53 –o eth1 -j ACCEPT

#iptables – A INPUT –p udp –d port 53 –i eth1 -j ACCEPT

#iptables – A OUTPUT –p udp –dport 53 –o eth0 -j ACCEPT

#iptables – A INPUT –p udp –d port 53 –i eth0 -j ACCEPT

Maksudnya:

  • Firewall mengijinkan keluar untuk paket UDP yang punya tujuan port 53 melalui antarmuka eth1.
  • Firewall mengijinkan keluar untuk paket UDP yang punya asal port 53 melalui antarmuka eth1
  • Firewall mengijinkan keluar untuk paket UDP yang punya tujuan port 53 melalui antarmuka eth0.
  • Firewall mengijinkan keluar untuk paket UDP yang punya asal port 53 melalui antarmuka eth0

Perintah pertama dan kedua digunakan untuk query server DNS keluar melalui antarmuka eth1, sedangkan perintah ketiga dan keempat digunakan untuk mengijinkan query server DNS keluar melalui antarmuka eth0.

Selanjutnya firewall akan mengijinkan query server DNS untuk melintas. Aturan iptables untuk mengijinkan query server DNS melintasi firewall adalah sebagai berikut:

#iptables – A FORWARD –p udp –m multiport –ports 53 -j ACCEPT

Perintah tersebut menyatakan bahwa firewall mengijinkan paket UDP yang punya port 53 untuk melintas.

F. IP Masquerade

Alamat IP yang digunakan untuk menyusun jaringan lokal umumnya menggunakan alamat IP privat. Alamat IP ini tidak diroutingkan oleh jaringan publik, sehingga komputer yang ada pada jaringan lokal tidak dapat langsung berhubungan dengan internet.

Hubungan antara komputer pada jaringan lokal dengan jaringan publik dilakukan dengan cara menyamarkan alamat IP privat dengan alamat IP yang dipunyai oleh kartu jaringan dengan alamat IP publik.

Proses penyamaran alamat IP privat menjadi alamat IP publik ini disebut dengan IP MASQUERADE. Dengan cara yang diterapkan oleh konsep IP MASQUERADE, semua komputer pada jaringan local ketika berhubungan dengan jaringan publik seperti mempunyai alamat IP kartu jaringan yang punya alamat IP publik.

IP MASQUERADE adalah salah satu bentuk translasi alamat jaringan (NAT), yang memungkinkan bagi komputer-komputer yang terhubung dalam jaringan lokal yang menggunakan alamat IP privat untu berkomunikasi ke internet melalui firewall.

Teknik IP MASQUERADE adalah cara yang biasanya digunakan untuk menghubungkan jaringan lokal dengan publik (internet). Bagi pelanggan internet yang hanya diberi satu alamat IP dinamis (dial up) menggunakan modem. Berikut ini diberikan contoh penerapan IP MASQUERADE (NAT).

Pada komputer firewall terdapat dua antarmuka (eth0 dan eth1). Komputer firewall berhubungan dengan jaringan privat melalui eth1 yang diberi alamat IP 192.168.100.254. sedangkan dengan jaringan internet berhubungan melalui eth0 dengan alamat IP publik.

Syarat utama supaya dapat menjalankan fungsi IP MASQUERADE, komputer firewall harus memiliki kebijakan untuk meneruskan paket yang akan dikirim melalui eth0 maupun paket yang diterima melalui eth1. 

Jenis paket dan nomor port yang akan diteruskan diatur melalui chains tertentu. Selanjutnya paket yang akan dikirim melalui antarmuka eth0 harus menjalani translasi alamat IP dengan proses IP MASQUERADE dengan perintah:

# iptables –t nat –A POSTROUTING –o eth0 –s 192.168.100.0/24 –j MASQUERADE

Perintah tersebut menyatakan bahwa setelah mengalami routing, paket yang akan dikirim melalui antarmuka eth0 yang berasal dari jaringan 192.168.100.0/24 akan mengalami proses IP MASQUERADE.

Jika firewall berhubungan dengan internet melalui suatu modem, maka antarmuka untuk berhubungan dengan internet adalah ppp0, sedangkan antarmuka untuk berhubungan dengan jaringan privat adalah eth0, dengan demikian harus diberikan perintah:

# iptables –t nat –A POSTROUTING –o ppp0 –s 192.168.100.0/24 –j MASQUERADE

IP MASQUERADE pada hubungan dial up dengan modem dapat juga diterapkan pada pelanggan rumah yang ingin membagi hubungan internet pada beberapa komputer. Translasi alamat IP secara statis dapat dilakukan dengan penerapan konsep subnetting pada pengalamatan jaringan privat.

Begitu juga untuk penerapan alamat IP publik yang diberikan oleh Internet Service Provider (biasanya terbatas hanya dua alamat IP), maka akses dari jaringan lokal dapat dilakukan dengan beberapa cara. Dua contoh yang dapat dilakukan adalah teknik hubungan langsung dan DMZ (De- Militarize Zone).

1. Teknik hubungan langsung

Pada teknik hubungan langsung, komputer-komputer yang dirancang dapat untuk diakses melalui jaringan internet, diberi alamat IP publik dan langsung dihubungkan pada internet, tanpa melalui firewall. Sehingga komputer tersebut akan dirouting oleh jaringan publik.

Komputer dengan alamat IP 202.51.226.35 tidak diletakkan dibawah firewall, sehingga tidak diperlukan translasi alamat IP. Yang diletakkan di bawah firewall hanya komputer dengan alamat IP privat 192.168.100.0/24.

Jaringan privat inilah yang memerlukan translasi alamat jaringan ketika berhubungan dengan jaringan publik. Jaringan privat ini dapat dihubungkan ke internet dengan menggunakan teknik IP Masquerade.

Karena alamat IP untuk eth0 diketahui secara pasti, dapat juga digunakan opsi –to-source untuk menentukan asal alamat IP pada alamat publikj. Dengan perintah pada firewall sebagai berikut:

#iptables –t nat –A POSTROUTING –o eth0 –s 192.168.100.0/24 –j snat –to -source 202.51.226.34

Perintah ini menyatakan bahwa setelah mengalami routing, paket yang akan dikirim melalui antarmuka eth0 yang berasal dari jaringan 192.168.100.0/24 akan mengalami SNAT menjadi alamat IP 202.51.226.34.

2. DMZ (De-Militarized Zone).

Pada teknik ini, baik komputer yang dirancang untuk dapat diakses dari internet maupun yang tidak dapat diakses dari internet semuanya diberi alamat IP privat dan diletakkan dibawah firewall.

Alamat IP komputer yang dirancang dapat diakses dari internet dipetakan ke alamat IP publik yang diberikan pada firewall. Pemetaan yang terjadi adalah dari satu ke satu.

Ada dua teknik DMZ yang dapat digunakan. Yang pertama adalah meletakkan komputer DMZ pada jaringan yang terpisah dari jaringan privat. Yang kedua adalah meletakkan komputer DMZ pada jaringan yang sama dengan jaringan prvat.

Pada teknik DMZ pada jaringan terpisah, untuk komputer yang berada pada DMZ dibuatkan jaringan tersendiri yang terpisah dari jaringan privat lain. Komputer pada DMZ tetap menggunakan alamat IP privat.

Dalam hal ini firewall memerlukan tiga kartu jaringan, yaitu:

  • eth0 berhubungan dengan internet
  • eth1 berhubungan dengan jaringan privat.
  • eth2 berhubungan dengan DMZ.

Kartu eth0 diberi dua alamat IP publik menggunakan teknik ip alias, yaitu 202.51.226.34 dan 202.51.226.38. Alamat IP 202.51.226.34 digunakan untuk memetakan alamat IP seluruh komputer pada jaringan 192.168.0.100/24, sehingga terjadi pemetaan banyak ke satu.

Alamat IP 202.51.226.38 digunakan untuk memetakan satu komputer yang memiliki alamat 192.168.200.253, sehingga terjadi pemetaan satu ke satu. Untuk keperluan translasi alamat jaringan 192.168.0.100/24 dapat digunakan teknik yang sudah dibahas pada bagian sebelumnya.

#iptables –t nat –A POSTROUTING –o eth0 –s 192.168.100.0/24 –j snat –to -source 202.51.226.34

Sedangkan untuk translasi alamat jaringan bagi komputer dengan alamat 192.168.200.253 dapat menggunakan pasangan perintah sebagai berikut:

#iptables –t nat –A POSTROUTING –i eth0 –d 202.51.226.38. –j DNAT --to -destination 192.168.200.253.

#iptables –t nat –A POSTROUTING –o eth0 –s 192.168.200.253. –j SNAT --to -source 202.51.226.38.

Maksudnya:

  • Perintah pertama menyatakan bahwa sebelum routing, paket yang masuk melalui antarmuka eth0 dengan tujuan 202.51.226.38 akan mengalami proses DNAT menjadi alamat IP tujuan 192.168.200.253.
  • Perintah kedua menyatakan bahwa setelah routing, paket yang akan dikirim melalui antarmuka eth0 yang berasal dari alamat 192.168.200.253 akan mengalami proses SNAT menjadi alamat tujuan 202.51.226.38.

Pada teknik ini, hubungan antara alamat jaringan DMZ dengan alamat jaringan privat dilakukan secara routing.

Pada teknik DMZ juga dimungkinkan untuk memasukkan komputer DMZ dengan alamat yang sama dengan alamat jaringan privat, Dalam hal ini komputer DMZ menggunakan alamat IP pada jaringan tersebut. Teknik ini akan menghemat penggunaan switch dan kartu jaringan.

Pada teknik ini komputer firewall cukup menggunakan dua antar muka eth0 dan eth1. Eth0 digunakan untuk berhubungan dengan internet, sedangkan eth1 digunakan untuk berhubungan dengan jaringan privat yang dikenal dengan teknik DMZ pada satu jaringan.

#iptables –t nat –A POSTROUTING –i eth0 –d 202.51.226.38. –j DNAT --to -destination 192.168.200.253.

#iptables –t nat –A POSTROUTING –o eth0 –s 192.168.200.253.–j SNAT --to -source 202.51.226.38.

Antarmuka eth0 diberi dua alamat IP publik menggunakan teknik IP Alias, yaitu 202.51.226.34 dan 202.51.226.38.

Alamat IP 202.51.226.34 digunakan untuk memetakan alamat IP seluruh komputer pada jaringan 192.168.100.0/24, sehingga terjadi pemetaan banyak ke satu.

Alamat IP 202.51.226.38 digunakan untuk memetakan satu komputer itu yang memiliki alamat IP 192.168.100.253, sehingga terjadi pemetaan satu ke satu. 

Alamat jaringan 192.168.100.0/24 dapat dianggap sebagai jaringan DMZ, tapi hanya ada satu komputer yang menggunakan pemetaan satu ke satu, sedangkan komputer yang lain menggunakan pemetaan banyak ke satu, untuk translasi alamat jaringan 192.168.100.0/24 dapat digunakan teknik masquerade sebelumnya.

Sedangkan untuk translasi alamat jaringan untuk komputer dengan alamat IP 192.168.100.253, dapat menggunakan pasangan perintah sebagai berikut:

#iptables –t nat –A PREROUTING –i eth0 –d 202.51.226.38.–j DNAT --to -destination 192.168.100.253

#iptables – t nat –A POSTROUTING –o eth0 –s 192.168.100.253.–j SNAT --to -source 202.51.226.38

Maksudnya:

  • Perintah pertama menyatakan bahwa sebelum routing, paket yang masuk melalui antarmuka eth0 dengan tujuan 202.51.226.38 akan mengalami DNAT menjadi alamat tujuan 192.168.100.253
  • Perintah kedua menyatakan bahwa setelah routing, paket yang akan dikirim melalui antarmuka eth0 yang berasal dari alamat IP 192.168.100.253 akan mengalami proses SNAT menjadi alamat asal 202.51.226.38

Perlu dicatat bahwa komputer yang dirancang untuk berhubungan dengan internet dengan teknik DMZ tidak terbatas pada satu komputer.

Firewall Dengan Hardware Khusus

Fungsi firewall seperti disebutkan diatas dapat juga dilakukan dengan menggunakan hardware khusus dari vendor yang telah didesain untuk keperluan pembuatan chains tertentu.

Walaupun demikian, teknik dan penerapannya sama saja dengan menggunakan IP Tables. Pada hardware khusus Firewall penerapan chains-nya didesain sedemikian, agar memudahkan administrator dalam mengimplementasikan rule/policy firewall.

Satu hal yang membedakan adalah perangkat firewall dari vendor hanya didesain khusus untuk keperluan chains tanpa fungsi lain, sementara PC Firewall dapat digunakan selain untuk Firewall juga untuk fungsi terminal jaringan yang lain.