Вирусы и тонкие клиенты

Архив номеров / 2010 / Выпуск №2 (2) / Создаем ИТ-структуру, устойчивую к вредоносному ПО. Часть 2

Создаем ИТ-структуру,
устойчивую к вредоносному ПО. Часть 2

Продолжаем разговор о создании структуры, которой не страшны вирусы, троянские программы и другие неприятные сюрпризы

Терминальные решения и тонкие клиенты

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

Рисунок 1. Внедрение терминальных решений и тонких клиентов

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

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

Тонкие клиенты выпускаются на базе различных платформ: MS Windows CE, MS Windows XPe, различные модификации Linux, а также собственные разработки компаний-производителей – вроде Wyse Thin OS.

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

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

Принцип организации терминального решения на базе тонких клиентов

  • На центральный компьютер (терминальный сервер) устанавливается специализированное ПО, позволяющее пользователям подключаться удаленно, получать пользовательский интерфейс и выполнять программы непосредственно на этом сервере.
  • На рабочем месте пользователя располагается небольшой компьютер с минимальной аппаратной и программной конфигурацией, позволяющей подключаться по специальному протоколу к терминальному серверу. При этом на самом устройстве может даже не быть операционной системы (в этом случае используется загрузка по сети) или использоваться некая аппаратная прошивка, позволяющая соединяться с терминальным сервером (например, WYSE S10 или WYSE V10).
  • Справедливости ради стоит заметить, что роль тонкого клиента может выполнять любой компьютер, даже весьма устаревший, если на него установить соответствующее программное обеспечение. Например, openThinClient [1] или Thinstation [2]. Правда, в этом случае стоимость обслуживания остается довольно высокой, хотя и меньше, чем в случае с рабочей станцией на Windows-платформе.

Следует также отметить тот факт, что в случае с тонкими клиентами легче обосновать запрет на использование сменных носителей. Устройствами для чтения/записи CD/DVD они не оборудованы. Что касается USB-носителей: если администратор не разрешит их подключение в виде локальных клиентских носителей на терминальном сервере, то использовать их тоже не получится.

Дополнительные плюсы от внедрения подобных решений

  • В отличие от системных блоков тонкие клиенты не нуждаются в модернизации. Купленные однажды, они могут служить пять-десять лет, все время оставаясь пригодными для использования в этом безумном цифровом мире.
  • Значительно снижаются расходы на администрирование, приобретение и обновление программного обеспечения. Так как ПО устанавливается и обновляется только на серверах приложений, то сокращается стоимость лицензий, а также уменьшается стоимость администрирования.
  • Потеря терминала не грозит утечкой информации. Это всего лишь потеря оборудования, а никак не данных или всей предыдущей работы.
  • Большая безопасность. Уполномоченный сотрудник службы безопасности может посмотреть, чем занимаются сотрудники, лишить их права запуска определенных приложений, а так как обычно тонких клиентов не оборудуют ни съемными, ни жесткими дисками, значительно уменьшается вероятность хищения информации.

Какие тонкие клиенты стоит приобретать? Наиболее простой ответ: надежные и без Windows. Ведь наша основная идея – заменить капризные, нуждающиеся в защите системные блоки на безотказные, неуязвимые для вирусов тонкие клиенты. Если говорить о модельном ряде, мне приходилось работать с тонкими клиентами WYSE и HP.

Что же касается конфигурации терминальных серверов, здесь, как правило, присутствует ситуация с точностью до наоборот. Если терминальный доступ организуется с целью замены десктопов, то необходимо по возможности сохранить функционал программного обеспечения, который использовался в бизнес-процессах компании до начала миграции на терминальные решения и тонкие клиенты. Поэтому обычно на сервера устанавливается операционная система семейства Windows: MS Windows Server 2003 R2, MS Windows Server 2008 (R2), что позволяет организовать запуск большинства программ, использовавшихся ранее на рабочих станциях пользователей.

