Настройка удаленного рабочего стола с помощью X2Go в Debian 8

Для обеспечения эффективности, безопасности и возможности работать в командной строке многие серверы не используют графический интерфейс (GUI). Однако в некоторых случаях возникает необходимость запустить GUI-приложение на удаленном сервере (например, для тестирования веб-сайта в браузере или для настройки удаленной рабочей станции с полной средой).

Традиционно для взаимодействия с графическим интерфейсом на удаленном компьютере Linux или *nix используется Virtual Network Computing (VNC). К сожалению, VNC, как известно, является довольно небезопасным и низкопроизводительным средством, которое ко всему требует много ручной настройки.

По сравнению с VNC приложение X2Go имеет такие преимущества:

  • Вместо того чтобы отправлять образы с удаленного на локальный компьютер (как делает VNC), X2Go использует модифицированную версию (графического) сервера X и протокола X11 для минимизации объема данных, которыми обмениваются клиент и сервер. Это отлично эмулирует функции локального рабочего стола. Единственным требованием для поддержки этой функции является небольшое расстояние между сервером и клиентом. Когда вы пингуете сервер с клиентской машины, в идеале время возврата не должно превышать 100 миллисекунд. Оптимальным считается значение 50 мс; 200 мс считается приемлемым значением.
  • X2Go взаимодействует с SSH, шифруя весь трафик между клиентом и сервером, и использует SSH как проверенный и безопасный механизм аутентификации.
  • X2Go не требует сложной ручной настройки. Он умеет автоматически настраивать сеансы и запускать популярные настольные среды (XFCE, LXDE, MATE и другие).
  • X2Go настраивает среду при входе в систему, поэтому вам не нужно постоянно оставлять X-сервер запущенным. Кроме того, сеанс продолжает работать даже после отключения, а это значит, что при повторном подключении вы сможете восстановить предыдущий сеанс (как на локальном рабочем столе).
  • X2Go поддерживает несколько сеансов входа, рабочих столов и пользователей, зарегистрированных в отдельных средах.
  • X2Go позволяет запускать не только всю рабочую среду, но и отдельные графические приложения, что позволяет сэкономить ресурсы локальной машины и использовать ресурсы сервера. Вы даже можете оставлять задачи запущенными удаленно в течение нескольких дней.

Такая настройка полезна, если:

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

В этом мануале рекомендуется использовать Debian, а не Ubuntu, поскольку некоторые версии среды рабочего стола Ubuntu по умолчанию, Unity, не совместимы с X2Go. Кроме того, альтернативные средства для настройки сред рабочего стола часто вызывают проблемы в Ubuntu.

Также мы рекомендуем XFCE, потому что для его работы не требуется выделенная видеокарта, что увеличивает совместимость с X2Go. Но LXDE, Mate (с отключенной компоновкой) и даже более старые среды рабочего стола, Unity и Cinnamon (с дополнительной отладкой) тоже могут работать.

Если xrender включен (а по умолчанию в Debian 8 это так), то Firefox обеспечивает более производительную работу X2Go.

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

Требования

  • Debian 8 x64.1 Гб RAM — это минимум, 2 Гб обеспечивают более надежную основу для работы, 4 Гб – оптимальный объем.
  • Пользователь с доступом sudo(инструкции вы найдете здесь).

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

1: Настройка брандмауэра

Установка полноценной среды рабочего стола включает в себя множество дополнительных программных зависимостей и рекомендаций, некоторые из них могут открыть сетевые порты. Например, Common UNIX Printing System (CUPS) может попытаться открыть порт 631. Сервисы типа CUPS могут быть очень полезными, но сервер не должен быть доступным в Интернете, поэтому нужно заблокировать все входящие соединения. Единственным исключением будет порт 22, который останется открытым, чтобы обеспечивать подключения к подключиться к SSH и X2Go.

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

Читайте также: Основы UFW: общие правила и команды фаервола

Установите UFW:

sudo apt-get install ufw

После установки брандмауэр не включится сам. Запросите его состояние:

sudo ufw status verbose
Status: inactive

Проверить состояние брандмауэра важно, так как это позволит вам не заблокировать себя на своем сервере.

Если UFW включен, отключите его:

sudo ufw disable

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

sudo ufw default deny incoming
sudo ufw default allow outgoing

Разблокируйте порт 22, который использует SSH:

sudo ufw allow 22

Теперь можно включить брандмауэр:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)?

Чтобы включить брандмауэр, нажмите y и Enter.

Теперь на сервере есть только одна точка входа.

2: Установка среды рабочего стола

Установите XFCE. Вы можете выбрать Minimal Desktop Environment или Full Desktop Environment.

