- Терминальные решения на Linux — Linux в качестве терминального клиента и десктопной машины
- Установка клиента rdesktop на Ubuntu, Linux
- Настройка терминального клиента rdesktop
- Конфигурация и подключение терминального клиента rdesktop к серверу
- LTSP: Терминальный сервер на Linux
- Принцип работы
- Плюсы и минусы
- Устройство
- Как устроена загрузка по сети?
- Установка
- DHCP-сервер:
- Установка ПО
- Создание пользователей
- Конфиг lts.conf
- Итоги
Терминальные решения на Linux — Linux в качестве терминального клиента и десктопной машины
Сегодня, в продолжении цикла статей об альтернативном бесплатном программном обеспечении, хотим осветить довольно популярный вопрос терминальных решений на базе Linux. Данное решение абсолютно ничем не уступает терминальным клиентам, которые идут в комплекте с операционными системами Microsoft Windows.
В качестве примера мы будем использовать операционную систему Xubuntu 12.04, терминальный клиент rdesktop и Microsoft Windows Server 2003.
Терминальный RDP клиент rdesktop для установки предоставляется в различных вариациях, в том числе и в исходных кодах. Скачать вы его можете из репозиторием вашей системы либо с сайта разработчика.
Статья ориентирована на новичков в среде Linux. В статье будет присутствовать излишняя разжеванность для беспроблемной инсталляции RDP клиента rdesktop обычному пользователю.
Установка клиента rdesktop на Ubuntu, Linux
Вопрос установки операционной системы мы рассматривать не будем, данной информации достаточно на просторах интернета и мы полагаем, что вы обладаете навыком инсталляции вашей версии Linux на компьютер.
Перейдем непосредственно к установке нашего клиента на десктопный компьютер. Мы будем производить установку RDP клиента непосредственно из стандартных репозиториев ubuntu. Данный метод позволит быстро и без лишних хлопот установить наш клиент.
Вводим в терминале команду с правами суперпользователя:
Далее строится ветка зависимостей пакетов и происходит установка недостающих пакетов и самого клиента rdesktop. Примерно так:
Собственно на данном этапе инсталляцию RDP клиента rdesktop можно считать завершенной. Поздравлямба =)
Настройка терминального клиента rdesktop
В принципе, после установки терминальный клиент rdesktop полностью готов к работе, но встречаются проблемы с кодировкой клавиш и комбинаций клавиш клавиатуры в терминальном доступа. Данная проблема легко решается при помощи ручной корректировки кодов символов в файлах конфигурации терминального RDP клиента rdesktop.
Интересующие нас файлы находятся в директории:
Для конфигурации нам потребуются 2 файла ru и en-us. Для конфигурирования данных файлов достаточно открыть их в любом текстовом файле с правами суперпользователя:
И заменить все содержимое файлов на следующее:
По результатам данных манипуляций исчезнут проблемы с вводом символов на русской и английской раскладке в терминальном доступе.
Конфигурация и подключение терминального клиента rdesktop к серверу
И вот мы подошли к самому интересному и завершающему этапу нашей сегодняшней темы статьи — конфигурация и подключение терминального клиента RDP rdesktop к терминальному серверу Windows.
Для начала мы приведем список всевозможных конфигураций и ключей для терминального клиента rdesktop.
Небольшая ремарка к параметру полноэкранной инициализации терминального клиента — для возврата в оконный режим необходимо нажать сочетание клавиш Ctrl+Alt+Enter
Подытожим с возможными конфигурациями, ключами и параметрами RDP терминального клиента rdesktop и перейдем, непосредственно, к примерам запуска терминальной сессии.
Минимальным набором параметров при инициализации терминальной сессии средствами терминального клиента rdesktop следует считать:
Присутствует всего один параметр — ip_rdp_server. Параметр ip терминального сервера может иметь 2 вида: с явным указанием порта подключения к терминальному серверу(адрес:порт) и портом по умолчания(адрес).
Пример инициализации терминальной сессии по нестандартному порту терминального сервера:
Приведем пример базовой конфигурации запуска терминального клиента rdesktop:
Т.е. по факту инициализации RDP клиента rdesktop мы получаем терминальную сессию, терминальное окно которого развернута на весь экран, нормальной работой кодировок русского и английского языка и с базовым пользователем user1. Терминальная сессия имеет минимум параметров инициализации: ip терминального сервера, раскладка клавиатуры для терминальной сессии, параметр открытия терминального окна на весь экрана и пользователя для авторизации. Для переходов между режимами и перехода в оконный режим используйте сочетания клавиш Ctrl + Alt + Enter.
Пример инициализации терминальной сессии без авторизации(параметры авторизации передаются в момент инициализации и прописаны в команде инициализации сессии):
Мы думаем комментарии к данной инициализации излишни, т.к. добавился всего один параметр -p — пароль пользователя при инициализации.
Пример проброса принтера в терминальную сессию rdesktop:
Параметр проброса принтера в терминальную сессию может быть представлен в двух видах: с неявным указанием драйвера принтера( -r printer:Имя_принетра_в_локальной_системе) и явным указанием драйвера принтера( -r printer:Имя_принетра_в_локальной_системе = «Дравер_для_терминально_сервера»). В большинстве случаев терминальный сервер корректно определяем необходимый драйвер для принтера и не требует явного указания драйвера в терминальной сессии на сервере.
Пример проброса COM портов в терминальную сессию rdesktop:
Мы думаем данный пример не нуждается в излишних комментариях. В примере используется явное указание устройств подключенных по COM портам. Параметр проброса COM портов на сервер имеет вид — имя_инициализации_порта_на_сервере = путь_в_локальной_системе_к_COM_порту.
Пример проброса файловых директорий в терминальную сессию rdesktop:
Из данного примера мы видим параметр монтирования локальных файловых ресурсов средствами терминальной сессии. Параметр имеет следующую структуру — имя_устройства_при_инициализации_на_сервере = имя_директории_на_локальной_машине
Собственно на данном этапе мы и подытожим с примерами инициализации терминальных сессий средствами терминального клиента rdesktop и добавим к вышесказанному о возможности проброса таких устройств как:
- Клавиатур.
- Аудио устройств.
- LPT
- Scard — ключей цифровой подписи eToken и прочее.
Вот и подытожили мы нашу сегодняшнюю статьи, которая получилась довольно обширная и внятная для новичка в системе linux.
По итогам прочтения данной статьи у вас должно возникнуть устойчивое, четкое представление о возможностях терминального клиента rdesktop на ОС linux, теоретические и практические знания по процедуре установки и инициализации терминальных сессий средствами терминального клиента rdesktop.
Источник
LTSP: Терминальный сервер на Linux
LTSP — Это терминальное решение на Linux.
В частности, LTSP — это совокупность преднастроенных программ и скриптов которые позволят вам без особого труда превратить вашу свеже установленную Ubuntu, или другой дистрибутив, в полностью готовое к работе терминальное окружение. Которое будет загружаться на любых компьютерах в вашей сети и предоставлять пользователю полноценный интерфейс.
У LTSP есть несколько режимов работы:
Для того, чтобы понять в чем различие для начала нам нужно разобраться как LTSP работает.
Принцип работы
Допустим, у вас есть сервер и множество компьютеров (терминальных станций), которые вы раздаете пользователям, чтобы те за ними работали. Терминальные станции эти почти ничем не отличаются от обычных компьютеров, за исключением того, что их размеры обычно достаточно малы, для работы им не нужен жесткий диск и, кроме того, они могут быть довольно слабыми и дешевыми, на работе пользователей это не отражается (в режиме тонкого клиента). Стоит отметить, что в роли терминальной станции может выступать любой компьютер, который умеет загружаться по сети.
Как я уже сказал, на терминальных станциях вполне может и не быть жесткого диска, а соответственно никакой операционной системы на них не установленно, вся загрузка происходит c LTSP-сервера прямо по сети.
На терминальном сервере у вас установлена система, в ней же и хранятся все данные пользователей, конфиги, и ПО.
Когда пользователь включает свой компьютер, у него загружается операционная система с терминально сервера, он может в нее войти, поработать, отключиться. При этом все данные всегда остаются на терминальном сервере.
Теперь о режимах работы:
- тонкий клиент — Приложения выполняются на терминальном сервере и просто выводятся на дисплей терминального клиента.
- толстый клиент — Приложения выполняются непосредственно на терминальном клиенте, а сервер просто предоставляет доступ к пользовательским файлам и программам.
Итак, какой же режим нам выбрать? — все зависит от того, что вы хотите получить. Вы можете немного сэкономить используя на клиентах слабые станции вкупе с мощным сервером в режиме тонких клиентов. Или разгрузить терминальный сервер и локальную сеть, купив терминальные станции помощнее, переложив ответсвенность за выполнение программ на клиентов, заставив их, тем самым, работать в режиме толстого клиента.
Кроме того, режимы можно комбинировать и некоторые приложения можно заставлять работать иначе, чем все остальные. Например запускать “тяжелый” браузер с flash локально на клиентах, а офисные приложения запускать на самом сервере.
Плюсы и минусы
Давайте рассмотрим какие же плюсы мы имеем по сравнению со стандартными принципами построения ит инфраструктуры:
- Централизованное управление — У вас есть одна единая конфигурация, которой вы управляете из одного места.
- Резервирование и бэкапирование — Все пользовательские данные у вас хранятся на одном сервере, а соотвественно настроив резервирование этого сервера, вы никогда не потеряете пользовательские данные.
- Экономия на компьютерах — Бездисковые терминальные станции стоят заметно дешевле, чем полноценные компьютеры.
- Быстрое развертывание — Вам больше не нужно устанавливать ОС. Прикупив очередную пачку терминалов их можно смело втыкать в сеть, они сразу подтянут операционку с сервера и они будут полностью готовы к работе. Точно так же нерабочий терминал можно быстро заменить другим.
- Независимость от рабочего места — Пользователи могут работать под своей учетной записью независимо с любого компьютера в сети, всегда будет подгружаться именно их личный профиль.
- OpenSource — Прежде всего, LTSP — это открытый и свободный проект. Вам не надо покупать лицензии для его использования. Кроме того, вы всегда можете посмотреть исходники, в основе которых лежат обычные bash-скрипты.
- Требуется непрерывное подключение LAN — терминальные станции грузятся и работают по сети, поэтому требуется стабильное проводное подключение к сети.
- Зависимость от сервера — понятное дело, без сервера все терминальные клиенты становятся бесполезными и превращяются в тыкву.
Устройство
Первое, что мы должны знать, это компоненты из которых состоит сервер:
- DHCP-сервер — используется для выдачи клиентам IP-адресов и информации о tftp-сервере и пути к загрузчику pxelinux. Вы так же можете использовать ваш собственный DHCP-сервер.
- TFTP-сервер — отдает по tftp-протоколу загрузчик, ядро и главный конфиг lts.conf .
- NBD-сервер — используется ядром для загрузки базовой системы по сети. Так же, при желании, может быть заменен на NFS
- SSH-сервер — используется для авторизации пользователей и передачи их домашних каталогов на терминальные станции.
Во вторых разберемся в том как он работает:
Когда вы установите на ваш сервер пакет ltsp-server-standalone , вы, к полностью настроенным сервисам, получите еще несколько ltsp-скриптов:
- ltsp-build-client — собирает для нас образ системы, который мы будем отдавать на клиентские машины.
- ltsp-chroot — chroot’ит нас в клиентскую систему, например для установки дополнительных пакетов и изменения конфигов.
- ltsp-config — генерит дефолтные конфиги для LTSP.
- ltsp-info — выводит информацию о текущей установке.
- ltsp-update-image — обновляет nbd-образ базовой системы.
- ltsp-update-kernels — копирует ядро и загрузчик из клиентского образа, в директорию tftp-сервера
- ltsp-update-sshkeys — добавляет ssh publickey вашего сервера, в known_hosts клиентского образа.
Их то мы и будем использовать для настройки нашего окружения.
Как устроена загрузка по сети?
Так же предельно важно понимать как устроена загрузка по сети, процесс загрузки выглядит примерно следующим образом:
- Рабочая станция включается и опрашивает DHCP-сервер, как ей грузиться дальше:
А точнее происходит запрос двух опций: next server — адрес TFTP-сервера и boot file — путь к загрузчику. - DHCP-сервер, выдает ответ с адресом сервера и путем к pxelinux.
- Рабочая станция загружает загрузчик pxelinux по TFTP
- pxelinux загружает ядро.
В конфиге pxelinux в опциях ядра указанно откуда грузить основную систему по NBD - Когда ядро запускается, оно маунтит с сервера nbd-образ в корень системы и загружает процесс init, который в свою очередь и загружает все остальное обычным способом.
- Так же в этот момент ltsp-читает главный конфиг lts.conf с сервера и запускает LDM, после чего пользователь видит приглашение к вводу логина и пароля.
LDM — это логон менеджер LXDE, который отвечает за авторизацию пользователей и начальный запуск окружения.
Когда пользователь логинится проиходит следующее:
- В случае тонкого клиента, LDM заходит с введенным логином и паролем на ваш сервер по SSH,, если успешно, загружает окружение с сервера простым пробросом X’ов.
- В случае толстого клиента, LDM пытается подключиться с введенным логином и паролем к вашему серверу, если успешно, то маунтит домашний каталог пользователя с сервера на клиент посредством sshfs, затем запускает окружение.
Установка
Я опишу установку LTSP в режиме толстого клиента, как наиболее сложную и интересную.
Настройка в режиме тонкого клиента мало чем будет оличаться, за исключением того, что необходимое ПО вам придется устанавливать не в chroot, а в основную систему, и после этого вам не нужно будет пересобирать nbd-образ.
Маленькая оговорочка, для сервера лучше брать дистрибутивы посвежее, т.к. LTSP находится среди стандартных пакетов и обновляется вместе с дистрибутивом.
UPD: Проверенно, с последней Ubuntu 16.04 LTS таких проблем не возникает.
Итак, приступим. Сначала устанавливаем ltsp-server-standalone :
Теперь с помощью ltsp-build-client мы установим клиентскую систему. LTSP поддерживает различные DE, но больше всего мне понравилось как работает LXDE. В отличии от Unity он потребляет совсем мало ресурсов и так-как работает на голых иксах, он почти полностью конфигурируется с помощью переменных среды, это очень удобно, так-как их можно указать в главном конфиге lts.conf.
Все эти опции можно указать в конфиге /etc/ltsp/ltsp-build-client.conf , что бы не прописывать их вручную:
В случае если опция не указана, будет использоваться тот же дистрибутив и/или архитектура, что и на серверной системе.
После запуска комманды, у вас в полностью автоматическом режиме, с помощью debootstrap , развернется система в каталог /opt/ltsp/i386 .
Эта же система и будет использоваться в дальнейшем всеми командами LTSP, в нее будет устанавливаться дополнительное ПО, из нее будут генериться загрузчик с ядром и nbd-образ системы. В принципе, ее, так же можно отдавать по nfs при должной настройке загрузчика.
После установки LTSP автоматически сгенерит из нее nbd-образ. Этот образ и будут загружить наши клиенты.
Для того, чтобы внести какие-нибудь изменения в гостевую ОС, например устанавливать дополнительное ПО, используется команда ltsp-chroot .
Если вы хотите что-то поменять или добавить в гостевую систему, выполните ltsp-choot и вы окажетесь внутри нее.
Затем произведите нужные вам действия, и выйдите командой exit.
Чтобы изменения применились, нужно перегенерить nbd-образ командой ltsp-update-image
DHCP-сервер:
Вместе с метапакетом ltsp-server-standalone у нас установился и isc-dhcp-server .
В принципе он уже из коробки работает как надо, но при желании вы можете поправить его конфиг /etc/default/isc-dhcp-server .
Но, так как я предполагаю, что у вас уже есть DHCP-сервер, предлагаю настроить его.
Удалим isc-dhcp-server :
Теперь вам нужно добавить к вашему dhcp-серверу 2 опции:
Как это сделать, смотрите инструкции к вашему DHCP-серверу.
Установка ПО
- Давайте же войдем в нашу гостевую систему:
- Теперь установим vim:
- Поддержку русского языка:
- Последнюю версию Remmina:
- Skype:
- Браузер Chromium c плагином PepperFlash (свежий flash от google)
- Кстати, PepperFlash можно установить и запустить без Chromium, в Firefox:
- Чтобы администратор мог удаленно подключиться к сессии пользователя установим x11vnc:
- И ssh-сервер:
- Еще в Ubuntu 16.04 есть некая проблема, если не настроить xscreensaver, то через определенное время клиент покажет черный экран, из которого никак не выйти. Исправим это:
Установим xscreenasver, если он еще не установлен:
Если вы намерены блокировать экран с вводом пароля, не забудьте добавить следующую строку в ваш конфиг lts.conf:
Не забываем выйти из chroot и обновить наш nbd-образ:
Создание пользователей
- Обычных пользователей терминального сервера можно создать стандартным способом:
Или через GUI если он установлен у вас на сервере
Конфиг lts.conf
Вот мы и подобрались к самому главному конфигу
Находится он по адресу /var/lib/tftpboot/ltsp/i386/lts.conf и представляет ссобой нечто иное как описание глобальных переменных.
Конфиг поделен на секции, в секции Default описываются настройки общие для всех клиентов:
Также можно добавить секции для отдельных клиентов, на основе hostname, IP или MAC-адреса:
Вообще полный список опций вы можете найти на этой странице, или в
Итоги
В итоге мы получаем одновременно гибкую, безопасную и простую в администрировании систему.
Мы можем стандартными методами установливать любое ПО на нее, разграничивать права пользователей, править конфиги общие и для каждого юзера по отдельности, и не бояться за потерю данных.
К тому же, благодаря свободной лицензии все это достается вам абсолютно бесплатно.
LTSP можно использовать как в учебных заведениях, так и в обычных офисах, как для удаленного подключения к Windows, так и просто для обычной работы.
Источник