SELinux学习笔记(草稿2022/8/17)

只是个草稿,原封不动的存档一下,只是为存档而存档

[原始文件 selinux.txt.20220817_1810]

selinux.txt    2022/8/17 18:10
-----------------------


SELinux 上下文(context)

每个进程和系统资源都有一个特殊的安全性标签,称为 SELinux 上下文(context)。SELinux 上下文有时被称为 SELinux 标签,它是一个提取系统级别细节并专注于实体的安全属性的标识符。这不仅提供了在 SELinux 策略中引用对象的一个一致方法,而且消除了在其他身份识别系统中可能存在的模糊性。例如,某个文件可以在使用绑定挂载的系统中有多个有效的路径名称。

SELinux 策略在一系列规则中使用这些上下文,它们定义进程如何相互交互以及与各种系统资源进行交互。默认情况下,策略不允许任何交互,除非规则明确授予了相应的权限。 

 SELinux 上下文包括以下字段: user(用户)、role(角色)、type(类型)和 security level(安全级别)。在 SELinux 策略中,SELinux 类型信息可能是最重要的。这是因为,最常用的、用于定义允许在进程和系统资源间进行的交互的策略规则会使用 SELinux 类型而不是 SELinux 的完整上下文。SELinux 类型以 _t 结尾.例如,Web 服务器的类型名称是 httpd_t。通常位于 /var/www/html/ 中的文件和目录的类型上下文是 httpd_sys_content_t。通常位于 /tmp 和 /var/tmp/ 中的文件和目录的类型上下文是 tmp_t。Web 服务器端口的类型上下文是 http_port_t。 

https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/using_selinux/getting-started-with-selinux_using-selinux


SELinux 域(domain)的概念允许定义哪些进程可以访问某些文件和目录


SELinux 构架和软件包
内置在 Linux 内核中的 Linux 安全模块(LSM)
系统服务由 systemd 守护进程控制
RHEL 8 提供以下用于 SELinux 的软件包:
    策略: selinux-policy-targeted、selinux-policy-mls
    工具:policy coreutils、policycoreutils-gui、libselinux-utils、policycoreutils-python-utils、setools-console、checkpolicy


重要工具/命令

semanage  - SELinux Policy Management tool
setsebool - set SELinux boolean value




SELinux 可使用三种模式之一运行: enforcing(强制)、permissive(宽容)或 disabled(禁用)。 

配置文件:/etc/selinux/config

可以使用 sestatus 命令返回 SELinux 状态以及正在使用的 SELinux 策略



用户映射
每个 Linux 用户都使用 SELinux 策略映射到 SELinux 用户

#semanage login -l

背后的配置文件  /etc/selinux/targeted/seusers





新用户将默认映射到 SELinux 用户 unconfined_u 
如果指定映射到指定 SELinux用户上,可以使用 useradd 的 -Z 参数指定,如: useradd -Z staff_u example.user
指定已有用户到 SELinux 用户上,可使用 semanage login 命令实现,也支持 linux用户组、 __default__


命令 seinfo 可用来查 SELinux 策略中定义的用户、角色、规则等
seinfo allows the user to query the components of a SELinux policy.


您可以通过调整策略中的布尔值,根据特定需求自定义 SELinux 策略中受限用户的权限。您可以使用 semanage boolean -l 命令确定这些布尔值的当前状态。 





管理文件系统标签,有多个命令可用 chcon、semanage fcontext、restorecon 和 matchpathcon

临时更改 chcon
chcon 用于临时更改,所做的更改不会在文件系统重新标记或执行 restorecon 命令之间保留。如
chcon -t httpd_sys_content_t file-name
chcon -R -t httpd_sys_content_t directory-name
所以该命令,实际使用并不多;或在调试时使用。


恢复为策略中定义的默认值 restorecon
restorecon - restore file(s) default SELinux security contexts.
实际使用时,通常使用 -Rv 参数,同时递归设置子文件并显示过程
默认值定义在 /etc/selinux/targeted/contexts/files/ 下的文件中


持久性更改:semanage fcontext
示例:semanage fcontext -a -t samba_share_t /etc/file1
其中文件路径支持 PCRE;更改后要应用更改才生效
restorecon -v file-name|directory-name


SELinux File Context 定义文件的优先级
本地更改 file_contexts.local > file_contexts.homedirs > file_contexts
还有其他文件,redhat 说得语焉不详的



https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/how-file-context-is-determined


https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/selinux_users_and_administrators_guide/sect-security-enhanced_linux-working_with_selinux-selinux_contexts_labeling_files

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据