Пошаговое описание настройки бездисковых станций и сервера терминалов

(выступление на конференции в казанском авиационном университете – “Туполевские чтения 2005”)

Решение использовать сервер терминалов пришло не сразу. Работая в фирме, в которой каждый день что-нибудь происходит с компьютерами под управлением Windows, я задумался об использовании бездисковых станций. Конечно, на таких (конфигурация будет приведена чуть позже) компьютерах не поиграешь в игры, однако прослушивание музыки, распечатка документов на принтере, работа в Интернет, работа с офисными Word, бухгалтерскими 1C и подобными программами полноценно возможна. В терминальной системе можно запустить и 3D-приложения – но все же не рекомендуется этого делать, так как такие программы тяжелы даже для Pentium IV.

Важным фактором является возможность закупки недорогих компьютеров во многие государственные и частные организации нашей страны. Стоит отметить, что при использовании терминальных решений повышается информационная безопасность. Терминальные решения хорошо проработаны в UNIX-системах (консольные терминалы, удаленный шелл), для Windows-систем же первой реализацией стал продукт Citrix Metaframe фирмы Citrix, предложившей свою технологию Independent Computing Architecture (ICA). В Windows 2000 Server и Windows 2003 Server был реализован терминальный сервис на основе протокола RDP (Remote Desktop Protocol). Наиболее полно терминальный сервис реализован в крайней версии линейки Windows Server – версии 2003, где обеспечивается работа клиентских рабочих станций с 24-битным цветом, в отличие от максимально возможного 8-битного в терминальной сессии Windows 2000 Server. Вопреки распространенному мнению, протокол RDP не является полностью самостоятельной (и закрытой) разработкой фирмы Microsoft , а представляет собой некое расширение “ITU-T T.128 (так же известное как T.SHARE) application sharing protocol”. Это обстоятельство позволило группе программистов создать приложение rdesktop, выполняющего задачу предоставления доступа к терминальной сессии MS Windows 2000/2003 Server из системы X Window на платформе UNIX. Приложение rdesktop развивается как Open Source проект и доступно в исходных текстах по адресу http://www.rdesktop.org. В свою очередь, rdesktop используется в проектах “тонких” клиентов, таких как PXES, ThinClient (это наш случай), WtWare для доступа к терминальной сессии сервера Windows. Сама идея далеко не нова, она применяется уже десятилетиями, при этом являясь удобным и безопасным решением. Тем, кто устанавливает операционные системы на десятки компьютеров (простое применение TFTP), это сэкономит массу времени. Банально, но время – деньги. Говоря коротко, в большинстве случаев использование сервера терминалов себя оправдывает. Все особенности терминальных систем происходят из сути их работы, выраженной названием. Терминал – это устройство, в общем случае не имеющее собственных вычислительных мощностей, служащее лишь для отображения информации, поставляемой центральным вычислительным устройством и для передачи этому устройству информации, вводимой на стороне терминала. Терминалы существуют очень давно, со времен первых вычислительных машин, в то время они были единственным способом ввода и вывода информации.
Знаю, что подобная задача много раз решалась на большом количестве предприятий, технически не так сложна, как может показаться сначала. Однако, когда я сам пытался найти такого рода информацию, найти ее не получилось. Материал я подготовил, собирая информацию по частям, порой даже по крупицам, методом своих проб и ошибок, спасибо за посильную помощь многим моим друзьям.

Проектирование

