Ubuntu MongoDB安全配置怎么做
导读:Ubuntu MongoDB安全配置指南 1. 安装MongoDB 首先更新系统软件包并安装MongoDB官方仓库及软件包: # 更新系统 sudo apt-get update # 导入MongoDB公钥 wget -qO - https...
Ubuntu MongoDB安全配置指南
1. 安装MongoDB
首先更新系统软件包并安装MongoDB官方仓库及软件包:
# 更新系统
sudo apt-get update
# 导入MongoDB公钥
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
# 创建MongoDB源列表文件(以Ubuntu 22.04为例,若使用其他版本请替换为对应代号如focal)
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# 更新本地包索引
sudo apt-get update
# 安装MongoDB(选择最新稳定版,如6.0)
sudo apt-get install -y mongodb-org
2. 配置基础安全参数
编辑MongoDB主配置文件/etc/mongod.conf
,修改以下关键参数:
# 启用身份验证(强制所有连接提供用户名和密码)
security:
authorization: enabled
# 限制网络访问(仅允许本机IP访问,若需远程访问需添加特定IP)
net:
bindIp: 127.0.0.1
port: 27017 # 默认端口,可根据需求修改
保存后重启MongoDB服务使配置生效:
sudo systemctl restart mongod
# 设置开机自启
sudo systemctl enable mongod
3. 创建管理员用户
连接到MongoDB Shell(默认本地访问无需密码):
mongo
切换到admin
数据库(管理员账户需存放在该数据库):
use admin
创建管理员用户(赋予root
角色,拥有最高权限):
db.createUser({
user: "adminUser",
pwd: "YourStrongPassword123!", # 使用强密码(包含大小写字母、数字、特殊字符)
roles: [ {
role: "root", db: "admin" }
]
}
)
退出Shell:
exit
4. 创建数据库用户并分配最小权限
为特定数据库创建专用用户(避免使用管理员账户访问非必要数据库):
mongo -u adminUser -p YourStrongPassword123 --authenticationDatabase admin
切换到目标数据库(如mydb
):
use mydb
创建用户并赋予readWrite
角色(仅允许读写该数据库):
db.createUser({
user: "mydbUser",
pwd: "MyDbStrongPassword456!",
roles: [ {
role: "readWrite", db: "mydb" }
]
}
)
退出Shell:
exit
5. 启用TLS/SSL加密(可选但强烈推荐)
5.1 获取SSL证书
可通过以下方式获取证书:
- 自签名证书(仅测试环境使用):
sudo apt-get install -y openssl sudo mkdir -p /etc/ssl/mongodb sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/ssl/mongodb/mongodb.key \ -out /etc/ssl/mongodb/mongodb.crt sudo chmod 400 /etc/ssl/mongodb/mongodb.key
- CA签发证书(生产环境必用):联系CA机构获取
PEMKeyFile
(服务器证书)和CAFile
(CA根证书)。
5.2 配置MongoDB使用SSL
编辑/etc/mongod.conf
,添加以下参数:
net:
ssl:
mode: requireSSL # 强制使用SSL
PEMKeyFile: /etc/ssl/mongodb/mongodb.crt # 服务器证书路径
CAFile: /etc/ssl/mongodb/mongodb.crt # CA根证书路径(自签名时与服务器证书相同)
重启MongoDB服务:
sudo systemctl restart mongod
6. 配置访问控制(防火墙)
使用ufw
限制访问MongoDB端口(默认27017):
# 允许本机访问
sudo ufw allow from 127.0.0.1 to any port 27017
# 若需允许特定IP访问(如192.168.1.100),添加规则:
sudo ufw allow from 192.168.1.100 to any port 27017
# 启用防火墙
sudo ufw enable
# 查看规则
sudo ufw status
7. 启用审计日志(可选但推荐)
编辑/etc/mongod.conf
,添加以下参数记录用户操作:
systemLog:
destination: file
path: /var/log/mongodb/mongod_audit.log # 审计日志路径
logAppend: true
auditLog:
destination: file
format: JSON
path: /var/log/mongodb/mongod_audit.json
filter: '{
}
' # 可选:过滤特定操作(如仅记录删除操作)
重启MongoDB服务:
sudo systemctl restart mongod
# 设置日志文件权限(仅mongod用户可写)
sudo chown mongodb:mongodb /var/log/mongodb/mongod_audit.*
sudo chmod 640 /var/log/mongodb/mongod_audit.*
8. 定期维护与监控
- 更新MongoDB:定期检查并安装安全更新:
sudo apt-get update sudo apt-get upgrade mongodb-org
- 备份数据:使用
mongodump
定期备份数据(如每日凌晨):sudo mkdir -p /backup/mongodb sudo mongodump --out /backup/mongodb/$(date +%F)
- 监控异常:使用
mongostat
或第三方工具(如Prometheus+Granafa)监控数据库性能及异常操作。
通过以上步骤,可显著提升Ubuntu环境下MongoDB的安全性,防范未授权访问、数据泄露等风险。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu MongoDB安全配置怎么做
本文地址: https://pptw.com/jishu/720579.html