当前位置: 首页 > news >正文

安全强化的Linux

SElinux简介

        SELinux是security-Enhanced Linux的缩写,意思是安全强化的linux

        SELinux主要由美国国家安全局(NSA)开发,当初开发的目的是为了避免资源的误用。传统的访问控制在我们开启权限后,系统进程可以直接访问

             当我们对权限设置不严谨时,这种访问方式就是系统的安全漏洞

在开启SElinux后

             会对进程本身部署安全上下文

             会对文件部署安全上下文

             会对服务使用端口进行限制

             会对程序本身的不安全功能做限制

selinux的工作原理

SElinux的工作方式

SELinux是通过MAC的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源

        主体(subject):就是进程

        目标(object):被主体访问的资源,可以是文件、目录、端口等。

        策略(policy):由于进程与文件数量庞大,因此SELinux会依据某些服务来制定基本的访问安全策略

               otargeted:针对网络服务限制较多,针对本机限制较少,是默认的策略;ostrict:完整的SELinux限制,限制方面较为严格。

SELinux的安全上下文

安全上下文(securitycontext):

        主体能不能访问目标除策略指定外,主体与目标的安全上下文必须一致才能够顺利访问。

        最终文件的成功访问还是与文件系统的rwx权限设置有关

安全上下文的查看

# ls -Z

进程安全上下文查看

# ps axZ | grep vsftpd

安全上下文用冒号分为四个字段:ldentify:role:type:

        身份标识(Identify):相当于账号方面的身份标识,主要有以下三种常见的类型:root:表示root的账号身份;

                systemU:表示程序方面的标识,通常就是进程;

                unconfinedu:代表的是一般用户账号相关的身份。

        角色(role):通过角色字段,可知这个数据是属于程序、文件资源还是代表用户。

                一般角色有:objectr:代表的是文件或目录等文件资源;    systemr:代表的是进程。

        类型(type):在默认的targeted策略中,ldentify与role字段基本上是不重要的,重要的在于这个类型字段。而类型字段在文件与进程的定义不太相同。

                分别是:type:在文件资源上面称为类型。   domain:在主体程序中则称为域

        odomain需要与type搭配,则该程序才能够顺利读取文件资源。

        代表灵敏度,一般用SO、S1、S2来命名,数字代表灵敏度的分级。数值越大、灵敏度越高

对于SElinux的管理及优化

SElinux的工作模式SElinux有三种工作模式:

        oenforcing:强制模式,开始限制domain/type.

        opermissive:宽容模式,仅会有警告信息并不会实际限制domain/type的访问。

        odisabled:关闭,SELinux并没有实际运行。

对于SElinux状态管理查看SElinux当前状态查看

# setsebool -P ftpd_full_access off

# getenforce          【查看工作模式,1   Enforcing强制模式,0   Permissive警告模式】

临时更改SElinux的工作模式

# setenforce 0/1)     【0表示警告模式(警告但可运行),1表示强制模式(不可运行)】

永久更改SElinux状态

在RHEL9之前的版本中通过文件来永久更改SElinux的状态

# viM/etc/se1inux/config

在RHEL9中需要通过修改内核启动参数来永久更改SElinux的状态

# grubby --update-kernel ALL --args selinux=1    —开

# grubby --update-kernel ALL --args selinux=0    —关

如何开启selinux

# grubby --update-kernel ALL --args selinux=1

# reboot

管理文件的安全上下文

# dnf install nginx -y                       【下载】

# systemctl enable --now nginx              【开火墙】

# systemctl disable --now firewalld

# cd /usr/share/nginx/html/

# rm -fr index.html

# echo /mnt/index.html > /mnt/index.html       【输入内容】

# mv /mnt/index.html /usr/share/nginx/html/index.html     【移动文件】

# ls -Z /usr/share/nginx/html/   运行结果:

临时更改文件的安全上下文

chcon  [-R]  [-t type]  [-u user]  [-r role]  文件

        -R:连同该目录下的子目录也同时修改

        -t:后面接安全上下文的类型字段

# chcon -Rt httpd_sys_content_t index.html

# ls -Z /usr/share/nginx/html/   运行结果:

        -U:后面接身份识别

        -r:后面接角色

永久修改安全上下文

semanager fcontext  [-a|-d]  [-t type]  [-s user]  [-r range]  文件

        -l:列出所有记录

        -a:添加记录

        -t:添加的类型

# semanage fcontext  -a -t httpd_sys_content_t '/lee(/.*)?'    【添加文件】

# semanage fcontext -l | grep /lee       【查看安全上下文】

# restorecon -RvvF /lee/                 【刷新安全上下文】

# ls -Zd /lee 查看结果:

        -M:修改记录

        -d:删除记录

        -P:指定添加的端口是tcp或udp协议的,port子命令下使用

        -e:目标路径参考原路径的上下文类型,fcontext子命令下使用

        -S:后面接身份识别

        -r:后面接角色

服务的端口影响

在系统SElinux开启后会规定服务使用端口

查看服务被允许使用的端口

# semanage port -l | grep ssh

根据需求更改被允许使用的端口

# semanage port -a -t ssh_port_t -p tcp 6666        【更改端口】

# semanage port -l | grep ssh

selinux对linux服务的影响

服务的功能影响

在系统SElinux开启后会为服务添加新的功能开关,我们把这个开关叫做sebool

临时修改bool值

# getsebool  -a | grep http            【查看sebool值】

# setsebool  httpd_anon_write 1            【修改sebool值】

# getsebool  -a | grep http   查看结果:

重启# reboot后查看结果:

永久修改

# setsebool -P httpd_anon_write off

查看结果:

相关文章:

  • 云原生时代的系统可观测性:理念变革与实践体系
  • 枪机定焦系统的自动控制装置
  • 1.3.3 数据共享、汇聚和使用中的安全目标
  • spring中的EnvironmentPostProcessor接口详解
  • 虚拟币制度钱包开发:功能设计与成本全解析
  • c#基础01(.Net介绍)
  • 每日c/c++题 备战蓝桥杯(洛谷P1440 求m区间内的最小值 详解(单调队列优化))
  • RHCE 练习三:架设一台 NFS 服务器
  • 02-前端Web开发(JS+Vue+Ajax)
  • Oracle 数据库的默认隔离级别
  • Playwright 多语言一体化——Python_Java_.NET 全栈采集实战
  • 【Python 算法零基础 4.排序 ② 冒泡排序】
  • 5个yyds的.Net商城开源项目
  • 交易所开发:构建功能完备的金融基础设施全流程指南
  • .NET外挂系列:2. 了解强大的 harmony 注解特性
  • Adminer:一个基于Web的轻量级数据库管理工具
  • 游戏引擎学习第295天:堆叠房间用于Z层调试
  • 芯驰科技与安波福联合举办技术研讨会,深化智能汽车领域合作交流
  • 洛谷U536262 井底之“鸡”
  • 【Unity网络编程知识】Unity的 UnityWebRequest相关类学习
  • 学生靠老干妈下饭、职工餐肉类又多又好?纪委出手整治
  • 上海青少年书法学习园开园:少年以巨笔书写《祖国万岁》
  • 种植耐旱作物、启动备用水源,甘肃各地多举措应对旱情
  • 多少Moreless:向世界展示现代中式家具的生活美学
  • 一个留美学生的思想转向——裘毓麐的《游美闻见录》及其他
  • 爬坡难下坡险,居民出行难题如何解?