Перейти к содержанию

История изменений

Пакеты агентов и набор сервера одного выпуска совместимы друг с другом. Обновление сервера — по UPGRADE.md из набора выпуска, агентов — установкой нового пакета поверх старого.

1.6.1

Изменения, требующие внимания при обновлении

  • Агенты и админка работают через один https-вход набора — https://<имя сервера>:8443. Прямой http API (8090) отвечает только на самой машине сервера, а агент 1.6.1 не ходит по http к другой машине. Новая установка агента проверяет сервер по отпечатку корня (ALATYR_CA_FINGERPRINT, его печатает ./first-up.sh). Агентов, настроенных на http://<сервер>:8090, переводите так: до обновления сервера ALATYR_API_BIND=0.0.0.0 в .env, затем обновление агентов сразу с новым адресом и отпечатком, затем ALATYR_API_BIND=127.0.0.1 — Быстрый старт → Обновление.
  • Порядок обновления: сначала сервер — все его экземпляры, — потом агенты. Агент 1.6.1 передаёт в заявке сертификата для входа по карте домен учётной записи, который понимает только сервер 1.6.1. Агент 1.6.1 с сервером 1.6.0 работает как прежде. Агенту 1.6.0 на Windows, которому нужен новый токен регистрации, выдайте его заново или обновите агент.
  • Имя RADIUS-сервера стало обязательным для каждой сети. Профиль сети с заданным именем доставляется устройствам как обычно; сеть без имени агентам не выдаётся, а её профиль снимается с устройств. Задайте имя каждой сети до обновления — Имя RADIUS-сервера.
  • Встроенный Vault: ключ распечатывания хранится на хосте, отдельно от тома. ./first-up.sh переносит его в ./secrets/vault-unseal.key (права 0600, каталог задаётся ALATYR_VAULT_UNSEAL_DIR) и проверяет, что Vault принимает этот ключ. С ALATYR_VAULT_UNSEAL=manual ключ остаётся только у оператора, и после перезапуска Vault ждёт его. После подъёма скрипт предлагает отозвать корневой токен Vault. Резервные копии тома храните так же, как сам УЦ (Встроенный удостоверяющий центр).
  • Свой Vault: включите автоматический перевыпуск списков отзыва. Сервер раздаёт агентам только действующие списки отзыва. Чтобы они обновлялись по расписанию, а не только при отзыве, выполните на корне и на каждой точке выпуска vault write <mount>/config/crl auto_rebuild=true auto_rebuild_grace_period=12h expiry=72h. Встроенный Vault настраивается сам. Если вы отзываете сертификаты в Vault напрямую, после такого отзыва выполните vault read <mount>/crl/rotate (Ваш Vault).
  • Свой Vault: сертификат user_mtls выпускается только для подписи. Встроенный Vault перенастраивается при подъёме; для своего выполните vault patch pki_user_mtls/roles/user-mtls key_usage="DigitalSignature". Уже выданные сертификаты получат новое назначение при продлении.
  • Отзыв через API — в два шага. Сначала предпросмотр (GET /api/v1/certificates/{serial}/revoke-preview или GET /api/v1/users/{identity}/revoke-certs/preview), затем отзыв с отпечатком состава expected_plan_hash из ответа. Без отпечатка сервер отвечает 428, если состав успел измениться — 409 с новым составом. Скрипты, отзывавшие одним запросом, переведите на два шага (REST API). Массовый отзыв в админке — из карточки пользователя, с вводом его UPN.
  • Helm: Keyholder за ingress принимает запросы по TLS или от доверенного прокси. Впишите в server.trustedProxies адреса подов ingress-контроллера и включите TLS у ingress (ingress.tlsSecretName); до этого Keyholder за ingress отвечает 403 — Установка.
  • Вход в домен по карте при настроенном каталоге AD: выдача и продление сверяются с каталогом. На одобрении и при автопродлении сервер сверяет UPN и SID сертификата с учётной записью AD. Пока каталог недоступен, заявка ждёт с причиной «ждёт каталог». Заявка без SID отклоняется. Без ALATYR_DIRECTORY_URL поведение прежнее.
  • Вход в домен по карте: корень Enterprise CA задаётся отпечатком при установке агента. ALATYR_CA_FINGERPRINT=<отпечаток корня Alatyr>,<отпечаток корня Enterprise CA>; first-up.sh печатает второй отпечаток сам, если корень ЦС домена лежит в ./trust и назван в ALATYR_EXTRA_CA_FILE. На новых установках агента корень, отпечатка которого нет в списке, не устанавливается: окно агента и админка показывают «Одобрено, но не устанавливается» с отпечатком присланного корня. Агенты, обновлённые с 1.6.0, работают как прежде, а заданный им отпечаток тоже сверяется — рекомендуем задать его заранее (Пошаговое руководство). Перед сменой корня Enterprise CA допишите агентам и новый отпечаток — «Смена корня Enterprise CA».
  • Смена PIN ключа карты в TPM выпускает новый ключ и проходит одобрение по политике цели. Касается входа в домен по карте на Windows и Linux и ключа VPN на Linux. При выключенном автоодобрении смену одобряет администратор; до одобрения действует прежний PIN, и окно агента так и говорит. После выдачи прежний сертификат отзывается. Для входа через AD CS админка называет серийный номер прежнего сертификата — отзовите его в AD CS.
  • Linux: окно и значок агента — отдельный пакет alatyr-agent-gui. Пакет alatyr-agent полностью работает без графики (серверы, машины без рабочего стола). Пакет окна (deb и rpm, amd64 и arm64) той же версии добавляет окно, значок, автозапуск значка и запись «Alatyr» в меню приложений; ему нужен WebKitGTK. При обновлении ставьте оба пакета одной командой (Окно агента).
  • Windows: служба агента после обновления один раз обновляет ключ аттестации машины. Действий на машине не нужно; если обновление не прошло, админка помечает устройство. При нескольких экземплярах сервера ставьте их за балансировщик с липкими сессиями.

