PostgreSQL
TMA-POSTGRES-3.1.26
Ensure 'log_timezone' is set correctly
LowLevel 1Automatedpostgres
Description
The log_timezone setting specifies the time zone to use in timestamps within log messages. This value is cluster-wide, so that all sessions will report timestamps consistently. Unless directed otherwise by your organization's logging policy, set this to either GMT or UTC. Expects GMT/UTC; if your policy mandates another zone, accept this finding as an exception. 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 "SELECT CASE WHEN current_setting('log_timezone') IN ('GMT','UTC','Etc/UTC','Etc/GMT') THEN 'compliant' ELSE 'noncompliant' END" 2>/dev/null) || exit 1; printf '%s\n' "$out"- Expected output
compliant
How it is fixed
Fix method: SQL statement
shell
psql -X -U "${PGUSER:-postgres}" -c "ALTER SYSTEM SET log_timezone = 'GMT'" -c "SELECT pg_reload_conf()"Properties
- Operating systems
- Any
- Tags
- postgresdatabaselogging
- Reference
- CIS PostgreSQL 18 Benchmark v1.0.0 - 3.1.26 Ensure 'log_timezone' is set correctly
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
shell
tmaegis scan --target postgres