1. Summary IPTABLES
IPTables adalah suatu command-line jaringan pada Linux dimana
interface yang menuju ke kernel menyediakan modul Netfilter.
Prinsip kerja iptables
Paket masuk diproses berdasarkan tujuan :
·
destination IP untuk Firewall, maka masuk proses input
·
destination IP bukan untuk Firewall tapi diteruskan, maka
masuk proses FORWARD
Lalu
IP dicocokkan berdasarkan tabel policy yang dimiliki oleh Firewall apakah diaccept
atau didrop. Jika diaccept, maka jalur akan dibuka atau ip tersebut dapat
diakses. Jika didrop, maka kita tidak dapat mengakses ip tersebut.
Dari
gambar di atas, paket akan masuk. Lalu paket tersebut akan dilakukan pengecekan
apakah untuk Firewall atau tidak. Jika ya, maka paket akan dibaca sebagai INPUT.
Lalu paket akan masuk proses LOKAL dan akan keluar sebagai output. Jika tidak,
maka paket akan diteruskan dan masuk dalam proses FORWARD dan paket akan keluar
sebagai output.
Dari
suatu jaringan akan melakukan pengaksesan salah satu ip address. Maka proses
ini akan masuk ke dalam proses PREROUTING (Mangle dan NAT). Setelah masuk ke
dalam proses tersebut, maka router akan melakukan pengecekan apakah paket
tersebut memiliki ip tujuan / ip
destination untuk Firewall itu sendiri atau tidak. Jika ip destinationnya
adalah Firewall itu sendiri, maka akan masuk ke dalam proses INPUT yang berisi
Mangle dan Filter. Lalu akan di
deklarasikan Local Process dan akan masuk ke dalam proses OUTPUT (Mangle, Nat, dan Filter). Lalu akan melakukan reroute
jika paket diubah dalam rantai OUTPUT. Lalu POSTROUTING dilakukan.
Jika
ip destinationnya tidak untuk sistem Firewall, maka paket akan diteruskan atau masuk
ke dalam proses FORWARD (Mangle dan Filter) dan paket langsung di POSTROUTING.
Target Iptables
·
ACCEPT : setiap paket langsung diterima
·
DROP :
paket datang langsung dibuang
·
FORWARD : meneruskan paket
Match Iptables
·
Mencocokkan
paket berdasarkan nomor MAC Address
iptables
-m mac -mac-address 44:45:53:54:00:FF
·
Mendefinisikan banyak port / multiport
iptables
-m multiport -source-port 22,25,110,80 -j ACCEPT
·
Mendefinisikan state dari koneksi
iptables
-A INPUT -m state NEW, ESTABLISH -j ACCEPT
2. Bagaimana membuat rule IPTABLES
persistent di system anda ?
Untuk
membuat rule IPTABLES persitent / permanen, langsung saja perintah iptables
masukkan ke dalam file rc.local. File tersebut adalah file yang dieksekusi saat
system booting.
#nano
/etc/rc.local
Masukkan
perintah iptables di atas “exit 0”.
3. Buat
rule firewall untuk :
Lakukan konfigurasi ip forwarding pada
file sysctl.conf dengan mengetikkan command
#nano /etc/sysctl.conf
Pada baris #net.ipv4.ip_forward=1
awalnya disable. Untuk mengaktifkan ip forwarding, hilangkan tanda #, maka itu berarti ip forwarding
enable. Lalu simpan hasil konfigurasi.
Ketikkan
perintah di bawah ini agar jaringan yang ada pada router bisa saling
berhubungan.
a) Drop
icmp dari network 10.252.108.0/24
Dari command diatas berarti kita telah mengatur iptables,
yaitu melakukan drop semua paket icmp dengan tipe echo-request yang masuk ke PC
router dan yang diforward. Sehingga, jika ada ip dari jaringan tersebut
melakukan request, maka jalur paket tersebut langsung di drop.
Kemudian lakukan ping dari komputer 10.252.108.239 ke
komputer 192.168.11.1 dan 192.168.11.3
Saat dilakukan ping ke router maupun ke host lain
berhasil di drop.
Lalu kita coba ping dari jaringan 192.168.11.0/24
Karena yang didrop hanya imcp request, maka
icmp reply masih bisa berjalan, ping dari jaringan 192.168.11.0/24 berhasil.
a) Drop
seluruh paket data dari network 192.168.x.0/24 kecuali paket yang berisi
protokol HTTP dan SSH.
Dua
baris pertama akan menggizinkan paket ssh dan http untuk lewat. Baris ketiga,
memblokir semua paket TCP. Pembacaan rule iptables runtut dari atas, jadi rule
yang dimasukkan pertama akan berada paling atas. Dapat dilihat pada gambar di
bawah ini.
Jadi
saat pertama kali paket akan dicek sesuai rule iptables, bila ada rule yg cocok
dengan paket tersebut, maka rule akan dijalankan.
Percobaan
pada port 80
Percobaan
port 22
Percobaan
port 443 (https)
Pada
saat membuka port 443 yaitu https, otomatis akan didrop.
Kesimpulan
Iptables
adalah suatu command-line pada Linux dimana interfacenya yang menuju ke kernel menyediakan
modul netfilter. Iptables akan diproses berdasarkan 2 tujuan, yaitu ip
destinationnya untuk firewall dan bukan untuk firewall.
Didalam
iptables akan dilakukan konfigurasi terhadap sebuah ip dimana ip tersebut dapat
melakukan request / pengiriman paket ke ip tujunnya atau tidak. Ada 3 target
yang dapat dilakukan yaitu accept (menerima semua paket secara langsung), drop
(membuang semua paket yang datang), dan forward (meneruskan paket).
Jika rule iptables belum diatur, maka kita
bisa melakukan koneksi ke beberapa host yang ada. Jika kita memberikan rule
hanya input dan di drop paketnya, dan saat kita melakukan request maka pada
router langsung di drop, namun tetap bisa melakukan ping ke host lain.
Seharusnya kita tidak bisa meneruskan paket. Sehingga rule iptables ditambah
FORWARD untuk mendrop semua paket ke semua host.
Sehingga
yang perlu kita pehatikan adalah membuat semua rule untuk semua ip atau host
guna dalam transaksi paket.
Pada
saat komputer dinyalakan pertama kali, di dalam konfigurasi komputer tersebut
tidak memiliki tabel NAT untuk alur lalu lintas paket. Sehingga komunikasi akan
di DENY semua. Lalu jika kita membuat tabel NAT, secara default konfigurasi
adalah ALLOW ALL, dimana semua paket maupun protokol diberikan akses untuk
saling berkomunikasi. Baik itu fungsi INPUT dan OUTPUT. Sedangkan untuk FORWARD
nilai defaultnya DISABLE
Jika
kita memberikan suatu rule, misalnya pada FORWARD tcp itu kita berikan rule
DROP, maka semua paket tcp akan di drop (tidak bisa melakukan FORWARD semua
paket tcp).
Jadi, semua paket yang dapat dilewatkan tergantung
dengan rule yang diberikan pada paket tersebut.