-
核查
firewalld或ufw的运行状态,确认当前系统未拦截18789端口。执行systemctl status firewalld查看服务状态,若显示active (running)记录当前策略版本。执行netstat -tlnp | grep 18789检查龙虾 OpenClaw 服务是否已监听该端口,若返回结果包含LISTEN字样,确认进程 PID 与ss -lntp | grep 18789输出一致。 -
备份 现有防火墙规则文件,防止配置失误导致断网。执行
cp /etc/firewalld/zones/public.xml /etc/firewalld/zones/public.xml.bak保存原始文件。若使用ufw,执行cp /etc/ufw/ufw.conf /etc/ufw/ufw.conf.bak完成存档。核对备份文件的md5sum值与源文件是否完全匹配。
-
放行
18789端口的 TCP 与 UDP 协议流量。针对firewalld执行firewall-cmd --permanent --add-port=18789/tcp写入永久规则,随后执行firewall-cmd --permanent --add-port=18789/udp放行 UDP 通道。执行firewall-cmd --reload重载配置使策略生效。针对ufw系统,依次执行ufw allow 18789/tcp与ufw allow 18789/udp完成开放。 -
收敛 源 IP 访问权限,仅允许指定可信网段通信。编辑
/etc/firewalld/zones/public.xml添加<rich-rule>节点,限定白名单 IP 段为192.168.1.0/24。使用firewall-cmd --permanent --remove-port=18789/tcp删除全局放行规则,避免未授权 IP 穿透防护层。
| 防护参数 | 推荐阈值 | 作用说明 |
|---|---|---|
new 连接限速 |
20/minute |
限制单 IP 新建握手频率<br>防 CC 攻击与端口扫描 |
| 并发连接上限 | 1024 |
阻断异常耗尽连接池行为 |
| 失败重试窗口 | 60s |
连续验证失败后冻结请求 |
- 部署 速率限制策略,拦截针对
18789的暴力探测。执行iptables -A INPUT -p tcp --dport 18789 -m state --state NEW -m recent --set --name OPENCLAW标记新连接请求。执行iptables -A INPUT -p tcp --dport 18789 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 --name OPENCLAW -j DROP丢弃超限请求。执行iptables-save > /etc/iptables/rules.v4固化内存中的iptables规则。
-
执行 本地与远程连通性验证。使用
telnet <服务器公网IP> 18789建立 TCP 握手。观察终端是否返回Connected提示符,若提示Connection refused排查龙虾 OpenClaw 配置中的bind_address是否错误绑定至127.0.0.1。使用nmap -p 18789 <目标IP>扫描端口状态,核对输出结果中的STATE字段是否显示为open。模拟白名单外 IP 发起请求,确认防火墙直接静默丢弃。 -
配置 流量监控告警与日志轮转。编辑
/etc/rsyslog.d/firewall.conf重定向kern.warning日志至/var/log/fw_port18789.log。部署fail2ban服务,编写/etc/fail2ban/jail.local定义[openclaw]过滤段,设置正则表达式匹配端口拒绝记录。启动fail2ban-client start守护进程,观察Active: active (running)状态行。配置/etc/logrotate.d/fw_logs规则按天切割,保留最近30份历史记录,避免磁盘空间耗尽导致服务崩溃。

暂无评论,快来抢沙发吧!