Итак, приступим. Начинают все всегда с проектирования, начнем и мы с него. Прежде всего – конфигурация и мягкая начинка самого сервера терминалов. В моем случае им был мой домашний компьютер – Пентиум 4 3200 ГГц на материнской плате Intel D 865 PERL X , 2 Гб ОЗУ, 160 Гб винчестер и сетевая плата Intel на базе чипа 8255 x (100 мбит/с). Идеальным, или близким к идеалу был бы компьютер с двумя процессорами Intel Xeon с тактовой частой выше, чем 2,6 ГГц, такая мощь даст заметную разницу при использовании большего количества терминальных клиентов и при работе программы 1C. Не забываем о существовании SCSI и UPS (первое дорого даже на фоне двухпроцессорного Xeon ‘а, а второе обязательно). В качестве операционной системы для сервера была выбрана Windows Server 2003 Enterprise Edition. На выбор можно установить MUI. MUI (Multilanguage User Interface, русский интерфейс, если коротко) понадобится при недостаточном знании английского языка, часто при особой настройке и администрировании сервера терминалов. Об остальном программном обеспечении я расскажу позже.
В качестве терминального клиента (в моем случае он был только один, хотя при установке двух процессоров и тех же 2 Гб ОЗУ успешно можно было бы подключить 30 клиентов) использовался Pentium I “S” – 200 МГц на материнской плате Acorp 5 TX 52 с 32 Мб памяти, 1 Мб видеокарта и собственно одна из ключевых деталей терминального клиента – сетевая плата с бутромом (перепрошиваемый загрузчик) Compaq NC 3161 (чип Intel 8255, PCI, eepro 100, Wake On LAN, 256 Kb, TP, 100 Mbit/s). Наиболее точные конфигурации сервера и клиента приведены в приложениях после статьи. Уточню, что винчестера не было в клиенте совсем (бездисковая станция).
Конечно, конфигурация всегда зависит от многих факторов, и указанная выше – не первая и не последняя в списке использованных терминальных клиентов. Хорошенько проработав технический материал, можно собрать клиентов и на 486-ом процессоре (40 МГц), с 10 Мбит сетевыми платами и 8 Мб ОЗУ, а вместо сервера мог бы быть какой-то Celeron 700 МГц. Но – весь этот материал дан как отправная точка, как для новичков, так и для более опытных системных администраторов.
При написании этой статьи было перекачано, пережевано очень большое количество технической информации, программного обеспечения, и было потревожено много-много человек 🙂
Все копирайты я указал в конце статьи.

Установка терминального сервера

Устанавливайте Windows Server 2003 как обычно, с единственным уточнением – при выборе режима лицензирования укажите – режим – “На сервер”, количество – укажите, сколько одновременных подключений вам необходимо.
Следующим шагом сразу после установки надо поднять (то есть установить и настроить) службу или роль Терминального сервера. Для этого переходим в Панель управления и запускаем утилиту Установка и удаление программ, в ней выбираем Установка компонентов Windows. Здесь ставим галочки напротив Сервер терминалов и Лицензирование сервера терминалов (чтобы терминальный сервер продолжал принимать соединения по истечении 120 дней, вы должны сконфигурировать Terminal Services Licensing. Кстати, серверы лицензий Windows 2000 не совместимы с Windows Server 2003. При использовании Windows 2003, сервер лицензий Windows 2000 надо обновить до Windows Server 2003 или активировать отдельный сервер лицензий Windows Server 2003) и жмем Далее. Операционная система попросит поместить в привод установочный диск, или указать местоположение установочных файлов Windows Server 2003. После копирования всех необходимых файлов, выполните перезагрузку.
Сервер терминальных лицензий необходимо активировать. Меню Пуск – Выполнить, введите licmgr, здесь можете видеть, что наш сервер не активирован. Для этого выделите его, и в меню Действие выберите пункт Активировать сервер (не забывайте, что все это при подключенном соединении с Интернетом). Метод активации – Автоподключение. Произойдет соединение с расчетной палатой корпорации Microsoft, заполните поля Имя, Фамилия, Организация и выберите страну. Успешно активировав сервер, мастер активации предложит запустить мастера клиентских лицензий (CAL). Здесь, если выберете программу соглашения Enterprise Agreement, то вы должны ввести номер соглашения (запрос поисковику “Enrollment Agreement Number” находит такие числа). Версия продукта – Windows Server 2003, тип продукта – на устройство, количество – вы указывали его при установке. Дождитесь сообщения “Новый ключевой пакет клиентской лицензии успешно установлен”. Переходим к настройке.

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

