温馨提示×

centos如何加密mongodb

小樊
47
2026-09-27 01:24:50
栏目: 云计算

在 CentOS 上“加密 MongoDB”通常有三种常见场景,按安全强度和实际需求从低到高分别是:


一、MongoDB 自带传输加密(TLS/SSL)

作用: 防止数据在网络中被窃听
适用: 客户端与服务端通信加密

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

openssl req -newkey rsa:2048 -nodes -keyout mongodb.key -x509 -days 365 -out mongodb.crt
cat mongodb.key mongodb.crt > mongodb.pem

2. 配置 MongoDB

编辑 /etc/mongod.conf

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

3. 重启

systemctl restart mongod

二、MongoDB 用户认证(Access Control)

作用: 防止未授权访问数据库
适用: 所有生产环境必做

1. 启用认证

security:
  authorization: enabled

2. 创建管理员

use admin
db.createUser({
  user: "admin",
  pwd: "StrongPass!",
  roles: ["root"]
})

3. 重启并登录

mongo -u admin -p --authenticationDatabase admin

三、磁盘/数据文件加密(真正“加密 MongoDB 数据”)

作用: 防止服务器被物理拿走或磁盘被挂载后泄露数据
推荐方案:LUKS(CentOS 原生支持)

方案 A:LUKS 全盘/分区加密(推荐)

1. 安装工具

yum install cryptsetup -y

2. 加密数据盘(例如 /dev/sdb)

cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb mongo_encrypted
mkfs.xfs /dev/mapper/mongo_encrypted

3. 挂载

mkdir /data/mongo
mount /dev/mapper/mongo_encrypted /data/mongo

4. MongoDB 使用

storage:
  dbPath: /data/mongo

⚠️ 重启后需手动或脚本解锁


方案 B:MongoDB 企业版静态加密(WiredTiger Encryption)

仅 MongoDB Enterprise 支持

security:
  enableEncryption: true
  encryptionKeyFile: /path/to/keyfile

社区版不支持此功能。


四、推荐生产组合(最佳实践)

✅ CentOS + LUKS 磁盘加密
✅ MongoDB 开启认证
✅ 启用 TLS
✅ 定期备份并加密备份文件


五、常见误区

❌ “给数据库加密码 = 加密数据”
❌ “MongoDB 社区版支持文件加密”
❌ “以为 TLS 能防止磁盘泄露”


如果你愿意,可以告诉我:

  • 使用的是 MongoDB 社区版还是企业版
  • 是 云服务器还是物理机
  • 想防的是 黑客、运维、还是磁盘丢失

我可以给你一套精确到命令的方案。

0 踩