• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

SELinux基础

  • iansiu
  • 2016-06-04
  • 0

SELinux (Secure Enhanced Linux) 安装增强Linux是由NSA针对计算机基础结构安全开发的一个全新的Linux安全进制。SELinux允许管理员更加灵活的定义安全策略。

SELinux是一个内核级的安全机制,从2.6内核之后集成在内核当中

主流的Linux发型版本都会集成SELinux机制,CentOS/RHTL默认会开启SELinux

因为SELinux是内核机制,所以对SELinux的修改一般需要重新启动

SELinux基本概念

所有的安全机制都是两样东西做出限制:进程和系统资源(文件、网络套接字、系统调用等)

SELinux针对这个两种类型定义了两个基本概念:域(domain)和上下文(context)

域用来对进程进行限制
上下文用来对系统资源进行限制

命令 ps -Z 可查看进程的域

命令 ls -Z 可查看文件的上下文

策略

SELinux的通过定义策略来控制那些域可以访问哪些上下文

SELinux有很多预置策略,我们通常不需要自定义策略(除非我们需要对自定义服务、程序进行保护)

CentOS/RHEL使用预置的目标(target)策略

目标(Target)策略定义只有目标进程受到SELinux限制,其它进程运行在非限制模式下。目标策略只影响网络应用程序。

CentOS/RHEL中,受限制的网络服务程序在200左右,常见的有:

dhcpd
httpd
mysqld
named
ntpd
rpcbind
squid
syslogd

SELinux模式

SELinux有三种工作模式

强制(enforcing)

违反策略的行动都被禁止,并作为内核信息记录

允许(permissive)

违反策略的行动都不被禁止,但是会产生警告信息

禁用(disabled)

SELinux模式的配置文件为 /etc/sysconfig/selinux

SELinux=permissive

命令getenforce可以查看当前SELinux工作状态

getenforce

命令setenforce可以设置当前SELinux工作状态

setenforce 0   //暂时关闭
setenforce 1   //暂时开启

策略、域、上下文

命令ps、ls加入-Z参数就可以显示对应的SELinux信息,显示的信息类似:

system_u :       object_r :       httpd_exec-t :   s0
用户(User) 角色(role) 类型(type) MLS、MCS

SELinux策略规定哪些域(进程)可以访问哪些上下文 (文件)

在对系统进行管理时,对文件的操作有时会改变文件的上下文,导致一些进程无法访问某些文件,所以我们一般需要检查、修改文件的上下文

命令 restorecon 可以用以恢复文件默认的上下文

restorecon -R -v /var/www

命令chcon可以用以改变文件的上下文

chcon --reference=/etc/named.conf.orig /etc/named.conf

实例

假设我们需要搭建一个web服务器,网页文件保存在/var/www/html目录中

用户在其家目录中编辑了一个网页,并将其通过mv命令移动到 /var/wwww/html 目录中

将SELinux设置为 enforcing 状态,通过浏览器访问该网页

查看 /var/log/audit/audit.log 中的报错信息

通过restorecon命令或chcon命令进行修复

© 2025 laowang's blog
Theme by Wing