duggytuxy/syswarden

GitHub: duggytuxy/syswarden

一个企业级的 Linux 防火墙编排器,通过整合大规模威胁情报、Fail2ban 动态防御和 WireGuard VPN,实现对恶意流量的主动拦截及管理端口的零信任隐身。

Stars: 45 | Forks: 7

SysWarden Security Audit

网站   •   问题追踪   •   Linkedin   •   TryHackMe   •   Ko-Fi


Support me on Ko-fi

![Alt](https://repobeats.axiom.co/api/embed/d909eab3c0cafb3a64294546f37a130f18a7e2f0.svg "Repobeats analytics image") # SysWarden
SysWarden Banner
SysWarden 是一个企业级、开源的防火墙编排器,旨在消除 99% 的嘈杂、破坏性和恶意互联网流量。它围绕 [Data-Shield IPv4 Blocklists 社区](https://github.com/duggytuxy/Data-Shield_IPv4_Blocklist) 构建,动态集成了 GeoIP 过滤、[Spamhaus ASN 阻断](https://www.spamhaus.org/drop/asndrop.json)和 [Fail2ban](https://github.com/fail2ban/fail2ban) 入侵防御。专为现代基础设施设计,SysWarden 提供密闭的 Docker 保护、自动化的 [AbuseIPDB](https://www.abuseipdb.com/) 报告,并部署隐蔽的 [WireGuard](https://www.wireguard.com/) 管理 VPN——所有操作均在 Linux 内核中原生运行,以确保最大的安全性和几乎为零的 RAM 消耗。 ## SysWarden 保护什么? SysWarden 充当您基础设施的高级先发制人编排层。通过利用社区驱动的威胁情报并在恶意流量到达您的应用程序**之前**在防火墙级别(内核空间)原生丢弃它,它为您的暴露资产提供了一个高度优化、坚不可摧的盾牌。 强烈建议用于保护: - **公共 VPS 和裸机服务器:** 保护您的 SSH 端口、控制面板和核心服务免受无情的暴力破解活动和大规模扫描。SysWarden 甚至可以部署隐蔽的 WireGuard VPN,使您的管理界面对公共互联网完全不可见。 - **网站和 CMS (WordPress, Nginx, Apache):** 即时过滤掉恶意机器人、漏洞扫描器和自动利用尝试。通过在网络边缘阻断威胁,您的 Web 服务器可以为合法访问者节省大量的 CPU 和 RAM。 - **公共 API 和 SaaS 平台:** 保护您的端点免受激进的数据抓取器、自动滥用和第 7 层 DDoS 探测,确保您的资源致力于真实用户并保持 SLA 不受影响。 - **Docker 化和关键基础设施:** 自动将密闭的防火墙规则直接注入到 `DOCKER-USER` 链中,保证您暴露的容器免受全球威胁,而不会破坏内部路由。 - **数据库 (MySQL, MongoDB, PostgreSQL):** 利用大规模静态 IP 集和动态 Fail2ban 入侵防御的强大组合,保护您的数据存储免受凭证填充、未经授权的访问和勒索软件团伙的侵害。 ## 架构 ``` SysWarden (Technology Stack) ├── Core Orchestration │ ├── Bash Scripting # Automation, Logic & Hot-Reloading │ └── Linux OS & Kernel # Broad Support (Debian/Ubuntu, RHEL/Alma, Alpine) │ ├── Firewall & Networking Engine │ ├── Nftables # Modern Packet Filtering (Flat Syntax & Chunking) │ ├── IPSet + Iptables # High-Performance Hashing (Legacy Fallback) │ ├── Firewalld # Dynamic Zone Management (RHEL Ecosystem) │ ├── Docker Integration # Native DOCKER-USER Chain Isolation │ └── WireGuard VPN # Stealth Management Interface & Dynamic Clients │ ├── Active Defense & Daemons │ ├── Python 3 (Daemon) # Asynchronous AbuseIPDB API Reporting │ ├── Python 3 (HTTP Server) # Serverless Telemetry Dashboard UI │ ├── Fail2ban # Dynamic Intrusion Prevention System (Custom Jails) │ ├── Systemd / OpenRC # OS-Specific Service & Persistence Management │ └── Logrotate # Log Maintenance & Space Optimization │ └── Threat Intelligence & Integrations ├── Data-Shield IPv4 Blocklist # Primary Threat Intelligence Source ├── Spamhaus / RADB # Dynamic ASN Routing Data Validation ├── IPDeny # Country-Level Geo-Blocking Data Sets ├── AbuseIPDB API # Community Attack Reporting (Outbound) └── Wazuh XDR Agent # SIEM, File Integrity & Vulnerability Detection ``` ## 关键特性 - **严格的 SSH 隐身(零信任):** 为 SSH 强制执行数学上绝对的策略。访问仅限于 WireGuard VPN (wg0) 和环回 接口。一个立即执行的、最高优先级的内核 DROP 规则明确阻止任何公共访问,确保即使是本地白名单 IP 也无法绕过 SSH 的 VPN 要求。 - **无服务器遥测仪表板:** 通过原生 Python HTTP 守护进程提供的轻量级、实时 Web UI。它提供实时的第 3 层(内核)和第 7 层(Fail2ban)阻断统计、活动的 jail 触发器和实时 IP 注册表,而无需像 Nginx 或 Apache 这样的大型 Web 服务器。 - **防火墙状态机:** CLI 命令(whitelist, blocklist)在严格的“单一事实来源”模型上运行。它们安全地写入本地持久化文件,彻底清除内存冲突,并触发编排器安全地完全重建防火墙,在所有 OS 后端保持严格的规则层次结构。 - **通用操作系统支持:** 自动检测并无缝适应 Debian、Ubuntu、CentOS Stream、Fedora、AlmaLinux、Rocky Linux 和 Alpine Linux (OpenRC)。 - **智能后端检测和路由:** 自动选择并配置您系统上存在的最佳防火墙技术(Nftables 扁平语法、Firewalld 富规则或 IPSet/Iptables)。 - **多层威胁过滤:** 即时丢弃超过 100,000+ 个已知恶意 IP,通过 GeoIP 限制来自高风险国家的流量,并通过 Spamhaus/RADB 阻断恶意 ASN。 - **密闭 Docker 隔离:** 通过向 DOCKER-USER 链注入专门规则来自动保护暴露的容器,而不会破坏内部桥接网络。 - **隐蔽管理 VPN:** 部署原生 WireGuard 接口以将您的管理端口隐藏在公共互联网之外,包括内置的 CLI 编排器,可即时生成客户端配置文件和二维码。 ## 目标 - **降噪和日志清晰度:** 通过在网络边缘即时丢弃自动扫描器、暴力破解者和僵尸网络,大幅减少日志疲劳和 SIEM 摄取成本(`/var/log/auth.log`, `journalctl`)。 - **资源和计算优化:** 通过在内核空间原生丢弃非法数据包而不是允许用户空间应用程序处理它们,来节省关键的 CPU 周期、RAM 和带宽。 - **主动的社区安全:** 将您的基础设施从脆弱的“被动”姿态转变为坚固的“主动”姿态,抢先阻断几分钟前攻击过其他社区服务器的 IP。 ## 技术深入探讨:架构分层 ## 流量工作流 ``` / (Inbound Network Traffic Flow) ├── Layer 1: Kernel-Space Shield (Preemptive Static Defense) │ ├── Orchestrator : Nftables (Flat Syntax) / Firewalld / IPSet (Auto-detected) │ ├── Threat Intel : 100k+ Malicious IPs, Global GeoIP & ASN Routing Data │ ├── Edge Routing : Handled natively, including DOCKER-USER chain isolation │ └── Action : DROP packets silently before they ever reach User-Space │ └── Layer 2: User-Space Applications (Permitted Traffic) ├── Exposed Services & Proxies │ ├── Custom Ports (SSH, Web, Database, APIs) │ ├── WireGuard (Stealth Management Interface & VPN) │ └── System Logs (e.g., /var/log/syslog, journalctl, dmesg) │ └── Layer 3: Active Response (Dynamic & Behavioral Defense) ├── Fail2ban Engine │ ├── Monitor : Behavioral anomalies & Brute-force patterns across services │ └── Action : Inject dynamic, localized bans into the firewall backend │ ├── SysWarden Python Daemon │ ├── Monitor : Real-time Firewall drops & Fail2ban verdicts via buffer │ └── Action : Asynchronously report telemetry back to AbuseIPDB API │ └── Wazuh XDR Agent (Optional) ├── Monitor : File Integrity Monitoring (FIM) & Critical System Events └── Action : Stream encrypted security telemetry to Wazuh SIEM ``` ### 1. Nftables 引擎和 Fail2ban 协同 (Debian, Ubuntu, Alpine) - **第 1 层(先发制人防御):** SysWarden 利用现代 Nftables “扁平语法”架构和智能分块来注入大规模、高性能的集合(10万+ IP, GeoIP, ASN)。这充当了一个不可穿透的静态盾牌,在内核级别丢弃已知的威胁行为者,且内存占用几乎为零。 - **第 2 层(动态分析):** Fail2ban 充当次要的行为网络,监控应用程序日志以发现局部的、零日暴力破解尝试。 - **结果:** Fail2ban 的 CPU 和 RAM 消耗降至几乎为零。通过让 Nftables 引擎过滤掉互联网的“背景噪音”,Fail2ban 只处理那些已经通过严格的全局黑名单的流量的日志。 ### 2. Firewalld 编排 (RHEL, AlmaLinux, Rocky Linux) 在企业 Linux 发行版上,遵守原生 firewalld 架构对于系统稳定性和合规性至关重要。 - **原生 IPSet 集成:** SysWarden 以编程方式定义深度嵌入在 Firewalld 原生 XML 配置框架内的大规模、永久性 ipset 类型。 - **富规则处理:** 它部署高优先级的“富规则”来全局拦截和丢弃恶意流量。 - **绝对持久性:** SysWarden 严格将所有配置直接提交到 `/etc/firewalld/`,确保跨守护进程重新加载和硬重启的绝对持久性。 ### 3. 社区威胁情报:AbuseIPDB 报告 - **无缝激活:** 在交互式安装阶段只需用 `y` 确认提示即可。 - **API 认证:** 提供您的标准 AbuseIPDB API 密钥。守护进程将安全地存储凭据并自主推送遥测数据,帮助保持恶意 IPv4 地址的全局注册表高度准确和最新,而不影响防火墙性能。 ### 4. 企业级 SIEM:Wazuh XDR Agent 集成 - **零接触部署:** 编排器自动识别主机操作系统,安全地获取官方 GPG 密钥和存储库,并安装最新的稳定代理。 - **动态配置:** 通过在设置提示期间提供您的 [Wazuh](https://github.com/wazuh/) Manager IP、Agent Name 和 Agent Group,脚本将这些确切的参数原生注入到 `ossec.conf` 文件中——消除了繁琐的手动安装后配置。 - **自动白名单和连续性:** 为了保证不间断的日志流,SysWarden 自动为您的 Wazuh Manager(端口 1514 和 1515)强制执行高优先级绕过规则,确保您的 SIEM 流量永远不会被总体黑名单意外中断。 ## 安装和使用(需要 Root 权限) ### 1. 系统准备 选择与您的操作系统匹配的命令以确保满足所需的依赖项。 ``` # For Ubuntu / Debian apt update && apt install wget -y # For RHEL / AlmaLinux / Rocky Linux / Fedora dnf update && dnf install wget -y # For Alpine Linux apk update && apk add wget bash ``` ### 2. 下载和执行 导航到您的本地二进制目录并获取适合您架构的编排器。 通用操作系统 (Debian / Ubuntu / RHEL 系列): ``` cd /usr/local/bin/ wget https://github.com/duggytuxy/syswarden/releases/download/v9.30/install-syswarden.sh chmod +x install-syswarden.sh ./install-syswarden.sh ``` Alpine Linux (OpenRC): ``` cd /usr/local/bin/ wget https://github.com/duggytuxy/syswarden/releases/download/v9.30/install-syswarden-alpine.sh chmod +x install-syswarden-alpine.sh ./install-syswarden-alpine.sh ``` ### 3. 无人值守安装 (CI/CD / Ansible) 您可以通过提供配置文件来绕过所有交互式提示。 使用您喜欢的文本编辑器(例如 `nano` 或 `vim`)创建并编辑一个名为 `syswarden-auto.conf` 的文件: ``` nano /usr/local/bin/syswarden-auto.conf ``` 将以下配置粘贴到文件中(示例:) ``` # ============================================================================== # Version=9.30 # SYSWARDEN UNATTENDED INSTALLATION CONFIGURATION # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see [https://www.gnu.org/licenses/](https://www.gnu.org/licenses/). # # Usage: ./install-syswarden.sh syswarden-auto.conf # ============================================================================== # --- Enterprise Compliance Mode --- # y = Strictly disables third-party telemetry/reporting (e.g., AbuseIPDB) to comply with corporate policies. SYSWARDEN_ENTERPRISE_MODE="n" # --- SSH Configuration --- # Leave empty to auto-detect current active port SYSWARDEN_SSH_PORT="" # --- WireGuard Management VPN --- # y = Enable, n = Disable SYSWARDEN_ENABLE_WG="n" SYSWARDEN_WG_PORT="51820" SYSWARDEN_WG_SUBNET="10.66.66.0/24" # --- Docker Integration --- # y = Enable, n = Disable SYSWARDEN_USE_DOCKER="n" # --- Blocklist Selection --- # 1 = Standard, 2 = Critical, 3 = Custom, 4 = None SYSWARDEN_LIST_CHOICE="1" # If choice is 3, provide the URL below SYSWARDEN_CUSTOM_URL="" # --- Geo-Blocking --- # y = Enable, n = Disable SYSWARDEN_ENABLE_GEO="n" # Space-separated country codes (e.g., "ru cn kp ir") SYSWARDEN_GEO_CODES="ru cn kp ir" # --- ASN Blocking --- # Enable the ASN blocking module SYSWARDEN_ENABLE_ASN="y" # Master List (VPNs, Proxies, Linode, Tor Exit Nodes/Bulletproof Hosters) SYSWARDEN_ASN_LIST="AS60068 AS30823 AS210644 AS200593 AS202425 AS215540 AS53667 AS9009 AS20473 AS60068 AS212238 AS16276 AS62282 AS14061 AS24940 AS398324 AS31173 AS11878 AS32097 AS43948 AS63949 AS62240 AS16265 AS3223 AS53667 AS200651 AS58224 AS57821 AS199524 AS51852 AS197540" # Include Spamhaus ASN-DROP list for known cybercriminal infrastructures SYSWARDEN_USE_SPAMHAUS="y" # --- AbuseIPDB Reporting --- # y = Enable, n = Disable SYSWARDEN_ENABLE_ABUSE="n" SYSWARDEN_ABUSE_API_KEY="" SYSWARDEN_REPORT_F2B="y" SYSWARDEN_REPORT_FW="y" # --- Wazuh Agent --- # y = Enable, n = Disable SYSWARDEN_ENABLE_WAZUH="n" SYSWARDEN_WAZUH_IP="" SYSWARDEN_WAZUH_NAME="" SYSWARDEN_WAZUH_GROUP="default" SYSWARDEN_WAZUH_COMM_PORT="1514" SYSWARDEN_WAZUH_ENROLL_PORT="1515" ``` 将文件作为参数传递(如果适用,请使用 alpine 脚本): ``` ./install-syswarden.sh syswarden-auto.conf or ./install-syswarden-alpine.sh syswarden-auto.conf ``` ### 4. 无服务器遥测仪表板访问 SysWarden v9.30 包含一个完全解耦的、实时的遥测仪表板。为了最大程度的安全性,该仪表板依赖于 Python HTTP 守护进程,该守护进程明确避免在公共网络接口上侦听。访问取决于您的 WireGuard 配置: **场景 A:启用 WireGuard VPN(推荐)** 如果您在安装期间选择部署隐蔽管理 VPN,仪表板将安全地绑定到内部 VPN 子网网关。 1. 使用生成的 WireGuard 客户端配置文件连接到服务器。 2. 打开本地浏览器并导航到:`http://10.66.66.1:9999`(将 `10.66.66.1` 替换为您定义的 `WG_SUBNET` 网关)。 **场景 B:禁用 WireGuard VPN** 如果您选择不使用 VPN,仪表板将严格绑定到 `127.0.0.1` (localhost) 以防止公共暴露。您必须使用 SSH 隧道来访问它。 ``` ssh -L 9999:127.0.0.1:9999 your_user@your_server_ip -p YOUR_SSH_PORT ``` ### 5. CLI 编排命令 安装后,SysWarden 充当独立的 CLI 工具。您可以即时管理基础设施安全,而无需手动编辑配置文件。 - 触发威胁情报同步: ``` ./install-syswarden.sh update ``` - 启动实时攻击仪表板: ``` ./install-syswarden.sh alerts ``` - 添加自定义 IP 例外: ``` ./install-syswarden.sh whitelist ``` - 添加自定义 IP 封禁: ``` ./install-syswarden.sh blocklist ``` - 生成 WireGuard VPN 客户端: ``` ./install-syswarden.sh wireguard-client ``` - 注入 Docker Shield: ``` ./install-syswarden.sh protect-docker ``` - 执行核心引擎升级: ``` ./install-syswarden.sh upgrade ``` ## 系统架构和文件结构 ``` / (Root File System) ├── etc/ │ ├── syswarden.conf # Centralized Configuration & Environment Variables │ ├── syswarden/ # Local Threat Intelligence Directory │ │ ├── whitelist.txt # Custom IP/CIDR Routing Exceptions │ │ ├── blocklist.txt # Custom Permanent IP Bans │ │ ├── geoip.txt # Dynamic IPDeny Country-Level Blocklists │ │ ├── asn.txt # Dynamic Spamhaus/RADB ASN Blocklists │ │ └── ui/ # Serverless Dashboard Web Root (HTML & JSON) │ ├── wireguard/ # Stealth Management VPN Configurations │ │ ├── wg0.conf # Core Server Interface Configuration │ │ └── clients/ # Generated Client Profiles & MTU Settings │ ├── fail2ban/ │ │ └── jail.local # Custom Jails (SSH, Web, DB) Injected by SysWarden │ ├── logrotate.d/ │ │ └── syswarden # Log Rotation Policy │ ├── cron.d/ # (Mapped to /etc/crontabs/root on Alpine) │ │ └── syswarden-update # Hourly Threat Intelligence Sync Job │ ├── systemd/system/ # (For Debian/Ubuntu/RHEL Ecosystem) │ │ ├── syswarden-reporter.service # AbuseIPDB Asynchronous Daemon Service │ │ └── syswarden-ui.service # Serverless Telemetry Dashboard Service │ └── init.d/ # (For Alpine Linux / OpenRC Ecosystem) │ ├── syswarden-reporter # OpenRC AbuseIPDB Service │ └── syswarden-ui # OpenRC Dashboard Service │ ├── usr/local/bin/ │ ├── install-syswarden.sh # Main CLI Orchestrator (Universal OS) │ ├── install-syswarden-alpine.sh # Main CLI Orchestrator (Alpine Linux) │ ├── syswarden-telemetry.sh # Decoupled JSON Generator (Cron) │ └── syswarden_reporter.py # Python Log Analyzer & API Outbound Client │ └── var/ ├── log/ │ ├── syswarden-install.log # Verbose Installation & Debug Telemetry │ └── fail2ban.log # Dynamic Intrusion Prevention Logs └── ossec/etc/ └── ossec.conf # Wazuh Agent Config ``` ## 卸载和系统拆除(需要 Root 权限) 执行卸载编排器将自主进行: - **清除防火墙状态:** 完全拆除所有注入的 Nftables、Firewalld 或 IPSet 黑名单,包括 Docker 隔离规则,并恢复标准流量路由。 - **拆除 VPN 接口:** 安全断开 WireGuard `wg0` 接口并删除所有生成的客户端配置文件。 - **停止活动守护进程:** 停止、禁用并删除 AbuseIPDB Python 报告器(通过 Systemd 或 OpenRC)并清除 Fail2ban 自定义 jail。 - **清除计划任务:** 删除所有关联的 Cron 作业和 Logrotate 保留策略。 - **擦除威胁情报数据:** 删除 `/etc/syswarden/` 目录、配置文件和所有本地 IP 数据集。 **通用操作系统 (Debian / Ubuntu / RHEL 系列):** ``` ./install-syswarden.sh uninstall ``` **Alpine Linux (OpenRC):** ``` ./install-syswarden-alpine.sh uninstall ``` ## 支持和可持续性 ## ABUSEIPDB 贡献者 | Duggy Tuxy | | :---: | | | | *已验证贡献者* | ## 许可证和版权 - **SysWarden** © 2026 - 由 **Duggy Tuxy (Laurent Minne)** 开发。 “本工具是根据 **[GNU GPLv3 许可证](/LICENSE)** 授权的开源软件。”
标签:ASN封禁, Awesome, CentOS, CISA项目, DDoS防护, Debian, Docker安全, Fail2ban, Geo-Blocking, IPv4, IP黑名单, Linux防火墙, Shell脚本, Spamhaus, VPN, Web截图, WireGuard, 入侵防御, 动态API解析, 地理位置封锁, 威胁情报, 容器安全, 应用安全, 开发者工具, 恶意流量拦截, 服务器加固, 系统管理, 网络安全, 网络流量过滤, 自动化运维, 请求拦截, 轻量级工具, 逆向工具, 防火墙编排, 隐私保护, 零内存占用