Linux 交换空间管理与防火墙基础配置

📅 2026/8/4 5:16:21
Linux 交换空间管理与防火墙基础配置
Linux 交换空间管理与 Firewalld 防火墙基础配置引言Linux 系统管理中内存资源的高效利用与网络安全是两个至关重要的方面。当物理内存不足时交换空间Swap可以作为临时的“虚拟内存”缓解压力而防火墙则负责控制进出主机的网络流量保障系统安全。本文将基于课堂笔记系统介绍 Linux 交换空间的原理与配置方法以及 Firewalld 防火墙的基本概念和常用操作帮助读者构建稳固的存储与安全防线。第一部分Linux 交换空间管理1.1 计算机存储器的层次结构计算机存储器按速度与成本呈金字塔式结构CPU 寄存器速度最快容量极小用于暂存运算数据。CPU 高速缓存Cache由 SRAM 组成集成在 CPU 内速度接近 CPU。主存储器内存容量较大速度较 Cache 慢是程序运行的主要场所。辅助存储器磁盘、光盘等容量最大速度最慢但可持久化存储数据。当 CPU 需要数据时会依次从寄存器、Cache、内存、辅助存储器逐级查找将数据逐级缓存提高访问效率。1.2 物理内存与虚拟内存内存被划分为固定大小的页Page标准大小为4 KiB。进程使用虚拟地址空间由MMU内存管理单元将虚拟地址映射到物理地址。这样做的好处是虚拟内存容量 物理内存 交换空间突破了物理内存限制。虚拟地址空间连续解决了物理内存碎片化问题。1.3 Swap 交换空间Swap 是磁盘上的一块区域当物理内存不足时内核将暂时不用的内存页写入 Swap释放物理内存供其他进程使用。Swap 虽然能缓解内存压力但由于磁盘速度远慢于内存它只是临时解决方案长期性能瓶颈仍需增加物理内存。查看内存与 Swap 状态[rootcentos7 ~]# free -mtotal usedfreeshared buff/cache available Mem:39313223446111623403Swap:396703967输出字段说明Mem.total物理内存总量。Mem.used已使用的物理内存。Mem.free完全空闲的内存。Mem.buff/cache用于缓冲和缓存的内存。Swap.total交换空间总量。Swap.used已使用的交换空间。Swap.free剩余交换空间。创建交换空间首先使用parted创建分区并将文件系统类型设置为linux-swap[rootcentos7 ~]# parted /dev/sdb mklabel gpt[rootcentos7 ~]# parted /dev/sdb unit MiB mkpart swap01 linux-swap 1 2049然后使用mkswap格式化分区[rootcentos7 ~]# mkswap /dev/sdb1Setting up swapspace version1, size2097148KiB激活交换空间[rootcentos7 ~]# swapon /dev/sdb1查看已激活的 Swap 设备[rootcentos7 ~]# swapon -sFilename Type Size Used Priority /dev/dm-1 partition40632280-2/dev/sdb1 partition20971480-3多个 Swap 空间可以使用-p选项指定优先级值越大优先级越高内核会按优先级顺序使用。取消 Swap 激活[rootcentos7 ~]# swapoff /dev/sdb1持久化激活 Swap修改/etc/fstab文件添加如下行推荐使用 UUIDUUID2bf4e179-3648-4412-9495-3b278df4acd6 swap swap pri4 0 0之后可使用swapon -a激活所有 /etc/fstab 中定义的 Swap 设备swapoff -a取消激活。第二部分Linux 防火墙基础2.1 防火墙概述防火墙工作在网络或主机边缘依据规则检查进出数据包决定允许、拒绝或丢弃。按保护范围分为主机防火墙保护单台主机和网络防火墙保护局域网按实现方式分为硬件防火墙和软件防火墙按协议层次分为网络层防火墙包过滤基于 ACL和应用层防火墙代理可检测应用层数据。2.2 Netfilter 子系统Netfilter 是 Linux 内核中的网络过滤子系统工作在内核态对数据包进行检查。用户通过以下命令配置规则iptables过滤 IPv4 数据包。ip6tables过滤 IPv6 数据包。arptables过滤 ARP 数据包。ebtables过滤数据链路层数据包。2.3 Nftables 子系统Nftables 是 Netfilter 的增强版保留了 Netfilter 架构但提供了更快的数据包处理和规则集更新使用统一的nft命令行工具管理所有协议。2.4 静态防火墙与动态防火墙静态防火墙如 iptables修改规则后需重新加载所有规则可能导致网络连接中断。动态防火墙如 firewalld仅更新变更部分无需重新加载全部规则保持连接不中断。第三部分Firewalld 防火墙配置3.1 Firewalld 简介Firewalld 是 Red Hat 开发的动态防火墙软件默认后端为 nftables。CentOS 7 及以后版本将其作为默认防火墙。它通过区域zone将网络流量分类每个区域是一套规则集合。3.2 Firewalld 区域Firewalld 预定义多个区域常见的有trusted允许所有流量。public允许 SSH、dhcpv6-client 等服务其余拒绝默认区域。home允许 SSH、mdns、samba-client 等。block拒绝所有传入流量。drop丢弃所有传入流量不产生错误响应。数据包与区域匹配规则若源地址被分配给某区域则应用该区域规则。否则匹配传入网络接口关联的区域。若仍未匹配则使用默认区域public。3.3 防火墙配置状态Firewalld 有**运行时runtime和永久permanent**两种配置状态。运行时配置立即生效但重启后丢失永久配置需--permanent指定并执行firewall-cmd --reload生效。建议同时配置运行时和永久规则先永久的再运行时。3.4 firewall-cmd 常用命令查看区域与默认区域# 查看所有区域firewall-cmd --get-zones# 查看激活的区域已分配接口或源firewall-cmd --get-active-zones# 查看默认区域firewall-cmd --get-default-zone# 设置默认区域firewall-cmd --set-default-zonetrusted区域规则管理# 查看默认区域的完整规则firewall-cmd --list-all# 查看特定区域的规则firewall-cmd --list-all--zonehomeSource 管理将特定来源地址绑定到某区域# 添加源到 home 区域firewall-cmd --add-source10.1.1.0/24--zonehome# 查看区域内的源firewall-cmd --list-sources--zonehome# 查询源是否绑定firewall-cmd --query-source10.1.1.0/24--zonehome# 删除源firewall-cmd --remove-source10.1.1.0/24--zonepublicService 管理服务是预定义的端口/协议集合如 httptcp/80# 查看所有预定义服务firewall-cmd --get-services# 添加放行 http 服务运行时firewall-cmd --add-servicehttp# 添加放行 http 服务永久firewall-cmd--permanent--add-servicehttp# 查看已放行的服务firewall-cmd --list-services# 查询服务是否放行firewall-cmd --query-servicehttp# 删除服务firewall-cmd --remove-servicehttpPort 管理若服务未在预定义列表中可直接放行端口# 放行 TCP 5900 端口firewall-cmd --add-port5900/tcp# 永久放行firewall-cmd--permanent--add-port5900/tcp# 查看已放行的端口firewall-cmd --list-ports# 删除端口firewall-cmd --remove-port5900/tcp富规则Rich Rules富规则提供更灵活的自定义能力可结合源地址、协议、日志、限速等。示例禁止所有主机 ping 本机firewall-cmd --add-rich-rulerule protocol valueicmp drop示例允许 10.1.8.10 主机 ping 本机firewall-cmd --add-rich-rulerule familyipv4 source address10.1.8.10 icmp-type nameecho-request accept查看富规则清单firewall-cmd --list-rich-rules3.5 配置持久化将当前运行时配置保存为永久配置firewall-cmd --runtime-to-permanent3.6 其他常用选项panic 模式--panic-on丢弃所有进出流量用于紧急断网--panic-off恢复。规则超时--timeout秒设定规则临时生效时间用于测试。重新加载规则--reload不中断连接重载永久配置--complete-reload完全重载可能中断连接。