在CentOS系统上配置MongoDB的安全设置是确保数据库安全运行的重要步骤。以下是一个详细的指南,涵盖了从安装MongoDB到高级安全配置的各个方面:
首先,更新CentOS系统至最新版本,然后安装MongoDB:
sudo yum update -y
sudo yum install -y mongodb-org
创建并编辑MongoDB仓库配置文件:
sudo vi /etc/yum.repos.d/mongodb-org-4.2.repo
添加以下内容,指定MongoDB 4.2版本仓库地址:
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
保存并关闭文件。
启动MongoDB服务并设置为开机自启动:
sudo systemctl start mongod
sudo systemctl enable mongod
编辑MongoDB配置文件 /etc/mongod.conf
,在 security
部分启用授权:
security:
authorization: enabled
保存更改并重启MongoDB服务:
sudo systemctl restart mongod
使用MongoDB shell创建管理员账户:
mongo
use admin
db.createUser({
user: "admin",
pwd: "your_strong_password",
roles: [ { role: "root", db: "admin" } ]
})
开放MongoDB默认端口27017:
sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
修改MongoDB配置文件 /etc/mongod.conf
,将 bindIp
设置为 127.0.0.1
,仅允许本地连接:
net:
bindIp: 127.0.0.1
重启MongoDB服务使配置生效。
生成或获取SSL证书和私钥文件(例如,使用OpenSSL工具),然后在 /etc/mongod.conf
中配置SSL/TLS:
net:
ssl:
mode: requireSSL
PEMKeyFile: /path/to/your/ssl.pem
CAFile: /path/to/your/ca.pem
替换 /path/to/your/ssl.pem
和 /path/to/your/ca.pem
为您的证书和CA文件路径。重启MongoDB服务。
启用审计日志,记录所有数据库操作:
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
verbose: true
创建普通用户并分配角色:
mongo
use your_database
db.createUser({
user: "your_username",
pwd: "your_password",
roles: [ { role: "readWrite", db: "your_database" } ]
})
赋予普通用户权限:
use your_database
db.grantRolesToUser("your_username", [ { role: "readWrite", db: "your_database" } ])
如果您的系统使用SELinux,您可能需要创建特定的策略来允许MongoDB的正常运行。
定期检查MongoDB的官方发布页面,获取最新的安全更新和补丁,并及时应用。
通过以上步骤,您可以在CentOS上为MongoDB设置基本的安全措施,确保数据库的安全性。