Docker Deployment Guide 中的安全配置部分

Docker Deployment Guide 中的安全配置部分

【免费下载链接】n8n-mcp 【免费下载链接】n8n-mcp 项目地址: https://gitcode.com/GitHub_Trending/n8/n8n-mcp

🔒 Security Features (v2.16.3+)

Rate Limiting

Protects against brute force authentication attacks:

# Configure in .env or docker-compose.yml
AUTH_RATE_LIMIT_WINDOW=900000  # 15 minutes in milliseconds
AUTH_RATE_LIMIT_MAX=20         # 20 attempts per IP per window

SSRF Protection

Prevents Server-Side Request Forgery when using webhook triggers:

# For production (blocks localhost + private IPs + cloud metadata)
WEBHOOK_SECURITY_MODE=strict

# For local development with local n8n instance
WEBHOOK_SECURITY_MODE=moderate

# For internal testing only (allows private IPs)
WEBHOOK_SECURITY_MODE=permissive

Note: Cloud metadata endpoints (169.254.169.254, etc.) are ALWAYS blocked in all modes.


### 反向代理与HTTPS配置

在生产环境中,始终使用HTTPS加密传输,并通过反向代理增强安全性:

```nginx
# nginx安全配置示例
server {
    listen 443 ssl http2;
    server_name mcp.yourdomain.com;

    # SSL配置
    ssl_certificate /etc/letsencrypt/live/mcp.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/mcp.yourdomain.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
    
    # 安全头部
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Content-Type-Options nosniff;
    add_header X-Frame-Options DENY;
    add_header X-XSS-Protection "1; mode=block";
    add_header Content-Security-Policy "default-src 'self'; script-src 'self'";
    
    # 反向代理到n8n-mcp
    location / {
        proxy_pass http://n8n-mcp:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # 限制请求大小
        client_max_body_size 1M;
        
        # 超时设置
        proxy_connect_timeout 10s;
        proxy_send_timeout 15s;
        proxy_read_timeout 30s;
    }
    
    # 健康检查端点无需认证
    location /health {
        proxy_pass http://n8n-mcp:3000/health;
        allow all;
    }
}

网络访问控制

限制n8n-mcp仅接受来自可信来源的网络连接:

# 使用ufw限制端口访问
ufw allow from 192.168.1.0/24 to any port 3000
ufw deny 3000/tcp

# Docker网络隔离
docker network create --internal internal-network
docker network create --driver bridge public-network

# 仅允许特定容器访问n8n-mcp
docker run -d --name n8n-mcp --network internal-network ...
docker run -d --name nginx --network public-network --network internal-network ...

安全审计与合规检查

定期安全审计是维持n8n-mcp安全状态的关键环节,帮助发现潜在漏洞和配置问题。

依赖项安全扫描

定期检查并更新依赖项,修复已知安全漏洞:

# 检查依赖项漏洞
npm audit

# 更新安全补丁
npm audit fix

# 检查过时依赖
npm outdated

# 更新依赖项到安全版本
npx npm-check-updates -u
npm install

n8n-mcp的依赖更新策略在SECURITY.md中有详细说明:

## Dependencies

- Regularly update dependencies: `npm audit`
- Review dependency changes carefully
- Use lock files (`package-lock.json`)
- Monitor for security advisories

安全检查清单

部署或更新n8n-mcp前,使用以下清单进行安全检查:

## Security Checklist

Before each release or deployment:

- [ ] No hardcoded credentials in source code
- [ ] All sensitive configuration uses environment variables
- [ ] `.env` files are not tracked in git
- [ ] Dependencies are up to date
- [ ] No sensitive data in logs
- [ ] API endpoints use proper authentication
- [ ] Docker images don't contain secrets

自动化安全检查:

# 运行安全检查脚本
./scripts/security-audit.sh

# 检查代码中的硬编码凭证
grep -rE "(api[_-]?key|secret|token|password)[[:space:]]*=[[:space:]]*['\"][A-Za-z0-9]+['\"]" src/

# 验证Docker镜像不包含敏感文件
docker run --rm --entrypoint sh ghcr.io/czlonkowski/n8n-mcp:latest -c "ls -la /app && cat /app/.env || true"

持续集成安全测试

n8n-mcp的CI/CD流程包含全面的安全测试,确保每次代码提交都经过安全验证:

# .github/workflows/security.yml
name: Security Scan

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  schedule:
    - cron: '0 0 * * 0'  # 每周日运行

jobs:
  security-scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 22
          cache: 'npm'
      
      - name: Install dependencies
        run: npm ci
      
      - name: Run npm audit
        run: npm audit --production
      
      - name: Run ESLint security rules
        run: npx eslint --plugin security src/
      
      - name: Run dependency check
        uses: snyk/actions/node@master
        with:
          args: --severity-threshold=high
        env:
          SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}

安全事件响应

即使采取了全面的预防措施,安全事件仍可能发生。建立清晰的响应流程,最小化安全事件影响。

安全漏洞报告

发现安全漏洞时,通过安全渠道报告:

## Reporting Security Vulnerabilities

If you discover a security vulnerability in n8n-mcp, please report it by creating a private security advisory on GitHub or emailing the maintainer directly. Please do not create public issues for security vulnerabilities.

事件响应流程

安全事件响应的基本步骤:

  1. 检测与分析:确认安全事件,确定影响范围和严重程度
  2. 控制与隔离:隔离受影响系统,防止攻击扩散
  3. 消除与恢复:移除恶意代码或攻击者访问权限,恢复系统正常运行
  4. 事后分析:记录事件详情,分析攻击向量,改进防御措施
# 安全事件响应脚本示例
#!/bin/bash
# security-incident-response.sh

# 1. 隔离受影响系统
iptables -A INPUT -j DROP
systemctl stop n8n-mcp

# 2. 创建系统快照和日志备份
tar -czf /backup/incident_$(date +%Y%m%d_%H%M%S).tar.gz /var/log /app/data

# 3. 收集取证数据
dmesg > /backup/incident_dmesg.log
netstat -tulpn > /backup/incident_netstat.log
ps aux > /backup/incident_ps.log

# 4. 恢复到已知安全状态
rm -rf /app/data
tar -xzf /backup/clean_backup.tar.gz -C /app/

# 5. 轮换所有凭证
./scripts/rotate-credentials.sh

# 6. 启动系统并加强监控
systemctl start n8n-mcp
tail -f /var/log/n8n-mcp.log
</output>

【免费下载链接】n8n-mcp 【免费下载链接】n8n-mcp 项目地址: https://gitcode.com/GitHub_Trending/n8/n8n-mcp

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值