andrefinoo/Automated-Incident-Response-Ban-Engine-Python

GitHub: andrefinoo/Automated-Incident-Response-Ban-Engine-Python

一个受 Fail2ban 启发的教学级 Python CLI,通过解析 SSH 日志检测暴力破解并在阈值触发时执行 IP 封禁。

Stars: 0 | Forks: 0

# 自动化事件响应封禁引擎 本项目为 Andrea Finocchielli 和 Alessio Ordazzo 的 Python 实验室期末项目仓库。 该项目是一个教学性质的 CLI,用于分析 SSH 日志,检测暴力破解尝试,并决定当某个 IP 地址在指定时间窗口内超过可配置的阈值时是否对其进行封禁。 `dry-run` 模式允许在不实际修改系统防火墙的情况下模拟封禁,从而确保演示过程安全且可控。 ## 项目目标 本项目旨在实现一个受 Fail2ban 等工具启发的小型事件响应引擎。 程序需要: - 从文件中读取 SSH 日志; - 识别失败的登录尝试; - 提取并验证 IPv4 和 IPv6 地址; - 按 IP 对尝试进行分组; - 应用封禁阈值; - 忽略存在于白名单中的 IP; - 使用多态的防火墙 backend; - 以 JSON 格式保存配置和状态; - 使用 pytest 提供自动化测试。 ## 环境要求 - Python 3.11+ - pytest 依赖项列于: ``` requirements.txt ``` ## 项目设置 克隆仓库: ``` git clone https://github.com/andrefinoo/Automated-Incident-Response-Ban-Engine-Python.git cd Automated-Incident-Response-Ban-Engine-Python ``` 创建虚拟环境: ``` python -m venv .venv ``` 在 Windows PowerShell 中激活虚拟环境: ``` .venv\Scripts\activate ``` 在 Linux/macOS 中激活虚拟环境: ``` source .venv/bin/activate ``` 安装依赖项: ``` pip install -r requirements.txt ``` ## 预期的主要命令 在 Windows PowerShell 中: ``` $env:PYTHONPATH="src" python -m ban_engine --help ``` 以 dry-run 模式运行: ``` $env:PYTHONPATH="src" python -m ban_engine --log examples/auth.log --config examples/config.json --dry-run ``` 在 Linux/macOS 中: ``` PYTHONPATH=src python -m ban_engine --help ``` 以 dry-run 模式运行: ``` PYTHONPATH=src python -m ban_engine --log examples/auth.log --config examples/config.json --dry-run ``` ## 测试 在 Windows PowerShell 中: ``` $env:PYTHONPATH="src" pytest -q ``` 在 Linux/macOS 中: ``` PYTHONPATH=src pytest -q ``` ## 仓库结构 ``` docs/ documentazione del progetto examples/ file di esempio per demo e test src/ban_engine/ codice sorgente principale src/ban_engine/firewall/ backend firewall tests/ test automatici con pytest requirements.txt dipendenze del progetto README.md guida iniziale del repository ``` ## 预期架构 主要的 OOP 部分涉及防火墙 backend。 抽象基类将是 `FirewallBackend`,包含以下通用方法: - `block_ip(ip: str)` - `unblock_ip(ip: str)` - `is_blocked(ip: str)` 预期的子类包括: - `DryRunFirewallBackend` - `LinuxIptablesBackend` - `WindowsFirewallBackend` 引擎将使用抽象类型 `FirewallBackend`,而不直接依赖于操作系统。这允许使用多态性来更改 backend,而无需修改核心逻辑。 ## 项目状态 项目正在开发中。 第一个里程碑是使仓库变得整洁、有文档记录、可测试,并为实现应用程序核心做好准备。
标签:PB级数据处理, Python, SSH防爆破, 安全规则引擎, 安全运维, 无后门, 红队行动, 自动化响应, 逆向工具, 防火墙