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服务详解的更多相关文章

  1. Linux SELinux 介绍详解

    Linux SELinux 介绍详解 SElinux 简介 SElinux (Security Enhanced Linux)是由美国国家安全局(NSA)开发的.它已被植入到了Linux系统的内核当中 ...

  2. linux系统设置服务开机启动3种方法,Linux开机启动程序详解

    linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图     方法2:利用命令行chkconfig命令进行设置 简要说明 ...

  3. Linux中的sudoer详解

    目录 Linux中的sudo详解 一.引言 二.格式 三./etc/sudoers文件 四.sudoers文件讲解 五.其他 Linux中的sudo详解 一.引言 Liunx用户只有两类: 管理员用户 ...

  4. CentOS 7.5关闭FireWall 和SELinux图文详解

    CentOS 7.5关闭FireWall 和SELinux图文详解 1. 环境 CentOS 7.5 2. 关闭FireWall和SELinux 2.1 FireWall 使用systemctl st ...

  5. Linux下ps命令详解 Linux下ps命令的详细使用方法

    http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...

  6. linux 开机启动过程详解

    Linux开机执行内核后会启动init进程,该进程根据runlevel(如x)执行/etc/rcx.d/下的程序,其下的程序是符号链接,真正的程序放在/etc/init.d/下.开机启动的程序(服务等 ...

  7. Linux开机启动程序详解

    Linux开机启动程序详解我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤. ...

  8. Linux开机启动程序详解[转]

    Linux开机启动程序详解 我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤 ...

  9. Linux下chkconfig命令详解(转)

    Linux下chkconfig命令详解 chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息.谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. ...

随机推荐

  1. 老子云AMRT全新三维格式正式上线,其性能全面超越现有的三维数据格式

    9月16日,老子云AMRT全新三维格式正式上线,其性能远超现有的三维数据格式.目前已有含国家超算长沙中心.中科院空间所.中车集团等上百家政企事业单位的项目中使用了AMRT格式,大大提升了可视化项目的开 ...

  2. 能快速搭建三维场景,这款3D全场景编辑器你还没用过吗?

    今天就给大家分享一个非常好用的老子云3D全场景编辑器,不仅可以基于GIS数据,帮助用户快速搭建3D城市大场景.实现Web端流畅展示. 并且搭建的3D场景可离线开发成一个空间信息直观的.可交互.易于设计 ...

  3. npm发布包以及更新包还有需要注意的几点问题(这里以发布vue插件为例)

    前言 在此之前,你需要去npm官网注册一个属于自己的账号,记住自己的账户名以及密码.邮箱,后面会用的到.第一步,安装webpack简易框架 vue init webpack-simple marque ...

  4. node图片压缩的两员大将

    一.ishrink 全局安装 npm i ishrink -g 1.按url方式压缩 本地图片地址 sk -u C:\Users\admin\Desktop\images\img 网络图片地址 sk ...

  5. HTML\Flex tips

    相关文档 HTML:https://www.w3school.com.cn/html/index.asp bootstrap-css: https://v3.bootcss.com/css/#form ...

  6. 用console画条龙?

    相识 console一定是各位前端er最熟悉的小伙伴了,无论是console控制台,还是console对象,做前端做久了,打开一个网页总是莫名自然的顺手打开控制台,有些调皮的网站还会故意在控制台输出一 ...

  7. NC14731 逆序对

    NC14731 逆序对 题目 题目描述 求所有长度为 \(n\) 的 \(01\) 串中满足如下条件的二元组个数: 设第 \(i\) 位和第 \(j\) 位分别位 \(a_i\) 和 \(a_j\) ...

  8. 虚拟机安装Centos7.5详细教程

    VMware15.5虚拟机安装CentOS7.5详细教程   (前言)软件下载   需要VMware15.5软件和密匙的小伙伴可以从此地址下载:https://pan.baidu.com/s/1A8H ...

  9. final关键字概念与四种用法和final关键字用于修饰类和成员方法

    fifinal关键字 概述 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写.那么我们能不能随意的继承 API中提供的类,改写其内容呢?显然这是不合适的.为了避免这种随意改写 ...

  10. thymeleaf实现前后端数据交换

    1.前端传数据后端接收: 用户在登录界面输入用户名和密码传给后端controller,由后端判断是否正确! 在html界面中要传递的数据name命名,通过表单的提交按钮会传递给响应的controlle ...