Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
мануал_security_server_автологин_на_softtoken [2023/04/27 08:15] infra создано |
мануал_security_server_автологин_на_softtoken [2023/08/18 05:44] (текущий) infra |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ! | + | |
+ | <note warning>Целевой аудиторией данного руководства являются системные администраторы Сервера безопасности Тундук ответственные за установку и сопровождение программного обеспечения X-Road. Документ предназначен для читателей с умеренными знаниями администрирования Linux серверов и компьютерных сетей.</note> | ||
+ | |||
+ | |||
+ | <note tip>Все команды выполняются от пользователя root.</note> | ||
+ | |||
+ | ====== В этом документе описывается утилита autologin, которая автоматически вводит PIN-код от SoftToken после запуска xroad-signer. ====== | ||
+ | |||
+ | <note important>Автологин допуступен на любой версии xroad, но, рекомендуется обновиться до версии последней релизной версии.</note> | ||
+ | |||
+ | =====Как настроить===== | ||
+ | |||
+ | 1.Устанавливаем пакет | ||
+ | |||
+ | <code>$ apt install xroad-autologin</code> | ||
+ | |||
+ | 2.Если допустимо хранение ПИН-кода на сервере в виде открытого текста, создайте файл /etc/xroad/autologin, содержащий ПИН-код. | ||
+ | |||
+ | <note tip>Файл должен быть доступен для чтения пользователю xroad</note> | ||
+ | |||
+ | <note tip>Если /etc/xroad/autologin не существует и вы не внедрили custom-fetch-pin.sh, служба не запустится.</note> | ||
+ | |||
+ | ===== Если вы не хотите хранить PIN-код в виде открытого текста, реализуйте bash-скрипт /usr/share/xroad/autologin/custom-fetch-pin.sh ===== | ||
+ | |||
+ | |||
+ | <note tip>Скрипт должен вывести PIN-код на стандартный вывод.</note> | ||
+ | |||
+ | <note tip>Скрипт должен быть доступен для чтения и выполнения пользователем xroad.</note> | ||
+ | |||
+ | <note tip>Скрипт должен выйти с кодом выхода.</note> | ||
+ | |||
+ | 0, если он смог успешно получить PIN-код | ||
+ | |||
+ | 127, если он не смог получить PIN-код, но это не фактическая ошибка, которая должна привести к сбою службы (реализация по умолчанию использует это, если /etc/xroad/autologin не существует) | ||
+ | |||
+ | другие коды выхода в ситуациях ошибок, которые должны привести к сбою службы | ||
+ | |||
+ | <code> | ||
+ | #!/bin/bash | ||
+ | PIN_CODE=$(curl https://some-address) | ||
+ | echo "${PIN_CODE}" | ||
+ | exit 0 | ||
+ | </code> | ||
+ | |||
+ | =====Детали реализации===== | ||
+ | |||
+ | 1.Создает новый сервис xroad-autologin | ||
+ | |||
+ | 2.Служба запускается после запуска xroad-signer | ||
+ | |||
+ | 3.В RHEL/Ubuntu 20.04 сервис вызывает скрипт-оболочку /usr/share/xroad/autologin/xroad-autologin-retry.sh, который, в свою очередь, вызывает autologin.expect | ||
+ | <note tip>Сценарий оболочки обрабатывает повторные попытки в случае ошибки</note> | ||
+ | |||
+ | 4.Сервис пытается ввести ПИН-код с помощью консоли подписчика скриптов | ||
+ | <note tip>Если PIN-код был правильным или неправильным, он выходит</note> | ||
+ | <note tip>Если произошла ошибка (например, из-за того, что xroad-signer еще не полностью запущен), он продолжает повторять попытки бесконечно.</note> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Автор Даниил Горбенко |