从零开始的云计算生活——第十四天,困难重重,安全管理。

article/2025/8/29 19:18:29

一·故事背景

在前面的基本无操作内容后,来到了大头内容,安全管理!其中的防火墙相关的内容更是重中之重,要好好掌握,熟练运用。

二·SELinux安全上下文

1·SELinux 简介

a. SELinux(Security-Enhanced Linux)

      是Linux内核的强制访问控制(MAC)安全子系统,由美国国家安全局(NSA)与开源社区合作开发。其核心目标是通过精细化权限管理,提升系统安全性,防止恶意程序或用户越权访问敏感资源。

b.核心思想

   最小权限原则:进程/用户只能访问其明确需要的资源。

   基于标签的访问控制:所有资源(文件、端口、进程)被赋予安全上下文(Security Context)。

c.工作模式

Enforcing(强制模式)​
严格执行策略,拒绝违规操作并记录日志(默认生产环境模式)

Permissive(宽容模式)​
仅记录违规行为但不阻止,用于策略调试或兼容性测试

Disabled(禁用模式)​
完全关闭 SELinux,系统回归传统 DAC 权限控制(不推荐,降低安全性)

2·基础操作命令

① 查看SELinux状态

getenforce# 查看当前模式
sestatus# 详细状态(模式/策略类型)

② 切换工作模式

setenforce 0# 切换到Permissive模式
setenforce 1# 切换到Enforcing模式

注意:setenforce仅临时生效,永久修改需编辑 /etc/selinux/config 文件。

3·安全上下文(Security Context)

① 查看上下文

ls -Z /var/www/html # 查看文件/目录的上下文
ps -Z -C httpd# 查看进程的上下文

② 修改上下文

chcon命令
选项说明示例消息
-t, --type TYPE设置安全上下文的类型部分已将 file.txt 的类型更改为 httpd_sys_content_t
-u, --user USER设置安全上下文的用户部分已将 file.txt 的用户更改为 system_u
-r, --role ROLE设置安全上下文的角色部分已将 file.txt 的角色更改为 object_r
--reference=FILE使用指定文件的安全上下文已从 ref_file 复制上下文到 target_file
-R, --recursive递归处理文件和目录已递归更改 dir/ 及其内容的上下文
-h, --help显示帮助信息显示帮助菜单
-v, --verbose显示操作详情正在更改 file.txt 的安全上下文
--version显示版本信息chcon (GNU coreutils) 8.32
semanage 命令
子命令/选项用途说明常用选项示例消息/操作
semanage login管理SELinux用户与Linux账户的映射关系-a (添加)、-d (删除)、-m (修改)将用户 user1 映射到 SELinux 用户 staff_u
semanage user管理SELinux用户及其角色和权限-a、-d、-R (角色)、-L (限制)创建新SELinux用户 web_user 并分配角色 httpd_role
semanage port管理网络端口与SELinux类型的绑定关系-a、-d、-t (类型)、-p (协议)将TCP端口 8080 绑定到 http_port_t 类型
semanage interface管理网络接口与SELinux类型的绑定关系-a、-d、-t将接口 eth1 绑定到 netif_t 类型
semanage module管理SELinux策略模块(启用/禁用)-a、-d、-e (启用)、-D (禁用)启用策略模块 my_custom_module
semanage fcontext管理文件/目录的默认SELinux上下文规则-a、-d、-t、-s (范围)添加规则:/webapps(/.*)? 的上下文类型为 httpd_sys_content_t
semanage boolean管理SELinux布尔值(开关策略功能)-1 (查看)、--on、--off启用布尔值 httpd_can_network_connect
semanage dontaudit管理dontaudit规则(是否记录特定访问拒绝事件)--on、--off关闭对 sshd 的 dontaudit 规则
-h / --help显示帮助信息-显示子命令的帮助菜单
-v / --verbose显示详细操作信息-显示添加端口 8080 的详细过程
-n / --noheading输出时隐藏列标题-仅显示端口列表数据,无标题行

三·Linux防火墙-Firewalld

1·概述

按表现形式划分:

软件防火墙: 集成在系统内部,Linux系统: iptables、firewalld、ufw; windows系统下: windows defender

硬件防火墙: 华为防火墙、思科防火墙、奇安信防火墙、深信服防火墙等

按技术划分:

包过滤防火墙: 检查数据包的源IP、目的IP、源端口、目的端口、TCP的syn控制位

七层防火墙:除了上述检查外,还会检查数据内容

防火墙的作用:

阻止来自网络外部的攻击、进行流量控制

2、 Linux防火墙

① 防火墙结构

用户态:

iptables: 使用iptables命令对防火墙规则进行管理,必须深度理解网络技术和四表五链,对于初                    学者或者网络技术不达标的人员不友好

