Skip to main content

Linux 使用 Chroot

運行環境
  • LXC Debian 12

 

建立SSH chroot

建立 chroot jail 

mkdir -p /home/user

建立基本/dev節點

ls -l /dev/{null,zero,stdin,stdout,stderr,random,tty}

若是LXC環境手動複製dev並給予權限

mkdir -p /home/user/dev/

touch /home/user/dev/{null,zero,random,tty}

chmod 666 /home/user/dev/{null,zero,random,tty}

若是一般環境用mknod建立檔案

mkdir -p /home/user/dev/		 
cd /home/user/dev/ 
mknod -m 666 null c 1 3
mknod -m 666 tty c 5 0
mknod -m 666 zero c 1 5
mknod -m 666 random c 1 8

chroot jail 子目錄須為root擁有

chown root:root /home/user
chmod 0755 /home/user
ls -ld /home/user

image.png

 

建立SSH chroot Shell

建立bin目錄,並複製/bin/bash到目錄中,某些系統建立使用者會用/bin/sh,可以再複製/bin/sh或是修改/etc/passwd的Shell

mkdir -p /home/user/bin 
cp -v /bin/bash /home/user/bin/

image.png

確認bash所需的lib檔案,並複製到lib資料夾內

ldd /bin/bash
mkdir -p /home/user/lib/x86_64-linux-gnu
mkdir -p /home/user/lib64

cp -v /lib/x86_64-linux-gnu/libtinfo.so.6 /home/user/lib/x86_64-linux-gnu/
cp -v /lib/x86_64-linux-gnu/libc.so.6 /home/user/lib/x86_64-linux-gnu/
cp -v /lib64/ld-linux-x86-64.so.2 /home/user/lib64/

image.png

image.png

 

建立SSH使用者
useradd user
passwd user

建立etc目錄,並複製/etc/passwd/etc/group到目錄中

mkdir /home/user/etc 
cp -vf /etc/{passwd,group} /home/user/etc/

若有新增SSH chroot使用者,/etc/passwd/etc/group都要更新到/home/user/etc

 

設定SSHD

編輯/etc/ssh/sshd_config並在底下新增

Match User user
ChrootDirectory /home/user

 

 systemctl restart sshd