СУБД PostgreSQL
Конфигурация сервера PostgreSQL
ℹ️Перечисленные ниже параметры конфигурации сервера PostgreSQL должны быть описаны в конфигурационном файле postgres.conf.
| Параметр | Рекомендуемое значение | Описание |
|---|---|---|
listen_addresses | 'localhost' | Ограничивает прослушивание localhost |
port | Измените стандартный 5432 | Избегайте использования порта по умолчанию |
password_encryption | scram-sha-256 | Используйте современное шифрование паролей |
ssl | on | Включите SSL-шифрование соединений |
ssl_ciphers | HIGH:!aNULL:!MD5 | Настройте безопасные SSL-шифры |
ssl_cert_file | Укажите путь к сертификату | Путь к SSL-сертификату |
ssl_key_file | Укажите путь к приватному ключу | Путь к SSL-ключу |
ssl_ca_file | Укажите путь к CA-сертификату | Путь к корневому сертификату |
authentication_timeout | 1min | Таймаут аутентификации |
password_encryption | scram-sha-256 | Алгоритм хеширования паролей |
shared_buffers | 25% от RAM | Оптимизация производительности |
log_connections | on | Логирование подключений |
log_disconnections | on | Логирование отключений |
log_hostname | on | Логирование hostname клиентов |
log_statement | ddl или all | Логирование SQL-запросов |
log_duration | on | Логирование времени выполнения запросов |
log_line_prefix | '%m [%p] %q%u@%d ' | Формат лог-записей |
max_connections | Рассчитано по нагрузке | Ограничение одновременных подключений |
superuser_reserved_connections | 3 | Резерв подключений для superuser |
tcp_keepalives_idle | 60 | TCP keepalive параметры |
tcp_keepalives_interval | 15 | TCP keepalive интервал |
tcp_keepalives_count | 3 | Количество keepalive пакетов |
auth_delay | 1s | Задержка при неудачной аутентификации |
session_preload_libraries | pgaudit | Подключение библиотек аудита |
pgaudit.log | all, -misc | Настройки pgaudit |
pgaudit.log_catalog | off | Логирование каталога |
pgaudit.log_parameter | on | Логирование параметров запросов |
pgaudit.log_relation | on | Логирование отношений |
pgaudit.log_statement_once | off | Логирование statements |
row_security | on | Включение row level security |
default_transaction_read_only | off | Режим только для чтения по умолчанию |
Дополнительные рекомендации:
Файл pg_hba.conf:
# Разрешать только защищенные подключения
hostssl all all 127.0.0.1/32 scram-sha-256
hostssl all all ::1/128 scram-sha-256
# Ограничить доступ для superuser
host all postgres 0.0.0.0/0 reject