温馨提示×

centos mongodb配置如何加密

小樊
36
2026-10-23 10:27:14
栏目: 云计算

在 CentOS 上配置 MongoDB 加密,通常包含以下几个方面(按安全层级从基础到进阶):


一、启用 MongoDB 认证(最基础)

1. 修改配置文件

编辑 MongoDB 配置文件(通常为 /etc/mongod.conf):

security:
  authorization: enabled

2. 创建管理员用户

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

3. 重启 MongoDB

systemctl restart mongod

之后连接需使用:

mongo -u admin -p --authenticationDatabase admin

二、网络层加密(TLS/SSL)

1. 生成证书(示例)

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

2. 配置 MongoDB 使用 TLS

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

3. 重启服务

systemctl restart mongod

客户端连接:

mongo --tls --tlsCAFile mongodb.crt

三、数据静态加密(Encryption at Rest)

方式一:MongoDB 企业版(WiredTiger 加密)

⚠️ 仅 MongoDB Enterprise 支持

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

方式二:Linux 层加密(推荐社区版)

使用 LUKS 加密磁盘或分区:

cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb mongo_encrypted
mkfs.xfs /dev/mapper/mongo_encrypted
mount /dev/mapper/mongo_encrypted /var/lib/mongo

四、字段级加密(客户端加密)

MongoDB 4.2+ 支持 Client-Side Field Level Encryption (CSFLE)
适用于敏感字段(如密码、身份证):

  • 使用 mongocryptd
  • 应用层加密字段后再写入

五、配置文件权限加固(CentOS)

chown mongod:mongod /etc/mongod.conf
chmod 600 /etc/mongod.conf

六、防火墙与绑定 IP

net:
  bindIp: 127.0.0.1,内网IP
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload

推荐安全组合(生产环境)

✅ 认证
✅ TLS
✅ LUKS 磁盘加密
✅ 防火墙限制 IP
✅ 定期备份 + 密钥分离


如果你能提供:

  • MongoDB 版本(社区 / 企业)
  • CentOS 版本
  • 是否云服务器 / 内网

我可以给你一套可直接用的配置示例。

0 踩