Test için BASH Ortamı

Test için kısıtlı bir BASH ortamı ihtiyacınız ve chrooting 'e kolay giriş yapmak için chroot ortamında bash kabuğu oluşturalım.Bunun için ilk olarak gerekli olan dizinleri oluşturun;

# mkdir /chroot
# mkdir /chroot/bash
# mkdir /chroot/bash/lib64
# mkdir /chroot/bash/bin

Gerekli olan dizinleri oluşturduktan sonra bash kabuğunun ihtiyacı olan kütüphaneleri dizine (lib64) kopyalamamız lazım.Bash'in ihtiyacı olan kütüphaneleri bulalım.ldd(list dynamic dependencies) komutu ile bu kütüphaneleri listeleyelim:

# ldd /bin/bash
linux-vdso.so.1 =>  (0x00007fffe2511000)
 libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f137fe71000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00007f137fc6d000)
 libc.so.6 => /lib64/libc.so.6 (0x00007f137f902000)
 /lib64/ld-linux-x86-64.so.2 (0x00007f13800c4000)

Yukardaki çıktıda görüldüğü gibi gerekli olan kütüphaneler:

  • libncurses.so.5

  • libdl.so.2

  • libc.so.6

  • ld-linux-x86-64.so.2

Yukardaki kütüphaneleri oluşturduğunuz dizine(lib64 - sisteminize göre bu dizin "lib" olabilir.) taşıyın:

# cp /lib64/libncurses.so.5 /chroot/bash/lib64
# cp /lib64/libdl.so.2 /chroot/bash/lib64
# cp /lib64/libc.so.6 /chroot/bash/lib64
# cp /lib64/ld-linux-x86-64.so.2 /chroot/bash/lib64

Bu işlemi yaptıktan sonra "bash" komutunu oluşturduğumuz "bin" dizinine kopyalayalım.

# cp /bin/bash /chroot/bash/bin

Şimdi ihtiyacımız olan komutları chroot bash kabuğunuza kopyalayın.Mesela "ls" komutundan başlayalım.

# ldd /bin/ls
linux-vdso.so.1 =>  (0x00007fff161ff000)
 librt.so.1 => /lib64/librt.so.1 (0x00007fa1effe5000)
 libacl.so.1 => /lib64/libacl.so.1 (0x00007fa1efddc000)
 libc.so.6 => /lib64/libc.so.6 (0x00007fa1efa71000)
 libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fa1ef854000)
 /lib64/ld-linux-x86-64.so.2 (0x00007fa1f01ee000)
 libattr.so.1 => /lib64/libattr.so.1 (0x00007fa1ef64f000)

"ls" komutu için gerekli olan kütüphaneler yukardaki gibi.Hemen bunları chroot bash kabuğu ortamındaki "lib64" dizinine kopyalayın.

# cp /lib64/librt.so.1 /chroot/bash/lib64
# cp /lib64/libacl.so.1 /chroot/bash/lib64
# cp /lib64/libpthread.so.0 /chroot/bash/lib64
# cp /lib64/libattr.so.1 /chroot/bash/lib64

libc.so.6 ve ld-linux-x86-64.so.2 kütüphanelerini daha önce kopyaladığımız için bunlara gerek yok.Bu kütüphaneleri kopyaladıktan sonra "ls" komutunu oluşturduğumuz "bin" dizinine kopyalabiliriz.

# cp /bin/ls /chroot/bash/bin

Dizinimizdeki(lib64) kütüphaneler ile test edeceğimiz bash kabuğu için yeterli komutları çalıştırabiliriz.İhitiyacım olan  cp,cat,touch,mkdir,rm,mv komutlarını kopyalayalım.

# cp /bin/cp /chroot/bash/bin
# cp /bin/mv /chroot/bash/bin
# cp /bin/cat /chroot/bash/bin
# cp /bin/rm /chroot/bash/bin
# cp /bin/mkdir /chroot/bash/bin
# cp /bin/touch /chroot/bash/bin

Kabuğumuz için ihtiyacımız olan komutlarını koyduktan sonra artık kısıtlı bash kabuğumuza giriş yapabiliriz.

# chroot /chroot/bash /bin/bash

Hiçbir hata almadıysanız kabuk ortamına girdiniz,şimdi koyduğunuz komutları test edebilirsiniz.

Comments