我不是系统专家,这是我第一次设置系统。我有一个远程系统,从开发人员的角度来看,远程访问数据库对我来说是件好事。
从安全角度来看,打开远程连接并不那么安全。
我的问题是,我是否应该进行远程访问,如果是,那么哪种方法最好。
我使用的是 CentOS 5.5 和 mysql。
答案1
- 设置 mysql 仅监听本地主机
- 在该服务器上获取 ssh 帐户
设置 ssh 隧道:
ssh 用户@mysql-server -L3306:localhost:3306
现在,您与 localhost 3306 的 mysql 连接将透明地转发到 mysql 服务器。您可以使用任何开发武器,就像直接在服务器上工作一样(mysql shell、phpmyadmin)
答案2
这取决于您想要如何交互 - 即使是通过公共链接(通过移动 ssh 端口进行少量额外的混淆)的 ssh 会话也将非常安全。如果您想要更多访问权限(直接访问端口 3306 上的数据库和面向 Web 的工具,如 phpmyadmin),使用 VPN 连接到远程服务器或其网络将是一个不错的选择。最糟糕的情况是限制直接访问端口 3306,只允许来自某些 IP 地址的连接,但我并不建议向外界开放端口 3306。
答案3
我想说,如果你的开发人员必须真正与数据库交互,你应该安装phpmyadmin。这是因为,如果你更换了开发人员,你几乎 100% 会忘记删除他对数据库的权限。因此,只允许你的本地主机,并让他通过 Web 界面访问。我确实评估了很多 mysql 服务器,这些服务器有很多授权的开发人员,他们已经走了,但授权一直在那里。
答案4
远程访问在生产环境中很常见,因为生产环境可能在数据库服务器前面有一个或多个 Web 服务器。开发环境的安全要求通常比生产环境宽松,但应尽可能保证其安全。
- 为开发人员提供最低要求的权限。允许尽可能少的服务器进行访问。
- 将 root 访问限制于本地主机。
- 对端口进行防火墙保护,只允许从批准的位置进行访问。
- 考虑使用 TLS(SSL)加密进行远程访问。
mysql_secure_installation
如果可用,运行该脚本。