VMware vSphere 6.7 PostgreSQL Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates +2 −2 ✎ 19
Comparison against the immediately-prior release (V1R1). Rule matching uses the Group Vuln ID. Content-change detection compares the rule’s description, check, and fix text after stripping inline markup — cosmetic-only edits aren’t flagged.
Added rules 2
Removed rules 2
- V-239210 Medium Data from the vPostgres database must be protected from unauthorized transfer.
- V-239217 Medium The vPostgres database security updates and patches must be installed in a timely manner in accordance with site policy.
Content changes 19
- V-239196 Medium description VMware Postgres must limit the number of connections.
- V-239197 Medium description VMware Postgres log files must contain required fields.
- V-239198 Medium description VMware Postgres configuration files must not be accessible by unauthorized users.
- V-239199 Medium description VMware Postgres must be configured to overwrite older logs when necessary.
- V-239200 Medium description VMware Postgres database must protect log files from unauthorized access and modification.
- V-239201 Medium description All VCDB tables must be owned by the "vc" user account.
- V-239202 Medium description VMware Postgres must limit modify privileges to authorized accounts.
- V-239204 High description VMware Postgres must require authentication on all connections.
- V-239205 High description VMware Postgres must be configured to use TLS.
- V-239206 High description VMware Postgres must enforce authorized access to all PKI private keys.
- V-239207 High description VMware Postgres must use FIPS 140-2 approved TLS ciphers.
- V-239208 Medium description VMware Postgres must write log entries to disk prior to returning operation success or failure.
- V-239209 Medium description VMware Postgres must not allow schema access to unauthorized accounts.
- V-239211 Medium description VMware Postgres must provide non-privileged users with minimal error information.
- V-239212 Medium description VMware Postgres must have log collection enabled.
- V-239213 Medium description VMware Postgres must be configured to log to stderr.
- V-239214 Medium description Rsyslog must be configured to monitor VMware Postgres logs.
- V-239215 Medium description VMware Postgres must use Coordinated Universal Time (UTC) for log timestamps.
- V-239216 Medium description VMware Postgres must set client-side character encoding to UTF-8.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- VCPG-67-000001
- Vuln IDs
-
- V-239196
- Rule IDs
-
- SV-239196r879511_rule
Checks: C-42429r878104_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW max_connections;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: 345 If the output does not match the expected result, this is a finding.
Fix: F-42388r678960_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET max_connections TO '345';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- VCPG-67-000002
- Vuln IDs
-
- V-239197
- Rule IDs
-
- SV-239197r879559_rule
Checks: C-42430r678962_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW log_line_prefix;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: %m %c %x %d %u %r %p %l If the output does not match the expected result, this is a finding.
Fix: F-42389r678963_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET log_line_prefix TO '%m %c %x %d %u %r %p %l ';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000171
- Version
- VCPG-67-000003
- Vuln IDs
-
- V-239198
- Rule IDs
-
- SV-239198r879560_rule
Checks: C-42431r678965_chk
At the command prompt, enter the following command: # find /storage/db/vpostgres/*conf* -xdev -type f -a '(' -not -perm 600 -o -not -user vpostgres -o -not -group users ')' -exec ls -ld {} \; If any files are returned, this is a finding.
Fix: F-42390r678966_fix
At the command prompt, enter the following command: # chmod 600 <file> # chown vpostgres:users <file> Note: Replace <file> with the file with incorrect permissions.
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-000140
- Version
- VCPG-67-000004
- Vuln IDs
-
- V-239199
- Rule IDs
-
- SV-239199r879571_rule
Checks: C-42432r678968_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW log_truncate_on_rotation;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: on If the output does not match the expected result, this is a finding.
Fix: F-42391r678969_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET log_truncate_on_rotation TO 'on';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-000162
- Version
- VCPG-67-000005
- Vuln IDs
-
- V-239200
- Rule IDs
-
- SV-239200r879576_rule
Checks: C-42433r678971_chk
At the command prompt, enter the following command: # find /var/log/vmware/vpostgres/* -xdev -type f -a '(' -not -perm 600 -o -not -user vpostgres -o -not -group users ')' -exec ls -ld {} \; If any files are returned, this is a finding.
Fix: F-42392r678972_fix
At the command prompt, enter the following command: # chmod 600 <file> # chown vpostgres:users <file> Note: Replace <file> with the file with incorrect permissions. At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET log_file_mode TO '0600';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- VCPG-67-000008
- Vuln IDs
-
- V-239201
- Rule IDs
-
- SV-239201r879586_rule
Checks: C-42434r678974_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -d VCDB -x -U postgres -c "\dt;"|grep Owner|grep -v vc If any tables are returned, this is a finding.
Fix: F-42393r678975_fix
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER TABLE <tablename> OWNER TO vc;" Replace <tablename> with the name of the table discovered during the check.
- RMF Control
- CM-5
- Severity
- M
- CCI
- CCI-001499
- Version
- VCPG-67-000009
- Vuln IDs
-
- V-239202
- Rule IDs
-
- SV-239202r879586_rule
Checks: C-42435r678977_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "\du;"|grep "Create" Expected result: postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {} vc | Create DB | {} If the accounts other than "postgres" and "vc" have any "Create" privileges, this is a finding.
Fix: F-42394r678978_fix
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "REVOKE ALL PRIVILEGES FROM <user>;" Replace <user> with the account discovered during the check.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- VCPG-67-000011
- Vuln IDs
-
- V-239203
- Rule IDs
-
- SV-239203r879588_rule
Checks: C-42436r678980_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW port;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: 5432 If the output does not match the expected result, this is a finding.
Fix: F-42395r678981_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET port TO '5432';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- IA-2
- Severity
- H
- CCI
- CCI-000764
- Version
- VCPG-67-000012
- Vuln IDs
-
- V-239204
- Rule IDs
-
- SV-239204r879589_rule
Checks: C-42437r678983_chk
At the command prompt, execute the following command: # grep -v "^#" /storage/db/vpostgres/pg_hba.conf|grep -z --color=always "trust" If any lines are returned, this is a finding.
Fix: F-42396r678984_fix
Navigate to and open /storage/db/pgdata/pg_hba.conf. Find and remove the line that has a method of "trust" in the far right column. A correct, typical line will look like the following: # TYPE DATABASE USER ADDRESS METHOD host all all 127.0.0.1/32 md5
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000197
- Version
- VCPG-67-000013
- Vuln IDs
-
- V-239205
- Rule IDs
-
- SV-239205r879609_rule
Checks: C-42438r678986_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW ssl;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: on If the output does not match the expected result, this is a finding.
Fix: F-42397r678987_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET ssl TO 'on';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- IA-5
- Severity
- H
- CCI
- CCI-000186
- Version
- VCPG-67-000014
- Vuln IDs
-
- V-239206
- Rule IDs
-
- SV-239206r879613_rule
Checks: C-42439r678989_chk
At the command prompt, execute the following command: # stat -c "%a:%U:%G" /storage/db/vpostgres_ssl/server.key Expected result: 600:vpostgres:users If the output does not match the expected result, this is a finding.
Fix: F-42398r678990_fix
At the command prompt, execute the following commands: # chmod 600 /storage/db/vpostgres_ssl/server.key # chown vpostgres:users /storage/db/vpostgres_ssl/server.key
- RMF Control
- IA-7
- Severity
- H
- CCI
- CCI-000803
- Version
- VCPG-67-000015
- Vuln IDs
-
- V-239207
- Rule IDs
-
- SV-239207r879616_rule
Checks: C-42440r678992_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW ssl_ciphers;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: !aNULL:kECDH+AES:ECDH+AES:RSA+AES:@STRENGTH If the output does not match the expected result, this is a finding.
Fix: F-42399r678993_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET ssl_ciphers TO '!aNULL:kECDH+AES:ECDH+AES:RSA+AES:@STRENGTH';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- SC-24
- Severity
- M
- CCI
- CCI-001665
- Version
- VCPG-67-000016
- Vuln IDs
-
- V-239208
- Rule IDs
-
- SV-239208r879641_rule
Checks: C-42441r678995_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT name,setting FROM pg_settings WHERE name IN ('fsync','full_page_writes','synchronous_commit');"|sed -n '3,5p'|sed -e 's/^[ ]*//' Expected result: fsync | on full_page_writes | on synchronous_commit | on If the output does not match the expected result, this is a finding.
Fix: F-42400r678996_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET <name> TO 'on';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();" Note: Substitute <name> with the incorrectly set parameter (fsync, full_page_writes, synchronous_commit)
- RMF Control
- SC-3
- Severity
- M
- CCI
- CCI-001084
- Version
- VCPG-67-000017
- Vuln IDs
-
- V-239209
- Rule IDs
-
- SV-239209r879643_rule
Checks: C-42442r678998_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "\dp .*.;"/opt/vmware/vpostgres/current/bin/psql -U postgres -c "\dp .*.;"|grep -E "information_schema|pg_catalog"|awk -F '|' '{print $4}'|awk -F '/' '{print $1}'|grep -v "=r"|grep -v "postgres"|grep -v " " If any lines are returned, this is a finding.
Fix: F-42401r678999_fix
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "REVOKE ALL PRIVILEGES ON <name> FROM <user>;" Replace <name> and <user> with the Access Privilege name and account, respectively, discovered during the check.
- RMF Control
- SI-11
- Severity
- M
- CCI
- CCI-001312
- Version
- VCPG-67-000019
- Vuln IDs
-
- V-239211
- Rule IDs
-
- SV-239211r879655_rule
Checks: C-42444r679004_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW client_min_messages;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: notice If the output does not match the expected result, this is a finding.
Fix: F-42403r679005_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET client_min_messages TO 'notice';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-001844
- Version
- VCPG-67-000020
- Vuln IDs
-
- V-239212
- Rule IDs
-
- SV-239212r879729_rule
Checks: C-42445r679007_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW logging_collector;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: on If the output does not match the expected result, this is a finding.
Fix: F-42404r679008_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET logging_collector TO 'on';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- VCPG-67-000021
- Vuln IDs
-
- V-239213
- Rule IDs
-
- SV-239213r879732_rule
Checks: C-42446r679010_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW log_destination;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: stderr If the output does not match the expected result, this is a finding.
Fix: F-42405r679011_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET log_destination TO 'stderr';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- AU-5
- Severity
- M
- CCI
- CCI-001855
- Version
- VCPG-67-000022
- Vuln IDs
-
- V-239214
- Rule IDs
-
- SV-239214r879732_rule
Checks: C-42447r679013_chk
At the command prompt, execute the following command: # cat /etc/vmware-syslog/stig-services-vpostgres.conf Expected result: input(type="imfile" File="/var/log/vmware/vpostgres/serverlog.std*" Tag="vpostgres-first" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/vpostgres/postgresql-*.log" Tag="vpostgres" Severity="info" Facility="local0") If the file does not exist, this is a finding. If the output of the command does not match the expected result above, this is a finding. If there is no output from the command, vPostgres will default to "stderr", and this is not a finding.
Fix: F-42406r679014_fix
Navigate to and open /etc/vmware-syslog/stig-services-vpostgres.conf. Create the file if it does not exist. Set the contents of the file as follows: input(type="imfile" File="/var/log/vmware/vpostgres/serverlog.std*" Tag="vpostgres-first" Severity="info" Facility="local0") input(type="imfile" File="/var/log/vmware/vpostgres/postgresql-*.log" Tag="vpostgres" Severity="info" Facility="local0")
- RMF Control
- AU-8
- Severity
- M
- CCI
- CCI-001890
- Version
- VCPG-67-000023
- Vuln IDs
-
- V-239215
- Rule IDs
-
- SV-239215r879747_rule
Checks: C-42448r679016_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW log_timezone;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: Etc/UTC If the output does not match the expected result, this is a finding.
Fix: F-42407r679017_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET log_timezone TO 'Etc/UTC';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- SI-10
- Severity
- M
- CCI
- CCI-002754
- Version
- VCPG-67-000024
- Vuln IDs
-
- V-239216
- Rule IDs
-
- SV-239216r879818_rule
Checks: C-42449r679019_chk
At the command prompt, execute the following command: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SHOW client_encoding;"|sed -n 3p|sed -e 's/^[ ]*//' Expected result: UTF8 If the output does not match the expected result, this is a finding.
Fix: F-42408r679020_fix
At the command prompt, execute the following commands: # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "ALTER SYSTEM SET client_encoding TO 'UTF8';" # /opt/vmware/vpostgres/current/bin/psql -U postgres -c "SELECT pg_reload_conf();"
- RMF Control
- SI-2
- Severity
- H
- CCI
- CCI-002605
- Version
- VCPG-67-000999
- Vuln IDs
-
- V-257281
- Rule IDs
-
- SV-257281r919200_rule
Checks: C-60965r918881_chk
PostgreSQL 6.7 is no longer supported by the vendor. If the system is running PostgreSQL 6.7, this is a finding.
Fix: F-53958r798705_fix
Upgrade to a supported version.
- RMF Control
- SC-4
- Severity
- M
- CCI
- CCI-001090
- Version
- VCPG-67-000018
- Vuln IDs
-
- V-257296
- Rule IDs
-
- SV-257296r919346_rule
Checks: C-60983r919346_chk
Obtain the site data-transfer policy from the ISSO. Review the policies and procedures used to ensure that all vRA data is being protected from unauthorized and unintended information transformation in accordance with site policy. If the site data-transfer policy is not followed, this is a finding.
Fix: F-60910r919342_fix
Modify any code used for moving data from production to development/test systems to comply with the organization-defined data transfer policy and to ensure that copies of production data are not left in unsecured locations.