UCF STIG Viewer Logo

PostgreSQL must record time stamps, in audit records and application data, that can be mapped to Coordinated Universal Time (UTC, formerly GMT).


Overview

Finding ID Version Rule ID IA Controls Severity
V-72887 PGS9-00-002400 SV-87539r2_rule Medium
Description
If time stamps are not consistently applied and there is no common time reference, it is difficult to perform forensic analysis. Time stamps generated by PostgreSQL must include date and time. Time is commonly expressed in Coordinated Universal Time (UTC), a modern continuation of Greenwich Mean Time (GMT), or local time with an offset from UTC.
STIG Date
PostgreSQL 9.x Security Technical Implementation Guide 2019-03-19

Details

Check Text ( C-73021r1_chk )
Note: The following instructions use the PGDATA environment variable. See supplementary content APPENDIX-F for instructions on configuring PGDATA.

When a PostgreSQL cluster is initialized using initdb, the PostgreSQL cluster will be configured to use the same time zone as the target server.

As the database administrator (shown here as "postgres"), check the current log_timezone setting by running the following SQL:

$ sudo su - postgres
$ psql -c "SHOW log_timezone"

log_timezone
--------------
UTC
(1 row)

If log_timezone is not set to the desired time zone, this is a finding.
Fix Text (F-79329r4_fix)
Note: The following instructions use the PGDATA and PGVER environment variables. See supplementary content APPENDIX-F for instructions on configuring PGDATA and APPENDIX-H for PGVER.

To change log_timezone in postgresql.conf to use a different time zone for logs, as the database administrator (shown here as "postgres"), run the following: 

$ sudo su - postgres 
$ vi ${PGDATA?}/postgresql.conf 
log_timezone='UTC' 

Next, restart the database: 

# SYSTEMD SERVER ONLY 
$ sudo systemctl reload postgresql-${PGVER?}

# INITD SERVER ONLY 
$ sudo service postgresql-${PGVER?} reload