• 企业架构LNMP学习笔记57


    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是绑定的外网通讯的网卡。

    1. #!/bin/bash
    2. #mongodb服务操作
    3. #chkconfig - 68 78
    4. BASEDIR="/usr/local/mongodb"
    5. BIN=$BASEDIR"/bin/mongod"
    6. DBPATH=$BASEDIR"/data"
    7. LOGPATH=$BASEDIR"/logs/log.txt"
    8. BIND_IP='127.0.0.1,192.168.17.116'
    9. #引入系统函数库
    10. . /etc/rc.d/init.d/functions
    11. #启动
    12. start () {
    13. echo -n $"Starting $prog: "
    14. $BIN --dbpath=$DBPATH --logpath=$LOGPATH --fork --auth --bind_ip=$BIND_IP &>>/dev/null
    15. RETVAL=$?
    16. [ $RETVAL -eq 0 ] && echo 'starting'
    17. }
    18. #关闭
    19. stop () {
    20. echo -n $"Stopping $prog: "
    21. $BIN --dbpath=$DBPATH --shutdown
    22. RETVAL=$?
    23. [ $RETVAL -eq 0 ] && echo 'stopd'
    24. }
    25. #重启
    26. restart () {
    27. stop
    28. start
    29. }
    30. #查看状态
    31. mongod_status () {
    32. status $BIN
    33. }
    34. case "$1" in
    35. start)
    36. start
    37. ;;
    38. stop)
    39. stop
    40. ;;
    41. restart)
    42. restart
    43. ;;
    44. status)
    45. mongod_status
    46. ;;
    47. *)
    48. echo "$EXE {start|stop|restart}"
    49. esac

    在启动脚本中,我们增加了bind_ip。

    然后执行 来启动mongod。

    service mongod stop

    service mongod start

    service mongod status

    使用远程登录mongod服务:

    在server02的服务器上进行这个操作:

    用户权限管理:

    需求,设置一个超级管理员账户,对于所有库具有读写权限。

    1. 语法:
    2. db.createUser({user:"root",pwd:"root",roles:["root"]})

    实现步骤:

    1)切换admin库,进行用户创建:

    在创建的过程中还出现了一些低级错误。

    关闭mongod服务,重启添加权限参数并启动:

     在启动脚本文件中添加--auth:

     能切换数据库,但是已经没有办法查询了。

    启动脚本中添加--auth。

    1. > use admin
    2. switched to db admin
    3. >
    4. > db.auth('root','root')
    5. 1
    6. >

    那现在已经有用户了。 

     

    我们再远程看:

    tp5shop数据库,goods表。然后表中有各种数据。

    添加用户,限制用户的权限。

    1. > db.createUser({user:'tp5shop',pwd:'123456',roles:[{role:'read',db:'tp5shop'}]})
    2. Successfully added user: {
    3. "user" : "tp5shop",
    4. "roles" : [
    5. {
    6. "role" : "read",
    7. "db" : "tp5shop"
    8. }
    9. ]
    10. }

    在写这条命令的时候出现了很多错误。只有平时多练习的时候才能不会出错。

    有图形化界面的工作来操作的,可能是方便的。工具最后还是执行的这些语句。

    但是如果想写数据,发现没有权限。

  • 相关阅读:
    向量化实现矩阵运算优化(一)
    轻松玩转版式设计——专业设计师揭秘的10大基本原则
    python基于PHP+MySQL婚介交友网站的设计与开发
    阿里云原生应用平台架构师田伟:应用架构的规划、治理与演进
    随机数---抽奖
    SpringSecurity,jwt oathu sso,YeZiJie
    【技术积累】Mysql中的SQL语言【技术篇】【四】
    技术分享 | Web 控件定位与常见操作
    27 - Excel 的基本公式和重要函数
    webpack使用 三 优化环境配置
  • 原文地址:https://blog.csdn.net/chang_chunhua/article/details/132939663