Программное обеспечение для организации сервера терминалов

Теперь рассмотрим ПО для нашего сервера терминалов.

MS Terminal Server

Поставляется совместно с операционной системой начиная от Windows 2000. Данный продукт не бесплатен, а требует дополнительного лицензирования. При помощи MS Terminal Server можно легко организовать доступ к стандартному рабочему столу Windows на удаленном сервере и удаленный запуск программы в отдельном окне, лишенном дополнительных возможностей интерфейса. MS Terminal Server использует Remote Desktop Protocol (RDP – шифрованный протокол, позволяющий не только получать вид рабочего стола, но и подключать локальные носители, принтеры, COM-порты и т.д. Все современные Windows операционные системы и тонкие клиенты содержат в себе программный модуль RDP для соединения с этим сервисом. Мало того, существует несколько подобных программ для операционных систем семейства UNIX: krdc для KDE, tsclient для GNOME, а также небезызвестный rdesktop, позволяющих использовать удаленный доступ с этих OS.

Terminal Server Plus

Несмотря на то что этот продукт во многом напоминает MS Terminal Server, он имеет ряд преимуществ, таких как собственную службу печати, свой метод публикации приложений и возможность работы через веб-консоль. Но главное преимущество – весьма невысокая цена: 25 долларов США за одну лицензию. Еще одно немаловажное преимущество: Terminal Server Plus можно установить на любую Windows совместимую систему, включая Windows XP и Windows Vista. И MS Terminal Server, и Citrix XenApp могут быть установлены только на серверную (OS Windows Server 2003 и выше). К сожалению, пока отсутствуют данные о дилерах, распространяющих данный продукт в России. Для получения более подробной информации имеет смысл посетить сайт проекта [4].

Немного о лицензировании терминальных подключений

Существуют три типа лицензий:

  • Per seat (per device – на рабочее место) – требуется отдельная лицензия на каждое устройство (тонкий клиент или рабочую станцию), вне зависимости от количества пользователей. Такая схема используется при лицензировании MS Terminal Server.
  • Per user (на пользователя) – требуется отдельная лицензия на каждого пользователя (независимо от количества одновременно работающих пользователей). Этот тип лицензий также используется MS Terminal Server.
  • Per connection (конкурентная лицензия) – требует отдельную лицензию для каждого соединения, но число пользователей/рабочих мест не играет роли – важно число одновременно обслуживаемых пользователей. Такая система используется компанией Citrix Systems. При инсталляции продукта создается некий пул лицензий, из которого каждое новое соединение забирает одну лицензию. При завершении сессии лицензия возвращается.

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

Антивирусный шлюз с разделением по протоколам

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

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

Рисунок 2. Антивирусный шлюз с разделением по протоколам

После этого разрешаем на межсетевом экране прохождение только терминального трафика по используемому нами протоколу (например, это RDP и ICA) и запрещаем все остальные популярные протоколы обмена файлами, такие как CIFS, FTP и т.д.

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

Чтобы пользователи из грязной сети могли передавать информацию в чистую сеть, существуют два пути: корпоративная электронная почта с проверкой на вирусы на почтовом сервере и антивирусный шлюз с разделением по протоколам. Роль такого антивирусного шлюза может играть любой сервер, имеющий два сетевых интерфейса с установленной операционной системой семейства UNIX. Например, Linux openSUSE или FreeBSD. На него устанавливают программный пакет Samba и FTP-сервер – например, ProFTP.

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

Существует два способа организовать проверку:

Еще есть вариант просто купить антивирусный модуль для проверки Samba- и/или FTP-серверов. Как правило, большинство компаний-разработчиков антивирусного ПО предлагают такую возможность.

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

Пишем скрипт, который время от времени проверял бы содержимое данных ресурсов на вирусы и перемещал файлы из одних ресурсов в другие. Файлы из входящей папки FTP после проверки перемещаются в исходящую на Samba и, наоборот, из входящей на Samba в исходящую на FTP. Необходимо организовать запуск данного скрипта из crontab через определенное время. Чтобы передать файл из грязной сети в чистую, пользователю достаточно скопировать файлы по FTP в свою входящую папку. Подождав примерно несколько минут (зависит от количества перемещаемых файлов), он может использовать эти файлы, уже проверенные на вирусы из общего ресурса на Samba в чистой сети, подключившись по терминальной сессии.

Плюсом такого решения является возможность создать такой вот импровизированный антивирусный шлюз, обладая начальными знаниями по UNIX-системам и элементарными навыками написания shell-скриптов. Примеры команд для проверки каталогов при помощи ClamAV можно посмотреть в [5]. Также к плюсам можно отнести отсутствие необходимости устанавливать дополнительные модули к пакетам, такие как mod_clamav и samba-vsan.

Избавляемся от пиратского ПО

Помимо проблем с законом использование пиратского программного обеспечения несет в себе еще одну угрозу: практически всегда присутствует вредоносное ПО. Будем реалистами – в нашем жестоком мире никогда ничего не делается просто так. Неужели кто-то всерьез полагает, что какой-то добрый дядечка или бескорыстный юноша будет создавать crack для взлома программы, писать программу генерации ключей (или напрямую выкладывать в сеть подборку регистрационных номеров) просто из любви к ближнему? Практически всегда пиратская копия программы или средство для ее взлома содержит троянчик, который делает разные интересные вещи. Например, отсылает содержимое адресной книги в спамерскую базу. Или выискивает скэшированные номера кредитных карточек и передает их куда следует. Или. Да мало ли каких пакостей можно ожидать после того, как самостоятельно, по доброй воле на компьютер была установлена программа весьма сомнительного происхождения.

Несколько рекомендаций, чтобы провести данный переход с наименьшими финансовыми и моральными потерями.

Для начала необходимо провести инвентаризацию ПО, чтобы установить, что действительно необходимо, а без чего можно обойтись. Имеет смысл более внимательно присмотреться к используемому программному обеспечению применительно к нуждам бизнеса. Например, в одной компании весь документооборот был построен на макросах MS Office. Регулярно какой-то из макросов сбоил, и пользователи бегали с жалобами в ИТ-отдел. Не проще ли в этом случае приобрести нормальную систему документооборота, а пользователям для мелких нужд вроде написания заявления на отпуск использовать OpenOffice.org или даже WordPad?

Используйте бесплатные аналоги платного ПО. Например, MS Office можно заменить на бесплатный вариант OpenOffice.org, Adobe PhotoShop – на GIMP и т.д.

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

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

Что еще можно сделать? Виртуализация

Продолжая разговор о системах копирования с целью быстрого восстановления, нельзя не упомянуть такое замечательное средство, как виртуализация, то есть использование виртуальных машин вместо физических. По этой теме сказано и написано множество материалов, так что расписывать все прелести и некоторые недостатки в рамках статьи по антивирусной защите не имеет смысла. Но об одной детали упомянуть стоит. Это возможность делать быстрые резервные копии и снимки (snapshots) и быстро восстанавливать виртуальную машину. Особенно актуально это в компаниях, работающих в режиме 24/7. Вывести из работы критически важный для бизнеса сервер не всегда удается. Необходимо согласовывать downtime, на это уходит время, в течение которого вирус будет заражать другие системы. Но имеется возможность в изолированной среде восстановить резервной копии чистую версию той же виртуальной машины, после чего погасить зараженную виртуальную машину и вывести в сеть восстановленную. Как правило, это занимает гораздо меньше времени, чем разыскать всех ответственных менеджеров и согласовать с ними время недоступности сервиса.

Еще одно замечательное средство – виртуализация десктопов. Продукт Citrix XenDesktop позволяет при необходимости предоставить виртуальную рабочую станцию, только что сформированную из заранее подготовленного образа с сохранением всех пользовательских настроек.

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

Тонкий клиент (англ. thin client) в компьютерных технологиях — бездисковый компьютер-клиент в сетях с клиент-серверной или терминальной архитектурой, который переносит все или большую часть задач по обработке информации на сервер (Wikipedia ).

Если проще, то тонкий клиент – это недокомьютер, который загружает легкую операционную систему (обычно используется Linux, в обзоре возьмем это за априори) и соединяется с терминальным сервером.

Обычно тонкие клиенты создаются для экономии на железе и ПО, в редких случаях по иным соображениям.

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

Сначала о тонком клиенте.

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

WTWare — дистрибутив GNU/Linux, разработанный специально для создания тонких клиентов. За основу взят популярный клиент под названием Thinstation. Основное различие – ориентированность на русских пользователей (в самом Thinstation есть проблемы с кириллицей), плюс всякие мелкие фиксы.

Я не буду рассказывать про настройку DHCP и TFTP серверов, там все вполне стандартно. Напомню только, что в DHCP сервере нужно указать адрес TFTP сервера, а в TFTP сервере путь до файла загрузки и имя этого самого файла.

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

Итак. В первую очередь качаем образ Thinstation с сайта WTWare. Распаковываем.
Загрузочный файл называется pxelinux.0 при загрузке по протоколу PXE (если BootROM встроен в вашу сетевую или материнскую плату) или wtshell.nbi для загрузчика Etherboot (при использовании эмулятора BootROM).

К слову говоря, Etherboot — оpensource проект, который выпускает прошивки практически для всех существующих сетевых карт. Прошивка Etherboot может быть записана в микросхему BootROM или flash-память сетевой карты, может быть запущена с дискеты или жесткого диска как загрузочный сектор или как программа из DOS.

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

Опять таки я не буду углубляться в дебри конфигурационных файлов, потому как там сотни параметров. Тут можно увидеть их полный список. Я расскажу лишь об основных.

WTWare имеет следующие типа конфигурационных файлов:

  1. all.wtc – общесистемный конфигурационный файл.
  2. list.wtc – подключаемые конфигурационные файлы согласно списка.
  3. Индивидуальные конфигурационные файлы.

Индивидуальные конфигурационные файлы могут быть следующих видов:
  1. Имя_терминала.wtc. Имя терминала, соотвественно, выдается DHCP сервером.
  2. ма.ка.др.ес.те.рм.wtc. Привязка идет по мак адресу подключаемового терминала.

Конфигурационные файлы имеют следующие приоритеты:
  1. all.wtc
  2. Файлы, указанные в list.wtc
  3. Файлы, подключенные через include
  4. Индивидуальный конфиг

Конфигурационные переменные общесистемного файла:
win2kIP = 10.100.50.1 // адрес терминального сервера 1.
win2kIP2 = 10.100.50.2 // адрес терминального сервера 2.
video = VESA(S) // универсальный драйвер, работает почти на всех видеокартах
mouse_wheel = on // включить колесо мыши
resolution = 1024x768 // разрешение экрана
bpp = 32 // Глубина цвета

Конфигурационные переменные индивидуальных файлов:
user = username // имя пользователя
password = user_password // пароль пользователя
domain = enterprise_domain // домен предприятия

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

Так же в индивидуальные файлы прописываются дополнительно подключенные устройства, такие как принтеры, сканера и т.п.

И в конце хотел упомянуть об еще одной интересной возможности – подключение локальных ресурсов (Floppy, DVD, Flash, HDD, Sound). В конфиге выглядит примерно так:
floppy = on
cdrom = on
usb1 = on
sound = on
Диск будет доступен в сессии текущего пользователя из Проводника Windows по адресу: \\tsclient\.

Недостатки:

  1. Могут возникнуть проблемы с подключением оборудования, если драйвера на него в системе отсутствуют. Знаю, что через некие костыли можно разобрать образ, припихнуть туда драйвера, собрать образ обратно. Сам не пробовал.
  2. Если у карточки нет BootROM, могут возникнуть проблемы с подбором Etherboot прошивки (есть не для всех карт).

Лицензирование:

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

Оборудование для создания тонких клиентов:

На сайте WTWare так же можно приобрести оборудование для создания тонких клиентов (дабы не собирать их из хлама). Надо сказать, что оно (оборудование) отвечает всем требованиям гламура. Несколько скринов:

Все это хозяйство связано в единую локальную сеть посредством одного/нескольких дешевых коммутаторов на 100Мбит. И работает это в едином домене NT/Active directory (хотя встречаются варианты одноранговых рабочих станций безо всяких доменов).

На всех машинах с Windows обычно установлен (хотя и тут бывают исключения) какой-то антивирус. Часто встречается не сетевые версии этих программ (тот же Avast), хотя, опять таки в более продвинутых (с точки зрения IT) конторах, стоят сетевые версии антивирусов с централизованным управлением и обновлением антивирусных баз.

В результате, в небольших компаниях часто наблюдается довольно разнообразный парк пользовательских машин класса от pentium2/128Mb ram/5Gb hdd до P4 Celeron/1Gb ram/80Gb hdd. На всех машинах, разумеется, Windows (98, 2000 и XP Home/Pro) и разные версии софта (ставили то машины в разное время). Доходит до того, что и антивирусное ПО на машинах тоже от разных производителей.

А на нелегкую долю системного администратора (и эникейщика по совместительству), выпадает денно и нощно поддерживает весь этот зоопарк. А ведь железо иногда ломается:

  • вентиляторы начинают противно жужжать (их надо чистить и смазывать или же менять на новые);
  • блоки питания выходят из строя;
  • винчестеры — сыпятся;
  • сетевые карты (как встроенные в материнскую плату, так и внешние — перестают работать и требуют замены);
  • остальное железо, обычно, летит сильно реже, но тем не менее летит тоже

При выходе из строя винчестера (или же материнской платы компьютера), операционную систему на восстановленной машине часто приходится переставлять с нуля в такой или очень похожей последовательности:

  • ставим Windows;
  • ставим необходимые драйвера (весь парк железа разный — не забыли?), предварительно определив модель материнской платы в данной машине и скачав из Интернет последние версии драйверов или найдя нужные у себя на файл-сервере;
  • вводим машину в домен (если он настроен);
  • ставим необходимый софт (офис, браузер, почтовый клиент, тотал-коммантеры, аськи, джабберы, пунто-свитчеры и подобное) — в случае домена Active Directory часть софта можно поставить автоматически, но не у всех он настроен, да и не все знают его возможности;
  • ставим антивирус;
  • плюс дополнительные танцы с бубном, индивидуальные для конкретной сети каждой организации вокруг новой рабочей станции;

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

Знакомо? Хорошо, если полетел не жесткий диск, а всего лишь материнская плата. Или же часть информации на осыпавшемся диске поддается восстановлению. Но все эти процедуры занимают рабочее время системного администратора, которое можно было бы потратить с куда большей пользой — поиграть в сетевую стрелялку или же… изучить IPv6 — ведь уже все на него переходят и совсем скоро перейдут, адреса в пространстве Ipv4 уже лет пять как закончились :)

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

  • переустановить Windows;
  • настроить на новой машине весь необходимый софт;
  • восстановить все то, что потерялось;
  • доустановить нуждающимся новые программы;
  • провести профилактику корпуса (пыль пропылесосить в системном блоке);

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

