Mengenal application profiles UFW: membaca daftar profil dengan ufw app list, mengenal struktur /etc/ufw/applications.d, mengaktifkan profil bawaan seperti OpenSSH, dan membuat profil kustom untuk aplikasi internal dengan title, description, dan ports

Episode 4 menyebutkan bahwa ufw allow ssh memakai application profile. Episode 7 membuka konsep itu seutuhnya: application profiles — cara UFW memberi nama pada port dan protokol, sehingga aturan firewall ditulis dalam bahasa layanan, bukan bahasa angka.
Mengapa ini penting? Karena aturan bernama lebih mudah dibaca, diaudit, dan dipelihara. ufw allow 'OpenSSH' lebih informatif daripada ufw allow 22/tcp di ruleset yang panjang. Lebih dari itu, profil juga bisa dipakai untuk update massal — saat port sebuah aplikasi berubah, kalian cukup mengubah satu file profil, bukan mencari semua aturan.
Sebuah application profile adalah file INI kecil yang memetakan nama layanan ke daftar port+protokol. Ketika kalian menulis ufw allow 'NamaProfil', UFW membaca file ini, lalu membuat aturan untuk setiap baris port di dalamnya.
Coba lihat profil yang sudah tersedia:
sudo ufw app listAvailable applications:
OpenSSH
CUPS
Postfix
...Output bervariasi tergantung paket yang terinstall. Profil-profil ini didefinisikan di /etc/ufw/applications.d/ dan paket aplikasi lain:
ls /etc/ufw/applications.d/Perintah app info menampilkan detail port sebuah profil:
sudo ufw app info OpenSSHProfile: OpenSSH
Title: OpenSSH
Description: Secure shell server, an rshd replacement
Port: 22/tcpDi sinilah kita melihat isi yang sebenarnya: profil OpenSSH berisi port 22/tcp. File mentahnya ada di sistem:
[OpenSSH]
title=OpenSSH
description=Secure shell server, an rshd replacement
ports=22/tcpTiga kunci standar sebuah profil:
| Kunci | Fungsi |
|---|---|
[Nama] | Identifier unik profil |
title | Judul yang tampil di app list |
description | Deskripsi layanan |
ports | Daftar port/protocol, dipisah koma untuk banyak entri |
Note
Nama profil case-sensitive: ufw allow openssh akan gagal, ufw allow OpenSSH berhasil. Selalu gunakan nama persis dari output ufw app list.
Mengaktifkan profil = membuat aturan untuk semua port di dalamnya:
sudo ufw allow 'OpenSSH'Rule added
Rule added (v6)Perhatikan output ganda: dua aturan dibuat (IPv4 dan IPv6) karena profil otomatis dual-stack. Untuk proteksi tambahan, profil juga bisa dikombinasikan dengan pembatasan sumber:
sudo ufw allow from 203.0.113.0/24 to any app OpenSSHMenghapus aturan yang dibuat dari profil:
sudo ufw delete allow 'OpenSSH'Periksa aturan yang tersisa di status — aturan akan tampil dengan nama profil di kolom To:
sudo ufw status
To Action From
-- ------ ----
OpenSSH ALLOW 192.168.1.0/24Sekarang bagian paling berguna: profil untuk aplikasi internal kalian. Contoh: aplikasi web internal yang mendengarkan di port 8443 (HTTPS) dan port 9443 (metrik). Buat file profil:
[AppInternal]
title=Internal Web App
description=Aplikasi web internal dengan metrik Prometheus
ports=8443/tcp,9443/tcpFormat ports memakai koma untuk memisahkan beberapa entri. Setelah file disimpan, UFW perlu memuat ulang daftar profil:
sudo ufw app update AppInternalsudo ufw app info AppInternalProfile: AppInternal
Title: Internal Web App
Description: Aplikasi web internal dengan metrik Prometheus
Port: 8443/tcp, 9443/tcpAktifkan profil baru tersebut:
sudo ufw allow 'AppInternal'Inilah keunggulan profil yang sesungguhnya. Misalkan aplikasi pindah dari 8443 ke 8444 — cukup ubah satu file:
[AppInternal]
title=Internal Web App
description=Aplikasi web internal dengan metrik Prometheus
ports=8444/tcp,9443/tcpLalu update profil dan reload:
sudo ufw app update AppInternal
sudo ufw reloadSeluruh aturan yang mereferensikan AppInternal langsung menyesuaikan — tanpa menyentuh aturan satu per satu. Inilah nilai pemeliharaan jangka panjang yang dihargai oleh tim ops.
Tip
Kelola profil kustom sebagai kode: simpan file profil di repository (misalnya folder ufw/ dalam repo Ansible, episode 20) dan deploy bersama konfigurasi lain. Dengan begitu perubahan port aplikasi terdokumentasi dan tercatat di history git.
ufw app update: setelah membuat/mengedit file, jalankan ufw app update <Nama> agar UFW membaca perubahan — jika tidak, ufw allow 'NamaProfil' akan gagal dengan "profile not found".ports=8443/tcp,9443/tcp (spasi di antara dua entri akan diinterpretasikan sebagai nama protokol yang aneh).ufw reload untuk menerapkan perubahan.Pada episode 7 ini, kalian telah menguasai application profiles.
Inti yang harus dibawa pulang:
/etc/ufw/applications.d/.ufw app list melihat daftar, ufw app info <Nama> melihat isi, ufw allow '<Nama>' mengaktifkannya.app list.title, description, dan ports yang dipisah koma.ufw app update + ufw reload untuk update massal aturan.Di episode 8 selanjutnya, kita belajar membereskan ruleset: Deleting, Reset & Status Rule — menghapus aturan by port atau by nomor, reset penuh, dan menyusun ulang ruleset yang bersih dan logis. Sampai jumpa di episode 8!