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, 免杀技术, 安全实验, 暴力破解检测, 系统加固, 红队行动