Belajar Rocky Linux - Firewalld & Nftables
Episode 13 of 23

Belajar Rocky Linux - Firewalld & Nftables

Episode ini membahas firewall Rocky Linux: konsep zones firewalld, service dan port, pengelolaan aturan runtime dan permanent, rich rules, masquerade dan NAT, serta backend nftables untuk inspeksi ruleset di level bawah.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 12 sebelumnya kalian sudah mencatat jejak dan waktu sistem. Sekarang giliran membangun garis pertahanan pertama yang melindungi server dari jaringan: firewall. Rocky Linux memakai firewalld — daemon firewall dinamis yang mengatur lalu lintas berdasarkan konsep zones — dengan nftables sebagai backend pemrosesan aturan di level kernel.

Banyak sysadmin baru mematikan firewall begitu menemukan masalah: "matikan firewall saja, biar cepat". Di episode ini kalian akan belajar kebalikannya — memahami bagaimana firewalld berpikir, sehingga kalian bisa membuka jalan yang benar tanpa menurunkan tembok seluruhnya.

Konsep Zones

Mengapa Zones

Ide utama firewalld adalah zones: kelompok aturan yang diterapkan pada antarmuka jaringan. Antarmuka yang dipercaya (jaringan internal) berada di zona terbuka; antarmuka yang menghadap internet berada di zona ketat. Ini mengingatkan pada episode 6 — memberikan akses yang tepat pada konteks yang tepat.

Melihat zona aktif
firewall-cmd --get-active-zones
Melihat zona default
firewall-cmd --get-default-zone

Zona Bawaan

ZonaKarakter
publicDefault, paling ketat — hanya layanan yang dibuka eksplisit
internalUntuk jaringan internal yang dipercaya
trustedSemua lalu lintas diterima — hanya untuk segmen sangat aman
Melihat rule zona public
firewall-cmd --zone=public --list-all

public menolak hampir semua lalu lintas masuk kecuali yang terdaftar. trusted kebalikannya — dan sebaiknya dipakai dengan sangat hati-hati.

Service dan Port

Konsep Service

Firewalld menyederhanakan pembukaan akses lewat services — kumpulan port bernama. Daripada mengingat "TCP 22", kalian menulis ssh:

Membuka service ssh
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --reload
Melihat service yang tersedia
firewall-cmd --get-services

Membuka Port Spesifik

Untuk aplikasi kustom yang tidak punya service bawaan, buka port langsung:

Membuka port TCP 9090
firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --reload
Menghapus port
firewall-cmd --permanent --remove-port=9090/tcp
firewall-cmd --reload

Ini adalah perintah yang akan sering kalian pakai — misalnya untuk membuka port 9090 Cockpit dari episode 11.

Runtime vs Permanent

Perbedaan Dua Dunia

Konsep paling penting firewalld adalah pemisahan antara perubahan runtime dan permanent:

  • Runtime — berlaku seketika, tetapi hilang saat firewalld di-restart atau sistem reboot. Cocok untuk pengujian cepat.
  • Permanent — tersimpan di konfigurasi dan bertahan, tetapi tidak selalu langsung aktif sampai reload.
Perubahan runtime
firewall-cmd --add-service=http
Perubahan permanent
firewall-cmd --permanent --add-service=http
firewall-cmd --reload

Warning

Tanpa --permanent, aturan hilang saat reboot. Dan ingat: selalu uji perubahan runtime dulu sebelum menjadikannya permanent — hindari mengunci diri keluar dari server yang sedang kalian operasikan.

Kunci Diri Sendiri

Kesalahan klasik admin: menambahkan aturan permanent yang memblokir SSH yang sedang dipakai. Kebiasaan aman: tambahkan perubahan runtime dulu, konfirmasi koneksi masih berjalan, lalu jadikan permanent.

Rich Rules

Untuk logika yang lebih kompleks dari sekadar "buka port", gunakan rich rules — sintaks yang menyerupai bahasa aturan:

Memblokir IP spesifik
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
  source address="203.0.113.5" reject'
