我需要一种简单的方法来将用户监禁在Oneiric的主目录中。您是否有一个简单的配置,可以为入狱用户提供全面帮助,或者提供一些良好的Web链接?
我将提供具有10到20 GB可用空间的在线免费公共服务器。我不知道有多少用户。我想给他们SSH和SFTP,以便他们可以通过FileZilla连接。
我需要一种简单的方法来将用户监禁在Oneiric的主目录中。您是否有一个简单的配置,可以为入狱用户提供全面帮助,或者提供一些良好的Web链接?
我将提供具有10到20 GB可用空间的在线免费公共服务器。我不知道有多少用户。我想给他们SSH和SFTP,以便他们可以通过FileZilla连接。
Answers:
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
现在是时候建立监狱目录了。入狱的用户将看到此目录作为服务器的根目录。我选择使用/ home / jail:
mkdir /home/jail
chown root:root /home/jail
jk_init可用于快速创建一个监狱,其中包含特定任务或配置文件所需的几个文件或目录(单击并阅读详细信息)。
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
添加一个具有主目录和bash shell的新用户,并设置密码:
useradd -d /home/jailtest -m jailtest -s /bin/bash
passwd jailtest
使用以下命令:
jk_jailuser -m -j /home/jail jailtest
您/etc/passwd
现在应该包含以下内容:
jailtest:x:1001:1001::/home/jail/./home/jailtest:/usr/sbin/jk_chrootsh
通过使用jk_cp,bash库被复制到监狱:
jk_cp -v -f /home/jail /bin/bash
/home/jail/etc/passwd
替换此行:
jailtest:x:1001:1001::test:/usr/sbin/jk_lsh
有了这个:
jailtest:x:1001:1001::/home/jailtest:/bin/bash
通过使用jk_update
真实系统上的更新,可以在监狱中进行更新。
试运行将显示正在发生的事情:
jk_update -j /home/jail -d
如果没有-d参数,则执行实际更新。在这里可以找到更多维护操作。
(如果/home/jail/opt
丢失,请使用“ mkdir -p /home/jail/opt/
并jk_update -j /home/jail
再次运行” 创建它)
您可以安装特殊文件夹,监狱用户现在可以访问。例如:
mount --bind /media/$USER/Data/ /home/jail/home/jailtest/test/
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
您将jailbash添加到/ etc / shells
然后,您将jailbash分配给用户外壳程序,然后为jailbash编写一个apparmor配置文件,以允许最小的访问。
sudo chsh -s /usr/local/bin/jailbash user_to_confine
您将必须自己编写一个apparmor个人资料,但我有一个个人资料,您可能会以
http://bodhizazen.com/aa-profiles/bodhizazen/ubuntu-10.04/usr.local.bin.jailbash
You can not confine them to /home as they need access to the system binaries and bash and configuration files in /etc
没有什么可以阻止您链接/复制您认为需要的文件。
jailkit
的工具...例如OP提到的工具。
很难猜测您可能想要实现什么目的。如果要在通过FTP提供监禁访问的同时拒绝ssh / sftp,则很容易:
在/ etc / shells中添加一个新的shell:
sudo -e /etc/shells
添加一行:
/bin/false
保存。对于要拒绝ssh / sftp的每个用户,请更改用户的shell:
sudo chsh -s /bin/false userx
现在,userx无法通过ssh / sftp登录。
安装vsftpd:
sudo apt-get install vsftpd
编辑配置文件:
sudo -e /etc/vsftpd.conf
还有一些变化。
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
保存。重新启动vsftpd:
sudo /etc/init.d/vsftpd restart
rbash
?