ЕГАИС. Устанавливаем УТМ 4.2.0 на Debian (Ubuntu)

  • Автор:

egais-utm420-linux-000.pngВажной частью инфраструктуры ЕГАИС является универсальный транспортный модуль (УТМ) через который идет все взаимодействие прикладного ПО с системой. С 1 июня 2021 года Росалкогольрегулирование требует обязательно перейти на УТМ 4.2.0, работа с более старыми версиями УТМ более невозможна. Несмотря на то, что версии УТМ под Linux давно существуют официальная документация обходит вопрос его установки и эксплуатации стороной. Поэтому будем устранять эту недоработку и поделимся собственным опытом, основанным на многолетней работе с УТМ именно на этой платформе.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Статья обновлена 19.12.2023

Начнем с грустного. У нас складывается впечатление, что в ФСРАР над ЕГАИС работают две совершенно разные команды, которые к тому же не знают о существовании друг друга. Чтобы получить дистрибутив УТМ официальным путем вам потребуется Windows и Internet Explorer, по другому попасть в личный кабинет ЕГАИС у вас не получится. Оттуда скачиваем актуальный пакет для платформы Linux, либо копируем ссылку, на текущий момент это УТМ 4.2.0 b2525 для Debian 7 / Debian 8 / Ubuntu 14.04 LTS. Пусть вас не смущают в описании пакета достаточно древние по меркам 2022 года дистрибутивы, УТМ прекрасно работает в актуальных версиях Linux, а по стабильности работы, по нашим собственным ощущениям, даже превосходит Windows-версию.

Подготовка сервера

К сожалению, УТМ для Linux продолжает существовать только в 32-разрядной версии, поэтому сразу включим поддержку мультиархитектуры (мы подразумеваем что вы используете 64-разрядный Linux):

dpkg --add-architecture i386

После чего обязательно обновим список пакетов:

apt update

Затем установим необходимые зависимости и пакеты для работы с аппаратными ключами:

apt install libc6:i386 libncurses5:i386 libstdc++6:i386 pcscd acl libpcsclite1:i386

Для управления службами УТМ требуется пакет supervisor:

apt install supervisor

И наконец библиотека libssl, которая реализует протоколы защищенного обмена данными TLS. В разных версиях дистрибутивов может присутствовать разная ее версия, поэтому для ее поиска рекомендуем воспользоваться ресурсами packages.debian.org и packages.ubuntu.com, задаете в поиске libssl и смотрите какая именно версия присутствует в вашем дистрибутиве.

Для Debian 10 и Ubuntu 20.04 LTS это libssl1.1, установим его:

apt install libssl1.1:i386

Переход с УТМ 3.0.8

Если вы переходите на УТМ 4.2.0 с предыдущей версии УТМ 3.0.8, то все требуемые зависимости у вас установлены и никаких подготовительных работ проводить не надо. Но вам потребуется принять все документы из старой версии УТМ, чтобы во входящих и исходящих ничего не было и приостановить на время обновления продажи алкоголя.

После этого удалим старый УТМ:

apt remove u-trans

Но после его удаления останется директория /opt/utm с базой данных УТМ. На всякий случай сохраним ее в архив:

tar -czf /opt/utm.tgz /opt/utm

А затем удалим рабочую директорию:

rm -rf /opt/utm

Еще раз напомним, перед всеми операциями по обновлению УТМ завершите текущий документооборот и убедитесь, что в УТМ нет необработанных сообщений.

Установка УТМ 4.2.0

Некоторое время назад у разработчиков УТМ был публичный репозиторий, сейчас его нет, по крайней мере о нем ничего не известно. Поэтому единственный вариант установки УТМ на сегодняшний день - это скачать пакет с официального сайта. Ниже будет дана последовательность команд для актуального на данный момент релиза. Перед этим перейдем в домашнюю директорию.

cd ~
wget http://egais.ru/files/u-trans-4.2.0-2525-i386.deb

После чего останется только установить скачанный пакет:

dpkg -i u-trans-4.2.0-2525-i386.deb

Важно! Если к серверу не подключен аппаратный ключ, то УТМ будет установлен с поддержкой JaCarta и изменить этот выбор будет можно только удалением и повторной установкой пакета. Поэтому, если вы используете Рутокен, то ключ должен быть вставлен в ПК перед установкой пакета.

Для проверки работы службы воспользуйтесь командой:

supervisorсtl status

egais-utm420-linux-001.png

Обратите внимание, что в УТМ 4.2.0 вместо трех служб осталась одна, управлять ею можно при помощи команд:

supervisorсtl start | stop | restart | status utm

Через некоторое время после запуска службы будет доступен веб-интерфейс, который использует порт 8080. По сравнению с предыдущей версией он получил значительно развитие и теперь это действительно полезный и удобный инструмент, в который перенесли многие возможности из личного кабинета. К наиболее востребованным можно отнести генерацию ключа доступа (перевыпуск RSA-сертификата) и повторный запрос документов ЕГАИС. Теперь для этого не нужно останавливать УТМ, извлекать ключ и идти искать Internet Explorer.

