Lewati ke isi

Keamanan/Cyber Security

Cara Setting UFW Firewall di Ubuntu 24.04 untuk Pemula

Panduan langkah demi langkah mengaktifkan UFW di Ubuntu 24.04 tanpa terkunci dari SSH, membuka port web, membatasi akses per IP, dan membaca statusnya.

Terbit 6 menit baca

Jawaban singkat

Di Ubuntu 24.04, izinkan SSH dulu dengan "ufw allow OpenSSH", buka port yang memang dipakai (misalnya 80 dan 443), lalu aktifkan dengan "ufw enable". Kebijakan bawaan UFW menolak semua koneksi masuk dan mengizinkan koneksi keluar, jadi hanya port yang kamu izinkan yang bisa diakses.

Daftar isi
  1. Apa yang dilakukan UFW secara bawaan?
  2. Langkah setting UFW dari awal
  3. Langkah 1: Pastikan UFW terpasang dan cek statusnya
  4. Langkah 2: Tetapkan kebijakan bawaan
  5. Langkah 3: Izinkan SSH lebih dulu
  6. Langkah 4: Buka port layanan yang benar-benar dipakai
  7. Langkah 5: Aktifkan UFW
  8. Bagaimana membatasi akses hanya dari IP tertentu?
  9. Bagaimana menghapus atau mengubah aturan?
  10. Kenapa port Docker tetap terbuka walau UFW aktif?
  11. Di mana melihat log UFW?
  12. Pertanyaan yang sering diajukan
  13. Checklist singkat

Baru menyewa VPS Ubuntu 24.04 dan bingung harus mulai dari mana soal firewall? Jawabannya UFW (Uncomplicated Firewall), alat bawaan Ubuntu yang membuat aturan firewall cukup dengan perintah sederhana seperti ufw allow 443. Di balik layar, UFW menerjemahkan perintah itu menjadi aturan netfilter (nftables atau iptables), jadi kamu tidak perlu menghafal sintaks yang rumit.

Satu hal yang wajib diingat sejak awal: izinkan SSH sebelum mengaktifkan UFW. Kalau urutannya terbalik dan kamu sedang login lewat SSH, koneksimu bisa langsung terputus dan server hanya bisa dibuka lewat konsol panel penyedia.

Apa yang dilakukan UFW secara bawaan?

Setelah diaktifkan, UFW memakai kebijakan bawaan berikut: semua koneksi masuk ditolak, semua koneksi keluar diizinkan. Artinya server tetap bisa mengunduh pembaruan dan menghubungi layanan luar, tapi tidak ada yang bisa masuk kecuali lewat port yang kamu buka sendiri.

UFW biasanya sudah terpasang di Ubuntu 24.04, hanya saja dalam keadaan tidak aktif. Dukungan IPv6 juga sudah menyala di /etc/default/ufw (IPV6=yes), sehingga setiap aturan yang kamu tambahkan otomatis berlaku untuk IPv4 dan IPv6.

Langkah setting UFW dari awal

Semua perintah di bawah dijalankan sebagai pengguna dengan hak sudo.

Langkah 1: Pastikan UFW terpasang dan cek statusnya

sudo apt update
sudo apt install ufw
sudo ufw status verbose

Bila hasilnya Status: inactive, UFW belum aktif dan belum ada aturan yang berjalan. Itu normal untuk server baru.

Langkah 2: Tetapkan kebijakan bawaan

sudo ufw default deny incoming
sudo ufw default allow outgoing

Dua baris ini sebenarnya sudah menjadi bawaan, tapi menuliskannya secara eksplisit membuat kamu yakin titik awalnya benar.

Langkah 3: Izinkan SSH lebih dulu

sudo ufw app list
sudo ufw allow OpenSSH

Profil OpenSSH membuka port 22/tcp. Kalau SSH-mu sudah dipindah ke port lain, misalnya 2222, pakai sudo ufw allow 2222/tcp sebagai gantinya. Panduan memindah port ada di artikel cara mengganti port SSH di Ubuntu 24.04.

Langkah 4: Buka port layanan yang benar-benar dipakai

Untuk server web dengan HTTP dan HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Bila Nginx sudah terpasang, kamu juga bisa memakai profil aplikasinya, misalnya sudo ufw allow "Nginx Full". Jangan membuka port database (3306 untuk MySQL/MariaDB, 5432 untuk PostgreSQL) ke seluruh internet kecuali memang ada alasan kuat. Daftar fungsi tiap port bisa kamu cek di daftar port penting di server.

Langkah 5: Aktifkan UFW

sudo ufw enable
sudo ufw status verbose

UFW akan memperingatkan bahwa koneksi SSH yang sedang berjalan mungkin terganggu. Karena SSH sudah diizinkan di langkah 3, ketik y. Sebelum menutup terminal, buka sesi SSH baru di jendela lain untuk memastikan kamu masih bisa masuk.

Bagaimana membatasi akses hanya dari IP tertentu?

Port administrasi sebaiknya tidak terbuka untuk semua orang. Kalau kantormu punya IP publik statis, misalnya 203.0.113.10, batasi SSH hanya dari alamat itu:

