UFW (Uncomplicated Firewall) adalah frontend untuk iptables yang jauh lebih mudah digunakan. Setiap server Ubuntu yang terhubung ke internet WAJIB menjalankan firewall. Tanpa firewall, semua port di server Anda terbuka untuk serangan.
Kenapa UFW Penting?
- Reduce attack surface โ hanya buka port yang benar-benar dibutuhkan
- DDoS mitigation โ blokir traffic dari IP mencurigakan
- Compliance โ่ฎธๅคๆ ๅ keamanan mensyaratkan firewall aktif
- Logging โ catat semua traffic yang diblokir untuk analisis
Setup Dasar
# Install UFW (sudah terinstall di Ubuntu)
sudo apt install ufw -y
# Reset semua rules
sudo ufw reset
# Default policies
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow SSH (WAIB sebelum enable!)
sudo ufw allow ssh
# Allow HTTP/HTTPS
sudo ufw allow http
sudo ufw allow https
# Enable firewall
sudo ufw enable
# Cek status
sudo ufw status verbose
Rules Lanjutan
# Allow dari IP spesifik
sudo ufw allow from 192.168.1.0/24
# Allow port range
sudo ufw allow 3000:3100/tcp
# Allow dari IP ke port tertentu
sudo ufw allow from 10.0.0.5 to any port 22
# Deny dari IP tertentu
sudo ufw deny from 123.456.789.0
# Hapus rule
sudo ufw delete allow 80/tcp
Logging
# Enable logging
sudo ufw logging on
# Cek log
sudo tail -f /var/log/ufw.log
# Logging level: off, low, medium, high, full
sudo ufw logging medium
Best Practices
- Selalu allow SSH dulu โ sebelum enable UFW, pastikan SSH di-allow
- Gunakan rate limiting โ
sudo ufw limit 22/tcpuntuk SSH - Allow dari IP internal โ untuk akses็ฎก็server dari jaringan lokal
- Monitor log โ cek log secara berkala untuk detect serangan
- Backup rules โ
sudo ufw export > /backup/ufw-rules.sh
UFW untuk Docker
Perlu diketahui: UFW tidak memblokir traffic antar container di Docker. Untuk isolate container, gunakan Docker networks atau iptables rules tambahan.
Troubleshooting
# Lihat semua rules
sudo ufw status numbered
# Cek service yang listening
sudo netstat -tlnp
# Test port dari luar
nc -zv server-ip 443
Firewall adalah bagian pertama dari keamanan server Linux. Untuk hardening SSH, baca panduan SSH hardening. Untuk panduan lengkap setup server dari nol, lihat self-hosting dari nol.