Dav*_*mic 8 postgresql ssl postgresql-9.6
我在不同的机器上有一个带有应用程序服务器和数据库的敏感应用程序,在从数据库的情况下,在不同的数据中心。
尽管我相信我的 postgresqls 被配置为始终使用 ssl,但我需要一种方法来仔细检查这一点。
是否有一些简单的方法可以检查所有客户端连接是否确实被迫使用 ssl?
Dan*_*ité 15
可以通过 禁用非 SSL 连接pg_hba.conf。
例如,它可能像这样开始:
# allow local connections through Unix domain sockets
local all all peer
# allow non-encrypted local TCP connections with passwords
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
# reject any other non-encrypted TCP connection
hostnossl all all 0.0.0.0/0 reject
hostnossl all all ::/0 reject
# other rules...
Run Code Online (Sandbox Code Playgroud)
规则按顺序进行测试,直到第一次匹配,因此当这些匹配中的一个匹配时,这些之后的任何规则都将无效。
在运行时,要检查哪些会话被加密,有pg_stat_ssl系统视图(自 PostgreSQL 9.5 起)。它的pid列是一个引用, pg_stat_activity其中包含可能与识别连接相关的其他信息位,例如usename, datname, client_addr...,因此您可以使用此查询,例如:
SELECT datname,usename, ssl, client_addr
FROM pg_stat_ssl
JOIN pg_stat_activity
ON pg_stat_ssl.pid = pg_stat_activity.pid;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11654 次 |
| 最近记录: |