Удаленный сервер на Linux. Как сформировалась услуга.

удаленный сервер на Linux

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

Применительно к нашей услуге Удаленный сервер на Linux можно говорить именно о такой ситуации. Мы поставили перед собой задачу разработать предложение, позволяющее клиенту решить проблемы резкого удорожания лицензий Microsoft. В самом деле, перед лицом этой проблемы переход на Linux будет рассмотрен клиентом скорее всего в последнюю очередь, когда все остальные (полу)меры будут исчерпаны. Сократить количество пользователей удаленного рабочего стола, перейти с MS Office Professional на Standard или вовсе отказаться от него, - так, скорее всего, будет выглядеть сложный путь к Linux.

Всё это мы учли при разработке услуги и постарались свести к минимуму трудности перехода на новую платформу.

Выбор операционной системы.

Среди множества Linux-систем нам предстояло выбрать наиболее соответствующую нашим требованиям. Для отбора дисрибутива мы установили такие критерии:

  • должен иметь версии LTS (Long Term Support). Это означает "долгую жизнь" стабильного релиза за счет поддержки и обновлений;
  • должен быть современным и перспективным с точки зрения дальнейшего развития;
  • должен быть "лёгким", нересурсоемким;
  • должен иметь обширный репозиторий;

С учетом этих критериев были рассмотрены несколько Linux-систем. 

CentOS 7

Ядро ОС сформировано давно. Это может создать проблемы при установке современного программного обеспечения, такого как браузеры, например. Поддержка заканчивается летом 2024 года, что предполагает в дальнейшем миграцию на другой дистрибутив (CentOS Stream, Alma Linux, Rocky Linux и др.).

Ubuntu 22.04

Безусловный лидер среди десктопных ОС с длительной поддержкой: до 2027 года. Обладает обширным репозиторием. В то же время это, пожалуй, самый тяжеловесный, ресурсоемкий  дистрибутив из всех рассмотренных нами. 

Debian 11

Стабильная версия имеет не только долгосрочную (LTS - 5 лет), но и расширенную долгосрочную поддержку ограниченного набора пакетов до 2026 года. Объем репозитория Debian превышает 59000 пакетов. Ко всему прочему, в интернет представлен большой объем информации по настройке и специфике использования данной ОС, в том числе и на русском языке.

По итогам рассмотрения этот дистрибутив и был взят за основу. В дальнейшем мы также планирует протестировать вариант удаленного сервера на основе других дистрибутивов.

Desktop Environment

Выбор среды рабочего стола (Desktop Environment, или сокращенно DE) напрямую влияет на графический интерфейс программ и утилит ОС, с которым придется работать пользователю. Чем меньше различий с Windows-интерфейсом увидит он на новом для себя рабочем столе, тем короче будет период адаптации к новым условиям работы. Именно с этой точки в первую очередь мы и рассмотривали возможные варианты выбора DE. Разумеется, с учетом скрытых от пользователя технических особенностей. 

Gnome 4X

  • Использует ~1 Гб ОЗУ сразу после запуска системы;
  • Визуально довольно сильно отличается от привычного рабочего стола Windows;
  • Через меню пользователю доступны только самые важные настройки;
  • В комплекте много программ, но большинство из них плохо оптимизированы под слабые машины;
  • По умолчанию использует Wayland (современная замена xorg), что потенцциально может стать источником проблем совместимости с ПО, которое его не поддерживает.

KDE

  • Использует ~1 Гб ОЗУ после запуска и в целом довольно требователен к железу;
  • Интерфейс похож на Windows;
  • Легко кастомизировать интерфейс;
  • Многие системные настройки доступны через меню;
  • Много программ в комплекте, но большинство из них плохо оптимизированы для слабых машин.

XFCE

  • Использует ~300 Мб ОЗУ после запуска;
  • Легко кастомизировать интерфейс;
  • “Из коробки” интерфейс не сильно похож на Windows, но после минимальной настройки эта проблема легко решается.
  • Много хороших и легких программ в комплекте.

LXQT

  • Использует ~300 Мб ОЗУ после запуска;
  • Сложно кастомизировать интерфейс;
  • Программ “в комплекте” мало, и они не слишком удобны;

Выбор остановлен на XFCE (с модифицированными стандартными настройками UI), как наиболее отвечающем критериям низкой требовательности к ресурсам (он хорошо адаптирован к работе на ВМ и не требует GPU), и минимальных отличий от рабочего стола Windows.

