SSH用户锁定到他们的家庭目录&一项服务

时间:2011-11-16 10:04:16

标签: linux permissions ssh

我是Linux新手。我谷歌了几天,并在CentOS中安装了Java和Tomcat。

现在我需要一个在其主目录中具有所有权限的用户(包括子目录中的文件,子目录和文件),但无法访问任何其他目录。

此用户还必须拥有管理一项服务的权限(我创建了tomcat服务,我可以'开始','停止'和'重启')。

任何人都可以解释如何做到这一点吗?

2 个答案:

答案 0 :(得分:3)

你已经问了很多。

可能有几种方法:

原生Linux权限

为这个新用户创建他们自己的新组。让他们成为这个群体中唯一的成员。

删除所有数据文件的全局读取,写入和执行权限。如果有任何用户通过 world 权限获取数据文件的权限,则可以根据需要为所有用户和数据创建新组(可能是accounting一个,billing },一个用于sales,一个用于engineering,等等。无论什么有效。)

为此用户为sudoers(5)sudo stop tomcatsudo start tomcatsudo restart tomcat添加新的sudo status tomcat条目,或者此用户需要的任何命令执行以管理tomcat服务。有关编辑visudo(8)配置文件的详细信息,请参阅sudo(8)

如果确实想要锁定此用户,请将此人需要的实用程序复制到他们的~/bin/目录中,然后继续删除{{1}上的世界执行位},/bin/sbin/usr/bin。 (单独留下/usr/sbin/lib等 - 在这个用户需要的库中复制无疑是很多的工作。)

强制访问控制

我将使用AppArmor系统解释这一点;我已经在AppArmor工作了十多年,这是我最了解的系统。还有更多选择:TOMOYOSMACKSELinux都是很好的工具。 AppArmor和TOMOYO致力于限制对路径名的访问。 SMACK和SELinux的工作理念是系统上的每个对象都分配了一个标签,策略指定哪些标签(在进程上)可以读取,写入,执行等标签(在数据或其他进程上)。如果您想要实施全面的Open,Classified,Secret,Top Secret保护,SMACK或SELinux将是更好的工具。如果您想将某些程序限制在某些文件中,AppArmor或TOMOYO将是更好的工具。

AppArmor应该可以在大多数Ubuntu,SUSE,PLD,Annvix,Mandriva和Pardus发行版上使用。

AppArmor系统限制进程并控制进程在进程执行新程序时如何从域移动到域。域通常由程序分配。

最简单的入门方法是将/usr/lib复制到/bin/bash(或/bin/jail_bash中的其他名称​​不),为用户设置shell在/etc/shells/etc/passwd可以轻松实现这一点,并为chsh(1)创建一个只允许您允许的操作的AppArmor配置文件。如果我们正确地限制了该过程,那么用户就无法逃避我们为他们制作的配置文件。

为此用户为/bin/jail_bashsudoers(5)sudo stop tomcatsudo start tomcat添加新的sudo restart tomcat条目,或者此用户需要的任何命令执行以管理tomcat服务。有关编辑sudo status tomcat配置文件的详细信息,请参阅visudo(8)

在一个终端中,运行sudo(8)。在另一个终端中,以用户身份登录(或以其他方式运行aa-genprof jail_bash)并开始执行您希望允许此人执行的任务。我们将使用您的工作作为培训材料来迭代地构建配置文件。您可能有兴趣观看/bin/jail_bash/var/log/syslog(如果您安装了/var/log/audit/audit.log软件包),以了解AppArmor注意到您的程序正在执行哪些操作。不要一次做太多 - 每次迭代只需要一些新东西。

auditd终端中,回答问题。允许需要允许的内容。否认什么应该被拒绝。当您被问及执行权限时,更喜欢继承而非个人资料。 (配置文件选项将影响系统中的其他所有人。继承只会影响您当前所有配置文件的执行情况致力于改进。 Child 将权限分解为更小的部分,而 inherit 在更大的配置文件中保留权限。在这种情况下,首选继承。)

一旦得到有关执行tomcat的问题,请使用 unconfined execute 权限。这很危险 - 如果启动tomcat的方式中的错误允许人们启动无限制的shell,那么这可以用来打破监狱。你可以限制tomcat(这甚至是一个好主意 - tomcat并不完美)来阻止它成为一条逃生路线,但这可能不是马上就必须的。

AppArmor旨在让您随着时间的推移轻松扩展系统上的配置文件。 AppArmor不适用于所有安全情况,但我们在DEF CON Capture-the-flag黑客竞赛with excellent results中部署了与此非常相似的方案。我们必须允许攻击者aa-genprof(和短暂的用户帐户)通过root以及POP3,SMTP,HTTP + CGI和FTP访问计算机。

在允许用户登录之前,请务必手动检查telnet中的配置文件。您可以使用纯文本编辑器修复所需内容;运行/etc/apparmor.d/重新加载所有配置文件(并卸载您可能删除的配置文件)。

在您首次学习如何配置AppArmor时,保持无限制的/etc/init.d/apparmor restart root shell处于打开状态非常方便。如果您忽略有关不应该拥有自己的配置文件的程序的警告,则可能很难重新进入您自己的系统。 (在最糟糕的情况下,不要忘记用sash(1)启动。)

答案 1 :(得分:0)

您可以通过在限制模式下启动bash来轻松创建非常受限制的环境。将用户的shell设置为rbash而不是bash,这将使其进入受限模式。

http://www.gnu.org/s/bash/manual/html_node/The-Restricted-Shell.html

rbash有可能限制您的需求。除其他外,受限制的环境禁止更改目录。但请看一下它,看看它是否足以满足您的需求。