Linux之SElinux服务详解
SElinux -> Linux安全访问策略 -> 强制性 (security安全)
是Linux操作系统的一个额外的强制性的安全访问规则。用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。保护的对象是服务、服务对应的文件/目录、服务对应的端口;其中,服务的实例(实际运行当中的一个例子)就是进程,所以进程也受selinux的保护。可以被看作是与标准权限系统并行的权限系统,如果selinux开启,以root身份运行进程,访问文件不光要受用户对文件访问权限的限定,还要受进程对文件selinux上下文类型的限定,否则,就算是root用户运行的进程,也不一定能访问某个文件。
1).selinux 的三种模式(状态):
enforcing -> 强制模式 -> 拒绝非法访问并录入日志;
permissive -> 许可模式(警告模式) -> 暂时允许非法访问并录入日志;(debug)
disabled -> 禁用模式 -> 允许非法访问且不录入日志。
2).selinux 模式的切换:
getenforce -> 获取selinux状态
临时切换:
setenforce 0 -> 临时关闭selinux策略 -> enforcing-permissive
setenforce 1 -> 临时开启selinux策略 -> permissive-enforcing
永久切换:
#vim /etc/sysconfig/selinux
vim /etc/selinux/config ->
SELINUX=enforcing/permissive/disabled -> reboot生效
3).selinux 上下文 -> 在linux系统里面,每个文件、进程、端口都具有特别的安全标签,这个标签就是selinux上下文,它是selinux安全策略用来判断某个进程能否访问文件、目录或端口的工具。
A). 内容:
用户:角色:类型:敏感度 -> 类型是重点
-> 用户 -> 系统用户 (system_u);root及普通用户组成的未指定用户(unconfined_u)
-> 角色 -> 系统角色(system_r);未指定角色(unconfined_r);对象角色(object_r)
-> 类型 -> 以_t结尾,每一个服务都有三个方面的类型 -> 服务本身,服务对应的文件,服务对应的端口 -> 服务和对应的文件,它们的selinux上下文类型得是一一对应的,服务与对应的端口也是要一一对应的;但是,这不代表selinux上下文类型不能改,原则上是可以改的,只不过要做重新的类型配对。
-> 敏感度 -> s0,指的是安全等级,有0、1、2三种,数值越大,灵敏度越高
B). 查看selinux上下文:
查看文件的selinux上下文方法一 -> ll -Z filename
查看文件的selinux上下文方法二 -> semanage fcontext -l | grep filename -> filename要写文件的绝对路径 ->eg: semanage fcontext -l|grep /etc/ssh ->不一定能查看所有文件,所以还是方法一跟保险
查看进程的selinux上下文 -> ps -auxZ -> eg: ps -auxZ | grep sshd
查看所有(开放或不开放)端口的selinux上下文 -> semamage port -l | grep 端口号 -> semanage port -l | grep 22
查看当前已经开放的端口的selinux上下文 -> netstat -pantZ
4).修改selinux上下文类型:
A).文件 ->
a). 临时修改:
chcon -t 上下文类型 filename -> 将selinux设置成disabled后reboot,然后再设置成enforcing后reboot,修改会失效,将还原成原始默认类型 -> 不推荐使用
chcon -t httpd_sys_content_t /opt/testfile
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
#reboot
sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
#reboot
ll -dZ /opt/testfile
b). 永久修改:
semanage fcontext -a -t 上下文类型 ‘/filename(/.*)?’-> 注意:这里的filename要写绝对路径
restorecon -RFv /filename -> 强制递归刷新上下文类型并显示刷新过程
semanage fcontext -a -t httpd_sys_content_t '/opt/test(/.*)?'
restorecon -RFv /opt/test/
B).端口 -> 给一个端口添加selinux上下文类型
semanage port -a -t 端口上下文类型 -p tcp/udp 端口号
semanage port -a -t ssh_port_t -p tcp 22022
semanage port -l|grep ssh
-> 端口不用强刷
5).selinux布尔值 -> 当selinux开启时,系统默认会设置很多服务功能的开关,而且默认都是关闭的,sebool就是那个开关
a). 查看 -> getsebool -a (| grep 布尔值)
b). 设置开启或关闭 -> setsebool bool名 on/off
c). semanage boolean -l (| grep 布尔值)-> 查看布尔值是否永久开启(括号中右边那个值),并显示该布尔值状态的简短描述
注意:
a).文件会默认继承父文件夹的selinux类型;
b).文件被cp到新的文件夹下,会自动继承新文件夹的selinux上下文类型,但mv不会这样,仍会保留原上下文类型;
c).如果修改了某服务的配置文件位置,则必须重新修改该文件的selinux上下文类型,以重新匹配服务,否则服务无法访问该配置文件。
Linux之SElinux服务详解的更多相关文章
- Linux SELinux 介绍详解
Linux SELinux 介绍详解 SElinux 简介 SElinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的.它已被植入到了Linux系统的内核当中 ...
- linux系统设置服务开机启动3种方法,Linux开机启动程序详解
linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明 ...
- Linux中的sudoer详解
目录 Linux中的sudo详解 一.引言 二.格式 三./etc/sudoers文件 四.sudoers文件讲解 五.其他 Linux中的sudo详解 一.引言 Liunx用户只有两类: 管理员用户 ...
- CentOS 7.5关闭FireWall 和SELinux图文详解
CentOS 7.5关闭FireWall 和SELinux图文详解 1. 环境 CentOS 7.5 2. 关闭FireWall和SELinux 2.1 FireWall 使用systemctl st ...
- Linux下ps命令详解 Linux下ps命令的详细使用方法
http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...
- linux 开机启动过程详解
Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等 ...
- Linux开机启动程序详解
Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...
- Linux开机启动程序详解[转]
Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...
- Linux下chkconfig命令详解(转)
Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. ...
随机推荐
- 1.3 操作系统的第三个功能——存储管理功能 -《zobolの操作系统学习札记》
1.3 操作系统的第三个功能--存储管理功能 作者zobol:关于操作系统概论-存储管理功能,我给出下列问题: 目录 1.3 操作系统的第三个功能--存储管理功能 问1:操作系统的文件管理系统主要是负 ...
- Pisa-Proxy 之 SQL 解析实践
SQL 语句解析是一个重要且复杂的技术,数据库流量相关的 SQL 审计.读写分离.分片等功能都依赖于 SQL 解析,而 Pisa-Proxy 作为 Database Mesh 理念的一个实践,对数据库 ...
- Linux的文件路径和访问文件相关命令
Linux的绝对和相对路径 绝地路径 绝对路径:以根作为起来的路径 相对路径 相对路径:以当前位置作为起点 文件操作命令 显示当前工作目录: pwd命令 pwd:显示文件所在的路径 基名:basena ...
- Spring框架系列(9) - Spring AOP实现原理详解之AOP切面的实现
前文,我们分析了Spring IOC的初始化过程和Bean的生命周期等,而Spring AOP也是基于IOC的Bean加载来实现的.本文主要介绍Spring AOP原理解析的切面实现过程(将切面类的所 ...
- 021(Keywords Search)(AC自动机)
题目:http://ybt.ssoier.cn:8088/problem_show.php?pid=1479 题目思路:一道AC自动机的模板题 备注:还不会字典树和KMP的尽早回去重修 如果让你在一篇 ...
- Neural Networks
神经网络能够使用torch.nn包构建神经网络. 现在你已经对autogard有了初步的了解,nn基于autograd来定义模型并进行微分.一个nn.Module包含层,和一个forward(inpu ...
- 如何快速体验OneOS
随便逛了逛 之前有简单了解过OneOS,今天逛了下OneOS专区,发现官方终于也在宣传方面发力了啊,很多文章都非常专业,也有开发者在专区里面提问题了.也发现,部分开发者倒在了第一步,如何编译下载运行O ...
- C#金额数字转换中文繁体
/// <summary> /// 数字转换中文繁体金钱 /// </summary> /// <param name="Digital">&l ...
- Assembly.GetManifestResourceStream为null
想把某个项目的某个文件夹里面的ini文件生成的时候顺便生成为网站和服务文件夹项目 string _path = Path.Combine(AppDomain.CurrentDomain.BaseDir ...
- 4-4 Spring Test
Spring Test Ⅰ.主要解决的问题 使用SpringTest前 手动加载Sping配置 手动从Spring容器中获取对象 使用SpringTest后 只需要通过注解指定Spring配置类 在S ...