Недавно мне была поставлена задача — организовать предпочтовую подготовку в нашей организации. Для тех, кто не в курсе, поясню – предпочтовая подготовка – это всё, что происходит с отправлением до его передачи в отделение Почты России, а именно:

определение стоимости отправления и генерация сдаточных документов;

оформление упаковочных ярлыков и упаковки.

Предпочтовую подготовку может выполнять и сама Почта России – это дополнительная услуга, которая стоит денег.

Наша бюджетная организация дополнительную услугу решила не оформлять (почему я не удивлён?:-)), а это значит — пришло время открытия «филиала почтового отделения» и возложения дополнительных (но не оплачиваемых обязанностей) на работниц делопроизводства.

prepost
Заказывать футболки и униформу Почты России мы не стали…

Ну а для меня это событие стало поводом задуматься – как установить специальное программное обеспечение, чтобы оно органично вошло в имеющуюся информационную систему?

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

функционирование клиентского программного обеспечения PrePost на ОС Astra Linux;

доступность оффлайн тарификатора в локальной вычислительной сети ;

обеспечение доступа к сетевой версии базы данных программного обеспечения;

настройка разграничения доступа к базе данных;

настройка резервного копирования базы данных;

упрощённый процесс настройки программного обеспечения на рабочем месте, в случае выхода основного рабочего места из строя.

Функционирование клиентского программного обеспечения PrePost на ОС Astra Linux

Зайдя на сайт «Почты России», увидел, что заявлена совместимость с Linux и так тепло на душе стало. Я по поводу «Справок БК» раз в год пишу письма в правительство – и никак, а тут «Почта России» поддерживает импортозамещение… Молодцы – не сказать иначе.

Вот только по ссылке оказался дистрибутив для Windows. Юмора я не понял. Испугался, что совместимость с Linux – это использование wine. Честно скажу, сколько я не пытаюсь его использовать – результаты меня не радуют – работает, но всегда есть какое-то «но».

В итоге с помощью Wine работоспособности я добился, но (вот и оно) производительность оставляла желать лучшего. Кроме того, выяснилось, что для функционирования программного обеспечения требуется установить оффлайн тарификатор, а это уже по факту веб сервер, который в wine у меня не заработал.

Подумал, параллельно написал письмо в техническую поддержку с просьбой пояснить, в чём заключается поддержка Linux. На следующий день получил письмо со ссылкой на Яндекс диск, где был размещён дистрибутив для Linux в виде rpm пакета, архива и инструкции.

Стоит отметить, что после моего обращения на сайте «Почты России» появилась ссылка на дистрибутив для Linux и это, нужно отметить, тоже плюс – оперативная работа над ошибками дорогого стоит.

С пакетом rpm разобрался просто – распаковал и собрал свой deb пакет (параллельно написав в техническую поддержку с просьбой собирать и deb пакеты – ответили, что учтут предложение).

Доступность оффлайн тарификатора в локальной вычислительной сети

Ознакомившись с инструкцией, я понял, что устанавливать оффлайн тарификатор предлагают через docker и это логичное решение ввиду того, что число отечественных деривативов продолжает расти – высока вероятность получить конфликты зависимостей или вообще отсутствие пакетов в репозиториях.

Однако, установить тарификатор требуется на каждой машине с клиентом, ввиду того, что программное обеспечение обращается  к порту 7555 на локальной петле по умолчанию (параметра с указанием ip адреса оффлайн тарификатора я не нашёл).

Так как в моей организации ещё осталось целых четыре ПЭВМ на Windows, один из которых Windows сервер, я решил пока не пользоваться docker’ом, а просто установить оффлайн тарификатор на Windows сервер, который при таких темпах импортозамещения (будем надеяться) доживает последние дни.

Если Вы решите развернуть образ docker согласно инструкции, то перенаправление трафика можно будет организовать в аналогичном порядке изложенном ниже.

В целях перенаправления трафика с 127.0.0.1:7555 на аналогичный порт Windows сервера я выполнил настройку iptables,  сохранив настройки в файл конфигурации — /etc/prepost.conf  (192.168.1.2 – клиентская машина, 192.168.1.91 – Windows сервер):

# Generated by xtables-save v1.8.2 on Mon Oct  2 11:22:30 2023
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -p tcp -m tcp --dport 7555 -j SNAT --to-source 192.168.1.2
-A OUTPUT -p tcp -m tcp --dport 7555 -j DNAT --to-destination 192.168.1.91:7555
COMMIT
# Completed on Mon Oct  2 11:22:30 2023

И создал unit systemd, осуществояющий настройку iptables при включении компьютера:

[Unit]
Description=PrePost iptable rules
After=rc-local.service

[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables-restore /etc/prepost.conf

[Install]
WantedBy=astra-safepolicy.target

Также разрешил маршрутизацию к локальной петле в /etc/systctl.conf:

net.ipv4.conf.eth0.route_localnet=1
prepost astra linux
Работа оффлайн тарификатора

Обеспечение доступа к сетевой версии базы данных программного обеспечения

Программное обеспечение предпочтовой подготовки использует СУБД sqlite3 , расположенную в каталоге ~/.config. В настройках программы возможно найти базу данных, но параметра для указания её расположения я, к сожалению, также не нашёл.

В итоге перенёс базу данных на разделяемый ресурс samba сервера, а в каталогах пользователей создал соответствующую символическую ссылку.

Автоматическое монтирование разделяемого ресурса осуществил с помощью уже применявшегося ранее в моей конфигурации pam_mount.

Осуществление разграничения доступа к базе данных

Доступ к разделяемому ресурсу базы данных ограничил с помощью samba и соответствующей группой созданной во freeipa. Так же в pam_mount указал, что монтирование должно осуществляться только пользователями, входящими в эту группу.

Настройка резервного копирования базы данных

Суть резервного копирования PrePost заключается в копировании файлы базы данных.

Резервное копирование у меня организовано в рамках всего файлового сервера с помощью rsnapshot, поэтому дополнительные мероприятия по настройке резервного копирования я не проводил.

Упрощённый процесс настройки программного обеспечения на рабочем месте в случае выхода основного рабочего места из строя

В целях упрощения развёртывания приложения, добавил собранный deb пакет в сетевой репозиторий моей организации – дополнительно включив в него настройки iptables и systemd.

Заключение

Собственно, вот и всё – выполнение указанных действий позволило мне выполнить поставленные задачи и достичь желаемой цели — предпочтовая подготовка начала осуществляться с помощью программного обеспечения PrePost.

Добавить комментарий

Ваш e-mail не будет опубликован.