SELinux详解之第一章——基本介绍

SELinux是什么?

SELinux全称Security Enhanced Linux(安全性增强Linux),意在现有的Linux系统中额外增加一层安全控制层面,主要就是在解决某某应用是否可访问某某文件的问题。SELinux通常是和Linux自带的DAC(目录权限控制)(也就是平常ls后看到的rwx之类的)一起工作。SELinux实现了MAC(强制访问控制),即为系统中每个文件和进程打上标签SELinux上下文标签,在进程对文件进行访问时,对标签进行检测,查看是否有可以访问。

使用SELinux的好处

  • 所有进程和文件均会被SELinuxSELinux策略规则定义了进程与文件的交互方式以及进程之间的交互方式。仅当存在专门允许访问的SELinux策略规则时,才允许访问。
  • 提供细粒度的访问控制。 SELinux访问决策超越了由用户自行决定并基于Linux用户和组ID控制的传统UNIX权限,它基于所有可用信息,例如SELinux用户,角色,类型以及(可选)安全级别。
  • SELinux策略是在整个系统范围内由管理人员定义和实施的。
  • 改进了缓解特权升级攻击的方法。进程在域中运行,因此彼此分开。
  • SELinux策略规则定义了进程如何访问文件和其他进程。如果某个进程受到威胁,则攻击者只能访问该进程的正常功能,并且可以访问该进程已配置为有权访问的文件。例如,如果Apache HTTP Server受感染,除非添加或配置了特定的SELinux策略规则或允许这种访问,否则攻击者无法使用该过程读取用户主目录中的文件。
  • SELinux可用于强制执行数据机密性和完整性,并保护进程免受不受信任的输入。

注意:SELinux并不是防病毒软件,密码管理器,防火墙和其他安全系统的替代品。SELinux旨在增强现有的安全解决方案,而不是替代它们。即使在运行SELinux时,也必须继续遵循良好的安全惯例,例如使软件保持最新,使用难以猜测的密码或防火墙规则。

初步了解SELinux

以下操作以Centos 7为例,其他发行版Linux命令基本一致,只需注意包管理器的安装命令即可

启用SELinux

要使用SELinux,首先我们需要确保其是可用的,使用如下命令查看

[root@localhost ~]# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   permissive
Mode from config file:          error (Success)
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31
# 如果没在运行我们需要设置为Permissive模式,然后重启
[root@localhost ~]# setenforce 0
Permissive

为了避免以下的操作出现,命令找不到的情况,我们先安装以下几个软件包:

[root@localhost ~]# yum install -y setools selinux-policy-devel setroubleshoot-server

然后我们需要确保 auditd and rsyslog守护进程是运行的。

[root@localhost ~]# systemctl enable auditd.service&&systemctl enable auditd.service

这两个守护进程是负责记录SELinux在运行过程中文件访问的AVC(Access Vector Cache)(其实就是被拦截的操作)信息的,拦截的信息一般会被记录在两个文件中。

  • /var/log/audit/audit.log,记录格式如下:
type=AVC msg=audit(1223024155.684:49): avc: denied { getattr } for pid=2000 comm="httpd"
path="/var/www/html/file1" dev=dm-0 ino=399185 scontext=unconfined_u:system_r:httpd_t:s0
tcontext=system_u:object_r:samba_share_t:s0 tclass=file
  • /var/log/message,记录格式如下:
May 7 18:55:56 localhost setroubleshoot: SELinux is preventing httpd (httpd_t) "getattr" to
/var/www/html/file1 (samba_share_t). For complete SELinux messages. run sealert -l de7e30d6-
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值