sudo yum update -y
确保CentOS系统为最新版本,修复已知安全漏洞。/etc/yum.repos.d/mongodb-org-4.4.repo
(以4.4版本为例),内容如下:[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
导入MongoDB官方GPG密钥:sudo rpm -v --import https://www.mongodb.org/static/pgp/server-4.4.asc
。sudo yum install -y mongodb-org
安装最新稳定版MongoDB。sudo systemctl start mongod
,并设置开机自启动sudo systemctl enable mongod
。/etc/mongod.conf
,在security
section添加authorization: enabled
,强制要求用户认证。sudo systemctl restart mongod
使配置生效。mongo
;切换至admin
数据库:use admin
;创建具备root权限的管理员账户(替换your_strong_password
为复杂密码):db.createUser({
user: "admin",
pwd: "your_strong_password",
roles: [{ role: "root", db: "admin" }]
});
退出shell:exit
。firewalld
,执行以下命令允许27017端口(MongoDB默认端口)的TCP流量:sudo firewall-cmd --zone=public --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
若使用iptables
,可添加规则:sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
,并保存规则。/etc/mongod.conf
中的net
section,将bindIp
设置为127.0.0.1
(仅本地访问)或添加特定IP(如192.168.1.100
,允许某台服务器访问):net:
bindIp: 127.0.0.1,192.168.1.100 # 多个IP用逗号分隔
port: 27017
重启MongoDB服务:sudo systemctl restart mongod
。sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 \
-keyout /etc/ssl/private/mongodb-key.pem \
-out /etc/ssl/certs/mongodb-cert.pem
将私钥和证书合并为PEM格式(可选):cat /etc/ssl/private/mongodb-key.pem /etc/ssl/certs/mongodb-cert.pem > /etc/ssl/mongodb.pem
/etc/mongod.conf
中的net.ssl
section:net:
ssl:
mode: requireSSL # 强制使用SSL
PEMKeyFile: /etc/ssl/mongodb.pem # 证书路径
# CAFile: /etc/ssl/ca.pem # 若使用CA签发证书,需指定CA路径
重启MongoDB服务:sudo systemctl restart mongod
。mydatabase
数据库创建只读用户:mongo -u admin -p your_strong_password --authenticationDatabase admin
在shell中执行:use mydatabase
db.createUser({
user: "readonlyuser",
pwd: "readonlypassword",
roles: [{ role: "read", db: "mydatabase" }]
});
退出shell:exit
。/etc/mongod.conf
中的auditLog
section,开启日志记录:auditLog:
destination: file # 日志输出到文件
path: /var/log/mongodb/audit.log # 日志路径
format: JSON # 日志格式(JSON或BSON)
filter: '{}' # 过滤条件(可选,如仅记录敏感操作)
重启MongoDB服务:sudo systemctl restart mongod
。sudo yum update mongodb-org
更新到最新版本,修复安全漏洞。mongodump
工具定期备份数据库,存储至安全位置。/var/log/mongodb/mongod.log
(主日志)和审计日志(若有启用),及时发现异常操作。通过以上步骤,可全面强化CentOS上MongoDB的安全性,覆盖身份认证、访问控制、加密通信等关键环节。根据实际业务需求,可进一步调整权限策略或启用高级功能(如复制集、分片)。