Как же выйти из этого замкнутого круга?

Надо понимать, что требования современных ОС (не обязательно Windows) идут в ногу с современным железом — другими словами, для относительно комфортной работы в Windows XP старой (но полностью работоспособной и относительно мощной) машины класса Celeron 800Mgz/128Mb Ram/ 10Gb HDD может и не хватить. Работать под современной ОС на подобном железе, конечно, можно, но подтормаживать эта операционка и приложения будут довольно часто — хотя бы из-за малого количества набортной памяти и старого (читай — медленного) жесткого диска.

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

Обычно тонкие клиенты делают на основе слабого (а, соответственно, и малопотребляющего) железа — часто это единая системная плата, на которой все и интегрировано. Процессор и память так же могут быть намертво припаяны к материнской плате. Некоторые тонкие клиенты имеют flash-диск (вставляемый в IDE разъем материнской платы), на котором прошита специализированная ОС (WinCE или другие).

В результате, при включении тонкого клиента (их еще называют терминалами), ОС грузится со встроенного flash-диска (обычно на загрузку уходит менее 30 секунд), после чего на экране появляется диалог подключения к терминальному серверу. Некоторые из этих клиентов умеют подключаться только Windows Terminal Server или же Citrix Metaframe, другие — в том числе и к терминальным серверам других ОС. В любом случае, в цену таких решений закладывается и цена лицензии на WindowsCE, прошитую на встроенный flash-диск. Мы рассказывали о подобных решениях ранее:

