ubuntu

Ubuntu MongoDB网络配置需要注意什么

小樊
46
2025-10-01 23:36:43
栏目: 云计算

1. 谨慎配置bindIp参数
bindIp参数决定了MongoDB监听的网络接口,直接影响可访问的IP范围。默认情况下,Ubuntu上的MongoDB绑定到127.0.0.1(仅本地访问),若需远程访问,需修改为特定IP或0.0.0.0(允许所有IP)。强烈建议避免直接使用0.0.0.0,优先绑定服务器的局域网IP(如192.168.1.100)或公网IP(若需远程访问),以限制访问来源。修改配置文件(/etc/mongod.conf)后,需重启MongoDB服务(sudo systemctl restart mongod)使更改生效。

2. 强制启用身份验证
默认情况下,MongoDB未启用认证,任何能连接到服务器的用户均可访问数据库,存在极大安全风险。需在配置文件的security部分启用authorization:

security:
  authorization: enabled

启用后,需创建管理员用户(如使用mongo shell执行db.createUser({ user: "admin", pwd: "strongpassword", roles: ["root"] })),后续连接需提供用户名和密码。

3. 配置防火墙限制访问
即使绑定了特定IP,仍需通过防火墙进一步限制MongoDB端口(默认27017)的访问。使用Ubuntu默认的ufw防火墙,可执行以下命令:

sudo ufw allow from <trusted-ip> to any port 27017/tcp  # 仅允许指定IP访问
sudo ufw enable  # 启用防火墙

若使用iptables,可添加规则:sudo iptables -A INPUT -p tcp --dport 27017 -s <trusted-ip> -j ACCEPT,并持久化规则(sudo netfilter-persistent save)。

4. 限制bindIp到必要IP
避免将bindIp设置为0.0.0.0(允许所有IP连接),除非是测试环境。生产环境中,应仅绑定服务器本地IP(127.0.0.1)和需要访问的局域网/公网IP(如192.168.1.100,10.0.0.5),减少潜在的攻击面。

5. 使用SSL/TLS加密通信
默认情况下,MongoDB的通信是明文的,易被窃听或篡改。建议启用SSL/TLS加密,配置net.ssl部分:

net:
  ssl:
    mode: requireSSL  # 强制使用SSL
    sslPEMKeyFile: /etc/ssl/mongodb.pem  # 证书文件路径(包含私钥和公钥)
    sslCAFile: /etc/ssl/ca.pem  # CA证书路径(验证客户端证书,可选)

需提前生成或获取有效的SSL证书(可使用Let’s Encrypt免费获取),并重启MongoDB服务。

6. 定期监控与审计
启用MongoDB的审计日志功能,记录所有数据库操作(如查询、插入、删除),便于追踪异常行为。配置systemLog部分:

systemLog:
  destination: file
  format: JSON
  path: /var/log/mongodb/audit.json

定期检查审计日志(如使用tail -f /var/log/mongodb/audit.json),及时发现可疑操作。

7. 保持MongoDB版本更新
及时更新MongoDB到最新稳定版,修复已知的安全漏洞(如CVE漏洞)。Ubuntu系统可通过sudo apt update && sudo apt upgrade mongodb命令更新,确保系统包管理器中的MongoDB版本是最新的。

0
看了该问题的人还看了