上一篇 下一篇 分享链接 返回 返回顶部

Coze 私有化部署安全加固实战:从服务器到容器的上线防护清单

发布人:慈云数据-客服中心 发布时间:19小时前 阅读量:4

Coze 安全加固方案|附完整命令

随着企业开始将 Coze、Coze Studio 或基于 Coze 能力构建的智能体平台部署到内网、私有云或公网环境中,安全加固已经不再是“可选项”,而是上线前必须完成的基础工作。Coze 这类 AI 应用编排平台通常会涉及用户登录、工作空间管理、插件调用、知识库、模型接口、API Token、数据库、对象存储、消息队列等多个组件,一旦配置不当,可能导致账号被撞库、Token 泄露、数据库暴露、插件被滥用、敏感知识库数据外泄等风险。

本文将从服务器、Docker、数据库、Redis、Nginx、HTTPS、防火墙、系统审计、日志、备份、密钥管理等多个维度,提供一套适用于 Coze 私有化部署环境的安全加固方案,并附上完整命令示例。你可以根据实际部署架构进行裁剪。

说明:本文命令以 Ubuntu 22.04 / Debian 系统为主,CentOS / Rocky Linux 可按需替换包管理器和服务名称。


一、整体安全加固思路

在对 Coze 进行安全加固前,需要先明确整体目标:

  1. 最小暴露面
    只开放必要端口,例如 80、443、SSH 管理端口,数据库、Redis、MinIO 等组件禁止直接暴露公网。

  2. 最小权限原则
    Coze 服务、数据库账号、系统用户、Docker 容器都应只拥有完成任务所需的最小权限。

  3. 敏感信息不明文暴露
    API Key、数据库密码、JWT Secret、模型供应商 Token 等应通过 .env、密钥管理系统或 CI/CD Secret 注入,避免写死在代码中。

  4. 启用 HTTPS
    所有用户访问、API 调用、Webhook 回调均应通过 HTTPS 加密传输。

  5. 强化认证与访问控制
    管理后台、API、插件接口应限制访问来源,必要时增加 IP 白名单、VPN、MFA 或统一身份认证。

  6. 可审计、可回滚、可恢复
    关键操作需要有日志,数据库和配置需要定期备份,发生故障或攻击后可以快速恢复。


二、服务器基础安全加固

1. 更新系统软件包

上线前首先更新系统补丁,避免已知漏洞被利用。

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean

查看当前系统版本:

lsb_release -a
uname -a

2. 创建专用运维用户

不要长期使用 root 登录服务器,建议创建专用用户,并授予 sudo 权限。

sudo adduser cozeadmin
sudo usermod -aG sudo cozeadmin

验证用户是否具备 sudo 权限:

su - cozeadmin
sudo whoami

如果输出为:

root

说明权限正常。


3. 配置 SSH 密钥登录

在本地生成 SSH 密钥:

ssh-keygen -t ed25519 -C "coze-admin"

将公钥复制到服务器:

ssh-copy-id cozeadmin@你的服务器IP

或者手动追加:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

4. 禁止 root 远程登录和密码登录

编辑 SSH 配置:

sudo vim /etc/ssh/sshd_config

建议修改以下配置:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
PermitEmptyPasswords no
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

如果想修改默认 SSH 端口,例如改为 22222

Port 22222

重启 SSH 服务:

sudo systemctl restart ssh

检查 SSH 服务状态:

sudo systemctl status ssh

注意:修改 SSH 配置后,不要立即关闭当前终端。请先新开一个终端测试能否正常登录,确认无误后再退出原会话。


5. 设置防火墙规则

推荐使用 ufw 管理防火墙。

安装 ufw:

sudo apt install ufw -y

默认拒绝入站流量,允许出站流量:

sudo ufw default deny incoming
sudo ufw default allow outgoing

开放 SSH 端口:

sudo ufw allow 22222/tcp

开放 HTTP 和 HTTPS:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

启用防火墙:

sudo ufw enable

查看状态:

sudo ufw status verbose

如果你没有修改 SSH 端口,使用:

sudo ufw allow 22/tcp

三、Docker 与容器安全加固

