Statefull Firewall | IPTables Connection State NEW, ESTABLISHED, RELATED, INVALID

Connection State Concept
Connection State Concept

Lanjuttt…. Apa aja sih yang bisa dipake firewall untuk mengenali traffic yang mau difilter?? Source/Destination IP/port, Connection State, Header Field macem DSCP Field…dan banyak sebenarnya 😀 . Kali ini aku bahas bab Connection State biar nama firewallnya lebih keren, Jadinya StateFull Firewall :D. Apa sih itu Connection State?? itu maksudnya adalah kondisi alias status dari suatu aliran koneksi, statusnya sendiri ada 4 macem, NEW, ESTABLISHED, RELATED, dan INVALID. Nah kalo pernah belajar bab 3Way-Handshake dari TCP-SYN sampe TCP-FIN kyknya bakal udah paham deh bab beginian…haha…

Sebelumnya aku kasih perumpamaan dulu nih : Alkisah mau beli Mie Instant

A : Permisi bu, 

B : Yaa silahkan, ada yang bisa dibantu?

A : Anu bu, mau beli Indomi rasa ayam betutu ada?

B : Ada mas, mau beli berapa?

A : 2 bungkusa aja bu

B : ini silahkan mas, Sekalian telurnya mas?

A : Ohh yaa boleh sebiji aja, jadi berapaan bu?

B : jadi totalnya 5 ribu mas

A : Ok, ini bu, makasih yaa.

B : Yaa sama-sama

1. State NEW

Adalah kondisi awal request, yaitu ditandai dengan dikirimnya TCP/SYN. Kalo di perumpamaan diatas yang bagian “permisi bu”, dia memulai initial connection dengan menyapa server dulu. Inilah yang bakal dikenali firewall sebagai NEW connection. Dari state ini bisa kita jadikan referensi buat filter, state ini mau di permit atau allow. Misal kalo dari ilustrasi gambar pertama diatas, misal router nggak mau ngelewatin (forward) new connection dari server. Jadinya yaa tinggal drop aja state new source dari server –> iptables -A FORWARD -s ip_server -m state –state NEW -j DROP 😀

2. State ESTABLISED

Kondisi dimana diatara kedua belah pihak sudah klop, disini kedua belah pihak sudah kirim-kiriman data. kalo di ilustrasi diatas adalah ketika si “A” tanya indomie, lalu si “B” memberi balasan, lalu si “A” minta lagi, lalu si “B” memberi balasan lagi, disini kondisinya si “A” sama si “B” saling transaksi. Sama seperti ketika kita request webpage misal, pertama kita initial nyapa server dulu (tcp/syn), setelah klop barulah kita sama si server tukar-menukar konten, dikondisi ini namanya related.

Gambarannya lagi seperti ini nih :

ex

Jadi kalo mau iseng bisa aja kan state new diterima, tapi establisednya di DROP, jadinya kayak orang di PHPin gitu…wkwkwk…

3. State RELATED

Koneksi baru yang ada hubungan ‘darah’ dengan koneksi yang udah terbentuk sebelumnya. Di ilustrasi diatas adalah ketika si “B” menawarkan Telur. Si “A” nggak minta telur, tapi si “B” menawarkan hal yang berhubungan dengan yang diminta “A” sebelumnya. Kalo di koneksi yang “katanya” ada beginian di FTP, aslinya FTP tukar-menukar command alias ngobrolnya pake TCP21, tapi “katanya” untuk transfer datanya pake TCP20. Tapi “katanya” lagi itu terngatung dari mode FTP Servernya juga, ingat ada FTP Server mode Active, & Mode Passive (cari tau sendiri). Selain FTP ada juga beberapa aplikasi chatting, SIP atau apa gitu yang ngebuka koneksi related kyk gini (tau deh tepatnya apa ._. ).

Nah di firewall ‘dulu’ kadang koneksi related ini kedetek sebagai koneksi new :3, tau’ deh kalo sekarang firewall udah pada pinter kali bisa ngenalin si related ini. tapi aku main connection tracking monitor tools macem tcptrack.. jarang2 nemuin koneksi related :3 . Gampangnya sih state ini di allow aja kalo buat awam-awaman yang nggak mau repot, karena takutnya ada aplikasi yang tidak kita ketahui yang ternyata ngebuka koneksi related, nah kalo nggak kita allow relatednya otomatis aplikasi itu kemungkinan nggak bisa jalan.

Tapi di versi orang expert bab manipulasi koneksi, related ini bisa dipake untuk mengelabui firewall, entah gimana caranya “katanya” mereka bisa bikin koneksi yang seolah-olah related dengan koneksi sebelumnya atau koneksi tertentu, sehingga bisa dipake buat susup-menyusup… :3

4. State INVALID

Nah yang ini aku bingung jelasinnya gimana, katanya sih ini adalah koneksi yang kagak jelas. Maksudnya sebelumnya tidak NEW, tidak RELATED, tidak juga Establish. Koneksi kan pada dasarnya dimulai dengan inital dulu. Mungkin kalo diilustrasikan kayak diatas si “A” tiba-tiba dateng ke si “B” tiba-tiba kasih duit buat bayar apa kagak tau. lalu apa kemungkinannya? kemungkinan si “A” gila atau dia lagi iseng.

Pendekatannya di Jaringan mungkin koneksi ini kebentuk karena ulah security attack macem Spoofing (mungkin), atau security assessment, stealth… entahlah, suwer aku belum mempelajari lebih lanjut state yang ini, tapi state ini sebaiknya di drop deh karena pendekatannya ke hal-hal negatif sepertinya 😀 haha…

Oke, dari states itu apa sih yang bisa kita mainkan? penerapannya gimana?

Biasanya yang sering aku temui penerapan di DMZ, atau di daerah server farm. Skenarionya adalah “server itu tugasnya untuk melayani, tidak untuk meminta”. Jadi dari server tidak diijinkan untuk melakukan request alias bikin NEW Conection, Server hanya merespons dan melayani request alias hanya ESTABLISHED dan RELATED yang boleh dari server.

Apa tujuannya? Pertama pasti ke arah security.

Kok dari server connectio new nggak boleh/nggak dilewatin?

Serverkan emang fungsinya untuk melayani. lalu setidaknya meminimal risiko misal kasusnya server lu dijebol orang, setidaknya dia nggak bisa nge-initial koneksi dari server lu, setidaknya meminimalkan si server dijadikan “zombie”

Kenapa musti pake Statefull firewall ini?

Supaya perangkat bekerja sesuai kerjaannya, sesuai rolenya, meminimalisir sesuatu yang menyimpang. Ada temen yang pake statefull firewall untuk mengendalikan penyebaran virus dikantornya. Alkisah viruskan nyebar di jaringan kadang dengan membuat koneksi diluar well-know dan registed port, random biasanya, nah kalo mau ngedrop koneksi yang dibuat si virus kan susah, lahwong ngtracknya aja ini koneksinya si virus bukan udah susah. makanya dia pake statefull firewall dengan aturannya dari host ini permit port-port yang dipake dan status koneksi sesuai dengan tugasnya. koneksi dan state lain drop aja. jadi deh 😀

Komen dimari gann....

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 )

Google photo

You are commenting using your Google 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 )

Connecting to %s