SELinux – CentOSx86_64:用户命令限制

SELinux – CentOSx86_64:用户命令限制

SELinux是这份工作的正确工具吗? 如果是的话,最好的办法是什么?

我想限制一个特定的用户只运行一些预定义的命令/脚本列表(可能在他们的主目录中)。 另外,用户脚本可以有权限运行用户不能直接运行的命令(例如,用户脚本test.sh可以调用'ping localhost',但是用户不能直接从命令行调用'ping localhost')。 值得一提的是,我认为这些限制只需要一个用户帐户(我不需要为不同的用户帐户configuration多个不同的configuration)。

操作系统是CentOSx86_64,SELinux启用如下:

SELinux status: enabled SELinuxfs mount: /selinux Current mode: enforcing Mode from config file: enforcing Policy version: 24 Policy from config file: targeted 

我对SELinux很新,但是已经尝试了以下内容:

(1)我认为MLS政策可能是最适合的(这个链接看起来很有希望: http : //www.centos.org/docs/5/html/Deployment_Guide-en-US/sec-mcs-getstarted.html )对于这个任务,所以我第一次试图打开这个。 “SELinux Admin GUI”没有提供任何选项来改变策略,所以我试图直接更改/ etc / selinux / config。 这在重启后出现'内核恐慌',所以我决定不使用原来的安装策略(即有针对性的)。

(2)在SELinux Admin GUI中,我创build了一个策略types为“最小terminal用户angular色”的新策略。 对于这个“名字”我称之为“限制用户”。 我没有select它将被转换到的angular色。 我没有select其他angular色。 我select了“所有”TCP和UDP端口进行绑定/连接。 我没有添加布尔人的政策。 运行生成的.sh后,新的SELinux用户和angular色被创build。 然后我给“限制用户”分配了一个login名。 正如所料,这给了我一个用户权限非常有限。

(3)最初,这个新用户可以在其主目录中创build一个脚本,但不能执行它。 在我设置了一个名为'allow_gues_exec_content'的布尔值之后,用户就可以执行脚本。 最初脚本只包含一个“回声”,但一旦我改变了这个ping,它再次失败。 在尝试为这个新用户“ping”我取消了select布尔user_ping(虽然我认为这只适用于user_u而不是guest_u)。 为了做我想做的事情,我认为另一种方法可能是定义一个基于'user_u'的types,然后删除权限(而不是采取我采取的方法是使用基于guest_u的types并添加权限 – 但是我不'不知道该怎么做!)。

(4)一些在线资源从src目录讨论策略文件,但是这个没有安装,我不知道哪个软件包要添加。 我安装了以下selinux相关的软件包:

 libselinux.x86_64 2.0.94-5.3.el6 installed libselinux-devel.x86_64 2.0.94-5.3.el6 installed libselinux-python.x86_64 2.0.94-5.3.el6 installed libselinux-utils.x86_64 2.0.94-5.3.el6 installed selinux-policy.noarch 3.7.19-126.el6_2.4 @updates selinux-policy-targeted.noarch 3.7.19-126.el6_2.4 @updates setools-console.x86_64 3.3.7-4.el6 @base setools-devel.x86_64 3.3.7-4.el6 @base setools-gui.x86_64 3.3.7-4.el6 @base setools-libs.x86_64 3.3.7-4.el6 @base setools-libs-java.x86_64 3.3.7-4.el6 @base setools-libs-python.x86_64 3.3.7-4.el6 @base setools-libs-tcl.x86_64 3.3.7-4.el6 @base 

我认为我需要定义一个自定义策略(或者可能使用“strict”策略)。 在这个政策中:

(a)允许用户执行其主目录中的文件。 (b)允许用户脚本转换成不同的types,以便运行用户没有权限的命令。

使用SELinuxpipe理GUI(和我知道的configuration文件)我不知道如何做到这一点。

感谢您的任何帮助,您可以提供。

我会认为有限的shell如http://lshell.ghantoos.org/会更容易。 由于它是用python编写的,所以如果你无法像开箱即用那样工作的话,你可以自定义它。