Cara Mengamankan Server Apache Anda

Apache adalah server web open-source populer yang tersedia untuk sistem Linux dan Windows. Ini memungkinkan konfigurasi untuk beragam kasus useran, dari halaman web HTML hingga konten aplikasi web dinamis HyperText Preprocessor (PHP). Apache menyediakan platform yang aman dan kuat untuk menyebarkan aplikasi web Anda. Namun, tetap penting untuk menginstal patch keamanan terbaru dan mengkonfigurasi server dengan benar untuk membangun lingkungan yang aman untuk aplikasi web Anda.
Pada artikel ini, Anda akan menemukan beberapa tip dan trik untuk memperkuat konfigurasi Apache Web Server Anda dan meningkatkan keamanan umum.

Akun Pengguna Non-Hak Istimewa

Tujuan dari akun user non-root atau unprivileged adalah untuk membatasi user dari akses yang tidak perlu ke tugas-tugas tertentu dalam suatu sistem. Dalam konteks server web Apache, ini berarti bahwa ia harus bekerja di lingkungan terbatas hanya dengan izin yang diperlukan. Secara default, Apache berjalan dengan hak istimewa akun daemon. Anda dapat membuat akun user non-root terpisah untuk menghindari ancaman jika terjadi kerentanan keamanan.

Selanjutnya, jika Apache2 dan MySQL berada di bawah kredensial user yang sama, masalah apa pun dalam proses service sekali akan berdampak pada yang lain. Untuk mengubah hak user dan grup untuk server web, buka /etc/apache2, buka file envvars, dan atur user dan grup ke user akun non-hak istimewa baru, katakan, “apache,” dan simpan file.

[email protected]~:$ sudo vim /etc/apache2/envvars
...snip...
export APACHE_RUN_USER= apache
export APACHE_RUN_GROUP= apache
...snip...

Anda juga dapat menggunakan perintah berikut untuk mengubah kepemilikan direktori instalasi menjadi user non-root baru.

[email protected]~:$ sudo chown -R apache:apache /etc/apache2
Issue the following command to save the changes:
[email protected]~:$ sudo service apache2 restart

Tetap Perbarui Apache

Apache terkenal karena menyediakan platform yang aman dengan komunitas pengembang yang sangat peduli yang jarang menghadapi bug keamanan. Namun demikian, adalah normal untuk menemukan masalah setelah perangkat lunak dirilis. Oleh karena itu, penting untuk selalu memperbarui server web untuk memanfaatkan fitur keamanan terbaru. Disarankan juga untuk mengikuti Daftar Pengumuman Server Apache untuk terus memperbarui diri Anda tentang pengumuman baru, rilis, dan pembaruan keamanan dari komunitas pengembangan Apache.

Untuk memperbarui Apache Anda menggunakan apt, ketikkan yang berikut ini:

[email protected]~:$ sudo apt-get update
[email protected]~:$ sudo apt-get upgrade

Nonaktifkan Tanda Tangan Server

Konfigurasi default Server Apache memperlihatkan banyak detail tentang server dan pengaturannya. Misalnya, perintah ServerSignature dan ServerTokens yang diaktifkan di file /etc/apache2/apache2.conf menambahkan header tambahan ke Respons HTTP yang memaparkan informasi yang berpotensi sensitif. Informasi ini mencakup detail pengaturan server, seperti versi server dan OS hosting, yang dapat membantu penyerang dalam proses pengintaian. Anda dapat menonaktifkan arahan ini dengan mengedit file apache2.conf melalui vim/nano dan menambahkan arahan berikut:

[email protected]~:$ sudo vim /etc/apache2/apache2.conf
...snip...
ServerSignature Off
...snip...
ServerTokens Prod
...snip...

Mulai ulang Apache untuk memperbarui perubahan.

Nonaktifkan Daftar Direktori Server

Daftar Direktori menampilkan semua konten yang disimpan di folder akar atau sub-direktori. File direktori dapat berisi informasi sensitif yang tidak ditujukan untuk tampilan publik, seperti skrip PHP, file konfigurasi, file yang berisi password, log, dll.
Untuk melarang daftar direktori, ubah file konfigurasi server Apache dengan mengedit file apache2.conf sebagai:

[email protected]~:$ sudo vim /etc/apache2/apache2.conf

...snip...

<Directory /var/www>

Options -Indexes

</Directory>

...snip...

ATAU

...snip...

<Directory /var/www/your_website>

Options -Indexes

</Directory>

...snip...

Anda juga dapat menambahkan arahan ini di file.htaccess dari direktori situs web utama Anda.

Lindungi Pengaturan Sistem

File.htaccess adalah fitur yang nyaman dan kuat yang memungkinkan konfigurasi di luar file apache2.conf utama. Namun, dalam kasus di mana user dapat mengunggah file ke server, ini dapat dimanfaatkan oleh penyerang untuk mengunggah file “.htaccess” miliknya dengan konfigurasi berbahaya. Jadi, jika Anda tidak menggunakan fitur ini, Anda dapat menonaktifkan direktif.htaccess, yaitu:

