Linux命令-firewall-cmd命令(防火墙核心命令行)
·
🧭说明
firewall-cmd 是管理 Linux 防火墙 firewalld 的核心命令行工具,通过“区域”和“服务”的概念,可以灵活控制网络流量。下面这个表格汇总了它的核心操作命令,方便你快速查阅。
🔧 核心操作命令速查
| 操作类别 | 常用命令示例 | 主要参数/说明 |
|---|---|---|
| 服务管理 | 允许 HTTP:--add-service=http禁止 SSH: --remove-service=ssh |
使用预定义的服务(如 http, ssh, ftp)简化端口管理。 |
| 端口管理 | 开放 8080/tcp:--add-port=8080/tcp开放端口范围: --add-port=8000-9000/tcp关闭 3306/tcp: --remove-port=3306/tcp |
直接指定端口号和协议(tcp/udp)。 |
| 区域管理 | 查看默认区域:--get-default-zone设置默认区域: --set-default-zone=home将接口 eth0 绑定到 internal 区域: --zone=internal --change-interface=eth0 |
区域(如 public, home, internal)代表不同的信任级别。 |
| 高级功能 | IP 限制:--add-rich-rule='rule family=ipv4 source address=192.168.1.10 port port=22 protocol=tcp accept'端口转发: --add-forward-port=port=80:proto=tcp:toport=8080 |
富规则(Rich Rules)实现更精细的访问控制。 |
⚙️ 关键配置流程
掌握以下流程和概念,能让你更得心应手地配置防火墙。
-
确保 firewalld 运行
配置前,先确认防火墙服务已经启动:sudo systemctl start firewalld。检查状态命令是sudo firewall-cmd --state,如果返回running则表示正在运行。 -
理解“临时”与“永久”规则
- 临时生效:不加
--permanent参数的规则会立即生效,但系统或防火墙服务重启后失效,适合测试。 - 永久生效:加上
--permanent参数的规则会写入配置文件,但不会立即生效,需要执行sudo firewall-cmd --reload来加载,此后规则会持续有效。
⚠️ 最佳实践:建议先添加临时规则测试,确认服务正常后,再添加永久规则并重载配置。或者直接使用
--permanent参数添加永久规则后,再执行--reload使其生效。 - 临时生效:不加
-
让配置变更生效
在修改了任何带有--permanent参数的规则后,或者手动修改了防火墙配置文件(如/etc/firewalld/zones/public.xml)后,必须执行重载命令才能使永久规则生效:sudo firewall-cmd --reload
💡 实用技巧与注意事项
- 查看现有规则:使用
sudo firewall-cmd --list-all查看当前默认区域的完整规则。要查看所有区域的详细规则,可以使用sudo firewall-cmd --list-all-zones。 - 慎用应急模式:在遇到安全威胁时,可以使用
sudo firewall-cmd --panic-on来阻断所有网络连接。恢复时使用sudo firewall-cmd --panic-off。切记,此操作会断开所有远程连接。 - 谨慎删除默认服务:默认区域(如 public)通常预放了 SSH 等服务。在远程服务器上操作时,若贸然移除 SSH 服务(
--remove-service=ssh),可能会导致自己无法连接。
更多推荐
所有评论(0)