一、Firewalld帮助命令
firewall-cmd --version #显示当前安装的 firewalld 版本
firewall-cmd --help #提供了所有可用命令的简要说明。
man firewall-cmd #提供了详细的命令手册页,包含每个选项的详细解释。
二、Firewalld默认区域
Firewalld使用区域(zone)来定义网络连接的信任级别。每个区域有自己的规则,可以根据接口或源地址分配区域。默认的区域是public。 查看所有可用区域: firewall-cmd --get-zones
查看系统默认的zone: firewall-cmd --get-default-zone
设置默认的zone: firewall-cmd --set-default-zone=public
三、状态查询
查看firewalld是否运行: firewall-cmd --state
查看firewalld服务的详细状态: systemctl status firewalld
查看firewalld日志信息 journalctl -u firewalld #查看 firewalld 的日志
四、启动与关闭Firewalld
启动firewalld: systemctl start firewalld
设置开机自启: systemctl enable firewalld
临时关闭firewalld: systemctl stop firewalld
永久关闭firewalld(通过禁用服务): systemctl disable firewalld
五、现有生效的规则
查看当前区域及其配置: firewall-cmd --get-active-zones
查看指定区域的详细信息: firewall-cmd --zone=public --list-all
重新加载配置(在修改规则后必须执行): firewall-cmd --reload
查看所有当前规则: firewall-cmd --list-all
六、放行指定端口
允许TCP端口8080(永久生效): firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
临时允许TCP端口8080(仅对当前会话有效,重启 firewalld 或系统后会失效): firewall-cmd --zone=public --add-port=8080/tcp
七、允许指定IP访问
富规则(rich rules)允许更复杂的配置,如基于时间、源地址、目标地址等条件。 假设要允许192.168.1.100访问ssh: firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
firewall-cmd --reload
删除规则 firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="22" accept'
八、其他高级配置
添加服务(例如允许SSH服务): firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --reload
移除服务(例如移除HTTP服务): firewall-cmd --zone=public --remove-service=http --permanent
firewall-cmd --reload
丢弃/拒绝所有入站流量(进入紧急模式): firewall-cmd --panic-on
取消拒绝状态: firewall-cmd --panic-off
清除所有规则 rm -rf /etc/firewalld/zones #备份当前配置(强烈建议):在删除目录之前,先备份当前的 firewalld 区域配置文件
systemctl restart firewalld #重启 firewalld 服务以应用更改
原文始发于微信公众号(网络个人修炼):Linux Firewalld详解
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论