Firewall adalah mekanisme keamanan yang digunakan untuk memfilter lalu lintas jaringan (incoming dan outgoing) pada sistem. Linux menyediakan beberapa tool populer untuk mengelola firewall:
iptables
adalah tool lama dan powerful untuk memanajemen firewall berbasis tabel aturan. Digunakan luas di banyak distribusi Linux tradisional.
# Melihat aturan firewall
sudo iptables -L -v -n
# Mengizinkan koneksi SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Mengizinkan HTTP dan HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Menolak semua koneksi lain
sudo iptables -P INPUT DROP
# Menyimpan aturan agar persisten
sudo iptables-save > /etc/iptables/rules.v4
-I
untuk insert aturan di atas agar dieksekusi lebih dulu. iptables -L --line-numbers
. ufw
adalah wrapper sederhana untuk iptables
, memudahkan konfigurasi firewall di Debian/Ubuntu.
# Instalasi (jika belum ada)
sudo apt install ufw -y
# Aktifkan ufw
sudo ufw enable
# Nonaktifkan ufw
sudo ufw disable
# Izinkan SSH
sudo ufw allow 22/tcp
# Izinkan HTTP & HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Blokir port tertentu
sudo ufw deny 23/tcp
# Cek status
sudo ufw status verbose
sudo ufw default deny incoming
untuk default block. sudo ufw logging on
untuk debugging. nftables
adalah generasi penerus iptables
yang lebih modern, fleksibel, dan efisien. Sudah menjadi default di banyak distro modern seperti Debian 10+, Fedora, dan RHEL 8+.
# Melihat aturan
sudo nft list ruleset
# Membuat aturan dasar
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0; }
# Izinkan SSH
sudo nft add rule inet filter input tcp dport 22 accept
# Izinkan HTTP & HTTPS
sudo nft add rule inet filter input tcp dport {80, 443} accept
# Tolak semua koneksi lain
sudo nft add rule inet filter input drop
# Simpan aturan
sudo nft list ruleset > /etc/nftables.conf
nft list ruleset
untuk backup sebelum edit. {}
untuk banyak port sekaligus. ufw
(atau langsung nftables
pada versi baru). firewalld
(backend nftables/iptables), bisa dikelola dengan firewall-cmd
. nftables
. Contoh (firewalld di CentOS/RHEL):
# Izinkan HTTP
sudo firewall-cmd --permanent --add-service=http
# Reload aturan
sudo firewall-cmd --reload
Whitelist sebelum Block
Selalu whitelist SSH (22) atau port remote admin sebelum menerapkan policy DROP
.
Default Policy Ketat
deny incoming
allow outgoing
Gunakan Logging
Aktifkan logging untuk troubleshooting tanpa membanjiri syslog.
Aturan Minimalis
Hanya buka port yang benar-benar dibutuhkan.
Gunakan nftables untuk sistem modern
Karena lebih efisien dan akan menggantikan iptables secara penuh.
Backup Rules
Simpan aturan ke file agar bisa restore saat reboot.
Firewall adalah lapisan pertahanan pertama di server Linux. Pastikan konfigurasi tepat agar sistem tetap aman dan dapat diakses sesuai kebutuhan.