[email protected]~:$ sudo vim /etc/apache2/apache2.conf
...snip...
#AccessFileName.htaccess
...snip...

ATAU
Nonaktifkan file.htaccess kecuali untuk direktori yang diaktifkan secara khusus dengan mengedit file apache2.conf dan mengubah direktif AllowOverRide menjadi None;

[email protected]~:$ sudo vim /etc/apache2/apache2.conf

.. .snip...

<Directory '/'>

AllowOverride None

</Directory>

...snip...

Direktori Aman dengan Otentikasi

Anda dapat membuat kredensial user untuk melindungi semua atau beberapa direktori menggunakan utilitas htpasswd. Buka folder server Anda dan gunakan perintah berikut untuk membuat file.htpasswd untuk menyimpan hash password untuk kredensial yang ditetapkan, katakanlah, user bernama dev.

[email protected]~:$ sudo htpasswd -c /etc/apache2/-htpasswd dev

Perintah di atas akan meminta password baru dan konfirmasi password. Anda dapat melihat file cat./htpasswd untuk memeriksa hash untuk kredensial user yang disimpan.

Sekarang, Anda dapat secara otomatis mengatur file konfigurasi di direktori your_website yang perlu Anda lindungi dengan memodifikasi file.htaccess. Gunakan perintah dan arahan berikut untuk mengaktifkan otentikasi:

[email protected]~:$ sudo nano /var/www/your_website/.htaccess
...snip...
AuthType Basic
AuthName "Add the Dialog Prompt"
AuthUserFile /etc/apache2/user_name/domain_name/.htpasswd
Require valid-user
...snip...

Ingatlah untuk menambahkan jalur sesuai milik Anda.

Jalankan Modul yang Diperlukan

Konfigurasi Apache default menyertakan modul yang diaktifkan yang bahkan mungkin tidak Anda perlukan. Modul pra-instal ini membuka pintu untuk masalah keamanan Apache yang sudah ada atau mungkin ada di masa mendatang. Untuk menonaktifkan semua modul ini, Anda harus terlebih dahulu memahami modul mana yang diperlukan untuk kelancaran fungsi server web Anda. Untuk tujuan ini, lihat dokumentasi modul Apache yang mencakup semua modul yang tersedia.

Selanjutnya, gunakan perintah berikut untuk mencari tahu modul mana yang berjalan di server Anda.

[email protected]~:$ sudo ls /etc/apache2/mods-enabled

Apache hadir dengan perintah a2dismod yang kuat untuk menonaktifkan modul. Ini mencegah pemuatan modul dan meminta Anda dengan peringatan saat menonaktifkan modul bahwa tindakan tersebut dapat berdampak negatif pada server Anda.

[email protected]~:$ sudo a2dismod module_name

Anda juga dapat menonaktifkan modul dengan berkomentar di baris LoadModule.

Mencegah Slow Loris dan Serangan DoS

Instalasi default server Apache memaksanya untuk menunggu permintaan dari client terlalu lama, yang membuat server terkena serangan Slow Loris dan DoS. File konfigurasi apache2.conf menyediakan arahan yang dapat Anda gunakan untuk menurunkan nilai batas waktu menjadi beberapa detik untuk mencegah jenis serangan ini, yaitu:

[email protected]~:$ sudo vim /etc/apache2/apache2.conf
Timeout 60

Selain itu, server Apache baru dilengkapi dengan modul mod_reqtimeout yang berguna yang menyediakan RequestReadTimeout direktif untuk mengamankan server dari permintaan yang tidak sah. Arahan ini dilengkapi dengan beberapa konfigurasi rumit, sehingga Anda dapat membaca informasi terkait yang tersedia di halaman dokumentasi.

Nonaktifkan Permintaan HTTP yang Tidak Perlu

Permintaan HTTP/HTTPS yang tidak terbatas juga dapat menyebabkan kinerja server yang rendah atau serangan DoS. Anda dapat membatasi penerimaan permintaan HTTP per direktori dengan menggunakan LimitRequestBody hingga kurang dari 100K. Misalnya, untuk membuat direktif folder /var/www/your_website, Anda dapat menambahkan direktif LimitRequestBody di bawah AllowOverride All, yaitu:

...snip...

<Directory /var/www/your_website>

Options -Indexes

AllowOverride All

LimitRequestBody 995367

</Directory>

...snip...

Catatan: Ingatlah untuk me-restart Apache setelah perubahan diterapkan untuk memperbaruinya.

Kesimpulan

Instalasi default server Apache dapat menyediakan banyak informasi sensitif untuk membantu penyerang dalam serangan. Sementara itu, ada banyak cara lain (tidak tercantum di atas) untuk mengamankan server web Apache juga. Lanjutkan meneliti dan terus memperbarui diri Anda tentang arahan dan modul baru untuk mengamankan server Anda lebih jauh.

Related Posts