Tujuan dari chroot terhadap suatu login(account/user) adalah untuk "memenjarakan" user tersebut ke home direktorinya sendiri sehingga user yang bersangkutan tidak bisa "naik" ke direktori yang lebih tinggi diatasnya. Hal ini mungkin bisa meminimalisir usaha pembajakan terhadap suatu account yang lain (misalnya root) ataupun pencurian data user maupun data penting lainnya pada suatu sistem operas i linux.
Karena sshd yang mendukung chroot adalah sshd dari ssh.com, maka langkah yang pertama adalah menginstall sshd tersebut dan menguninstall openssh (sshd yang digunakan berlisensi free for non commercial use), jika anda sudah menggunakan sshd dari ssh.com anda bisa melewati langkah berikut ini : [root@kurowo asfik]# wget ftp://ftp.ssh.com/pub/ssh/ssh-3.2.3.tar.gz [root@kurowo asfik]# tar -xzvf ssh-3.2.3.tar.gz [root@kurowo asfik]# cd ssh-3.2.3 [root@kurowo ssh-3.2.3]# ./configure [root@kurowo ssh-3.2.3]# make [root@kurowo ssh-3.2.3]# make install Perhatian, langkah berikut ini sangatlah penting, silakan berhati-hati dalam mengerjakannya, terutama jika anda bekerja diserver secara remote. Aktifkan terlebih dahulu protokol telnet, hal ini untuk mencegah jika tiba-tiba kita tidak bisa terhubung ke server menggunakan ssh. Pada distro Redhat anda bisa menyunting file /etc/xinetd.d/telnetdan ubah pada bagian disable = yes menjadi disable = no. Kemudian restart xinetd : [root@kurowo asfik]# service xinetd restart Setelah ok, silakan masuk ke server melalui protokol telnet, langkah selanjutnya adalah langsung menghentikan sshd yang masih berjalan : [root@kurowo asfik]# service sshd stop Pastikan semua user telah logout (atau kita logoutkan secara pasti :D ): [root@kurowo asfik]# killall -9 sshd Hapus openssh : [root@kurowo asfik]# for a in $(rpm -qa | grep openssh); do rpm -e --nodeps $a; done Semenjak root merupakan account yang keramat, maka kita putuskan untuk menolak ssh dengan login root dengan menyunting file /etc/ssh2/sshd2_config pada bagian PermitRootLogin menjadi : PermitRootLogin no Jalankan sshd yang terbaru dari ssh.com : [root@kurowo asfik]# /usr/local/sbin/sshd Untuk memastikan sshd yang baru secara otomatis dijalankan setiap server di reboot : [root@kurowo asfik]# echo "/usr/local/sbin/sshd" >> /etc/rc.local Silakan dicoba untuk melakukan ssh ke server tersebut, jika sukses, jangan lupa langsung mematikan kembali daemon telnet dengan menyunting kembali /etc/xinetd.d/telnet dan mengubah bagian disable = no menjadi disable = yes, dan karena kita tidak memerlukan xinetd : [root@kurowo asfik]# service xinetd stop Buat user baru yang akan dichroot (misalnya user niken ) sekalian kita set passwordnya : [root@kurowo asfik]# useradd niken [root@kurowo asfik]# passwd niken Changing password for user niken New password: Retype new password: passwd: all authentication tokens updated successfully Buat direktori etc,bin,lib didirektori /home/niken : [root@kurowo asfik]# mkdir /home/niken/{etc,bin,lib} Buat entry untuk user niken di file /home/niken/etc/passwd dan /home/niken/etc/group : [root@kurowo asfik]# grep ^niken /etc/passwd > /home/niken/etc/passwd [root@kurowo asfik]# grep ^niken /etc/group > /home/niken/etc/group Install bash dengan menyalin file /bin/bash ke /home/niken/bin: [root@kurowo asfik]# cp /bin/bash /home/niken/bin Salin file library yang digunakan oleh bash (anda bisa memeriksanya dengan perintah ldd) : [root@kurowo asfik]# ldd /bin/bash libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001d000) libdl.so.2 => /lib/libdl.so.2 (0x40021000) libc.so.6 => /lib/i686/libc.so.6 (0x40025000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) [root@kurowo asfik]# cp /lib/libtermcap.so.2 /home/niken/lib [root@kurowo asfik]# cp /lib/libdl.so.2 /home/niken/lib [root@kurowo asfik]# cp /lib/i686/libc.so.6 /home/niken/lib [root@kurowo asfik]# cp /lib/ld-linux.so.2 /home/niken/lib Atau bisa juga dengan menggunakan perintah ini : [root@kurowo asfik]# for a in $(ldd /bin/bash | awk '{print $3}'); do cp $a /home/niken/lib/; done Untuk Redhat 7.x, salin pula file /lib/libnss_files.so.2, /lib/libnsl.so.1dan /lib/libnss_compat.so.2 : [root@kurowo asfik]# cp /lib/libnss_files.so.2 /home/niken/lib [root@kurowo asfik]# cp /lib/libnsl.so.1 /home/niken/lib [root@kurowo asfik]# cp /lib/libnss_compat.so.2 /home/niken/lib Jika diperlukan juga, install file-utils (ln,ls,rm,mv,cp,du,mkdir): [root@kurowo asfik]# cp /bin/{ln,ls,rm,mv,cp,mkdir} /home/niken/bin [root@kurowo asfik]# cp /usr/bin/du /home/niken/bin Periksa kembali library yang akan digunakan oleh file -file tersebut dengan menggunakan perintah ldd (misalnya: ldd /bin/ls dan seterusnya), kemudian salin ke direktori lib pada home direktori user yang bersangkutan. Ganti kepemilikan /home/niken ke user niken : [root@kurowo asfik]# chown -R niken.niken /home/niken Jika anda menginginkan agar user yang bersangkutan tidak bisa menghapus file/direktori yang digunakan dalam chroot, anda bisa menggunakan perintah chattr : [root@kurowo asfik]# chattr -R +i /home/niken/{bin,etc,lib} Langkah terakhir adalah menambahkan entry niken pada file /etc/ssh2/sshd2_config bagian ChRootUsers menjadi sebagai berikut : ChRootUsers anonymous,ftp,guest,niken Restart daemon ssh : [root@kurowo asfik]# killall -HUP sshd Jika sukses, anda bisa mencoba ssh ke localhost dengan menggunakan login niken : [root@kurowo asfik]# ssh niken@localhost niken's password: Authentication successful. Last login: Wed Feb 26 2003 12:51:42 +0700 from localhost No mail. bash-2.05$ ls -la total 40 drwx------ 5 niken niken 4096 Feb 26 05:48 . drwx------ 5 niken niken 4096 Feb 26 05:48 .. -rw------- 1 niken niken 57 Feb 26 05:52 .bash_history -rw-r--r-- 1 niken niken 24 Feb 26 05:21 .bash_logout -rw-r--r-- 1 niken niken 191 Feb 26 05:21 .bash_profile -rw-r--r-- 1 niken niken 124 Feb 26 05:21 .bashrc -rw-r--r-- 1 niken niken 3511 Feb 26 05:21 .screenrc drwxr-xr-x 2 niken niken 4096 Feb 26 05:47 bin drwxr-xr-x 2 niken niken 4096 Feb 26 05:49 etc drwxr-xr-x 2 niken niken 4096 Feb 26 05:53 lib
1 comments:
salam kenal
pada baris ini mohon di jelaskan lebih lanjut....
Pada distro Redhat anda bisa menyunting
file /etc/xinetd.d/telnetdan ubah pada bagian disable = yes menjadi disable = no.
karena pada redhat saya(centos) xinetd.d berisi:
eklogin ekrb5-telnet gssftp klogin krb5-telnet kshell rsync
dan untuk menuju telnet itu pake command apa?
nano apa vi
Posting Komentar