Linux安全防护三件套:Swap、防火墙、SELinux
文章目录Linux安全防护三件套Swap、防火墙、SELinux前言一、Swap交换空间管理1.1 计算机存储层次结构1.2 Swap的作用1.3 Swap大小参考1.4 查看内存1.5 创建和使用Swap二、Firewalld防火墙2.1 防火墙概述2.2 静态防火墙 vs 动态防火墙2.3 Firewalld区域zone2.4 Firewalld配置模式2.5 firewall-cmd常用命令2.6 富规则Rich Rules2.7 panic模式2.8 综合案例三、SELinux安全增强3.1 什么是SELinux3.2 SELinux上下文3.3 SELinux三种模式写在最后查看当前区域规则SELinuxLinux安全防护三件套Swap、防火墙、SELinux内存不够用网络被攻击系统被入侵一文搞定Swap配置、Firewalld防火墙和SELinux加固前言今天的课程是Linux安全与资源管理的核心内容涵盖三个关键模块Swap交换空间——内存不够时用磁盘“顶一顶”理解计算机存储层次结构Firewalld防火墙——控制哪些流量能进出你的服务器网络防护第一道防线SELinux安全增强——即使进程被攻破也能保护用户数据不被窃取一、Swap交换空间管理1.1 计算机存储层次结构计算机中各种存储器组成层状塔式结构取长补短协调工作寄存器 → 最快、最小、最贵CPU内部 CPU Cache → 极快、小SRAM 主存(内存) → 快、中等DRAM 辅助存储 → 慢、大、持久化磁盘/U盘内存带宽计算带宽 频率 × 位宽 / 81.2 Swap的作用Swap是受Linux内核控制的磁盘区域有三个核心功能扩展内存物理内存不足时将不活跃数据暂存磁盘页面交换需要访问磁盘上的页面时交换到内存Hibernate支持休眠时保存RAM内容到Swap⚠️ Swap只是临时方案比物理内存慢得多根本解决是加大物理内存。1.3 Swap大小参考物理内存交换空间允许Hibernate时≤2GB2×RAM3×RAM2-8GB1×RAM2×RAM8-64GB≥4GB1.5×RAM≥64GB≥4GB不建议1.4 查看内存[rootcentos7 ~]free-mtotal usedfreeshared buff/cache available Mem:393133035291213616683485Swap:4063040631.5 创建和使用Swap# 1. 创建分区并设为swap类型[rootcentos7 ~]parted/dev/sdb mklabel gpt[rootcentos7 ~]parted/dev/sdb unit MiB mkpart swap01 linux-swap12049# 2. 格式化swap[rootcentos7 ~]mkswap/dev/sdb1 Setting up swapspace version1, size2097148KiBUUID2bf4e179-3648-4412-9495-3b278df4acd6# 3. 激活swap[rootcentos7 ~]swapon/dev/sdb1# 4. 查看swap设备[rootcentos7 ~]swapon-sFilename Type Size Used Priority /dev/dm-1 partition40632280-2/dev/sdb1 partition20971480-3# 5. 设置优先级数字越大越优先使用[rootcentos7 ~]swapon-p4/dev/sdb1# 6. 停用swap[rootcentos7 ~]swapoff /dev/sdb1# 7. 持久化/etc/fstabUUID2bf4e179-3648-4412-9495-3b278df4acd6 swap swappri400# 8. 激活所有swap[rootcentos7 ~]swapon-a二、Firewalld防火墙2.1 防火墙概述防火墙工作在网络或主机边缘对进出数据包基于规则进行过滤。按实现方式分为硬件防火墙和软件防火墙按网络协议分为网络层防火墙和应用层防火墙。Netfilter子系统是Linux内核的网络过滤子系统用户通过不同工具配置规则工具作用iptables过滤IPv4数据包ip6tables过滤IPv6数据包arptables过滤ARP协议ebtables过滤数据链路层Firewalld是Red Hat开发的动态防火墙CentOS 7起替代iptables成为默认底层仍调用iptables/nftables干活。2.2 静态防火墙 vs 动态防火墙对比项静态防火墙iptables动态防火墙firewalld规则加载修改一条也重新加载全部只更新变更部分连接影响会导致网络连接中断不中断现有连接配置方式service iptables reloadfirewall-cmd --reload2.3 Firewalld区域zonefirewalld将所有网络流量分为多个区域每个区域是一套过滤规则集区域特性trusted允许所有传入流量public仅允许ssh/dhcpv6-client默认区域home/work/internal允许ssh/mdns/samba-client/dhcpv6-clientdmz/external仅允许sshblock拒绝所有传入流量drop丢弃所有传入流量无响应数据包匹配区域优先级源地址匹配 → 应用该区域规则传入接口匹配 → 应用关联区域规则以上都不匹配 → 默认区域2.4 Firewalld配置模式模式选项特点运行时runtime默认立即生效重启丢失永久permanent--permanent写入配置文件需reload生效建议修改防火墙时写两条命令——一条带--permanent永久保存一条不带立即生效。2.5 firewall-cmd常用命令zone管理# 查看zone[rootcentos7 ~]firewall-cmd --get-zones[rootcentos7 ~]firewall-cmd --get-default-zone[rootcentos7 ~]firewall-cmd --get-active-zones# 设置默认zone[rootcentos7 ~]firewall-cmd --set-default-zonetrusted# 查看所有zone规则[rootcentos7 ~]firewall-cmd --list-all-zones[rootcentos7 ~]firewall-cmd --list-all# 查看默认zone[rootcentos7 ~]firewall-cmd --list-all--zonehome# 查看特定zone服务管理[rootcentos7 ~]firewall-cmd --get-services# 查看预定义服务[rootcentos7 ~]firewall-cmd --add-servicehttp# 放行http服务[rootcentos7 ~]firewall-cmd --list-services# 查看已放行服务[rootcentos7 ~]firewall-cmd --query-servicehttp# 检查是否放行[rootcentos7 ~]firewall-cmd --remove-servicehttp# 删除放行端口管理[rootcentos7 ~]firewall-cmd --add-port5900/tcp[rootcentos7 ~]firewall-cmd --list-ports[rootcentos7 ~]firewall-cmd --query-port5900/tcp[rootcentos7 ~]firewall-cmd --remove-port5900/tcp伪装SNAT# 开启伪装让内网机器通过本机访问公网[rootserver ~]firewall-cmd --add-masquerade[rootserver ~]firewall-cmd --query-masquerade[rootserver ~]firewall-cmd --remove-masquerade端口转发DNAT# 访问本机8000 → 本机80[rootcentos7 ~]firewall-cmd --add-forward-portport8000:prototcp:toport80# 访问本机1022 → 10.1.1.11:22[rootcentos7 ~]firewall-cmd --add-forward-portport1022:prototcp:toport22:toaddr10.1.1.11# 查看/删除[rootcentos7 ~]firewall-cmd --list-forward-ports[rootcentos7 ~]firewall-cmd --remove-forward-portport8000:prototcp:toport80⚠️ 端口转发前需确保对应zone已启用masquerade。禁止ping# 方法一禁止特定ICMP类型[rootcentos7 ~]firewall-cmd --add-icmp-block echo-request[rootcentos7 ~]firewall-cmd --list-icmp-blocks# 方法二富规则[rootcentos7 ~]firewall-cmd --add-rich-rulerule protocol valueicmp drop2.6 富规则Rich Rules富规则可灵活实现允许特定IP访问某服务、配置日志审计、限速等。常用语法rule[source][destination]service|port|protocol[log][audit][accept|reject|drop]示例1禁止所有主机ping本机[rootcentos7 ~]firewall-cmd --add-rich-rulerule protocol valueicmp drop示例2只允许10.1.8.10 ping本机# 方法禁止所有再单独允许[rootcentos7 ~]firewall-cmd--permanent--add-icmp-block-inversion[rootcentos7 ~]firewall-cmd--permanent--add-rich-rulerule familyipv4 source address10.1.8.10 icmp-type nameecho-request accept[rootcentos7 ~]firewall-cmd --complete-reload示例3限制特定IP访问HTTP的频率[rootcentos7 ~]firewall-cmd --add-rich-rulerule familyipv4 source address10.1.8.0/24 service namehttp log prefixhttp-error levelerror limit value2/s accept limit value3/s2.7 panic模式# 紧急切断所有网络被攻击时使用[rootcentos7 ~]firewall-cmd --panic-on[rootcentos7 ~]firewall-cmd --query-panic[rootcentos7 ~]firewall-cmd --panic-off2.8 综合案例案例1禁止10.1.8.10主机ping本机[rootcentos7 ~]firewall-cmd--permanent--add-rich-rulerule familyipv4 source address10.1.8.10 icmp-type nameecho-request reject[rootcentos7 ~]firewall-cmd --complete-reload案例2只允许10.1.8.10主机ping本机[rootcentos7 ~]firewall-cmd--permanent--add-icmp-block-inversion[rootcentos7 ~]firewall-cmd--permanent--add-rich-rulerule familyipv4 source address10.1.8.10 icmp-type nameecho-request accept[rootcentos7 ~]firewall-cmd --complete-reload三、SELinux安全增强3.1 什么是SELinuxSELinuxSecurity Enhanced Linux是额外的系统安全层主要目标是防止已被攻破的系统服务访问用户数据。传统文件权限只控制“谁能访问”不控制“如何使用”。例如apache进程被攻破后攻击者拥有apache用户的权限可以访问/tmp等目录。SELinux通过强制访问控制明确定义每个进程、文件、目录、端口的安全标签上下文默认禁止任何未授权的交互。3.2 SELinux上下文每个进程、文件、目录和端口都有SELinux上下文格式为用户:角色:类型:敏感度# 查看进程上下文[rootcentos7 ~]ps-Csshd-Zsystem_u:system_r:sshd_t:s0-s0:c0.c1023951? 00:00:00 sshd# 查看文件上下文[rootcentos7 ~]ls-Z/home unconfined_u:object_r:user_home_dir_t:s0 laoma3.3 SELinux三种模式模式行为用途enforcing强制执行规则拒绝并记录日志生产环境默认permissive加载策略但不强制只记录违规测试和故障排查disabled完全关闭不拒绝不记录不推荐# 查看当前模式[rootcentos7 ~]getenforce# 临时切换不需重启[rootcentos7 ~]setenforce0# 切换为permissive[rootcentos7 ~]setenforce1# 切换为enforcing# 修改默认模式/etc/selinux/config[rootcentos7 ~]vim/etc/selinux/configSELINUXenforcingSELINUXTYPEtargeted模式切换注意事项enforcing ↔ permissive不需重启enforcing/permissive ↔ disabled需要重启写在最后今天的内容是Linux安全与资源管理的核心模块核心工具主要作用Swapmkswap / swapon / swapoff内存不足时的缓冲Firewalldfirewall-cmd网络访问控制SELinuxgetenforce / setenforce进程级访问控制一句话建议Swap根据内存大小合理配置生产环境建议≥4GBFirewalld默认只开放必要的端口和服务public区域SELinux生产环境保持enforcing排障时可临时切permissive核心命令速查# Swapfree-m# 查看内存swapon-s# 查看swap设备swapon/dev/sdb1# 激活swapoff /dev/sdb1# 停用# Firewalldfirewall-cmd --list-all# 查看当前区域规则firewall-cmd --add-servicehttp# 放行服务firewall-cmd --add-port8080/tcp# 放行端口firewall-cmd --add-masquerade# 开启伪装firewall-cmd --add-rich-rulerule ...# 富规则# SELinuxgetenforce# 查看模式setenforce0# 切换permissivesetenforce1# 切换enforcing查看当前区域规则firewall-cmd --add-servicehttp # 放行服务firewall-cmd --add-port8080/tcp # 放行端口firewall-cmd --add-masquerade # 开启伪装firewall-cmd --add-rich-rule‘rule …’ # 富规则SELinuxgetenforce # 查看模式setenforce 0 # 切换permissivesetenforce 1 # 切换enforcing 点点关注持续更新欢迎技术讨论。

