Тонкие клиенты и их настройка с нуля. Как сделать тонкий клиент из старого компьютера

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

Что такое тонкий клиент по своей сути?

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

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

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

Схема «сервер - тонкий клиент»: как это работает?

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

Тут абсолютно неважно, какая используется схема подключения Главное - четкая переадресация. Пояснить это можно на примере загрузки ОС с центрального сервера на клиентские терминалы, не имеющие винчестеров.

Загрузка операционных систем

Но как же операционная система может загружаться на компьютер без жесткого диска? Элементарно! Современные соединений могут использовать протоколы вроде RIS, DHCP, PXE, RDP и другие.

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

Система «тонкий клиент»: требования

Если речь идет именно о компьютерных терминалах, для работы тонкого клиента любого типа обычно достаточно самого простенького процессора и всего-то 1 Мб оперативной памяти.

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

Пример установки и настройки приложений 1С

Однако посмотрим, что собой представляет установка тонкого клиента на примере программных продуктов 1С.

Требование тут самое простое: серверная часть находится на центральном терминале, клиенты - на остальных машинах в локальной сети. Только в данном случае использование подключения через обычно применяется на уровне TCP/IP, HTTP или HTTPS, а на терминалах устанавливаются жесткие диски минимального объема для инсталляции клиентской части программы.

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

  • загрузка и инсталляция клиентов 8.2 и 8.3;
  • публикация базы данных на сервере;
  • добавление базы в список доступных;
  • установка подключения типа «веб-сервер».

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

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

Подключение и лицензии

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

Выгоды и преимущества

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

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

Сборка тонкого клиента, ориетнированного на определенные клиенты, сводится к следующим этапам:

  • Скачиваем полный репозиторий ThinStation
  • Собираем "толстый" (полный) образ
  • Загружаем тонкий клиент на толстом образе
  • Получаем список необходимых для этого клиента модулей ядра и пакетов
  • Исправляем конфиги сборки, оставив только самое необходимое (в том числе полученное на предыдущем этапе)
  • Собираем "тонкий" (облегченный) образ

Подготовка кухни

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

Скачивание репозитория

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

Всё остальное сейчас не важно - настраивать тонко будем потом.

Отдельно остановлюсь на том, зачем нужно поменять систему сжатия со squashfs на gzip . Скрипт hwlister.sh , о котором пойдет речь ниже, использует очень интересную методику поиска загруженного firmware - он просто смотрит время доступа к файлам в /lib/firmware и на основе этого делает выводы, какие файлы были загружены. Но squashfs монтируется с параметром relatime , что приводит к тому, что время доступа к файлам не меняется и список firmware (чёрт, не знаю, как перевести это слово, не потеряв смысл) всегда пуст. Изменение режима сжатия на gzip - самый простой и быстрый способ вернуть скрипт к жизни не залезая в кишки. Я написал об этом разработчикам, но ответа пока не было.

Сборка

Сборка любого образа выполняется в chroot - так что не забываем в него зайти. Для сборки толстого образа существует также специальный параметр --allmodules , который включает в образ все доступные модули ядра, что также пригодится на неизвестном железе.

После того, как процесс завершится, в директории boot-images можно будет найти варианты образа - iso, pxe и syslinux. Можно использовать любой и загружать клиент любым удобным способом.

Сбор информации

Когда подопытное железо успешно загрузилось, необходимо зайти в консоль любым удобным способом и написать:

Это обычный bash-скрипт, после выполнения которого вы обнаружите несколько файлов:

  • /firmware.list - список необходимых firmware
  • /module.list - список необходимых модулей ядра
  • /package.list - список необходимых пакетов, учитывая архитектуру будет содержать только xorg7-* пакеты
  • /vbe_modes.list - если используется uvesafb , этот файл будет содержать список поддерживаемых режимов

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

Этот же скрипт попытается загрузить файлы на ваш tftp-сервер, указанный в конфиге, однако, надеюсь, у вас запись на tftp, как и у меня, запрещена. Поэтому забираем файлы с тестируемой системы любым способом и кладем в директорию ts/build/machine/MACHINENAME , где MACHINENAME - кодовое имя, которое вы дадите своему железу.

Тонкий образ

Сборка тонкого образа - это всегда балансирование на границе между функциональностью и объемом. Меньше объем - быстрее загрузка бездисковых рабочих станций по сети, быстрее старт системы, меньше оперативной памяти требуется клиентам. Лично у меня стояла задача сделать образ минимального объёма всего под одну задачу - терминальный RDP-клиент. Об этом я и буду рассказывать.

Итак, у нас есть офис, набор тонких клиентов, подключенных проводами, получающих адрес по DHCP, загружающихся по PXE и стартующих одно единственное приложение - RDP-клиент.

Конфигурация сборки - build.conf

Как я уже писал выше, первый этап в конфигурации сборки - это правка файла build.conf . Он определяет какие пакеты будут включены в образ и некоторые другие параметры сборщика.

  • Все строки начинающиеся с machine - комментируем. Должно остаться только то, что используется у вас. Нужно отметить, что в конфигурации можно держать активными сразу несколько профилей - тогда получится образ, запускающийся на любом из них (в теории, если нет конфликтов).
  • Скорее всего вам не понадобятся файловые системы кроме vfat и ntfs - поэтому в блоке файловых систем можно смело комментировать строки isofs , udf , ext* .
  • Так как мы создали профиль для своего железа, содержащий необходимые пакеты xorg7 , то все строки содержащие package xorg7-* - можно смело комментировать.
  • Смело комментируем все пакеты локалей package locale-* кроме, конечно ru_RU , и, по желанию, en_US - нужна она или нет вопрос спорный.
  • Если вам нужен удаленный доступ к рабочим станциям - включите package sshd
  • Если вам нужны смарт-карты и USB-токены - включите package ccidreader
  • Если вы собираетесь вырезать оконный менеджер, рабочий стол и показывать пользователю только одно приложение (например FreeRDP) - включите пакет package automount для автоматического монтирования любых USB-устройств. При этом package udisks можно смело выключить.
  • Если вам не нужен интерфейс для Wi-Fi соединений и другие рюшечки - закомментируйте package networkmanager и включите package autonet . Но будьте готовы к тому, что придется покопаться в его внутренностях - это скриптовая обвязка для системных утилит и в некоторых сетях может работать не совсем так, как ожидается.
  • Чтобы максимально облегчить образ, включаем package openbox и выключаем package gtk-* , package icons-* , package fonts-* .

