2019-03-25Mongodb安全解决方案
2019-03-25 本文已影响0人
夜色001
项目初次使用mongodb时,因没有对其安全性进行周密的考虑,造成了很大的麻烦。后进行了安全加固,后续项目应该予以借鉴。
1、拒绝外网访问
物理隔绝是最安全的手段,虽然无法做到绝对的隔绝,拒绝外网访问也能在一定程度上达到要求。而且对其他的服务器也适用。
仅提供一台服务器支持外网访问,通过它作为访问其他环境的跳板。只要这台服务器不被攻破,其他的服务器就安全。
2、端口映射
启动mongodb容器时,将其映射到不同的端口。
docker启动命令如下
docker run --name mongodb -v /mnt/vdb1/mongodb0:/data/db -p 13442:27017 -d 0da05d84b1fe --auth
-p :端口映射
--auth:带权限访问
3、设置权限访问
mongodb默认情况下是不需要用户名和密码就能访问,这是极其不安全的。启动容器时加上 --auth参数即需要通过用户名和密码访问。
3.1添加mongodb用户名密码
- 进入MongoDB控制台
docker exec -it mongodb mongo admin
- 添加用户命令
db.createUser({ user: 'test', pwd: 'test123@', roles: [ { role: "readWrite", db: "admin" } ] });
3.2Springboot配置访问
spring:
data:
mongodb:
database: pdloan
host: ip地址
port: 端口
option:
min-connection-per-host: 10
max-connection-per-host: 10
username: 用户名
password: 密码
authentication-database: admin
【注意】database和authentication-database是两个不同的库,一个是访问的数据库,一个是权限库