Jbchroot, Menjalankan aplikasi dengan chroot sebagai user bukan root
Menjalankan aplikasi atau service dengan chroot sebagai user bukan root di linux akan menemui kendala tidak seperti di platform *BSD, tapi kadang kita menemui kondisi dimana kita harus me-jail suatu servis/aplikasi di direktori tertentu dan dijalankan sebagai user selain root dengan alasan keamanan. Seperti saya pernah menemui kesulitan untuk menjalankan WebGoat yang sengaja di install untuk demo hacking aplikasi web. Karena WebGoat di buat sedemikian vulnerable maka akan sangat riskan menjalankan WebGoat yag bisa diakses ke publik atau peserta hacking aplikasi web.
WebGoat sendiri berjalan di atas Tomcat, maka untuk meminimalkan resiko saya putuskan untuk men-jail tomcat dan menjalankan sebagai user bukan root. Karena OS yang di gunakan kebetulan linux maka saya berusaha mencari cara untuk melakukan hal tersebut diatas, setelah beberapa lama akhirnya menemukan aplikasi kecil yang bernama jbcroot yang mempunyai kemampuan seperti yang dimaksud diatas. Sourcecode jbchroot dapat di download disini.
Untuk meng-compile sourcecode jbchroot bisa dengan menjalankan perintah sebagai berikut:
# gcc -O jbchroot.c -o jbchroot
Jika berhasil sebaiknya di copy ke direktory /usr/bin/
# cp jbchroot /usr/bin
# chmod ug+x /usr/bin/jbchroot
Untuk menggunakannya jbchroot berikut ini sintax-nya
# jbchroot [-g/G group-yg-dipakai] [-u/U user-yg-dipakai] [newroot-directory] [command]
misal:
# jbchroot -U tomcat /chroot/tomcat /apache-tomcat/bin/startup.sh
Perhatian:
- Sebelum menggunakan jbchroot/chroot harus di buat dulu environment yang dibutuhkan untuk aplikasi yang akan dijalankan.
- Untuk menjalankan service/aplikasi yg menggunakan port dibawah 1024 harus menggunakan root privilege, maka gunakan port diatas 1024 jika user selain root.
Just my 0,002 cents