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"
}
]
}
在写这条命令的时候出现了很多错误。只有平时多练习的时候才能不会出错。
有图形化界面的工作来操作的,可能是方便的。工具最后还是执行的这些语句。
但是如果想写数据,发现没有权限。