数据库应该开放外网访问吗?

[云问题问答] 上阿里云(ShangAliyun.com) 2018/9/29 11:53:10

        数据库应该开放外网访问吗?

        从使用角度看,必要时候确实需要对公网开放数据库,这时候很无奈,但是需要尽可能做好安全约束:

        1,尽可能限制ip白名单

        2,尽可能使用复杂的密码,非常用的帐号名

        3,做好备份,最好是自动备份

        4,做好报警监测


        上云,数据库往往2种选择:

        一种是专业的云数据库,例如阿里云的RDS等等。这中成品本身做了一系列防御,配置到位即可使用。

        一般需要做的有:白名单ip,特定的连接地址,相对独立的账号名,足够复杂度的密码


        一种是服务器内部自己安装数据库实例,然后web服务或者其他服务。

        这种情况下,请务必不要把公网端口打开,安全组或者防火墙等阻挡一下,避免公网直接连接数据库。


        我曾经使用公网ip做过一个实验:对公网打开1433端口,数据库帐号直接用默认sa,123456弱密码。才10分钟不到,sql里可以看到多了几个用户,也就是说已经被公网的扫描器爆破完成了。

        数据库这种静默操作,很难做好防御,因为不像网站那样有验证码等设计可以限制频率,从而写个程序遍历爆破密码变得非常简单,是否安全紧紧跟运行爆破程序的时间挂钩。