Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

В данном разделе приведены рекомендации для повышения безопасности при использовании ECCM.

Смена паролей по умолчанию умолчанию

Замена стандартных паролей на уникальные сложные пароли предотвращает несанкционированный доступ к веб-интерфейсу ECCM. 

Перейдите в рабочую директорию ECCM:

Блок кода
languagebash
themeRDark
cd eccm/2.9/

В файле eccm/.env замените значение пароля пользователя peeper_monitor и все вхождения tester_password/eccm_password на ваш пароль:

Блок кода
themeRDark
titleeccm/.env
...
# Root credentials для развертки и настройки базы данных
ROOT_POSTGRES_USER=tester
ROOT_POSTGRES_PASSWORD=tester_password
# Client info для работы с базой данных
ECCM_POSTGRES_DB=eccm
ECCM_POSTGRES_USER=eccm
ECCM_POSTGRES_PASSWORD=eccm_password
...
PEEPER_MONITOR_POSTGRES_USER=peeper_monitor
PEEPER_MONITOR_POSTGRES_PASSWORD=peeper_monitor
...
Подсказка

При использовании ЕССМ в отказоустойчивой системе замените пароль пользователя peeper_monitor в конфигурационном файле .env.cluster

Замените пароль в SQL-запросе для создания пользователя eccm:

Блок кода
languagesql
themeRDark
titlepostgres/data/init-db/002_create_user.sql
CREATE USER "eccm" WITH ENCRYPTED PASSWORD 'eccm_password';
GRANT all privileges on DATABASE "eccm" to "eccm";

...

10/

С помощью скрипта update_password.sh измените следующие пароли:

Основные пароли:

  • ROOT_POSTGRES_PASSWORD;
  • ECCM_POSTGRES_PASSWORD;
  • PEEPER_MONITOR_POSTGRES_PASSWORD;
  • ECCM_RABBITMQ_PASSWORD;

Пароли кластера (для отказоустойчивой установки):

  • SENTINEL_PASSWORD;
  • RABBITMQ_CLUSTER_PASSWORD;
  • REPMGR_PASSWORD;
  • TRUSTSTORE_PASSWORD;
  • REDIS_PASSWORD;

При первом запуске скрипт compose-tools.sh сам предложит сгенерировать пароли — нажмите Enter для подтверждения или введите пароли вручную. Сгенерированные пароли сохраняются в файл .env.personal с правами доступа 600, путь к файлу выводится в выводе скрипта.

При необходимости пароли можно изменить вручную в файле .env.personal, который сохраняется при обновлении ECCM. При его отсутствии пароли берутся из файла eccm/.env, который может быть перезаписан при установке нового архива:

Блок кода
themeRDark
title.env
ROOT_POSTGRES_PASSWORD="eccm"
ECCM_POSTGRES_PASSWORD="eccm"
PEEPER_MONITOR_POSTGRES_PASSWORD="peeper_monitor"
ECCM_RABBITMQ_PASSWORD="eccm"

При использовании ECCM в отказоустойчивой системе скрипт также предложит изменить пароли кластера, если они являются паролями, заданными по умолчанию.

Запустите контейнеры ECCM с помощью compose-tools.sh и необходимых опций, например:

Блок кода
languagebash
themeRDark
sudo ./compose-tools.sh --delete-containers

...

-

...

Блок кода
languagebash
themeRDark
sudo ./compose-tools.sh --https --start <IP-адрес сервера или его доменное имя> 

Смена паролей при текущей эксплуатации

Перейдите в контейнер postgres-postgres-1:

Блок кода
languagebash
themeRDark
docker exec -ti postgres-postgres-1 bash

Войдите в БД под пользователем tester:

Блок кода
languagebash
themeRDark
psql -d eccm -U tester

Измените пароли для пользователей tester, eccm  и peeper_monitor:

Блок кода
languagesql
themeRDark
ALTER USER tester WITH ENCRYPTED PASSWORD 'new_tester_password';
ALTER USER eccm WITH ENCRYPTED PASSWORD 'new_eccm_password';
ALTER USER peeper_monitor WITH ENCRYPTED PASSWORD 'new_peeper_monitor_password';

Выйдите из контейнера postgres и перейдите в рабочую директорию ECCM:

Блок кода
languagebash
themeRDark
cd eccm/2.9/

...

При обновлении ECCM файл .env.personal сохраняется и не перезаписывается. Файл eccm/.env может быть заменен на новый из архива установки — тогда все измененные пароли вернутся к значениям по умолчанию. Чтобы не потерять пароли, используйте файл .env.personal или скопируйте их в новый файл .env после обновления.

Смена паролей при текущей эксплуатации

С помощью скрипта update_password.sh измените все старые пароли на новые или вручную замените в файле .env.personal все вхождения old_tester_password, old_eccm_password

...

, old_peeper_monitor_password и old_rabbitmq_password на

...

новый пароль:

Блок кода
themeRDark
titleeccm/.env
title.env
...
# Root credentials для развертки и настройки базы данных
ROOT_POSTGRES_USER=tester
ROOT_POSTGRES_PASSWORD="old_tester_password
# Client info для работы с базой данных
ECCM_POSTGRES_DB=eccm
"
ECCM_POSTGRES_USER=eccm
ECCM_POSTGRES_PASSWORD="old_eccm_password"
...
PPEEPERPEEPER_MONITOR_POSTGRES_USERPASSWORD="old_peeper_monitor_password"
PEEPERECCM_MONITORRABBITMQ_POSTGRES_PASSWORD="old_peeper_monitorrabbitmq_password
..."