Что касается пакетов в разделе Applications - здесь выбор полностью за вами. Всё описанное выше применимо к тонким клиентам, где пользователь не будет видеть своего рабочего стола (RDP, VNC, etc) и для использования, например, локального браузера - многое из перечисленного выше придется оставить.

Остается не забыть вернуть param initrdcmd "squashfs" и убрать 3 строки в самом конце: package alltimezone , param allres true и param allfirmware true - в тонком образе это нам не пригодится.

Runtime-конфигурация - thinstation.conf.buildtime

Файл thinstation.conf.buildtime является по своей сути bash-скриптом, предоставляющим переменные окружения для всех скриптов запуска. Перед тем, как начать его редактировать, стоит заглянуть в директорию ts/build/conf (github) - здесь собраны кусочки конфигураций для каждого пакета, включающие в себя пояснения и все доступные переменные.

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

# У пользователя не будет локального UI, так что локально выкручиваем громкость на максимум AUDIO_LEVEL = 100 MIC_LEVEL = 100 # Для бездисковых станций резонно собирать логи в одном месте SYSLOG_SERVER = syslog.example.com # Локаль и таймзона LOCALE = ru_RU.UTF8 TIME_ZONE = Europe/Moscow # Кнопки "Безопасного извлечения устройства" также не будет - поэтому включаем обязательно USB_STORAGE_SYNC = ON DISK_STORAGE_SYNC = ON # Монтировать устройства нужно в директорию, которую мы потом пробросим в удаленную сессию USB_MOUNT_DIR = /mnt/usb # Для поддержки кириллицы на съемных накопителях, я для себя вывел вот такой набор параметров. Он точно подходит для FAT32/NTFS разделов и FreeRDP USB_MOUNT_OPTIONS = DISK_MOUNT_OPTIONS = "rw,nosuid,nodev,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro" # Если выключили NetworkManager и включили autonet - обязательно настройте сеть NET_USE_DHCP = ON # Нулевая сессия должна быть оконным менеджером # Можно попробовать обойтись без него и даже вообще без Иксов # но это тема для отдельной статьи SESSION_0_TITLE = Desktop SESSION_0_TYPE = openbox SESSION_0_AUTOSTART = ON # Главная рабочая сессия # Список параметров FreeRDP - пожалуй также повод для отдельной статьи SESSION_1_TITLE = RemoteDesktop SESSION_1_TYPE = freerdp SESSION_1_AUTOSTART = ON SESSION_1_FREERDP_SERVER = rdp.example.com SESSION_1_FREERDP_OPTIONS = "+decorations +fonts +aero ..."

Сборка тонкого образа

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

И это всё. В зависимости от того, что вы указали в build.conf , вы получите готовые образы для загрузки по PXE, с CD-ROM, жесткого диска или флешки. При описанной конфигурации можно добиться образа размером ~90 MB и времени загрузки по PXE (от включения питания до рабочего стола) около 1 минуты. С локального диска и того быстрее.

Другие возможности

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

Полезные заметки

