1. Menyebunyikan versi apache dan jenis OS.
Saat kita meng-install webserver apache, browser akan memunculkan versi apache dan jenis OS yang kita gunakan saat page yang kita browse tidak ditemukan atau error, seperti gambar dibawah ini:
Dari gambar diatas, kita dapat melihat informasi mengenai versi apache yang digunakan dan jenis OS nya. Dengan munculnya informasi tersebut, maka ini merupakan sebuah celah keamanan yang dapat digunakan oleh para tangan-tangan jahil :D. Untuk itu kita perlu menyembunyikan informasi tersebut, agar terhindar dari eksploitasi. Berikut caranya:
# nano /etc/httpd/conf/httpd.conf (RHEL/CentOS/Fedora) # nano /etc/apache/apache2.conf (Debian/Ubuntu)
ServerSignature Off ServerTokens Prod
# service httpd restart (RHEL/CentOS/Fedora) # service apache2 restart (Debian/Ubuntu)Setelah SeverSignature & ServerTokens kita setting seperti diatas, maka saat page tidak ditemukan atau page error tampilan dibrowser akan seperti gambar dibawah ini:
2. Disable Directory Listing
Secara default pada web server apache, apabila web directory kita tidak mempunyai file index, maka list file akan ditampilkan dibrowser seperti gambar berikut:
Kita dapat menghilangkan fungsi directory listing pada apache dengan menambahkan command dibawah ini pada httpd.conf / apache2.conf
Setelah itu restart apache servernya, maka sekarang saat kita browser web directory yang tidak mempunyai file index, maka akan ditampilkan seperti berikut ini:Options -Indexes
3. Selalu Update Apache Secara Berkala.
Pastikan apache web server anda selalu update, karena diversi apache terbaru akan selalu ada patch untuk celah-celah keamanan pada versi sebelumnya.
# yum update httpd (RHEL/CentOS/Fedora) # apt-get install apache2 (Debian/Ubuntu)4. Disable Modul-Modul yang tidak digunakan.
Untuk melihat semua modul-modul yang aktif di server apache, bisa kita liat dengan cara berikut ini:
# grep LoadModule /etc/httpd/conf/httpd.conf # have to place corresponding `LoadModule' lines at this location so the # LoadModule foo_module modules/mod_foo.so LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so LoadModule authn_alias_module modules/mod_authn_alias.so LoadModule authn_anon_module modules/mod_authn_anon.so LoadModule authn_dbm_module modules/mod_authn_dbm.so LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so LoadModule authz_owner_module modules/mod_authz_owner.so LoadModule authz_groupfile_module modules/mod_authz_groupfile.so LoadModule authz_dbm_module modules/mod_authz_dbm.so LoadModule authz_default_module modules/mod_authz_default.so LoadModule ldap_module modules/mod_ldap.so LoadModule authnz_ldap_module modules/mod_authnz_ldap.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule ext_filter_module modules/mod_ext_filter.so ....Dari list modul diatas dapat kita lihat modul yang sedang aktif secara default tetapi tidak digunakan/dibutuhkan, seperti: mod_imap,mod_include, mod_info, mod_userdir, mod_autoindex. Untuk disable modul tersebut, kita tinggal tambahkan tanda pagar “#” (tanpa tanda kutip) didepan LoadModule pada file /etc/httpd/conf/httpd.conf, kemudia restart apache server anda.
5. Gunakan Modul mod_security dan mod_evasive untuk keamanan Apache Server.
Mod_security
Mod_security bekerja sama seperti firewall untuk aplikasi web dan memonitoring webserver secara realtime. Ini dapat membantu kita untuk mengamankan aplikasi web dari jenis serangan brute force. Kita dapat meng-install mod_security di webserver kita seperti langkah dibawah ini:
Install mod_security on Ubuntu/Debian
$ sudo apt-get install libapache2-modsecurity $ sudo a2enmod mod-security $ sudo /etc/init.d/apache2 force-reload
Install mod_security on RHEL/CentOS/Fedora/
# yum install mod_security # /etc/init.d/httpd restartMod_evasive
mod_evasive sangat efficient kita gunakan untuk menanggulangi DDOS Attack. Fitur mod_evasive dapat menangani serangan seperti HTTP Brute Force, DOS, dan DDOS. Berikut cara instalasi mod_evasive:
## For RHEL/CentOS 6.2/6.1/6/5.8 ## # cd /usr/src # wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz # tar xzf mod_evasive_1.10.1.tar.gz # cd mod_evasive # apxs -cia mod_evasive20.c ## For Fedora 17,16,15,14,13,12 ## # cd /usr/src # wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz # tar xzf mod_evasive_1.10.1.tar.gz # cd mod_evasive # apxs -cia mod_evasive20.cUntuk konfigurasinya sebagai berikut:
Pada file httpd.conf cari modul evasive kemudian enable dengan cara menghilangkan tanda pagar # didepan modul tersebut. Jika tidak ada, silahkan tambahkan kedalam httpd.conf nya baris berikut ini:
LoadModule evasive20_module /usr/lib/httpd/modules/mod_evasive20.soSetelah itu, kita tambahkan parameter untuk modul mod_evasive pada baris terakhir konfigurasi apache/httpd.conf nya. Pada DOSEmailNotify silahkana isi dengan email anda, untuk mendapatkan notifikasi saat ada serangan Dos. Seperti berikut ini:
DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 60 DOSEmailNotify someone@somewhere.com
Setelah itu restart apache webservernya.
#service httpd restart