Установка и обновление сервера

  • first-up.sh сверяет подсеть сети набора с ALATYR_NET_SUBNET (по умолчанию 198.18.231.0/24) и при расхождении пересоздаёт стек, не трогая тома. Посторонние контейнеры в этой сети он называет и печатает команду, чтобы подключить их обратно.

Вход в домен по смарт-карте

  • UPN и SID сертификата берутся из каталога AD. Сервер находит ровно одну учётную запись — по userPrincipalName, затем по ALATYR_DIRECTORY_IDENTITY_ATTRIBUTE (по умолчанию mail), поэтому вход работает и там, где почта пользователя в IdP отличается от его UPN в AD. Найденный UPN виден в карточке заявки (Откуда берутся UPN и SID).
  • Вход по RDP с машины вне домена: сертификат несёт домен учётной записи (Вход по RDP).
  • Linux: сертификат для входа выдаётся устройствам с заверенным TPM.
  • Windows: смена PIN доступна и на устройствах, закреплённых за чипом.
  • Windows, ступень «PIN карты»: сертификат карты в личное хранилище кладёт служба распространения сертификатов Windows. Если она остановлена или отключена, окно агента так и говорит.
  • Смена PIN сверяет текущий PIN по общему счёту попыток карты — с той же блокировкой ключа, что и при входе. После любого исхода смены действует ровно один PIN — прежний или новый, — и окно говорит, какой.

Выдача и продление сертификатов

  • «Задать PIN» на Windows и Linux сразу готовит ключ к подписи — вводить PIN повторно для user_mtls не нужно.
  • Агент получает списки отзыва текущего и прежних издателей точки выпуска — отзыв проверяется и после смены издателя в Vault.
  • Список отзыва обновляется после каждого отзыва; при сбое сервер повторяет попытку каждые 5 минут до успеха, в том числе после перезапуска.
  • Отозванный сертификат агент замечает сам — проверяет user_mtls и VPN не чаще раза в 10 минут — и через 15 минут подаёт новую заявку.
  • Предписание «Выписать цель» закрывается после проверки отзыва: пока список отзыва недоступен, оно остаётся открытым до следующей проверки.
  • «Продление ждёт администратора» — одно сообщение на состояние; уведомление о том же отказе не повторяется после перезапуска значка.

