Saturday, October 3, 2015

Tutorial Linux Mudah memahami IPTABLES Part 2: Cara Kerja IPTABLES

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:
  1. PREROUTING
  2. 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
  3. FORWARD
  4. 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  
  5. INPUT 
  6. 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
  7. OUTPUT
  8. 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
  9. POSTROUTING
  10. 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.
Mangle (marking) pada IPTABLES adalah proses memberi tanda (marking) pada paket yang masuk pada mesin firewall maupun yang keluar pada mesin firewall untuk kebutuhan bandwidth limiting. Mangle (marking) ini juga memiliki kemampuan untuk mengubah TTL (Time to Live) dan TOS (Type Of Service) pada paket data yang akan dikirimkan.

IPTABLES terdiri dari beberapa opsi pengaturan antara lain
  1. Opsi perintah
    • -A, --append perintah berguna untuk menambahkan satu aturan baru yang akan ditempatkan pada aturan paling bawah
    • contoh :
      iptables -A INPUT ......... (titik2 adalah perintah selanjutnya)
      arti perintah di atas adalah tambahkan satu aturan untuk INPUT
    • -D, -- delete perintah yang berguna untuk menghapus satu baris aturan yang telah ditambahkan
    • contoh :
      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
    • -I --insert yaitu perintah untuk menyisipkan aturan baru
    • contoh :
      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)
    • -R, --replace yaitu perintah untuk menimpa baris perintah ke -
    • contoh :
      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
    • -L, --list yaitu perintah untuk menampilkan baris perintah pada chain
    • contoh :
      iptables -L INPUT
      Tampilkan list perintah chain INPUT
    • -F, --flush berguna untuk menghapus semua perintah chain yang dihapus
    • contoh :
      iptables -F INPUT
      Semua perintah yang terdapat dichain INPUT akan hilang (terhapus)
    • -Z, --zero berguna untuk menghapus semua counter menjadi nol
    • contoh :
      iptables -Z INPUT
      Menghapus semua counter pada chain INPUT menjadi nol
    • -N, --new-chain yaitu perintah untuk menambahkan satu kolom tabel baru
    • contoh :
      iptables -N kolombaru
      perintah tersebut akan menambahkan chain baru
    • -X, --delete-chain yaitu perintah untuk menghapus chain baru yang telah dibuat
    • contoh :
      iptables -X kolombaru
      perintah ini akan menghapus chain kolombaru yang telah dibuat
    • -P, --policy yaitu perintah untuk menentukan nasib paket pada chain jika tidak cocok dengan aturan iptables
    • contoh :
      iptables -P INPUT DROP
      perintah ini akan membuang semua paket yang terdapat pada input bila tidak cocok dengan aturan dari iptables
    • -E, --rename-chain yaitu perintah untuk mengganti nama chain yang telah dibuat
    • contoh :
      iptables -E kolombaru kolombarusaja
      mengubah nama chain kolombaru menjadi kolombarusaja
    • -h perintah untuk menampilkan help
    • contoh :
      iptables -h
      menampilkan list pertolongan (help)
  2. Opsi parameter
    • -p, --protocol [!] yaitu perintah untuk mengetahui protocol dari paket, protokolnya antara lain TCP, UDP, ICMP, ALL, tanda seru artinya negasi (not/bukan)
    • 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 .....
    • -s, --source [!] berguna untuk mengetahui sumber paket
    • contoh :
      iptables -A INPUT -s 192.168.1.1
      tambahkan aturan untuk chain INPUT dengan sumber dari ip 192.168.1.1
    • -d, --destination [!] berguna untuk mengetahui tujuan paket
    • contoh :
      iptables -A INPUT -d 192.168.1.1 ...
      tambahkan aturan untuk chain INPUT dengan tujuan ip 192.168.1.1
    • -j, --jump berguna untuk menentukan nasib paket
    • contoh :
      iptables -A INPUT -j DROP
      tambahkan aturan baru untuk chai INPUT agar mendrop semua paket yang ada pada chain INPUT
    • -i, --in-interface [!] berfungsi untuk mengetahui interface paket masuk
    • contoh :
      iptables -h
    • -o, --out-interface [!] berguna untuk mengindentifikasi interface keluaran paket
    • contoh :
      iptables -A OUTPUT -o eth1
      artiya tambahka aturan pada chai OUTPUT untuk output pada eth1
    • -f, --fragment digunakan untuk aturan yang memiliki fragment
    • contoh :
      iptables -A INPUT -f
  3. Opsi Match
    • --mac-source berguna untuk mendeteksi mac address dari paket yang masuk
    • contoh :
      iptables -A INPUT -m mac --mac-source AA:BB:CC:DD:EE:FF
    • -m multiport digunakan untuk penggunaan aturan untuk banyak port
    • contoh :
      iptables -A INPUT -m multiport --source-port 22,25,80
    • --mark berguna untuk menandai paket
    • contoh :
      iptables -A INPUT -m mark --mark namapaket
      memberi tanda pada paket dengan namapaket
    • --state digunakan untuk mengetahui koneksi pada paket
    • contoh :
      iptables -A INPUT -m state --state NEW,ESTABLISHED
      untuk memberikan aturan chain INPUT pada paket dengan koneksi NEW dan ESTABLISHED
    • --tos digunakan untuk mengetahui paket berdasarkan nilai TOS. nilai TOS besarnya 8-bit dan terdapat pada paket TCP
    • contoh :
      iptables -A INPUT -m tos --tos 0x16
      menambahkan aturan untuk chain INPUT dengan nilai tos 16
    • --ttl mendeteksi paket dengan nilai TTL
    • contoh :
      iptables -A INPUT -m ttl --ttl 60
      menambahkan aturan untuk chain INPUT dengan nilai ttl 60
    • owner digunakan untuk membedakan paket menurut identitas pengguna
    • contoh :
      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
  4. Opsi Target / Jump
    • ACCEPTberguna untuk menerima paket
    • contoh :
      iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    • REJECT berguna untuk menolak paket yang masuk dan mengirimkan pesan penolakan
    • contoh :
      iptables -A INPUT -p tcp --dport 80 -j REJECT --reject-with icmp-net-unreachable
    • DROP berguna untuk membuang paket tanpa mengirim pesan eror
    • contoh :
      iptables -A INPUT -p tcp --dport 80 -j DROP
    • SNATberguna untuk mengubah sumber pengiriman paket.
    • contoh :
      iptables --t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to-source 202.134.5.5
    • DNATberguna agar server kita di jaringan lokal bisa dihubungi oleh jaringan internet
    • contoh :
      iptables -t nat -A PREROUTING -p tcp -d 202.134.5.5 --dport 80 -j DNAT --to-destination 192.168.1.1
    • MASQUERADE digunakan untuk membagi koneksi internet yang ip gatewaynya selalu berubah 
    • contoh :
      iptables -t nat -A POSTROUTING -o eth0 -dport 80 -j MASQUERADE
    • REDIRECTberfungsi untuk meredirect satu port ke port lain, biasanya digunakan untuk transparent proxy
    • contoh :
      iptables -t nat -A PREROUTING -p tcp -d 0/0 --dport 80 -j REDIRECT --to-ports 8080
    • LOG  berguna untuk melakukan pencatatan terhadap paket yang melewati iptables
    • contoh :
      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
Tutorial Linux Mudah memahami IPTABLES Part 2: Cara Kerja IPTABLES Rating: 4.5 Diposkan Oleh: Dedy Fermana

0 komentar:

Post a Comment

Note: Only a member of this blog may post a comment.