当前位置: 首页 > news >正文

企业为什么要建站台呢阿里虚拟机建设网站

企业为什么要建站台呢,阿里虚拟机建设网站,深圳网站建站推广,中国企业网地址上周写了个简短的新闻《MongoDB裸奔#xff0c;2亿国人求职简历泄漏#xff01;》#xff1a; 根据安全站点HackenProof的报告#xff0c;由于MongoDB数据库没有采取任何安全保护措施#xff0c;导致共计202,730,434份国人求职简历泄漏。然后很多人评论说MongoDB躺枪了。 … 上周写了个简短的新闻《MongoDB裸奔2亿国人求职简历泄漏》 根据安全站点HackenProof的报告由于MongoDB数据库没有采取任何安全保护措施导致共计202,730,434份国人求职简历泄漏。 然后很多人评论说MongoDB躺枪了。 MongoDB确实躺枪了因为这事的责任当然不在数据库而在于使用数据库的人没有做必要的安全配置。 那么我们应该如何保证MongoDB的安全性下面我将介绍保护MongoDB的3个简单的方法 绑定局域网IP杜绝互联网访问配置防火墙保护27017端口配置账号密码对数据库进行访问控制本教程所使用的系统配置如下 Ubuntu 16.04mongodb 4.0.5Ubuntu 16.04安装MongoDB 参考MongoDB文档Install MongoDB Community Edition on Ubuntu sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4 echo deb [ archamd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list sudo apt-get update sudo apt-get install -y mongodb-org4.0.5 mongodb-org-server4.0.5 mongodb-org-shell4.0.5 mongodb-org-mongos4.0.5 mongodb-org-tools4.0.5 sudo service mongod start 1. 绑定局域网IP杜绝互联网访问 话说MongoDB被黑了这么多年自身确实有一定的责任。版本3.6之前MongoDB默认绑定的居然是0.0.0.0这就意味着我们可以通过互联网访问MongoDB那黑客当然也可以。这样的默认配置是一个很大的安全漏洞很多MongoDB初学者都栽在这一点。关于这个问题MongoDB的文档说得很委婉 Default Bind to LocalhostStarting with MongoDB 3.6, MongoDB binaries, mongod and mongos, bind to localhost by default. From MongoDB versions 2.6 to 3.4, only the binaries from the official MongoDB RPM (Red Hat, CentOS, Fedora Linux, and derivatives) and DEB (Debian, Ubuntu, and derivatives) packages would bind to localhost by default. 也就是说从3.6开始MongoDB默认绑定localhost这就意味着我们只能在本机访问MongoDB。至于2.6到3.4只有从MongoDB RPM与DEB下载的安装包才默认绑定localhost换句话说其他方式下载的安装包则默认绑定0.0.0.0。因此如果你使用的MongoDB是3.6之前的版本就要特别注意这一点了。 在开发环境下MongoDB绑定localhost没毛病。但是在生产环境下我们通常会有多个节点这时需要修改MongoDB绑定的IP通过配置net.bindIp可以实现。 如果为了省事直接把net.bindIp配置为0.0.0.0那就不太妙了。正确的做法应该是绑定局域网IP这样只有局域网内的节点可以访问MongoDB。除非黑客端掉了你的服务器否则他是没法访问你的MongoDB的。 哪些IP是局域网的呢按照标准有下面这些网段 10.0.0.0 – 10.255.255.255172.16.0.0 – 172.31.255.255192.168.0.0 – 192.168.255.255最常用的局域网网段就是192.168.0.0到192.168.255.255了。 修改MongoDB的配置文件 vim /etc/mongod.conf 将net.bindIp设为局域网IP地址192.168.59.99 net:port: 27017bindIp: 192.168.59.99 重启MongoDB sudo service mongod restart 2. 配置防火墙保护27017端口 MongoDB默认使用的是27017端口我们应该配置本地防火墙把这个端口保护起来禁止外部IP访问。 在MongoDB绑定0.0.0.0且没有配置防火墙的情况下使用nmap命令远程扫描27017端口结果如下 nmap -p 27017 113.207.35.149Starting Nmap 6.49BETA3 ( https://nmap.org ) at 2019-01-19 14:17 CST Nmap scan report for 113.207.35.149 Host is up (0.042s latency). PORT STATE SERVICE 27017/tcp open mongodNmap done: 1 IP address (1 host up) scanned in 14.34 seconds 可知27017端口是open的这就意味着我们可以远程访问MongoDB数据库。 配置UFW防火墙 Ubuntu上默认的防火墙软件是UFW配置起来非常简单。默认情况下ufw并没有激活 sudo ufw status Status: inactive 执行以下命令即可配置ufw规则并启动防火墙 sudo ufw default deny incoming // 默认禁止访问本机所有端口 sudo ufw default allow outgoing // 允许本机访问外部网络 sudo ufw allow 22/tcp // 允许SSH登陆 sudo ufw allow from 192.168.59.100 to any port 27017 // 仅允许局域网内IP为192.168.59.100的服务器访问mongodb sudo ufw enable 我所配置的规则也非常容易理解根据命令就能看出来。这时再查看ufw的状态可以发现防火墙已经激活了 sudo ufw status Status: activeTo Action From -- ------ ---- 22/tcp ALLOW Anywhere 80/tcp ALLOW Anywhere 443/tcp ALLOW Anywhere 27017 ALLOW 192.168.59.100 22/tcp (v6) ALLOW Anywhere (v6) 这时再使用nmap命令远程扫描27017端口结果如下 nmap -p 27017 113.207.35.149Starting Nmap 6.49BETA3 ( https://nmap.org ) at 2019-01-19 14:40 CST Nmap scan report for 113.207.35.149 Host is up (0.053s latency). PORT STATE SERVICE 27017/tcp filtered mongodNmap done: 1 IP address (1 host up) scanned in 13.68 seconds 可知27017端口的状态为filtered已经被防火墙保护起来了更加安全。 Linux上常用的防火墙工具还有iptables这里就不再赘述了。 另外云服务器都支持配置防火墙也有必要配置一下它们与本机的防火墙是独立的可以共同来保证数据库的安全。 3. 配置账号密码对数据库进行访问控制 默认情况下MongoDB并没有配置账号和密码黑客只要登陆你的服务器之后可以直接查看数据库。给MongoDB配置账号密码可以有效解决这个问题。 连接mongodb mongo 配置账号密码 账号为myUserAdmin密码为abc123。 use admin db.createUser({user: myUserAdmin,pwd: abc123,roles: [ { role: userAdminAnyDatabase, db: admin }, readWriteAnyDatabase ]} ) 修改MongoDB的配置文件 vim /etc/mongod.conf 将security.authorization设为enabled security:authorization: enabled 重启MongoDB sudo service mongod restart 连接mongodb 再次连接mongodb时则需要指定账号与密码。 mongo -u myUserAdmin -p abc123 --authenticationDatabase admin 如果不提供账号密码则无法查看数据库会出现如下这种错误 show dbs 2019-01-20T22:13:53.4770800 E QUERY [js] Error: listDatabases failed:{ok : 0,errmsg : command listDatabases requires authentication,code : 13,codeName : Unauthorized } 另外MongoDB还支持配置多个权限不同的账号针对性地对特定数据库的读写权限进行配置。这样更加细致的访问控制可以增强安全性举个不太恰当的例子对于团队中的实习生应该只给他们读权限这样可以有效防止出现误操作导致删库等极端情况。 总结 可以发现本文介绍的方法都非常简单属于常识但是都是必要的。作为数据库管理者如果这些都没有配置那显然是非常不专业的责怪MongoDB也没有用因为换个数据库也会有同样的问题。 根据MongoDB文档提供的Security Checklist我们还可以使用TLS/SSL来加密MongoDB连接这样做会在一定程度上牺牲性能大家可以根据需要来配置。 另外保证数据库的访问安全非常重要同时也需要保证数据的安全性做好必要的数据备份。关于如何保护数据的安全性可以参考我们的博客《Fundebug是这样备份数据的》。 参考 MongoDB裸奔2亿国人求职简历泄漏Fundebug是这样备份数据的关于Fundebug Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java线上应用实时BUG监控。 自从2016年双十一正式上线Fundebug累计处理了9亿错误事件付费客户有Google、360、金山软件、百姓网等众多品牌企业。欢迎大家免费试用 版权声明 转载时请注明作者Fundebug以及本文地址https://blog.fundebug.com/2019/01/21/how-to-protect-mongodb/
http://www.yutouwan.com/news/99546/

