TMAegis
More rules for postgres

TMA-POSTGRES-6.8

Ensure TLS is enabled and configured correctly

HighLevel 1Automatedpostgres

Description

TLS on a PostgreSQL server should be enabled and configured to encrypt TCP traffic to and from the server. Runs psql as ${PGUSER:-postgres} against ${PGDATABASE:-postgres}; set PGHOST/PGPORT and use ~/.pgpass (not PGPASSWORD, see 1.6/1.7) when peer authentication is not available.

How it is checked

Audit method: SQL query

sql_query
out=$(psql -X -U "${PGUSER:-postgres}" -d "${PGDATABASE:-postgres}" -tAc "SHOW ssl" 2>/dev/null) || exit 1; printf '%s\n' "$out"
Expected output
on

How it is fixed

Fix method: Guidance or infrastructure patch

Install a CA-issued server certificate and key (key mode 0600, owned by postgres), set ssl = on, ssl_cert_file and ssl_key_file in postgresql.conf, then SELECT pg_reload_conf();

Properties

Operating systems
Any
Tags
postgresdatabasetls
Reference
CIS PostgreSQL 18 Benchmark v1.0.0 - 6.8 Ensure TLS is enabled and configured correctly

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target postgres