Установка КОМПАС-3D на Astra Linux SE 1.8 в закрытом контуре предприятия

от автора

Привет Хабр, меня зовут Данила Гуляев, я — методист Linux-решений в АСКОН, и сегодня мы поговорим о развёртывании программных продуктов в условиях предприятий с закрытыми внутренними сетями. Не секрет, что наша активно развивающаяся линейка продуктов для Linux востребована там, где на рабочих местах нет доступа к интернету. Эта статья должна в первую очередь ответить на вопросы технических специалистов таких предприятий.

Мы будем использовать Astra Linux Special Edition 1.8 в качестве операционной системы как для сервера репозитория, так и для клиентских машин. Покажем на примере КОМПАС-3D и его приложений, но общие принципы, которые мы используем, обязательно сработают и для других программ.

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

Затем мы завершим наш сценарий из внутренней сети: развернём локальный репозиторий с полученными пакетами и установим приложения на машину в закрытом контуре нашего воображаемого предприятия.

Часть 1. Получение установочных материалов из открытой сети

1.1 Подключение репозитория

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

Пакеты от АСКОН располагаются в официальных открытых репозиториях и могут быть подключены через скрипт, описанный в прилагающейся документации.

Для КОМПАС-3D можно воспользоваться документом Readme или официальной справкой. Скопируем содержимое справки, откроем терминал сочетанием клавиш Alt+T или из меню приложений и выполним команду:

