Linux SELinux

SELinux是一种由NSA开发的Linux安全体系结构,它提供了精细的访问控制,允许管理员定义应用、进程和文件的访问规则。通过安全策略和安全上下文,SELinux决定系统中哪些进程可以访问哪些资源,防止未授权访问并提供服务隔离、最小权限管理、系统文件保护等功能。此外,它还用于审计、监控和容器安全,确保系统安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Security-Enhanced Linux(SELinux)是一种Linux系统的安全体系结构,允许管理员对系统访问权限进行更精细的控制。它最初由美国国家安全局(NSA)开发,使用Linux安全模块(LSM)对Linux内核打了一系列补丁。

SELinux于2000年发布给开源社区,并于2003年集成到Linux内核中。

SELinux如何工作?

SELinux为系统上的应用、进程和文件定义访问控制。它使用安全策略,安全策略是一组规则,告诉SELinux什么可以或不能被访问,以执行策略允许的访问。

当主体(如应用或进程)发出请求访问对象(如文件)时,SELinux会检查访问向量高速缓存(AVC),其中缓存了主体和对象的权限。

如果SELinux无法根据缓存就访问权限做出决定,它会将请求发送到安全服务器。安全服务器会检查应用、进程和文件的安全上下文做出决定。安全上下文是根据SELinux策略数据库生成的。

如果权限被拒绝,avc: denied消息将出现在/var/log.messages

SELinux如何配置

有几种方式可以配置SELinux来保护系统。最常见的是针对策略(targeted policy)或多级安全(MLS)。

针对策略是默认选项,涵盖一系列进程、任务和服务。MLS可能非常复杂,通常仅政府组织使用。

可以通过查看/etc/sysconfig/selinux文件来确定系统应该运行的内容。该文件将包含一个部分,显示SELinux是否处于宽容模式强制模式禁用模式,以及应加载哪种策略。

  • /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

SELinux的视角下,系统中的所有文件、进程和端口都有关联的标签。标签用于将这些受保护资源按照逻辑分类。内核会在启动过程中管理标签。

标签格式为:user:role:type:level(level可选)userrolelevel更常用于MLS等高级SELinux实现。对于目标策略,type是最重要的。

SELinux依据类型来执行策略。这些策略定义了是否此种类型的进程可以访问这种类型的文件?

常用用例

  • 隔离服务: 为不同的服务指定不同的域,实现进程隔离。例如,可以为httpd、mysqld等服务指定不同的域,防止它们相互访问。
  • 实现最小权限: 给不同的服务指定最小的权限,限制其访问权限范围。例如,可以禁止httpd访问用户home目录。
  • 保护系统文件: 定义不同的文件类型,并指定哪种类型的进程可以访问这些文件。例如,可以禁止普通用户进程访问系统日志文件。
  • 限制软件功能: 禁止某些软件的某些功能。例如,可以禁止sshd进行端口转发。
  • 防止未知漏洞利用:SELinux以策略为中心,当某个服务出现漏洞时,攻击者即使获取了服务权限,也无法轻易破坏系统或访问重要文件,因为策略可以限制服务的权限范围。
  • 审计与监控: 审计所有访问控制决策,可以根据审计日志监控谁在访问什么资源,检测异常活动。
  • 容器化: 为容器技术如Docker提供了安全机制,可以为不同容器指定安全上下文,实现容器隔离。

总之,是一个功能强大的mandatory access control机制。可以为系统提供全面的安全控制,应用于服务隔离、最小权限原理、重要文件保护、软件限制、漏洞利用防护、审计与监控等方面。结合容器等新技术,还可以实现微服务与容器安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值