© 2026 Basis Pengetahuan Cloudkilat. Hak Cipta Dilindungi.

|
>
>
  1. Beranda
  2. Kilat VPS
  3. Meningkatkan Keamanan VPS
  4. Panduan Setup dan Konfigurasi firewalld di VPS Linux

Panduan Setup dan Konfigurasi firewalld di VPS Linux

Firewalld adalah tool manajemen firewall dinamis berbasis zona untuk Linux. Tool ini memudahkan pengelolaan keamanan VPS lewat antarmuka firewall-cmd. Fitur utamanya membedakan aturan sementara dan permanen, memungkinkan kamu menguji konfigurasi dengan aman tanpa takut terkunci dari server.

Waktu baca: 10 menit • Lihat progres baca di bar atas
Oleh Fadli Muhammad Habibi
Dipublikasikan 18 Mei 2026
Keamanan VPSlinuxsecurity

Halo, Kawan Belajar! Bayangkan VPS kamu seperti sebuah kantor yang punya banyak pintu. Tanpa firewall, semua pintu itu terbuka lebar untuk siapa saja, termasuk tamu yang tidak diundang. Di sinilah firewalld hadir sebagai penjaga pintu yang cerdas. Kamu punya kendali penuh untuk menentukan siapa yang boleh masuk, siapa yang harus ditolak, dan kapan aturan tersebut berlaku.

Di panduan ini, kita akan melakukan implementasi firewalld dari awal hingga konfigurasi siap produksi. Panduan ini mencakup berbagai distribusi Linux populer seperti Ubuntu, Debian, CentOS, AlmaLinux, Rocky Linux, RHEL, hingga Fedora.

Apa Itu firewalld?

firewalld adalah firewall management tool berbasis zona yang menjadi standar di banyak distribusi Linux modern. Tool ini bekerja di atas iptables atau nftables (tergantung versi OS), tapi menyediakan antarmuka yang jauh lebih ramah lewat perintah firewall-cmd.

Keunggulan utama firewalld dibanding mengelola iptables secara langsung adalah kemampuannya membedakan aturan sementara dan permanen. Aturan sementara langsung aktif tapi hilang saat server restart, sedangkan aturan permanen akan terus tersimpan dan baru aktif setelah di-reload. Fitur ini memungkinkan kamu untuk menguji aturan terlebih dahulu tanpa takut terkunci permanen dari server jika terjadi kesalahan konfigurasi.

ℹ️ firewalld vs UFW
UFW (Uncomplicated Firewall) dan firewalld sama-sama memudahkan pengelolaan firewall di Linux. UFW lebih simpel dan cocok untuk kebutuhan dasar, sementara firewalld lebih fleksibel berkat konsep zona dan dukungan rich rules yang kuat. Untuk VPS produksi dengan kebutuhan konfigurasi yang kompleks, firewalld adalah pilihan yang lebih scalable.

Mengenal Zona di firewalld

Konsep kunci dalam firewalld adalah zona. Setiap zona mendefinisikan tingkat kepercayaan terhadap koneksi yang masuk. Antarmuka jaringan pada server kamu (misalnya eth0) akan diasosiasikan dengan tepat satu zona.

Zona Tingkat Kepercayaan Deskripsi
drop Paling ketat Semua paket masuk dibuang tanpa respons apapun.
block Sangat ketat Koneksi masuk ditolak dengan pesan ICMP.
public Sedang (default) Hanya service yang diizinkan yang bisa masuk. Zona ini cocok untuk VPS.
external Sedang Untuk konfigurasi NAT/masquerading, cocok sebagai router.
dmz Sedang Untuk server di area DMZ dengan akses yang dibatasi ketat.
work Cukup percaya Untuk jaringan kantor yang relatif dipercaya.
home Percaya Untuk jaringan rumah.
internal Percaya Mirip home, untuk jaringan internal organisasi.
trusted Penuh Semua koneksi diterima tanpa syarat.

Untuk keperluan VPS publik, zona public adalah pilihan yang paling tepat dan secara otomatis sudah menjadi default.


Langkah 1: Instalasi firewalld

Cara instalasi firewalld berbeda tergantung pada distribusi Linux yang kamu gunakan. Silakan pilih metode yang sesuai dengan sistem operasi VPS kamu.

OS Ubuntu dan Debian

Pada Ubuntu dan Debian, firewalld tidak terinstall secara default. Kamu bisa menginstalnya lewat apt:

