ServerTokens Directive Apache: Fungsi dan Konfigurasi Keamanan

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 NilaiHasil Header HTTP Server (Contoh)Tingkat Informasi yang Ditampilkan
Full (Default)Server: Apache/2.4.58 (Ubuntu) OpenSSL/3.0.13 PHP/8.2.15Sangat detail; mencakup jenis server, versi utama/minor, sistem operasi, serta modul tambahan.
OSServer: Apache/2.4.58 (Unix)Menampilkan versi server web dan sistem operasi dasar.
MinimalServer: Apache/2.4.58Hanya menampilkan jenis dan versi server web secara spesifik.
MinorServer: Apache/2.4Menampilkan jenis server dan versi minor saja (tanpa nomor patch presisi).
MajorServer: Apache/2Hanya menampilkan versi mayor dari perangkat lunak Apache.
ProdServer: ApachePaling 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:

  1. Buka terminal server menggunakan akses SSH dengan hak akses administratif (sudo/root).
  2. Akses berkas konfigurasi utama Apache. Pada distribusi berbasis Debian/Ubuntu umumnya berada di /etc/apache2/conf-available/security.conf atau pada direktori utama httpd.conf untuk sistem berbasis RedHat/CentOS.
  3. Cari baris yang mengatur ServerTokens. Jika belum ada, Anda dapat menambahkannya secara manual. Ubah nilainya menjadi Prod untuk keamanan maksimal:
    ServerTokens Prod
  4. Pastikan juga direktif ServerSignature diatur ke Off di dalam berkas yang sama untuk menghilangkan jejak versi server pada halaman error yang dihasilkan oleh Apache:
    ServerSignature Off
  5. Simpan perubahan berkas konfigurasi tersebut.
  6. Uji sintaks konfigurasi untuk menghindari kesalahan penulisan (syntax error) dengan perintah:
    sudo apache2ctl configtest
    atau sudo httpd -t tergantung distribusi sistem operasi Anda.
  7. Muat ulang (restart/reload) layanan Apache agar konfigurasi baru diterapkan:
    sudo systemctl restart apache2
    (atau sudo 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.com

Perhatikan 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.