Coze 私有部署通常会使用 Docker 或 Docker Compose,因此容器安全非常关键。

1. 安装 Docker

sudo apt install ca-certificates curl gnupg lsb-release -y

添加 Docker 官方 GPG Key:

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

添加 Docker 源:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

安装 Docker:

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

启动 Docker:

sudo systemctl enable docker
sudo systemctl start docker

查看版本:

docker version
docker compose version

2. 限制 Docker Daemon 暴露

检查 Docker 是否监听 TCP 端口:

sudo ss -lntp | grep dockerd

如果发现 Docker 监听了 2375 端口,必须立即关闭。Docker API 暴露公网是极高危风险。

检查配置文件:

sudo cat /etc/docker/daemon.json

建议配置如下:

sudo vim /etc/docker/daemon.json

写入:

{
  "icc": false,
  "userland-proxy": false,
  "no-new-privileges": true,
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m",
    "max-file": "3"
  },
  "live-restore": true
}

重启 Docker:

sudo systemctl restart docker

3. 避免容器使用 privileged 模式

检查当前容器是否启用了特权模式:

docker ps -q | xargs docker inspect --format '{{.Name}} {{.HostConfig.Privileged}}'

如果输出中存在 true,应检查对应容器是否确实必要。正常情况下,Coze Web、API、数据库、Redis 等容器都不应使用 privileged: true


4. Docker Compose 安全建议

假设 Coze 使用 docker-compose.yml 部署,应尽量遵循以下原则:

  • 不使用 privileged: true
  • 不挂载宿主机敏感目录,例如 /, /etc, /var/run/docker.sock
  • 数据库、Redis 不映射公网端口
  • 服务之间使用内部网络
  • 对容器增加资源限制
  • 使用只读文件系统,必要目录单独挂载

示例配置片段:

services:
  coze-web:
    image: your-coze-web-image:latest
    restart: unless-stopped
    env_file:
      - .env
    ports:
      - "127.0.0.1:8080:8080"
    networks:
      - coze_internal
    security_opt:
      - no-new-privileges:true
    read_only: true
    tmpfs:
      - /tmp
    mem_limit: 2g
    cpus: 1.5

  postgres:
    image: postgres:15
    restart: unless-stopped
    env_file:
      - .env
    volumes:
      - ./data/postgres:/var/lib/postgresql/data
    networks:
      - coze_internal
    security_opt:
      - no-new-privileges:true
    ports:
      - "127.0.0.1:5432:5432"

  redis:
    image: redis:7
    restart: unless-stopped
    command: ["redis-server", "/etc/redis/redis.conf"]
    volumes:
      - ./redis.conf:/etc/redis/redis.conf:ro
      - ./data/redis:/data
    networks:
      - coze_internal
    ports:
      - "127.0.0.1:6379:6379"

networks:
  coze_internal:
    driver: bridge

如果数据库和 Redis 只被容器内部访问,可以完全不写 ports,仅通过 Docker 内部网络访问。


四、Coze 环境变量与密钥加固

Coze 部署过程中通常会使用 .env 保存环境变量,例如数据库连接、Redis 地址、模型 API Key、JWT Secret、OAuth 配置等。该文件必须严格保护。

1. 设置 .env 文件权限

进入 Coze 部署目录:

cd /opt/coze

设置文件权限:

sudo chown cozeadmin:cozeadmin .env
chmod 600 .env

查看权限:

ls -l .env

期望输出类似:

-rw------- 1 cozeadmin cozeadmin 2048 Jan 1 10:00 .env

2. 生成高强度随机密钥

生成 JWT Secret:

openssl rand -base64 48

生成数据库密码:

openssl rand -base64 32

生成 Redis 密码:

openssl rand -hex 32

生成通用 API Secret:

openssl rand -hex 64

示例 .env

APP_ENV=production
APP_DEBUG=false

JWT_SECRET=请替换为openssl生成的随机值
SESSION_SECRET=请替换为openssl生成的随机值

POSTGRES_USER=coze_user
POSTGRES_PASSWORD=请替换为强密码
POSTGRES_DB=coze

REDIS_PASSWORD=请替换为强密码

OPENAI_API_KEY=请替换为你的模型供应商Key

3. 禁止将 .env 提交到 Git

创建或修改 .gitignore

vim .gitignore

加入:

.env
.env.*
!.env.example
data/
logs/
backup/

检查是否已经被 Git 跟踪:

git ls-files | grep ".env"

如果已经被跟踪,执行:

git rm --cached .env
git commit -m "remove env file from git tracking"

五、数据库 PostgreSQL 安全加固

如果 Coze 使用 PostgreSQL,需要重点保护数据库连接权限和账号权限。

1. 数据库仅监听本地或内网

如果 PostgreSQL 运行在宿主机,编辑配置:

sudo vim /etc/postgresql/15/main/postgresql.conf

设置:

listen_addresses = '127.0.0.1'

如果是容器环境,则不建议将 5432 暴露到公网,只允许容器内网络访问。

检查监听端口:

sudo ss -lntp | grep 5432

2. 配置 pg_hba.conf

编辑:

sudo vim /etc/postgresql/15/main/pg_hba.conf

示例配置:

local   all             postgres                                peer
local   all             all                                     scram-sha-256
host    coze            coze_user        127.0.0.1/32            scram-sha-256
host    coze            coze_user        10.0.0.0/24             scram-sha-256

重启 PostgreSQL:

sudo systemctl restart postgresql

3. 创建最小权限数据库用户

登录 PostgreSQL:

sudo -u postgres psql

执行:

CREATE DATABASE coze;
CREATE USER coze_user WITH ENCRYPTED PASSWORD '请替换为强密码';
GRANT CONNECT ON DATABASE coze TO coze_user;
\c coze
GRANT USAGE ON SCHEMA public TO coze_user;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO coze_user;
GRANT USAGE, SELECT, UPDATE ON ALL SEQUENCES IN SCHEMA public TO coze_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLES TO coze_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
GRANT USAGE, SELECT, UPDATE ON SEQUENCES TO coze_user;
\q

如果应用需要建表权限,可临时授予:

GRANT CREATE ON SCHEMA public TO coze_user;

迁移完成后可收回:

REVOKE CREATE ON SCHEMA public FROM coze_user;

4. 禁止使用 postgres 超级用户连接应用

.env 中不要写:

POSTGRES_USER=postgres

应使用专门用户:

POSTGRES_USER=coze_user
POSTGRES_PASSWORD=强密码
POSTGRES_DB=coze
POSTGRES_HOST=postgres
POSTGRES_PORT=5432

六、Redis 安全加固

Redis 常被攻击者扫描利用,尤其是未设置密码、暴露公网、允许写入持久化文件的场景。

1. Redis 不暴露公网

检查监听:

sudo ss -lntp | grep 6379

如果显示 0.0.0.0:6379,说明存在风险。

编辑 Redis 配置:

sudo vim /etc/redis/redis.conf

建议配置:

bind 127.0.0.1
protected-mode yes
port 6379
requirepass 请替换为强密码

如果是 Docker 容器中的 Redis,可使用如下 redis.conf

bind 0.0.0.0
protected-mode yes
port 6379
requirepass 请替换为强密码
appendonly yes
save 900 1
save 300 10
save 60 10000

注意:容器内 bind 0.0.0.0 可以接受 Docker 网络访问,但不要将端口映射到公网。


2. 禁用危险命令

redis.conf 中加入:

rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command SHUTDOWN ""
rename-command DEBUG ""
rename-command SAVE ""

重启 Redis:

sudo systemctl restart redis-server

Docker Compose 重启:

docker compose restart redis

测试认证:

redis-cli -a '你的Redis密码' ping

正常返回:

PONG

七、Nginx 反向代理与 HTTPS 加固

建议不要直接将 Coze 服务端口暴露公网,而是通过 Nginx 反向代理到本地端口,例如 127.0.0.1:8080

1. 安装 Nginx

sudo apt install nginx -y
sudo systemctl enable nginx
sudo systemctl start nginx

查看状态:

sudo systemctl status nginx

2. 配置反向代理

创建站点配置:

sudo vim /etc/nginx/sites-available/coze.conf

写入:

server {
    listen 80;
    server_name coze.example.com;

    client_max_body_size 50m;

    location / {
        proxy_pass http://127.0.0.1:8080;

        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header Real-IP $remote_addr;
        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;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_connect_timeout 60s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
}

启用站点:

sudo ln -s /etc/nginx/sites-available/coze.conf /etc/nginx/sites-enabled/coze.conf
sudo nginx -t
sudo systemctl reload nginx

3. 申请 Let’s Encrypt HTTPS 证书

安装 Certbot:

sudo apt install certbot python3-certbot-nginx -y

申请证书:

sudo certbot --nginx -d coze.example.com

测试自动续期:

sudo certbot renew --dry-run

查看证书定时器:

systemctl list-timers | grep certbot

4. 增强 Nginx TLS 安全配置

编辑配置:

sudo vim /etc/nginx/sites-available/coze.conf

HTTPS server 中加入:

server {
    listen 443 ssl http2;
    server_name coze.example.com;

    ssl_certificate /etc/letsencrypt/live/coze.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/coze.example.com/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers off;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:10m;
    ssl_session_tickets off;

    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header Referrer-Policy "strict-origin-when-cross-origin" always;

    client_max_body_size 50m;

    location / {
        proxy_pass http://127.0.0.1:8080;

        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header Real-IP $remote_addr;
        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 https;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_connect_timeout 60s;
        proxy_send_timeout 300s;
        proxy_read_timeout 300s;
    }
}

server {
    listen 80;
    server_name coze.example.com;
    return 301 https://$host$request_uri;
}

检查并重载:

sudo nginx -t
sudo systemctl reload nginx

八、接口访问与后台管理加固

如果 Coze 部署环境包含管理后台、API 调试页面、插件配置页面,应尽量避免暴露给公网。

1. 后台路径添加 IP 白名单

假设管理后台路径为 /admin,可在 Nginx 中限制:

location /admin {
    allow 你的办公公网IP;
    allow 10.0.0.0/8;
    deny all;

    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

重新加载:

sudo nginx -t
sudo systemctl reload nginx

2. API 限速防护

在 Nginx http 配置中加入限速区域:

sudo vim /etc/nginx/nginx.conf

http {} 中加入:

limit_req_zone $binary_remote_addr zone=coze_api_limit:10m rate=10r/s;
limit_conn_zone $binary_remote_addr zone=coze_conn_limit:10m;

在站点配置中加入:

location /api/ {
    limit_req zone=coze_api_limit burst=20 nodelay;
    limit_conn coze_conn_limit 20;

    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

重载:

sudo nginx -t
sudo systemctl reload nginx

九、Fail2ban 防暴力破解

Fail2ban 可以监控 SSH、Nginx 等日志,发现暴力破解后自动封禁 IP。

1. 安装 Fail2ban

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

2. 配置 SSH 防护

创建本地配置:

sudo vim /etc/fail2ban/jail.local

写入:

[sshd]
enabled = true
port = 22222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
findtime = 10m
bantime = 1h

如果 SSH 使用默认 22 端口,则改为:

port = 22

重启:

sudo systemctl restart fail2ban

查看状态:

sudo fail2ban-client status
sudo fail2ban-client status sshd

十、系统审计与日志加固

1. 安装 auditd

sudo apt install auditd audispd-plugins -y
sudo systemctl enable auditd
sudo systemctl start auditd

查看状态:

sudo systemctl status auditd

2. 审计关键文件

添加审计规则:

sudo vim /etc/audit/rules.d/coze.rules

写入:

-w /opt/coze/.env -p wa -k coze_env_change
-w /etc/nginx/sites-available/coze.conf -p wa -k nginx_coze_change
-w /etc/ssh/sshd_config -p wa -k ssh_config_change
-w /etc/docker/daemon.json -p wa -k docker_config_change

加载规则:

sudo augenrules --load
sudo systemctl restart auditd

查询审计日志:

sudo ausearch -k coze_env_change
sudo ausearch -k nginx_coze_change

3. Docker 日志限制

前文已经在 /etc/docker/daemon.json 配置了日志限制:

"log-opts": {
  "max-size": "100m",
  "max-file": "3"
}

也可以查看容器日志大小:

docker system df
docker logs --tail=100 coze-web

清理无用镜像、容器和网络:

docker system prune -a

注意:生产环境执行 docker system prune -a 前必须确认不会删除正在使用或后续需要回滚的镜像。


十一、备份与恢复方案

安全加固不仅是防攻击,也包括在故障或勒索攻击后可以恢复业务。

1. 创建备份目录

sudo mkdir -p /opt/backup/coze
sudo chown -R cozeadmin:cozeadmin /opt/backup/coze
chmod 700 /opt/backup/coze

2. PostgreSQL 数据库备份

如果 PostgreSQL 是容器服务:

docker exec postgres pg_dump -U coze_user -d coze > /opt/backup/coze/coze_$(date +%F_%H%M%S).sql

如果在宿主机:

PGPASSWORD='你的数据库密码' pg_dump -h 127.0.0.1 -U coze_user -d coze > /opt/backup/coze/coze_$(date +%F_%H%M%S).sql

压缩备份:

gzip /opt/backup/coze/coze_*.sql

3. 备份配置文件和上传文件

tar -czf /opt/backup/coze/coze_config_$(date +%F_%H%M%S).tar.gz \
/opt/coze/.env \
/opt/coze/docker-compose.yml \
/etc/nginx/sites-available/coze.conf

如果有知识库上传文件、对象存储数据或本地持久化目录:

tar -czf /opt/backup/coze/coze_data_$(date +%F_%H%M%S).tar.gz \
/opt/coze/data

4. 自动备份脚本

创建脚本:

vim /opt/coze/backup.sh

写入:

#!/bin/bash
set -e

BACKUP_DIR="/opt/backup/coze"
DATE=$(date +%F_%H%M%S)

mkdir -p "$BACKUP_DIR"

docker exec postgres pg_dump -U coze_user -d coze > "$BACKUP_DIR/coze_db_$DATE.sql"
gzip "$BACKUP_DIR/coze_db_$DATE.sql"

tar -czf "$BACKUP_DIR/coze_config_$DATE.tar.gz" \
/opt/coze/.env \
/opt/coze/docker-compose.yml \
/etc/nginx/sites-available/coze.conf

find "$BACKUP_DIR" -type f -mtime +14 -delete

授权:

chmod 700 /opt/coze/backup.sh

添加定时任务:

crontab -e

加入:

0 2 * * * /opt/coze/backup.sh >> /opt/backup/coze/backup.log 2>&1

5. 数据恢复示例

解压数据库备份:

gunzip coze_db_2025-01-01_020000.sql.gz

恢复数据库:

cat coze_db_2025-01-01_020000.sql | docker exec -i postgres psql -U coze_user -d coze

恢复配置文件:

tar -xzf coze_config_2025-01-01_020000.tar.gz -C /

十二、Coze 应用层安全建议

除了基础设施加固,Coze 应用本身也要注意以下问题。

1. 关闭调试模式

生产环境必须关闭 Debug:

APP_ENV=production
APP_DEBUG=false

重启服务:

docker compose down
docker compose up -d

2. 限制模型 API Key 使用范围

如果使用 OpenAI、Azure OpenAI、火山方舟、通义千问、智谱等模型供应商,应做到:

  • 不使用个人主账号 Key;
  • 为 Coze 单独创建 API Key;
  • 设置调用额度上限;
  • 定期轮换;
  • 禁止在日志中输出 Key;
  • 不在前端代码暴露 Key。

3. 插件与工具调用安全

Coze 的智能体通常会调用插件、HTTP API、企业内部接口。需要特别注意:

  1. 插件接口必须鉴权
    不要因为是内部服务就不加认证。

  2. 限制智能体可访问的 URL 范围
    防止 SSRF,让智能体请求内网敏感地址,例如 127.0.0.1、云厂商元数据地址等。

  3. 敏感操作需二次确认
    例如删除数据、发送邮件、审批流程、资金相关操作,不应完全自动执行。

  4. 工具返回数据脱敏
    不要将身份证号、手机号、密钥、内部日志原样返回给模型。


4. 知识库数据安全

如果 Coze 使用知识库能力,应注意:

  • 上传文档前进行敏感信息检查;
  • 不同部门知识库隔离;
  • 不同智能体只绑定必要知识库;
  • 对知识库文件开启访问权限控制;
  • 定期清理过期文档;
  • 对外部用户访问的智能体,不挂载内部敏感知识库。

十三、漏洞扫描与基线检查

1. 使用 Lynis 进行系统基线扫描

安装:

sudo apt install lynis -y

执行扫描:

sudo lynis audit system

查看报告:

sudo less /var/log/lynis.log
sudo less /var/log/lynis-report.dat

2. 使用 Trivy 扫描镜像漏洞

安装 Trivy:

sudo apt install wget apt-transport-https gnupg lsb-release -y
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | \
gpg --dearmor | sudo tee /usr/share/keyrings/trivy.gpg > /dev/null

echo "deb [signed-by=/usr/share/keyrings/trivy.gpg] \
https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | \
sudo tee /etc/apt/sources.list.d/trivy.list

sudo apt update
sudo apt install trivy -y

扫描镜像:

trivy image your-coze-web-image:latest

扫描文件系统:

trivy fs /opt/coze

只显示高危和严重漏洞:

trivy image --severity HIGH,CRITICAL your-coze-web-image:latest

十四、安全巡检常用命令清单

1. 查看监听端口

sudo ss -lntup

重点确认是否有以下端口暴露公网:

5432
6379
2375
9200
9000
8080

2. 查看登录记录

last
lastb

查看 SSH 失败登录:

sudo grep "Failed password" /var/log/auth.log

3. 查看系统用户

cat /etc/passwd
awk -F: '$3 == 0 {print $1}' /etc/passwd

正常情况下,UID 为 0 的用户应该只有 root


4. 查看 sudo 权限用户

getent group sudo

5. 查看 Docker 容器状态

docker ps
docker compose ps
docker stats

6. 查看 Nginx 访问日志

sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

搜索异常请求:

sudo grep -Ei "sqlmap|union select|/etc/passwd|wp-admin|phpmyadmin" /var/log/nginx/access.log

十五、上线前安全检查表

上线前建议逐项确认:

检查项 是否完成
系统补丁已更新 是 / 否
禁止 root SSH 登录 是 / 否
禁止 SSH 密码登录 是 / 否
防火墙仅开放必要端口 是 / 否
Coze 服务未直接暴露公网端口 是 / 否
PostgreSQL 未暴露公网 是 / 否
Redis 设置密码且未暴露公网 是 / 否
Docker API 未暴露 2375 是 / 否
.env 权限为 600 是 / 否
生产环境关闭 Debug 是 / 否
HTTPS 已启用 是 / 否
Nginx 已配置安全响应头 是 / 否
后台管理路径已限制访问 是 / 否
已配置 Fail2ban 是 / 否
已配置数据库定期备份 是 / 否
已测试备份恢复流程 是 / 否
已完成镜像漏洞扫描 是 / 否
模型 API Key 已设置额度限制 是 / 否

十六、总结

Coze 安全加固不能只依赖某一个配置项,而应该从服务器、网络、容器、数据库、缓存、反向代理、应用配置、插件调用、知识库权限、日志审计、备份恢复等多个层面共同完成。

对于生产环境,最核心的原则是:

  • 不要把数据库、Redis、Docker API 暴露到公网;
  • 不要使用弱密码和默认密钥;
  • 不要使用 root 或超级用户运行应用;
  • 不要在生产环境开启 Debug;
  • 不要将 API Key、Token、.env 提交到代码仓库;
  • 一定要启用 HTTPS、备份和日志审计。

如果 Coze 承载的是企业内部知识库、客服机器人、办公自动化智能体或业务流程自动化平台,那么它不仅是一个 AI 应用,更是企业数据入口和操作入口。只有在上线前做好安全基线,在上线后持续巡检和修复漏洞,才能真正降低数据泄露、接口滥用和服务被攻击的风险。

目录结构
全文