单一二进制边缘守护 · 安全 + 站点健康 · Linux · nftables

平静,直到 有事 发生。

Edge Guardian 读取你的日志,做两件事:在防火墙处封禁恶意流量——扫描器、暴力破解、漏洞利用——并监控每个站点的健康(5xx、延迟、流量),一旦劣化立即告警。仪表盘免费附带。单一静态二进制。一行命令即可安装。

$ curl -fsSL https://raw.githubusercontent.com/sondt/edge-guardian/main/install.sh | sudo bash
在 GitHub 加星 ★
单一静态二进制 △ 无数据库,无 agent △ 原生 nftables △ 以 dry-run 安全启动 △ Apache-2.0
问题所在

每一台公网服务器都在持续遭受攻击。

机器一旦有了 IP,机器人就开始探测——寻找被遗忘的后台、泄露的密钥和弱 SSH 口令。能反击的工具都逼你在太繁琐太笨重之间二选一。

/wp‑login.phpdrop
/.envdrop
/.git/configdrop
?id=1' OR 1=1drop
UA: sqlmap/1.7drop
sshd: 5× faildrop
:23 honeypotdrop

fail2ban

轻量且久经考验——但只能看到一台主机,严重依赖正则规则,一旦你有多台机器就变得别扭。没有仪表盘。

CrowdSec

强大,带有社区封禁列表——但你得学习 agent、本地 API、bouncer 和 collections。而那个漂亮的控制台?那是付费部分。

为什么选 Edge Guardian

一条日志流,两项任务。

抓住攻击者的同一条数据流,也会在站点出问题时告诉你。封禁恶意流量,并在出故障的那一刻就知道——无需第二个工具、数据库或 agent。

01

封禁恶意流量。

扫描器、暴力破解、漏洞探测和洪泛——对照滑动窗口匹配,并经 nftables 在内核层丢弃。屡犯者惩罚逐级升级。

  • HTTP 扫描器、SSH 暴力破解、漏洞特征、恶意机器人、速率滥用、端口扫描与蜜罐
  • 带自动过期的 nftables 封禁;对屡犯者逐级加重惩罚
  • 导入 FireHOL 与 Spamhaus 封禁列表;CIDR 允许名单,让你永不自锁
  • dry-run 模式——检测与告警但不封禁,让你在正式启用前先信任它
02

看见站点何时出故障。

同一份访问日志驱动一个健康视图:按站点的错误率、延迟和流量。站点劣化或宕机时告警——恢复时再次告警。

  • 按站点的 5xx 比率、p95 延迟与请求速率,呈现在 /sites 页面
  • 劣化 / 宕机 / 恢复告警,带持续判定 + 冷却——不刷屏
  • 免费内置仪表盘:Sentinel 线、封禁台账、实时动态
  • 回答“是不是哪里出问题了?”——绝不回答“谁在看什么”(不是分析统计)
Detection · enforcement · health · alerting

足以真正撑起一台服务器。

DETECT · HTTP

扫描路径

对请求 URI 做正则匹配——干净的栈永远不会提供的 .php/.env/wp-login 探测。首次命中即封禁。

DETECT · SSH

Brute‑force

统计来自 auth.log / journald 的登录失败。已做注入加固,伪造的用户名无法栽赃无辜 IP。

DETECT · EXPLOIT

攻击特征

URI 中的 SQLi、路径遍历、RCE 探测与 Log4Shell。默认关闭,并锚定匹配以将误报降到接近零。

DETECT · BOTS

Bad‑bot UA

封禁已知扫描器的 User-Agent——sqlmap、nikto、nuclei、masscan、wpscan——它们没有正当理由访问你。

DETECT · FLOOD

速率滥用

按 IP 统计每个请求,封禁轻量级 DoS 洪泛。高阈值且识别允许名单,让真实客户端通过。

DETECT · NETWORK

端口扫描

通过 nftables 日志按 IP 统计不同的目标端口。猛击一个端口不算扫描;横扫多个端口才算。

DETECT · TRAP

蜜罐端口

碰到诱饵端口,立即封禁。这是质量最高的信号——没有任何正当理由去敲门。

HEALTH

Site healthnew

按站点的 5xx 比率、p95 延迟与请求速率——站点通过 nginx -T 发现。在劣化 / 宕机 / 恢复时告警,并提供 /sites 视图。

ENFORCE

nftables bansescalating

经带超时的 set 在内核层丢弃。屡犯者惩罚更重:一天、一周、一个月、永久。

INTEL

公开封禁列表

将 FireHOL 与 Spamhaus DROP 导入 nftables 区间 set——在已知恶意网段到达你之前就将其封禁。

ALERT

Telegram 与 邮件

每次封禁以及每次健康告警都实时推送,一次发往所有渠道。邮件经 Resend。开启 GeoIP 时附带国家与 ASN。

GEO

离线 GeoIP

从本地 MMDB 文件获取国家、地区与 ISP——可使用免费的 sapics 数据库,无需 MaxMind 账号。

SAFE

Allowlist & dry‑run

为办公室、VPN 与监控设置 CIDR 允许名单。先用 dry-run 观察数日,再正式启用封禁。

HEALTH · ERRORS

Error lognew

所有 4xx/5xx 请求集中一处——主机、路径、状态、IP、User-Agent 与 GeoIP 来源——在 /errors 页面可筛选、可分页。

OPS

Auto‑updatenew

可选的 systemd 定时器从 GitHub releases 保持二进制为最新——仅更新二进制,并安全重启。默认关闭。

How it works

一条日志流。两条分支。

每一行都分发两次:安全分支匹配恶意流量并封禁;健康分支按站点统计状态、延迟和速率,出问题时告警。新增一个检测器只需一个解析器和一个阈值——绝不用重写。

01

读取

nginx、sshd 与内核日志——读取一次,分发到两条分支。

02

检测

解析来源 IP,对照滑动窗口 + 阈值匹配。

03

Allowlist?

你的 CIDR 永不被触碰。防止把自己锁在门外的最后一道防线。

04

封禁

加入带超时的 nftables set。在所有端口上即时丢弃。

05

通知

封禁健康告警——Telegram、邮件、仪表盘动态与 Sentinel 线。

The wedge

看清谁在攻击你——以及什么正在出故障。

一台沉静的仪表,在关键时刻到来前一直安静。当 Sentinel 线骤然变红,或某个站点转为劣化,它就意味着真有问题。随免费二进制附带——无需 Grafana,没有付费墙。

Install

一分钟内即可运行并值守。

以 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 Guardianfail2banCrowdSec
Single static binaryYes
One‑line installYespkgscript + repo
Dashboard in the free tierYespaid / DIY Grafana
HTTP + SSH + port‑scan + honeypotYesvia rulesscenarios
Exploit + bad‑bot + rate‑abuseYesDIY rulesscenarios
Per‑site health monitoringYes
nftables‑native enforcementYesbackendbouncer
Public blocklist importYescommunity
No external service to runYesYeslocal 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.

免费、开源,并被设计成在真正出事之前都不打扰你。

$ curl -fsSL https://raw.githubusercontent.com/sondt/edge-guardian/main/install.sh | sudo bash
查看源码 ↗