Linux Chroot 環境設定 – 同 FreeBSD 的 Jail

繼上篇:CentOS 7 ssh 設定

心得:

Chroot 也就是 Container 概念的始祖,但大多數人應該都不知道有Chroot

有時候,推廣的能力也是很重要的…

在 Linux 通常要做這樣的環境,大多是應用在SFTP server使用

可以參考以下Script去改成自己想要的環境

# vim jail.sh

以下為 Script 內容:

#!/bin/bash
 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
 export PATH
# set jail path
 jaildir=/Jail
# build jail dir
mkdir -p $jaildir
chown root:root $jaildir
chmod 755 $jaildir
# setup jail's environment
mkdir -p $jaildir/dev/
mkdir -p $jaildir/lib64/
mkdir -p $jaildir/etc/
mkdir -p $jaildir/bin/
mkdir -p $jaildir/usr/libexec/openssh/
mkdir -p $jaildir/home/
ln -s $jaildir/home/ /home/
# build dev node
mknod -m 666 $jaildir/dev/null c 1 3
mknod -m 666 $jaildir/dev/tty c 5 0
mknod -m 666 $jaildir/dev/zero c 1 5
mknod -m 666 $jaildir/dev/random c 1 8

# copy library
cmdlist="/bin/bash /bin/ls /usr/libexec/openssh/sftp-server"

lib1="$(ldd $cmdlist | awk '{ print $1 }' | grep "lib64" | sort | uniq)"
lib2="$(ldd $cmdlist | awk '{ print $3 }' | grep "lib64" | sort | uniq)"

for i in $cmdlist
do
cp $i $jaildir/bin/ && echo "$i Command copy completed"
done

for j in $lib1
do
echo $j
cp $j $jaildir/lib64/ && echo "$j lib64 copy completed"
done

for k in $lib2
do
echo $k
cp $k $jaildir/lib64/ && echo "$k lib64 copy completed"
done

cp -vf /etc/{passwd,group} $jaildir/etc/

將以上的 Shell Script 執行完成後,sshd.conf 中設定 Match User
譬如你要讓所有 Domain User 都進入 Chroot 狀態的話
可以使用 Group 或是 User 去進行設定

# vim /etc/ssh/sshd_config

加入以下:

Match Group "domain users"
 ChrootDirectory /Jail
 ForceCommand internal-sftp

Match User kenwu
 ChrootDirectory /Jail
 ForceCommand internal-sftp

這樣就將 Group 為 Domain Users 的以及使用者 kenwu 加入 /Jail 的 Chroot
當然,也可以建立多個 Chroot 來分各部門使用

而身為管理者,就可以做為資料管理的系統使用
這部分就可以搭配資料夾權限的使用,成為內部SFTP專用的Server

資料來源:
http://linuxpitstop.com/chroot-ssh-users-on-centos-7/

Linux Chroot 環境設定 – 同 FreeBSD 的 Jail 有 “ 3 則迴響 ”

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google photo

您的留言將使用 Google 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s