Cara Mudah Mengamankan Apache

Langkah-langkah yang biasa saya tempuh untuk mengamankan apache :

1. Pastikan anda rajin menginstall update/patch yang terbaru

2. Sembunyikan Apache Version number.
Secara instalasi default versi dari apache akan di munculkan apabila ada kode 404. untuk menyembunyikan versi apache yang kita pakai dengan cara tambahkan bari berikut di file httpd.conf :

ServerSignature Off
ServerTokens Prod

3. Pastikan apache di running oleh user account dan group tersendiri
Secara default biasanya apache menggunakan user nobody. Padahal user nobody juga kadang di pake sama service lain, untuk amannya kita buat user tersendiri misal user apache, edit file httpd.conf :

User apache
Group apache

4. Pastikan tidak ada file/folder di luar web root yang bisa diakses
Kita asumsikan web root nya kita pake /web , tambahkan setting berikut di httpd.conf :

<Directory />
Order Deny,Allow
Deny from all
Options None
AllowOverride None
</Directory>
<Directory /web>
Order Allow,Deny
Allow from all
</Directory>

5. Disable fitur directory browsing, server side includes, CGI execution, follow symbolic links, multiple Options
jika ingin mendisable semuanya bisa dengan menambahkan baris berikut di httpd.conf :

Options None

Jika hanya ingin mendisable beberapa options saja tambahkan baris berikut :

Options -ExecCGI -FollowSymLinks -Indexes

Sedangkan untuk mendisable support file .htaccess
Tambahkan baris berikut di setiap folder yang di definisikan :

AllowOverride None

6. Gunakan mod security bisa digunakan untuk :

* Simple filtering
* Regular Expression based filtering
* URL Encoding Validation
* Unicode Encoding Validation
* Auditing
* Null byte attack prevention
* Upload memory limits
* Server identity masking
* Built in Chroot support
* And more

7. Disable modules yang tidak digunakan

Contoh beberapa modul yang secara default terinstall tapi biasanya tidak di pakai : mod_imap, mod_include, mod_info, mod_userdir, mod_status, mod_cgi, mod_autoindex.

8. Pastikan Hanya root yang punya full akses ke apache config dan binaries

Asumsi apache di install di /usr/local/apache set permission ke :

chown -R root:root /usr/local/apache
chmod -R o-rwx /usr/local/apache

9. Set lama timeout lebih cepat

Secara default Timeout directive adalah 300 seconds. kita set ke nilai yang lebih rendah untuk menghindari DOS. set di httpd.conf :

Timeout 45

10. Besarnya request juga di Limit

Secara default di set unlimited. ini untuk mencegah adanya upload file besar ke webserver. tentukan maksimal file yang boleh di upload, misal max 1MB, Setting di httpd.conf :

LimitRequestBody 1048576

11. Jalankan Apache di Chroot environment

Fasilitas ini akan menempatkan proses Apache dalam lingkungan yang terbatas dalam chroot, semua library yang dibutuhkan oleh apache di pindahkan ke lingkunagn chroot.

saya akan bahas gimana caranya agar apache jalan di chroot lain waktu, belum sempet 🙂