linux初学者-SElinux篇
SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统。对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的,这是一种基于内核的安全系统。
1、SElinux的状态
命令"getenforce"可以查看SElinux的状态,SElinux的状态分为以下三种:
Enforcing (1) 强制模式
Permissive (0) 警告模式
Disabled 关闭模式
"setenforce"可以设置SElinux的状态,但是只能设置0和1两种,即警告模式或者强制模式。如果需要关闭,则在配置文件"/etc/sysconfig/selinux"下将"SELINUX=enforcing"改为"SELINUX=disabled",因为SElinux是基于内核的安全系统,所以在设置完成之后需要重启内核,即需要重启电脑才可以生效。
2、SElinux对服务的影响
SElinux是最全面的安全系统,所以会对文件和服务有一定的限制,以下服务以ftp为例。
SElinux会在文件上做出上下文标识,例如下图所示,在"/mnt"和"/var/ftp/pub"下分别建立文件"file",输入"ls -Z"可以查看文件标识。可以看出,"/mnt/file"为"mnt_t",而"/var/ftp/pub/file"标识为"public_content_t",这样会导致将"/mnt/file"移入"/var/ftp/pub"目录下,连接lftp无法看到这个文件。
SElinux为了系统的安全,会禁止服务一些危险功能的使用,可以输入"getsebool -a | grep ftp"来查看禁止了ftp服务的哪些功能,如下图所示,输入"setsebool -P 功能 on|off"可以控制这些功能的开关。
3、SElinux的上下文管理
之前提到SElinux会在目录和文件上留下上下文标识,输入"ls -Z"可以查看。命令"chcon -t 上下文 文件"可以更改文件和目录的上下文标识,就可以解决上述中lftp无法看到其他上下文标识文件的问题。例如下图所示,现有两个不同上下文标识的文件"txt"和"file"连接lftp后可以看到"file",输入"chcon -t public_content_t /var/ftp/pub/txt"后,重新连接lftp,就可以看到"file"和"txt"两个文件了。
如下图所示,将匿名用户登陆的家目录改为"/westos",并将标识改为"public_content_t",连接lftp可以看到这个家目录。但是将SElinux的状态改为"disabled"重启后再改回"enforcing",重启后重新连接lftp,发现无法看见家目录了。
上述情况说明使用"chcon"命令改变目录的上下文标识只是临时的。永久改变目录的上下文标识,需要做如下步骤:
a、使用命令"semanage fcontext -l | grep /westos"查看该目录是否有上下文规则。
b、输入"semanage fcontext -a -t public_content_t '/westos(/.*)?'"为"/westos"添加上下文规则,并通过a步骤命令查看。
c、查看到上下文规则后,输入命令"restorecon -RvvF /westos"将规则同步至目录及其子目录。
上述步骤完成后就可以永久改变"/westos"目录的上下文标识了,重新连接lftp就可以看到目录了。
4、SElinux的日志
在SElinux的使用当中,会出现一些错误,例如连接lftp后无法看到里面的文件,或者在进行配置时某一步出现错误。这些错误出现后是可以查出来并且解决的,这就是SElinux日志的使用。
SElinux的日志会记录在"/var/log/audit/audit.log"和文件"/var/log/messages"中,前者只会说明错误,但是不会提供解决办法,且阅读复杂。"/var/log/messages"文件可以详细的记录错误,并且提供解决方法,SElinux的记录软件是"setroubleshoot-server.x86_64"。下面将以lftp连接后无法看到里面的文件来具体介绍。
前面已做叙述,如果不改变下图中的"file1"文件的上下文标识,是无法看到这个文件的。
在没有"setroubleshoot-server.x86_64"这个软件的情况下,清空日志后,发现日志中并不会记录这个错误。
然后安装这个软件后,重新连接,再查看日志,其中就会出现这个错误的具体日志。并且会提供解决方法,根据解决方法就可以解决这个问题了。
linux初学者-SElinux篇的更多相关文章
- linux初学者-ftp篇(一)
linux初学者-ftp篇(一) FTP是文件传输协议,是用于Internet上的控制文件的双向传输.用户可以通过客户机程序从远程主机上下载或者向远程主机上传文件. linux系统中,如果不了解SEL ...
- linux初学者-firewall篇
linux初学者-firewall篇 firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用. 1.firewa ...
- linux初学者-mail篇
linux初学者-mail篇 邮件是在生活中比较常用的一个工具,在linux系统中的邮件也是.在linux中,邮件的发送所用的服务时postfix,邮件的接收所用的服务是pop(110端口).ima ...
- linux初学者-iptables篇
linux初学者-iptables篇 iptables是防火墙的一种,是用来设置.维护和检查linux内核的IP过滤规则的,可以完成封包过滤.封包重定向和网络地址转换(NAT)等功能. iptabl ...
- linux初学者-Apache篇
linux初学者-Apache篇 Apache提供了超文本传输协议http,httpd是Apache超文本传输协议的主服务器.下文将对httpd的安装和配置进行简单的叙述. ...
- linux初学者-iscsi篇
linux初学者-iscsi篇 之前介绍过网络文件共享系统NFS和CIFS.在系统中,设备也是可以共享的,这就是iSCSI,它可以用来建立和管理IP存储设备.主机和客户机等之间的相互 ...
- linux初学者-磁盘阵列篇
linux初学者-磁盘阵列篇 在磁盘的使用中,有时候需要提高磁盘的读写数据速度,就要用到磁盘组——raid,也就是磁盘阵列. 磁盘阵列是由最少两块以上的磁盘组成的,raid有许多模式,在这里将介绍其中 ...
- linux初学者-进程篇
linux初学者-进程篇 不管是windows还是linux,都有进程,那么什么是进程呢?进程就是cpu未完成的工作.下面会介绍一些关于系统中进程的查看以及管理的方法. 1.命令 1.1.命令使用 查 ...
- linux初学者-CIFS网络文件系统篇
linux初学者-CIFS网络文件系统篇 CIFS是一种通用网络文件系统,主要用于网络设备之间的文件共享.CIFS可以在linux系统和windows系统之间共享文件,因此这种文件系统主要用于客户端是 ...
随机推荐
- 【Web前端Talk】React-loadable 进行代码分割的基本使用
随着项目功能的扩充.版本迭代,我们与Webpack捆绑起来的的项目越来越大,大到开始影响加载速度了.这时我们就该考虑如何对代码进行拆分了. 这次我们一起学习一下如何对React项目中的代码进行Code ...
- kafka笔记2
Kafka是使用java开发的程序,所以它可以运行在多种操作系统上,安装Kafka之前,需要先安装Java环境,再安装zookeeper broker常规配置 1.broker.id 每个broker ...
- Django框架之前端渲染-模板层
Django 模板层 Django 模板层 前后端数据传递 (1) 后端朝前端页面传递数据的方式: # 将当前所在的名称空间中的名字全部传递给前端页面 # 第一种 return render( ...
- Android前沿技术
一.热升级Tinker源码解析与手写二.热修复阿里百川Sophix内核原理三.App Instantgoogle8.0 类似热更新技术原理与实战四.强制更新1.银行应用非对称加密对称加密五.组件化框架 ...
- 编解码器之战:AV1、HEVC、VP9和VVC
视频Codec专家Jan Ozer在Streaming Media West上主持了一场开放论坛,邀请百余名观众参与热门Codec的各项优势与短板.本文整理了讨论的主要成果,基本代表了AV1.HEVC ...
- CentOS7系统安装
CenOS7安装系统 镜像下载地址: http://isoredirect.centos.org/centos/7/isos/x86_64/ https://mirrors.aliyun.com/ce ...
- Qt之股票组件-自选股--列表可以拖拽、右键常用菜单
目录 一.开头嘴一嘴 二.效果展示 三.自选股列表 1.列表初始化 2.添加Item 3.右键菜单 4.拖拽Item 5.刷新数据 四.相关文章 原文链接:Qt之股票组件-自选股--列表可以拖拽.右键 ...
- kafka迁移topic
1. 准备移动 这里假设要移动的topic名称为:topicA.topicB vim topics-to-move.json {"topics": [{"topic&qu ...
- 跟着大彬读源码 - Redis 2 - 服务器如何响应客户端请求?(上)
上次我们通过问题"启动服务器,程序都干了什么?",跟着源码,深入了解了 Redis 服务器的启动过程. 既然启动了 Redis 服务器,那我们就要连上 Redis 服务干些事情.这 ...
- css实现超出文本溢出用省略号代替
一.单行 实现单行文本的溢出显示省略号使用text-overflow:ellipsis属性,但需要配合使用另外两个属性使用才能达到效果. 如下: overflow:hidden; text-overf ...