简单易行的监狱用户方式

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

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

Jailkit是一组可以将用户帐户限制为特定目录树和特定命令的实用程序。 使用Jailkit实用程序(手动执行)可以更轻松地设置jail。 jail是您在文件系统中创建的目录树; 用户无法看到jail目录之外的任何目录或文件。 用户在该目录及其子目录中被监禁。

下载并安装:

http://olivier.sessink.nl/jailkit/index.html#download

# cd /tmp # wget http://olivier.sessink.nl/jailkit/jailkit-2.17.tar.gz # tar -zxvf jailkit-2.17.tar.gz # cd jailkit-2.17 # ./configure # make # make install 

设置监狱

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

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

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 

添加用户

添加具有主目录和bash shell的新用户,并设置密码:

 # useradd -d /home/testuser -m testuser -s /bin/bash # passwd testuser 

现在是时候监禁这个用户,使用以下命令:

 # jk_jailuser -m -j /home/jail testuser 

你的/ etc / passwd现在应该包含这样的东西:

 testuser:x:1001:1001::/home/jail/./home/testuser:/usr/sbin/jk_chrootsh 

启用bash

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

 # jk_cp -v -f /home/jail /bin/bash 

现在编辑/ home / jail / etc / passwd文件并确保它包含这样的内容:

 testuser:x:1001:1001::/home/testuser:/bin/bash 

保养

通过在真实系统上使用jk_update更新可以在jail中更新。 干跑将显示正在发生的事情:

 # jk_update -j /home/jail -d 

如果没有-d参数,则执行真正的更新。 可在此处找到更多维护操作。

帮助采取

http://olivier.sessink.nl/jailkit/howtos_chroot_shell.html

http://olivier.sessink.nl/jailkit/index.html#intro (非常好的帮助)

这一个也

经过检查和validation,工作正常

你不能将它们限制在/ 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

很难猜出你想要达到什么目的。 如果是在通过FTP提供jailed访问时拒绝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作为用户的shell签出。

 man bash 

搜索RESTRICTED SHELL部分

或者在这个页面上查看http://linux.die.net/man/1/bash