Firewall
Firewall merupakan sebuah perangkat yang
digunakan untuk kepentingan keamanan suatu sistem. Firewall akan
melakukan pemeriksaan paket data baik yang masuk maupun yang keluar dari
suatu sistem. Paket-paket data yang mencurigakan dan membahayakan
sistem akan dibuang oleh firewall.
Firewall dapat dibedakan menjadi :
- Dedicated firewall, firewall yang berupa perangkat keras khusus yang dirancang untuk kepentingan keamanan jaringan, misalnya Cisco PIX Firewall
- Server Based-Firewall, berupa Network Operating System (misalnya Linux, UNIX) yang menjalankan fungsi-fungsi firewall.
- Integrated Firewall, fungsi firewall yang ditambahkan pada suatu perangkat jaringan, misalnya router yang menjalan fungsi firewall.
- Personal Firewall, berupa firewall yang dipasang pada personal computer (host dalam jaringan), biasanya merupakan bawaan OS, Anti Virus maupun software dari vendor tertentu.
Iptables (Linux Firewall)
Linux merupakan Network Operating System
yang sudah dilengkapi dengan aplikasi firewall. Fungsi-fungsi firewall
pada suatu sistem Linux dijalankan oleh Iptables. Pada sistem Linux
terdahulu, fungsi firewall dijalankan oleh Ipchains.
Selain menjalankan fungsi firewall,
Iptables juga dapat menjalankan fungsi NAT. NAT merupakan fungsi yang
dijalankan oleh sebuah Internet Gateway untuk menghubungkan jaringan
lokal (Private IP Address) dengan jaringan Internet (Public IP Address).
Secara default Iptables telah terinstall
pada sistem Linux Fedora Core maupun RedHat. Untuk memeriksa apakah
Iptables telah terinstall dapat digunakan perintah :
[root@gateway]# rpm –q iptables
iptables-1.3.5-1.2.1
Tables
Setiap paket data yang diterima oleh
Sistem Linux yang menjalankan fungsi firewall akan diperiksa oleh
Iptables. Iptables akan melakukan pemeriksaan dengan memasukkan setiap
paket data ke dalam tabel-tabel
Iptables memiliki 3 buah tabel built-in, yaitu :
- mangle, digunakan untuk manipulasi paket data, misalnya melakukan perubahan TCP Header
- filter, digunakan untuk melakukan filter paket data yang diterima firewall
- nat, digunakan untuk melakukan network address translation.
Chain
Setiap tabel memiliki rule-rule atau aturan-aturan yang disebut chain.
Mangle, memiliki 5 buah built-in chains :
Semua chains diperuntukkan untuk TCP Packet Quality of Service sebelum proses routing dijalankan.
- PREROUTING
- POSTROUTING
- INPUT
- OUTPUT
- FORWARD
Filter, memiliki 3 buah built-in chains :
- FORWARD : melakukan filter paket yang akan diforward dari suatu NIC ke NIC yang lain pada firewall, seperti fungsi router.
- INPUT : melakukan filter paket yang ditujukan bagi firewall
- OUTPUT : melakukan filter paket yang akan keluar dari firewall.
Nat memiliki 3 buah built-in chains :
- PREROUTING : digunakan untuk mentranslasi address sebelum proses routing terjadi. Dilakukan dengan merubah Destination IP Address dari paket data. Biasa dikenal dengan Destination NAT atau DNAT.
- POSTROUTING : digunakan untuk mentranslasi address setelah proses routing terjadi. Dilakukan dengan merubah Source IP Address dari paket data. Biasa dikenal dengan Source NAT atau SNAT.
- OUTPUT : digunakan untuk mentranslasi address paket data yang berasal dari firewall itu sendiri.
Target dan Jump
Setiap paket data memasuki sebuah
lingkaran, chain akan memeriksa paket tersebut sesuai kriteria yang
sudah ditentukan. Pemeriksaan biasanya dilakukan dengan mencocokan TCP
Header dari paket data dengan suatu rule yang sudah di tentukan pada
chain. Bila ternyata cocok, maka chain akan melakukan “jump” atau
eksekusi terhadap paket tersebut. Jump dapat berupa DROP (buang) atau
ACCEPT (terima).
Namun bila kriteria TCP Headernya tidak
cocok, maka pemeriksaan akan diserahkan kepada chain selanjutnya. Bila
sampai akhir chain tidak ada yang cocok, maka penentuan “jump” paket
akan ditentukan oleh chain default dari Iptables. Jump default dari
Iptables adalah default DROP ataupun default ACCEPT.
Berikut berbagai jenis “jump” yang dapat diterapkan pada paket data :
- ACCEPT : paket akan diterima oleh Iptables dan diteruskan kepada aplikasi yang membutuhkan atau diteruskan ke sistem operasi untuk diproses selanjutnya.
- DROP : paket akan di-blok (tidak dijinkan masuk ke iptables)
- LOG : informasi dari paket akan dimasukan ke syslog untuk keperluan logging, setelah di logging paket diserahkan ke chain berikutnya dalam tabel
- REJECT : paket akan di-blok (sama seperti DROP), namun dengan memberikan pesan error kepada host pengirim bahwa paket di-blok.
- DNAT : destination IP address dari paket akan dirubah
- SNAT : source IP address dari paket akan dirubah, source IP address baru yang akan digunakan harus ditentukan.
- MASQUERADE : source IP Address dari paket akan dirubah, source IP address baru yang akan digunakan sama dengan IP address dari interface firewall.
General Iptables Match Criteria
Dalam proses pencocokan kriteria paket pada chain digunakan beberapa perintah sebagai berikut :
- -t <table> : mendefinisikan tabel yang akan digunakan (mangel, filter atau nat). Bila tidak didefinisikan, asumsi yang digunakan adalah tabel filter.
- -j <target> : mendefinisikan jump yang akan diberlakukan pada suatu paket yang cocok dengan kriteria (rule) yang diterapkan.
- -A : menambahkan chain baru sesudah chain terakhir.
- -F : menghapus semua chain pada suatu tabel.
- -p <protocol-type> : mencocokan protocol yang digunakan (TCP, UDP, ICMP dan lain-lain)
- -s <ip address> : mencocokan source IP address pada paket data (host pengirim)
- -d <ip address> : mencocokan destination IP address pada paket data (host tujuan)
- -i <interface-name> : mencocokan “input” interface dimana paket akan diterima.
- -o <interface-name> : mencocokan “output” interface dimana paket akan dikeluarkan.
Contoh :
iptables -A INPUT -s 0/0 -i eth0 -d 192.168.1.1 -p tcp -j ACCEPT
perintah yang mengkonfigurasikan
iptables, sehingga firewall dapat menerima paket TCP yang masuk pada
interface eth0 (192.168.1.1), dimana paket tersebut dapat berasal dari
sembarang host
TCP dan UDP Match Criteria
Untuk pencocokan kriteria berdasarkan protokol TCP dan UDP, terdapat beberapa perintah tambahan, yaitu :
- -p tcp –-sport <port> : TCP source port, dapat berupa satu buah port atau range port. Untuk menggunakan range port formatnya adalah : startport:endport
- -p tcp –-dport <port> : TCP destination port
- -p tcp –-syn : mencocokan TCP Request Connection yang baru
- -p udp –-sport <port> : UDP source port, dapat berupa satu buah port atau range port. Untuk menggunakan range port formatnya adalah : startport:endport
- -p udp –-dport <port> : UDP destination port
Contoh :
iptables -A FORWARD -s 0/0 -i eth0 -d 192.168.1.58 -o eth1 -p TCP
–sport 1024:65535 –dport 80 -j ACCEPT
perintah yang mengkonfigurasikan
iptables, sehingga firewall dapat menerima paket TCP yang masuk pada
interface eth0 (192.168.1.58 )untuk dilakukan routing, kemudian paket
data tersebut dikeluarkan melalui ineterface eth1, dimana paket tersebut
dapat berasal dari sembarang host dengan source port dalam range 1024
s/d 65535 dan destination port 80 (aplikasi www atau http)
ICMP (ping) Match Criteria
Pencocokan kriteria untuk protokol ICMP, perintah yang dapat digunakan :
- -p icmp-type <type> : mencocokan tipe pesan ICMP, apakah icmp echo-request atau icmp echo-reply
Contoh :
iptables -A OUTPUT -p icmp –icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp –icmp-type echo-reply -j ACCEPT
perintah yang mengkonfigurasikan
iptables, sehingga firewall dapat mengirimkan paket ICMP echo-request
(ping) dan kemudian dapat menerima kembali ICMP echo-reply.
0 comments:
Post a Comment