Skip to main content

安全配置

安装配置

  • authorization - 认证
  • authentication - 权鉴

基本安全配置

  • 指定专用用户(mongodb nologin)

  • 关闭外网访问,绑定局域网的IP,完全屏蔽外网

  • 配置防火墙

    • 对端口进行ip限制访问

    • iptables -A INPUT -s <ip-address> -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
      iptables -A OUTPUT -d <ip-address> -p tcp --``source``-port 27017 -m state --state ESTABLISHED -j ACCEPT
  • 配置账号密码,对数据库进行访问限制

  • 修改默认端口为非 27019

  • 给数据添加验证层

    • 在项目启动时 cli 加上 --auth参数
    • 配置文件 security.authorization: enabled
    • MongoDB还可以使用外部系统进行认证,比如LADP等
  • 数据库内严格对各个角色权限进行访问控制

  • 开启 TSL 双向认证连接

    • 打开MongoDB 的TLS/SSl 的配置,社区版需要下载一个SSL版本,或者可以从社区版通过升级步骤升级到SSl版本,企业版自带SSL。SSL 可以保证MongoDB的 所有连接(输入和输出的连接)都是加密的。

历史安全隐患

  • 2.6 - 3.4版本中,默认配置的访问ip是 0.0.0.0 既不做任何限制

指定专用用户

  • centos
groupadd mongodb
useradd -r -g mongodb -s /sbin/nologin -M mongodb
  • mongodb内
  • roles
    • role - 该账号所拥有的最大权限
    • db - 该用户所属数据库
# 创建一个账号
# 该账号是一个管理员 role
# 该账号
db.createUser({user:'username',pwd:'passowrd',roles:[{role:'root',db:'admin'}]})

指定专用IP

常用到的局域网ip段

10.0.0.010.255.255.255
172.16.0.0172.31.255.255
192.168.0.0192.168.255.255

最常用的局域网网段就是192.168.0.0到192.168.255.255,能保证局域网的访问