1
CloudMx 2017-01-24 10:58:36 +08:00
你这三个方案,在同一环境下,两次密码不一致的话, 2 最安全,双重认证。 3 跟 1 在安全上没有什么区别( MYSQL 只允许你的 PHPMYADMIN 机器连接)。
|
2
privil 2017-01-24 10:59:26 +08:00
你偷懒,就额外开一个监听本地的 web 站点,跑 phpmyadmin ,要用就远程上去用就算了。不过都搞成这样了,还不如直接远程跑 Navicat for MySQL 啥的了,你非要公网跑,那你随意咯
|
3
gdtv OP |
4
donlxn22 2017-01-24 11:03:56 +08:00
第四种方案: SSH TUNNEL + phpmyadmin localhost 访问
phpmyadmin 设置为只允许内网 localhost 访问;需要连接的时候使用 SSH 隧道映射到服务器的 localhost ;可以依赖于 SSH 协议的安全机制,也方便些; https://degreesofzero.com/article/manage-remote-mysql-servers-with-local-phpmyadmin.html |
5
Tink 2017-01-24 11:04:43 +08:00
建议用 ssl 客户端认证,这应该是最安全的方案
|
7
CloudMx 2017-01-24 11:29:40 +08:00
只允许本地连接,那就是只有一个口登录操作你的 MYSQL 了, PHPMYADMIN.所以,两次密码不一致的话, 2 最安全,双重认证,但是麻烦。 3 跟 1 在安全上没有什么区别。
|
8
zjqzxc 2017-01-24 11:32:23 +08:00
所以说,这才是 VPN 的目标使用环境
|
9
shiji 2017-01-24 13:56:15 +08:00 via Android
@gdtv 如果没上 HTTPS ,这三个都不安全。 上了 HTTPS ,方案 1 就行。
我自己的 MySQL 开启远程连接三四年了,啥事没有。需要注意的是,权限配置要细化。我一般的操作方案是,比如要装 WordPress ,新建用户 wp ,新建库 wp ,只分配给 wp 用户所有 wp 数据库的权限。 WordPress 在本机, wp 用户就只允许 localhost 连接。如果给远程别的服务器用,也同样尽可能的限制 IP 。 我的 root 也允许远程,给 navicat 用。为了保证数据安全开启了 ssl 。(类似于自签发证书的步骤,但是稍微麻烦些,跟着教程走就好) 我服务器有个简单的分析端口扫描的 iptables 规则,根据统计,攻击我 3306 的超级超级少。 |
11
ryd994 2017-01-24 14:47:21 +08:00
看你对安全的定义
个人观点而言, apache 的 http 验证是很成熟了,而 php 下的验证虽然逻辑上是可靠的,但想想 apache 的验证模块可能比 php 还老……而且资源消耗肯定也低 其次只要你用 apache ,就能用 http 各种 slow 攻击打到你服务器卡死, prefork 硬伤,必须做好连接频率限制,或者前面 nginx 鉴权,限流,顶压力 |
12
ryd994 2017-01-24 14:52:06 +08:00
如果你系统运维和数据库运维是同一批人的话, ssh 其实是最好的,因为不需要额外设置,反正能拿到 ssh 的人基本上也就有机会 dump 你数据库了,没差
如果不同的话, ssh 加个转发专用用户固然可以,但其实管起来麻烦 还有一条路是 https 客户端证书,反正自签一个就行,如果现有内部自签证书在用,有严格执行标准流程的话,安全也是不成问题的,不过不会太方便 |