Info untuk membantu mengikuti tutorial ini bilsa dilihat di:

Gunakan perintah iptables -L untuk melihat daftar rangkaian aturan iptables.

Rangkaian Aturan Baru

Membuat Rangkaian Aturan Baru

Pertama kita buat nama rangkaian aturan iptables-nya. String NAMA_RANGKAIAN bisa diganti sesuai keinginan anda.

iptables -N NAMA_RANGKAIAN

Aturan 1: Beri Ijin Koneksi dari IP Tertentu

Parameter

  • -s: Alamat IP.
  • -j: target aturan (lihat man iptables untuk info lebih lengkap).
iptables -A NAMA_RANGKAIAN -s 10.11.0.0/24 -j ACCEPT

Aturan 2: Beri Ijin Koneksi Dari antarmuka lo (localhost)

Argumen

  • -i lo: antarmuka koneksi internal localhost
iptables -A NAMA_RANGKAIAN -i lo -j ACCEPT

Aturan 3: Jenis Aturan yang Diijinkan

Argumen

  • -m conntrack: Tambahan keadaan koneksi
  • --cstate ESTABLISHED,RELATED: Jenis keadaan koneksi
    • ESTABLISHED: Koneksi yang sudah ada/berjalan
    • RELATED: Paket yang berhubungan dengan koneksi yang sudah ada/berjalan, tapi merupakan paket koneksi yang berbeda
iptables -D NAMA_RANGKAIAN -m conntrack --ctstate ESTABLISHED,RELATED \
    -j ACCEPT

Aturan 4: Putuskan Koneksi Selain dari yang Sudah Dibuat Tadi

iptables -A NAMA_RANGKAIAN -j DROP

Aturan 5: Aplikasikan Aturan di Atas Ke Port yang Ditentukan

Argumen

  • --dport 8000:8004: port 8000 sampai dengan 8004
iptables -I INPUT -m tcp -p tcp --dport 8000:8004 -j NAMA_RANGKAIAN

Menghapus Rangkaian Aturan

Kita berencana membuat perintah-perintah tadi dalam satu script. Tapi kita script tersebut kita jalankan berulang kali, aturan-aturan dari akan terus ditambahkan ke daftar aturan iptables.

Jadi kita akan buat perintah untuk mend-drop rangkaian aturan kita tadi.

Drop Aturan 1 sampai 5

Parameter iptables yang kita gunakan adalah id, seperti berikut

# Terima koneksi dari subnet 10.11.0.0/24
iptables -D NAMA_RANGKAIAN -s 10.11.0.0/24 -j ACCEPT
# Terima koneksi lokal
iptables -D NAMA_RANGKAIAN -i lo -j ACCEPT
iptables -D NAMA_RANGKAIAN -m conntrack --ctstate ESTABLISHED,RELATED \
    -j ACCEPT
iptables -D NAMA_RANGKAIAN -j DROP
iptables -D INPUT -m tcp -p tcp --dport 8000:8004 -j NAMA_RANGKAIAN

Hapus Rangkaian Aturan Iptables

iptables -X NAMA_RANGKAIAN

Simpan Semua Dalam Satu Script

Untuk membuat rangkaian aturan tadi dalam satu script, pertama kita jalankan dulu pertintah untuk menghapus rangkaian aturannya.

Peringatan

Saat script ini pertama kali dijalankan, akan ada error muncul karena kita mencoba meng-drop rangkaian aturan yang belum tersimpan. Tapi ini tidak jadi masalah karena script tetap dapat dijalankan dan rangkaian aturan baru NAMA_RANGKAIAN akan disimpan.

Simpan dalam satu file dan jalankan sebagai root

# Bersihkan Aturan yang ada
iptables -D NAMA_RANGKAIAN -s 10.11.0.0/24 -j ACCEPT
iptables -D NAMA_RANGKAIAN -i lo -j ACCEPT
iptables -D NAMA_RANGKAIAN -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -D NAMA_RANGKAIAN -j DROP
iptables -D INPUT -m tcp -p tcp --dport 8000:8004 -j NAMA_RANGKAIAN
iptables -X NAMA_RANGKAIAN

# Buat rangkaian aturan
iptables -N NAMA_RANGKAIAN
iptables -A NAMA_RANGKAIAN -s 10.11.0.0/24 -j ACCEPT
iptables -A NAMA_RANGKAIAN -i lo -j ACCEPT
iptables -A NAMA_RANGKAIAN -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A NAMA_RANGKAIAN -j DROP
# Apply ke port 8003
iptables -I INPUT -m tcp -p tcp --dport 8000:8004 -j NAMA_RANGKAIAN