Minimal Desktop Environment – это базовый набор пакетов, который в дальнейшем можно расширить вручную. Чтобы установить его, используйте метапакет xfce4.

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

sudo apt-get install xfce4

Эта команда установит xfce4 и все зависимости.

Full Desktop Environment – это стандартный набор пакетов, в который входят текстовый процессор, веб-браузер, почтовый клиент и др. Чтобы получить этот набор, установите task-xfce-desktop.

Установите и настройте полную рабочую среду:

sudo apt-get install task-xfce-desktop

Теперь графическая среда установлена.

3: Установка X2Go на сервер

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

В репозиториях Debian нет пакета X2Go, потому нужно добавить сторонний репозиторий.

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

sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E

Добавьте репозиторий в настройки менеджера пакетов.

echo 'deb http://packages.x2go.org/debian jessie main' | sudo tee /etc/apt/sources.list.d/x2go.list

Это создаст файл /etc/apt/sources.list.d/x2go.list и добавит строку deb http://packages.x2go.org/debian jessie main. Теперь менеджер знает, где можно найти дополнительные пакеты.

Обновите индекс пакетов:

sudo apt-get update

Установите X2Go на сервер:

sudo apt-get install x2goserver x2goserver-xsession

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

Закройте терминал:

exit

Теперь можно сосредоточиться на клиенте локальной машины

4: Установка клиента X2Go на локальную машину

Если на локальной машине вы используете Windows, загрузить программное обеспечение клиента можно по этой ссылке.

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

Если на локальной машине используется macOS, загрузите ПО клиента по этой ссылке.

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

И если вы используете Debian или Ubuntu, вы можете установить клиент X2Go с помощью команды:

sudo apt-get install x2goclient

Больше информации о клиенте можно найти в документации X2Go.

Теперь можно настроить клиент рабочего стола и подключиться к серверу X2Go.

5: Подключение к удаленному рабочему столу

При первом открытии клиента X2Go должно появиться окно Session Preferences. Если оно не появилось, нажмите Session в верхнем левом меню, а затем выберите New session.

В поле Session name введите описательное имя сеанса. Это может быть особенно полезно, если вы планируете подключаться к нескольким машинам: все имена будут указаны в главном окне программы после сохранения ваших настроек.

В поле Host под Server введите IP-адрес или имя хоста сервера.

В поле Login укажите имя пользователя, коротое используется для подключений SSH.

В Session type выберите XFCE.

Чтобы подключаться к серверу с помощью SSH-ключей, кликните по иконке папки рядом с Use RSA/DSA key for ssh connection и выберите файл вашего закрытого ключа.

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

Нажмите ОК. Чтобы запустить графический сеанс, кликните по белой ячейке с именем вашего пользователя (в правом верхнем углу).

Через несколько секунд вы увидите удаленный рабочий стол и сможете начать с ним взаимодействовать. При первом входе в систему XFCE спросит, хотите ли вы использовать конфигурацию по умолчанию (Use default config) или пустую панель (One empty panel). Первый вариант создает прямоугольную панель, прикрепленную к нижней части экрана и содержащую несколько полезных ярлыков приложений (например, файловый менеджер, эмулятор терминала, браузер и т. п.). Этот параметр также добавит на рабочий стол верхнюю панель, которая включает в себя утилиты для запуска приложений, часы, меню выключения и многое другое.

Если вы еще не знакомы с XFCE, второй вариант может оказаться более сложным. Здесь нет панели задач, часов, нет предварительно настроенного меню «Пуск»; вам будет нужно добавить все самостоятельно.

Кроме того, в операционных системах Windows и Linux есть несколько полезных сочетаний клавиш, которые вы можете использовать:

  • CTRL+ALT+F включает и выключает полноэкранный режим. Работа в полноэкранном режиме больше похожа на локальный рабочий стол. Кроме того, другие сочетания клавиш будут захвачены удаленной ОС, а не локальной.
  • CTRL+ALT+M минимизирует удаленный просмотр, даже если вы находитесь в полноэкранном режиме.
  • CTRL+ALT+T закроет сеанс, но оставит графический интерфейс запущенным на сервере. Это быстрый способ отключения, не выходя из системы или не закрывая приложений на сервере. То же самое произойдет, если вы нажмете кнопку закрытия окна.

Есть два способа завершить удаленный сеанс, закрыв все графические программы, запущенные в нем. Вы можете удаленно выйти из меню запуска XFCE или нажать кнопку, отмеченную кружком в нижнем правом углу экрана.

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

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

Заключение

Теперь у вас есть удаленный рабочий стол.

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

Читайте также:

Tags: ,