Sal
Administrator
Seorang penulis yang suka belajar hal baru dan dunia fotografi
3 min read

Tutorial Apache Hardening

Posted in Linux

Apache merupakan salah satu webserver yang paling banyak digunakan. Akibatnya banyak pihak yang mencari kelemahan dari apache, terutama melakukan identifikasi bug-bug yang dimiliki oleh Apache untuk selanjutnya dilakukan penetrasi ke dalam server. Untuk memperkuat keamanan dari Apache, ada beberapa langkah yang dapat di lakukan. Sebelumnya perlu diingat bahwa hardening yang dilakukan harus disesuaikan dengan kebutuhan layanan dari website yang kita kelola, karena beberapa dari hardening akan membatasi fitur dari web server kita.

Tutorial Apache Hardening

Berikut saya memberikan beberapa tips untuk melakukan hardening terhadap Apache webserver: Menyembunyikan versi dan OS, edit httpd.conf ServerSignature Off -> untuk menghilangkan signature dari server ServerTokens Prod -> untuk menghilangkan Server HTTP Header, Server: Apache Pastikan apache berjalan dibawah akun user dan grup User apache Group apache Pastikan file di luar web root tidak dapat dijalankan, misal dibawah /web <Directory /> Order Deny, Allow Deny from all Options None AllowOverride None </Directory> <Directory /web> Order Allow, Deny Allow from all </Directory> Option none(mematikan semua option) AllowOverride None(mematikan Override dari server): jadi harus disetting secara eksplisit di masing-masing direktori yang membutuhkan option atau override Mematikan directory browsing Options -Indexes, bisa juga diletakkan di dalam tag Directory Menambah security apache web server, tutorial apache hardening Mematikan server side includes Options -Includes Mematikan CGI execution Options -ExcecCGI Tidak memperbolehkan apache untuk mengikuti symbolic links Options –FollowSymLinks Mematikan multiple Options (langsung semua service dimatikan, dan harus di declare manual untuk mengaktifkan) Options None Mematikan support untuk .htaccess file AllowOverride None Jika membutuhkan overrides, memastikan suatu file tidak dapat di download atau diganti nama selain .htaccess, kita dapat mengubahnya ke .httpdoverride, dan blok semua file yang berawalan .ht sehingga file tersebut tidak dapat didownload AccessFileName .httpdoverride <Files ~ “^\.ht”> Order allow, deny Deny from all Satisfy All </Files> Jalankan mod_security Disable module yang ga perlu Lihat httpd.conf yang berisi LoadModule, yang ga perlu cukup tambahkan "#" di depan (tanpa tanda petik) Untuk mencari modul yang berjalan: grep LoadModule httpd.conf atau grep -n LoadModule httpd.conf Module yang seringkali enable tapi jarang dibutuhkan: mod_imap, mod_include, mod_info, mod_userdir,mod_status, mod_cgi, mod_autoindex. Pastikan hanya root yang bisa mengakses apache’s config dan binaries Misalkan apache terletak pada /usr/local/apache Chown –R root:root /usr/local/apache Chmod –R o-rwx /usr/local/apache Kecilkan nilai Timeout, default nya 300 detik Timeout 45 Batasi request yang besar, Misal tidak boleh upload file yang lebih dari 1MB LimitRequestBody 1048576 Lihat juga: LimitRequestFields, LimitRequestFieldSize, Limit RequestLine Batasi ukuran body XML Jika menjalankan mod_dav,maka kemjungkinan perlu dibatasi LimitXMLRequestBody 10485760 (hanya terdapat di apache 2) Jika value = 0, maka berapapun size file, dapat di upload Batasi concurrency MaximumClients MaxSpareServers, MaxRequestPerChild, di apache 2: ThreadsPerChild, ServerLimit, MaxSpareThreads Restricting Access by IP Order Deny, Allow Deny from all Allow from 176.16.0.0/16 Atau Allow from 127.0.0.1 Adjusting KeepAlive settings, defaultnya 100 MaxKeepAliveRequests 15 Jalankan Apache di Chroot environment SecChrootDir /chroot/apache Selain beberapa cara di atas, tentunya masih banyak cara yang lebih ampuh, misalnya menambahkan su-PHP, dan sebagainya. Tetapi untuk perlindungan minimal, cara di atas sudah cukup ampuh. Jika ada tambahan, atau saran hardening yang lebih ampuh, silakan beri komentar di bawah