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不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接. ...
随机推荐
- 老子云AMRT全新三维格式正式上线,其性能全面超越现有的三维数据格式
9月16日,老子云AMRT全新三维格式正式上线,其性能远超现有的三维数据格式.目前已有含国家超算长沙中心.中科院空间所.中车集团等上百家政企事业单位的项目中使用了AMRT格式,大大提升了可视化项目的开 ...
- 能快速搭建三维场景,这款3D全场景编辑器你还没用过吗?
今天就给大家分享一个非常好用的老子云3D全场景编辑器,不仅可以基于GIS数据,帮助用户快速搭建3D城市大场景.实现Web端流畅展示. 并且搭建的3D场景可离线开发成一个空间信息直观的.可交互.易于设计 ...
- npm发布包以及更新包还有需要注意的几点问题(这里以发布vue插件为例)
前言 在此之前,你需要去npm官网注册一个属于自己的账号,记住自己的账户名以及密码.邮箱,后面会用的到.第一步,安装webpack简易框架 vue init webpack-simple marque ...
- node图片压缩的两员大将
一.ishrink 全局安装 npm i ishrink -g 1.按url方式压缩 本地图片地址 sk -u C:\Users\admin\Desktop\images\img 网络图片地址 sk ...
- HTML\Flex tips
相关文档 HTML:https://www.w3school.com.cn/html/index.asp bootstrap-css: https://v3.bootcss.com/css/#form ...
- 用console画条龙?
相识 console一定是各位前端er最熟悉的小伙伴了,无论是console控制台,还是console对象,做前端做久了,打开一个网页总是莫名自然的顺手打开控制台,有些调皮的网站还会故意在控制台输出一 ...
- NC14731 逆序对
NC14731 逆序对 题目 题目描述 求所有长度为 \(n\) 的 \(01\) 串中满足如下条件的二元组个数: 设第 \(i\) 位和第 \(j\) 位分别位 \(a_i\) 和 \(a_j\) ...
- 虚拟机安装Centos7.5详细教程
VMware15.5虚拟机安装CentOS7.5详细教程 (前言)软件下载 需要VMware15.5软件和密匙的小伙伴可以从此地址下载:https://pan.baidu.com/s/1A8H ...
- final关键字概念与四种用法和final关键字用于修饰类和成员方法
fifinal关键字 概述 学习了继承后,我们知道,子类可以在父类的基础上改写父类内容,比如,方法重写.那么我们能不能随意的继承 API中提供的类,改写其内容呢?显然这是不合适的.为了避免这种随意改写 ...
- thymeleaf实现前后端数据交换
1.前端传数据后端接收: 用户在登录界面输入用户名和密码传给后端controller,由后端判断是否正确! 在html界面中要传递的数据name命名,通过表单的提交按钮会传递给响应的controlle ...