Firewall ufw: menutup yang tidak perlu
Cara mengonfigurasi ufw dalam lima menit: izinkan port yang diperlukan, tutup sisanya, batasi akses berdasarkan alamat, dan hindari memutus SSH Anda sendiri.
Diperbarui 23 Agustus 2026
Di mesin baru, semua yang mendengarkan di jaringan itu terbuka. Sebagian layanan Anda pasang sengaja, sebagian lagi ikut terpasang bersama paket. Firewall menyelesaikan ini sekaligus: semua ditolak kecuali yang Anda daftarkan.
ufw adalah pembungkus sederhana di atas aturan kernel. Ini cukup untuk sebagian besar kasus; konfigurasi yang lebih rumit dibahas di artikel tentang nftables.
Konfigurasi dasar
apt install -y ufw
ufw default deny incoming
ufw default allow outgoing
ufw allow 22/tcp
ufw enable
ufw status verbose
Urutannya penting di sini: aturan SSH ditambahkan sebelum diaktifkan. Kalau tidak, ufw enable akan memutus koneksi Anda, dan Anda harus masuk kembali lewat konsol di panel /hosting/vds/m/<id> atau mode rescue.
Konsol di panel bekerja secara independen dari jaringan, jadi Anda tidak akan terkunci sepenuhnya — tetapi itu memakan waktu.
Aturan umum
ufw allow 80/tcp
ufw allow 443/tcp
ufw allow from 203.0.113.5 to any port 22 proto tcp
ufw limit 22/tcp
ufw delete allow 80/tcp
ufw status numbered
ufw delete 3
ufw limit memperlambat siapa pun yang membuka lebih dari enam koneksi dalam 30 detik — perlindungan murah terhadap brute-force kata sandi. Alat yang lebih cermat untuk tugas yang sama adalah fail2ban.
Aturan allow from berguna untuk layanan yang tidak boleh diakses publik: basis data, panel admin, eksportir metrik.
ufw allow from 203.0.113.5 to any port 5432 proto tcp
Verifikasi hasilnya
ufw status verbose
ss -tulpn
ss menunjukkan apa yang didengarkan sistem, ufw status menunjukkan apa yang diizinkan masuk dari luar. Selisih antara kedua daftar itu adalah layanan yang sudah Anda tutup, dan itu wajar. Yang sebaliknya justru buruk: port terbuka di ufw, tetapi tidak ada yang mendengarkan.
Dari luar, periksa dengan port, bukan ping:
nc -vz <address> 443
Docker dan ufw
Jika mesin menjalankan Docker, ingat: penerusan port kontainer ditangani di rantai kernel sebelum aturan ufw. Kontainer yang dijalankan dengan -p 5432:5432 akan tetap bisa diakses dari luar meskipun ufw status menunjukkan deny. Ikat port seperti itu ke antarmuka lokal:
docker run -p 127.0.0.1:5432:5432 postgres
Kesalahan umum
| Kesalahan | Akibat | Solusi |
|---|---|---|
ufw enable tanpa aturan SSH | Kehilangan akses jaringan | Masuk lewat konsol panel, ufw allow 22/tcp |
| Mengubah port SSH, aturan lama dibiarkan | Hal yang sama | Aturan dulu, baru port |
| Port terbuka, layanan tidak merespons | Layanan mendengarkan di 127.0.0.1 | Ubah alamat bind |
| Kontainer tetap bisa diakses meski deny | Docker melewati ufw | Ikat ke 127.0.0.1 |
Sebelum menutup port, jalankan
ss -tulpndan pastikan Anda paham apa yang ada di sana. Port monitoring yang ditutup nantinya akan terlihat seperti "layanannya mati".