安全加固指南

别让你的AI服务器变成黑客的提款机

部署不难,但别忘了安全

很多人兴冲冲地把服务跑起来了,结果端口裸奔在公网上,密码还是 123456。等到被人扫到端口、服务器被拿去挖矿,才后悔没提前做安全加固。

这篇不讲什么高深的安全理论,就是几个实打实的操作,花半小时做完,安全性提升一个量级。

常见的安全隐患

['端口直接暴露在公网,谁都能访问', '用 root 账户跑服务,出事就是灭顶之灾', 'SSH 还在用密码登录,暴力破解分分钟的事', '没开防火墙,所有端口大门敞开', 'API Key 写死在代码里,推到 GitHub 就泄露了', '从来不更新系统,已知漏洞一堆']

完整的安全加固方案

['SSH 密钥登录 + 禁用密码', 'UFW 防火墙只开必要端口', 'Fail2ban 自动封禁暴力破解 IP', 'Docker 容器安全隔离', '定期系统更新 + 自动安全补丁']

第一步:SSH 密钥登录

密码登录是最大的安全隐患之一。改用 SSH 密钥,暴力破解直接失效。

在你的本地电脑上生成密钥
# 生成 SSH 密钥对(一路回车就行)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 把公钥上传到服务器
ssh-copy-id user@your-server-ip

# 测试密钥登录
ssh user@your-server-ip
在服务器上禁用密码登录
# 编辑 SSH 配置
sudo nano /etc/ssh/sshd_config

# 修改这几行:
# PasswordAuthentication no
# PermitRootLogin no
# PubkeyAuthentication yes

# 重启 SSH 服务
sudo systemctl restart sshd

第二步:防火墙配置

UFW 是 Ubuntu 自带的防火墙工具,简单好用:

UFW 防火墙设置
# 默认拒绝所有入站
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 只开放必要端口
sudo ufw allow 22/tcp    # SSH
sudo ufw allow 80/tcp    # HTTP
sudo ufw allow 443/tcp   # HTTPS
sudo ufw allow 3000/tcp  # OpenClaw(如果需要直接访问)

# 启用防火墙
sudo ufw enable

# 查看状态
sudo ufw status verbose

第三步:Fail2ban 防暴力破解

Fail2ban 会监控登录日志,发现有人连续输错密码就自动封 IP:

安装和配置 Fail2ban
# 安装
sudo apt install -y fail2ban

# 创建本地配置(不要直接改原始配置文件)
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

# 启动并设置开机自启
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

# 查看封禁状态
sudo fail2ban-client status sshd

第四步:Docker 安全配置

容器不是天然安全的,加几个参数能堵不少漏洞:

docker-compose.yml 安全配置
services:
  openclaw:
    image: openclaw/openclaw:latest
    security_opt:
      - no-new-privileges:true
    read_only: true
    tmpfs:
      - /tmp
      - /var/tmp
    deploy:
      resources:
        limits:
          cpus: "2.0"
          memory: 2G
    environment:
      - OPENCLAW_API_KEY_FILE=/run/secrets/api_key
    secrets:
      - api_key

secrets:
  api_key:
    file: ./secrets/api_key.txt

加固流程总结

1

SSH 密钥登录

生成密钥对,上传公钥,禁用密码登录和 root 直连。

2

开启防火墙

用 UFW 关掉所有不需要的端口,只留 SSH、HTTP、HTTPS。

3

Fail2ban 防暴力

自动封禁多次登录失败的 IP,省得你天天看日志。

4

Docker 隔离

限制容器权限、资源,用 secrets 管理敏感信息。

5

定期更新

开启自动安全更新,或者至少每周手动 apt upgrade 一次。

🚨 千万不要把 API Key 硬编码在代码或 docker-compose.yml 里。用环境变量或 Docker Secrets 来管理。一旦推到 GitHub,机器人几秒钟就能扫到并盗用你的 Key。

想了解更多安全对比?看看这篇:各平台安全性对比

MOLILI 内置企业级安全方案,防火墙、密钥管理、自动更新全都预配置好了,零配置开箱即用。 了解 MOLILI →
这篇教程对你有帮助吗?