Окно агента и значок

  • Короткое меню значка на всех ОС. В заголовке — общий статус: «Alatyr — всё работает (N)» или слово худшего статуса; ниже — только цели, которым нужно внимание, и нажатие открывает окно на этой цели. Точка на значке — цвета худшего статуса. Пункты «Не спрашивать» для SSH и для входа на рабочие сайты — сразу в меню, сроки — в их подменю. Язык выбирается в настройках окна.
  • Одни и те же слова в значке и окне: имена целей совпадают, а статус один из четырёх — «Работает», «Ждёт администратора», «Требует внимания», «Не работает». Сертификат истёк, а новая заявка ждёт решения — «Ждёт администратора».
  • Значок монохромный и следует теме системы, как соседние значки; цветной осталась только точка статуса.
  • Сводка окна согласована с плашками и ведёт к нужному шагу: если у человека есть свой шаг, сводка сначала ведёт к нему; «нажмите кнопку рядом» — только когда кнопка есть.
  • Кнопка «Обновить настройки» в разделе «Связь с сервером»: агент сверяется с сервером за секунды, а не на следующем плановом опросе, и окно показывает, до какого времени ждёт настроек. На Linux настройки применяются на ближайшем опросе, окно называет его срок.
  • Отказы PIN — на языке окна: неверный PIN, блокировка, отсутствие ключа. Пауза, которую Windows держит после нескольких неверных PIN подряд, названа паузой — со сроком, когда можно повторить. Дословный текст с кодами — в «Скопировать для администратора».
  • Время в окне — местное, в одной форме «ГГГГ-ММ-ДД ЧЧ:ММ».
  • Отпечаток EK машины — строкой в блоке для администратора и командой alatyr-agent ek, в той же форме, что в админке: его можно сверить перед «Закрепить EK устройства».
  • Экран ненастроенного агента объясняет, что не задано, и даёт три шага.
  • Windows и Linux: скрытый значок возвращается в том же сеансе. На Windows — запуском Alatyr Agent из «Пуска» или переключателем в настройках окна; на Linux — записью «Alatyr» в меню приложений.
  • Windows: в простом режиме окно облегает панель, заголовок окна следует выбранной теме.

SSH

  • Keyholder за HTTPS-адресом админки видит адрес вашего сервера; список разрешённых сетей применяется к нему. Свой обратный прокси или балансировщик перед набором впишите в ALATYR_TLS_OFFLOAD_PROXIES и в ALATYR_TRUSTED_PROXIES вместе с адресами служб набора (Настройка SSH-доступа, шаг 4). Запись ALATYR_TLS_OFFLOAD_PROXIES, которая не адрес и не CIDR, останавливает службу web при любом значении ALATYR_TLS.
  • Настройка SSH-доступа: корень Alatyr в доверии вашего сервера. Шаг 3 описывает, как скачать корень, сверить его отпечаток SHA-256 и положить в системное доверие Debian/Ubuntu или RHEL/Alma; скрипты шага 5 принимают файл корня через ALATYR_CACERT (Настройка SSH-доступа).
  • macOS: продление сертификата SSH — одним касанием Touch ID, сервер одобряет его сам. Строка «SSH» в окне даёт кнопку «Выпустить», уведомление о сроке подсказывает её нажать, и окно ведёт подтверждение до исхода.
  • macOS: ключ SSH, которым агент подписывает, показан как «Работает» при любой настройке клиента ssh. Если подписей не было, окно показывает готовую строку IdentityAgent с кнопкой «Скопировать».
  • alatyr-agent ssh-key-rotate на всех ОС заменяет ключ реестра ssh_key; ключ сертификата SSH и заявки сертификата SSH и user_mtls команда не трогает (SSH-ключ без сертификата).
  • Админка: отказ по ключу SSH хранит причину. Ключ, отклонённый вручную, можно одобрить; ключ, отклонённый отзывом устройства, остаётся отклонённым и после разблокировки.

VPN

  • Смена PIN или ступени подтверждения VPN уходит администратору на одобрение на всех ОС — с подтверждением от прежнего ключа; на Windows админка просит отдельного подтверждения смены ключа. До одобрения действует прежний PIN, и окно и значок говорят об этом на каждой стадии.
  • Пока подача VPN на паузе, окно показывает причину, что снять администратору, время следующей попытки и «Скопировать для администратора».
  • Windows: «Пересоздать ключ» для VPN пересоздаёт ключ; где пересоздания нет, кнопки нет.
  • Linux: строка pkcs11-id в профиле OpenVPN постоянна при перевыпуске — последний раз она изменится при первом перевыпуске после обновления.
  • Смена ступени на «PIN карты» при открытом окне сразу ведёт к «Задать PIN».

Kubernetes

  • Linux: доступ kubectl у обычного пользователя без sudo — alatyr-agent k8s kubeconfig и плагин учётных данных. Прежний kubeconfig переписывать не нужно.
  • Linux: цель k8s бережнее обходится с токеном — держит в нём один ключ, лишние копии убираются сами. Команды kubectl-плагина пишут журнал в ~/.local/state/alatyr-agent/k8s-identity.log.

