我不是系统家伙,这是我第一次build立一个系统。 我有一个远程系统作为开发人员的观点,这对我来说是有利的,有一个远程访问数据库。
从安全的angular度来看,打开远程连接并不那么安全。
我的问题如果是的话,我应该去远程访问,那么哪一个是最好的方法。
我正在使用CentOS 5.5和MySQL。
设置一个SSH隧道:
ssh user @ mysql-server -L3306:localhost:3306
现在你的mysql连接到localhost 3306将被透明地转发到mysql服务器。 你可以使用你的任何开发武器,因为你会直接在服务器上工作(mysql shell,phpmyadmin)
这取决于你想如何交互 – 甚至在公共链接上的ssh会话(通过移动ssh端口有less量额外的混淆)将是非常安全的。 如果你需要更多的访问权限(直接访问端口3306上的数据库以及像phpmyadmin这样的面向Web的工具),那么到远程服务器或其networking的VPN就是一个好的select。 更糟糕的情况是,只允许来自特定IP地址的连接,而不能直接访问3306端口,但我不build议将3306端口打开到外部世界。
我会说,如果你的开发人员必须真正与数据库交互,你应该安装phpmyadmin 。 这是因为,如果你改变开发者的话,几乎100%的机会会忘记删除他对数据库的权限。 所以只要让你的本地主机,并通过networking界面给他访问。 我确实评估了许多经过授权的开发人员的MySQL服务器,这些服务器已经不在了,但授权总是在那里。
这几乎完全取决于服务器与开发人员的关系。 如果两者都在同一个防火墙之后,而且您信任您的本地networking环境,那么在本地开放MySQL似乎不是特别的风险。
另一方面,如果你的服务器在互联网上全天候使用公共IP地址运行,你想尽可能地locking它 – 提示另一个链接到[在Centos / RHEL服务器上实现networking安全]通过一些比我所能做的更好的事情1 。
就保证连接的最佳方式而言,这取决于你想要做什么。 如果只是手工运行SQL查询,那么SSH就是你所需要的,上面的链接将以安全的方式让你到达那里。 如果你想使用一些GUI前端,那么Linker3000提到的VPN访问,以及adirau简洁的详细描述就是最好的select。
我不build议把phpmyadmin作为一个可公开访问的服务,除非你可以使用不止一个用户名密码来保护它。 如果你需要phpmyadmin,我只能通过VPN隧道访问。 不要像http://www.my-nice-site/phpmyadmin这样的链接 – 它会在几分钟之内被探测,任何未来的phpmyadmin漏洞都会被尝试。 我已经看到了我自己的服务器日志,这是在失败的http请求的顶部!
在数据库服务器前可能有一个或多个Web服务器的生产环境中,远程访问很常见。 开发环境通常比生产有更宽松的安全要求,尽pipe尽可能保证安全。
mysql_secure_installation脚本(如果可用)。