RHCE 学习笔记(21) - SELinux

简介:
原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://beanxyz.blog.51cto.com/5570417/1602424

这一节和老师学习了SELinux的基本知识。

SELinux的全称是Security Enhanced Linux, 直译就是安全加强的Linux。在SELinux之前,root账号能够任意的访问所有文档和服务;如果某个文件设为777,那么任何用户都可以访问甚至删除;这种方式称为DAC(主动访问机制),很不安全;SELinux则是基于MAC(强制访问机制),简单的说,就是程序和访问对象上都有一个标签进行区分,只有对应的标签才能允许访问。否则即使权限是777,也是不能访问的。


这个标签在程序或者进程上叫做domain(域),在访问对象或者文件上叫做context (上下文)。


查看上下文可以通过ls -Z,查看域可以使用 ps Z, 我高亮的部分就是他的上下文了


wKiom1SzT0iRlcInAACd_AOzUtk058.jpg


以httpd为例,这个httpd的进程只能允许访问/var/www/html下的文档对象。


wKioL1SzUB_QT8YlAAJMqPE5cYY345.jpg

wKiom1SzT1uD4bTXAACsCr7xuyo163.jpg



下面做个小实验,新建一个index.html文档,打开没有问题


wKioL1SzUCXT3yJrAABhYCYv1xA312.jpg

wKiom1SzT2DSk9NCAABlzG8Jxws073.jpg


在root的家目录下创建一个index2.html文档,并剪切到/var/www/html目录下,可以发现其默认的上下文是继承 /home的,标签不匹配,因此无法访问


wKioL1SzUDHCIh7DAAFw6DBM-SA433.jpg



wKiom1SzT27zA4FnAAChsMlQcis659.jpg


我甚至收到了SELinux的警告信息,打开看看

wKioL1SzUEXgOlK8AANW1CDQOaY478.jpg



在 /var/log/audit/audit.log 也可以查看这个报错


wKioL1SzUE_jZ2nEAAAxoLH3Wh4237.jpg


wKiom1SzT4ajFynJAAMzcDtCwjY471.jpg


如何修复?有两种方式,一种是通过restorerecon( restore context) 修复继承当前目录默认的上下文;一种是通过chcon (change context) 修改当前的上下文


自动恢复

wKioL1SzUFngKXEPAAFNBt7A-qk441.jpg


wKiom1SzT5Ojoh_EAABV549KnYE778.jpg

或者强行指定另外一个文件的上下文来设置

wKioL1SzUF2jw_kQAABb1qnjxIk639.jpg


那么这个默认的上下文是哪里来的呢,我们可以通过semanage来配置


wKiom1SzT67CPG7BAAILFRPbThg150.jpg



首先查看一下默认的上下文

wKioL1SzUI_AJHiRAAI24HYTA9M616.jpg


然后可以通过-a -t来强行修改,修改之后再restorecon一下,就变成了默认的context


wKiom1SzT9PzxEkaAAHflSOqju0291.jpg


SELinux 里面有3种模式,分别是Enforcing, Permissive, 和 Disable。 Enforing不匹配的直接就报错挡住了; Permissive会报错但是不会挡住, Disable就直接关掉SELinux 


可以通过getenforce 查看 setenfore 来设定。 注意他没法直接设定 Disable

wKiom1SzT9uBMb2RAADvO3qAWGM207.jpg


Disable 需要修改配置文件来生效

wKiom1SzT-aCnkFqAAH9pjPCqzk695.jpg


修改之后重启就可以了

wKioL1SzULWDS3jTAAHl_91JgPw759.jpg


改回来,重启,开机会出现一个警告,SELinux重新打标签会花时间~~

wKiom1SzT_ChFLUuAADqu5dcGgs817.jpg


进入系统,再看看最后一个概念,SELinux的布尔值。这个布尔值类似一个开关,打开的话,他对应的一些服务就允许执行,否则的话就拒绝执行。


看看有哪些布尔值


wKioL1SzUMmAgevBAAFHgr-GXYg623.jpg


知道了布尔值的名字,可以通过sesearch 来确认他关联了哪些服务的域,比如httpd_enable_homedir允许下列规则,如果设置为off的话,那么他们都是无法访问的


wKiom1SzUBuCMBwFAAJ66AWsrBg948.jpg


除了命令行,我们还可以访问图形界面


wKioL1SzUOvAEAxVAAAvvRZRxwg982.jpg

wKiom1SzUDDy-YQBAAE-hsJGerY667.jpg


总结一下,如果搭配了某个服务器,然后客户端无法正常访问,应该按照下面的顺序进行排错:


  1. 该服务的配置文件中是否开启了相关的权限 ,比如是否允许匿名用户写入等等;

  2. 文件系统的权限,比如是否需要使用chmod修改权限

  3. SELinux的上下文和布尔值


例子(创建FTP访问,略)

本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1602424

目录
相关文章
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
590 212
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
829 61
|
7天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1227 157
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
236 138
|
6天前
|
存储 安全 固态存储
四款WIN PE工具,都可以实现U盘安装教程
Windows PE是基于NT内核的轻量系统,用于系统安装、分区管理及故障修复。本文推荐多款PE制作工具,支持U盘启动,兼容UEFI/Legacy模式,具备备份还原、驱动识别等功能,操作简便,适合新旧电脑维护使用。
515 109