Konfigurasi Keamanan Dasar Web Server Apache Tomcat
Web server berperan untuk menyediakan layanan yang dapat diakses dari internet. Web server yang ada di pasaran cukup beragam. Contoh yang cukup populer adalah Apache (HTTP), Nginx, Microsoft IIS, dan Apache Tomcat. Dalam pembahasan ini akan fokus pada web server Tomcat, terutama pada konfigurasi keamanannya. Pembahasan ini diperuntukkan untuk tim IT yang berperan dalam mengelola web server Tomcat, maupun pembaca luas yang ingin mengetahui bagaimana membuat web server Tomcat lebih aman. Alasan diangkatnya Tomcat untuk dibahas adalah dari web servernya sendiri sudah ada sebelum tahun 2000an, sudah lebih dari 20 tahun. Selain itu dari sisi performa dan karakternya juga menarik. Performa dalam menangani request dalam jumlah tinggi dapat dikatakan responsif. Web servernya sendiri adalah satu-satunya yang dapat menjalankan aplikasi web berbasis java. Walau peminatnya berkurang semenjak munculnya web server lain, namun terbukti eksistensi produk ini masih baik di pasaran karena dari level perusahaan juga masih puas dengan performa yang diberikan.
Setelah kita mengetahui sedikit tentang Apache Tomcat, kita akan langsung membahas sesuai topik di atas yakni Konfigurasi Keamanan. Dalam pembahasan ini akan ditampilkan syntax dari terminal yang dapat membantu memberikan informasi atau melakukan pengaturan. Syntax yang akan ditampilkan sementara hanya bekerja di sistem operasi Mac OS / Linux. Konfigurasi-konfigurasi Apache Tomcat meliputi:
- Membatasi Akses pada file $CATALINA_HOME
File $CATALINA_HOME menyimpan variabel environment yang berisi URL direktori utama (root) Tomcat. Direktori ini menyimpan data binary dan libraries yang digunakan oleh Tomcat. Perubahan dengan sengaja atau tidak sengaja dapat mempengaruhi cara kerja server dan dapat menyebabkan kemungkinan terburuk crash. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME ke tomcat_admin.tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin.tomcat $CATALINA_HOME
# chmod g-w,o-rwx $CATALINA_HOME |
- Membatasi Akses pada file $CATALINA_BASE
File $CATALINA_BASE menyimpan variabel environment yang berisi kumpulan URL direktori utama (root) Tomcat. File ini digunakan ketika terdapat lebih dari 1 unit Tomcat bekerja secara bersamaan. Selain itu akses ke file ini dapat mengarahkan ke file $CATALINA_HOME. Potensi yang sama seperti poin no 1 juga dapat terjadi jika file ini dapat dimodifikasi dengan atau tanpa sengaja. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin.
Konfigurasi:
- Atur kepemilikan $CATALINA_BASE ke tomcat_admin.tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin.tomcat $CATALINA_BASE
# chmod g-w,o-rwx $CATALINA_BASE |
- Membatasi Akses pada direktori pengaturan Tomcat
Direktori $CATALINA_HOME/conf/ berisi file-file konfigurasi terkait web server Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/conf ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/conf
# chmod g-w,o-rwx $CATALINA_HOME/conf |
- Membatasi Akses pada direktori log Tomcat
Direktori $CATALINA_HOME/logs/ berisi file-file konfigurasi terkait web server Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi untuk pengguna umum.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/logs ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/logs
# chmod o-rwx $CATALINA_HOME/logs |
- Membatasi Akses pada direktori semetara Tomcat
Direktori $CATALINA_HOME/temp/ berisi file-file konfigurasi terkait web server Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi untuk pengguna umum.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/temp ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/temp
# chmod o-rwx $CATALINA_HOME/temp |
- Membatasi Akses pada direktori biner Tomcat
Direktori $CATALINA_HOME/bin/ berisi file-file konfigurasi terkait web server Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/bin/ ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/bin
# chmod g-w,o-rwx $CATALINA_HOME/bin |
- Membatasi Akses pada direktori aplikasi web Tomcat
Direktori $CATALINA_HOME/webapps/ berisi file-file konfigurasi terkait web server Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/webapps ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/webapps
# chmod g-w,o-rwx $CATALINA_HOME/webapps |
- Membatasi Akses pada file catalina.policy
File catalina.policy digunakan untuk mengatur kebijakan keamanan untuk Tomcat. Disarankan memberikan akses baca, tulis, dan operasi sesuai dengan batasan masing-masing pengguna agar terlindung dari perubahan yang tidak sah.
Konfigurasi:
- Tetapkan pemilik dan pemilik grup dari konten masing-masing di direktori $CATALINA_HOME/ ke tomcat_admin dan tomcat.
# chmod 770 $CATALINA_HOME/conf/catalina.policy
# chown tomcat_admin:tomcat $CATALINA_HOME/conf/catalina.policy |
- Membatasi Akses pada file catalina.properties
File catalina.properties berisi pengaturan properti Java untuk Tomcat termasuk informasi pemuat kelas, daftar paket keamanan, dan properti kinerja. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin agar terlindung dari perubahan yang tidak sah.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/conf/catalina.properties ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/conf/catalina.properties
# chmod g-w,o-rwx $CATALINA_HOME/conf/catalina.properties |
- Membatasi Akses pada file context.xml
File context.xml diambil oleh semua aplikasi web dan menetapkan opsi konfigurasi tertentu. Disarankan memberikan akses baca, tulis, dan operasi sesuai dengan batasan masing-masing pengguna agar terlindung dari perubahan yang tidak sah.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/conf/context.xml ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/conf/context.xml
# chmod g-w,o-rwx $CATALINA_HOME/conf/context.xml |
- Membatasi Akses pada file logging.properties
File logging.properties berisi pengaturan penulisan log di web server Tomcat. Disarankan memberikan akses baca, tulis, dan operasi sesuai dengan batasan masing-masing pengguna agar terlindung dari perubahan yang tidak sah.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/conf/logging.properties ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/conf/logging.properties
# chmod g-w,o-rwx $CATALINA_HOME/conf/logging.properties |
- Membatasi Akses pada file server.xml
File server.xml berisi definisi dan konfigurasi servlet Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin agar terlindung dari perubahan yang tidak sah.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/conf/server.xml ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/conf/server.xml
# chmod g-w,o-rwx $CATALINA_HOME/conf/server.xml |
- Membatasi Akses pada file tomcat-users.xml
File tomcat-users.xml berisi definisi informasi autentikasi untuk aplikasi yang berjalan di Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin agar terlindung dari perubahan yang tidak sah.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/conf/tomcat-users.xml ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/conf/tomcat-users.xml
# chmod g-w,o-rwx $CATALINA_HOME/conf/tomcat-users.xml |
- Membatasi Akses pada file web.xml
File web.xml berisi pengaturan konfigurasi aplikasi yang berjalan di Tomcat. Disarankan untuk tidak memberikan akses baca, tulis, dan operasi selain level admin agar terlindung dari perubahan yang tidak sah.
Konfigurasi:
- Atur kepemilikan $CATALINA_HOME/conf/web.xml ke tomcat_admin:tomcat.
- Hapus izin baca, tulis, dan operasi pada direktori untuk semua pengguna.
- Hapus izin menulis pada direktori untuk grup pengguna.
# chown tomcat_admin:tomcat $CATALINA_HOME/conf/web.xml
# chmod g-w,o-rwx $CATALINA_HOME/conf/web.xml |
Dengan kemajuan teknologi dan model deployment (on-premises, cloud, atau hybrid) yang ada, tentu membuka peluang lebih besar dalam penggunaan web server Tomcat. Penulis meyakini topik yang dibahas masih cukup mudah dan umum dalam konfigurasi web server Tomcat, namun terkadang pengguna justru melewatkan pengaturan-pengaturan dasar ini. Besar harapan penulis agar pembaca mengerti isi topik bahasan dan mampu menerapkan pada web server Tomcat yang akan atau sedang dikelola. Terima kasih atas waktu yang diluangkan untuk membaca.
MEMBACA MEMBUKA JENDELA DUNIA !!
Referensi:
- https://security.uri.edu/files/CIS_Apache_Tomcat_Benchmark_v1.0.01.pdf
- http://tomcat.apache.org/tomcat-9.0-doc/setup.html
- http://tomcat.apache.org/tomcat-9.0-doc/security-manager-howto.html
- https://wiki.owasp.org/index.php/Securing_tomcat
- https://www.internetworldstats.com/stats.htm
- https://tomcat.apache.org/heritage.html
- https://hub.docker.com/_/tomcat
Ari Wijaya Limanto
Dikirimkan oleh : Dr. Eng. Antoni Wibowo