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

Selinux及防火墙

一,selinux简介:

SELinux(Security-Enhanced Linux)是一个Linux内核安全模块,旨在提供强制访问控制(MAC)机制,以增强系统的安全性。由美国国家安全局(NSA)开发,SELinux通过实施细粒度的安全策略,控制用户和进程对系统资源的访问。

主要功能:

  1. 强制访问控制:不同于传统的自愿访问控制,SELinux通过政策强制实施安全规则,限制程序和用户的行为。
  2. 安全策略:SELinux使用复杂的策略定义哪些操作是被允许的,支持细致到每个进程和文件的访问控制。
  3. 标签和类型强制:每个进程和对象(如文件)都有一个安全标签,SELinux根据这些标签来决定访问权限。
  4. 审计与监控:SELinux能够记录所有的访问尝试,帮助系统管理员检测和分析潜在的安全问题。

应用场景:

保护网络服务(如Web服务器)免受攻击。

实现多用户环境下的安全隔离。

满足合规性和安全审计要求。se

二,selinux的原理:

在红帽Linux(Red Hat Enterprise Linux)中,SELinux的工作原理基于强制访问控制(MAC),其主要机制包括以下几个方面:

1. 安全策略

SELinux通过定义一组安全策略来控制对系统资源的访问。这些策略规定了哪些用户和进程可以访问哪些文件、设备和其他资源。这些策略通常在系统启动时加载,并且可以根据需要进行修改。

2. 类型标签

每个进程和对象(如文件、目录、端口)都有一个与之相关的安全上下文标签(即安全属性)。标签通常包括以下几个部分:

  • 用户:表示进程的拥有者。
  • 角色:用于定义用户在系统中的身份。
  • 类型:决定了进程和对象之间的访问权限。

3. 决策机制

当进程尝试访问资源时,SELinux会根据当前的安全策略和标签,决定是否允许该操作。这个过程涉及以下步骤:

  • 访问请求:进程发起对某个对象的访问请求。
  • 策略匹配:SELinux检查当前安全上下文和策略,判断是否有匹配的规则。
  • 允许或拒绝:如果有匹配的规则且操作被允许,访问将被执行;否则,访问请求将被拒绝,系统将记录拒绝事件。

4. 审计与日志

SELinux能够记录所有的访问尝试,包括被拒绝的操作。这些日志信息对于安全审计和问题排查非常有用,管理员可以通过审计日志了解哪些操作被拒绝,以及拒绝的原因。

5. 模式

SELinux可以在不同的模式下运行:

  • 强制模式(Enforcing):强制实施策略,拒绝不符合策略的访问。
  • 许可模式(Permissive):不强制实施策略,但记录所有不符合策略的访问尝试。
  • 禁用模式(Disabled):完全关闭SELinux。

通过这些机制,SELinux在红帽Linux中提供了强大的安全防护,保护系统免受恶意攻击和未经授权的访问。

#查看文件的安全上下文
[root@localhost ~]# ls -Z-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfgdrwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 home

三,selinux的用法:

#查看selinux的状态
sestatus#切换的许可模式
setenforce 0#切换到强制模式
setenforce 1#查看当前selinux的策略
getenforce#查看安全上下文
ls -Z /path/to/file#更改安全上下文
chcon -t httpd_sys_content_t /var/www/html/example.html#查看审计日志:该命令将显示所有被拒绝的访问尝试的记录
cat /var/log/audit/audit.log | grep denied#生成SELinux策略建议: 使用audit2allow工具可以将审计日志中的拒绝信息转换为策略建议
cat /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp
第一个命令将生成策略模块,第二个命令将其安装。

四,防火墙的简介:

防火墙是一种网络安全设备或软件,用于监控和控制进入和离开计算机网络的网络流量。它通过设定的安全规则来阻止或允许数据包,从而保护网络和设备免受未授权访问、网络攻击和恶意软件的威胁。

主要功能:

  1. 流量过滤:防火墙根据预设的规则过滤网络流量,允许合法流量通过,同时阻止潜在的恶意流量。
  2. 访问控制:防火墙可以限制某些用户或设备对网络资源的访问,确保只有授权用户可以访问敏感数据或服务。
  3. 网络地址转换(NAT):一些防火墙可以隐藏内部网络的IP地址,防止外部用户直接访问内部设备。
  4. 日志记录与监控:防火墙记录所有通过的流量,并提供日志以供分析,帮助管理员检测潜在的安全事件。

