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 Off2. 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.
| Direktif | Fungsi | Rekomendasi |
|---|---|---|
| ServerTokens | Informasi versi | Prod |
| ServerSignature | Footer halaman error | Off |
| Options | Fitur direktori | -Indexes -FollowSymLinks |
| TraceEnable | Metode HTTP TRACE | Off |
| AllowOverride | File .htaccess | None |
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 configtestsetelah mengubah konfigurasi untuk memastikan tidak ada sintaks yang salah. - Restart layanan dengan
systemctl restart apache2atauhttpdagar perubahan diterapkan. - Pantau log akses dan error di
/var/log/apache2/atau/var/log/httpd/secara berkala untuk mendeteksi aktivitas mencurigakan.