我需要向外部打开我的 MySQL 服务器的端口,从我读到的内容来看,默认配置既不安全也不加密。
为此,我有一些解决方案的原因,但我想知道,从更好的安全角度来看,如果我遗漏了什么。
首先,最初的想法是建立一个SSH隧道,但我担心连接可能会不时丢失(即使我设置了“autossh”系统以在连接停止时自动重新连接)。我主要担心的是我害怕丢失一些请求(在 ssh 隧道停止的那一刻和 autossh 占用新连接的那一刻之间)。
所以我想到了对外开放MySQL。我知道如果不努力保护它,这不是最佳选择,但如果我添加这些步骤,会更好吗?
- 将端口更改为外部。这不会阻止某人找到正确的端口,但它至少会阻止直接针对 3306 的机器人
- 设置 Mysql SSL。这将停止在客户端和服务器之间传输明文数据,并避免中间人攻击。
- 仅允许来自某些 IP。这将确保只有我想要的 IP 才能连接。这将由IPtables管理
- root 只能从 localhost 获得。并且所有其他用户将具有受限访问权限(对其数据库)
考虑到这种配置,您认为 MySQL 仍然容易受到攻击吗?
我唯一的想法是如果有人会访问我的网络服务器,并且知道登录名/密码,但我相信一旦有人拥有登录名/密码,安全性就变得毫无用处(因为它已经被破坏以获取凭据)