我正在尝试在 Ubuntu Trusty 服务器(Amazon EC2 实例)中设置 SELinux。我按照 Debian 文档安装 SELinux。安装工作顺利,如下所示:
root@machine:~# sestatus
SELinux 状态:已启用
SELinuxfs 挂载:/sys/fs/selinux
SELinux 根目录:/etc/selinux
加载的策略名称:default
当前模式:宽容
配置文件中的模式:宽容
政策 MLS 状态:已启用
政策拒绝_未知状态:允许
最高内核策略版本:28
但是,作为使用 ssh 的标准用户,我的上下文有些问题。我的上下文是:system_u:system_r:sysadm_t:SystemLow。我使用 root 用户进行了测试,他也是 system_u:system_r:sysadm_t:SystemLow。
root@ip-172-31-4-210:~# id -Z
system_u:system_r:sysadm_t:SystemLow
由于我只能通过 SSH 连接此服务器,我猜问题就出在这里。是否有一个布尔值或策略允许使用 unconfined_u 上下文进行 ssh 登录?
编辑1:抱歉,我没有提供足够的细节。我想要做的只是设置 SELinux 来限制进程和守护进程,我希望我的标准用户能够使用 sudo 并能够管理系统。root 不是应该处于“unconfined_u”上下文中吗?为什么我是 system_u?
semanage login -l 的输出:
登录名 SELinux 用户 MLS/MCS 范围 服务
__default__ unconfined_u 系统低-系统高 *
root unconfined_u 系统低位-系统高位 *
system_u system_u 系统低-系统高 *
ubuntu unconfined_u 系统低-系统高 *
答案1
首先,你可以使用以下命令检查所有 SELinux 布尔值:
getsebool -a
您可以在那里检查是否存在与此问题有关的布尔值。
您可以尝试的另一件事是赋予用户不同的角色:
semanage login -a -s <role> <your_user>
只需确保角色与 root 用户(在本例中为 system_u)相同,但要注意安全风险。您可以随时使用以下命令返回:
semanage login -d <your_user>