Apache adalah salah satu web server populer dan paling banyak digunakan didunia, dan mencakup hampir 40% server didunia. Jika anda adalah seorang webmaster atau administrator yang menggunakan apache server, penting untuk anda tahu bagaimana mengamankan Apache dan mencegah dari tindakan peretasan. Pada artikel ini saya akan mendeskripsikan beberapa tips dan triks sederhana yang dapat anda gunakan untuk mengamankan apache server anda.
Note: saya menggunakan ubuntu 14.04 LTS
Install dan update apache
Pertama, anda perlu untuk mengupdate dan meninstall apache ke dalam komputer anda. Untuk melakukan hal ini dapat mengikuti perintah berikut:
$ sudo apt-get update
$ sudo apt-get install apache2
$ sudo apt-get install apache2
Jika berhasil terinstall maka saat anda mengakses localhost ataupun alamat IP melalui browser akan tampak halaman Apache seperti yang tampak dibawah ini.
Hide apache version
Secara default, apache menampilkan versi dari apache server yang terinstall pada komputer dengan nama dari sistem operasi server yang anda gunakan.
Pada gambar diatas anda dapat melihat versi apache dan sistem operasi yang terinstall pada komputer server anda. Ini bisa menjadi masalah keamanan utama untuk web server anda. Untuk menyembunyikan informasi ini, anda perlu mengedit file konfigurasi utama Apache (/etc/apache2/conf-enabled/security.conf).
$ sudo nano /etc/apache2/conf-enabled/security.conf
ServerSignature Off
ServerTokens Prod
$ sudo service apache2 restart
Berikut hasil yang didapatkan, tampak berbeda dari gambar sebelumnya.ServerSignature Off
ServerTokens Prod
$ sudo service apache2 restart
Menonaktifkan akses direktori dan symbolic links
Daftar direktori telah aktif dalam Apache server secara default. Daftar direktori menampilkan seluruh direktori dengan filenya yang ada di apache server. Jika ini diaktifkan, seorang attacker dapat dengan mudah melihat macam-macam file, menganalisanya dan mencuri informasi sensitif dari aplikasi yang digunakan. Anda dapat melihat contoh daftar direktori yang tertampil pada gambar dibawah.
Anda dapat menonaktifkannya dengan mengedit file konfigurasi apache.
$ sudo nano /etc/apache2/apache2.conf Options -FollowSymLinks AllowOverride None Require all granted
Note: kode diatas mengasumsikan kalau halaman web anda berasal dari folder "/var/www/html". jika anda telah mengubah lokasi sesuai yang anda tentukan, ubah path direktori dalam kode diatas.
Baris Options -FollowSymLinks juga menonaktifkan symbolic links. Jika anda ingin untuk tetap mengaktifkan symbolic links, hapus tanda "-" didepan FollowSymLinks, sehingga menjadi Options FollowSymLinks.
Simpan dan restart apache server. Setelah itu coba kembali mengakses web server melalui browser, anda akan mendapatkan error seperti gambar dibawah.
Menonaktifkan modul yang tidak diperlukan
Apache terinstall dengan beberapa modul aktif yang tidak diperlukan untuk penggunaan normal. Sangat direkomendasikan untuk menonaktifkan modul-modul yang tidak perlukan itu. Anda dapat melihat daftar modul aktif yang digunakan pada server anda dengan perintah berikut:
$ sudo ls /etc/apache2/mods-enabled/
Untuk dapat menonaktifkan modul-modul tersebut menggunakan perintah berikut, contohnya:
$ sudo a2dismod autoindex status$ sudo /etc/init.d/apach2 restart
Memanfaatkan ModSecurity
Mod security adalah modul apache gratis yang digunakan untuk melindungi web server anda dari berbagai macam serangan seperti SQL injection, cross site scripting, session hijacking, brute force dan jenis exploit lainnya. Dengan ini anda juga dapat memonitor trafik dengan basis real-time.
Anda dapat menginstall mod security dengan perintah berikut:
$ sudo apt-get install libapache2-modsecurity
Untuk mengecek apakah mod_security modul sudah berjalan, gunakan perintah berikut:
$ sudo apachectl -M | grep --color security
Gambar yang tertampil dibawah mengindikasikan kalau modul sudah dimuat dalam apache.
Untuk mengaktifkan mod_security rules, anda perlu untuk mengubah nama dan mengedit file mod security yang direkomendasikan dan menyetel opsi SecRuleEngine menjadi On. Lakukan dengan perintah berikut.
$ sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
$ sudo nano /etc/modsecurity/modsecurity.conf
SecRuleEngine On
$ sudo nano /etc/modsecurity/modsecurity.conf
SecRuleEngine On
Simpan dan restart untuk melihat hasilnya.
Ada banyak security rules yang dimiliki ModSecurity (dikenal dengan Core Rule Set) yang berada pada direktori "/usr/share/modesecurity-crs". Sekarang anda perlu untuk mengaktifkan rule-rule ini untuk dapat bekerja dengan apache. Lakukan dengan perintah berikut.
$ sudo nano /etc/apache2/mods-enabled/security2.conf
IncludeOptional /etc/modsecurity/*.conf
IncludeOptional "/usr/share/modsecurity-crs/*.conf"
IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf
IncludeOptional /etc/modsecurity/*.conf
IncludeOptional "/usr/share/modsecurity-crs/*.conf"
IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf
Simpan dan restart apache.
Menonaktifkan server side includes dan CGI execution
Disarankan untuk menonaktifkan server side includes dan CGI execution jika tidak diperlukan. Untuk melakukan hal ini anda perlu mengedit file konfigfurasi utama apache
$ sudo nano /etc/apache2/apache2.conf Options -FollowSymLinks -Includes -ExecCGI AllowOverride None Require all granted
Anda juga dapat melakukan hal ini untuk direktori tertentu, misalnya untuk menonaktifkan server side includes dan cgi file execution untuk direktori "/var/www/html/webdir1".
Options -Includes -ExecCGI
Simpan dan restart apache.Membatasi besaran request
Apache tidak memiliki batasan size dari HTTP request secara defaultnya. Ini akan membebaskan seorang attacker mengirim jumlah data yang besar. Apache memiliki beberapa intruksi yang memperbolehkan anda untuk mengatur request size. Ini akan dapan melindungi web server anda dari serangan DDoS.
Anda dapat memasang nilai dari 0 (unlimited) hingga 2147483647 (2GB) dalam konfigurasi utama apache. Misalnya membatasi request size untuk direktori "/var/www/html/webdir1" menjadi 200K.
$ sudo nano /etc/apache2/apache2.conf
LimitRequestBody 204800
LimitRequestBody 204800
Simpan dan restart apache.
Menolak akses diluar document root
Direkomendasikan untuk apache dapat diakses hanya dari direktori document root. Anda bisa mengamankan direktori root (/) dengan pengaturan berikut.
$ sudo nano /etc/apache2/apache2.conf Options None Order deny,allow Deny from all
Keterangan:- Options None: Ini akan menonaktifkan semua opsi
- Order deny, allow: Urutan di mana membolehkan dan menolak perintah diterapkan.
- Deny from all: ini akan menolak sebuah request dari semua ke direktori root
Simpan dan restart apache.
Beberapa langkah diatas adalah merupakan konfigurasi yang sangat sederhana dalam penggunakan Apache Web Server. Masih banyak macam konfigurasi yang bisa digunakan tentunya sesuai dengan kebutuhan yang diinginkan. Selamat mencoba.
0 comments:
Post a Comment