Перезапустите контейнеры ECCM с помощью compose-tools.sh

...

. Новые пароли применятся при запуске системы:

Блок кода
languagebash
themeRDark
sudo ./compose-tools.sh --stop
sudo ./compose-tools.sh --https --start <IP-адрес сервера или его доменное имя> --stop 

Настройка HTTPS

Запуск веб-интерфейса ECCM по протоколу HTTPS позволяет шифровать трафик между клиентом и приложением, защищая данные от перехвата. Инструкция по настройке доступна в разделе "Настройка доступа к ECCM по HTTPS".

...

Раскрыть
titleНастройка доступа к БД в отказоустойчивой системе

Настройте доступ к БД только с localhost, подсетей docker и адреса администратора при помощи любого текстового редактора в файле postgres/data/pg_hba.cluster.conf.tpl:

Блок кода
themeRDark
titlepostgres/data/pg_hba.cluster.conf.tpl
# TYPE      DATABASE            USER                              ADDRESS                 METHOD                                                                                                

# "local" is for Unix domain socket connections only                                                                                                                                            
local       all                 all                                                       trust                                                                                                 
# IPv4 local connections:                                                                                                                                                                       
host        all                 all                               127.0.0.1/32            trust                                                                                                 
# IPv6 local connections:                                                                                                                                                                       
host        all                 all                               ::1/128                 trust                                                                                                                                                                                                                                                                                                                                                                                                                                                                

# Docker network internal (172.21.0.0/20) и external (172.20.0.0/20)                                                                                                                            
hostssl     ${ECCM_DATABASE}    ${POSTGRES_USER}                  172.21.0.0/16           md5  # docker network internal                                                                        
hostssl     ${ECCM_DATABASE}    ${ECCM_POSTGRES_USER}             172.21.0.0/16           md5  # docker network internal                                                                        
hostssl     all                 ${PEEPER_MONITOR_POSTGRES_USER}   172.21.0.0/16           md5  # docker network internal                                                                        
hostssl     repmgr              ${REPMGR_USER}                    172.21.0.0/16           md5  # docker network internal                                                                        

hostssl     ${ECCM_DATABASE}    ${POSTGRES_USER}                  172.20.0.0/16           md5  # docker network external                                                                        
hostssl     ${ECCM_DATABASE}    ${ECCM_POSTGRES_USER}             172.20.0.0/16           md5  # docker network external                                                                        
hostssl     all                 ${PEEPER_MONITOR_POSTGRES_USER}   172.20.0.0/16           md5  # docker network external                                                                        
hostssl     repmgr              ${REPMGR_USER}                    172.20.0.0/16           md5  # docker network external

# Опционально: удаленный доступ администратора к БД                                                                                                                                             
hostssl     all                 all                               <admin_ip>/32           md5  # опционально: IP адрес для удаленного подключения администратора к БД

# Опционально: доступ приложений ECCM инсталляции отказоустойчивой системы с БД на отдельном сервере
hostssl     ${ECCM_DATABASE}    ${POSTGRES_USER}                  <master_app_ip>/32      md5  # IP адрес Master-ECCM                                                                       
hostssl     ${ECCM_DATABASE}    ${ECCM_POSTGRES_USER}             <master_app_ip>/32      md5  # IP адрес Master-ECCM                                                                       
hostssl     all                 ${PEEPER_MONITOR_POSTGRES_USER}   <master_app_ip>/32      md5  # IP адрес Master-ECCM
hostssl     repmgr              ${REPMGR_USER}                    <master_app_ip>/32      md5  # IP адрес Master-ECCM

hostssl     ${ECCM_DATABASE}    ${POSTGRES_USER}                  <slave_app_ip>/32       md5  # IP адрес Slave-ECCM                                                                       
hostssl     ${ECCM_DATABASE}    ${ECCM_POSTGRES_USER}             <slave_app_ip>/32       md5  # IP адрес Slave-ECCM                                                                       
hostssl     all                 ${PEEPER_MONITOR_POSTGRES_USER}   <slave_app_ip>/32       md5  # IP адрес Slave-ECCM                                                                       
hostssl     repmgr              ${REPMGR_USER}                    <slave_app_ip>/32       md5  # IP адрес Slave-ECCM                           
Подсказка

IP-адреса всех узлов отказоустойчивой системы будут добавлены автоматически при запуске ECCM.

Синхронизируйте конфигурационные файлы между узлами:

Блок кода
languagebash
themeRDark
sudo rsync -av --delete --rsync-path="sudo rsync" eccm/2.910/postgres/data/pg_hba.cluster.conf.tpl <имя пользователя сервера>@<IP-адрес сервера назначения>:<полный путь до директории eccm>/postgres/data/

В файле .env.cluster измените значение параметра RECONFIGURE_CLUSTER на true и перезапустите систему в соответствии с инструкцией в разделе "Запуск ECCM в отказоустойчивой системе".

Примечание

Во избежание ошибок верните значение параметра RECONFIGURE_CLUSTER на false после перезапуска

...