Security dan Hardening merupakan hal penting yang kadang diabaikan, orang akan awareness ketika server tersebut telah terhack.
Akan tetapi jika suatu perusahaan sudah awareness terhadap security, maka design di awal security sudah di libatkan karena bagian terpenting perusahaan untuk menjaga aset perusahaan.
Berikut beberapa settingan yang perlu di konfigurasi pada tomcat :
note :Hentikan Tomcat jika berjalan
1. Buat user tomcat
karena jika menggunakan user root sangat beresiko, user yang tidak tidak punya privilaged apa-apa sangat aman, jika tomcat terhack yang kena cuma bagian tomcat saja tidak merambat ke yang lain. Perintahnya sebagai berikut :
- Buat User tomcat dengan perintah :
useradd tomcat
- Ubah kepemilikan folder tomcat dari root menjadi tomcat :
chown -R tomcat:tomcat folder_tomcat
note : Ketika akan proses running pastikan yang menjalankan tomcat adalah user tomcat
2. Menghapus aplikasi default dari tomcat
Secara default tomcat untuk mendukung production tomcat mempunya menyediakan aplikasi bawaaam, cuma karena aplikasi tersebut default untuk mengaja resiko celah keamanan maka aplikasi yang ada di folderwebapps perlu di hapus, untuk listnya sebagai berikut :
- ROOT – Default welcome page
- Docs – Tomcat documentation
- Examples – JSP and servlets for demonstration
- Manager, host-manager – Tomcat administration
Tetapi jika masih ingin menggunakan manager, folder tersebut tidak perlu di hapus karena beberapa orang masih menggunakan manager untuk mengecek service aplikasi yang running ataupun melakukan start, stop, undeploy ataupun deploy.
3. Remove Server Banner
Remove server banner di perlukan agar server kita tidak terlihat untuk versi atau product web server aplikasi yang di pakai, kita bisa aliaskan atau di kosongkan. untuk server banner terlihat saat mendapatkan respon header.
Langkah-langkah sebagai berikut :
- Masuk ke folder tomcat kemudian masuk k folder conf
- Ubah server.xml dengan menggunakan vi -> vi server.xml
- Tambahkan perintah berikut ke Connector port
yang awalnya :
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
di tambah kan server = “” Menjadi :
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
Server =" "
redirectPort="8443" />
Kita bisa aliaskan server = “” sesuai keingin kita.
4. Ubah Port dan Perintah SHUTDOWN pada tomcat
Secara default, tomcat dikonfigurasikan untuk dimatikan pada port 8005. Memiliki konfigurasi default mengarah ke risiko keamanan tinggi. Disarankan untuk mengubah port tomcat shutdown dan perintah default menjadi sesuatu yang tidak dapat diprediksi.
Pastikan posisi terminal kita masih di dalam folder conf tomcat, kemudian kita akan modifikasi file server.xml
Yang awal settingan :
<Server port="8005" shutdown="SHUTDOWN">
Menjadi port8005 – Ubah ke beberapa port lain yang tidak digunakan & SHUTDOWN – Ubah ke sesuatu yang rumit
<Server port="8867" shutdown="NOTGONNAGUESS">
5. Enable HTTP Strict Transport Security (HSTS)
Settingnya di file web.xml ada di : $ CATALINA_HOME\conf \web.xml
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
<init-param>
<param-name>hstsMaxAgeSeconds</param-name>
<param-value>31536000</param-value>
</init-param>
<init-param>
<param-name>hstsIncludeSubDomains</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- The mapping for the HTTP header security Filter -->
<filter-mapping>
<filter-name>httpHeaderSecurity</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>
Jika sudah di tambahkan di web.xml, restart tomcatnya atau restart setelah semua setting selesai
6. Mengaktifkan httpHeaderSecurity
Setting httpHeaderSecurity di tomcat_home/conf/web.xml
<filter> <filter-name>httpHeaderSecurity</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>antiClickJackingOption</param-name> <param-value>SAMEORIGIN</param-value> </init-param> <!-- this option only works in tomcat 7.0.70 and above--> <init-param> <param-name>xssProtectionEnabled</param-name> <param-value>true</param-value> </init-param> <!-- true represents 1; mode=block --> </filter> <filter-mapping> <filter-name>httpHeaderSecurity</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Catatan:
- Beberapa opsi antiClickJackingOption :
- X-Frame-Options respons header meningkatkan perlindungan aplikasi web againg Clickjacking.it digunakan untuk menunjukkan apakah atau tidak browser harus diizinkan untuk membuat halaman dalam bingkai, iframe atau objek.
- DENY Halaman tidak dapat ditampilkan dalam bingkai, terlepas dari situs yang berusaha melakukannya.
- SAMEORIGIN Halaman hanya dapat ditampilkan dalam bingkai dengan asal yang sama dengan halaman itu sendiri.
- ALLOW-FROM uri Halaman hanya dapat ditampilkan dalam bingkai pada asal yang ditentukan.
- X-XSS-Protection memungkinkan filter cross-site scripting (XSS) di browser.
1; mode = blok mewakili Filter diaktifkan. Daripada membersihkan halaman, ketika serangan XSS terdeteksi, browser akan mencegah rendering halaman
6. Start Tomcat dengan Security Manager
Manajer Security Keamanan melindungi Anda dari applet yang tidak terpercaya yang berjalan di browser Anda.Menjalankan Tomcat dengan manajer keamanan lebih baik dari pada manager security tidak dipasang di Tomcat. Tomcat memiliki dokumentasi yang sangat baik tentang Tomcat Security Manager. Hal yang baik tentang ini adalah Anda tidak perlu mengubah file konfigurasi apa pun.Perintah standar tanpa manager security dengan./startup.sh
, sedangkan perintah untuk manager security./startup.sh -security
Silahkan gunakan perintah berikut :
./startup.sh -security
Examples
[root@codeitworld bin]# ./startup.sh -security
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using Security Manager
Tomcat started.
[root@codeitworld bin]#
Sekian tutorial kali ini, semoga bermanfaat 🙂