selinux及防火墙

news2024/11/25 23:05:56

selinux说明

SELinux Security-Enhanced Linux 的缩写,意思是安全强化的 linux
SELinux 主要由美国国家安全局( NSA )开发,当初开发的目的是为了避免资源的误用。

httpd进程标签(/usr/share/nginx/html )

        拥有http标签的进程可以读取http标签的文件

        拥有某标签的进程可以使用拥有某标签的端口

selinux的工作原理

SELinux 是通过 MAC 的方式来控制管理进程,它控制的主体是进程,而目标则是该进程能否读取的文件资源。
主体( subject ):就是进程
目标( object ):被主体访问的资源,可以是文件、目录、端口等。
策略( policy ):由于进程与文件数量庞大,因此 SELinux 会依据某些服务来制定基本的访问安全策略。
主要的策略:
        targeted:针对网络服务限制较多,针对本机限制较少,是默认的策略;
        strict:完整的 SELinux 限制,限制方面较为严格。
安全上下文( security context ):主体能不能访问目标除了策略指定外,主体与目标的安全上下文必须一致才能够顺利访问。
最终文件的成功访问还是与文件系统的 rwx 权限设置有关。
#查看文件的安全上下文
[root@localhost ~]# ls -Z
安全上下文用冒号分为四个字段:
Identify role type
  • 身份标识( Identify ):相当于账号方面的身份标识,主要有以下三种常见的类型:
    root :表示 root 的账号身份;
    system_u :表示程序方面的标识,通常就是进程;
    unconfined_u :代表的是一般用户账号相关的身份。
  • 角色(role):通过角色字段,可知道这个数据是属于程序、文件资源还是代表用户。一般角色有:
    object_r :代表的是文件或目录等文件资源;
    system_r :代表的是进程。
  • 类型( type ):在默认的 targeted 策略中, Identify role 字段基本上是不重要的,重要的在于这个类型字段。而类型字段在文件与进程的定义不太相同,分别是:
    type :在文件资源上面称为类型。
    domain :在主体程序中则称为域。
    domain 需要与 type 搭配,则该程序才能够顺利读取文件资源。
    最后一个字段是和 MLS MCS 相关的东西,代表灵敏度,一般用 s0 s1 s2 来命名,数字代表灵敏度的分级。数值越大、灵敏度越高。
# 更改安全上下文
chcon -t httpd_sys_content_t /www/https/index.html

[root@localhost conf.d]# ll /www/https/ -Z
总用量 4
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 6 11月  2 14:23 index.html

selinux的启动、关闭与查看

SELinux 三种模式:
         enforcing :强制模式,代表 SELinux 正在运行中,开始限制 domain/type
        permissive:宽容模式,代表 SELinux 正在运行中,不过仅会有警告信息并不会实际限制domain/type的访问。
        disabled:关闭, SELinux 并没有实际运行。
#查看目前的模式
[root@localhost~]#getenforce Enforcing

#查看目前的selinux使用的策略
[root@localhost~]#sestatus

#查看selinux的策略:
[root@localhost~]#vim/etc/selinux/config

改变策略之后需要重新启动;
如果由enforcing或permissive改成disabled,或由disabled改为其它两个,也必须要重新启动。

将selinux模式在enforcing和permissive之间切换的方法为:
setenforce0转换成permissive宽容模式
setenforce1转换成enforcing强制模式

查看端口占用情况 


实验 访问网络端口

semanage port -l | grep 80

semanage port -a -t http_port_t -p tcp 10000

#修改自定义目录的安全上下文的值:
[root@localhost~]#chcon-thttpd_sys_content_t/www/-R

防火墙

iptables

iptables 服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,
具体如下:
在进行路由选择前处理数据包,用于目标地址转换( PREROUTING );
处理流入的数据包( INPUT );
处理流出的数据包( OUTPUT );
处理转发的数据包( FORWARD );
在进行路由选择后处理数据包,用于源地址转换( POSTROUTING )。
搭建iptables环境
yum -y install iptables-nft-services
systemctl start iptables.service 

iptables 命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables 就会根据策略规则所预设的动作来处理这些流量。
 实验1  搭建web服务,设置任何人能够通过80端口访问
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