Разумеется, подобные решения существуют и у других компаний. В том числе и без встроенной ОС (за которую, в случае Microsoft Windows CE, нужно дополнительно платить, да и flash-диск копейки, но стоит).

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

Последний минус, который мы тут рассматривать не будем — это лицензионная политика (если не сказать обдираловка) со стороны Microsoft. Работа на терминальном сервере под управлением ОС этой известной компании требует большого количества разнообразных лицензий:

  • лицензия на Windows Server
  • CAL (Client Access License) — лицензии на подключение к Windows-серверу и их кол-во должно быть не меньше количества подключаемых к серверу клиентов (обычно в составе Windows-сервера уже идет некоторое кол-во таких лицензий — от пяти и выше)
  • лицензии на работу с сервером терминалов (их количество тоже должно быть равно количеству подключаемых клиентов)

Не забываем про отдельные лицензии на весь используемый софт (например на Microsoft Office) в количестве, равном количеству подключаемых к серверу клиентов. Если клиентские лицензии на Microsoft Office еще можно обойти, отказавшись от данного продукта и поставив ему замену в виде, к примеру, OpenOffice, то от самого терминального сервера в лице Windows 2000/2003 TS избавиться несколько сложнее :) Хотя и это возможно в некоторых случаях.

Именно для ответа на последний вопрос написана данная серия статей. В ней будет рассматриваться софт тонкого клиента Thinstation.

