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, 密码管理, 应用安全, 无后门, 网络安全, 自动化响应, 逆向工具, 配置错误, 隐私保护