MongoDB在Linux上的安全设置怎么做
小樊
44
2025-12-24 08:48:52
MongoDB 在 Linux 上的安全设置清单
一 身份与访问控制
- 启用认证:编辑配置文件 /etc/mongod.conf,在 security 段开启授权,重启服务生效。
- 创建管理员:连接本地实例后,在 admin 库创建高权限账户(示例赋予 root 角色,生产环境可按最小权限原则细化)。
- use admin
- db.createUser({
user: “admin”,
pwd: “StrongPass!23”,
roles: [“root”]
})
- 按库分权:为业务库创建最小权限用户(示例为某库的读写权限)。
- use mydb
- db.createUser({
user: “app_rw”,
pwd: “AppPass!45”,
roles: [“readWrite”]
})
- 连接串示例:mongodb://app_rw:AppPass!45@dbhost:27017/mydb?authSource=admin。
二 网络与防火墙
- 绑定地址最小化:在 net.bindIp 仅绑定需要的内网地址,避免对公网开放;如需本机调试可临时绑定 127.0.0.1。
- net:
- bindIp: 127.0.0.1,192.168.1.10
- 防火墙限制来源 IP(示例仅放行业务网段或跳板机):
- firewalld(CentOS/RHEL 7+)
- sudo firewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=“ipv4” source address=“192.168.1.0/24” port protocol=“tcp” port=“27017” accept’
- sudo firewall-cmd --reload
- ufw(Ubuntu/Debian)
- sudo ufw allow from 192.168.1.0/24 to any port 27017
- sudo ufw enable && sudo ufw status
- 端口与监听校验:确认仅监听预期地址与端口。
- ss -lntp | grep 27017
- 远程连通性测试(应被拒绝或仅特定来源可达):nc -vz 27017
三 加密与传输安全
- 启用 TLS/SSL:生成证书(或接入企业 CA),在配置中要求加密通信并指定证书路径,重启生效。
- 生成自签名证书(示例)
- openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout mongodb-key.pem -out mongodb-cert.pem
- 配置
- net:
- ssl:
- mode: requireSSL
- PEMKeyFile: /etc/ssl/mongodb-key.pem
- CAFile: /etc/ssl/mongodb-cert.pem
- 客户端连接启用 TLS:mongo --host --port 27017 --ssl --sslCAFile /path/ca.pem
四 系统与服务加固
- 最小权限运行:使用专用系统用户(如 mongod)运行进程,目录权限最小化。
- sudo useradd -r -s /bin/false mongod
- sudo chown -R mongod:mongod /var/lib/mongodb /var/log/mongodb
- ExecStart=/usr/bin/mongod --config /etc/mongod.conf(以 systemd 服务为例)
- 关闭不必要的接口与功能:禁用 HTTP/REST/JSONP 管理接口,减少攻击面。
- net:
- http:
- RESTInterfaceEnabled: false
- JSONPEnabled: false
- 审计日志(企业版功能为主):记录关键操作,便于合规与溯源。
- security:
- auditLog:
- destination: file
- format: JSON
- path: /var/log/mongodb/audit.json
- 日志与监控:确保日志落盘、滚动与关键指标监控(连接数、慢查询、复制延迟等)。
五 备份与持续维护
- 定期备份与校验:使用 mongodump/mongorestore 做定时备份,定期恢复演练验证可用性。
- mongodump --out /backup/mongo-$(date +%F)
- mongorestore /backup/mongo-2025-08-01
- 安全更新与补丁:订阅 MongoDB 安全公告,及时升级小版本修复漏洞;对公网开放前务必完成加固与渗透测试。