Apache Security Configurations
Dalam tutorial ini, kami akan menunjukkan cara menyiapkan konfigurasi keamanan tambahan untuk aplikasi PHP Anda yang dihosting dengan server aplikasi Apache.
Ada dua cara untuk menyiapkan konfigurasi keamanan utama Anda:
- melakukan perubahan dalam file konfigurasi utama Apache (httpd.conf)
- membuat file khusus .htaccess yang berisi satu atau lebih direktif konfigurasi dan ditempatkan di dalam direktori aplikasi Anda
Direktif ini dapat menggantikan sebagian dari konfigurasi global server untuk direktori tersebut dan semua subdirektori di dalamnya. Apa yang dapat Anda masukkan dalam file ini ditentukan oleh direktif AllowOverride.
AllowOverride hanya valid di bagian < directory > yang ditentukan tanpa regular expressions. Ketika direktif ini diatur ke None - file .htaccess sepenuhnya diabaikan. Ketika direktif ini diatur ke All, maka setiap direktif yang memiliki konteks .htaccess diizinkan dalam file .htaccess.
Mari kita periksa setiap jenis konfigurasi keamanan yang dapat Anda terapkan untuk melindungi aplikasi Anda:
Setting Up the Authentication Request
Untuk mengatur autentikasi untuk aplikasi Apache Anda atau hanya untuk memisahkan sebuah directory dalam aplikasi Anda, ikuti langkah-langkah berikut.
1. Hasilkan hash dari kata sandi Anda. Untuk itu Anda dapat menggunakan alat htpasswd apa pun atau layanan online (misalnya, https://www.web2generators.com/apache-tools/htpasswd-generator/
).
2. Buat file teks sederhana dengan hash yang dihasilkan sebelumnya.
3. Klik tombol Config untuk server Anda.
4. Unggah file yang dibuat ke folder /var/www/webroot/ROOT.
5. Dalam folder /etc/httpd/conf buka file httpd.conf (atau file .htaccess, jika Anda menggunakannya) dan lakukan konfigurasi berikut:
-
autentikasi untuk seluruh aplikasi - tambahkan string berikut ke bagian Directory seperti yang ditunjukkan pada gambar di bawah ini:
AuthName "Restricted area"
AuthType Basic
AuthBasicProvider file
AuthUserFile /var/www/webroot/ROOT/.htpasswd
Require valid-user -
autentikasi untuk direktori terpisah - tambahkan string Location berikut yang menunjukkan jalur ke direktori yang diperlukan:
<Location /directory_path>
AuthName "Restricted area"
AuthType Basic
AuthBasicProvider file
AuthUserFile /var/www/webroot/ROOT/.htpasswd
Require valid-user
</Location>
6. Simpan perubahan dan Restart server Apache.
Jika Anda menggunakan file httpd.conf untuk mengatur konfigurasi keamanan Anda, Anda perlu merestart Apache setelah melakukan setiap perubahan pada konfigurasi. Dalam hal penggunaan file .htaccess, perubahan yang dilakukan dalam file ini akan langsung berlaku, karena file ini dibaca pada setiap permintaan.
Akibatnya, saat mengakses aplikasi atau direktori yang dilindungi, pengguna akan diminta untuk melakukan autentikasi.

Security Through Setting Up Criteria
Anda dapat menyediakan keamanan untuk aplikasi Anda dengan menetapkan kontrol akses ke bagian-bagian tertentu dari server Anda berdasarkan kriteria spesifik (misalnya: nama host klien atau alamat IP).
Konfigurasi yang diperlukan dapat diterapkan dengan bantuan direktif Require. Dan untuk mengatur kebijakan akses yang lebih kompleks, itu dapat digunakan bersama dengan:
- RequireAll - satu set direktif otorisasi, di mana tidak ada yang boleh gagal dan setidaknya satu harus berhasil
- RequireAny - satu set direktif otorisasi, di mana setidaknya satu harus berhasil
- RequireNone - satu set direktif otorisasi, di mana tidak ada yang boleh berhasil
Arahkan ke folder /etc/httpd/conf dan buka file httpd.conf (atau .htaccess secara langsung di direktori target).
1. Untuk menetapkan kriteria akses berdasarkan IP, cukup tambahkan direktif yang diperlukan ke bagian _Directory_.

2. Sebagai contoh yang lebih kompleks, Anda dapat mengkonfigurasi kebijakan akses dari beberapa kondisi (misalnya melalui direktif RequireAll) dan untuk folder server tertentu (cukup ubah bagian yang digarisbawahi dalam gambar di bawah).

3. Jangan lupa untuk Save perubahan dan Restart server Apache Anda untuk menerapkan perubahan.
Menolak akses melalui IP hanya masuk akal jika Anda menggunakan fitur Public IP.
Configuring mod_security Module
mod_security adalah modul Apache yang sangat berguna yang menyediakan kemampuan seperti penyaringan sederhana, validasi URL dan encoding Unicode, audit, pencegahan serangan null byte, batas memori unggah, penyamaran identitas server, dukungan chroot built-in dan banyak lagi.
Modul ini tersedia di platform secara default dan dapat dikonfigurasi melalui file /etc/httpd/conf.d/mod_security.conf.

Di sini Anda dapat mengedit konfigurasi default atau menambahkan konfigurasi kustom Anda sendiri.
Misalnya, Anda dapat menambahkan beberapa ModSecurity Rules tambahan dengan mengunggahnya ke folder /etc/httpd/modsecurity.d (misalnya, modsecurity_crs_11_brute_force.conf).

Aturan yang diunggah ke folder modsecurity.d atau activated_rules akan otomatis diaktifkan tanpa pengaturan tambahan. Ini dikonfigurasi dengan parameter default berikut di file /etc/httpd/conf.d/mod_security.conf:
Include modsecurity.d/*.conf
Include modsecurity.d/activated_rules/*.conf
Hide Apache Server Version
Biasanya dengan konfigurasi default, versi server Apache ditampilkan secara publik. Akibatnya, informasi tentang versi Apache dan sistem operasi/versi Anda, atau bahkan detail tentang modul Apache yang terinstal dapat digunakan untuk melakukan serangan.
Untuk menghindari hal ini, platform secara otomatis menambahkan konfigurasi berikut ke file httpd.conf Anda:
- ServerSignature Off - menampilkan halaman 404 alih-alih daftar direktori dan halaman lain yang dihasilkan oleh Apache
- ServerTokens Prod - menentukan header respons HTTP Apache Server; dengan nilai Prod header respons HTTP akan mengikuti - Server: Apache