此时在计算机本机上win+R输入80端口的IP地址即可连接成功

#拒绝本机访问,查询本机使用进入的IP地址,禁用
iptables -I INPUT -p tcp -s 192.168.30.1 --dport 80 -j REJECT

删除

注意:删除的编号会重新更新,如果要删除最开始表中的1,2,只要一直执行删除第一行就行。

iptables -D INPUT 1

firewalld

firewalld 所提供的模式就可以叫做动态防火墙,它的出现就是为了解决这一问题,任何规则的变更都不 需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新即可, 它具备对 IPv4 IPv6 防 火墙设置的支持。
相比于传统的防火墙管理工具, firewalld 支持动态更新技术并加入了区域的概念。区域就是 firewalld 预先准备了几套防火墙策略集合(策略模板),用户可以选择不同的集合,从而实现防火墙策略之间的快速切换。

firewalld中常见的区域名称(默认为public)以及相应的策略规则: 

 

 

# 启动服务,这个服务会监听一个9090的端口
systemctl start cockpit
#配置端口转发(在172.24.8.0网段的主机访问该服务器的5423端口将被转发到80端口)
[root@localhost ~]# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.30.0/24" forward-port to-addr="192.168.30.132" to-port="10000" protocol="tcp" port="10000"'

排除计算机上访问不了服务时:

1.查询监听端口 —— 服务没有运行或者是服务没有在此端口上运行

2.在服务端进行测试 —— 403没有权限读取,404不存在

3.客户端ping一下服务端

4.测试该IP端口能否访问

5.客户端可以访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2247528.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

详细探索xinput1_3.dll:功能、问题与xinput1_3.dll丢失的解决方案

本文旨在深入探讨xinput1_3.dll这一动态链接库文件。首先介绍其在计算机系统中的功能和作用,特别是在游戏和输入设备交互方面的重要性。然后分析在使用过程中可能出现的诸如文件丢失、版本不兼容等问题,并提出相应的解决方案,包括重新安装相关…

生成对抗网络模拟缺失数据,辅助PAMAP2数据集仿真实验

PAMAP2数据集是一个包含丰富身体活动信息的数据集,它为我们提供了一个理想的平台来开发和测试HAR模型。本文将从数据集的基本介绍开始,逐步引导大家通过数据分割、预处理、模型训练,到最终的性能评估,在接下来的章节中&#xff0c…

IEC61850读服务器目录命令——GetServerDirectory介绍

IEC61850标准中的GetServerDirectory命令是变电站自动化系统中非常重要的一个功能,它主要用于读取服务器的目录信息,特别是服务器的逻辑设备节点(LDevice)信息。以下是对GetServerDirectory命令的详细介绍。 目录 一、命令功能 …

基于CNN+RNNs(LSTM, GRU)的红点位置检测(pytorch)

1 项目背景 需要在图片精确识别三跟红线所在的位置,并输出这三个像素的位置。 其中,每跟红线占据不止一个像素,并且像素颜色也并不是饱和度和亮度极高的红黑配色,每个红线放大后可能是这样的。 而我们的目标是精确输出每个红点的…

前端:JavaScript (学习笔记)【2】

目录 一,数组的使用 1,数组的创建 [ ] 2,数组的元素和长度 3,数组的遍历方式 4,数组的常用方法 二,JavaScript中的对象 1,常用对象 (1)String和java中的Stri…

全面解析多种mfc140u.dll丢失的解决方法,五种方法详细解决

当你满心期待地打开某个常用软件,却突然弹出一个错误框,提示“mfc140u.dll丢失”,那一刻,你的好心情可能瞬间消失。这种情况在很多电脑用户的使用过程中都可能出现。无论是游戏玩家还是办公族,面对这个问题都可能不知所…

STM32总体架构简单介绍

目录 一、引言 二、STM32的总体架构 1、三个被动单元 (1)内部SRAM (2)内部闪存存储器 (3)AHB到APB的桥(AHB to APBx) 2、四个主动(驱动)单元 &#x…

【PHP】 环境以及插件的配置,自学笔记(一)

