Rabu, 22 Juli 2009

iptables - Firewall sebenar2 nya..

Satu hal lagi yang baru kupelajari dalam rangka menambah ilmuku tentang jaringan adalah IPtables. Dari yang kubaca, pembahasan iptables secara keseluruhan cukup luas, jadi kali ini ku persempit dulu pembahasannya menjadi firewall with iptables. Walaupun sebenarnya ga lengkap-lengkap kali, soalnya yang kutulis adalah yang aku udah ngerti dulu, bukan sekedar copas hehe..

Sebelum nulis ini, tadi uda sempat coba-coba dikit, dan ternyata berhasil. Nah sekarang aku ingin mengabadikan kenangan ini, usaha ini, kerja keras ini (hoho kaya’ betul aja..) menjadi bait-bait tulisan yang bisa ku nikmati di hari tua nanti..amin.. klo nyampe tua..

Sebenarnya di iptables ada beberapa table, ada filter, nat, mangle, dan raw, tapi karena pembahasan kita dipersempit, jadi yang digunakan kali ini adalah bagian filternya.

Mulai….:

Dalam tabel filter terdapat 3 buah build-in chains (susah dibahasa indonesiakan) dimana kita bisa meletakkan aturan-aturan untuk firewall kita. Bingung? lanjutin aja dulu ya..
Berikut 3 buah “rantai” tersebut :
1. INPUT (untuk paket yang ditujukan ke firewall kita)
2. FORWARD (untuk paket yang di route lewat firewall kita, misalnya sebagai server yang menghubungkan jaringan local ke jaringan internet.
3. OUTPUT (untuk paket yang berasal dari firewall)

Target And Jumps
Setiap rule yang ada di firewall akan mencoba mengidentifikasi setiap paket yang ada di “rantai”, jika sesuai maka akan dianggap sebagai target, yang selanjutnya akan diarahkan ke proses selanjutnya, atau istilahnya di jump over ke proses seanjutnya. Atau sederhananya, apa yang akan dilakukan jika terdapat paket yang cocok dengan rule.
Berikut adalah beberapa Jumps yang populer :
1. ACCEPT (proses di iptables selesai, dan paket dilanjutkan ke tempat seharusnya, misalnya applikasi tujuan)
2. DROP (proses di iptables selesai, dan paket diblock)
3. REJECT (proses di iptables selesai, dan paket diblock lalu mengirimkan pesan ke host pengirim bahwa paket diblock)

Selanjutnya adalah COMMANDS yang bias digunakan :
o ya, ni aturan penulisannya untuk masing-masing commands yang digunakan.
iptables [-t table] -[AD] chain rule-specification [options]
iptables [-t table] -I chain [rulenum] rule-specification [options]
iptables [-t table] -R chain rulenum rule-specification [options]
iptables [-t table] -D chain rulenum [options]
iptables [-t table] -[LFZ] [chain] [options]
iptables [-t table] -N chain
iptables [-t table] -X [chain]
iptables [-t table] -P chain target [options]
iptables [-t table] -E old-chain-name new-chain-name

-t = menentukan nama tabel (filter, nat, mangle, raw). jika tidak ditulis, maka defaultnya adalah “filter”.

ket : chain ==> misalnya INPUT, OUTPUT, atau FORWARD
rulenum ==> nomor urut aturan dalam chain
target==> seperti yang dijelaskan pada bagian target and jumps di atas

nah, ini commandsnya :
1. -A ==> menambahkan rule di baris terakhir chain yang ditentukan.
(iptables -A INPUT -j DROP : semua paket yang masuk ke chain INPUT akan di DROP)
2. -D ==> menghapus rule yang ada di chain tertentu, ada dua jenis penghapusan, yaitu dengan nomor urut rule (rulenum) atau dengan pencocokan rule-specification.
(iptables -D INPUT 1, atau iptables -D INPUT -s 10.14.210.100 -j DROP : yg pertama adalah menghapus rule pertama di chain input, yang kedua adalah menghapus rule yang cocok dengan spesifikasi tersebut di chain INPUT)
3. -I ==> menambahkan rule di baris dan chain yang ditentukan.
(iptables -I INPUT 1 –dport 80 -j ACCEPT : menambahkan rule di urutan pertama pada chain INPUT)
4. -R ==> mereplace rule yang ada di chain berdasarkan rulenum.
(iptables -R INPUT 1 -s 192.168.0.1 -j DROP : menimpa rule nomor satu di chain INPUT dengan rule baru tersebut)
5. -L ==> menampilkan daftar rule seluruhnya atau di chain tertentu jika jenis chain ditentukan.
(iptables -L INPUT : menampilkan semua rule yang ada di chain INPUT)
6. -F ==> menghapus semua rule atau semua rule di chain tertentu jika jenis chain ditentukan.
(iptables -F : menghapus semua rule yang ada di semua chain)
7. -Z ==> untuk meng-nol-kan semua counter yang di chain tertentu, misalkan coba -v, setelah itu gunakan -Z, lalu lihat beda -v setelah di -Z.
(iptables -Z INPUT)
8. -N ==> membuat sebuah chain baru.
(iptables -N ALLOW : membuat sebuah chain bernama ALLOW)
9. -X ==> menghapus chain tertentu.
(iptables -X ALLOW : menghapus chain bernama ALLOW)
10. -P ==> untuk menentukan default target dari chain tertentu.
(iptables -P INPUT ACCEPT : jika paket tidak ada yang cocok dengan semua rule yang ada, maka akan dipaksa mengikuti rule default ini)
11. -E ==> mengubah nama chain.
(iptaables -E ALLOW ALLOWAH : mengubah nama chain dari ALLOW jadi ALLOWAH)
Catatan : Nomor rule dimulai dari satu.

Selanjutnya adalah daftar parameter pembentuk rule-specification :
-s ==> source
(iptables -A INPUT -s 192.168.1.1)
-d ==> destination
(iptables -A INPUT -d 192.168.1.1)
-p ==> protocol
(iptables -A INPUT -s 192.168.1.1 -p tcp)
-i ==> in-interface
(iptables -A INPUT -i eth0)
-o ==> out-interface
(iptables -A FORWARD -o eth0)
–sport ==> source port
(iptables -A INPUT -s 192.168.1.1 -p tcp –sport 22)
–dport ==> destination port
(iptables -A INPUT -p tcp –dport 22)
–sys ==> untuk identifikasi new connection request
(iptables -A INPUT -i ppp0 -p tcp –syn –dport ! 80 -j DROP)
Catatan : Gunakan tanda ! untuk negasi/ pernyataan tidak/ selain.
Gunakan tanda : untuk menyatakan sampai, misal port 10 sampai 20, maka ditulis 10:20.

Contoh-Contoh Script IPTables :
iptables -A INPUT -p icmp –icmp-type 8 -j DROP
(DROP semua paket icmp-request yang masuk ke server kita, dengan kata lain komputer kita ga bisa di ping)
=> –icmp-type 0 for reply 8 for request.
iptables -A OUTPUT -p udp -o eth0 –dport 53 –sport 1024:65535 -j ACCEPT
(ACCEPT paket yang dengan protokol UDP, out-interface eth0, destination port 53, source port 1024-65535)
iptables -A INPUT -p icmp –icmp-type 8 -s 0/0 -d $SERVER_IP -m state –state NEW, ESTABLISHED, RELATED -j ACCEPT
($SERVER_IP adalah variable, bisa digantikan dengan IP server. -m state –state adalah untuk mengetest keadaan paket, ada 4 yang bisa digunakan, yaitu NEW, ESTABLISHED, RELATED, dan INVALID. NEW : paket memulai koneksi baru. ESTABLISHED : paket adalah bagian dari koneksi yang terjadi antara dua host, misalnya ICMP reply message, yang merupakan balasan dari ICMP request. RELATED : koneksi yang termasuk RELATED adalah jika ia berhubungan dengan koneksi ESTABLISHED yang telah ada. INVALID : paket tidak teridentifikasi atau tidak memiliki state, ini mungkin terjadi karena system running out memory atau karena ICMP error messages yang tidak merespon ke known connections.

hhuaaaa.. uda ngantuk nih,, sampai disini dulu yah, ntar klo masih ada waktu n ilmunya semakin banyak, ntar ditulis lagi deh biar ga ilang..hehe..

Kata bijak : ilmu itu kaya’ kambing, klo ga diikat ntar hilang lho..,klo kambing diikat dengan tali, klo ilmu diikat dengan ditulis..

Senin, 20 Juli 2009

CISCO ASA 5510 - mainan baru Firewall dari CISCO







Cisco ASA 5510 adalah salah satu seri firewall keluaran cisco.
Firewall only, itu yang terbersit saat saya mengconfigure firewall ini, tidak ada nya smart defense, url filtering seperti pada firewall jenis UTM yang tersedia di pasaran.tapi hal ini dapat di akali dengan menggunakan macafee dengan membayar licensi lg.fitur nya menjadi UTM lengkap lah sudah.

penggunaan ASDM menurut saya sangat membatu sekali dalam memonitoring kinerja firewall ini.banyak fungsi dari configuring interface sampe create vpn ipsec yg di dukung oleh firewall ini.

Kamis, 16 Juli 2009

Irdp like failover



yang dapet di jadikan alternative pengganti HSRP, vrrp dan glbp.
presedence yang lebih besar akan di pilih menjadi default gateway, dapat di lihat dari debug nya.