时间:2026-04-14 关注公众号 来源:网络
Hermes Agent防火墙怎么设置 Hermes Agent设置防火墙规则,Hermes Agent 本身是一个 AI 智能体框架,不自带传统意义上的“防火墙”功能,但其运行环境(尤其是网络通信相关部分)可能受到系统或容器防火墙的限制。
一、确认Hermes Agent实际监听端口
防火墙规则必须精确匹配Agent当前绑定的端口,而该端口可能因配置文件修改或环境变量覆盖而不同于默认值。需先定位真实监听端口,避免规则配置错误。
1、检查Hermes Agent配置文件application.yml或application.properties中server.port字段的值。
2、若使用容器部署,查看docker run命令中-p参数映射的宿主机端口,例如-p 9090:8080表示宿主机9090端口被代理到容器内8080端口。
3、启动Agent后,在宿主机执行netstat -tuln | grep LISTEN(Linux/macOS)或 netstat -ano | findstr :LISTEN(windows),确认进程监听的实际端口号。
二、为指定端口添加入站放行规则
仅开放Hermes Agent必需的端口,禁止使用全网段通配(如0.0.0.0/0),以最小权限原则控制网络暴露面。
1、Windows系统中,以管理员身份运行PowerShell,执行:New-NetFirewallRule -DisplayName "HermesAgent-In" -Direction Inbound -Protocol TCP -LocalPort 9090 -Action Allow。
2、CentOS/RHEL系统中,执行:sudo firewall-cmd --permanent --add-port=9090/tcp && sudo firewall-cmd --reload。
3、Ubuntu/Debian系统中,执行:sudo ufw allow 9090/tcp。
4、若Agent同时使用HTTPS端口(如8443),需对同一协议重复执行上述对应命令,分别添加对应端口规则。
三、限制允许访问的源IP范围
在业务场景明确访问来源的前提下,应进一步缩小入站流量的源地址范围,防止未授权网络发起连接。
1、Windows中,扩展防火墙规则添加RemoteAddress参数:New-NetFirewallRule -DisplayName "HermesAgent-In-Limited" -Direction Inbound -Protocol TCP -LocalPort 9090 -RemoteAddress 192.168.10.0/24 -Action Allow。
2、firewalld中,使用rich rule限定IP段:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port port="9090" protocol="tcp" accept'。
3、ufw中,指定子网段允许:sudo ufw allow from 192.168.10.0/24 to any port 9090 proto tcp。
4、验证规则生效后,尝试从非授权IP段发起连接,确认被拒绝。
四、配置出站连接白名单(可选强化项)
当Hermes Agent需调用外部API(如LLM服务、向量数据库、消息平台)时,限制其出站目标可降低横向渗透风险,尤其适用于高安全等级环境。
1、记录Agent依赖的所有外部域名与端口,例如openrouter.ai:443、api.feishu:443、Redis.internal:6379。
2、Windows中,创建出站规则:New-NetFirewallRule -DisplayName "HermesAgent-Out" -Direction Outbound -Protocol TCP -RemotePort 443 -RemoteAddress 104.21.32.15,185.199.108.153 -Action Allow(IP需替换为实际解析结果)。
3、firewalld中启用富规则限制出站目标:sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" destination address="104.21.32.15" port port="443" protocol="tcp" accept'。
4、重启firewalld或ufw服务,使新出站策略生效。
五、禁用默认全通规则并审计现有策略
部分系统初始化时存在宽泛的防火墙规则,可能覆盖精细配置。需主动识别并移除潜在冲突项,确保策略按预期执行。
1、Windows中,列出所有启用的入站规则:Get-NetFirewallRule -Enabled True -Direction Inbound | Where-Object {$_.DisplayName -like "*any*" -or $_.RemoteAddress -eq "Any"}。
2、firewalld中,查看当前所有规则:sudo firewall-cmd --list-all,重点关注source ports、zones及未加注释的通用规则。
3、ufw中,执行:sudo ufw status verbose,检查是否存在allow any any规则。
4、对匹配“any”、“0.0.0.0/0”或无明确作用域的规则,使用对应命令禁用或删除,例如Windows中执行Disable-NetFirewallRule -DisplayName "Old-Rule"。