SSD Nodes Learn
Panduan Matt ConnorOleh Matt Connor · Diperbarui 2026-07-24

cara setting UFW firewall di VPS

Pelajari cara konfigurasi UFW di VPS untuk mengamankan server. Hindari risiko terkunci dari SSH dengan mengikuti langkah pengaturan port yang tepat dan aman.

Apa itu UFW dan mengapa Anda membutuhkannya

UFW adalah singkatan dari Uncomplicated Firewall, dan nama tersebut akurat. UFW adalah antarmuka pengguna yang mudah di atas firewall yang sudah ada pada kernel Linux. Alih-alih menulis aturan mentah, Anda cukup mengetik perintah pendek seperti ufw allow 22/tcp. Pada VPS baru, setiap layanan yang sedang berjalan dapat diakses dari internet secara default. Firewall membalikkan kondisi tersebut: Anda menolak semua koneksi, lalu mengizinkan hanya beberapa port yang benar-benar Anda gunakan. Perubahan tunggal ini akan menghilangkan sebagian besar celah keamanan Anda hanya dengan sekitar empat perintah.

Sebelum menggunakannya, ketahui layanan apa saja yang sedang berjalan, karena firewall akan menentukan akses untuk layanan tersebut. Membaca layanan yang sedang berjalan menggunakan ss -tlnp adalah langkah awal yang tepat.

Satu aturan agar Anda tidak terkunci dari sistem

Inilah kesalahan yang membuat orang takut menggunakan firewall. Anda mengaktifkan UFW dengan kebijakan default-deny, tetapi Anda belum mengizinkan SSH. Akibatnya, saat firewall aktif, koneksi Anda akan terputus dan Anda tidak bisa masuk kembali. Hindari hal ini dengan selalu mengizinkan SSH sebelum mengaktifkan UFW. Itu adalah langkah kuncinya, dan langkah-langkah di bawah ini dilakukan dengan urutan yang aman.

Jika hal ini tetap terjadi, Anda tidak akan terjebak: konsol web penyedia layanan Anda, melalui VNC atau serial, tidak menggunakan SSH. Anda dapat masuk melalui sana dan menjalankan ufw disable atau menambahkan aturan yang kurang.

Step 1: Atur kebijakan default

Mulailah dengan memerintahkan UFW untuk menolak semua koneksi masuk dan mengizinkan semua koneksi keluar:

sudo ufw default deny incoming
sudo ufw default allow outgoing

deny incoming adalah bagian yang penting. Ini berarti semua port tanpa aturan allow eksplisit akan tertutup bagi pihak luar, meskipun ada layanan yang sedang berjalan di port tersebut. allow outgoing memungkinkan server Anda terhubung ke internet secara normal untuk pembaruan dan hal serupa lainnya. Kedua perintah ini hanya mengubah kebijakan; tidak ada yang diterapkan sampai Anda mengaktifkan UFW pada langkah 3.

Langkah 2: Izinkan port yang benar-benar Anda butuhkan

Sebelum mengaktifkan, buka SSH agar koneksi Anda tetap terjaga:

sudo ufw allow 22/tcp

UFW juga dapat melakukan rate-limit pada SSH: sudo ufw limit 22/tcp mengizinkan port tersebut tetapi memblokir alamat apa pun yang melakukan enam koneksi atau lebih dalam tiga puluh detik. Hal ini dapat meredam skrip brute-force tanpa perangkat lunak tambahan.

Jika Anda menjalankan web server, izinkan juga HTTP dan HTTPS:

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

Hanya izinkan layanan yang Anda sediakan untuk publik. Database seperti Postgres pada port 5432 hampir tidak boleh diberikan aturan allow. Sebaliknya, hubungkan ke 127.0.0.1 agar hanya dapat diakses di dalam mesin tersebut. Setiap port yang Anda buka adalah pintu yang harus Anda pertahankan, jadi jaga daftar tersebut tetap ringkas.

Anda juga dapat menyusun seluruh urutan perintah ufw untuk server Anda di sini, lalu jalankan secara berurutan:

ToolUFW rule generator

Langkah 3: Aktifkan, dan konfirmasi statusnya

sudo ufw enable

Muncul peringatan bahwa perintah tersebut dapat memutuskan koneksi SSH yang sedang berjalan. Karena Anda telah mengizinkan 22/tcp pada langkah 2, sesi Anda tetap tersambung. Konfirmasi hasilnya:

sudo ufw status verbose
Status: active
Default: deny (incoming), allow (outgoing)

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW IN    Anywhere
22/tcp (v6)                ALLOW IN    Anywhere (v6)
80/tcp                     ALLOW IN    Anywhere

Perhatikan dua hal di sini. Status: active menandakan firewall sedang berjalan. Setiap aturan muncul dua kali, satu dalam format biasa dan satu lagi dengan (v6), yang menunjukkan bahwa UFW mengelola IPv6 selain IPv4. Jika baris (v6) tidak ada, sisi IPv6 Anda tidak terkelola, yang merupakan masalah tersendiri yang dibahas dalam post firewall IPv6.

Mengelola aturan di kemudian hari

Untuk melihat aturan dengan nomor agar Anda dapat menghapus salah satu aturan:

sudo ufw status numbered
sudo ufw delete 3

Untuk mengizinkan port hanya dari satu alamat, yang merupakan cara yang baik untuk mengekspos layanan admin hanya ke IP Anda sendiri:

sudo ufw allow from 10.0.0.24 to any port 5432 proto tcp

Firewall hanyalah satu lapisan. Firewall mengontrol apa yang dapat menjangkau sebuah port, tetapi tidak memperlambat seseorang yang melakukan serangan brute force pada port yang Anda biarkan terbuka, seperti SSH. Untuk hal tersebut, tambahkan Fail2ban di depan SSH untuk memblokir pelanggar berulang. Defence in depth berarti setiap lapisan menutupi apa yang tidak dapat dilakukan oleh lapisan lainnya.

Firewall hanya berguna setelah Anda memahami apa itu port dan cara layanan mendengarkan, dan mengonfigurasinya adalah salah satu langkah dalam 10 menit pertama pada VPS baru.

FAQ

Apakah mengaktifkan UFW akan memutuskan sesi SSH saya?

Tidak, jika Anda mengizinkan SSH terlebih dahulu. Jalankan sudo ufw allow 22/tcp sebelum sudo ufw enable, maka koneksi Anda akan tetap tersambung karena firewall kini mengizinkan port 22. Bahayanya adalah mengaktifkan firewall dengan kebijakan default-deny tanpa aturan allow SSH, yang akan memutus akses Anda. Jika hal itu terjadi, masuklah melalui VNC atau konsol serial penyedia layanan Anda dan jalankan ufw disable.

Port apa saja yang harus saya buka pada VPS?

Hanya port yang Anda layani untuk publik. SSH (22/tcp) agar Anda dapat mengelola server, serta HTTP dan HTTPS (80/tcp, 443/tcp) jika Anda menjalankan situs web. Biarkan semua port lainnya dalam kondisi denied. Layanan internal seperti database harus diikat ke 127.0.0.1 dan tidak diberikan aturan firewall sama sekali, sehingga tidak dapat dijangkau dari jaringan.

Apakah UFW mendukung IPv6?

Pada Ubuntu modern, ya: IPV6=yes diatur di dalam /etc/default/ufw, sehingga setiap aturan berlaku untuk kedua stack dan ufw status menampilkan aturan IPv6 dengan akhiran (v6). Kemungkinan kesalahan yang masih dapat terjadi dibahas dalam jebakan firewall IPv6.

Bagaimana cara menghapus aturan UFW?

Jalankan sudo ufw status numbered untuk menampilkan daftar aturan beserta nomor indeksnya, lalu jalankan sudo ufw delete N di mana N adalah nomor aturan yang ingin dihapus. Anda juga dapat menghapus berdasarkan spesifikasi, contohnya sudo ufw delete allow 80/tcp.

Bagaimana cara mengizinkan port hanya dari satu alamat IP?

Gunakan aturan from alih-alih aturan allow biasa. Untuk mengizinkan hanya alamat kantor Anda mengakses PostgreSQL, jalankan sudo ufw allow from 10.0.0.10 to any port 5432 proto tcp. Dengan kebijakan default-deny, port akan tertutup bagi semua orang sampai ada aturan yang membukanya, sehingga aturan from ini adalah satu-satunya cara masuk: seluruh internet tetap terblokir dan hanya alamat yang Anda tentukan yang dapat terhubung. Jangan menambahkan aturan allow 5432/tcp biasa, karena akan membuka port tersebut untuk semua orang. Ini adalah cara paling aman untuk mengekspos database atau panel admin. Konfirmasikan dengan sudo ufw status verbose, yang menampilkan alamat sumber di samping port.