类型:

  1. 包过滤防火墙:根据数据包的源地址、目标地址和端口号等信息进行简单的过滤。
  2. 状态检测防火墙:跟踪连接的状态,能够理解数据包之间的上下文关系,提供更强的安全性。
  3. 代理防火墙:通过代理服务器进行流量转发,能够深入检查数据包内容,增加安全性。
  4. 下一代防火墙(NGFW):集成了多种功能,包括应用层过滤、入侵防御系统(IPS)和深度包检查(DPI)。

应用场景:

  • 企业网络安全:保护公司内部网络免受外部攻击。
  • 家庭网络安全:保护家庭设备和个人信息免受网络威胁。
  • 数据中心安全:保护关键应用和数据免受攻击。

防火墙是网络安全策略的重要组成部分,能够有效地帮助防止网络入侵和数据泄露

五,红帽中的防火墙:

简介

  • firewalld:红帽Linux中的默认防火墙管理工具,使用iptables作为底层实现。它提供了一个用户友好的界面,支持命令行和图形界面(如firewall-config)。
  • 区域和服务firewalld使用区域来定义不同的信任级别,每个区域可以指定允许的服务和端口。

原理

  1. 区域概念firewalld将网络接口分配到不同的区域中,每个区域定义了不同的安全级别。例如,public区域用于不信任的网络,而trusted区域则用于完全信任的网络。
  2. 服务与端口:用户可以通过服务名称(如HTTP、SSH等)来允许或拒绝特定流量,而不需要手动指定端口号。
  3. 动态管理firewalld支持动态添加或移除规则,而无需重启服务。这使得配置更为灵活,适合于快速变化的网络环境。
  4. 持久化与临时配置:规则可以设置为临时生效或持久化保存,以便在重启后依然生效。

应用

保护服务器:通过配置适当的区域和服务,保护Web服务器、数据库服务器等不受外部攻击。

隔离网络流量:在多租户环境中,可以通过不同的区域来隔离不同客户的流量。

VPN与远程访问:配置防火墙规则以允许VPN流量,通过安全隧道保护远程访问。

日志记录与审计:通过配置日志规则,监控网络流量和攻击尝试,帮助进行安全审计。

六,防火墙的一些常见配置命令:

#查看防火墙状态:
firewall-cmd --state#查看当前区域和活动接口:该命令将显示当前活动的区域及其相关联的网络接口。
firewall-cmd --get-active-zones#查看特定区域的规则:该命令将列出public区域的所有规则,包括允许的服务、端口和接口。
firewall-cmd --zone=public --list-all#添加服务到某个区域:该命令将HTTP服务添加到public区域,并将其设置为持久化配置。
firewall-cmd --zone=public --add-service=http --permanent#添加特定端口:该命令将TCP端口8080添加到public区域,并持久化
firewall-cmd --zone=public --add-port=8080/tcp --permanent#删除服务或端口:该命令将从public区域中删除HTTP服务。
firewall-cmd --zone=public --remove-service=http --permanent#重新加载配置:该命令将应用所有未持久化的更改,并重新加载防火墙配置。
firewall-cmd --reload#查看日志: 如果启用了日志记录,可以使用以下命令查看日志:
journalctl -f -u firewalld

七,实验案例:

案例 1:允许SSH和HTTP流量

# 允许SSH流量
firewall-cmd --zone=public --add-service=ssh --permanent# 允许HTTP流量
firewall-cmd --zone=public --add-service=http --permanent# 重新加载配置以使更改生效
firewall-cmd --reload

案例 2:限制特定IP地址的访问

# 添加拒绝规则
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" reject' --permanent# 重新加载配置
firewall-cmd --reload

案例 3:启用HTTPS流量

# 添加HTTPS服务
firewall-cmd --zone=public --add-service=https --permanent# 重新加载配置
firewall-cmd --reload

案例 4:临时允许某个服务

# 临时允许FTP服务
firewall-cmd --zone=public --add-service=ftp# 重新加载配置以使更改生效
firewall-cmd --reload

相关文章:

Selinux及防火墙

一,selinux简介: SELinux(Security-Enhanced Linux)是一个Linux内核安全模块,旨在提供强制访问控制(MAC)机制,以增强系统的安全性。由美国国家安全局(NSA)开…...

业绩代码查询实战——php