Очистка кухни

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

  1. Не забыть выйти из chroot
  2. Убедиться, что сохранили все свои изменения в Git
  3. Отмонтировать все системные ФС внутри кухни: umount -R thinstation/*
  4. Запустить скрипт очистки: sudo ./setup-chroot -a
  5. Удалить всё, что осталось: git clean -dx - это удалит все несохраненные файлы

Добавление своих пакетов

Если вы собираетесь привносить в проект что-то свое, нужно знать о том, что в терминологии ThinStation, а вернее в терминологии CRUX Linux, на котором базируется TS, существует два базовых понятия:

  • package (далее "пакет") - некая абстракция, указывающая на то, что необходимо установить в будущий образ. Пакет может содержать кусок дерева файловой системы, отдельные файлы, или даже просто один конфигурационный файл, указывающий, например на зависимости.
  • port (далее "порт") - подобие *.deb иди *.rpm пакета, с одним важным отличием: архив со скомпилированными файлами не содержит правил установки, а представляет из себя просто кусок дерева файловой системы. Любые правила (скрипт компиляции, скрипты пост-установки, и т.д.) лежат рядом с архивом и легко редактируются.

Когда вы хотите дополнить образ чем-то своим, первое, о чем стоит задуматься, а что именно вам нужно? Если вы хотите добавить в образ пару текстовых конфигов - просто создайте свой пакет, включите его build.conf - и этого будет более чем достаточно. Если же вам нужно собирать бинарные файлы - то вам понадобится сделать свой порт.

Создание своего порта

Prtdir /ts/ports/yourproject

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

Теперь вам понадобится создать один единственный bash-скрипт, который будет отвечать за сборку порта: /ts/ports/yourproject/portname/Pkgfile . Образец можно посмотреть , а можно подсмотреть в любом другом порте. Базовый вариант выглядит так:

Name = mdetect-TS version = 0 .5.2.3 release = 1 source =(http://ftp.de.debian.org/debian/pool/main/m/$name /$name -$version .tar.bz2) build() { cd $name -$version ./configure --prefix= /usr \ --exec-prefix= / \ --sysconfdir= /etc \ --mandir= /usr/man \ --disable-extras make make DESTDIR = $PKG install }

Давайте разберемся, что он делает (на самом деле делает не он, он лишь определяет стадию сборки):

  1. Скачивает файлы, заданные в source (в данном случае - http://ftp.de.debian.org/debian/pool/main/m/mdetect-TS/mdetect-TS-0.5.2.3.tar.bz2), их может быть несколько
  2. Распаковывает все скачанные файлы в рабочую директорию
  3. Выполняет configure + make
  4. Делает make install из директории /ts/ports/yourproject/portname/work/src в /ts/ports/yourproject/portname/work/pkg
  5. Полученное содержимое директории pkg упаковывается в архив. Это и будет наш порт, готовый для установки.

Проверим наши предположения. Чтобы выполнить первую сборку, необходимо сделать следующее:

[ _chroot]/# cd ts/ports/yourproject/portname/ [ _chroot]/ts/ports/yourproject/portname# pkgmk -kw =======> Building "/ts/ports/yourproject/portname/portname#0.5.2.3-1.pkg.tar.xz".

Как это работает

После старта тонкого клиента управление передаётся PXE-загрузчику, который находится в ПЗУ сетевой карты.
PXE-загрузчик по протоколу BOOTP получает:

  • сетевые настройки
  • IP адрес TFTP-сервера
  • путь к образу ОС тонкого клиента для загрузки

Далее загружается образ ОС Thinstation Linux и управление передаётся ему. Thinstation Linux при загрузке ещё раз получает найстройки сети и IP адрес TFTP-сервера и пытается загрузить конфигурационный файл.
Если такой файл есть, то он загружается и применяется, если нет - применяются настройки по умолчанию.

Тонкий клиент готов к использованию

Настройка тонкого клиента (аппаратное обеспечение)

Устройство, выступающее в роли Тонкого клиента, должно поддерживать загрузку по сети. Как правило, эта функция включается в настройках BIOS.

Настройка окружения

Настройка окружения состоит из двух составляющих: DHCP-сервер и TFTP-сервер. Как правило, в большинстве локальных сетей DHCP-сервер уже есть и используется для выдачи сетевых настроек рабочим станциям. Необходимо только настроить его таким образом, чтобы кроме сетевых настроек он так же отдавал IP адрес TFTP-сервера и путь до образа ОС Thinstation Linux. TFTP сервер должен обеспечивать доступ к каталогу, в который необходимо скопировать образ ОС Thinstation Linux и конфигурационные файлы тонких клиентов, если такие необходимы.

Настройка тонкого клиента (программное обеспечение)

В простейшем случае, чтобы заставить тонкие клиенты соединяться с терминальным сервером по RDP, необходимо в корне TFTP-сервера создать папку ts5.4, в которой содержится файл thinstation.conf.network, с содержимым:

SESSION_0_RDESKTOP_SERVER=IP_АДРЕС_ТЕРМИНАЛЬНОГО_СЕРВЕРА
SESSION_0_TYPE=rdesktop

Этот конфигурационный файл загружается всеми тонкими клиентами сети. Более специфичные настройки можно указать в файлах с именами в формате thinstation.conf-MAC, например thinstation.conf-0040CAB514DD, или для станций с зарезервированным IP-адресом thinstation.conf-IP, например thinstation.conf-192.168.0.33

Настройка DHCP-сервера

Содержимое файла /etc/default/dhcp3-server:

# Список сетевых интерфейсов через пробел на которых будет работать DHCP-сервер.
INTERFACES="eth0"
Содержимое файла /etc/dhcp3/dhcpd.conf:
default-lease-time 14400;
max-lease-time 86400;
# маска подсети
option subnet-mask 255.255.255.0;
# шлюз по умолчанию
option routers 192.168.0.1;
# DNSoption domain-name-servers 192.168.0.1; authoritative;
# Описание настроек подсети
subnet 192.168.0.0 netmask 255.255.255.0 {
# Диапазон адресов, который будет выдавать DHCP сервер
range 192.168.0.50 192.168.0.254;
# Путь до образа Thinstation Linux
filename "/pxelinux.0";

Настройка TFTP-сервера

Содержимое файла /etc/default/tftpd-hpa:

# Запускать tftpd при запуске системы yes/no
RUN_DAEMON="yes"
# Параметры, передаваемые tftpd. Параметр -s указывает на каталог, который будет корнем tftpd.
# Для получения более полной информации по параметрам используйте команду "man tftpd"
OPTIONS="-l -s /var/lib/tftpboot"

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

Необходимо распаковать архив с образом тонкого клиента в /var/lib/tftpboot таким образом, чтобы pxe-загрузчик был доступен по пути "/var/lib/tftpboot/pxelinux.0". Далее создадим общий файл настроек для тонких клиентов:
Содержимое файла/var/lib/tftpboot/ts5.4/thinstation.conf.network:

# IP адрес терминального сервера
SESSION_0_RDESKTOP_SERVER=192.168.0.10
# Протокол доступа к терминальному серверу
SESSION_0_TYPE=rdesktop

Настройка разрешения экрана в Thinstation Linux

В простейшем виде разрешение задаётся параметром SCREEN_RESOLUTION:

SCREEN_RESOLUTION="1280x1024"

Работы по настройке и установке сервера терминалов, а так-же тонких клиентов Вы можете поручить специалистам нашей компании. звоните по телефону +7 812 3366024 ,

Для получения скидки напишите нам

Thinstation — мини-дистрибутив Linux, позволяющий превратить стандартные ПК в бездисковые тонкие клиенты. Его можно загружать по сети с помощью Etherboot/PXE или со стандартного носителя — дискеты/CD/жесткого диска/flash-диска и т.п.

Схема Загрузки
Загрузка Linux с HDD (SATA или PATA) или Flash – Загружается операционная система Linux c диска на котором находятся образ системы и ядро.
Примечание: Если используется сборка собранная с опциями NET_USE_DHCP=off и NET_FILE_ENABLED=OFF, то запрос к DHCP серверу не происходит и используеться локальный файл конфигурации thinstation.profile/thinstation.conf.user
Запрос DHCP сервера – при инициализации сетевого интерфейса происходит запрос к DHCP сервера на получение IP-адреса клиента, маски подсети, IP-адреса TFTP сервера для получения конфигурационных файлов.
Ответ DHCP сервера – При получении ответа, клиенту назначается IP-адрес и передается информация, где необходимо искать конфигурационные файлы. – загрузочные скрипты системы Linux получают c TFTP-сервера конфигурационные файлы, в которых описаны необходимые параметры для соединения клиента с терминальным сервером.
Инициализация терминального клиента

Установка на Диск
Для установки необходимо создать на жестком диске раздел 100 Мб с файловой системой fat. Переписать содержимое архива на диск. Подправить файл конфигурации thinstation.profile/thinstation.conf.user, описание настроек можно посмотреть в статье Синтаксис конфигурационных файлов.
Прописать загрузчик, для чего в командной строке windows (Пуск — Выполнить — cmd) или загрузив DOS, набрать:

F:>syslinux.exe -ma f:

где f — диск с образом

Внесения изменений в файл конфигурации на уже установленной системе:
1. Загружаем терминального клиента, переходим на вторую консоль Alt+F2 или Alt+Ctrl+F2 (если AUTOSTART=On). Заходим под логином root, пароль secretword. В качестве редактора используем e3. Набираем:

E3 /mnt/disc/sda/part1/thinstation.profile/thinstation.conf.user

где sda — первый SATA диск, для PATA — hda. Чтобы не вбивать весь путь, используйте кнопку Tab после первых введенных букв. После редактирования нажмите Ctrl+K X — для сохранения.
2. Редактировать thinstation.conf.user можно удаленно по telnet. Для windows лучше использовать PuTTY
P.S. Если диск отформатирован в ext2/ext3/ext4, то для загрузки нужен extlinux Скачиваем архив syslinux и взять из него (/syslinux-6.02/bios/extlinux/). Раздел должен быть активным.
Открывем консоль и переходим на монтированный раздел с диском или флэшкой например cd /mnt/flash, копируем туда extlinux и выполняем: ./extlinux –install . точка в конце означает что устанавливаем в текущий каталог.
Файл конфигурации: extlinux.conf, точная копия syslinux.cfg


Как работает PXE
1.PXE запрос DHCP сервера:
2.Ответ DHCP сервера
– в зависимости от параметров конфигурационного файла запускается RDP или ICA клиент, который устанавливает соединение с терминальным сервером.

Настройка сервера DHCP и TFTP на linux.

Пример настройки на Freebsd.
В Freebsd чтобы inetd слушал запросы TFTP, нужно расcкомментировать строку в файле /etc/inetd.conf:

Tftp dgram udp wait root /usr/sbin/in.tftpd in.tftpd -s /tftpboot

И сделать рестарт сервиса inetd:

Dom:~# killall -1 inetd

Потом создать директорию tftpboot и дать права:

Dom:~# mkdir /tftpboot dom:~# chmod -R 777 /tftpboot

Option domain-name "example.com"; option domain-name-servers 192.168.0.1; server-identifier NAME_HOST; authoritative ; allow booting; allow bootp; max-lease-time 172800; ignore client-updates; ddns-domainname "example.com"; ddns-updates on; ddns-update-style interim; default-lease-time 86400; log-facility local7; subnet 192.168.0.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option routers 192.168.0.1; one-lease-per-client on; range 192.168.0.20 192.168.0.30; } group { filename "pxelinux.0"; next-server 192.168.0.1; host 1 { hardware ethernet 00:0E:8F:32:B6:C5; fixed-address 192.168.0.10; } host 2 { hardware ethernet 08:20:07:26:C0:A5; fixed-address 192.168.0.11; } }

Распаковываем образ thinstation с pxe в /tftpboot

PXE-совместимые прошивки используются производителями при изготовлении сетевых карт и BIOS материнских плат с интегрированными сетевыми картами. Поэтому для бездисковой загрузки потребуется сетевая карта укомплектованная прошивкой PXE. Если у вас сетевая карта без прошивки, но Вы желаете сделать бездисковую загрузку, то как единственный выход в использовании прошивок Etherboot. Этот вариант здесь не рассматривается.
Как работает PXE
1.PXE запрос DHCP сервера: сетевая карта с поддержкой PXE запрашивает DHCP сервер на получение параметров, таких как IP-адрес клиента, маска подсети, IP-адрес TFTP сервера, на котором находится образ, а также — имя образа.
2.Ответ DHCP сервера – сервер назначает IP-адрес и затем передает его для использования клиенту вместе с другими параметрами. – клиент загружает с указанного DHCP-сервером IP-адреса TFTP сервера сначала PXE загрузчик — pxelinux. 0, с помощью которого загружается уже ядро операционной системы Linux — vmlinuz и образ файловой системы — initrd, включающий все необходимое для работы клиента. – загрузочные скрипты системы Linux получают c TFTP-сервера конфигурационные файлы, в которых описаны необходимые параметры для соединения клиента с терминальным сервером.
5.Инициализация терминального клиента – в зависимости от параметров конфигурационного файла запускается RDP или ICA клиент, который устанавливает соединение с терминальным сервером.

Настройка сервера Windows 2003

Службы и сервисы, необходимые для работы «тонких» клиентов

Вы можете использовать в качестве терминального сервера:

Microsoft® Windows® Terminal Server

Citrix® MetaFrame®

Если Вы используете в качестве терминального сервера Windows® Terminal Server, выберите следующие службы и сервисы:

Terminal Server

Если Вы используете в качестве терминального сервера Citrix® MetaFrame®, выберите следующие службы и сервисы:

Citrix® MetaFrame®

Пакет файлов для загрузки по PXE

Настройка DHCP Server

Для настройки DHCP Server выполните следующие действия:

2. Нажмите кнопу Add or remove a role.

3. В открывшемся диалоговом окне Preliminary Steps нажмите кнопку Next.

4. В открывшемся диалоговом окне Configuration Options выберите элемент Custom Configuration и нажмите кнопку Next.

5. В списке Server Role выберите DHCP Server и щелкните на кнопке Next дважды.

6. В диалоговом окне Welcome to the new Scope Wizard нажмите кнопку Next.

7. В диалоговом окне Scope Name в полях Name и Description введите имя и описание, после чего нажмите кнопку Next.

8. В диалоговом окне IP Address Range выполните следующие действия для выдачи DHCP сервером IP адресов для тонких клиентов:

Введите Start IP Address (Начальный IP адрес)

Введите End IP Address (Конечный IP адрес)

Нажмите кнопку Next.

9. В открывшемся диалоговом окне Add Exclusions допускается указать диапазон адресов, которые не будут выделяться DHCP сервером. Нажмите кнопку Next.

10. В открывшемся диалоговом окне Lease Duration можете указать время использования IP-адреса тонкими клиентами. Нажмите кнопку Next.

11. В диалоговом окне Configure DHCP Options выберите No, I will configure these options later. Нажмите кнопку Next, затем кнопку Finish.

12. Подтвердите действие очередным нажатием кнопки Finish.

13. Выберите Start→Programs→Administrative Tools→Manage Your Server.

14. В открывшемся диалоговом меню выберите элемент Manage this DHCP server

15. В диалоговом окне выберите элемент Server Options. Нажав правую клавишу мыши, в открывшемся контекстном меню выберите Configure Options.

16. В списке выполните следующие действия:

Выберите пункт 066 Boot Server Host Name и укажите IP адрес TFTP сервера, на который устанавливали DHCP сервер

Выберите пункт 067 Bootfile Name и введите имя pxe-загрузчика, а именно pxelinux.0

17. Нажмите кнопку Apply.

18. В диалоговом окне выберите элемент Scope . Нажав правую клавишу мыши, в открывшемся контекстном меню выберите Activate.

Настройка DHCP сервера завершена.

Настройка TFTP Server

1. Выберите Start→Settings→Control Panel→Add or Remove Programs.

2. Нажмите кнопку Add/Remove Windows Components.

3. В списке Components выберите Remote Installation Services и нажмите кнопку Next.

4. Нажмите кнопку Finish и на запрос о перезагрузке выберите No. Перезагрузку сервера осуществите позднее.

Настройка Terminal Server

1. Выберите Start→Programs→Administrative Tools→Manage Your Server.

2. нажмите кнопку Add or remove a role.

3. В диалоговом окне Preliminary Steps нажмите кнопку Next.

4. В списке Server Role выберите элемент Terminal Server и нажмите кнопку Next дважды.

5. В открывшемся диалоговом окне Configure Your Server Wizard появится предупреждение о перезагрузке сервера. Нажмите кнопку Ok.

6. После перезагрузки нажмите кнопку Finish.

Настройка TFTP Server на автоматический запуск

2. Раскройте список Services and Applications и выберите элемент Services.

3. Справа в появившемся списке нажмите правую клавишу мыши на пункте Trivial FTP Daemon и в контекстном меню выберите Properties.

4. В закладке General в выпадающем меню Startup type выберите Automatic. Нажмите кнопку Apply, затем кнопку Ок.

Создание пользователей терминальных сессий

1. Нажмите правую клавишу мыши на ярлыке My Computer и выберите Manage.

2. В раскрывающемся списке Local Users and Groups выберите папку Users.

3. В появившемся справа списке пользователей нажмите правую клавишу мыши и в открывшемся контекстном меню выберите New User.

4. В диалоговом окне New User введите User name (Имя пользователя) и Password (Пароль). Допустимо отменить выделение User must change password at next logon (Пользователь должен изменить пароль при следующем подключении) и установить необходимые вам пункты: User cannot change password (Пользователь не может изменить пароль), Password never expires (Срок действия пароля никогда не истекает), Account is disabled (Учетная запись отключена). Нажмите кнопку Apply, затем кнопку Ок.

5. В списке выберите папку Groups, и в списке справа нажмите правой клавишей мыши на имени группы Remote Desktop Users, далее выберите Propeties.

6. В появившемся меню выберите General, нажмите кнопку Add и введите имя пользователя, которому Вы хотите разрешить терминальный доступ к серверу. Затем щелкните на кнопке Check Names и подтвердите свой выбор нажатием на кнопку Ок.

7. Нажмите кнопку Apply и кнопку Ок.

Копирование файлов, необходимых для загрузки «тонких» клиентов

1. Создайте папку C:tftpdroot.

2. Скопируйте в нее файлы pxelinux.0, vmlinuz, initrd, thinstation.conf.network.

3. Создайте папку с:tftpdrootpxelinux.cfg.

4. Скопируйте файл default в папку c:tftpdrootpxelinux.cfg

5. Теперь необходимо отредактировать конфигурационные файлы. Подробное опи¬са¬ние действий представлено в части 3. «Изменение параметров конфи¬гура¬ци¬он¬ных файлов».

Настройка сервера для передачи звука тонким клиентам
Внимание!
Для передачи звука «тонким» клиентам необходимо, чтобы на сервере была установлена ОС Microsoft® Windows® 2003, звуковая карта и необходимые драйверы.

1. Выберите Start→Settings→Control Panel

2. Откройте Sounds and Audio Devices и установите выделение в пункте Enable Windows Audio. Нажмите кнопку Ok.

3. На запрос о перезагрузке нажмите кнопку Yes.

4. После перезагрузки вызовите Microsoft® Management Console (Start→Run→mmc).

5. Затем выполните следующие действия: File→Add/Remove Snap-in и нажмите кнопку Add.

6. Выберите Group Policy Object Editor и нажмите кнопку Add, затем последовательно нажимайте на кнопки Finish, Close,Ok.

7. Откройте элемент Local Computer Policy→Computer Configuration→Administrative
Templates→Windows Components→Terminal Services→Client/Server data redirection.

8. В списке справа правой клавишей выберите Properties в пункте Allow audio redirection.

9. Выделите пункт Enabled и нажмите кнопку Apply, затем кнопку Ок.

Требования ПК:
Оперативная память не меньше 256 Mb
Флешка не меньше 128 Mb


Чтобы Флешку сделать загрузочной используйте файл →

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

Терминальная сеть

Вначале определимся с назначением тонких клиентов и местом Thinstation
в процессе организации подобного сервиса. В типичной сети компании применяется
схема, ставшая усилиями Microsoft уже стандартной: ОС загружается с локального
жесткого диска, там же могут храниться и все необходимые пользователю данные. Но
менеджеры, маркетологи, секретари и прочий офисный планктон, которым для работы
требуются средства интернета, текстовый редактор и пара программ для создания
отчетов и работы с базой данных, используют мощности современного компьютера
далеко не полностью (от силы на 10%). На этом можно и нужно экономить.

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

  • централизованное администрирование;
  • быстрое развертывание (рабочее место можно организовать буквально за
    5-10 минут);
  • повышение безопасности корпоративных данных (за счет того, что вся
    информация хранится на сервере, снижается риск хищения данных и вредоносного
    действия вирусов, кроме того, заметно упрощается процедура резервного
    копирования);
  • большее время наработки на отказ (в первую очередь, в связи с
    минимальным количеством механических компонентов);
  • снижение нагрузки на сеть (во время терминальной сессии передаются
    только данные о нажатии клавиш, движениях мыши и обновлениях экрана);
  • отсутствие привязки пользователя к конкретному рабочему месту, юзер
    может получить доступ к своему виртуальному рабочему столу с любого
    терминала, подключенного к серверу (даже из своего дома, используя VPN).

Основная экономия достигается за счет минимизации затрат на приобретение
лицензий на пользовательское программное обеспечение и выбора минимальной
аппаратной конфигурации клиентской части. На рабочем столе пользователя может
стоять как старый комп, по всем параметрам непригодный для большинства
повседневных задач (процессор не ниже Pentium 100, объем оперативной памяти не
менее 16 Мб), так и специализированное устройство (например, на базе процессора
VIA Eden или AMD Geode). Последние компактны, абсолютно бесшумны и потребляют
малую толику электроэнергии (кстати, это позволяет вешать на один бесперебойник
до 10 терминалов).

С вступлением и "железочными" делами закончили, перейдем к софту. Дистрибутив
Thinstation
разработан специально для создания тонких клиентов и оснащен всеми необходимыми
приложениями, обеспечивающими подключение к сервисам по основным протоколам
удаленной работы: Citrix ICA, Microsoft RDP, VNC, NX NoMachine, 2X ThinClient,
VMWare View Open client, X11, Telnet, SSH. Систему можно загружать по сети с
помощью Etherboot/PXE или внешнего носителя (FDD/CD/HDD/CF/USB-flash). Все
настройки производятся централизованно при помощи конфигурационных файлов, что
упрощает управление терминалами.

Знакомимся: Thinstation

Текущей стабильной версией Thinstation является 2.2.2 (от 10 августа
2008 года). Основу дистрибутива составляет ядро 2.6.16.5, XOrg 6.9/XFree86
4.3.99.902, Glibc 2.3.5, GCC 3.4.4, Вlackbox 0.70.1/IceWM 1.2.25, пакет
системных программ Busybox 1.1.3, набор драйверов для различных видео и сетевых
карт, прикладные программы RDesktop, Telnet, Citrix ICA, NoMachine NX, 2X
ThinClient, VMWare View Open client, SSH, OpenVPN. Помимо указанных пакетов,
есть возможность укомплектовать загрузочный образ дополнительными программами,
драйверами и патчами. Кстати, многие предпочитают использовать более ранние
версии Thinstation , поскольку они занимают меньше места и на старых
системах работают чуть быстрее. Единственный минус: для самостоятельной сборки
загрузочного образа понадобится старая версия Glibc.

Для закачки предлагаются уже готовые LiveCD образы для VMware (Linux и
Windows), которые позволяют обойтись без настройки DHCP/TFTP-серверов и
загружаться "напрямую" в виртуальной машине. После установки в vmview/CD найдем
нужный ISO-файл. При загрузке образ будет опрашивать сменные носители (HDD, CD,
USB, FDD) в поисках настроек — файла thinstation.conf.user (о нем ниже).

Как вариант, можно самостоятельно пересобрать образ при помощи скрипта
rebuild-iso или установить дистрибутив на хард/флешку (пример приведен в FAQ на
официальном сайте).

Архив Thinstation-2.2.2.tar.gz (~50 Мб) предназначен для конечного
пользователя (под пользователем подразумевается сисадмин) и содержит уже
скомпилированные, готовые к работе пакеты. Пользователь затем самостоятельно
выбирает, что ему необходимо, и собирает образ. Доступен еще один архив —
thinstation developer (~800 Мб), – он содержит исходные тексты проекта и
предназначен для разработчиков, а также специалистов, желающих скомпилировать и
добавить свою программу в образ, локализовать систему и произвести остальные
донастройки, которые не удается сделать/применить в пакете для конечного
пользователя.

Русификация в оригинальном Thinstation выполнена лишь частично, хотя
это легко исправить, пересобрав дистрибутив, воспользовавшись стандартными HOWTO
по локализации любого Linux. Но сегодня существуют проекты, в которых вопрос
русификации решен изначально —
nixts.org и
www.itadvisor.ru/downloads . Плюс, в этих решениях произведены мелкие
доработки. По ссылкам можно скачать варианты образов и дополнительные пакеты для
Thinstation . Пользователям платформы AMD Geode LX можно обратить внимание
на ThinTonk (www.tonk.ru/support/pxe)
— дистрибутив Thinstation , собранный специально для этих тонких клиентов.
В дальнейшем будем разбирать оригинальную версию.

Собираем свою версию Thinstation

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

$ tar xzvf Thinstation-2.2.2.tar.gz
$ cd Thinstation-2.2.2

Конфигурация для сборки клиента находится в файле build.conf. Ничего сложного
файл собой не представляет, внутри находятся закомментированные строки,
соответствующие модулям (драйверам) и пакетам. Кто хоть раз собирал ядро Linux,
сразу поймет, что к чему. Причем, здесь все на порядок проще. Например:

Если требуется загрузить модуль с внешнего источника или создать динамически
загружаемый драйвер, то вместо "module" пишем "module_pkg". Для удобства все
записи разбиты по группам (видео, сетевые карты и т.п.) и детально
прокомментированы. Зная, какое оборудование установлено на клиентских
компьютерах, можно без труда отредактировать настройки. Смотрим на установки по
умолчанию:

$ cat build.conf | grep -v ^# | grep -v ^$
module pcm # PCMCIA Cards
module serial # Serial Device Support
module acpi # Advanced Configuration and Power Interface support
package rdesktop # X RDP client for Windows Terminal Services (ver 1.5)

В образ, созданный из дефолтного конфига, включена поддержка популярного
железа: сеть — Realtek 8139, SIS900, VIA Rhine, видео — VESA, S3, NVIDIA, ATI,
Vmware; из файловых систем доступны FAT32, NTFS, ext2, ext3. Для первого
знакомства с дистрибутивом этого вполне достаточно, но для применения в рабочей
среде его придется подгонять под себя.

Список параметров внутри достаточно большой, поэтому следует терпеливо и
внимательно пройтись по всем настройкам, разобраться и активировать только то,
что действительно необходимо. Лишнее включать не стоит, это увеличит размер
образа, а значит, система будет дольше распаковываться при загрузке и заберет
больше ОЗУ у клиентов. Чуть ниже в списке идут пакеты, включаемые в образ, –
здесь поступаем аналогично модулям. Если используется директива "package", пакет
будет включен в основной образ; если "pkg" — пакет собирается, но его нужно
подгружать отдельно.

Не забудь снять комментарий со строки "package keymaps-ru" и установить
приложения, при помощи которых будем подключаться к выбранному серверу —
rdesktop, vncviewer, nx, ica и т. д. Последним идет раздел "Miscellaneous
Parameters":

$ sudo vi build.conf

### Пароль root для консоли, доступа по telnet/ssh и VNC-сервису
param rootpasswd p@ssw0rd
param xorgvncpasswd p@ssw0rd
### Настройки логотипа и разрешение экрана
param bootlogo true
param bootresolution 1024x768
#param desktop ./background.jpg
### Файл с установками
param defaultconfig thinstation.conf.buildtime
### Имя машины для config/tftp/scp
param basename thinstation
param basepath .
### Файлы для закачки пакетов с помощью wget, данный параметр активируется, если
подключен нужный package, например, для "package ica" сработает:
param icaurl http://download2.citrix.com/files/en/products/client/ica/current/linuxx86.tar.gz
### HTTP-соединения можно устанавливать через прокси
#param httpproxy http://192.168.1.2:8080

Теперь, когда произведены все настройки, набираем:

По окончании выполнения команды результат сборки ищи в подкаталогах
boot-images/{etherboot, initrd, iso, loadlin, pxe, syslinux}.

Кто не хочет устанавливать Linux просто для того, чтобы создать образ
Thinstation
, может воспользоваться онлайн-сервисами, например TS-O-Matics (www.thinstation.net/TSoM).
Для русскоязычных пользователей предназначен ресурс
www.it-advisor.ru/TSoM ,
в котором приложения, входящие в состав Thinstation , изначально
локализованы. Просто заходим, выбираем/вводим параметры, меняем внешний вид
заставки и создаем образ. Правда, с его помощью не удастся добавить в образ свой
пакет, и придется ограничиться только тем, что предлагают разработчики.

Файлы настроек Thinstation

При загрузке клиент Thinstation считывает ряд конфигурационных файлов
(thinstation.conf.*). Параметры, которые в них описываются, в общем-то,
одинаковы, отличается лишь их назначение:

  • thinstation.conf.buildtime — задает параметры в загрузочном образе, его
    нужно подготовить до сборки;
  • thinstation.conf.network — настройки по умолчанию, получаемые с
    TFTP-сервера, этот конфиг используется для установки параметров для всех
    тонких клиентов;
  • thinstation.hosts — содержит данные о клиентах (имя компьютера,
    MAC-адрес, группа);
  • thinstation.conf.group- — совместно с thinstation.hosts
    используется для объединения клиентов в группы;
  • thinstation.conf- — файл для индивидуальной настройки клиента
    по имени компьютера, используется совместно с thinstation.hosts;
  • thinstation.conf- и thinstation.conf- — файл
    индивидуальной настройки клиента соответственно по IP- и MAC-адресу;
  • thinstation.conf.user — конфигурационный файл, сохраняемый на локальных
    носителях (FDD, HDD, USB-flash) в подкаталоге thinstation.profile.

При загрузке файлы с TFTP-сервера считываются в таком же порядке, как
показано выше, применяется первый подходящий клиенту загруженный файл.

В архиве имеется очень простой вариант шаблона thinstation.conf.buildtime,
более расширенную версию можно скачать с сайта проекта (thinstation.sf.net/docs/thinstation.conf.example)
или найти в образах, предлагаемых проектами
nixts.org и
www.it-advisor.ru .

Файл thinstation.hosts состоит из описания имени узла, МАС-адреса, группы и
необязательного комментария:

$ sudo vi thinstation.hosts

thinstation1 000c29d7a8e1 boss
thinstation2 000c00a5a8e2 assistant

Типичные network — user файлы выглядят следующим образом:

$ sudo vi thinstation.conf.network

### Не всегда нужна русская раскладка ("ru")
KEYBOARD_MAP=en_us
SYSLOG_SERVER=local
USB_ENABLED=On
### Имя компьютера, если не используется thinstation.hosts, символ "*"
автоматически заменяется на MAC-адрес
NET_HOSTNAME=ts_*
### Описание сессии
SCREEN=0
WORKSPACE=1
AUTOSTART=On
ICONMODE=AUTO
### Подключение при помощи rdesktop (файл может содержать описание нескольких
сессий)
SESSION_0_TITLE="Microsoft Terminal Server"
SESSION_0_TYPE=rdesktop
SESSION_0_SCREEN=0
SESSION_0_RDESKTOP_SERVER=192.168.1.100
SESSION_0_RDESKTOP_OPTIONS="-u user -a 16 -r sound"
### Настройки экрана
SCREEN_RESOLUTION="1024x768"
SCREEN_HORIZSYNC="30-65"
SCREEN_VERTREFRESH="75"
### Можно указать несколько вариантов, но удобнее зафиксировать оптимальный
# SCREEN_RESOLUTION="800x600 | 1024x768 | *"
### USB-мышь, дополнительно нужно активировать "usb-hid" в build.conf
X_MOUSE_DEVICE=/dev/input/mice

В параметрах RDESKTOP_OPTIONS следует учитывать версию сервера. Так, WinNT4 и
Win2k поддерживают только 8-битный цвет (-a 8), WinXP — 16-битный (-a 16),
Win2k3/Win2k8 — 24-битный (-a 24). Хотя использование "-a 24" на терминалах
часто не имеет смысла. Поддержка звука "-r sound" реализована, начиная с Win2k3.
Особого внимания заслуживают директивы STORAGE_PATH, STORAGE_SERVER и
STORAGE_PREFIX, при помощи которых указывается полный путь к сохраняемому
профилю (это может быть локальный диск или смонтированный NFS/SMB-ресурс). производится с жесткого или другого локального
диска, и используется thinstation.conf.user, сборку можно выполнить с
параметрами:

NET_FILE_ENABLED=Off
NET_USE_DHCP=Off

В этом случае не будет осуществляться DHCP-запрос и производиться попытка
получения конфигов с TFTP-сервера, что на порядок ускорит загрузку тонкого
клиента.

Настройка DHCP- и TFTP-сервера

Для загрузки PXE-образа с удаленной машины нам потребуется корректно
работающие DHCP- и TFTP-сервисы. ОС значения не имеет, – это может быть *nix или
Windows, главное, чтобы кто-то корректно ответил на DHCP-запрос, отправленный
сетевой картой, и выдал файлы по TFTP. Первым делом инсталлируем нужные пакеты
(пример для Ubuntu):

$ sudo apt-get install xinetd tftpd tftp

Затем обеспечиваем автозапуск сервисов. Для запуска TFTP через xinetd создаем
конфиг на основе шаблона:

$ sudo cp /etc/xinet.d/time /etc/xinet.d/tftp

$ sudo vi /etc/xinet.d/tftp

service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
### Каталог с PXE-образом
server_args = -s /srv/tftp
disable = no
}

В /etc/xinetd.conf комментируем строку "only_from = localhost". Не забываем
по окончании настроек перезапустить xinetd:

$ sudo /etc/init.d/xinetd restart

Копируем PXE-образ, ядро, initrd и каталог с настройками, созданный по
окончании работы build скрипта, в /srv/tftp:

$ sudo mkdir /srv/tftp
$ sudo cp -vR boot-images/pxe/* /srv/tftp

Проверяем работоспособность TFTP:

$ tftp server.ru
tftp> get pxelinux.0
tftp> quit

Если файл получен, значит, все в порядке. Переходим к настройке DHCP:

$ sudo apt-get install dhcp3-server

В каталоге boot-images/pxe находится готовый шаблон dhcpd.sample, который
можно использовать при создании своего конфига DHCP-сервера:

$ sudo vi /etc/dhcp3/dhcpd.conf

### Описываем нашу подсеть
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
}
### Если в сети объявится клиент с MAC-адресом 00:0C:29:d3:96:9b, назначим ему
IP 192.168.1.150 и подсунем загрузчик PXE
host term1 {
hardware ethernet 00:0C:29:d3:96:9b;
fixed-address 192.168.1.150;
filename "pxelinux.0";
}

Чтобы внесенные изменения вступили в силу, перезапускаем DHCP-сервер:

$ sudo /etc/init.d/dhcp3-server restart

Настройка сервера терминалов в Win2k8

Остался последний шаг — настроить сервис, к которому будем подключаться.
Установка роли службы терминалов производится через ссылку "Добавить роли" в
"Диспетчере сервера". Отмечаем "Службы терминалов", затем в списке необходимые
службы ролей, как минимум, "Сервер терминалов" и "Лицензирование служб
терминалов". Не забываем о новой фиче, которая появилась в Win2k8 – "Веб-доступ
к службе терминалов" (TS Web Access), при использовании которой пользователи
могут подключаться к TS, используя веб-браузер, и получать список доступных
приложений RemoteApp. Чтобы воспользоваться этой возможностью, достаточно при
сборке Thinstation установить Firefox. При выборе метода аутентификации
выбираем "Не требовать проверку подлинности на уровне сети". В этом случае к
серверу смогут подключаться клиенты с любой версией, в частности, не будет
проблем с Rdesktop, который полностью поддерживает лишь RDP 5 (частично
некоторые функции RDP 5.1 и 6), а для Win2k8 "родным" протоколом является RDP 6.
Далее следуем указаниям мастера, выбирая наиболее подходящие параметры. На этапе
"Группы пользователей" добавляем учетные записи пользователей и группы, которым
разрешен доступ к TS. По завершении установки отправляем терминальный сервер в
ребут.

Загружаемся с Thinstation , – по ходу можно увидеть бегущие строчки,
сообщающие о получении IP-адреса и загрузке PXE-образа. После чего вызываем
RDP-клиент щелчком по значку на рабочем столе — это в случае использования
готового образа; если же соответствующие настройки указаны в thinstation.conf,
подключение к серверу будет произведено автоматически, пользователю достаточно
ввести свой логин и пароль.

Дальнейшие настройки службы терминалов производятся в "Диспетчере сервера", в
одноименной вкладке. В частности, здесь можно просмотреть события, которые
помогут разобраться в возникших проблемах. Удачи в терминальных разборках!

Сценарий загрузки тонкого клиента

  1. Сетевуха тонкого клиента по протоколу PXE запрашивает у DHCP-сервера
    сетевые настройки.
  2. DHCP-сервер, помимо основных настроек (IP-адрес, маска подсети,
    дефолтный шлюз и т.д.), выдает IP-адрес TFTP-сервера и имя образа для
    загрузки.
  3. Клиент подключается к TFTP-серверу и сливает файл загрузчика PXE.
  4. Скачанный PXE-загрузчик исполняется и забирает с TFTP-сервера конфиг,
    в котором прописаны имена файлов ядра Linux (vmlinuz) и образа файловой
    системы (initrd).
  5. После распаковки и загрузки ядра Linux с подмонтированным образом
    файловой системы Thinstation снова обращается к TFTP-серверу для
    скачивания конфигурационных файлов (с настройками подключений, адресами
    терминальных серверов, к которым нужно подключаться, и т.д.). После чего
    запускает нужный терминальный клиент (например, rdesktop) и ожидает от
    пользователя ввода его логина с паролем для подключения.

Сетевая загрузка для старых машин

Возможность выбора сетевой загрузки в BIOS появилась относительно
недавно, и старые компьютеры такой возможности не имеют. Чтобы не
использовать сменные носители или хард, лучше перепрошить ПЗУ сетевой карты.
Готовый образ можно взять на сайте
rom-o-matic.net .
Достаточно выбрать в "Choose NIC/ROM type" марку чипа, используемого на
сетевой карте, и в списке "Choose ROM output format" формат файла. Кроме
версий для ПЗУ (.rom), имеются образы для записи на дискету, болванку и
USB-flash, а также для использования с загрузчиками LILO/GRUB/SYSLINUX. Если
с сетевой картой не повезло, и ее прошивку обновить нельзя, то можно
попробовать перепрошить BIOS материнской платы (если он на
Flash-микросхеме), интегрировав в него PXE-код, взятый с сайта
rom-o-matic.net.

Локализация Thinstation

Оригинальный Thinstation локализован лишь частично, и, скорее
всего, возникнет желание устранить эту проблему. Для этого как раз необходим
девелоперский пакет. Первым делом следует пересобрать ядро, активировав в
разделах DOS/FAT/NT Filesystems, Network File Systems и Native Language
Support все модули, в которых фигурируют кодировки CP1251 и 866. Далее ищем
в packages/base/etc/udev/scripts три скрипта floppy.sh, ide.sh, usb.sh,
отвечающие за монтирование файловых систем. Добавляем запись "-o iocharset=cp1251,codepage=866"
к командам внутри sh-файлов. Например, строка для FAT:

mount -t vfat -o iocharset=cp1251,codepage=866 /dev/$devpath /mnt/disc/$name/$name

В поставке есть и другие скрипты и конфигурационные файлы, которые
потребуется поправить в случае необходимости. Для Samba в smb.conf.tpl и
smb.conf также меняем кодировку:

unix charset=cp1251
display charset=cp1251
dos charset=866

Локаль следует указать и в строке запуска rdesktop, например, для
ru_RU.KOI8-R добавляем "-P KOI8-R".

INFO

Тонкие клиенты не требовательны к железу (поскольку все вычисления выполняет
мощный сервер) и заточены для работы в бездисковом режиме (без FDD/CDROM/HDD).

В качестве тонкого клиента под управлением Thinstation может выступать
любой компьютер на базе архитектуры x86 с процессором не ниже Pentium 100 и
объемом оперативной памяти не менее 16 Мб.

Как правило, на терминальных серверах используется общесистемное программное
обеспечение Windows, Linux, xBSD, Solaris, а тонкие клиенты функционируют под
управлением Windows CE, Linux или xBSD.

Thinstation — мини-дистрибутив Linux, позволяющий превратить старые
компы в полноценные бездисковые тонкие клиенты, поддерживающие все основные
протоколы подключения: RDP, VNC, ICA, X11, Telnet, SSH и т.п.

Thinstation можно загружать по сети с помощью Etherboot/PXE или со
стандартного носителя — FDD/CD/HDD/CF/USB-flash.

PXE (Pre-boot eXecution Environment) - среда предзагрузочного выполнения.

О том, как настроить сервер терминалов в Win2k3, можно узнать из статьи " ", опубликованной в

за 2007 год.

WARNING

Службы DHCP и TFTP должны функционировать на одной машине!

При выходе из строя сервера или неполадках в сети тонкие клиенты превращаются
в бесполезные ящики.