相关新闻

CUDA 概述

CUDA 概述

CUDA 概述CUDA 全称 Compute Unified Device Architecture,即统一计算设备架构,由 NVIDIA 推出简单理解,CUDA 是一种让显卡(GPU)不止能画图,还能进行通用计算的技术平台CUDA 包含如下三个层面一个并行计算架…

2026/9/24 18:56:26 阅读更多 →
DMA与AXI总线协同工作原理:从概念到嵌入式系统高效数据传输实践

DMA与AXI总线协同工作原理:从概念到嵌入式系统高效数据传输实践

如果你正在开发一个嵌入式系统,尤其是基于 ARM Cortex-M 或 Zynq 这类 SoC 的平台,那么“DMA”和“AXI”这两个词一定不会陌生。它们经常出现在芯片手册、参考代码和调试日志里,但很多开发者对它们的理解,可能还停留在“DMA 能搬数…

2026/9/23 12:13:05 阅读更多 →
电动汽车充电调度优化与蒙特卡罗仿真实践

电动汽车充电调度优化与蒙特卡罗仿真实践

1. 电动汽车充电调度问题的背景与挑战随着电动汽车保有量的快速增长,充电需求对电网的冲击已成为不可忽视的问题。我曾在某充电站运营项目中亲眼目睹过这样的场景:傍晚6点下班高峰时段,30辆电动汽车同时接入充电桩,导致该片区电网…

2026/9/20 2:18:57 阅读更多 →

最新新闻

Kubernetes集群运维核心:Service、Ingress与RBAC权限管控实践

Kubernetes集群运维核心:Service、Ingress与RBAC权限管控实践

1. 从流量到权限:集群管理的四条主线聊 Kubernetes 集群运维,绕不开四个关键词:Service 管理、Ingress 管理、Dashboard 管理、以及 ServiceAccount 和 RBAC 角色鉴权。第一次接触集群的人容易把它们当成各自独立的模块,实际上这是…

2026/9/24 18:56:31 阅读更多 →
AWS入门实战指南:六步掌握核心服务,从EC2到S3构建云上架构

AWS入门实战指南:六步掌握核心服务,从EC2到S3构建云上架构

前两天团队里新来的实习生问我:“哥,AWS这么多服务,我到底该从哪儿开始学?”我当时没直接回答,反手给他开了一台EC2,让他自己把环境装明白。他折腾了一下午,回来说:“服务太多了&…

2026/9/24 18:56:31 阅读更多 →
2026低代码平台选型实战指南:织信、宜搭、Astro、微搭深度对比

2026低代码平台选型实战指南:织信、宜搭、Astro、微搭深度对比

1. 这不是排行榜,是2026年低代码平台的实战生存指南你点开这个标题,大概率不是想看一份冷冰冰的“厂商打分表”,而是正被手头那个卡在第三周的审批流折磨得睡不着觉——UI设计师说前端改不动了,后端同事甩来一句“这需求得排期三个…

2026/9/24 18:56:31 阅读更多 →
连锁品牌同城矩阵直播:门店规模化直播运营新思路

连锁品牌同城矩阵直播:门店规模化直播运营新思路

很多连锁品牌在布局直播时,会听到 “直播矩阵” 这个概念。尤其在对外交流的时候,这个词需要通俗解释:直播矩阵,简单来说,不再只依靠总部单一账号开播,而是统筹旗下多家门店、多个账号同步开展直播&#xf…

2026/9/24 18:56:31 阅读更多 →
Ubuntu关机失败排查指南:从系统日志到ACPI电源管理全解析

Ubuntu关机失败排查指南:从系统日志到ACPI电源管理全解析

1. 项目概述1.1 核心需求解析"Ubuntu使用sudo shutdown -h now 无法关机"——这个话题在Linux用户群里几乎天天有人问。我在初学阶段也踩过这个坑,明明命令敲对了、权限也给了、系统也响应了,结果屏幕一黑又弹回登录界面,或者直接卡…

2026/9/24 18:56:31 阅读更多 →
视觉设计:主题、配色、排版、间距与现成库

视觉设计:主题、配色、排版、间距与现成库

1. 背景:你的 App 是 ChatGPT 家中的客人 在画按钮、选字体之前,先接受一个现实:用户并未打开“你的网站”,他正身处 ChatGPT。ChatGPT 已经自带了: 配色方案, 字体与字号, 间距与元素布局。 你的小部件会展示在这个环境中,通常是在 iframe 里。重要结论是:视觉上 Ap…

2026/9/24 18:55:30 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →