Learning iptables

Puji Syukurmu Ya Allah,hambamu ini masih di beri kesempatan untuk menulis sedikit tulisan yang mungkin berguna bagi orang lain…

ehmmmmmm…..akhirnya kesampean juga niat tuk nulis,,,
kali ini saya mencoba mengulas sedikit tentang dasar penggunaan iptables…
sebelum memulai pembahasannya,di harapkan semua uda tau tentang konsep TCP/IP,Linux,Basic Linux Networking..pokoknya yang berhubungan dengan KonseP networking.,,,tanya kenapa.,,???Akan banyak Istilah – istilah dari dunia TCP/IP yang akan kita gunakan
saya sendiri menggukan OpenSuse 10.3 my favourite linux dengan iptables v1.3.8 yang sudah terinstall secara default..

Pendahuluan .

iptables merupakan sebuah program yang sangat2 keren menurutku,,,iptables digunakan untuk memanipulasi pergerakan paket baik yang datang,maupun paket yang meninggalkan sebuat komputer…
biasanya iptables digunakan untuk mengkonfigurasi sebuah firewall,membuat PC router dengan linux dll..

Dalam melakukan penyaringan paket,didalam iptables di kenal 3 buat aturan yang dinamakan firewall chain..dari pada susah nyebutnya mending kita gunakan istilah chain aja dech..
chain dasar pada iptables ada 3 yaitu,INPUT,FORWARD,OUTPUT..
– chain INPUT digunakan untuk memanipulasi paket yang ditujukan ( masuk ) masuk ke komputer.
– chain FORWARD di gukanan untuk memanipulasi paket tidak di tujukan untuk komputer,,biasanya di gukanan untuk membuat sebuah PC router..
– chain OUTPUT digunakan untuk memanipulasi pake yang keluar dari komputer..

masih ada lagi 2 chain yang sering digunakan yaitu :
1.NAT = network Address Translation, biasanya digunakan untuk fungsi router
2.MANGLE,digunakan untuk memanipulasi paket lebih detail,misalnya memaskimalkan kecepatan aktual,mengurangi delai dll..

berikut ini adalah contoh perjalan paket pada iptables

Sintax iptables

secara umum sintax iptables

iptables [-t table] command [match] [target]

1 table

iptables mempunya 3 buat table :
1.NAT ,melakukan network address translation ( router function )
2.MANGLE.memanipulasi sebuat paket ( mangling )
3.FILTER ( input,forward,output ).mentukan apakah paket akan di DROP,REJECT,ACCEPT dll.

2.Command
-A, –append ..misalnya :
iptables -A INPUT …
sintax ini digunakan untuk menambah aturan pada chain..letaknya pada bagian akhir dari suatu chain

-D,delete contoh :
iptables -D INPUT 1 -p tcp –sport 80 -j DROP…
digunakan untuk menghapus suatu aturan..pada contoh di atas akan menghapus aturan 1 pada chain INPUT

-R, replace contoh :
iptables -R INPUT 1 1 -p tcp –sport 22 -j DROP
sama dengan delete,tetapi disini langsung di ganti dengan aturan yang baru..

-I, insert contoh
iptables -I INPUT 1 -p tcp –sport 22 -j ACCEPT
digunakan untuke memasukan aturan baru pada chain yang akan di letakkan di bagian awal suatu chain

-L, list contoh
iptables -L
digunakan untuk menampilkan semua aturan pada chain..bisanya di gabung dengan pilihan -v,-n dll..

-F, flush contoh
iptables -F INPUT
digunakan untuk menghapus aturan pada sebuah chain…pada conth diatas.aturan pada chain INPUT akan di hapus

-Z,zero contoh
iptables -Z
digunakan untuk menghapus semua counter ( jumlah packet yang di rekam oleh iptables)…

-N, new chain contoh
iptables -N IAN
digunakan untuk membuat chain baru..pada contoh diatas akan membuat sebuah chain IAN

-X, delete chain contoh
iptables -X IAN
digunakan untuk menghapus chain,misalnya chain IAN

-P, policy contoh
iptables -P INPUT DROP

digunakan untuk mengubah keadaan suatu chain,pada contoh diatas chain INPUT akan diganti ke policy DROP

-E, rename contoh
iptables -E IAN LAHARISI
digunakan untuk mengubah nama suatu chain….

3.Options

berikut beberapa pilihan /options yang bisa di kombinasikan dengan command di atas :

-v, verbose contoh
iptables -L -v
digunakan untuk melihat susunan aturan pada chain secara detail

-n, numeric contoh
iptables -L -n -v
digunakan untuk melilihat susunan aturan chain secara numeric
-modprobe
digunakan untuk memanggil modul tertentu

4. Generic Match

Generic match di gunakan untuk menentukan suatu kriteria aturan pada sebuah chain..

-p , protocol contoh
iptables -A INPUT -p tcp
digunakan untuk menentukan aturan terhadap protokol misalnya protokol TCP,UDP,ICMP

-s, –src ,source contoh
iptables -A INPUT -p tcp –s 172.18.3.188 ..
digukan untuk menentuan sumber sebuah paket,,misalnya sebuat alamat ip

