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