Этот небольшой, но обладающий множеством возможностей и, что немаловажно, OpenSource софт, позволяет превратить практически любые древние компьютеры в тонкие клиенты. Минимальные требования описанные на его родном сайте к используемому железу — это Pentium 100Mhz и 16Mb оперативной памяти. Ах да, жесткий/flash диск тоже не нужен — компьютеры при включении могут скачивать образ тонкого клиента (это около двадцати! мегабайт) по сети (хотя так же возможна установка Thinstation клиента на жесткий или usb диск). В наш век операционных систем, с радостью сжирающих гигабайты места на диске после установки, это впечатляет, не так ли?

Thinstation базируется на Linux, но для его использования знаний Linux, как таковых не нужно — достаточно в своей сети поднять dhcp и tftp сервера и соответствующим образом их настроить (оба этих сервера есть и в составе продуктов Windows Server). Таким образом, даже в сети, где кроме Windows-а ничего не знают, использование Thinstation клиента затруднений не вызовет.

Thinstation умеет работать со следующими серверами терминалов:

  • Сервера Microsoft Windows по протоколу RDP или через nxclient (Windows NT4TSE, W2k Server, W2k3 Server или же Windows XP в однопользовательском режиме);
  • Citrix servers по протоколу ICA (на серверах MS Windows, SUN Solaris и IBM AIX);
  • Сервера Tarantella
  • *nix-like сервера по протоколу X11;
  • подключение к VNC-серверам (tightVNC);
  • подключение к SSH и Telnet серверам;