Membatasi akses port dari subnet
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
  source address="10.0.0.0/8" port port="3306" protocol="tcp" accept'
Reload dan verifikasi
firewall-cmd --reload
firewall-cmd --list-rich-rules

Rich rules memberi kontrol granular: akses ke port tertentu hanya dari IP atau subnet tertentu — pola yang sangat berguna untuk database dan panel administrasi.

Masquerade dan NAT

Konsep NAT

NAT (Network Address Translation) memungkinkan banyak host memakai satu alamat publik keluar, atau meneruskan lalu lintas dari satu port ke layanan internal. Firewalld menyediakan ini melalui masquerade:

Mengaktifkan masquerade
firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --reload
Memastikan ip_forward aktif
sysctl net.ipv4.ip_forward

Masquerade bekerja bersama net.ipv4.ip_forward — pengaturan yang sama yang kalian lihat di episode 10. Ini adalah fondasi router sederhana dan gateway container.

Nftables: Mesin di Balik Firewalld

Sintaks Nft

nftables adalah framework filtering level kernel yang menggantikan iptables. Firewalld menerjemahkan aturannya menjadi ruleset nftables. Memahami sintaks dasarnya membantu kalian membaca apa yang sebenarnya terjadi:

Melihat ruleset nft aktif
nft list ruleset

Struktur dasarnya: tables berisi chains, dan setiap chain berisi rules. Contoh sederhana yang menunjukkan sintaks:

Contoh sintaks nft
nft add table inet example
nft add chain inet example input { type filter hook input priority 0; }
nft add rule inet example input tcp dport 22 accept
Menghapus aturan
nft flush table inet example

Firewalld sebagai Frontend

Dalam praktik sehari-hari kalian tidak akan menulis nft manual — firewalld melakukannya untuk kalian. Tapi saat debugging, nft list ruleset menjadi jendela ke aturan sebenarnya:

Melihat perubahan setelah rule baru
nft list ruleset | grep -A5 9090
Reload firewalld dan bandingkan
firewall-cmd --reload
nft list ruleset

Integrasi ini berarti aturan kalian ditangani satu pipeline kernel yang konsisten — dan kalian selalu bisa memverifikasi apa yang firewalld terapkan.

Konfigurasi Nft Manual

Untuk sistem yang tidak memakai firewalld, nft bisa berdiri sendiri dengan skrip ruleset:

Memuat ruleset dari file
nft -f /etc/nftables.conf
Melihat file ruleset default
cat /etc/nftables.conf

Aturan di file ini dieksekusi saat service nftables diaktifkan — pendekatan yang lebih manual tetapi memberi kontrol penuh.

Penutup

Di episode 13 ini kalian sudah menguasai firewall Rocky Linux: konsep zones public, internal, dan trusted, perbedaan service dan port, pengelolaan aturan runtime dan permanent dengan firewall-cmd, rich rules untuk kontrol granular, masquerade dan NAT, serta backend nftables dengan sintaks table, chain, dan rule untuk inspeksi dan debug.

Inti yang harus dibawa pulang:

  • Zones menentukan seberapa ketat sebuah antarmuka diperlakukan; public adalah default yang paling aman.
  • Gunakan service untuk port terkenal dan port langsung untuk aplikasi kustom.
  • Selalu uji runtime dulu sebelum menjadikan aturan permanent — jangan kunci diri sendiri.
  • Rich rules memberi kontrol berbasis source dan port secara granular.
  • nft list ruleset menampilkan apa yang sebenarnya diterapkan firewalld di kernel.

Di episode 14 selanjutnya kita akan membahas SELinux dan Mandatory Access Control — perbedaan DAC dan MAC, mode Enforcing, Permissive, dan Disabled, konteks file, booleans, dan troubleshooting dengan ausearch dan sealert. Firewall menjaga dari luar; sekarang giliran membangun keamanan dari dalam!

Belajar Rocky Linux - Firewalld & Nftables | Belajar Rocky Linux