ServerTokens adalah direktif konfigurasi pada Apache HTTP Server yang berfungsi untuk mengontrol isi dari header respons HTTP Server yang dikirimkan oleh server web ke klien. Header ini biasanya menampilkan informasi tentang perangkat lunak server web, sistem operasi yang mendasarinya, serta modul-modul yang aktif.
Mengatur nilai ServerTokens dengan tepat merupakan langkah mitigasi keamanan dasar untuk mencegah pengungkapan informasi (Information Disclosure). Jika dibiarkan menggunakan nilai defaultnya, potensi penyerang dapat mengetahui versi presisi dari perangkat lunak yang digunakan dan mencari celah keamanan spesifik (CVE) yang sesuai dengan versi tersebut.
Sintaks dan Opsi Nilai ServerTokens
Direktif ServerTokens hanya dapat diletakkan di dalam konteks server utama (server config), bukan di dalam blok <Directory> atau berkas .htaccess. Berikut adalah sintaks dasar penggunaannya:
ServerTokens [Full | OS | Minimal | Minor | Major | Prod]Berikut adalah tabel perbandingan opsi nilai yang tersedia pada direktif ServerTokens beserta contoh hasil keluarannya pada header respons HTTP:
| Opsi Nilai | Hasil Header HTTP Server (Contoh) | Tingkat Informasi yang Ditampilkan |
|---|---|---|
Full (Default) | Server: Apache/2.4.58 (Ubuntu) OpenSSL/3.0.13 PHP/8.2.15 | Sangat detail; mencakup jenis server, versi utama/minor, sistem operasi, serta modul tambahan. |
OS | Server: Apache/2.4.58 (Unix) | Menampilkan versi server web dan sistem operasi dasar. |
Minimal | Server: Apache/2.4.58 | Hanya menampilkan jenis dan versi server web secara spesifik. |
Minor | Server: Apache/2.4 | Menampilkan jenis server dan versi minor saja (tanpa nomor patch presisi). |
Major | Server: Apache/2 | Hanya menampilkan versi mayor dari perangkat lunak Apache. |
Prod | Server: Apache | Paling aman; hanya menampilkan nama produk tanpa informasi versi atau sistem operasi sama sekali. |
Langkah Konfigurasi ServerTokens di Apache
Untuk menerapkan direktif ServerTokens guna memperketat keamanan server web, ikuti langkah-langkah teknis berikut:
- Buka terminal server menggunakan akses SSH dengan hak akses administratif (sudo/root).
- Akses berkas konfigurasi utama Apache. Pada distribusi berbasis Debian/Ubuntu umumnya berada di
/etc/apache2/conf-available/security.confatau pada direktori utamahttpd.confuntuk sistem berbasis RedHat/CentOS. - Cari baris yang mengatur
ServerTokens. Jika belum ada, Anda dapat menambahkannya secara manual. Ubah nilainya menjadiProduntuk keamanan maksimal:ServerTokens Prod - Pastikan juga direktif
ServerSignaturediatur keOffdi dalam berkas yang sama untuk menghilangkan jejak versi server pada halaman error yang dihasilkan oleh Apache:ServerSignature Off - Simpan perubahan berkas konfigurasi tersebut.
- Uji sintaks konfigurasi untuk menghindari kesalahan penulisan (syntax error) dengan perintah:
atausudo apache2ctl configtestsudo httpd -ttergantung distribusi sistem operasi Anda. - Muat ulang (restart/reload) layanan Apache agar konfigurasi baru diterapkan:
(atausudo systemctl restart apache2sudo systemctl restart httpd).
Verifikasi Hasil Konfigurasi
Setelah layanan Apache dimuat ulang, lakukan pengecekan header respons HTTP untuk memastikan informasi versi telah tersembunyi. Anda dapat menggunakan perintah curl dari terminal:
curl -I https://nama-domain-anda.comPerhatikan baris yang diawali dengan kata Server: pada keluaran (output) terminal. Jika konfigurasi berhasil dan menggunakan opsi Prod, maka informasi yang tampil hanya berupa Server: Apache tanpa menyertakan nomor versi atau sistem operasi.
Mitigasi Keamanan Terkait
Meskipun menyembunyikan versi server melalui ServerTokens mengurangi risiko pengintaian awal oleh pemindai kerentanan otomatis (automated vulnerability scanners), langkah ini bukanlah satu-satunya pengamanan. Praktik pengerasan (hardening) server web harus dikombinasikan dengan pembaruan paket perangkat lunak secara berkala, penerapan aturan firewall yang ketat, dan membatasi akses direktori yang tidak perlu.