SELinux如何限制CentOS用户权限

SELinux(Security-Enhanced Linux)是一种在Linux操作系统中实现强制访问控制(MAC)的安全模块。它可以帮助你限制CentOS用户的权限,提高系统安全性。以下是如何使用SELinux限制CentOS用户权限的步骤:

  1. 确认SELinux已安装并启用:

    在终端中运行以下命令,查看SELinux的状态:

    getenforce
    

    如果输出结果为“Enforcing”,则表示SELinux已启用。如果输出结果为“Disabled”,则需要启用SELinux。

    要启用SELinux,请编辑/etc/selinux/config文件,将SELINUX=disabled更改为SELINUX=enforcing,然后重启系统。

  2. 为用户分配角色:

    SELinux使用角色来限制用户访问特定资源。首先,你需要为用户分配一个角色。可以使用semanage login命令将用户添加到一个角色中。例如,要将用户user1添加到角色user_r中,请运行以下命令:

    sudo semanage login -a -s user_r user1
    
  3. 为角色分配权限:

    接下来,你需要为角色分配访问特定资源的权限。这可以通过编辑相应的策略文件来实现。策略文件通常位于/etc/selinux/targeted/policy/policies/目录中。

    例如,要允许用户访问/var/www/html目录,你需要编辑httpd_sys_content_t类型的策略文件。可以使用audit2allow工具自动生成策略文件。首先,确保已安装policycoreutils-python包:

    sudo yum install policycoreutils-python
    

    然后,使用ausearch命令查找与访问/var/www/html相关的拒绝记录:

    sudo ausearch -m avc -ts recent
    

    假设输出结果中有一条记录与访问/var/www/html相关,你可以使用audit2allow生成策略文件:

    sudo ausearch -m avc -ts recent | audit2allow -M mypol
    

    这将生成一个名为mypol.te的策略文件和一个名为mypol.pp的策略模块文件。

    最后,使用semodule命令加载生成的策略模块:

    sudo semodule -i mypol.pp
    
  4. 测试策略:

    现在,你应该已经限制了用户访问特定资源的权限。尝试以受限用户身份执行操作,以确保策略生效。

请注意,SELinux策略可能会很复杂,因此在修改策略文件时要谨慎。在生产环境中应用更改之前,请务必在测试环境中充分测试策略。