Chroot (jail) merupakan metode root direktori (/) virtual yang akan menjadikan home direktori dari suatu user seperti root (/) di sistemnya sendiri sehingga mencegah user tersebut dapat naik ke level direktori yang lebih tinggi dan mengambil informasi dari sistem tersebut, disini distro yang digunakan Slackware 12 dan menggunakan OpenSSH, langkah pertama untuk membuatnya adalah mengambil paket OpenSSH, dan sebelumnya pastikan paket OpenSSH yang terinstall sebelumnya diremove terlebih dahulu sebelum memulai proses instalasi
wget ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-4.6p1.tar.gz
dan agar OpenSSH dapat menjalankan fungsi jail (memenjarakan) maka kita harus mempatch-nya terlebih dahulu, dan patch-nya dapat diambil disini
http://paradigma.pt/~gngs/sshjail/downloads/openssh-4.6p1-sshjail.patch
selanjutnya ekstrak OpenSSH dan patch dengan patch yang baru kita download tadi
tar xvzf openssh-4.6p1.tar.gz cd openssh-4.6p1 patch -p0 < ../openssh-4.6p1-sshjail.patch
kemudian jalankan perintah configure, compile (make), dan install (make install) (opsi-opsinya dapat anda sesuaikan sendiri :p )
./configure --with-md5-passwords --prefix=/opt/ sysconfdir=/etc/ssh/ make make install
buat file konfigurasi /etc/sshjail.conf dengan opsi sebagai berikut
chroot=/home/rifqi users=rifqi
kemudian buat user yang nantinya akan kita "penjarakan" nantinya
adduser rifqqi bla bla bla..
buat direktori yang nantinya akan menjadi root (/) direktori user tersebut dan sesuaikan kepemilikanya dan group-nya
mkdir -p /home/rifqi/{dev,etc,home/rifqi,bin,lib} chmod 0511 /home/rifqi/{dev,etc,bin,home,lib}
buat device /dev/null untuk user dengan perintah
mknod /home/rifqi/dev/null c 1 3 chmod 666 /home/rifqi/dev/null
salin bash dan comaand-command yang nantinya akan digunakan oleh user
cp /usr/bin/bash /home/rifqi/bin/ cp /bin/{ln,ls,rm,mv,cp,mkdir} /home/rifqi/bin cp /bin/du /home/rifqi/bin
cek library yang digunakan dari masing-masing command tersebut
ldd /bin/bash ldd /bin/ls
salin library-library dari hasil ldd tersebut ke direktori /lib dari user
cp /lib/libtermcap.so.2 /home/rifqi/lib cp /lib/libdl.so.2 /home/rifqi/lib cp /lib/libc.so.6/home/rifqi/lib cp /lib/ld-linux.so.2 /home/rifqi/lib cp /lib/librt.so.1 /home/rifqi/lib cp /lib/libacl.so.1 /home/rifqi/lib cp /lib/libpthread.so.0 /home/rifqi/lib cp /lib/libattr.so.1 /home/rifqi/lib
salin /etc/passwd dan /etc/group dengan command berikut
grep ^rifqi /etc/passwd > /home/rifqi/etc/passwd grep ^root /etc/passwd >> /home/rifqi/etc/passwd grep ^users /etc/group > /home/rifqi/etc/group grep ^root /etc/group >> /home/rifqi/etc/group
ubah file /home/rifqi/etcpasswd hingga menjadi seperti berikut
rifqi:x:1001:100:,,,:/home/rifqi/:/dev/null root:x:0:0::/:/dev/null
ubah /etc/passwd hingga menjadi seperti berikut
rifqi:x:1002:100:,,,:/home/rifqi/home/rifqi:/bin/bash
kemudian ubah kepemilikan direktori "jail" tersebut menjadi kepemilikan user tersebut
chown -R rifqi.users /home/rifqi
Jalankan ssh tersebut, sebelum menjalankan ssh dari /etc/rc.d/rc.sshd lakukan sedikit perubahan pada file /etc/rc.d/rc.sshd agar letak binari ssh sesuai dengan yang tadi kita install
#/usr/sbin/sshd /sbin/sshd
dan nyalakan ssh dengan perintah /etc/rc.d/rc.sshd start, kemudian lakukan uji coba ssh dengan menggunakan account yang tadi kita buat #:-S.
apabila tidak terjadi kesalahan maka user rifqi akan login ke home direktorinya di /home/rifqi/home/rifqi dan root (/) direktori dari user tersebut adalah /home/rifqi
Last login: Wed Oct 3 14:27:59 2007 from 10.13.177.48 -bash-3.1$ pwd /home/masrifqi -bash-3.1$cd / -bash-3.1$ ls bin dev etc home lib -bash-3.1$
dan mulai sekarang maka user tersebut (rifqi) setiap kali login akan mempunyai home direktori dan root-nya sendiri :-).
Oh ya Masrifqi, paket openssh-4.6p1 karena sudah terinstall di slackware sebelumnya, lebih baik diremove lebih dulu baru install openssh yang sudah di patch.
Kalau develop paket openssh pake slackbuild atawa makepkg , bisa langsung upgrade tanpa perlu remove paket sebelumnya.
Btw, Sip ! Penjelasannya mudah dimengerti & mengasyikan. 🙂
terimakasih koreksinya mas, proses remove-nya ketinggalan.. 😀
ngepatch nya level 1
awaludin:/home/awal# tar zxf openssh-4.6p1.tar.gz
awaludin:/home/awal# cd openssh-4.6p1
awaludin:/home/awal/openssh-4.6p1# patch -p1
btw thx articlenya
Minta ijin untuk copy definisi chroot (jail) untuk publikasi 🙂
Saya kasih link ke situs ini di artikel saya
Silahkan mas, tapi definisinya berantakan 😀
Apa khabar mas…..
Mohon penjelasan dari pada mas ……apakah sama
“setup” nya untuk ubuntu? ( maaf saya masih baru dalam
dunia linux ini. )
Harap mendapat jawaban sewajarnya.
Makasih.
secara garis besar sama 🙂
kalo tanpa remove paket openssh yg sdh terinstall bisa ga mas??
jadi langsung patch paketnya
@lutfi:
kalo pake paket bawaanya setau saya ga bisa, karena itu maka butuh di patch dulu
root@slack[arak]com:/home/root/openssh-4.6p1# mknod /home/maong/dev/null c 1 3 chmod 666 /home/maong/dev/null
mknod: extra operand `chmod’
Try `mknod –help’ for more information.
kok bisa gitu ya? salahnya di maana sih ??
dan
itu perintah yang berlainan, dijalankan sendiri, kalo disambung ya pasti error
mas koq nulinya gini saya liat diatas :
masrifqi:x:1002:100:,,,:/home/masrifqi/home/rifqi:/bin/bash
koq tau2 berubah masrifki, kan usernya rifki, kalo merubah nama users berarti sama saja menghapus nama users itu di /etc/passwd
terimakasih koreksinya