InfoBlox MCP和Claude集成-安全强化
企业级InfoBlox DDI管理与Claude AI集成,具有全面的安全强化、输入验证和灵活的Python版本支持。
🚀 快速开始
一个命令设置(推荐)🌟
# Clone the repository
git clone https://github.com/tshoush/20251012InfoBloxMCPandClaudeInteg.git
cd 20251012InfoBloxMCPandClaudeInteg
# Run master setup script - does everything!
./setup.py就是这样! 主设置脚本将:
- ✅ 指导您完成配置(InfoBlox+Claude凭据)
- ✅ 创建Python虚拟环境
- ✅ 安装所有依赖项
- ✅ 在Claude Desktop中配置MCP服务器(可选,仅限macOS/Windows)
- ✅ 构建RAG知识库(可选)
- ✅ 运行测试以验证安装
- ✅ 将配置保存到.env文件
注: MCP通过CLI在所有平台上运行(claude-chat-mcp.py).Claude Desktop自动配置仅适用于macOS/Windows。
总设置时间:3-5分钟
快速选项
# Quick setup (skip optional components)
./setup.py --quick
# Setup without tests
./setup.py --no-tests
# Setup without Claude Desktop auto-configuration
./setup.py --no-mcp手动设置(替代)
如果您更喜欢手动控制:
# 1. Configure credentials
python claude-chat-rag.py # Will prompt for configuration
# 2. (Optional) Set up MCP server for Claude Desktop
./setup-mcp.py
# 3. (Optional) Build RAG knowledge base
python infoblox-rag-builder.py📋 包含内容
核心组件
- InfoBlox MCP服务器 -模型上下文协议服务器暴露140多个InfoBlox WAPI端点
- Claude聊天界面 -具有不同功能的多个聊天界面
- 交互式配置 -自动提示缺少设置,保存到.env(新增!🆕)
- API确认系统 -具有预览和编辑功能的用户控制API执行(新增!)
- RAG系统 -InfoBlox文档的矢量数据库
- 安全框架 -综合安全模块(第1和第2阶段完成)
交互式配置(新增!🆕)
没有环境变量?没问题!只需运行任何聊天界面,它就会引导您完成设置:
══════════════════════════════════════════════════════════════════
🔧 Configuration Setup
══════════════════════════════════════════════════════════════════
This script requires environment variables to connect to InfoBlox
and Claude AI. Let's set them up!
InfoBlox Configuration
──────────────────────────────────────────────────────────────────
Hostname or IP address of your InfoBlox server
InfoBlox Host [192.168.1.224]:
Username for InfoBlox authentication
InfoBlox Username [admin]:
Password for InfoBlox authentication
InfoBlox Password: ●●●●●●●●
...
Save configuration to .env file? (yes/no) [yes]:
✓ Configuration saved to: /path/to/.env
✓ Environment variables set for current session
✓ Setup complete! You can now use the chat interfaces.特征:
- ✅ 自动检测缺失的设置 -仅提示所需内容
- ✅ 安全密码输入 -输入时密码被屏蔽
- ✅ 智能默认值 -按Enter键接受建议值
- ✅ 保存到.env -可选择保存配置以供重用
- ✅ 文件权限 -将.env设置为600(仅限所有者读/写)
- ✅ 备份现有 -在覆盖之前创建.env.backup
API确认系统(新增!)✨
在执行任何InfoBlox API调用之前,用户会看到:
┌─────────────────────────────────────────────────────────────┐
│ 🔍 API Call Preview │
├─────────────────────────────────────────────────────────────┤
│ List networks from InfoBlox │
│ │
│ Method: GET │
│ Endpoint: /wapi/v2.13.1/network │
│ Username: admin │
│ Parameters: │
│ • _max_results: 100 │
│ │
│ Curl Equivalent: │
│ curl -X GET -u admin:$INFOBLOX_PASSWORD \ │
│ 'https://192.168.1.224/wapi/v2.13.1/network?...' │
└─────────────────────────────────────────────────────────────┘
Execute? (yes/no/edit) [yes]:特征:
- ✅ 完全可见 -请在执行前查看准确的API调用
- ✅ 编辑功能 -修改参数和用户名
- ✅ 随时取消 -中止不必要的操作
- ✅ 卷曲当量 -复制/粘贴以手动执行
- ✅ 安全 -密码从未显示(显示$INFOBLOX_Password)
- ✅ 尽力解析 -从自然语言提示中提取值
看 API-协议指南.md 以获取完整的文档。
安全功能(第1阶段和第2阶段)✅
- ✅ 零硬编码凭据 -来自环境变量的所有凭据
- ✅ 输入验证 -命令注入、SQL注入、XSS防御
- ✅ 可配置SSL -支持自定义CA捆绑包
- ✅ 结构化日志记录 -应用程序+安全审计日志
- ✅ 速率限制 -每秒向InfoBlox API发出3次请求
- ✅ 重试逻辑 -可靠性指数回退
- ✅ 安全审计跟踪 -记录所有敏感操作
🐍 Python版本支持
违约: Python 3.8.13(兼容RHEL 7.9) 支持: Python 3.8到3.12
# List available Python versions
./deploy.py --list-python
# Use Python 3.11
./deploy.py --local --python-version 3.11
# Use specific Python executable
./deploy.py --local --python-exec /opt/python3.11/bin/python3看 部署.md 获取详细的部署指南。
📊 测试结果
| 平台 | Python | 测试 | 覆盖率 | 状态 |
|---|---|---|---|---|
| RHEL 7.9 | 3.8.13 | 100/102 | 30% | ✅ 生产就绪 |
| macOS | 3.12.7 | 102/102 | 26% | ✅ 开发就绪 |
🔧 配置
所有配置均通过环境变量进行(无硬编码值):
# InfoBlox Configuration
export INFOBLOX_HOST="192.168.1.224"
export INFOBLOX_USER="admin"
export INFOBLOX_PASSWORD="your-password"
export WAPI_VERSION="v2.13.1"
export INFOBLOX_VERIFY_SSL="false" # or path to CA bundle
# Claude API
export ANTHROPIC_API_KEY="sk-ant-..."
# Logging
export LOG_LEVEL="INFO" # DEBUG, INFO, WARNING, ERROR
# Optional
export INFOBLOX_CA_BUNDLE="/path/to/ca-bundle.crt"
export RAG_DB_PATH="~/.infoblox-rag"🛠️ 可用工具
聊天界面-我应该使用哪一个?
该项目提供 3种可选聊天界面 具有不同的能力。他们是 不 管道-选择适合您需求的管道:
| 界面 | 工具 | 文档 | 最佳选择 | 速度 |
|---|---|---|---|---|
| claude-chat-infoblox.py | 6基础 | ❌ 否 | 快速查找,简单查询 | ⚡ 最快 |
| claude-chat-rag.py | 6基础 | ✅ 是 | 学习+操作,“如何”问题 | 🔵 中等 |
| claude-chat-mcp.py | 143高级 | ❌ 否 | 复杂操作,高级用户 | 🔵 中等 |
快速决策指南:
Need to learn InfoBlox concepts?
├─ YES → claude-chat-rag.py (has documentation)
└─ NO → Need advanced operations (create/update/delete)?
├─ YES → claude-chat-mcp.py (143 tools)
└─ NO → claude-chat-infoblox.py (fast & simple)详细比较: 看 CHAT-INTERFACES-GUIDE.md
1.claude-chat-infoblox.py-快速简单⚡
python claude-chat-infoblox.py- 工具: 6个基本的InfoBlox操作
- 知识: 无文档上下文
- 最适合: 快速查找,简单查询
- 例子: “列出所有网络”,“查找IP 192.168.1.50”
2.claude-chat-rag.py-知识增强📚
python claude-chat-rag.py- 工具: 6个基本的InfoBlox操作
- 知识: 通过RAG获取完整的InfoBlox文档
- 最适合: 学习+操作、讲解
- 例子: “如何配置DHCP?”,“解释网络容器”
- 推荐: 大多数用户的最佳起点
3.claude-chat-mcp.py-全功率🚀
python claude-chat-mcp.py- 工具: 143个InfoBlox WAPI工具(几乎所有端点)
- 知识: 无文档上下文
- 最适合: 操作复杂,功能先进
- 例子: “创建固定地址”,“更新DNS记录TTL”
独立查询工具(新增!🆕)
用于快速InfoBlox查询的自包含脚本-无需Claude,无需MCP,只需直接访问WAPI:
# Query network information
./infoblox-query.py -n 192.168.1.0/24
# Query IP address details
./infoblox-query.py -i 192.168.1.50
# Query DNS zone information
./infoblox-query.py -z corp.local
# Quiet mode (use saved config, no prompts)
./infoblox-query.py -n 192.168.1.0/24 -q特征:
- ✅ 自足 -单个脚本,不依赖于其他项目文件
- ✅ 交互式配置 -首次运行时使用智能默认值提示输入凭据
- ✅ 安全存储 -将配置保存到
~/.infoblox-query.conf(600个权限) - ✅ 安静模式 -使用
-q自动化/脚本标记 - ✅ 多API编排 -结合多个WAPI调用以获得全面结果
- ✅ 格式化输出 -彩色编码、结构化信息显示
- ✅ WAPI 版本 2.13.1 -兼容InfoBlox 9.3
非常适合:
- 无人工智能开销的快速查找
- 自动化脚本
- CI/CD管道
- 网络操作故障排除
- 喜欢直接访问API的用户
实用程序脚本
# Build RAG knowledge base
python infoblox-rag-builder.py
# Explore InfoBlox WAPI
python infoblox-explorer.py
# Run MCP server directly
python infoblox-mcp-server.py🔌 MCP服务器
CLI使用情况(所有平台)
MCP工作 所有平台 通过CLI界面:
python claude-chat-mcp.py # 140+ InfoBlox tools via MCP这适用于macOS、Linux(包括RHEL 7.9)和Windows,不需要Claude Desktop!
克劳德桌面集成(仅限macOS/Windows)
对于Claude Desktop用户,可以进行自动配置:
# Automatically configure MCP server in Claude Desktop
./setup-mcp.py
# Or combined with deployment
./deploy.py --local --setup-mcp脚本会自动执行以下操作:
- ✅ 检测Claude Desktop安装(macOS/Windows)
- ✅ 配置InfoBlox MCP服务器
- ✅ 设置环境变量
- ✅ 测试连接
结果: InfoBlox MCP服务器出现在Claude Desktop的🔌 菜单-无需手动配置!
看 MCP-SETUP-GUIDE.md 了解详情。
🏗️ 这一切是如何协同工作的
User: "Show me networks in 192.168.1.0/24"
↓
Natural Language → Claude LLM (analyzes intent, extracts parameters)
↓
Claude selects tool → infoblox_list_networks
↓
API Confirmation System (shows preview with curl equivalent)
↓
User confirms → yes
↓
InfoBlox WAPI Call → GET /wapi/v2.13.1/network
↓
Results returned to user完整管道:
- 自然语言输入 -用简明英语查询用户类型
- 克劳德LLM处理 -AI提取意图和参数
- MCP工具选择 -生成结构化工具调用
- API确认 -用户看到预览,可以编辑、取消或确认
- WAPI执行 -对InfoBlox的安全REST API调用
- 结果显示 -对用户的格式化响应
看 建筑流量.md 了解完整的技术细节。
📚 文档
入门指南
- demo.html - 交互式演示 -在浏览器中打开!新🌟)
- CHAT-INTERFACES-GUIDE.md - 聊天界面比较 -使用哪一个?新🆕)
- 用户帐户.md - 操作用例 -真实世界的工作流程(新增!🌟)
- STANDALONE-JURY-TOOL.md - 独立查询工具指南 新🆕)
- 建筑流量.md - 一切如何协同工作 新🌟)
- MCP-SETUP-GUIDE.md - 自动MCP设置 新
- API-协议指南.md - API确认系统 新
- 部署.md -带有Python版本选项的部署指南
- DDI助理指南.md -使用DDI助手
- RAG-SYSTEM-GUIDE.md -RAG系统概述
建筑与设计
- 建筑设计.md -系统架构
- 产品要求-文件.md -要求
- INFOBLX-MCP-README.md -MCP服务器详细信息
安全与测试
- 证券审查报告.md -安全审计结果
- 代码审查报告.md -代码质量审查
- REDHAT-7.9测试指南.md -RHEL测试指南
项目状态
🏗️ 项目阶段
✅ 第一阶段:安全基础(完成)
- 安全配置管理(
config.py) - 输入验证(
validators.py) - 结构化日志记录(
logging_config.py) - 83个单元测试通过
- 79%的代码覆盖率
✅ 第2阶段:集成和可靠性(完成)
- 将所有6个生产文件迁移到安全模块
- 添加了速率限制和重试逻辑
- 命令注入预防
- 共有102项测试通过
- RHEL 7.9上的生产就绪
🔜 第3阶段:高级功能(计划中)
- 度量和监控
- 性能优化
- 高级缓存
🔜 第4阶段:生产强化(计划中)
- 生产部署指南
- 灾难恢复程序
- 性能调整
🔒 安全亮点
第二阶段之前(不安全)
# ❌ INSECURE - Hardcoded credentials
INFOBLOX_HOST = "192.168.1.224"
INFOBLOX_PASSWORD = "infoblox"
# ❌ INSECURE - SSL warnings suppressed
requests.packages.urllib3.disable_warnings()
# ❌ INSECURE - No SSL verification
session.verify = False第二阶段(安全)之后✅
# ✅ SECURE - Credentials from environment
settings = get_settings()
session.auth = (settings.infoblox_user, settings.infoblox_password)
# ✅ SECURE - Configurable SSL with warnings
session.verify = settings.get_ssl_verify()
settings.display_security_warning()
# ✅ SECURE - Input validation
InputValidator.validate_shell_command(command)
# ✅ SECURE - Rate limiting & retry logic
@sleep_and_retry
@limits(calls=3, period=1)
@retry(stop=stop_after_attempt(3))
def api_call(...):
...🧪 测试
# Run all tests
./deploy.py --local
# Run specific test suite
./deploy.py --local --test-suite phase2
# Run tests without coverage
./deploy.py --local --no-coverage
# Deploy without running tests
./deploy.py --local --no-tests🤝 贡献
这是一个企业安全项目。关键原则:
- ✅ 没有硬编码凭据
- ✅ 所有输入均已验证
- ✅ 综合录井
- ✅ 安全第一设计
- ✅ 安全模块的测试覆盖率为100%
📝 许可证
企业内部项目。
🆘 支持
🎯 主要成就
✅ 140+InfoBlox WAPI端点 通过MCP暴露 ✅ 零硬编码凭据 跨所有文件 ✅ 100/102测试通过 在生产环境中使用RHEL 7.9 ✅ 灵活的Python支持 (3.8至3.12) ✅ 企业级安全 -经过验证和测试 ✅ 生产准备就绪 -已部署并验证
______________________________________________________________________
最后更新时间: 2025年10月13日 状态: 生产就绪✅ 阶段: 第二阶段完成 python 3.8.13+(建议RHEL 7.9使用3.8.13)