Для того, что бы загрузить Thinstation по сети, от компьютера требуется лишь встроенная или внешняя сетевая карта, поддерживающая стандарт PXE (есть и другие варианты, но, к примеру все встроенные в системную плату сетевые карты работают именно по этому протоколу).

А сейчас вкратце рассмотрим процесс загрузки клиента Thinstation по сети.

  • Сетевая карта по протоколу PXE запрашивает DHCP сервер следующую информацию: IP адрес, маску подсети, шлюз а так же IP-адрес сервера TFTP (на котором лежат образы, в данном случае, ThinStation) и имя образа, которое она попытается загрузить.
  • DHCP сервер возвращает запрашиваемую информацию (помечая у себя, что выданный клиенту IP адрес — занят таким-то клиентом)
  • Клиент подключается к TFTP серверу, IP-адрес которого ему только что сообщили и скачивает с него файл загрузчика PXE (имя которого ему опять таки сообщил DHCP-сервер)
  • Скаченный PXE загрузчик исполняется и, в свою очередь скачивает с TFTP сервера конфигурационный файл, в котором прописаны имена файлов ядра ОС Linux — vmlinuz и образа файловой системы — initrd. Эти файлы скачиваются и управления передается ядру Linux
  • После распаковки и загрузки ядра Linux с подмонтированным образом файловой системы, Thinstation снова обращается к TFTP серверу для скачивания необходимых ему конфигурационных файлов (там, среди прочего, записаны адреса терминальных серверов, к которым нужно подключаться), после чего запускает нужный терминальный клиент (в нашем случае это будет rdesktop) и ожидает от пользователя ввода его логина с паролем для подключения.

