我需要从 AWS EC2 实例访问路由器后面的 SQL 服务器。如果我将 EC2 实例的 IP 列入白名单,那么在路由器上打开端口是否合理安全?
如果有最佳实践,或者任何人知道此过程,欢迎提供参考!
SQL 服务器操作系统:域控制网络上的 Windows Server 2008 R2 SQL 服务器版本:2008 R2 SP3
AWS EC2 实例操作系统:Ubuntu 18.04
目的:在基于 expressjs 的 Web 服务器上使用 sequelize 访问 SQL
答案1
您的问题有点令人困惑,而且不太准确。端口转发与此有什么关系?
如果您只是想将 EC2 实例提供给本地数据库,是的,可以安全地完成,可以使用 IP 白名单和用户/密码,或者更好的是使用 VPN。
数据库有用户名和密码,这可能是足够的保护。将其与 IP 白名单相结合,这可能是很好的保护。但是,它仍然允许任何可以伪造源 IP 的人访问实例,并且如果数据库软件有任何错误,它就会让您容易受到攻击。
通常建议使用 VPN。这为您提供了另一道保护线,并有效地将您的数据中心扩展到 AWS。大型公司通常将 AWS 放在内部 IP 范围内,但只要您可以路由到它,这并不重要。然后您可以仅将内部 IP 范围列入白名单。三种保护措施将使您更加舒适 - VPN、IP 白名单和用户/密码。
答案2
如果你需要问这个问题,那没关系。我不使用 MSSQL,但我精通其他数据库和网络。当然这是可行的,但需要谨慎实施。
第一个问题是,通过将数据库端口暴露给互联网,您将面临攻击,无论是访问还是 DoS。您可以使用适当的防火墙来减轻这种风险。
第二个问题是安全问题。(据我所知)默认情况下,SQL 不会加密流量。您可能需要设置 VPN 或启用 TLS 并确保适当的信任,或者最好两者兼而有之。如果您不这样做,第三方可以看到数据,并可能使用 MITM 攻击更改数据。