一、一级代码显示职员 foreach($data_职员信息 as $key > $value){//$where_查询分类$where_查询通用;//$dat分类one $业绩提成->where($where_查询分类)->order("CreateDate desc")->select();if($value[haschildname]0 && $value[key] !"…...

内网穿透技术选型PPTP(点对点隧道协议)和 FRP(Fast Reverse Proxy)

PPTP(点对点隧道协议)和 FRP(Fast Reverse Proxy)是两种实现内网穿透的技术,但它们的工作原理、使用场景和特点有很大区别。以下是它们的详细比较: PPTP(Point-to-Point Tunneling Protocol&am…...

信号与噪声分析——第三节:随机过程的统计特征

随机过程的定义: 随机过程是一种数学模型,用来描述系统或现象在时间或者空间上随之变化的不确定性。 一个随机过程的数字特征 1.数学期望(统计平均值): 表示为 数学期望是随机过程在时间 t 上的平均值,通常…...

nginx(四):如何在 Nginx 中配置以保留真实 IP 地址

如何在 Nginx 中配置以保留真实 IP 地址 1、概述2、nginx配置示例2.1、配置说明2.2、客户端获取真实IP2.2.1、代码说明 3、插曲4、总结 大家好,我是欧阳方超,可以我的公众号“欧阳方超”,后续内容将在公众号首发。 1、概述 当使用nginx作为…...

docker对nginx.conf进行修改后页面无变化或页面报错

可能是因为没有重启nginx容器 可以执行 docker restart nginx 重启nginx试试 引入了其他的配置文件 本人安装的是docker默认的nginx,自带了一个default.conf的配置文件,并且在nginx.conf中还引入了这个文件,后面我还对nginx.conf添加了一个…...

SpringCloudGateway — 网关路由

Spring Cloud Gateway 是 Spring 提供的一个高效、灵活的 API 网关解决方案,基于 Spring 5、Spring Boot 2 和 Project Reactor,具有高并发和低延迟的特点。它用于在微服务架构中对外提供统一的入口,处理请求的路由、过滤、负载均衡等功能。 …...

docker pull 拉取镜像失败,使用Docker离线包

1、登录并注册Github,然后在Github中搜索并打开“wukongdaily/DockerTarBuilder” 项目,在该项目主页点击“Fork”。 然后点 “Create Fork”,将项目创建到自己的Github主页。 2、接着在自己创建过来的这个项目中点击“Actions” 3、然后…...

轻松理解操作系统 - 轻松了解 inode 是如何管理文件的

Linux 由于其开源、比较稳定等特点统治了服务端领域。也因此,学习Linux 系统相关知识在后端开发等岗位中变得越来越重要,甚至可以说是必不可少的。 因为它的广泛应用,所以在程序员的日常工作和面试中,它都是经常出现的。它的开源特…...

go中Println和Printf的区别

Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 go中Println和Printf的区别 package mainimport ( "fmt" )//TIP To run your code, right-click the c…...

C++现代教程七之模块

优点 编译时间减少:模块消除了重复解析和编译头文件的需要,从而显著减少了编译时间。特别是在大型项目中,这一点尤为重要。更好的封装性:模块允许更严格的封装,可以明确地控制哪些符号对外可见。这有助于减少命名冲突和…...

AVLTree

1.AVL树的概念 二叉搜索树虽然可以提高查找的效率,但是如果数据有序或者接近有序,二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。为了解决该问题,于是就有了AVLTree。即当向二叉搜索树中插入…...

Java面向对象 C语言字符串常量

1. (1). package liujiawei;public class Phone {String brand;double price;public void call(){System.out.println("手机打电话");}public void play(){System.out.println("手机打游戏");} } public class phonetest {public…...

SpringBoot+Thymeleaf电商系统

> 这是一个基于SpringBootThymeleafBootstrap实现的简单电商系统。 > 实现了用户浏览、添加购物车、商品管理等功能,并支持响应式布局。 > 本项目适合JAVA初学者作为入门学习项目 一、部分界面演示 二、技术栈 技术栈中文描述Spring Boot快速开发框架…...

了解数据库并发产生的问题

在数据库管理系统中,并发控制是一个至关重要的方面。随着多个用户或进程同时访问和修改数据库中的数据,如果没有适当的并发控制机制,就可能导致数据不一致、丢失更新、脏读、不可重复读和幻读等问题。在单用户系统中,数据库操作是…...

openstack之guardian介绍与实例创建过程

运行特征 采集模块:扩展Ceilometer,采集存储网、业务网连通性、nova目录是否可读写; 收集模块:将采集到的数据存储到数据库中; 分析模块:根据采集的结果,分析各节点状态,并进行反向检…...

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大

新一代跟踪器StrongSORT: Make DeepSORT Great Again论文解析—让 DeepSORT 再次伟大 时间:2023年 机构:北京邮电大学 发表在:IEEE TRANSACTIONS ON MULTIMEDIA, VOL. 25, 2023 代码源码地址: pytorch版本:https://github.com/dyh…...

SAP ABAP开发学习——RFC

目录 RFC接口 定义 调用过程 RFC的通信 RFC通信情况 RFC接口系统 RFC的通信模式 RFC版本 RFC调用方式 Web Service接口 SAP创建Web Service示例 远程目标的维护 创建远程目标 外部系统访问设置 RFC的调用 RFC接口 定义 调用过程 RFC的通信 RFC通信情况 RFC接…...

Elasticsearch里的索引index是什么概念?(ChatGPT回答)

在 Elasticsearch(ES)中,索引(Index) 是一种数据结构,用来存储、组织和管理文档数据。它可以理解为数据库中的一张表,但有一些关键的不同之处。索引是 Elasticsearch 全文搜索引擎的核心概念之一…...

安全性测试

安全性测试评估系统在面对各种安全威胁时的防护能力和安全性的过程。以下是安全性测试的一些主要方面和方法: 1. 身份验证和授权测试 测试目标 确保系统能够正确验证用户的身份,并根据用户的权限授予相应的访问权限。测试方法 弱密码测试:尝…...

Janus-Pro-7B入门编程教学:从零开始学习C语言文件读写操作

Janus-Pro-7B入门编程教学:从零开始学习C语言文件读写操作 你是不是刚开始学C语言,一看到文件操作就觉得头大?fopen、fwrite、fread这些函数名字看着就复杂,更别提什么文件指针、缓冲区这些概念了。别担心,这感觉我懂…...

ESP32-S3离线语音唤醒实战:从单元测试到自定义指令集

1. ESP32-S3离线语音唤醒开发环境搭建 第一次接触ESP32-S3的语音识别功能时,我花了两天时间才把开发环境配置好。这里分享下我的踩坑经验,帮你节省时间。ESP-IDF的环境配置其实不难,但有几个关键点容易出错。 首先需要安装ESP-IDF v4.4或更高…...

TinyCheck开发指南:从源码结构到核心类设计,理解网络安全检测平台架构

TinyCheck开发指南:从源码结构到核心类设计,理解网络安全检测平台架构 【免费下载链接】TinyCheck TinyCheck allows you to easily capture network communications from a smartphone or any device which can be associated to a Wi-Fi access point …...

Qwen1.5-0.5B-Chat实战部署:Docker容器化改造方案

Qwen1.5-0.5B-Chat实战部署:Docker容器化改造方案 本文介绍如何将基于ModelScope的Qwen1.5-0.5B-Chat对话服务进行Docker容器化改造,实现一键部署和跨平台运行。 1. 项目概述与核心价值 Qwen1.5-0.5B-Chat是阿里通义千问开源系列中最轻量的对话模型&…...

Phi-4-mini-reasoning效果展示:Chainlit中实时显示推理耗时与token生成速率

Phi-4-mini-reasoning效果展示:Chainlit中实时显示推理耗时与token生成速率 1. 模型简介 Phi-4-mini-reasoning 是一个基于合成数据构建的轻量级开源模型,专注于高质量、密集推理的数据处理。作为Phi-4模型家族的一员,它特别强化了数学推理…...

解决JVM环境下的代码覆盖率难题:SimpleCov与JRuby完美兼容指南

解决JVM环境下的代码覆盖率难题:SimpleCov与JRuby完美兼容指南 【免费下载链接】simplecov Code coverage for Ruby with a powerful configuration library and automatic merging of coverage across test suites 项目地址: https://gitcode.com/gh_mirrors/si/…...

Vivado 2019.2实战:手把手教你封装自己的UART串口IP核(含参数化配置避坑指南)

Vivado 2019.2实战:从零构建可配置UART IP核的完整指南 在FPGA开发中,UART通信是最基础也最常用的功能之一。每次新项目都重新编写UART驱动不仅效率低下,还容易引入错误。本文将带你完整经历将一个经过验证的UART发送模块封装成可配置IP核的全…...

误删Anaconda?4招紧急救援方案

问题背景与常见场景Anaconda被误删可能由误操作、系统崩溃、病毒攻击等原因导致,涉及环境、包、配置等关键数据丢失。抢救前的准备工作立即停止对Anaconda所在磁盘的写入操作,避免数据被覆盖。 确认删除方式(回收站、ShiftDelete、格式化等&a…...

Wave-U-Net:革新音频分离技术的端到端深度学习解决方案

Wave-U-Net:革新音频分离技术的端到端深度学习解决方案 【免费下载链接】Wave-U-Net Implementation of the Wave-U-Net for audio source separation 项目地址: https://gitcode.com/gh_mirrors/wa/Wave-U-Net 在数字音频处理领域,从混合音频中精…...

Boss-Key终极指南:3分钟掌握Windows隐私保护神器

Boss-Key终极指南:3分钟掌握Windows隐私保护神器 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办公时代&#xff0c…...