sudo apt update
sudo apt install firewalld -y
🚨 Catatan Penting untuk Pengguna Ubuntu/Debian
Ada dua hal krusial sebelum kamu lanjut. Pertama, jika saat ini UFW sedang aktif, pastikan kamu mematikannya terlebih dahulu dengan perintah sudo ufw disable agar tidak memicu konflik aturan. Selain itu, pada Ubuntu/Debian, firewalld tidak otomatis mengizinkan SSH saat pertama kali diaktifkan. Pastikan kamu menambahkan izin SSH sebelum mengaktifkan firewalld (dibahas di Langkah 4).

OS AlmaLinux, Rocky Linux, dan RHEL

Pada keluarga distro RHEL, firewalld biasanya sudah terinstall. Jika belum, kamu bisa menginstalnya lewat dnf:

sudo dnf install firewalld -y

Khusus untuk CentOS 7 yang masih menggunakan yum:

sudo yum install firewalld -y
💡 Sudah Ada di Sistem
Pada AlmaLinux, Rocky Linux, dan RHEL 7 ke atas, firewalld biasanya sudah terinstall dan service SSH sudah diizinkan di zona public secara default. Kamu bisa langsung lanjut ke Langkah 2 untuk memastikan statusnya.

OS Fedora

Fedora sudah menyertakan firewalld secara default sebagai bagian dari instalasi sistem. Kamu tidak perlu melakukan instalasi tambahan dan bisa langsung berlanjut ke Langkah 2.


Langkah 2: Aktifkan dan Jalankan firewalld

Langkah selanjutnya adalah mengaktifkan firewalld agar berjalan otomatis setiap kali server mengalami restart. Kamu bisa mengaktifkan sekaligus menjalankannya sekarang dengan perintah ini:

sudo systemctl enable --now firewalld

Perintah --now ini menggabungkan dua aksi sekaligus dalam satu baris, yaitu enable (aktif saat proses boot) dan start (jalankan seketika).

⚠️ Pengguna Ubuntu/Debian: Jangan Aktifkan Dulu
Jika kamu di Ubuntu atau Debian, jangan jalankan perintah di atas sekarang. Lanjutkan dulu ke Langkah 4 untuk menambahkan izin SSH, baru kembali ke sini untuk mengaktifkan firewalld. Mengaktifkan firewalld sebelum SSH diizinkan bisa memutus koneksi kamu ke server dan untuk pembenahannya perlu dilakukan via VNC Console.

Langkah 3: Cek Status firewalld

Selalu pastikan bahwa service telah berjalan dengan semestinya. Verifikasi status firewalld menggunakan perintah berikut:

sudo firewall-cmd --state

Jika outputnya menampilkan running, berarti sistem sudah bekerja. Jika yang muncul adalah not running, coba jalankan ulang servicenya menggunakan sudo systemctl start firewalld.

Kamu juga perlu mengecek zona apa yang sedang aktif beserta antarmuka jaringan yang menanganinya:

sudo firewall-cmd --get-active-zones

Cek Zone Aktif firewalld

Gambar 1: Output --get-active-zones menampilkan zona aktif


Langkah 4: Izinkan Port dan Service

Bagian ini adalah inti dari manajemen firewalld, yaitu menentukan akses mana yang diizinkan masuk ke server kamu. Terdapat dua metode yang bisa digunakan: berdasarkan nama service (lebih mudah dibaca) atau berdasarkan nomor port (sangat fleksibel). Silakan gunakan metode yang paling sesuai dengan kondisimu.

Mengizinkan Berdasarkan Nama Service

Sistem firewalld sudah mengenali ratusan profil service umum. Kamu bisa melihat daftar lengkapnya dengan perintah:

sudo firewall-cmd --get-services

Untuk mengizinkan service tertentu seperti akses remote (SSH) atau web server (HTTP dan HTTPS), gunakan deretan perintah berikut:

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

Mengizinkan Berdasarkan Nomor Port

Jika aplikasi yang kamu jalankan menggunakan port kustom non-standar, misalnya Node.js yang berjalan di port 3000. Kamu bisa membuka port tersebut dengan cara ini:

sudo firewall-cmd --add-port=3000/tcp --permanent

Format penulisan port selalu menggunakan pola NOMOR/protokol. Protokol yang umum digunakan dalam dunia jaringan adalah tcp atau udp.

💡 Pengguna Ubuntu/Debian: Tambahkan SSH Dulu
Sebelum mengaktifkan firewalld di Langkah 2, pastikan SSH sudah ditambahkan:

sudo firewall-cmd --add-service=ssh --permanent

Setelah itu, baru aktifkan firewalld dengan kembali ke Langkah 2. Jika SSH kamu berjalan di port custom (bukan 22), ganti dengan: sudo firewall-cmd --add-port=PORT_KAMU/tcp --permanent

