Friday, June 8, 2007

Firewall Dengan IPTables

Firewall adalah perangkat yang mau nggak mau harus ada di lingkungan kerja Anda. Karena dengan firewall, paling tidak, dapat mengamankan jaringan Anda dari serangan yang tidak anda inginkan. Apalagi bila jaringan Anda terhubung dengan Internet.
Nah ada berbagai macam firewall yang bisa Anda aplikasikan pada jaringan Anda. Ada Cisco PIX Firewall dan lain-lain. Kalo ngeliat harga di tanggung Anda akan telen ludah. Iyalah, satu unit firewall hardware paling tidak seharga US$ 4.000. Buat beli minyak goreng aja sulit, apalagi harus beli firewall. Apalagi kalo gajiannya telat... WAKS!!!!

Tapi tenang aja, ada kok perangkat firewall yang harganya paling sekitar Rp. 350.000,- sampai Rp. 750.000 an. Nah kalo udah denger yang ini di tanggung asik dan murah meriah. Dengan spek komputer bekas P3 500, RAM 64MB, HDD 3,2GB (harga sekitar 250.000 an di Yogya) dan tentu saja dengan OS gretongan (baca gratisan) LINUX !!! Terserah mau pake distro apa, kalo gue pake Fedora Core 5. Assik khan??

Untuk kernel versi 2.5 keatas biasanya sudah ada paket filter IPTables, so kita g perlu repot-repot mengompile kernel. Kalo belum ada, begini caranya:

1. Unduh dari http://www.netfilter.org
2. Extract file tersebut. Bila berbentuk tar.gz, lakukan perintah:
# tar xzpf iptables-xxx.tar.gz (xxx adalah versi iptables, jangan lupa login
sebagai root)
3. Kompile deh
# make KERNEL_DIR=/usr/src/linux
4. Install
# make install KERNEL_DIR=/usr/src/linux

Cara kerja IPTABLES
Supaya dapat membuat firewall yang tangguh, maka perlu di ketahui gimana sih sebetulnya proses dari IPTables ini, apakah akan di buang (DROP), di terima (ACCEPT)atau diteruskan (FORWARD).
Paket yang datang ke jaringan kita akan mengalami proses validasi dan akan di tentukan akan sesuai dengan tabel (tabel filter) pada IPTables. Bila paket tersebut di tujukan kepada firewall Linux kita, maka paket tersebut diteruskan ke tabel INPUT, bila ke jaringan lain akan masuk ke tabel (FORWARD). Setelah paket tersebut masuk ke dalam Tabel (INPUT dan FORWARD), maka paket tersebut akan di cocokan dengan aturan yang ada pada tabel tersebut. Setelah dicocokan, maka paket tersebut akan di perlakukan sesuai dengan Policy yang di tentukan.

Perintah standard IPTables

-A, --append
perintah ini akan menambah satu aturan baru yang di tempatkan pada posisi paling bawah dari aturan-aturan IPTABLES yang kita buat.
contoh penggunaan

iptables -A INPUT ....

-D --delete
Kebaikan dan append, perintah ini akan menghapus satu baris perintah. Penghapusan mengikuti spesifikasi dari aturan IPTables.
contoh penggunaan

iptables -D INPUT 1 (tabel Input baris pertama) atau
iptables -D POSTROUTING -s 10.10.10.82

-I --insert
Perintah ini hampir sama dengan -A, tapi di tempatkan sesuai dengan perintah yang kita masukan
contoh penggunaan

iptables -I INPUT 3 -s 202.155.32.47 (di tambahkan pada table INPUT baris ke 3)

-R --replace
Replace berarti menggantikan rule yang sudah ditetapkan sebelumnya
Contoh penggunaan

iptables -R INPUT 3 -s 202.155.32.47 -j DROP (Pada tabel INPUT baris ke 3, di gantikan dengan rule yang baru)

-L --list
List ini akan memperlihatkan output tentang rule yang sudah Anda buat ke layar monitor Anda.
Contoh penggunaan

iptables -L

-F --flush
Flush hampir sama dengan delete, tapi flush menghapus semua baris dari rule yang sudah Anda buat
Contoh Penggunaan

iptables -F INPUT

-N --new-chain
Akan menambah kolom baru.

