One*_*ero 26
Jailkit 是一组实用程序,可以将用户帐户限制为特定目录树和特定命令。使用 Jailkit 实用程序“手动”设置监狱要容易得多。监狱是您在文件系统中创建的目录树;用户无法看到 jail 目录之外的任何目录或文件。用户被监禁在该目录及其子目录中。
http://olivier.sessink.nl/jailkit/index.html#download
VERSION=2.20 # from November 2018
cd /tmp
wget https://olivier.sessink.nl/jailkit/jailkit-$VERSION.tar.gz
tar -zxvf jailkit-$VERSION.tar.gz
cd jailkit-$VERSION/
./configure
make
su -
make install
Run Code Online (Sandbox Code Playgroud)
现在是设置监狱目录的时候了。被监禁的用户会看到这个目录作为服务器的根目录。我选择使用 /home/jail:
mkdir /home/jail
chown root:root /home/jail
Run Code Online (Sandbox Code Playgroud)
jk_init 可用于快速创建包含特定任务或配置文件所需的多个文件或目录的 jail,(单击它并阅读完整详细信息)。
jk_init -v /home/jail basicshell
jk_init -v /home/jail netutils
jk_init -v /home/jail ssh
jk_init -v /home/jail jk_lsh
Run Code Online (Sandbox Code Playgroud)
添加一个具有主目录和 bash shell 的新用户,并设置密码:
useradd -d /home/jailtest -m jailtest -s /bin/bash
passwd jailtest
Run Code Online (Sandbox Code Playgroud)
使用以下命令:
jk_jailuser -m -j /home/jail jailtest
Run Code Online (Sandbox Code Playgroud)
你/etc/passwd现在应该包含这样的内容:
jailtest:x:1001:1001::/home/jail/./home/jailtest:/usr/sbin/jk_chrootsh
Run Code Online (Sandbox Code Playgroud)
通过使用jk_cp将 bash 库复制到监狱:
jk_cp -v -f /home/jail /bin/bash
Run Code Online (Sandbox Code Playgroud)
/home/jail/etc/passwd替换这一行:
jailtest:x:1001:1001::test:/usr/sbin/jk_lsh
Run Code Online (Sandbox Code Playgroud)
有了这个:
jailtest:x:1001:1001::/home/jailtest:/bin/bash
Run Code Online (Sandbox Code Playgroud)
通过jk_update在真实系统上使用更新,可以在jail 中更新。
试运行将显示正在发生的事情:
jk_update -j /home/jail -d
Run Code Online (Sandbox Code Playgroud)
如果没有 -d 参数,将执行真正的更新。可以在此处找到更多维护操作。
(如果/home/jail/opt丢失,请使用mkdir -p /home/jail/opt/
并jk_update -j /home/jail再次运行创建它)
您可以挂载特殊文件夹,jail 用户现在可以访问这些文件夹。例如:
mount --bind /media/$USER/Data/ /home/jail/home/jailtest/test/
Run Code Online (Sandbox Code Playgroud)
http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html
http://olivier.sessink.nl/jailkit/index.html#intro(非常好的帮助)
这已经过检查和验证,工作正常
您不能将它们限制在 /home 中,因为它们需要访问 /etc 中的系统二进制文件和 bash 和配置文件
IMO 保护用户的最简单方法是使用 apparmor。
你做了一个硬链接
ln /bin/bash /usr/local/bin/jailbash
Run Code Online (Sandbox Code Playgroud)
您将 jailbash 添加到 /etc/shells
然后将 jailbash 分配给用户 shell,然后为 jailbash 编写一个 apparmor 配置文件,以允许最少的访问。
sudo chsh -s /usr/local/bin/jailbash user_to_confine
Run Code Online (Sandbox Code Playgroud)
你将不得不自己写一个 apparmor 配置文件,但我有一个你可以开始的配置文件
http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash