Важной частью инфраструктуры ЕГАИС является универсальный транспортный модуль (УТМ) через который идет все взаимодействие прикладного ПО с системой. С 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
Обратите внимание, что в УТМ 4.2.0 вместо трех служб осталась одна, управлять ею можно при помощи команд:
supervisorсtl start | stop | restart | status utm
Через некоторое время после запуска службы будет доступен веб-интерфейс, который использует порт 8080. По сравнению с предыдущей версией он получил значительно развитие и теперь это действительно полезный и удобный инструмент, в который перенесли многие возможности из личного кабинета. К наиболее востребованным можно отнести генерацию ключа доступа (перевыпуск RSA-сертификата) и повторный запрос документов ЕГАИС. Теперь для этого не нужно останавливать УТМ, извлекать ключ и идти искать Internet Explorer.
Также добавлен раздел техподдержки, что тоже очень важно, все, кто работал с ЕГАИС знают как там обстояли дела с поддержкой. Теперь же все сосредоточено в одном месте. Мы пока не можем сказать как работает этот инструмент, но начинание однозначно хорошее.
Обновление УТМ 4.2.0
Как уже было сказано выше, никаких репозиториев у четвертой версии УТМ нет и для обновления вам придется скачать и установить новую версию пакета вручную. Но если вы попытаетесь пойти привычным для пользователя Linux путем и установить новый пакет поверх старого, то вас ждет достаточно неприятный сюрприз. Программа не умеет обновлять собственную базу данных и увидев рабочий каталог предыдущей версии УТМ прекращает установку.
Поэтому завершите весь документооборот ЕГАИС, чтобы в УТМ не осталось непринятых документов, также убедитесь, что получены все подтверждения и ответы на запросы. Розничную продажу алкоголя на время обновления следует прекратить.
Затем остановим УТМ:
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
После обновления вы можете столкнуться с тем, что на главной странице УТМ в разделе Основные параметры будет везде "Ошибка получения данных".
В этом случае перейдите в раздел Настройки (значок с шестерней справа вверху) и выполните обновление настроек УТМ, после чего компьютер рекомендуется перезагрузить.
При этом следует отличать данную ситуацию от действительных ошибок работы УТМ, которые могут отражаться на главной странице, в последнем случае нужно будет заняться их анализом и исправлением.
Ошибка java.lang.OutOfMemoryError: Java heap space
Внешним проявлением этой ошибки является невозможность отправить либо получить документы из УТМ ЕГАИС, текст ошибки может быть разным и зависит от конкретной прикладной программы. Вторым симптомом является зависание или полный отказ работы веб-интерфейса УТМ. Если проанализировать логи, например, файл /var/log/utm-trans.out.log то мы найдем там следующее сообщение:
java.lang.OutOfMemoryError: Java heap space
Которое говорит о недостатке памяти для виртуальной машины Java.
Все существующие материалы по этой ошибке относятся к Windows версии УТМ и не могут помочь в случае использования Linux, поэтому решение пришлось искать самостоятельно. Откроем файл /opt/utm/transport/bin/transport.sh и сразу после строки:
exec "$JAVACMD" $JAVA_OPTS \
Добавим строку:
-Xmx1024M -Xms768M \
Которая установит минимальный и максимальный размер выделяемой памяти как 768 МБ и 1024 МБ, данные рекомендации взяты нами из официальных рекомендаций Oracle и проверены на практике, разработчики УТМ рекомендуют устанавливать 500 МБ и 1000 МБ. При этом убедитесь, что в системе достаточно свободной оперативной памяти.
После чего сохраните изменения в файле и перезапустите УТМ:
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 и внесем в него нужные изменения.
Сохраняем изменения и заново собираем пакет:
dpkg -b u-trans u-trans-4.2.0-2525-mem-i386.deb
В команде указываем директорию с распакованным пакетом и желаемое название файла. Советуем задать имя нового пакета отличным от исходного, чтобы впоследствии не было путаницы. Всё, теперь можем обновлять наш парк транспортных модулей сразу с необходимыми настройками УТМ.
Как видим, установить новый УТМ 4.2.0 на платформе Linux достаточно несложно, а сам продукт серьезно развивается и предлагает множество новых функций и улучшений, будем надеяться, что все это будет работать так как задумано и существенно облегчит непростую работу с системой ЕГАИС.
Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.
Последние комментарии