Pada tutorial linux kali ini akan dibahas bagaimana cara kerja iptables sehingga anda mudah memahami iptables. Pada tutorial mudah memahami IPTABLES bagian pertama (Part 1) sebelumnya ada telah dikenalkan dengan modul-modul pendukung iptables yang terdapat pada kernel linux. Dengan mempelajari modul-modul tersebut, kiranya anda akan mendapat gambaran seperti apa aturan-aturan yang ada dalam iptables (aplikasi firewall) pada sistem operasi UNIX/LINUX.
Bagian kedua ini akan memberi gambaran bagaimana paket tersebut masuk ke dalam mesin firewall, pemprosesan didalamnya, dan keluarnya paket tersebut dari mesin firewall tersebut. Berikut gambaran yang akan diberikan dalam bentuk gambar yang nantinya akan dijelaskan secara detil, sehingga anda dapat dengan mudah memahami iptables.
Sebelum membahas lebih lanjut ada baiknya dulu mengenal pendefenisian paket (table/chain) yang terdiri dari:
IPTABLES terdiri dari beberapa opsi pengaturan antara lain
Bagian kedua ini akan memberi gambaran bagaimana paket tersebut masuk ke dalam mesin firewall, pemprosesan didalamnya, dan keluarnya paket tersebut dari mesin firewall tersebut. Berikut gambaran yang akan diberikan dalam bentuk gambar yang nantinya akan dijelaskan secara detil, sehingga anda dapat dengan mudah memahami iptables.
Sebelum membahas lebih lanjut ada baiknya dulu mengenal pendefenisian paket (table/chain) yang terdiri dari:
- PREROUTING PREROUTING adalah proses pendefinisian paket yang masuk melalui interface sebelum adanya penentuan routing.Jadi pada saat PREROUTING ini paket tersebut akan di mangle(marking) atau mau dialihkan ke alamat mana paket tersebut
- FORWARD Forward adalah proses pendefinisian paket yang sudah setelah pendefenisian routing untuk diteruskan ke interface keluarannya. Paket masuk yang hanya melewati mesin firewall akan didefenisikan dengan aturan FORWARD
- INPUT INPUT adalah proses pendefinisian paket yang sudah masuk pendefenisian routing sebelum masuk ke dalam proses server (untuk diproses di dalam server tersebut). Di sini paket yang masuk ke mesin Firewall akan diberikan aturan sesuai dengan aturan INPUT
- OUTPUT OUTPUT adalah proses pendefinisian paket yang keluar dari aplikasi server untuk diteruskan ke interface keluar.Di sini paket yang akan keluar dari mesin firewall akan diberikan aturan OUTPUT
- POSTROUTING POSTROUTING adalah proses pendefinisian packet yang sebelum keluar (akan keluar) dari sebuah interface.Di sini paket yang akan keluar dari komputer akan diberikan aturan sesuai dengan POSTROUTING.
IPTABLES terdiri dari beberapa opsi pengaturan antara lain
- Opsi perintah
- -A, --append perintah berguna untuk menambahkan satu aturan baru yang akan ditempatkan pada aturan paling bawah contoh :
- -D, -- delete perintah yang berguna untuk menghapus satu baris aturan yang telah ditambahkan contoh :
- -I --insert yaitu perintah untuk menyisipkan aturan baru contoh :
- -R, --replace yaitu perintah untuk menimpa baris perintah ke - contoh :
- -L, --list yaitu perintah untuk menampilkan baris perintah pada chain contoh :
- -F, --flush berguna untuk menghapus semua perintah chain yang dihapus contoh :
- -Z, --zero berguna untuk menghapus semua counter menjadi nol contoh :
- -N, --new-chain yaitu perintah untuk menambahkan satu kolom tabel baru contoh :
- -X, --delete-chain yaitu perintah untuk menghapus chain baru yang telah dibuat contoh :
- -P, --policy yaitu perintah untuk menentukan nasib paket pada chain jika tidak cocok dengan aturan iptables contoh :
- -E, --rename-chain yaitu perintah untuk mengganti nama chain yang telah dibuat contoh :
iptables -A INPUT ......... (titik2 adalah perintah selanjutnya)
arti perintah di atas adalah tambahkan satu aturan untuk INPUT
iptables -D INPUT 1
Menghapus aturan INPUT pada baris 1
iptables -D -s 192.168.2.20
Menghapus aturan INPUT yang berlaku untuk ip 192.168.2.20
iptables -I INPUT 3 -s 192.168.2.20 -j DROP
sisipkan perintah untuk aturan INPUT bahwa setiap paket dari 192.168.2.20 supaya di drop(buang)
iptables -R INPUT 3 -s 192.168.2.20 -j ACCEPT
timpa perintah INPUT pada baris 3 dengan perintah setiap paket dari ip 192.168.2.20 diterima
iptables -L INPUT
Tampilkan list perintah chain INPUT
iptables -F INPUT
Semua perintah yang terdapat dichain INPUT akan hilang (terhapus)
iptables -Z INPUT
Menghapus semua counter pada chain INPUT menjadi nol
iptables -N kolombaru
perintah tersebut akan menambahkan chain baru
iptables -X kolombaru
perintah ini akan menghapus chain kolombaru yang telah dibuat
iptables -P INPUT DROP
perintah ini akan membuang semua paket yang terdapat pada input bila tidak cocok dengan aturan dari iptables
iptables -E kolombaru kolombarusaja
mengubah nama chain kolombaru menjadi kolombarusaja
-h perintah untuk menampilkan help
contoh :
iptables -h
menampilkan list pertolongan (help)Opsi parameter
Opsi Match
Opsi Target / Jump
iptables -h
menampilkan list pertolongan (help)
- -p, --protocol [!] yaitu perintah untuk mengetahui protocol dari paket, protokolnya antara lain TCP, UDP, ICMP, ALL, tanda seru artinya negasi (not/bukan) contoh :
- -s, --source [!] berguna untuk mengetahui sumber paket contoh :
- -d, --destination [!] berguna untuk mengetahui tujuan paket contoh :
- -j, --jump berguna untuk menentukan nasib paket contoh :
- -i, --in-interface [!] berfungsi untuk mengetahui interface paket masuk contoh :
- -o, --out-interface [!] berguna untuk mengindentifikasi interface keluaran paket contoh :
- -f, --fragment digunakan untuk aturan yang memiliki fragment contoh :
iptables -A INPUT -p tcp ...
artinya tambahkan aturan chain INPUT untuk protocol tcp .....
iptables -A INPUT -p ! tcp ...
artinya tambahkan aturan chain INPUT untuk protocol bukan tcp .....
iptables -A INPUT -s 192.168.1.1
tambahkan aturan untuk chain INPUT dengan sumber dari ip 192.168.1.1
iptables -A INPUT -d 192.168.1.1 ...
tambahkan aturan untuk chain INPUT dengan tujuan ip 192.168.1.1
iptables -A INPUT -j DROP
tambahkan aturan baru untuk chai INPUT agar mendrop semua paket yang ada pada chain INPUT
iptables -h
iptables -A OUTPUT -o eth1
artiya tambahka aturan pada chai OUTPUT untuk output pada eth1
iptables -A INPUT -f
- --mac-source berguna untuk mendeteksi mac address dari paket yang masuk contoh :
- -m multiport digunakan untuk penggunaan aturan untuk banyak port contoh :
- --mark berguna untuk menandai paket contoh :
- --state digunakan untuk mengetahui koneksi pada paket contoh :
- --tos digunakan untuk mengetahui paket berdasarkan nilai TOS. nilai TOS besarnya 8-bit dan terdapat pada paket TCP contoh :
- --ttl mendeteksi paket dengan nilai TTL contoh :
- owner digunakan untuk membedakan paket menurut identitas pengguna contoh :
iptables -A INPUT -m mac --mac-source AA:BB:CC:DD:EE:FF
iptables -A INPUT -m multiport --source-port 22,25,80
iptables -A INPUT -m mark --mark namapaket
memberi tanda pada paket dengan namapaket
iptables -A INPUT -m state --state NEW,ESTABLISHED
untuk memberikan aturan chain INPUT pada paket dengan koneksi NEW dan ESTABLISHED
iptables -A INPUT -m tos --tos 0x16
menambahkan aturan untuk chain INPUT dengan nilai tos 16
iptables -A INPUT -m ttl --ttl 60
menambahkan aturan untuk chain INPUT dengan nilai ttl 60
iptables -A INPUT -m owner --uid-owner 300 iptables -A INPUT -m owner --gid-owner 8 iptables -A INPUT -m owner --pid-owner 9 iptables -A INPUT -m owner --sid-owner 20
menambahkan aturan untuk chain INPUT berdasarkan identitas penggunanya
- ACCEPTberguna untuk menerima paket contoh :
- REJECT berguna untuk menolak paket yang masuk dan mengirimkan pesan penolakan contoh :
- DROP berguna untuk membuang paket tanpa mengirim pesan eror contoh :
- SNATberguna untuk mengubah sumber pengiriman paket. contoh :
- DNATberguna agar server kita di jaringan lokal bisa dihubungi oleh jaringan internet contoh :
- MASQUERADE digunakan untuk membagi koneksi internet yang ip gatewaynya selalu berubah contoh :
- REDIRECTberfungsi untuk meredirect satu port ke port lain, biasanya digunakan untuk transparent proxy contoh :
- LOG berguna untuk melakukan pencatatan terhadap paket yang melewati iptables contoh :
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j REJECT --reject-with icmp-net-unreachable
iptables -A INPUT -p tcp --dport 80 -j DROP
iptables --t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 202.134.5.5
iptables -t nat -A PREROUTING -p tcp -d 202.134.5.5 --dport 80 -j DNAT --to-destination 192.168.1.1
iptables -t nat -A POSTROUTING -o eth0 -dport 80 -j MASQUERADE
iptables -t nat -A PREROUTING -p tcp -d 0/0 --dport 80 -j REDIRECT --to-ports 8080
iptables -A FORWARD -j LOG --log-level debug
pencatatan log chain forward sesuai dengan level di syslog
iptables -A FORWARD -j LOG --log-prefix "test"
pencatatan log chain forward yang sesuai dengan karakter "test" -> maksimum prefix 29 karakter
iptables -A FORWARD -j LOG --log-tcp-sequence
melakukan pencatatan terhadap nomor urut pada paket TCP
iptables -A FORWARD -j LOG --log-tcp-options
pencatatan opsi-opsi lain pada paket tcp
0 komentar:
Post a Comment
Note: Only a member of this blog may post a comment.