首页主机资讯Ubuntu MongoDB安全配置怎么做

Ubuntu MongoDB安全配置怎么做

时间2025-10-04 21:35:04发布访客分类主机资讯浏览1189
导读: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
MongoDB配置Ubuntu要注意哪些 Ubuntu如何配置MongoDB内存

游客 回复需填写必要信息