ubuntu

Ubuntu MongoDB安全配置怎么做

小樊
49
2025-09-29 19:31:52
栏目: 云计算

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证书

可通过以下方式获取证书:

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. 定期维护与监控

通过以上步骤,可显著提升Ubuntu环境下MongoDB的安全性,防范未授权访问、数据泄露等风险。

0
看了该问题的人还看了