欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > linux-Firewalld使用指南

linux-Firewalld使用指南

2025/2/13 17:41:52 来源:https://blog.csdn.net/qq_38743726/article/details/143684637  浏览:    关键词:linux-Firewalld使用指南

本指南提供了 Firewalld 的核心功能和使用方法涵盖其核心概念、使用方法以及高级技巧。  更高级的功能和更复杂的配置需要参考官方文档和更深入的学习。

1. Firewalld 简介

Firewalld 不是一个独立的防火墙软件,而是 Linux 内核 Netfilter/iptables 系统的一个前端管理工具。它提供了一个更用户友好的界面来管理防火墙规则,简化了直接使用 iptables 的复杂性。Firewalld 支持动态更新,修改规则无需重启服务,并引入了“区域”和“服务”的概念,方便快速切换不同场景的策略和设置服务规则。

2. Firewalld 的安装与管理

Firewalld 通常预装在许多现代 Linux 发行版中(例如 CentOS 7+ 和 Fedora 18+)。可以使用以下命令进行安装和管理:

  • 安装:
sudo yum install firewalld firewall-config firewall-applet  # firewall-config 和 firewall-applet 提供图形界面
  • 启动和启用:
sudo systemctl start firewalld
sudo systemctl enable firewalld
  • 状态检查:
sudo systemctl status firewalld

3. Firewalld 区域 (Zones)

Firewalld 使用“区域”的概念来定义不同的安全策略。每个区域代表一个网络环境,并具有预定义的规则集,控制进出该区域的网络流量。默认区域为 public,其他常用区域包括:

区域名称描述默认策略
public公共区域,不信任外部网络,仅允许选定的入站连接。drop
drop最低信任级别,所有入站连接都被丢弃。drop
blockdrop 类似,但会返回 ICMP 错误消息。drop
external通常用于启用 NAT 伪装的外部网络,不信任外部网络,仅允许选定的入站连接。drop
internal内部网络,信任内部网络中的其他计算机,仅允许选定的入站连接。accept
home家庭网络,信任家庭网络中的其他计算机,仅允许选定的入站连接。accept
work工作网络,信任工作网络中的其他计算机,仅允许选定的入站连接。accept
dmz隔离区,允许有限的外部访问。drop
trusted最高信任级别,允许所有网络连接。accept

4.  查看区域信息:

可以使用 firewall-cmd 命令查看区域信息:

  • 查看默认区域:
firewall-cmd --get-default-zone
  • 查看所有区域:
firewall-cmd --get-zones
  • 查看特定区域的详细信息:
firewall-cmd --info-zone=public -v
  • 查看已允许的服务:
firewall-cmd --list-services
  • 查看已允许的端口:
firewall-cmd --list-ports

5.  添加和修改区域:

  • 创建新的区域:
sudo firewall-cmd --permanent --new-zone=myzone
  • 设置默认区域:
sudo firewall-cmd --permanent --set-default-zone=myzone
sudo firewall-cmd --reload  # 重新加载配置
  • 添加服务到区域:
sudo firewall-cmd --permanent --zone=myzone --add-service=http
sudo firewall-cmd --reload
  • 添加端口到区域:
sudo firewall-cmd --permanent --zone=myzone --add-port=8080/tcp
sudo firewall-cmd --reload
  • 移除服务或端口:  使用 --remove-service--remove-port 命令,语法与添加类似。

6.  服务 (Services)

Firewalld 使用“服务”的概念来表示特定的网络服务(例如 HTTP, SSH, DNS)。每个服务都有一个预定义的端口和协议。可以使用 firewall-cmd --get-services 命令查看所有可用的服务。

7.  添加自定义服务:

自定义服务需要创建 XML 文件,通常放在 /etc/firewalld/services 目录下。  一个简单的例子:

<?xml version="1.0" encoding="utf-8"?>
<service><short>myservice</short><description>My custom service</description><port protocol="tcp" port="1234"/>
</service>

创建文件后,需要重新加载 Firewalld 配置才能生效。

8.  临时规则:

可以使用 --timeout 选项设置临时规则,例如:

sudo firewall-cmd --add-port=22/tcp --timeout=300  # 临时开放端口 22,持续 5 分钟

9.  高级功能:

  • rich rules:  允许创建更复杂的规则,例如基于源 IP 地址、目标 IP 地址、端口、协议等条件进行过滤。

  • Masquerading:  用于实现 NAT 伪装,将内部网络的 IP 地址转换为外部网络的 IP 地址。

  • Forwarding:  允许转发数据包到其他网络。

10. 常用命令总结:

命令功能
firewall-cmd --help显示帮助信息
firewall-cmd --version显示版本信息
firewall-cmd --reload重新加载配置
firewall-cmd --list-all列出所有区域的详细信息
firewall-cmd --get-zones列出所有区域
firewall-cmd --get-services列出所有已注册的服务

11.  安全注意事项:

  • 谨慎修改防火墙规则,错误的配置可能导致网络中断。

  • 在生产环境中测试规则,避免意外情况。

  • 定期备份配置。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com