macOS

  • Chrome и Safari предъявляют сертификат user_mtls напрямую, в том числе сервисам, которые запрашивают сертификат конкретного издателя. Уже выданные сертификаты подходят без перевыпуска.
  • Мак без App Attest (ниже macOS 27) работает без сброса. В настройках безопасности ступени «Отклонять выдачу» и «Требовать подпись каждого запроса» предупреждают, сколько маков без ключа App Attest они затронут, и требуют подтверждения. Мак без Secure Enclave виден в окне агента и в карточке заявки.

Windows

  • Профили Wi-Fi ставятся и снимаются без netsh и PowerShell. Окно различает «профиля нет», «служба Wi-Fi не запущена» и «нет прав».
  • Служба агента пишет журнал старта в C:\ProgramData\AlatyrAgent\service-start.log: если служба не поднялась при загрузке, причину видно.
  • Выдача user_mtls проходит без дополнительных окон Windows и при смене ступени посреди выдачи.
  • Пользовательская часть агента на Windows и Linux работает со своим токеном с правами только на пользовательские цели. Машинный токен обновляется сам при первой выдаче после обновления.
  • Сертификат для входа на рабочие сайты по смарт-карте после перевыпуска ставится в личное хранилище пользователя.
  • Служба агента стартует после перезагрузки и перезапускается после сбоя.

Linux

  • RHEL, Alma и Rocky 9 с TPM: агент работает со штатным модулем tpm2-pkcs11 1.5. На EL9 со штатным tpm2-pkcs11 1.5 VPN работает в режиме PIN карты (card_pin). Если цели vpn назначена ступень «Без подтверждения», окно агента и карточка устройства в админке называют, что сделать — VPN → Особенности.
  • Окно и значок точнее определяют состояние ключа user_mtls.
  • rpm-пакет рекомендует openssl-pkcs11 для EAP-TLS; подсказка установки работает в RHEL/Alma 8 и 9 и Fedora.

Админка

  • Отзыв показывает до подтверждения всё, что будет отозвано, включая другие действующие сертификаты на том же ключе — в том числе сертификаты нового владельца переданного устройства. Изменившийся с момента показа состав не отзывается: ответ 409 с новым составом.
  • Отозвать все сертификаты пользователя можно только из его карточки, с вводом имени пользователя для подтверждения; в строке сертификата отзывается только он сам.
  • Слишком большой для одного подтверждения состав (больше 10 000 сертификатов или больше 1000 устройств и целей у одного пользователя) отклоняется ответом 422 — отзывайте по устройству или по сертификатам. Массовый отзыв, не уложившийся в 5 минут, отзывает начатое и называет остальное в ответе 207; повтор отзыва его добирает.
  • Ступень подтверждения можно назначить одному устройству из его карточки; «Как у издателя» возвращает общую настройку. Перед откатом на 1.6.0 снимите такие назначения.
  • Карточка устройства показывает действующие настройки: блок «Автопродление на этом устройстве», ступень по отчёту устройства в колонке «Защита ключа», «не применяется» у k8s.

1.6.0