文章目录 环境的准备安装 XAMPPWindowMacOS 配置开发环境Vscode 关于 PHP 的插件推荐Vscode 配置 php 环境Apache 启动Hello php配置热更新 参考 环境的准备 下载 XAMPP , 可以从 官网下载 https://www.apachefriends.org/download.html 安装 XAMPP XAMPP 是一个跨平台的集成开…

跟着问题学5——深度学习中的数据集详解(1)

深度学习数据集的创建与读取 数据 (计算机术语) 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。…

实验-Linux文件系统和磁盘管理

操作1 远程连接Linux系统 下述连接方式2选一即可。 使用xshell工具连接Linux系统。打开xshell,新建连接,将主机ip修改为实际Linux系统的ip(ifconfig命令查看),可以新建多个xshell会话,使用不同的用户名登录,方便后续…

GPTZero:高效识别AI生成文本,保障学术诚信与内容原创性

产品描述 GPTZero 是一款先进的AI文本检测工具,专为识别由大型语言模型(如ChatGPT、GPT-4、Bard等)生成的文本而设计。它通过分析文本的复杂性和一致性,判断文本是否可能由人类编写。GPTZero 已经得到了超过100家媒体机构的报道&…

Apple Vision Pro开发003-PolySpatial2.0新建项目

unity6.0下载链接:Unity 实时开发平台 | 3D、2D、VR 和 AR 引擎 一、新建项目 二、导入开发包 com.unity.polyspatial.visionos 输入版本号 2.0.4 com.unity.polyspatial(单独导入),或者直接安装 三、对应设置 其他的操作与之前的版本相同…

百度在下一盘大棋

这两天世界互联网大会在乌镇又召开了。 我看到一条新闻,今年世界互联网大会乌镇峰会发布“2024 年度中国互联网企业创新发展十大典型案例”,百度文心智能体平台入选。 这个智能体平台我最近也有所关注,接下来我就来讲讲它。 百度在下一盘大棋…

038集——quadtree(CAD—C#二次开发入门)

效果如下: using Autodesk.AutoCAD.ApplicationServices; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using Autodesk.AutoCAD.Geometry; using System; using System.Collections.Generic; using System.Linq; using System.T…

深入探讨 Puppeteer 如何使用 X 和 Y 坐标实现鼠标移动

背景介绍 现代爬虫技术中,模拟人类行为已成为绕过反爬虫系统的关键策略之一。无论是模拟用户点击、滚动,还是鼠标的轨迹移动,都可以为爬虫脚本带来更高的“伪装性”。在众多的自动化工具中,Puppeteer作为一个无头浏览器控制库&am…

RabbitMQ2:介绍、安装、快速入门、数据隔离

欢迎来到“雪碧聊技术”CSDN博客! 在这里,您将踏入一个专注于Java开发技术的知识殿堂。无论您是Java编程的初学者,还是具有一定经验的开发者,相信我的博客都能为您提供宝贵的学习资源和实用技巧。作为您的技术向导,我将…

Linux 下进程基本概念与状态

文章目录 一、进程的定义二、 描述进程-PCBtask_ struct内容分类 三、 进程状态 一、进程的定义 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。广义定义:进程是一个具有一定…

数据库MYSQL——表的设计

文章目录 前言三大范式:几种实体间的关系:一对一关系:一对多关系:多对多关系: 前言 之前的博客中我们讲解的是关于数据库的增删改查与约束的基本操作, 是在已经创建数据库,表之上的操作。 在实…

开源动态表单form-create-designer 扩展个性化配置的最佳实践教程

在开源低代码表单设计器 form-create-designer 的右侧配置面板里,field 映射规则为开发者提供了强大的工具去自定义和增强组件及表单配置的显示方式。通过这些规则,你可以简单而高效地调整配置项的展示,提升用户体验。 源码地址: Github | G…

面试:请阐述MySQL配置文件my.cnf中参数log-bin和binlog-do-db的作用

大家好,我是袁庭新。星球里的小伙伴去面试,面试官问:MySQL配置文件my.cnf中参数log-bin和binlog-do-db的作用?一脸懵逼~不知道该如何回答。 在MySQL的配置文件my.cnf中,log-bin和binlog-do-db是与二进制日志…