aishabanuu/linux-log-analysis-automation
GitHub: aishabanuu/linux-log-analysis-automation
该项目通过 Bash 脚本自动化解析 Linux 认证日志,检测 SSH 登录异常与可疑 IP 并生成 SOC 级别的每日安全报告。
Stars: 0 | Forks: 0
# Linux 日志分析与自动化
这是一个网络安全项目,展示了 Linux 认证日志分析、Bash 脚本编写、自动化以及安全监控。该项目通过分析系统日志来检测失败和成功的 SSH 登录尝试,监控 sudo 活动,识别可疑 IP 地址,生成每日安全报告,并使用 Cron 自动执行日常监控任务。
## 项目概述
Linux 系统会持续生成记录认证事件、用户活动、系统服务和安全相关信息的日志文件。安全分析师定期检查这些日志,以检测未经授权的访问尝试、调查可疑活动并监控系统健康状况。
本项目使用 Bash 脚本自动化 Linux 日志分析,以减少人工操作并提升事件检测能力。通过解析认证日志来识别登录尝试、提取 IP 地址、检测暴力破解行为、汇总系统活动,并生成适用于安全运营中心 (SOC) 环境的报告。
## 目标
- 分析 Linux 认证日志
- 检测失败的 SSH 登录尝试
- 监控成功的 SSH 登录
- 跟踪 sudo 活动
- 识别可疑 IP 地址
- 生成自动化安全报告
- 归档重要日志文件
- 使用 Cron 安排自动化任务
- 练习 Linux 管理和 Bash 脚本编写
## 使用的技术
| 技术 | 用途 |
|------------|---------|
| Ubuntu 24.04 LTS | 主操作系统 |
| Kali Linux | 攻击模拟 |
| Bash | 自动化脚本 |
| OpenSSH Server | SSH 认证 |
| Cron | 任务调度 |
| Git | 版本控制 |
| Grep | 模式搜索 |
| AWK | 文本处理 |
| Sed | 流编辑 |
| Tar | 日志备份 |
| VMware Fusion | 虚拟化 |
## 项目架构
```
Kali Linux
│
SSH Login Attempts
│
▼
Ubuntu Server
│
/var/log/auth.log
│
Bash Log Analysis Scripts
│
┌─────────────────┴─────────────────┐
│ │
Security Reports Log Backups
│ │
└─────────────────┬─────────────────┘
▼
GitHub Repository
```
## 项目工作流
1. 安装 Ubuntu 和所需的软件包。
2. 配置 OpenSSH Server。
3. 从 Kali Linux 生成成功和失败的 SSH 登录尝试。
4. 分析认证日志。
5. 提取用户名和 IP 地址。
6. 检测可疑的登录活动。
7. 生成每日安全报告。
8. 归档重要日志文件。
9. 使用 Cron 自动化执行。
10. 记录发现结果。
## 文件夹结构
```
linux-log-analysis-automation/
│
├── README.md
├── LICENSE
├── .gitignore
│
├── docs/
│ ├── architecture.md
│ ├── methodology.md
│ └── log-files.md
│
├── scripts/
│ ├── failed_login_detection.sh
│ ├── auth_log_parser.sh
│ ├── suspicious_ip_detector.sh
│ ├── login_summary.sh
│ ├── log_summary.sh
│ ├── user_activity.sh
│ └── archive_logs.sh
│
├── reports/
│ ├── Daily_Log_Report.txt
│ └── Incident_Report.md
│
├── logs/
│ └── backups/
│
└── screenshots/
```
## Bash 脚本
### failed_login_detection.sh
从认证日志中检测失败的 SSH 登录尝试,并显示失败登录尝试的总数。
### auth_log_parser.sh
解析认证日志以显示成功登录、失败登录和 sudo 活动,同时提取有用信息以供进一步分析。
### suspicious_ip_detector.sh
识别负责多次失败认证尝试的 IP 地址,帮助检测可能的暴力破解攻击。
### login_summary.sh
显示认证统计信息的快速摘要,包括成功登录、失败登录和 sudo 使用情况。
### log_summary.sh
生成包含以下内容的详细 Linux 安全报告:
- 认证统计信息
- 用户信息
- 主机信息
- 内核版本
- 已登录用户
- 失败登录次数最多的 IP 地址
### user_activity.sh
显示有关当前登录用户、最近登录历史和用户会话的信息。
### archive_logs.sh
为重要 Linux 日志文件创建压缩备份,以供将来分析和取证调查使用。
## 安全报告示例
```
===========================================
Linux Security Daily Report
===========================================
Generated:
Tue Jul 15 14:22:03 IST
Hostname:
ubuntu
Current User:
aisha
Kernel:
6.8.0
-------------------------------------------
Successful Logins:
5
Failed Logins:
12
Sudo Commands:
18
Logged-in Users:
aisha
Top Failed Login IP Addresses:
8 192.168.29.101
4 192.168.29.105
===========================================
End of Report
===========================================
```
## 学习成果
本项目展示了以下方面的实用技能:
- Linux 管理
- Linux 日志分析
- Bash 脚本编写
- 安全监控
- 事件检测
- SSH 认证分析
- 用户活动监控
- Cron 自动化
- 日志管理
- Git 版本控制
## 未来改进
潜在的增强功能包括:
- 针对可疑登录尝试的电子邮件警报
- Slack 或 Microsoft Teams 通知
- Wazuh 集成
- ELK Stack 集成
- Fail2Ban 集成
- 实时仪表板
- 用于报告可视化的 Web 界面
- 针对可疑 IP 地址的自动化威胁情报查询
## 许可证
本项目基于 MIT 许可证授权。
## 作者
**Aisha Banu**
网络安全工程硕士
标签:Linux运维, 安全运营, 应用安全, 扫描框架, 网络安全研究, 自动化监控