Ubuntu的SELinux
- 安装的软件包:selinux-policy-targeted
、
libselinux-utils、 policycoreutils
命令行命令
以下默认root用户输入命令
- 确保在下次重启时重新标记文件,会在根目录创建.autorelabel文件
sh
fixfiles -F onboot
状态和模式
- 查看当前的 SELinux 模式
sh
getenforce
#或
sestatus
- 暂时更改为 enforcing 模式
sh
sudo setenforce 1
- 暂时更改为 permissive 模式
sh
setenforce 0
- 查看 SELinux 拒绝的操作
sh
sudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts today
sudo ausearch -m AVC,USER_AVC,SELINUX_ERR,USER_SELINUX_ERR -ts recent
sudo dmesg | grep -i -e type=1300 -e type=1400
用户
- 切换到
root
用户
sh
sudo -i
- 查看 SELinux 用户映射
sh
sudo semanage login -l
- 列出可用的 SELinux 用户
sh
seinfo -u # setools-console软件包需要安装
- 确定布尔值的当前状态
sh
sudo semanage boolean -l
# 由于boolean状态很多,可以做些筛选
# 识别与 NFS、CIFS 和 Apache 相关的 SELinux 布尔值
semanage boolean -l | grep 'nfs\|cifs' | grep httpd
# 列出布尔值的当前状态
getsebool -a | grep 'nfs\|cifs' | grep httpd
# 启用指定的布尔值
setsebool -P httpd_use_nfs on # 可使系统重启后设置具有持久性
setsebool httpd_use_cifs on
- 列出所有 SELinux 用户、其 SELinux 角色以及 MLS 和 MCS 的级别和范围
sh
sudo semanage user -l
1) system_u
是系统进程和对象的特殊用户身份,system_r
是关联的角色。管理员不得将这个 system_u
用户和 system_r
角色关联到 Linux 用户。另外,unconfined_u
和 root
是没有限制的用户
- 列出所有可用角色
sh
seinfo -r # setools-console软件包需要安装
-
检查 Linux 用户的上下文
id -Z
-
显示用户当前进程的安全上下文
sh
[<example_user>@localhost ~]$ ps axZ
端口号
- 为
http_port_t
端口类型添加端口号9999
sh
semanage port -a -t http_port_t -p tcp 9876
# a 选项添加新的记录; -t 选项定义类型; -p 选项定义协议。最后的参数是要添加的端口号