Panduan ini menjelaskan prosedur untuk mengonfigurasi firewall pada Virtual Private Server (VPS) melalui utilitas Uncomplicated Firewall (UFW) dan Firewalld. Pengaturan firewall yang tepat sangat bermanfaat untuk melindungi server dari akses tidak sah, menyaring lalu lintas jaringan masuk dan keluar, serta membatasi akses port atau layanan tertentu hanya untuk alamat IP yang terpercaya.
I. Persiapan Awal dan Akses Terminal Server
Sebelum melakukan konfigurasi firewall, Anda harus terhubung ke VPS menggunakan akses SSH dan menyiapkan direktori kerja pendukung.
Buka aplikasi terminal atau SSH client pada komputer Anda, lalu jalankan perintah berikut untuk masuk ke server sebagai akun root atau pengguna dengan hak akses sudo:
ssh username@alamat_ip_vps
Hasil yang diharapkan: Sesi terminal terhubung ke VPS dan menampilkan prompt baris perintah (command line).
II. Konfigurasi Firewall Menggunakan UFW (Ubuntu / Debian)
UFW (Uncomplicated Firewall) adalah antarmuka manajemen firewall bawaan yang populer pada sistem operasi Ubuntu dan Debian karena kemudahan penggunaan perintahnya.
- Memeriksa Status UFW
Periksa apakah UFW sudah aktif pada sistem Anda dengan menjalankan perintah:sudo ufw status verbose
Hasil yang diharapkan: Terminal menampilkan statusStatus: inactiveatauStatus: activebeserta daftar aturan yang sedang berjalan. - Mengizinkan Akses SSH Terlebih Dahulu
Sebelum mengaktifkan UFW, pastikan Anda telah mengizinkan koneksi SSH agar sesi terminal Anda tidak terputus secara tidak terduga:sudo ufw allow 22/tcp
Hasil yang diharapkan: Terminal menampilkan pesanRules updated. - Mengizinkan Port dan Layanan Publik (Allow Port & Service)
Buka port untuk lalu lintas web standar HTTP (80) dan HTTPS (443), atau gunakan nama layanannya secara langsung:sudo ufw allow 80/tcp sudo ufw allow https
Hasil yang diharapkan: Aturan baru ditambahkan untuk menerima lalu lintas lalu lintas masuk pada port 80 dan layanan HTTPS. - Mengizinkan Akses Port Khusus untuk Alamat IP Tertentu
Untuk membatasi akses ke port sensitif (misalnya port basis data MySQL3306atau SSH22) hanya dari alamat IP tertentu (contoh:192.168.1.50), jalankan perintah:sudo ufw allow from 192.168.1.50 to any port 3306 proto tcp
Hasil yang diharapkan: Hanya perangkat dengan alamat IP192.168.1.50yang diizinkan terhubung ke port 3306/tcp. - Mengizinkan Seluruh Akses Layanan dari Alamat IP Tertentu
Jika Anda ingin mengizinkan suatu IP tepercaya mengakses seluruh port dan layanan pada VPS Anda, gunakan perintah:sudo ufw allow from 192.168.1.50 - Mengaktifkan Firewall UFW
Jalankan perintah berikut untuk mengaktifkan seluruh aturan yang telah dibuat:sudo ufw enable
Ketikysaat muncul konfirmasi. Hasil yang diharapkan: PesanFirewall is active and enabled on system startupakan muncul di layar.
III. Konfigurasi Firewall Menggunakan Firewalld (CentOS / AlmaLinux / RHEL)
Firewalld adalah alat manajemen firewall dinamis yang menjadi standar pada distribusi berbasis RHEL seperti CentOS, AlmaLinux, dan Rocky Linux.
- Memeriksa Status dan Memulai Layanan Firewalld
Pastikan layanan Firewalld berjalan pada VPS Anda menggunakan perintah:sudo systemctl status firewalld sudo systemctl start firewalld sudo systemctl enable firewalld
Hasil yang diharapkan: Layanan Firewalld berstatusactive (running). - Mengizinkan Port dan Layanan Publik (Allow Port & Service)
Tambahkan layanan HTTP dan port kustom secara permanen ke dalam zona standar (public):sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-port=8080/tcp
Hasil yang diharapkan: Terminal mengembalikan responssuccess. - Mengizinkan Akses Port atau Layanan untuk IP Tertentu (Rich Rules)
Gunakan fitur Rich Rules pada Firewalld untuk membuka port spesifik (misalnya port SSH22) khusus untuk alamat IP tertentu (contoh:203.0.113.25):sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.25" port protocol="tcp" port="22" accept'
Hasil yang diharapkan: Terminal mengembalikan responssuccessyang menandakan aturan khusus IP telah terdaftar. - Mengizinkan Seluruh Akses dari IP Tertentu ke Zona Khusus (Trusted Zone)
Cara lain yang lebih praktis untuk memberikan akses penuh pada IP terpercaya adalah dengan memasukannya ke zona trusted:sudo firewall-cmd --permanent --zone=trusted --add-source=203.0.113.25 - Menerapkan Ulang Konfigurasi (Reload Firewalld)
Setiap perubahan dengan opsi--permanentharus dimuat ulang agar aturan baru langsung aktif:sudo firewall-cmd --reload
Hasil yang diharapkan: Terminal menampilkan pesansuccessdan aturan baru langsung diterapkan pada sistem.
IV. Verifikasi dan Pengujian Aturan Firewall
Setelah aturan dikonfigurasi, lakukan pemeriksaan akhir untuk memastikan seluruh parameter telah diterapkan sesuai kebutuhan.
- Memeriksa Daftar Aturan Aktif pada UFW
Jalankan perintah berikut jika Anda menggunakan UFW:sudo ufw status numbered
Hasil yang diharapkan: Seluruh aturan ditampilkan beserta nomor urutnya untuk memudahkan pengelolaan atau penghapusan aturan di kemudian hari. - Memeriksa Daftar Aturan Aktif pada Firewalld
Jalankan perintah berikut jika Anda menggunakan Firewalld:sudo firewall-cmd --list-all
Hasil yang diharapkan: Antarmuka menampilkan daftar layanan (services), port, dan rich rules yang sedang aktif pada zona utama.
Hal Penting yang Perlu Diperhatikan
- Peringatan Terkunci dari Server (SSH Lockout): Risiko terbesar saat mengonfigurasi firewall adalah terputus dari akses SSH. Selalu pastikan port SSH (port default
22atau port kustom Anda) telah diizinkan sebelum mengaktifkan UFW atau Firewalld. - Jangan Mengaktifkan Dua Firewall Sekaligus: Hindari menjalankan UFW dan Firewalld secara bersamaan pada satu VPS karena dapat menyebabkan konflik aturan jaringan. Gunakan UFW untuk Ubuntu/Debian dan Firewalld untuk CentOS/RHEL/AlmaLinux.
- Perubahan Alamat IP Dinamis (Common Mistake): Jika Anda mengonfigurasi pembatasan port khusus untuk IP tertentu (Allow IP), pastikan IP koneksi internet Anda bersifat statis. Jika IP publik Anda berubah (dinamis), Anda akan kehilangan akses ke port tersebut.
- Pembersihan Aturan Lama (Maintenance Tip): Hapus aturan port yang sudah tidak digunakan secara berkala untuk menjaga performa filter jaringan dan meminimalkan celah keamanan. Pada UFW gunakan
sudo ufw delete [nomor_aturan], sedangkan pada Firewalld gunakan opsi--remove-portatau--remove-service.