我缺乏有关 VPN 的知识。给定的是带有 Postgresql 的远程 VM。服务器具有公共 IP。
是否有可能(以及如何):
- 数据库级别:仅当用户激活了公司 VPN 时才允许连接到 postgres(pg_hba.conf)(<- 如何识别?)
- 服务器级别:关闭公共 IP,但如果用户在 VPN 内则允许访问服务器?(这有意义吗?)
我更加困惑了,因为远程虚拟机与公司网络无关。谢谢大家的指导!
答案1
很有可能。
数据库级别:仅当用户激活了公司 VPN 时才允许连接到 postgres(pg_hba.conf)(<- 如何识别?)
非常简单 - 添加一行来匹配特定数据库和用户连接的 VPN IP 前缀。
服务器级别:关闭公共 IP,但如果用户在 VPN 内则允许访问服务器?(这有意义吗?)
确实如此。方法相同,但位置不同(较低)OSI 模型层:过滤掉从外界到 tcp/5432 的任何连接(如果有多个,则将过滤规则应用于服务器上的外部接口),并且只允许来自 VPN 前缀的连接。
为了进一步加强安全性,让 PostgreSQL 实例仅绑定到特定接口(如果服务器有多个)PostgreSQL 配置文件使用listen_addresses
指令(指定特定地址而不是*
)。