sudo ufw allow from 203.0.113.10 to any port 22 proto tcp

Setelah aturan ini berjalan dan sudah diuji, hapus aturan OpenSSH yang terbuka untuk umum. Cara yang sama berlaku untuk database yang hanya boleh diakses server aplikasi tertentu:

sudo ufw allow from 10.0.0.5 to any port 5432 proto tcp

Untuk SSH yang tetap harus terbuka ke publik, UFW punya fitur limit:

sudo ufw limit OpenSSH

Aturan limit menolak alamat IP yang mencoba membuat 6 koneksi atau lebih dalam 30 detik. Ini membantu meredam tebak password massal, walau untuk perlindungan yang lebih lengkap kamu tetap perlu Fail2ban untuk memblokir brute force dan login memakai SSH key.

Bagaimana menghapus atau mengubah aturan?

Cara paling aman adalah melihat nomor aturan dulu:

sudo ufw status numbered
sudo ufw delete 3

Nomor bisa bergeser setelah satu aturan dihapus, jadi jalankan status numbered lagi sebelum menghapus aturan berikutnya. Alternatifnya, hapus berdasarkan isi aturan, misalnya sudo ufw delete allow 80/tcp.

Perintah lain yang sering dipakai:

PerintahFungsi
sudo ufw status verboseMelihat status, kebijakan bawaan, dan semua aturan
sudo ufw allow 443/tcpMembuka satu port TCP
sudo ufw deny 23/tcpMenolak koneksi ke port tertentu secara eksplisit
sudo ufw limit OpenSSHMembatasi percobaan koneksi berulang ke SSH
sudo ufw status numberedMenampilkan aturan bernomor untuk dihapus
sudo ufw delete <nomor>Menghapus aturan berdasarkan nomor
sudo ufw disableMematikan UFW (aturan tetap tersimpan)
sudo ufw resetMenghapus semua aturan dan mematikan UFW
sudo ufw logging onMencatat paket yang diblokir ke log

Kenapa port Docker tetap terbuka walau UFW aktif?

Ini jebakan yang sering dialami pemula. Docker menulis aturan firewall-nya sendiri langsung ke netfilter, dan aturan itu diproses sebelum aturan UFW. Akibatnya, container yang dijalankan dengan -p 8080:80 bisa diakses dari internet meski ufw status tidak menampilkan port 8080.

Solusi paling sederhana adalah mengikat port container ke localhost, misalnya -p 127.0.0.1:8080:80, lalu meneruskannya lewat reverse proxy seperti Nginx. Penjelasan lengkapnya ada di cara mengamankan Docker di VPS agar port tidak bocor.

Di mana melihat log UFW?

Saat logging aktif (sudo ufw logging on, level bawaan low), paket yang diblokir dicatat ke /var/log/ufw.log. Baris yang berisi [UFW BLOCK] menunjukkan alamat sumber (SRC=), port tujuan (DPT=), dan protokolnya. Kalau aplikasi tiba-tiba tidak bisa diakses setelah kamu menambah aturan, cek log ini untuk memastikan apakah UFW yang memblokirnya.

sudo tail -f /var/log/ufw.log

Pertanyaan yang sering diajukan

Apakah UFW perlu diaktifkan kalau penyedia VPS sudah punya firewall di panel?

Tetap disarankan. Firewall di panel dan UFW saling melengkapi. Kalau salah satu salah konfigurasi, lapisan lainnya masih menjaga port yang tidak seharusnya terbuka.

Saya terkunci setelah menjalankan ufw enable, bagaimana?

Masuk lewat konsol web (VNC) dari panel penyedia VPS, lalu jalankan sudo ufw allow OpenSSH atau sudo ufw disable. Konsol tidak melewati jaringan, jadi tidak terpengaruh UFW.

Apakah aturan UFW hilang setelah server reboot?

Tidak. Selama UFW dalam keadaan aktif, aturannya tersimpan dan dimuat lagi otomatis saat boot.

Apa bedanya ufw deny dan ufw reject?

Deny membuang paket diam-diam sehingga pengirim tidak mendapat balasan. Reject mengirim balasan penolakan sehingga pengirim langsung tahu port itu ditutup. Untuk koneksi dari internet, deny lebih umum dipakai.

Apakah UFW bisa dipakai di Debian atau AlmaLinux?

Di Debian bisa dipasang dengan apt install ufw. AlmaLinux dan keluarga RHEL memakai firewalld sebagai bawaan, jadi lebih baik memakai firewalld di sana.

Checklist singkat

  • UFW terpasang dan kebijakan bawaan: masuk ditolak, keluar diizinkan.
  • SSH diizinkan sebelum ufw enable, lalu diuji dari sesi baru.
  • Hanya port layanan yang dipakai yang dibuka (umumnya 80 dan 443).
  • Port admin dan database dibatasi per IP bila memungkinkan.
  • Port container Docker diikat ke 127.0.0.1 atau diperiksa terpisah.
  • ufw status verbose dicek ulang setiap kali ada perubahan.

Sumber & referensi

Baca juga