SELinux介绍及如何配置

SELinux原理


概念

SELinux(Security-Enhanced Linux),即安全增强型 Linux,作为一款旨在强化系统安全性的 Linux 安全模块,其核心在于采用强制访问控制(Mandatory Access Control,简称 MAC)机制,以此为操作系统筑牢安全防线。

我们平日里较为熟悉的是标准的用户、组、其他 rwx 权限安全模型,这种以用户和组为基础的模型,被称作自由决定的访问控制(Discretionary Access Control,简称 DAC)。在 DAC 模式下,资源的所有者拥有绝对的决定权,能够自主决定哪些用户可以访问其资源,并且可以将相应的访问权限授予其他用户。然而,这种控制方式的层级相对较低,在那些高度定制化的安全环境中,往往难以提供足够的保护力度。

与之形成鲜明对比的是,SELinux 所采用的强制访问控制(MAC)规则,完全不受资源所有者主观意愿的影响。它通过一系列严谨的策略,对进程和用户访问资源的行为加以限制,从而为系统带来了更高级别的安全保障。


启用/禁用 SELinux


如果需要启用或禁用 SELinux,可以编辑 /etc/selinux/config 文件,并将 SELINUX 参数设置为 enforcing(启用)或 disabled(禁用)

我们也可以用命令的方式查看和更改模式。比如要确定当前的SELinux模式,运行getenforce命令。要将SELinux设置为其他模式,使用 setenforce命令

配置SELinux上下文


SELinux上下文(SELinux Context)是什么


在运行SELinux的系统上,所有进程和文件都会有相应的标签。标签代表了与安全有关的信息,称为SELinux上下文。

SELinux 上下文的格式通常是 “user:role:type”,例如 “system_u:object_r:httpd_sys_content_t”。其中,“system_u” 表示用户标识符,“object_r” 表示角色标识符,“httpd_sys_content_t” 表示类型标识符(每个对象都被赋予一个唯一的类型标识符,通过类型标识符限制了进程和资源之间的访问)。

显示文件或目录上的SELinux上下文


我们使用 ls 命令结合 -Z 选项来显示文件或目录上的 SELinux 上下文

ls -Z example.txt  #显示文件 "example.txt" 的 SELinux 上下文

ls -Zd my_directory  #显示目录 "my_directory" 的 SELinux 上下文



更改文件的SELinux上下文

在 SELinux 环境中,用于更改文件 SELinux 上下文的命令主要有三个,分别是semanage fcontext、restorecon和chcon,它们在功能和使用场景上各有不同。

chcon

chcon命令的作用是临时更改 SELinux 上下文。值得注意的是,它所做的上下文更改并不会被保存到 SELinux 上下文数据库中。这就意味着,一旦使用了restorecon命令,chcon命令之前所做的更改就会失效,无法保留下来。

semanage fcontext

若要为文件设置 SELinux 上下文,semanage fcontext命令是首选方法。使用该命令可以声明文件的默认标签,之后再搭配restorecon命令,就能将所设置的上下文应用到文件上。

semanage fcontext命令有一些常用的选项(部分),具体如下:

选项

描述

-a, --add

添加新的规则

-d, --delete

删除现有的文件规则

-l, --list

列出当前定义的文件上下文规则

-t, --type=TYPE

指定要应用的目标上下文类型

示例

假设我们搭建了一个 FTP 服务器,用于存储供用户下载的共享文件,其文件存放目录为/srv/ftp/shared,我们希望将该目录及其子目录和文件的安全上下文设置为public_content_t类型,确保 FTP 服务器能够正常访问这些文件。

首先,使用以下命令添加上下文规则:

semanage fcontext -a -t public_content_t "/srv/ftp/shared(/.*)?"

其中,-a表示添加新的规则,-t指定了要应用的目标上下文类型为public_content_t,"/srv/ftp/shared(/.*)?"是一个正则表达式,用于精准匹配/srv/ftp/shared目录以及该目录下的所有子目录和文件。

然后,使用以下命令使规则生效:

restorecon -Rv /srv/ftp/shared

这里的-R表示递归处理,会对/srv/ftp/shared目录下的所有子目录和文件逐一恢复上下文设置;-v表示显示详细的操作过程,让我们能清晰看到哪些文件的上下文被修改了。

完成上述操作后,/srv/ftp/shared目录及其包含的所有子目录和文件就都拥有了public_content_t类型的安全上下文,FTP 服务器也就能顺利访问并提供这些共享文件的下载服务了。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值