egais-utm420-linux-002.pngТакже добавлен раздел техподдержки, что тоже очень важно, все, кто работал с ЕГАИС знают как там обстояли дела с поддержкой. Теперь же все сосредоточено в одном месте. Мы пока не можем сказать как работает этот инструмент, но начинание однозначно хорошее.

egais-utm420-linux-003.png

Обновление УТМ 4.2.0

Как уже было сказано выше, никаких репозиториев у четвертой версии УТМ нет и для обновления вам придется скачать и установить новую версию пакета вручную. Но если вы попытаетесь пойти привычным для пользователя Linux путем и установить новый пакет поверх старого, то вас ждет достаточно неприятный сюрприз. Программа не умеет обновлять собственную базу данных и увидев рабочий каталог предыдущей версии УТМ прекращает установку.

egais-utm420-linux-004.png

Поэтому завершите весь документооборот ЕГАИС, чтобы в УТМ не осталось непринятых документов, также убедитесь, что получены все подтверждения и ответы на запросы. Розничную продажу алкоголя на время обновления следует прекратить.

Затем остановим УТМ:

supervisorсtl stop utm

И переименуем рабочий каталог (напоминаем, в Linux за переименование и перемещение отвечает одна и та же команда:

mv /opt/utm /opt/utm_old

Для актуальных версий нужно установить дополнительную зависимость, сам пакет этого не умеет:

apt install acl

Удаляем старую версию пакета:

apt remove u-trans

Теперь можем повторить процесс установки, все пройдет нормально (в нашем случае обновляем УТМ на выпуск 2525):

dpkg -i u-trans-4.2.0-2525-i386.deb

После обновления вы можете столкнуться с тем, что на главной странице УТМ в разделе Основные параметры будет везде "Ошибка получения данных".

egais-utm420-linux-006.pngВ этом случае перейдите в раздел Настройки (значок с шестерней справа вверху) и выполните обновление настроек УТМ, после чего компьютер рекомендуется перезагрузить.

egais-utm420-linux-007.pngПри этом следует отличать данную ситуацию от действительных ошибок работы УТМ, которые могут отражаться на главной странице, в последнем случае нужно будет заняться их анализом и исправлением.

Ошибка java.lang.OutOfMemoryError: Java heap space

Внешним проявлением этой ошибки является невозможность отправить либо получить документы из УТМ ЕГАИС, текст ошибки может быть разным и зависит от конкретной прикладной программы. Вторым симптомом является зависание или полный отказ работы веб-интерфейса УТМ. Если проанализировать логи, например, файл /var/log/utm-trans.out.log то мы найдем там следующее сообщение:

java.lang.OutOfMemoryError: Java heap space

Которое говорит о недостатке памяти для виртуальной машины Java.

egais-utm420-linux-008.pngВсе существующие материалы по этой ошибке относятся к Windows версии УТМ и не могут помочь в случае использования Linux, поэтому решение пришлось искать самостоятельно. Откроем файл /opt/utm/transport/bin/transport.sh и сразу после строки:

exec "$JAVACMD" $JAVA_OPTS \

Добавим строку:

-Xmx1024M -Xms768M \

Которая установит минимальный и максимальный размер выделяемой памяти как 768 МБ и 1024 МБ, данные рекомендации взяты нами из официальных рекомендаций Oracle и проверены на практике, разработчики УТМ рекомендуют устанавливать 500 МБ и 1000 МБ. При этом убедитесь, что в системе достаточно свободной оперативной памяти.

egais-utm420-linux-009.pngПосле чего сохраните изменения в файле и перезапустите УТМ:

supervisorсtl restart utm

При необходимости выделяемое количество памяти следует откорректировать.

Пересборка пакета УТМ

При обновлении большого числа установленных транспортных модулей вы можете столкнуться с ситуацией, что вам придется заново вносить описанные выше изменения по выделению памяти, что безусловно, неудобно. Можно ли избежать дополнительной ручной работы? Конечно, можно, для этого внесем изменения прямо в deb-пакет. Выполнить описанные ниже действия можно на любой основанной на Debian системе, как с графической оболочкой, так и без.

В терминале перейдем в директорию со скачанным пакетом и распакуем его в папку u-trans:

dpkg -x u-trans-4.2.0-2525-i386.deb u-trans

Создадим внутри дополнительную директорию DEBIAN и извлечем туда служебные данные пакета:

mkdir u-trans/DEBIAN
dpkg -e u-trans-4.2.0-2525-i386.deb u-trans/DEBIAN

Теперь откроем u-trans/opt/utm/transport/bin/transport.sh и внесем в него нужные изменения.

egais-utm420-linux-010.pngСохраняем изменения и заново собираем пакет:

dpkg -b u-trans u-trans-4.2.0-2525-mem-i386.deb

В команде указываем директорию с распакованным пакетом и желаемое название файла. Советуем задать имя нового пакета отличным от исходного, чтобы впоследствии не было путаницы. Всё, теперь можем обновлять наш парк транспортных модулей сразу с необходимыми настройками УТМ.

Как видим, установить новый УТМ 4.2.0 на платформе Linux достаточно несложно, а сам продукт серьезно развивается и предлагает множество новых функций и улучшений, будем надеяться, что все это будет работать так как задумано и существенно облегчит непростую работу с системой ЕГАИС.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments