--- title: Firewall Linux description: "Membatasi port dan sumber koneksi di server. UFW atau nftables membantu, tapi urutan aturan dan Docker bisa mengecoh." canonical: https://penasihathosting.com/wikihosting/firewall-linux type: wiki locale: id updated: 2026-10-29 author: Willya Randika --- # Firewall Linux ## Overview - **Summary:** Membatasi port dan sumber koneksi di server. UFW atau nftables membantu, tapi urutan aturan dan Docker bisa mengecoh. - **Author:** Willya Randika ([profile](/penulis/willya-randika)) ## Article Firewall Linux memutuskan paket jaringan mana yang boleh masuk, keluar, atau diteruskan. Di server modern, alat yang umum adalah UFW sebagai frontend sederhana, nftables, dan iptables legacy. Tujuannya bukan hanya memblokir serangan, tapi juga mengurangi port yang tidak sengaja terbuka. ## Prinsip dasar Gunakan default deny incoming dan allow hanya port yang diperlukan. Izinkan koneksi established dan related supaya sesi yang sudah berjalan tidak terputus. Batasi SSH berdasarkan IP kalau memungkinkan. Kalau server memakai IPv6, atur juga aturan IPv6 karena aturan IPv4 saja bisa meninggalkan celah. Contoh UFW: ```bash sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw limit OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable sudo ufw status verbose ``` `ufw limit` membatasi percobaan koneksi berulang pada port tersebut. Untuk akses yang lebih ketat, gunakan `sudo ufw allow from 203.0.113.10 to any port 22 proto tcp`, lalu hapus aturan SSH yang terbuka. ## nftables ```bash sudo nft add table inet filter sudo nft add chain inet filter input '{ type filter hook input priority 0; policy drop; }' sudo nft add rule inet filter input ct state established,related accept sudo nft add rule inet filter input iif lo accept sudo nft add rule inet filter input tcp dport { 22, 80, 443 } accept ``` Aturan dievaluasi berurutan. Tempatkan accept untuk koneksi established sebelum aturan drop. Simpan konfigurasi agar tetap ada setelah reboot. ## Docker dan IPv6 Docker sering menambahkan aturan NAT sendiri yang melewati UFW. Port yang dipublikasikan dengan `-p 5432:5432` bisa terbuka ke internet meskipun UFW memblokirnya. Bind ke `127.0.0.1:5432:5432`, gunakan jaringan Docker, atau tambahkan aturan di rantai `DOCKER-USER`. Uji dari mesin lain dengan `nmap` atau `nc`. Jangan hanya percaya `ufw status`. Untuk IPv6, pastikan family `inet` di nftables atau aturan `ip6tables` mencakup port yang sama. ## Yang sering salah Mengaktifkan firewall sebelum mengizinkan SSH bisa membuat Anda terkunci. Siapkan konsol provider. Membuka port database ke publik juga berbahaya. MySQL dan PostgreSQL cukup listen di localhost atau jaringan privat. Firewall bukan satu-satunya keamanan. Tetap patch, gunakan 2FA, dan batasi login. Firewall melengkapi [SSH](/wikihosting/ssh), [brute force protection](/wikihosting/brute-force), dan [WAF](/wikihosting/waf). ## FAQ UFW cukup untuk aturan sederhana dan mudah dibaca. nftables lebih fleksibel untuk aturan kompleks, NAT, dan logging. Jangan mencampur keduanya tanpa memahami konversinya. Tidak sepenuhnya. Firewall membatasi port. Fail2ban bereaksi terhadap pola login gagal. Keduanya bisa dipakai bersama. Docker menulis aturan sendiri di rantai NAT dan filter. Gunakan binding localhost, jaringan privat, atau aturan `DOCKER-USER` untuk mengontrolnya.