Изменения, требующие внимания при обновлении

  • Порядок обновления сервера изменился: первым шагом, до смены версии и docker compose pull, — ./migrate-env.sh. Он дописывает в .env строку COMPOSE_PROFILES с прежним составом служб и сохраняет прежний файл рядом; без этой строки стек не поднимется. first-up.sh вызывает его сам.
  • Набору развёртывания нужен Docker Compose 2.20 или новее.
  • Новая служба pki-public отдаёт агентам списки отзыва и сертификаты УЦ и занимает на хосте порт ALATYR_PKI_PORT (по умолчанию 8200). Если порт занят — задайте другой в .env до подъёма.
  • Адреса AIA/CRL в сертификатах — только достижимые с клиентов (ALATYR_PKI_PUBLIC_ADDR, в Helm — pki.publicAddr): пустой или внутренний адрес больше не заменяется именем службы, адреса не пишутся вовсе. Внутреннее имя стоило macOS около 5 секунд на каждое новое mTLS-соединение. Уже выданные сертификаты со старым адресом — перевыпуском (Адрес PKI в сертификатах).
  • Вход в домен по карте (ad_logon): набор выпуска передаёт серверу настройки каталога AD (ALATYR_DIRECTORY_*) и издателя SCEP. Без каталога сертификат выписывается без SID пользователя, и вход в домен по нему не проходит — заполните .env по env.example и пошаговому руководству.
  • Продление на том же ключе по умолчанию включено у целей user_mtls, ssh, k8s и vpn; обновление включает его и у уже настроенных k8s и vpn, если администратор не менял переключатель сам. Если каждое продление должно проходить через администратора — выключите его до обновления агентов.
  • Отзыв сертификата отзывает и другие действующие сертификаты того же устройства и пользователя на том же ключе.
  • Заявки без решения могут истекать по сроку. На обновляемом сервере срок выключен («без срока»): агенты прежней версии читают истечение как отказ. Включайте его после обновления агентов.
  • Отклонённая заявка больше не требует сброса агента: агент сам подаёт новую с нарастающей выдержкой (15 минут, затем вдвое дольше). Чтобы устройство перестало подавать заявки, заблокируйте его.
  • Готовый профиль OpenVPN из основы в админке больше не собирается: профиль клиента VPN настраивается вручную (Ограничения).
  • Адрес сервера в конфигурации агента теперь задаётся ключом ALATYR_SERVER. Прежнее имя WIFI_CERT_SERVER агент по-прежнему понимает. Параметры установки пакета перекрывают прежний config.env.
  • Постоянный процесс агента в сеансе пользователя называется агентом сессии (alatyr-agent session) на всех ОС: задача Windows AlatyrAgentSession, юнит Linux alatyr-agent-session.service, задание macOS com.semargl.alatyr.agent.session, журнал session.log. Обновление переносит прежние имена само; путь сокета SSH-агента не изменился. Перед понижением на 1.5.x новые имена нужно снять вручную — команды.
  • Миграции базы применяются автоматически при первом запуске нового сервера. Перед обновлением сделайте резервную копию по UPGRADE.md.

Установка и обновление сервера

  • Своё или внешнее одной строкой .env: COMPOSE_PROFILES с профилями bundled-postgres и bundled-vault. Без профиля — ваш PostgreSQL (ALATYR_DB_*, TLS verify-full по умолчанию, корень УЦ базы — ALATYR_DB_SSLROOTCERT) и ваш Vault (ALATYR_OWN_VAULT_ADDR; разовый токен администратора, которым набор настраивает Vault сам, или AppRole, заведённая администратором Vault). Существующее в вашем Vault не перезаписывается без ALATYR_VAULT_ADOPT=1. Выбор проверяет служба deps-check до подъёма — Своё или внешнее.
  • Вход в админку через Keycloak: свой сервер Keycloak или встроенный в набор.
  • Сертификат админки — ALATYR_TLS=on|files|off; files — ваш сертификат из каталога ./tls.
  • Корень ЦС вашего домена для LDAPS каталога и NDES по https — ALATYR_EXTRA_CA_FILE (файл в каталоге ./trust набора); NDES на частном адресе — ALATYR_SCEP_INTERNAL_CIDRS.
  • Helm: корни ваших УЦ — ConfigMap в trust.existingConfigMap, монтируется в /etc/alatyr/trust; CORS и SSH-подписант настроены из коробки.
  • Доступ kubectl через агента включается правкой .env, без правки файлов набора (Kubernetes).
  • first-up.sh предупреждает, если агенты будут обращаться к серверу по незащищённому http.
  • На странице выпуска рядом с архивом набора лежат docker-compose.yml и env.example — их можно посмотреть до скачивания; у каждого файла выпуска есть контрольная сумма. /api/v1/version отвечает номером выпуска.

Вход и учётные записи

  • Выход из админки завершает и сессию Keycloak: следующий вход снова спрашивает пароль.
  • Отказ во входе в админку называет причину.

Вход в Windows по смарт-карте

  • Вход по RDP смарт-картой агента: карта агента пробрасывается в сеанс RDP, сотрудник вводит PIN, пароль не нужен. Работает и с проверкой подлинности на уровне сети (NLA), и на подключениях без NLA, где вход выполняется уже внутри сеанса (Вход по RDP). Вход по RDP недоступен, если ключ карты защищён Windows Hello, — админка об этом предупреждает.
  • Ключ карты, защищённый PIN, заверяется доказательством TPM: при требовании привязки к TPM сертификат для входа выдаётся и для такой карты.
  • Неверный PIN останавливает выпуск сразу, без лишней списанной попытки.

