温馨提示×

centos mongodb如何加密

小樊
51
2026-09-14 23:56:50
栏目: 云计算

CentOS 上为 MongoDB 做“加密”,通常可以从 以下几个层面 来实现,按安全强度和常见程度从低到高说明:


一、MongoDB 自身加密(推荐)

1️⃣ 传输加密(TLS/SSL)

防止数据在客户端和 MongoDB 之间被窃听。

步骤简述

  1. 生成证书(可用自签或 CA)
openssl req -newkey rsa:2048 -nodes -keyout mongodb.key -x509 -days 365 -out mongodb.crt
cat mongodb.key mongodb.crt > mongodb.pem
  1. 修改 MongoDB 配置(/etc/mongod.conf
net:
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb.pem
  1. 重启 MongoDB
systemctl restart mongod
  1. 客户端连接
mongo --ssl --host localhost

2️⃣ 存储加密(静态数据加密,MongoDB Enterprise 才有)

⚠️ 社区版不支持

  • 使用 encryption at rest
  • 依赖 KMIP / Vault

如果你是 社区版,请看下面“磁盘级加密”。


3️⃣ 字段级加密(Client-Side Field Level Encryption)

  • MongoDB 4.2+
  • 数据在客户端就加密,服务器看不到明文
  • 适合敏感字段(身份证、密码)

需要:

  • mongocryptd
  • 客户端驱动支持

二、CentOS 系统层加密(社区版最常用)

✅ 使用 LUKS 全盘 / 数据盘加密

适合保护 MongoDB 数据文件。

# 假设数据盘是 /dev/sdb
cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb mongo_data
mkfs.xfs /dev/mapper/mongo_data
mount /dev/mapper/mongo_data /var/lib/mongo

MongoDB 数据目录:

/var/lib/mongo

三、MongoDB 访问控制(必须做)

1️⃣ 开启认证

security:
  authorization: enabled

2️⃣ 创建管理员

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

四、综合推荐方案(CentOS + MongoDB 社区版)

最佳实践

  • ✅ 开启 authorization
  • ✅ 启用 TLS/SSL
  • ✅ 数据盘使用 LUKS 加密
  • ✅ 定期备份并加密备份文件

五、我可以继续帮你

你可以告诉我:

  1. MongoDB 版本(mongod --version
  2. 社区版还是企业版
  3. 是云服务器还是物理机
  4. 想保护“传输中”还是“存储中”数据

我可以直接给你 可复制的完整配置

0