NFTables Basic
Pengertian
iptables.
Konsep
Struktur nftables itu hierarkis: Tables menampung Chains, dan Chains menampung Rules.
Tables: Wadah paling atas (misal: satu tabel untuk filter, satu untuk NAT).
Chains: Menentukan kapan aturan dieksekusi (saat paket masuk, keluar, atau lewat).
Rules: Instruksi spesifik apa yang harus dilakukan terhadap paket (terima, tolak, atau ubah).
Cara Kerja
Saat paket masuk ke kartu jaringan (accept atau drop) dan berhenti mengecek aturan di bawahnya untuk paket tersebut.
Tujuan
Tujuan utama nftables adalah menyatukan berbagai tools lama (iptables, ip6tables, arptables) ke dalam satu sistem yang lebih bersih. Dengan nftables, lu bisa mengelola inet, yang bikin konfigurasi firewall lu jauh lebih ringkas.
Analogi
Bayangkan nftables itu seperti Sistem Keamanan Bandara.
Table adalah terminalnya.
Chain adalah pos pemeriksaan (Check-in, Imigrasi, Gate).
Rules adalah aturannya: "Kalau bawa cairan >100ml, buang", atau "Kalau punya tiket VIP, silakan lewat jalur cepat".
Kelebihan dan Kekurangan
| Kelebihan | Kekurangan |
| Performa eksekusi aturan jauh lebih efisien dan cepat. | Dokumentasi di forum-forum lama masih banyak yang pakai iptables. |
| Syntax lebih konsisten dan mudah dibaca manusia. | Perlu pembiasaan ulang karena logikanya sedikit berbeda. |
| Bisa melakukan update konfigurasi secara | Beberapa aplikasi pihak ketiga mungkin belum mendukung penuh native nftables. |
Tutorial & Problem Solving Lengkap
Sekarang, gua bakal kasih contoh cara pakai mode interactive. Mode ini enak buat lu latihan karena lu bisa langsung ngetik perintah tanpa perlu edit file .conf terus-terusan.
Jalankan perintah ini buat masuk ke mode interaktif:
sudo nft --interactive
1. Contoh Tabel Filter (Keamanan)
Jalankan perintah ini satu per satu di dalam prompt nft>:
# Membuat tabel 'filter' dengan keluarga 'inet' (support IPv4 & IPv6)
# Dipakai: Saat baru setup firewall pertama kali.
add table inet filter_gua
# Membuat chain 'input' untuk memfilter paket yang masuk ke server kita
# Dipakai: Untuk melindungi server dari akses luar yang tidak diinginkan.
add chain inet filter_gua input_ke_server { type filter hook input priority 0; policy drop; }
# Mengizinkan traffic loopback (internal server)
# Fungsi: Biar service di dalam server bisa saling ngobrol.
add rule inet filter_gua input_ke_server iif lo accept
# Mengizinkan SSH (Port 22) dari IP spesifik (misal IP kantor lu)
# Dipakai: Biar cuma lu yang bisa remote, hacker luar nggak bisa.
add rule inet filter_gua input_ke_server ip saddr 192.168.1.50 tcp dport 22 accept
# Mengizinkan paket yang sudah terjalin koneksinya (Established)
# Fungsi: Biar kalau lu ping keluar, balesannya nggak diblokir pas masuk lagi.
add rule inet filter_gua input_ke_server ct state established,related accept
2. Contoh Tabel NAT (Berbagi Internet & Forwarding)
Masih di dalam prompt nft>, mari kita buat fungsi NAT:
# Membuat tabel khusus untuk fungsi NAT
add table inet nat_gua
# Membuat chain untuk Masquerade (berbagi internet ke LAN)
# Dipakai: Saat server lu jadi Gateway/Router buat komputer lain.
add chain inet nat_gua post_it { type nat hook postrouting priority 100; }
add rule inet nat_gua post_it oifname "eth0" masquerade
# Membuat chain untuk Port Forwarding (DNAT)
# Fungsi: Mengarahkan traffic dari internet (port 80) ke web server internal (10.10.10.5).
# Dipakai: Kalau lu mau nge-host website di server lokal tapi mau diakses dari publik.
add chain inet nat_gua pre_it { type nat hook prerouting priority -100; }
add rule inet nat_gua pre_it tcp dport 80 dnat to 10.10.10.5:80
3. Cara Simpan Hasil Latihan
Ingat, Junior, apa yang lu ketik di mode --interactive itu bakal hilang kalau server reboot. Kalau udah yakin konfigurasinya bener, simpan permanen pakai perintah ini (keluar dulu dari nft):
sudo nft list ruleset > /etc/nftables.conf
Kesimpulan
Make nftables itu kuncinya di pemahaman Hook (input, output, forward, prerouting, postrouting). Kalau lu udah paham kapan paket harus ditangkap, sisa konfigurasinya cuma masalah syntax. Best practice dari gua: selalu pakai tabel inet biar lu nggak kerja dua kali buat IPv4 dan IPv6.
Glosarium Engineer
nftables: Pengganti iptables yang lebih modern dan efisien.
Table (inet): Wadah aturan yang mendukung protokol IPv4 dan IPv6 sekaligus.
Chain: Sekumpulan aturan yang dikaitkan dengan titik tertentu dalam perjalanan paket (Hook).
Hook: Titik spesifik di dalam kernel tempat aturan firewall bisa disisipkan.
DNAT (Destination NAT): Mengubah alamat tujuan paket, biasanya untuk port forwarding.
Masquerade: Bentuk NAT yang menyamarkan IP lokal menjadi IP publik interface keluar.
Loopback (lo): Interface jaringan virtual yang digunakan komputer untuk berkomunikasi dengan dirinya sendiri.
Policy Drop: Kebijakan di mana semua paket ditolak kecuali yang diizinkan secara eksplisit.
CT State (Connection Tracking): Fitur untuk mengenali status koneksi (apakah paket baru atau balasan).
Atomic Updates: Kemampuan untuk memperbarui seluruh aturan firewall tanpa ada jeda waktu yang membuat paket bocor.

Comments
Post a Comment