mongoDB安全加固 配置

不使用root运行mongodb

创建普通用户运行mongodb

useradd -M mongodb -s /bin/nologin
sudo -u mongodb -s

精确bind_ip

(不要使用0.0.0.0)

使用登录验证 (auth = true)

编辑配置文件:vim /etc/mongod.conf,注意:编辑完记得重启 MongoDB 服务

bindIp:127.0.0.1 #注释此行,表示除了本机也可以登陆

# 补充这个,表示必须使用带用户名密码的才能请求 mongodb,比如访问 admin 数据库:mongo 192.168.1.121:27017/admin -u 用户名 -p 用户密码
security:
  authorization: enabled

mongodb的端口不允许对外开放

Linux通过iptables来限制访问的IP地址等,并在生产线上关闭 MongoDB 的 HTTP 接口和 REST API来达到规避网络进口的安全问题。

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

配置基于角色的访问控制

这里需要明确的是,MongoDB的基本安全分为两种,一种是认证,一种是鉴权。其实英语会说的比较明白点: authorization, authentication。

认证是作为用户登录的一种账号密码校验,类似MySQL 的 root/password ,在大部分应用中,一旦创建一个连接(用于连接池的),那么该连接只会做一次,所以大可不必担心因为认证而带来的开销。

鉴权是在数据库中的账号拥有的权限做鉴定,类似MySQL中的privilege。

添加授权用户 具体看可以看mongodb角色管理

赞(1) 打赏
特别声明:除特殊标注,本站文章均为原创,遵循CC BY-NC 3.0,转载请注明出处。三伏磨 » mongoDB安全加固 配置

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