Belajar Artix Linux - Firewall: nftables & iptables
Episode 13 of 23

Belajar Artix Linux - Firewall: nftables & iptables

Server tanpa firewall adalah target empuk. Episode ini membahas nftables sebagai firewall modern, iptables untuk kompatibilitas, UFW sebagai frontend yang mudah, fail2ban untuk brute-force, dan strategi membatasi port yang terekspos ke publik.

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

Pendahuluan

Setelah server LEMP kalian berjalan, inilah saatnya menguncinya. Episode 13 membahas firewall di Artix: nftables sebagai penerus modern iptables, iptables untuk kompatibilitas, UFW sebagai frontend yang ramah, dan fail2ban untuk memblokir percobaan brute-force.

Di Artix, firewall juga dijalankan sebagai service init. Perbedaan penting: nftables dan iptables bisa bentrok jika diaktifkan bersamaan. Kita akan memilih satu pendekatan, menulis aturannya, dan memastikan aturan itu bertahan setelah reboot.

nftables: Firewall Modern

Konsep Tabel, Chain, dan Rule

nftables menggantikan iptables dengan bahasa yang lebih seragam. Konfigurasi didefinisikan dalam tables, yang berisi chains, yang berisi rules. Aturan ditulis di /etc/nftables.conf dan dimuat oleh service nftables.

Buka port SSH dan web dengan konfigurasi berikut:

Aturan dasar /etc/nftables.conf
table inet filter {
    chain input {
        type filter hook input priority filter;
        policy drop;
        ct state established,related accept
        iif "lo" accept
        tcp dport { 22, 80, 443 } accept
    }
}

policy drop berarti semua traffic masuk ditolak kecuali yang dikecualikan. Baris ct state established,related accept mengizinkan respons dari koneksi yang sudah dibuat.

Memuat dan Mengaktifkan

Setelah menulis aturan, tes lalu aktifkan service:

Uji dan aktifkan nftables
sudo nft -c -f /etc/nftables.conf
sudo rc-update add nftables default
sudo rc-service nftables start
sudo nft list ruleset

nft -c -f /etc/nftables.conf memeriksa sintaks tanpa menerapkan. Baris terakhir menampilkan seluruh aturan yang aktif — kebiasaan verifikasi yang sebaiknya selalu dilakukan.

iptables: Untuk Kompatibilitas

Kapan Memakai iptables

Beberapa skrip lama dan aplikasi masih mengasumsikan iptables. nftables di kernel modern menyediakan iptables-nft, backend kompatibilitas yang menjalankan perintah iptables di atas mesin nftables. Artinya kalian bisa memakai sintaks lama tanpa dua stack terpisah.

Contoh setara untuk membuka port:

Aturan iptables setara
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -P INPUT DROP

Perintah iptables -A INPUT menambahkan aturan ke chain INPUT. Kebijakan default diubah ke DROP sebagai baris terakhir.

Menyimpan Aturan iptables

Aturan iptables tidak bertahan reboot secara otomatis. Simpan dengan iptables-save dan muat saat boot:

Simpan dan muat aturan iptables
sudo iptables-save > /etc/iptables/iptables.rules
sudo rc-update add iptables default

Service iptables di OpenRC memuat file /etc/iptables/iptables.rules saat start. Pastikan file tersimpan sebelum reboot, atau aturan hilang.

UFW: Frontend Mudah

Mengapa UFW

Uncomplicated Firewall menyederhanakan manajemen lewat perintah intuitif. Di belakang layar, UFW memakai iptables. Ini pilihan tepat untuk kalian yang ingin aturan firewall tanpa menulis banyak baris.

Aktifkan dan buka port dengan UFW:

Setup UFW dasar
sudo pacman -S ufw ufw-openrc
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
sudo rc-service ufw status

ufw default deny incoming menetapkan kebijakan menolak semua lalu lintas masuk. Perintah ufw allow membuka port yang kalian butuhkan satu per satu.

Memeriksa Status UFW

Verifikasi status dan aturan yang aktif:

Status UFW
sudo ufw status verbose

Output ufw status verbose menampilkan kebijakan default dan daftar port yang terbuka. Jika diinginkan, cek log penolakan di /var/log/ufw.log untuk melihat aktivitas mencurigakan.

Fail2ban untuk Perlindungan Aktif

Install dan Konfigurasi

Fail2ban memantau log dan memblokir IP yang melakukan percobaan login berulang. Install beserta service-nya:

Install fail2ban
sudo pacman -S fail2ban fail2ban-openrc

Aktifkan jail dasar untuk SSH dengan membuat file /etc/fail2ban/jail.local:

Jail SSH di /etc/fail2ban/jail.local
[sshd]
enabled = true
port = ssh
maxretry = 5
bantime = 1h

Setelah menulis file, restart fail2ban dan cek status:

Restart dan cek fail2ban
sudo rc-service fail2ban restart
sudo fail2ban-client status sshd

Output fail2ban-client status sshd menampilkan jumlah IP yang diblokir. Perhatikan bahwa fail2ban memakai nftables atau iptables sebagai backend bannya.

Strategi Pembatasan Port

Prinsip Minimal

Aturan pertama firewall: hanya buka port yang benar-benar dibutuhkan. Untuk server LEMP dari episode 12, daftar minimalnya adalah 22 untuk SSH, 80 dan 443 untuk web. Semua port lain ditolak default.

Untuk database yang hanya dipakai lokal, jangan buka port 3306 ke publik sama sekali. Untuk layanan admin, pertimbangkan membatasi IP asal:

Batasi port untuk IP tertentu
sudo ufw allow from 203.0.113.10 to any port 8080 proto tcp

Perintah ufw allow from 203.0.113.10 hanya mengizinkan IP kantor mengakses port admin. Ini menyusutkan permukaan serangan secara drastis.

Verifikasi Keamanan Port

Memindai Port Terbuka

Setelah semua diatur, verifikasi dari perspektif luar. Kalau nmap belum terinstall, tambahkan dan pindai mesin kalian:

Scan port dari host lain
sudo pacman -S nmap
nmap -p- 203.0.113.50

Output nmap -p- 203.0.113.50 menampilkan semua port terbuka di mesin target. Bandingkan dengan daftar yang seharusnya terbuka — jika ada yang mencurigakan, periksa service yang menjalankannya.

Penutup

Episode 13 mengunci server kalian: nftables untuk firewall modern, iptables untuk kompatibilitas, UFW sebagai frontend, fail2ban untuk memblokir brute-force, dan strategi membatasi port hanya yang dibutuhkan.

Inti yang harus dibawa pulang:

  • nftables memakai tabel, chain, dan rule di /etc/nftables.conf.
  • iptables-nft menjalankan sintaks lama di atas kernel modern.
  • Simpan aturan iptables dengan iptables-save agar tahan reboot.
  • UFW menyederhanakan manajemen dengan kebijakan default deny.
  • Fail2ban memblokir IP yang gagal login berulang kali.
  • Hanya buka port yang dibutuhkan; batasi akses admin per IP.

Di episode 14 selanjutnya kita akan membahas security dan hardening — policy sudo/doas, SSH hardening dengan key-only, verifikasi firewall, update rutin, serta audit dengan lynis dan rkhunter.

Belajar Artix Linux - Firewall: nftables & iptables | Belajar Artix Linux