susheel-cybercode/linux-ssh-hardening-fail2ban-lab

GitHub: susheel-cybercode/linux-ssh-hardening-fail2ban-lab

该项目模拟 SSH 暴力破解攻击场景,演示如何使用 Fail2Ban 实现 Linux 服务器的自动化入侵检测与 IP 封禁。

Stars: 0 | Forks: 0

# 🛡️ Linux SSH 安全加固 & Fail2Ban 暴力破解检测实验 ## 🔹 TL;DR 模拟了从 Kali 对 Lubuntu 发起的 SSH 暴力破解攻击。 Fail2Ban 检测到多次身份验证失败,并自动**封禁了攻击者 IP**。 本仓库包含配置文件、日志、截图以及完整的复现步骤。 一个强大的蓝队 / SOC / 云安全作品集项目。 # ⚙️ 项目概述 本实验展示了实用的 **Linux 安全加固**、**蓝队检测**以及使用 Fail2Ban 的**自动化响应**。 工作流程: 1. Kali 执行 SSH 暴力破解尝试 2. Lubuntu 监控 `/var/log/auth.log` 3. Fail2Ban 检测到特定模式 4. 违规 IP 被**自动封禁** 5. 收集日志和证据以供分析 # 🧪 实验架构 ``` +--------------------------+ | Kali Linux | | Attacker: 192.168.56.x | +------------+-------------+ | Host-Only (vboxnet0) | +------------+-------------+ | Lubuntu Server | | Target: 192.168.56.x | | Fail2Ban + SSH Hardening| +---------------------------+ ``` # 🔧 使用的工具与技术 | 工具 | 用途 | |------|---------| | **Fail2Ban** | 检测并拦截暴力破解攻击 | | **OpenSSH Server** | 攻击面 | | **UFW Firewall** | 基础 Linux 防火墙 | | **Nmap** | 侦查与端口扫描 | | **Lubuntu** | 目标服务器 | | **Kali Linux** | 攻击机 | # 🗂️ 仓库内容 | 文件 / 文件夹 | 描述 | |---------------|-------------| | `jail.local` | Fail2Ban SSH jail 配置文件 | | `auth-log-snippet.txt` | 登录失败、封禁、解封的证据 | | `commands-used.txt` | 模拟与配置过程中使用的命令 | | `/screenshots` | 视觉证据 | | `README.md` | 完整文档 | # 🔒 Fail2Ban 配置 位置:`/etc/fail2ban/jail.local` 已包含在本仓库中。 ``` maxretry = 5 findtime = 10m bantime = 10m logpath = /var/log/auth.log backend = systemd ``` # 🚀 攻击模拟 ### 来自 Kali 的 SSH 暴力破解 ``` ssh wronguser@192.168.56.101 # 重复输入错误密码 ``` ### 使用 Nmap 进行侦查 ``` nmap -sS 192.168.56.101 ``` 完整命令列表见 `commands-used.txt`。 # 📄 日志证据 真实的日志行存储在 `auth-log-snippet.txt` 中。 示例: ``` Failed password for invalid user wronguser from 192.168.56.101 Ban 192.168.56.101 Unban 192.168.56.101 ``` # 🖼️ 截图 / 证据 请参阅 `/screenshots` 文件夹。 ``` fail2ban-status.png kali-ssh-attacks.png ufw-status.png auth-log.png ``` # 🧠 MITRE ATT&CK 映射 | 行为 | 技术 | |----------|-----------| | SSH 暴力破解 | T1110 – 暴力破解 (Brute Force) | | 反复的身份验证失败 | T1078 – 有效账户 (Valid Accounts) | | Nmap SYN 扫描 | T1046 – 网络服务扫描 (Network Service Scanning) | | 基于日志的检测 | T1057 – 进程监控 (Process Monitoring) | # 🔁 如何复现本实验 ## 1️⃣ VirtualBox 网络配置 启用: - **NAT**(互联网连接) - **Host-Only Adapter (vboxnet0)** IP 示例: - Lubuntu: `192.168.56.101` - Kali: `192.168.56.102` ## 2️⃣ 准备 Lubuntu(目标机) ``` sudo apt update sudo apt install -y ufw fail2ban openssh-server sudo ufw enable sudo ufw allow ssh ``` 复制 jail 配置文件: ``` sudo cp jail.local /etc/fail2ban/jail.local sudo systemctl restart fail2ban ``` ## 3️⃣ 从 Kali 发起攻击 ``` ssh wronguser@192.168.56.101 nmap -sS 192.168.56.101 ``` ## 4️⃣ 验证检测 ``` sudo fail2ban-client status sshd sudo tail -n 20 /var/log/auth.log sudo ufw status numbered ``` # 📊 展示的技能 ✔ Linux 安全加固 ✔ SSH 安全 ✔ 日志分析 ✔ 检测工程 ✔ 暴力破解检测 ✔ 证据收集 ✔ 蓝队工作流 ✔ SOC 调查 # 📎 许可证 MIT License # 👤 作者 **Susheel M S** 网络安全分析师 (SOC / 蓝队 / 威胁情报) GitHub: https://github.com/susheel-cybercode
标签:CTI, Fail2Ban, SSH, 免杀技术, 安全实验, 暴力破解检测, 系统加固, 红队行动