相关文章:

  • 网站正在建设中 html5营销型网站建设的利与弊
  • 中国建设银行ie下载网站本地网站做不大
  • 电子商务网站建设的代码文字生成网址
  • seo怎么做网站排名微做网站
  • 河北提供网站建设公司哪家好江苏住房和城乡建设厅网站报考
  • 个人站长做网站如何做网站宣传片
  • 广州天河区网站设计公司wordpress目录图片
  • 代做网站转账截图怎么做祝福网站
  • 想做网站wordpress hotlink protection
  • 贵阳做网站好的公司有哪些WordPress面包屑主题
  • 北京丰台区网站建设公司做的网站怎么上传到网上
  • 网站建设技术文档在县城怎么做网站公司
  • crm系统 网站建设icon图标素材下载网站
  • 网站备案需要注意什么益阳seo网站建设
  • 自建网站做淘宝联盟龙岗龙城街道网站建设
  • 武功做网站移动选号码网上选号手机号
  • 营销型网站建设推来客网络企业网站 单页
  • php儿童摄影网站源码建筑施工企业
  • 企业网站开发价钱低asp业务网站
  • 校园社交网站开发企业在网站推广
  • 11免费建网站重庆网站网络推广推广
  • 网站怎么做免费wordpress模板电子书下载站
  • 网站的推广运营东莞市城乡和住房建设局
  • 网站建设现状和前景做网站什么科目
  • 漳州做网站六六六博大a优外贸SOHO建公司网站
  • 网站结构说明烟台做网站多少钱
  • 南昌企业做网站中文网页设计模板下载
  • 网站建设之网页制作语言基础阿里外贸平台
  • 网站相似度检测 站长怎么免费建设金融网站
  • 只做画册的网站常州网签备案查询