vexyl-labs/vexyl-guard
GitHub: vexyl-labs/vexyl-guard
Vexyl Guard 是一个轻量级 Linux 服务器安全 agent,为暴露在公网的主机提供监控、评分和可选的本地防火墙自动拦截功能。
Stars: 0 | Forks: 0
# Vexyl Guard
Vexyl Guard 是一个轻量级的 Linux 服务器安全 agent,专为暴露在公网的 VPS、Web 和应用主机的授权操作员设计。
本公共项目专注于本地主机 agent、安装打包、安全的测试 fixture 以及面向操作员的文档。托管的 Vexyl 基础设施、计费、控制台、部署配置、网站源码、活跃的情报数据以及内部研究笔记均在此公开仓库之外进行维护。
本项目是出于防御目的构建的。它不会扫描第三方系统、利用目标、隐藏自身或创建不可逆的持久化。
## 包含的内容
- `agent/vexyl-guard.sh`:用于 Linux 服务器的 Bash 主机 agent。
- `intel/`:用于本地防御评分的公共运行时接口和脱敏辅助工具。活跃的 schema 和种子数据是私有的。
- `vexyl`:用于本地 Vexyl 命令的 Python CLI 入口点。
- `config/vexyl-guard.conf.example`:agent 配置模板。
- `packaging/`:本地安装辅助工具和可选的 systemd unit。
- `tests/`:用于 agent 解析、分类和评分的安全本地测试 fixture。
- `docs/security/`:公共安全说明。
## 安装预览
实时预览安装程序由 Vexyl.dev 提供:
```
curl -fsSL https://vexyl.dev/install.sh | sudo sh
sudo systemctl start vexyl-guard
sudo vexyl-guard status
```
请以监控模式启动。仅在查看本地输出并确认主机策略合适后,再转入执行模式。
## 本地源码安装
```
sudo install -m 0755 agent/vexyl-guard.sh /usr/local/sbin/vexyl-guard
sudo install -d -m 0750 /etc/vexyl /var/lib/vexyl
sudo install -m 0640 config/vexyl-guard.conf.example /etc/vexyl/guard.conf
sudo vexyl-guard once
sudo vexyl-guard daemon
```
要允许自动进行本地防火墙拦截,请编辑 `/etc/vexyl/guard.conf`:
```
VEXYL_MODE=enforce
```
该 agent 优先使用 `nftables`,在不可用时回退到 `iptables`/`ip6tables`;当没有受支持的防火墙命令时,将保持监控行为。
## 软件包
如果您希望该 agent 由主机包管理器进行跟踪,请使用已签名的软件包仓库。
Debian / Ubuntu:
```
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://vexyl.dev/repo/vexyl-packages.asc \
| sudo tee /etc/apt/keyrings/vexyl-packages.asc >/dev/null
curl -fsSL https://vexyl.dev/repo/vexyl.sources \
| sudo tee /etc/apt/sources.list.d/vexyl.sources >/dev/null
sudo apt update
sudo apt install vexyl-guard
sudo systemctl start vexyl-guard
```
Fedora / RHEL:
```
sudo curl -fsSL https://vexyl.dev/repo/vexyl.repo \
-o /etc/yum.repos.d/vexyl.repo
sudo dnf install vexyl-guard
sudo systemctl start vexyl-guard
```
维护者可以配置 `VEXYL_PLATFORM_PROMOTION_TOKEN`,以便发布工作流在已签名资产发布后调度私有的平台提升流程。
## 发布准备
维护者在进行发布前必须运行 `Release Preflight` 工作流。它会接收提议的版本和发布说明,运行相同的版本升级、打包、仓库和说明验证检查,然后在创建提交、标签、推送或发布调度之前停止。
在同一个 commit 上通过预检后,使用 GitHub Actions 的 `Prepare Release` 工作流进行发布。如果没有成功匹配的预检记录,它将拒绝运行;它接收相同的发布说明,升级 `agent/vexyl-guard.sh` 和 `pyproject.toml`,再次运行打包和仓库检查,提交版本升级,创建带有注释的 `vX.Y.Z` 标签,将其推送,并附带这些说明调度已签名的 `Release` 工作流。
本地等效操作:
```
scripts/prepare-release.sh --version 0.2.9 --notes-file RELEASE_NOTES.md --dry-run
scripts/prepare-release.sh --version 0.2.9 --notes-file RELEASE_NOTES.md --commit --tag --push
```
对于本地发布,带有注释的标签携带了发布说明,而标签推送会启动已签名的 `Release` 工作流。随后,私有平台仓库会将最新签名的软件包仓库提升至 `vexyl.dev`。
从公开源码树构建预览版 Linux 软件包:
```
packaging/build-packages.sh --format deb
packaging/build-packages.sh --format rpm
packaging/sign-rpm-packages.sh --signing-key repo-private.asc dist/packages/*.rpm
packaging/build-repositories.sh --packages-dir dist/packages
```
软件包会安装 agent 服务、CLI、默认的监控模式配置以及公开的信任材料。Debian 软件包使用 `dpkg-deb` 构建;RPM 软件包需要 `rpmbuild`。
## 防御性默认设置
- 默认为监控模式。
- 日志和本地决策会对机密信息进行脱敏处理,并避免存储原始的敏感 prompt。
- 在评分或拦截之前会先检查本地允许列表。
- 防火墙更改是普通的本地 `nftables`/`iptables` 规则,而不是隐藏的持久化操作。
## 测试
```
tests/run-agent-fixtures.sh
```
GitHub Actions 工作流会运行相同的安全 fixture 检查。
## 安全性
请勿在公开的 issue 中包含活跃的机密信息、私密日志、可运行的漏洞利用代码、恶意软件代码或详细的攻击性操作指南。
私密漏洞报告请发送至:`security@vexyl.dev`
## 许可证
Vexyl Guard 采用 Apache License 2.0 授权。详见 `LICENSE`。
标签:Bash, 入侵防御, 应用安全, 逆向工具, 防御代理, 防火墙