Защита системной учётной записи
Системная учётная запись — учётная запись пользователя, от имени которого сервис (Web-клиент, СУБП и пр.) должен подключаться к серверу Docsvision при выполнении служебных операций.
| Не рекомендуется использовать учётные записи системных пользователей для авторизации на клиентских рабочих местах, т.к. это может привести к ошибкам в работе системы. |
При необходимости можно защитить шифрованием пароли системной учётной записи и учётной записи для работы с LDAP. Имена учётных записей шифровать не требуется. В данном разделе приведено руководство по шифрованию.
Для шифрования паролей используется утилита EncryptionTool, которая может быть установлена на Linux или Windows.
| Для шифрования паролей потребуется использовать сертификаты RSA. |
Установка и запуск утилиты на Linux
В Linux утилита устанавливается следующей командой:
-
Astra Linux / Альт Сервер
-
РЕД ОС / SberLinux
$ sudo apt-get install docsvision-encryption
$ sudo dnf install docsvision-encryption
После установки утилита располагается по пути: /usr/lib/docsvision/tools/encryption.
Запустить утилиту можно из командной строки следующим образом:
./encryption [command] [options]
/usr/lib/docsvision/tools/encryption/encryption [command] [options]
Создание сертификата шифрования в Linux
-
Установите пакет
opensslкомандой:-
Astra Linux / Альт Сервер
-
РЕД ОС / SberLinux
$ sudo apt-get install openssl
$ sudo dnf install openssl
-
-
Сгенерируйте и сохраните сертификат
docsvision.pfx:$ openssl pkcs12 -inkey docsvision.key -in docsvision.crt -export -out docsvision.pfx (1)
Пароль на сертификат указывать не нужно. Имена файлов ключей и пути можно указывать произвольные.
-
Добавьте сертификат в доверенные, скопировав его в директорию
/usr/local/share/ca-certificates/. -
Обновите список доверенных сертификатов:
-
Astra Linux / Альт Сервер
-
РЕД ОС / SberLinux
$ sudo update-ca-certificates
$ sudo update-ca-trust
Полученный сертификат в формате
.pfxнеобходимо скопировать в каталог~/.dotnet/corefx/cryptography/x509stores/my. Если каталог отсутствует, создайте его самостоятельно. Пользователь, выполняющий шифрование, должен обладать правами на чтение и выполнение файлов в каталоге, а также правами на чтение сертификата. -
Установка и запуск утилиты на Windows
В ОС Windows утилита будет установлена вместе с серверной частью модуля Платформа и после установки располагается по пути C:\Program Files\Docsvision\Platform\Tools.
encryption.exe [command] [options]
"C:\Program Files\Docsvision\Platform\Tools\encryption.exe" [command] [options]
Создание сертификата в Windows
Аналогичным образом сертификат можно сгенерировать в Windows и экспортировать в формате .pfx без пароля.
В Windows полученный сертификат необходимо установить в хранилище сертификатов текущего пользователя.
Особенности настройки шифрования в Windows
В ОС Windows недостаточно указывать штамп сертификата в параметре Штамп сертификата шифрования паролей в настройках модулей Управление процессами и Платформа, потребуются дополнительные настройки.
-
Установите программу PsExec на сервер под управлением Windows.
-
Установите сертификат для шифрования паролей.
-
Выполните следующую команду через PsExec:
psexec -i -u "NT AUTHORITY\\NETWORK SERVICE" cmd
По умолчанию в ОС Windows все службы запускаются от имени УЗ "NETWORK SERVICE". Если служба запускается от какой-то другой, укажите её.
-
Перейдите в оснастку сертификатов
certmgr.msc. -
Добавьте сертификат в личное хранилище пользователя.
-
Отпечаток сертификата укажите в параметре Штамп сертификата шифрования паролей для модулей "Управление процессами" и "Платформа".
-
Примените настройки и перезапустите службы dvworkflow для Linux и Docsvision Workflow Server для Windows, dvappserver для Linux и Docsvision Platform для Windows.
Шифрование пароля учётной записи
-
Зашифруйте пароль при помощи полученного сертификата.
./encryption encrypt [отпечаток сертификата]Отпечаток сертификата можно получить, выполнив запрос
openssl pkcs12 -in docsvision.pfx -nodes | openssl x509 -noout -fingerprint -
В окне терминала введите пароль учётной записи для шифрования.
В ответ будет выведен зашифрованный пароль.
-
Сохраните имя и пароль УЗ в зашифрованном виде:
-
Сохраните данные системной УЗ:
В виде переменных окружения на машине с Windows:
В конфигурационном файле Сервера приложений (модуля Платформа) на сервере Linux:
-
Данные УЗ для работы с LDAP сохраните в конфигурационном файле Сервера приложений (модуля Платформа) и/или Web-клиент:
{ "Ldap": { "AuthType": "Basic", "Credential": { "UserName": "user@domain.com", (1) "Password": "value" (2) } }, "DataProtectCertificateThumbprint": "thumbprint", (3) }1 Имя УЗ LDAP. 2 Пароль системной УЗ LDAP в зашифрованном виде. 3 DataProtectCertificateThumbprint— отпечаток закрытого ключа шифрования SHA1.
Указывается без двоеточия, например,D8602179888DC8402B393F11DCA16A3376DDF879.
Если шифровать пароль не планируется, параметр можно не указывать. -
Вместо редактирования
appsettings.jsonКонсоль управления Docsvision позволяет изменить нужные параметры через пользовательский интерфейс, настройка переменных среды не потребуется:-
Укажите данные системной УЗ и штамп сертификата шифрования в разделе "Общие настройки сервера приложений".
-
Укажите данные УЗ для работы с LDAP для модуля Платформа и/или Web-клиент в соответствующих разделах для модуля "Платформа" и/или для модуля "Web-клиент".
-
-
-
Если этого не было сделано ранее, установите сертификат шифрования в хранилище сертификатов текущего пользователя в ОС Windows и в каталог
~/.dotnet/corefx/cryptography/x509stores/myв ОС Linux.Сертификат нужно добавлять в домашнюю папку пользователя, от имени которого запускается сервис. Например, для пользователя root(от имени пользователя ROOT службы запускаются по умолчанию) полный путь будет:/root/.dotnet/corefx/cryptography/x509stores/my.
Если папка отсутствует, создайте её самостоятельно.