Подключение и аутентификация

Обеспечение безопасного и контролируемого доступа к СУБД PostgreSQL является одной из ключевых задач администратора. В современных условиях, когда угрозы информационной безопасности становятся всё более изощрёнными, правильная настройка механизмов подключения и аутентификации приобретает особую важность.

Правильная настройка подключений критически важна для:


Способы подключения
  1. Локальные подключения (через Unix-сокет)

  2. Сетевые подключения (TCP/IP)

  3. Удаленные подключения (через SSH-туннель)

Конфигурационные файлы
Файл Назначение
postgresql.conf Основные параметры сервера
pg_hba.conf Настройки аутентификации (Host-Based Authentication)
pg_ident.conf Сопоставление системных и PostgreSQL пользователей
Методы аутентификации
  • Trust - без пароля (только для доверенных подключений)

  • Password

    • md5 - хэшированный пароль

    • scram-sha-256 - более безопасный метод (рекомендуется)

  • Ident - аутентификация через ОС

  • Peer - для локальных подключений

  • GSSAPI - для Kerberos

  • LDAP - интеграция с каталогами


Настройка pg_hba.conf
Формат записи:
# TYPE  DATABASE  USER  ADDRESS  METHOD  [OPTIONS]
host    all       all   0.0.0.0/0  scram-sha-256
Примеры настроек:
Локальный доступ без пароля:
local   all   postgres   peer
Доступ из сети с паролем:
host    all   all   192.168.1.0/24   scram-sha-256

SSL/TLS шифрование

Настройка в postgresql.conf:

ssl = on
ssl_cert_file = 'server.crt'
ssl_key_file = 'server.key'
Проверка подключения:
SELECT ssl_is_used(), version();

Упражнения для практики:

Задание 1: Настройка аутентификации

Добавьте в pg_hba.conf правило для доступа пользователя app_user только к БД app_db с паролем:

host    app_db    app_user    192.168.1.100/32    scram-sha-256

Перезагрузите конфигурацию:

pg_ctl reload
Задание 2: Проверка подключений

Попробуйте подключиться с разных IP-адресов:

psql -h 192.168.1.100 -U app_user -d app_db

Проверьте журнал (/var/log/postgresql.log) на предмет попыток подключений.

Задание 3: Настройка SSL

Сгенерируйте самоподписанный сертификат:

openssl req -new -x509 -nodes -out server.crt -keyout server.key

Проверьте SSL-соединение:

psql "host=localhost dbname=test user=test sslmode=require"

Организация надёжной системы подключения и аутентификации в PostgreSQL требует комплексного подхода и понимания различных механизмов защиты данных.


Комментарии

Добавить комментарий

Чтобы оставить комменатрий необходимо Авторизоваться