Langkah 5: Blokir Port atau Alamat IP

Secara default, semua port yang belum diizinkan akan otomatis diblokir oleh firewalld di zona public. Namun, ada situasi di mana kamu perlu mencabut izin akses yang sebelumnya pernah dibuat, atau bahkan memblokir total akses dari sebuah alamat IP.

Mencabut Izin Port atau Service

sudo firewall-cmd --remove-service=http --permanent
sudo firewall-cmd --remove-port=3000/tcp --permanent

Memblokir Alamat IP Tertentu

Apabila ada IP mencurigakan yang terus mencoba mengakses server, kamu bisa memblokirnya secara spesifik menggunakan fitur rich rule:

sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.1" reject' --permanent

Ganti 192.168.0.1 dengan IP target yang ingin kamu blokir.

🔧 Blokir Seluruh Range IP (CIDR)
Jika kamu ingin memblokir satu blok IP sekaligus, misalnya seluruh subnet 192.168.0.0/24, gunakan notasi CIDR di rich rule:

sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" reject' --permanent

Perbedaan reject vs drop: reject mengirim pesan penolakan ke pengirim (lebih sopan, lebih cepat bagi client), sedangkan drop membuang paket tanpa respons (lebih tersembunyi, tapi client menunggu timeout).

Langkah 6: Reload dan Verifikasi Konfigurasi

Semua aturan yang ditambahkan menggunakan flag --permanent belum akan diterapkan secara nyata sampai kamu melakukan reload service-nya. Jalankan perintah ini:

sudo firewall-cmd --reload

Setelah itu, verifikasi secara menyeluruh semua aturan yang aktif pada zona utama server:

sudo firewall-cmd --list-all

Cek Rule firewalld

Gambar 2: Output --list-all menampilkan ringkasan lengkap konfigurasi aktif di zona public.

Dari hasil output ini, kamu bisa melihat ringkasan penting pada bagian:

  • services: Daftar service bawaan yang diberi akses masuk.
  • ports: Deretan port kustom tambahan yang diizinkan.
  • rich rules: Kondisi atau aturan spesifik, termasuk daftar alamat IP yang diblokir.
💡 Perintah Penting untuk Troubleshooting Cepat
Jika kamu ingin cek aturan semua zona sekaligus (bukan hanya zona default), gunakan:

sudo firewall-cmd --list-all-zones

Troubleshooting

firewalld tidak bisa diaktifkan

Jika perintah systemctl start firewalld gagal, periksa apakah ada firewall lain yang membuat konflik:

sudo systemctl status ufw
sudo systemctl status iptables

Jika salah satunya aktif, pastikan kamu menonaktifkannya terlebih dahulu sebelum menjalankan firewalld:

sudo systemctl disable --now ufw

Koneksi SSH terputus setelah mengaktifkan firewalld

Ini adalah tanda bahwa port SSH belum diizinkan sebelum firewalld diaktifkan. Jika kamu memiliki akses via console VPS (bukan SSH), login via konsol tersebut lalu ketikkan:

sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --reload

Apabila fitur konsol tersebut tidak tersedia, segera hubungi tim support provider VPS kamu untuk membuka akses.

Aturan baru tidak aktif setelah ditambahkan

Pastikan kamu menjalankan --reload setelah setiap perubahan dengan flag --permanent. Tanpa reload, aturan permanen tidak langsung aktif di sesi berjalan.

sudo firewall-cmd --reload

Memastikan port tertentu sudah diizinkan atau belum

Gunakan perintah query untuk pengecekan cepat tanpa perlu membaca list yang panjang:

sudo firewall-cmd --query-port=80/tcp
sudo firewall-cmd --query-service=ssh

Output yes menandakan port sudah diizinkan, sedangkan respons no berarti belum.


Kesimpulan

Sejauh ini kamu sudah berhasil mengimplementasikan firewalld di VPS Linux dari nol, Kawan Belajar! Mulai dari instalasi di berbagai distro, memahami konsep zona, mengizinkan dan memblokir port, hingga memverifikasi konfigurasi final.

Langkah selanjutnya yang bisa kamu eksplorasi adalah mengatur zone policy untuk komunikasi antar-zona, atau mengintegrasikan firewalld dengan fail2ban agar IP yang mencoba brute force SSH otomatis diblokir secara dinamis. Selamat mencoba, dan semoga server kamu makin aman!


Referensi

  • Dokumentasi resmi firewalld
  • Linux man page: firewall-cmd

Butuh bantuan lebih lanjut?

Jangan ragu untuk menghubungi tim support kami jika Anda memiliki pertanyaan atau masalah terkait layanan CloudKilat.

Hubungi Kami