FIREWALL Firewall atau yang lebih dikenal pelindung jaringan private dapat berupa aplikasi yang dikhususkan untuk melindungi jaringan lokal kita atau hardware (contohnya : router + firewall) yang diposisikan antara jaringan internet dan intranet (lokal) dan jumlah interface ethernet biasanya lebih dari satu. Satu interface terkoneksi ke jaringan PUBLIC dan yang lainnya terkoneksi ke jeringan PRIVATE. Tugas dari firewall ini pada umumnya melakukan filtering terhadap akses dari jaringan lokal ke jaringan public ataupun sebaliknya dan melakukan translasi IP (Masquerade) jaringan lokal ke jaringan public (NAT). Parameter parameter firewall tergantung dari kebutuhan jaringan tersebut dan antar lokasi tentunya berbeda. Parameter ini sering dikatakan juga access-list. Dalam pendefinisiannya firewall memiliki aturan aturan terhadap boleh dan tidaknya akses protocol jaringan lokal. Namun sebelum mempelajari prinsip kerja firewall ini, Anda diwajibkan memahami terlebih dahulu jenis protocol TCP dan UDP serta aliran/arah packet data. Tabel iptables dibagi menjadi beberapa tabel yaitu : - Filtering - NAT - Mangle DIAGRAM IP FLOW Router Mikrotik
Posisi Firewall PC client Switch LAN Firewall Internet Di linux khusunya ubuntu, aplikasi firewall yang digunakan yaitu iptables. Aplikasi ini secara default sudah terinstall pada mesin ubuntu Anda, untuk pengecekan tabel iptables ketikan perintah berikut ini pada terminal ubuntu : root@ubuntu#iptables -L -n -v hasilnya adalah urutan rule rule untuk filtering, untuk manual referensinya ketikan perintah berikut : root@ubuntu#man iptables 1. FILTERING Chain (Rangkaian) untuk melakukan filtering di ubuntu adalah sebagai berikut : a. INPUT Proses filtering terhadap paket data yang sumbernya dari jaringan lokal atau pun internet dengan tujuan ke mesin ubuntu (firewall). Sebagai contoh kita dapat mengatur IP mana saja yang boleh melakukan remote mesin ubuntu kita melalui protocol SSH. FILTERING INPUT
b. OUTPUT Proses filtering terhadap paket data yang sumbernya dari mesin ubuntu (firewall) ke jaringan lokal ataupun internet. c. FORWARD Proses filtering yang melewati mesin ubuntu (firewall) dari arah jaringan lokal kita ke jaringan internet ataupun sebaliknya. Chain forward ini paling sering digunakan untuk melakukan batasan akses terhadap port, MAC Address serta IP Address. Selain chain, iptables juga memiliki TARGET atau status yang menentukan aturan tersebut diperbolehkan atau ditolak. Parameter TARGET sebagai berikut : ACCEPT Akses atau rule diterima REJECT Akses ditolak, kompter yang melewati firewall langsung terputus, biasanya terdapat pesan connection refused sehingga tidak membebani jaringan. DROP Akses diterima tetapi packet dibuang langsung oleh kernel sehingga pengguna tidak tahu bahwa koneksinya dibatasi oleh firewall. Penggunaan DROP ini memakan resource firewall yang cukup tinggi sehingga tidak disarankan digunakan pada jaringan yang congesti.
Beberapa Option yang sering digunakan dalam iptables : - A : <jenis chain>: option untuk menambahkan aturan baru pada akhir chain - I :<jenis chain>: option untuk menyisihkan aturan baru pada chain - D : <jenis chain> <nomor aturan>: untuk menghapus suatu aturan dalam chain, berdasarkan posisi aturan tersebut dimana aturan pertama adala nomor 1, aturan kedua adalah nomor 2, dan seterusnya - i : <network interface>: menentukan network interface untuk paket data yang masuk - o : <network interface>: menentukan network interface untuk paket data yang keluar - j : <policy>: menentukan policy atau action yang dijalankan jika terjadi match terhadap aturan. Pada umumnya, policy bisa berupa ACCEPT atau DROP - p : <protokol>: menentukan jenis protokol yang digunakan oleh paket data. Jenis yang sering digunakan adalah protokol tcp, udp, icmp - s : <alamat asal>: menentukan alamat asal untuk paket data - d : <alamat tujuan>: menentukan alamat tujuan untuk paket data - - sport : <nomor port>: menentukan nomor port asal untuk paket data (hanya berlaku untuk jenis protokol tcp dan udp) - - dport : <nomor port>: menentukan nomor port tujuan untuk paket data (hanya berlaku untuk jenis protokol tcp dan udp) - Dan lain lain (lihat man iptables) Bentuk perintah iptables FILTERING : root@ubuntu#iptables -A <CHAIN> <Option> <TARGET> Saatnya praktek.. Perhatikan Contoh didepan!! Contoh Filtering : 1. Membatasi port number (INPUT Chain) root@ubuntu#iptables -A INPUT -i eth0 -s 192.168.2.2 -d 192.168.2.1 -p udp --dport ssh -j REJECT Perintah diatas membatasi klien komputer untuk mengakses port SSH ke firewall (mesin ubuntu).
melihat tabel firewall : root@ubuntu#iptables -L -n -v 2. Membatasi port P2P (FORWARD Chain) root@ubuntu#iptables -A FORWARD -p tcp --dport 6340:6350 -j REJECT root@ubuntu# iptables -A FORWARD -p udp --dport 6340:6350 -j REJECT Perintah diatas membatasi koneksi tipe tcp dan udp dari port 6430 6350 melewati firewall 3. Membatasi koneksi internet untuk 1 IP klien (FORWARD Chain) root@ubuntu#iptables -A FORWARD -s 192.168.2.2 -d 0/0 -j REJECT Perintah diatas membatasi koneksi internet untuk IP 192.168.2.2 ke semua tujuan (0/0) atau internet. 4. Membatasi koneksi internet berdasarkan range-ip-address root@ubuntu#iptables -A FORWARD -m iprange --src-range 192.168.2.2-192.168.2.5 -d 0/0 -j REJECT Perintah diatas membatasi koneksi internet dari klien komputer 192.168.2.2 hingga 192.168.2.5 5. Membatasi koneksi internet berdasarkan MAC Address root@ubuntu#iptables -A FORWARD -m mac --mac-source 0e:1a:18:1a:4c:3e -d 0/0 -j REJECT perintah diatas membatasi MAC Address 0e:1a:18:1a:4c:3e koneksi ke internet NAT (Native Address Translation) NAT adalah mekanisme translasi jaringan IP Private kita ke satu atau lebih jaringan PUBLIC yang kita miliki. NAT juga dapat digunakan untuk pengarahan port aplikasi dari PUBLIC kita ke PRIVATE yang biasanya digunakan untuk pengalihan port Web Server lokal kita.
Bentuk perintah iptables untuk NAT : root@ubuntu#iptables -t nat <chain> <opsi> <TARGET> Chain pada NAT dibagi menjadi 2 bagian : 1. POSTROUTING Melakukan NAT paket data dari IP Private kita ke internet. 2. PREROUTING Melakukan NAT yang masuk ke firewall, biasanya digunakan untuk pengalihan port aplikasi server lokal kita. Catatan : - Jangan lupa tambahkan default route - Ganti isi file ip_forward menjadi 1 di : /proc/sys/net/ipv4/ip_forward Saatnya Praktek!!! Contoh firewall NAT : 1. NAT ke internet root@ubuntu#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 0/0 -j SNAT --to-source 222.124.22.30 atau root@ubuntu#iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -d 0/0 -j MASQUERADE
Perintah diatas melakukan translasi Network Address pivate kita 192.168.2.0/24 ke IP Public. Perbedaan kedua perintah diatas, yang pertama melakukan translasi ke satu IP Public kita (Static IP Public), sedangkan yang kedua melakukan translasi ke satu IP Public kita yang dinamis dengan menggunakan kata MASQUERADE. 2. NAT ke Server lokal kita root@ubuntu#iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.2:80 Perintah diatas melakukan translasi ke IP Private kita dari interface eth0 melalui port 80 (translasi Web Server). Menghapus tabel firewall (iptables) : root@ubuntu#iptables -F (menghapus semua tabel filtering) root@ubuntu#iptables -t nat -F (menghapus semua tabel NAT) root@ubuntu#iptables -D FORWARD 1 (menghapus tabel baris 1 untuk Chain FORWARD filtering).