irushinw/Network-Intrusion-Detection-System
GitHub: irushinw/Network-Intrusion-Detection-System
基于 Snort 的网络入侵检测系统,通过自定义规则实时监控流量、自动封锁恶意 IP,并集成 Wazuh 实现集中化日志分析与安全告警。
Stars: 0 | Forks: 0
# 网络入侵检测系统
## 概述
本项目演示了如何在 Linux 上使用 **Snort** 设计和实现**网络入侵检测系统(NIDS)**。该系统监控网络流量,使用自定义和社区规则检测恶意活动,并通过封锁恶意 IP 地址自动响应攻击。该项目还包含自动化脚本,以简化规则管理、日志收集和威胁响应。
## 功能
- 实时网络流量监控
- 使用 Snort 进行入侵检测
- 自定义 Snort 检测规则
- 自动加载和执行 Snort 规则
- 使用 Python 自动封锁 IP
- 用于部署和自动化的 Bash 脚本
- 检测证据和警报日志
- 规范化的规则管理
## 使用的技术
- Ubuntu Linux
- Snort IDS
- Python
- Bash Scripting
- iptables
- TCP/IP 网络
- Linux 命令行
### Snort IDS
Snort 监控传入和传出的网络流量,并将数据包与配置的规则集进行比对。
该系统可检测:
- ICMP Ping 扫描
- TCP 端口扫描
- Nmap 扫描
- SSH 暴力破解尝试
- HTTP 攻击
- DNS 活动
- 可疑的 TCP 标志
- 自定义检测规则
### 2. 自定义 Snort 规则
创建了几条自定义规则来检测常见的攻击技术,包括:
- ICMP 洪泛
- TCP SYN 扫描
- 端口扫描
- 未经授权的连接
- 可疑的网络活动
### 3. Bash 自动化
开发了 Bash 脚本以自动执行重复性任务,包括:
- 启动 Snort
- 加载规则集
- 运行所有检测规则
- 管理配置文件
- 查看警报日志
这减少了手动配置并加快了部署速度。
### 4. Python 自动封锁
Python 脚本持续监控 Snort 警报日志。
当检测到恶意 IP 时:
1. 读取 Snort 警报
2. 提取攻击者 IP
3. 验证 IP
4. 执行 iptables 命令
5. 封锁来自攻击者的进一步流量
## 检测流程示例
1. 攻击者发起 Nmap 扫描。
2. Snort 检测到可疑数据包。
3. 生成警报。
4. Python 脚本读取警报。
5. 自动封锁攻击者 IP。
6. 证据存储在日志中。
## 展示的技能
- 网络安全
- 入侵检测
- Linux 管理
- Bash Scripting
- Python 自动化
- 防火墙管理
- Snort 规则开发
- 事件响应
- 威胁检测
- 日志分析
## 学习成果
通过本项目,我获得了以下方面的实践经验:
- 在 Linux 环境中部署 Snort
- 编写和测试自定义 IDS 规则
- 使用 Bash 自动化安全任务
- 开发用于自动化事件响应的 Python 脚本
- 使用 iptables 配置防火墙规则
- 监控和分析安全警报
- 构建基础的自动化网络入侵检测系统
## 证据
输出结果证据目录包含以下屏幕截图和日志,展示了:
- ICMP Ping 洪泛攻击的屏幕截图
- 受害者仪表板攻击中的 Snort 警报
- Wazuh 仪表板的屏幕截图
## 作者
**Irushi Weerasinghe**
标签:Bash, Python, Wazuh, 密码管理, 应用安全, 无后门, 网络安全, 自动化响应, 逆向工具, 配置错误, 隐私保护