前段时间MongoDB黑客赎金事件搞得沸沸扬扬,很多服务器都纷纷中招。最近正好有台新服务器要配置MongoDB的生产环境,于是记录下笔记,简单说下Windows Server系统要如何做好安全防护,防止数据库裸奔被人洗劫。本文重点介绍使用防火墙的白名单模式来限制公网非法IP,降低被攻击的可能性。
在Windows Server 2012 R2中,如果需要让MongoDB在公网访问(最好不要这样做),按照我自己的经验,必须做到这两点:1、配置身份认证/鉴权,2、防火墙设置白名单,只允许指定的IP地址公网访问!
首先打开控制面板->Windows防火墙,一般情况下Windows防火墙默认使用的是白名单模式,即只有在白名单中的应用/IP/端口才可以连接服务器,未在白名单中的都不能与服务器进行连接。
如果不是使用白名单模式,就要到打开高级设置,重新设置下防火墙公网属性,详细步骤截图如下:
如上图所示,公用配置文件、域配置文件和专用配置文件的防火墙状态一定要开启,毕竟我也不是专业的运维,还是建议都开启,专业人员的说不定可以根据情况进行调整。入站连接要选择“阻止(默认值)”,额外解释下这个选项,其实就表示开启了白名单模式,会阻止与规则不匹配的入站连接。
接下来打开防火墙高级设置的入站规则,仔细检查右侧的规则列表,看下是否有设置过MongoDB的入站规则,这点很重要,千万不能允许外部的IP都能随意连接你的数据库。
找到已经设置的MongoDB入站规则,右键选择属性进行修改和查看:
需要重点检查作用域是否有限制IP,没限制的IP要马上设置,防止任何人都可以随意连接,如果本身就有这个需求必须要做好MongoDB的身份认证:
此外需要检查下协议和端口是否设置正确,默认是TCP协议,端口根据自己的数据库端口来设置,端口建议不要开放所有,只开放对应的。
如果没设置过MongoDB的入站规则(白名单),可以在最右侧的操作列表中新建规则:
规则类型选择端口,然后下一步:
协议选择TCP协议,不要开启所有本地端口!端口根据你MongoDB的端口来设置,这里我填写的是MongoDB默认端口,建议修改默认端口(请参考官方文档),继续下一步:
选择允许连接,接着下一步:
最后一步默认全部勾选吧,或者根据自己的需求来设置:
这一步过后自己设置下规则名称,点击保存,到了这里还不算完成!一定要注意设置下规则的作用域,也就是限制哪些IP可以远程访问MongoDB,防止任何IP都可以连接数据库。具体操作步骤见上面修改规则的步骤。
最后需要检查下是否有设置成功,先用白名单的IP地址连接下数据库,白名单的IP必须要连接成功。再用任意客户端(IP不在白名单中的)连接下数据库,必须要显示禁止连接,由于我是用Robomongo客户端,连接失败的截图如下:
使用其他的客户端或者直接用cmd命令提示符的,只要提示禁止连接就对了。
关于MongoDB黑客赎金事件,如果对这个事件感兴趣的,只要网上搜下就有很多资料了。简单的说,这些被黑客攻击洗劫的MongoDB数据库基本上都是属于在公网上裸奔的状态,即没有设置任何帐号密码,也没有在防火墙做任何安全配置,导致任何人只要扫描出服务器的公网IP,都可以随意的连接数据库!这看起来有点不可思议,但确确实实发生了。
其实只要在部署的时候仔细阅读官方文档,都可以看到这个明显的提醒:
总结下这段话,大意就是官方明确警告禁止在公共场合裸奔,要这样干请自己在家里锁上门关好窗户拉上窗帘!但是按照这次事件的爆发情况来看,全世界还是有很多开放的人!!!好吧,官方真的意思是,MongoDB本身是设计运行在一个可信任的安全环境(例如只允许内网访问的服务器),所以默认情况下是不开启任何安全模式的(例如身份认证等)。重点是,不要在没有配置鉴权/身份验证的情况下,将数据库暴露在公网上。
结合网上的资料,总结下MongoDB安全部署的一些注意事项:
- 部署的时候一定要仔细阅读官方文档,特别是生产环境下的部署文档。
- 设置好鉴权,做好身份认证,角色权限分配等安全防护措施,不要使用弱口令。
- 修改默认的监听端口,不要用默认的27017端口。
- 防火墙开启白名单模式,只允许特点的远程IP访问和连接数据库,限制在公网上的访问来源,当然最好是只允许内网访问,不开放到公网上。
- 对于一些低版本的,可能还有要注意本地侦听IP的设置,由于我接触MongoDB是从3.X以上版本开始的,所以这个问题自己就不太清楚了,建议网上查阅下资料。
其实这些注意事项在其他数据库来看都是常识,会有这种事情我自己也觉得挺不可思议的。从网上的消息来看,被攻击的甚至有公司生产环境的数据库,数据库敢在互联网上裸奔这心真的挺大的。只能说安全意识不能轻易松懈,毕竟只要在互联网上的东西,总有人会去尝试攻击!
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/98920.html