使用说明

项目简介

SuricataMCP 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在使 AI 编码工具(如 Cursor)能够自动化地使用 Suricata 进行网络流量分析。它通过 MCP 协议提供了一组工具,允许 AI 系统调用 Suricata 的功能,例如获取版本信息、帮助文档以及分析 PCAP 文件以提取网络安全警报和统计数据。

主要功能点

  • 获取 Suricata 版本信息: 允许 AI 工具查询已安装的 Suricata 版本。
  • 获取 Suricata 帮助信息: 提供 Suricata 命令行界面的帮助文档,方便 AI 理解 Suricata 的可用选项。
  • PCAP 文件分析与警报提取: 使用 Suricata 分析指定的 '.pcap' 文件,并返回生成的安全警报日志('fast.log')内容。
  • PCAP 文件分析与统计信息提取: 使用 Suricata 分析指定的 '.pcap' 文件,并返回生成的统计信息日志('stats.log')内容。

安装步骤

  1. 克隆仓库

    打开终端并执行以下命令克隆 SuricataMCP 仓库到本地:

    git clone https://github.com/Medinios/SuricataMCP.git
    cd SuricataMCP
  2. 安装依赖

    如果需要,创建并激活虚拟环境,然后安装项目依赖:

    pip install -r requirements.txt
  3. 配置 Suricata 路径

    编辑 'config.py' 文件,根据你的 Suricata 安装路径修改以下配置:

    SURICATA_DIR = r"D:/Suricata/"  # 替换为你的 Suricata 安装目录
    SURICATA_EXE_FILE = "suricata.exe" # 如果在 Linux 或 macOS 上,可能是 "suricata"

    请确保 'SURICATA_DIR' 配置的是 Suricata 的安装目录,该目录下应该包含 Suricata 的可执行文件。

服务器配置

要将 SuricataMCP 添加到 MCP 客户端(例如 Cursor),你需要配置服务器的启动命令。以下是一个 JSON 格式的配置示例,你需要将其添加到你的 MCP 客户端的配置文件中。

{
  "mcpServers": {
    "SuricataMcp": {  // 服务器名称,可以自定义
      "command": "cmd", // 运行命令,通常是 "cmd" (Windows) 或 "bash" (Linux/macOS)
      "args": [       // 命令参数
        "/c",         // Windows 下 /c 表示执行完命令后关闭 cmd 窗口,Linux/macOS 下可移除
        "mcp",        // 假设你的 MCP 客户端提供了 "mcp" 命令来启动 MCP 服务器
        "run",        // "mcp run" 子命令通常用于运行指定的 MCP 服务器脚本
        "[YourPath]\\SuricataMcp\\suricata-mcp.py" // SuricataMCP 服务器脚本的绝对路径,请替换为你的实际路径
      ]
    }
  }
}

配置参数说明:

  • '"SuricataMcp"': 服务器的名称,可以根据你的喜好自定义,在客户端中用于标识该服务器。
  • '"command"': 启动服务器的命令解释器。Windows 系统通常使用 '"cmd"',Linux 或 macOS 系统可能使用 '"bash"' 或 '"python"' (如果直接运行 Python 脚本)。
  • '"args"': 传递给命令解释器的参数列表。
    • '"/c"' (Windows): 'cmd /c' 表示执行完后面的命令后关闭命令窗口。在 Linux 或 macOS 系统中,可能不需要此参数,或者需要根据实际情况调整。
    • '"mcp"': 这假设你的 MCP 客户端提供了一个名为 'mcp' 的命令行工具,用于管理和运行 MCP 服务器。具体的命令和工具取决于你使用的 MCP 客户端。
    • '"run"': 'mcp run' 通常是客户端提供的子命令,用于启动指定的 MCP 服务器脚本。
    • '"[YourPath]\SuricataMcp\suricata-mcp.py"': 这是最重要的参数,你需要将其替换为 'suricata-mcp.py' 脚本在你的系统上的 绝对路径。 例如,如果你的 'SuricataMCP' 仓库克隆在 'D:\Projects\SuricataMCP',那么这个路径应该是 '"D:\Projects\SuricataMCP\suricata-mcp.py"'。 请务必根据你的实际情况修改此路径。

注意: 上述配置中的 '"command"' 和 '"args"' 是通用的示例,实际配置可能需要根据你使用的 MCP 客户端的具体要求进行调整。请参考你的 MCP 客户端的文档,了解如何配置和启动外部 MCP 服务器。

基本使用方法

成功配置并启动 SuricataMCP 服务器后,你可以在 MCP 客户端中使用以下工具:

  • 'get_suricata_version()': 调用此工具将返回 Suricata 的版本字符串。
  • 'get_suricata_help()': 调用此工具将返回 Suricata 命令行帮助信息。
  • 'get_alerts_from_pcap_file(pcap_destination: str, destination_folder_results: str)':
    • 'pcap_destination': 要分析的 '.pcap' 文件的路径。
    • 'destination_folder_results': Suricata 分析结果(包括 'fast.log')将要保存的目录路径。
    • 调用此工具将使用 Suricata 分析指定的 PCAP 文件,并将 'fast.log' 文件的内容作为结果返回。
  • 'get_stats_from_pcap_file(pcap_destination: str, destination_folder_results: str)':
    • 'pcap_destination': 要分析的 '.pcap' 文件的路径。
    • 'destination_folder_results': Suricata 分析结果(包括 'stats.log')将要保存的目录路径。
    • 调用此工具将使用 Suricata 分析指定的 PCAP 文件,并将 'stats.log' 文件的内容作为结果返回。

在 MCP 客户端中,你可以通过工具调用功能来使用这些工具,并根据工具的参数提示提供必要的文件路径和目录路径。 例如,在 Cursor 中,你可以在聊天框中使用 '@SuricataMcp.get_alerts_from_pcap_file' 并按照提示提供参数。

信息

分类

开发者工具