sudo bash -c «$(wget -O — https://repo.ascon.ru/scripts/ascon-stable-deb.sh

sudo bash -c "$(wget -O - https://repo.ascon.ru/scripts/ascon-stable-deb.sh)"

Скрипт автоматически подключит репозиторий КОМПАС-3D и получит информацию о содержащихся в нём пакетах.

1.2 Активация репозиториев Astra Linux

Для скачивания и установки нам могут потребоваться также интернет-репозитории Astra Linux, поэтому сначала убедимся, что они подключены. Это можно сделать как с помощью прямого редактирования файла репозиториев, так и командой из следующего пункта справки:

sudo sed -i '/repository-main/s/^#//g' /etc/apt/sources.listsudo sed -i '/repository-extended/s/^#//g' /etc/apt/sources.list

Обновим информацию о подключённых репозиториях командой:

sudo apt update

1.3 Определение состава установки

Все пакеты, связанные с АСКОН, начинаются с ключевого слова ascon-. Мы можем вывести их список и краткие описания командой

apt search -n ascon-*

Или выбрать конкретный пакет и получить его описание командой

apt show ascon-kompas3d-v25-full

таким образом выбрав необходимый для нас состав установки.

1.4 Установка КОМПАС-3D

На данном этапе в условиях открытой сети я бы мог просто поставить, например, полную версию КОМПАС-3D со всеми доступными компонентами командой

sudo apt install ascon-kompas3d-v25-full ascon-common-coredump-watcher

Но наша задача — скачать и передать установочные данные коллегам внутри закрытого контура, поэтому мы пропустим этот шаг и будем двигаться дальше.

1.5 Скачивание пакетов

Подключим к компьютеру внешний носитель (у меня в этой роли будет обычная флешка) и создадим внутри папку, в которой мы хотели бы сохранить архив с передаваемыми пакетами.

Откроем статью базы знаний АСКОН с командами для определения рекурсивных зависимостей пакетов. Скопируем команду для Astra Linux. Откроем терминал из ранее созданной папки и вставим команду:

apt-cache depends —recurse —no-recommends —no-suggests —no-conflicts —no-breaks —no-replaces —no-enhances ascon-kompas3d-v25-full ascon-kompas-coredump watcher | grep «^\w» | sort -u

В выводе получился внушительный список пакетов зависимостей. В данном сценарии нас интересуют только пакеты, связанные с АСКОН, поэтому в конец команды я добавлю | grep ascon.

apt-cache depends —recurse —no-recommends —no-suggests —no-conflicts —no-breaks —no-replaces —no-enhances ascon-kompas3d-v25-full ascon-kompas-coredump-watcher | grep «^\w» | sort -u | grep ascon

Вывод значительно сократился.

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

apt-cache depends —recurse —no-recommends —no-suggests —no-conflicts —no-breaks —no-replaces —no-enhances ascon-kompas3d-v25-full ascon-kompas-coredump watcher | grep «^\w» | sort -u | grep ascon > list.txt

После чего можно будет скачать все пакеты в текущую папку простой командой

apt download $(cat list.txt)

В данном случае мы скачиваем всё необходимое для установки КОМПАС-3D версии 25 и всех доступных приложений, а также утилиты сбора диагностической информации АСКОН. Мы рекомендуем не пренебрегать этой утилитой даже в условиях отсутствия подключения к интернету, поскольку, наряду с отправкой отчётов при сбоях, эта утилита способна делать выгрузки при ошибках, в некоторых случаях необходимые для осуществления техподдержки.

Дополнительно для вашего удобства репозиторий АСКОН содержит пакет сервера лицензий Guardant, который можно скачать либо с помощью команды apt download grdcontrol, либо напрямую с ресурсов Guardant.

1.6 Передача пакетов в закрытый контур

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

Со стороны закрытого контура будет присутствовать сервер и рабочая станция, к которому мы далее подключим репозиторий. Абстрагируемся от создания локальных репозиториев Astra Linux main/extended – предположим, что они уже развёрнуты внутри контура и подключены на сервере и на клиенте. На эту тему у наших коллег есть соответствующая справка.

Часть 2. Развёртывание и подключение локального репозитория в закрытой сети

2.1 Развёртывание сервера с локальным репозиторием

В этом примере предлагается развернуть локальный веб-репозиторий на базе nginx. Для его сборки нам также потребуется утилита dpkg-dev, содержащая утилиты разработчика. Зайдём на сервер, обновим информацию и поставим нужные пакеты:

sudo apt updatesudo apt install nginx dpkg-dev -y 

Далее напишем конфигурацию для нашей веб-страницы nginx. Это можно сделать с помощью любого текстового редактора, например, nano. Создадим новый файл в директории /etc/nginx/sites-available под именем repository:

sudo nano /etc/nginx/sites-available/repository

И заполним его минимальной конфигурацией:

server {listen 8080 default_server;listen [::]:8080 default_server;root /srv/repo;location / {try_files $uri $uri/ -404;autoindex on;autoindex_exact_size off;auth_basic off;}}

Данная конфигурация поднимает сервер, который будет слушать TCP-порт 8080 на всех IPv4 и IPv6 адресах без необходимости аутентификации. Корень нашего сервера расположен в директории /srv/repo. По желанию параметры сервера можно поменять для соответствия требованиям в вашей сети. Сохраним конфигурацию и выйдем из редактора с помощью последовательности сочетаний клавиш: Ctrl+O, Enter, Ctrl+X.

Созданную конфигурацию необходимо перенести в рабочий каталог nginx. Это можно сделать простым копированием или, в нашем случае, созданием символической ссылки в директории /etc/nginx/sites-enabled:

sudo ln -s /etc/nginx/sites-available/repository /etc/nginx/sites-enabled

Создание символической ссылки позволит при необходимости менять содержимое файла только в директории /etc/nginx/sites-available/.

Поскольку ссылка вsites-enabledпросто указывает на оригинальный файл, все изменения применятся автоматически после перезагрузки nginx.

Удалим из рабочей директории nginx умолчательную конфигурацию:

sudo unlink /etc/nginx/sites-enabled/default

Проверим новую конфигурацию nginx:

sudo nginx -t

После чего можем перезапустить сервис:

sudo nginx -s reload

Теперь наш сервер запущен и работает. Осталось лишь создать директорию, которая будет содержать репозиторий:

sudo mkdir /srv/repo

Можно проверить работу сервера, отправив запрос с помощью curl:

curl localhost:8080/

Мы получим html-страницу со списком (на данный момент пустым) файлов в корневой директории.

Создадим в директории /srv/repo/ поддиректорию ascon:

sudo mkdir /srv/repo/ascon

И переместим туда все ранее полученные из внешней сети пакеты любым удобным способом.

После наполнения нашего репозитория пакетами необходимо сгенерировать метаданные и упаковать их в .gz-архив:

cd /srv/repo/asconsudo dpkg-scanpackages -m /dev/null > Packagesgzip -9c Packages > Packages.gz

2.2 Подключение репозитория к клиентской машине

На клиенте создадим новый файл репозитория ascon.list в папке /apt/sources.list.d/ и откроем его с помощью любого текстового редактора, например, nano:

sudo nano /etc/apt/sources.list.d/ascon.list

И заполним его следующей строкой:

deb [trusted=yes] http://server.address:8080/ascon ./

Где server.address — это адрес сервера с репозиторием в вашей сети, а параметр [trusted=yes] позволяет подключаться к репозиторию без проверки подписи. При желании вместо этого параметра можно настроить проверку по GPG-ключу: добавить ключ в систему и указать его в конфигурации репозитория.

Сохраним конфигурацию и выйдем из редактора с помощью последовательности сочетаний клавиш: Ctrl+O, Enter, Ctrl+X.

И обновим информацию о подключённых репозиториях:
sudo apt update

2.3 Установка КОМПАС-3D из локального репозитория

После завершения настройки можно будет поставить КОМПАС-3D ранее упомянутой командой, как из сетевого репозитория:

sudo apt install ascon-kompas3d-v25-full ascon-common-coredump-watcher

Заключение

Мы рассмотрели полный цикл подготовки и развертывания КОМПАС-3D в закрытом контуре предприятия. В данном материале использовались стандартные возможности пакетного менеджера и бесплатные утилиты. Итогом стал полностью рабочий локальный репозиторий, который позволяет подключать клиентские машины за считанные минуты и обеспечивает работу, идентичную сетевому хранилищу.

Мы продолжаем развивать линейку наших продуктов для Linux, а также совершенствовать сопутствующую документацию и практические руководства. Разумеется, в рамках одной статьи невозможно охватить все тонкости и сценарии развёртывания ПО в закрытом контуре — условия и задачи могут отличаться для различных предприятий. Мы ценим обратную связь, поэтому приглашаем вас делиться вопросами, идеями и пожеланиями в комментариях.

ссылка на оригинал статьи https://habr.com/ru/articles/1058946/