CentOS 上 MongoDB 的安全设置清单
一 身份与访问控制
security:
authorization: enabled
use admin
db.createUser({
user: "admin",
pwd: "YourStrongP@ssw0rd!",
roles: [ { role: "root", db: "admin" } ]
})
use your_database
db.createUser({
user: "app_user",
pwd: "AppUserP@ssw0rd!",
roles: [ { role: "readWrite", db: "your_database" } ]
})
mongo -u admin -p --authenticationDatabase admin
以上步骤可有效开启认证、建立分权账户体系,避免无鉴权访问与权限滥用。
二 网络与防火墙
net:
bindIp: 127.0.0.1
net:
bindIp: 127.0.0.1,192.168.1.100
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="127.0.0.1" port port="27017" protocol="tcp" accept'
sudo firewall-cmd --reload
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
sudo chown mongod:mongod /etc/ssl/private/mongodb-key.pem /etc/ssl/certs/mongodb-cert.pem
sudo chmod 600 /etc/ssl/private/mongodb-key.pem
net:
ssl:
mode: requireSSL
PEMKeyFile: /etc/ssl/private/mongodb-key.pem
CAFile: /etc/ssl/certs/mongodb-cert.pem
sudo systemctl restart mongod
启用 TLS/SSL 可防止明文传输导致的数据泄露与中间人攻击。
四 运行环境与系统加固
sudo useradd -r -s /sbin/nologin mongodb
sudo chown -R mongodb:mongodb /var/lib/mongo /var/log/mongodb
systemLog:
destination: file
logAppend: true
path: /var/log/mongodb/mongod.log
logLevel: 2
五 运维与持续安全