iptables adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter (penyaringan) terhadap (traffic) 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 perintahnya? perintah nya adalah sebagai berikut :
Mengenal lebih jauh IPTABLES
iptables[-tables][option][rule][target]
Option tersebut terdiri dari command dan parameter
Beberapa contoh command diatas adalah:
-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
Parameter:
Digunakan sebagai pelengkap yang diperlukan untuk tujuan spesifikasi rule tersebut
Beberapa contoh parameter:
-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
Beberapa table yang dimiliki IPTABLES
Ada 3 tables dalam iptables:
– Filter: tabel default yang ada pada iptables. Di sini bisa ditentukan apakah paket akan di-DROP, LOG, ACCEPT, atau REJECT.
– NAT: tabel ini digunakan untuk fungsi NAT, redirect, dan redirect port. NAT adalah Network Address Translation (penggantian field alamat asal atau alamat tujuan dari paket).
– Mangle: berfungsi sebagai penghalus proses pengaturan paket. Contohnya adalah TTL, TOS, dan MARK.
Pada table Filter, terdapat 3 jenis Chain:
– INPUT
Mengatur paket data yang memasuki firewall dari arah intranet maupun internet. kita bisa mengelolakomputer mana saja yang bisa mengakses firewall. misal: hanya komputer IP 192.168.1.100 yang bisa SSHke firewall dan yang lain tidak boleh.
– OUTPUT
Mengatur paket data yang keluar dari firewall ke arah intranet maupun internet. Biasanya output tidak diset,karena bisa membatasi kemampuan firewall itu sendiri.
– FORWARD
Mengatur paket data yang melintasi firewall dari arah internet ke intranet maupun sebaliknya. Policy forward paling banyak dipakai saat ini untuk mengatur koneksi internet berdasarkan port, mac address dan alamat IP Selain aturan (policy) firewall iptables juga mempunyai parameter yang disebut dengan TARGET, yaitu status yang menentukkan koneksi di iptables diizinkan lewat atau tidak.
Ada 3 jenis NAT:
– FORWARD: Route pacet akan di-FORWARD tanpa diproses lanjut di local.
– OUTPUT: Route pacet keluar dari sistem local.
– POSTROUTING: Chain yang digunakan untuk keperluan perlakuan sesudah paket masuk route. Biasanya dipakai untuk proses NAT.
Apa yang membedakan Mangle dengan table yang lain?
Yang membedakan Mangle dengan table yang lain adalah membuat paket-paket Anda ditandai satu per satu. Tujuannya adalah agar paket tersebut mempunyai ciri khas, sehingga paket tersebut dapat diolah lebih lanjut sesuai dengan policy yang akan Anda terapkan.
Tabel Mangle memiliki kemampuan untuk menggunakan semua chain yang ada dalam IPTables seperti INPUT, OUTPUT, PREROUTING, dan sebagainya. Dengan menggunakan tabel ini, Anda bisa melakukan banyak hal, seperti misalnya melakukan pengubahan routing sesuai dengan kebijakan Anda, atau memberikan perlakuan khusus pada salah satu jenis paket atau yang sering disebut dengan istilah QoS, dan masih banyak lagi. Maka dari itu, Mangle banyak digunakan bersama dengan program lain untuk melayani pemprioritasan sebuah aplikasi.
Target-target pada mangle table adalah:
Target TOS digunakan untuk set atau merubah tipe dari servis dari paket. Hal ini bisa digunakan untuk membuat aturan-aturan dalam jaringan berdasarkan bagaimana paket dirouting dan sebagainya.
Target TTL digunakan untuk mengubah TTL (Time To Live) dari sebuah paket.Terget ini sebaiknya dipakai ketika kita menginginkan paket tersebut dibuang oleh Internet Service Providers.
Target MARK digunakan oleh untuk mengeset flag pada suatu paket. Flag ini dapat dikenali oleh program iproute2 untuk melakukan routing paket yang berbeda sesuai dengan flag apa yang dimiliki. Flag tersebut juga bisa digunakan untuk menentukan bandwidth limit dan queueing.
Apa tujuan dari penggunaan Chain Prerouting dengan Chain Postrouting?
Prerouting adalah proses pendefinisian packet yang akan masuk ke dalam tubuh router melalui interface. Postrouting adalah proses pendefinisian packet yang sudah keluar dari tubuh router melalui sebuah interface.
Tujuan dari penggunaan Chain Prerouting dengan Chain Postrouting.
SNAT Target
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source Network Address Translation). Target ini berlaku untuk tabel nat pada kolom POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut juga akan mengalami hal yang sama.
Contoh :
iptables –t nat –A POSTROUTING –o eth0 –j SNAT –to-source 194.236.50.155-194.236.50.160:1024-32000
DNAT Target
Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi field alamat tujuan (Destination Network Address Translation) pada header dari paket-paket yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
Contoh :
iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 –dport 80 –j DNAT –to-destination 192.168.0.2
Dalam penulisan IPTABLES, pada bagian Target, terdapat special property:
–ACCEPT berarti membolehkan paket untuk masuk.
–DROP akan membuang paket tanpa memberitahu node pengirim.
–QUEUE akan mengirim paket ke userspace.
–RETURN berati berhenti traverse dari chain ini dan melanjutkan ke rule selanjutnya dari calling chain sebelumnya .
Beda Drop dan Reject :
Drop akan mengabaikan packet yang datang tanpa memberitahu host pengirim, sementara reject mengabaikan packet akan tetapi memberi kabar pada host bahwa packet telah ditolak.
Contoh:
Iptables –A FORWARD –s 0/0 –i eth0 –d 192.168.1.58 –o eth1 –p TCP –sport 1024:65535 –m multiport –dports 80,443 –j ACCEPT
Penjelasan Contoh :
iptables akan memperbolehkan paket dengan spesifikasi di bawah untuk melakukan Forwarding dari eth0 ke eth1:
-source paket bebas
-destination dari paket adalah ip 192.168.1.58
-protokol TCP
-paket datang ke port 1024 sampai dengan 65535
-paket keluar dari port 80 atau 443
bagaimana? apakah cukup membuat anda pusing? hehe
percaya atau tidak percaya, tutorial ini sangat membantu anda mempelajari networking
sebagai contoh mikrotik ataupun yang paling sederhana membuat jaringan pada virtualbox
lalu apa yang harus saya pelajari pertama kali tentang IPTABLES ini agar mudah diingat?
menurut hemat saya, cara mempelajari firewall terutama iptables sangatlah mudah
silahkan anda catat pada kepala anda tutorial dibawah ini dan jadikan basic pemahaman IPTABLES anda
[root@gemaroprek ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination [root@gemaroprek ~]#
perintah diatas adalah untuk menampilkan baris script yang sudah kita buat pada iptables
[root@gemaroprek ~]# iptables -L INPUT --line-numbers
perintah diatas adalah menampilkan baris script tables INPUT
[root@gemaroprek ~]# iptables -D INPUT 4
perintah diatas adalah untuk menghapus baris ke empat pada table input
sekian perintah dasar IPTABLES, jika anda masih menemui kesulitan
percayalah masih ada jalan untuk mempelajarinya, contohnya adalah IPTABLES GENERATOR buatan rekan dari polandia ini
jika anda memiliki kendala, silahkan komentar postingan ini