Выдача и продление сертификатов

  • Продление на том же ключе без участия администратора — настройка для каждой цели, каждое продление и отказ — в журнале аудита.
  • Перезакрепление ключа цели: сервер сверяет, что новый ключ создан тем же чипом устройства.
  • Агент проверяет смену корневого сертификата Alatyr по подписи прежнего и принимает новый корень сам.
  • Переустановка агента на том же компьютере не требует действий на машине: администратор одобряет новую заявку в админке.
  • Администратор видит причину перевыпуска сертификата, причину, по которой выдача не дошла до устройства, и причину последнего отказа App Attest.
  • «Назначить цель и одобрить» — одним действием; колонка и фильтр «Назначение» на странице заявок и в выгрузке CSV.
  • Сохранение настроек называет, когда они дойдут до устройств.

Окно агента

  • Новое окно агента: простой режим по умолчанию и «Расширенный режим», светлая и тёмная тема, выбор языка.
  • Вкладка «Журнал» — события агента на понятном языке.
  • Лист «Нужно от вас» собирает действия, которые ждут пользователя.
  • Окно показывает стадию заявки так, как её видит сервер, и причину отзыва; у каждой проблемной строки есть причина, её можно скопировать.
  • Уведомления о подписи называют, кто и куда подписывает; запрос Touch ID называет хост, ключ и запросчика.

SSH

  • Агент подсказывает настройку SSH-клиента с учётом блоков Host и Include в ~/.ssh/config.
  • Окно «не спрашивать» для SSH открывается одним Touch ID и гаснет по сроку, блокировке экрана, выходу из сеанса и сну.

VPN

  • Ключ VPN может быть закрыт PIN карты на macOS, Windows и Linux.
  • На Windows PIN не спрашивается при каждом автоматическом переподключении OpenVPN.
  • Готовность VPN одинаково видна в окне агента и в командах status, identities, vpn.

Kubernetes

  • Агент продлевает сертификат для kubectl сам; одно подтверждение Touch ID на все кластеры.
  • На Windows продление сертификата для kubectl пока не одобряется автоматически: заявка уходит администратору в «Запросы». Если её не одобрить до истечения прежнего сертификата, kubectl перестаёт получать доступ (подробнее).

macOS

  • Виртуальная смарт-карта и считыватель ставятся вместе с агентом.
  • В пакет агента входит модуль PKCS#11 для OpenVPN Connect.
  • Каталоги сертификатов всех целей агент создаёт сам.
  • Минимальная версия — macOS 14.
  • Агент запрашивает разрешение на уведомления; профили Wi-Fi и 802.1X предлагаются повторно, если их нет в системе.

Windows

  • Сертификат mTLS с подтверждением биометрией: ключ хранится под службой агента и отдаётся браузеру через провайдер ключей Alatyr. Без Windows Hello агент отказывает с понятной причиной.
  • Установщик MSI сохраняет адрес сервера при обновлении без параметров; повторная установка той же версии обновляет установленную; ярлык в меню «Пуск».

Linux

  • Драйвер считывателя входит в пакеты deb и rpm; служба pcscd настраивается при установке.
  • 802.1X работает с несколькими проводными картами без явного выбора интерфейса.

Удаление агента

  • Полное удаление агента на macOS, Linux и Windows: снимаются ключи, сертификаты, профили и доверие к УЦ Alatyr. Чужие настройки не трогаются.

Безопасность

  • Диагностическая трасса обмена со смарт-картой не записывает PIN и расшифрованные картой данные.
  • Админка закрыта от индексации поисковиками.

1.5.6

  • Установка сервера: админка открывается по HTTPS сразу после first-up.sh; адрес списков отзыва вписывается автоматически; установщик заранее проверяет занятые порты; выдача SSH-сертификатов работает без ручной настройки.
  • macOS: в окне агента — кнопки «Выпустить» и «Запросить снова»; обновление пакета сохраняет настройки, агент работает сразу, без повторного входа; фоновые задания и уведомления — под именем Alatyr.
  • Windows: агент сам кладёт готовый профиль OpenVPN для OpenVPN GUI, основа профиля задаётся в админке («Профиль VPN»); повторный запрос VPN после отклонения — кнопкой в окне агента.
  • Админка: таблицы помещаются на экран, пояснения — во всплывающих подсказках; новый выбор языка.