当前位置: 首页>>技术教程>>正文


简单&监狱用户的简便方法

, , ,

问题描述

我需要一种简单易用的方法来监控Oneiric主目录中的用户。您是否为监狱用户提供了简单的配置,有完整的帮助或一些良好的网络链接?

我将提供一个10到20 GB可用空间的在线免费公共服务器。我不知道有多少用户。我想给他们SSH和SFTP,以便他们可以通过FileZilla连接。

最佳解决方法

Jailkit是一组可以将用户帐户限制为特定目录树和特定命令的实用程序。使用执行’by hand’的Jailkit实用程序设置jail要容易得多。 jail是您在文件系统中创建的目录树;用户无法看到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

设置监狱

现在是时候设置jail目录了。 Jailed用户将此目录视为服务器的根目录。我选择使用/home /jail:

mkdir /home/jail
chown root:root /home/jail

jk_init can be used to quickly create a jail with several files or directories needed for a specific task or profile, (click on it & read full detail ).

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

启用bash

通过使用jk_cp,bash库被复制到jail:

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

Maintenance

通过使用jk_update更新真实系统可以在监狱中更新。

dry-run将显示正在发生的事情:

jk_update -j /home/jail -d

Without the -d argument the real update is performed. More maintenance operations can be found here.

(如果缺少/home/jail/opt,请使用mkdir -p /home/jail/opt/创建并再次运行jk_update -j /home/jail)

授予访问其他目录的权限

您可以挂载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 ( a very good help )

This one also

This is been checked & verified , Working Properly

次佳解决方法

你不能将它们限制在/home,因为它们需要访问/etc中的系统二进制文件和bash和配置文件

IMO保护用户最简单的方法是使用apparmor。

你做了一个硬链接

ln /bin/bash /usr/local/bin/jailbash

你将jailbash添加到/etc /shells

然后,您将jailbash分配给用户shell,然后为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

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/2958.html,未经允许,请勿转载。