Перейти к основному содержимому

Особенности работы с ОС Astra Linux «Смоленск»

В случае проведения сценария установки СУБД Pangolin потребуется выполнить:

  1. Предварительные действия из данного раздела
  2. Сценарий из общей инструкции ручной установки
  3. Общие шаги из данного раздела после ручной установки.

В случае проведения сценария обновления СУБД Pangolin потребуется выполнить:

  1. Предварительные действия из данного раздела
  2. Сценарий из общей инструкции ручного обновления
  3. Общие шаги из данного раздела после обновления.

Либо выполнить действия из данного раздел после проведения основного сценария обновления.

В случае использования актуальной версии СУБД Pangolin для активации релиза «Смоленск» ОС Astra Linux выполните действия представленные в данном разделе:

  1. Предварительные действия (активация «Смоленска»).
  2. Общие шаги

Предварительные действия перед установкой/обновлением СУБД Pangolin

В данном подразделе представлены подготовительные действия перед установкой, либо обновлением СУБД Pangolin при использовании ОС Astra «Смоленск».

После выполнения данных действий требуется перейти к основной инструкции по установке, либо по обновлению СУБД.

Проверка активированного максимального уровня защищенности «Смоленск» и включенных МРД, МКЦ

Необходимо выполнить следующие команды:

sudo astra-modeswitch get
sudo astra-mic-control status
sudo astra-mac-control status

Ожидаемый результат:

2
ACTIVE
ACTIVE

Если вывод отличается, то необходимо предварительно активировать максимальный уровень защищенности «Смоленск» и выполнить перезагрузку:

sudo astra-modeswitch set 2
sudo astra-mic-control enable
sudo astra-mac-control enable

sudo reboot

Настройка пользователя для проведения сценариев

Настройте пользователя, от имени которого будет осуществляться сценарий.

  1. Добавьте пользователя в группу astra-admin:

    sudo usermod -aG astra-admin username
  2. Выдайте максимальную категорию целостности:

    sudo pdpl-user -l 0:0 -i $(cat /sys/module/parsec/parameters/max_ilev) -c 0:0 username

Общие действия при установке/обновлении СУБД Pangolin

В данном разделе представлены действия, которые необходимо выполнить после проведения установки, либо обновления СУБД Pangolin при использовании ОС Astra «Смоленск».

Шаг 1. Выдача прав пользователям postgres и kmadmin_pg после их создания

При установке пакетов серверной и клиентской части СУБД будут созданы пользователи postgres и kmadmin_pg. Для корректного проведения сценария выдайте права пользователям, после их создания:

sudo usercaps -m +9 postgres #выдача PARSEC_CAP_READSEARCH
sudo usercaps -m +9 kmadmin_pg
sudo pdpl-user -l 0:0 -i $(cat /sys/module/parsec/parameters/max_ilev) -c 0:0 postgres # присвоение максимального уровня целостности
sudo pdpl-user -l 0:0 -i $(cat /sys/module/parsec/parameters/max_ilev) -c 0:0 kmadmin_pg

PARSEC_CAP_READSEARCH позволяет игнорировать мандатную политику при чтении и поиске файловых объектов, но не при записи.

Эти права необходимы для использования хранилища паролей, а также использования утилит pdp*.

Шаг 2. Настройка service-файлов

Необходимо создать файлы конфигурации для systemd пользователей postges и kmadmin_pg.

  1. Создайте директорий конфигурации systemd и настройте права. Выполните следующие команды:

    sudo mkdir -p /lib/systemd/system/user@<uid_postgres>.service.d
    sudo chown postgres:postgres /lib/systemd/system/user@<uid_postgres>.service.d

    sudo mkdir -p /lib/systemd/system/user@<uid_kmadmin_pg>.service.d
    sudo chown kmadmin_pg:kmadmin_pg /lib/systemd/system/user@<uid_kmadmin_pg>.service.d

    Замените <uid> на реальный UID пользователя.

  2. В каждой из созданных директорий создайте файл конфигурации со следующим содержимым:

    # Для пользователя postgres
    printf "[Service]\nCapabilitiesParsec=parsec_cap_readsearch\n" | sudo tee /lib/systemd/system/user@<uid_postgres>.service.d/postgres.conf

    # Для пользователя kmadmin_pg
    printf "[Service]\nCapabilitiesParsec=parsec_cap_readsearch\n" | sudo tee /lib/systemd/system/user@<uid_kmadmin_pg>.service.d/kmadmin_pg.conf
  3. Выполните перезапуск сервисов:

    systemctl daemon-reload
    systemctl restart user@<uid_postgres>.service
    systemctl restart user@<uid_kmadmin_pg>.service

Шаг 3. Изменение прав выполнения ExecStartPre

Для команд создания директорий и смены владельца (mkdir, chown, chmod) в начале строки добавьте символ +. Это необходимо для корректного выполнения команд с повышенными привилегиями в Astra Linux. Пример:

ExecStartPre=/bin/mkdir -p ...ExecStartPre=+/bin/mkdir -p ...

Также удалите строку PermissionsStartOnly=true, если она присутствует.

Шаг 4. Проверка заполненного service-файла

Пример заполненного pangolin-manager.service с учетом вышеописанных изменений для включенной функциональности «Отказ от root»:

[Unit]
Description=Runners to orchestrate a high-availability PostgreSQL
After=syslog.target network.target

[Service]
Type=simple

# Read in configuration file if it exists, otherwise proceed

Environment="PG_LICENSE_PATH=/opt/pangolin-license"
Environment="PG_LD_LIBRARY_PATH=/opt/pangolin-dbms-server/lib"
Environment="PG_PLUGINS_PATH=/opt/pangolin-dbms-server/lib"
Environment="PG_CLIENT_PLUGINS_PATH=/opt/pangolin-dbms-client/lib"
Environment="LD_LIBRARY_PATH=/opt/pangolin-manager/lib"
Environment="PATRONI_PLUGINS_PATH=/opt/pangolin-manager/lib"
Environment="PYTHONPATH=/opt/pangolin-manager/lib/python3/site-packages:/opt/pangolin-manager/lib64/python3/site-packages"
LimitNOFILE=65536

# Pre-commands to start watchdog device
# Uncomment if watchdog is part of your patroni setup
ExecStartPre=-/bin/mkdir -p /var/run/user/997/pangolin-dbms
ExecStartPre=/bin/chown -R postgres:postgres /var/run/user/997/pangolin-dbms
ExecReload=/bin/kill -HUP $MAINPID

WorkingDirectory=/opt/pangolin-manager
ExecStart=/opt/pangolin-manager/bin/pangolin-manager-bin/pangolin-manager.bin /etc/pangolin-manager/postgres.yml
Restart=on-failure
KillMode=process

# Disable restart limits
StartLimitInterval=0

[Install]
WantedBy=default.target

Шаг 5. Корректировка прав скриптов .sh

При использовании скриптов .sh (например inplace_upgrade.sh) необходимо присвоить ему высокую целостность.

  1. Проверьте текущие права:

    sudo pdp-ls -M /opt/pangolin-utilities/bin/
    total 8
    drwx------m-- 3 postgres postgres Уровень_0:High:Нет:0x0 pg_inplace_upgrade
  2. Присвойте высокую категорию целостности:

    sudo pdpl-file -v 0:$(cat /sys/module/parsec/parameters/max_ilev) /opt/pangolin-utilities/bin/pg_inplace_upgrade
    Changed to 0:63 for "/opt/pangolin-utilities/bin/pg_inplace_upgrade"

    При недостаточных правах, во время запуска скриптов, возможно возникновение ошибки Permission denied.