Linux Firewalld 入门及命令使用指南


Linux Firewalld 入门及命令使用指南

firewalld 是 Linux 上一个动态管理防火墙的工具,提供了比传统 iptables 更简单、更灵活的防火墙管理方式。firewalld 默认使用 zones(区域)的概念来管理网络流量,它允许管理员根据不同的区域进行安全性配置,从而实现更细粒度的网络访问控制。

本指南将介绍 firewalld 的基本概念及其常用命令,帮助你快速掌握该工具的使用方法。

Firewalld 的基本概念

Zone(区域)

Firewalld 使用 zone 来对网络接口进行分区,并为每个区域设置不同的防火墙规则。不同的区域对应不同的安全级别。常见的 zone 有:

  • trusted: 信任所有网络连接。
  • home: 家庭网络,信任大部分网络连接。
  • public: 公共网络,具有较严格的安全规则。
  • block: 丢弃所有传入流量,不返回响应。
  • drop: 丢弃所有流量,无响应,完全静默。

服务和端口

Firewalld 可以根据服务或端口进行防火墙规则的管理。服务包含了一系列预定义的端口和协议,常见的服务如 httphttps 等。

永久与临时规则

Firewalld 提供了两种规则:临时规则和永久规则。临时规则在重启后失效,而永久规则则会保存在配置文件中,重启后依然有效。

Firewalld 基本命令

查看 firewalld 状态

firewall-cmd --state

输出 running 表示防火墙正在运行。
在这里插入图片描述

查看当前区域

firewall-cmd --get-active-zones

输出会显示当前系统中使用的区域以及它们所绑定的网络接口。
在这里插入图片描述

查看某个区域的配置

firewall-cmd --zone=public --list-all

这条命令会列出 public 区域的详细配置,包括开放的端口、允许的服务等。
在这里插入图片描述

添加服务到指定区域

比如要允许 HTTP 服务:

firewall-cmd --zone=public --add-service=http

这条命令会立即生效,但它是临时的。要永久生效,需要添加 --permanent 选项:

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

在这里插入图片描述

删除服务

假如要从 public 区域中移除 HTTP 服务:

firewall-cmd --zone=public --remove-service=http

在这里插入图片描述

开放端口

除了添加服务,你也可以直接通过端口号进行配置。例如,开放端口 8080:

firewall-cmd --zone=public --add-port=8080/tcp

在这里插入图片描述

删除端口

关闭之前开放的 8080 端口:

firewall-cmd --zone=public --remove-port=8080/tcp

重新加载配置

任何永久性的规则更改之后,都需要重新加载防火墙配置才能生效:

firewall-cmd --reload

查看所有已打开的端口

查看当前防火墙规则中已打开的所有端口:

firewall-cmd --list-ports

启用/禁用 Firewalld

启动 firewalld

systemctl start firewalld

禁用 firewalld

systemctl stop firewalld

创建和管理自定义区域

有时你可能需要根据自己的需求创建自定义区域,以管理不同的网络接口或流量类型。

创建自定义区域

firewall-cmd --permanent --new-zone=myzone

将接口分配到自定义区域

firewall-cmd --zone=myzone --change-interface=eth0

删除自定义区域

firewall-cmd --permanent --delete-zone=myzone

Firewalld 高级用法

启用/禁用 IP 转发

IP 转发使得 Linux 系统可以作为路由器工作。启用 IP 转发:

firewall-cmd --add-masquerade

禁用 IP 转发:

firewall-cmd --remove-masquerade

设置端口转发

Firewalld 允许你配置端口转发,比如将外部的 80 端口流量转发到内部服务器的 8080 端口:

firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080

配置富规则(Rich Rules)

富规则允许你定义更复杂的规则,例如基于源 IP 地址的流量控制:

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' service name='ssh' accept"

防火墙日志记录

Firewalld 支持日志记录功能,开启日志功能可以帮助你监控防火墙的运行情况:

firewall-cmd --set-log-denied=all

总结

firewalld 提供了动态、区域化的防火墙管理机制,用户可以通过简单的命令实现复杂的防火墙配置。无论是管理服务、端口还是设置端口转发,firewalld 都能提供强大的功能。结合永久规则和临时规则,你可以在生产环境和开发环境中灵活管理 Linux 系统的网络访问控制。

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值