firewalld:使用firewall-cmd命令对防火墙进行管理,采用的是区域划分的形式。不需要连接底层                     的四表五链,对于初学者比较友好

ufw: 使用ufw命令对防火墙进行管理,命令简单易懂。(默认未安装)

内核态:

四表: 从内核->用户的顺序: raw -> mangle -> nat -> filter

五链: input、output、forward、prerouting、postrouting

② firewalld防火墙

区域分类,功能

九大区域:

block: 阻塞区域 (拒绝任何流量,但给出回应)

dmz: 非军事化管理区域(内部的服务器放于该区域)

drop: 丢弃区域(丢弃一切流量,不给出任何回应)

external: 外部区域 (连接外部网络,例如: internet网络

home: 家庭区域

internal: 内部区域 (连接内部网络)

public:公共区域,默认区域

trusted: 完全信任区域
work: 工作区域

命令分类:
查看命令

firewall-cmd --list-all --zone=public    #查看指定区域的详细信息

添加命令

 firewall-cmd --add-port=80/tcp --zone=public #添加端口到指定区域

修改命令

firewall-cmd --change-interface=ens224 --zone=internal #修改网络接口所属区域

删除命令

firewall-cmd --remove-port=80/tcp --zone=public #删除端口到指定区域

保存规则

firewall-cmd --runtime-to-permanent        #一次性保存所有规则

案例:①禁止外部主机ping本机

本机ip:192.168.71.132

②允许外部主机访问本机的http服务

本机ip:192.168.71.132 ens160

#######环境配置 开始#########
##本机安装httpd服务


#改变SElinux的规则
[root@localhost ~]# setenforce 0
[root@localhost ~]# yum install -y httpd


##启动httpd服务
[root@localhost ~]# systemctl start httpd


##修改httpd服务的监听IP
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
Listen 192.168.80.128:80


##重启httpd服务
[root@localhost ~]# systemctl restart httpd


##验证服务监听状态
[root@localhost ~]# netstat -naptu | grep :80
tcp00 192.168.80.128:800.0.0.0:* LISTEN5884/httpd 


#######环境配置 结束#########
#防火墙配置
[root@localhost ~]# firewall-cmd --change-interface=ens34 --zone=dmz
success


##客户端验证访问##
[root@localhost ~]# curl 192.168.80.128
curl: (7) Failed connect to 192.168.80.128:80; 拒绝连接
##发现无法访问###


#服务端查看dmz区域信息
[root@localhost ~]# firewall-cmd --list-all --zone=dmz

#发现没有放心http服务
#配置dmz区域http服务放行策略
[root@localhost ~]# firewall-cmd --add-service=http --zone=dmz 
success
 

总结

今日的重点是firewall的操作,但是目前最实用的还是明日的iptables,重点是Iptables的运用,明日会继续更新。


http://www.hkcw.cn/article/QWfoOcjxvP.shtml

相关文章

UDP编程

udp是无连接的,没有listen 与 accept。 bind 服务端一定需要bind,告知别人自己的ip和port。 客户端可以不bind,在发送数据时候可以随机分配,客户端推荐bind(与tcp不同,udp本身无连接)。 注意&am…

【计网】分片

MF DF MAC帧 MTU 首部数据载荷 片偏移是整数

记录一个梦,借助大语言模型图片生成

梦见家门口有一条大河,但大河和其它景物都是灰暗没有鲜艳色彩很普通的梦中场景。大河似乎是长江的支流,但也可能有一个响亮的名字似乎是金沙江。 突然看到一条金红色的龙在快速游动,不敢相信自己的眼睛,因为一直不相信有这种生物…

PostgreSQL查询一个表的数据

要从一个表中检索数据就是按要求查询表的信息,。SQL的SELECT语句可分为: 1.选择列表(选择查询返回的列) 2.表列表操作(从中查询出的数据,进一步进行加减乘除-*/、筛选等操作) 3.可选的条件 whe…

聊聊后端面试中的MySQL高频考题

如大家所了解的,SQL( Structured Query Language )是一门在开发者中使用覆盖率超50%的数据库结构化查询语言。 不可否认,无论是常年与数据打交道的数据分析师和数据科学家,经常需要管理和维护数据库的数据库管理员&am…

R3GAN利用配置好的Pytorch训练自己的数据集

简介 简介:这篇论文挑战了"GANs难以训练"的广泛观点,通过提出一个更稳定的损失函数和现代化的网络架构,构建了一个简洁而高效的GAN基线模型R3GAN。作者证明了通过合适的理论基础和架构设计,GANs可以稳定训练并达到优异性能。 论文题目:The GAN is dead; long l…

【python深度学习】Day 39 图像数据与显存

知识点 图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业:今日代码较少,理解内容即可 一、图像数据的介绍 结构化数据(如表…

mongodb源码分析session接受客户端find命令过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制。 现在继续研究ASIOSession和connection是怎么接受客户端命令的? mongo/transport/service_state_machine.cpp核心方法有&#xf…

酒店管理破局:AI 引领智能化转型

一、酒店行业现状:规模扩张加速与效率瓶颈并存 根据中国五矿证券《中国酒店行业格局分析》报告,国内酒店行业呈现头部集中化趋势。截至2024年第三季度,锦江酒店以13,186家门店、125.8万间客房的规模稳居行业第一[1]。华住集团则以178.68亿元…

大模型深度学习之双塔模型

前言 双塔模型(Two-Tower Model)是一种在推荐系统、信息检索和自然语言处理等领域广泛应用的深度学习架构。其核心思想是通过两个独立的神经网络(用户塔和物品塔)分别处理用户和物品的特征,并在共享的语义空间中通过相…

【Java Web】速通CSS

参考笔记:JavaWeb 速通CSS_java css-CSDN博客 目录 一、CSS入门 1. 基本介绍 2. 作用 二、CSS的3种引入方式 1. 行内式 1.1 示例代码 1.2 存在问题 2. 写在head标签的style子标签中 2.1 示例代码 2.2 存在问题 3.以外部文件的形式引入(开发中推荐使用)⭐⭐⭐ 3.1 说明 3…

PostgreSQL安装

我们使用开源的对象关系型数据库--PostgreSQL,它具有高性能、可扩展和支持复杂查询的特性,非常适合现在学习使用。 一.安装PostgreSQL 我用的windows,就在windows上安装。 1.首先访问 PostgreSQL 官方网站https://www.postgresql.org/dow…

C++:栈帧、命名空间、引用

一、前置知识 1.1、栈区(Stack) 1.1.1、内存分配与回收机制 分配方式​​:由编译器自动管理,通过调整栈指针(ESP/RSP)实现。 函数调用时,栈指针下移(栈从高地址向低地址增长&…

【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解

【HarmonyOS 5】鸿蒙应用px,vp,fp概念详解 一、前言 目前的鸿蒙开发者,大多数是从前端或者传统移动端开发方向,转到鸿蒙应用开发方向。 前端开发同学对于开发范式很熟悉,但是对于工作流程和开发方式是会有不适感&am…

[Rust_1] 环境配置 | vs golang | 程序运行 | 包管理

目录 Rust 环境安装 GoLang和Rust 关于Go 关于Rust Rust vs. Go,优缺点 GoLang的优点 GoLang的缺点 Rust的优点 Rust的缺点 数据告诉我们什么? Rust和Go的主要区别 (1) 性能 (2) 并发性 (3) 内存安全性 (4) 开发速度 (5) 开发者体验 Ru…

Codeforces Round 1024 (Div. 2)

Problem - A - Codeforces 思维题&#xff1a; 如果n不能整除p&#xff0c;就会多出一部分&#xff0c;这个部分可以作为调和者&#xff0c;使整个数组符合要求。 如果n能整除p&#xff0c;没有调和空间&#xff0c;只有看n/p*qm 来看代码&#xff1a; #include <bits/s…

【东枫科技】KrakenSDR 天线阵列设置

标准测向需要五根相同的全向天线。您可以折衷使用更少的天线&#xff0c;但为了获得最佳性能&#xff0c;我们建议使用全部五根天线。这些天线通常是磁铁安装的鞭状天线&#xff0c;或偶极子天线。我们建议始终使用均匀圆形阵列 (UCA) 天线&#xff0c;因为它可以确定来自各个方…

包含Javascript的HTML静态页面调取本机摄像头

在实际业务开发中&#xff0c;需要在带有摄像头的工作机上拍摄施工现场工作过程的图片&#xff0c;然后上传到服务器备存。 这便需要编写可以运行在浏览器上的代码&#xff0c;并在代码中实现Javascript调取摄像头、截取帧保存为图片的功能。 为了使用户更快掌握JS调取摄像头…

2023年6月第三套第二篇

找和脑子有关系的rather than 不是的意思&#xff0c;不用看 instead表示递进的解释 even when即使不重要&#xff0c;看前方主句 d选项是even when和前方主句的杂糅&#xff0c;往往是错的 instead of 而不是 这道题&#xff0c;有的人觉得避免模仿这时候你会笑&#xff0c;所…

Redis的大Key问题如何解决?

大家好&#xff0c;我是锋哥。今天分享关于【Redis的大Key问题如何解决&#xff1f;】面试题。希望对大家有帮助&#xff1b; Redis的大Key问题如何解决&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Redis中的“大Key”问题是指某个键的值占用了过多…