Cara Disable SSI Apache di Linux untuk Keamanan Server

Menonaktifkan Server Side Includes (SSI) pada web server Apache dilakukan dengan menghapus modul include_module dari konfigurasi direktori atau menonaktifkan opsi Includes pada direktif Options. Langkah ini krusial untuk mencegah kerentanan keamanan seperti eksekusi kode jarak jauh (RCE) dan manipulasi injeksi perintah melalui file HTML yang tidak disengaja.

Secara default, Apache mendukung SSI melalui modul mod_include. Jika tidak digunakan dalam aplikasi web Anda, mematikan fitur ini adalah praktik pengerasan server (server hardening) standar yang wajib diterapkan untuk menutup celah eksploitasi.

Metode Menonaktifkan SSI di Apache

Terdapat dua metode utama untuk menonaktifkan SSI pada server web Apache, yakni melalui konfigurasi blok direktori di file virtual host atau dengan menonaktifkan modul utamanya secara global.

1. Melalui Konfigurasi Options (Tingkat Direktori/Virtual Host)

Metode ini menonaktifkan SSI untuk direktori tertentu tanpa harus mematikan modul Apache secara keseluruhan. Ubah konfigurasi pada file virtual host Anda (biasanya berada di /etc/apache2/sites-available/ pada Ubuntu/Debian atau /etc/httpd/conf.d/ pada CentOS/RHEL).

<Directory /var/www/html>
    # Hapus opsi 'Includes' dari baris Options
    Options -Includes FollowSymLinks Indexes
    AllowOverride None
    Require all granted
</Directory>

Pastikan tanda minus (-) disematkan di depan kata Includes untuk mencabut izin eksekusi SSI pada direktori tersebut.

2. Menonaktifkan Modul mod_include Secara Global

Jika Anda ingin mematikan SSI sepenuhnya untuk seluruh domain di server, Anda dapat menonaktifkan modul include pada sistem operasi berbasis Debian/Ubuntu menggunakan perintah terminal:

sudo a2dismod include
sudo systemctl restart apache2

Untuk sistem berbasis Red Hat/CentOS, Anda perlu menyunting file konfigurasi utama httpd.conf atau menghapus baris pemuatan modul:

# LoadModule include_module modules/mod_include.so

Tabel Matriks Perintah Konfigurasi SSI Apache

Metode Sistem Operasi Perintah / Konfigurasi Dampak
Pencabutan Opsi Ubuntu / CentOS Options -Includes SSI nonaktif pada direktori spesifik
Disable Modul (Debian) Ubuntu / Debian sudo a2dismod include Modul mod_include dicopot global
Komentar Modul (RHEL) CentOS / RHEL #LoadModule include_module Modul tidak dimuat saat startup Apache

Langkah Verifikasi Pengujian Keamanan

Setelah melakukan perubahan konfigurasi, pastikan untuk menerapkan ulang pengaturan server dan menguji apakah SSI benar-benar sudah nonaktif.

  1. Simpan file konfigurasi yang telah diubah.
  2. Uji sintaks konfigurasi Apache untuk menghindari error:
    sudo apache2ctl configtest
    atau
    sudo httpd -t
  3. Restart layanan Apache:
    sudo systemctl restart apache2
    (atau httpd pada CentOS).
  4. Buat file uji dengan ekstensi .shtml berisi sintaks SSI standar seperti <!--#echo var="DATE_LOCAL" -->. Jika SSI berhasil dimatikan, browser akan menampilkan teks mentah tersebut alih-alih mengeksekusi tanggal sistem.

Troubleshooting & Tips Lapangan

Jika setelah konfigurasi SSI masih berjalan, periksa apakah ada file .htaccess di dalam direktori web root yang mendefinisikan ulang perintah Options +Includes. Perintah dalam .htaccess sering kali menimpa konfigurasi utama pada blok <Directory> jika direktif AllowOverride mengizinkannya.