pg_hba.conf和postgresql.conf之间的postgres ip区别

时间:2013-02-28 00:39:55

标签: security postgresql

(我对网络有基本的了解)

所以我在另一篇文章中读到,解释说listen_addresses在登录前只涉及额外的安全层:How to configure postgresql postgresql.conf listen_addresses for multiple ip addresses

但我想知道的是为什么listen_address不必为您放入的ips放入CIDR格式。

pg_hba.conf中,##.##.##.##/##代表CIDR格式。那么为什么postgresql.conf的{​​{1}}只使用ip而没有子网掩码? (而且,我把两者的公共IP地址都放了,但是如果我把它放在listen_addresses中就不允许访问,这意味着......?

附带问题(可能是子网): 亚马逊ec2不允许我使用我的公共IP地址/ 24,它必须是/ 32(说大小太小)但我把/ 24放在listen_address这么清楚它是否有效?

1 个答案:

答案 0 :(得分:6)

您无法在我所知道的任何操作系统中收听CIDR范围。实质上,会发生的事情是listen_addresses与主机操作系统的一个或多个IP接口匹配,后者将PostgreSQL的侦听套接字绑定到这些接口。

listen_addresses控制PostgreSQL可以接受连接的网络接口,而不是客户端可以连接到PostgreSQL的接口。

对于EC2,listen_addresses不能包含您的公共IP,因为它不是主机上的本地接口。您必须侦听实际的网络接口,EC2通常是10.x.x.x专用IP。在实践中,除非您使用VPC并且已将多个接口添加到连接到不同子网的主机,否则在EC2上除了listen_addresses之外的任何内容都没有必要设置*