Запускаем Пуск – Программы – Администрирование – Настройка служб терминалов – Параметры сервера. Убираем флажок Ограничить пользователя единственным сеансом. Перемещаемся в настройки подключений. Видим подключение RDP – TCP, здесь право кнопкой мыши, далее Свойства, вкладка Параметры клиента, снимаем галочку “Использовать параметры подключения пользователя”, а три остальные галочки чуть ниже – отмечаем, глубину цвета ставим 16-и битную и запретим сопоставлять порты, диски и звук (по желанию). Перемещаемся на вкладку “Разрешения” и добавляем пользователя, который будет работать на терминальном клиенте (права – Гость + Пользователь). На вкладке “Удаленное управление” выбираем переключатель “Использовать управление со следующими параметрами”, снимаем галочку “Запрашивать разрешение пользователя” и устанавливаем галочку “Взаимодействие с этим сеансом”. Здесь все. Нажмите ОК, сохранив все изменения и закройте mmc-оснастку.
Создайте пользователя и присвойте ему пароль – этот пользователь будет удаленно подключаться к терминальному серверу.
Теперь пару слов о способах загрузки по сети. Предложенный здесь мной способ загрузки с использованием прошивки PXE – не единственный. PXE Pre – boot Execution Environment (среда предзагрузочного выполнения) – стандарт, разработанный Intel. Такие и только такие прошивки используются производителями при изготовлении сетевых карт и BIOS материнских плат с интегрированными сетевыми картами. Прочитайте документацию к вашему оборудованию, чтобы узнать, поддерживает ли оно загрузку по методу PXE. Если ваша сетевая карта или материнская плата уже укомплектованы прошивкой PXE, то никаких дополнительных действий вам делать не придется. Такие сетевые карты и материнские платы сразу после покупки готовы для использования в качестве бездисковых терминалов. Для некоторых карт (в том числе, для всех моделей карт на чипе rtl8139C[D]) прошивку можно найти на сайте фирм-производителей чипсетов. Эту прошивку нужно самостоятельно прошивать в микросхему BootROM. Если для вашей сетевой карты производитель не сделал прошивку, то выходом из ситуации будет продолжение поисков сетевой платы с PXE либо остается использовать прошивки Etherboot.
Etherboot – оpensource проект, который выпускает прошивки практически для всех существующих сетевых карт. Прошивка Etherboot может быть записана в микросхему BootROM или flash-память сетевой карты, может быть запущена с дискеты или жесткого диска как загрузочный сектор или как программа из DOS. Прошивки Etherboot являются единственным способом загрузки по сети парка компьютеров с разными сетевыми картами, для которых производители не написали PXE-прошивки. Здесь загрузку с использованием Etherboot мы использовать не будем.
Загрузка терминального клиента может быть осуществлена не только по сети, но и с дискеты (требуется трехдюймовый дисковод, и стоит помнить, что дискеты слишком быстро умирают), с небольшого жесткого диска (использование винчестера оправдано, если требуется разгрузить сетевой трафик, кэшировать его и использовать подкачку). Также при наличии винчестера можно работать в операционной системе установленной на нем, при этом останется возможность загружаться по сети. С другой стороны, при отсутствии винчестера мы всегда будем уверены, что какой-нибудь вирус не разрушит разделы диска. Будем уверены в том, что терминальный клиент всегда будет загружаться одним и тем же образом. Однако сегодня мы все можем видеть, что современные производители поставляют свои компьютеры с возможностью загрузки по сети, используя прошивку PXE.

Подготовка (прошивка) сетевой платы

