MongoDB的安全设置:
安全:
MongoDB的安全事件:
2017年年初:
利用SMB漏洞可以获得系统最高权限。wannacry勒索病毒。当年确实遇到过这个事情。
比特币的概念:开源软件 P2P网络 P2P形式的数字货币。交易记录公开透明。去中心化的支付系统。
任何人都可以挖掘、购买、出售和收取比特币。
MongoDB安全解决方法:
1)设置密码;
2)尽量不把数据摆放在公网,业务处理都尽量在内网执行;如果要放到公网,一定要设置好访问权限,绑定访问源IP;
3)数据进行备份;
云端数据是否加了安全锁。
1、限制登录:
1)使用另外一台虚拟机,使用mongo命令行进行测试:
正常情况下不要kill -9 mongod,使用mongo命令客户端里的关机命令。
使用mongo命令客户端里的关机命令。
mongoDB启动的时候,我们要加入bind_ip的参数:
添加启动的脚本,启动mongod
bind是绑定的外网通讯的网卡。
- #!/bin/bash
- #mongodb服务操作
- #chkconfig - 68 78
- BASEDIR="/usr/local/mongodb"
- BIN=$BASEDIR"/bin/mongod"
- DBPATH=$BASEDIR"/data"
- LOGPATH=$BASEDIR"/logs/log.txt"
- BIND_IP='127.0.0.1,192.168.17.116'
-
- #引入系统函数库
- . /etc/rc.d/init.d/functions
- #启动
- start () {
- echo -n $"Starting $prog: "
- $BIN --dbpath=$DBPATH --logpath=$LOGPATH --fork --auth --bind_ip=$BIND_IP &>>/dev/null
- RETVAL=$?
- [ $RETVAL -eq 0 ] && echo 'starting'
- }
- #关闭
- stop () {
- echo -n $"Stopping $prog: "
- $BIN --dbpath=$DBPATH --shutdown
- RETVAL=$?
- [ $RETVAL -eq 0 ] && echo 'stopd'
- }
- #重启
- restart () {
- stop
- start
- }
- #查看状态
- mongod_status () {
- status $BIN
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- restart)
- restart
- ;;
- status)
- mongod_status
- ;;
- *)
- echo "$EXE {start|stop|restart}"
- esac
在启动脚本中,我们增加了bind_ip。
然后执行 来启动mongod。
service mongod stop
service mongod start
service mongod status
使用远程登录mongod服务:
在server02的服务器上进行这个操作:
用户权限管理:
需求,设置一个超级管理员账户,对于所有库具有读写权限。
- 语法:
-
- db.createUser({user:"root",pwd:"root",roles:["root"]})
实现步骤:
1)切换admin库,进行用户创建:
在创建的过程中还出现了一些低级错误。
关闭mongod服务,重启添加权限参数并启动:
在启动脚本文件中添加--auth:
能切换数据库,但是已经没有办法查询了。
启动脚本中添加--auth。
- > use admin
- switched to db admin
- >
- > db.auth('root','root')
- 1
- >
那现在已经有用户了。
我们再远程看:
tp5shop数据库,goods表。然后表中有各种数据。
添加用户,限制用户的权限。
- > db.createUser({user:'tp5shop',pwd:'123456',roles:[{role:'read',db:'tp5shop'}]})
- Successfully added user: {
- "user" : "tp5shop",
- "roles" : [
- {
- "role" : "read",
- "db" : "tp5shop"
- }
- ]
- }
在写这条命令的时候出现了很多错误。只有平时多练习的时候才能不会出错。
有图形化界面的工作来操作的,可能是方便的。工具最后还是执行的这些语句。
但是如果想写数据,发现没有权限。