it's better to be a pirate than to join the navy. (Steven Paul Jobs)

Firewall iptables


Firewall adalah sebuah aturan yang ditetapkan baik terhadap hardware, software maupun sistem itu sendiri dengan tujuan untuk melindungi baik dengan melakukan filtrasi, membatasi ataupun menolak suatu koneksi pada jaringan yang dilindunginya dengan jaringan luar seperti internet. Firewall juga berfungsi sebagai pintu keluar jaringan yang dilindunginya dengan jaringan lainya atau disebut gateway.

Ada bermacam-macam jenis firewall baik hardware maupun software. Di linux kernel 2.4 dan 2.6 keatas sudah dilengkapi dengan software firewall yang bernama IPTABLES.

Dasar Teori

Untuk membangun sebuah firewall yang harus kita ketahui pertama-tama adalah bagaimana paket tersebut nanti akan diproses firewall, apakah paket tersebut akan di buang (DROP) atau diterima(ACCEPT), atau paket tersebut akan diteruskan (FORWARD) ke jaringan lain.

Sebuah paket yang diterima dari jaringan pertama-tama akan memasuki routing decission dimana di bagian ini paket akan ditentukan berdasarkan tujuan dari paket tersebut. Bila paket tersebut bertujuan ke komputer linux kita paket tersebut akan diteruskan ke tabel INPUT untuk diproses firewall. Bila paket tersebut bertujuan ke komputer lain yang berbeda jaringan maka paket tersebut akan diteruskan ke kolom FORWARD.

Setelah paket tersebut memasuki kolomnya (INPUT atau FORWARD) maka paket tersebut akan dicocokkan dengan aturan yang ada pada kolom tersebut.

No INPUT OUTPUT FORWARD
1 Aturan no 1 Aturan no 1 Aturan no 1
2 Aturan no 2 Aturan no 2 Aturan no 2
3 Aturan no 3 Aturan no 3 Aturan no 3
N Aturan no n Aturan no n Aturan no n
POLICY ACCEPT/DROP ACCEPT/DROP ACCEPT/DROP

Sebagai contoh ada paket datang ke komputer alamat ip linux kita, paket tersebut akan masuk ke tabel INPUT, kemudian paket akan dicocokkan dengan aturan pertama hingga terakhir. Jika tidak ada kecocokan maka POLICY pada tabel yang akan berlaku, apakah diterima (ACCEPT) atau buang (DROP).

Perintah-perintah IPTABLES             

berikut perintah-perintah IPTABLES:

-A , –append chain-rule-specification

menambahkan suatu aturan baru yang ditempatkan di aturan paling bawah dari aturan-aturan IPTABLES

-D , –delete chain-rule-number/rule specification

Menghapus satu baris aturan

-I , –insert chain-rule-number/rule specification

menuliskan aturan baru tapi penempatanya sesuai dengan perintah yang kita masukkan

R , –replace chain-rule-number/rule specification

mengganti rule yang sudah ada, posisinya menempati urutan dari yang digantikan

-L , –list chain

berfungsi untuk melakukan output dari aturan yang kita buat

-F , –flush chain

untuk menghapus semua aturan yang sudah kita buat

-Z , –zero

berfungsi menghapus semua penghitung menjadi nol

-N , –new-chain chain

menambahkan satu kolom tabel baru

-P , –policy chain-target

akan menentukan nasib paket akan di drop atau diterima

E , –rename-chain old-chain new-chain

mengubah nama dari suatu kolom

-h

help

Parameter IPTABLES

parameter disini bertujuan untuk membuat satu baris aturan menjadi lebih spesifik

-p, –protocol [!] protocol

mengecek protokol dari setiap paket yang datang, TCP, ICMP,UDP atau ALL. Tanda seru merupakan negasi / not! Atau pengecualian

-s, –source [!] address/mask

akan memeriksa kecocokan berdasarkan sumber paket itu, apabila cocok dengan aturan iptables makan aturan tersebut akan berlaku

-d, –destination [!] address/mask

tujuan paket tersebut, apabila cocok pada iptables maka akan berlaku aturan iptables

-j, –jump target

berfungsi untuk menentukan nasib paket apakah akan diterima (ACCEPT) ditolak (DROP) atau dikempalikan ke kolom sebelumnya (RETURN)

-i, –in-interface [!] name

disini setiap paket akan diidentifikasikan berdasarkan kartu jaringan, seperti eth0, eth1, dst

-o, –out-interface [!] name

sama seperti -i namun paket yang keluar

Target/jump

target/jump pada iptables adalah penentu nasib paket, berikut:

ACCEPT

dengan opsi ini paket akan langsung diterima oleh firewall dan diteruskan kepada tujuan dari target.

REJECT

opsi ini paket akan ditolak namun dengan pesan kesalahan ICMP, kita dapat menentukan paket icmp yang akan dikirimkan

DROP

kebalikan dari ACCEPT, paket akan langsung dibuang tanpa mengirim pesan error

SNAT

bertujuan untuk mengubah sumber pengirim paket dan berguna jika kita ingin berbagi koneksi, SNAT terdapat di tabel NAT kolom POSTROUTING sehingga kita menggunakan perintah -A POSTROUTING pada perintah iptables.

DNAT

berfungsi untuk mengubah tujuan dari paket, contohnya apabila kita ingin server kita menggunakan alamat IP local dan kita ingin server tersebut bisa diakses dari internet

MASQUERADE

sama dengan SNAT tapi biasanya digunakan bila kita ingin berbagi koneksi tapi kita memiliki alamat ip yang selalu berubah, seperti menggunakan dial-up

REDIRECT

bertugas untuk mengubah tujuan dari paket ke mesin firewall itu sendiri, misal jika ingin HTTP PROXY bersifat transparent.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: