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

Linux systemd 服务管理与 Firewall 防火墙配置

Linux systemd 服务管理与 Firewall 防火墙配置

一、systemd 服务管理

systemd 是 Linux 系统的初始化系统和服务管理器,负责系统启动、服务管理、进程监控等核心功能。通过 systemctl 命令可对系统服务进行全面管理。

1. systemd 核心概念

  • 服务(Service):系统中运行的后台程序(如 httpd、firewalld),以 .service 配置文件定义运行规则。
  • 目标(Target):类似传统运行级别的概念,定义系统的运行状态(如 multi-user.target 对应多用户命令行模式,graphical.target 对应图形界面模式)。
  • systemctl 命令:管理服务的核心工具,支持启动、停止、查看状态等操作。

2. systemctl 常用命令

命令格式

功能说明

示例

systemctl status <服务名>

查看服务当前状态(运行 / 停止、日志等)

systemctl status firewalld

systemctl start <服务名>

启动服务(立即生效,临时)

systemctl start httpd

systemctl stop <服务名>

停止服务(立即生效,临时)

systemctl stop httpd

systemctl restart <服务名>

重启服务(适用于配置变更后)

systemctl restart sshd

systemctl reload <服务名>

重新加载配置(不中断服务,优先于 restart)

systemctl reload nginx

systemctl enable <服务名>

开机自动启动服务(永久生效)

systemctl enable firewalld

systemctl disable <服务名>

禁止开机启动服务(永久生效)

systemctl disable firewalld

systemctl mask <服务名>

屏蔽服务(禁止手动 / 自动启动,比 disable 严格)

systemctl mask postfix

systemctl unmask <服务名>

解除屏蔽服务

systemctl unmask postfix

3. 服务状态说明

systemctl status <服务名> 输出中的关键状态:

  • active (running):服务正在运行。
  • inactive (dead):服务已停止。
  • failed:服务启动失败(需查看日志排查原因)。
  • enabled:开机自动启动;disabled:开机不启动。

二、Firewall 防火墙管理

Firewall(firewalld)是 CentOS 7+ 默认的动态防火墙工具,基于内核 netfilter 模块实现网络访问控制,支持 zone(区域)和富规则(rich rule)等灵活配置。

1. 防火墙核心概念

  • netfilter 模块:内核中的网络过滤框架,负责数据包的过滤、转发、NAT 等操作,是防火墙的底层依赖。
  • Zone(区域):预定义的安全区域,通过分类网络接口和规则简化防火墙配置。每个区域对应不同的信任级别,默认区域为 public。
  • Service(服务):预定义的端口集合(如 http 对应 80 端口,ssh 对应 22 端口),简化端口规则配置。
  • 富规则(Rich Rule):精细化的访问控制规则,支持基于 IP、端口、协议、日志等多维度的条件匹配。

2. 常用 Zone 及特性

Firewall 定义了多个预设区域,核心区域特性如下

区域名称

信任级别

功能说明

public

中等

默认区域,允许常用服务(如 ssh),拒绝其他非明确允许的流量。

trusted

最高

允许所有入站 / 出站流量,无限制(信任所有网络)。

block

最低

拒绝所有入站流量,并返回 “拒绝” 响应(礼貌拒绝)。

drop

最低

强制拒绝所有入站流量,不返回任何响应(静默丢弃)。

internal

较高

适用于内部网络,允许更多服务和端口。

3. firewall-cmd 命令行工具

firewall-cmd 是管理 firewalld 的命令行工具,支持动态配置(无需重启服务即可生效)。

(1)基础配置命令

命令格式

功能说明

示例

firewall-cmd --get-default-zone

查看当前默认区域

firewall-cmd --get-default-zone

firewall-cmd --set-default-zone=<zone>

设置默认区域(永久生效需加 --permanent)

firewall-cmd --set-default-zone=public --permanent

firewall-cmd --list-all

查看默认区域的所有规则(服务、端口、富规则等)

firewall-cmd --list-all

firewall-cmd --list-all --zone=<zone>

查看指定区域的规则

firewall-cmd --list-all --zone=trusted

firewall-cmd --reload

重载配置(使永久规则生效)

firewall-cmd --reload

(2)服务与端口管理

命令格式

功能说明

示例

firewall-cmd --add-service=<服务名> [--permanent]

允许指定服务的流量(如 http、ssh)

firewall-cmd --add-service=http --permanent

firewall-cmd --remove-service=<服务名> [--permanent]

移除允许的服务流量

firewall-cmd --remove-service=ftp --permanent

firewall-cmd --add-port=<端口/协议> [--permanent]

允许指定端口的流量(如 8080/tcp)

firewall-cmd --add-port=8080/tcp --permanent

firewall-cmd --remove-port=<端口/协议> [--permanent]

移除允许的端口流量

firewall-cmd --remove-port=3306/tcp --permanent

4. 富规则(Rich Rule)详解

富规则是 Firewall 中最灵活的访问控制方式,支持基于源 IP、服务、端口、日志、动作(允许 / 拒绝)等多条件组合的规则定义,适用于复杂场景。

(1)富规则基本语法
firewall-cmd [--zone=<区域>] --add-rich-rule='rule [family=<ipv4|ipv6>][source address=<IP/网段>][service name=<服务名> | port port=<端口> protocol=<tcp|udp>][log prefix=<日志前缀> level=<日志级别> limit value=<速率/时间>][audit limit value=<速率/时间>]<action> # accept(允许)、reject(拒绝并响应)、drop(静默拒绝)' [--permanent]
  • 核心参数说明
    • family:指定 IP 协议版本(默认 ipv4)。
    • source address:限制源 IP 或网段(如 192.168.100.0/24)。
    • service/port:指定目标服务或端口(二选一)。
    •    log:对匹配的流量记录日志(输出到 /var/log/messages)。
      • level:日志级别(emerg 最高,debug 最低,常用 notice info)。
      • limit:日志速率限制(如 10/m 表示每分钟最多 10 条)。
    • audit:记录到审计子系统(类似 log,但更详细)。
    • action:对匹配流量的处理动作(accept/reject/drop)。
(2)富规则示例场景
示例 1:允许特定网段访问 HTTP 服务并记录日志
# 允许 192.168.100.0/24 网段访问 HTTP 服务,以 notice 级别记录日志(每分钟最多 10 条)firewall-cmd --add-rich-rule='rule family=ipv4source address=192.168.100.0/24service name=httplog prefix="HTTP_ACCESS" level=notice limit value=10/maccept' --zone=public --permanent# 重载配置使规则生效firewall-cmd --reload
示例 2:临时拒绝特定网段的 SSH 连接并审计
# 未来 10 分钟(600 秒)内拒绝 192.168.100.0/24 网段的 SSH 连接,
每分钟最多审计 2 条记录firewall-cmd --add-rich-rule='rule family=ipv4source address=192.168.100.0/24service name=sshaudit limit value=2/mreject' --timeout=600 # 临时规则,600 秒后自动失效# 无需 --permanent,--timeout 规则默认是运行时配置
示例 3:端口转发(将本地端口转发到其他主机)
# 开启 IP 转发(防火墙伪装依赖此配置)echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.confsysctl -p # 生效配置# 将本地 80 端口的流量转发到 192.168.100.20 的 8080 端口firewall-cmd --add-rich-rule='rule family=ipv4forward-port port=80 protocol=tcp to-port=8080 to-addr=192.168.100.20' --permanentfirewall-cmd --reload
示例 4:启用网络伪装(NAT 转发)
# 允许 public 区域的 192.168.100.0/24 网段通过本机伪装访问外部网络(如共享上网)firewall-cmd --add-rich-rule='rule family=ipv4source address=192.168.100.0/24masquerade # 启用伪装(NAT)' --zone=public --permanent# 或简化命令(对整个区域启用伪装)firewall-cmd --add-masquerade --zone=public --permanentfirewall-cmd --reload
(3)富规则优先级
  • 规则匹配顺序:拒绝规则(reject/drop)优先于允许规则(accept)。若同时存在针对同一流量的拒绝和允许规则,拒绝规则生效。
  • 精确规则优先于模糊规则:针对特定 IP 的规则优先于针对网段的规则。

5. 其他实用配置

(1)禁止 ICMP ping 请求(禁 ping)
# 临时禁 ping(立即生效)echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all# 永久禁 ping(重启生效)echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.confsysctl -p
(2)图形化配置工具

CentOS 7 可通过 firewall-config 图形工具配置防火墙:

  • 启动:firewall-config(需图形界面环境)。
  • 功能:可视化配置区域、服务、富规则等,支持切换 “运行时” 和 “永久” 模式。

三、总结

  • systemd 服务管理:通过 systemctl 命令实现服务的启动、停止、开机自启等操作,核心是理解服务状态和生命周期。
  • Firewall 防火墙:基于 zone 和富规则实现灵活的网络控制,firewall-cmd 命令支持动态配置,富规则适用于精细化访问控制场景(如特定 IP 允许 / 拒绝、日志审计、端口转发等)。
  • 关键原则:防火墙配置需遵循 “最小权限” 原则,仅开放必要的服务和端口;规则变更后需 --reload 生效,永久规则需加 --permanent 参数。

掌握这两项工具是 Linux 系统运维和安全加固的基础技能。

http://www.dtcms.com/a/317982.html

相关文章:

  • 【论文分析】【Agent】SEW: Self-Evolving Agentic Workflows for Automated Code Generatio
  • 从零开始的云计算生活——第三十八天,避坑落井,Docker容器模块
  • 《RedisTemplate 核心操作全解析》
  • 家庭宽带中的服务器如何被外网访问?
  • 无法解析 CentOS 官方镜像源的域名
  • 977.有序数组的平方
  • 什么是回调地址
  • 8、项目管理
  • PI 思维升级 解密电容器的选择与布局策略,带您追求极致平坦的电源阻抗
  • 个人自然人可不可以申请注册商标!
  • 2025国赛数学建模C题详细思路模型代码获取,备战国赛算法解析——决策树
  • Python Day24 多线程编程:核心机制、同步方法与实践案例
  • Lesson 33 Out of the darkness
  • 开疆智能ModbusTCP转Profinet网关连接EPSON机器人配置案例
  • c# winform 调用 海康威视工业相机(又全又细又简洁)
  • 字典树trie
  • 技术博客:从HTML提取到PDF生成的完整解决方案
  • 奔图P2500NW打印机手机无线连接方法
  • 强化应急通信生命线:遨游三防平板、卫星电话破局极端灾害救援
  • 2.6 sync
  • 2024年测绘程序设计比赛--空间探索性分析(数据为2025年第三次模拟数据)
  • 第二十六天(数据结构:树(补充版程序请看下一篇))
  • 【数据结构与算法】刷题篇——环形链表的约瑟夫问题
  • tmux.conf配置-简易版
  • Java技术栈/面试题合集(15)-RabbitMQ篇
  • 202506 电子学会青少年等级考试机器人四级实际操作真题
  • vue3 vite 使用vitest 单元测试 组件测试
  • Python数据可视化:从基础到高级实战指南
  • 【代码随想录day 12】 力扣 144.145.94.前序遍历中序遍历后序遍历
  • 【数据可视化-82】中国城市幸福指数可视化分析:Python + PyEcharts 打造炫酷城市幸福指数可视化大屏