温馨提示×

Debian MongoDB网络设置需要注意什么

小樊
37
2025-12-17 04:46:46
栏目: 云计算

Debian 上部署 MongoDB 的网络设置要点

一 基础网络与端口

  • 配置文件位置为 /etc/mongod.conf,网络相关在 net 段落:默认监听 127.0.0.1:27017。需要远程访问时,将 net.bindIp 改为服务器内网地址(如 192.168.1.10)或按需设置多个地址;如确需全网监听才使用 0.0.0.0(风险更高)。如需变更端口,设置 net.port(默认 27017)。修改后执行:sudo systemctl restart mongod 使配置生效。

二 访问控制与安全加固

  • 启用身份验证:在 /etc/mongod.confsecurity 段开启 authorization: enabled,并创建管理员与业务用户(如 use admindb.createUser(...)),避免空口令与匿名访问。
  • 最小暴露原则:优先仅监听内网 bindIp,或用 ufw/iptables 仅放行受信任网段(示例:sudo ufw allow from 192.168.1.0/24 to any port 27017sudo iptables -A INPUT -p tcp --dport 27017 -s 192.168.1.0/24 -j ACCEPT)。
  • 加密传输:启用 TLS/SSLnet.ssl.mode: requireSSL,配置 PEMKeyFile/CAFile),防止明文数据被窃听。
  • 关闭旧接口与功能:在 net 段将 http.enabled: false、rest.enabled: false、jsonp.enabled: false,减少攻击面。
  • 审计与监控:开启 auditLog(记录关键操作)、保留 /var/log/mongodb/mongod.log,并定期更新 MongoDB 与 Debian 修复漏洞。

三 连接字符串与驱动

  • 标准格式:mongodb://<user>:<password>@<server_ip>:<port>/<db>?authSource=admin。示例:mongodb://myUser:myPass@192.168.1.100:27017/myDB?authSource=admin。如使用 TLS,追加参数:?tls=true&tlsCAFile=/path/ca.pem
  • 驱动与兼容性:确保应用驱动版本与服务器版本匹配;变更网络参数或证书后,先在测试环境验证再上线。

四 常见问题排查清单

  • 服务状态:sudo systemctl status mongod(未运行则 sudo systemctl start mongod)。
  • 监听与绑定:ss -lntp | grep 27017netstat -tulpen | grep 27017 检查是否监听正确 IP:端口;核对 /etc/mongod.confbindIp/port
  • 防火墙与云安全组:确认 ufw/iptables 规则放行 27017/TCP,以及云厂商安全组仅允许可信来源。
  • 连通性测试:telnet <server_ip> 27017nc -vz <server_ip> 27017;应用端开启日志,核对连接串、用户名、密码、认证库(常见为 authSource=admin)。
  • 日志定位:tail -f /var/log/mongodb/mongod.log 查看启动报错、认证失败、绑定失败等信息。

五 推荐的简化配置示例

# /etc/mongod.conf 片段
net:
  port: 27017
  bindIp: 127.0.0.1,192.168.1.10   # 仅本地与内网
  ssl:
    mode: requireSSL
    PEMKeyFile: /etc/ssl/mongodb.pem
    CAFile: /etc/ssl/ca.pem
security:
  authorization: enabled
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log
  logAppend: true
storage:
  dbPath: /var/lib/mongodb
# 可选:审计
# security:
#   auditLog:
#     destination: file
#     format: JSON
#     path: /var/log/mongodb/audit.log
  • 防火墙示例:sudo ufw allow from 192.168.1.0/24 to any port 27017;变更后 sudo systemctl restart mongod 并复核监听与连通性。

0