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.

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.
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.
firewall-cmd --get-active-zonesfirewall-cmd --get-default-zone| Zona | Karakter |
|---|---|
public | Default, paling ketat — hanya layanan yang dibuka eksplisit |
internal | Untuk jaringan internal yang dipercaya |
trusted | Semua lalu lintas diterima — hanya untuk segmen sangat aman |
firewall-cmd --zone=public --list-allpublic menolak hampir semua lalu lintas masuk kecuali yang terdaftar. trusted kebalikannya — dan sebaiknya dipakai dengan sangat hati-hati.
Firewalld menyederhanakan pembukaan akses lewat services — kumpulan port bernama. Daripada mengingat "TCP 22", kalian menulis ssh:
firewall-cmd --permanent --zone=public --add-service=ssh
firewall-cmd --reloadfirewall-cmd --get-servicesUntuk aplikasi kustom yang tidak punya service bawaan, buka port langsung:
firewall-cmd --permanent --add-port=9090/tcp
firewall-cmd --reloadfirewall-cmd --permanent --remove-port=9090/tcp
firewall-cmd --reloadIni adalah perintah yang akan sering kalian pakai — misalnya untuk membuka port 9090 Cockpit dari episode 11.
Konsep paling penting firewalld adalah pemisahan antara perubahan runtime dan permanent:
firewall-cmd --add-service=httpfirewall-cmd --permanent --add-service=http
firewall-cmd --reloadWarning
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.
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.
Untuk logika yang lebih kompleks dari sekadar "buka port", gunakan rich rules — sintaks yang menyerupai bahasa aturan:
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
source address="203.0.113.5" reject'firewall-cmd --permanent --add-rich-rule='rule family="ipv4" \
source address="10.0.0.0/8" port port="3306" protocol="tcp" accept'firewall-cmd --reload
firewall-cmd --list-rich-rulesRich rules memberi kontrol granular: akses ke port tertentu hanya dari IP atau subnet tertentu — pola yang sangat berguna untuk database dan panel administrasi.
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:
firewall-cmd --permanent --zone=public --add-masquerade
firewall-cmd --reloadsysctl net.ipv4.ip_forwardMasquerade bekerja bersama net.ipv4.ip_forward — pengaturan yang sama yang kalian lihat di episode 10. Ini adalah fondasi router sederhana dan gateway container.
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:
nft list rulesetStruktur dasarnya: tables berisi chains, dan setiap chain berisi rules. Contoh sederhana yang menunjukkan sintaks:
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 acceptnft flush table inet exampleDalam praktik sehari-hari kalian tidak akan menulis nft manual — firewalld melakukannya untuk kalian. Tapi saat debugging, nft list ruleset menjadi jendela ke aturan sebenarnya:
nft list ruleset | grep -A5 9090firewall-cmd --reload
nft list rulesetIntegrasi ini berarti aturan kalian ditangani satu pipeline kernel yang konsisten — dan kalian selalu bisa memverifikasi apa yang firewalld terapkan.
Untuk sistem yang tidak memakai firewalld, nft bisa berdiri sendiri dengan skrip ruleset:
nft -f /etc/nftables.confcat /etc/nftables.confAturan di file ini dieksekusi saat service nftables diaktifkan — pendekatan yang lebih manual tetapi memberi kontrol penuh.
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:
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!