我在 AWS EC2 上运行一个小型应用程序,它安装了 PostgreSQL。
我想远程访问这个生产数据库,但也想保证它的安全,我不确定我所做的是否足够。
在处理公司项目时,我只是将公司的静态 IP 列入白名单并阻止所有其他内容,但在这种情况下,我不能使用静态 IP,而且我的 IP 经常更改。
到目前为止,我有
- 更改了 DB 的默认端口
- 设置 cloudflare(对我无法访问服务的国家/地区显示挑战)
- 使用随机密码生成器制作密码
但我觉得我可以做更多,因为我的数据库包含一些敏感的个人信息,我觉得我应该做更多。
我还能做些什么来进一步保护我的数据库?
确保安全的最佳方法是使用 VPN 客户端。
在 VPN 客户端配置文件中,您可以选择可以打开的端口。
这样,服务器永远不会在互联网上,并且您的流量在隧道内被加密。
通过 SSH 隧道的 Postgresql
并连接到本地 127.0.0.1:
在服务器上,您可以禁用 postgresql 的所有侦听端口,只保留 ssh 端口打开。
还要确保 SSH 不能用于密码访问,只能用于 ssh 密钥访问。