Prinsip Utama Pengamanan Apache
Apache Security Hardening adalah proses meminimalisir permukaan serangan (attack surface) pada server web Apache dengan menonaktifkan fitur yang tidak perlu, menyembunyikan identitas server, dan membatasi akses sistem file. Fokus utama hardening adalah mencegah kebocoran informasi (information disclosure) dan membatasi eksekusi skrip berbahaya.
1. Menyembunyikan Informasi Server
Secara default, Apache menampilkan versi perangkat lunak dan sistem operasi pada halaman error. Ini memberikan informasi berharga bagi penyerang. Ubah konfigurasi di /etc/apache2/apache2.conf atau /etc/httpd/conf/httpd.conf:
ServerTokens Prod
ServerSignature Off2. Menonaktifkan Listing Direktori
Jika tidak ada file index (index.html/php), Apache akan menampilkan daftar file di direktori tersebut. Ini sangat berbahaya. Pastikan opsi Indexes dihapus dari konfigurasi direktori:
<Directory /var/www/html>
Options -Indexes +FollowSymLinks
AllowOverride None
Require all granted
</Directory>3. Membatasi Akses File Sensitif
Cegah akses ke file konfigurasi atau file tersembunyi seperti .htaccess atau .git menggunakan blok berikut:
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>Tabel Ringkasan Parameter Keamanan
| Parameter | Nilai Rekomendasi | Fungsi |
|---|---|---|
| ServerTokens | Prod | Menyembunyikan versi Apache |
| ServerSignature | Off | Menghapus footer info server |
| Options | -Indexes | Mencegah direktori listing |
| TraceEnable | Off | Mencegah serangan Cross-Site Tracing |
| AllowOverride | None | Mencegah bypass via .htaccess |
4. Menonaktifkan HTTP TRACE
Metode TRACE sering digunakan dalam serangan Cross-Site Tracing (XST). Nonaktifkan dengan menambahkan baris berikut di konfigurasi utama:
TraceEnable Off5. Implementasi ModSecurity (WAF)
ModSecurity adalah Web Application Firewall (WAF) open-source yang sangat krusial. Instalasi dapat dilakukan melalui manajer paket sistem operasi Anda (misal: apt install libapache2-mod-security2). Setelah terinstal, aktifkan aturan dasar (OWASP Core Rule Set) untuk memblokir injeksi SQL, XSS, dan serangan umum lainnya.
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/secara berkala untuk mendeteksi aktivitas mencurigakan.