Пакет офисных программ

Трудно представить себе офисного работника, использующего в своей работе хотя бы половину возможностей, предоставляемых пакетом MS Office. Наверное, так же трудно представить себе, что у компании Microsoft есть конкуренты, причем на рынке свободно распространяемого ПО. Тем не менее, они есть, и наиболее известные их них это OpenOffice и LibreOffice. Причем, если внимательно изучить сравнительную таблицу возможностей LibreOffice и MS Office, представленную на портале The Document Foundation Wiki , выбор победителя будет совсем не столь очевиден, как может показаться поначалу.

 

 
 
Наверное, можно сказать, что у OpenOffice и LibreOffice больше общего, чем отличий. Оба пакета прекрасно адаптированы для Linux. В самом деле, здесь составить конкуренцию MS Office, максимально использующему возможности MS Windows, было бы сложно. 

Системные требования у них также похожи. LibreOffice занимает  на диске существенно больше места - более полутора Гб, но это не идет в сравнение с требованиями MS Office.

Разработчики обоих пакетов годами решали задачу максимальной близости интерфейса своих программ к MS Office. Результат: различий между внешним видом opensource-продуктов и MS Office едва ли больше, чем между разными версиями последнего. К тому же интерфейс пользователя в них гибко настраивается. В обеих  программах доступен русский в качестве языка интерфейса программ.

Остается оценить функциональность пакетов. Здесь лидерство за более современным LibreOffice. Он свободно (насколько это вообще возможно) работает с файлами .xlsx и .docx, являющимися основными форматами файлов практически любого офиса. Следует признать, что при работе с файлами, созданными в MS Office, не исключены ошибки, особенно в случае сложного форматирования, наличия многостраничных таблиц, сложных формул и множества перекрестных ссылок. Но в целом можно сказать, что адаптация имеющихся файлов будет сведена к минимуму. Возможно, достаточно будет лишь упростить оформление.

Таким образом, в окончательный вариант шаблона услуги был включен пакет LibreOffice. Однако ничто не мешает пользователю услуги установить вместо него OpenOffice, если его сотрудники уже имеют опыт работы в нем.

Почтовый клиент

Выбрать почтового клиента из множества предложений с открытым кодом не составило большого труда, так как лидеры известны давно, и их не так много. Принимая в расчет, что пользователь прежде работал в MS Outlook с массой интегрированных в него возможностей, мы постарались подобрать почтового клиента, способного максимально удовлетворить портебностям клиента. По этой причине такие почтовые клиенты, как Geary и Sylpheed были отклонены. 

Собственно, выбор быстро сузился до двух программ: Mozilla Thunderbird и Evolution. Причем последний составил серьёзную конкуренцию Mozilla Thunderbird. В числе его многочисленных функций:

  • Поддержка нескольких учетных записей;
  • шифрация сообщений;
  • календарь (включая Google);
  • адресная книга (включая контакты Google);
  • импорт почтовых файлов MS Outlook (.PST);
  • подключение к серверу Exchange (требует установки дополнительного расширения) и др..

Тем не мене, окончательный выбор был сделан в пользу Thunderbird, с учетом его многолетней истории, широкой распространенности и стабильной работе. Следует отметить также, что почтовый клиент Mozilla Thunderbird входит во многие дистрибутивы, в том числе и Astra Linux.

 

 


Настройка подключения к учетной записи GMAIL полностью автоматизирована. После чего становится доступна адресная книга контактов и календарь Google. 

Подключение к серверу Exchange доступно после установки дополнения ExQuilla for Exchange компании Beonex GmbH (проприетарное ПО). Оно может быть использовано для для переноса почтовых сообщений, календаря и адресной книги с Exchange-сервера. Однако, данная возможность нами не тестировалась и в шаблон услуги не включена, поскольку предполагает использование проприетарных компонент.

Подключение к удаленному рабочему столу. RDP vs. x2GO

Удаленное подключение к рабочему столу на Linux в целом не представляет собой особых сложностей. Для этого есть масса свободно распространяемых продуктов, серверов и клиентов. Тем не менее, определенные проблемы всё же появились уже в процессе подбора программ.

