🔒 这是一款以安全为首要考量的模型上下文协议(MCP)服务器,专为保障Ubuntu系统的安全操作而设计。它为AI助手提供对Ubuntu系统操作的安全、可控访问,具备全面的安全控制、审计日志记录和纵深防御原则。
# 克隆仓库
git clone https://github.com/yourusername/secure-ubuntu-mcp.git
cd secure-ubuntu-mcp
# 创建并激活虚拟环境
python3 -m venv .venv
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 使用内置测试验证安装
python main.py --test
# 使用安全策略启动(推荐)
python main.py --policy secure
# 使用开发策略启动(更宽松)
python main.py --policy dev
# 测试安全措施
python main.py --security-test
# 使用安全策略启动服务器
python main.py --policy secure
# 在调试模式下启动服务器,并使用安全策略
python main.py --log-level DEBUG --policy secure
官方支持情况:Claude Desktop官方不支持Linux,但社区已经提供了解决方案! 推荐方法:使用@aaddrick提供的社区Debian软件包:
# 下载并安装适用于Linux的Claude Desktop
wget https://github.com/aaddrick/claude-desktop-debian/releases/latest/download/claude-desktop_latest_amd64.deb
sudo dpkg -i claude-desktop_latest_amd64.deb
sudo apt-get install -f # 修复任何依赖问题
如需了解其他方法和故障排除信息,请参阅:https://github.com/aaddrick/claude-desktop-debian
Claude Desktop安装完成后,将以下内容添加到配置文件(~/.config/claude-desktop/claude_desktop_config.json)中:
{
"mcpServers": {
"secure-ubuntu": {
"command": "/path/to/secure-ubuntu-mcp/.venv/bin/python3",
"args": ["/path/to/secure-ubuntu-mcp/main.py", "--policy", "secure"],
"env": {
"MCP_LOG_LEVEL": "INFO"
}
}
}
}
⚠️ 重要提示:请使用绝对路径和虚拟环境的Python解释器。
验证:重启Claude Desktop后,你应该会看到“secure-ubuntu”作为已连接的服务器列出,并且Claude将可以访问系统控制工具。
该服务器实现了标准的MCP协议,可与任何兼容MCP的客户端配合使用:
# 使用mcp Python客户端的示例
import asyncio
from mcp.client import ClientSession
async def example():
# 连接到服务器
# 具体实现取决于你的MCP客户端
pass
推荐用于生产环境和不可信环境:
~/, /tmp, /var/tmp/etc, /root, /boot, /sys, /proc, /dev, /usr, /bin, /sbinls, cat, echo, pwd, whoami, date, find, grep, apt(仅搜索)适用于开发环境,限制更宽松:
/opt, /usr/local创建自己的安全策略:
from main import SecurityPolicy
custom_policy = SecurityPolicy(
allowed_paths=["/your/custom/paths"],
forbidden_paths=["/sensitive/areas"],
allowed_commands=["safe", "commands"],
forbidden_commands=["dangerous", "commands"],
max_command_timeout=30,
allow_sudo=False, # 谨慎使用
audit_actions=True
)
list_directory(path):列出目录内容并包含元数据。read_file(file_path):读取文件内容并进行大小验证。write_file(file_path, content, create_dirs=False):使用原子操作进行文件写入。execute_command(command, working_dir=None):安全地执行shell命令。get_system_info():获取操作系统、内存和磁盘信息。search_packages(query):搜索APT软件包仓库。install_package(package_name):检查软件包可用性(仅列出)。路径遍历防范:
# 以下路径均会被阻止:
../../../etc/passwd
/etc/passwd
/tmp/../etc/passwd
symlinks_to_sensitive_files
命令注入防范:
# 以下命令均会被阻止:
echo hello; rm -rf /
echo `cat /etc/passwd`
echo $(whoami)
ls | rm -rf /
资源耗尽防范:
所有操作都会记录以下信息:
# 测试核心功能
python main.py --test
# 运行全面的安全测试
python main.py --security-test
# 直接测试MCP协议
python test_client.py --simple
与AI助手集成后:
"检查我的系统状态和磁盘空间"
"列出我主目录中的文件,并显示最大的文件"
"检查是否安装了Python,并显示版本信息"
"查找我项目目录中的所有错误文件"
MCP_LOG_LEVEL:日志级别(DEBUG, INFO, WARNING, ERROR)MCP_POLICY:安全策略(secure, dev)MCP_CONFIG_PATH:自定义配置文件的路径创建config.json进行自定义设置:
{
"server": {
"name": "secure-ubuntu-controller",
"version": "1.0.0",
"log_level": "INFO"
},
"security": {
"policy_name": "secure",
"allowed_paths": ["~/", "/tmp"],
"max_command_timeout": 30,
"allow_sudo": false,
"audit_actions": true
}
}
@mcp.tool("your_tool_name")
async def your_tool(param: str) -> str:
"""AI助手使用的工具描述"""
try:
# 使用控制器方法进行安全操作
result = controller.safe_operation(param)
return json.dumps(result, indent=2)
except Exception as e:
return json.dumps({"error": str(e)}, indent=2)
def create_custom_policy() -> SecurityPolicy:
"""创建自定义安全策略"""
return SecurityPolicy(
allowed_paths=["/your/paths"],
forbidden_commands=["dangerous", "commands"],
# ... 其他设置
)
“服务器似乎挂起”
“ModuleNotFoundError: No module named 'mcp'”
.venv/bin/python3的完整路径。“SecurityViolation”错误
/tmp/ubuntu_mcp_audit.log中的审计日志。“Permission denied”错误
ls -la检查文件/目录权限。# 启用详细日志记录
python main.py --log-level DEBUG --policy secure
# 查看审计日志
tail -f /tmp/ubuntu_mcp_audit.log
我们欢迎贡献!请参阅我们的贡献指南以获取详细信息。
git checkout -b feature/amazing-feature。python main.py --test && python main.py --security-test。本项目采用MIT许可证 - 详情请参阅LICENSE文件。
如果您发现安全漏洞,请发送电子邮件至 [radjackbartok@proton.me],而不是创建公开问题。我们非常重视安全问题,并将及时响应。
为注重安全的AI社区打造
💡 使用建议:从安全策略开始,根据需要逐步增加权限。添加权限比从安全事件中恢复要容易得多!