Skip to content
VDS · Jaringan, alamat IP, dan domain

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

KesalahanAkibatSolusi
ufw enable tanpa aturan SSHKehilangan akses jaringanMasuk lewat konsol panel, ufw allow 22/tcp
Mengubah port SSH, aturan lama dibiarkanHal yang samaAturan dulu, baru port
Port terbuka, layanan tidak meresponsLayanan mendengarkan di 127.0.0.1Ubah alamat bind
Kontainer tetap bisa diakses meski denyDocker melewati ufwIkat ke 127.0.0.1

Sebelum menutup port, jalankan ss -tulpn dan pastikan Anda paham apa yang ada di sana. Port monitoring yang ditutup nantinya akan terlihat seperti "layanannya mati".