При разработке услуги Удаленный рабочий стол Linux мы в первую очередь ориентировались на наших обычных клиентов. Абсолютное большинство из них работает на компьютерах под управлением Windows, и не собирается пока ещё совмещать перевод своего удаленного сервера на Linux с переводом на Linux своего ПК. Поэтому естественным было желание обеспечить знакомое многим Windows-клиентам подключение по RDP - Microsoft Terminal Services Client (mstsc.exe).

 

 
Протокол Remote Desktop Protocol хоть и принадлежит компании Microsoft, но на нем реализовано множество (как коммерческих, так и свободно распространяемых) программ для доступа к удаленному рабочему столу, в том числе и для Linux. Одним из них является xRDP. Соединение от принимает по порту 3389, поэтому для Windows-клиента настройка подключения к удаленному рабочему столу на Linux ничем не отличается от подключения к Windows-серверу, если не считать экран ввода логина и пароля. 

 

 
 

По RDP-подключению работает буфер обмена (передача не только текста, но и файлов, а также изображений), подключение локальных дисков к удаленной сессии; хорошо масштабируется экран. Но не работает то, без чего не сможет обойтись практически ни один пользователь: печать с удаленного рабочего стола на локальный или сетевой принтер, подключенный к ПК пользователя. Были испробованы различные варианты настроек печати, но все попытки остались тщетными: xRDP не поддерживает печать на локальный принтер - только на удаленный.

Тем не менее, мы оставили возможность подключения для клиентов по протоколу RDP, исходя из следующих соображений:

  • Не у всех пользователей есть необходимость или возможность печатать. Для них гораздо проще будет настроить у себя простое MTSC-подключение, чем использовать для подключения альтернативную программу (о ней мы расскажем далее).
  • Как правило нет возможности печатать и у пользователей смартфонов на базе Android и iOS. И для них будет прощу использовать знакомую программу MS RDP Client для подключения.
  • Способ распечатать содержимое файла всё же есть: достаточно сохранить файл на локальном диске, после чего открыть его на своем ПК и распечатать. Но такой способ нельзя назвать удобным, к тому же не все программы позволяют сохранить в виде файла выведенную на печать информацию.

Таким удаленный рабочий стол Linuxринято теперь говорить - переход на удаленный рабочий стол Linux для Windows-клиентов пока вряд ли возможен. Мы пересмотрели массу материалов по проблеме удаленной печати на Linux, и в итоге для нас стало очевидно, что эта проблема пока еще не привлекла внимания разработчиков. Вполне возможно, она будет решена в будущем, в том числе и в сервере xRDP. Мы будем отслеживать все изменения на рынке свободно open-source ПО, касающиеся этого вопроса.

- Почему всё-таки RDP не поддерживает печать с удаленного рабочего стола Linux?

Надо учитывать, что проприетарый протокол RDP (разработан компаний Microsoft) не является нативным для Linux. И в реализации Linux он не обеспечивает должное взаимодействие соответствующих служб и устройств.

 

В результате мы вынуждены были искать альтернативный вариант для подключения. Причем он должен был не только обеспечивать возможность печати на локальный принтер, но и иметь клиентское ПО для различных платформ. И выбор мы остановили на программе x2GO.

 

 
 

К достоинствам программы можно отнести простоту установки, настройки и использования. Но самое главное - она поддерживает печать на локальный принтер. Соединение устанавливается по порту 22, для чего на сервере стартует стандартная служба sshd. 

В заключение необходимо отметить, что подключение с Linux-компьютера возможно как с использованием собственно клиента x2GO, так и клиента Remmina - самой известной программы удаленного доступа на Linux. 

 

 
 

Следует особо отметить универсальность последней: подключаться можно по различным протоколам, в числе которых RDP, x2GO, SSH и др.. 

Скрипты панели управления

Мы постарались максимально упростить задачи по управлению учетными записями пользователей в Linux, написав несколько скриптов, доступных в панели управления KVM:

 

 
 

Их назначение понятно из названий. С их помощью можно администрировать учетные записи даже без входа на удаленный рабочий стол.

Графическая утилита управления пользователями

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

 

 
А также добавлена возможность просмотра всех пользователей и дополнительной информации по ним.

 

 Разумеется, это лишь самые базовые функции по управлению пользователями. У клиентов может возникнуть необходимость, например, ограничивать доступ к некоторым папкам и файлам. И здесь уже не обойтись без создания групп пользователей, добавления/удаления в них пользователей. Поскольку такой функционал как разделение доступа к файловым ресурсам сервера выходит за рамки базового, мы не включили его в услугу по умолчанию, но он будет достуУдаленный сервер на Linuxполнительному запросу.

