Tips Hardening HTTP header di Apache

Tips bagi pengguna Linux khususnya yang menggunakan Apache Webserver untuk memperkuat sistem keamanan dari web server anda.

Langkah yang disebutkan di bawah ini bukan berarti membuat aman 100% namun paling tidak kita bisa mengeliminasi beberapa kemungkinan ketidakamanannya website pada server kita. Tutorial ini adalah dasar yang biasanya dilakukan kebanyakan system administrator yang berfokus kepada totalitas keamanan web server. Semoga bisa membantu dan jadi acuan kalian.

Menghilangkan Server Version Banner

Sebelum melancarkan serangan, si pelaku harus tahu versi dari apache dulu. Dengan membaca http headers, dia bisa tahu apache versi berapa yang kita gunakan dan bisa memungkinkan untuk menggunakan bug atau informasi exploit untuk menyerang.

Kita menuju ke config apache dan tambahkan beberapa parameter. Karena di setiap control panel berbeda, saya berikan  instruksi umumnya saja. Pada umumnya konfigurasi terdapat di sini :

$web_server/conf/httpd.conf

Tambahkan baris ini pada akhir config. Sebelum menambahkan, budayakan untuk backup dulu file configuration httpd.conf.

ServerTokens Prod
ServerSignature Off

Setelah ditambahkan, jangan lupa restart proses apache.

Lalu kamu bisa cek httpd headers melalui salah satu website ini :

http://tools.seobook.com/server-header-checker/
https://tools.geekflare.com/report/http-header-test/

Saya berikan contohnya di bawah ini adalah sebelum. Saya tandai dengan panah merah.

Gambar di bawah ini sesudahnya.

Disable Directory Browsing

Sala satu komponen lainnya adalah meniadakan directory listing. Hal ini sangat berguna dan di rekomendasikan.

Kita edit httpd.conf yang tadinya memiliki baris seperti ini :

<Directory /usr/local/to/apache/htdocs>
Options Indexes
</Directory>

Kita ubah menjadi None.

<Directory /usr/local/to/apache/htdocs>
Options None
</Directory>

Intinya adalah search kata Indexes diganti menjadi None. Setelah diganti jangan lupa untuk restart apache. Hasilnya seperti ini.

Menghilangkan Etag

Selanjutnya kita akan menghilangkan format Etag. Sama seperti sebelumnya, kita masuk ke httpd.conf lalu berikan syntax berikut pada akhir config. Setelah itu jangan lupa restart apache.

FileETag None

Contoh web server secara default (belum dihilangkan Etag) :

Di bawah ini setelah dihilangkan Etag. Kamu bakal gak melihat komponen Etag lagi.

Mencegah Clickjacking/Framing Attack

Kategori ini cukup terkenal dimana-mana, khususnya server yang melayani shared hosting. Simpelnya, Clickjacking / Framing attack adalah serangan menaruh atribut <iframe> pada salah satu website kita. Dominan serangan ini digunakan untuk scam atau spam.

Untuk mencegahnya, kita edit httpd.conf lalu menambahkan baris ini pada akhir file config tersebut. Setelah ditambahkan, jangan lupa restart apache.

Header always append X-Frame-Options SAMEORIGIN

Kamu bisa tes clickjacking dan masukkan website kamu.

Jika dimasukkan url dan klik Test It website kamu muncul pada kotak yang disediakan, tandanya website kamu rawan clickjacking/framing attack. Namun ketika sudah dimasukkan dan di klik Test It tidak muncul, berarti aman dari clickjacking/framing.

Http header akan menunjukkan gambar seperti ini ketika sudah di tambahkan syntax di atas.

Sayangnya jika ada komponen website yang menggunakan fitur <iframe> pada website kamu, jadi tidak bisa digunakan.

Mencegah Cross Site Scripting (XSS)

XSS sudah sangat populer dalam beberapa tahun terakhir. Karena secara default sudah banyak yang memanfaatkan fitur ini. Sudah banyak yang bisa bypass pada kebanyakan browser.

Ubah config httpd.conf dan tambahkan baris pada akhir config tersebut. Setelah ditambahkan, jangan lupa restart apache.

Header set X-XSS-Protection "1; mode=block"

Berikut tanda pada http header ketika sudah terproteksi. Kamu bisa cek secara online di sini : https://tools.geekflare.com/tools/xss-protection-test

Memperpendek Timeout Apache

Jika belum di setting apapun, umumnya timeout pada apache ada 300 detik atau 5 menit. Jika website kamu mempunyai traffik yang cukup tinggi, hal ini bisa menjadi masalah. Selain resource server terkuras, bisa berpotensi disalahgunakan. Dengan mengirimkan request berkali kali hingga mencapai timeout, bisa membahayakan kesehatan website kamu.

Oleh karena itu disarankan untuk memperpendek timeout pada apache. Karena kebutuhan masing-masing website berbeda, saya rekomendasikan 90 detik. Tambahkan baris di bawah ini pada httpd.conf kamu dan jangan lupa restart apache.

Timeout 90

Sekian untuk tips hardening apache untuk sesi kali ini. Mau makan siang dulu laper. Nanti kita lanjutkan pada topik berikutnya.

Leave a Reply

Your email address will not be published. Required fields are marked *