sudo yum update -y确保CentOS系统为最新版本,修复已知安全漏洞。sudo vi /etc/yum.repos.d/mongodb-org-4.2.repo,添加以下内容:[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
sudo yum install -y mongodb-org。/etc/mongod.conf,在security section添加:security:
authorization: enabled
sudo systemctl restart mongod。your_strong_password为强密码):mongo
use admin
db.createUser({
user: "admin",
pwd: "your_strong_password",
roles: [{ role: "root", db: "admin" }]
})
之后需通过mongo -u admin -p --authenticationDatabase "admin"认证后操作。/etc/mongod.conf中的net.bindIp,仅允许本地或特定IP访问(如127.0.0.1为本机,192.168.1.100为服务器IP):net:
bindIp: 127.0.0.1,192.168.1.100 # 根据需求调整
port: 27017
firewalld开放MongoDB默认端口(27017):sudo firewall-cmd --permanent --zone=public --add-port=27017/tcp
sudo firewall-cmd --reload
若使用iptables,可运行:sudo iptables -A INPUT -p tcp --dport 27017 -j ACCEPT并保存规则。sudo mkdir -p /etc/ssl/mongodb
sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 \
-keyout /etc/ssl/mongodb/mongodb-key.pem \
-out /etc/ssl/mongodb/mongodb-cert.pem
sudo chmod 600 /etc/ssl/mongodb/*.pem
/etc/mongod.conf中的net.ssl section:net:
ssl:
mode: requireSSL # 强制使用SSL
PEMKeyFile: /etc/ssl/mongodb/mongodb-cert.pem
# 若使用CA签发证书,需添加CAFile路径
# CAFile: /etc/ssl/mongodb/ca.pem
sudo systemctl restart mongod。mydatabase数据库创建只读用户(替换readonlypassword为强密码):use mydatabase
db.createUser({
user: "readonlyuser",
pwd: "readonlypassword",
roles: [{ role: "read", db: "mydatabase" }]
})
readWrite用于读写、dbAdmin用于数据库管理),避免过度授权。/etc/mongod.conf,在systemLog section添加审计日志配置:systemLog:
destination: file
path: /var/log/mongodb/mongod-audit.log
logAppend: true
verbosity: 1 # 日志详细程度(0-5,1为基本审计)
sudo systemctl restart mongod,审计日志将记录所有数据库操作(如查询、插入、删除)。sudo yum update mongodb-org升级到最新版本,修复安全漏洞。mongodump定期备份数据库(如每日备份),存储到安全位置:mongodump --out /backup/mongodb-$(date +%F)
/var/log/mongodb/mongod.log和审计日志,及时发现异常行为(如频繁的失败登录尝试)。通过以上步骤,可显著提升CentOS上MongoDB的安全性,覆盖身份认证、访问控制、加密通信、权限管理等核心安全需求。根据实际环境(如是否允许远程访问、是否需要高可用性),可进一步调整配置(如配置复制集、调整SSL证书路径)。