Услуга Удаленный сервер на Linux предназначена главным образом для клиентов - юридических лиц, компаний различного вида деятельности. Одним из самых широко распространенных инструментов для них является 1С:Предприятие (1С:Отчетность), а также работа в личных кабинетах различных контролирующих органов и банков в браузере с использованием средств криптозащиты (СКЗИ). Следовательно, мы не могли обойти стороной этот важный вопрос, и досконально проверили работу 1С и КриптоПро на Linux.

OpenVPN

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

chmod +x ./debian10-vpn.sh
sudo ./debian10-vpn.sh

В результате его выполнения в домашнем каталоге появился новый ключ:

Его можно передать пользователю для настройки OpenVPN-клиента. Настройка на стороне клиента описана здесь.

Для того чтобы удалить ключ или создать новый, достаточно запустить скрипт повторно.

КриптоПро CSP

Так как программа КриптоПро CSP является проприетарной, она не включена в в услугу по умолчанию. Но мы протестировали её работу. Клиент должен самостоятельно скачать с официального сайта дистрибутив для Debian: linux-amd64_deb.tgz и позаботиться о приобретении лицензии. Иначе программа перестанет работать спустя 90 дней.

Сначала необходимо установить стандартные библиотеки для операционной системы:

sudo apt install lsb lsb-core alien

Загруженный установочный файл необходимо распаковать и инсталлировать все содержащиеся в архиве пакеты:

sudo dpkg -i *.deb

Для работы необходимо установить сертификаты Минцифры и Минкомсвязи. Собственно сама работа программы на терминальном сервере на Linux практически ничем не отличается от Windows.

1С:Предприятие

Процесс инсталляции сервера 1С:Предприятие на Linux достаточно подробно описан здесь. Мы постарались не отступать от него и решать все возникающие проблемы, насколько это возможно, не выходя за инструкции и форумы портала 1С. Из инсталляции исключили установку драйверов защиты HASP: для виртуальных машин это неактуально.

В случае, если предполагается использовать файловый режим работы, базу целесообразно разместить в общем каталоге, куда есть доступ у всех пользователей общей группы: у нас это группа company. Специфика многопользовательской работы с файловой базой на Linux, к сожалению, не затронута в рекомендациях компании 1С, поэтому с этим режимом пришлось экспериментировать. Но, учитывая требования к экономному расходованию ресурсов сервера, основной упор мы сделали на работе через тонкого клиента с подключением к опубликованной на веб-сервере базе.

Для публикации базы на веб-сервере мы использовали Apache. Его установка и настройка подробно описаны на портале https://its.1c.ru/db/metod8dev#content:5979:hdoc. Подключение к базе протестировано как с удаленного рабочего стола, так и с компьютера пользователя.

Особое внимание было уделено работе 1С:Отчетности, поскольку здесь предполагается ряд настроек «вручную», таких как Путь к библиотекам КриптоПро, например.

На заключительном этапе проверена работа сервера 1С c базой на postgres,

Краткий обзор утилит Debian

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

Файловый менеджер (Thunar).

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

Эмулятор терминала (xfce4-terminal)

Простой эмулятор терминала, основанный на библиотеке VTE Terminal Widget Library. Поддерживает открытие url по нажатию мышью, копирование и вставку текста, прозрачный фон окна. Может быть использован продвинутыми пользователями для тонкой настройки системы. Это необходимо при адаптации образа к нестандартным задачам.

Менеджер пакетов Synaptic.

Графическая утилита для скачивания, установки, удаления и обновления приложений через подключенные репозитории. С ее помощью можно выполнять некоторые стандартные задачи по администрированию системы без использования терминала.

Диспетчер задач.

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

Медиаплеер Parole

Программа для воспроизведения аудио и видео файлов — на тот случай, если кому-то всё же понадобится воспроизвести медиа-файлы с удаленного рабочего стола.

Центр приложений

Еще одно приложение для управления установленными программами. Отличается от менеджера пакетов Synaptic более понятным пользовательским интерфейсом, но меньшим функционалом. Также она может быть использована для установки приложений не из подключенных репозиториев. Это необходимо в случае скачивания программ «напрямую». Например, в формате .tar.gz.

Настройки принтеров

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