MongoDB安全设置CentOS上怎么操作
导读:CentOS 上 MongoDB 安全设置实操指南 一 基础加固 更新系统与安装 执行:sudo yum update -y 安装 MongoDB(以 6.0 为例):创建仓库文件 /etc/yum.repos.d/mongodb-or...
CentOS 上 MongoDB 安全设置实操指南
一 基础加固
- 更新系统与安装
- 执行:
sudo yum update -y - 安装 MongoDB(以 6.0 为例):创建仓库文件 /etc/yum.repos.d/mongodb-org-6.0.repo,内容如下:
安装:[mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.ascsudo yum install -y mongodb-org
- 执行:
- 目录权限与启动
- 创建数据与日志目录并修正属主:
sudo mkdir -p /var/lib/mongodb /var/log/mongodb & & sudo chown -R mongod:mongod /var/lib/mongodb /var/log/mongodb - 启动并设置开机自启:
sudo systemctl start mongod & & sudo systemctl enable mongod
- 创建数据与日志目录并修正属主:
- 启用身份验证
- 编辑 /etc/mongod.conf:
security: authorization: enabled - 重启:
sudo systemctl restart mongod
- 编辑 /etc/mongod.conf:
- 创建管理员账户
- 连接 Shell:
mongo - 执行:
use admin db.createUser({ user: "admin", pwd: "YourStrongPassword123!", roles: [{ role: "root", db: "admin" } ] } ) - 退出后使用认证连接:
mongo -u admin -p 'YourStrongPassword123!' --authenticationDatabase admin
- 连接 Shell:
- 网络访问控制
- 仅本地访问(推荐):编辑 /etc/mongod.conf
net: port: 27017 bindIp: 127.0.0.1 - 如需远程访问,仅放通必要来源 IP(示例:192.168.1.100):
net: port: 27017 bindIp: 127.0.0.1,192.168.1.100 - 重启:
sudo systemctl restart mongod
- 仅本地访问(推荐):编辑 /etc/mongod.conf
- 防火墙
- 开放端口:
sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp & & sudo firewall-cmd --reload - 进一步限制源 IP(示例:192.168.1.100):
sudo firewall-cmd --permanent --zone=public \ --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="27017" accept' sudo firewall-cmd --reload
- 开放端口:
以上步骤覆盖系统更新、安装、认证、最小暴露面与防火墙等关键安全基线。
二 加密与审计
- SSL/TLS 加密通信
- 生成证书(自签名,生产建议用 CA 签发):
sudo mkdir -p /etc/ssl/mongodb sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 \ -keyout /etc/ssl/mongodb/mongodb.key -out /etc/ssl/mongodb/mongodb.crt sudo chmod 600 /etc/ssl/mongodb/*.pem sudo cat /etc/ssl/mongodb/mongodb.key /etc/ssl/mongodb/mongodb.crt > /etc/ssl/mongodb/mongodb.pem - 配置 /etc/mongod.conf:
net: ssl: mode: requireSSL PEMKeyFile: /etc/ssl/mongodb/mongodb.pem # 如使用 CA:CAFile: /path/to/ca.crt - 重启:
sudo systemctl restart mongod
- 生成证书(自签名,生产建议用 CA 签发):
- 审计日志(合规与取证)
- 编辑 /etc/mongod.conf:
systemLog: destination: file path: /var/log/mongodb/mongod-audit.log logAppend: true # 可按需调整详细程度 verbosity: 1 - 重启:
sudo systemctl restart mongod启用传输加密与审计可显著降低数据泄露与内部滥用风险,并满足常见合规要求。
- 编辑 /etc/mongod.conf:
三 用户与权限最小化
- 按库创建最小权限用户
- 只读用户(示例库:mydatabase):
use mydatabase db.createUser({ user: "readonlyUser", pwd: "ReadOnlyPass123!", roles: [{ role: "read", db: "mydatabase" } ] } ) - 读写用户:
use mydatabase db.createUser({ user: "readwriteUser", pwd: "ReadWritePass123!", roles: [{ role: "readWrite", db: "mydatabase" } ] } )
- 只读用户(示例库:mydatabase):
- 连接示例
- 只读连接:
mongo -u readonlyUser -p 'ReadOnlyPass123!' --authenticationDatabase mydatabase mydatabase - 读写连接:
mongo -u readwriteUser -p 'ReadWritePass123!' --authenticationDatabase mydatabase mydatabase遵循最小权限原则,避免在生产环境长期使用高权限账户。
- 只读连接:
四 维护与验证
- 持续更新与补丁
- 定期执行:
sudo yum update mongodb-org -y
- 定期执行:
- 备份策略
- 示例每日备份:
mongodump --out /backup/mongodb-$(date +%F)
- 示例每日备份:
- 日志与监控
- 关注 /var/log/mongodb/mongod.log 与审计日志,排查异常登录与失败操作
- 连接验证
- 本地认证:
mongo -u admin -p 'YourStrongPassword123!' --authenticationDatabase admin - 远程加密连接示例:
mongo --host < 服务器IP> --port 27017 -u admin -p 'YourStrongPassword123!' --authenticationDatabase admin --ssl --sslCAFile /path/to/ca.crt
- 本地认证:
- SELinux(如启用)
- 视环境配置相应策略或布尔值,确保 mongod 对相关目录与端口的访问不受阻 定期更新、备份与日志审计是长期安全运营的关键环节。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: MongoDB安全设置CentOS上怎么操作
本文地址: https://pptw.com/jishu/782771.html
