Cara Menggunakan NFTables untuk Firewall Server & Router

Diagram untuk memahami konsep nftables:


https://wiki.nftables.org/wiki-nftables/index.php/Netfilter_hooks

📌 Apa itu NFTables?

NFTables adalah firewall modern yang menjadi pengganti IPTables dalam framework Netfilter di Linux. Sistem ini menyediakan:

  • Framework packet filtering yang lebih fleksibel
  • Utility baru bernama nft
  • Kompatibilitas dengan IPTables lama
  • Integrasi dengan connection tracking, logging, dan queueing Netfilter

NFTables dirancang agar lebih sederhana, efisien, dan mudah dikelola dibanding IPTables.


📌 Konsep Dasar NFTables

Saat paket masuk ke server/router, paket akan melewati Netfilter Hooks, seperti:

  • Prerouting → sebelum routing
  • Input → paket menuju host
  • Forward → paket diteruskan router
  • Output → paket keluar dari host
  • Postrouting → setelah routing

Beberapa poin penting:

✅ Filtering Layer 2 atau Layer 3 bisa dipilih sesuai kebutuhan
✅ DNAT biasanya di Prerouting Hook
✅ SNAT biasanya di Postrouting Hook


📌 Chain yang Umum Digunakan

Jika di Server:

  • INPUT → filter trafik masuk

Jika di Router:

  • INPUT → trafik ke router
  • FORWARD → trafik yang diteruskan

Untuk semua:

  • OUTPUT → filter trafik keluar

Berbeda dengan IPTables, NFTables tidak memiliki built-in chain tetap. Kita bisa membuat chain sendiri sesuai kebutuhan.


📌 Struktur NFTables

Hierarchy dasar:

Table → Chain → Rules
  • Table → wadah konfigurasi
  • Chain → berisi rules
  • Rules → kondisi + aksi (accept/drop/dll)

🛠️ Contoh Konfigurasi Dasar

1️⃣ Install NFTables

apt-get install nftables

2️⃣ Buat Table & Default Policy Drop

Semua incoming packet akan ditolak secara default.

nft add table inet filter

nft add chain inet filter input '{ type filter hook input priority 0 ; policy drop ; }'

3️⃣ Membuat Trusted List

Berisi IP yang diperbolehkan.

nft add set inet filter trusted '{ type ipv4_addr ; }'

nft add element inet filter trusted '{ 10.0.0.1 }'
nft add element inet filter trusted '{ 10.0.0.2 }'

4️⃣ Allow SSH dari Trusted List

nft add rule inet filter input tcp dport 22 ip saddr @trusted accept

5️⃣ Allow ICMP dari Trusted List

nft add rule inet filter input icmp type echo-request ip saddr @trusted accept

📌 Kesimpulan

NFTables adalah firewall modern yang:

✔ Lebih sederhana dari IPTables
✔ Lebih fleksibel dalam membuat chain & rules
✔ Mendukung filtering yang lebih efisien

Konfigurasi bisa dilakukan via CLI atau disimpan di /etc/nftables.conf agar tetap aktif setelah reboot.


🎯 Penutup

Selanjutnya kamu bisa mengembangkan konfigurasi seperti:

  • NAT (DNAT/SNAT)
  • Port forwarding
  • Logging firewall
  • Stateful filtering


Komentar

Postingan populer dari blog ini

Cara restart / stop windows service (services.msc) dengan bat / cmd

Learning Haproxy Load Balancer with Podman and Go Backends

Konfigurasi ITNSA OpenVPN auth LDAP