Maizestream818/sistema-ids-institucional

GitHub: Maizestream818/sistema-ids-institucional

一个基于 Python 的轻量级机构网络入侵检测系统,通过白名单控制、DNS 日志记录、威胁情报比对和邮件告警实现防御性网络监控。

Stars: 0 | Forks: 0

# IDS Institucional **IDS Institucional** 是一个防御性的入侵检测系统(IDS),旨在实时监控和分析本地网络流量。其模块化设计允许它拦截未经授权的连接,记录域名解析,并降低与连接到具有恶意声誉的 IP 地址相关的风险(Threat Intelligence)。 该系统注重隐私和合法性,仅收集网络元数据(MAC、IP、域名、协议),而不检查加密通信的内容(payloads)。 ## 支持的运行环境 - **操作系统:** Ubuntu 24.04 LTS Desktop(或兼容的 Linux 服务器)。 - **环境:** 物理机构网络或配置为桥接模式(Bridged)的虚拟机,用于网络拦截。 ## 系统要求 - Python 3.10 或更高版本。 - `pip` 和 `venv`。 - 系统库:`tcpdump`、`whois`、`net-tools`。 - socket 级别的数据包捕获权限(cap_net_raw)。 - SMTP 服务器(用于紧急警报通知)。 ## 安装与部署 1. **安装系统依赖项:** sudo apt update sudo apt install -y python3 python3-pip python3-venv tcpdump whois net-tools 2. **配置 Python 虚拟环境:** python3 -m venv venv source venv/bin/activate pip install -r requirements.txt 3. **授予网络捕获权限:** 为了允许系统拦截数据包,而无需以 `root` 用户身份运行整个解释器: sudo setcap cap_net_raw,cap_net_admin=eip $(readlink -f $(which python3)) ## 环境配置 IDS 需要一个环境变量文件才能安全运行,而不会暴露凭据。 1. 导航到 `config/` 目录并创建 `.env` 文件: cp config/.env.example config/.env 2. 使用发送 SMTP 凭据和接收管理员邮箱编辑 `config/.env`: SMTP_SERVER=smtp.gmail.com SMTP_PORT=587 SMTP_USER=alertas.ids@tudominio.com SMTP_PASSWORD=tu_app_password_segura ADMIN_EMAIL=administrador.seguridad@tudominio.com VIRUSTOTAL_API_KEY=tu_api_key_de_virustotal_opcional ## 规则管理 IDS 的访问策略通过 `config/` 文件夹中的 CSV 文件进行控制。 - **白名单(第 2 层和第 3 层访问控制):** `config/whitelist.csv` 包含授权在机构网络中运行的设备的 IP 地址和 MAC 地址。 - **Threat Intelligence(黑名单):** `config/blacklist_ips.csv` 存储已知具有恶意行为(Botnets、Malware、Phishing)的外部 IP 记录。 ## 操作指南与模块验证 要启动系统,请激活环境并运行主模块: ``` source venv/bin/activate sudo python3 src/main.py ``` 系统将显示一个交互式菜单。以下说明了管理员如何验证各个模块的运行情况: ### 1. 白名单模块 系统会检查每个 ARP 和 IP 数据包。如果不在 `whitelist.csv` 中的设备发出流量: - **验证:** 将未注册的设备连接到网络(或临时修改您设备的 MAC)。 - **结果:** IDS 将在控制台中记录违规行为,并**立即向管理员发送一封电子邮件**,警告该未经授权的设备。 ### 2. 站点监控模块(DNS) IDS 实时记录 DNS 域名解析,以维护网络流量的日志。 - **验证:** 启动 IDS(选项 1),并在另一个终端中执行 ping 或查询某个域名(例如:`ping portal.azure.com`)。 - **结果:** 该域名将实时显示在控制台中,并永久存储在 `logs/site_report.log` 中。(可以通过菜单中的选项 3 查看)。 ### 3. 危险 IP 与自动化取证模块(Abuse/Whois) 系统将出站 IP 连接与其 Threat Intelligence 数据库进行比较。 - **验证:** 将测试 IP 添加到 `blacklist_ips.csv` 中,并尝试从网络上的设备使用 `curl` 或 `ping` 连接到该 IP。 - **结果:** IDS 会拦截流量,自动对目标 IP 执行取证分析(通过 Whois 命令提取组织、国家和 *Abuse* 联系方式),并在配置后通过 VirusTotal 对其进行评估。系统会自动通过电子邮件触发**“紧急警报”**,包含风险类型和准备好用于报告事件的数据。 ### 4. 手动 VirusTotal 查询 - **验证:** 使用主菜单中的选项 6 输入公共 IP。 - **结果:** IDS 将通过 API 连接到 VirusTotal,以返回该主机在多个防病毒引擎下的声誉。 ## 日志与审计(Logs) 系统检测到的所有异常活动都将保存到 `logs/` 目录中,以供后续的取证审计。每条记录都包含时间戳: - `unauthorized_devices.log`:第 2 层和第 3 层违规(MAC/IP)。 - `site_report.log`:DNS 查询历史记录。 - `threats_detected.log`:针对黑名单的连接尝试。 - `alerts.log`:常规操作和 SMTP 发送日志。
标签:Python, 入侵检测系统, 威胁情报, 安全数据湖, 开发者工具, 无后门, 网络安全, 逆向工具, 防御绕过, 隐私保护