На первый взгляд, описанная схема выглядит сложно. Но по факту настройка оной занимает полчаса-час и в дальнейшем она работает полностью автономно. Загрузка тонкого клиента с момента первого запроса в сеть по PXE (этот момент совпадает с моментом начала загрузки ОС с жесткого диска) занимает секунд 20…30.

Как уже отмечалось выше, Thinstation умеет работать с разными терминальными серверами. Но мы в ближайших статьях, как самое простое в реализации (но еще раз напоминаю о покупке множества клиентских лицензий, необходимых для официальной работы), рассмотрим лишь связку Thinstation с Microsoft Terminal Server.

Для начала нам надо иметь настроенный сервер терминалов от Microsoft. Этот сервер может работать как в составе домена (в этом случае удобнее управлять аккаутами пользователей — они общие — особенно если терминальных серверов в сети несколько), так и в вне домена — в одноранговой сети. Второй случай отличается от первого тем, что необходимых пользователей придется заводить на каждом сервере локально и синхронизировать актуальные списки пользователей и их прав — вручную.

Вторым пунктом нашей программы будет настройка DHCP и TFTP серверов. Первый ведает динамической раздачей IP адресов для рабочих станций, а так же сообщает, с какого IP адреса (с какого сервера tftp) и какое имя файла компьютеру нужно скачать в качестве загрузочного образа тонкого клиента. А второй — tftp сервер — фактически и отдает образы тонкого клиента и конфигурационные файлы для них же. Эти настройки могут быть как глобальными (для всех бездисковых терминалов сети), так и локальные — для определенных групп машин или же одиночных тонких клиентов.

Оба эти сервиса можно поднять как в составе Windows сервера (запуском и настройкой соответствующих служб), так и отдельными демонами в составе *nix-сервера — мы это рассмотрим на примере сервера с установленным Gentoo Linux.

А третьим пунктом идет настройка клиентских машин — перевод их на загрузку по сети и рассмотрение стандартных подводных камней.

Но об этом — в следующих статьях нашего цикла.

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

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.