安亿程序开发

Debian如何加固MongoDB

2 次浏览
# 云计算 # debian

下面给你一套在 Debian 上加固 MongoDB 的实用清单,从安装、权限、网络、配置到审计,适合生产环境。默认假设你使用的是 MongoDB 6.x / 7.x(官方 APT 仓库),如果你用的是 Debian 自带版本(通常较旧),建议优先使用官方源。 一、安装阶段(基础安全) 1. 使用官方 MongoDB 仓库(推荐) Debian 自带版本往往较旧,缺少安全更新。 # 示例:De

下面给你一套在 Debian 上加固 MongoDB 的实用清单,从安装、权限、网络、配置到审计,适合生产环境。默认假设你使用的是 MongoDB 6.x / 7.x(官方 APT 仓库),如果你用的是 Debian 自带版本(通常较旧),建议优先使用官方源。


一、安装阶段(基础安全)

1. 使用官方 MongoDB 仓库(推荐)

Debian 自带版本往往较旧,缺少安全更新。

# 示例:Debian 12 (bookworm)
curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \
  gpg --dearmor -o /usr/share/keyrings/mongodb-server-7.0.gpg

echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] \
https://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" \
| tee /etc/apt/sources.list.d/mongodb-org-7.0.list

apt update
apt install -y mongodb-org

二、启用认证(最关键)

2. 启用访问控制

编辑配置文件:

nano /etc/mongod.conf

启用:

security:
  authorization: enabled

重启:

systemctl restart mongod

3. 创建管理员用户

先以本地方式连接:

mongosh
use admin
db.createUser({
  user: "admin",
  pwd: "StrongPassword",
  roles: [ { role: "root", db: "admin" } ]
})

退出后重新登录:

mongosh -u admin -p --authenticationDatabase admin

不要使用默认空密码


三、网络与端口加固

4. 绑定本地或内网 IP(禁止公网)

net:
  bindIp: 127.0.0.1
  port: 27017

如果是集群或内网访问:

bindIp: 127.0.0.1,10.0.0.5

绝对不要 bindIp: 0.0.0.0


5. 修改默认端口(可选)

net:
  port: 27018

四、防火墙与访问控制

6. 使用 nftables / ufw

只允许应用服务器访问:

ufw allow from 10.0.0.0/8 to any port 27017
ufw enable

或 nftables:

nft add rule inet filter input tcp dport 27017 ip saddr 10.0.0.0/8 accept

五、数据库级权限控制(最小权限)

7. 按应用创建用户

不要所有应用都用 admin

use appdb
db.createUser({
  user: "appuser",
  pwd: "AppStrongPass",
  roles: [ { role: "readWrite", db: "appdb" } ]
})

✅ 避免:

  • root
  • dbOwner 除非必要

六、加密与传输安全

8. 启用 TLS/SSL(强烈建议)

生成证书后:

net:
  tls:
    mode: requireTLS
    certificateKeyFile: /etc/ssl/mongo/mongo.pem
    CAFile: /etc/ssl/mongo/ca.pem

客户端连接:

mongosh --tls --tlsCAFile ca.pem

9. 静止数据加密(企业版 / 自加密)

  • MongoDB Enterprise:WiredTiger 加密
  • 社区版:
    • LUKS / dm-crypt
    • 应用层加密(敏感字段)

七、系统级加固

10. 以非 root 用户运行

Debian 官方包默认已使用 mongodb 用户,确认:

ps aux | grep mongod

11. 限制文件系统权限

chown -R mongodb:mongodb /var/lib/mongodb
chmod 700 /var/lib/mongodb

12. 关闭不必要的接口

禁用 HTTP 接口(新版默认关闭):

net:
  http:
    enabled: false

八、审计与日志

13. 启用审计日志(企业版)

社区版替代方案:

  • 启用普通日志
  • 使用 rsyslog / journald
  • 接入 ELK / SIEM
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true

九、备份与恢复安全

14. 备份加密与权限控制

mongodump --authenticationDatabase admin -u admin -p
  • 备份文件加密
  • 限制备份目录权限
  • 定期恢复演练

十、定期维护

15. 安全更新

apt update && apt upgrade mongodb-org

16. 关注安全公告

  • https://www.mongodb.com/security
  • Debian security tracker

快速检查清单 ✅

项目 状态
启用认证
非公网绑定
防火墙限制
最小权限用户
TLS 启用
日志开启
定期更新

如果你愿意,我可以:

  • ✅ 给你一份 生产级 mongod.conf 模板
  • ✅ 针对 Debian 11 / 12 做定制加固
  • ✅ 评估你当前配置是否安全(贴配置即可)

直接告诉我你的使用场景(单机 / 副本集 / 公网 / 内网)。