一个MySQL安全的小Trick

今天在V2EX上面看到一个哥们小站的数据库被人暴力破解, 并且把数据全删了。
在表示同情的同时,跟大家分享一下自己一个简单的小trick。
注意: 把数据库暴露到公网一定是非常危险的, 这个小trick只是将危险系数下降了一些而已!

TL;DR

使用SSH转发, 将一个不知名的端口在内网转发到3306之上。具体命令:
ssh -C -f -N -g ubuntu@127.0.0.1 -L 30221:127.0.0.1:3306

解释: 使用ssh端口映射的方式, 将本机的30221端口映射到3306端口。 这样,在公网就可以直接使用30221端口访问3306的数据库了,而且可以直接使用root账号。

详细解释

MySQL默认安装完, 开通的是3306端口,并且默认的root账号只能在本地访问。 但是如果使用SSH端口映射转发的方式, 外部的访问是访问30221,在本机将数据转发到了3306端口。
在MySQL看来, 这就是从本机来的访问。相比直接修改MySQL的配置, 我觉得这种方式简单了很多。并且,最重要的,没有将3306端口暴露出来, 大大降低了风险系数。

不足之处也很明显, 支持的功能太少了。比如Fail2Ban / IP白名单等等。 如果需要实现这些feature,使用Linux的IPTables会比较合适。 再次就不啰嗦了~

补充说明:

本博客的数据库完全没有采用这种方式, 各位不要来黑我。
我小博客也没啥值得你们黑的。

本文原创

原文地址: http://www.flyml.net/2017/12/08/a-small-trick-for-mysql-safe/

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注