-X --delete-chain
Akan menghapus kolom yang di buat. Tapi untuk kemanan, kolom dapat dihapus bila sudah tidak ada rules yang me-refer dari kolom tersebut.

-h
Help, tau dooong....

Parameter pada IPTables

-p, --protocol [!] protocol
Parameter ini akan mengecek protokol dari setiap paket yang datang. Protokol yang di gunakan adalah TCP, ICMP, UDP atau ALL. Tanda seru merupakan negasi yang menyatakan pengecualian
Contoh

iptables -A -p tcp
iptables -A -p ! tcp (kecuali port tcp)

-s --source [!] (address/mask)
Parameter ini akan memeriksa berdasarkan sumber paket. Bila sumber cocok dengan aturan IPTABLES makam aturan tersebut akan berlaku terhadap semua isi paket.
contoh

iptables -A INPUT -s 202.166.32.44

-d --destination [!] (address/mask)
Parameter ini kebalikan dari source
Contoh
iptables -A INPUT -d www.google.com

-j --jump (target)
Jump berguna untuk menentukan nasib paket. Apakah akan dibuang (DROP), diteruskan (FORWARD) atau diterima (ACCEPT)
contoh
iptables -A INPUT -s 192.168.32.1 -j DROP

-i --in-interface
Pada parameter ini, setiap paket akan diidentifikasikan berdasarkan kartu jaringan yang di masukinya. Misalnya eth0 untuk lancard 1, dst
Contoh
iptables -A INPUT -i eth0

-o --out-interface
Parameter ini kebalikan dari -i

MATCH Iptables
Match merupakan opsi tambahan supaya IPTABLES dapat rule yang spesifik.

--mac-source [!] mac-address
Opsi ini dapat digunakan untuk memfilter paket berdasarkan MAC Address. Bila MAC Address cocok dengan rule yang ditentukan maka, rule itu langsung berlaku
Contoh
iptables -A INPUT -m --mac-source 00:0F:53:00:04

multiport
Multiport dipakai jika ingin mendefinisikan banyak port dalam satu baris rule. Setiap port dipisahkan dengan koma.
contoh
iptables -A INPUT -m multiport --source-port 22,25,110,80

TARGET/JUMP
Seperti pembahasan -j di atas, disinilah nasib paket-paket ditentukan.

ACCEPT
Dengan opsi ini, maka paket langsung diterima
Contoh
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

REJECT
Sama kayak tulisannya, maka paket yang diset untuk REJECT akan ditolak, tapi firewall akan mengirim pesan ICMP error.
Contoh
iptables -A INPUT -p tcp --dport 80 -j REJECT

DROP
Sama seperti REJECT, tapi sang pengirim paket tidak akan menerima pesan. Atau dengan kata lain, di tolak mentah-mentah.
Contoh
iptables -A INPUT -p tcp --dport 80 -j DROP

SNAT
Parameter ini bertujuan untuk merubah sumber pengirim paket (Source Network Adress Translation). Berguna untuk warnet atau kantor yang mau berbagi saluran internet.
Misalnya kita berlangganan ISP dan kita di beri IP Public 202.155.22.100
contoh
iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 202.155.22.100

DNAT
Kebalikan dari SNAT, parameter ini merubah tujuan dari paket. Opsi ini berguna bila kita ingin server dengan IP lokal kita diakses dari luar. Misalnya kita berlangganan ISP dan kita di beri IP public 202.155.22.100 dan IP lokal kita adalah 192.168.100.1
contoh
iptables -t nat -A PREROUTING -p tcp -d 202.155.22.100 --dport 80 -j DNAT --to-destination 192.168.100.1

MASQUERADE
Sama dengan SNAT, tapi bila ISP kita menggunakan Dial UP Networking (dengan IP yang berubah-ubah)(huh :P)).
Contoh:
iptables -t nat -A POSTROUTING -o eth0 -dport 80 -j MASQUERADE

Nah kira-kira dengan penjelasan di atas, semoga dapat membantu temen2x semuanya. Saya pake firewall Linuc ini udah lebih dari 4 tahun, and PRAISE GOD, belum pernah trouble. Lain kali nyambung lagi tentang implementasinya dan Firewall Linux dengan DMZ.
GOD Bless You

1 comment:

cheno_ghost said...

nice info gan ane mo coba