引言
CentOS 7 系统默认使用 firewalld 作为防火墙管理工具,相较于传统的 iptables,firewalld 提供了更加灵活和动态的防火墙管理方式。本文将详细介绍如何在 CentOS 7 系统中查看和管理防火墙规则,帮助您更好地保护系统安全。
Firewalld 基础概念
什么是 Firewalld?
Firewalld 是一个动态管理防火墙的守护进程,提供基于区域的网络流量管理。它允许在不中断现有连接的情况下动态更改规则,并根据不同的区域(zone)定义不同的规则。
Firewalld 的特性
- 动态管理:支持在不中断现有连接的情况下动态更改规则。
- 区域概念:基于信任级别定义不同的区域,每个区域有不同的规则。
- 服务管理:可以通过服务名称而不是端口号来配置规则。
- 接口绑定:可以将网络接口绑定到特定的区域。
- 丰富的接口:提供命令行工具 firewall-cmd 和图形界面工具(如 firewall-config)进行管理。
Firewalld 与 iptables 的区别
- 设计理念和管理方式:
- iptables:使用静态规则集,所有规则在启动时加载到内核并在运行时保持不变。任何更改都需要重新应用整个规则集。
- firewalld:支持动态修改单条规则,不需要像 iptables 那样,在修改了规则后必须得全部刷新才可以生效。
查看与管理防火墙规则
查看当前防火墙状态
firewall-cmd --state
输出结果为 running
表示防火墙正在运行。
查看当前激活的规则
firewall-cmd --list-all
输出结果将显示所有激活的规则,包括服务和接口。
查看特定区域的规则
firewall-cmd --get-active-zones
输出结果将显示所有区域的激活状态,您可以使用以下命令查看特定区域的规则:
firewall-cmd --zone=区域名称 --list-all
添加规则
以下是一些常用的添加规则命令:
- 允许特定端口:
firewall-cmd --zone=区域名称 --add-port=端口号/tcp
- 允许特定服务:
firewall-cmd --zone=区域名称 --add-service=服务名称
- 允许特定接口:
firewall-cmd --zone=区域名称 --add-interface=接口名称
删除规则
以下是一些常用的删除规则命令:
- 删除特定端口:
firewall-cmd --zone=区域名称 --remove-port=端口号/tcp
- 删除特定服务:
firewall-cmd --zone=区域名称 --remove-service=服务名称
- 删除特定接口:
firewall-cmd --zone=区域名称 --remove-interface=接口名称
保存规则
Firewalld 规则默认不会在重启后自动保存。要保存规则,可以使用以下命令:
firewall-cmd --reload
或者
firewall-cmd --permanent --reload
总结
通过本文的介绍,相信您已经掌握了在 CentOS 7 系统中查看和管理防火墙规则的方法。合理配置防火墙规则,可以有效提高系统的安全性。