Pengertian IPTABLES
Iptables adalah suatu tools dalam
sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter
(penyaringan) terhadap (trafic) lalulintas data. Secara sederhana digambarkan
sebagai pengatur lalulintas data. Dengan iptables inilah kita akan mengatur
semua lalulintas dalam komputer kita, baik yang masuk ke komputer, keluar dari
komputer, ataupun traffic yang sekedar melewati komputer kita.
~Bagaimana Cara Perintahnya?
iptables [–t tables] [option] [rule] [target]
Contohnya:
iptables –P FORWARD ACCEPT
~Apa saja yang
bisa dilakukan dengan iptables?
Dengan kemampuan tools iptables ini,
kita bisa melakukan banyak hal dengan iptables. Yang paling penting adalah
bahwa dengan iptables ini kita bisa membuat aturan (rule), untuk arus
lalulintas data. Aturan aturan itu dapat mencakup banyak hal, seperti besar
data yang boleh lewat, jenis paket/datagram yang dapat diterima, mengatur
trafic berdasar asal dan tujuan data, forwarding, nat, redirecting, pengelolaan
port, dan firewall.
Keterangan:
1. Data masuk ke dalam sistem komputer bisa melalui banyak jalan, biasanya
melalui network interface. Bisa berupa card dan dapat pula berupa wifi lan atau
yang lain. Setelah masuk sistem, maka data tersebut akan segera masuk ke dalam
decission maker, yang menentukan bahwa data itu akan di proses ke dalam komputer
(input) atau akan di lewatkan (forward).
2. Setelah data masuk jika data tersebut mendapatkan rantai FORWARD maka akan
segera masuk dalam aturan dalam rule FORWARD tersebut.
3. Jika data masuk ke dalam rantai input, maka data akan mengalami rule
Perlakuan apa saja yang dialami data
oleh iptables?
Perlakuan yang dialami oleh data/paket
data oleh iptables digambarkan melalui tabel. Macam tabelnya adalah:
1. Filter : tabel default yang ada dalam penggunaan iptables
2. NAT : tabel ini digunakan untuk fungsi NAT, redirect, redirect port
3. Mangle : tabel ini berfungsi sebagai penghalus proses pengaturan
paket
~Bagaimana kita bisa peroleh informasi
tentang iptables tersebut di dalam sistem operasi linux?
Kita bisa peroleh info tentang
iptables, dengan cara mengetikkan:
man iptables
atau
iptables –help
Perintah man adalah untuk
mendapatkan manual penggunaaan dari iptables ini. Sedangkan help adalah untuk
mendapatkan informasi help dari iptables tersebut.
- OPTION
Option terdiri dari command, dan parameter serta opsi tambahan
COMMAND
Command dan rule yang dipasang pada iptables (firewall) memiliki ketentuan.
Pada dasarnya iptables pada komputer dianggap sebagai TABEL IP sesuai dengan
namanya. System hanya akan menjalan rule yang ada pada tabel. Sedangkan rule
yang sudah ada pada iptables juga dapat di hapus atau di replace dengan rule
lain. Berikut beberapa command untuk penambahan, penghapusan dan operasi
sejenisnya yang akan diperlakukan terhadap rule.
Daftar Perintah berikut
keterangan
-A atau –append Melakukan penambahan
rule
-D atau –delete Melakukan penghapusan rule
-R atau –replace Melakukan replacing rule
-L atau –list Menampilkan ke display, daftar iptables
-F atau –flush Menghapus daftar iptables/pengosongan
-I atau –insert Melakukan penyisipan rule
-N atau –new-chain Melakukan penambahan chain baru
-X atau –delete-chain Melakukan penghapusan chain
-P atau –policy Memberikan rule standard
-E atau –rename Memberikan penggantian nama
-h atau –help Menampilkan fasilitas help
Table 1. Table Command iptables
Parameter
Parameter iptables digunakan sebagai pelengkap yang diperlukan untuk tujuan
spesifikasi rule tersebut
Parameter berikut Keterangan
-p, –protocol (proto) Parameter ini untuk menentukan perlakuan terhadap
protokol
-s, –source (address) –-src Parameter untuk menentukan asal paket
-d, –destination (address) –-dst Parameter untuk menentukan tujuan paket
-j, –jump (target)
-g, –goto (chain)
-i, –in-interface Masuk melalui interface (eth0, eth1 dst)
-o, –out-interface
[!] -f, –fragment
-c, –set-counters
Table 2. Tabel Parameter iptables
Parameter berikut Keterangan
–sport
–source-port Menentukan port asal
–dport
–destination-port Menentukan port tujuan
–tcp-flags Menentukan perlakuan datagram
–syn
Table 3. Tabel Parameter detail
Selanjutnya apa itu yang disebut dengan
chain?
Chain/rantai digambarkan sebagai jalur aliran data. Chains yang diperlukan
untuk iptables ini antara lain:
Chain berikut Keterangan
FORWARD Route packet akan di FORWARD tanpa di proses lanjut di local
INPUT Route packet masuk ke dalam proses lokal sistem
OUTPUT Route packet keluar dari local sistem
PREROUTING Chain yang digunakan untuk keperluan perlakuan sebelum packet masuk
route. Biasanya dipakai untuk proses NAT
POSTROUTING Chain yang digunakan untuk keperluan perlakuan sesudah packet masuk
route. Biasanya dipakai untuk proses NAT
Tabel 4. Tabel Chain
Chain PREROUTING dan POSTROUTING dimaksudkan sebagai jalur data sebelum
dan sesudah data tersebut masuk ke dalam route.
PREROUTING: data sebelum masuk jalur route, akan di kenakan rule
POSTROUTING: data sebelum masuk akan dikenakan route
Apakah target itu?
Target adalah tujuan perlakuan terhadap rule. Pada target ini terletak
keputusan, paket data mau diapakan, apakah mau di tolak, atau diteruskan atau
diolah terlebih dahulu. Berikut daftar table target iptables
Target berikut Keterangan
ACCEPT Rantai paket tersebut diterima dalam rule
DROP Rantai paket tersebut “dijatuhkan”
REJECT Rantai paket tersebut ditolak seperti DROP
DNAT Rantai paket di “destination nat” kan ke address lain
SNAT Rantai paket di arahkan ke source nat tertentu
REDIRECT Rantai paket di redirect ke suatu addres dan port tertentu
MASQUERADE Bekerja seperti SNAT tapi tidak memerlukan source
REJECT Bekerja seperti DROP
Contoh beberapa kasus untuk iptables
Misalkan terdapat sebuah jaringan
komputer menggunakan koneksi internet dengan IP ADDRESS publik
222.124.132.91 (eth0)
Server gateway memiliki 3 anak jaringan (jaringan lokal) dengan dibedakan
subnet
192.168.0.0/24 (eth1)
192.168.1.0/24 (eth2)
192.168.10.0/24 (eth3)
Kondisi dalam jaringan, eth3 tidak
diperbolehkan melakukan akses ke internet tetapi diperbolehkan masuk ke
jaringan lokal lainnya melalui protokol http. Sedangkan eth1 dan eth2
diperbolehkan melakukan akses ke internet. Pada IP ADDRESS 192.168.1.10
terdapat webserver, dan pada IP Address 192.168.1.12 terdapat koleksi intranet
yang akan dipublish ke internet. Disamping itu, koneksi internet 1 mega
tersebut akan di share, untuk semua komputer di eth2 akan dibatasi pemakaiannya
maksimal 10kbps. Berikut contoh sederhana routin firewallnya
#/bin/bash
#blok semua address (default), pada
dasarnya semua akses di blok
iptables –P INPUT –j DROP
#bersihkan table
iptables –F
iptables –t nat –F
iptables –t mangle -F
#perkecualian dengan syarat tertentu
iptables -A INPUT -d 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j
ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j
ACCEPT
iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j MASQUERADE
iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE
#forward webserver dan intranet
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to
192.168.0.10:80
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 88 -j DNAT –to 192.168.0.12:80
#redirect ke squid
iptables –t nat –A PREROUTING –s 192.168.10.0/24 -p tcp –dport 80 -j REDIRECT
–to-port 3128
iptables –t nat –A PREROUTING –s 192.168.10.1/24 -p tcp –dport 80 -j REDIRECT
–to-port 3128
Perjalanan paket yang
diforward ke host yang lain
1. Paket berada pada jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada table Mangle.
Chain ini berfungsi untuk me-mangle (menghaluskan) paket, seperti merubah TOS,
TTL dan lain-lain.
4. Paket masuk ke chain PREROUTING pada tabel nat. Chain
ini berfungsi utamanya untuk melakukan DNAT (Destination Network Address
Translation).
5. Paket mengalami keputusan routing, apakah akan diproses
oleh host lokal atau diteruskan ke host lain.
6. Paket masuk ke chain FORWARD pada tabel filter.
Disinlah proses pemfilteran yang utama terjadi.
7. Paket masuk ke chain POSTROUTING pada tabel nat. Chain
ini berfungsi utamanya untuk melakukan SNAT (Source Network Address
Translation).
8. Paket keluar menuju interface jaringan, contoh eth1.
9. Paket kembali berada pada jaringan fisik, contoh LAN.
Perjalanan paket yang ditujukan bagi host lokal
1. Paket berada dalam jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada tabel mangle.
4. Paket masuk ke chain PREROUTING pada tabel nat.
5. Paket mengalami keputusan routing.
6. Paket masuk ke chain INPUT pada tabel filter untuk
mengalami proses penyaringan.
7. Paket akan diterima oleh aplikasi lokal.
Perjalanan paket yang berasal dari host lokal
1. Aplikasi lokal menghasilkan paket data yang akan
dikirimkan melalui jaringan.
2. Paket memasuki chain OUTPUT pada tabel mangle.
3. Paket memasuki chain OUTPUT pada tabel nat.
4. Paket memasuki chain OUTPUT pada tabel filter.
5. Paket mengalami keputusan routing, seperti ke mana
paket harus pergi dan melalui interface mana.
6. Paket masuk ke chain POSTROUTING pada tabel NAT.
7. Paket masuk ke interface jaringan, contoh eth0.
8. Paket berada pada jaringan fisik, contoh internet.
3. Sintaks IPTables
iptables [-t table] command [match] [target/jump]