在 CentOS 上为 Dolphin 服务配置防火墙
适用说明与准备
- 以下步骤面向 CentOS 7/8/Stream(默认使用 firewalld)为 Dolphin 相关服务开放访问。若你指的是 DolphinScheduler 或 DolphinDB,方法相同,仅端口不同。开始前建议确认 firewalld 已安装并运行,且以具有 sudo 权限的账号操作。若系统使用 iptables 而非 firewalld,可参考文末的替代方案。
启用并验证 firewalld
- 安装与启动
- 安装:sudo yum install -y firewalld
- 启动:sudo systemctl start firewalld
- 开机自启:sudo systemctl enable firewalld
- 查看状态
- 运行状态:sudo firewall-cmd --state(应返回 running)
- 当前规则概览:sudo firewall-cmd --list-all
- 常用区域与接口
- 查看活跃区域与接口:sudo firewall-cmd --get-active-zones
- 将网卡加入区域(示例将 eth0 加入 public):sudo firewall-cmd --zone=public --change-interface=eth0
- 设置默认区域:sudo firewall-cmd --set-default-zone=public
- 提示:修改永久规则后需执行 sudo firewall-cmd --reload 使配置生效。
为 Dolphin 开放端口与服务
- 方式一(推荐):按服务开放
- 开放 HTTP/HTTPS:sudo firewall-cmd --permanent --zone=public --add-service=http;sudo firewall-cmd --permanent --zone=public --add-service=https;sudo firewall-cmd --reload
- 方式二:按端口开放
- 开放单个端口(示例 8080/TCP):sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp;sudo firewall-cmd --reload
- 开放端口范围(示例 10000-10010/TCP):sudo firewall-cmd --permanent --zone=public --add-port=10000-10010/tcp;sudo firewall-cmd --reload
- 常用查询
- 查看已开放端口:sudo firewall-cmd --zone=public --list-ports
- 查看已开放服务:sudo firewall-cmd --zone=public --list-services
- 查看完整规则:sudo firewall-cmd --list-all
- 说明:Dolphin 若提供 Web 管理界面,通常开放 80/443;若以应用端口运行(如 8080 等),按实际端口开放。
进阶访问控制与日志
- 仅允许指定来源访问某端口(示例仅允许 192.168.1.100 访问 8080/TCP)
- 命令:sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.100” port port=“8080” protocol=“tcp” accept’;sudo firewall-cmd --reload
- 拒绝与删除规则
- 拒绝来源访问某端口:sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“203.0.113.10” port port=“8080” protocol=“tcp” drop’;sudo firewall-cmd --reload
- 删除已添加的富规则:将 add 改为 remove 后执行并 --reload
- 日志与审计
- 记录被拒绝的数据包:sudo firewall-cmd --set-log-denied=all;sudo firewall-cmd --reload
- 查看日志:grep ‘firewalld’ /var/log/messages(被拒绝的包会记录在此)
使用 iptables 的替代方案
- 适用场景:系统未启用 firewalld 或必须使用 iptables。
- 基本操作
- 开放单个端口(示例 8080/TCP):iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
- 开放端口范围(示例 10000:10010/TCP):iptables -A INPUT -p tcp --dport 10000:10010 -j ACCEPT
- 保存规则(CentOS 6/兼容方式):/etc/init.d/iptables save;重启生效:service iptables restart
- 提示:iptables 规则默认会话有效,务必持久化保存;生产环境建议先备份现有规则再变更。