平静,直到 有事 发生。
Edge Guardian 读取你的日志,做两件事:在防火墙处封禁恶意流量——扫描器、暴力破解、漏洞利用——并监控每个站点的健康(5xx、延迟、流量),一旦劣化立即告警。仪表盘免费附带。单一静态二进制。一行命令即可安装。
每一台公网服务器都在持续遭受攻击。
机器一旦有了 IP,机器人就开始探测——寻找被遗忘的后台、泄露的密钥和弱 SSH 口令。能反击的工具都逼你在太繁琐和太笨重之间二选一。
fail2ban
轻量且久经考验——但只能看到一台主机,严重依赖正则规则,一旦你有多台机器就变得别扭。没有仪表盘。
CrowdSec
强大,带有社区封禁列表——但你得学习 agent、本地 API、bouncer 和 collections。而那个漂亮的控制台?那是付费部分。
一条日志流,两项任务。
抓住攻击者的同一条数据流,也会在站点出问题时告诉你。封禁恶意流量,并在出故障的那一刻就知道——无需第二个工具、数据库或 agent。
封禁恶意流量。
扫描器、暴力破解、漏洞探测和洪泛——对照滑动窗口匹配,并经 nftables 在内核层丢弃。屡犯者惩罚逐级升级。
- HTTP 扫描器、SSH 暴力破解、漏洞特征、恶意机器人、速率滥用、端口扫描与蜜罐
- 带自动过期的 nftables 封禁;对屡犯者逐级加重惩罚
- 导入 FireHOL 与 Spamhaus 封禁列表;CIDR 允许名单,让你永不自锁
- dry-run 模式——检测与告警但不封禁,让你在正式启用前先信任它
看见站点何时出故障。
同一份访问日志驱动一个健康视图:按站点的错误率、延迟和流量。站点劣化或宕机时告警——恢复时再次告警。
- 按站点的 5xx 比率、p95 延迟与请求速率,呈现在
/sites页面 - 劣化 / 宕机 / 恢复告警,带持续判定 + 冷却——不刷屏
- 免费内置仪表盘:Sentinel 线、封禁台账、实时动态
- 回答“是不是哪里出问题了?”——绝不回答“谁在看什么”(不是分析统计)
足以真正撑起一台服务器。
扫描路径
对请求 URI 做正则匹配——干净的栈永远不会提供的 .php/.env/wp-login 探测。首次命中即封禁。
Brute‑force
统计来自 auth.log / journald 的登录失败。已做注入加固,伪造的用户名无法栽赃无辜 IP。
攻击特征
URI 中的 SQLi、路径遍历、RCE 探测与 Log4Shell。默认关闭,并锚定匹配以将误报降到接近零。
Bad‑bot UA
封禁已知扫描器的 User-Agent——sqlmap、nikto、nuclei、masscan、wpscan——它们没有正当理由访问你。
速率滥用
按 IP 统计每个请求,封禁轻量级 DoS 洪泛。高阈值且识别允许名单,让真实客户端通过。
端口扫描
通过 nftables 日志按 IP 统计不同的目标端口。猛击一个端口不算扫描;横扫多个端口才算。
蜜罐端口
碰到诱饵端口,立即封禁。这是质量最高的信号——没有任何正当理由去敲门。
Site healthnew
按站点的 5xx 比率、p95 延迟与请求速率——站点通过 nginx -T 发现。在劣化 / 宕机 / 恢复时告警,并提供 /sites 视图。
nftables bansescalating
经带超时的 set 在内核层丢弃。屡犯者惩罚更重:一天、一周、一个月、永久。
公开封禁列表
将 FireHOL 与 Spamhaus DROP 导入 nftables 区间 set——在已知恶意网段到达你之前就将其封禁。
Telegram 与 邮件
每次封禁以及每次健康告警都实时推送,一次发往所有渠道。邮件经 Resend。开启 GeoIP 时附带国家与 ASN。
离线 GeoIP
从本地 MMDB 文件获取国家、地区与 ISP——可使用免费的 sapics 数据库,无需 MaxMind 账号。
Allowlist & dry‑run
为办公室、VPN 与监控设置 CIDR 允许名单。先用 dry-run 观察数日,再正式启用封禁。
Error lognew
所有 4xx/5xx 请求集中一处——主机、路径、状态、IP、User-Agent 与 GeoIP 来源——在 /errors 页面可筛选、可分页。
Auto‑updatenew
可选的 systemd 定时器从 GitHub releases 保持二进制为最新——仅更新二进制,并安全重启。默认关闭。
一条日志流。两条分支。
每一行都分发两次:安全分支匹配恶意流量并封禁;健康分支按站点统计状态、延迟和速率,出问题时告警。新增一个检测器只需一个解析器和一个阈值——绝不用重写。
读取
nginx、sshd 与内核日志——读取一次,分发到两条分支。
检测
解析来源 IP,对照滑动窗口 + 阈值匹配。
Allowlist?
你的 CIDR 永不被触碰。防止把自己锁在门外的最后一道防线。
封禁
加入带超时的 nftables set。在所有端口上即时丢弃。
通知
封禁与健康告警——Telegram、邮件、仪表盘动态与 Sentinel 线。
看清谁在攻击你——以及什么正在出故障。
一台沉静的仪表,在关键时刻到来前一直安静。当 Sentinel 线骤然变红,或某个站点转为劣化,它就意味着真有问题。随免费二进制附带——无需 Grafana,没有付费墙。
一分钟内即可运行并值守。
以 dry-run 启动,在你准备好之前只观察、不封禁。然后改一行即可。
一行命令
识别你的架构,安装二进制 + systemd 单元,并初始化 nftables。
# Linux, needs nftables + root curl -fsSL https://raw.githubusercontent.com/sondt/edge-guardian/main/install.sh \ | sudo bash
.deb / .rpm
面向 amd64 与 arm64 的原生软件包。配置为 conffile——升级时安全保留。
# Debian / Ubuntu sudo apt install ./edge-guardian_0.4.4_linux_amd64.deb # RHEL / Rocky / Fedora sudo dnf install ./edge-guardian_0.4.4_linux_amd64.rpm
Docker
通过主机网络命名空间保护主机防火墙。
docker run -d --name edge-guardian \ --network host --cap-add NET_ADMIN \ -v /etc/edge-guardian:/etc/edge-guardian \ ghcr.io/sondt/edge-guardian
横向对比如何。
| Edge Guardian | fail2ban | CrowdSec | |
|---|---|---|---|
| Single static binary | Yes | — | — |
| One‑line install | Yes | pkg | script + repo |
| Dashboard in the free tier | Yes | — | paid / DIY Grafana |
| HTTP + SSH + port‑scan + honeypot | Yes | via rules | scenarios |
| Exploit + bad‑bot + rate‑abuse | Yes | DIY rules | scenarios |
| Per‑site health monitoring | Yes | — | — |
| nftables‑native enforcement | Yes | backend | bouncer |
| Public blocklist import | Yes | — | community |
| No external service to run | Yes | Yes | local API |
直截了当的回答。
Edge Guardian 是什么?
Edge Guardian 是面向 Linux 的免费、开源、单一二进制边缘守护程序。从一条日志流中它做两件事:安全——检测扫描器、暴力破解与漏洞利用,然后在 nftables 防火墙处封禁来源 IP——以及边缘健康——监控每个站点的 5xx 比率、延迟和请求速率,并在站点劣化或宕机时告警。它通过 Telegram 或邮件告警,并自带内置的本地仪表盘。
Edge Guardian 与 fail2ban、CrowdSec 有何不同?
fail2ban 严重依赖正则,只能看到一台主机,且没有仪表盘。CrowdSec 很强大,但需要 agent、本地 API、bouncer 和 collections——而且它的仪表盘是付费功能。Edge Guardian 是单一静态二进制,一行命令安装,免费附带仪表盘,并且还监控站点健康——而不只是安全。
Edge Guardian 能检测什么?
HTTP 扫描路径、SSH 暴力破解、漏洞特征(SQLi、路径遍历、RCE 探测、Log4Shell)、按 User-Agent 识别的恶意机器人(sqlmap、nikto、nuclei、masscan)、速率滥用 / 轻量级 DoS 洪泛、端口扫描(按 IP 统计不同目标端口),以及蜜罐端口命中。它还能导入 FireHOL、Spamhaus 等公开封禁列表。
它是否监控站点健康,而不只是攻击?
是的。同一份访问日志驱动一个健康分支,按站点聚合状态分布、5xx 错误率、请求速率与 p95 延迟,并在站点劣化或宕机时告警(带持续判定 + 冷却以避免噪声)——恢复时再次告警。它刻意不做网站分析:它回答“是不是哪里出问题了?”,而非“谁在看什么?”。
Edge Guardian 免费吗?
是的。Edge Guardian 基于 Apache-2.0 许可证免费且开源——包括仪表盘与健康监控。
运行 Edge Guardian 需要什么?
一台装有 nftables 的 Linux 服务器(Debian 11+、Ubuntu 20.04+、RHEL 9+ 或同等版本),以及 root 或 CAP_NET_ADMIN。无需数据库、无需 agent、无需外部服务。
如何安装 Edge Guardian?
运行一行安装脚本(curl -fsSL .../install.sh | sudo bash)、安装 .deb 或 .rpm 软件包,或运行 Docker 镜像。Edge Guardian 以 dry-run 模式启动,先观察并告警,然后才封禁。
Drop it on a box.
Forget about scanners.
免费、开源,并被设计成在真正出事之前都不打扰你。