Достаточно давно я наткнулся на крайне интересную вещь — x2go.
По сути своей, это очередной способ поиметь себе remote desktop с
linux-машины. Вот только в этот раз — способ достаточно шустрый,
быстрый, работающий. А в нашем случае полезно ещё и то, что он
туннелирует из коробки весь трафик через ssh.
В игры поиграть не получится, само собой, но вот Youtube я через него вполне себе смотрел )
Из приятных вкусностей — передача звука, принтеров, ресайз окна (если не используется родной системный X-сервер), наличие толкового клиента под windows, авторизация по ssh-ключам, возможность отключиться от сессии и оставить там всё запущенным. Традиционно, под виндой работает не всё (в частности, не удалось пошарить каталог и принтер), но в целом впечатления положительные. Можно комфортно работать на удаленном сервере в Голландии с машины в России.
Зачем это нужно, рассказывать, думаю, не нужно. Скажем так, для запуска Firefox с ботом для браузерной игры. Или для оплаты кредитками из недоверенной сети.
Собственно, покупаем любую виртуалку/делаем её сами в нормальной стране. Помним, что для нормальной работы Firefox/Iceweasel нужно от гигабайта RAM (иначе оно по OOM падать будет). Логинимся на неё по ssh, начинаем развлекаться.
Мануал актуален для текущих версий Ubuntu/Debian (debian 7+, ubuntu
12.04+) — соответственно, нужна виртуалка с ними. На OpenVZ из-за модуля
ядра работать не будет, скорее всего.
Для начала создадим пользователя, под которым мы в дальнейшем будем использовать x2go:
По ходу дела у нас спросят 2 раза пароль, вводим какой-нибудь достаточно сложный. Остальное можно оставлять пустым.
Далее мы зашифруем домашний каталог пользователя. Ставим нужный софт:
Подгружаем модуль ядра для шифрования:
Чтобы он загружался при загрузке системы в файл /etc/modules нужно добавить строку:
Шифруем домашний каталог пользователя:
Проверяем, что оно зашифровалось:
Access-Your-Private-Data.desktop README.txt
Логинимся нашим пользователем по ssh, проверяем, что он может корректно работать со своим домашним каталогом:
Если всё работает нормально, то запускаем команду:
В ответ вам выдадут ключ, при помощи которого можно будет восстановить зашифрованные данные, если забудете основной пароль. Мне, в общем-то, ни разу не пригодилась =) Но если вы её решите записать — сделайте это на бумажку, которую будете хранить дома в столе без всяких комментариев на ней.
Помните, что файлы в домашнем каталоге будут доступны для чтения всем пользователям (особенно, руту), когда ваш пользователь залогинен в системе. Поэтому, если у вас есть причина шифровать домашний каталог — то делайте это всё же на виртуалке, к которой никто не имеет доступа кроме вас. К тому же, если вы положите в зашифрованный домашний каталог файлы (например, сайта), а потом выйдете из системы — то эти файлы перестанут быть доступны.
Ну, собственно, можно начинать ставить x2go. Сначала настраиваем сервер. Для начала напишу про Debian Wheezy. Создаём файл /etc/apt/sources.list.d/x2go.list с таким содержимым:
Добавляем ключ репозитория в систему:
Для убунты. Добавляем ppa x2go в систему:
Ставим нужный софт для запуска удаленного рабочего стола. Я буду ставить xfce (он вполне неплохо работает удаленно), если у вас много экспы — ставьте что угодно. Главное, не Unity и не KDE (тормозит-с, ибо им видюха полноценная нужна).
Для убунту лучше сразу сделать так:
Ещё раз повторюсь, что ставить всё это на сервер, где крутится ещё
что-то крайне не рекомендуется. Покушает много места и памяти.
В общем-то, сервер на этом готов. Ну можно поставить туда ещё
firefox/iceweasel, если уже нет. Или jabber-клиент. Или skype-клиент
(правда, голосом общаться не получится, наверное). Дальше
ставим/настраиваем клиент.
Для винды нужно просто пойти сюда и ткнуть там ссылку «mswin», потом поставить клиент.
Для убунты 12.04+ и Debian 7+ можно воспользоваться командой (это уже на десктопе, если кто не понял):
Правда, из репозиториев приезжает достаточно старая версия (хотя и
работающая), поэтому я рекомендую повторить на десктопе те же шаги,
которые вы делали на сервере (создать файл
/etc/apt/sources.list.d/x2go.list и так далее), только ставить один
x2goclient, а не x2goserver.
Так же нужно знать, что на linux-ах x2goclient приносит за собой и
запускает openssh-server. Он нужен для работы x2go, но ему не нужно
слушать внешние интерфейсы (а в таком случае ssh-сервер будет недоступен
всем остальным, кроме вас). Поэтому, перевесим его на localhost:
Теперь можно смело запускать x2go-клиент. В нём топаем в менюшку Session -> New Session.
Меняем значок на клевую картинку, создаём сессию для подключения.
В поле Host пишем ip-адрес или dns-имя нашего сервера.
В поле Пользователь — имя пользователя, которого мы создавали (и которому шифровали папку).
SSH порт — 22 стандартный, если меняли — сами знаете, что написать)
Если вы знаете про ssh-ключи, то я
сильно рекомендую использовать для авторизации в x2go именно ключи
(впрочем, пароль там сохранить негде, так что его не сопрут. Разве что
кейлоггерами).
Тип сессии — XFCE, если вы ставили xfce. Если что-то другое — сами выберите нужное ;)
Далее переходим во вкладку Соединение. Там выбираем ADSL, метод сжатия 16m-jpeg, Качество — 9.
Во вкладке «Установки» выключаем звук и принтер (звук на арендованных
виртуалках работать не будет, скорее всего), если они не нужны.
Экспорт каталогов — по вкусу.
Усё, жмем подключиться, вводим пароль от пользователя/ключа,
наслаждаемся. Если просто закрыть окно x2go — то сессия останется висеть
в фоне. Если явно нажать выход в XFCE — то сессия завершится. Только не
забывайте, что если вы не завершите сессию, то файлы в домашнем
каталоге останутся незашифрованными для рута.
После первого логина в XFCE нужно добавить несколько апплетов на панель
(пкм по панели -> Panel -> add new item). Нужно добавить Actions
buttons (чтобы можно было делать logout), и Keyboard layouts. В
настройках последнего нужно будет настроить клавиши для переключения
раскладки и добавить вторую раскладку, если нужна.
Ещё полезная фича для хомяков — запуск отдельного приложения по x2go.
Выбираем тип сессии «Приложение», Команду/исполняемый файл и логинимся.
Такие приложения выглядят под убунтой достаточно нативно (особенно если
настроить внешний вид на стороне сервера), вот только при запуске
браузера таким способом у меня иксы упали =) Остальное запустилось
нормально.
https://debian.pro/1618