简单轻松地关押用户


33

我需要一种简单的方法来将用户监禁在Oneiric的主目录中。您是否有一个简单的配置,可以为入狱用户提供全面帮助,或者提供一些良好的Web链接?

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


如果用户未锁定在主目录中,则进行第二次更新
1

那么我相信您1-如@Marco所述,您想尝试使用ChrootDirectory for SSH 2-您可能想要超越标准的处理方式,因为您需要扩展它以处理“大量”存储,... 3- SSH是您的最佳选择吗?人们在您的服务上需要SSH吗?4-祝你好运
阿里

1
我也有其他计划....对于普通用户,我们将只提供带有MY SECURE SHELL的SFTP,这非常容易2处理
1

<br>当我添加一些监禁部分,例如jk_init -v -f / home / jail netutils时,我该如何删除呢?

Answers:


23

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

启用bash

通过使用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(一个非常好的帮助)

这个也

这是经过检查和验证的,可以正常工作


+1很好。强烈建议您也阅读上面在“获得帮助”部分中提到的链接
cwd

2
这在Ubuntu 13.10上不起作用。当您尝试最终登录时,会立即收到欢迎消息,然后关闭连接。
Matt H

Matt H:确保遵循最后两个步骤;复制bash二进制文件并编辑/ home / jail / etc / passwd文件。
ONOZ 2014年

2
自从编写本教程以来,这要么不再起作用,要么发生了一些变化。我遇到了与MattH完全相同的问题。
James Heald

欢迎消息发出后,我也立即遇到连接关闭问题。我将chroot passwd文件中的登录shell从jk_lsh更改为bash,如此处linuxquestions.org/questions/linux-software-2/…所示。这不是解决方案,而是解决方法!
Attila Fulop 2015年

6

您不能将它们限制在/ 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没有什么可以阻止您链接/复制您认为需要的文件。
user606723,2012年

1
是的,您可以按照用户606723的建议“做”,但这并不是那么容易,而且所有潜在解决方案中的IMO都是最不实际或最简单的。不妨建立一个chroot或使用lxc。您先复制二进制文件,然后复制库文件。通常,您将需要手动标识带有ldd的库。该方法需要大量的工作来建立。然后您必须使监狱保持最新状态,您将必须手动更新(复制)二进制文件/库。在更新方面,链接可能会更好地工作,但是您仍然需要全部设置它们。我不知道这是OP所考虑的。那么如何使它们保持封闭状态呢?

1
我认为问题的全部重点是指出使该过程自动化jailkit的工具...例如OP提到的工具。
user606723 2012年

@ bodhi.zazen。您对此的想法.. debootstrap(oneiric)然后使用lxc创建一个容器。使用监狱工具箱>用户到容器>。到目前为止,我所做的是我已将debbootstrap oneiric设置为最小值,然后使用了jailkit>运行良好
1

您可以使用LXC来完成此任务,请注意,有时LXC的隔离是不完整的。只要用户在容器中没有root用户访问权限,您就可以确定,并且您可能希望订阅LXC邮件列表。
Panther

1

很难猜测您可能想要实现什么目的。如果要在通过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

我想给他们ssh + sftp(通过filezilla连接)
1

0

您可以rbash作为用户的外壳签出。

man bash

搜索RESTRICTED SHELL部分

或查看此页面http://linux.die.net/man/1/bash


3
只需对rbash小心,它很容易突破并且被认为已经过时。请参阅blog.bodhizazen.net/linux/how-to-restrict-access-with-rbash
Panther,

@ bodhi.zazen你的意思是rbash
卡尔森2012年

是的,抱歉,我已解决该问题。几年前有一个博客,有人破坏了我们设立的rbash监狱,尽管那是严密的,最小的监狱。花了不到5分钟的时间。没有人摆脱过牢狱之灾。

您能告诉我如何配置它吗?... jailbash
1

是的,man bash可以帮助,使用bash恢复的shell功能更为简单
c4f4t0r 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.