下面是我的pg_hba.conf条目。
host dbname username 0.0.0.0/0 radius radiusserver=xyz radiussecret=xyz
我的理解是,当客户端尝试建立连接到postgres时,密码会发送到postgres,然后由postgres传递给radius进行身份验证。一旦从Radius获得确认,连接就会建立。如果不正确,请更正。
1.现在当密码被发送到db时,它会不会是未加密的?我想是的。
1.密码发送到Radius时,是否加密?
1.如果我将主机条目转换为hostssl,那么当客户端发送密码时,它将被加密,对吗?
1条答案
按热度按时间q8l4jmvw1#
1.是的,PostgreSQL服务器的密码是纯文本,前提是连接本身是未加密的。
1.是的,显然它是在PostgreSQL服务器和radius服务器之间加密/散列的,但显然只是用md5散列,所以不是最好的。可能有其他的方法来保护它,但我认为这将是一个radius的问题,而不是postgresql的问题。
1.是的,ssl会在客户端和PostgreSQL之间保护它,但是如果你担心把明文密码发送到一个被入侵的服务器,那么在pg_hba中使用hostssl是错误的。入侵服务器的人只会把“hostssl”改回“host”,如果他们有任何好处的话。相反,你想在客户端强制执行这一点,使用
PGSSLMODE=verify-full
或等效的。(实际上他们不需要关闭ssl,因为它将被加密以便他们解密)