firewalld
是Linux系统中一个强大的动态防火墙管理工具,它提供了一个灵活的框架来定义网络区域(zones)以及区域之间的流量控制策略。以下是firewalld
的一些常用命令介绍,这些命令可以帮助用户配置和管理防火墙规则。
一、基本服务管理
- 启动firewalld服务
- 命令:
sudo systemctl start firewalld
- 描述:启动firewalld服务。
- 命令:
- 停止firewalld服务
- 命令:
sudo systemctl stop firewalld
- 描述:停止firewalld服务。
- 命令:
- 重启firewalld服务
- 命令:
sudo systemctl restart firewalld
- 描述:重启firewalld服务,以应用最近的配置更改。
- 命令:
- 查看firewalld状态
- 命令:
sudo systemctl status firewalld
- 描述:显示firewalld服务的当前状态信息。
- 命令:
- 设置firewalld开机自启动
- 命令:
sudo systemctl enable firewalld
- 描述:配置firewalld服务在系统启动时自动启动。
- 命令:
- 关闭firewalld开机自启动
- 命令:
sudo systemctl disable firewalld
- 描述:取消firewalld服务的开机自启动设置。
- 命令:
二、区域管理
firewalld
使用区域(zones)来定义网络流量的处理策略。每个区域可以有不同的规则集。
- 列出所有区域
- 命令:
firewall-cmd --list-all-zones
- 描述:显示所有预定义和自定义的区域及其配置。
- 命令:
- 设置默认区域
- 命令:
sudo firewall-cmd --set-default-zone=<zone>
- 描述:设置firewalld的默认区域。
<zone>
应替换为具体的区域名称,如public
、dmz
等。
- 命令:
三、端口和服务管理
- 添加允许通过的端口
- 命令:
sudo firewall-cmd --zone=<zone> --add-port=<port>/<protocol> --permanent
- 描述:在指定区域中添加允许通过的端口。
<zone>
是区域名称,<port>
是端口号,<protocol>
是协议(如tcp、udp)。--permanent
参数表示更改是永久的。
- 命令:
- 移除已允许的端口
- 命令:
sudo firewall-cmd --zone=<zone> --remove-port=<port>/<protocol> --permanent
- 描述:从指定区域中移除已允许的端口。
- 命令:
- 添加允许通过的服务
- 命令:
sudo firewall-cmd --zone=<zone> --add-service=<service_name> --permanent
- 描述:在指定区域中添加允许通过的服务。
<service_name>
是服务的名称,如http
、ssh
等。
- 命令:
- 移除已允许的服务
- 命令:
sudo firewall-cmd --zone=<zone> --remove-service=<service_name> --permanent
- 描述:从指定区域中移除已允许的服务。
- 命令:
四、富规则(Rich Rules)
富规则允许用户定义更复杂的防火墙规则。
- 添加富规则
- 命令示例:
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.10" port protocol="tcp" port="80" accept' --permanent
- 描述:添加一条富规则,允许来自IP地址192.168.1.10的TCP流量通过80端口。
- 命令示例:
- 删除富规则
- 命令:与添加富规则类似,但使用
--remove-rich-rule
参数,并指定要删除的富规则。
- 命令:与添加富规则类似,但使用
五、端口转发和伪装
- 端口转发
- 命令示例:
sudo firewall-cmd --add-forward-port=port=8888:proto=tcp:toport=80 --permanent
- 描述:将8888端口的流量转发到80端口。
- 命令示例:
- 开启IP伪装
- 命令:
sudo firewall-cmd --add-masquerade
- 描述:开启IP伪装,允许将流量转发到非本地地址。
- 命令:
六、重新加载配置
- 重新加载firewalld配置
- 命令:
sudo firewall-cmd --reload
- 描述:重新加载firewalld的配置,使更改生效。在添加、删除规则或更改设置后,通常需要执行此命令。
- 命令: