Вы находитесь на странице: 1из 98

Так видит журнал читатель, который забыл оформить подписку:

ЛИ
С
ЛИ
ТЯ Е

Ж ПИ
ЗА ДНИ
НУ

РА КУ
ЛЫ ГО

ТИ РАС
К У ВО

РО
№10(71) октябрь 2008
НИ НО

СТ
БЫ
подписной индекс 20780
КА

www.samag.ru
Особенности обновления

№10(71) октябрь 2008


контроллера домена

И
ЬГ
ЬД О
БО А
К

ИС НН
ЕН
РА СК
ТЕ
УС

до Windows Server 2008

ИЛ ДА
У
ТП

НА П
Л ОТ

НЧ ЖИ
ВО

РА ЛЕ

КО НЕО
Л

АВ ОС
ХА
УЕ

Строим систему для виртуализации

ЗА
с Linux CentOS и VMware Server

Так видит журнал читатель, оформивший подписку: Проводим учет оборудования


с Kwok Information Server

Как работает HTTP-сервер nginx

DeleGate – многофункциональный
прокси-сервер

Могут ли информационные киоски


работать под Linux

Настраиваем подключения
к удаленному рабочему столу
ПОДПИШИТЕСЬ И ЧИТАЙТЕ! Собрание ошибок
в среде программирования
Роспечать – 20780, 81655 «1С:Предприятие»
Пресса России – 88099, 87836 Найди в журнале код.
Интер-почта – тел. (495) 500-00-60 Следуй инструкциям.
На кону настоящий
«АДМИНСКИЙ ПРИЗ»
Реклама
Реклама
в номере
3 ТЕНДЕНЦИИ БЕЗОПАСНОСТЬ
РЕПОРТАЖ 60 Установка цепочки серверов сертификации
как часть внедрения PKI в домене
6 SofTool 2008 – количество, Часть 2
не перешедшее в качество Сегодня мы займемся установкой промежуточно-
В девятнадцатый раз в Москве прошла ежегодная вы- го и выпускающего Certificate Authority – для них про-
ставка SofTool. цесс имеет свои особенности, которые надо учитывать
Алексей Коршунов при развертывании всей цепочки серверов.
Станислав Шпак
8 «Российский СПО-Саммит» удался
Обзор конференции Russian Open Source Summit. ЧЕЛОВЕК НОМЕРА
Дмитрий Шурупов
66 Бриллиант чистой воды
12 Репортаж с конференции Интервью с Константином Комаровым, президентом
HP Blade System компании Paragon Software.
Анонс новых тенденций для построения виртуализиро- Оксана Родионова
ванных серверных решений.
Алексей Бережной 69 ЗАКОН ЕСТЬ ЗАКОН
АДМИНИСТРИРОВАНИЕ WEB
17 Корпоративное лицензирование: 70 Как работает HTTP-сервер nginx
если уж делать, то грамотно Чем архитектура nginx отличается от архитектуры дру-
А вы лицензировали свой софт? гих HTTP-серверов.
Дина Моисеева Дмитрий Васильев

18 DeleGate – многофункциональный ПРОГРАММИРОВАНИЕ


прокси-сервер
Универсальное средство. 78 Сервер приложений С++
Сергей Супрунов Описание C++ Application Server – инструментария, об-
ладающего широкими возможностями конфигуриро-
24 Строим систему для виртуализации вания, способного обрабатывать сотни и тысячи за-
на базе серверной платформы Intel просов в секунду.
при помощи Linux CentOS 5.1 Андрей Шетухин,
и VMware Server 2 Илья Космодемьянский
Как решить три разные задачи, используя один сервер.
Алексей Бережной 82 Создание графических интерфейсов
на Ruby/GTK+
31 Могут ли информационные киоски Как программировать кроссплатформенные графи-
работать под Linux ческие интерфейсы на языке Ruby с использованием
Зачастую мы даже не подозреваем, на какой имен- библиотеки GTK+.
но операционной системе работают информацион- Александр Симаков
ные киоски.
Антон Борисов АДМИНИСТРИРОВАНИЕ «1С»
40 Учет оборудования с Kwok Information 84 Распространенные ошибки
Server программистов
Обзор решения. «Собрание» ошибок в среде программирования
Сергей Яремчук «1С:Предприятие».
Андрей Луконькин
44 Xneur – автоматическое переключение
раскладок под Linux РЕТРОСПЕКТИВА
Аналог Punto Switcher для пользователей Linux.
Павел Закляков 86 «Магические» технологии
История компании General Magic.
46 Особенности обновления контроллера Дмитрий Мороз
домена до Windows Server 2008
Нюансы перехода на новую операционную систему. 91 СИСАДМИН ТОЖЕ ЧЕЛОВЕК
Андрей Бирюков
92 КНИЖНАЯ ПОЛКА
50 Настраиваем подключения
к удаленному рабочему столу 59, 65, 77 BUGTRAQ
Когда вам необходимо создать несколько удаленных
подключений к разным серверам, то рекомендуется
создавать RDP-файлы, о них и пойдет речь.
Иван Коробко
Код для участия в розыгрыше призов.
56 Первый взгляд на MySQL 6 Следуйте инструкциям на стр. 4.
Краткий обзор основных нововведений MySQL 6.
Кирилл Сухов

№10, октябрь 2008 


колонка главного редактора

Р азрешите представиться. Меня зовут Алексей Коршунов, и я новый глав-


ный редактор журнала «Системный администратор».

Последний месяц заставил даже самого толстокожего человека ощу-


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

Однако на нашей стороне играют история и опыт, полученный в «смут-


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

В этом номере мы подготовили для вас много статей, которые, безу-


словно, будут интересны и, надеемся, полезны в вашей работе. Вас ждет
обзор прошедшей в Экспоцентре выставки SofTool 2008, а также репорта-
жи с конференций HP Blade System и Russian Open Source Summit. В про-
должении цикла статей о Windows 2008 Server вы узнаете об особенностях
обновления контроллера домена. Популярную тему виртуализации затро-
нет статья о построении системы при помощи Linux и VMware. Статья «Как
работает HTTP-сервер nginx» расширит кругозор администраторов, пола-
гающих, будто Apache единым жив мир веб-серверов. Тем, кто использует
Linux в качестве основной операционной системы или внедряет эту заме-
чательную ОС в качестве корпоративного стандарта, будет интересно уз-
нать об автоматическом переключении раскладок клавиатуры с помощью
Xneur. Также мы продолжим тему удаленного управления и поговорим о на-
стройках, сохраняемых в RDP-файлах конфигурациях. Статья о DeleGate
расскажет, насколько многофункциональным может быть прокси-сервер.
Рубрика программирования порадует вас интересной статьей о сервере
приложений С++. А в качестве десерта в «Ретроспективе» мы предлага-
ем вам поближе познакомиться с компанией General Magic и узнать, какой
именно «магией» эта компания собиралась захватить рынок.

Также... Впрочем, к чему раскрывать все карты. Скорее переворачи-


вайте страницу и наслаждайтесь результатами кропотливого труда редак-
ции и авторов!

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

Приятного вам чтения.

Алексей Коршунов


тенденции
Linux-компьютеры приобретают столбцов для одной таблицы (до 1024), обновлен инструмент
государственную значимость Solver для нахождения оптимальных формул, представлен
В конце сентября стало известно, что Уго Чавес, президент режим коллективной работы (Share). В приложении созда-
Венесуэлы, во время своего визита в Португалию подпи- ния презентаций (Impress) появилась полная поддержка таб-
сал соглашение о поставке 1 миллиона дешевых Linux-но- лиц (без зависимости от Calc, как это было раньше). Релиз
утбуков. В основе приобретаемых лаптопов – специализи- OpenOffice.org 3.0 примечателен еще и тем, что стал пер-
рованная версия компьютеров Intel Classmate PC, распро- вой версией открытого офиса, работающего в Mac OS X
страняемых под брендом Magellan. ПК Intel Classmate были без X11 и с интерфейсом других приложений Aqua.
созданы специально для школьников развивающихся стран.
При закупке у представителей Венесуэлы был выбор меж- Завершается перевод серверов
ду предварительно установленными на эти Classmate PC Wikipedia на Ubuntu Linux
операционными системами Windows XP и Linux, и они пред- Проект Wikipedia объявил о завершающем этапе перевода
почли ОС с открытым кодом. Стоимость каждого ноутбу- своей IT-инфраструктуры на Ubuntu Linux. До сих пор серве-
ка оценивается в несколько сотен американских долларов, ры Wikipedia работали под управлением разных Linux-дист-
но точная стоимость не оглашается. рибутивов компании Red Hat: до последнего момента мож-
А уже в начале октября пришла весточка из Бразилии, но было встретить как Red Hat Linux 9, так и последние вер-
где в рамках программы «Компьютер для всех», старто- сии Fedora. Такой разброс в версиях ОС, разумеется, обус-
вавшей еще в ноябре 2005 года, было произведено и про- лавливал ряд проблем. К тому же руководство организации
дано более 1,5 миллиона компьютеров с предустановлен- Wikimedia Foundation, поддерживающей Wikipedia и связан-
ной ОС GNU/Linux. На распространяемые в рамках этой ные с ней ресурсы, пришло к выводу, что пора максималь-
акции ПК предварительно устанавливают местный GNU/ но упростить администрирование и поддержку серверов.
Linux-дистрибутив Insigne версии 5.0. Он основывается Все это привело к масштабной миграции (400 серверов),
на нестабильной ветви Debian GNU/Linux. Среди произво- которая началась еще в 2006 году. До ее завершения оста-
дителей компьютеров называются компании SEMP Toshiba, лось несколько месяцев, и тогда веб-сайт будет полностью
Kelow, Kennex, Mirax и Qbex. Ожидается, что до конца это- обслуживаться последним на данный момент стабильным
го года число компьютеров с бразильским Linux-дистрибу- релизом Ubuntu Linux (8.04 «Hardy Heron»).
тивом Insigne вырастет до 2 миллионов.
В середине октября правительство Австралии планирует Подготовил Дмитрий Шурупов
по материалам www.nixp.ru
реализовать программу по обеспечению школ компьютера-
ми с предустановленной системой GNU/Linux. Конкретный
дистрибутив пока не выбран, но сообщается о возможном
использовании Edubuntu – специальной редакции Ubuntu
Linux, ориентированной на использование в сфере образо-
вания. На инициативу будет потрачено 56 млн USD.

GIMP и OpenOffice.org обновились


В октябре вышли новые версии двух популярных Open
Source-приложений, являющихся стандартом де-факто
в своей нише среди свободного ПО: редактора растровой
графики GIMP и офисного пакета OpenOffice.org.
Главным новшеством в релизе GIMP 2.6 стала интег-
рация основных возможностей GEGL (Generic Graphical
Library) – нового фреймворка обработки изображений, ко-
торый обеспечивает возможность увеличивать глубину цве-
та изображений до 32 бит на пиксел, чего так не хватало
GIMP, по мнению профессионалов в этой области. Впро-
чем, на данный момент поддержка GEGL по умолчанию
отключена (для ее использования нужно включить Colors/
Use GEGL).
Релиза OpenOffice.org 3.0 ждали долго, так что все ин-
тересующиеся судьбой проекта давно знали о новшест-
вах, которых стоит ожидать в финальной версии. В офи-
се появился новый центр быстрого запуска приложений,
обновились заставки и иконки. В текстовом процессоре
(Writer) представлен новый элемент управления масшта-
бированием, значительно обновленная система заметок
(примечаний) и возможность редактирования Wiki-стра-
ниц, как обычных документов. В приложении для работы
с электронными таблицами (Calc) было увеличено число

№10, октябрь 2008 


гра ть
а выи
шанс
Три ыш
ау н д! ыгр
ующ
и й р т роз
вае
л е д т к р ы
и н аем с р н а л ао
Нач е р а жу
о но м
н н о г А ». к оды
д а Д В с я
з
Код и ский при
з
н а д обят
д м и н е в а м по
«А
з ы г рыш 2008 год. г р ы ша
т и я в ро , 1 2 за п а х роз ы
л я у час № 1 0, 11 в ы х эта
Д а л ов х п ер Д В А» ап,
ж у р н в д в у п р и з й э т
из
ч а с т ие и н с к ий е т т рети
мет у «Ад м жид а
о п р и З » и о в, о н ич его,
, кт з РА ь ко д ится
Всех ский при се ш
е с т
по на
д о б
м и н е т в н е
«Ад р иру в ам
а р е г и с т
о т о р о м
и з РАЗ»
из
а с т и явк т ь. с к и й Пр
ч
д ля у м е ния ж
да
« А д мин
т ы б уду т
м е у гр ы ша зу л ьта о да.
кр о о з ы р е 8 г
и т оги р ноября, а б р я 200
м, чт о це 7 но я
н ае к о н а 2
ми в на л
Напо одведены айте жур
буду
тп
а н ы на с
у б л иков
оп
Приз
нск ий
ми
Ад РАЗ»
П р из «
м и н с к ий атор
Ад н и к
К о мму к ур с ы

б н ы е р од ук ты с е р в ер ы
че еп е
 У граммны ыделенны
ро в
 П туальные
ир
 В В А»
« Д
й П р из
нс к и
А д м и
н и к атор
К о мму к ур с ы

б н ы е р од ук ты с е р в ер ы
че еп е
 У граммны ыделенны
ро в
 П туальные
ир
 В РИ»
з «Т
к и й При
нс
Адми тбук
оу ы
 Н бные курс родукты
У че м н ы еп
 г р ам
р о
 П

дуе т…
ние сле
е
Про до л ж

Более подробную информацию о сроках и правилах проведения розыгрышей призов смотрите на сайте журнала – www.samag.ru
репортаж

SofTool 2008 – количество, не перешедшее


в качество

Ежегодная выставка SofTool прошла уже в девятнадцатый раз. В этом году организаторы
изменили доброй традиции использовать ВВЦ для проведения мероприятия и разместили
экспозицию в Экспоцентре на Красной Пресне в павильоне №8.

С
ложно сказать, какого эффекта гистрацию, без пригласительных биле- ла компания «1С», которая, кажется,
желали добиться организаторы. тов и пропусков. Только на третий день задалась целью поглотить все мел-
Возможно, выбор более «рас- выставки появились охранники, спра- кие и средние компании, участвую-
крученного», если не сказать пафос- шивающие наличие пропуска (бейджа) щие на рынке программного обеспе-
ного, места проведения выставки дол- или хотя бы пригласительного билета, чения России. Под гордым знаменем
жен был дать всем понять, что SofTool а вот информация о местонахождении и узнаваемым желтым цветом была
переходит на новый уровень по качес- регистрации, похоже, была засекрече- собрана целая плеяда компаний, ко-
тву самого мероприятия и по количес- на. Также удивило отсутствие реклам- торые на предыдущих выставках име-
тву участников. Однако можно смело ных растяжек или баннеров у станций ли собственные стенды. Здесь вам
утверждать, что для многих постоян- метро и при входе на территорию Эк- и Aladdin, и Paragon, и многие другие
ных участников новость о смене мес- споцентра. По-видимому, организато- компании. Помимо огромных стендов
та проведения была не слишком при- ры сочли выставку SofTool и без того «1С» вдоль стеночек располагались
ятной. Причин тому множество, начи- достаточно известной и хорошо раз- менее крупные игроки нашего рынка,
ная от менее удобного местоположе- рекламированной. а также немногочисленные предста-
ния Экспоцентра (а вы пробовали най- вители прессы.
ти парковочное место на набережной?), На что нам предлагали Среди компаний можно отметить
заканчивая вполне ожидаемыми ню- посмотреть ESET, которая представляла свой ак-
ансами проведения мероприятия. До- Выставка SofTool 2008 проходила тивно продвигаемый продукт ESET
вольно забавно выглядело то, что не- в трех залах восьмого павильона вы- NOD32 Smart Security. IDECO с собс-
малое количество посетителей попа- ставочного центра. В первом павиль- твенной разработкой интернет-шлю-
дало в выставочный центр, минуя ре- оне практически безраздельно цари- за с межсетевым экраном и функци-


репортаж
ей учета трафика. Небольшой стенд (что само по себе уже нетривиальная
юридической компании «Сенешаль». задача), то в целом компаний-участни-
И, разумеется, стенды ALT Linux и Linux ков оказалось откровенно мало. Со-
Center, которые собирали вокруг себя здается впечатление, что SofTool гото-
немало посетителей. Но не такое ко- вится повторить печальную судьбу ис-
личество, как стенд компании ABBYY. чезнувшей первой компьютерной вы-
Стенд этой компании располагался ставки «Комтек».
около центрального входа в павиль- Второе, что так же сложно не за-
он и задерживал довольно большое метить, это ощутимо меньшее коли-
количество вновь пришедших посе- чество посетителей выставки. Если
тителей с помощью активных веду- SofTool 2007 периодически напоминал
щих, которые через громкоговорите- нашествие IT-паломников к священной
ли постоянно вещали о конкурсах, ро- «мекке», то в этом году никакого ажи-
зыгрышах и прочими средствами при- отажа замечено не было.
влекали внимание к продукции ком- На этот раз не состоялось специа-
пании. Особым вниманием любите- лизированной экспозиции LinuxLand,
лей фотографировать пользовалась которая с 2005 года ежегодно прохо-
выставленная компанией «1С» фигу- дила в рамках SofTool.
ра орка-воина. Объективно оценить количест-
Во втором зале павильона №8 соб- во посетителей организаторам будет В заключение
рались производители узконаправ- трудно, если вообще возможно. По- В любом случае, несмотря на «слу-
ленного программного и аппаратного мимо ненавязчивой регистрации одно- чайных прохожих» с других выста-
обеспечения. Среди них можно выде- временно с Softool в Экспоцентре так- вок, визуально количество пришед-
лить компании, представляющие бух- же проходили как минимум две дру- ших на Softool 2008 не шло ни в какое
галтерские программы, различные гие выставки («ЧипЭкспо-2008», «От- сравнение с количеством посетителей
ERP-системы, объединенный стенд дых. Туризм и путешествия-2008»), в 2007 году. Сложно сказать, являет-
«Электронная Москва», и некоторые посетители которых не отказывали ся ли причиной этого смена местона-
IT‑компании, которым, по-видимому, себе в удовольствии зайти на обрат- хождения выставки или просто инте-
не хватило места в первом (более под- ном пути в павильон №8. Выделить рес к подобного рода мероприятиям
ходящем по тематике) зале. тех, кто приехал на выставку «ЧипЭк- уменьшился. Возможно, выставка пе-
Третий павильон целиком отдан спо» можно было по промо-материа- реходит в новое качество, в котором
программному обеспечению для про- лам на шеях посетителей, а странные она будет интересна уже не столько
мышленности и строительства (САПР). группы людей в соломенных шляпах, обычным посетителям, сколько дело-
Традиционно посетителей в этом пави- возможно, пришли с выставки, посвя- вым людям, приходящим для поиска
льоне было меньше всего, что легко щенной отдыху и туризму. Были еще деловых связей и партнеров.
объясняется узкостью круга людей, ин- посетители, из пакетов которых (поми-
тересующихся такими продуктами. мо бесполезного рекламного мусора) Текст: Алексей Коршунов,
Также в рамках выставки прошла грозно сверкали лакированные ручки фото : Евгения Тарабрина,
http://photofile.ru/users/helvittar,
научно-практическая конференция бейсбольных бит, но откуда пришли http://www.1interes.ru/2008/10/03/
«Информационные технологии в Рос- они, сказать сложно. fotografii-s-vystavki-softool-2008
сии», посвященная основным направ-
лениям развития и применения сов-
ременных компьютерных технологий.
Компании представляли свои новые
продукты и рассказывали всем же-
лающим о результатах проделанной
за год работы.

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

№10, октябрь 2008 


репортаж

«Российский СПО-Саммит» удался

8 октября в московской гостинице «Рэдиссон САС Славянская» прошла конференция,


получившая название «Российский СПО-Саммит» (Russian Open Source Summit, ROSS‑RU).
Ее организаторами стали американская Linux-компания Red Hat, международный
дистрибьютор IT-продуктов и услуг VDEL, российский системный интегратор «АйТи».

Организация ло найти представителей таких ком- Надо полагать, основатель движения


Сразу стоит отметить высокий уро- паний, как Red Hat, «Академия АйТи», за СПО не одобрил бы подобную на-
вень организации мероприятия, что «ГНУ/Линуксцентр» и R-Style. рочитую неразборчивость в термино-
произвело очень приятное впечатле- логии вкупе с тем корпоративным ду-
ние. Было отрадно наблюдать, что ор- Пленарное заседание хом, который все-таки сложно было иг-
ганизаторы качественно позаботились Конференция проходила под лозунгом норировать даже несмотря на упомя-
об удобном месте проведения конфе- «Стань свободным, достигни больше- нутое дружелюбие. Но оставим это на
ренции, вкусных перерывах для участ- го!». Она началась с 4-часового пленар- совести участников и организаторов.
ников и исчерпывающих раздаточных ного заседания, собравшего ряд замет- К тому же, в России действительно го-
материалах. Уже одно это формиро- ных деятелей мира IT-бизнеса для до- раздо лучше прижился термин свобод-
вало дружелюбную и несуетливую ат- кладов, посвященных программному ного, а не открытого ПО.
мосферу, которая со временем стано- обеспечению с открытым кодом. К сло- Итак, первым выступающим стал
вится все более редкой гостьей на по- ву, в течение всего мероприятия в со- Вернер Кноблих, директор Red Hat
добных мероприятиях. общениях участников ненавязчиво про- по региону EMEA (Европа, Ближний
Помимо конференции в рамках глядывалось равенство понятий Free Восток и Азия). Его доклад, скрывав-
ROSS-RU формально проходила и не- Software и Open Source, доходившее шийся за заголовком «Модель Open
большая выставка, если так можно до того, что последнее (Open Source) Source: преимущества для всех», был
назвать несколько стендов, располо- переводили как «свободное програм- скорее посвящен преимуществам, ко-
женных в просторном холле у главно- мное обеспечение» (что заметно уже торые предлагает Red Hat, что трудно
го конференц-зала. На ней можно бы- в русскоязычном названии саммита). назвать удивительным. Кноблих начал


репортаж
с демонстрации «Red Hat в цифрах», провел исторический тически важного бизнес-ПО, чего не наблюдалось раньше,
экскурс со времен появления Open Source до возникнове- когда основной нишей ПО с открытым кодом были веб-сер-
ния его компании и наших дней. При этом докладчик отме- веры и подобные инсталляции (в России, например, по сло-
тил, что одно из главных достоинств ПО с открытым кодом – вам Шэрон, 63% рынка СУБД занимают системы с откры-
это движимые самими потребителями инновации. Кноблих тым кодом). Изменились и преимущества Open Source в гла-
также обрисовал нынешнюю многоступенчатую модель раз- зах потребителей: если раньше на первое место выходили
работки, принятую в его компании и гарантирующую качест- такие характеристики, как технологическая гибкость и же-
во приложений: сначала сообщество тестирует все множест- лание уйти от одного поставщика, то теперь предпочтение
во пакетов Open Source, коих насчитывается порядка 50 ты- ПО с открытым кодом больше отдают из-за низкой сово-
сяч, затем Red Hat отбирает лучшие (около 5 тысяч), а потом купной стоимости (TCO) и меньшего риска, обеспечивае-
команда управления качеством оставляет всего 1500 дейс- мого высоким качеством кода (он хорошо протестирован
твительно достойных пакетов, которые попадают конечным огромным сообществом).
пользователям в виде хорошо проверенных решений. Вер- После кофе-брейка начал свой доклад Милан Прохас-
нер красиво подвел итог своему докладу, представив публи- ка, генеральный директор компании VDEL. Милан должен
ке замечательный факт, что клиенты Red Hat – самые пре- был запомниться публике как минимум благодаря забав-
данные. По данным исследования CIO Insight Vendor Value, ному русскому произношению и искрометному юмору, за-
Linux-компания уже не один год является первой в списке служившему овации. Его выступление было посвящено
компаний, к которым клиенты возвращаются снова и снова. двум основным темам: грядущему продвижению Red Hat
По последней информации, 97% заказчиков компании Red в России и инициативе SoftwareUnited. Первая формально
Hat ответили, что обратятся к ней и в будущем. стартовала еще в марте этого года, когда Москву посетил
За руководителем из Red Hat последовала не менее Джим Уайтхерст, CEO и президент Red Hat. Но более ин-
интересная личность из IBM – Инна Кузнецова, директор тересные шаги со стороны американской Linux-компании
по Linux-стратегии в этой корпорации. Она начала с благо- нас ожидают впереди. Так, например, 20 ноября в Моск-
дарности организаторам, которые предоставили ей заме- ву приедет Макс Спевак, лидер проекта Fedora. Ожидает-
чательную возможность наконец-то выступить со своим до- ся, что он будет обсуждать Fedora с российскими пользо-
кладом на родном языке. И было заметно, что Инна искрен- вателями и разработчиками. А 5 декабря с участием Уай-
не этому рада – даже в презентации на всех слайдах вмес- тхерста состоится официальный запуск проекта продви-
то англоязычных названий встречались «ИБМ», «Линукс» жения Fedora в России – Fedora.Ru (Russian Fedora). В ка-
и «Виндоуз». Доклад же был посвящен «первому десяти- честве технологической базы для российских разрабо-
летию» IBM с Linux. Все это время в IBM не стесняются ру-
ководствоваться принципом «Eat your cookies», т.е. по воз-
можности использовать Linux у себя самих. Докладчица по-
казала заметное отличие в росте серверных операционных
систем во всем мире, где рост Linux опережает всех пресле-
дователей, от ситуации в России, где больше всего растет
доля UNIX и Windows. Впрочем, это не мешает с оптимиз-
мом смотреть в российское будущее, в котором стоит ожи-
дать перелома в сторону общемировых тенденций, посколь-
ку сейчас наблюдается постепенный уход от историческо-
го наследия, образованного распространением пиратства.
Также Инна рассказала о последних инициативах IBM, свя-
занных с Linux: зеленый проект (уменьшение загрязнения
окружающей среды за счет перехода на Linux-мэйнфрей-
мы), развитие Linux в области применения для критических
бизнес-приложений, так называемые вычисления в в среде
так называемого «облака» (cloud computing) и «десктоп бу-
дущего» (не зависимый от Microsoft и создаваемый при под-
держке Red Hat и других Linux-компаний).
Продолжила серию выступлений представительница
небезызвестной исследовательской компании Gartner –
Шэрон Мертц. Ее доклад был посвящен общему анализу
значимости программного обеспечения с открытым кодом
на рынке информационных технологий, созданного на ба-
зе последних исследований Gartner. Так, например, был
озвучен прогноз, что к 2011 году 80% программного обес-
печения будет содержать Open Source (обратите внимание
на акцент на слове «содержать», которое вовсе не обязы-
вает ПО быть полностью открытым). Шэрон отметила тен-
денцию все большего использования Open Source для кри-

№10, октябрь 2008 


репортаж
ток в Red Hat намерены использовать ких русскоязычных информационных рос решил ответить Тагир Яппаров, ко-
ВНИИНС, известный своей операци- ресурсах, как developerWorks Россия торый лично принимал участие в под-
онной системой МСВС, основанной (http://www.ibm.com/developerworks/ru) готовке документов. Как он сообщил,
на Linux. Кстати, в дальнейшем МСВС и INFO-FOSS (http://info-foss.ru), а так- информация о том, что «Почта России»
будет базироваться на RHEL (Red же отметил, что экономический кризис отказалась от услуг Red Hat в пользу
Hat Enterprise Linux). SoftwareUnited – способствует росту спроса на свобод- Microsoft – не более чем домыслы жур-
это проект VDEL по созданию плат- ное программное обеспечение. налистов. В действительности «Почта
формы, которая должна стать осно- России» является крупной организа-
вой для создания решений, способных Пресс-конференция цией, нуждающейся в сложной инфра-
конкурировать с продукцией Microsoft. После этого посетители конференции структуре, состоящей как из Windows-
В нее входят операционная система отправились на ланч, а журналистов решений, так и из Linux, поэтому она
RHEL, пользовательские приложения собрали в небольшом зале для про- подписала соглашения с обеими аме-
из RHEL Desktop, продукты IBM (Lotus, ведения пресс-конференции. На ней риканскими компаниями. Эти догово-
Tivoli, Informix, DB2 – «то, чего нет в ми- с краткими докладами выступили ры не исключают, а дополняют друг
ре Open Source») и бизнес-приложения уже знакомые люди: Вернер Кноблих друга.
от компаний-партнеров. На базе такой из Red Hat, Милан Прохаска из VDEL,
платформы компании-партнеры смо- Инна Кузнецова из IBM, Тагир Яппаров Параллельные секции
гут разрабатывать законченные реше- из компании «АйТи». Все они сформу- Ко времени завершения пресс-конфе-
ния и предлагать их рынку. Официаль- лировали основные тезисы своих не- ренции вернулись отдохнувшие посе-
ный старт проекта – 6 ноября. давних докладов, дав собравшимся тители, которым был предложен це-
Следующим докладчиком стал Та- повод для размышлений и последо- лый ряд одновременно стартовавших
гир Яппаров, генеральный директор вавших вопросов. секций с выступлениями, затрагива-
компании «АйТи». Он раскрыл тему Одним из вопросов, вызвавшим ющими различные аспекты исполь-
положения свободного программного активное обсуждение, стал все тот же зования программного обеспечения
обеспечения в России. В частности, Яп- мировой экономический кризис. В част- с открытым кодом. В одном зале об-
паров ответил на вопрос, зачем вообще ности, Инна Кузнецова отметила, суждалось свободное ПО в корпора-
нужно СПО для России – для быстро- что в таких сит уациях возникают тивных системах (например, опытом
го развития отечественной индустрии многочисленные слияния компаний, миграции IT-инфраструктуры компа-
программного обеспечения и инфор- что ведет к необходимости унифи- нии на СПО делился Арам Кананов
мационных технологий в целом, а также цировать IT‑инфраструктуру, и здесь из Red Hat), в другом – различные про-
для снижения зависимости от зарубеж- Linux замечательно подходит на роль дукты и решения на базе СПО, в тре-
ных поставщиков. Среди причин, обус- единой платформы. Тагир Яппаров тьем – вопросы изучения СПО в обра-
лавливающих необходимость СПО, до- выразил позицию, что кризис приво- зовании, а в последнем проводился
кладчик выделил борьбу с пиратством, дит к сокращению бюджетов, из чего «круглый стол» представителей меж-
способность СПО лучше отвечать пот- следует стремление бизнеса анализи- дународных поставщиков решений
ребностям бизнеса, а также саму пара- ровать альтернативные решения, что СПО и российских разработчиков, на-
дигму разработки СПО. После этого Яп- опять же на руку во многом оставав- целенный на обмен опытом и развитие
паров перечислил некоторые распро- шейся до сих пор в тени продукции из разработки СПО в России.
страненные мифы о свободном ПО (на- мира Open Source.
пример, о том, что СПО разрабатывает- Отвечая на вопрос о значимости Заключение
ся небольшой группой хакеров, не под- Linux для IBM, Инна заявила, что это В целом первый «Российский СПО-
держивается серьезными компаниями многомиллиардный бизнес для кор- Саммит» однозначно удался. Хорошая
и является бесплатным), пояснив, в чем порации, но она не в праве приводить организация способствовала прослу-
именно заключается заблуждение и как конкретные цифры. IBM зарабатыва- шиванию интересных докладов в при-
обстоят дела в действительности. Так- ет на продаже программного обеспе- ятной обстановке – а что может быть
же директор АйТи рассказал об образо- чения для Linux, поставке лицензий от лучше? Будет очень интересно наблю-
вательной программе ROSEP (Russian Red Hat и поддержке корпоративных дать за развитием этого мероприятия
Open Source Education Program), к ко- пользователей. Кроме того, предста- в ближайшие годы, с учетом роста по-
торой уже подключились некоторые вительница IBM сообщила, что по объ- пулярности ПО с открытым кодом в на-
российские вузы (московские МИФИ ему внедрения Linux-серверов в мире шей стране. В качестве единственно-
и МГТУ им. Н.Э. Баумана, саратовский первая тройка стран выглядит следу- го недостатка стоит отметить слишком
СГСЭУ). Ее суть заключается в предо- ющим образом: США, Япония и Герма- явную направленность конференции
ставлении студентам бесплатных кур- ния. Россия же не входит и в первую де- в угоду единственного (пусть и очень
сов по Red Hat с возможностью полу- сятку, однако находится на 5-6 позиции значимого) представителя Open Source-
чить сертификаты RHCT. по росту популярности Linux в стране, индустрии и его партнеров.
Завершил пленарное заседание поэтому развитие Open Source в нашей
Марат Гуриев, директор государствен- стране очень интересно для IBM. Текст Дмитрий Шурупов,
ных программ IBM в регионах Восточ- Когда спросили про ситуацию фото предоставлено
оргкомитетом саммита
ной Европы и Азии. Он рассказал о та- с Red Hat и «Почтой России», на воп-

10
Реклама
репортаж

Конференция HP Blade System

Анонс новых тенденций для построения виртуализированных серверных решений.

Э
то интересное и познавательное во. В своем коротком докладе он поп‑ в 1958 году, была изобретена первая
мероприятие состоялось 2 ок‑ риветствовал участников конферен‑ микросхема.
тября 2008 года по адресу Моск‑ ции и произнес несколько обнадежи‑ По мнению Городничего, представ‑
ва, гостиница «Хилтон Ленинградс‑ вающих слов о хороших перспективах ляющего серверные решения на базе
кая». Роскошная обстановка знамени‑ развития IT‑индустрии в современной HP, основными показателями работы
того отеля и известные имена брендов России. Он также выразил надежду современного сервера являются:
инициаторов конференции HP и AMD на скорейшее благополучное завер‑ n экологичность;
способствовали тому, чтобы конфе‑ шение финансового кризиса. n управляемость;
ренция состоялась поистине с коро‑ Анонсируя предстоящую тематику n надежность и простота обслужива‑
левским размахом. конференции, Виктор указал основные ния;
Начало конференции было назна‑ выгоды от виртуализации, среди кото‑ n низкие эксплуатационные расхо‑
чено на 9.30. После регистрации и при‑ рых перечислил управляемость, мо‑ ды.
ветственного кофе участники были бильность, повышение отдачи от ин‑
приглашены в зал, где, собственно, вестиций. В целом это было блестящее, хотя
и происходила официальная часть ме‑ Далее докладчик с удовольстви‑ и краткое выступление.
роприятия. ем отметил, что российское предста‑ Следом за ним согласно програм‑
вительство HP является единственной ме конференции взял слово Сергей
Начало конференции. из сервисных служб, осуществляющей Давыдов, менеджер отдела по внед‑
Первые доклады поддержку на русском языке по вопро‑ рению продукции AMD.
Виктор Городничий, руководитель от‑ сам виртуализации. Вслед за предыдущим докладчи‑
дела серверов стандартной архитек‑ Докладчик напомнил о юбилей‑ ком он также акцентировал внимание
туры «HP Россия», первым взял сло‑ ной дате этого года – 50 лет назад, на том факте, что нынешние требова‑

12
репортаж
ния к серверу значительно отличают‑ n автоматизация всех процессов. сетевых интерфейсов, что значительно
ся от прежних. В частности, на пер‑ упрощает сетевую топологию.
вое место выходят такие показатели, По его словам, «звездой програм‑ Основные цели, преследуемые
как низкое энергопотребление, а так‑ мы» должен стать новый HP Proliant при внедрении данного решения:
же быстрота виртуализации. Получить BL495c G5 – «виртуализационный n упрощайте сетевую технологию,
максимум преимуществ за минималь‑ блейд». Помимо мощных процессоров снижайте количество кабелей за
ные деньги – вот девиз, которым руко‑ в новом сервере предлагается уста‑ счет использования до 4 интерфей‑
водствуются клиенты при покупке сер‑ новка большого объема оперативной сов на одном 10 Гб интерфейсе;
верного оборудования. памяти – от 4 до 128 Гб, под которую n добавляйте в 16 раз больше серве‑
Д л я с н и же н и я с то и м о с т и з а ‑ отводится 16 слотов, а также предла‑ ров в SAN-фабрику;
трат на электропитание компанией гается установка новых твердотель‑ n снижайте закупочные расходы
AMD были разработаны технологии ных дисков или как вариант загруз‑ до 38% на подключение LAN;
Independent Dynamic Core Technology ки с флеш-накопителя операционной n назначайте и контролируйте про‑
(технология независимого питания) системы с целью поддержки виртуа‑ пускную способность.
и AMD Cool Core (отключение неис‑ лизации.
пользуемых блоков ядра процессора). Докладчик подробно коснулся воп‑ Далее докладчик рассказал об ус‑
Сергей Давыдов также рассказал росов устройства и архитектуры твер‑ тройстве Flex NIC – виртуальной се‑
о стремлении компании AMD макси‑ дотельных дисков SSD и рассказал, ка‑ тевой карте, распознаваемой BIOS-
мально упростить переход к новым кие выгоды сулит их использование. ом сервера как независимая сетевая
технологиям, в частности, продолже‑ По словам Сергея, новое поколе‑ карта, для которой не требуется спе‑
ния использования технологии DDR2 ние серверов G6 будет анонсировано циальная поддержка операционной
как наиболее экономичного решения в следующем году и будет строиться системы.
в плане цены и энергопотребления. на твердотельных дисках SSD. После выступления Сергея Чле‑
И, конечно, не обошлось без анон‑ Далее Сергей коснулся вопросов ка был сделан получасовой перерыв
са нового процессора – 4-ядерного виртуализации сетевых подключений. на кофе. Сергея тут же со всех сторон
Opteron. Представленный им сетевой коммута‑ обступили участники конференции,
Среди основных нововведений тор HP Virtual Connect Flex-10 позволяет которые с интересом задавали воп‑
в архитектуру были отмечены новый строить на основе одного 10 Гб интер‑ росы и получали ответы на тему о но‑
двухканальный контроллер памяти фейса до четырех 2,5 Гб виртуальных вых серверных решениях HP, особен‑
и кэш третьего уровня для переда‑
чи информации между ядрами про‑
цессора.
Еще одна интересная мысль, вы‑
сказанная Сергеем Давыдовым на вы‑
ступлении: «Каждый недопотреблен‑
ный ватт электроэнергии экономит
два ватта». То есть если производите‑
лю процессоров удалось сэкономить
1 ватт мощности, второй ватт будет сэ‑
кономлен при работе системы охлаж‑
дения, отводящей этот самый ватт вы‑
деленного тепла.
В целом выступление оказалось
очень интересным, была представле‑
на богатая информация о новых тех‑
нологиях.
Следом выступил Сергей Члек,
руководитель направления HP Blade
System, отдел серверов стандартной
архитектуры «HP Россия», с анон‑
сом нового блейд-сервера HP Proliant
BL495c G5, оптимизированного под
виртуализацию.
Он незаурядно обозначил основ‑
ные направления работы его направ‑
ления:
n всеобщая «блейдизация»;
n виртуализация всех сетевых под‑
ключений; Сергей Члек со своей «звездой программы» HP Proliant BL495c G5

№10, октябрь 2008 13


репортаж
ка серверного оборудования в боль‑
шинстве случае не превышает 40%),
так еще и необходимо продублиро‑
вать имеющуюся структуру в резер‑
вных целях. Данное решение трудно
обосновать, сложно изыскать ресурсы,
наконец тестирование плана аварий‑
ного восстановления – очень трудное
занятие. Другое дело, когда речь идет
о технологиях виртуализации. В этом
случае, подчеркнул Александр Светла‑
ков, перенос инфраструктуры по схе‑
ме Datacenter – WAN – резервный ЦОД
значительно упрощается, особенно
когда используются такие продукты,
как VMware Site Recovery Manager и HP
Site Recovery Manager.
Потом Александр коснулся ре‑
шения от Citrix Xen Server. Оно также
поставляется компанией HP как сер‑
Участники конференции осматривают привезенное оборудование верное решение на флэш-носителе.
Несмотря на кажущуюся молодость,
ностях использования твердотельных шой экскурс по всему многообразию данный продукт, по мнению Алексан‑
дисков, жестких дисков, преимущест‑ продуктов и технологий от VMware, дра Светлакова, может конкурировать
вах блейд-систем и т. д. включая такие интересные продукты, с продукцией VMware за счет простоты
Представители «HP Россия» при‑ как High Availability (управление отка‑ установки и управления. При этм было
везли с собой для демонстрации пол‑ зоустойчивостью серверов), VMotion подмечено, что управление решения‑
ную серверную полку формата 6U, (перемещение виртуальных машин ми от VMware весьма затруднительно
до отказа набитую серверами и дис‑ с одного сервера на другой незамет‑ без специальной подготовки.
ковыми хранилищами, а также ту са‑ но для пользователей), Enterprise После этого речь пошла о систе‑
мую «звезду программы» – HP Proliant Storage VMotion (миграция дисков мах виртуализации декстопов, поп‑
BL495c G5. виртуальных машин), а также DRS росту говоря, настольных ПК. Со слов
(Resource Management) и DPM (Power докладчика, персональный офисный
Вторая часть. Решения management), служащие для эффек‑ компьютер – наименее загруженное
по виртуализации тивного управления ресурсами и энер‑ устройство. Для устранения данного
и оптимизации гопотреблением. факта, а также для централизации, по‑
После перерыва начался док лад Было интересно узнать, что ры‑ вышения отказоустойчивости и т. д. HP
Александра Светлакова, специалис‑ нок виртуализации богат не толь‑ предлагает следующие решения:
та по продажам программных реше‑ ко коммерческими, но и бесплат‑ n Blade PC (графическая рабочая
ний, представляющего отдел серве‑ ными решениями. Такие продукты, станция);
ров стандартной архитектуры «HP Рос‑ как VMware ESXi, Microsoft Hyper‑V n Server-based computing (традицион‑
сия». Данный доклад затрагивал осо‑ и Citrix XenServer Express Edition, до‑ ное решение с удаленными клиен‑
бенности новых решений HP по вирту‑ уступны для свободного скачивания тами);
ализации серверных окружений на ба‑ или поставляются по цене носителя. n Virtual Desctop Infrastructure (VDI) –
зе Vmware, Microsoft Hyper-V и Citrix Соответственно компания HP не от‑ виртуальный декстоп.
XenServer. стает от реалий сегодняшнего дня,
В начале своего выступления Алек‑ поставляя версию проинсталлиро‑ В последнем случае полностью со‑
сандр произвел краткий обзор про‑ ванную VMware ESXi, адаптированную здается виртуальный пользователь‑
граммных продуктов, используемых под оборудование HP по цене носите‑ ский компьютер. Пользователь может
для виртуализации серверов. ля (флеш-диска). создавать свою среду окружения, воз‑
Среди множества продуктов он Далее разговор пошел о трудно‑ можно перезагружать свою виртуаль‑
с большим удовольствием выделил стях организации резервного Центра ную станцию без риска прервать ра‑
линейку продуктов от VMware как «на‑ обработки данных (ЦОД). Действитель‑ боту других сотрудников. Значитель‑
иболее зрелое решение, в котором все но, если продублировать все серви‑ но упрощаются инсталляция ПО, ре‑
возможные ошибки были устранены». сы, что называется, напрямую, это ре‑ монт, апгрейд и т. п. необходимые ве‑
Среди альтернативных предложений шение оказывается непомерно доро‑ щи. Соответственно улучшаются сле‑
он выделил Citrix XenServer как инте‑ гим. Мало того, что физическая струк‑ дующие показатели:
ресное и перспективное решение. тура используется с неполной загруз‑ n безопасность – все данные хранят‑
Далее Александр провел неболь‑ кой (как показывает практика, загруз‑ ся в защищенном ЦОД;

14
репортаж
n доступность – из любой точки, верной частью и LAN и SAN-подключе‑ сказал, что люди зря боятся виртуали‑
где есть подключение к Интерне‑ ниями. В 2008 году «личность» серве‑ зации. Это похоже на ситуацию, ког‑
ту; ра становится текучей благодаря тех‑ да только появились блейд-системы,
n управляемость – гибкая система нологии виртуализации. Это значит, клиенты спрашивали: «А вдруг «пол‑
управления, обслуживания и мо‑ что не существует уже понятия «сер‑ ка» сломается, что теперь всю систе‑
дернизации виртуального устрой‑ вер» как уникальный программно-ап‑ му менять?»
ства. паратный комплекс. Когда же Сергей предложил зада‑
Продукт HP Insight Dynamics – VSE вать вопросы, первый же вопрос, кото‑
Далее Александр представаил но‑ как раз и призван помочь в анали‑ рый ему задали: «А вот если «полка»
винку – продукт HP VDI на базе Citrix зе и оптимизации как физических, сломается, что тогда делать?..»
XenDesktop. В конце выступления так и виртуальных серверов, унифи‑ Представитель HP достойно вышел
Александр Светлаков в числе плюсов цированное управление физически‑ из данной ситуации и классно ответил
компании «HP Россия» упомянул нали‑ ми и виртуальными серверами, пос‑ на заданый вопрос. Вкратце объяснив
чие русскоязычной технической под‑ тоянная оптимизация серверной про‑ устройство конфигурации блейд-сис‑
держки, а также большое количест‑ изводительности и энергопотребле‑ темы и, в частности, «полки» для раз‑
во сертфицированных специалистов ния, а также беспрецедентная мобиль‑ мещения блейд-серверов. Серверная
практически по всем реализуемым на‑ ность через использование «логичес‑ полка (если не считать легко заменя‑
правлениям. ких» серверов. емые детали, такие как вентиляторы,
Затем состоялось второе выступ‑ По словам Сергея, сейчас разви‑ съемные блоки питания и т. п.) состо‑
ление Сергея Члека, посвященное ав‑ вается новая современная концеп‑ ит из двух основных частей: собст‑
томатической оптимизации серверной ция – «Логический сервер». Он не обя‑ венно ящика, в котором размеща‑
инфраструктуры предприятия с помо‑ зан быть ни физическим, ни виртуаль‑ ются серверы и интерфейсные пла‑
щью HP Insight Dynamics – VSE. ным. «...Логический сервер – это не‑ ты, представляющие собой в некото‑
В своем выступлении Сергей отме‑ кая «личность» сервера, которая мо‑ ром приближении набор проводни‑
тил опасность, исходящую от бесконт‑ жет быть легко создана и перенесе‑ ков. По словам Сергея, единственная
рольного применения технологий вир‑ на по поверхности инфраструктуры вещь, которая может быть поврежде‑
туализации. Действительно, имея со‑ без жесткой привязки». (Практичес‑ на так, что «полка» выйдет из строя на‑
ответствующую платформу, легко соз‑ ки дословная цитата из выступления.) долго, – это интерфейсная плата. Ес‑
дать множество виртуальных машин, Следует также отметить, что помимо ли полка в редких случаях и повреж‑
часть из которых будет не особо важ‑ возможности миграции на лету так‑ дается, как правило, это последствия
на для бизнеса. При этом расходуют‑ же существует возможность создания неудачной транспортировки, монта‑
ся мощности вычислительной систе‑ логических серверов-шаблонов, при‑ жа и т. д. В этих случаях придут на по‑
мы, повышается потребление электро‑ годных к быстрой адаптации под нуж‑ мощь инженеры «HP Россия», которые
энергии, появляются дополнительные ды бизнеса. отремонтируют или заменят интерфей‑
статьи на обслуживание и т. п. В то же Не обошлось и без к урьезов. сную плату.
время появление ЦОД нового поко‑ Во время своего выступления Сергей Далее состоялись обед и выставка
ления, в котором максимально учте‑
ны требования бизнеса, – это реаль‑
ная задача с инновациями от HP. Речь
идет о таких решениях, как:
n модульная инфраструктура Blade;
n логическая коммутация – добавле‑
ние изменений на лету;
n ПО, обеспечивающее постоянный
контроль и оптимизацию.

По словам Сергея, старый подход


к работе серверного оборудования –
«стоит, работает, лучше не трогать» –
постепенно меняется на новый, при ко‑
тором «трогать» все-таки надо, потому
что если не трогать, можно не успеть
за развитием, в том числе за развити‑
ем рынка и требованиями бизнеса.
Раньше каждый сервер сущес‑
твова л индивидуа льно. Начина я
с 2007 года появилась схема с ис‑
пользованием виртуального коннек‑
«Главные герои» конференции: серверная полка HP, укомплектованная различным
та, ставшего посредником между сер‑ оборудованием, в т.ч. HP Proliant BL460c и лежащий сверху HP Proliant BL495c G5

№10, октябрь 2008 15


репортаж
щую демонстрацию возможностей
продукта HP Insight Dynamics – VSE.
Вначале Александр Светлаков рас‑
сказал о возможностях данного про‑
дукта, затронув не только проблемы
вопросы эксптуатации, но и аспекты
приобретения и лицензирования. При‑
ятным известием прозвучал тот факт,
что вместе с серверной полкой пос‑
тавляется практически полный набор
лицензий на программные продукты
HP, включая лицензию и на HP Insight
Dynamics. Далее при помощи модуля
HP Server Migration Pack в режиме ре‑
ального времени была произведена
миграция стандартного сервера HP
Proliant BL460c с дисковым массивом
RAID1 146 Гб на виртуальную платфор‑
му VMware ESX 3.5. Сама процедура
миграции хотя и содержала 8 шагов,
выглядела на редкость простой и по‑
нятной. Общее время миграции соста‑
На переднем плане твердотельный SSD-диск, установленный в сервер HP Proliant
BL495c G5. На втором плане более устаревшая модель сервера вило около 25 минут.
Огорчил тот факт, что данная тех‑
решений (по сути, продолжение начав‑ n SimulCache – позволяющая мини‑ нология может быть реализована толь‑
шегося во время перерыва на кофе ос‑ мизировать задержки при копиро‑ ко в отношении серверов на Windows-
мотра привезенного оборудования). вании кэш-памяти между контрол‑ платформе. Другие операционные сис‑
лерами и снизить нагрузку на ка‑ темы, включая такие мощные корпора‑
Часть третья. налы ввода-вывода. тивные продукты, как RedHat Enterprise
Системы хранения n EcoStor – защита энергонезависи‑ Linux и SUSE Enterprise Linux, не под‑
и миграция данных мой памяти при помощи конденса‑ держиваются.
После обеда состоялось выступле‑ торов большой емкости, которые В конце выступления Александр
ние Дмитрия Матчанина, менедже‑ обеспечивают запись содержимо‑ Светлаков призвал посетить Центр вы‑
ра по коммерческим системам хра‑ го кэша на флеш-память. Ранее соких технологий «HP Россия» на Кос‑
нения данных, представителя отдела для этих целей использовались ак‑ модамианской набережной (Москва),
систем хранения данных «HP Россия». кумуляторы для подпитки кэш-па‑ где можно посмотреть инновационные
Он представлял решения по хранению мяти, что вызывало дополнитель‑ технологии HP в действии.
данных для HP Blade System и преиму‑ ные проблемы. После выступления и демонстра‑
щества использования MSA2000. n Snapshot – возможность созда‑ ции Александр Светлаков и Василий
Дмитрий рассказал о замечатель‑ ния «момента льных снимков» Косюк при поддержке Сергея Члека от‑
ной дисковой системе MSA2000. Дан‑ для целей резервного копирова‑ ветили на вопросы слушателей.
ное устройство предназначено как ния (до 16 снимков), и SnapClone –
для малых и средних компаний, так для получения локальных копий Окончание
и для крупных предприятий. Впечат‑ данных. Для удаленной реплика‑ В конце мероприятия был произве‑
лил тот факт, что дисковые массивы ции данных возможно использо‑ ден розыгрыш призов. В качестве ло‑
MSA2000 могут иметь два контрол‑ вание программного продукта HP терейных билетов выступили анкеты
лера, что позволяет комбинировать StorageWorks Storage Mirroring. участников. После розыгрыша состо‑
SAS- и SATA-диски. Например, мас‑ ялся фуршет.
сив из SAS-дисков можно использо‑ Несмотря на то что доклад Дмит‑ В целом мероприятие прошло весь‑
вать как основную дисковую подсис‑ рия Матчина до предела насыщен тех‑ ма интересно, познавательно и, не‑
тему, а на SATA делать временные ко‑ ническими подробностями, он воспри‑ смотря на плотный график, довольно
пии. Устройства могут быть снабжены нимался довольно легко и позволил оз‑ легко и непринужденно, оставив очень
интерфейсом Fibre Channel или iSCSI накомиться с новыми технологиями HP приятное впечатление.
для интеграции в уже существующую в вопросах хранения данных. Хочется поблагодарить устроите‑
структуру. После доклада Дмитрия Александр лей данной конференции и пожелать
Далее Дмитрий с удовольствием Светлаков и Василий Косюк, техни‑ им всевозможных успехов.
затронул основные инновационные ческий эксперт направления HP Blade
технологии, задействованные при раз‑ System, отдела стандартной архитек‑ Текст и фото:
работке MSA2000. Среди них: туры «HP Россия», провели блестя‑
Алексей Бережной

16
администрирование

Н Корпоративное лицензирование:
и для кого не секрет, что текущий
год внес серьезные коррективы
в законодательную базу, касаю-
щуюся авторских прав. Использование
нелицензионных копий программ явля-
ется нарушением статьи 146 УК РФ об
авторских правах и влечет за собой
если уж делать, то грамотно
применение мер юридической ответс- По данным российских СМИ, 73% программного обеспечения,
твенности. Организации может быть установленного на персональные компьютеры в России
предъявлен иск со стороны правооб-
в 2007 году, было нелицензионным. Небольшие компании
ладателя, а ответственные сотрудни-
ки в организации могут быть привлече- до недавнего времени часто использовали нехитрый прием:
ны к административной или уголовной приклеивали лейбл Microsoft на системные блоки
ответственности. В финансовом экви- корпоративных машин и гордо считали свое ПО
валенте потери могут достигать 2 млн. лицензированным. В настоящий момент номер больше
рублей в качестве штрафов. Теперь не пройдет.
иметь лицензионное ПО не просто мод-
но, а просто, безопасно и правильно. достаточным уровнем компетенции для Softway.ru – компания молодая, но
В условиях тотальной легализации адаптации софта к нуждам конкретно- уверенно заявившая о себе на рынке
и приведения бизнес-процессов к про- го заказчика. корпоративного лицензирования. Име-
зрачности компании пытаются сэконо- Несложно просчитать, что для та- ет статус Microsoft Gold Certified Partner.
мить бюджеты, как правило, некоррек- кой важной, затратной и – что утеши- Данный сертификат удалось получить
тно, покупая и собственными силами тельно – единовременной меры, как благодаря активной и качественной ра-
устанавливая OEM-версии програм- корпоративное лицензирование, нужно боте молодого дивизиона сотрудников.
много обеспечения (самые дешевые), выбирать проверенные солидные ком- Помимо «золотого» партнерства явля-
что противоречит политике Microsoft пании. Как в вопросе приобретения ав- ется официальным сертифицирован-
по использованию и лицензионности. томобиля. Можно купить подержанную ным партнером всех крупнейших про-
Компании, решившие провести ли- модель на авторынке – дешево и сер- изводителей ПО.
цензирование своего ПО наполовину, дито, а можно в автосалоне. В первом Sales-менеджеры и IT-менеджеры
в итоге вынуждены платить огромные случае получаем экономию плюс риски, проходят обучение и получают серти-
штрафы, нести уголовную ответствен- во втором – гарантии, качество, стра- фикаты у крупнейших вендоров, что го-
ность – только в 2007 году 4088 человек ховки, послепродажное техническое ворит о высоком уровне подготовлен-
было привлечено в России за наруше- обслуживание и прочие опции, за ко- ности и профессионализма сотрудни-
ние авторских прав – и покупать лицен- торые и отдаются деньги. ков компании.
зии заново. Как результат – переплачи- В случае с компаниями-поставщи- Этой команде можно доверить ли-
вают почти двойную сумму за софт. ками ПО маркировкой качества могут цензирование «под ключ». Аудит, кон-
Избежать подобных проблем мож- являться так называемые статусы. Ав- сультация, выбор оптимального вари-
но при корректном лицензировании ПО. торизованный, сертифицированный анта корпоративного лицензирования,
Казусы возникают из-за некомпетент- партнер, «серебряный», «золотой», – адаптация ряда программных продук-
ности сотрудников компаний, профес- все эти регалии означают, что все спе- тов под конкретный функционал, техни-
сионально занимающихся лицензиро- циалисты компании проходят обучение ческая поддержка, гарантии вендоров,
ванием. Существует множество вари- у самих вендоров, знают его продукты, и в целом – безопасное, грамотно пост-
антов программ лицензирования кор- владеют навыками грамотного лицен- роенное, полноценное IT-пространство
поративного ПО и оборудования. Каж- зирования и т. д. Лицензирование на- для ведения бизнеса вам обеспечены.
дый объект, в принципе, лицензирует- чинается с аудита имеющегося обору- Softway – right way!
ся по индивидуальной схеме. К при- дования, определения потребностей
меру, можно поставить софт исключи- компании, высококвалифицирован- Дина Моисеева
тельно на имеющийся парк машин и за- ного консалтинга и выбора оптималь- На правах рекламы
платить одну сумму. А можно, с учетом ной программы.
дальнейшего развития компании, ли-
цензироваться по другой программе,
заплатив несколько больше, но в ито-
ге солидно сэкономив на последую-
щих итерациях.
В сфере лицензирования, как и вез-
де, вопрос кадров никто не отменял.
Важно выбрать компанию, поставщи-
ка ПО, сотрудники которой сертифици-
рованы у производителей и обладают

№10, октябрь 2008 17


администрирование

DeleGate – многофункциональный
прокси‑сервер

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

О
бычно прокси-серверы рабо- сылкой пакетов нижних уровней (TCP/ Имеются и недостатки (куда же без
тают на прикладном уровне UDP), не вдаваясь в подробности вы- них). Прежде всего есть некоторые ог-
модели OSI. HTTP, FTP, POP3 шележащих протоколов. Как след- раничения прозрачного проксирования
и прочие протоколы обрабатываются ствие, здесь уже не идёт речь ни о ка- (из-за жёсткой привязки к HTTP-заго-
каждый по своим правилам и зачас- ких дополнительных возможностях, та- ловку «Host:»). Нет поддержки люби-
тую своим инструментом. В качест- ких как кэширование или фильтрация мого Windows-администраторами про-
ве HTTP-прокси широко используют- трафика по признакам, специфичным токола аутентификации NTLM (при же-
ся Squid, OOPS. Они же могут приме- для тех или иных протоколов (скажем, лании это можно сделать через PAM,
няться и для работы с FTP-трафиком. по HTTP-заголовкам или URL). но лучше использовать более «пря-
Работа по другим протоколам реали- Однако есть программа, которая молинейные» решения). Для каждого
зуется всевозможными POP3 Proxy, с успехом справляется с проксиро- соединения создаётся отдельный про-
ImapProxy, SMTP Proxy и т. п. ванием широчайшего набора прото- цесс плюс по дополнительному про-
С одной стороны, администратор колов, сохраняя при этом большинс- цессу на каждый фильтр, что отнюдь
благодаря такой специализации может тво их специфических возможностей. не прибавляет быстродействия.
выбрать именно те решения, которые Это проект DeleGate, о котором и пой- DeleGate хотя и распространяется
ему необходимы. Программа, работа- дёт далее речь. в исходных кодах, не является полно-
ющая с одним конкретным протоко- стью бесплатным. Однако в неболь-
лом (или несколькими похожими по ос- Знакомство с DeleGate ших сетях он может использоваться
новным характеристикам), как прави- DeleGate – это универсальный, мно- без каких-либо отчислений, в том чис-
ло, реализует особенности протоко- гоцелевой прокси-сервер, работа- ле и в коммерческих целях (в архиве
ла наиболее полно, что позволяет за- ющий со стеком TCP/IP. Список об- почтовой рассылки проекта указаны
действовать практически все его воз- служиваемых им протоколов вклю- такие ограничения: установка не более
можности. чает HTTP, FTP, Telnet, NNTP, SMTP, чем на 50 хостах, не более 500 внутрен-
Но, с другой стороны, при необхо- POP, IMAP, LPR, LDAP, ICP, DNS, SSL, них и 50000 внешних пользователей).
димости обеспечить работу с широким Socks, он успешно работает как с IPv4, Для использования в более крупных
набором различных протоколов, число так и с IPv6. Поддерживает кэширова- сетях уже требуется оплата (информа-
используемых пакетов может оказать- ние (для тех протоколов, где это имеет ции о ценах найти не удалось, видимо,
ся достаточно большим, усложняя ад- смысл), фильтрацию трафика (интер- этот вопрос решается индивидуаль-
министрирование. фейс CFI – Common Filtering Interface), но), однако, на мой взгляд, учитывая
Универсальные же решения, к ко- преобразование трафика (скажем, то, что каждое соединение обрабаты-
торым можно отнести так называе- HTTP в HTTPS). Поддерживается PAM- вается в отдельном процессе, исполь-
мые SOCKS-прокси, как правило, ог- аутентификация и собственный прото- зование данного решения в крупных
раничиваются модификацией и пере- кол DGAuth. сетях не всегда целесообразно.

18
администрирование
Вопросы установки Полученный демон готов к работе, однако некоторые
С установкой особых проблем возникать не должно. функции реализованы сторонними библиотеками, сбор-
На странице Download можно найти двоичные сборки ку которых при необходимости нужно будет выполнить от-
для Windows, WindowsCE, MacOS X, FreeBSD, Solaris, Zaurus, дельно (см. файл INSTALL дистрибутива).
Linux (правда, обычный ELF-файл, на rpm- или deb-пакеты
можете не рассчитывать) и даже для OS/2. При желании Коротко о синтаксисе команды
можно выполнить сборку вручную. DeleGate предполагает обычный запуск из командной стро-
Рассмотрим процесс установки из исходных кодов вер- ки, все параметры работы задаются здесь же:
сии 9.8.5 (самой свежей на момент подготовки статьи) в сис-
теме FreeBSD 6.2 (к слову, DeleGate есть и в коллекции пор- $ delegated -P<порт> -F<функция> <опции> +=<конфиг> ↵
<параметры>
тов, но версия несколько отстаёт от последней; к тому же
из‑за проблем со скачиванием архива просто так сбор- Здесь <порт> – номер порта (или номера портов че-
ка не пройдёт – сперва придётся где-то доставать архив рез запятую), который будет обслуживаться данным эк-
вручную): земпляром прокси-сервера. С помощью -F можно дать
delegated распоряжение выполнить ту или иную функцию
$ fetch http://delegate.org/anonftp/DeleGate/ ↵ (например, остановить другой экземпляр delegated, вывес-
delegate9.8.5.tar.gz
$ tar xzvf delegate9.8.5.tar.gz ти на экран версию, «прикинуться» telnet-клиентом, вы-
$ cd delegate9.8.5 полнить разрешение имени хоста и т. п.; полный список
$ make
поддерживаемых функций можно просмотреть командой
В начале сборки у вас будет запрошен адрес электрон- «delegated ‑Fhelp»).
ной почты администратора, который будет в дальнейшем Среди опций наиболее полезными могут оказаться сле-
фигурировать в сообщениях об ошибках. дующие:
Цель install в файле Makefile дистрибутива не предус- n -f – вынуждает delegated не переходить в фоновый ре-
мотрена, поэтому завершить установку вам придётся са- жим и выводить все отладочные сообщения на экран;
мостоятельно, для чего нужно будет перенести появив- n -v – задает уровень отладочных сообщений (может уточ-
шийся двоичный файл src/delegated в каталог постоянного няться следующим символом, см. документацию);
размещения (для FreeBSD наиболее подходящим выгля- n -r – приводит к перезапуску сервера, уже работающе-
дит /usr/local/sbin). го с данными параметрами.

Реклама

№10, октябрь 2008 19


администрирование
ются в виде пар «имя=значение», на-
пример, параметр« SERVER=http» оз-
начает, что DeleGate будет выполнять
роль HTTP-прокси:

$ delegated -P8080 SERVER=http

Данная команда запустит простой


HTTP-прокси на порту 8080. Остано-
вить запущенный прокси-сервер мож-
но следующей командой, передав в ка-
честве аргумента тот же порт, который
использовался в команде запуска:

$ delegated -P8080 -Fkill

Кстати говоря, delegated можно за-


пускать от имени непривилегирован-
ного пользователя за исключением
случая, когда права root являются не-
обходимыми (например, для привяз-
ки к порту с номером ниже 1024). Оз-
К Примеру 4. Чем меньше картинок, тем больше экономия... накомиться со всеми возможностя-
ми DeleGate вы сможете в объёмном,
Если параметров слишком много или просто удобно их 65‑страничном руководстве. Мы же ограничимся рассмот-
где-то «зафиксировать», есть возможность создать конфи- рением нескольких типовых (и не очень) решений.
гурационный файл (или несколько) и передать его имя де-
мону при запуске как <конфиг>. Примеры решений
В конфигурационный файл заносятся все необходи- Для дальнейших примерах будем считать, что myserver.ru –
мые параметры, по одному в каждой строке. Не забывай- это имя вашего сервера (на котором запущен DeleGate).
те сохранять дефис перед теми параметрами, которым он
требуется. Пример 1. Обычный кэширующий HTTP-прокси
Наконец, <параметры>, – это основная часть, влияющая Для начала запустим самый обычный прокси-сервер с кэ-
на характер работы прокси-сервера: по какому протоколу шированием:
он будет работать, включать ли кэширование и т. п. Зада-
$ delegated -P192.168.0.254:8080 SERVER=http CACHE=do

Принимать соединения от клиентов сервер будет


на внутреннем интерфейсе 192.168.0.254, на порту 8080.
Работа будет вестись по протоколу HTTP, кэширование
будет осуществляться (по умолчанию кэш располагает-
ся в <userhomedir>/delegate/cache или в /var/spool/delegate/
cache, изменить это можно параметром CACHEDIR).
Кстати, небольшой фокус: можно не настраивать брау-
зер на использование прокси, а работать через него, исполь-
зуя URL вида «http://192.168.0.254:8080/‑_‑http://nettools.ru/»,
где 192.168.0.254 – хост, на котором запущен DeleGate
(на 8080-м порту), а nettools.ru – запрашиваемый ресурс.
Все ссылки автоматически будут преобразованы к такому
же виду, так что на удобстве дальнейшей работы с сайтом
этот приём никак не отразится. Это может быть удобно в тех
случаях, когда прокси-сервер требуется лишь временами.

Пример 2. DeleGate как веб-сервер


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

# delegated -P80 SERVER=http MOUNT="/* /var/www/*" ↵


К Примеру 6. Хоть каталога freebsd в листинге не видно, RELAY=no RELIABLE="*"
но по прямому URL он доступен

20
администрирование
Теперь DeleGate будет ждать HTTP-запросы на 80-м пор- житься впечатление, что myserver.ru – это и есть сайт «Сис-
ту, сопоставляя все запрошенные файлы (/*) файлам в ка- темного администратора».
талоге /var/www. Параметром RELAY=no мы запрещаем де-
мону выполнять роль прокси-сервера, RELIABLE указывает Пример 4. Фильтрация html-тегов
список адресов, с которых запросы можно принимать (в на- Пытаетесь приучить своих пользователей ходить в Интер-
шем случае – отовсюду). нет только с помощью Opera с отключенными изображени-
Файлы с расширением .cgi будут обрабатываться по про- ями, но они никак не проникаются необходимостью эконо-
токолу CGI (конечно, при условии, что cgi-файл будет ис- мить трафик? Есть жёсткое и надёжное решение:
полняемым; в противном случае клиенту будет возвраще-
на страница ошибки – the service is unavailable temporarily), $ delegated -P8080 SERVER=http HTTPCONF=kill-tag:IMG
все остальные файлы – выдаваться клиенту как есть.
При желании можно явно указать отдельный cgi-ката- Теперь в любом браузере от изображений не останется
лог (это задаётся в параметре монтирования): и следа (если точнее, то в исходном коде теги <img ...> будут
заменены на <killed-img ...> и соответственно отображаться
MOUNT="/cgi/* cgi:/var/www/cgi-bin/*" не будут). Возможности параметра HTTPCONF этим не ог-
раничиваются – он умеет модифицировать заголовки, за-
Есть ещё множество различных опций (см. в документа- давать тайм-ауты, ограничивать методы запросов (напри-
ции описание параметров HTTPCONF, CGIENV и т. п. мер, можно разрешить только GET-запросы) и т. д. Читай-
Хотя DeleGate и не заменит вам полноценный веб-сер- те Reference Manual.
вер, но, как видите, для решения несложных задач выдачи
преимущественно статического веб-контента вполне мож- Пример 5. Прокси-сервер FTP
но обойтись и без Apache. Простейший запуск FTP-прокси выполняется следующей
командой:
Пример 3. «Маскировка» удалённого сервера
DeleGate позволяет выдавать себя за некоторый удалён- $ delegated -P8021 SERVER=ftp
ный сервер (т.е. выполнять роль reverse-proxy). Например,
выполняем следующую команду: Прокси-сервер будет успешно работать как в актив-
ном, так и в пассивном режимах. Причём работа будет воз-
# delegated -P80 SERVER=http://www.samag.ru PERMIT="*" можна даже в том случае, если используемый FTP-кли-
ент не поддерживает работу через прокси: в качестве FTP-
В результате при обращении на 80-й порт нашего сер- сервера ему нужно будет передать адрес и порт, на кото-
вера (запросом http://myserver.ru) пользователю будет вы- рых работает DeleGate, а имя пользователя указать в виде
дана стартовая страница сайта www.samag.ru. user@remote.host. При необходимости можно включить кэ-
Аналогично по запросу http://myserver.ru/forum/index. ширование (параметром CACHE=do).
php/topic,825.0.html откроется http://www.samag.ru/forum/
index.php/topic,825.0.html. Пример 6. Монтирование нескольких
В адресной строке браузера клиента будет везде фигу- FTP‑серверов в один
рировать именно myserver.ru, и у пользователя должно сло- Рассмотрим следующую команду:

Реклама

№10, октябрь 2008 21


администрирование
# delegated -P21 SERVER=ftp://ftp.chg.ru MOUNT="/freebsd/* ↵ $ delegated -P8023 SERVER=telnet://admin@-ssh.192.168.3.220
ftp://ftp.freebsd.org/pub/FreeBSD/*"

Здесь мы на 21-м порту запускаем «маскирующий» FTP- Теперь по команде «telnet myserver 8023» вам предложат
прокси, который будет выдавать себя за ftp.chg.ru. Допол- ввести пароль пользователя admin на машине 192.168.3.220,
нительно монтируется каталог pub сервера ftp.freebsd.org с которой работа будет вестись уже по протоколу SSH
таким образом, что он будет доступен при запросе ре- (на участке между DeleGate и данным хостом). Обратите
сурса ftp://myserver.ru/freebsd. (Правда, должен заметить, внимание, что соединение между клиентом и DeleGate ос-
что при подключении по адресу ftp://myserver.ru данной пап- танется незащищённым! На мой взгляд, более полезной
ки в листинге каталога видно не будет – там будут представ- была бы трансляция «SSH → Telnet» (что позволило бы
лены лишь каталоги «основного» сервера ftp.chg.ru). из дома безопасно работать с оборудованием, понимаю-
щим только Telnet), но такой возможности у DeleGate мне
Пример 7. Трансляция FTP в HTTP обнаружить не удалось.
Раз DeleGate умеет работать и с FTP, и с HTTP, то почему
бы эти способности не совместить? Пример 11. Простейший SOCKS-сервер
Решается задача просто, как и в предыдущих случаях:
$ delegated -P192.168.0.254:8080 SERVER=http ↵
MOUNT="/* ftp://ftp.chg.ru/*" $ delegated -P192.168.0.254:8111 SERVER=socks
В результате клиент сможет работать по протоколу HTTP
с указанным FTP-сервером. Теперь на 8111-м порту у вас будет работать SOCKS-сер-
вер, причём он сможет обрабатывать запросы как socks4,
Пример 8. DeleGate как DNS-сервер так и socks5. Если необходимо конкретизировать использу-
Помимо работы в качестве «оригинального» HTTP- и FTP- емый протокол, в параметре SERVER можно явно указать
серверов, DeleGate способен функционировать и как DNS- тип сервера – socks4 или socks5.
сервер. В качестве источника информации о «зонах» он мо-
жет использовать реальный DNS-сервер либо файл в фор- Пример 12. Прокси-сервер посложнее
мате /etc/hosts. Второй случай будет выглядеть так: На «закуску» рассмотрим пример более функционального
прокси-сервера. Пусть в его задачи входит следующее:
# delegated -P53 SERVER=dns RESOLV=file:/etc/hosts n обеспечить работу по протоколам HTTP, HTTPS и FTP
на одном порту;
Очень удобно, если из локальной сети хочется работать n требовать от пользователей аутентификацию (будем
с некоторыми хостами по имени, но настраивать из-за это- использовать возможности PAM);
го DNS-сервер лень. Помимо файла /etc/hosts, можно ис- n осуществлять кэширование;
пользовать карты NIS, указав «RESOLV=nis». n вести лог-файл;
n блокировать доступ к ресурсам в определённой домен-
Пример 9. Использование основного и резервного ной зоне;
SMTP-серверов n ограничить разрешённый контент лишь несколькими
Предположим, что вы можете использовать для отправки MIME-типами.
почты один из двух SMTP-серверов, но основной работа-
ет не всегда, а постоянно использовать резервный неже- В данном случае удобнее использовать конфигураци-
лательно... DeleGate поможет и в этом случае: онный файл:

# delegated -P25 SERVER=smtp ↵ $ cat httproxy.conf


CLUSTER=smtp://mail.first.ru,mail.second.ru -P8080
SERVER=http
Благодаря объявлению кластера DeleGate, получив за- CACHE=do
RELIABLE=192.168.0.0/24
прос на 25-й порт, будет последовательно пробовать пере- AUTHORIZER=-pam/passwd
численные в данном параметре серверы, пока не найдёт PROTOLOG="/usr/home/serg/delegate/var/httproxy.log:%C"
OWNER=serg
работоспособный. Например, если с mail.first.ru что-то слу- FTOCL=/usr/home/serg/delegate/etc/onlymime.cfi
чится, запросы будут пересылаться на mail.second.ru. В на- REJECT="http:*.mobi:*"
стройках клиента нужно будет указать в качестве сервера $ delegated +=httproxy.conf
исходящих сообщений хост, на котором запущен DeleGate.
DeleGate достаточно разумен, чтобы по типу запроса
Пример 10. Трансляция Telnet в SSH разобраться, к какому протоколу он относится, так что од-
Хотите работать с удалёнными SSH-серверами, исполь- ного порта вполне достаточно.
зуя какой-нибудь Telnet-клиент? Не знаю, зачем такое мо- Небольшое замечание по авторизации: поскольку мы
жет понадобиться (экономить таким образом вычисли- используем PAM (авторизация будет выполняться по сис-
тельные ресурсы настольного компьютера сейчас смеш- темной базе учётных записей), delegated должен иметь не-
но, а ходить с сотового телефона по Telnet даже до прокси- обходимые привилегии. Этого можно достичь либо запус-
сервера слишком небезопасно), но тем не менее DeleGate ком от имени root (дополнительно нужно будет указать па-
это позволяет: раметр «OWNER=root», чтобы delegated не переключал-

22
администрирование
ся на непривилегированного пользо-
вателя), либо собрав и установив до- «За кадром» ляются к разным вышестоящим прокси-
полнение dgauth: В данной статье остались без детального серверам), фильтры, туннели, компрес-
рассмотрения такие вопросы, как аутен- сия, трансляция TCP↔UDP, IPv4↔IPv6.
# cd delegate9.8.5/subin тификация с помощью DeleGate, каскад- Всё это DeleGate умеет, информацию мож-
# make install
ное подключение нескольких прокси-сер- но найти в документации, идущей в соста-
В результате в каталоге $DGROOT/ веров, взаимодействие с другими прокси ве дистрибутива, а также доступной на сай-
subin появятся несколько файлов. (DeleGate можно использовать для марш- те проекта.
Нужно проверить, что $DGROOT сов- рутизации, когда разные запросы отправ-
падает с тем, который использует
delegated. Это видно при запуске: sed). Имеются и другие возможности, в которые мы, пожа-
луй, вдаваться не будем. Для блокирования доступа к ре-
$ delegated +=httproxy.conf сурсам зоны mobi (нет, она ничем не провинилась... прос-
<DeleGate/9.8.5> [90863] -P8080 READY то нужно же на чём-то пример показать?) был использован
Config: FreeBSD/6.2-RELEASE-p4; FileSize-Bits=64/64,64/32,32; параметр REJECT. Формат его следующий:
socket=65536/32768; sockpair=8192/8192,1016++U; thread=PThread/
pthread; stty=tcsetattr; umem=127/187/0M
DGROOT=/home/serg/delegate REJECT=<список протоколов>:<запрашиваемые хосты>: ↵
ADMIN=support@myserver.ru <хосты-клиенты>

Как видите, параметр достаточно гибок, чтобы бло-


Изменить $DGROOT можно, добавив в конфигураци- кировать доступ по тому или иному протоколу к различ-
онный файл соответствующий параметр: «DGROOT=/var/ ным ресурсам разным клиентам. От «запретить лично Ва-
delegate». се заходить на этот конкретный сайт по FTP» до «запре-
Теперь небольшое отступление о лог-файле. Как не- тить всем всё».
трудно догадаться, настраивается его ведение параметром
PROTOLOG. В данном случае мы указываем имя лог-фай- Итоги
ла и его формат (%C соответствует «стандартному» фор- Как видите, DeleGate действительно способен на многое.
мату CERN-HTTPD; о других возможных форматах можно Не скажу, что он впечатляюще быстр или абсолютно не-
узнать из документации). При запуске с ключом ‑f все со- требователен к ресурсам. Не скажу, что он на все 100%
общения будут выводиться на экран вместо записи в файл. заменит вам Squid и POP3Proxy. Не скажу, что, используя
Очевидно, что процесс delegated должен иметь достаточ- его, вы никогда не столкнётесь с ошибками. Но то, что это
но прав для создания указанного в параметре PROTOLOG удобное, «мобильное», функциональное средство для быс-
файла. В частности, для этого я использую параметр трого решения большинства типовых задач, факт, думаю,
«OWNER=serg», чтобы delegated не «опускался» при стар- неоспоримый.
те до уровня nobody.
Для решения задачи ограничения допустимого контен- 1. Официальный сайт проекта – http://www.delegate.org.
та удобно использовать CFI-фильтр, чем мы и воспользова- 2. Пример использования DeleGate в качестве POP3-прок-
лись (параметр FTOCL можно расшифровать как «Filter TO си с фильтрацией спама – http://www.deepsea.force9.co.uk/
CLient», т.е. фильтровать то, что идёт к клиенту; аналогич- pop3proxy.html.
но есть параметры FFROMCL, FTOSV и FFROMSV, а также 3. Пример запуска CMS Skeletonz через DeleGate – http://
независящие от направления FCL и FSV). Сам фильтр вы- orangoo.com/skeletonz/User_guide/Running_Skeletonz_behind_
глядит следующим образом: Delegate.

$ cat /usr/home/serg/delegate/etc/onlymime.cfi
#!cfi
Content-Type: text/plain
Content-Type: text/html
Content-Type: image/gif
Content-Type: image/png
Content-Type: image/jpeg

То есть мы перечисляем допустимые MIME-типы. Ответ,


не содержащий в заголовке один из указанных типов, будет
отклонён. Аналогично можно выполнять фильтрацию по не-
которым другим полям заголовка (пока этот список ограни-
чен, см. документацию), по телу сообщения. Поддержива-
ются некоторые «действия» (скажем, модифицировать ту
или иную часть сообщения). Можно подключать внешние
фильтрующие программы (которые принимают некоторый
текст на входе и возвращают модифицированный; для
простейших преобразований вполне можно использовать К Примеру 7. Работа с FTP-сервером по протоколу HTTP

№10, октябрь 2008 23


администрирование

Строим систему для виртуализации


на базе серверной платформы Intel
при помощи Linux CentOS 5.2
и VMware Server 2

Алексей Бережной

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

24
администрирование

Р
ано или поздно любой системный администратор
сталкивается с необходимостью внедрения новых
сервисов для информационной структуры компании.
В то же время далеко не всякое предприятие готово сра-
зу выделить кругленькую сумму на покупку дополнитель-
ных серверов и другого аппаратного обеспечения. И здесь
на помощь приходят виртуальные машины.
Возникла задача – с минимальными затратами орга-
низовать возможность тестирования с целью последую-
щего внедрения ряда новых сервисов, включая электрон-
ную систему документооборота, второй контроллер доме-
на Active Directory, отдельный сервер для сбора статисти-
ки с АТС. При этом документооборот должен располагаться
на FreeBSD, для контроллера домена необходима операци-
онная система семейства Windows 2003, а для программы
регистрации телефонных звонков нужен Linux. Рисунок 1. Первый экран загрузки с инсталляционного диска
В данном случае, если мы хотим обойтись миниму-
мом затрат и разместить все эти задачи на одном серве- Для обновлений можно использовать менеджер RPM-
ре, не обойтись без системы виртуализации. совместимых пакетов YUM (для x86-версии работает apt-
репозиторий). Порадовал и тот факт, что CentOS имеет
Описание аппаратного быстрорастущее сообщество, тщательно отработанный
и программного обеспечения процесс быстрой сборки, тестирования и выпуска исправ-
Для решения данной задачи был куплен сервер на базе лений (errata).
платформы Intel SR1500ALSASR. Соответственно CentOS 5.2 базируется на исходных тек-
Характеристики сервера: стах Red Hat Enterprise Linux 5.2 и содержит необходимые
n Материнская плата: S5000PAL. пакеты для решения большинства задач на базе Red Hat.
n Объем оперативной памяти: 4 Гб.
n Процессоры: 2 четырехядерных Xeon. Подготовительный этап
n Дисковая подсистема: 2 HDD SATA2 500 Гб, объединен- На этой стадии производится поиск программного обес-
ных в RAID1. печения (драйверов для операционной системы) и подго-
товка оборудования, чтобы следующим шагом установить
В качестве операционной системы был выбран дистри- операционную систему.
бутив Linux CentOS 5.2 (как раз вышла свежая версия). Не-
много о причинах выбора именно этого дистрибутива. Поиск соответствующего драйвера
Операционная система на базе ядра Linux была выбра- для RAID‑контроллера
на за отсутствие необходимости платить за ее использова- Серверы, построенные на базе материнской платы S5000PAL
ние и широкий спектр программного обеспечения, в боль- имеют встроенный RAID-контроллер Intel Embedded Server
шинстве своем бесплатного, распространяемого для этой Raid II, разработанный компанией LSI («родной» аналог
платформы. LSI M1064e).
Почему из всего многообразия дистрибутивов Linux бы- К сожалению, не секрет, что большинство производи-
ло выбрано семейство Red Hat? телей не спешат с производством соответствующих драй-
Во-первых, поддержка со стороны производителя аппа- веров под новые версии операционных систем. Компания
ратного обеспечения. Гораздо проще найти и установить не- Intel не является исключением. Поставляемый с серве-
обходимые драйверы для известных дистрибутивов опера- ром диск содержал только старые версии драйверов. Инс-
ционных систем, таких как Linux Red Hat, Linux SUSE. трумент Intel® Deployment Assistant оказался бесполезен
Во-вторых, очень большая часть программного обеспе- по этой же причине.
чения для Linux так или иначе привязана к модели Red Hat. Драйвер, доступный на официальном сайте компании,
Это и распространение ПО в rpm‑пакетах, и рекомендации предназначался только для операционных систем семейства
производителей, и, наконец, техническая поддержка. Red Hat версии 4.x и 5.1 (ESRT2_Linux_v.09.21.0914.2007.zip).
Linux CentOS представляет собой свободно распростра- Соответственно, было необходимо либо найти соответс-
няемую операционную систему корпоративного уровня, соб- твующий драйвер, либо устанавливать более устаревшую
ранную из исходных текстов Red Hat Enterprise Linux. версию CentOS 5.1.
Можно смело утверждать, что CentOS предоставля- Путем поиска в Интернете удалось выяснить название
ет альтернативу для тех, кому не нужна техническая под- модуля, используемого операционной системой для работы:
держка от Red Hat. megasr.ko. Далее при поиске по данному словосочетанию
Разработчики CentOS не накладывают патчи на SRPM- Google выдал ссылку на сайт GENTOO‑WIKI, посвященную
пакеты Red Hat (изменения логотипов не в счет), поэтому работе с LSI Logic MegaRAID SAS 8208ELP в Gentoo Linux
данная система является практически полностью совмес- (http://gentoo-wiki.com/HARDWARE_LSI_8208ELP_RAID5_
тимой с RHEL и содержит только свободные пакеты. Controller).

№10, октябрь 2008 25


администрирование
Чтобы получить возможность указать необходимый
драйвер при инсталляции, необходимо в строке парамет-
ров набрать: linux nostorage.
Этот параметр позволит в нужный момент дать ука-
зания системе использовать дополнительные драйвера
для RAID-контроллера.
Следующее окно CD Found предложит по нажатию OK
протестировать инсталляционный носитель или отказать-
ся от тестирования, выбрав Skip.
Далее мы попадаем непосредственно в окно Devices,
предназначенное для выбора подключаемых устройств.
Если к серверу не подключали ничего кроме флеш-на-
Рисунок 2. Выбор драйвера копителя, то в появившемся списке найденных устройств
(The following devices have been found on your system) будут
Перейдя на сайт компании LSI и воспользовавшись присутствовать следующие пункты:
поиском по значению 8208ELP, был найден соответству- n USB Mass Storage driver for Linux (usb-storage).
ющий драйвер, поддерживающий Intel Embedded Server n Intel EtherExpress 1000 gigabit (e1000).
Raid II. В моем случае это был фал 1.02_RedHat5.zip (ссыл-
ка для поиска: http://www.lsi.com/storage_home/products_ И два пункта меню на выбор: Done (продолжить установ-
home/internal_raid/megaraid_sas/megaraid_sas_8208elp/ ку) и Add Device. Необходимо выбрать Add Device.
index.html). В следующем окне Select Device Driver to Load следуем
подсказке Select the driver below which you wish to load. If it
Подготовка RAID-контроллера does not appear and you have a driver disk, press F2 (пожалуй-
На имеющемся сервере для обеспечения надежности не- ста, выберите драйвер, который вы хотите загрузить. Если
обходимо создать RAID1 средствами BIOS RAID-контролле- нужного пункта не обнаружено и вы имеете диск с драйве-
ра. Для этого перезагрузим сервер, дождемся приглашения ром, нажмите F2) и нажимаем клавишу <F2>.
и по нажатию клавиш <Ctrl> + <E> зайдем в BIOS. Так как Следом мы попадаем в окно Driver Disk Source, где нам
у нас новый сервер и он целиком предназначен для виртуа- предложат выбрать устройство для загрузки (You have
лизации, я на всякий случай предварительно выбрал пункт multiple devices a could serve as sources for a driver disk/ Which
«Configure → Clear» (очистка конфигурации RAID и пересо- would you like to use):
здание разделов), после чего создал RAID-массив средст- n hdb.
вами BIOS RAID-контроллера из меню «Configure → Easy n sda.
Configuration».
Внимание! После создания логического тома RAID1 Выбираем sda.
обязательно из главного меню RAID-контроллера выбери- В следующем окне с аналогичным названием Driver Disk
те пункт INITIALIZE и проведите инициализацию вновь со- Source предлагают выбрать раздел на устройстве, содер-
зданного раздела. Без этого Linux не сможет корректно ра- жащем образ диска с драйвером, который мы хотим ус-
ботать с логическим томом RAID-массива. тановить (There are multiple partitions on this device which
cold contain the driver disk image which would you like to use)
Установка Linux CentOS 5.2 с единственным пунктом меню:
В отличие от современных Windows-дистрибутивов, требу- n /dev/sda1.
ющих при инсталляции обязательного наличия floppy-дис-
ковода, в Linux CentOS гораздо демократичней. Достаточно И возможность принять, выбрав OK, или вернуться
распаковать вновь созданный архив и переписать требуе- в предыдущий экран, выбрав Back.
мый файл на любой мобильный носитель. В нашем случае Наконец мы добрались до окна Select driver disk image.
это файл megasr-11.02.0626.2008‑1-rhel50-u2-all.img. В данном окне мы можем выбрать требуемый файл для за-
Подключаем флеш-накопитель к разъему USB. Теперь грузки. Также доступны подкаталоги, размещенные
нужно установить правильный порядок загрузки. Дело в том, на флешке, поэтому разыскать требуемый файл не состав-
что при подключении новых устройств изменяется порядок ляет труда. Выбираем наш файл.
загрузки, в результате чего первым загрузочным устройс- После чего попадаем в предыдущее окно Select
твом оказывается съемный носитель (в моем случае это Device Driver to Load, где необходимо выбрать соответс-
была флешка, распознанная как JetFlashTS4GFKV30). По- твующий драйвер. В нашем случае это LSI megasr Driver
этому в начале загрузки по клавише <F2> заходим в BIOS ver. 11.02.0626.2008 megasr (см. рис. 2).
и выставляем первым устройство чтения DVD/CD-дис- Выбираем OK и во вновь появившемся окне Devices на-
ков. После этого загружаемся с инсталляционного DVD блюдаем новый пункт LSI megasr Driver ver. 11.02.0626.2008
CentOS 5.2 x86_64. megasr в списке устройств. (Если пункт не появляется
На первичном этапе загрузки перед нами появится при- в списке, значит драйвер не подходит для данной вер-
глашение ввести дополнительные параметры или продол- сии операционной системы.) Нажимаем Done и переходим
жить вариант загрузки по умолчанию (см. рис. 1). к следующему пункту.

26
администрирование

Рисунок 3. Выбор дискового массива с удалением всех данных Рисунок 4. Выбор типа установки программных продуктов

После этого запустится программа Наконец мы попадаем в окно уста- n Create custom layout – создать раз-
anaconda, предназначенная для авто- новки RAID-массива (см. рис. 3). Дан- делы по выбору пользователя.
определения и тестирования парамет- ный этап заслуживает более подроб-
ров системы. ного рассмотрения. В нашем случае возможны два
С определением устройств проб- В представленном окне система подхода.
лем не должно возникнуть, и через не- предложит выбрать способ создания В первом варианте можно создать
сколько секунд вы попадете в полно- раздела для инсталляции: один большой раздел, на котором раз-
ценный GUI-интерфейс, в котором бу- n Remove all partitions on delected местить и систему, и виртуальные ма-
дет продолжена инсталляция операци- drivers and create default layout – уда- шины. Преимуществом такого подхо-
онной системы. лить все разделы на выбранном но- да является простота настройки и воз-
Далее установка CentOS идет сителе и создать разделы по умол- можности максимально использовать
обычным путем. Предложат выбрать чанию. свободное дисковое пространство
язык, раскладку клавиатуры, (реко- n Remove linux partitions on selected под виртуальные машины.
мендую выбрать English во избежа- drivers and create default layout – уда- Во втором варианте можно соз-
ние проблем, связанных с русской рас- лить все Linux разделы на выбран- дать отдельный раздел для операци-
кладкой), временную зону. На этом эта- ном носителе и создать разделы онной системы и отдельный раздел
пе желательно вытащить нашу флеш- по умолчанию. для виртуальных машин. Смысл за-
ку, так как драйвер для RAID-конт- n Use free space on selected drivers and ключается в том, что при переполне-
роллера уже загружен, а лишнее ус- create default layout – использовать нии одного из разделов (по опыту ра-
тройство не будет вводить в заблуж- свободное место на выбранном но- боты чаще всего это раздел с данны-
дение при выборе раздела для инс- сителе и создать разделы по умол- ми) другой раздел остается в рабочем
талляции. чанию. состоянии.

Рисунок 5. Выбор средств разработки для поддержки Рисунок 6. Выбор необходимых и удаление неиспользуемых
устанавливаемых пакетов серверных служб

№10, октябрь 2008 27


администрирование
Установка xrdp
Для операционных систем семейства UNIX выпущено до-
статочно средств и протоколов для удаленного админист-
рирования в режиме графического интерфейса, от «род-
ного» X-Window до межплатформенного VNC. В то же вре-
мя внедрение каждого нового сервиса предполагает уста-
новку как серверной, так и клиентской части, открытие со-
ответствующих портов на файерволе в случае удаленно-
го управления и т. д.
Гораздо удобнее использовать уже существующие кли-
Рисунок 7. Окно доступа к xrdp через RDP-клиент ентские приложения и правила безопасности, настроен-
ные в соответствии со сформировавшимися требования-
По причине того, что сервер скорее экспериментальный, ми бизнеса. Поэтому имеет смысл использовать RDP-кли-
имеет смысл остановиться на первом варианте. Так как ент, уже встроенный в операционные системы семейства
единственный логический том RAID-массива не содер- Windows, а также бесплатный клиент rdesktop для UNIX-
жит никаких данных, мы можем выбрать любой из первых платформ.
трех пунктов. XRDP – это программа, позволяющая принимать за-
Поэтому выбираем первый пункт Remove all partitions просы от RDP-клиентов и после проверки авторизации пе-
on delected drivers and create default layout и отвечаем ут- ренаправлять запросы на VNC-сервер по существующе-
вердительно на вопрос о возможном удалении данных. му протоколу.
(Warnung You have chosen to remove all partitions (All Data) Также существует возможность работы через X11rdp. Так
on the following drivers?) как в предыдущей части мы уже без труда установили па-
После этого установка происходит в штатном режи- кеты для VNC-сервера, мы будем использовать наш XRDP-
ме до появления окна выбора установки программных сервер для работы через VNC.
продуктов: The default installation includes a set of software Скачиваем rpm-пакет http://rpmforge.sw.be/redhat/el5/en/
applicable for general Internet usage. What additional tasks x86_64/rpmforge/RPMS/xrdp-0.4.0-1.el5.rf.x86_64.rpm и со-
would you like? храняем его в каталоге /opt/distrib.
Поскольку сервер не планируется использовать для Устанавливаем сервер xrdp:
работы пользовательских приложений (скажем так,
OpenOffice и Gimp на нем как-то ни к чему) и в то же вре- # rpm -ivh /opt/distrib/xrdp-0.4.0-1.el5.rf.x86_64.rpm
мя мы не собираемся отказываться от графических warning: xrdp-0.4.0-1.el5.rf.x86_64.rpm: Header V3 DSA signature:
средств управления, то выбираем тип установки Server NOKEY, key ID 6b8d79e6
Preparing... ############################## [100%]
GUI (см. рис. 4). 1:xrdp ############################## [100%]
Так как сервер не испытывает недостатка ресурсов дис-
кового пространства, имеет смысл сразу установить необ- Создаем симлинки для устранения «разночтений»
ходимые средства администрирования, а также средства в местах размещения файлов, вызванных 64-битной сис-
разработки для поддержки компиляции и установки. темой:
В то же время имеет смысл удалить из списка наиме-
нования пакетов, которые, скорее всего, никогда не будут # ln -s /usr/lib64/xrdp/ /usr/local
# ln -s /usr/lib64/xrdp/libscp.so /usr/lib64/
установлены на этом сервере, например BIND. # cd /usr/share/doc/xrdp-0.4.0/
Что касается пакета Samba, его лучше оставить # /usr/share/doc/xrdp-0.4.0/xrdp_control.sh start
для улучшения возможности интеграции сервера в офис- Starting: xrdp and sesman . . .
ной сети (см. рис. 5, 6).
Далее установка идет своим чередом. После пере- Можно открыть стандартный RDP-клиент (Remote
загрузки и настройки операционной системы отключаем Desktop Connetion – удаленный доступ к рабочему столу)
встроенный файервол и расширенные средства безопас- (см. рис. 7).
ности SE Linux. Добавляем ссылку на стартовый скрипт в соответству-
Сервер предназначен для тестирования продуктов, по- ющий загрузочный каталог (в данном случае rc5.d), теперь
этому ничего не должно нарушать чистоту эксперимен- при старте и остановке системы наш RDP будет соответ-
та. В дальнейшем данные сервисы можно легко включить ственно стартовать и останавливаться.
средствами GUI.
Внимание! Так как в дальнейшем мы будем устанав- # ln –s /usr/share/doc/xrdp-0.4.0/xrdp_control.sh ↵
/etc/rc5.d/S94xrdp
ливать программу xrdp, которой для работы необходим # ln –s /usr/share/doc/xrdp-0.4.0/xrdp_control.sh ↵
VNC-сервер, имеет смысл еще на этапе установки доба- /etc/rc5.d/K11xrdp
вить в систему требуемые пакеты для поддержки доступа
к серверу по VNC-протоколу.
После следующей перезагрузки в строке приглаше- Установка VMware Server 2
ния вводим логин и пароль root и приступаем к следую- Самый важный аспект нашей работы. Скачиваем с сай-
щему этапу. та компании VMware (http://www.vmware.com/beta/server/

28
администрирование
registration.html) файл Vmware-server-2.0.0-116503.x86_ только сеть Bridged. Что касается путей размещения, я ос-
64.rpm, проходим процедуру регистрации. тавил все по умолчанию. Пользователем, из-под которого
После этого копируем файл в /opt/distrib и устанавлива- осуществляется запуск, назначен root, хотя с точки зрения
ем сам пакет VMware Server2: безопасности это не совсем правильно. Когда фаза тести-
рования подойдет к концу, имеет смысл назначить друго-
# rpm -ivh VMware-server-2.0.0-116503.x86_64.rpm го пользователя. Разумеется, он должен будет иметь соот-
Подготовка... ####################################### [100%] ветствующие права на каталоги, указанные ниже для бес-
1:VMware-server ############################# [100%] препятственной работы.
Итак, собственно, продолжение работы скрипта vmware-
Если инсталляция прошла нормально, получаем сле- config.pl с моими ответами на него:
дующее сообщение:
The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmmon module loads
The installation of VMware Server 2.0.0 for Linux completed perfectly into the running kernel.
successfully. You can decide to remove this software from your
system at any time by invoking the following command: The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmci module loads
"rpm -e VMware-server". perfectly into the running kernel.

Before running VMware Server for the first time, you need to The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vsock module loads
configure it for your running kernel by invoking the perfectly into the running kernel.
following command: "/usr/bin/vmware-config.pl".
Do you want networking for your virtual machines?
Enjoy, (yes/no/help) [yes] yes

--the VMware team Configuring a bridged network for vmnet0.

Please specify a name for this network.


[Bridged]
(Инсталляция VMware Server 2.0.0 for Linux успешно завер-
шена. Вы можете принять решение удалить этот програм- Your computer has multiple ethernet network interfaces available:
eth0, eth1.
мный продукт из вашей системы в любое время, восполь- Which one do you want to bridge to vmnet0? [eth0]
зовавшись командой: «rpm -e Vmware-server».
The following bridged networks have been defined:
До первого запуска VMware Server вы должны скофи-
гурировать его для вашего рабочего ядря следующей ко- . vmnet0 is bridged to eth0
мандой: «/usr/bin/vmware-config.pl».)
Do you wish to configure another bridged network? (yes/no) [no] no
Следуя инструкциям, запускаем соответствующий
скрипт: Do you want to be able to use NAT networking in your virtual
machines? (yes/no) [yes] no
[root@gw distrib]#/usr/bin/vmware-config.pl
Do you want to be able to use host-only networking in your
virtual machines? [no] no
Вначале программа проверяет наличие запущенных The bld-2.6.18-8.el5-x86_64smp-RHEL5 - vmnet module loads
сервисов. Так как часть сервисов у нас не запущена, на эк- perfectly into the running kernel.
ране появится сообщение:
Please specify a port for remote connections to use [902]
Stopping VMware autostart virtual machines:
Virtual machines [ Failed ] Please specify a port for standard http connections to use [8222]
Stopping VMware management services:
VMware Virtual Infrastructure Web Access Please specify a port for secure http (https) connections
VMware Server Host Agent [ Failed ] to use [8333]
Stopping VMware services:
VMware Authentication Daemon [ OK ] The current administrative user for VMware Server is ''. Would
Virtual machine monitor [ OK ] you like to specify a different administrator? [no] yes

Please specify the user whom you wish to be the VMware Server
Далее вам предложат предложить ознакомиться с ли- administrator root
цензионным соглашением и принять его:
Using root as the VMware Server administrator.
You must read and accept the End User License Agreement to con-
tinue. You have a pre-existing vmInventory.xml. The new version will be
Press enter to display it. created as /etc/vmware/hostd/NEW_vmInventory.xml. Please check
the new file for any new values that you may need to migrate to
Do you accept? (yes/no) yes your current vmInventory.xml.

Thank you. In which directory do you want to keep your virtual machine files?
[/var/lib/vmware/Virtual Machines]

Потом последуют вопросы касательно конфигура- You have a pre-existing datastores.xml. The new version will be
created as /etc/vmware/hostd/NEW_datastores.xml. Please check
ции витруальной сети и путей размещения файлов и ка-
the new file for any new values that you may need to migrate to
талогов. your current datastores.xml.
Сервер не очень мощный, список виртуальных машин,
Do you want to enter a serial number now? (yes/no/help) [no] yes
которые будут на нем запущены, весьма ограничен, поэтому
я отказался от поддержки NAT и внутренней сети, оставив Please enter your 20-character serial number.

№10, октябрь 2008 29


администрирование
Type XXXXX-XXXXX-XXXXX-XXXXX or 'Enter' to cancel: VMware Server Authentication Daemon (background) [ OK ]
(здесь вводится серийный номер, полученный после регистрации Shared Memory Available [ OK ]
на сайте VMware) Starting VMware management services:
VMware Server Host Agent (background) [ OK ]
Creating a new VMware VIX API installer database using the tar4 VMware Virtual Infrastructure Web Access
format. Starting VMware autostart virtual machines:
Virtual machines [ OK ]
Installing VMware VIX API.
The configuration of VMware Server 2.0.0 build-116503 for Linux
In which directory do you want to install the VMware VIX API for this running kernel completed successfully.
binary files? [/usr/bin]
[root@gw bin]#
In which directory do you want to install the VMware VIX API
library files? [/usr/lib/vmware-vix/lib]
Собственно, и все. Можно заходить на сервер по RDP-
The path "/usr/lib/vmware-vix/lib" does not exist currently. протоколу и подключаться через интернет-браузер (Mozilla
This program is going to create it, including needed parent
directories. Is this what you want? [yes] Firefox 3) к нашему виртуальному серверу (см. рис. 8).

In which directory do you want to install the VMware VIX API


document pages? [/usr/share/doc/vmware-vix]
Заключение
Как видно из приведенного описания, современные техно-
The path "/usr/share/doc/vmware-vix" does not exist currently. логии виртуализации доступны даже в случае использова-
This program is going to create it, including needed parent
directories. Is this what you want? [yes]
ния далеко не самого дорогого серверного оборудования.
Достаточно не слишком мощного сервера, чтобы создать
The installation of VMware VIX API 1.6.0 build-116503 for Linux рабочую платформу для виртуализации двух-трех серве-
completed successfully. You can decide to remove this software
from your system at any time by invoking the following command: ров, для которых в другом случае пришлось бы покупать
"/usr/bin/vmware-uninstall-vix.pl". отдельное оборудование. При использовании бесплатных
Enjoy,
операционных систем, таких как Linux CentOS, появляет-
ся возможность для построения надежной и экономичной
--the VMware team виртуальной платформы.
Starting VMware services: Современные решения на базе Linux и VMware позво-
Virtual machine monitor [ OK ] ляют даже не очень искушенному в вопросах администри-
Virtual machine communication interface [ OK ]
VM communication interface socket family: [ OK ]
рования операционных систем семейства UNIX построить
Virtual ethernet [ OK ] и использовать простую, надежную и управляемую систе-
Bridged networking on /dev/vmnet0 [ OK ] му виртуализации на базе бесплатных продуктов.

Рисунок 8. RDP-сессия с запущенной Web-консолью управления VMware Server 2

30
администрирование

Могут ли информационные
киоски работать под Linux

Антон Борисов
Как вы можете заметить, информационные киоски окружают нас повсюду: начиная
от железнодорожных вокзалов и заканчивая кинотеатрами. Зачастую мы даже
не подозреваем, на какой именно операционной системе они работают. Честно говоря,
догадаться можно, было бы желание и наметанный глаз. И узнать знакомые очертания
виджетов GDI и Internet Explorer от одной небольшой компании на северо-востоке США
не составит большого труда. Правда ли, что информационные киоски несовместимы с Linux?
Предлагаю проверить.

П
ервый вопрос, который задаст сорный экран, источник бесперебойно- Концепция и первая реализация
неискушенный читатель: «А что го питания, по необходимости – мини- сенсорных экранов была разработа-
такое информационный киоск?» атюрный принтер и купюроприемник. на еще в начале 70-х годов прошло-
И будет совершенно прав в своем по- Также в состав комплектации может го века. К сегодняшнему дню сущест-
рыве докопаться до сути дела. Ин- входить GSM-модем, но это в случаях, вует несколько видов сенсорных экра-
формационный киоск, если верить когда невозможно дотянуть ethernet- нов: матричные, резистивные, ёмкост-
wikipedia, это – «автоматизированный кабель или же требуется организовать ные, проекционно-ёмкостные, сенсор-
программно-аппаратный комплекс, независимый интернет-канал. ные экраны на поверхностно-акусти-
предназначенный для предоставле- Со всей указанной периферией мы ческих волнах, инфракрасные и опти-
ния справочной информации. Их соби- сталкиваемся и в обычной жизни, до- ческие сенсорные экраны. Для киосков
рают на базе персонального компью- ма и на работе, кроме, пожалуй, купю- применяются только некоторые из пе-
тера, оснащенного сенсорным мони- роприемников и сенсорных экранов. речисленных: ёмкостные и проекцион-
тором и установленного в эргономич- Если первые активно используются но-емкостные, а также экраны на ос-
ный вандалостойкий корпус. В отличие в платежных системах и банкоматах, нове поверхностно-акустических волн.
от обычного справочного киоска элек- и на которых мы не будем пока акцен- Давайте рассмотрим, в чем их принци-
тронный информационный киоск рабо- тировать внимание, то на сенсорные эк- пиальное различие.
тает автономно». раны следует обратить особое внима-
Достаточно сухо и не совсем ин- ние. Почему? Да потому, что они будут Ёмкостный
формативно. На самом деле киоск – выполнять роль как клавиатуры, так и сенсорный экран
это обычная ПЭВМ, которую вставили мышки, т.е. это единственный источник В ёмкостных экранах применяется
в металлическую тумбу, добавили сен- ввода информации для киоска. принцип: предмет с большей ёмкос-

№10, октябрь 2008 31


администрирование
a кают жидкости и отлично терпят непро- соответствующими датчиками и посы-
водящие загрязнения. Прозрачность лаются на ПЭП. ПЭП в свою очередь
на уровне 90%. Впрочем, проводящее принимают отраженные волны и пре-
$ $
покрытие всё ещё уязвимо. Поэтому образовывают их в электрический
$ $ ёмкостные экраны широко применяют- сигнал, который затем анализирует-
ся в автоматах, установленных в охра- ся с помощью контроллера. При при-
няемом помещении. Не реагируют на косновении к экрану происходит из-
руку в перчатке (см. рис. 1). менение в распространяющихся вол-
нах (характер прохождения ультразву-
Проекционно-ёмкостный ка), что и фиксируется принимающи-
сенсорный экран ми датчиками.
На внутренней стороне экрана нанесе- Реагирует на касание предметом,
на сетка электродов. Электрод вмес- способным поглотить волну (палец,
те с телом человека образует конден- рука в перчатке, пористая резина).
сатор; электроника измеряет ёмкость Реагирует на силу нажатия. Высокая
этого конденсатора (подаёт импульс надёжность. Не реагирует на предмет,
Рисунок 1. Схема работы ёмкостного
сенсорного экрана тока и измеряет напряжение). не поглощающий ультразвук (перо,
Прозрачность таких экранов до карточка). Любой посторонний пред-
тью лучше проводит переменный ток. 90%, температурный диапазон чрез- мет (например, прилепленная жвач-
Из курса физики вы помните, что шан- вычайно широк. Очень долговечны (уз- ка) полностью блокирует работу экра-
сов поразиться электрическим током кое место – сложная электроника, об- на. Не удаётся надёжно загерметизи-
с сухими ладонями меньше, нежели их рабатывающая нажатия). На таких эк- ровать края экрана (см. рис. 3).
предварительно намочить (автор наде- ранах может применяться стекло тол- Предельно высокая прозрачность
ется, что читатели не будут проверять щиной вплоть до 18 мм, что позволяет (не нужны никакие электроды; мало
данное утверждение на практике). Хо- позиционировать их как весьма ван- того, ультразвук можно возбуждать
тя, строго говоря, любой элемент, об- далоустойчивые. Хотя против такого прямо на экране). Экраны применяют
ладающий электрической ёмкостью, элегантного и простого инструмента, только в охраняемом помещении.
проводит переменный ток. Просто си- как лом, все равно не найдется сим- По большому счету сенсорный
ла тока будет изменяться в зависи- метричный ответ. На непроводящие экран – это чувствительная наклад-
мости от ёмкости и частоты тока. Эк- загрязнения не реагируют, проводя- ка на TFT-панель. Производитель ин-
ран же представляет собой стеклянную щие легко подавляются программны- формационного киоска берет тумбу,
панель, покрытую проводящим мате- ми методами. Поэтому проекционно- закрепляет на ней обычный TFT-эк-
риалом. Электроды, расположенные ёмкостные сенсорные экраны приме- ран или TFT-телевизор и накладывает
по углам экрана, подают на проводя- няются в автоматах, устанавливаемых сверху сенсорный экран. Все вместе
щий слой небольшое переменное на- на улице. Реагирует на руку в перчат- органично выглядит как единое целое.
пряжение (одинаковое для всех углов). ке. Невысокая точность дополняется По типу подключения различа-
При касании экрана пальцем или дру- параллаксом от толстого вандалоус- ют экраны как с USB-подключением,
гим проводящим предметом появля- тойчивого стекла. так и с подключением по порту RS232.
ется утечка тока. При этом чем бли- Отличают нажатие рукой от нажа- Принципиальных различий нет – тре-
же палец к электроду, тем меньше со- тия проводящим пером. В некоторых бования по скорости настолько низ-
противление цепи, а значит, сила тока моделях поддерживается обработка кие, что можно было бы оставить
больше. Ток во всех четырёх углах ре- событий от нажатий несколькими паль- только RS232. Если бы не одно «но».
гистрируется датчиками и передаётся цами (см. рис. 2). Современные ПЭВМ все чаще дела-
в контроллер, вычисляющий коорди- ют без COM-портов, но с увеличен-
наты точки касания. Сенсорный экран ным количествов USB-портов. Поэто-
В более ранних моделях ёмкостных на основе ПАВ му для таких случаев производите-
э к ранов пр име - Экран представляет собой стеклянную ли сенсорных экранов предлагают эк-
нялся постоянный панель с пьезоэлектрическими преоб- раны с USB-подключением. И похоже,
ток – это упроща- разователями (ПЭП), находящимися это становится уже тенденцией.
ет конструкцию, по углам. По краям панели находят- Разрешающая способность сенсор-
н о  п р и п л о х о м ся отражающие и принимающие дат- ных экранов, как правило, не больше
контакте пользо- чики. Принцип действия такого экра- 4096 точек по горизонтали и по вер-
вателя с землёй на заключается в следующем. Специ- тикали. Соответственно, графический
приводит к сбоям. альный контроллер формирует высо- режим вывода на TFT-панель не может
Ё м к о с т н ы е кочастотный сигнал (ультразвук) и по- превышать данную цифру. Впрочем,
Рисунок 2. сенсорные экра- сылает его на ПЭП. ПЭП преобразу- TFT-матрицы видео-экрана в киосках
Схема работы
проекционно- ны надёжны (по- ет этот сигнал в ПАВ, а отражающие не превышают 17, 19 дюймов. И гра-
ёмкостного рядка 200 млн на- датчики его соответственно отражают. фические режимы там, как правило,
сенсорного
экрана жатий), не пропус- Эти отраженные волны принимаются стандартны – не более 1280x1024 то-

32
администрирование
приложение, которое в свою очередь будет выводить на прин-
тер некое содержимое, выбранное на веб-странице. По мере
усложнения можно также добавить и выборку из SQL-базы.
Звучит сложно, но реализация проста (см. рис. 4).
Посмотрим, каково аппаратное обеспечение типично-
го информационного киоска. В моем случае киоск называ-
ется SFOUR Tadpole.

kiosk:~# lspci
00:00.0 Host bridge: Intel Corporation 82945G/GZ/P/PL
Memory Controller Hub (rev 02)
00:02.0 VGA compatible controller: Intel Corporation 82945G/GZ
Integrated Graphics Controller (rev 02)
00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family)
High Definition Audio Controller (rev 01)
00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family)
PCI Express Port 1 (rev 01)
00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family)
PCI Express Port 2 (rev 01)
00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family)
Рисунок 3. Схема работы сенсорного экрана на основе ПАВ USB UHCI Controller #1 (rev 01)
00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family)
USB UHCI Controller #2 (rev 01)
чек. Сравните с 4096x4096 – разрешающей способностью 00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family)
сенсорного экрана. USB UHCI Controller #3 (rev 01)
00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family)
USB UHCI Controller #4 (rev 01)
Программное обеспечение 00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family)
информационных киосков USB2 EHCI Controller (rev 01)
00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev e1)
Очень часто, а здесь надо читать как «практически всегда», 00:1f.0 ISA bridge: Intel Corporation 82801GB/GR (ICH7 Family)
в качестве операционной системы используется Windows. LPC Interface Bridge (rev 01)
00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family)
Либо в виде настольной серии (Windows 2000/Windows XP), IDE Controller (rev 01)
либо для встраиваемых систем (Windows XP Embedded), ли- 00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH
бо вообще Windows CE. И поверх операционной системы (ICH7 Family) SATA IDE Controller (rev 01)
00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family)
работает Win32-приложение. SMBus Controller (rev 01)
Применима ли здесь другая расстановка сил? Ответ – 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL8101E PCI Express Fast Ethernet controller (rev 01)
да. Для того чтобы киоск заработал, нам нужны:
1. Операционная система. kiosk:~# cat /proc/cpuinfo
2. Получение событий на нажатие от сенсорного экрана.
processor : 0
3. Взаимодействие с периферией. vendor_id : GenuineIntel
4. Приложение, выполняющее обработку информации. cpu family : 15
model : 4
model name : Intel(R) Celeron(R) CPU 2.80GHz
В качестве пункта 1 была выбрана Linux, а точнее stepping : 9
Thinstation – по большому счету это конструктор дистрибу- cpu MHz : 2794.238
cache size : 256 KB
тива. С его помощью можно на основной системе пригото- fdiv_bug : no
вить образы ISO (загрузка через CD-ROM), SysLinux (загруз- hlt_bug : no
f00f_bug : no
ка, например, через USB-брелок), PXE (сетевая загрузка). coma_bug : no
На вариант сетевой загрузки мы и будем ориентироваться. fpu : yes
В качестве основной системы, где будет подготавливаться fpu_exception : yes
cpuid level : 5
сетевой образ для киоска, выступает openSUSE 10.3. wp : yes
Для пунктов 2 и 3 необходимо найти драйверы устройств. flags : fpu vme de pse tsc msr pae mce cx8 apic sep
mtrr pge mca cmov pat pse36 clflush dts acpi mmx
На первый взгляд кажется, что задача невыполнимая. Однако fxsr sse sse2 ss ht tm pbe lm constant_tsc pni
это не так. Большая часть производителей уже давно на своих monitor ds_cpl tm2 cid cx16 xtpr lahf_lm
сайтах разместила данное программное обеспечение. Надо bogomips : 5593.32
clflush size : 64
только внимательно искать. Если у вас используется сенсор-
ный экран от законодателя мод – компании Elo TouchSystems, kiosk:~# free
то здесь еще проще. Драйвер для этого производителя мож- total used free shared buffers
но найти в любом современном дистрибутиве. Mem: 906896 120396 786500 0 38584
Swap: 0 0 0
Ну а что выбрать на роль приложения? Писать что-то спе- Total: 906896 120396 786500
цифическое не особо хотелось, поэтому я решил, что в качес-
тве приложения достойно выступит следующая «команда»: Для отображения и предоставления информации вы-
opera, nginx, fastcgi и тестовое приложение. Opera будет отоб- числительной мощности более чем достаточно, впрочем,
ражать веб-страницы с неким содержимым, nginx – перена- как и ОЗУ (в киоск вставлена планка на 1 Гб, часть исполь-
правлять запросы к fastcgi, ну а fastcgi – запускать тестовое зуется для нужд интегрированного видео).

№10, октябрь 2008 33


администрирование
Подключаем сенсорный экран к машине с openSUSE module agpgart
module ati-agp
и в dmesg наблюдаем появление информации: module intel-agp
module r8169
usb 6-2: new full speed USB device using uhci_hcd and address 2
usb 6-2: new device found, idVendor=04e7, idProduct=0007 module snd-hda-intel
usb 6-2: new device strings: Mfr=1, Product=2, SerialNumber=3 module snd-intel8x0
usb 6-2: Product: Elo TouchSystems IntelliTouch 2500U
usb 6-2: Manufacturer: Elo TouchSystems, Inc. module usb-hid
usb 6-2: SerialNumber: 07A27613
usb 6-2: configuration #1 chosen from 1 choice module elo
input: Elo TouchSystems, Inc. Elo TouchSystems IntelliTouch 2500U
as /class/input/input5 package rdate
input: USB HID v1.00 Pointer [Elo TouchSystems, Inc. Elo package xorg6vnc
TouchSystems IntelliTouch 2500U] on usb-0000:00:1d.0-2 package xorg6-i810
package keymaps-en_us
Убедились, что проданный нам киоск действительно содер- package sshd
жит сенсорный экран, что указан в проспекте на изделие. package scp
Загружаем дистрибутивы Opera 9.52 [6] (как Static QT package opera.kiosk
package) и Thinstation-src2.3beta1 [7] (раздел Sources) вмес-
param rootpasswd RootPass
те с Thinstation-2.3beta2 (раздел Main Distribution). param xorgvncpasswd VNCPass
Thinstation-2.3beta2 – это конструктор, где из множества param bootlogo true
param bootresolution 1024x768
компонентов собирается загрузочный образ, а Thinstation- param defaultconfig thinstation.conf.buildtime
src2.3beta1 – среда, где мы будем компилировать те ком- param basename thinstation
param basepath . files
поненты, что отсутствуют в конструкторе, а именно nginx param baseurl http://thinstation.sourceforge.net
и fastcgi. Распаковываем конструктор Thinstation на рабочую param localpkgs false locally
param fulllocales false
машину, например в директорию /media/hyperspace/ts/: param icaencryption false
param bootverbosity 1
# tar xjvf Thinstation-2.3beta2.tar.gz ↵
-C /media/hyperspace/ts/
# cd /media/hyperspace/ts/Thinstation-2.3 В данном случае при загрузке будет выставлен режим
1024x768 и в процессе загрузки будет красоваться картин-
Отредактируем файл build.conf, в котором содержится ка (параметр bootlogo подразумевает включение режима
описание тех компонентов, которые используются для функ- framebuffer). Для доступа к киоску по протоколу SSH необ-
ционирования киоска. Моя конфигурация выглядит так: ходимо будет авторизоваться в качестве пользователя root
с паролем RootPass. Для доступа по VNC-протоколу следу-
module pcm ет использовать пароль VNCPass.
module serial
module acpi Второй файл, в который надо внести изменения, –
module pcspkr thinstation.conf.buildtime. В нем определяется конфигура-

Рисунок 4. Схема взаимодействия элементов киоска

34
администрирование
Они означают – запустить X-Server
и в качестве главного приложения ис-
пользовать Opera.
Если собираетесь использовать
DNS, то параметр NET‑DNS1 должен
содержать правильный адрес:

NET_DNS1=1.2.3.4

Видеорежим, который будет ус-


тановлен на киоске, – 1024x768. Ес-
ли X-Server не сможет его установить,
то будут опробованы режимы 800x600
и 640x468.
Браузер Opera я распаковал в под-
директорию packages/opera.kiosk/.
Со структурой зависимостей па-
кета можно ознакомиться в примере –
директория packages/template/.
Теперь подключим взаимодейс-
Рисунок 5. Экран киоска передается по VNC-протоколу твие X-Server с сенсорным экраном,
используем для этого файл packages/
ция компонентов X-сервера, например, размещение окон- xorg6vnc/lib/X11/vnc_keyboard.tpl:
ного менеджера на X-экране, размер самого экрана, чувс-
твительность мышки, а также некоторые другие парамет- Section "InputDevice"
# vncKeyboard: keyboard actions from vnc
ры. Его содержимое такое: Identifier "vncKeyboard"
Driver "rfbkeyb"
EndSection
AUDIO_LEVEL=67
KEYBOARD_MAP=ru_RU.UTF-8 Section "InputDevice"
TIME_ZONE="UTC+10:00" # vncMouse: mouse actions from vnc
USB_ENABLED=On Identifier "vncMouse"
DAILY_REBOOT=On Driver "rfbmouse"
CUSTOM_CONFIG=Off EndSection
RECONNECT_PROMPT=Off
Section "InputDevice"
SCREEN=0 Identifier "Touchscreen0"
WORKSPACE=1 Driver "evtouch"
AUTOSTART=Off Option "Device" "/dev/input/event3"
ICONMODE=AUTO Option "TouchMode" "0"
ICONHOTPLUG=YES Option "AlwaysCore"
Option "screenno" "0"
SESSION_0_ICON=On
SESSION_0_TYPE=opera Option "MinX" "0"
SESSION_0_AUTOSTART=On Option "MaxX" "4000"
Option "MinY" "0"
SCREEN_RESOLUTION="1024x768 | 800x600 | 640x480 | *" Option "MaxY" "4000"
SCREEN_COLOR_DEPTH="16 | 8 | *"
SCREEN_HORIZSYNC="56-86 | *" Option "SwapX" "1"
SCREEN_VERTREFRESH="30-83 | 60 | 56 | 70 | 72 | 75"
SCREEN_BLANK_TIME=0 EndSection
SCREEN_STANDBY_TIME=0
SCREEN_SUSPEND_TIME=0
SCREEN_OFF_TIME=0
MOUSE_RESOLUTION=100 Зачем нам требуется подключать VNC-поддержку?
Во‑первых, для контроля работы сенсорного экрана. Ес-
X_DRIVER_OPTION1="swcursor On"
X_SERVERFLAGS_OPTION1="DontVTSwitch On" ли киоск работает продолжительное время не выключаясь,
X_SERVERFLAGS_OPTION2="DontZap On" то может возникнуть ситуация, что экран перестает обра-
X_MONITOR_OPTION1="DPMS On"
X_MONITOR_MODELINE='"1680x1050" 146.2 1680 1784 1960 ↵ батывать сигналы. Проще говоря, «завис». Тогда и зайти
2240 1050 1053 1059 1089' по протоколу VNC не удастся. Хотя система в целом про-
NET_HOSTNAME=kiosk должает функционировать. Связано ли это с определен-
ным модельным рядом, свойством драйвера или экрана –
NET_USE_DHCP=On
NET_MASK=255.255.255.0 трудно сказать. Чтобы скомпенсировать проблему, и пре-
дусмотрен вариант с удаленным заходом по SSH. Необ-
NET_DNS1=1.2.3.4
ходимо только перезапустить X-Server. Во-вторых, мож-
Обратить внимание следует на параметры: но удостовериться, что пользователь, подошедший к ки-
оску, занимается правильным делом, а не старается вый-
SESSION_0_ICON=On ти, например, в Интернет или запустить пасьянс – быва-
SESSION_0_TYPE=opera
SESSION_0_AUTOSTART=On ют разные случаи.

№10, октябрь 2008 35


администрирование
Устройство, которое посылает сигналы от сенсорно- I: Bus=0010 Vendor=001f Product=0001 Version=0100
го экрана, обрабатывается драйвером evtouch и распола- N: Name="PC Speaker"
P: Phys=isa0061/input0
гается по адресу /dev/input/event3. Архив драйвера я взял S: Sysfs=/class/input/input2
с ресурса [8] и поместил нужный мне драйвер в конструк- H: Handlers=kbd event2
B: EV=40001
торе Thinstation как файл: packages/xorg6/lib/X11/modules/ B: SND=6
input/evtouch_drv.so.
I: Bus=0003 Vendor=04e7 Product=0007 Version=0100
Этого достаточно, можно приступить к сборке загру- N: Name="Elo TouchSystems, Inc. Elo TouchSystems IntelliTouch 2500U"
зочного образа: P: Phys=usb-0000:00:1d.0-1/input0
S: Sysfs=/class/input/input3
H: Handlers=event3
# cd /media/hyperspace/ts/Thinstation-2.3 B: EV=b
# ./build B: KEY=10000 0 0 0 0 0 0 0 0
B: ABS=100 3
Сборка занимает несколько минут, и результат мож-
но найти в директории /media/hyperspace/ts/Thinstation-2.3/ Если вы не видите названия сенсорного экрана, то это
boot-images/pxe. означает, что модуль, отвечающий за обмен данными с сен-
Остается настроить DHCP- и TFTP-сервер, положить сорным экраном, не загружен.
полученные файлы в директорию, например /tftpboot, и за-
пустить информационный киоск на загрузку с PXE-источ- kiosk:~# lsmod | grep elo
ника. elo 6336 0
При правильном составлении конфигурации компонен-
тов и самого браузера Opera вы должны лицезреть на сен- У меня он загружен. В случае когда ничего похоже-
сорном экране похожую картинку (см. рис. 5). го не наблюдается, необходимо форсированно его загру-
В моем случае были произведены оптимизация и нас- жать, например, через скрипт запуска X-Server либо в од-
тройка компонентов Opera, так что не особенно удивляйтесь, ной из служб, например sshd.
если у вас будут видны и меньшие пиктограммы, и строка Второй интересный момент. Ваш сенсорный экран
адреса. У вас так и должно быть. может общаться не по USB-шине, а через порт RS232.
Если внимательно присмотреться, то в правом ниж- Так, например, работают некоторые экраны производс-
нем углу можно видеть виртуальную клавиатуру (приложе- тва Generic Touch. Тогда в файл packages/xorg6vnc/lib/X11/
ние xvkbd, которое я использую отдельно для ввода сим- vnc_keyboard.tpl надо внести следующие строки:
волов).
Если у вас сенсорный экран отрабатывает нажатия, то Section "InputDevice"
Identifier "Touchscreen0"
клавиатура на экране тоже может пригодиться. В против- Driver "gentouch"
ном случае надо разбираться, почему X-Server не прини- Option "Device" "/dev/ttyS0"
Option "TouchMode" "0"
мает сигналы от драйвера сенсорного экрана. Option "AlwaysCore"
Кстати, не следует рассчитывать, что с помощью сен- Option "screenno" "0"
Option "MinX" "150"
сорного экрана удасться сэмулировать двухкнопочную Option "MaxX" "3300"
мышь и получить сигнал от правой кнопки. В большинстве Option "MinY" "970"
Option "MaxY" "3470"
случаев это может быть невозможно, т.к. драйвер сенсор- Option "UntouchDelay" "3"
ного экрана, скорее всего, такую ситуацию обработать бу- Option "ReportDelay" "1"
EndSection
дет не в состоянии.
Проверим, как зарегистрировались обработчики input- В этом случае драйвер называется gentouch, и собы-
событий в тонком клиенте: тия поступают с устройства /dev/ttyS0, т.е. с того порта, ку-
да подключили экран.
kiosk:~# cat /proc/bus/input/handlers Если и в этом случае выявились проблемы, то в качестве
N: Number=0 Name=kbd источника выявления ошибок обратитесь к файлу /var/log/
N: Number=1 Name=mousedev Minor=32
N: Number=2 Name=evdev Minor=64
Xorg.0.log. Здесь вы найдете не только причину ошибки, но
и массу интересной информации, вплоть до производите-
kiosk:~# cat /proc/bus/input/devices ля TFT-матрицы экрана информационного киоска.
I: Bus=0019 Vendor=0000 Product=0002 Version=0000
Следуем дальше. Загрузка работает, сенсорный экран
N: Name="Power Button (FF)" откликается. Остается только подготовить HTML-страни-
P: Phys=button_power/button/input0 цу с нужными параметрами и попробовать их распечатать
S: Sysfs=/class/input/input0
H: Handlers=kbd event0 на принтере киоска. Звучит сложно? Отнюдь. Распаковы-
B: EV=3 ваем исходные коды конструктора Thinstation:
B: KEY=100000 0 0 0

I: Bus=0019 Vendor=0000 Product=0001 Version=0000 # tar xjvf thinstation_src-2.3beta1.tar.bz2 ↵


N: Name="Power Button (CM)" -C /media/hyperspace/ts/
P: Phys=PNP0C0C/button/input0 # cd /media/hyperspace/ts/thinstation_src-2.3
S: Sysfs=/class/input/input1 # ./RUNME
H: Handlers=kbd event1
B: EV=3
B: KEY=100000 0 0 0 Появится приглашение от Thinstation. Мы в самом сер-
дце среды компиляции.

36
администрирование
You have entered the Thinstation Build Environment 21) error_page 500 502 503 504 /50x.html;
22) location = /50x.html {
sh-3.1# root html;
23) }
Заберем веб-сервер nginx [9] и распакуем в /media/ 24) location ~ \.cgi$ {
hyperspace/ts/thinstation_src-2.3/source. Почему именно он, 25) root html;
26) fastcgi_pass 127.0.0.1:9000;
а не Apache? Из-за своей легковесности. Да, сам он не уме- 27) fastcgi_index index.cgi;
ет обрабатывать CGI, но его легко научить. 28) fastcgi_param SCRIPT_FILENAME ↵
/scripts$fastcgi_script_name;
29) include fastcgi_params;
sh-3.1# cd /source/nginx-0.6.32/ 30) }
sh-3.1# ./configure –prefix=/usr/local/nginx 31) }
sh-3.1# make && make install 32) }

Открываем новое окно терминала и в нем будем про- Небольшой комментарий. Сервер работает от имени
ивзодить дополнительные манипуляции. пользователя nobody (строка 1). Чтобы он действительно
Добавляем в описание конструктора Thinstation (файл функционировал, а не висел в памяти, надо закомментиро-
build.conf) новый пакет под названием nginx и копируем вать (строка 10) использование функции sendfile():
в /media/hyperspace/ts/Thinstation-2.3/packages/nginx/ всю
директорию из /media/hyperspace/ts/thinstation_src-2.3/usr/ #sendfile on;
local/nginx.
Затем создадим файл fastcgi_params в директории Параметр sendfile в nginx используется для переда-
nginx/conf/: чи файлов больших размеров (графические файлы), при
этом используется функция ядра senfile(). Это актуально
fastcgi_param QUERY_STRING $query_string; для условий хостинга, когда экономятся кванты времени
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type; на обработку тысячи запросов в секунду, за счет передачи
fastcgi_param CONTENT_LENGTH $content_length; управления непосредственно ядру. В данном случае в яд-
fastcgi_param SCRIPT_NAME $fastcgi_script_name; ре Thinstation функция senfile() не включена, поэтому nginx
fastcgi_param REQUEST_URI $request_uri; не будет «отдавать» вообще никакие файлы, даже HTML.
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root; Затем следует включить обработчик CGI-скриптов, стро-
fastcgi_param SERVER_PROTOCOL $server_protocol; ки 24-30. На порту 9000 локального хоста, а именно инфор-
fastcgi_param GATEWAY_INTERFACE CGI/1.1; мационного киоска, должен крутиться CGI-wrapper, который
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; и будет передавать управление FastCGI, который в свою
fastcgi_param REMOTE_ADDR $remote_addr; очередь и занимается выполнением CGI‑скриптов.
fastcgi_param REMOTE_PORT $remote_port; В качестве данного подмастерья идет wrapper из комп-
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port; лекта lighttpd [10] под названием spawn-fcgi. Распаковыва-
fastcgi_param SERVER_NAME $server_name; ем lighttpd и компилируем его по аналогии с nginx. Устанав-
# PHP only, required if PHP was built ливать его не надо, а требуется только переписать файл
# with --enable-force-cgi-redirect /source/lighttpd-1.4.19/src/spawn-fcgi в пакет nginx.
fastcgi_param REDIRECT_STATUS 200;
Остается собрать наше тестовое приложение печати
Конфигурационный файл nginx должен выглядеть при- в формате FastCGI и запустить все это вместе. Забираем
мерно так: FastCGI [11], распаковываем в директорию /source/fcgi-2.4.0/,
компилируем и устанавливаем и затем приступаем к взаи-
1) user nobody; модействию с принтером.
2) worker_processes 1;
Используемый в сегодняшнем примере информацион-
3) events { ный киоск комплектуется принтером TUP900 производс-
4) worker_connections 1024;
5) } тва Star Micronics . Он подключается через порт RS232, по-
этому для изучения его управления я воспользовался при-
6) http { мером, что шел в комплекте с его драйверами [12]. Прав-
7) include mime.types; да, слегка модифицировав, чтобы оно было больше похо-
8) default_type application/octet-stream;
же на CGI‑приложение. Драйверы ставить не нужно, т.к. пе-
9) #access_log logs/access.log main; чатью управлять будет наше приложение. Для более слож-
10) #sendfile on; ных вариантов, требующих растровой печати, поставляют-
11) #tcp_nopush on; ся драйверы для CUPS-подсистемы. Но в Thinstation не был
12) keepalive_timeout 65; обнаружен простой способ создать работающий CUPS-де-
мон. И по большому счету я не увидел преимущества рас-
13) #gzip on;
тровой печати, кроме как явного замедления печати.
14) server {
15) listen 80; (1)#include <stdio.h>
16) server_name localhost; (2)#include <string.h>
17) location / { (3)#include <sys/time.h>
18) root html;
19) index index.html index.htm; (4)#include <stario/stario.h>
20) } (5)#include <stdlib.h>

№10, октябрь 2008 37


администрирование
(6)#include <fcgi_stdio.h> (58) /* Напечатать выбранные год и месяц */
(59) sprintf(BigString, "Выбранный год: ↵
%s, месяц: %s\n", Year, Month);
(7)void main(void) (60) res = writePort(PortID, BigString, ↵
(8){ strlen(BigString));
(9) long res = STARIO_ERROR_SUCCESS;
(10) int i = 0; (61) /*-------- Обрезать бумагу ----------*/

(11) int count = 0; (62) res = writePort(PortID, "\x1b""d3", ↵


(12) char BigText[1024]; sizeof("\x1b""d3") - 1);
(13) char BigString[1024];
(14) int len = 0; (63) res = closePort(PortID);

(15) char PortID[] = "/dev/ttyS0"; (64) printf("<br>Input buffer length is: ↵


(16) char PortParams[] = "9600,none,8,1,hdwr"; %i symbols", len);
(65) printf("<br>BigText: %s", BigText);
(17) char Month[32]; (66) printf("<br>Year: %s", Year);
(18) char Year[16]; (67) printf("<br>Month: %s", Month);

(19) char* header[] = {


(20) "+---------------------------------------+\n", (68) /*------------- Конец CGI-цикла ----------------*/
(21) "| CP1251: Информационный заголовок |\n", (69) }
(22) "| CP1251: Выбирается год и месяц |\n", (70)}
(23) "+---------------------------------------+\n"
(24) }; В строке 4 подключаем заголовочный файл от библио-

теки принтера, а в строке 6 – от билиотеки FastCGI. Изна-
(25) /*--------- Начало CGI-цикла -------------*/ чально делаем буфер BigText и BigString достаточно боль-
(26) while(FCGI_Accept() >= 0) шими, чтобы вместить запрос POST-запрос с HTML-стра-
(27) { ницы (строки 12-13). Принтер TUP900 подключен к порту
(28) len = atoi(getenv("CONTENT_LENGTH"));
(29) gets(BigText); COM1 (строка 15) и работает с параметрами, указанными
в строке 16. Максимальная скорость, на которую его можно
(30) /*----- Передать браузеру html-header -----*/
(31) printf("Content-type: text/html\r\n" перевести с помощью переключателей, составляет 38400
(32) "\r\n" бод. Впрочем, и при используемых по умолчанию парамет-
(33) "<title>Printer response page ↵
</title>" рах скорострельность высокая – печать чека осуществля-
(34) "<h1>Printer response page</h1>" ется менее чем за секунду.
(35) "Request number %d running on ↵
host <i>%s</i><br>", Цикл программы в CGI-стиле ограничен строками 26‑69.
(36) ++count, getenv("SERVER_NAME")); В нем мы получаем содержимое POST-запроса (строка 29),
(37) res = openPort(PortID, PortParams); выводим ответ браузеру в виде HTML-страницы (строки
31-36), открываем COM-порт с указанными параметрами
(38) /* Включить набор шрифтов кодовой страницы cp1251 */
(строка 37), переключатем в принтере кодовую страницу
(39) res = writePort(PortID, "\x1b", ↵ на CP1251 (строки 39-42). Затем печатаем заголовок чека
sizeof("\x1b") - 1);
(40) res = writePort(PortID, "\x1d", ↵ (строки 44-45). Находим в POST-запросе значения пара-
sizeof("\x1d") - 1); метров year и month (строки 47-57). После этого печатаем
(41) res = writePort(PortID, "\x74", ↵
sizeof("\x74") - 1); значения этих параметров (строки 59-60), подаем команду
(42) res = writePort(PortID, "\x22", ↵ принтеру обрезать бумагу (строка 62) и закрыть порт (стро-
sizeof("\x22") - 1);
ка 63). И довыводим в HTML-страницу полученные резуль-
таты (строки 64-67).
(43) /*---- Напечатать заголовок header ----*/
(44) for( i = 0; i < 4; i++ ) Я специально не использую динамическое выделение
(45) res = writePort(PortID, header[i], ↵ буфера при обработке POST-запроса, так как, во-первых,
strlen(header[i]) );
пример должен быть понятен, и во-вторых, считаю, что для
(46) /*----- Выбрать подстроку 'month' -----*/ более серьезной работы вы все-таки выберете Perl или PHP,
(47) strcpy(BigString, ↵
strstr(BigText, "month")); ведь вы будете выбирать данные из базы, не правда ли?
(48) for( i = 0; i < strlen(BigString); ↵ Собирается он следующим образом:
i++ )
(49) if(BigString[i] == '&') break;
sh-3.1# gcc -Wall -o t4 t4.c -s -I. -L./lib -lstario ↵
(50) BigString[i] = '\0'; -I /source/fcgi-2.4.0/include/ ↵
(51) strncpy(Month, BigString + ↵ -L /usr/local/fcgi/lib/ -lfcgi
(strlen("month") + 1 ), ↵
i - strlen("month"));
Результат сборки кладете в пакет nginx.
Если вы правильно указали все участвующие в процессе
(52) /*----- Выбрать подстроку 'year' -----*/
(53) strcpy(BigString, ↵ компиляции библиотеки, а это LibStarIO (от принтера) и FCGI
strstr(BigText, "year")); (для FastCGI), то перед вами рабочее приложение в форма-
(54) for( i = 0; i < strlen(BigString); ↵
i++ ) те FastCGI, которое будет способно распечатать парамет-
(55) if(BigString[i] == '&') break; ры с HTML-страницы. Его также надо вместе с spawn-fcgi
(56) BigString[i] = '\0'; и скриптом старта nginx.sh переписать в пакет nginx.
(57) strncpy(Year, BigString + ↵
(strlen("year") + 1 ), ↵ kiosk:~# cat /usr/local/nginx/bin/nginx.sh
i - strlen("year"));
#!/bin/sh

38
администрирование
«Try Me!». После этого забрать напечатанный чек с выбран-
chmod a+rw /dev/ttyS0
/usr/local/nginx/bin/spawn-fcgi -a 127.0.0.1 ↵ ным годом и месяцем:
-p 9000 -u nobody -g nobody ↵
-f /usr/local/nginx/bin/t4 +---------------------------------------+
/usr/local/nginx/sbin/nginx | CP1251: Информационный заголовок |
| CP1251: Выбирается год и месяц |
+---------------------------------------+
Сценарий запуска, файл packages/nginx/etc/init.d/ Выбранный год: 2008, месяц: February
nginx.init, создан по аналогии c примером пакета template
в Thinstation. На экране информационного киоска будет высвечено
сообщение (см. рис. 6), клиенту выдан чек, а в браузере на-
#!/bin/sh печатана информация.
. $TS_GLOBAL Вполне понятно, что для более сложного сценария, когда
требуется производить выборку из базы данных и необхо-
case "$1" in
init) димо пользователю предоставлять более интересное офор-
мление разметки HTML-страницы, на одном таком простом
if ! pkg_initialized $PACKAGE; then
pkg_set_init_flag $PACKAGE CGI далеко не уедешь. Тем более что распарсивать слож-
sh /usr/local/nginx/bin/nginx.sh ные параметры, например, с русскими буквами и спецсим-
fi
;; волами, на C напоминает очередное изобретение велосипе-
*) да. В этом случае на помощь могут прийти Perl и PHP, кото-
exit 1
;; рые nginx может также запускать в качестве CGI-приложе-
esac ния. Никто не мешает выбрать в качестве веб-сервера еще
exit 0 более легкие решения, например GoAhead. Благо там тоже
есть возможность запускать CGI-скрипты, а размер испол-
В качестве HTML-страницы будем использовать такое няемого файла составляет 80 Кб вместо 300 Кб для nginx.
творение мысли:
Заключение
<html> Мы не рассмотрели механизм работы с купюроприемни-
<meta http-equiv="Content-Type" content="text/html; ↵
charset=cp1251"> ками, которыми могут комплектоваться киоски. Несмотря
<body> на то, что на первый взгляд кажется, что работа с ними та-
<FORM ACTION="12.cgi" METHOD="post"> ит какую-то специфику, на самом деле это далеко не так.
<select name="month"> «Общение» с этими устройствами не сложнее, чем «обще-
<option value="January">January</option>
<option value="February">February</option> ние» с принтерами. Тот же коммуникационный порт RS232
<option value="March">March</option> (иногда бывает LPT и «токовая петля»), тот же возвращае-
<option value="April">April</option>
<option value="May">May</option> мый статус (в данном случае это «купюра распознана», «ку-
<option value="June">June</option> пюра принята» или «купюра не принята»). Впрочем, это сов-
<option value="July">July</option>
<option value="August">August</option> сем другая история.
<option value="September">September</option> Отдельно хотелось бы поблагодарить сотрудников
<option value="October">October</option>
<option value="November">November</option> компании Star Micronics EMEA, Лоуренса Оуена (Lawrence
<option value="December">December</option> Owen) и Дженни Миллер (Jennie Miller) за помощь в подго-
</select>
товке статьи.
<select name="year">
<option value="2008">2008</option>
<option value="2007">2007</option> 1. http://en.wikipedia.org/wiki/Internet_kiosk.
<option value="2006">2006</option> 2. http://en.wikipedia.org/wiki/Automated_teller_machine.
<option value="2005">2005</option>
<option value="2004">2004</option> 3. http://ru.wikipedia.org/wiki/Информационный_киоск.
<option value="2003">2003</option> 4. http://ru.wikipedia.org/wiki/Сенсорный_экран.
<option value="2002">2002</option>
<option value="2001">2001</option> 5. http://www.comexim.com.ua/i184l0.html.
<option value="2000">2000</option> 6. http://www.opera.com/download/linux.
<option value="1999">1999</option>
<option value="1998">1998</option> 7. http://thinstation.sourceforge.net/wiki/index.php/ThDownload.
<option value="1997">1997</option> 8. http://www.conan.de/touchscreen/evtouch.html.
</select>
<input type="submit" name="submit" value="Try Me!"> 9. http://sysoev.ru.
</form> 10. http://www.lighttpd.net/download/lighttpd-1.4.19.tar.gz.
</body> 11. h t t p : / / w w w .
</html> fastcgi.com/dist/
fcgi-2.4.0.tar.gz.
То, что вызывается 12.cgi, не должно вводить вас в за- 12. http://www.star-
блуждение, т.к. nginx среагирует на расширение .cgi и пе- micronics.co.jp/
редаст управление spawn-cgi, а уж он-то и запустит прило- eng/dl/dl02_06_
жение t4. Вместо 12.cgi можете придумать любое название, 02spsd.htm.
лишь бы оно было с правильным расширением.
Рисунок 6. Информациооное сообщение
Следует выбрать месяц и год и нажать на кнопочку в киоске

№10, октябрь 2008 39


администрирование

Учет оборудования
с Kwok Information Server

Сергей Яремчук
Учет оборудования и установленного ПО является одной из задач, ответственность
за выполнение которой возложена на администратора. Держать все данные в голове –
занятие неблагодарное. Система информационного обслуживания Kwok предназначена
для ее упрощения.

Р
ано или поздно любому админис- В этих продуктах для сбора информа- на для хранения информации об ап-
тратору придется отчитываться ции о «железе» и программах исполь- паратных средствах, установленных
перед начальством о том, что зуется агент, устанавливаемый на все программах, лицензиях на использо-
и где установлено, кто за этими ком- клиентские компьютеры. Это упро- вание пакета программ, информацию
пьютерами работает, закончился ли щает работу, но, к сожалению, спи- о поставщиках и пользователях. Из до-
гарантийный срок. Бухгалтерам будет сок поддерживаемых ОС в такого ро- полнительных функций следует от-
интересно узнать, когда закончится ли- да софте обычно ограничен семейс- метить наличие портала, блога, RSS-
цензия на ПО и в какую сумму обой- твом Windows. Между тем сегодня уже ленты, которые могут быть использо-
дется ее продление. И десятки других не редкость наличие других ОС, да и ваны при информировании о пробле-
вопросов, которые постоянно нужно аппаратные решения в этом случае мах. Любые данные легко экспортиру-
отслеживать. Проблема учета обору- также придется учитывать отдельно. ются в файл формата CSV, который за-
дования и установленных программ И как выход из ситуации приходится тем можно открыть в том же Excel. Есть
не нова, вероятно, поэтому на сегодня администратору открывать Excel и за- возможность загрузки файлов на сер-
разработано достаточно решений са- носить все данные в таблицы. К со- вер (например, драйверов) для распро-
мого разного уровня. Начиная с System жалению, такой способ, кроме ручно- странения среди пользователей. Уп-
Center Essential (раннее Systems го труда, имеет и другие недостатки – равление записями может осущество-
Management Server [1]), выпускаемой возможно дублирование данных, от- ляться несколькими администратора-
корпорацией Microsoft, или програм- четы затем также придется составлять ми или самими пользователями, с чет-
много комплекса CheckCfg + Sklad, вручную. Использование базы данных ко установленными правами доступа.
о котором шла речь в январском но- устраняет эти недостатки. Есть возможность изменения систем-
мере журнала за 2007 год [2]. Первый ных учетных записей. Для аутентифи-
не бесплатен, потому в небольших ор- Возможности Kwok кации пользователей может исполь-
ганизациях вряд ли будет востребован. Ин ф ор мационна я с ис тема Kwok зоваться внутренняя база данных или
Второй распространяется как freeware. Information Server [3] предназначе- LDAP (Active Directory). Информация

40
администрирование
о контактах (имя, телефон, e-mail, поч-
товый адрес) может экспортироваться
в CSV-файл или vCard.
Все данные в базу заносятся только
один раз и затем сопоставляются в со-
ответствующих меню. То есть, выбрав
программу в списке, можно затем быс-
тро найти информацию об ее стоимос-
ти, общем количестве такого ПО, ключ
лицензии, исполняемый или регистра-
ционный файл и прочее.
Написан Kwok на Java, для выдачи
данных используется Tomcat. Вся ин-
формация, в том числе и настрой-
ки самого Kwok, сохраняется в базе
PostgreSQL. Настройки производят-
ся при помощи веб-браузера, как аль-
тернативу можно использовать непос-
редственную запись в поле БД. В ка-
честве официальных платформ для ус-
тановки указаны Linux и Windows. Хотя, Добавляем информацию об устройстве
возможно, будет работать и под дру-
гими UNIX совместимыми системами. В процессе ра- Устанавливаем нужные права для определенных фай-
боты иногда всплывают установки, ориентированные лов и каталогов.
на Windows, плюс в документации примеры показывают
именно ту ОС. Вероятно, сказывается то, что Kwok был из- $ sudo chmod +rw ./server/tomcat_6.0.14
$ sudo chmod +x ./server/jre1.6.0/bin/java
начально разработан для этой системы, а затем уже пор- $ sudo chmod +x ./server/tomcat_6.0.14/bin/*.sh
тирован под Linux.
Интерфейс программы переведен на 7 языков, русского, В документации рекомендовано убедиться, что каталоги
к сожалению, в этом списке нет. Но некоторым полям мож- temp, logs и works в tomcat_6.0.14 существуют. У меня проб-
но дать другие названия прямо из основного окна програм- лем не возникало, но, очевидно, они возможны.
мы, причем русский затем выводится без проблем. Далее устанавливаем PostgreSQL. В каждом дистрибу-
тиве на этом этапе свои особенности. Если уже есть рабо-
Установка Kwok чая СУБД, можно подключиться и к ней.
Актуальной на момент написания статьи является вер- В Ubuntu/Debian для установки достаточно выполнить
сия 2.6.8, вышедшая 1 октября 2008 года. По ссылке одну команду:
на странице закачки доступны два отдельных файла для ус-
тановки на Linux или Windows. В последний входит полный $ sudo apt-get install postgresql
набор приложений Java/Tomcat/PostgreSQL. Файл для Linux
наполовину меньше, PostgreSQL в комплект не входит, и его Опционально можно поставить GUI для работы с БД,
необходимо устанавливать отдельно. например, пакет pgadmin3, который затем можно исполь-
Тестовая установка проводилась в Ubuntu 8.04 LTS зовать для редактирования таблиц. Проверяем запущен
и Windows XP. В дальнейшем будем рассматривать уста- ли сервер.
новку Kwok в Ubuntu.
Весь процесс не выглядит сложным и запутанным. $ sudo /etc/init.d/postgresql-8.3 status
В конфигурационных файлах Kwok в качестве рабочего
каталога указан /usr/kwok, поэтому, чтобы затем не стол- Устанавливаем пароль администратора базы, пусть это
кнуться с проблемами, лучше использовать именно этот будет нехитрый password (в скриптах по умолчанию исполь-
каталог. зован пароль postgres, его нужно будет изменить).

$ cd /usr $ sudo -u postgres psql template1


$ sudo tar xzvf kwok-information-server-2.6.8-linux.tar.gz template1=# ALTER USER postgres WITH ENCRYPTED PASSWORD ↵
$ sudo mv kwok-information-server-2.6.8-linux kwok 'password';
$ cd kwok
ALTER ROLE

После распаковки в кwok найдем несколько подката- template1=# \q


логов:
Поддержка языков программирования в PostgreSQL
$ ls реализуется отдельным объектом базы данных. Нам ну-
database server files жен PL/pgSQL:

№10, октябрь 2008 41


администрирование
$ sudo -u postgres createlang plpgsql template1 следует добавить параметры host и port. Правильные пара-
метры доступа к PostgreSQL затем следует указать в фай-
В конфигурационном файле /etc/postgres/8.3/main/ ле Application.properties. Формат его прост:
pg_hba.conf проверяем наличие строки:
$ cat /usr/kwok/server/tomcat_6.0.14/webapps/kwok/ ↵
WEB-INF/classes/properties/Application.properties
host all all 127.0.0.1/32 md5 #
# Database properties
#
Если нужно подключаться с удаленной системы, меня- db.serverHost = localhost
ем строку в postgresql.conf: db.serverPort = 5432
db.name = kwokdb
db.username = postgres
#listen_addresses = 'localhost' db.password = password

на На этом установка закончена. Запускаем Tomcat.

listen_addresses = '*' $ sudo chmod +x /usr/kwok/server/start_tomcat.sh


$ sudo /usr/kwok/server/start_tomcat.sh

или указываем в скобках конкретный IP-адрес. Снимаем Для проверки работоспособности набираем в браузе-
комментарий со строки: ре адрес http://localhost:8080/kwok и ждем, когда появится
окно Kwok (в зависимости от мощности оборудования за-
password_encryption = on пуск может затянуться до 1-2 минут).
В том случае, если получите сообщение об ошибке, сле-
Далее нужно запустить файл schemasetup-2.6.8.jar, на- дует обратиться к журналам, находящимся в подкаталоге
ходящийся в подкаталоге database, который создаст нуж- server/tomcat_6.0.14/logs. Например, я по ошибке при созда-
ный репозитарий: нии базы вместо kwokdb ввел kwodb. Естественно, подклю-
читься к базе данных не удалось:
$ ./server/jre1.6.0/bin/java -jar ↵
./database/schemasetup-2.6.8.jar install ↵
database=kwokdb username=postgres password=password $ tail -f ./server/tomcat_6.0.14/logs catalina.2008-10-07.log

Loading database driver org.postgresql.Driver ... done
07.10.2008 22:11:21 com.kwoksys.framework.connection.database.
Preparing to install version 2.6.8 ...
PostgresDatabase createConnection
Connecting to PostgreSQL Database Server ... done
SEVERE: Problem connecting to database: kwodb. Error message:
Creating database kwokdb ... done
FATAL: database "kwodb" does not exist
Connecting to database kwokdb ... done
Creating tables ... done
Creating views and stored procedures ... done Аналогично легко можно отследить и другие возника-
Schema setup completed successfully
ющие проблемы.
По умолчанию производится подключение к локальной Готовых стартовых скриптов разработчики не предла-
базе (порт 5432). Если для хранения планируется использо- гаеют. Если планируется загрузка вместе с системой, мож-
вать удаленную БД, то в строку вызова schemasetup-2.6.8.jar но поместить ссылку на start_tomcat.sh в /etc/init.d/rc.local.
Кроме этого, я бы рекомендовал в са-
мое начало start_tomcat.sh, поместить
ссылку на стоповый скрипт /usr/kwok/
server/tomcat_6.0.14/bin/shutdown.sh.
Обновление Kwok происходит
по тому же принципу. Только при вы-
зове schemasetup-х.х.х.jar вместо install
указывается upgrade (не забыв создать
копию БД). Затем удаляются подката-
логи server\tomcat_6.0.x\webapps\kwok
и server\tomcat_6.0.x\work\Catalina\
localhost и на их место копируются но-
вые версии. Не забываем подправить
Application.properties.

Работа в Kwok
Интерфейс Kwok очень прост и не пе-
регружен информацией, поэтому ра-
зобраться с его возможностями очень
лекго. После регистрации (admin с па-
ролем admin) будет выведена началь-
Настройки Kwok ная страница Home с общей инфор-

42
администрирование
мацией. В меню справа можно вы-
брать другой язык или цвет окна. Что- Локализация мально. Для подготовки файла в UTF-8 не-
бы сменить пароль, нужно перейти Локализовать Kwok просто. Для этого необ- обходимо использовать перекодировщик
в Preferences и нажать единственную ходимо создать файл с именем Localization_ Java Unicode (http://code.cside.com/3rdpage/
ссылку Change password. ru_RU.properties в каталоге, взяв за шаб- us/javaUnicode/converter.html). Если созда-
Основные настройки работы Kwok лон английский Localization.properties. ется новая локаль, то, чтобы появилась ин-
производятся в Administration. В част- Или подменив последний своим фай- формация о ней в интерфейсе, нужно об-
ности, перейдя в Applications Setting лом. Файлы лока лизации на ход ятся новить таблицу 'locale.options':
и выбрав в поле Security Configuration в каталоге tomcat_6.0.14\webapps\kwok\ update system_config set ↵
ссылку Edit, можно изменить метод ау- WEB-INF\classes\properties. Кодировки config_value = 'en_US,es_ES,hu_HU, ↵
it_IT,nl_NL,sr_YU,zh_CN,ru_RU'
тентификации (Authentication method). KOI8-R и СP‑1251 затем отображаются нор- where config_key='locale.options';
Установив вместо Database – LDAP,
затем введите параметры LDAP-сервера (адрес ldapserver. ню: Hardware, Software, Issues, Knowledge Base, Contacts,
yourdomain:389 и учетные данные). Service Contacts, Blogs, RSS и Portal.
Если по некоторым причинам зарегистрироваться с ис- Например, чтобы добавить новое устройство, нажима-
пользованием LDAP не удастся, то, чтобы не переустанав- ем Add Hardware, заполняем поля и затем вносим данные
ливать все заново, можно сбросить значения в таблице в базу Submit. Устройство появляется в окне Hardware, ес-
system_config: ли их много, для отбора можно воспользоваться поиском.
Если устройству необходимо сопоставить лицензию, запол-
update system_config set config_value='app' ↵ няем данные в Software (последовательность действия ана-
where config_key='auth.authenticationMethod'
update system_config set config_value='' ↵ логична), а затем нажимаем ссылку Assign Software License
where config_key='auth.domain' и выбираем в окне информацию о лицензии.
Конечно, может показаться, что ручной ввод информа-
Здесь же в Applications Setting обязательно следу- ции, используемый в Kwok, не совсем то, что нужно. И яв-
ет отредактировать установки приложения (Applications но проигрывает автоматическим системам учета, но в не-
Configuration). В частности, здесь указываем часовой по- которых случаях это хорошее подспорье администратору.
яс, формат времени, символ валюты и, главное, пропи- Время, потраченное на заполнение базы данных, впос-
сываем каталоги, в которых будут храниться загружен- ледствии окупится, когда эти данные действительно по-
ные файлы. По умолчанию путь прописан применительно надобятся.
к Windows, т.е. строку:
1. Щербаков Д. Проводим инвентаризацию сети средства-
C:\Kwok\Server\FileRepo\company ми SMS 2003 – //Системный администратор, №8, 2006 г. –
С. 12‑17.
меняем на: 2. Бережной А. Как быстро и эффективно провести учет компью-
терной техники – //Системный администратор, №1, 2007 г. –
/usr/kwok/files/company С. 20-24.
3. Сайт проекта Kwok Information Server – http://www.kwoksys.com.
и аналогично правим остальные по-
добные записи.
Ч то б ы п ол у ч ат ь о п о в е щ е н и я
по электронной почте, в Email Setting
указываем д анные SMTP‑ с ерве -
ра: IP‑адрес, порт, учетные данные
и почтовые адреса для полей «От»
и «Кому».
По умолчанию в системе присутс-
твуют две учетные записи: admin, име-
ющий доступ ко всем настройкам, и не-
активная Guest. Добавить другие, ус-
тановив права доступа, можно, перей-
дя в User List и Group List.
И, наконец, в System Field и Custom
Fields можно добавить, убрать или пе-
реименовать поля для всех объектов,
то есть подстроить интерфейс под свои
нужды.
Для ввода данных о компьютерах,
программном обеспечении, контактах
следует выбрать соответствующее ме- Список имеющегося ПО с информацией о доступности лицензий

№10, октябрь 2008 43


администрирование

Xneur – автоматическое переключение


раскладок под Linux
(аналог Punto Switcher)

Павел Закляков

Казалось, на пути внедрения Linux на рабочие станции пользователей решены все проблемы,
а нет. Есть ещё одна проблема – это привычки пользователей. На днях один мой знакомый
признался: «Если на компьютере не будет привычного Punto Switcher – не поставлю эту
операционную систему». Пришлось мне ему не только рассказать про xneur, но и показать,
как это работает. Результат его сколько порадовал, столько и озадачил, ведь теперь перейти
на Linux ему ничего не мешает.

44
администрирование

Е
сли в первом приближении набор текста на компью-
тере можно представить как некоторую последова-
тельность случайных событий, то во втором прибли-
жении, эта последовательность будет обладать хитрой за-
висимостью. Эти зависимости отличаются для разных язы-
ков. Так, я не знаю слов в русском языке, где встречаются
две буквы «ы» подряд, в то время как найти английские сло-
ва с двумя буквами «s» не составит труда (буквы «ы» и «s»
находятся на одной и той же клавише).
Таким образом, можно написать программу, которая по
встречаемым последовательностям букв (нажатию кла-
виш), смогла бы определять в каком языке набирается
то или иное слово и осуществляла бы автоматическое пе-
реключение раскладок. Естественно, при работе подобных Рисунок 1. Переключатель раскладок запускается из меню
программ используются словари, и алгоритм их работы не-
сколько сложнее. Чаще всего вы набираете половину сло- Далее, ставим freealut (иначе xneur не ставится):
ва, а лишь потом происходит переключение и конвертиро-
вание уже набранной части. # yum install freealut
Большая часть читателей наверняка слыша ли,
а то и используют программу Punto Switcher [3], написан- а после ставим пакеты:
ную Сергеем Москалёвым [4]. Это не единственная про-
грамма автоматического переключения раскладок, есть # rpm -ihv xneur-0.9.0-0.fc7.i386.rpm ↵
gxneur-0.9.0-0.fc7.i386.rpm
и менее известные, как Keyboard Ninja и Orfo Switcher.
Все они хороши, но их недостаток в том, что они не рабо- После установки в меню «Приложения → Стандарт-
тают под Linux. ные» появляется «Переключатель раскладок клавиату-
Но не всё так плохо. Благодаря Андрею Кузнецову и Ян- ры» (см. рис. 1).
кину Николаю (чьи электронные адреса содержатся в ис- После запуска через меню на панели появится соответс-
ходных кодах) для Linux имеется своя программа – X Neural твующая картинка с флагом, соответствующим языку рас-
Switcher (Xneur) [4], распространяемая по лицензии GPL, кладки (см. рис. 2). Всё, установка закончена, переключе-
об установке которой и пойдёт речь. ние раскладок осуществляется автоматически.
Если необходимо, то запуск соответствующего пункта
X Neural Switcher меню можно прописать в автозагрузку через меню «Систе-
Несмотря на то что последняя версия программы датиру- ма → Параметры → Персональные → Сеансы».
ется 30 июля 2008 года, то есть свежая и актуальная, раз-
нообразием скомпилированных версий она не отличается. Поддержка других языков
В мае вышла Fedora 9, а на сайте нет даже скомпилиро- Нигде в описании программы не написано, что поддержка
ванного пакета под Fedora 8. Исходные коды если и есть, ограничивается двумя языками – русским и английским.
то требуют большого числа зависимых библиотек, ста- Так как другие раскладки я не использую, то и не проверял.
вить которые вручную очень утомительно. Предполагаю, Беглое изучение исходных кодов показало, что имеются ди-
что автор программы и ещё ряд программистов использу- ректории c файлами: uk, ru, be, fr, kz, ro, de, что напоминает
ют программу для себя и для них нет проблем с компиля- двухбуквенные обозначений стран согласно ISO 3166.
цией, в то время как, если установка программы сложнее
привычного «yum install имя_программы», то число её поль- Заключение
зователей становится в разы меньше. Большое спасибо авторам за их программу. Надеюсь, что
В моём случае выбора не было. Одной ссылкой на сайт после этой статьи их ряды пополнятся, количество скомпи-
xneur [4] я бы не отделался, а выставлять ОС Linux с пло- лированных версий под разные операционные системы уве-
хой стороны, где ничего не работает, мне не хотелось, по- личится, а все остальные смогут использовать xneur.
этому программу пришлось ставить. Так как под рукой ока-
зался дистрибутив Fedora 8, на нём мне и пришлось демонс- 1. Домашняя страница программы Punto Switcher – http://punto.
трировать всю мощь Linux. yandex.ru (http://punto.ru, http://www.punto-switcher.ru).
2. О программе Punto Switcher – http://ru.wikipedia.org/wiki/
Установка xneur Punto_Switcher.
на Linux Fedora 8 3. Интервью с автором программы Punto Switcher – http://
Так как других подходящих версий нет – скачиваем [5] ста- www.kv.by/index2002042801.htm.
рую версию программы (для Fedora Core 7): 4. X Neural Switcher (Xneur) – http://www.xneur.ru.
5. С т а р ы е в е р с и и
wget http://dists.xneur.ru/release-0.9.0/rpm/Fedora/ ↵ программы xneur –
xneur-0.9.0-0.fc7.i386.rpm
wget http://dists.xneur.ru/release-0.9.0/rpm/Fedora/ ↵ http://xneur.ru/wiki/
gxneur-0.9.0-0.fc7.i386.rpm VersionsArchive. Рисунок 2. Значок программы xneur

№10, октябрь 2008 45


администрирование

Особенности обновления
контроллера домена
до Windows Server 2008

Андрей Бирюков

Более полугода прошло с момента официального выхода операционной системы


Windows Server 2008. Многие уже, наверное, задумываются об обновлении своих серверов.
Рассмотрим некоторые особенности перехода на новую операционную систему.

46
администрирование

О
бновление программных продуктов традиционно Но перед началом обновления давайте определимся
является головной болью практически всех сис- с редакциями операционной системы, на которые вы може-
темных администраторов. Многие администраторы те перейти. В таблице я привел варианты обновления в за-
стараются до последнего откладывать обновление свое- висимости от редакции операционной системы.
го программного обеспечения. Так, например, мне прихо- Как видно из таблицы, редакцию Standard Edition мож-
дилось еще совсем недавно видеть сервера под управле- но обновить как до Standard, так и до Enterprise-версии
нием Windows NT 4.0, почтовые системы под Exchange 5.5 Windows Server 2008. Но в нашем случае мы будем исполь-
или MS SQL 7.0 в промышленной эксплуатации. В качестве зовать редакцию Standard Edition.
обоснования такого консерватизма системные админист-
раторы часто приводят очень простой довод – все и так ра- Готовимся к худшему
ботает. Бесспорно, в этом есть здравый смысл, ведь если Прежде чем начать процесс обновления, необходимо со-
система нормально функционирует и отвечает всем тре- вершить рутинные, но необходимые действия. Нужно вы-
бованиям бизнеса, то менять ее зачастую оказывается се- полнить резервное копирование данных.
бе дороже. Для контроллера домена можно как минимум вос-
Но вендоры в свою очередь стараются всеми возмож- пользоваться штатной утилитой операционной системы –
ными средствами заставить клиентов переходить на но- Ntbackup. С ее помощью можно сделать копию всех сис-
вые версии. Политика Microsoft в этом отношении, на мой темных настроек (System State). Хотя, конечно, более на-
взгляд, излишне агрессивна. Вспомните хотя бы историю дежным, на мой взгляд, способом является полная копия
с попытками компании завершить продажи Windows XP образа диска с помощью таких утилит, как Acronis True
в пользу Vista, таким образом вынудив многих производи- Image. Некоторые умельцы используют в качестве ре-
телей оборудования и программного обеспечения перейти зервной копии один из двух дисков в «зеркале» RAID‑1,
на новую версию операционной системы. Однако обсужде- при этом на втором диске производя обновление. Но по-
ние политики корпорации Microsoft не является темой се- добные эксперименты уже на любителя, главное чтобы у
годняшней статьи. вас была резервная копия операционной системы вашего
Когда речь идет об обновлении не рядового сервера, контроллера домена.
а контроллера домена, на первый план выходят техничес- Но одного только бэкапа недостаточно, лучше обеспе-
кие и функциональные преимущества. Такие как RODC чить отказоустойчивость. У вас в сети должен быть резерв-
(Read Only Domain Controller) – контроллеры домена, до- ный контроллер домена. Проверьте его работоспособность,
ступные только для чтения, служба LDS (Lightweight Directory перенесите на него роль глобального каталога, затем от-
Services), которая позволяет использовать возможнос- ключив основной контроллер от сети.
ти LDAP без необходимости развертывать домен Active Если все прошло успешно, то ваш сервер готов к об-
Directory, средство управления идентификацией пользо- новлению.
вателей Federation Services и другие. Возможность исполь-
зования данного функционала является хорошим стиму- Подготовительные работы
лом к переходу на новую версию операционной системы Прежде всего установим в DVD-привод установочный
Windows Server 2008. диск с операционной системой. Далее необходимо запус-
тить утилиты для подготовки домена и леса Active Directory.
Постановка задачи Для этого перейдите на DVD-привод, например, выполнив
Итак, предположим, что у вас имеется парк серверов, ра- команду:
ботающих под управлением Windows Server 2003, и вам не-
обходимо обновить их до Windows Server 2008. cd t:\sources\adprep
Сразу скажу: в этой статье будет рассмотрено обновле-
ние только для операционной системы, что касается при- После этого нужно запустить команду adprep с различны-
ложений, то, возможно, обновление наиболее популярных ми параметрами:
из них будет рассматриваться в следующих статьях. В ка- n adprep /forestprep – команда выполняет подготовку ле-
честве обновляемого сервера у нас будет выступать сер- са к обновлению контроллера домена;
вер контроллера домена Active Directory. Конечно, лучшим n adprep /domainprep – подготовка домена к обновле-
решением была бы установка «чистого» сервера Windows нию;
Server 2008 и последу-
ющее его включение Совместимость версий Windows 2003 и Windows 2008
в существующий домен Вы используете сейчас: Можно обновиться до:
с повышением до конт- Windows Server 2003 R2 Standard Edition Full installation of Windows Server 2008 Standard (with or without Hyper-V)
роллера домена, но мы Windows Server 2003 Standard Edition with Service Pack 1 (SP1) Full installation of Windows Server 2008 Enterprise (with or without Hyper-V)
будем предполагать, Windows Server 2003 Standard Edition with Service Pack 2 (SP2)
что у нас нет оборудо- Windows Server 2003 R2 Enterprise Edition Full installation of Windows Server 2008 Enterprise (with or without Hyper-V)
Windows Server 2003 Enterprise Edition with Service Pack 1 (SP1)
вания для такой уста- Windows Server 2003 Enterprise Edition with Service Pack 2 (SP2)
новки и поэтому нам
Windows Server 2003 R2 Datacenter Edition Full installation of Windows Server 2008 Datacenter (with or without Hyper-V)
необходимо выполнить Windows Server 2003 Datacenter Edition with Service Pack 1 (SP1)
именно обновление. Windows Server 2003 Datacenter Edition with Service Pack 2 (SP2)

№10, октябрь 2008 47


администрирование

Рисунок 1. Установка обновлений Рисунок 2. Выбор режима установки

n adprep /rodcprep – эта команда не является обязатель- тановку последних обновлений (естественно, если ваш сер-
ной, она требуется, если вы планируете сделать впос- вер подключен к Интернету). Я не стал совмещать две та-
ледствии Read Only Domain Controller. кие важные задачи, как установка заплаток и обновление
операционной системы. Поэтому обновления мы устано-
Пока эти команды выполняются, я хотел бы сделать не- вим потом (см. рис. 1).
большое отступление и пояснить, что такое RODC. Конт- На следующем шаге вам необходимо указать актива-
роллеры домена только для чтения предназначены для тех ционный ключ продукта. Затем принимаем условия лицен-
мест, где нельзя гарантировать физическую безопасность зионного соглашения.
контроллера домена, где подключение к сети отрицатель- Если все предыдущие шаги были аналогичны обычному
но сказывается на производительности и где на контрол- режиму установки, то следующий шаг будет немного отли-
лерах домена выполняются другие приложения. Это еще чаться (см. рис. 2). Выбираем режим Upgrade. После этого
один довод для перехода на Windows Server 2008. вас предупредят о проблемах совместимости оборудова-
Между тем подготовка домена и леса благополучно за- ния и начнется процесс установки.
вершилась, и мы можем продолжать обновление. В случае В целом следует отметить, что по сравнению с предыду-
если возникли какие-либо проблемы, лучше всего обра- щими версиями операционной системы Windows 2000/2003
титься к базе знаний Microsoft TechNet. здесь задается гораздо меньше вопросов, к тому же все они
задаются перед началом установки, а не во время. Это поз-
Установка воляет не сидеть около сервера все это время, а заняться
Теперь запускаем установку операционной системы. более важными делами.
На первом же шаге вам будет предложено произвести ус- В процессе установки и обновления вас ждет несколь-
ко перезагрузок (к сожалению, от этой
особенности инсталляции операцион-
ных систем от Microsoft, Windows Server
2008 сервер так и не избавился).
Итак, если по завершении обновле-
ния ваш сервер благополучно функци-
онирует, пользователи успешно авто-
ризуются в домене и другие контрол-
леры без проблем выполняют репли-
кации, то можно вас поздравить и вся
оставшаяся часть статьи к вам не от-
носится.
Но что делать, если возникли ка-
кие-то проблемы и все работает не так
как раньше?
В случае если сервер вообще
не загружается, лучшим вариантом бу-
дет восстановление из резервной ко-
пии, одним из тех способов, о которых
я упоминал в начале статьи. Надеюсь,
Рисунок 3. Наличие роли глобального каталога на сервере вы не пренебрегли данным советом!

48
администрирование
Непредвиденные сложности
А что делать, если сервер загрузился, но работает как-то
не так? Прежде всего необходимо проверить журнал собы-
тий на наличие сообщений об ошибках. Для этого нужно
зайти в раздел Administrative Tools и выбрать Event Viewer.
Размещение журнала событий Event Viewer аналогично
предыдущим версиям Windows Server, а вот сам журнал не-
сколько изменился. Добавились функции различной филь-
трации и поиска.
Итак, какие типовые ошибки можно найти в журнале
событий контроллера домена?
Ошибка 1126 Рисунок 4. Проверка соединения с сервером глобального каталога
ID: 1126
Source: Microsoft-Windows-ActiveDirectory_DomainService
Version: 6.0
Symbolic Name: DIRLOG_GCVERIFY_ERROR бы полностью удостовериться в том, что соединение меж-
Message: Unable to establish connection with global catalog. (Internal DSID %1).
ду контроллером домена и сервером глобального катало-
Данная ошибка сообщает о невозможности установки га восстановлено, можно воспользоваться командой nltest.
связи с сервером глобального каталога. Решений данной Для этого откройте командную строку и введите:
проблемы может быть несколько, в зависимости от струк-
туры вашего каталога Active Directory. Nltest /server:Имя_сервера /dsgetdc:Имя_домена /gc /force
Во-первых, проверьте наличие соединения с сервером,
выполняющим роль глобального каталога. Возможно, пос- где:
ле обновления на Windows Server 2008 вы не установили n Имя_сервера – это имя сервера глобального каталога;
драйвера для сетевой карты или установили излишне жес- n Имя_домена – это домен Active Directory.
ткие настройки для межсетевого экрана сервера. Провер-
ку можно выполнить с помощью команды ping. В результате успешного выполнения команды на экран
Во-вторых, проверьте наличие хотя бы одного сервера будет выведена информация о данном сервере. Наличие
глобального каталога в лесу. Сделать это можно с помощью в разделе Flags записи GC говорит о том, что данный сер-
консоли dssite.msc или в разделе Active Directory Sites and вер содержит роль Global Catalog (см. рис. 4).
Services. Только для этого вам потребуются права пользо- На примере проблем с доступом к серверу глобального
вателя из группы Domain Admins. Далее выбираем раздел каталога я рассмотрел одну из типичных проблем работы
Default First Site Name, сервер, который должен являться Active Directory после обновления на версию 2008. Поэтому
глобальным каталогом и NTDS Settings. Далее выбираем для решения проблем с Active Directory и Windows Server 2008
Properties и смотрим, является ли сервер глобальным ка- я рекомендую обратиться на Microsoft TecNet [2].
талогом, если нет, то, возможно, имеет смысл сделать его Рассмотрев процесс обновления контроллера доме-
таковым (см. рис. 3). на Windows Server 2003 до версии 2008, а также типовые
Но тут не стоит забывать о «подводных камнях», а имен- сложности, которые могут возникнуть в процессе установ-
но, сервер, который является глобальным каталогом, ки, я завершаю эту статью. Надеюсь, изложенная инфор-
не должен содержать роли FSMO (Flexible Single Master мация будет полезна вам в работе.
Operations). В случае если он содержит данную роль, вам
будет выведено предупреждение. 1. http://blog.jemm.net/2008/02/10/windows-server-2008-upgrade‑tips.
Еще одним поводом для появления ошибки 1126 может 2. http://technet.microsoft.com/en-us/library/cc753935.aspx – раз-
стать отсутствие запущенной службы NTDS Service на сер- дел Troubleshooting в документации по Windows Server 2008.
вере глобального каталога. Для просмотра состояния дан-
ного сервиса воспользуйтесь командой sc query ntds. В стро-
ке STATE вы увидите его текущее состояние. Для запуска
используйте команду net start ntds.
И еще одной причиной для появления данной ошибки
является неверный номер порта для установки соединения
с сервером глобального каталога. Выявить ее можно сле-
дующим образом. Откройте консоль Active Directory Users
and Computers. Далее выбираем Change Domain Controller,
затем Change Directory Server. После этого необходимо ука-
зать сервер DC и порт. Далее следите за значением поля
Status. Если изменения вступили в силу, то значение Pending
должно измениться на значение Online. Появление значе-
ния Unavailable должно заставить задуматься о настрой-
ках сети между серверами, скорее всего, межсетевой эк-
ран блокирует соединение по данному порту. Для того что-

№10, октябрь 2008 49


администрирование

Настраиваем подключения
к удаленному рабочему столу

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

О
рганизуя работу домена, сис- тя набор прав административных за- Remote Desktop Protocol
темный администратор выде- писей между собой может отличаться. RDP (Remote Desktop Protocol, прото-
ляет группу привилегированных Управление серверами в круп- кол удалённого рабочего стола) – про-
пользователей среди прочих. К ним от- ных сетях осуществляется с помощью токол прикладного уровня, использую-
носятся системные администраторы, терминального сервера. Особенности щийся для создания удаленной работы
специалисты системной поддержки. его настройки выходят за рамки дан- с компьютером в терминальном режи-
Как правило, такие сотрудники имеют ной статьи. ме. По умолчанию используется порт
две учетные записи: рядового пользо- На рабочей станции для входа TCP 3389. В настоящее время исполь-
вателя, которую используют для еже- на удаленный компьютер необходимо зуется 6-я версия протокола.
дневной работы, и запись, наделенную настроить соединение. О том, как ав- Для создания удаленного обеспе-
привилегиями. Для краткости изложе- томатизировать этот процесс, пойдет чения используется Remote Desktop
ния назовем ее административной, хо- речь в этой статье. Connection или Terminal Services Client

50
администрирование
(TSC). Последнюю версию Remote
Desktop Connection можно загру-
зить с сайта Microsoft: http://download.
microsoft.com/download/8/e/8/8e88f947-
3 b 9 5 - 4 9 b 8 - a76 d - b 6 47 b b 8 6 e 4 b 4 /
MSRDPCLI.EXE.

Подключение
к удаленному
рабочему столу
Для подключения к удаленному ра-
бочему столу необходимо запустить
соответствующий мастер. Для это-
го необходимо запустить «Start →
Programs → Standards → Connect to
remote desktop».
Если программа запускается впер-
вые, то список серверов пуст. Для под-
ключения к какому-либо серверу необ- Рисунок 1. Список серверов с удаленными рабочими столами
ходимо ввести его имя в поле «Ком-
пьютер» (Computer) и нажать клавишу «Ввод» (Enter). В это по умолчанию вкладке «Общие», в разделе «Параметры
время в ветви реестра HCKU\Software\Microsoft\Terminal подключения» нажмите на кнопку «Сохранить» или «Со-
Server Client\Default будет создан строковый параметр хранить как…». При нажатии на кнопку «Сохранить» теку-
MRU0. Его значение – введенное имя сервера. щая конфигурация мастера будет сохранена в файле Default.
Каждый новый сервер будет автоматически добавлять- rdp в каталоге %UserProfile%\Мои Документы (см. рис. 3).
ся в этот список (см. рис. 1) в качестве значений парамет- В этом случае создается скрытый файл Default.rdp. Если
ра MRU1, MRU2 и т. д. для сохранения конфигурации используется кнопка «Сохра-
При нажатии на кнопку Connect (подключение) будет вы- нить как», то пользователю выдается стандартное диалого-
ведено окно с запросом имени и пароля администратора, вое окно, в котором он может изменить имя и путь к файлу.
с привилегиями которого совершается вход на сервер. По умолчанию предлагается сохранить файл под именем
Многие системные администраторы используют имен- Default в каталоге %UserProfile%\Мои Документы.
но этот способ подключения к серверам. Он прост и удобен, Для коррекции созданного RDP-файла нужно в разде-
пока серверов мало. Когда их количество велико, их имена ле «Параметры подключения» вкладки «Общие» нажать
меняются в связи с различными обстоятельствами, то са- на кнопку «Открыть…». В появившемся диалоговом окне
мое разумное в сложившейся ситуации создать несколько выберите нужный файл и нажмите «Открыть». Настройки,
файлов конфигурации, воспользовавшись дополнитель- сохраненные в этом файле, будут перенесены во все пара-
ными параметрами. метры, расположенные во вкладках мастера настройки.
Замечание. Часть настроек тесно перекликается с ус-
RDP-файл тановками в каталоге Active Directory. Разница заклю-
RDP-файл – это текстовый файл (см. рис. 2), содержащий чается в том, что настрой-
настройки подключения к заданному серверу. Для каждо- ки, установленные в Active
го сервера этот файл индивидуален. По своей структуре Directory, действительны для
любая строка файла состоит из трех частей: указанного пользователя;
n Название параметра – все параметры пишутся строч- настройки, установленные
ными буквами, а их названия стандартизованы (см. таб- мастером, действительны
лицу 1). Названия параметров стандартизованы. Напри- для указанного удаленного
мер, screen mode id. компьютера. При этом кон-
n Идентификатор – принимает два значения i и s. фигурация может не зави-
n Значение параметра – задается в тестовом или число- сеть от учетной записи поль-
вом виде в зависимости от параметра. Значение пара- зователя.
метра «*» (звездочка) обозначает выбор всех возмож-
ных значений данного параметра. В некоторых случа- Дополнительные
ях значение параметра может быть неопределено. параметры
подключения
Части строки разделены между собой символом «:» к удаленному
(двоеточие). рабочему столу
Для создания RDP-файла необходимо вывести на эк- Дополнительные парамет-
ран списки дополнительных параметров, нажав на кноп- ры настройки подключения
Рисунок 2. Фрагмент
ку «Параметры >>» в правом нижнем углу. В появившейся к удаленному рабочему сто- RDP-файла

№10, октябрь 2008 51


администрирование

Рисунок 3. Создание RDP-файла Рисунок 4. Вкладка «Экран»

лу для удобства логически разделены Поскольку многие параметры пере- же присутствует один параметр вне
на несколько вкладок: кликаются с настройками терминаль- группы.
n Общие – указываются параметры ной сессии пользователя в каталоге В группе «Размер удаленного рабо-
входа на удаленный компьютер. Active Directory, то для полного пред- чего стола» задается разрешение эк-
n Экран – задаются размер и глуби- ставления картины читателем уделим рана удаленно подключаемого рабоче-
на цвета создаваемого окна, в ко- внимание одноименным параметрам го стола. Как ни странно, оно задается
тором отображается удаленный ра- в каталоге Active Directory. тремя параметрами (см. рис. 4):
бочий стол. n desktopwidth – ширина экрана в пик-
n Локальные ресурсы – осущест- Параметры вкладки «Общие» селях. Выбирается одно из доступ-
вляются управление звуковой кар- Часть функционала, а именно раздел ных значений, определенных виде-
ты, принтерами, буфером обмена «Параметры подключения», посвящен- оадаптером.
и настройка правил использова- ный созданию файла настроек с рас- n desktopheight – высота экрана
ния клавиатуры. ширением RDP, была описана в пре- в пикселях. Выбирается одно из до-
n Программы – настройка запуска дыдущем разделе. Рассмотрим под- ступных значений, определенных
сценария при входе на удаленный робнее оставшуюся вкладку «Пара- видеоадаптером.
компьютер. метры входа». n screen mode – режим отображения
n Дополнительно – настройка функ- На рис. 5 вместо значений пара- экрана (1 или 2). При установлен-
ционала рабочего стола подключа- метров указаны их названия в RDP- ном значении 2 устанавливается
емого удаленного компьютера в за- файле. Так, имени компьютера в этом максимально возможное разре-
висимости от скорости канала со- файле соответствует параметр full шение экрана. Если параметр при-
единения. address, а учетному имени пользова- нимает значение 1, то выбирается
n Подключение – настройка сетевых теля – параметр username (см. лис- одно из поддерживаемых разре-
параметров и параметров безопас- тинг 1). шений.
ности подключения.
Листинг 1. Фрагмент RDP-файла Во второй группе параметров –
для вкладки «Общие»
«Цветовая палитра». В выпадающем
username:s:ISLAND\TESLA списке требуется выбрать одну из цве-
full address:s:SUNRISE
товых палитр.
В соответствии с приведенным лис- В RDP-файле параметру session
тингом осуществляется подключение bpp присваивается одно из следую-
к серверу SUNRISE с помощью учет- щих значений:
ной записи TESLA в домене ISLAND. n 8 – соответствует 256-цветной цве-
товой палитре;
Параметры вкладки «Экран» n 15 – соответствует 15-битной цве-
В этой вкладке сосредоточены пара- товой палитре;
метры конфигурации отображения n 16 – соответствует 16-битной цве-
экрана подключаемого компьютера товой палитре;
на мониторе пользователя. n 24 – соответствует 24-битной цве-
Они условно разделены на две товой палитре;
группы: «Размер удаленного изобра- n 32 – соответствует 32-битной цве-
Рисунок 5. Вкладка «Общие» жения» и «Цветовая палитра». Так- товой палитре (по умолчанию).

52
администрирование
О тдел ьн о в ы н е с е н о у п рав л е -
ние отображением панели подклю-
чений при работе в полноэкран-
ном режиме. По умолчанию эта оп-
ция ак тивна, при этом параметр
displayconnectionbar = 1.
В листинге 2 приведен фрагмент
RDP-файла, касающийся управления
вкладкой «Экран». В нем установле-
но максимальное экранное разреше-
ние (1600х1200) для удаленного рабо-
чего стола с глубиной цвета 24 бита.
При этом отображение панели подклю-
чений при работе в полноэкранном ре- Рисунок 6. Вкладка «Локальные ресурсы»
жиме выключено.
Управление сочетанием n поддерживаемые самонастраива-
Листинг 2. Фрагмент RDP-файла клавиш Windows ющиеся устройства.
для вкладки «Экран»
Многие администраторы для удобс-
desktopwidth:i:1600 тва работы используют клавиатурные За состояние группы отвечает па-
desktopheight:i:1200
session bpp:i:32 сокращения. Правила использования раметр redirectcomports, принимаю-
screen mode:i:2 клавиатурных сокращений на уда- щий значение 0 или 1. По умолчанию
displayconnectionbar:i:0
ленном рабочем столе определяет- redirectcomports = 0.
ся в разделе «Использование соче- За конфиг урацию выбран-
Параметры вкладки таний клавиш Windows». Сделанные ных устройств отвечает параметр
«Локальные ресурсы» настройки сохраняются в RDP-файле drivestoreredirect. По умолчанию этот
В этой вкладке (см. рис. 6) настраи- в качестве одного из значений пара- параметр присутствует в RDP-файле
ваются правила подключения локаль- метра keyboardhook (см. таблицу 2). и имеет пустое значение. При выборе
ных ресурсов данной рабочей станции всех устройств он принимает значение
к удаленному рабочему столу. Настра- Настройка локальных устройств «*» (звездочка). Если выделены конк-
ивается возможность печати с удален- Настройка локальных устройств, по- ретные устройства, то они перечисля-
ного ресурса, управление звуком, оп- жалуй, самый объемный раздел из ются через запятую (см. листинг 3).
ределяются правила работы с клави- всех присутствующих на этой вклад- За конфигурацию поддерживаю-
атурой и т. д. Управление основны- ке. Управление подключением при- щих самонастраивающихся устройств
ми ресурсами находится во вкладке, нтеров (redirectprinters = 0 | 1) и буфера отвечает параметр redirectpostdevices.
доступ к второстепенным осущест- обмена (redirectclipboard = 0 | 1) нахо- По умолчанию ни одна из опций дан-
вляется нажатием на кнопку «Под- дятся на этой вкладке. Оба параметра ного параметра не выбрана, соот-
робнее…». по умолчанию активированы, то есть ветственно значение параметра рав-
К основным ресурсам относятся: значение параметров равно единице. но нулю.
n Настройка звука на удаленном ком- Для доступа к остальным вкладкам В листинге 3 приведен пример кон-
пьютере. необходимо нажать на кнопку «Под- фигурации локальных ресурсов со сле-
n Определение поведения клавиату- робнее…» (см. рис. 6). дующими значениями:
ры. В появившемся окне присутствуют n звук на удаленном компьютере пе-
n Подключение принтеров. две группы параметров: смарт-карты реносится на этот компьютер;
n Управление буфером обмена. и последовательные порты. n клавиатурные сочетания Windows
Управление смарт-картами по используются только в полноэкран-
Управление звуком умолчанию активировано парамет- ном режиме;
на удаленном компьютере ром redirectsmartcard  = 1. Параметр n во время удаленного сеанса ис-
Настройка управления звуком осу- redirectsmartcard принимает одно пользуется буфер обмена, все
ществляется выбором одного из трех из двух значений: 0 или 1. принтеры отключены;
доступных в списке режимов. В RDP- Вторая группа (поддерживаемые n разрешено использование смарт-
файле за это отвечает параметр устройства) параметров условно раз- карты;
audiomode, принимающий одно из трех делена на две части: n в качестве устройств активирова-
возможных значений (см. таблицу 1). n устройства; ны диски A:\, С:\, E:\;
Таблица 1. Настройка звука на удаленном компьютере Таблица 2. Настройка использования сочетаний клавиш Windows
Настройка Значение параметра audiomode Настройка Значение параметра audiomode
Перенести на этот компьютер 0 (по умолчанию) На локальном компьютере 0
Не воспроизводить 2 На удаленном компьютере 1
Оставить на удаленном компьютере 1 Только в полноэкранном режиме 2 (по умолчанию)

№10, октябрь 2008 53


администрирование
висят от скорости соединения. На вы-
бор предлагается несколько вариан-
тов настройки (см. таблицу 3). Каж-
дому приведенному из семи парамет-
ров в RDP-файле соответствует пара-
метр, принимающий флаговое значе-
ние (TRUE / FALSE). По умолчанию вы-
бран набор «Модем 56 Кбит/с». Кроме
того, отдельно вынесен параметр уп-
равления восстановлением подклю-
чения при разрыве связи. По умол-
чанию эта функция активирована
(autoreconnection enabled = 1).
В листинге 5 приведен фрагмент
управления вкладкой «Дополнитель-
Рисунок 7. Вкладка «Программы» Рисунок 8. Вкладка «Подключение» но». В соответствии с ним выбран ре-
жим по умолчанию «Модем 56 Кбит/с»
n все самонастраивающиеся уст- мо задать полный путь к запускае- с возможностью восстанавливать со-
ройства отключены. мому файлу (параметр alternate shell) единение при нарушении связи.
и указать рабочую папку (параметр
Листинг 3. Фрагмент RDP-файла shell working directory). По умолчанию Листинг 5. Фрагмент RDP-файла
для вкладки «Экран» для вкладки «Программы»
ни один из этих параметров не задан:
audiomode:i:0 remoteapplicationmode = 0, а остальным disable wallpaper:i:0
keyboardhook:i:2 allow font smoothing:i:1
redirectprinters:i:0 двум параметрам присвоены «пустые» allow desktop composition:i:1
redirectclipboard:i:1 значения (см. листинг 4). disable cursor setting:i:0
redirectcomports:i:0 disable full window drag:i:0
redirectsmartcards:i:1 disable menu anims:i:0
drivestoredirect:s:A:;C:;E:; Листинг 4. Фрагмент RDP-файла disable themes:i:0
redirectposdevices:i:0 для вкладки «Программы» bitmapcachepersistenable:i:1
autoreconnection enabled:i:1
remoteapplicationmode:i:0
alternate shell:s:
Параметры вкладки shell working directory:s:
«Программы» Параметры вкладки
Аналогично настройкам терминаль- «Подключение»
ной сессии в каталоге Active Directory Параметры вкладки В последней из вкладок осуществля-
во время подк лючения к удален- «Дополнительно» ется настройка подключения. Все па-
ному рабочему столу можно обес- В этой вкладке (см. рис. 9) сосредото- раметры условно разделены на две
печить запуск указанной програм- чены дополнительные параметры уп- группы (см. рис. 8): «Проверка подлин-
мы (см. рис. 7). Для этого необходи- равления рабочим столом, которые за- ности сервера» и «Подключение с лю-
бого места».
В проверке подлинности подклю-
чения если результат проверки не от-
вечает минимальным требованиям
политики, то осуществляется одно
из трех действий, которое в RDP-фай-
ле описывается значением параметра
authentication level:
n Подключение без предупреждения
(authentication level = 0).
n Предупреждение (authentication
level = 2).
n Н е с о е д и н я т ь (aut h e nt i c at i o n
level = 1).

В разделе «Подключение из любо-


го места» при нажатии на кнопку «Па-
раметры» появляется диалоговое окно,
в котором сосредоточены параметры
подключения к удаленному рабочему
столу через шлюз (см. рис. 10).
Рисунок 9. Вкладка «Локальные ресурсы» Появившееся диалоговое окно со-

54
администрирование
Таблица 3. Наборы дополнительных возможностей
Возможность Параметр в RDP-файле Набор
Модем   Модем   Высокоскоростное   Локальная сеть   Особый
28,8 Кбит/с 56 Кбит/с (128 Кбит/с – 1,5 Кбит/с) (10 Мбит и выше) (по умолчанию)
Фоновый рисунок рабочего стола disable wallpaper 1 1 1 0 1
Сглаживание шрифтов allow font smoothing 0 0 0 1 0
Композиция рабочего стола allow desktop composition 0 0 1 1 0
Отображать содержимое окна при перетаскивании disable full window drag 1 1 0 0 1
Визуальные эффекты при отображении меню и окон disable menu anims 1 1 0 0 1
Темы disable themes 1 0 0 0 1
Кэширование графики bitmapcachepersistenable 1 1 1 1 1

держит две группы параметров, при- за служб терминалов», значение пара- Заключение
чем состояние второй группы зависит метра gatewaycredentialsource прини- Мы рассмотрели соотношение всех
от настроек, сделанных в первой. мает значение, равное 4. вкладок с параметрами в RDP-файле.
Группа «Параметры подключения» За настройку параметра «Не ис- Решение о том, как лучше использо-
имеет один из трех режимов, которые пользовать шлюз терминалов для вать данную информацию, оставляю
в RDP-файле определяются двумя локальных адресов» отвечает пара- на ваше усмотрение. Со своей сто-
параметрами: negotiate security layers метр gatewayusagemethod. Если па- роны, рекомендую написать сцена-
и gatewayprofileusagemethod (см. таб- раметр подк лючения «Использо - рий, который будет создавать на ра-
лицу 4). Несмотря на то что некото- вать следующие параметры шлю- бочем столе сотрудника, входяще-
рые параметры назначаются толь- за служб терминала» не активен, го в группу безопасности каталога
ко в режиме «Использовать следую- то gatewayusagemethod = 0. При ак- Active Directory, набор необходимых
щие параметры шлюза служб терми- тивации этого режима по умолча- ему ярлыков. Если этот сценарий за-
налов», их значения обнуляются, что- нию параметр приобретает значе- пускать во время регистрации ком-
бы не создавать проблем с подключе- ние 2 (вкл). Если снять флажок с оп- пьютера в сети, то это может быть не-
нием. Параметр имеет «пустое» значе- ции «Не использовать шлюз тер- плохим шагом на пути к автоматичес-
ние, если его значение – строка или 0, миналов для локальных адресов», кой подготовке рабочего места адми-
если число. то gatewayusagemethod = 1. нистратора.
Уделим особое внимание второму
способу подключения – «Использовать Таблица 4. Настройка параметров подключения с любого места
следующие параметры шлюза служб
Параметр / Режим Автоматически Использовать следующие Не использовать
терминалов», поскольку значения для определять параметры параметры шлюза служб шлюз служб
всех остальных параметров назначают- шлюза служб терминалов терминалов терминалов

ся именно в этом режиме. Изменение Negotiate security method 1 0 1


настроек в разделе «Параметры входа» gatewayprofileusagemethod 0 1 1
доступно только в этом режиме.
Рассмотрим дополнительные на-
стройки соединения. Главными из них
являются имя сервера и метод вхо-
да. По умолчанию параметр «Имя
сервера» пустой. В RDP-файле ему
соответствует строковый параметр
gatewayhostname. Второй параметр –
метод входа, который принимает од-
но из следующих значений:
n Разрешить отложить этот выбор
(gatewaycredentialsource = 4).
n З а п р а ш и в ат ь п а р ол ь (NT LM)
(gatewaycredentialsource = 0).
n Смарт-карты (gatewaycredential
source = 1).

По умолчанию выбран первый


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

№10, октябрь 2008 55


администрирование

Первый взгляд
на MySQL 6

Кирилл Сухов
В апреле 2008 года ввиду активно обсуждавшейся новости о покупке компании MySQL AB
корпорацией Sun Microsystems как-то без особого внимания прошло сообщение о том, что
активно разрабатываемая версия СУБД 5.2 выделена в отдельную ветку и соответственно
переименована в MySQL 6.0. Прошло уже полгода, и это изделие, носящее в данный момент
статус альфа-версии, можно рассмотреть и оценить новые возможности и предстоящие
изменения.

Ч
то собой представляет самая пе- ла приобретена корпорацией Oracle, поточности и оптимизации для ра-
редовая версия самого распро- и дальнейшее развитие этого движ- боты с большим количеством опе-
странённого сервера баз данных? ка лежит теперь в русле проприетар- ративной памяти.
Было ли в нововведениях что-то такое, ной лицензии. n Полная (полностью поддержива-
что заставило поменять первую циф- Альфа-версия хранилища данных ющая ACID-стандарт) поддержка
ру? Ниже приведён краткий обзор, ох- Falcon, призванного заменить InnoDB, транзакций, поддержка конкурен-
ватывающий основные нововведения должна была появиться в MySQL 5.2, тных транзакций.
MySQL 6. но в связи с изменениями в нумерации n Расширенные возможности рабо-
версий доступна теперь в ветке 6.0.x. ты с B-Tree-индексами.
Новое хранилище При разработке нового хранилища n Возможность хранить информацию
данных Falcon данных ставилась задача преодолеть на диске в сжатом виде, осущест-
До последнего времени самыми попу- функциональные ограничения таблиц вляя компрессию и декомпрессию
лярными типами таблиц в MySQL оста- MyISAM, не потеряв при этом в про- «на лету».
ются MyISAM и InnoDB. Первые отли- изводительности. Было запланиро- n Интеллектуальное управление раз-
чаются высочайшей производитель- вано реализовать следующий функ- мещением данных на диске. Диско-
ностью при простых запросах на вы- ционал: вое пространство под файлы дан-
борку. Именно эти хранилища данных n Хранение вс ех типов д анных ных и логов может быть автомати-
(а также их предшественники – табли- MySQL. чески перераспределено.
цы ISAM) сделали данную СУБД столь n Технология Multi Version Concurrency n Кэширование данных и индексов.
популярной. Недостатком этих таблиц Control (MVCC), позволяющая n Неявные точки сохранения (Implicit
являются всё ещё малые возможнос- строкам и таблицам обновлять- savepoints) – автоматические точки
ти и ограничения. С таблицами InnoDB ся без блокировки уровня строк. сохранения, гарантирующие целос-
всё вроде бы гораздо лучше – там нет Практически это позволяет силь- тность данных.
ограничений MyISAM (таких, напри- но уменьшить или полностью ус-
мер, как блокировки на уровне табли- транить блокировку при обновле- Полный список возможностей
цы при вставке), поддерживаются все нии. хранилища данных Falcon дост у-
типы транзакций. Правда, за всё это n Система «гибких» (flexible) блокиро- пен в руководстве MySQL 6 (http://
приходится платить меньшей произ- вок, включающая гибкую установ- dev.mysql.com /doc /refman /6.0/en /
водительностью, но основная пробле- ку уровня блокировки и распозна- se‑falcon-features.html).
ма не в этом. вание deadlock-ситуаций. Немного о грустном. Далеко не все
В октябре 2005 года разработ- n Оптимизация под современные эти функции реализованы в текущей
чик InnoDB, компания Innobase, бы- процессоры с поддержкой много- версии Falcone, и какие из них так и ос-

56
администрирование
танутся только в проекте к моменту релиза шестой версии, Важно, что команды BACKUP DATABASE и RESTORE
пока неизвестно. работают независимо от типа таблиц. Рассмотрим приме-
ры работы этих команд.
Хранилище данных Maria Создание резервной копии:
Разработка этого движка велась одним из создателей
MySQL, Майклом Вайдениусом (Michael Widenius), около BACKUP DATABASE test_db TO '/tmp/backupfile';
трёх лет и была прямо вызвана действиями Oracle (по по-
купке Innobase). Тем не менее таблицы Maria стали логи- Восстановление:
ческим развитием таблиц MyISAM, расширенной версией
которых данный движок по сути и является. RESTORE FROM '/tmp/backupfile';
Главное, что отличает «Марию» от своего прародителя,
это наличие средств сохранения целостности данных пос- Работа с несколькими базами данных:
ле краха. Реализовано это посредством ведения лога опе-
рации: после катастрофы производится откат результатов BACKUP DATABASE db1, db2 TO '/tmp/db1-db2.backup';
BACKUP DATABASE * TO '/tmp/all.backup';
выполнения текущей операции или возврат в состояние
до команды LOCK TABLES. В команде BACKUP DATABASE предусмотрена опция
Использование лога операций даёт возможность вос- WITH COMPRESSION, позволяющая получать резервные
становления состояния БД из любой точки лога, и это вос- копии в архивированном виде. Опция COMPRESSION_
становление может быть произведено после любых изме- ALGORITHM позволяет указать алгоритм сжатия (по умол-
нений таблиц, включая операции CREATE/DROP/RENAME/ чанию – gzip, к сожалению, на настоящий момент он же
TRUNCATE. Естественно, за использование лога приходит- и единственный доступный).
ся платить производительностью, поэтому планируется ре- В настоящее время команды BACKUP DATABASE
ализовать два режима операций – транзакционный и ре- и RESTORE имеют следующие ограничения:
жим работы без отражения в логе транзакций. Последний n BACKUP DATABASE не включает в резервную копию
может быть использован для некритичных данных. временные таблицы. Поддержка резервной копии таб-
Ведение лога позволяет создавать инкрементные бэка- личного пространства в таблицах типа ограничена ти-
пы таблиц посредством его периодического копирования. пом таблиц Falсon.
Кроме того, в новом движке введено расширение n Резервное копирование не касается баз данных MySQL
для всех типов данных MyISAM, формата rows-in-block, ко- и INFORMATION_SCHEMA.
торое использует страничный механизм хранения данных,
для кэширования данных в столбцах. Блочный механизм При использовании этих команд надо ясно осознавать,
хранения строк позволяет кэшировать данные построчно. что нет прямого способа расшифровать данные, получен-
Размер страницы данных в новом хранилище составит ные в результате резервного копирования, кроме их вос-
8 Kb (против 1 Кб в MyISAM), что позволяет достичь более становления командой RESTORE. Таким образом, вы прос-
высокой производительности для индексов по полям фик- то не имеете возможность узнать, что же именно у вас со-
сированного размера. хранилось.
Команды BACKUP DATABASE и RESTORE не могут быть
Резервное копирование и схема данных использованы в хранимых процедурах, функциях или триг-
В новой версии СУБД появились команды BACKUP герах. Они также не могут быть использованы как подго-
DATABASE и RESTORE, предназначенные соответствен- товленные выражения (prepared statements).
но для резервного копирования и восстановления базы Интересные изменения произошли в базе данных
данных. INFORMATION_SCHEMA, которая впервые появилась в пя-
Наверное, это нововведение было не менее ожидаемым, той версии СУБД. Это виртуальная БД, являющаяся набо-
чем новые хранилища данных. Первая из этих команд поз- ром представлений (views) к системной базе данных и пре-
воляет сделать резервную копию одной или нескольких баз доставляющая доступ к методанным баз данных, то есть
данных на определенный момент времени, вторая восста- к информации об их структуре, объектах (таблицах, пред-
навливает состояния БД на указанный момент. Восстанов- ставлениях, хранимых процедурах и т. д.) и типах данных.
ление из резервной копии может быть проведено одной ко- Теперь она дополнена таблицей PARAMETERS, содержа-
мандой с использованием бинарного лога для прояснения щей данные о параметрах и возвращаемых значениях функ-
момента возможной потери данных. Выполнение команд ций, а также о параметрах хранимых процедур. Информа-
BACKUP DATABASE и RESTORE может быть проведено ция о параметре представлена в той же форме, как и в по-
без перевода базы данных в режим offline или отключения ле param_list таблицы mysql.proc.
работающих клиентов. Разумеется, BACKUP DATABASE Второе дополнение касается таблицы ROUTINES, со-
блокирует такие операции, как drop table, но общее число держащей информацию о хранимых процедурах и функ-
блокируемых команд сведено к минимуму. В общем случае циях. В неё добавлены новые поля:
все блокировки касаются операторов языка определения n DATA_TYPE;
данных – Data Definition Language (DDL). Команда RESTORE n CHARACTER_MAXIMUM_LENGTH;
блокирует несколько больше операций, так как она переза- n CHARACTER_OCTET_LENGTH;
писывает данные и контекст работы базы данных. n NUMERIC_PRECISION;

№10, октябрь 2008 57


администрирование
n NUMERIC_SCALE; mysql> LOAD XML LOCAL INFILE 'person.xml'
-> INTO TABLE person
n CHARACTER_SET_NAME; -> ROWS IDENTIFIED BY '<person>';
n COLLATION_NAME.
И смотрим результат:
Все они содержат информацию о значении, возвраща-
Query OK, 6 rows affected (0.00 sec)
емом функцией. Records: 6 Deleted: 0 Skipped: 0 Warnings: 0

Поддержка XML
Пока ещё скромный XML-функционал дополнен новой ко- Что ещё?
мандой LOAD XML, загружающей данные из XML-файла n Введена поддержка дополнительных кодировок Unicode:
в таблицу БД. Команда дополняет уже имеющуюся в MySQL utf16, utf32, и 4-байтной utf8.
функцию XML-вывода, пример использования: n Появилась поддержка внешних комментариев для таб-
лиц, колонок и индексов.
shell> mysql --xml -e 'SELECT * FROM mytable' > file.xml n Команда RESET SLAVE больше не сбрасывает парамет-
ры соединения, как это было с момента её введения.
При выполнении команды LOAD XML INFILE по умолча- n Устранена логическая ошибка – команда LOCK TABLES
нию тег <row> интерпретируется как описание записи таб- для транзакционных таблиц больше не подтверждает
лицы БД, но этот параметр может быть изменён опцией транзакцию автоматически.
ROWS IDENTIFIED BY. n Кроме того, ряд изменений и дополнений коснулся клас-
Команда LOAD XML воспринимает три различных фор- терного варианта сервера MySQL.
мата XML:
n Имя атрибута тега как имя колонки (поля) и значение Полный список нововведений можно посмотреть в до-
атрибута как значение поля. кументации (http://dev.mysql.com/doc/refman/6.0/en/mysql-
nutshell.html).
<row column1="value1" column2="value2" .../>
Что останется в прошлом?
n Имя тега как имя поля и содержимое тега как значе- Как всегда, при переходе к новой версии продукта чем-то
ние. приходится жертвовать, а кое-что и сознательно отвергать.
Ниже приведён список устаревших конструкций, которым
<row> не нашлось места в новой версии сервера и их замены:
<column1>value1</column1>
<column2>value2</column2> n Ушла в прошлое системная переменная table_type (те-
</row> перь есть аналог storage_engine).
n Опция TYPE для хранилища данных, применяемая в ко-
n Атрибут name тега <field> как имя колонки и его содер- мандах CREATE TABLE и ALTER TABLE, заменена опци-
жимое как значение. ей ENGINE.
n Вместо SHOW TABLE TYPES теперь предполагается ис-
Рассмотрим пример работы команды (из руководства), пользовать SHOW ENGINES.
файл test.xml: n Вместо переменной log_bin_trust_routine_creators теперь
используем log_bin_trust_function_creators.
<?xml version="1.0"?> n Отменён формат команды TIMESTAMP(N).
<list>
<person person_id="1" fname="Pekka" lname="Nousiainen"/> n Туда же попали команды SHOW INNODB STATUS
<person person_id="2" fname="Jonas" lname="Oreland"/> и SHOW MUTEX STATUS (замена – SHOW ENGINE
<person person_id="3"><fname>Mikael</fname><lname> ↵
Ronström</lname></person> INNODB STATUS).
<person person_id="4"><fname>Lars</fname><lname> ↵ n Не используются больше LOAD TABLE ... FROM MASTER
Thalmann</lname></person>
<person><field name="person_id">5</field> ↵ и LOAD DATA FROM MASTER .
<field name= "fname">Tomas</field> ↵ n Отменена команда SHOW PLUGIN. Теперь следует ис-
<field name="lname">Ulin</field></person>
<person><field name="person_id">6</field> ↵ пользовать SHOW PLUGINS.
<field name="fname">Martin</field> ↵ n Отменены все опции установки параметров реплика-
<field name="lname">Sköld</field></person>
</list> ции вида: --master-xxx, вместо них теперь используется
команда CHANGE MASTER .
Сначала необходимо создать таблицу:
Вот собственно и всё, что нам пока обещано в но-
CREATE TABLE person ( вой версии популярной СУБД. Впрочем, можно заметить,
person_id INT NOT NULL PRIMARY KEY,
fname VARCHAR(40) NULL, что этого уже очень немало. Разработчики MySQL дела-
lname VARCHAR(40) NULL, ют всё, чтобы их продукт не только не отставал от вре-
created TIMESTAMP
); мени, но и стремительно догонял своих более солидных
конкурентов.
Теперь загружаем в таблицу значения из XML-файла Подождём выхода релиза MySQL 6 и оценим, насколь-
(поменяв тег записи по умолчанию): ко это им удалось.

58
bugtraq

Несколько уязвимостей Несколько уязвимостей


в IBM Lotus Quickr в Serv-U File Server
Программа: IBM Lotus Quickr версии до 8.1.0.1. Программа: Serv-U File Server 7.3.0.0, возможно, более
Опасность: Средняя. ранние версии.
Описание: 1. Две уязвимости существуют из-за того, что ре- Опасность: Средняя.
дактор способен удалить страницы, созданные другим Описание: 1. Уязвимость существует из-за недостаточ-
автором, а place manager способен удалить группу place ной проверки входных данных в службе FTP при переиме-
superuser. новании файлов. Удаленный пользователь может с помо-
2. Уязвимость существует из-за неизвестной ошибки щью символов обхода каталога перезаписать или создать
при обработке команды OpenDocument. Удаленный поль- произвольные файлы на системе.
зователь может с помощью специально сформированного Пример:
URL аварийно завершить работу сервера.
220 Serv-U FTP Server v7.2 ready...
URL производителя: www-306.ibm.com/software/lotus/ user test
products/quickr. 331 User name okay, need password.
Решение: Установите последнюю версию 8.1.0.1 с сайта pass test
230 User logged in, proceed.
производителя. rnfr any_exist_file.ext
350 File or directory exists, ready for destination name.
rnto ..\..\..\boot.ini
Несколько уязвимостей при обработке 250 RNTO command successful.
PIM-пакетов в Cisco IOS
Программа: Cisco IOS 12.x, Cisco IOS R12.x. 2. Уязвимость существует из-за ошибки в FTP-коман-
Опасность: Средняя. де STOU. Удаленный пользователь может с помощью спе-
Описание: 1. Уязвимость существует из-за ошибки при циально сформированного аргумента команды потребить
обработке пакетов-PIM (Protocol Independent Multicast). все доступные процессорные ресурсы.
Удаленный пользователь может с помощью специально Пример:
сформированного PIM-пакета вызвать перезагрузку уст-
220 Serv-U FTP Server v7.2 ready...
ройства. user test
2. Уязвимость существует из-за ошибки при обработ- 331 User name okay, need password.
pass test
ке пакетов-PIM (Protocol Independent Multicast). Удаленный 230 User logged in, proceed.
пользователь может с помощью специально сформиро- stou con:1
ванного PIM-пакета аварийно завершить работу устройст- quit
221 Goodbye, closing session.
ва. Уязвимости подвержены только маршрутизаторы Cisco
12000 Series (GSR). URL производителя: www.serv-u.com.
URL производителя: www.cisco.com. Решение: В настоящее время способов устранения уязви-
Решение: Установите исправление с сайта производителя. мости не существует.

Уязвимость при обработке SSL-пакетов Уязвимость при обработке L2TP-пакетов


в Cisco IOS в Cisco IOS
Программа: Cisco IOS 12.4(16)MR, 12.4(16)MR1, 12.4(16)MR2, Программа: Cisco IOS 12.2 и 12.4.
12.4(17). Опасность: Средняя.
Опасность: Средняя. Описание: Уязвимость существует из-за ошибки в L2TP
Описание: Уязвимость существует из-за ошибки при обра- mgmt-демоне. Удаленный пользователь может с помощью
ботке SSL-пакетов во время завершения SSL-сессии. Уда- специально сформированного L2TP-пакета вызвать пере-
ленный пользователь может вызвать перезагрузку уст- загрузку устройства.
ройства. URL производителя: www.cisco.com.
URL производителя: www.cisco.com. Решение: Установите исправление с сайта производителя.
Решение: Установите исправление с сайта производителя.
Отказ в обслуживании в Cisco IOS IPS
Отказ в обслуживании в Cisco IOS Программа: Cisco IOS 12.x, Cisco IOS R12.x.
Software Firewall Опасность: Средняя.
Программа: Cisco IOS 12.4(9)T. Описание: Уязвимость существует из-за ошибки при обра-
Опасность: Средняя. ботке определенных IPS-сигнатур, используемых в механиз-
Описание: Уязвимость существует из-за ошибки при обра- ме SERVICE.DNS. Удаленный пользователь может с помо-
ботке транзитных HTTP-пакетов при включенном Software щью специально сформированного сетевого трафика ава-
Firewall AIC (Application Inspection Control). Удаленный поль- рийно завершить работу устройства.
зователь может с помощью специально сформированных URL производителя: www.cisco.com.
HTTP-пакетов вызвать перезагрузку устройства. Решение: Установите исправление с сайта производителя.
URL производителя: www.cisco.com.
Решение: Установите исправление с сайта производителя. Составил Александр Антипов

№10, октябрь 2008 59


безопасность

Установка цепочки серверов сертификации


как часть внедрения PKI в домене
Часть 2

Станислав Шпак
В первой части статьи мы говорили о типах центров сертификации (Certificate Authority, СА),
их операционных параметрах и рассматривали установку и настройку корневого сервера
сертификации. Сегодня мы займемся установкой промежуточного и выпускающего СА –
для них процесс имеет свои особенности, которые надо учитывать при развертывании всей
цепочки серверов.

Установка ся от того, который использовался для тия нужно регистрировать, если возни-
промежуточного СА установки корневого СА. кает необходимость занесения в сер-
(SubCA) В первой части статьи было сказа- тификаты открытых ключей сведений
Так же, как и корневой, этот СА являет- но, что промежуточный СА использует- о правовых отношениях, при которых
ся изолированным, поэтому не должен ся, в частности, для назначения опера- электронный документ имеет юриди-
быть членом домена. Убедитесь, что вы ционных политик. В сертификатах ко- ческую силу. Зарегистрировать свой
окончательно определились с именем нечных субъектов политика указывает OID можно или на сайте iana.org (при
сервера (в нашем случае это SubCA), на условия, при которых сертификат этом OID вашей организации будет на-
поскольку после установки служб сер- был выпущен, и на цели, для которых чинаться на 1.3.6.1.4.1) или обратиться
тификации изменить его будет так- он может быть использован. Вы може- в ЗАО «Центральный телеграф», кото-
же нельзя. Несмотря на то что проме- те задавать для различных СА различ- рый является регистрирующей органи-
жуточный СА является подчиненным ные политики выпуска сертификатов, зацией для российской ветви между-
по отношению к корневому и насле- которые определяются посредством их народных идентификаторов объектов
дует многие параметры, нам все рав- OID (object identificator). OID представ- (OID префикс 1.2.643). Примечатель-
но потребуется перед установкой под- ляет собой серию разделенных точка- но, что на сайте телеграфа я не на-
готовить файл capolicy.inf и поместить ми чисел, например 2.5.29.32.0, и ис- шел упоминания о такой услуге, одна-
его в %Systemroot%. Сделать это не- пользуется для однозначной иденти- ко по ссылке из [1] можно найти нуж-
обходимо для того, чтобы позволить фикации объекта в каталогах, орга- ные контакты. Список уже зарегистри-
промежуточному СА использовать по- низуемых в соответствии с междуна- рованных в российской ветке OID мож-
литики выпуска сертификатов (issuing родными рекомендациями X.501, ко- но посмотреть по той же ссылке. Кро-
policies). По умолчанию такая возмож- торые регламентируют построение ка- ме того, существуют и зарезервиро-
ность отсутствует. Поэтому содержи- талогов при взаимодействии откры- ванные (или «общие) OID (как в при-
мое файла будет несколько отличать- тых систем. Свой OID для предприя- мере выше).

60
безопасность
Несмотря на то что в нашем примере мы не будем ис- не отображается. Чтобы проверить его наличие в локаль-
пользовать никаких операционных политик, все же надо ном хранилище, можно воспользоваться командой:
разрешить промежуточному СА обрабатывать политики
выпуска сертификатов, чтобы можно было в дальнейшем certutil –verifystore root
применять их на нижележащих СА в случае необходимос-
ти. Для этого существует политика с OID=2.5.29.32.0. По- После перечисления хранящихся локально сертифика-
этому наш файл capolicy.inf будет выглядеть следующим тов идет перечисление CRL – там мы должны увидеть ин-
образом: формацию о нашем CRL:
================ CRL 0 ================
[Version] Issuer:
Signature= "$Windows NT$" CN=RootCA
[PolicyStatementExtension] DC=dedicated
Policies = AllIssuancePolicy DC=root
Critical = FALSE CA Version: V0.0
[AllIssuancePolicy] CRL Number: CRL Number=4
OID = 2.5.29.32.0 CRL Hash(sha1): f8 ca 01 04 b7 fb 38 02 61 14 32 6f e3 84 19 04 97 12 52 eb

Важно: процедуру импорта нужно будет повторять каж-


Если вы обратитесь к первой части статьи [1] и посмот- дый раз при обновлении CRL и сертификата вышестоя-
рите на рисунок 2 (пример самоподписанного сертифика- щего СА.
та корневого СА), то в информации о сертификате в раз- Теперь можно приступать непосредственно к установ-
деле «This certificate is intended for the following purpose(s):» ке служб сертификации. Так же, как и для RootCA, сначала
(этот сертификат предназначен для следующих целей) мож- имеет смысл установить компоненты IIS и ASP.NET, чтобы
но увидеть два пункта: All issuance policies и All application иметь возможность в случае необходимости воспользовать-
policies. Корневой СА всегда выпускает сертификат, кото- ся выпуском сертификатов через веб-интерфейс.
рый разрешает применение операционных политик; выше- Установка во многом будет похожа на установку корне-
приведенный текст файла capolicy.inf позволяет сделать это вого СА. На первом шаге надо будет выбрать тип СА – в на-
и для подчиненного СА. шем случае это Stand-Alone Subordinate CA (изолированный
Для установки служб сертификации нам потребует- подчиненный центр сертификации) – и установить опцию
ся сертификат корневого СА и его CRL. Их надо забрать use custom setting to generate the key pair and CA certificate
с компьютера RootCA (напомню, что файл сертификата (использовать специальные параметры для генерации пары
RootCA_RootCA.crt находится в папке C:\CAConfig, а файл ключей и сертификата ЦС). На следующем шаге оставляем
RootCA.crl в папке C:\WINDOWS\system32\CertSrv\CertEnroll), все без изменений, кроме длины ключа шифрования – его
перенести на компьютер SubCA и импортировать в ло- стоит выбрать в 2048 бит. В качестве имени СА на следу-
кальное хранилище сертификатов. Импорт делается ко- ющем шаге вводим имя SubCA, в поле Distingueshed name
мандой: suffix (суффикс отличительного имени) вводим информа-
цию об операционном домене – в нашем случае это, так же
certutil –addstore –f Root RootCA_RootCA.crt как и для RootCA, будет DC=Dedicated,DC=Root. Обратите
certutil –addstore –f Root RootCA.crl
внимание, что поле Validity Period (период действия) зате-
Можно воспользоваться оснасткой Certificates (серти- нено и в нем содержится Determined by parent CA (опреде-
фикаты). В меню «Администрирование» панели управ- ляется вышестоящим СА). Шаг Certificate Database Setting
ления она отсутствует, и запустить ее можно, только до- (параметры базы данных для сертификатов) оставляем без
бавив через консоль mmc.exe, выбрав при инициализа- изменений, а вот на следующем шаге мы должны решить,
ции раздел «computer account» (учетная запись компью- на какой СА отправлять запрос сертификата (ведь мы уста-
тера). Выбрав в дереве слева ветвь Certificates надо в ме- навливаем подчиненный СА) или же сохранить его в файл
ню «View → Options» («Вид → Параметры») в разделе Show для дальнейшей ручной обработки. Поскольку и устанав-
the following (также показывать) вклю-
чить опцию Physical certificate stores
(физические хранилища). Затем рас-
крыть ветки «Trusted root certification
authorities → Registry → Certificates»
(«Доверенные корневые центры серти-
фикации → Реестр → Сертификаты»).
Нажать в правом окне правую кноп-
ку мыши, из контекстного меню вы-
брать «All Task → Import» («Все зада-
чи → Импорт») и далее следовать ука-
заниям мастера. В появившемся окне
обратите внимание на тип отображае-
мых файлов. Получившийся результат
представлен на рис. 1. Обратите вни-
мание, что импортированный CRL тут Рисунок 1. Сертификат корневого СА в локальном хранилище сертификатов

№10, октябрь 2008 61


безопасность
нажимаем на нем правой кнопкой мыши и выбираем
«All Task → Submit new request» («Все задачи → Выдать но-
вый запрос»). Далее открываем сформированный чуть вы-
ше файл запроса и переходим в ветку Pending Reguest (за-
просы в ожидании) в левой части окна. При этом в правой
части отображаются все запросы, ожидающие обработки.
Рисунок 2. Сообщение с инструкциями для завершения
процесса установки СА Поскольку наш СА – изолированный, то он не производит
выпуск сертификатов автоматически – все запросы долж-
ливаемый, и корневой СА предполагаются отключенными ны быть обработаны вручную. Поэтому в правой части ок-
от сети, то мы выбираем второй вариант и сохраняем за- на на запросе надо нажать правую кнопку мыши и выбрать
прос в файл c:\SubCA.req. Нажав «Далее» и согласившись «All Tasks → Issue» («Все задачи → Выпустить»). Тем са-
на временную остановку служб IIS, мы наблюдаем за ус- мым мы выпускаем сертификат, запрос исчезает из вет-
тановкой компонентов, которая оканчивается сообщением, ки Pending Reguest, а выпущенный сертификат помещает-
представленным на рис. 2. В нем говорится о том, что ус- ся в ветку Issued certificates (выданные сертификаты). Пе-
тановка не будет завершена до тех пор, пока по сохранен- рейдя в эту ветку в правой части, мы видим, что сертифи-
ному в файле c:\SubCA.req запросу не будет выпущен сер- кат выпущен, нам остается теперь только просмотреть его
тификат родительским СА (в нашем случае это RootCA). (на предмет корректности срока действия), экспортировать
Этот сертификат затем надо будет установить через ос- и доставить на подчиненный СА. При просмотре сертифи-
настку Certification Authority (центр сертификации). Нажи- ката перейдите на вкладку Details (состав) и нажмите вни-
маем «ОК» и дожидаемся окончания процесса. зу кнопку Copy to file (копировать в файл). Запустится мас-
Теперь открываем диск С:\ и видим там файл SubCA.req. тер экспорта сертификата, в котором в качестве типа экс-
Этот файл содержит запрос сертификата, и с ним можно портируемого сертификата следует выбрать Cryptographic
поступить двумя способами: Message Syntax Standard – PKCS#7 Certificates (.P7B), ус-
n физически перенести на RootCA, где обработать через тановить опцию the Include all certificates in the certification
оснастку Certification Authority; path if possible (включить по возможности все сертифика-
n скопировать из него данные запроса и воспользовать- ты в путь сертификата), указать место, куда будет сохра-
ся веб-интерфейсом, если на корневом СА установле- нен файл сертификата и его имя. В конце работы масте-
ны службы IIS. Для этого на RootCA нужно в браузере ра в сводной информации обратите внимание на строку
открыть адрес http://localhost/certsrv и далее следовать Export keys: No (экспорт ключей: нет). Это говорит о том, что
указаниям на странице. Если для развертывания струк- файл сертификата не будет содержать закрытый ключ. Этот
туры вы пользуетесь виртуальными машинами и есть ключ сформирован и хранится на том СА, с которого полу-
возможность сетевого взаимодействия, то можно от- чен файл запроса сертификата. Поэтому о безопасности
крыть веб-страницу непосредственно с SubCA. Разу- файла сертификата можно не беспокоиться. Полученный
меется, заменив localhost на нужное имя. файл теперь нужно перенести на SubCA, а RootCA можно
выключить – он больше не понадобится до тех пор, пока не
Воспользуемся первым способом. Итак, переносим лю- наступит время обновления CRL. На SubCA теперь надо за-
бым доступным способом файл запроса на RootCA и запус- пустить оснастку Certification Authority. Как видим, в дереве
каем оснастку Certification Authority. Выбрав слева RootСА, оснастки сервер SubCA помечен как неработающий, пос-
кольку он пока еще не содержит соб-
ственного сертификата. Нажимаем
на нем правой кнопкой мыши и выби-
раем «All Tasks → Install CA certificate»
(«Все задачи → Установить сертифи-
кат ЦС»). Указываем файл с сертифи-
катом, после чего можно из контекс-
тного меню выбрать «All Tasks → Start
service» («Все задачи → Запуск служ-
бы»). Если все прошло удачно, служ-
бы сертификации должны запустить-
ся и в оснастке SubCA станет помечен
зеленым значком.
На этом установку можно считать
законченной. Но перед тем как начать
использовать установленный СА, сле-
дует провести его конфигурирование.
Процесс практически ничем не отлича-
ется от описанной в первой части ста-
тьи настройки корневого СА за исклю-
Рисунок 3. Распространение в домене сертификата корневого СА через групповую
политику чением сроков: для подчиненного СА

62
безопасность
можно задать несколько меньший интервал публикации CRL
и в реестре значение ValidityPeriodUnits сделать равным 5,
чтобы SubCA мог выдавать сертификаты со сроком дейст-
вия в 5 лет. После завершения всех настроек не забудьте
перезапустить службу сертификации на компьютере.

Установка СА
предприятия (EntCA)
Теперь мы подошли к конечному звену в цепочке серве-
ров сертификации. До сих пор никаких изменений в Active
Directory сделано не было, и еще есть возможность безбо-
лезненно что-то поправить. Это будет весьма сложно после
того, как мы закончим установку СА предприятия и он начнет
функционировать. Надо также иметь в виду то, что с появ-
лением корпоративного сервера сертификации поведение
контроллеров домена при различных режимах функциони-
рования домена Windows 2000 и Windows 2003 отличается.
В первом случае контроллеры домена автоматически на-
чинают пытаться получить сертификат контроллера доме-
Рисунок 4. Сертификаты вышестоящих СА и их CRL
на, а во втором – подчиняются настройкам групповой поли- импортированы в Active Directory
тики, в которой по умолчанию автоматическое получение
сертификата контроллера домена отключено. части статьи, то видно, что в качестве таковых мы исполь-
Перед установкой служб сертификации компьютер дол- зовали LDAP-точку и общую папку. Теперь надо позабо-
жен быть членом домена, желательно, чтобы это был корне- титься, чтобы в этих точках были доступны сертификаты
вой домен и компьютер имел статический IP-адрес, а служ- СА и файлы с CRL (файлы RootCA_RootCA.crt, RootCA.crl,
ба доступа к файлам и принтерам была включена. Если до- SubCA_SubCA.crt, SubCA.crl).
мен работает под управлением Windows 2000, на контролле- Начнем с более простого – с общей папки. На компью-
рах домена должен быть установлен Service Pack 3 и, кроме тере EntCA создаем папку с именем CDP, помещаем в нее
того, потребуется сделать апгрейд схемы до уровня функ- вышеназванные файлы и открываем ее для общего дос-
циональности Windows Server 2003. Настоятельно не реко- тупа. Причем уровень доступа должен разрешать чтение
мендуется размещать службы сертификации на компьюте- для группы Everyone (все) (не забывая и про NTFS-разре-
ре, уже выполняющем какие-либо функции в домене – на- шения тоже).
пример, на файловом сервере или контроллере домена. Ус- Импорт этих файлов в Active Directory проводится с по-
тановка выполняется из-под учетной записи пользователя, мощью команды certutil.exe с компьютера EntCA следую-
имеющего права Enterprise Admin. Для установки потребу- щим образом:
ются сертификаты и файлы CRL с вышележащих СА. Как
их получить, было рассмотрено в предыдущем разделе. certutil -dspublish -f RootCA_RootCA.crt RootCA
certutil -dspublish -f SubCA_SubCA.crt SubCA
Сначала надо распространить в домене сертификат certutil -dspublish -f RootCA.crl RootCA RootCA
корневого СА. Члены домена затем автоматически доба- certutil -dspublish -f SubCA.crl SubCA SubCA
вят его в локальное хранилище доверенных сертификатов.
Во время установки SubCA мы это делали вручную, в до- Разумеется, команды выполняются из той папки, где на-
мене же можно воспользоваться доменными политиками. ходятся файлы сертификатов и CRL. Обратите внима-
Обратите внимание на то, что здесь требуется лишь серти- ние, что в первых двух командах последний параметр
фикат корневого СА, а не промежуточного. Чтобы сделать RootCA и SubCA обозначают хранилище и совпадение
это, в том домене, где будет впоследствии установлен СА с именами компьютеров случайно. Во вторых двух коман-
предприятия, откройте доменную политику по умолчанию дах параметры RootCA RootCA и SubCA SubCA обознача-
(Default Domain Policy). Раскройте последовательно узлы: ют соответственно имя компьютера СА и короткое имя СА
«Default Domain Policy → Computer Configuration → Windows (СА sanitized name). В нашем случае эти имена совпадают,
Settings → Security Settings → Public Key Policies» («Политика а узнать их можно с помощью команды:
Default Domain Policy → Конфигурация компьютера → Кон-
фигурация Windows -→ Параметры безопасности → Поли- certutil.exe –cainfo
тики открытого ключа»). Щелкните правой кнопкой мыши
на Trusted Root Certification Authorities (доверенные корневые выполненной на соответствующем СА.
центры сертификации) и выберите Import (импорт). С помо- Чтобы убедиться, что импорт прошел успешно, можно
щью мастера импортируйте сертификат корневого СА, ко- открыть оснастку Active Directory Sites and Services (Active
торый должен появиться в списке справа (см. рис. 3). Directory – сайты и службы), в меню View (вид) включить
Как вы помните, на этапе конфигурирования корне- пункт Show Services Node (показать узел служб) и в дере-
вого и подчиненного СА мы задавали точки распростра- ве слева развернуть узел «Services → Public Key Services».
нения CRL и AIA. Если посмотреть на рисунок 3 в первой При этом в подразделе AIA должны содержаться сертифи-

№10, октябрь 2008 63


безопасность
щей папке) не выбрана. Она нужна в случае, если клиент
не может получить сертификат через групповую политику
или веб-интерфейс. Поскольку у нас на этом сервере уже
есть общая папка, то на всякий случай имеет смысл ука-
зать ее в качестве места хранения конфигурационной ин-
формации. На следующем шаге сохраняем запрос серти-
фиката в файл EntCA.req и завершаем установку.
Теперь мы должны вручную выпустить сертификат
для нашего корпоративного СА по файлу запроса. Проце-
дура полностью идентична рассматриваемой выше, только
запрос должен быть обработан не на корневом СА, а на под-
чиненном (SubCA). В результате мы должны получить файл
сертификата для EntCA и установить его. Перед установкой
Рисунок 5. Проверка сертификата с помощью URL Retrieval Tool имеет смысл проверить файл сертификата командой:

каты родительских СА, а в подразделе CDP – созданы под- certutil.exe –url <имя файла сертификата>
папки с именами, соответствующими корневому и подчи-
ненному СА (см. рис. 4). Конфигурирование СА практически идентично тому, что
Теперь надо убедиться, что указанные в сертификате мы делали ранее. Необходимо задать точки распростране-
подчиненного СА точки CDP доступны. Для этого исполь- ния CRL и AIA, выбрать период публикации CRL и опреде-
зуется команда: литься, нужны ли нам delta-CRL. При выборе интервалов
публикации для CRL стоит вспомнить о рекомендациях, ко-
certutil.exe –url SubCA_SubCA.crt торые давались по этому поводу в первой части статьи. В ка-
честве точек публикации CRL и AIA задаются те же самые
По этой команде запустится графическое средство URL места, что и в СА уровнями выше, однако следует задать
Retrieval Tool (инструмент извлечения URL) (см. рис. 5). еще одно расположение, которое будет совпадать с местом
В поле Retrieve (загрузить) выбираем, что мы хотим прове- \\EntCA\CDP, но указывать на него локально. То есть если
рить – доступность сертификата (из AIA) или доступность папка CDP лежит в корне диска С, то вариант точки публи-
CRL (из CDP), и нажимаем кнопку Retrieve (загрузить). Если кации будет следующим:
все в порядке, то в верхнем поле должен появиться статус
Verified (проверено) напротив каждой из указанных в сер- C:\CDP\<CaName><CRLNameSuffix><DeltaCRLAllowed>.crl
тификате AIA или CDP. Если в каком-то поле появится ста-
тус Failed (ошибка), то надо принять меры. Например, ес- При этом для этого расположения надо сбросить все
ли у вас файл сертификата называется SubCA_SubCA.crt, опции, кроме Publish CRL in this location (опубликовать CRL
а происходит поиск файла SubCA.crt, то можно переиме- по данному адресу). Поскольку CRL публикуются автома-
новать исходный файл. тически, мы избавляем себя от необходимости вручную
На этом подготовительный этап завершен. перекладывать каждый раз новый CRL из папки CertEnroll
Внимание! Вышеприведенные процедуры должны бу- в папку C:\CDP.
дут повторяться по мере обновления сертификатов и CRL- По умолчанию СА будет выпускать сертификаты сроком
файлов родительских СА. действия в 1 год, и изменять это положение не нужно. Пос-
Теперь можно приступить непосредственно к установке ле того как вы сделаете все необходимые настройки и пе-
служб сертификации. Файл capolicy.inf нам не потребуется, резапустите службы сертификации, СА будет готов к рабо-
так как мы не собираемся указывать для СА никаких опе- те и обслуживанию клиентов. Если вы работаете в доме-
рационных политик. Однако установка служб IIS и ASP.NET не под управлением Windows 2000, то контроллеры доме-
настоятельно рекомендуется для возможности проводить на автоматически получат сертификат, как только обнару-
выпуск сертификатов посредством веб-интерфейса. жат присутствие центра сертификации в домене, для до-
Процесс установки уже нам знаком. Обратите внима- мена Windows 2003 ничего не произойдет.
ние, что теперь при выборе типа СА нам доступны все 4 ти- В последней части статьи мы рассмотрим, как настро-
па, из которых мы выбираем Enterprise Subordinate CA (под- ить доменные политики на запрос сертификатов и как на-
чиненный ЦС предприятия) и, как и раньше, устанавлива- страивать шаблоны сертификатов на корпоративном СА.
ем опцию use custom setting to generate the key pair and CA Кроме того, в заключение немного поговорим о типичных
certificate. На следующем шаге выбираем желаемую длину проблемах, которые могут возникнуть во время процесса
ключа и не устанавливаем опцию Allow this CSP to interact установки всей цепочки и вариантах их решения.
with the desktop (если используете стандартный Microsoft
CSP). Далее задаем имя нашему СА (EntCA) и обращаем 1. Шпак С. Установка цепочки серверов сертификации как часть
внимание, что поскольку компьютер является членом доме- внедрения PKI в домене. Часть 1. //«Системный администра-
на, поле distinguished name suffix уже заполнено. На следую- тор», №8, 2008 г. – С. 54-58.
щем шаге мы видим, что опция stores configuration information 2. Российский сегмент мирового пространства идентификато-
in shared folder (хранить информацию о конфигурации в об- ров объектов – http://www.tel-inform.ru/x500/OIDS/inform.htm.

64
bugtraq

Отказ в обслуживании в ISC BIND Множественные уязвимости


для Windows в Symantec Veritas NetBackup
Программа: ISC BIND версии 9.3.5-P2-W1, BIND 9.4.2-P2- Программа: Symantec Veritas NetBackup Server версии 5.1,
W1 и 9.5.0-P2-W1 для Windows. 6.0 и 6.5; Symantec Veritas NetBackup Enterprise Server вер-
Опасность: Средняя. сии 5.1, 6.0 и 6.5.
Описание: Уязвимость существует из-за ошибки при об- Опасность: Средняя.
работке UDP-пакетов. Удаленный пользователь может ава- Описание: 1. Уязвимость существует из-за неизвестной
рийно завершить работу клиентского UDP-обработчика. ошибки в JAVA Administration GUI (jnbSA). Удаленный авто-
Примечание: уязвимость не распространяется на UNIX- ризованный пользователь с доступом к графическому ин-
платформы. терфейсу может выполнить произвольные команды на сис-
URL производителя: www.isc.org/products/BIND. теме с повышенными привилегиями.
Решение: Установите последнюю версию 9.3.5-P2-W2, 9.4.2- 2. Уязвимости существуют из-за ошибки проверки гра-
P2-W2 или 9.5.0-P2-W2 с сайта производителя. ниц данных в PVATLCalendar.PVCalendar.1 (pvcalendar.ocx)
ActiveX-компоненте.
Множественные уязвимости URL производителя: www.symantec.com.
в Cisco Unity Решение: Установите исправление с сайта производителя.
Программа: Cisco Unity версии до 4.0ES161, 5.0ES53
и 7.0ES8.
Опасность: Низкая. Повышение привилегий
Описание: 1. Уязвимость существует из-за ошибки в про- в Microsoft Windows
цессе аутентификации в веб-интерфейсе. Когда злоумыш- Программа: Microsoft Windows 2000, Microsoft Windows XP,
ленник запрашивает первый раз конфигурационную стра- Microsoft Windows Server 2003, Microsoft Windows Vista,
ницу, приложение перенаправляет пользователя на страни- Microsoft Windows Server 2008.
цу аутентификации. Последующий запрос к этой же стра- Опасность: Низкая.
ницы не будет перенаправлен, и удаленный неавторизо- Описание: 1. Уязвимость существует из-за ошибки при об-
ванный пользователь сможет просмотреть и изменить не- работке свойств окна, передаваемых от родительского ок-
которые конфигурационные данные. на дочернему в процессе создания последнего. Локальный
2. Уязвимость существует из-за ошибки при обработке пользователь может выполнить произвольный код на целе-
сессий. Удаленный пользователь может занять все доступ- вой системе с повышенными привилегиями.
ные сессии и вызвать отказ в обслуживании. Для удачной 2. Уязвимость существует из-за ошибки двойного осво-
эксплуатации уязвимости приложение должно быть скон- бождения памяти при обработке системных вызовов от раз-
фигурировано для анонимной аутентификации (не являет- личных потоков. Локальный пользователь может выпол-
ся значением по умолчанию). нить произвольный код на целевой системе с повышенны-
3. Уязвимость существует из-за небезопасных привиле- ми привилегиями.
гий на доступ к \CommServer\Reports. Пользователи домена 3. Уязвимость существует из-за недостаточной провер-
могут получить доступ к некоторым важным данным. ки входных данных, передаваемых их пользовательского
URL производителя: www.cisco.com. режима в режим ядра. Локальный пользователь может вы-
Решение: Установите последнюю версию 4.0ES161, 5.0ES53 полнить произвольный код на целевой системе с повышен-
или 7.0ES8 с сайта производителя. ными привилегиями.
URL производителя: www.microsoft.com.
Множественные уязвимости Решение: Установите исправление с сайта производителя.
в Trend Micro OfficeScan
Программа: Trend Micro OfficeScan Corporate Edition 8.0.
Опасность: Средняя. Межсайтовый скриптинг в Cisco Unity
Описание: 1. Уязвимость существует в службе OfficeScanNT Программа: Cisco Unity 4.0ES161, 5.0ES53, 7.0ES8 и более
Listener. Удаленный пользователь может получить доступ ранние версии.
к важным данным. Опасность: Низкая.
2. Уязвимость существует из-за неизвестных ошибок Описание: Уязвимость существует из-за недостаточной об-
в CGI-модулях в OfficeScan-сервере. Удаленный пользо- работки входных данных. Удаленный пользователь может
ватель может вызвать переполнение буфера и выполнить с помощью специально сформированного запроса выпол-
произвольный код на целевой системе. нить произвольный код сценария в браузере жертвы в кон-
3. Уязвимость существует из-за ошибки разыменова- тексте безопасности уязвимого сайта.
ния нулевого указателя в CGI-модулях в OfficeScan-серве- URL производителя: www.cisco.com.
ре. Удаленный пользователь может с помощью специаль- Решение: В настоящее время способов устранения уязви-
но сформированного HTTP-запроса вызвать отказ в обслу- мости не существует. Уязвимости будут исправлены в вер-
живании приложения. сиях 4.2(1)ES162 5.0(1)ES56 и 7.0(2)ES8.
URL производителя: www.trendmicro.com.
Решение: Установите исправление с сайта производителя. Составил Александр Антипов

№10, октябрь 2008 65


человек номера

Бриллиант чистой воды

Он искал дело. А дело искало его. В 1994 году они вышли в свет вместе:
компания Paragon Software и Константин Комаров в качестве ее президента.
О гордости из Panasonic и Рик Вагонер из General рим! Это даже интереснее, чем в вы-
Газеты, журналы, интернет-сайты в ян- Motors…». Название другой компании – ставке участвовать. На выставке прос-
варе этого года сообщили: «Сегод- Paragon Software, имя ее президента – то стоишь семь дней, рассказываешь
ня в калифорнийском городе Лас-Ве- Константин Комаров – не прозвучало что-то, общаешься с клиентами, спо-
гас открывается очередная ежегод- в первых строках отчетов с CES, одна- койно пьешь кофе. Здесь на каждого
ная международная выставка потре- ко пресса проявляет устойчивый, яр- представителя СМИ уходит не больше
бительской электроники – Consumer ко выраженный интерес к этой компа- минуты. И вот после того, как они все,
Electronics Show (CES) 2008. Это пер- нии с русскими корнями и офисах в не- заинтересованные нашим продуктом,
вое в новом году отраслевое событие скольких государствах планеты. В этом дают очень хорошие отзывы, я чувс-
такого масштаба, на котором ожида- президент Paragon Software регулярно твую, что миссия выполнена».
ется презентация множества новинок убеждается, когда в рамках выстав- Гордость Константина Комарова
компьютерной и развлекательной ин- ки проходит особое мероприятие для вполне оправдана и весьма уместна.
дустрии – от мощных игровых компью- международной прессы, практичес- Как у человека, который хорошо по-
теров и периферии к ним до карманных ки шоу: «В два часа дня открывают- работал и теперь получает заслужен-
плееров и всевозможных портативных ся двери большого зала. В зале стоят ные дивиденды. Нет, конечно, он не по-
гаджетов. Ожидается, что на выставке около 30 столов различных компаний. чивает на лаврах. Такого и не бывает
выступят руководители крупнейших И вот толпа из 500‑600 журналистов в IT-бизнесе, особенно если речь идет
международных корпораций, среди штурмует зал. За два с половиной часа о компании не слишком масштабной,
которых Билл Гейтс из Microsoft, Пол через наш столик проходит, как мини- однако уже занявшей нишу на рынке
Отеллини из Intel, Тосихиро Сакамото мум, 150 журналистов. Это такой экст- и, что важно, давшей работу двум со-

66
человек номера
тням людей: «Ответственность за де- торые принципы руководства. Меха- мецким менталитетом. Германия – ин-
ятельность компании держит в напря- низм принятия решений варьируется дустриальная страна. Развитого малого
жении, потому что компания дает ра- от совещательного до авторитарного. бизнеса у них нет. Крупные предприя-
боту сотрудникам. Непростой бизнес. «Никаких колхозов не потерплю. Кол- тия – это жесткая корпоративная струк-
Надо быть собранным, не отвлекать- хозы – это когда все садятся и начина- тура. В 8 утра пришел, в 5 вечера ушел.
ся, иначе конкуренты отхватят кусок ют думать: как мы решим эту пробле- Это меняет людей…».
рынка, и придется с людьми расста- му? Напрасная трата времени». Константин Комаров уверен, что
ваться… Не хочется». Кадровая политика проста и логич- возраст не имеет значения, если че-
на: молодая компания не может себе ловек мобильный, хорошо вписыва-
О мудрости позволить брать на работу професси- ется в команду. В немецком Paragon
Сегодня Paragon Software набрал оналов. Ротация кадров должна проис- Software работает бухгалтер 45 лет,
очень неплохие обороты, которые, ко- ходить динамично, в соответствии с ди- президенту американского подразде-
нечно же, не хотелось бы терять. Муд- намикой роста компании. Если понятно, ления – 47. Константин уважает кол-
ро построенная стратегия завоева- что на каком-то направлении пора по- легу: «Он марафонский бегун, бега-
ния мирового рынка дает плоды. На- кончить с любительством, это направ- ет марафоны 42 километра. У нас нет
чали с Европы и только недавно при- ление нужно оптимизировать. «Пос- проблем в общении. У него опыт, у ме-
шли в Соединенные Штаты. И теперь кольку капитал компании – ее сотруд- ня знания. Я в своей области детально
Константин Комаров и его коллеги са- ники, проводить процесс реструктури- разбираюсь, он лучше знает местный
ми себе «спасибо» говорят, что не на- зации следует максимально мягко». рынок. Не возникает противоречий, ес-
чали с Америки… Набрав команду профессиона- ли корректно общаться с людьми».
«Десять лет назад я фактически пе- лов, уверен Константин Комаров, на-
реехал жить в Германию, чтобы пост- до доверить им принятие решений. О судьбе
роить наш европейский продажный И в то же время… не забывать о конт- Бизнес, компания, выставка, кадровая
офис. Почему Германия? Летать не так роле. «Доверяй, но проверяй». политика… «А человек-то где?» – спро-
далеко, разница во времени неболь- От сотрудника требуется прежде сите вы. Да то-то и оно – вот он, чело-
шая, можно легко управлять деятель- всего лояльность по отношению к ком- век, в деле! Более того, судьбу прези-
ностью в России. Очень важно не те- пании. Не поощряется «рассматривать дента Paragon Software, считаю, оп-
рять компанию из виду. Если бы мы на- работу как источник получения де- ределил интерес к IT-сфере вообще
чали делать эту компанию в Америке, нег. Такие люди могут работать у нас и к проблеме, которой занят Paragon
возможно, мы были бы номером один, на проектной основе. Сделал проект – Software в частности. Проблему эту
а не номером два. Но мы выбирали спасибо. Как правило, они приносят кратко можно обозначить так: «Управ-
Германию как плацдарм для Европы, пользу, но не могут мотивировать сво- ление системами хранения данных».
и я считаю, что ни делается, все к луч- их же подчиненных, более того, часто «Это наша ниша. Мы всегда рабо-
шему. Сейчас, например, у нас нет за- их демотивируют, потому что не вовле- тали на уровне системного програм-
висимости от кризисов, которые про- чены в деятельность компании. Таких много обеспечения, а это вполне оп-
исходят в Америке. В Америке проис- в большой компании много бывает. На- ределенные бизнес-задачи. Есть опе-
ходит большое давление на IT из‑за то- ше преимущество в том, что мы до сих рационная система – ее нужно заста-
го, что там перестают платить деньги, пор достаточно мелкая компания…». вить говорить по-русски. Или по-араб-
перечеркивают все бюджеты. Этот не- Самый важный фактор для канди- ски, чтобы она писала справа налево.
гативный фактор не так сильно влияет дата, пришедшего наниматься в ком- Или на иврите, например. Это бизнес-
на нас, потому что мы сидим в основ- панию, – опыт работы.
ном в Европе. Американский офис на- На возраст не смотрят.
чал развиваться по-настоящему начи- Впрочем, все зависит
ная с этого года. Мы пришли туда вов- от страны, где живет
ремя и смогли буквально за шесть ме- потенциальный сотруд-
сяцев собрать команду из 12 человек, ник. «В американском
которые занимаются канальными про- офисе средний воз-
дажами, продажами через дистрибью- раст 40 лет, в немецком
торов и партнеров, в то время как не- офисе – 30 лет, в рос-
мецкий офис ведает нашими основны- сийском офисе раньше
ми каналами он-лайн». был средний возраст
Российский офис, немецкий, аме- 25 лет. Просто в Аме-
риканский, японский… Недаром Конс- рике очень важно на-
тантин своей основной задачей счита- чинать бизнес с людь-
ет построение команды. Чтобы управ- ми, у которых есть опыт.
лять этим немаленьким хозяйством, В немецком офисе мы,
нужно быть хорошим управленцем, наоборот, стараемся
и за годы работы в Paragon Software брать на работу людей,
у его президента выработались неко- не «испорченных» не-

№10, октябрь 2008 67


человек номера
задачи, которые под силу решать та- пьютеры, что тоже вполне естествен- ворит – «я самодостаточный человек.
ким компаниям, как мы, поэтому ком- но и предсказуемо, победили. Декан Мне не нужно иметь 35 знакомых и об-
петенции надо именно в этой нише на- студента понял. И после третьего кур- щаться с ними регулярно. Моя супру-
ращивать». са началась учеба по специальности, га такая же. Постоянная смена обста-
Чего Paragon Software делать не хо- а также работа в фирме, которая отны- новки, которую мы можем себе позво-
чет, не желает – это красивые ненуж- не связана с именем Комарова. Краси- лить – это тоже хорошее приобрете-
ные вещи типа скринсерверов. Хотя вое название – Paragon Software. Кста- ние». Это очень современное качест-
понятно, что эти «штучки» приносят ре- ти, кто не знает, это название шрифта, во, весьма полезное сегодня – когда
альный доход, но не лежит к ним душа… а еще, в переводе с французского, «об- человек получает культурный шок в
Задача такого плана противоречит са- разец добродетели, бриллиант чистой результате посещения новой страны,
мой идее фирмы, ее политике. воды». Так что все не случайно… погружения в новую для себя культу-
Любопытно, что главной идеей сво- ру, но потом легко адаптируется. Так
ей жизни Константин загорелся еще О буднях с Константином Комаровым было в
в школе. Мама работала в Физтехе, Прихоти судьбы привели Комаровых – Штатах, Японии. На очереди Китай,
и с 11 лет у Кости был доступ к ком- всю семью – в немецкий город Фрай- Индия, где очень интересно побывать,
пьютерам, которые стояли в этом вузе берг. Повезло: могли очутиться в типич- однако их поедет покорять не прос-
у «больших преподавателей». Однаж- но немецком городе. А живут в интер- то гражданин Комаров, но президент
ды, когда во время каникул мальчик национальном окружении, ведь Фрай- Paragon Software. Кстати, если гово-
вдохновенно изучал машину, она дала берг знаменит своими вузами, при- рить об этих странах как о конкурен-
сбой. Ситуацию пришлось срочно спа- влекающими студентов со всего света. тах нашим IT-фирмам… Комаров уве-
сать. Константин Комаров написал про- Когда-то здесь учился и наш знамени- рен: «У нас перед ними большое пре-
грамму, данные были восстановлены. тый соотечественник Михайло Ломоно- имущество. У них нет такой хорошей
С тех пор он спасает уже не только себя, сов. Довольна супруга – быт налажен, школы, они не могут писать глубоко
но и окружающих. Президент Paragon не оторваны от русской культуры: три архитектурные вещи. Они могут де-
Software улыбается: «На первый взгляд, раза в год ездят домой, в Россию, рус- лать поделки и заниматься аутсорсин-
все проблемы решены. После покупки ские артисты часто приезжают с гас- гом.. Для этого большого ума не надо.
«Мака» для дома, для семьи кажется – тролями. Довольны дети – все, кроме У российских компаний есть шанс не
есть счастье для простого пользовате- малыша, ходят в немецкую школу, го- дать прорваться конкурентам. Пото-
ля. Но, поработав пару месяцев, начи- ворят и по-немецки, и по-русски, изуча- му что по-настоящему важные задачи
наешь понимать, что работой мы обес- ют французский. Семейство планирует массой не решаются».
печены надолго…». пожить полгода в Штатах, вот тогда де- Пожалуй, Константин прав. Есть
После школы Константин, естест- ти-полиглоты еще и английский выучат. шанс прорваться у того, кто не прос-
венно, поступил в Московский физи- Константин своей ребятне немного за- то обладает хорошим образованием и
ко-технический институт. Пришел сна- видует. Немецким он занялся уже буду- крепко стоит на ногах, но кто уверен в
чала на факультет физико-химичес- чи взрослым, хорошо знает разговор- себе, не боится затеряться среди «мон-
кой биологии, очень уж ему была инте- ный, легко понимает немецкие филь- стров» IT-индустрии. Вот такую исто-
ресна генная инженерия. Однако ком- мы, свободно общается в быту. А вот рию рассказал мне президент Paragon
английский учил, как мно- Software: «Компания Dell, 1999 год, на-
гие из нас, в школе и ву- ша крупная сделка с Dell. Мы прилете-
зе. Конечно, с партнерами ли в штаб-квартиру компании в Ости-
находит общий язык лег- не (штат Техас) сделать 40-минутную
ко, бизнес-словарь нара- презентацию. Садимся в большом за-
ботан, но хочется подшли- ле, где находятся 25 человек, солид-
фовать разговорный… ные люди…».
Кстати, школьные ус- Ему не было страшно. А почему?
пехи детей очень важны «С ними надо общаться на равных. Со-
для папы. «Надо смот- вет начинающим компаниям: не отно-
реть, чтобы они правиль- ситься к этим сделкам как к последнему
но учились. В Германии шансу. Проявите разумную активность,
очень жесткая система прагматичность. И не расстраивайтесь,
в школе. Если ребенок не если что-то пошло не так – в следующий
попал в гимназию, значит раз получится. И еще – очень важно
у него есть опасность ока- здраво оценивать свои шансы, с пло-
заться в «дурной компа- хими шансами нельзя играть».
нии». А ведь среда опре- И тогда вы обязательно выиграете
деляет личностное разви- «бриллиант чистой воды».
тие ребенка».
Комаров не считает Текст Оксаны Родионовой,
фото Владимира Лукина
Германию чужбиной. Го-

68
закон есть закон
(Продолжение. Начало в №№7, 8, 9 Как раз понятые и являются «слабым
за 2008 г.) звеном». Хороший юрист всегда вос-
пользуется некомпетентностью поня-
Как можно узнать, кто приехал тых, участвующих в осмотре. Если го-
с проверкой, и как это уточнить? Вот ворить о той роли, которую выполня-
приехал ОМОН или кто-то похожий. ют понятые при осмотре или обыске,
Всех вывели в коридоры, обесточи- то основная их роль, на мой взгляд,
ли все компьютеры, запретили мо- заключается в подтверждении фак-
бильную связь, заставили все пред- та проведения следственных дейст-
меты оставить на рабочих столах. вий, своими подписями в протоколе,
Куда можно обратиться и что мож- при изъятии техники (на упаковках
но потребовать? и стикерах) понятые свидетельству-
Вы привели ситуацию, когда идет пря- ют, что они присутствовали при про-
Рубрику ведет юрист
мое нарушение прав проверяемых. ведении этих действий, что указанная Юлия Штокало
В данном случае нужно обязатель- в протоколе (описи) техника была изъ-
но зафиксировать нарушения и на- ята именно у данного лица (в данной дничные дни запрещается. Обязать
писать жалобу в вышестоящий орган, организации). выйти на работу в выходной день вас
прокуратуру, УСБ (Управление собс- никто не может.
твенной безопасности) или суд. Дейс- В каких случаях меня без моего со- Привлечение к работе в выходные
твовать нужно безотлагательно, сра- гласия могут заставить работать и нерабочие праздничные дни без ва-
зу после проверки. Позвонить в УСБ в выходные или отозвать из отпус- шего согласия допускается в следую-
можно в процессе проверки, возмож- ка? Является ли достаточным ос- щих случаях:
но, это охладит проверяющих. нованием для отзыва из отпуска то, 1) для предотвращения катастрофы,
Если же к вам пришли с провер- что из-за сокращений меня прос- производственной аварии либо ус-
кой, но вы сомневаетесь в полномо- то некому заменить, а работу де- транения последствий катастрофы,
чиях и представленных вам докумен- лать надо? производственной аварии или сти-
тах, позвоните в правоохранительный Отозвать работника из отпуска мож- хийного бедствия;
орган, который по документам про- но только с его согласия. Если работ- 2) для предотвращения несчастных
водит проверку, узнайте, направля- ник не хочет выходить из отпуска, ка- случаев, уничтожения или порчи
лись ли пришедшие к вам с провер- ких-либо законных оснований для его имущества работодателя, госу-
кой. Любая милицейская проверка отзыва трудовым законодательством дарственного или муниципально-
должна фиксироваться в специаль- РФ не предусмотрено. го имущества;
ном журнале. Учитывая, что законом предусмот- 3) для выполнения работ, необходи-
рено право работодателя досрочно мость которых обусловлена вве-
Как понятые должны подтвердить, отозвать работника из отпуска на ра- дением чрезвычайного или воен-
что именно было обнаружено в про- боту только с его согласия, отказ ра- ного положения, а также неотлож-
цессе осмотра и обыска? Главное, ботника (независимо от причины) ных работ в условиях чрезвычай-
как они это смогут сделать, не бу- от выполнения распоряжения рабо- ных обстоятельств, то есть в слу-
дучи специалистами, и как их по- тодателя о выходе на работу до окон- чае бедствия или угрозы бедс-
казания могут свидетельствовать чания отпуска нельзя рассматривать твия (пожары, наводнения, голод,
в суде? как нарушение трудовой дисциплины. землетрясения, эпидемии или
Понятые своими подписями заверя- В случае выхода работника из от- эпизоотии) и в иных случаях, ста-
ют, что изъятая техника была упако- пуска досрочно неиспользованная вящих под угрозу жизнь или нор-
вана и опечатана. Подписывают опись в связи с отзывом часть отпуска долж- мальные жизненные условия всего
и протокол, в которых описывает- на быть предоставлена по выбору ра- населения.
ся изымаемая техника. Специальных ботника в удобное для него время в те-
требований к квалификации понятых чение текущего рабочего года или при- Привлечение к работе в выходные
не установлено. Это значит, что по- соединена к отпуску за следующий ра- и нерабочие праздничные дни инва-
нятым может быть и человек, не раз- бочий год. лидов, женщин, имеющих детей в воз-
бирающийся в технике. Связано это Отзыв работника из отпуска офор- расте до трех лет, допускается только
с тем, что понятой удостоверяет факт, мляется приказом, при ознакомле- при условии, если это не запрещено им
а не дает заключения и не выступает нии с которым работник должен ука- по медицинским показаниям.
специалистом. зать, что согласен с тем, что ему не да- Привлечение к работе в выходные
ют использовать положенный отпуск и нерабочие праздничные дни произ-
Могут ли понятые что-то определить до конца. водится по приказу работодателя.
в проводимых при осмотре действи- Теперь о работе в выходные дни.
ях? Ну увидели они, как наклеили Согласно действующему законода- Присылайте Ваши вопросы по адресу
стандартные стикеры на кнопку пи- тельству привлечение работника к ра- sekretar@samag.ru или оставляйте на фо-
тания и на скважину БП, и что? боте в выходные и нерабочие праз- руме журнала www.samag.ru/forum.

№10, октябрь 2008 69


web

Как работает
HTTP-сервер nginx

Дмитрий Васильев
Уже долгое время Apache является наиболее популярным HTTP-сервером с открытым
исходным кодом. Но он может быть слишком громоздким для некоторых pадач. И здесь
на сцену выходят новые игроки – легковесные, асинхронные HTTP-серверы, одним из которых
является nginx.

В
от уже более восьми лет я ис- кументацию на русском. В итоге для се- В простейшем случае при парал-
пользую HTTP-сервер Apache, бя я остановился на nginx по следую- лельной обработке соединений ос-
и в большинстве случаев он щим причинам: новной процесс занимается ожидани-
меня во всем устраивает. Но недав- n Многие ис точники (например, ем входящих соединений и после это-
но, установив его на один из неболь- http://hostingfu.com/article/nginx-vs- го отдает всю работу по обработке но-
ших серверов с Ubuntu Linux, я поду- lighttpd-for-a-small-vps) отмечают, вого соединения дочернему процессу,
мал, что Apache не очень целесооб- что Lighttpd имеет проблемы со ста- или отдельному потоку. У данного под-
разно использует ресурсы сервера. бильностью и утечки памяти. Даже хода есть следующие достоинства:
И с этой мыслью решил попробовать если эти проблемы остались в прош- n Это простая модель для програм-
какой-нибудь альтернативный вари- лом, похоже, что автор не уделял мирования сервера и подключае-
ант. Я уже давно слышал о высоко- им достаточно внимания. мых модулей.
производительных асинхронных сер- n Nginx, в отличие от Lighttpd, имеет n Каждое соединение обрабатыва-
верах Lighttpd (произносится lighty, две официальные ветки разработ- ется независимо, и таким образом
http://www.lighttpd.net) и nginx (произ- ки (стабильную и эксперименталь- возможная долгая обработка дан-
носится engine x, http://sysoev.ru/nginx), ную), что, на мой взгляд, говорит ных, выполняемая в одном процес-
но до этого момента не использо- о большей заботе автора о конеч- се (потоке), не влияет на другие.
вал их на практике. Надо также заме- ных пользователях и качестве про-
тить, что по статистике Netcraft на ок- екта в целом. Недостатки:
тябрь 2008 года Lighttpd и nginx зани- n Мне хотелось иметь возможность ис- n Такой подход плохо масштабирует-
мают, в рейтинге соответственно, 5-е пользовать сервер с языком Python ся. Например, 1000 одновременно
и 6-е места: http://survey.netcraft.com/ (http://www.python.org) с помощью открытых соединений может быть
Reports/200810. стандартного интерфейса WSGI вполне нормальным числом, но
Теперь, когда у меня было два вари- (http://ru.wikipedia.org/wiki/WSGI). 1000 одновременно работающих
анта, оставалось самое сложное – вы- При этом для nginx существует до- процессов, или потоков, могут быть
брать наиболее подходящий для мое- полнительный модуль mod_wsgi, проблемой.
го случая. Это сложный выбор, т.к. оба а в Lighttpd это можно делать толь-
имеют практически одинаковые воз- ко через шлюз FastCGI > WSGI. При асинхронной обработке в слу-
можности (хотя nginx также может ис- чае одного процесса с одним потоком
пользоваться как почтовый прокси- Принципы работы используется специальный системный
сервер, я не учитывал это в сравне- Прежде чем обратиться к рассмотре- вызов осуществляющих диспетчери-
нии). Оба используются на высоко по- нию непосредственно сервера nginx, зацию открытых сокетов и дескрип-
сещаемых сайтах, например, YouTube рассмотрим, чем отличается асинх- торов файлов. Этот системный вызов
использует Lighttpd, а Rambler – nginx. ронный (событийный) подход от парал- возвращает только сокеты и дескрип-
Оба имеют достаточно хорошую доку- лельной обработки соединений в от- торы, готовые для открытия соедине-
ментацию, в том числе nginx имеет до- дельных процессах, или потоках. ния, чтения или записи. Так как ос-

70
web
новное время обычно тратится на ожидание ввода-вывода Сборка и установка
и скорость работы процессора с памятью во много раз вы- Хотя nginx уже доступен в пакетах для последних версий
ше скорости ввода-вывода, можно успевать выполнять не- Ubuntu Linux, я решил собирать его из исходников, потому
обходимую обработку данных, в то время как система ожи- что хотел использовать более свежую стабильную версию
дает их новую порцию. Достоинства данного подхода: и модуль mod_wsgi для поддержки WSGI-протокола Python.
n Для многих применений только один процесс с од- Если вам не нужно собирать nginx с mod_wsgi, вы можете
ним потоком может обрабатывать больше соединений, пропустить все места, где он упоминается.
чем в случае параллельной обработки. Итак, для сборки нам понадобится исходный код nginx,
n Так как один процесс с одним потоком может обрабаты- исходный код библиотеки совместимых с Perl регуляр-
вать сразу несколько соединений для обработки боль- ных выражений (PCRE) и исходный код модуля mod_wsgi.
шего количества соединений, используется меньше ре- Здесь мы используем самые последние, на данный мо-
сурсов. мент, версии mod_wsgi и библиотеки PCRE. При использо-
вании более старых версий PCRE версия не должна быть
Недостатки: ниже 4.4:
n Программирование асинхронных приложений может
быть сложнее, чем приложений с параллельной обра- $ wget http://sysoev.ru/nginx/nginx-0.6.32.tar.gz
$ tar -xzf nginx-0.6.32.tar.gz
боткой. $ wget ftp://ftp.csx.cam.ac.uk/pub/software/ ↵
n В случае использования только одного процесса с одним programming/pcre/pcre-7.8.tar.bz2
$ tar -xjf pcre-7.8.tar.bz2
потоком он может плохо масштабироваться, хотя и луч- $ mv pcre-7.8 pcre
ше, чем при параллельной обработке. $ wget -O mod_wsgi.tar.gz http://hg.mperillo.ath.cx/ ↵
nginx/mod_wsgi/archive/tip.tar.gz
n В простейшем случае асинхронный подход не может $ tar -xzf mod_wsgi.tar.gz
использоваться, если необходима долгая обработка $ mv mod_wsgi-8994b058d2db mod_wsgi
данных.
Здесь я также переименовал директории для PCRE
Как можно заметить, оба подхода имеют свои достоинс- и mod_wsgi, чтобы в дальнейшем использовать для кон-
тва и недостатки. Чтобы объединить достоинства и умень- фигурации один скрипт, не изменяя его. Автор mod_wsgi
шить недостатки из обоих подходов, в настоящее время выбрал подход с применением патчей, чтобы успевать
для асинхронных сетевых приложений наиболее популя- за изменениями в nginx, и поэтому мы должны приложить
рен гибридный подход, при котором несколько асинхрон- патч для нашей версии nginx. Запишем его как mod_wsgi_
ных приложений работают параллельно в отдельных про- nginx‑0.6.32.patch:
цессах, или потоках. Теперь рассмотрим, как это работа-
ет в nginx. --- src/ngx_http_wsgi_handler.c ↵
2008-03-26 22:35:15.000000000 +0300
+++ src/ngx_http_wsgi_handler.c ↵
Особенности nginx 2008-10-06 16:55:07.000000000 +0400
@@ -71,7 +71,7 @@
Nginx разрабатывается Игорем Сысоевым (http://sysoev.ru)
с весны 2002 года. Первая публичная версия вышла осенью if (r->method == NGX_HTTP_GET || ↵
r->method == NGX_HTTP_HEAD) {
2004 года. На данный момент сервер находится в активной /* XXX not sure */
разработке с точки зрения функциональности, но нет ника- - rc = ngx_http_discard_body(r);
+ rc = ngx_http_discard_request_body(r);
ких нареканий с точки зрения стабильности. Последняя ста-
бильная версия на данный момент – 0.6.32 (http://sysoev.ru/ if (rc != NGX_OK && rc != NGX_AGAIN) {
return rc;
nginx/nginx-0.6.32.tar.gz).
Архитектурно nginx – это асинхронный сервер, который И затем приложим:
использует один главный процесс для приема соединений
и несколько рабочих процессов для их обработки. Рабочие $ patch -d mod_wsgi -p0 < mod_wsgi_nginx_0.6.32.patch
процессы выполняются от непривилегированного пользова-
теля. Асинхронная диспетчеризация может осуществляться Для сборки Nginx с SSL также необходимо установить
как старыми вызовами select() и poll(), так и с использованием библиотеку OpenSSL и для использования модуля ngx_http_
современных подходов специфичных для различных опера- gzip_module библиотеку zlib. Для сборки mod_wsgi понадо-
ционных систем: kqueue (для FreeBSD, начиная с версии 4.1), бится установить пакет python-dev:
epoll (для Linux, начиная с версии 2.6), rt signals (для Linux, на-
чиная с версии 2.2.19), /dev/poll (для Solaris, начиная с вер- $ sudo apt-get install libssl-dev
$ sudo apt-get install zlib1g-dev
сии 7) и event ports (для Solaris, начиная с версии 10). Так- $ sudo apt-get install python-dev
же для оптимизации производительности используются ис- $ touch nginx.sh
$ chmod a+x nginx.sh
ключающие лишнее копирование данных системные вызо- $ vi nginx.sh
вы sendfile(), sendfile64() или sendfilev() и сведены к миниму-
му операции копирования данных внутри сервера. Для редактирования скрипта конфигурации я исполь-
Далее рассмотрим, как собрать и установить сервер, зую текстовый редактор Vi, но вы можете использовать лю-
и подробнее остановимся на конфигурировании некото- бой другой удобный для вас редактор. Для сборки я напи-
рых сценариев работы. сал следующий скрипт:

№10, октябрь 2008 71


web
#! /bin/sh Теперь можно начать компиляцию:
./configure \
--prefix=/var/lib/nginx \
--sbin-path=/usr/sbin/nginx \ $ make
--conf-path=/etc/nginx/nginx.conf \
--pid-path=/var/run/nginx.pid \
--error-log-path=/var/log/nginx/error.log \ Если компиляция прошла успешно, устанавливаем
--http-log-path=/var/log/nginx/access.log \
--lock-path=/var/lock/nginx \ nginx:
--http-client-body-temp-path=/var/lib/nginx/client_body \
--http-proxy-temp-path=/var/lib/nginx/proxy \ $ sudo make install
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
--user=www-data \
--group=www-data \
--without-select_module \ При установке для конфигурации выше будет создана
--without-poll_module \ директория /var/lib/nginx, бинарный файл сервера nginx бу-
--without-http_ssi_module \
--without-http_geo_module \ дет установлен в директорию /usr/sbin (в случае присутс-
--without-http_referer_module \ твия старого файла он переименовывается в nginx.old), бу-
--without-http_memcached_module \
--without-http_limit_zone_module \ дет создана директория /etc/nginx, в которую будет пере-
--without-http_empty_gif_module \ несена конфигурация по умолчанию, и будут созданы ди-
--without-http_browser_module \
--without-http_upstream_ip_hash_module \ ректории /var/log/nginx и /var/lib/nginx с нужными права-
--with-http_ssl_module \ ми доступа.
--with-http_gzip_static_module \
--with-pcre=../pcre \
--add-module=../mod_wsgi Запуск и управление
В простейшем случае мы можем запустить nginx следую-
По умолчанию nginx устанавливается в директорию /usr/ щим образом:
local/nginx и использует поддиректории для файлов кон-
фигурации и различных временных файлов, но я привык $ sudo /usr/sbin/nginx
придерживаться стандарта иерархии файловой системы
(http://www.pathname.com/fhs), и поэтому в начале скрип- После первого запуска можно зайти по адресу http://
та идут опции переназначения различных директорий. За- localhost/ и увидеть страницу приветствия. Для остановки
тем идут опции установки пользователя и группы, под ко- сервера можно выполнить:
торыми будут работать рабочие процессы. В случае если
данные пользователь и группа не созданы в вашей систе- $ sudo killall nginx
ме, их надо будет создать вручную. После этого находят-
ся опции, включающие и отключающие различные моду- Конечно, такой способ управления лучше всего исполь-
ли, в том числе отключение поддержки системных вызовов зовать только для первого тестирования, а для обычного
select() и poll(), т.к. в моем случае, на Linux 2.6, будет исполь- использования и в последующем автоматического запус-
зоваться вызов epoll(). Если вы не знаете какой системный ка лучше написать скрипт управления и положить его в ди-
вызов может использоваться в вашей системе, оставьте это ректорий /etc/init.d под именем nginx, не забывая дать пра-
решение скрипту конфигурации, который выберет наибо- ва на исполнение:
лее оптимальный вариант. Соответственно если вам нуж-
ны другие пути к файлам и директориям, другой пользова- #! /bin/sh
#
тель и группа, или другие модули, вы можете внести изме- # /etc/init.d/nginx: start and stop nginx http server
нения в эти секции. После того как все готово со скриптом #
конфигурации, можно начать конфигурацию:
PID_FILE=/var/run/nginx.pid
CAT=/bin/cat
$ cd nginx-0.6.32 NGINX=/usr/sbin/nginx
$ ../nginx.sh START_STOP_DAEMON=/sbin/start-stop-daemon
В конце своей работы скрипт конфигурации должен вы- . /lib/lsb/init-functions
вести следующую информацию, где мы можем убедиться,
что все было сделано правильно: do_start()
{
Configuration summary $START_STOP_DAEMON --start --quiet ↵
+ using PCRE library: ../pcre --pidfile $PID_FILE --exec $NGINX
+ using system OpenSSL library RETVAL=$?
+ md5 library is not used
+ sha1 library is not used if [ $RETVAL = 0 ]; then
+ using system zlib library log_success_msg "Server started at pid" ↵
$($CAT $PID_FILE)
nginx path prefix: "/var/lib/nginx" elif [ $RETVAL = 1 ]; then
nginx binary file: "/usr/sbin/nginx" log_failure_msg "Server already running at pid" ↵
nginx configuration prefix: "/etc/nginx" $($CAT $PID_FILE)
nginx configuration file: "/etc/nginx/nginx.conf" else
nginx pid file: "/var/run/nginx.pid" log_failure_msg "Error starting server"
nginx error log file: "/var/log/nginx/error.log" fi
nginx http access log file: "/var/log/nginx/access.log"
nginx http client request body temporary files: "/var/lib/nginx/client_body" return $RETVAL
nginx http proxy temporary files: "/var/lib/nginx/proxy"
}
nginx http fastcgi temporary files: "/var/lib/nginx/fastcgi"

72
web
do_stop() fi
{ else
$START_STOP_DAEMON --stop --quiet ↵ log_failure_msg "Configuration errors found"
--retry=TERM/30/KILL/5 --pidfile $PID_FILE ↵ log_end_msg 1
--exec $NGINX fi
RETVAL=$? fi
;;
if [ $RETVAL = 0 ]; then
log_success_msg "Server stopped" *)
elif [ $RETVAL = 1 ]; then log_success_msg "Usage: /etc/init.d/nginx ↵
log_failure_msg "Server already stopped" {start|stop|status|restart|reload}"
else exit 3
log_failure_msg "Error stopping server" ;;
fi esac
return $RETVAL exit $?
}

Дадим скрипту нужные права:


is_running()
{
if [ -f $PID_FILE ]; then $ sudo chmod a+x /etc/init.d/nginx
kill -n 0 $($CAT $PID_FILE)
if [ $? = 0 ]; then
return 1 И теперь можно управлять nginx через наш скрипт, ис-
else
return 0 пользуя команды start, stop, status, restart и reload. Чтобы
fi nginx запускался при старте системы можно воспользо-
fi
return 0 ваться следующей командой:
}
$ sudo update-rc.d nginx defaults
case "$1" in
start)
log_begin_msg Эта команда создаст ссылки на скрипт /etc/init.d/nginx
do_start в каталогах, соответствующих различным уровням запус-
log_end_msg $?
;; ка: /etc/rc0.d – /etc/rc6.d.

stop)
log_begin_msg Настраиваем статический сайт
do_stop Когда мы разобрались с управлением сервером, рассмот-
log_end_msg $?
;; рим детали настройки статического сайта.
Вот пример основного файла конфигурации для стати-
status)
log_begin_msg ческих сайтов:
is_running
if [ $? = 0 ]; then user www-data www-data;
log_success_msg "Server not running"
log_end_msg 1 worker_processes 4;
else
log_success_msg "Server running at pid" ↵ error_log /var/log/nginx/error.log info;
$($CAT $PID_FILE) pid /var/run/nginx.pid;
log_end_msg 0
fi events {
;; worker_connections 1024;
}
restart)
log_begin_msg http {
do_stop include /etc/nginx/mime.types;
if [ $? = 0 ] || [ $? = 1 ]; then default_type application/octet-stream;
do_start
fi
log_end_msg $? charset utf-8;
;; server_tokens off;
sendfile on;
reload)
log_begin_msg gzip on;
is_running gzip_http_version 1.0;
if [ $? = 0 ]; then gzip_comp_level 6;
log_failure_msg "Server not running" gzip_proxied any;
log_end_msg 1 gzip_disable "MSIE [1-6]\.(?!.*SV1)";
else gzip_buffers 16 8k;
$NGINX -t gzip_types text/plain text/html text/css
if [ $? = 0 ]; then application/x-javascript text/xml application/xml
kill -HUP $($CAT $PID_FILE) application/javascript text/js
if [ $? = 0 ]; then application/xml+rss text ↵
log_success_msg "Server configuration ↵ /javascript application/atom+xml;
reloaded"
log_end_msg 0 ssl_session_cache shared:SSL:10m;
else ssl_session_timeout 10m;
log_failure_msg "Error while ↵
reloading configuration" include /etc/nginx/example.ru.conf
log_end_msg 1 }

№10, октябрь 2008 73


web
Рассмотрим опции по порядку:
n Опция user описывает, от име- Протокол WSGI сывает порядок передачи параметров при-
ни какого пользователя и груп- До определенного момента для связи ложению, передачи ответа серверу и об-
пы будут выполняться рабочие веб-приложения, написанного на Python работку ошибок. Кроме того, учитывают-
процессы. и HTTP-сервера, использовалось множес- ся расширения, специфичные для различ-
n Опция worker_processes опреде- тво подходов. Например, это могли быть ных серверов. Простейшее приложение
ляет количество рабочих процес- протоколы CGI и FastCGI или модуль mod_ с использованием WSGI может выглядеть
сов. Количество рабочих процес- python для Apache. Также многие приложе- так (см. листинг).
сов – параметр, который влияет ния, например Zope, использовали жестко Таким образом, протокол позволяет, на-
на производительность и в основ- интегрированные HTTP-серверы. Стандар- пример, начать отлаживать веб-приложе-
ном зависит от ожидаемой нагруз- тный протокол WSGI (http://www.python.org/ ние, используя стандартный пакет wsgiref
ки на сервер и требуемой функци- dev/peps/pep-0333) был впервые пред- (появился в Python 2.5), и затем перейти
ональности сайтов. В простейшем ложен в декабре 2003 года и на данный на mod_wsgi (с nginx, или Apache) или HTTP-
случае может быть только один ра- момент поддерживается подавляющим сервер из асинхронного каркаса Twisted.
бочий процесс, но если использу- большинством серве- def application(environ, start_response):
ется компрессия данных, или SSL, ров и веб-приложений, status = '200 OK'
то их количество может быть равно написанных на Python. response_headers = [('Content-type','text/plain')]
start_response(status, response_headers)
количеству процессоров или в два Протокол подробно опи- return ['Hello world!\n']
раза большему числу. В данном
случае я выбрал 4 рабочих процесса, т.к. пример со ста- server {
listen 80;
тическим сайтом использует и компрессию, и SSL и за- server_name example.ru *.example.ru;
пускается на двухпроцессорной машине. В случае если
error_log /var/log/nginx/example.ru/error.log info;
используются не совсем свойственные nginx синхрон- access_log /var/log/nginx/example.ru/access.log;
ные модули, как например mod_wsgi, нужно выбрать ко-
location / {
личество рабочих процессов в зависимости от ожидае- root /home/www/example.ru/data/;
мого количества одновременных запросов и скорости index index.html;
их обработки. if ($host != "example.ru") {
n Опции error_log и pid описывают соответственно путь rewrite ^(.*) http://example.ru$1 permanent;
}
к файлу журнала ошибок вместе с уровнем логгинга }
и путь к файлу, в котором будет храниться идентифи- }
катор главного процесса сервера. server {
n Секция events описывает опции, связанные с обработ- listen 443;
server_name example.ru;
кой событий. Опция worker_connections описывает ог-
раничение на количество одновременно обрабатывае- error_log /var/log/nginx/example.ru/error.log info;
access_log /var/log/nginx/example.ru/access.log;
мых рабочими процессами соединений. Таким образом,
в случае статического сайта максимальное количество ssl on;
ssl_certificate /etc/nginx/cert/example.ru.pem;
одновременных соединений с сервером можно рассчи- ssl_certificate_key /etc/nginx/cert/example.ru.pem;
тать по формуле: worker_processes * worker_connections.
auth_basic "Example admin place";
Также в этой секции можно выбрать метод обработки со- auth_basic_user_file /home/www/example.ru/.htpasswd;
бытий, например use epoll, и другие настройки, связан-
location / {
ные с обработкой событий. root /home/www/example.ru/data/admin/;
n Секция http описывает конфигурацию HTTP-сервера index index.html;
}
и всех сайтов. Опции include и default_type описывают }
каталог MIME-типов и тип по умолчанию соответствен-
но. Опция charset определяет кодировку, которая будет В данном случае файл /etc/nginx/example.ru.conf опи-
добавлена в заголовок ответа Content-Type. Если ее сывает две версии одного сайта – обычную HTTP-версию
не указывать, браузеры будут использовать собствен- и HTTPS-версию, защищенную паролем. Секции server опи-
ные кодировки по умолчанию как кодировку контента. сывают конфигурацию виртуальных серверов.
Опция server_tokens управляет выводом номера версии Рассмотрим опции подробнее:
сервера в ответах. Опция sendfile включает использо- n Опция listen определяет адрес и порт, на котором сервер
вание системного вызова, оптимизирующего посылку будет принимать запросы. Здесь также можно задать
файлов. Набор опций, начинающихся на gzip, описыва- дополнительные опции, управляющие приемом соеди-
ет параметры сжатия ответов. Набор опций, начинаю- нений. В том числе с помощью этой опции можно объ-
щихся на SSL, описывает настройки SSL-сессий. Опция единить конфигурацию HTTP- и HTTPS-серверов в од-
include подключает другой файл конфигурации, в дан- ной секции, хотя в примере этого не сделано.
ном случае непосредственно конфигурацию сайта. n Опция server_name задает имя и псевдонимы сайта.
n Опции error_log и access_log определяют путь к файлу
Конфигурация сайта может выглядеть следующим об- журнала ошибок с уровнем логгирования и журналу за-
разом: просов соответственно.

74
web
n Секция location объединяет конфигурационные пара- Рассмотрим не описанные выше опции:
метры в зависимости от URI запроса. n Опция error_page задает URI, который будет показывать-
n Опции root и index описывают корневую директорию сай- ся для заданных кодов ошибок. В данном случае это
та и имя индексного файла по умолчанию. ошибки, связанные с недоступностью вспомогательно-
n Опции if и rewrite используются для изменения URI за- го сервера, или невозможностью обработать запрос.
проса. В данном примере все запросы для других до- n Опция alias задает замену для указанного пути. Та-
менов перенаправляются на example.ru. ким образом для страницы сайта /maintenance.html
n Опции, начинающиеся с ssl_, описывают путь к SSL-сер- будет возвращено содержимое файла /home/www/
тификату и приватному ключу соответственно. zope3.example.ru/data/index.html, который может содер-
n Опции, начинающиеся с auth_basic, описывают текст жать страницу с описанием того, почему сервер в дан-
комментария при вводе пароля и путь к файлу со спис- ный момент не доступен.
ком паролей соответственно, в случае использования n Опция proxy_pass задает адрес и путь на вспомога-
простой HTTP-авторизации. Файл со списком паролей тельном сервере, на который будет отображаться путь
может быть создан утилитой htpasswd из пакета серве- на сайте. Таким образом, в случае доступа к http://
ра Apache. На данный момент nginx не поддерживает example.zope3.ru/page.html пользователю будет возвра-
других методов авторизации кроме простой HTTP-ав- щен результат обработки запроса вспомогательным сер-
торизации. вером по адресу http://127.0.0.1:8080/++skin++example/sites/
example/++vh++http:zope3.example.ru:80/++/page.html.
Настраиваем HTTP-прокси
Часто HTTP-сервер является лишь посредником (прок- Настраиваем PHP
си), стоящим перед другим HTTP-сервером. Например, На данный момент наиболее оптимальным способом свя-
такая конфигурация нужна, если один из сайтов сделан зать nginx и PHP является протокол FastCGI. При этом PHP
с применением технологии, которая уже имеет свой HTTP- должен работать в отдельном процессе, что не является
сервер, или посредник используется как балансиров- особой проблемой, так как PHP уже имеет собственный
щик нагрузки для нескольких стоящих за ним серверов. FastCGI-демон. Для управления демоном PHP можно ис-
В nginx эта функциональность поддерживается модулем пользовать следующий скрипт, который в свою очередь
ngx_http_proxy_module. можно сохранить как /etc/init.d/php-fastcgi и дать ему пра-
Также с помощью модуля ngx_http_memcached_module ва на исполнение:
nginx можно использовать совместно с Memcached
(http://www.danga.com/memcached) для кэширования контен- #! /bin/sh
та. Рассмотрим пример простого сайта, который перенаправ- EXEC_AS_USER=www-data
ляет запросы на сервер, сделанный с использованием техно-
FCGI_HOST=127.0.0.1
логии Zope 3 (http://www.zope.org). Сначала добавим следую- FCGI_PORT=9000
щие опции в секцию http файла /etc/nginx/nginx.conf:
PHP_FCGI_CHILDREN=5
PHP_FCGI_MAX_REQUESTS=1000
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; DAEMON=/usr/bin/php-cgi
proxy_set_header X-Forwarded-For ↵ PIDFILE=/var/run/php-fastcgi.pid
$proxy_add_x_forwarded_for; PHP_CONFIG_FILE=/etc/php5/cgi/php.ini
START_STOP_DAEMON=/sbin/start-stop-daemon
include /etc/nginx/zope3.example.ru.conf
export PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS
DAEMON_ARGS="-q -b $FCGI_HOST:$FCGI_PORT ↵
Эти опции устанавливают дополнительные заголовки, -c $PHP_CONFIG_FILE"
которые будут переданы вспомогательному серверу, и под-
. /lib/lsb/init-functions
ключают файл конфигурации сайта. Конфигурация сайта
может быть такой: do_start()
{
$START_STOP_DAEMON --start --quiet ↵
server { --pidfile $PIDFILE --exec $DAEMON --test || return 1
listen 80; $START_STOP_DAEMON --start --quiet ↵
server_name zope3.example.ru; --pidfile $PIDFILE --exec $DAEMON ↵
--background --make-pidfile --chuid $EXEC_AS_USER ↵
error_log ↵ --startas $DAEMON -- $DAEMON_ARGS || return 2
/var/log/nginx/zope3.example.ru/error.log info; }
access_log ↵
/var/log/nginx/zope3.example.zope3.ru/access.log; do_stop()
{
error_page 502 503 504 /maintenance.html; $START_STOP_DAEMON --stop --quiet ↵
location /maintenance.html { --retry=TERM/30/KILL/5 ↵
alias /home/www/zope3.example.ru/data/index.html; --pidfile $PIDFILE # --name $DAEMON
} RETVAL="$?"
[ "$RETVAL" = 2 ] && return 2
$START_STOP_DAEMON --stop --quiet --oknodo ↵
location / { --retry=0/30/KILL/5 --exec $DAEMON
proxy_pass http://127.0.0.1:8080 ↵ [ "$?" = 2 ] && return 2
/++skin++example/sites/example ↵ rm -f $PIDFILE
/++vh++http:zope3.example.ru:80/++/; return "$RETVAL"
} }
}

№10, октябрь 2008 75


web
case "$1" in wsgi_var REQUEST_METHOD $request_method;
start) wsgi_var QUERY_STRING $query_string;
log_begin_msg
do_start wsgi_var CONTENT_TYPE $content_type;
log_end_msg $? wsgi_var CONTENT_LENGTH $content_length;
;;
stop) wsgi_var SERVER_NAME $server_name;
log_begin_msg wsgi_var SERVER_PORT $server_port;
do_stop
log_end_msg $? wsgi_var SERVER_PROTOCOL $server_protocol;
;;
restart) wsgi_var REQUEST_URI $request_uri;
log_begin_msg wsgi_var DOCUMENT_URI $document_uri;
do_stop wsgi_var DOCUMENT_ROOT $document_root;
if [ $? = 0 ] || [ $? = 1 ]; then
do_start wsgi_var SERVER_SOFTWARE $nginx_version;
fi
log_end_msg $? wsgi_var REMOTE_ADDR $remote_addr;
;; wsgi_var REMOTE_PORT $remote_port;
*) wsgi_var SERVER_ADDR $server_addr;
echo "Usage: php-fastcgi {start|stop|restart}"
exit 3 wsgi_var REMOTE_USER $remote_user;
;;
esac
После этого необходимо добавить в /etc/nginx/nginx.conf
После старта демона он начнет принимать запросы в секцию http опции:
по адресу 127.0.0.1:9000, и для сайта можно использовать
следующий файл конфигурации: wsgi_temp_path /var/lib/nginx/wsgi;
include /etc/nginx/wsgi_params;

Теперь сделаем WSGI-скрипт для подключения Trac и по-


error_log ↵
/var/log/nginx/php.example.ru/error.log info; ложим его как /home/www/wsgi.example.ru/wsgi.py, не забы-
access_log /var/log/nginx/php.example.ru/access.log; вая сделать исполняемым:
location / {
root /home/www/php.example.ru/data/; #! /usr/bin/env python2.4
index index.html;
} import os
location ~ \.php$ { os.environ['TRAC_ENV'] = "/home/www/wsgi.example.ru/trac"
fastcgi_pass 127.0.0.1:9000; os.environ['PYTHON_EGG_CACHE'] = "/var/tmp"
fastcgi_index index.php;
include /etc/nginx/fastcgi_params; import trac.web.main
fastcgi_param SCRIPT_FILENAME ↵
/home/www/php.example.ru/data$fastcgi_script_name; application = trac.web.main.dispatch_request
}
}
И последний момент – конфигурация сайта:
Кроме уже известных опций, здесь есть секция, кото-
рая определяет действия для всех путей, оканчивающих- server {
listen 80;
ся на .php: server_name wsgi.example.ru;
n Опция fastcgi_pass определяет адрес FastCGI-сервера. error_log ↵
В нашем случае это адрес, где запущен демон PHP. /var/log/nginx/wsgi.example.ru/error.log info;
n Опция fastcgi_index задает имя индексного файла access_log ↵
/var/log/nginx/wsgi.example.ru/access.log;
для FastCGI.
n Опцией include мы подключаем файл с параметрами, location / {
wsgi_pass /home/www/wsgi.example.ru/wsgi.py;
которые будут передаваться в FastCGI-запросах. К со- }
жалению, мы не можем один раз подключить эти пара- }
метры на более верхнем уровне, т.к. следующая опция
fastcgi_param, которая в свою очередь задает еще один Здесь опция wsgi_pass определяет имя скрипта, кото-
дополнительный параметр, отменяет все определения рый будет выполняться в рамках рабочего процесса. Соот-
параметров более высокого уровня. ветственно, так как скрипты выполняются синхронно в рам-
ках рабочих процессов, для оптимизации производитель-
Настраиваем Python с WSGI ности сайта с WSGI, возможно, придется увеличить значе-
WSGI является протоколом, который связывает HTTP-сер- ние опции worker_processes в nginx.conf.
вер и приложение на Python. На данный момент уже есть
большое количество серверов и приложений, работающих Заключение
по этому протоколу, что позволяет использовать их как вза- Я постарался охватить широкий спектр вопросов, связан-
имозаменяемые компоненты. В примере я подключу к nginx ных с nginx. Конечно, многие детали пока остались за кад-
известный трекер ошибок Trac (http://trac.edgewall.org). ром, но о них можно прочитать на следующих сайтах: http://
Прежде всего нам нужно создать файл с описанием пара- sysoev.ru/nginx и http://wiki.codemongers.com/Main. Надеюсь,
метров, передаваемых по WSGI. Файл можно записать как статья помогла вам расширить кругозор и выбрать правиль-
/etc/nginx/wsgi_params по аналогии с fastcgi_params: ный HTTP-сервер, подходящий для ваших задач.

76
bugtraq

Обход ограничений безопасности Уязвимость в протоколе IPv6 Neighbor


в Apache Tomcat Discovery в продуктах Juniper
Программа: Apache Tomcat версии 4.1.0 по 4.1.31; Apache Программа: Juniper IVE OS Software 1.x; Juniper IVE OS
Tomcat версия 5.5.0. Software 2.x; Juniper IVE OS Software 3.x; Juniper IVE OS
Опасность: Низкая. Software 4.x; Juniper IVE OS Software 5.x; Juniper IVE OS
Описание: Уязвимость существует из-за ошибки синхро- Software 6.x; Juniper Networks DXOS 5.x; Juniper Networks IDP
низации при проверке IP-адресов. Удаленный пользователь 4.x; Juniper Networks Infranet Controller 4000; Juniper Networks
может обойти ограничения фильтра и получить доступ к за- Infranet Controller 6000; Juniper Networks Secure Access 2000;
щищенным данным с заблокированного IP-адреса. Juniper Networks Secure Access 4000 (NetScreen-SA 3000
URL производителя: jakarta.apache.org/tomcat. Series); Juniper Networks Secure Access 6000 (NetScreen-
Решение: Установите последнюю версию 4.1.32 или 5.5.1 SA 5000 Series); Juniper Networks Secure Access 6000 SP;
с сайта производителя. Juniper Networks Secure Access 700; Juniper Networks Session
and Resource Control (SRC) 1.x; Juniper Networks Session
Небезопасная обработка временных and Resource Control (SRC) 2.x; Juniper Networks WX Series;
файлов в FreeRADIUS Juniper Networks WXC Series.
Программа: FreeRADIUS 2.0.4, возможно, более ранние Опасность: Низкая.
версии. Описание: Уязвимость существует из-за ошибки в реа-
Опасность: Низкая. лизации Neighbor Discovery протокола при обработке за-
Описание: Уязвимость существует из-за того, что сцена- просов на опрос соседа (neighbor solicitation). Удаленный
рии dialup_admin/bin/backup_radacct, dialup_admin/bin/clean_ пользователь может с помощью опроса соседа, содержа-
radacct, dialup_admin/bin/monthly_tot_stats, dialup_admin/bin/ щего поддельный IPv6-адрес, добавить этот адрес в таб-
tot_stats и dialup_admin/bin/truncate_radacct небезопасным лицу кеша соседа и перехватить или помешать передаче
образом обрабатывают временные файлы. Локальный сетевого трафика. Для успешной эксплуатации уязвимос-
пользователь может с помощью специально сформиро- ти, IPv6‑узлы, участвующие в атаке, должны использовать
ванной символической ссылки перезаписать произвольные один и тот же маршрутизатор.
файлы на системе с повышенными привилегиями. URL производителя: www.juniper.net.
URL производителя: www.freeradius.org. Решение: В настоящее время способов устранения уязви-
Решение: В настоящее время способов устранения уязви- мости не существует.
мости не существует.
Повышение привилегий в ядре Linux
Повышение привилегий в Gentoo Linux Программа: Linux kernel 2.6.x.
Программа: Gentoo Linux 1.x. Опасность: Низкая.
Опасность: Низкая. Описание: Уязвимость существует из-за ошибки в функции
Описание: Уязвимость существует из-за того, что систем- vmi_write_ldt_entry() в arch/x86/kernel/vmi_32.c. Локальный
ная утилита portage (версии до 2.1.4.5) включает текущую пользователь может с помощью функции sys_modify_ldt()
рабочую директорию в путь модуля поиска. Злоумышлен- записать значения в IDT и повысить свои привилегии на сис-
ник может поместить злонамеренный модуль, например, теме. Для успешной эксплуатации уязвимости ядро должно
в директорию /tmp и обманом заставить администрато- быть запущено как VMI-гость на x86-системе.
ра произвести emerge из этой директории для определен- URL производителя: www.kernel.org.
ных пакетов (например, sys-apps/portage, net-mail/fetchmail Решение: Установите исправление из GIT-репозитория
или app-editors/leo). Успешная эксплуатация уязвимос- производителя.
ти позволит злоумышленнику повысить свои привилегии
на системе. Повышение привилегий в Virtual Address
URL производителя: www.gentoo.org. Descriptor в Microsoft Windows
Решение: Установите исправление с сайта производителя. Программа: Microsoft Windows XP, Microsoft Windows
Server 2003, Microsoft Windows Vista, Microsoft Windows
Обход ограничений безопасности Server 2008.
в ModSecurity Опасность: Низкая.
Программа: ModSecurity версии 2.5.0 по 2.5.5. Описание: Целочисленное переполнение обнаружено при
Опасность: Низкая. обработке параметров VAD (Virtual Address Descriptor). Ло-
Описание: Уязвимость существует из-за ошибки в ме- кальный пользователь может вызвать повреждение памя-
ханизме кеширования трансформаций. Удаленный поль- ти и выполнить произвольный код на целевой системе с по-
зователь может в некоторых случаях обойти проверку вышенными привилегиями.
ModSecurity. Для успешной эксплуатации уязвимости опция URL производителя: www.microsoft.com.
SecCacheTransformations должна быть включена. Решение: Установите исправление с сайта производителя.
URL производителя: www.modsecurity.org.
Решение: Установите последнюю версию 2.5.6 с сайта Составил Александр Антипов
производителя.

№10, октябрь 2008 77


программирование

Сервер приложений С++

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

П
рототип CAS был разработан низатор продиктовали необходимость терфейсы для работы с Apache 1.3,
в ноябре 2003 года в компании разработки новой современной удоб- Apache 2.X и FastCGI. Поддерживают-
«НетБридж Сервисез» (Mail.ru). ной версии. ся платформы: FreeBSD (i386, amd64),
Он представлял собой монолитное Дальнейшее развитие этой систе- Linux 2.6 (i386, amd64), Solaris (i386,
приложение, для каждой модифика- мы привело к созданию сервера при- amd64, sparc, ultrasparc).
ции требующее перекомпиляции кода ложений C++ (C++ Application Server, Конфигурация CAS хранится в ви-
проекта. Тем не менее в нем уже при- CAS) – инструментария, лишенного де XML-файлов и допускает возмож-
сутствовали все основные компонен- недостатков предыдущей версии, об- ность задать большинство парамет-
ты современного сервера приложе- ладающего широкими возможностя- ров «по умолчанию», а наиболее час-
ний: класс представления (библиоте- ми конфигурирования и расширения то используемые секции конфигура-
ка CTPP версий 1.X), классы моделей, функционала и в то же время способ- ции вынести в отдельные файлы. Вы-
реализующие конкретный интерфейс, ного обрабатывать сотни и тысячи за- бор XML как языка описания конфигу-
наследованный от абстрактного клас- просов в секунду. рации позволяет пользоваться стан-
са и контроллер в виде массива объ- Сейчас CAS – полноценный сервер дартными утилитами для проверки их
ектов, содержащих имя обрабатывае- приложений, имеющий в своей осно- синтаксиса и редактирования.
мого URL и набора исполняемых объ- ве архитектуру MVC и поддерживаю- Классы моделей-обработчиков
ектов-моделей. щий ее дополнительные расширения. и других функциональных объектов
Очевидные недостатки подоб- При проектировании и разработке это- можно загружать как в виде отдель-
ной схемы, а именно: требование пе- го продукта особое внимание уделя- ных модулей, так и как монолитные
ресборки всего проекта при измене- лось удобству работы программистов библиотеки.
нии любого класса модели, негибкая с его API, простоте администрирова- В случае необходимости возмож-
организация объекта контроллера ния и эксплуатации. на разработка собственных вариан-
и единственный возможный шабло- Сервер приложений имеет ин- тов классов контроллера и представ-

78
программирование
ления. Таким образом, функциональ-
ность CAS можно изменять практичес- &RQWUROOHU

ки произвольно.

5HTXHVW
Мы расскажем, как использовать
сервер приложений для разработки
сложных высоконагруженных веб-про-
ектов на языке С++. 0RGHO
0RGHO
0RGHO
+DQGOHUV 5HVRXUFHV
5HVRXUFHV
5HVRXUFHV
Архитектура CAS
и парадигма MVC
Сервер приложений CAS построен
по многокомпонентной схеме, отде-
ляющей сущности модели MVC друг 5HVSRQVH 9LHZ
+70/WHPSODWHV
от друга. Каждая из сущностей пред-
ставляет собой отдельный загружае- Рисунок 1. Общая схема архитектуры MVC
мый модуль и может быть заменена
независимо от остальных. Классическая модель MVC вы- Контроллер, если присутствует в описании локации,
глядит следующим образом (см. рис. 1). исполняется первым. Основное предназначение контрол-
Пользователь отправляет запрос к серверу приложений. лера – изменение конфигурации локации в зависимос-
Контроллер выбирает необходимый набор моделей и, в за- ти от полученных от пользователя данных. Например, ес-
висимости от конфигурации, последовательно или парал- ли язык страницы зависит от географического положения
лельно исполняет их. Модели, взаимодействуя с внешни- пользователя, контроллер может вычислить язык по IP-ад-
ми ресурсами, например, с различными (Р)СУБД созда- ресу клиента.
ют набор данных, передаваемых в объект представления. Объекты моделей вызываются последовательно, в по-
Представление формирует требуемый ответ на основе пе- рядке, указанном в файле конфигурации, и выполняют ра-
реданного набора данных и загруженных шаблонов стра- боту по получению требуемого набора данных для отобра-
ниц и отправляет его пользователю. жения запроса. При возникновении ошибки выполнение
В зависимости от конфигурации для разных URL, обра- моделей прекращается, и запускается исполнение цепоч-
батываемых сервером, могут быть использованы различные ки финализаторов.
классы контроллеров, моделей и представления, что дает Финализатор – объект, назначение которого состоит
возможность сконфигурировать CAS для выполнения задач
разных типов. К примеру, используя один и тот же сервер,
3DUVH$SDFKHFRQILJXUDWLRQ
можно одновременно построить портал для посетителей,
RSHQORJV
пользующихся как обычными обозревателями (Microsoft ORDGPRGBFDVPRGXOH
Internet Explorer, Mozilla Firefox или Opera), так и WAP-обоз-
ревателями из мобильных телефонов.
Архитектуру сервера приложений проще всего описать
на примере использования CAS как модуля веб-сервера
Apache. Реализации CAS, поддерживающие интерфейсы
FastCGI и CGI имеют несущественные архитектурные раз- 3DUVHJOREDOFRQILJXUDWLRQ
личия (см. рис. 2). FUHDWH&$SSOLFDWLRQ6HUYHUPDQDJHU
При запуске Apache происходит загрузка CAS и его ини- FUHDWHJOREDOGDWDSRRO
циализация. После успешной инициализации, включающей
&UHDWHSURFHVV

&UHDWHSURFHVV

&UHDWHSURFHVV

в себя чтение и обработку файла глобальной конфигура-


ции, загрузку и инициализацию модулей, чтение и инициа-
лизацию конфигураций виртуальных серверов, Apache соз-
дает пул процессов или нитей, обрабатывающих запросы
от пользователей. До тех пор, пока работа CAS не оконче-
на, в цикле производится обработка запросов и выдача ре- 6HUYH
5HTXHVWV
6HUYH
5HTXHVWV
6HUYH
5HTXHVWV
зультатов пользователям. По окончании работы модули вы-
гружаются, освобождается использованная память и про-
цессы или нити завершаются (см. рис. 3).
6KXGGRZQVHUYHU

6KXGGRZQVHUYHU

6KXGGRZQVHUYHU

Обработка каждого запроса начинается с проверки URL.


Если URL не обрабатывается сервером, управление воз-
вращается без каких-либо действий со стороны CAS. Ес-
ли URL обрабатывается, то производится поиск локации,
'HVWUR\GDWD 'HVWUR\GDWD 'HVWUR\GDWD
ответственной за обработку URL. Для найденной локации SRRO H[LW SRRO H[LW SRRO H[LW
выбираются объекты, подлежащие исполнению: контрол-
лер, список моделей и представление. Рисунок 2. Схема загрузки и инициализации CAS

№10, октябрь 2008 79


программирование
тации, посвященном установке и настройке сервера при-
&RQWUROOHU ложений.
Чтобы создать модуль, необходимо подать следующую
команду:

5XQPRGHOV
cas-xt -t handler -g -n Hello
0RGHO (UURU" Using templates from directory "/usr/local/share/cas/xt"
Output directory is ""
Creating [DIR] Hello
0RGHO
Creating [DIR] Hello/include
Creating [DIR] Hello/src
0RGHO )LQDOL]HU Creating [FILE] Hello/src/Hello.cpp
Creating [FILE] Hello/CMakeLists.txt

)LQDOL]HU Смысл ключей следующий:


*HWUHVXOW

n -t – задает тип создаваемого ресурса, в нашем случае


это «handler»;
9LHZ n -g – указывает о необходимости сгенерировать набор
шаблонов;
Рисунок 3. Цикл обработки запроса n -n – указывает имя создаваемого модуля, у нас –
«Hello».
в коррекции возникшей в модели ошибки. В случае воз-
никновения ошибки в объекте модели финализатор может Если все прошло успешно, будет создан каталог Hello,
предпринять определенные действия для ее исправления а в нем – два файла: CmakeLists.txt и Hello.cpp.
или, если ошибку исправить нельзя, вывести диагности- Все, что следует сделать – это открыть на редактирова-
ческое сообщение пользователю. ние файл Hello.cpp. и вписать в метод Handler вывод стро-
Визуализация результатов производится в объекте ки «Hello, World»:
представления. Представление производит наложение дан-
ных на шаблон и генерирует требуемый документ. Пред- //
// Initialize handler
ставление всегда выполняется последним. //
Кратко остановимся на понятии локации. В идеологии INT_32 Hello::Handler(CTPP::CDT & oData,
ASRequest & oRequest,
CAS, локация – единица конфигурации сервера, включа- ASResponse & oResponse,
ющая в себя список обрабатываемых URL, описание ис- ASPool & oGlobalPool,
ASPool & oVhostPool,
пользуемого контроллера, моделей, финализаторов и пред- ASPool & oRequestPool,
ставления. CTPP::CDT & oLocationConfig,
CTPP::CDT & oIMC,
Каждая локация имеет уникальное имя. Выбор лока- ASLogger & oLogger)
ции производится по совпадению запрашиваемого URL {
DEBUG_HELPER(&oLogger, "Hello::Handler");
с URL, обрабатываемых локацией. Возможно как полное
совпадение, так и совпадение с заданным регулярным вы- // Put your code here
oData["hello"] = "Hello, World!";
ражением.
Чтобы сказанное было более понятно, рассмотрим при- // 200 OK
oResponse.SetHTTPCode(200);
мер создания простейшего приложения.
// Set HTTP header
oResponse.SetHeader("X-Module", "Hello");
Простейшее приложение CAS
В нашем приложении мы не будем строить чего-либо слож- return HANDLER_OK;
}
ного, а остановимся на широко известной новичкам про-
грамме «Hello, World!». Для сборки модуля следует перейти в каталог Hello и вы-
Чтобы разработать ее, нам потребуется: полнить команду:
n любой компьютер под управлением FreeBSD, Linux или
Solaris; cmake . && make install
n установленный сервер приложений;
n компилятор С++; После автоматической сборки и установки нам потре-
n программа cmake; буется создать шаблон для вывода данных и отредактиро-
n программа make; вать файлы конфигурации.
n 10 минут свободного времени. Шаблон генерируемой страницы, который необходи-
мо будет сохранить в файле /home/www/example.com/tmpl/
Первое, что следует сделать – создать проект модуля login.tmpl, будет очень простым:
CAS. Для этого служит программа cas-xt – CAS eXtension
Tool. Синтаксис ее ключей во многом повторяет синтак- <html>
<head>
сис широкоизвестной программы apxs. Более подробную <title>My first example</title>
справку о cas-xt вы можете прочитать в разделе докумен- </head>

80
программирование
<body> lynx -mime_header http://localhost/hello.html
<TMPL_var hello>
</body> HTTP/1.1 200 OK
</html> Date: Wed, 30 Jul 2008 12:00:41 GMT
Server: Apache/1.3.41 (Unix) mod_cas/3.1.4(Feather)
X-Powered-By: C++ Application Server v 3.1.4(Feather)
Теперь осталось только настроить CAS для обработки X-Module: Hello
HTTP-запросов. Connection: close
Content-Type: text/html
CAS использует два файла конфигурации: глобальный
и конфигурации виртуального сервера. Глобальный файл, <html>
global-config.xml, в зависимости от операционной системы, <head>
<title>My first example</title>
обычно размещается в каталогах /etc/cas, /usr/local/etc/cas </head>
или /opt/CASWserver/conf. <body>
Hello, World!
Чтобы добавить модуль, в глобальный файл конфигу- </body>
рации, в секцию Modules следует внести строку с описани- </html>
ем имени модуля, его типа и файла динамической библи-
отеки, в которой он содержится: Как мы видим, разработка модулей для CAS не пред-
ставляет особой сложности: для реализации базового
<Modules> функционала достаточно выполнения нескольких простых
....
<Module Name="Hello" Library="mod_hello.so" действий.
ModuleType="Handler"/> Разумеется, для построения больших и сложных сис-
....
</Modules> тем, безусловно, потребуются глубокие знания архитекту-
ры и реализации CAS.
Следующий шаг – указать, как и где будет использо-
ваться подключенный нами обработчик. Делается это пу- Интеграция с популярными
тем изменения файла конфигурации виртуального сервера технологиями
CAS. Его имя задается в конфигурации сервера Apache ди- Разумеется, мы не призываем полностью отказаться от ис-
рективой CASConfigFile. По умолчанию сервер приложений пользования традиционных веб-технологий. Используя CAS
отключен, поэтому, чтобы разрешить работу CAS с указан- вместе с библиотекой CTPP для Perl или PHP, вы можете
ным виртуальным сервером Apache, требуется также вы- создавать проекты, высоконагруженная часть которых ре-
ставить флаг CASEnable в положение On. Пример для вир- ализована на технологии сервера приложений, а низко-
туального сервера дан ниже: нагруженная – на классических Perl или PHP.
Подобный подход даст возможность очень быстро соз-
<VirtualHost *:80> дать прототип проекта, найти самые нагруженные его час-
ServerName example.com
CASEnable On ти и провести их портирование на CAS. При этом шаблоны
CASConfigFile /home/www/example.com/example.xml страниц и набор данных для их отображения останутся не-
DocumentRoot /home/www/example.com
</VirtualHost> изменными, что позволит произвести максимально плав-
ную миграцию серверной части.
В файле /home/www/example.com/example.xml в секции
Locations указываем URL и имя модуля: Выводы
n сервер приложений С++ – зрелый, высокотехнологич-
<Locations> ный Open Source-продукт, готовый к коммерческому ис-
...
<Location name="HelloExample"> пользованию;
<URIList> n производительность CAS является наиболее высокой
<URI type="plain">/hello.html</URI>
<URIList> среди популярных веб-технологий, а потребление памя-
<Templates> ти и процессорного времени – самым низким, что в со-
<Template>/home/example.com/tmpl/hello.tmpl</Template>
</Templates> вокупности своей позволяет использовать CAS в высо-
<Handlers> конагруженных проектах любой сложности;
<Handler name="Hello"/>
</Handlers> n модульность системы дает возможность параллель-
<View> ной разработки проекта большим коллективом про-
<Handler name="CTPP2View"/>
</View> граммистов;
</Location> n продемонстрированные примеры свидетельствуют
....
</Locations> о простоте разработки, настройки и обслуживания
CAS;
После этого можно перезапустить Apache. n совместное использование с другими средами (Perl, PHP,
Python) допускает быстрое прототипирование и эффек-
apachectl restart тивную технологическую миграцию проекта;
/usr/local/sbin/apachectl restart: httpd restarted n использованный язык шаблонов содержит в своей осно-
ве синтаксические соглашения широкоизвестных моду-
Вот и все. Настало время насладиться результатами лей Perl, а значит – прост в понимании и освоении вер-
работы: стальщиками HTML.

№10, октябрь 2008 81


программирование

Создание графических интерфейсов


на Ruby/GTK+

Александр Симаков
GTK+ – это одна из наиболее популярных библиотек для построения графических интерфейсов,
предназначенных для использования в основном под X Window System. Несмотря на то что GTK+
изначально разрабатывалась для UNIX-систем, сейчас она с успехом работает и под Windows,
и под OSX. В этой статье рассказано, как можно программировать кроссплатформенные
графические интерфейсы на языке Ruby с использованием библиотеки GTK+.

Что такое GTK+ на в отдельный проект. Библиотека Установка под Linux


GTK+, или GIMP Toolkit, – это од- GTK+ написана на C, но существуют Количество дополнительного програм-
на из наиболее популярных библи- привязки и ко многим другим языкам много обеспечения, которое придется
отек для построения графических программирования (http://www.gtk.org/ установить, зависит от вашего дистри-
интерфейсов под X Window System. language-bindings.html). Всего их по- бутива. Вот приблизительный список:
Изначально GTK+ была разработа- рядка 15. Среди них есть поддержка n интерпретатор Ruby;
на Спенсером Кимболом (Spencer и языка Ruby. n заголовочные файлы для Ruby;
Kimball) и Питером Матисом (Peter Именно о связке Ruby/GTK+ и пой- n библиотека GTK2+ и друзья: GLib2,
Mattis) для нужд графического редак- дет речь в этой статье. Отмечу, что рас- Pango и др.;
тора GIMP (GNU Image Manipulation сматривается только вторая версия n заголовочные файлы для пакета
Program), но потом была выделе- библиотеки GTK+. GTK2+.

82
программмирование
После того как базовые библиотеки установлены, загру- #!/usr/bin/ruby
жаем с сайта проекта Ruby-GNOME2 (http://sourceforge.net/ # Подключаем библиотеку gtk2
project/showfiles.php?group_id=53614) привязки (bindings) require 'gtk2'
GTK+ для Ruby. Фактически этот пакет является Ruby-ин- # Наследуем класс Gtk::Window
терфейсом для библиотеки GTK+, написанной на языке C. class HelloWindow < Gtk::Window
# Конструктор класса
На момент написания статьи последней версией была def initialize(title)
0.17.0‑rc1. Далее распаковываем и конфигурируем пакет: # Вызываем конструктор родительского класса
# (Gtk::Window)
super
$ tar -xzf ruby-gnome2-0.17.0-rc1.tar.gz # Устанавливаем заголовок окна
$ cd ruby-gnome2-0.17.0-rc1 set_title(title)
$ ruby extconf.rb # Разрешаем отображение окна со всеми дочерними
# элементами
show_all
Обратите внимание на вывод последней команды. В кон- end
це должен появиться список обнаруженных библиотек: end

# Создаем экземпляр нашего главного окна (HelloWindow)


----- win = HelloWindow.new("Hello World!")
Target libraries: glib, gdkpixbuf, pango, atk, gtk, libart
Ignored libraries: gnome, gtkglext, rsvg, libglade, gnomevfs, # Запускаем цикл обработки событий
gstreamer, gconf, gtkmozembed, vte, bonobo, gtkhtml2, Gtk.main
gtksourceview, gnomeprintui, gnomeprint, libgda, poppler,
bonoboui, gnomecanvas, panel-applet
----- На экране должно появиться окно с заголовком «Hello
Done. World!»

Если среди Target libraries нет, как минимум, GTK и Pango, Что дальше
вернитесь назад и установите недостающие библиотеки Дальше следует вооружиться терпением! Дело в том,
и заголовочные файлы. К примеру, в Mandriva Linux де- что документации по Ruby/GTK+ не так много, поэтому по-
велоперские пакеты имеют окончание -devel: ruby-devel, рой приходится непросто. Но не стоит отчаиваться: доку-
libgtk+2.0_0-devel, libpango1.0-devel и т. д. ментация по самой библиотеке GTK+, т.е. по родному ин-
Теперь нам осталось откомпилировать и установить рас- терфейсу на C, всегда поддерживается в актуальном со-
ширения Ruby: стоянии, кроме того, можно заглянуть и в документацию
по привязкам к другим языкам, если она более актуальна.
$ make Чаще всего разница в интерфейсах незначительна. Вот не-
# make install
сколько полезных ссылок по теме:
Для проверки работоспособности библиотеки и привя- n документация проекта GTK+ – http://www.gtk.org/
зок перейдите в директорию gtk/sample/gtk-demo и запус- documentation.html;
тите скрипт main.rb. Если программа запустилась – прими- n сайт проекта Ruby-GNOME2 – http://ruby-gnome2.
те поздравления! sourceforge.jp.

Установка под Windows Заключение


Несмотря на то что GTK+ изначально разрабатыва- Мир Open Source необычайно богат и многообразен. Не ис-
лась для UNIX-систем, сейчас она с успехом работает ключение и Ruby. Помимо привязок для GTK+ существует
и под Windows, и под OSX. поддержка и для многих других графических тулкитов: Qt,
Пользователям Windows необходимо скачать One-Click Tk, FOX, wxWidgets и т. д. Среди этого многообразия GTK+
инсталлятор Ruby (http://www.ruby-lang.org/en/downloads), удерживает очень прочные позиции: проект активно разви-
а также инсталлятор привязок для GTK+ под Windows вается, а библиотека имеет богатый набор виджетов и раз-
(ht tp: //sourc eforge.net /projec t /show files.php?group_ витый функционал. Другими словами, если вы собираетесь
id=53614&package_id=48093&release_id=474420) с набо- программировать кроссплатформенные графические ин-
ром необходимых библиотек. Установка не вызывает осо- терфейсы на Ruby и не знаете с чего начать, присмотри-
бых проблем: методично нажимаем на кнопку Next. тесь к GTK+.
Отмечу, что с помощью Ruby/GTK+ можно разрабатывать
приложения с полноценным графическим интерфейсом,
которые почти без изменений будут работать как в Linux,
так и в Windows. Разумеется, использование кроссплатфор-
менного языка программирования и библиотек не означа-
ет, что ваше приложение станет кроссплатформенным ав-
томатически: в процессе разработки нужно регулярно тес-
тировать его на всех целевых системах.

Hello World!
Ну куда же без него! Напишем простейшую программу
на Ruby/GTK+: Окна «Hello World!» в Linux (cлева) и Windows

№10, октябрь 2008 83


администрирование «1С»

Распространенные Предупрежден – значит вооружен!

ошибки программистов

Андрей Луконькин
В любой среде программирования существуют свои правила, и среда программирования
«1С:Предприятие» не является исключением. Правила делятся на обязательные (когда
программный код просто не будет выполняться) и необязательные (программа работать
будет, но не оптимально). Рассмотрим некоторое собрание ошибок, которых следует избегать
в работе.

Для платформы чения константы, предопределен- жения» сложных и трудоемких рас-


«1С:Предприятие» 8.1 ного элемента и т. д.). четов, так как это значительно за-
В коде программы, несмотря на то n При создании процедур поля вво- медляет работу системы.
что программа вроде работает, может да, связанных с интерактивным вы- n Не рекомендуется передавать объ-
скрываться масса тонких моментов. бором (через кнопку), необходи- екты в качестве параметров проце-
n Для получения нескольких значе- мо учитывать, что значения мож- дур и функций.
ний реквизитов объекта через не- но еще и ввести непосредственно n При обращении к любому рекви-
сколько точек необходимо исполь- в элемент управления. Кроме того, зиту стороннего объекта проис-
зовать временную переменную: значения также можно и очистить ходит считывание всего объекта.
Правильно: (<CTRL> + <F4>). При повторном обращении, если
n В модуле объекта запрещено об- прошло достаточно мало времени,
ЮрФизЛицоФирмы=Фирма.ЮрФизЛицо; ращение к реквизитам типа «Этот- данные считываются из кэша. По-
КППФирмы= ЮрФизЛицоФирмы.КПП;
КППФирмы= ЮрФизЛицоФирмы.КПП; Объект.Реквизит». Данное выра- этому, если позволяет алгоритм,
жение лучше заменить на «Ссыл- все необходимые значения нужно
Неправильно: ка.Реквизит». считывать сразу с использовани-
n В модуле проведения докумен- ем временных переменных. При по-
ИННФирмы=Фирма.ЮрФизЛицо.ИНН; та необходимо четко понимать, лучении значений реквизитов осо-
КППФирмы=Фирма.ЮрФизЛицо.КПП;
что в процедуре «Перед записью» – бо «тяжелых» объектов лучше вос-
n Вместо процедуры «ПриВыво - ссылка на объект еще не сущест- пользоваться запросом, который
деСтроки» следует использовать вует или уже устарела. Далее ссыл- считывает только требуемые поля,
«ПриПолученииДанных». ка создается, но процесс находит- не загружая весь объект.
n Запрещено создание объектов ся в транзакции и может произой-
и получение постоянных значе- ти откат. Кроме правильного кода, в про-
ний в цикле (например, создание n Не рекомендуется использовать грамме важно и то, насколько комфор-
списка значений, получение зна- в процедуре «ОбновлениеОтобра- тно в ней работать.

84
администрирование «1С»
n Элементы формы должны иметь в запрос предварительно создан- n Использование методов Получить-
имена, отражающие их сущность. ный массив и фильтровать уже по Элемент() или ПолучитьДокумен()
Это облегчит вам жизнь при обра- нему вместо фильтра по результа- без предварительной команды Вы-
щении к данным формы. Например, ту подзапроса. братьЭлементы(); или ВыбратьДо-
вместо имен Надпись1 и Панель2 n Максимальное количество вложен- кументы();
лучше использовать НадписьКонтр- ности запросов не должно превы- n Имя переменной в форме совпа-
агент и КомманднаяПанельТабли- шать 2. На практике всегда можно дает с именем реквизита формы.
цыТоваров. построить логику программы по- Также возможна ошибка, когда имя
n Элементы формы должны быть другому, на экзамене «1С:Специ- реквизита формы совпадает с име-
расположены на форме с вырав- алист» это считается грубейшей нем глобальной переменной.
ниванием и настроенными привяз- ошибкой. n Использование периодического
ками. Проверить правильность ра- n Не нужно получать поля, которые реквизита без метода Использо-
боты привязок можно, не выходя в дальнейшем использоваться ватьДату().
из Конфигуратора (<Ctrl> + <R>). не будут. Также не нужно делать n Попытка создать операцию для до-
При изменении размеров формы лишние группировки и итоги. кумента с отсутствующим призна-
размеры элемента должны изме- n При работе с виртуальными таб- ком «Бухгалтерский учет», или по-
няться пропорционально и не пе- лицами условия должны нахо- пытка создать движение по регист-
рекрывать друг друга. диться в параметрах таблицы. Это ру для документа с отсутствующим
n Элементы формы должны нести увеличивает производительность флагом оперативного учета.
только необходимый и верный в разы. n Если название переменной содер-
функционал. Например: поле вво- n При использовании таких функ- жит символы кириллицы, попыт-
да имеет кнопку «очистка», толь- ций, как СУММА, МАКСИМУМ и др., ка получить значение переменной
ко если допускается использова- по полям, в которых может содер- с символами латиницы или наобо-
ние пустого значения, имеет кноп- жаться значение NULL, нужно эти рот.
ку «открытие», если допускается поля преобразовать функцией n Попытка записать периодический
просмотр элемента. ЕСТЬNULL(). реквизит справочника, у которого
n Хорошим тоном считается нали- нет галочки «Изменяется докумен-
чие всплывающих подсказок при Для платформы тами».
наведении курсора мыши на эле- «1С:Предприятие» 7.7 n В конце модуля бухгалтерского
мент формы. Данный перечень ошибок является документа часто забывают писать
критичным, т.е., допустив их, можно Операция.Записать().
При работе с запросами основной не рассчитывать, что программа за- n Счётчик в запросе нужно писать
упор делается на оптимизацию произ- работает. с буквой «ё».
водительности. n Точка с запятой после команды n Ошибка порядка обхода элемен-
n При получении данных из выбор- КонецПроцедуры или КонецФунк- тов диалога для радиокнопок (пе-
ки запроса лучше избежать орга- ции. реключателей).
низации получения значений рек- n Отсутствие директивы «Далее» n При удалении строк из таблицы
визитов через точку. Все необхо- для процедуры или функции, кото- значений не принимается во вни-
димые данные должны быть полу- рые стоят ниже, чем вызывающая мание, что после удаления стро-
чены в самом запросе. их процедура или функция. ки номер следующей уменьшается
n При использовании запроса в от- n Для объектов, созданных при помо- на единицу и соответственно в цик-
четах в печатную форму выводить щи оператора СоздатьОбъект(...), ле по номерам строки перескакива-
нужно строковые значения полей. отсутствие команд Записать(), Со- ют через одну.
Например, вместо Выборка.Конт- хранить() или Провести(...).
рагент использовать Выборка.Кон- n Отсутствие директивы «Экспорт» Надеюсь, что собранный перечень
трагент.Наименование. для процедуры, функции, перемен- ошибок поможет улучшить качест-
n Если есть такая возможность, ной глобального модуля, которые во и скорость работы. Также было бы
то лучше организовать логику ра- используются в других модулях. очень интересно пополнить эту кол-
боты программы так, чтобы при вы- n Получение бухгалтерских итогов лекцию. Предлагаю всем тем, кто об-
борке данных из нескольких таб- на произвольную дату без «Ит.Вы- ладает подобной информацией, по-
лиц использовать в запросе пол- полнитьЗапрос(). делиться ей на просторах Сети. На-
ное объединение (ОБЪЕДИНИТЬ n Иногда начинающие программис- пример, на форуме журнала: http://
ВСЕ) вместо левого/правого соеди- ты путают методы ТекущаяСтро- www.samag.ru/forum или форуме сис-
нения. ка() и НомерСтроки. В таблице темных администраторов Sysadmins.SU
n Если в запросе необходимо от- значений ТекущаяСтрока() – теку- в разделе «1С»: http://forum.sysfaq.ru/
фильтровать данные списком зна- щая строка на визуальной таблице index.php?showforum=22. Подобная ко-
чений (например, получение остат- (элемент диалога), НомерСтроки – пилка мыслей поможет коллегам и ог-
ков только по позициям номенкла- для таблицы значений, созданной радит в будущем от ошибок.
туры документа), нужно передавать по СоздатьОбъект().

№10, октябрь 2008 85


ретроспектива

«Магические» технологии
История компании General Magic

Дмитрий Мороз
Излишняя амбициозность часто играет с IT-компаниями злую шутку. Не соизволь
самоуверенный лидер должным образом отреагировать на меняющиеся условия рыночной
игры, и вот уже одни только «старожилы», охочие поднимать «пыль» со страниц истории,
смогут вспомнить имя бывшего фаворита.
или иного высокотехнологичного уст-

В
начале 90-х годов прошлого сто- «Любую достаточно ройства о том, каким же образом его
летия в США как грибы после продвинутую технологию создатель в лице обычного человека
дождя начали появляться новые невозможно отличить смог придумать подобное, наиболее
компании с молодыми, но талантливы- от магии» вероятным ответом для него стало бы
ми сотрудниками и большими инвести- Данное высказывание принадлежит «волшебство», которым наделены все
циями извне. Очень часто за быстрым известному писателю-фантасту Арту- инженеры-«кудесники».
взлётом следовало не менее стреми- ру Кларку, автору знаменитого рома- Название для своей компании ос-
тельное падение, и очередной «стар- на «Космическая одиссея 2001». В его нователи General Magic взяли как раз
тап», на миг оказавшийся в лучах сла- книгах люди покоряли открытый кос- из высказывания Кларка, отдав тем
вы, тут же становился историей. Ком- мос, компьютеры общались с челове- самым честь знаменитому писателю.
пания General Magic попала как раз под ком посредством голоса, а обитате- Марк Порат (Marc Porat), Билл Эткин-
эту категорию: талантливые сотрудни- ли планеты Земля обладали незаме- сон (Bill Atkinson) и Энди Хертцфилд
ки, перспективные разработки, всеоб- нимыми персональными коммуника- (Andy Hertzfeld) считали, что разраба-
щая заинтересованность, потоки ин- торами, постоянно державшими их на тываемые в недрах их компании про-
вестиций, а затем собственные ошиб- связи с глобальными информационны- дукты будут высокотехнологичными
ки, проблемы на рынке и, как результат, ми системами. Кларк считал, что за- и вместе с тем чарующими. Впрочем,
быстрое падение в пучину забытья. думайся рядовой пользователь того подобные слова из их уст неудивитель-

86
ретроспектива
ны, ведь и Билл, и Энди в далёком 1984 никами. На данный момент эта кате-
году работали в компании Apple над гория устройств пребывает в «камен-
компьютером, который произвёл ре- ном веке», и мы хотим дать ей толчок
волюцию в мире персональных вычис- к стремительному развитию и пере-
лительных систем – Macintosh. Теперь ходу на новый уровень взаимодейст-
же, обретя свободу действий, они хо- вия с человеком. Эту же ситуацию мы
тели повторить свой успех. могли наблюдать в случае с появлени-
В оригинальном заявлении от ем Macintosh. Я считаю, что у General
1990 года General Magic, как и про- Magic есть возможность разработать
чие молодые и амбициозные компа- такое устройство, с которым люди сра-
нии, обещала достать «звезду с неба»: зу нашли бы общий язык и стали по-
«Мы мечтаем улучшить жизни многих лучать удовольствие от его исполь-
миллионов людей путём предоставле- зования».
ния небольших персональных систем, Логотип General Magic
которые они могли бы носить с собой Истории
повсюду. Эти устройства помогут поль- отцов‑основателей «Пробой пера» в компании для Эт-
зователям организовать собствен- Истоки возникновения General Magic кинсона стало участие в проекте по со-
ную жизнь, общаться с другими людь- ведут в Apple периода 1989 года, ког- зданию компьютера Lisa. Прекрасный
ми, а также откроют доступ к разнооб- да в недрах компании был запущен программист, он разработал библи-
разной информации. Они будут про- проект под кодовым названием Pocket отеку 2D-графики и интерфейс про-
сты в использовании, а разнообразие Crystal. Идейный вдохновитель «Кар- граммирования приложений под наз-
моделей, которые появятся на рын- манного кристалла» Марк Порат пос- ванием QuickDraw, который лёг в ос-
ке, сможет удовлетворить любой вкус, тавил перед разработчиками зада- нову подсистемы ввода/вывода графи-
цвет и кошелёк. Эти устройства изме- чу – разработать устройство, которое ки LisaGraf, ставшего «базой» при про-
нят сами принципы, по которым живёт бы стало ответом на вопрос «Что нас ектировании операционной системы
и общается человечество». ждёт после персонального компьюте- LisaOS. Кроме того, он также являлся
Естественно, утверждение того, ра?» Порат, редко появлявшийся в сте- одним из главных разработчиков её
что Билл и Энди разработали концеп- нах корпусов Apple, не имел техничес- графического интерфейса. Однако уси-
цию карманного цифрового комму- кого образования. Однако он был пре- лия Билла, как и несколько лет назад
никатора, будет неверным, посколь- восходным бизнес-аналитиком: описа- в университете, не были вознаграж-
ку впервые о подобных устройствах ние проекта Pocket Crystal, по толщи- дены: во время рекламной кампании
заговорили ещё писатели-фантасты не не уступавшее хорошей книге, пред- в преддверии выпуска Lisa руководс-
в первой половине XX века. Да и к мо- ставляло собой подробное изложение тво Apple «забыло» о нём, и при публи-
менту основания General Magic первые проблемы, а также методы её решения кации пресс-релизов даже не указало
карманные компьютеры в лице Zoomer при помощи «Карманного кристалла». в тексте фамилию разработчика.
от Casio и знаменитого Newton произ- Написанный Марком документ, вер- Позже, во время работы в команде
водства Apple уже успели выйти на ры- нее, содержавшиеся в нём новатор- Macintosh, Билл написал графический
нок. Впрочем, вспомните, что ЭВМ су- ские идеи, настолько впечатлил Джо- редактор MacPaint, позволявший поль-
ществовали и до появления Macintosh, на Скалли (John Sculley), занимавше- зователю компьютера рисовать на эк-
однако именно эта система проде- го в то время пост исполнительного ди- ране при помощи мыши. Уговорив ру-
монстрировала миру, каким должен ректора Apple, что он сразу же дал про- ководство комплектовать этой про-
быть по-настоящему персональный екту «зелёный свет». Однако наиболь- граммой каждый компьютер Macintosh,
компьютер. шей удачей для Пората являлось при- Эткинсон вмиг стал известным на весь
«Я часто думаю насчёт причин успе- влечение в ряды Pocket Crystal Билла мир, поскольку одним из ошеломи-
ха команды разработчиков Macintosh Эткинсона и Энди Хертцфилда. тельных факторов успеха новой сис-
и всегда прихожу к одному простому Билл Эткинсон относился к типу темы общественность считала имен-
выводу: мы изменили удобство и про- людей, которые, несмотря на свой тяж- но MacPaint. Годы спустя Билл наконец-
стоту использования ПК в лучшую сто- кий труд, всё время пребывали в тени то получил долю давно заслуженного
рону», – говорил Билл. «На момент вы- других. Во время учёбы в Калифорний- уважения и благодарности.
хода Макинтоша балом в мире правили ском университете в Сан-Диего и заня- Впрочем, длилась «эйфория» не-
IBM PC-совместимые ЭВМ, то есть кон- тий нейрологией он усиленно работал долго, поскольку новый проект Эткин-
цепция персонального компьютера су- над решением проблем компьютерной сона под названием Magic Slate, пред-
ществовала достаточно долгое время, томографии. Однако во время публи- ставлявший собой портативный ком-
и уже была реализована «в металле». кации труда недостаточное, по мне- пьютер с ориентацией на работу в ком-
Тем не менее, думаю, о разнице в про- нию Билла, упоминание о его немалых муникационных сетях, не пришёлся
стоте использования DOS и MacOS на- заслугах вынудило студента бросить руководству Apple по вкусу, что выби-
слышаны многие. учебное заведение. Впрочем, его та- ло разработчика из колеи. Билл впал
То же самое мы хотим сделать и ланту не дали «погаснуть»: в 1978 году в депрессию на многие месяцы, и лишь
с персональными цифровыми помощ- он стал 51-м сотрудником Apple. время смогло «вылечить» его, подтолк-

№10, октябрь 2008 87


ретроспектива
же стал одним из ключевых разработчиков графического
интерфейса MacOS. Впрочем, даже проект по созданию
Macintosh не смог искоренить намерение Хертцфилда по-
кинуть Apple, и в  1984 году, когда работа над новым ком-
пьютером была завершена, Энди покинул стены компании,
бывшей для него «домом» на протяжении шести лет.
Последующие годы он работал независимым програм-
мистом и писал программы в своё удовольствие, нередко
безвозмездно раздавая плоды своих трудов. Так, написан-
ную им программу Switcher, позволявшую пользователю за-
пускать под MacOS одновременно несколько приложений,
Хертцфилд распространял бесплатно, даже после её лицен-
зирования Apple. Компания, в которой ранее работал Энди,
также купила права на программу Servant, являвшуюся над-
Рабочий стол Magic Cap стройкой над менеджером Finder, и использовала приобре-
тение в новой версии под названием MultiFinder.
нув тем самым к созданию первой в мире системы на осно- Стив Джобс, с которым Энди завёл дружеские отно-
ве гипермедиа (hypermedia) под названием HyperCard, став- шения ещё во время работы над Macintosh, предлагал ему
шей прародительницей современной «Всемирной паутины» работу в только что созданной им компании NeXT, однако
(World Wide Web, WWW). Она позволяла создавать гипертек- тот ответил отказом. И лишь предложение Марка заняться
стовые документы, содержащие различную мультимедий- Pocket Crystal он воспринял с интересом.
ную информацию (аудио- и видеоданные, графику и т. д.),
и организовывать связи между ними. HyperCard стала час- Зарождение волшебства
тью MacOS начиная с 6-й версии операционной системы. Итак, костяк новой команды был сформирован. На первых
Когда Порат предложил Эткинсону участвовать в про- порах проект курировал лично Скалли. Когда совет ди-
екте Pocket Crystal, он сперва отнёсся к этому насторожен- ректоров Apple потерял интерес к Pocket Crystal, Скалли
но. Билл понимал, что вытянуть столь амбициозный про- без особых расспросов согласился на предложение Пора-
ект Apple в одиночку не сможет. И лишь узнав, что в пла- та отделить команду разработчиков от материнской ком-
нах у Пората и Скалли сотрудничество с крупнейшими ком- пании и сформировать новый стартап. В результате в мае
муникационными компаниями и производителями электро- 1990 года на свет появилась General Magic.
ники, такими как Motorola и Sony, согласился. К тому времени у компании «на руках» уже были кое-ка-
Как и Эткинсону, Энди Хертцфилду до General Magic кие наработки, базировавшиеся на HyperCard Эткинсона.
пришлось пройти весьма «тернистый путь» в Apple. Ещё Используя разработку Билла, основатели General Magic на-
с юношеских лет он, узнав о молодой, но очень перспектив- чали проектирование телекоммуникационного интерфей-
ной фирме, мечтал работать в ней. Получая знания в Кали- са. «Первый концепт, который мы реализовали, назывался
форнийском университете в Беркли, Хертцфилд в 1977 го- Telecards», – начал Эткинсон. «Он представлял собой элек-
ду приобрёл себе компьютер Apple II, и стал разрабатывать тронные версии поздравительных открыток, которые обыч-
для него программное обеспечение. Усилия молодого спе- но отсылаются средствами традиционной почты», – закон-
циалиста не остались незамеченными: год спустя Энди при- чил за него Хертцфилд. Реализовано это было при помо-
няли на работу в компанию его мечты. щи двух компьютеров Macintosh, один из которых создавал
В первые годы деятельности в недрах Apple, трудясь на основе HyperCard виртуальные открытки, снабжённые
плечом к плечу со своим кумиром Стивом Возняком (Steve различной мультимедийной информацией, а второй являл-
Wozniak), Хертцфилд разработал видеоадаптер для Apple II, ся сервером и осуществлял их отправку адресатам.
обеспечивавший отображение текста с параметрами 80 ко- Спустя несколько месяцев после образования компа-
лонок на 25 строк, а также создал прошивку для первого нии Порат и Скалли решили, что настал черёд демонстра-
принтера компании – SilenType. ции технологии General Magic потенциальным клиентам.
Однако очень скоро ему пришлось столкнуться со стре- Билл и Энди никогда не забудут своё первое знакомство
мительно растущими в Apple корпоративным эгоизмом с руководством Sony. «Мы были там в понедельник или
и бюрократией. Свободолюбивый Энди разочаровался вторник и рассказали о своём видении нашего проекта
в когда-то боготворимой им компании, и во время пер- и его потенциале, а также продемонстрировали всё ещё
вого массового сокращения персонала, произошедшего находившиеся в стадии разработки программное обеспе-
в 1981 году, принял решение покинуть Apple. чение. Это было в сентябре 90‑го года», – вспоминал Эн-
И лишь Стив Джобс, видя в Хертцфилде большой потен- ди. «Скалли привёл нас в конференц-зал, мы поведали им
циал, не дал случиться беде. Он предложил Энди перей- о Pocket Crystal. В конце дня, после нашего ответа на воп-
ти в небольшую команду по разработке нового компьюте- рос «Когда мы уезжаем» коротким «В пятницу», управля-
ра Macintosh, на что тот, к счастью, согласился. Здесь он ющий директор Норио Ога (Norio Ohga) отметил: «В на-
и познакомился с Биллом Эткинсоном. В новом коллекти- шей компании подобные решения принимаются консенсу-
ве Хертцфилд работал над низкоуровневым программным сом». Основатели General Magic решили, что подобное за-
обеспечением для аппаратной части компьютера, а так- мечание означает необходимость ждать ответа на протя-

88
ретроспектива
жении нескольких месяцев. Однако, к всеобщему удивле- В общих чертах внешний вид новой операционной сис-
нию, Ога, посмотрев на вице-президента Sony, прилюдно темы можно было назвать подобным любому другому GUI
заявил: «Я хочу достижения консенсуса до четверга». Тог- того времени: рабочий стол, папки, документы – всё это бы-
да-то Марк, а также Билл и Энди осознали, что одержали ло и в разработке General Magic. Главное и наиболее инте-
свою первую победу. ресное отличие заключалось в их предоставлении пользо-
После Sony к General Magic примкнула Motorola. Оба вателю. Интерфейс Magic Cap представлял собой нарисо-
гиганта, как и Apple до них, стали акционерами компании, ванную «гостиную» (hallway), с рабочим столом и установ-
обладая 10% акций каждая. Получив от них необходимые ленными на нём телефоном, адресной книгой, блокнотом;
инвестиции, Билл и Энди приступили к поиску новых со- расположенными рядом корзинами для входящих и исхо-
трудников. Естественно, что первым местом «для вербов- дящих сообщений; шкафом для хранения документов и т. д.
ки» стала компания, которой каждый из них посвятил не- Каждый элемент на экране был активен, то есть, например,
сколько лет своей жизни. Из Apple в General Magic пришли: чтобы проверить почту, пользователю достаточно было
Дэн Винклер (Dan Winkler), автор языка Hyperscript, ис- кликнуть по корзине со входящими сообщениями. Для то-
пользовавшегося в HyperCard, Брюс Лик (Bruce Leak), яв- го чтобы «спрятать» документ, пользователь «выдвигал»
лявшийся начальником отдела по разработке технологии ящик стола и мышью либо стилусом перемещал файл в не-
Quicktime, Фил Голдман (Phil Goldman), один из ведущих го. Наконец, можно было «открыть» дверь и выйти из офи-
разработчиков низкоуровневого программного обеспече- са на «центральную улицу» (Downtown street), предоставля-
ния Apple, а также Сьюзан Кэр (Susan Kare), «кисти» кото- ющую пользователю ещё больше возможностей. Например,
рой принадлежит внешний вид иконок, а также шрифтов для доступа к базе данных другой компании достаточно бы-
оригинальной MacOS. Обязанность по продвижению раз- ло зайти внутрь здания с её названием.
работок General Magic на рынок была возложена на Джо- Естественно, подобный графический пользователь-
анну Хоффман (Joanna Hoffman), ранее занимавшую долж- ский интерфейс не был реализован мгновенно. Разрабо-
ность маркетолога в команде Macintosh. Наконец, в новую танная Хертцфилдом изначальная его концепция со вре-
компанию перебралась и персональный публицист Джона менем стала видоизменяться, «обогащаясь» новыми за-
Скалли Джейн Андерсон (Jane Anderson). думками. «В начале 1991 года у нас возникла идея «место-
Обладая денежными активами и сильной командой, положений» в программном обеспечении», – рассказывал
General Magic могла, наконец, приступить к реализации Энди. «В то время мы ещё не додумались до таких элемен-
собственных планов. тов интерфейса Magic Cap, как «гостиная» и «центральная
улица», однако были намерены реализовать всю функци-
Ловкость рук, и никакой магии ональность программного обеспечения в виде отдельных
Ещё в описании проекта Pocket Crystal Марк Порат отме- «физических» объектов». Мы долгое время культивирова-
тил, что упор при его разработке стоит делать на програм- ли эту идею, пока в январе 1992 года один из наших сотруд-
мную часть, тогда как аппаратной займутся компании-пар- ников, Кевин Линч (Kevin Lynch), не предложил концепцию
тнёры. В результате главной целью Билла, Энди и осталь- «гостиной с дверьми и центральной улицей».
ных являлось создание операционной системы с разви- В результате интерфейс Magic Cap эволюционировал
тыми коммуникационными возможностями, которая впос- до графического отображения части виртуального ми-
ледствии получила название Magic Cap (Communicating ра, в котором предстояло «обитать» будущему пользова-
Applications Platform – платформа для коммуникационных телю ОС.
приложений). Для того чтобы совершить покупки, ему необходимо
Естественно, что целевыми устройствами, для которых было выйти на центральную улицу и зайти в определён-
предназначалась новая ОС, должны были стать созданные ный магазин. Дабы прочитать заголовки свежих газет, до-
специально для неё мобильные компьютеры с развитыми статочно было «подойти» к киоску с прессой. Наконец, что-
сетевыми возможностями. Однако руководство General бы заказать пиццу на дом, пользователю следовало вый-
Magic не отрицало, что потенциал их операционной сис-
темы не ограничен одним типом электронных приспособ-
лений, и она может быть с успехом использована в персо-
нальных компьютерах, факсах, телевизионных кабельных
приставках и т. д.
Наиболее значительной особенностью новой ОС стали
не её возможности, а внешний вид. Графический интерфейс
Magic Cap коренным образом отличался от традиционного
GUI операционных систем Windows, MacOS и им подобных.
Согласно изначальной задумке Эткинсона и Хертцфилда,
работа с ОС должна была быть понятной даже новичку, до
этого не знакомому с компьютерами. В результате разра-
ботчики приложили все усилия, дабы будущим покупате-
лям устройств на базе Magic Cap не пришлось разбирать-
ся в значениях терминов «расширение файла», «директо-
рия», «логический диск» и т. д. «Гостинная» Magic Cap

№10, октябрь 2008 89


ретроспектива
сом Magic Cap являлась наиболее интересной технологи-
ческой разработкой General Magic. В существовавших на
то время сетевых архитектурах сообщение представляло
собой письмо, пущенное вниз по трубе – ничего не случа-
лось с ним на протяжении следования до места назначе-
ния. Благодаря использованию Telescript сеть больше по-
ходила не на скопление переплетающихся труб, а на пче-
линый улей, в котором сообщения сновали туда-сюда, вы-
полняя возложенные на них задания.
Для обычного пользователя работа Telescript была не-
заметной. «В качестве примера можно привести такой слу-
чай, – говорил Билл. – Вы получаете электронное пригла-
шение на встречу, заполняете бланк, и отсылаете назад.
Отправителю придёт ваш положительный, либо же отри-
«Центральная улица» Magic Cap цательный ответ. Вы также можете написать контрпри-
глашение. Если, к примеру, вы ответили согласием, Magic
ти на «центральную улицу», найти пиццерию и заполнить Cap самостоятельно занесёт дату, время и место встре-
форму заказа. чи в электронный дневник. И пользователь даже не будет
В отличие от Newton и Zoomer в устройствах на базе знать, что всем этим заправляет Telescript».
Magic Cap не была реализована возможность распознава- По словам Энди, преимущество нового языка програм-
ния рукописного текста. Нет, конечно, возможность рисо- мирования в том, что отныне вместо написания сообще-
вать или писать стилусом, равно как и пальцем, по экра- ний, исполняющих строго поставленную перед ними цель,
ну имелась, однако текст мог вводиться лишь при помощи разработчик может запрограммировать их на выполнение
виртуальной клавиатуры. Впрочем, подобная реализация множества заданий, создавая при помощи Telescript целые
не удивительна, поскольку, по словам самих разработчи- информационные порталы. Например, в качестве демонс-
ков, Magic Cap предназначалась прежде всего в качестве трации работы своего изобретения Джим Уайт разработал
платформы для коммуникаций, а уж затем – как операци- сервис, в котором программные агенты по желанию поль-
онная система для карманных компьютеров. «Во всяком зователя бронировали билеты на предстоящий концерт, од-
случае», – говорил Эткинсон, – «мы сделали всё возмож- новременно с этим заказывая букет цветов в специализи-
ное для того, чтобы пользователю необходимо было вво- рованном магазине.
дить в устройство как можно меньше текста».
Фокус удался?
«Живые» программы В отличие от тепло принятого языка Telescript, передовой
Ещё на начальном этапе разработки Magic Cap Билл и Эн- графический интерфейс Magic Cap вызвал у некоторых
ди осознали, что для полноценной реализации идей проек- критиков скептицизм, поскольку они считали, что серьёз-
та Pocket Crystal одного лишь интуитивно понятного интер- ное программное обеспечение, ориентированное на биз-
фейса будет недостаточно. Поскольку компьютеры на базе нес-рынок, не может выглядеть, как какая-нибудь игра-при-
новой операционной системы планировалось рекламиро- ключение. Впрочем, защищали своё детище Билл и Энди,
вать в качестве устройств с развитыми сетевыми способ- то же самое они сперва говорили и о «детском» компьюте-
ностями, General Magic стремилась перевести возможнос- ре Macintosh и его операционной системе MacOS.
ти своей ОС по работе с коммуникационными технология- Да и трудно назвать «игрушечной» продукцию компа-
ми на принципиально иной уровень. В этом им помог извес- нии, у которой за плечами стояли Sony и Motorola. Со време-
тный сетевой программист Джим Уайт (Jim White). нем к ним присоединятся Philips и Matsushita, а также ком-
Разработанная им концепция сети представляла собой муникационный гигант AT&T, что ещё больше вселит уве-
не просто конвейер для обмена данными, а отдельную плат- ренность в General Magic.
форму – бурлящую систему, в которой каждое сообщение Обладая всем необходимым программным обеспече-
представляло собой практически отдельную компьютерную нием и практически готовыми мобильными коммуникаци-
программу, выполнявшуюся самостоятельно на протяже- онными компьютерами от своих партнёров, компания была
нии своего пути по коммуникационной сети. Каждое сооб- готова к завоеванию рынка. Карты в руках у General Magic
щение являлось программным агентом, своего рода циф- были очень хороши, однако сможет ли она правильно вос-
ровым «слугой», который исполнял поставленную пользо- пользоваться ими в грядущей битве за покупателя и пока-
вателем задачу. «В то время (1990 г.) нам в голову не мог- зать ему свой самый лучший фокус?
ли прийти мысли о возможности превращения сети в плат-
форму», – говорил Билл. «Когда Джим впервые рассказал 1. http://www.wikipedia.org.
нам об идее агентов, я даже представить себе не мог, что 2. http://www.wired.com.
он говорит о путешествующих программах, в буквальном 3. http://www.byte.com.
смысле выполняющих приказы своего хозяина». 4. http://www.mactech.com.
Новая система, ставшая языком программирования 5. http://joshcarter.com.
под названием Telescript, наряду с графическим интерфей- 6. http://joi.ito.com.

90
сисадмин тоже человек

Самый простой пароль Доколе?!


Давно, правда, было, когда локальную сеть организовывали. Держу на балансе организацию. Есть там коммерческий директор,
Пришлось пользователям пароли ставить. Для одной (как самой чтоб ей пусто было, курица такая, каких поискать. Мало того что
продвинутой) придумал «12345». На следующий день, оказавшись она периодически вырывает коннекторы из патч-кордов своими
неподалеку, слышу, как она бормочет: «Пароль – один, два, три... загребущими ногами, а недавно позвонила мне, что якобы у нее
Галя, как там дальше?» компьютер сломался. Поломкой оказались не те обои на «Рабо-
boris_kartashov@bk.ru чем столе» Windows. Так еще она упорно не желает признать се-
бя курицей, а считает себя самой умной.
Но сегодня был апогей ее курицизма.
Зачем нужен мощный ноутбук Приехал к ним на плановый выезд. Захожу к ней в кабинет,
В магазин заходит покупатель (П), подходит к витрине с ноут- а она мне с порога: «Ля-ля-ля помоги, не могу работать, мне не-
буками. удобно включать компьютер». Я говорю: «В смысле?» В общем,
Я: Вам подсказать что-нибудь? она требовала, чтобы я сделал ей кнопку включения на столе (ко-
П: Мне нужна телега. торый, кстати, стеклянный), а то ей, видите ли, тяжело нагнуть-
Я: Какая? ся к системнику. Полчаса объяснял ей, что это не предусмотрено
П: Что бы все пошло. «разработчиками компьютера», не убедил. Так она начала бузить,
Я: Ноутбук что ли? что вот ты не профессионал и т. д. со всеми вытекающими.
П: Да. В результате плюнул, выдернул кнопу из корпуса, присоединил
Я: У нас есть производительные модели с мощной конфигу- два провода и положил ей на стол. Так теперь ей, видите ли, про-
рацией. вода некрасиво смотрятся, т.к. не гармонируют с кабинетом.
Тут в магазин заходит друг покупателя. Сошлись на том, что ей нужен ноут. Сейчас сижу, подбираю са-
Друг: Да ладно, пойдем Серега, нормальный ноутбук, чтобы мый дорогой, и при этом самый плохой, пусть переплачивает!
в игрушки играть и порнуху нормально смотреть, тысяч семьде- The_dark_joker
сят стоит.
А я думал, что несу людям свет просвещения, а они вот для че-
го высокие технологии используют. ОЗУ за поцелуй
vendor. Сижу как-то дома, звонит подруга, типа у меня что-то комп ви-
сит, еле живой.
Я: Что делала?
Человеческий Radmin Она: Да ничего особенного.
Еду давеча в маршрутке. Шустрая девочка лет 6-7 едет с бабуш- Я: Ну что-то ведь произошло, из-за чего тормоз пошел?
кой. Звонит телефон. Девочка берет трубку. Далее ее диалог с кем- Она: А ну я память обновила.
то на другом конце (ответов ясно не слышно): Я: ???!!! Как обновила???
– Нажимай. Она: Ну новенькую поставила, а то та совсем старая была.
– ... Я: Оперативку что ли???
– Ну смотри на клавиатуру. Видишь самая левая внизу кла- Она: Фиг знает, зелененькую с квадратиками черненькими.
виша СЭ-ТЭ-РЭ-ЭЛ. В итоге: я прихожу к ней, смотрю в системник, и что же я ви-
– ... жу? Стоит у нее в слотах три плахи по 128 Мб. Я ржал минул 15,
– Потом от нее вправо через одну еще клавиша А-Л-Т. до этого у нее было четыре по 512 Мб.
– ... Я: Где взяла???
– Найди ДЭЛЕТЭ. Ну вот смотри клавиши со стрелками, а вы- Она: У админа на работе выменяла 4 штуки в обмен на 3 шту-
ше них шесть клавиш. Смотри там ДЭ-ЛЕ-ТЭ. Нажимай! Нет! ки и поцелуйчик.
Те две тоже держи. Что появилось на экране? Жаль мне было обоих после того, как я поменял все
– ... обратно...
– Нажимай «снять задачу». РиД
– ...
– Ну все! Пока!
Поворачивается к бабушке и говорит: «Да я маме объясня- Кто сказал, что женщины слабее мужчин?
ла, как игру закрыть». Прихожу я в офис, а ко мне подбегает секретарша и говорит,
P.S. Сразу вспомнил свои объяснения друзьям/родственни- что флешка не работает, а там важные документы, которые ей
кам/клиентам-чайникам по телефону на темы от «Как устано- дал шеф распечатать. Прихожу и смотрю, что она флешку в пе-
вить драйвер/переставить винду» до «Как в фотоштопе сделать ревернутом состоянии воткнула! Как, до сих пор не могу понять,
какую-нить вещь». как она это смогла. Теперь придется USB менять, а что делать
P.S.S. Однако саппорт растет способный. с флешкой даже не знаю, я в растерянности.
Celeron_hz Виктор Шкумат

По материалам сайта «Сисадмин тоже человек» –


http://sysadmin.mail.ru

№10, октябрь 2008 91


книжная полка

Linux. Системное программирование


Роберт Лав
рассмотренны практически все сис‑ талогами, управление памятью, вклю‑
темные вызовы в системе Linux. И хо‑ чая интерфейсы для распределенной
тя эта книга именно о системном про‑ памяти и оптимизацию доступа к па‑
граммировании, она будет полезна мяти, сигналы и работа со временем
и большинству прикладных програм‑ и таймерами. При рассмотрении сис‑
мистов, работающих в операционной темных вызовов для процессов управ‑
системе Linux. ления не забыто и управление процес‑
Для проработки материала читате‑ сами реального времени.
лю необходимо обладать опытом про‑ В приложении кратко рассмотрены
граммирования на языке C и работы расширения GCC языка C.
в операционной системе Linux, как ми‑ Данная книга будет отличным до‑
нимум, в качестве пользователя. полнением к библиотеке разработчи‑
Книга состоит из десяти глав и од‑ ка. Можно смело рекомендовать эту
ного приложения. В ней рассмотрены книгу всем, кто интересуется систем‑
такие темы, как основные концепции ным программированием в Linux или
системного программирования и ра‑ устройством работы этой операцион‑
Роберт Лав, проработавший дол‑ боты ядра Linux, что такое интерфейс ной системы.
гое время ведущим разработчиком системного уровня и как писать прило‑
в Novell, а сейчас трудящийся в Google, жения системного уровня в Linux, фай‑ n Издательство: «Питер»
уже должен быть известен нашим чи‑ ловый ввод-вывод, буферизирован‑ n Год издания: 2008
тателям по переведенной два года на‑ ный ввод-вывод, расширенный файло‑ n Количество страниц: 416
зад на русский язык книге о разработке вый ввод-вывод, управление процес‑ n ISBN: 978-5-388-00014-9
ядра Linux. В данном издании речь идет сами в ОС Linux, включая планирова‑ n Цена: ≈ 467 руб.
о работе ядра с точки зрения пользо‑ ние процессов, приоритеты и работу К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
вательского пространства. В книге с лимитами, управление файлами и ка‑ «Питер».

Microsoft SQL Server. Эффективная


работа
Алексей Вишневский
фикационным экзаменам на звание ким темам, как система безопасности
Microsoft Certified Database Administrator Microsoft SQL Server и управление БД.
(MCDBA). Для эффективной работы В восьмой главе обсуждаются темы,
с изданием необходимо уже иметь не‑ связанные с резервным копировани‑
кий, хотя бы минимальный, опыт экс‑ ем и восстановлением БД после сбоя.
плуатации Microsoft SQL Server. Не забыта и такая тема, как автомати‑
Материал книги разбит на десять зация часто выполняемых администра‑
глав, охватывающих различные аспек‑ тивных задач. В приложении приведе‑
ты работы администратора баз данных. ны основы языка Transact‑SQL, без зна‑
Первая глава знакомит читателя с ос‑ ния которого невозможно обойтись,
новными функциональными возмож‑ работая с базами данных от Microsoft.
ностями продукта и приводит сравне‑ В целом книга написана весьма доход‑
ние с другими СУБД. Как с проприетар‑ чиво и понятно, вполне может стать не‑
ными, так и СУБД с открытым исход‑ плохим добавлением к библиотеке ад‑
Книга ориентирована в первую оче‑ ным кодом. Во второй главе идет речь министратора БД.
редь на администраторов БД, эксплу‑ об архитектуре и внутреннем устройст‑
атирующих серверы под управлени‑ ве Microsoft SQL Server. Третья глава n Издательство: «Питер»
ем Microsoft SQL Server 2005. Однако посвящена транзакциям и управлению n Год издания: 2008
она может оказаться полезной и спе‑ параллельным доступом. В четвертой n Количество страниц: 544
циалистам, занимающимся разработ‑ и пятой главах рассказывается о раз‑ n ISBN: 978-5-388-00300-3
кой приложений, работающих с база‑ вертывании Microsoft SQL Server и ос‑ n Цена: ≈ 367 руб.
ми данных от Microsoft. Также книга новных операциях по настройке сер‑ К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
пригодится при подготовке к серти‑ вера. По отдельной главе отведено та‑ «Питер».

92
книжная полка

Ubuntu. Официальный учебный курс


Бенжамин Мако Хилл, Джоно Бейкон, Корей Бургер,
Джонатан Джесси, Иван Крстик
жая версия – 6.06 LTS, тем не менее неисправностей» построена в фор‑
большая часть книги сохраняет свою мате вопрос-ответ (FAQ) и содержит
актуальность и для текущего релиза. разбор около сотни различных ситу‑
Курс в первую очередь ориентирован аций, возникающих в ходе эксплуата‑
на подготовку «продвинутого пользо‑ ции Ubuntu. В приложениях рассмот‑
вателя Ubuntu», хотя кратко рассмот‑ рена работа с командной строкой для
рены и вопросы применения дистрибу‑ новичков, приведены учредительные
тива в качестве серверной операцион‑ документы Ubuntu и список эквива‑
ной системы. лентов Windows-программ в дистри‑
В первых главах читатель знако‑ бутиве Ubuntu.
мится с основами работы в операци‑ К книге прилагается DVD-диск
онных системах GNU/Linux, идеоло‑ с Ubuntu 6.06 LTS. Учебник можно по‑
гией Open Source в целом и проекта советовать тем, кто делает первые ша‑
Ubuntu в частности. Далее рассматри‑ ги в мире Linux и начинает знакомство
Данная книга посвящена одному из са‑ вается установка операционной систе‑ с дистрибутивом Ubuntu.
мых распространенных десктоп-ори‑ мы Ubuntu и использование окружения
ентированных дистрибутивов Linux – рабочего стола. n
Издательство: «Триумф»
Ubunt. Издание является официальным Отдельные главы книги отданы под n
Год издания: 2008
учебным курсом, написанным коллек‑ рассмотрение таких тем, как использо‑ n
Количество страниц: 384
тивом авторов и программистов, непо‑ вание сборки Kubuntu, взаимодействие n
ISBN: 978-5-89392-332-2
средственно работающих над описы‑ с сообществом Ubuntu, «родственные» n
Цена: ≈ 302 руб.
ваемым дистрибутивом. Хотя в учеб‑ проекты, связанные с Ubuntu. Глава Книга предоставлена интернет-магазином
нике рассматривается не самая све‑ учебника «Поддержка и устранение Books.Ru.

Python for Unix and Linux System


Administration
Noah Gift, Jeremy M. Jones
ретных, часто встречающихся в прак‑ строкой и приведены конкретные при‑
тике администратора задачах. меры законченных скриптов, решаю‑
Каждая глава посвящена отдель‑ щих те или иные задачи (работа с LDAP-
ной теме. В первых двух идет речь сервером, DNS и другие).
о причинах выбора языка Python в ка‑ Также авторы подготовили образ
честве инструмента системного адми‑ виртуальной машины c Ubuntu Linux,
нистратора, установке и настройке сре‑ который можно скачать из Интерне‑
ды IPython. Отдельная глава рассказы‑ та, содержащий исходный код книги,
вает об обработке текста. Подготов‑ утилиты IPython, SQLAlchemy и мно‑
ка отчетов и документирование также гие другие, упоминаемые по ходу из‑
вынесены авторами в отдельную гла‑ ложения материала.
ву. Следующие главы рассматривают Как всегда, вместе с книгой изда‑
Можно долго спорить и вести «свя‑ работу с сетью, мониторинг хостов при тельство OReilly предоставляет бес‑
щенные войны» по вопросу, чем тот помощи протокола SNMP, управление платный 45-дневный доступ к ее он-
или иной язык программирования луч‑ пакетами программного обеспечения, лайн версии через веб-магазин Safari.
ше подходит для решения тех или иных управление процессами. Также авто‑
задач. Но если ваш выбор – Python ры уделяют достаточно внимания на‑ n
Издательство: O'Reilly Media, Inc.
и вы занимаетесь системным адми‑ писанию на Python графических прило‑ n
Год издания: 2008
нистрированием, то эта книга для вас. жений, в частности, с использованием n
Количество страниц: 456
Авторы, обладающие большим опытом библиотеки PyGTK. В последних двух n
ISBN: 978-0-5965-1582-9
администрирования Linux и UNIX-сис‑ главах речь идет о работе с командной n
Цена: ≈ $43,16
тем, рассказывают о применении язы‑
ка программирования Python на конк‑ Обзор книжных новинок подготовил Андрей Маркелов

№10, октябрь 2008 93


подписка на 2009 год

Редакционная подписка
для физических лиц
n Вы можете оформить подписку n Журнал высылается почтой заказ-
только на российский адрес. ной бандеролью только после пос-
n При заполнении квитанции обя‑ тупления денег на расчетный счет
зательно РАЗБОРЧИВО укажи‑ и копии заполненного и оплачен‑
те фамилию, имя, отчество пол‑ ного бланка, отправленной в ре‑
ностью, почтовый индекс и ад‑ дакцию по факсу: (495) 628‑82‑53
рес получателя (область, город, (доб. 120) или на электронный
улица, номер дома, номер квар‑ адрес: subscribe@samag.ru.
тиры), контактный телефон.

ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ

 

ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
 

94
подписка на 2009 год
Российская Федерация печати «Гасид» (370102, г. Баку, ул. Джавадхана, 21)
n
Подписной индекс: годовой – 20780, полугодовой – 81655 n
Казахстан – по каталогу «Российская Пресса» через
Каталог агентства «Роспечать» ОАО «Казпочта» и ЗАО «Евразия пресс»
n Подписной индекс: годовой – 88099, полугодовой – 87836 n
Беларусь – по каталогу изданий стран СНГ через РГО
Объединенный каталог «Пресса России» «Белпочта» (220050, г. Минск, пр-т Ф. Скорины, 10)
Адресный каталог «Подписка за рабочим столом» n
Узбекистан – по каталогу «Davriy nashrlar» российс-
Адресный каталог «Библиотечный каталог» кие издания через агентство по распространению пе-
n Альтернативные подписные агентства: чати «Davriy nashrlar» (7000029, г. Ташкент, пл. Муста-
Агентство «Интер-Почта» (495) 500-00-60, курьерская киллик, 5/3, офис 33)
доставка по Москве n Армения – по списку номенклатуры «АРЗИ» через
Агентство «Вся Пресса» (495) 787-34-47 ГЗАО «Армпечать» (375005, г. Ереван, пл. Сасунци Да-
Агентство «Курьер-Прессервис» вида, д. 2) и ЗАО «Контакт-Мамул» (375002, г. Ереван,
Агентство «ООО Урал-Пресс» (343) 375-62-74 ул. Сарьяна, 22)
ЛинуксЦентр www.linuxcenter.ru n Грузия – по списку номенклатуры «АРЗИ» через АО
n Подписка On-line «Сакпресса» ( 380019, г. Тбилиси, ул. Хошараульская, 29)
http://www.arzi.ru и АО «Мацне» (380060, г. Тбилиси, пр-т Гамсахурдия, 42)
http://www.gazety.ru n Молдавия – по каталогу через ГП «Пошта Молдовей»
http://www.presscafe.ru (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
по списку через ГУП «Почта Приднестровья» (МD-3300,
СНГ г. Тирасполь, ул. Ленина, 17)
В странах СНГ подписка принимается в почтовых отделе- по прайс-листу через ООО Агентство «Editil Periodice»
ниях по национальным каталогам или по списку номенк- (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
латуры «АРЗИ»: n Подписка для Украины:
n Азербайджан – по объединенному каталогу россий- Киевский главпочтамт
ских изданий через предприятие по распространению Подписное агентство «KSS», тел./факс (044)464-0220

Подписные
индексы:
20780 *
+ диск с архивом
статей 2008 года

81655 **
без диска

по каталогу агентства
«Роспечать»

88099 *
+ диск с архивом
статей 2008 года

87836
без диска
**

по каталогу агентства
«Пресса России»
*
Годовой
**
Полугодовой
***
Диск вкладывается
в февральский
номер журнала,
распространяется
только на территории
России

№10, октябрь 2008 95


СИСТЕМНЫЙ АДМИНИСТРАТОР
№10(71), Октябрь, 2008 год

УЧРЕДИТЕЛИ
Частные лица
Вышел DVD-диск с архивом
РЕДАКЦИЯ
Генеральный директор
номеров журнала за 2007 год
Владимир Положевец
Главный редактор Что на диске?  NeTAMS 3.4.1rc1;
Алексей Коршунов n Архив 12-ти номеров журнала «Системный ад-  IPStat 0.9.7.2;
chief@samag.ru министратор» за 2007 год.  Linux kernel 2.6.24.1;
Ответственный секретарь n Архив всех выпусков электронного приложе-  BIND 9.4.2 (+ win32);
Наталья Хвостова
sekretar@samag.ru
ния «Open Source» за 2007 год.  OpenSSL 0.9.8g;
Технический редактор n Программные продукты от партнеров журна-  OpenSSH 4.7p1;
Владимир Лукин ла (триальные версии):  Samba 3.0.28;
 Kerio MailServer 6.5;  Squid Web Proxy Cache 2.6.STABLE18;
Главный редактор  Kaspersky® Internet Security 7.0;  CUPS 1.3.6;
электронного приложения  Антивирус Касперского ® 7.0;  Clam AntiVirus 0.92.1 (+ Clamwin 0.92);
«Open Source»  Система контроля доступа Zlock 2.0;  Webmin 1.400;
Дмитрий Шурупов
 Прокси-сервер UserGate 4.2;  Bacula 2.2.8;
Внештатные редакторы  Handy Backup 5.8;  Amanda 2.5.2p1;
Алексей Барабанов  Paragon Drive Backup 8.51 Enterprise Server n Пользовательское ПО:
Кирилл Сухов Edition;  OpenOffice.org 2.3.1 (LinuxIntel, Win32Intel);
Сергей Супрунов  Network Inventory 1.6.0;  Mozilla Firefox 2.0.0.12 (Linux, win32);
Олег Щербаков  FastReport Server 1.0.10 demo;  Mozilla Thunderbird 2.0.0.12 (Linux, win32);
Андрей Бирюков  ABBYY Lingvo 12;  Mozilla Seamonkey (Linux, win32);
Сергей Яремчук
Александр Емельянов  WinRar 3.71;  Mozilla Sunbird 0.7 (Linux, win32);
 Linux-дистрибутив Mandriva One 2008;  Pidgin 2.4.0 (+ win32);
РЕКЛАМНАЯ СЛУЖБА  Linbox Rescue Server 20070703.  SIM IM 0.9.4.3 (+ win32);
тел./факс: (495) 628-8253 n Серверы/сети/администрирование:  X-Chat 2.8.4 (+ 2.8.5e win32);
Евгения Тарабрина (доб. 120)  FreeBSD 7.0-RELEASE;  aMule 2.1.3 (+ win32);
reсlama@samag.ru  Apache HTTP Server 2.2.8 (+ win32);  GIMP 2.4.5 (+ 2.4.4 win32);
 nginx 0.6.26, 0.5.35;  MPlayer 1.0rc2 (+ win32);
Верстка и оформление
maker_up@samag.ru  lighttpd 1.4.18;  VLC media player 0.8.6e (+ win32);
Дизайн обложки  ProFTPD 1.3.1;  WINE 0.9.56;
Дмитрий Репин  PureFTPd 1.0.21;  DOSBox 0.72 (+ win32);
 vsftpd 2.0.6;  DOSEMU 1.4.0;
По вопросам распространения  Sendmail 8.14.2;  Midnight Commander 4.6.1;
обращайтесь по телефону:  Postfix 2.5.1, 2.6-20080221 (experimental);  Vim 7.1 (+ gvim71);
Светлана Зобова  Courier Mail Server 0.58.0;  7-Zip 457 (+ win32);
(495) 628-8253 (доб. 120)
 Exim 4.69;  GnuPG 2.0.8 (+ w32cli 1.4.8).
107045, г. Москва,  SpamAssassin 3.2.4;
Ананьевский переулок, дом 4/2, стр. 1  DSPAM 3.8.0; Как получить диск в подарок?
тел./факс: (495) 628-8253  Policy Daemon 1.82; n Клиенты компании SecurIT, заказавшие Zserver
Сайт журнала: www.samag.ru  SquirrelMail 1.4.13; в любой комплектации или более 50 лицензий
 RoundCube 0.1-rc2; Zlock, получат диск в подарок.
ИЗДАТЕЛЬ  MySQL 5.0.51a (+ win32);
ООО «С 13»
Отпечатано типографией  PostgreSQL 8.3.0 (+ win32); Где можно приобрести диск?
ООО «Периодика»  Firebird 2.0.3.12981 (+ win32); n В редакции ж урна ла «Сис темный а дми-
Тираж 17000 экз.  SQLite 3.5.6 (+ win32); нистратор» по адресу: г. Москва, Ананьев-
 Perl 5.10.0; ский переулок 4/2, стр. 1, в офисе 13 (мет-
Журнал зарегистрирован в Министерстве РФ  PHP: 5.2.5 (+ win32); ро «Сухаревская»).
по делам печати, телерадиовещания и средств  Python 2.5.2 (+ win32); n В online-магазине Linuxcenter.ru.
массовых коммуникаций (свидетельство ПИ
 Ruby 1.8.6-p111, 1.9.0-1; n В интернет-супермаркете Softkey.ru.
№ 77-12542 от 24 апреля 2002 г.).
 Nmap 4.53 (+ win32); n Для обитателей и посетителей Савеловско-
За содержание статьи ответственность несет  Ettercap 0.7.3.tar.gz (+ win32); го рынка, диск можно купить в точке торговли
автор. Мнение редакции может не совпадать  Ethereal 0.99.0 (+ win32); печатными изданиями у главного входа.
с мнением автора. За содержание рекламных  Snort 2.8.0.2;
материалов ответственность несет рекламо-  MRTG 2.16.1; Сколько стоит?
датель. Все права на опубликованные мате-  NuFW 2.2.9; Цена в редакции – 250 рублей.
риалы защищены.
 tcpdump 3.9.8;

96