引言
Firewall-cmd是Linux系统中常用的防火墙管理工具之一,它基于iptables实现,提供了比iptables命令行更加直观和易于使用的接口。本文将详细介绍如何使用firewall-cmd来设置和管理防火墙策略,帮助您轻松掌握这一强大工具。
一、firewall-cmd简介
1.1 firewall-cmd的基本功能
- 添加、删除、查询防火墙规则
- 管理网络接口和区域
- 设置端口转发和伪装
- 控制服务状态
1.2 firewall-cmd的优势
- 易于使用:命令行界面简洁明了,易于上手
- 支持多种配置文件格式:包括JSON、YAML等
- 支持动态更新:无需重启防火墙即可生效
二、firewall-cmd的基本操作
2.1 查看当前防火墙状态
firewall-cmd --state
2.2 查看所有可用区域
firewall-cmd --get-active-zones
2.3 查看指定区域的规则
firewall-cmd --zone=区域名称 --list-all
三、设置防火墙策略
3.1 添加规则
3.1.1 允许访问特定端口
firewall-cmd --zone=区域名称 --add-port=端口/协议
例如,允许访问80端口:
firewall-cmd --zone=public --add-port=80/tcp
3.1.2 允许访问特定IP地址
firewall-cmd --zone=区域名称 --add-rich-rule='rule family="ipv4" source address="IP地址" accept'
例如,允许访问192.168.1.100:
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
3.2 删除规则
3.2.1 删除指定端口规则
firewall-cmd --zone=区域名称 --remove-port=端口/协议
例如,删除80端口规则:
firewall-cmd --zone=public --remove-port=80/tcp
3.2.2 删除指定IP地址规则
firewall-cmd --zone=区域名称 --remove-rich-rule='rule family="ipv4" source address="IP地址" accept'
例如,删除192.168.1.100规则:
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
3.3 重载防火墙
firewall-cmd --reload
或者重启防火墙服务:
systemctl restart firewalld
四、高级操作
4.1 设置端口转发
firewall-cmd --zone=区域名称 --add-forward-port=port=本地端口:proto=协议:toport=目标端口
例如,将本地80端口转发到目标服务器的8080端口:
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080
4.2 设置伪装
firewall-cmd --zone=区域名称 --add-masquerade
例如,为public区域启用伪装:
firewall-cmd --zone=public --add-masquerade
4.3 控制服务状态
firewall-cmd --zone=区域名称 --add-service=服务名称
firewall-cmd --zone=区域名称 --remove-service=服务名称
例如,允许SSH服务:
firewall-cmd --zone=public --add-service=ssh
五、总结
通过本文的介绍,相信您已经对firewall-cmd有了较为全面的了解。在实际应用中,您可以根据需要灵活运用firewall-cmd的各种功能,为您的Linux系统提供强大的安全防护。