Lewati ke konten utama

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
    Apache authentication
  • 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>
    Apache directory authentication

6. Simpan perubahan dan Restart server Apache.

catatan

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.

authentication required

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_.

Apache security by criteria

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).

Apache security using require directive

3. Jangan lupa untuk Save perubahan dan Restart server Apache Anda untuk menerapkan perubahan.

catatan

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.

modsecurity

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).

modsecurity rules

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

Baca Juga