-d , –dst , destination contoh
iptables -A INPUT -p tcp –d 172.18.3.188
digunakan untuk menentukan tujuan sebuah paket kemana harus dikirimkan…

-i, –in-interface contoh
iptables -A INPUT -p tcp -i eth0 ..
dgiunakan untuk menetukan inteface yang akan menangani sebuat paket yang masuk ke komputer

-o , –out-interface contoh
iptables -A OUTPUT -p tcp -o eth0..
digunakan untuk menetukan interface yang akan menangani paket yang keluar dari komputer

5 .Implicit Match

a.TCP Match

-sport, –source-port contoh
iptables -A INPUT -p tcp –sport 22 ..
digunakan untuk mencocokan sebuah paket berdasarkan port asal paket tersebut.

–dport, –destination-port contoh
iptables -A OUTPUT -p tcp –dport 22 ..
digunakan untuk menetukan arah tujuan port sebuah paket ( mirip dengan –source-port )

–tcp-flags contoh
iptables -A INPUT -p tcp –tcp-flags SYN,FIN SYN,FIN
digunakan untuk mencocokan paket berdasarkan tcp flags..untuk lebih jelas tentang tcp flags silahkan baca konsep TCP/IP.ini adalah salah satu security options pada sebuah firewall yang berbasis iptables ( untuk blocking spoofed address )..

-syn contoh
iptables -A INPUT -p tcp –syn ..
digunakan untuk memanipulasi paket syn ( baca konsep TCP/IP )

b. UDP Match
udp match sama dengan tcp match..tinggal di ganti aja protokolnya

c. ICMP match

–icmp-type contoh
iptables -A INPUT -p icmp –icmp-type..
digunakan untuk men-set jenis2 icmp..untuk mengetahui jenis icmp,gunakan perintah
iptables -p icmp -h

6.Explicit Match

a. Mac Match
digunakan untuk melakukan pencocokan paket berdasarkan alamat mac.contoh
iptables -A INPUT -p tcp –dport 22 -m mact –mac 00:11:22:33:44:55..
b. limit match
digunakan untuk melakukan limit/pembatasan terhadap sebuah paket..misalnya untuk membatasai paket syn
menjadi 1 paket per second..
iptables -A INPUT -p tcp –syn -m limit –limit 1/s ..
hal ini sangat berguna untuk memblok akses sebuah scanner ( ex. nmap) yang menggunakan teknin syn scanning dan mencegah terjadi serangan denial of service…tapi masih ada teknik scanning lain yang bisa menerobos pertahanan ini..mau tau??? nanti aja di jelasin.

c. multiport match
digunakan untuk melakukan pencocokan paket berdasarkan alamat port dalam jumlah banyak.misalnya
iptables -A INPUT -p tcp -m multiport –dport 21,22,80 ..

d. Owner match..
digunakan untuk melakukan pencocokan paket berdasarakan pemilik paket.misalnya
iptables –A OUTPUT –m owner –uid-owner 500
pilihan ini jarang sekali di gunakan karena tidak semua paket mempunya pemilik ( owner)

e. State Match
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.misalnya
iptables -A INPUT -m state –state RELATED,ESTABLISHED ..

f.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.
target/jump di antaranya :

-j ACCEPT contoh
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
berfungsi untuk “mengizinkan” paket tersebut berkomunikasi dengan komputer sesuai dengan aturan pda chain

-j DROP contoh
iptables -A INPUT -p tcp –dport 22 -j DROP
digunakan untuk menahan / blok sebuah paket sesuai dengan aturan pada chain
-j LOG
digunakan untuk melakukan logging /menyiman paket data hasil komunikasi..

################### NAT section #############################

nat digukan untuk melakukan transalasi alamat ip…contohnya :

1.DNAT TARGET
DNAT digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match.DNAT hanya bisa di gunakan pada chain PREROUTING dan OUTPUT pada table NAT
contoh
iptables -t nat -A PREROUTING -i eth0 –d 111.112.113.114 p tcp –dport 80 -j DNAT –to-destination 192.168.1.1
penjelasan :
ketika sebuah paket yang di tujukan untuk alamat ip 111.112.113.114 protocl tcp port 80 maka akan di teruskan ke alamt ip 192.168.1.1

2 .SNAT TARGET / MASQUERADE
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada chain POSTROUTING..
contoh
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

3. REDIRECT TARGET
digukan untuk mengalihkan komunikasi ke port lain
iptables –t nat –A PREROUTING –i eth1 –p tcp –dport 80 –j REDIRECT –to-port 3128

kekna dah cukup sampe sini basic tentang iptables..ntar baru di kembangin lagi..

referensi
1.Novell Press : linux firewall 3rd edition
2.Linux CBT security edition
3.linux network security
4.team libiso haking course
5.mbah google

note :
next iptables tutorial “writing linux firewall hacking solution

Posted on September 15, 2008, in Firewall and tagged , , . Bookmark the permalink. 2 Comments.

  1. Muantap Bro.. keep posting

  2. Thanks ya bro,,,

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: