温馨提示×

ubuntu mongodb怎样加密

小樊
43
2026-10-28 19:21:03
栏目: 云计算

在 Ubuntu 上部署 MongoDB 时,“加密”通常分为三种场景,你可以根据实际需求选择:


一、传输加密(客户端 ↔ MongoDB 通信加密)

防止数据在网络中被窃听

1. 生成证书(自签或 CA)

sudo openssl req -newkey rsa:2048 -nodes -keyout mongodb.key -out mongodb.csr
sudo openssl x509 -req -in mongodb.csr -signkey mongodb.key -out mongodb.crt
sudo cat mongodb.key mongodb.crt > mongodb.pem
sudo mv mongodb.pem /etc/ssl/

2. 修改 MongoDB 配置

编辑 /etc/mongod.conf:

net:
  port: 27017
  tls:
    mode: requireTLS
    certificateKeyFile: /etc/ssl/mongodb.pem

3. 重启服务

sudo systemctl restart mongod

客户端连接:

mongosh --tls --host localhost

二、静态数据加密(磁盘 / 数据文件加密)

防止服务器被盗后数据泄露

方案 1:MongoDB 企业版(WiredTiger 加密)

仅 MongoDB Enterprise 支持

storage:
  wiredTiger:
    engineConfig:
      encryption:
        name: aes256
        keyFile: /path/to/keyfile

方案 2(推荐):Ubuntu 磁盘加密(LUKS)

适合社区版用户

sudo apt install cryptsetup

对数据盘加密后挂载到:

/var/lib/mongodb

三、字段级加密(应用层加密)

最安全,数据库管理员也看不到明文

使用 MongoDB 客户端字段级加密(CSFLE)

  • 支持 社区版 + 驱动层
  • 加密在应用代码中完成

示例(Node.js):

const client = new MongoClient(uri, {
  autoEncryption: {
    keyVaultNamespace: "encryption.__keyVault",
    kmsProviders: { local: { key: localKey } }
  }
});

四、用户与权限安全(基础但重要)

use admin
db.createUser({
  user: "admin",
  pwd: "强密码",
  roles: ["root"]
})

/etc/mongod.conf:

security:
  authorization: enabled

推荐组合(最佳实践)

✅ Ubuntu LUKS 磁盘加密
✅ MongoDB TLS 传输加密
✅ 开启鉴权
✅ 敏感字段使用 CSFLE


如果你能告诉我:

  • 用的是 MongoDB 社区版还是企业版
  • 是 云服务器 / 本地 / Docker
  • 主要关注 合规 / 防泄露 / 防嗅探

我可以给你一套更精确的配置方案。

0 踩