Konfigurasi Keamanan Apache HTTP Server: Panduan Hardening Praktis

Prinsip Dasar Hardening Apache

Keamanan Apache HTTP Server berfokus pada prinsip least privilege dan pengurangan informasi yang terekspos ke publik. Konfigurasi utama dilakukan pada file httpd.conf atau apache2.conf. Langkah pertama yang wajib dilakukan adalah menyembunyikan identitas server dan membatasi akses direktori.

1. Menyembunyikan Informasi Server

Secara default, Apache menampilkan versi perangkat lunak dan sistem operasi pada halaman error. Ubah direktif berikut untuk meminimalisir kebocoran informasi:

ServerTokens Prod
ServerSignature Off

2. Membatasi Akses Direktori

Jangan izinkan akses ke direktori root dan nonaktifkan fitur yang tidak diperlukan seperti directory listing dan symbolic links:

<Directory />
    AllowOverride None
    Require all denied
</Directory>

<Directory /var/www/html>
    Options -Indexes -FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

3. Matikan Modul Tidak Perlu

Semakin sedikit modul yang aktif, semakin kecil permukaan serangan (attack surface). Gunakan perintah apachectl -M untuk melihat modul aktif dan nonaktifkan modul yang tidak digunakan seperti mod_autoindex atau mod_userdir.

DirektifFungsiRekomendasi
ServerTokensInformasi versiProd
ServerSignatureFooter halaman errorOff
OptionsFitur direktori-Indexes -FollowSymLinks
TraceEnableMetode HTTP TRACEOff
AllowOverrideFile .htaccessNone

4. Proteksi Terhadap Serangan Umum

Aktifkan modul keamanan tambahan dan batasi metode HTTP yang diizinkan untuk mencegah serangan seperti XSS dan HTTP Response Splitting:

# Nonaktifkan HTTP TRACE
TraceEnable Off

# Proteksi XSS (Header)
Header set X-XSS-Protection "1; mode=block"
Header set X-Content-Type-Options "nosniff"
Header set X-Frame-Options "SAMEORIGIN"

Tips Troubleshooting

  • Selalu jalankan apachectl configtest setelah mengubah konfigurasi untuk memastikan tidak ada sintaks yang salah.
  • Restart layanan dengan systemctl restart apache2 atau httpd agar perubahan diterapkan.
  • Pantau log akses dan error di /var/log/apache2/ atau /var/log/httpd/ secara berkala untuk mendeteksi aktivitas mencurigakan.