Как я уже рассказывал в начале статьи, остановил я свой выбор на Compaq, в составе конфигурации клиента. Собрал информацию о том, как прошиваются интеловские бутромы. Для каждого случая своя отдельная история. Для Intel все начинается с установки специального ПО (драйверов) Intel PROSet версии 8.4.2004 (в моем случае для Windows 2000, XP , 2003, размер ~6 Мб). После установки появляется зеленая иконка в трее. При нажатии на кнопку Update Boot Agent на вкладке Boot Agent, программа спросит, создавать бэкап текущего бутрома или нет. Я, на всякий пожарный, сделал. Дальше программа предлагает указать местонахождение прошивки (форматы файлов прошивок – *.flb, *.nic). Естественно на моем компьютере не оказалось не одного файла с таким раширением, кроме моего собственного бэкапа. Зато файлы с таким расширением нашлись в Интернете в составе программы Intel Boot Agent. Прошивка BA4115M1.FLB успешно закачивается внутрь бутрома – вы поймете это, когда программа PROSet сообщит, что “Image has been updated successfully”. Остальные параметры вы можете изменить уже при загрузке терминального клиента, достаточно просто нажать комбинацию Ctrl+S во время ожидания сетевой картоый действий со стороны пользователя. Бутром готов к использованию.

Выбор и настройка TFTP и DHCP серверов

Следующим шагом настройки терминального сервера должна стать установка DHCP-сервера, который будет выдавать по запросу клиенту IP-адрес, IP-адрес TFTP-сервера, у которого можно получить файл-образ операционной системы для загрузки терминала и имя файла образа операционной системы для загрузки. Получив указанную информацию, загрузчик скачивает файл-образ с операционной системой и соответствующим способом передает ему управление. Какой выбрать из огромного количества TFTP и DHCP серверов? Я остановился на классическом примере – tftpd32 версии 2.80, самой свежей на сегодня версии. tftpd32 прост, функционален и ведет лог. Другой сервер, на свой вкус, вы сможете выбрать и протестировать позже. Главное окно tftpd32 настраиваем так:
tftp1

Здесь Server Interfaces – IP-адрес сетевухи, от которой идет кабель на хаб. IP pool starting address укажите IP-адрес, с которого начать раздачу IP-адресов, Size of pool – размер этого блока, Boot File – pxelinux.0, Mask – маскау сети, в которой находятся сервер и терминальный клиент.
Окно настроек (Settings) настраиваем так:
tftp2

Если при запуске tftpd32 вываливаются ошибки, скорее всего у вас установлен иной TFTP-сервер (например Intel MTFTP) или же запущен фаерволл. Остановите “чужой ” сервис и сконфигурируйте фаерволл, блокирующий tftpd32, который пытается встать в системе в качестве DHCP-сервера. В качестве рабочей папки я указал – “D:\THST”.

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

Тонкий клиент – сердце терминала, занимает так же одно из ключевых мест в сборке терминал клиент-серверной системы, как бутром или tftp-сервер. Таких проектов с готовыми решениями всегда было много, есть и успешно развивающихся до сих пор. ThinStation, WTWare, PXES. Если же не нужны готовые решения, то мини-операционную систему можно собрать самому, это будет дольше, однако без единой лишней программы. Проект ThinStation собирается за 3 минуты, скачиваем его по указанной ниже ссылке, распаковываем в рабочую папку (в нашем случае “D:\THST”), в файле thinstation.conf изменяем строки вот так:

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

  1. Дебиан, PXELinux, NetBoot
  2. Связка: Windows 2003 Server + Сервер терминалов + 1 C Предприятие 7.7, 2003 Стас Корниенко (korn@adm.les.lipetsk.ru)
  3. Сажаем пингвина на бездисковую станцию, Антон Карпов (toxa@real.xakep.ru)
  4. Проект ThinStation
  5. Знакомство с Microsoft Windows Server 2003 (Introducing Microsoft Windows Server 2003), 2003 Джерри Ханикат
  6. Архитектура тонкого клиента в Windows NT/2000. Реализация терминальных служб и Citrix MetaFrame, Тодд В. Мазерс
  7. TFTPD32 (1998-2005), Philippe Jounin (philippe@jounin.net)
  8. network.xsp.ru
  9. Проект bpbatch, 1999 David Clerc и Marc Vuilleumier Stuckelberg, Женева, Швейцария
  10. “Терминальные решения”
  11. Вячеслав Шачков (mashinnyi-razum@narod.ru)
  12. Windows Terminal Project

Җавап калдыру



All fields are required. Your email address will not be published.