Настройка удаленной настольной среды X2Go в Debian 8

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

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

В отличие от VNC, X2Go предоставляет несколько преимуществ:

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

Такая установка полезна в следующих ситуациях:

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

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

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

Наконец, Firefox обычно обеспечивает более качественную работу X2Go – если xrender включен (как в Debian 8 по умолчанию).

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

Требования

  • Сервер Debian 8 x64, настроенный по этому мануалу.
  • 1 ГБ RAM минимум. Конечно, для начала лучше иметь 2 ГБ, оптимально – 4 ГБ. Сервер должен быть расположен близко к области, из которой вы собираетесь подключаться.

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

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

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

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

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

Сначала установите UFW:

sudo apt-get install ufw

По умолчанию на этом этапе брандмауэр должен быть отключен. Вы можете проверить это с помощью команды:

sudo ufw status verbose

Результат должен быть таким:

Status: inactive

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

Если UFW включен, отключите его с помощью команды:

sudo ufw disable

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

sudo ufw default deny incoming
sudo ufw default allow outgoing

И разрешите SSH-соединения с сервером (порт 22):

sudo ufw allow 22

Установив правила, вы можете активировать ufw:

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

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

Теперь у нас есть только одна точка входа на сервер, и мы готовы установить графическую среду X2Go.

2: Установка настольной среды

В этом мануале мы установим настольную среду XFCE. Есть два способа сделать это, но вам нужно выбрать только один – это либо Minimal Desktop Environment, либо Full Desktop Environment, минимальная или полная среда соответственно.

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

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

Установите xfce4 и все зависимости, необходимые для его поддержки:

sudo apt-get install xfce4

Полная настольная среда подходит в том случае, если вы не хотите вручную подбирать каждый нужный компонент, а предпочитаете предварительно установить весь набор пакетов по умолчанию, например, текстовый процессор, веб-браузер, почтовый клиент и другое. Тогда вам нужен 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, чтобы сообщить менеджеру, где найти дополнительные пакеты.

Чтобы обновить базу данных доступных пакетов, введите следующую команду:

И, наконец, установите X2Go на сервер:

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, чтобы использовать удаленный рабочий стол XFCE.

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

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

Session name: My XFCE Session
Host: your_IP_address
Login: 8host
SSH port: 22

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

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

Введите в поле Login имя пользователя, которого вы использовали для SSH-соединения.

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

Поскольку аутентификация происходит на основе ключей 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 выйдет из сессии, но оставит GUI работающим на сервере. Это простой и быстрый способ отключения без выхода из системы или закрытия приложений на сервере. То же самое произойдет, если вы нажмете кнопку закрытия окна.

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

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

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

Заключение

Теперь у вас есть рабочая удаленная настольная среда, обладающая целым рядом преимуществ.

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

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

Tags: , ,