7
Итоговое задание
Полная настройка безопасности кластера
40 минУрок 7 из 7
Прогресс0%
Теория
В этом задании вы настроите полную безопасность кластера PostgreSQL.
Включите SSL для всех соединений.
Настройте аутентификацию по сертификатам для репликации.
Проведите аудит безопасности и задокументируйте настройки.
Практика
1. Генерация сертификатов для кластера
Создайте полный набор сертификатов:
Генерация сертификатов для кластера
Команда
cd /etc/postgresql/ssl && sudo -u postgres bash -c '
openssl genrsa -out ca.key 2048
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=Cluster CA"
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/CN=master"
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 3650
'Вывод:
Generating RSA private key, 2048 bit long modulus ...
2. Настройка pg_hba.conf
Настройте аутентификацию для всех сценариев:
Настройка pg_hba.conf
Команда
sudo tee /etc/postgresql/16/main/pg_hba.conf << 'EOF'
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local all all peer
hostssl all all 0.0.0.0/0 scram-sha-256
hostssl all all ::1/128 scram-sha-256
hostssl replication replicator 0.0.0.0/0 cert
EOFПроверка
Финальная проверка: протестируйте SSL-подключение:
Проверка
Команда
psql "host=127.0.0.1 dbname=postgres user=postgres sslmode=verify-ca sslrootcert=/etc/postgresql/ssl/ca.crt" -c "SELECT ssl_is_used(), current_user;"Вывод:
ssl_is_used | current_user -------------+-------------- t | postgres