Berikut ini adalah langkah- langkah yang diperlukan dalam membangun sebuah firewall:
1. Menentukan topologi jaringan yang akan digunakan.
2. Menentukan kebijakan atau policy.
3. Menentukan aplikasi – aplikasi atau servis-servis apa saja yang akan berjalan.
4. Menentukan pengguna-pengguna mana saja yang akan dikenakan oleh satuatau lebih aturan firewall.
5. Menerapkan kebijakan, aturan, dan prosedur dalam implementasi firewall.
6. Sosialisasi kebijakan, aturan, dan prosedur yang sudah diterapkan.
Berikut ini diberikan contoh penerapan iptables pada firewall. Konfigurasi network yang digunakan untuk contoh diilustrasikan pada gambar 11.14.

Pada
gambar di atas terdapat suatu firewall yang mempunyai dua antar muka.
Firewall berhubungan dengan jaringan internet melalui antar muka eth0 danberhubungan dengan jaringan privat melalui antar muka eth1. Kadang-kadang firewall berhubungan dengan jaringan internet menggunakan modem, dalam halini 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.
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 umumnyaadalah sebagai berikut:
1. Kebijakan untuk membuang semua paket yang menuju, melintas dan keluar darifirewall.
# iptables –p input DROP
# iptables –p forward DROP
# iptables –p output DROP
2. Kebijakan untuk menerima semua paket yang menuju dan meninggalkan perangkat loopback.
# iptables – A INPUT – i lo – j ACCEPT
# iptables – A OUTPUT– o lo – j ACCEPT
3. Kebijakan menerima semua paket sebelum mengalami routing.
# iptables – t nat – p POSTROUTING – j ACCEPT
# iptables – t nat – p PREROUTING – j ACCEPT
MENGIJINKAN LALU-LINTAS PAKET ICMP
Paket
ICMP biasanya digunakan untuk menguji apakah suatu peralatan jaringan
sudahterhubung secara benar dalam jaringan. Biasanya untuk menguji
apakah suatu peralatansudah 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:
1.Firewall mengijinkan paket ICMP yang akan masuk.
2.Firewall mengijinkan paket ICMP yang akan melintas.
3.Firewall mengijinkan paket ICMP yang akan keluar.
Perintah
ketiga ini memungkinkan firewall untuk mananggapi paket ICMP yang
dikirimke 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.
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
duakomputer. Oleh sebab itu firewall harus mengijinkan paket dengan
tujuan port 22 untuk masuk ke firewall. Firewall juga harus mengijinkan
paket yang berasal dari port 22untuk 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
# 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:
1. Firewall mengijinkan masuk untuk paket TCP yang punya tujuan port 22 melaluiantarmuka eth1.
2. Firewall mengijinkan keluar untuk paket TCP yang berasal dari port 22 melaluiantarmuka eth1.
Aturan
tersebut memungkinkan akses SSH hanya dari jaringan privat melalui
antarmuka eth1. Untuk alasan keamanan, akses SSH dari jaringan privat
dapat dibatasi untuk aksesyang hanya berasal dari alamat jaringan
tertentu atau bahkan dari komputer tertentu(input). Hal ini dilakukan
dengan menambah opsi –s diikuti alamat jaringan atau alamatIP pada
perintah pertama.
# iptables – A INPUT –s 202.51.226.37 –p tcp –dport 22 –i eth1 -j ACCEPT
Sintaks
diatas adalah aturan yang akan menerima input paket TCP pada eth1 yang
berasaldari alamat IP 202.51.226.37 dengan tujuan port 22.
MENGIJINKAN AKSES HTTP MELINTAS FIREWALL
Akses
http merupakan protokol yang paling banyak digunakan untuk berselancar
diinternet. 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 yangkeluar
atau masuk jaringan privat. Akses http yang keluar jaringan privat
digunakanuntuk memberi akses http bagi komputer yang berada di jaringan
privat. Sedangkan akses http dari internet terjadi apabila pada
jaringan privat terdapat server web yang dapatdiakses 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:
1. Firewall mengijinkan melintas untuk paket TCP yang punya tujuan port 80melalui antarmuka eth1.
2. Firewall mengijinkan melintas untuk paket TCP yang punya asal port 80 melaluiantarmuka eth1.
3. Firewall mengijinkan melintas untuk paket TCP yang punya tujuan port 80melalui antarmuka eth0.
4. Firewall mengijinkan melintas untuk paket TCP yang punya asal port 80 melaluiantarmuka eth0.
Perintah
pertama dan kedua digunakan untuk mengijinkan akses http yang berasal
dari jaringan privat, sedangkan perintah ketiga dan keempat digunakan
untuk mengijinkanakses http yang berasal dari internet. Keempat perintah
tersebut dapat diganti dengan satu perintah menggunakan 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).
MENGIJINKAN QUERY SERVER DNS
Firewall
biasanya mempunyai minimal satu alamat IP untuk server DNS. Untuk
queryserver DNS digunakan paket UDP melalui port 53. Firewall memerlukan
query server DNS untuk menentukan alamat IP yang berhubungan dengan
suatu nama host. Queryserver 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 –dport 53 –i eth1 -j ACCEPT
# iptables – A OUTPUT –p udp –dport 53 –o eth0 -j ACCEPT
# iptables – A INPUT –p udp –dport 53 –i eth0 -j ACCEPT