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

№8(69) август 2008

подписной индекс 20780


www.samag.ru
Как развивается IT-система

№8(69) август 2008


вашей компании?
Оптимизация инфраструктуры

Модификация дистрибутивов
на основе Windows Installer

Почтовое отделение для малого офиса:


OMS + Spampal + MS Outlook

Шлюз в Интернет на ComixWall ISG

Кэшируем динамический контент

Настраиваем Wi-Fi под Linux

Установка цепочки
серверов сертификации
как часть внедрения PKI в домене

Новшества в Windows Server 2008:


транзакционная файловая система

Настройка TLS/SASL-шифрования
и аутентификации в MTA Sendmail
Найди в журнале код.
Следуй инструкциям.
На кону настоящий
«АДМИНСКИЙ ПРИЗ»
Так видит журнал читатель, который забыл оформить подписку:

И
С

ИЛ
ЛИ
ТЯ Е
ЗА ДНИ

Ж П
НУ

РА КУ
УЛ ОГО

ТИ РАС
ИК ОВ

О
Ы

ТР
Н

С
БЫ
Н
КА

И
ЬГ
ЬД О
БО А
К

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

ИЛ ДА
У
ТП

НА П
Л ОТ

НЧ ЖИ
ВО

РА ЛЕ

КО НЕО
Л

АВ ОС
ХА
УЕ

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

ПОДПИШИТЕСЬ И ЧИТАЙТЕ!
Роспечать – 20780, 81655
Пресса России – 88099, 87836
Интер-почта – тел. (495) 500-00-60
Реклама

Реклама
в номере
4 ФОТОРЕПОРТАЖ С ДСА 2008 АДМИНИСТРИРОВАНИЕ «1С»
5 ТЕНДЕНЦИИ 52 Управляем списками общих
информационных баз
АДМИНИСТРИРОВАНИЕ Облегчаем себе работу с помощью специализирован-
ного механизма.
6 Строим плановое IT-хозяйство Андрей Луконькин
Какой будет вверенная вам IT-система в будущем?
Дмитрий Бутянов 53 Система компоновки данных
Изучаем новые возможности платформы.
13 Легализация ПО. Цена ошибки! Андрей Луконькин
Как не допустить ошибок в лицензировании ПО.
Дмитрий Жеряков БЕЗОПАСНОСТЬ
14 Модификация дистрибутивов 54 Установка цепочки серверов
на основе Windows Installer сертификации как часть внедрения PKI
Рассмотрим один из компонентов Windows Installer в домене. Часть 1
Resource Kit – orca.exe. Установка и настройка Public Key Infrastructure.
Иван Коробко Станислав Шпак

19 Diskeeper – увеличение 60 OpenBSD: имидж – ничто,


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

20 Почтовое отделение для малого офиса: 64 Настройка TLS/SASL-шифрования


OMS + Spampal + MS Outlook и аутентификации в MTA Sendmail
Настраиваем почтовый сервер с фильтром спама и хра- Подробное руководство.
нением архива писем. Андрей Маркелов
Александр Емельянов
67 ЗАКОН ЕСТЬ ЗАКОН
23 Свой собственный почтовый сервер
Обзор почтового сервера MDaemon Email Server. ПРОГРАММИРОВАНИЕ
Марат Давлетханов
68 Java: торжественное обращение
24 Новшества в Windows 2008: с jar и атрибутами MANIFEST.MF
транзакционная файловая система Применяем в работе jar-файлы.
Обсудим подробнее, что из себя представляет TxF. Алексей Саенко
Андрей Бирюков
72 Знакомимся с YAML
26 Шлюз в Интернет на ComixWall ISG Чем нам поможет язык YAML в обработке конфигураци-
Плюсы и минусы решения. онных файлов для разрабатываемого приложения.
Сергей Яремчук Сергей Супрунов

30 История одной установки Linux 78 Профессиональное использование


на ноутбуке консоли с помощью GNU Screen
Установка Linux на ноутбук проходила с трудом, снача- Каковы возможности GNU Screen.
ла дистрибутив не хотел грузиться, потом Wi-Fi-адап- Дмитрий Васильев
тер не был подхвачен автоматически. Упорное жела-
ние установить беспроводную связь в конечном итоге РЕТРОСПЕКТИВА
привело к положительному результату.
Павел Закляков 82 Окно в электронный мир:
история развития графического
34 Jabberd2 – простой и нетребовательный пользовательского интерфейса
к ресурсам XMPP-сервер. Часть 1 Часть третья, заключительная
Рассмотрим конфигурирование, архитектуру и перво- Популярные ОС к концу XX века обзавелись собс-
начальную настройку Jabberd2. твенным GUI, а командная строка перешла в разряд
Михаил Кондрин «для фанатов» и пользователей UNIX.
Дмитрий Мороз
42 Удаленное управление компьютером
Обзор программ удаленного администрирования. 92 КНИЖНАЯ ПОЛКА
Сергей Кузнецов
94 СИСАДМИН ТОЖЕ ЧЕЛОВЕК
WEB
47, 63, 71, 77 BUGTRAQ
48 Кэшируем динамический контент
Как можно создавать кэширующие серверы для дина-
мического контента.
Код для участия в розыгрыше призов.
Виталий Банковский Следуйте инструкциям на стр. 2.

№8, август 2008 


г р а т ь
а в ы и ур -

шанс о й н ом е р ж
ком-
и т м е
р д е лу ч ш
Т Ко гд а же пр и
...
и
А
т
 
е
м
л
ож е т
рту а ль ный
ем… и Toshiba sco… Ви
i и   ж е это
н у п обед ук Dell ил з у ча ть C а т ь? Он
г я ста , н о у тб п о йду и о в ы игр
у о н
А вдр Интересн урсы, то я ПО мож
а л а?.. Е с л ик к акое им… п р и ят-
н ? .. А
н и к а тор е ш а ет… о с м отр у м ать о
му  пом к... п й те д
р н е е, та ж а
е
с е р в л и н а с ай
т
П р одол
п и с а ы с л ей?
на н ых м с т ия
о б ч а
о г о под
о д д ля у
В а с мн в т о р ой к
У и тся
о д
ном! н а л а нах з».
е р е ж ур к и й п ри
m a g.ru
м мин с w.s a
э то м но « А д а w w
В
г р ыш е ж у р на л ат е л ьно
ы дов
в роз а с а йте
о с л е
у й те сь н р и з». П 8 , 9.
и р й П 7 ,
р е г и с тр м и н с ки а л о в№ а ч нем
За А д р н н
з д е ле « ы и з жу 9 , и мы
в ра е ко д из №
у й т ко д
ир один
ак т и в яе щ е
а т ь с
ь д о жд р и з ов.
с та ло с г р ы шп
О р оз ы
ы й
п ер в
Приз
нск ий
ми
Ад РАЗ»
П р из «
м и н с к ий атор
Ад н и к
К о мму к ур с ы

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

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

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

III Всероссийский слёт


системных администраторов под Калугой.
Идём на рекорд!

Регистрация учасников
слёта
ром в пятницу
Неофициальное открытие слета вече

слета и перечисляют города,


Ведущие привествуют участников
откуда приехали сисадмины
Классика жанра – мет
ание мышки

Традиционный большой
администратора костёр в честь Дня сис
темного

Палаточный городок сисадминов


Фотографии: Владимир Лукин


тенденции
Microsoft – платиновый спонсор что на рынке MID все игроки начинают «с нуля», они не отя-
Apache Software Foundation гощены «историческим наследием», как, например, в слу-
В конце июля, на конференции OSCON, корпорация чае со смартфонами. И Linux же добьется успеха благода-
Microsoft сделала очередной шаг в сторону Open Source- ря «возможности предоставить унифицированную плат-
сообщества. Было объявлено о том, что отныне она явля- форму, которая объединит в себе многочисленные мобиль-
ется платиновым спонсором организации Apache Software ные компоненты». Главными Linux-игроками на рынке MID
Foundation (ASF), добавив себя в один ряд к Google и Yahoo!. в ABI считают консорциум LiMo (Linux Mobile) Foundation,
Последняя известна тем, что занимается поддержкой ря- компанию Nokia с ее системой Maemo для интернет-план-
да проектов программного обеспечения с открытым ко- шетов, Intel с платформой Moblin для MID-устройств с ее
дом, наиболее популярным среди которых является Web- процессором Atom.
сервер Apache. А уже вскоре появилось сообщение о том, что к этим иг-
В Microsoft так объяснили причины столь неожидан- рокам присоединяется и компания ACCESS, объявившая
ного для многих события. «Это серьезная поддержка пу- о том, что ее мобильная Linux-платформа ALP (ACCESS
ти Apache, открывающая новую главу во взаимоотноше- Linux Platform) получила поддержку мобильных интернет-
ниях с ASF. На протяжении последнего года мы работали устройств. Изначально ALP позиционировали как реше-
с Apache POI, Apache Axis2, Jakarta и другими проектами. ние для смартфонов и КПК, которое откроет новое дыха-
И мы намерены продолжать нашу техническую поддержку ние для ОС PalmOS.
и работу над тестированием интероперабельности для это- Из других новостей в области Linux на MID-устройствах
го программного обеспечения с открытым кодом». При этом можно выделить анонс компанией Lenovo своего выхода на
представитель компании заявил, что это не шаг в сторону рынок нетбуков. Это событие было приурочено к представ-
от ее собственного Web-сервера IIS, напомнив, что сейчас лению двух первых устройств подобного класса от Lenovo:
активно идет разработка IIS 8. IdeaPad S9 на базе Linux и IdeaPad S10 с ОС Windows XP.
Когда появится Linux-нетбук S9, ориентированный на от-
Linux предустановлена на 3% личные от США рынки, пока неизвестно, а его Windows-
продаваемых в Великобритании ПК собрата можно будет найти на прилавках в США уже в на-
По данным британских исследователей, число персональ- чале октября.
ных компьютеров с предварительно установленной опера-
ционной системой GNU/Linux в Великобритании приблизи- Подготовил Дмитрий Шурупов
по материалам www.nixp.ru
лось к трем процентам (от всех проданных ПК). Статисти-
ка от специалистов по британскому рынку из Context сви-
детельствует о том, что с января 2007 года (тогда вышла
ОС Microsoft Vista) в процентном соотношении количест-
во десктопов с предустановленной Linux выросло в 28 раз
(с 0,1% до 2,8%). За тот же период на 93% проданных ПК
были установлены системы от Microsoft. Как сообщают
в Context, доля Linux среди продаваемых в Великобритании
ПК беспрестанно росла с момента выхода Vista. Интересно,
что 2-процентный барьер был преодолен в мае этого года,
когда состоялся последний релиз Ubuntu Linux.
Тем временем, представители компании Canonical, за-
нимающейся поддержкой дистрибутива Ubuntu, со ссыл-
кой на исследование IDC заявили, что уже около 11 процен-
тов предприятий в США используют Ubuntu Linux. Впрочем,
следует учитывать, что это вовсе не является оценкой доли
Ubuntu на корпоративных десктопах/серверах – ведь мно-
гие компании работают с системой, например, просто для
того, чтобы проверить, работает ли их программное реше-
ние в данном окружении.

Linux будет доминировать на рынке


мобильных интернет-устройств
В начале августа специалисты из ABI Research опублико-
вали прогноз, согласно которому GNU/Linux станет лиди-
рующей операционной системой на рынке мобильных ин-
тернет-устройств (MID) к 2013 году. Исследователи ABI ожи-
дают, что через 5 лет число продаж MID-устройств с Linux
должно достичь отметки в 50 миллионов в год, что позво-
лит этой ОС обойти всех своих конкурентов. Как считают
в ABI, во многом это станет возможным благодаря тому,

№8, август 2008 


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

Строим плановое IT-хозяйство

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

I
T-отдел и IT-система растут вместе начинается менеджмент и управле- рые занимаются абсолютно всем, что
с предприятием, переживая в своем ние IT как бизнес-структурой, начина- включается в розетку и имеет какие-
развитии несколько этапов. Эти эта- ются вопросы, получить ответы на ко- нибудь провода: компьютеры, серве-
пы можно достаточно четко обозна- торые ой как непросто. Давайте пос- ры (чаще один-два), телефония, копи-
чить, и они определяют ту стартовую мотрим сначала на то, как происхо- ровальные машины, кофеварки и про-
точку, от которой требуется начать дит становление IT-службы в жизни, чее. Сотрудники компании называют
планирование развития. Точное опре- а потом взглянем на то, как это можно работников IT-отдела «программиста-
деление текущей ситуации может по- формализовать и превратить в подо- ми» или «компьютерщиками» вне за-
казаться простым делом, однако это бие математических уравнений и ло- висимости от того, чем этот человек
не так. Помимо продуктов и решений, гических условий. на самом деле занимается. Неудиви-
работающих в системе, есть еще мас- тельно, так как разделения ролей внут-
са вопросов, связанных с IT-менедж- Детство: пылесос ри отдела практически нет, каждый за-
ментом (уровень организации работы для денег нимается всем. Документов, регламен-
IT-отдела, уровень влияния IT на биз- Как правило, IT-отдел рождается тирующих работу отдела, чаще всего
нес, уровень влияния бизнеса на IT вместе с предприятием. Начальный нет, ответственность работников отде-
и так далее). Большое число наших этап, назовем его первым, характе- ла – что-то вроде SLA – никак не опре-
IT‑директоров, выросших из систем- рен для компаний, число ПК в кото- делена. Для учета средств IT (обору-
ный администраторов, хорошо разби- рых не превышает ста штук. Отдел дование, программные продукты) ча-
раются в технологиях, но как только состоит из одного-двух человек, кото- ще всего используется бухгалтерская


администрирование
программа, а статистические данные,
характеризующие работу информаци- Термины и сокращения в течение которого окупаются перво-
онной системы, накапливаются в луч- Использованы материалы Википедии. начальные затраты.
шем случае в головах работников от-  IT (Information Technology) – инфор-  NPV (Net Present Value) – чистый дис-
дела на уровне интуиции. Это приво- мационные технологии. Технологии уп- контированный доход. Показывает
дит к тому, что управление рисками равления и обработки данных. оценку эффекта от инвестиции, при-
не производится, а одна из важней-  SLA (Service Level Agreement) – согла- ведённую к настоящему моменту вре-
ших задач отдела – ликвидация пос- шение об уровне услуги. Формальный мени с учётом разной временной сто-
ледствий уже свершившихся рисков. договор между потребителем услуги имости денег. Часто применяется для
Кстати, сами инциденты чаще всего и её поставщиком. Как правило, тер- сравнения эффективности альтерна-
не фиксируются, и IT-отдел не видит мин SLA используется применительно тивных вложений (при одинаковых на-
нужды в их фиксации: простые про- к IT и телекоммуникационным услугам. чальных вложениях более выгоден про-
блемы решаются сразу, а сложные от- В таком соглашении может содержать- ект с наибольшим NPV).
кладываются до лучших времен. Служ- ся детальное описание предоставляе-  IRR – внутренний коэффициент рента-
ба поддержки пользователей работа- мого сервиса, в том числе перечень па- бельности. Тот процент прибыли от про-
ет в курилке или в столовой, и принцип раметров качества, методов и средств екта, который позволит окупить вло-
личных связей и симпатий играет од- их контроля, а также штрафные санк- женные в него средства. Применяется
ну из важнейших ролей. Качество ра- ции за нарушение этого соглашения. для сравнения эффективности альтер-
боты IT‑отдела целиком и полностью  TCO (Total Cost of Ownership) – сово- нативных вложений.
зависит от разносторонности знаний купная стоимость владения. Методи-  Gartner – международное аналити-
его работников, их доброй воли и же- ка, предназначенная для определе- ческое агентство. Основная специа-
лания работать. Бизнес-руководство ния затрат на информационные сис- лизация – информационные техноло-
оценивает это самое качество по се- темы (и не только), рассчитывающихся гии. Пользуется большим авторитетом
бе («работает ли мой компьютер»), мо- на всех этапах жизненного цикла сис- и весом в мире ИТ.
бильности сотрудников («сегодня про- темы. Не путать со стоимостью про-  M IT (Massachuset ts Institute of
граммист десять раз приходил, хоро- граммного обеспечения, которая со- Technology) – Массачусетский техно-
ший работник»). Сам IT-отдел не име- ставляет обычно от 6% до 20% общей логический институт. Мекка компью-
ет бюджета, деньги выделяют по мере ТСО-системы. терных технологий, мировой лидер
надобности по остаточному принципу.  KPI (Key Performance Indicator) – клю- в области науки и техники, новатор
Эти траты воспринимаются бизнесом чевой индикатор производительности. в областях робототехники и искусст-
как неизбежное зло, которое надо тер- Характеристика эффективности биз- венного интеллекта.
петь (не всегда молча). нес-процессов и работы каждого от-  MOF (Microsoft Operations Framework) –
дельного сотрудника. Набор KPI чаще руководство по достижению необходи-
Юность: самоосознание всего уникален для каждого предприя- мого уровня надежности, доступнос-
Постепенно IT-система всё глубже про- тия и конкретной должности. Пример ти, удобства сопровождения и управ-
никает в бизнес-процессы предприя- KPI – время отклика на заявку для ин- ляемости решений на базе продук-
тия, и руководство начинает понимать, женера службы поддержки. тов Microsoft. Основано на производс-
что в случае сбоев в IT фактически па-  ROI (Return On Investment) – окупае- твенных методиках, собранных в IT
рализуется весь бизнес или важная его мость инвестиций. Метод оценки ин- Infrastructure Library (ITIL), составленной
часть. С этого момента термин «авто- вестиционных проектов, когда важ- Central Computer and Telecommunications
матизация» приобретает важнейшее нейшим критерием приемлемости вы- Agency – Агентством правительства Ве-
значение, а сам IT-отдел или получа- ступает продолжительность периода, ликобритании.
ет в качестве куратора одного из пер-
вых лиц, или статус руководителя IT‑от- не выделили. На этом же этапе начина- (оборудование + программное обеспе-
дела повышается до соответствую- ют появляться документы, регламенти- чение), используя для этого подручные
щего уровня. С этого момента IT-сис- рующие деятельность сотрудников от- средства, например Excel или Access.
тема входит в следующую фазу свое- дела – должностные инструкции, поло- При всём этом IT-отдел не располагает
го развития. жение об отделе и т. п. Эти документы четким бюджетом на автоматизацию,
Численность персонала IT-отдела редко конкретны и ограничиваются закупка программных продуктов ча-
растет, наблюдается деление по функ- фразами о «поддержке работы сети», ще всего не планируется, а происходит
циональному признаку внутри самого «поддержке пользователей» и так да- под влиянием сиюминутных настрое-
отдела. Чаще всего появляются две лее. Апеллируя к этому документу, со- ний сотрудников или руководства. От-
группы: одна занимается оборудовани- трудники IT-отдела начинают отказы- сутствие системного подхода приво-
ем и системным программным обеспе- ваться от ремонта кофеварок и прочих дит к проблемам использования но-
чением, вторая – непосредственно биз- важнейших элементов офисного быта, вых продуктов, так как IT-система час-
нес-приложениями. Сотрудники отдела доказывая, что они не входят в понятие то не готова к внедрениям. Компания
сидят в отдельном помещении, часто «IT» (впрочем, с разной степенью ус- окружена большим количеством пос-
совмещенной с сервернной и прочим, пешности). Параллельно бухгалтерско- тавщиков продуктов или услуг в сфе-
так как отдельной серверной комнаты му, в IT-отделе начинают учёт средств ре IT, с каждым из которых заключен

№8, август 2008 


администрирование
совокупность отдельных продуктов
и технологий, а как систему информа-
ционных сервисов и услуг. Начинает
меняться структура самого IT-отдела:
вместо деления по технологиям начи-
нается деление по сервисам и техноло-
гиям бизнеса. Формируется четкое ви-
дение места IT-отдела на предприятии:
в первую очередь создается пакет до-
кументов, ясно определяющий пере-
чень услуг, сервисов, а также уровень
их поддержки и качества функциони-
рования. Иными словами, появляется
SLA. На его основании меняются от-
ношения с внешними поставщиками
Рисунок 1. Уровни зрелости IT-инфраструктуры в модели Microsoft и подрядчиками, а исполнение ими
договорных обязательств и качество
отдельный договор поставки и/или ока- Несмотря на то что на данном эта- оказываемых ими услуг жестко конт-
зания услуг, но эти документы прочи- пе развития IT-отдел является самосто- ролируются. Часто вводится система
тываются только на этапе подписания ятельной единицей с появившимися KPI, определяющая качество работы
IT-руководителем, далее складывают- бизнес-процессами, вся инфраструк- отдела в целом и отдельных его работ-
ся в папочку и хранятся на полке. И ес- тура еще работает нестабильно. Веро- ников в частности. Вложения в IT начи-
ли работа поставщиков оборудования ятность серьезных сбоев с полной бло- нают рассматриваться как инвестиции
и программных продуктов контролиру- кировкой наиболее важных подсистем со всеми вытекающими последствия-
ется, то о поставщиках услуг вспоми- велика. В первую очередь это связано ми: считается коэффициент возврата
нают только тогда, когда возникают со- с тем, что 80-90% всей работы отдела ROI, считается совокупная стоимость
ответствующие проблемы. являет собой реакцию на изменения, владения TCO, а принятие решений
Рядовые сотрудники компании зна- в том числе на свершившиеся риски. об инвестировании в IT может считать-
ют работников IT-отдела уже не как Планирование изменений, управле- ся по инвестиционным законам, на-
«программистов» или «компьютерщи- ние рисками (особенно превентивное) пример, на основании NPV, IRR-коэф-
ков», а по именам. Вообще говоря, са- не ведется. Фактически IT-отдел идет фициентов. Управление рисками осу-
ми работники IT находятся в положе- на поводу у ситуации. Однако, ликви- ществляется в полном объеме. Фокус
нии богов, называя остальных «ламе- дировав эти недостатки, можно до- работы IT-отдела перемещается от ре-
рами», «юзверями» и так далее. Рядо- биться серьезных прорывов в области акций на проблемы к их предвидению
вой «ламер» крайне неохотно обраща- обеспечения отказоустойчивости ин- и предупреждению. Полноценно функ-
ется в IT-отдел, боясь отвлечь важных формационных служб и сервисов. ционирует служба поддержки – крите-
людей от серьезных дел. Тем не ме- рием ее работы становится время ре-
нее в отделе появляется служба под- Зрелость: партнёры акции на обращение, а также способ-
держки (HelpDesk), использующая про- по  бизнесу ность прогнозирования поведения сис-
стые средства автоматизации сво- Третий этап развития IT-системы на- темы. Ведется чёткое планирование
ей работы или обходящаяся вообще чинается тогда, когда бизнес-руко- развития IT, которое увязано с разви-
без них (журнальная форма). Систе- водители перестают считать деньги, тием бизнеса. Причем планы составля-
мы оценки качества работы отдела потраченные на провода – коммута- ются в краткосрочной, среднесрочной
не существует, так как никто не зна- торы – серверы – приложения, а на- и долгосрочной перспективах.
ет, как его считать. Как правило, ис- чинают задавать совершенно другие Если подвести краткий итог, то мож-
пользуют два самых простых выхода: вопросы. Сколько будет стоить сокра- но сказать следующее. Информацион-
во‑первых, самому IT-отделу предла- щение времени восстановления базы ная система предприятия находится
гают оценить качество своей работы; данных до пяти минут? Сколько стоит под постоянным давлением. С одной
во‑вторых, используют формальный пятнадцать минут «простоя» менедже- стороны, на нее давит бизнес, который
критерий, например количество об- ра по продажам? Какую прибыль мы рассматривает IT как элемент обес-
ращений в службу поддержки. А пос- получим от внедрения системы дис- печения бизнес-процессов. С другой
кольку большое количество заявок танционного обслуживания клиентов? стороны – есть технологические тре-
на поддержку часто считается сигна- Иными словами, требования бизнеса бования, которые также надо соблю-
лом о плохой работе всего отдела, ре- к IT растут, а IT-отдел воспринимается дать. Таким образом, информационная
гистрируются только серьезные сбои, не как обслуживающая единица, а как система неизбежно будет развиваться,
которым присваиваются приоритеты. полновесное бизнес-подразделение, а вот каким будет это развитие, в боль-
Всё остальное делается по-старинке. и развитие бизнеса без развития ин- шей степени зависит от вас. Конечно,
Итог – отсутствие достоверной инфор- формационных технологий невозмож- методом проб и ошибок можно достичь
мации о работе IT‑системы в целом. но. IT начинают рассматривать не как нужного результата, но сколько нужно


администрирование
проб и сколько нужно сделать ошибок! шинстве случаев первоначально су- нию могут носить общий характер ти-
Каковы цели развития? Давайте опре- ществующий уровень развития ин- па «внедрите систему резервного ко-
делим их следующим образом: формационной системы относят к од- пирования». Если вас интересует при-
n сокращение совокупной стоимос- ному из стандартных. Например, вязка к конкретным продуктам – реше-
ти владения IT-инфраструктурой у Gartner таких уровней шесть, от ну- ниям, то можно получить и такие реко-
(включая сервисные затраты и по- левого Survival (Выживание) до пято- мендации тоже.
тери времени пользователей); го Business Partner (Бизнес-партнёр). Чем это удобно? Во-первых, вы
n повышение гибкости информаци- У Microsoft, которая сделала свою мо- получите объективную оценку теку-
онной системы для обеспечения дель оптимизации инфраструктуры щего состояния вашей информаци-
возможности поддержки растущих на базе материалов Gartner, MIT, MOF, онной системы. Во-вторых, сможе-
требований бизнеса; уровней получилось четыре: от базо- те спланировать направления ее раз-
n повышение удовлетворенности вого до динамического. Принцип рабо- вития на уровне решений – серви-
пользователей за счет увеличе- ты с такими моделями несложен. Сна- сов – служб – продуктов. Это позво-
ния надежности и удобства рабо- чала надо определить текущий уро- лит снизить степень хаоса и взять про-
ты с IT‑приложениями. вень зрелости (развития) IT. Сделать цесс эволюции вверенной вам систе-
это можно разными способами, на- мы под контроль. Для каждого уров-
Для того чтобы развитие информа- пример, заполнив опросник. В резуль- ня в модели прописаны преимущест-
ционных систем было эволюционным тате вы сможете получить как общую ва, которые компания может получить,
и управляемым, различные компании оценку развития вашей информаци- достигнув этого самого уровня. Обра-
разрабатывают различные методоло- онной системы в целом, так и по от- тите внимание, чаще всего это бизнес-
гии, которые могут быть использова- дельным решениям (например, базо- преимущества. То есть это часть до-
ны вами для определения путей раз- вая инфраструктура, инфраструктура кумента, на которую можно опирать-
вития. Давайте посмотрим, что из это- платформы приложений, инфраструк- ся в разговоре с бизнесом. Вашему
го получается. тура бизнес-процессов). Процесс раз- генеральному или финансовому ди-
вития IT видится как управляемый пе- ректорам совсем неинтересно раз-
Пути развития реход с уровня на уровень путем внед- бираться в хитросплетениях взаимо-
Существует несколько подходов к оп- рения соответствующих технологий действия серверов, протоколах и так
тимизации инфраструктуры. В боль- и решений. Рекомендации по внедре- далее. Но снижение себестоимости,

№8, август 2008 


администрирование
Не мог у сказать, что переход
на стандартизованный уровень при-
ведет к радикальному сокращению
ТСО. Скорее можно говорить о пере-
распределении средств внутри IT-бюд-
жета, так как изменится сама структу-
ра затрат, а освобождаемые средства
можно будет потратить на реализа-
цию более эффективных политик уп-
равления IT.
На рационализированном уров-
не зрелости IT-инфраструктуры пред-
Рисунок 2. Модель оптимизации инфраструктуры платформы приложений приятия затраты на управление на-
стольными компьютерами и сервера-
увеличение количества и качества В инфраструктуре стандартизиро- ми сводятся к минимуму, а процессы
предоставления услуг и внутри компа- ванного уровня появляются четко опре- и политики начинают играть важную
нии, и для ее клиентов или партнёров – деленные точки управления благодаря роль в поддержке и расширении биз-
это они понимают прекрасно. Рекомен- применению стандартов и политик ад- неса. В защите основное внимание
дации, которые вы сможете получить, министрирования настольных компью- уделяется профилактическим мерам,
работая с моделями оптимизации, по- теров и серверов, правилам подключе- и на любые угрозы безопасности ор-
могут вам найти нужные аргументы ния машин к сети, управления ресур- ганизация реагирует быстро и пред-
и правильно построить разговор о вы- сами на основе Active Directory, поли- сказуемо.
делении средств, например. тикам безопасности и управлению до- Применение развертывания по при-
ступом. Организации с инфраструкту- нципу Zero touch (полностью автомати-
Откуда и куда идти… рой уровня «Стандартизованный» эф- зированное развертывание, с мини-
Как я уже упоминал, модель оптими- фективно используют преимущества мальным участием операторов) ми-
зации инфраструктуры от Microsoft де- базовых стандартов и политик, но все нимизирует расходы, время установ-
лит уровни зрелости IT на четыре уров- еще реагируют на проблемы, только ки обновлений и вероятность техни-
ня (см. рис. 1). когда они уже явно проявились. Обнов- ческих проблем. Количество образов
IT-инфраструктура базового уров- ления или развертывание новых при- систем (images) минимально, и процесс
ня зрелости характеризуется наличи- ложений/служб требуют обычно уме- управления настольными компьюте-
ем большого количества процессов, ренных усилий и затрат (расходы иног- рами требует совсем небольших уси-
выполняемых вручную, минимальной да могут быть по-прежнему достаточ- лий. В организации создана база дан-
централизацией управления, отсутс- но высокими). Однако в таких органи- ных с исчерпывающей информацией
твием (или непродуманностью) стан- зациях уже есть достаточно внятная об аппаратно-программном обеспече-
дартов и политик безопасности, резер- база инвентарной информации об ап- нии, поэтому закупаются лишь те ли-
вного копирования, управления обра- паратно-программном обеспечении, цензии и компьютеры, которые дейс-
зами систем, а также несоблюдением и они начинают управлять лицензия- твительно нужны.
других стандартов IT. В организации ми. Защита от внешних угроз усили- Организации со стандартизован-
нет четкого понимания деталей су- вается благодаря блокированию пе- ным уровнем инфраструктуры выиг-
ществующей инфраструктуры и зна- риметра сети, но внутренняя безопас- рывают от перехода на рациональ-
ния того, какая тактика ее модерниза- ность пока оставляет желать лучшего. ный уровень, получая гораздо боль-
ции даст наибольший эффект. Переход на стандартизованный уро- ший контроль над инфраструктурой,
Работоспособность приложений вень с базового может дать следую- а также политики и процессы для уп-
и служб в целом неизвестна из-за от- щий выигрыш: реждающего реагирования на различ-
сутствия подходящих инструментов n появляется возможность разработ- ные ситуации – от изменения рыноч-
и ресурсов. Механизма обмена на- ки стандартов и политик, а также ной конъюнктуры до стихийных бедс-
копленными знаниями между отдела- стратегии их применения; твий. И здесь можно говорить о сниже-
ми нет. Организациям с базовым уров- n снижаются риски, связанные с бе- нии ТСО, так как автоматизация работ
нем инфраструктуры крайне сложно зопасностью, за счет создания эше- как IT-отдела, так и работников пред-
управлять своими средами, их расхо- лонированной обороны (это подход приятия переходит на качественно дру-
ды на управление персональными ком- к обеспечению безопасности на не- гой уровень.
пьютерами и серверами чрезвычайно скольких уровнях: по периметру сети И, наконец, высший – динамичес-
высоки, они легко уязвимы перед лю- и на уровнях серверов, персональ- кий – уровень. На предприятии с IT-ин-
быми угрозами безопасности, а биз- ных компьютеров и приложений); фраструктурой, достигшей динамичес-
нес получает от IT очень малую выго- n автоматизируются многие ручные кого уровня зрелости, существует пол-
ду. Любые обновления или разверты- и длительно выполняемые опера- ное понимание стратегической цен-
вание новых приложений/служб требу- ции как в самом IT-отделе, так и ности этой инфраструктуры, которая
ют больших усилий и затрат. на предприятии. помогает эффективно вести бизнес 

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

№8, август 2008 11


администрирование
циями (см. рис. 3). Обычно выделя-
ют такие составляющие, как управ-
ление содержимым (в том числе ин-
транет-порталы), решения по ана-
лизу бизнес-данных, корпоратив-
ный поиск, объединенные коммуни-
кации и совместная работа (элек-
тронная почта, аудио- и видеокон-
ференции, обмен мгновенными со-
общениями и др.).
n Базовая инфраструктура – вклю-
чает решения, помогающие компа-
Рисунок 3. Модель оптимизации бизнес-инфраструктуры ниям разработать гибкую, эффек-
тивную, надежную и безопасную
основу IT-среды (см. рис. 4). Наибо-
лее значимыми составляющими
данной категории являются управ-
ление правами и доступом, созда-
ние резервных копий и восстанов-
ление данных, управление установ-
кой и мониторинг ПО, обеспечение
информационной безопасности.

К какому уровню зрелости относит-


ся инфраструктура вашего предприя-
тия, вы можете определить сами (к со-
Рисунок 4. Модель оптимизации базовой инфраструктуры жалению, при условии знания англий-
ского языка). Для этого вам надо от-
и постоянно опережать конкурентов. IT-инфраструктура с рациональным крыть сайт http://www.microsoftio.com.
Все расходы под полным контролем, уровнем дает массу преимуществ: На этом сайте есть разделы, посвя-
пользователям доступны необходи- организация становится способной щенные каждой из трех категории оп-
мые в их работе данные, на каких бы к внедрению новых или альтернатив- тимизации. В каждом из разделов вы
серверах они ни находились, организо- ных технологий, необходимых для ре- найдете опросник. Заполнив его, вы
вана эффективная совместная работа шения новых бизнес-задач или целей, сможете увидеть, на каком уровне зре-
на уровне как сотрудников, так и отде- выигрыш от достижения которых зна- лости находится ваша IT-инфраструк-
лов, а мобильные пользователи полу- чительно перевешивает дополнитель- тура, а также получить рекомендации
чают практически тот же уровень об- ные расходы. в выборе направлений развития ва-
служивания, что и в офисах. Помимо деления на четыре уровня шей IT-системы в будущем. По-моему,
Процессы полностью автоматизи- зрелости также существуют три кате- весьма полезно!
рованы и зачастую включены непо- гории анализа. Знаете, сколько IT-систем России
средственно в IT-системы, что позво- n Инфраструктура платформы находятся на базовом уровне зрелос-
ляет управлять этими системами в со- приложений – cодержит реше- ти? Более 60%. Это означает, что воз-
ответствии с потребностями бизнеса. ния, помогающие IT-отделам пре- можный потенциал этих систем ис-
Дополнительные инвестиции в техно- доставить технологии и средства пользуется на 20-30%. И тут всё нахо-
логии дают быструю и заранее просчи- для поддержки управления биз- дится в ваших руках. Модели оптими-
тываемую отдачу для бизнеса. несом и рабочими процессами зации помогут вам объективно оце-
Применение ПО с автоматическим (см. рис. 2). В качестве примеров нить существующее положение вещей
обновлением и систем с поддержкой можно привести решения по орга- и определить пути развития и вашей
карантина, гарантирующих коррект- низации документооборота, ERP- информационной системы, и вас са-
ное управление обновлениями и со- решения, системы управления эф- мих. Хотите оставаться «программис-
ответствие установленным политикам фективностью деятельности, раз- том» или «компьютерщиком» – ниче-
безопасности, позволяет организаци- работка специализированных при- го не делайте. Хотите стать замести-
ям с динамическим уровнем IT-инфра- ложений для пользователей и др. телем генерального по информацион-
структуры автоматизировать процес- n Бизнес-инфраструктура – техно- ным технологиям, директором депар-
сы, одновременно повышая их надеж- логии, помогающие пользователям тамента или IT-директором – пробуй-
ность. Это же способствует сокраще- находить нужные данные, анализи- те! У вас получится.
нию расходов и увеличению уровней ровать их и сотрудничать как внут-
обслуживания. ри одной компании, так и между В статье использованы иллюстрации
Достигнув динамического уровня, различными странами и организа- с сайта http://www.microsoftio.com.

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

Легализация ПО. Цена ошибки!


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

Ошибки в легализации. рению. Не покупайте лишнего, ищите чие именно таких подтверждений и сви-
Как распознать? компетентных и внимательных продав- детельствует о том, что специалистам
Распространённой ошибкой, вытека- цов и консультантов. Softway можно доверить столь важный
ющей из стремления подобных ком- этап в истории вашей компании.
паний экономить средства заказчика, Ваш поставщик Одни из самых недавних достиже-
является неграмотный и опасный под- программного ний компании Softway – получение вы-
ход к внедрению. Это, например, уста- обеспечения. сокого статуса от Microsoft и авториза-
новка OEM-версий программ на уже Критерии выбора ция у компании Autodesk. Gold Certified
имеющиеся персональные компьюте- Исходя из обозначенных проблем воп- Partner Microsoft – знак высокой оцен-
ры, впоследствии приводящая компа- рос выбора сертифицированного, гра- ки потенциала компании на IT-рын-
нию к огромным проблемам. Назначе- мотного помощника и консультанта ке, а также неоспоримое профессио-
ние OEM-версий совершенно иное. Та- по продаже, внедрению лицензион- нальное признание качества работы
кое программное обеспечение может ного ПО особо актуален. В софтвер- сотрудников. Получение авторизации
быть установлено только на новом ПК ном бизнесе серьезными и професси- у ключевого производителя решений
перед процессом его продажи. Покуп- ональными компаниями могут считать- САПР, компании Autodesk, – это след-
ка OEM‑версий без ПК – это такое же ся немногие – лишь те, которые офици- ствие признания высокого профессио-
уголовно наказуемое преступление, ально авторизованы у производителей нального уровня сотрудников компании
как и использование пиратского про- программного обеспечения и гаранти- Softway: прошедшие обучение и серти-
граммного обеспечения. Это грозит руют компетентность специалистов по фикацию в Autodesk сотрудники ока-
штрафами, приостановкой деятель- продажам, консультированию и внед- зывают всестороннюю качественную
ности компании, а далее – новыми за- рению программных продуктов. консультационную и техническую под-
тратами на уже «правильную» легали- Сотрудники компании Softway, де- держку по лицензированию и внедре-
зацию ПО при помощи профессиона- монстрируя комплексный подход к про- нию продуктов для своих клиентов.
лов в этой области. цессу легализации ПО, отмечают необ- Добавим, что Softway также являет-
В процессе легализации также сто- ходимость проведения аудита имеюще- ся официальным сертифицированным
ит обращать внимание на то, что цены гося программного обеспечения непо- партнером большинства мировых про-
значительно ниже рыночных зачас- средственно перед закупкой программ изводителей ПО.
тую могут предлагать только недоб- и оценки целесообразности приобрете- Смотрите более подробную инфор-
росовестные компании, устанавли- ния тех или иных программных средств. мацию на сайте компании: http://www.
вающие нелицензионный и некачес- Далее необходимо уделить особое вни- softway.ru.
твенный продукт. Требуйте у консуль- мание выбору схемы лицензирования Статья подготовлена на основа-
тантов сертификаты от производите- в непрерывном контакте с сертифи- нии отчетов отдела продаж компа-
ля, это спасёт от ошибки. цированными специалистами. Не сто- нии Softway.
Любое программное обеспечение ит объяснять, что эту непростую проце-
необходимо устанавливать в соот- дуру могут провести только те сотруд- Дмитрий Жеряков,
ветствии с конкретными бизнес-зада- ники, чей профессиональный уровень Руководитель департамента
развития
чами компании. И если для эффектив- подтверждён центрами обучения и сер-
ной работы сотрудников вашей ком- тификации производителей ПО. Нали- На правах рекламы
пании достаточно стандартного паке-
та Office, то незачем покупать Office
Professional, который вам предлагает
менеджер софтверной компании. Це-
ной такого не столь глубинного под-
хода может стать переплата за избы-
точную функциональность програм-
мных компонентов. То же самое ка-
сается и количества лицензий, пред-
лагаемых вам специалистом по внед-

№8, август 2008 13


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

Модификация дистрибутивов
на основе Windows Installer

Иван Коробко
Возможность модификации дистрибутивов на основе Windows Installer всегда прельщала
системных администраторов и специалистов системной поддержки. Рассмотрим один
из компонентов Windows Installer Resource Kit – orca.exe. Эта утилита специально разработана
для решения задач такого рода.

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

14
администрирование
Уделим внимание программному Таблица 1. Параметры командной строки msiexec.exe
управлению базой данных, хранящей- Параметр Описание
ся в msi-файлах. /i Установка приложения в обычном режиме
/f [p|o|e|d|c|a|u|m|s|v] Переустановка приложения. Если задан только ключ /f, то имеется в виду команда /fpecsm:
Windows Installer p – восстановление удаленных файлов;
Это сервис установки и конфигури- о – обновление до более новой версии;
e – полная переустановка приложения той же версии;
рования программных продуктов, ко- d – восстановление удаленных файлов и перезапись файлов более старой версии;
торый входит в состав операционной c – восстановление удаленных файлов или перезапись файлов, если CRC (контрольная
сумма) установленных файлов не совпадает с CRC файлов в дистрибутиве;
системы. Также он может устанавли- а – переустановка всех файлов;
ваться как пакет обновления или от- u – перезапись всех ключей реестра, касающихся данного приложения в ветвях HCKU, HCU;
m – перезапись всех ключей реестра, касающихся данного приложения в ветви HCLM;
дельный дистрибутив. s – перезапись всех ярлыков
В настоящее время использу- /a Выполнение административной установки приложения
ется Windows Installer 4.5, который /x Деинсталляция продукта
можно бесплатно загрузить с сай-
/j[u|m[/g]] Управление публикацией программного продукта:
та Microsoft в виде заплатки (hotfix) u – публикация для текущего пользователя;
KB842288 – http://download.microsoft. m – публикация для всех пользователей;
g – идентификатор языка (управление установкой языкового интерфейса)
com/download/2/6/1/261fca42-22c0-
/q[n|b|r|f] Определение уровня пользовательского интерфейса во время установки:
4f91-9451-0e0f2e08356d/WindowsXP- n – отсутствие интерфейса;
KB942288-v3-x86.exe. b – базовый интерфейс (по умолчанию);
r – сокращенный интерфейс;
Windows Installer, как и любое дру- f – полный пользовательский интерфейс
гое быстрое исправление, поддержи-
вает ряд ключей командной строки, по адресу – http://download.microsoft. ный номер продукта, изменить выво-
обеспечивающих управление автома- com/download/7/c/4/7c426dfc-46e2- димые сообщения и др.
тической установкой пакета: 4ded-bab4-3b33600ad7d1/msi45sdk.msi, Установка orca.exe осуществляет-
n /norestart – не перезагружать ком- используется для различного рода ма- ся в папку %:ProgramFiles%\Orca за-
пьютер после установки обновле- нипуляций с MSI-файлами. пуском файла orca.msi.
ния; По умолчанию каталог установ-
n /queit – выполнить установку в «ти- ки пакета Windows Installer SDK – Оrca.exe
хом» режиме; %ProgramFiles%\Windows Installer 4.5 Запуск программы осуществляется че-
n /help – вывод справки на экран, со- SDK. рез «Пуск → Программы → orca.exe»
держащей ключи и их краткое опи- В его комплекте несколько утилит, (см. рис. 1). После успешного запус-
сание. в том числе дистрибутив программы ка приложения необходимо открыть
ORC, расположенный в папке Tools. msi‑файл, который необходимо мо-
Файл msiexec.exe дифицировать. В данном случае в ка-
Двойным щелчком мыши по файлу Оrca.msi честве опытного образца использо-
с расширением *.msi осуществляется Программа orca.exe, дистрибутив кото- вать дистрибутив AcdSee10 – файл
запуск утилиты: рой находится в папке %ProgramFiles%\ ACDSee 10 Photo Manager.msi, находя-
Windows Installer 4.5 SDK\Tools, предна- щийся в каталоге c:\ACDSee.
%SystemRoot%\System32\msiexec.exe ↵ значена для модификации *.msi-фай- Замечание: дистрибутив ACDSee
/i *.msi
лов. С помощью этой утилиты можно 10 представляет собой *.ехе-файл – ар-
В таблице 1 приведен список часто не только управлять устанавливаемы- хив, который при запуске распаковы-
используемых параметров командной ми компонентами, но и указать серий- вает msi-файл в папке C:\Documents
строки, обеспечивающих автоматичес-
кую установку приложения.
Обычно для установки приложения
в автоматическом режиме использу-
ют команду:

%SystemRoot%\System32\msiexec.exe ↵
/fa /qn /jm *.msi

где *.msi – полный путь к файлу с рас-


ширением MSI, например:

c:\Windows\system32\msiexec.exe ↵
/fa/qn/jm "acdsee10.msi"

Windows Installer SDK


Пакет утилит, который можно загрузить
бесплатно с сайта компании Microsoft, Рисунок 1. Внешний вид утилиты orca.exe

№8, август 2008 15


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

Рисунок 2. Создание новых полей в таблице

and Settings\%username%\Local Settings\Application Data\ ции, используемую на протяжении всего процесса инс-
Downloaded Installations\{0051E50E-CECD-4E04-A71A- талляции. В таблице 4 приведена информация о назна-
B8C49733542A}\ACDSee 10 Photo Manager.msi. Именно этот чении таблиц.
файл необходимо открыть утилитой orca.exe.
Orca.exe рассматривает msi-файл как SQL-базу дан- Доступ к msi-файлам программным способом
ных, где msi-файл – это база данных, левая колонка таб- Для обеспечения программного управления базой данных,
лицы (см. рис. 2), в которой хранятся различные настрой- хранящейся в msi-файле, используется шаблон, приведен-
ки и списки. Правая часть – список полей выбранной таб- ный в листинге 1. Необходимо отметить, что шаблон чтения
лицы с соответствующими значениями. данных отличается от шаблона коррекции данных. О нем
будет рассказано отдельно.
Структура msi-файлов
В базе данных пакета среди множества таблиц, кото- Листинг 1. Шаблон доступа к базе в msi-файле
рые можно объединить в группы, выделим самые важные Set obj = CreateObject ("WindowsInstaller.Installer")
из них: Set base = obj.OpenDatabase (MSI,Mode)
base.OpenView(SQL-query).Execute
n базовые таблицы; base.Commit
n файловые таблицы;
n таблицы информации о программе. В приведенном шаблоне в первой строке осуществляет-
ся подключение к COM-объекту, с помощью которого осу-
Базовые таблицы ществляется доступ к базе данных.
К базовым таблицам относят таблицы, описывающие пара- На следующей строке осуществляется подключение
метры работы инсталлятора, устанавливаемые компоненты. к базе данных с помощью метода OpenDatabase, кото-
Группа состоит из 11 связанных таблиц, краткое описание рый имеет два аргумента. Первый из них – имя базы, ко-
которых приведено в таблице 2.
Таблица 2. Базовые таблицы MSI Installer

Файловые таблицы Имя таблицы Краткое описание

Эта группа таблиц содержит информа- Feature Содержит список всех функций программного продукта

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

Directory не входит в эту группу, она Directory Содержит список всех каталогов, необходимых для инсталляции
тесно связана с ней, так как отража- PublishComponent Содержит список функций и компонентов, публикуемых для использования в других
приложениях
ет структуру каталогов приложения.
В таблице 3 приведен список файло- Assembly Задает установки для сборок .NET Framework CLR и Win32

вых таблиц и их краткое описание. AssemblyName Задает схему для именования сборок .NET Framework CLR и Win32
Complus Содержит информацию, необходимую для установки приложений COM+
Таблицы информации о программе IsolatedComponent Связывает компонент, заданный в столбце Component_Application (обычно .exe),
Таблицы этой группы содержат важ- с компонентом, заданным в столбце Component_Shared (обычно .dll)
ную информацию о пакете инсталля- Upgrade Содержит информацию для значительных обновлений программного продукта

16
администрирование
торым является полный путь к msi- Таблица 3. Файловые таблицы MSI Installer
файлу. Второй – режим доступа к ба- Имя таблицы Краткое описание
зе данных: File Представляет собой список файлов, которые будут распакованы в ходе инсталляции.
n 0 – только чтение; Эта таблица связана с таблицей Directory, в которой зафиксирована структура каталогов
устанавливаемого приложения и таблица Component, с помощью которой обеспечивается связь
n 1 – чтение / запись. с компонентами
RemoveFile Содержит список файлов, которые необходимо удалить при выполнении операции RemoveFiles
На третьей – реализовано выпол-
Font Включает в себя список шрифтов, которые необходимо зарегистрировать в операционной
нение задаваемого запроса. SQL-за- системе
прос задается с помощью метода SelfReg Содержит список саморегистрирующихся модулей. Installer не регистрирует EXE-файлы
OpenView, а выполнение запроса –
Media В таблице описывается набор дисков инсталляции
с помощью метода Execute.
BindImage Содержит информацию о привязках исполняемых файлов или DLL
Напомним, что в SQL-запросе ре-
MoveFile Содержит список файлов, которые необходимо перенести во время инсталляции из исходного
гистр названия полей и имен таблиц каталога в заданный каталог
имеет значение.
DuplicateFile Содержит список дублируемых файлов либо в другой каталог с тем же именем, что и исходный
В последней строке осуществляет- файл, либо в тот же каталог, но с другим именем
ся запись сделанных изменений в базе Environment Используется для задания переменных окружения
с помощью команды Commit. Icon Хранит файлы иконок. Каждая иконка этой таблицы во время инсталляции копируется
в отдельный файл на диске
Работа с таблицами в orca.exe MsiFileHash Эта таблица хранит 128-разрядное хэш-значение для исходных файлов в пакете инсталляции
Рассмотрим подробнее структуру
таблиц, содержащихся в msi-файле. Таблица 4. Файловые таблицы программы
Orca – мини-редактор SQL-таблиц, Имя таблицы Краткое описание
хранящихся как составная часть дис- Property Хранятся все свойства пакета инсталляции
трибутива. Binary Содержатся двоичные данные для иконок, растров и т. п. Также здесь хранятся данные
С полями таблиц баз можно совер- для пользовательских операций
шать следующие действия: Error Используется для поиска шаблонов форматирования при обработке ошибок. Installer имеет свой
n чтение существующих полей; собственный механизм обработки ошибок

n создавать новые поля; Shortcut Здесь хранится вся информация, необходимая для создания файловых ярлыков
n удалять поля; ReserveCost Эта таблица содержит информацию о необходимом дисковом пространстве для каждого
n изменять поля. компонента приложения

Чтение существующих полей Wscript.Echo Record.StringData(1) + ↵


vbTab+vbTab+Record.StringData(2)
Для реализации шаблона поиска используется шаблон Loop
(см. листинг 2), отличный от приведенного в листинге 1. Set View = Nothing
Это объясняется тем, что запись, удаление, замена осу-
ществляются у единичного поля, а вывод на экран осущест-
вляется для всех полей. Создание новых полей
Трансформация листинга осуществляется в третьей Создание новых полей используется достаточно часто, на-
строке листинга 1. Она разбивается на две подстроки – пример, для того чтобы записать в дистрибутив программы
это строки 3 и 4 в листинге 2. Здесь разносятся методы ее серийный номер. Для этого необходимо добавить в таб-
OpenView и Execute. лицу Property поле PIDKEY с соответствующим значением,
Далее осуществляется чтение массива строк. Обрати- содержащим серийным номер продукта. Чтобы добавить
те внимание на то, что в запросе SELECT поля могут быть новое поле, необходимо установить курсор на нужную таб-
перечислены только по именам. Значение «*» в данном лицу (см. рис. 3) и, нажав в произвольной ее части правую
случае не работает. А во время чтения данных необходи- кнопку мыши, выбрать пункт Add Row или нажать комби-
мо указывать нумерацию полей (Record.StringData(1)), на- нацию клавиш <CTRL+R>. В появившемся диалоговом ок-
чиная с единицы (1). не будет приведен список доступных полей. Необходимые
В листинге 2 приведен пример чтения всех полей значения можно присвоить в этом же окне.
(Property, Value) таблицы Property файла ACDSee 10 Photo Аналогичную операцию можно выполнить программным
Manager.msi: способом (см. листинг 3). Для этого необходимо вызвать
объект WindowsInstaller.Installer. На основе шаблона, приве-
Листинг 2. Чтение полей в указанной таблице денного в листинге 1, сформируем листинг 3. В качестве
Set obj = CreateObject("WindowsInstaller.Installer") второго параметра метода OpenDatabase необходимо ука-
Set ob = obj.OpenDatabase ("C:\ACDSee\ACDSee 10 Photo ↵ зать 1, поскольку выполняется операция записи данных.
Manager.msi",0)
set View=ob.OpenView("SELECT Property, Value FROM ↵ Самым сложным в данном листинге правильно сфор-
Property") мировать запрос. Особенность запроса INSERT INFO за-
View.Execute ключается в том, что в первых по счету скобках, в которых
Do указывается название полей, имя поля должно быть зада-
Set Record = View.Fetch
If Record Is Nothing Then Exit Do но с родителем. Все имена параметров в запросе указы-

№8, август 2008 17


администрирование
ваются без кавычек; все присваиваемые значения – в ка- Set b = a.OpenDatabase ("C:\acdsee\ACDSee 10 Photo ↵
Manager.msi",1)
вычках и, наконец, названия полей и таблиц чувствитель- b.OpenView("DELETE FROM Property WHERE ↵
ны к регистру. 'PIDKEY'='1234567890')").Execute
b.Commit
Листинг 3. Создание нового атрибута в таблице

Set a = CreateObject("WindowsInstaller.Installer")
Set b = a.OpenDatabase ("C:\acdsee\ACDSee 10 Photo ↵ Изменение значений существующих полей
Manager.msi",1)
b.OpenView("INSERT INTO Property ↵ Изменение значения осуществляется путем установки кур-
(Property.Property, Property.Value) ↵ сора в необходимую ячейку двойным щелчком левой кноп-
VALUES ('PIDKEY', '1234567890')").Execute
b.Commit ки мыши (см. рис. 3).
Программное изменение свойства осуществляется
по тем же правилам. По сравнению с предыдущими двумя
Удаление существующих полей из таблицы случаями, изменяется только запрос.
Удаление какого-либо поля осуществляется в соответствии В листинге 5 осуществляется отключение компонен-
со следующим алгоритмом: та Device Detector.
n установить курсор на таблицу, в которой необходимо
удалить параметр; Листинг 5. Изменение значений существующих полей таблицы
n установить курсор на удаляемый параметр в таблице; Set a = CreateObject("WindowsInstaller.Installer")
n нажать кнопку <DEL> на клавиатуре или правую кноп- Set b = a.OpenDatabase ("C:\acdsee\ACDSee 10 Photo ↵
Manager.msi",1)
ку мыши, а в контекстном меню – DELETE; b.OpenView("UPDATE Feature SET Level='0' WHERE ↵
n подтвердить намерение удалить параметр. Feature='DevDetect'").Execute
b.Commit

Эту же задачу можно решить программным способом


(см. листинг 4), используя шаблон 1. Для обеспечения воз- Заключение
можности записи в таблице необходимо установить второй Внимательно изучив предложенный вариант, читатель
параметр метода OpenDatabase равным единице (1). без труда сможет либо с помощью сценария на VBScript, ли-
бо с помощью программы orca.exe значительно облегчить
Листинг 4. Удаление существующего атрибута в таблице себе задачу массовой установки программного обеспече-
Set a = CreateObject("WindowsInstaller.Installer") ния, что позволит сэкономить массу времени и сил.

Рисунок 3. Изменение параметра

18
на правах рекламы

П
ричем причина этого отнюдь

Diskeeper – увеличение
не в отставании технологий,
а в особенностях размещения
информации в современных файловых
системах, и в первую очередь во фраг-
ментации файлов. Это верно как в от-
ношении работы пользователя с до-
производительности
кументами, так и в отношении самой
операционной системы (фрагмента-
ция системных файлов, файла под-
винчестеров
качки). Примечательно, что от фраг- Любой системный администратор знает, что общая
ментации страдают не только рабо-
чие станции сотрудников любой компа-
производительность компьютерной системы при решении
нии, но и различные серверы. Для ре- какой-то задачи равна производительности самой «узкой» среди
шения описанной проблемы применя- используемых ресурсов ее части. И в последнее время таким
ются специальные программы – де- местом все чаще и чаще становятся жесткие диски.
фрагментаторы. Одной из них явля-
ется продукт Diskeeper от компании (в том числе и с разбитыми на милли- но удобный и функциональный инстру-
Diskeeper Corporation. Он отличается оны частей объектами), управление пи- мент для профессионалов.
широким набором функциональных танием на ноутбуках, ведение истории
возможностей, которые позволяют го- выполненных операций и т. д. Марат Давлетханов
ворить о нем как о профессиональном Еще одной особенностью про-
инструменте. граммы Diskeeper является наличие
Дефрагментация с помощью про- у нее нескольких версий, рассчитан-
граммы Diskeeper может осущест- ных на использование на различных
вляться как вручную, так и полностью компьютерах. Две из них предназна-
в автоматическом режиме. Второй ва- чены для рабочих станций. Они от-
риант особенно удобен тем, что не тре- личаются друг от друга наличием/от-
бует вмешательства пользователя. Он сутствием технологии I-FAAST и мак-
существенно облегчает работу адми- симально возможным объемом обра-
нистратора, которому необходимо про- батываемых дисков. Серверных вер-
извести первоначальную настройку сий у Diskeeper тоже две. Основное
параметров работы программы и в бу- различие между ними – возможность
дущем вмешиваться только при необ- или невозможность работы с больши-
ходимости их изменения или для ре- ми томами, объем которых исчисляет-
шения возможных вопросов. ся терабайтами. Комментарии Владимира
В рас с матриваемой програм - Ну и конечно же, нельзя не отме- Высоцкого, руководителя отдела
ме реализовано несколько уникаль- тить наличие в рассматриваемой ли- экспертизы ЗАО «Софткей»
ных разработок компании Diskeeper нейке программ продукта Diskeeper Проблемы фрагментации не толь-
Corporation. InvisiTasking обеспечива- Administrator. Он предназначен для уда- ко приводят к замедлению работы
ет незаметность процесса дефраг- ленного управления системой дефраг- пользователей, но и зачастую влия-
ментации для пользователя (исполь- ментации на всех компьютерах (вклю- ют на безопасность. Можно привести
зуются только свободные системные чая серверы), входящих в информа- пример антивирусной проверки фраг-
ресурсы), Intelligent Defragmentation ционную систему предприятия. С его ментированных файлов и дефрагмен-
отвечает за выбор стратегии оптими- помощью системный администратор, тированных. В последнем случае на-
зации (это позволяет добиться макси- не вставая со своего рабочего места, блюдается заметный прирост скоро-
мальной производительности жест- может устанавливать и при необходи- сти около 18‑20%. Конечно, это важно
кого диска). мости обновлять продукты Diskeeper только при первоначальной проверке,
Помимо перечисленных техноло- на других ПК, настраивать их работу, т.к. современные антивирусные ре-
гий у программы Diskeeper есть и не- осуществлять мониторинг и выявлять шения производят индексацию и пос-
мало других полезных возможнос- возможные проблемы. ледующие проверки происходят быс-
тей. В качестве примера можно отме- Самым серьезным недостатком трее. В случае резервного копирова-
тить полную поддержку VSS (Volume продуктов Diskeeper является англо- ния скорость доступа к файлам может
Shadow Copy Service) и 64-битных язычный интерфейс. Причем разра- быть критичной. Так что своевремен-
операционных систем, проведение ботчики обещают, что уже в ближай- ная дефрагментация, особенно серве-
дефрагментации в разделах, в кото- шее время на рынке появятся русско- ров с критичными данными, позволит
рых осталось меньше 1% свободно- язычные версии этих программ. Будем повысить скорость резервного копиро-
го пространства, работа с очень силь- надеяться, что они сдержат свое слово, вания и как следствие вероятность со-
но дефрагментированными файлами поскольку Diskeeper – это действитель- хранения данных.

№8, август 2008 19


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

Почтовое отделение для малого офиса:


OMS + SpamPal + MS Outlook

Александр Емельянов
Почтовый сервер с фильтром спама и хранением архива писем, а в качестве платформы –
Windows XP. Стабильная и быстрая работа многие месяцы без отказа, плюс эффективная
защита от спама и быстрый поиск важных почтовых сообщений, утраченных пользователями.
«Бред!», – скажете вы, глядя на заголовок статьи. Не торопитесь делать выводы.

В
споминая статью [1], посвящен- ру в кошки-мышки. Нужно было ис- а также IP-фильтр, позволяющий раз-
ную бесплатному почтовому кать какие-то решения, и, как всегда, решить или ограничить доступ к сер-
серверу Office Mail Server, с жа- все должно было быть дешево, но ка- веру, отдельному хосту или целой под-
лостью отмечу, что поддержка и раз- чественно. сети.
витие проекта сошли на нет. Однако Собственно, почти все оказалось Вкратце, схема взаимодействия
функционал его по-прежнему актуа- под рукой. В качестве хранителя поч- такова. Имеется виртуальный почто-
лен, и малая требовательность к ре- тового архива и программы, обес- вый домен, при упоминании которо-
сурсам компьютера вкупе со стабиль- печивающей быстрый поиск старых го в адресе получателя письмо «па-
ной работой заставляют обратить писем, был выбран всем известный дает» в почтовый ящик компании, за-
на него внимание. MS Outlook, который входит в стан- веденный на сервере провайдера.
OMS верой и правдой служил в на- дартный набор MS Office. Антиспам- POP3-клиент сервера OMS по распи-
шей компании почтовым голубем. Вре- фильтром была выбрана програм- санию забирает письма с этого ящика
мя шло, и запросы сотрудников компа- ма SpamPal. Для лучшего понимания и при помощи сортировщика раскла-
нии менялись. Однажды, когда некое всей схемы рассмотрим каждый ком- дывает их по папкам конечных получа-
важное письмо было утеряно сотруд- понент отдельно. телей. Доступ к этим папкам осущест-
ником, стало понятно, что есть необ- вляется с помощью встроенного POP3-
ходимость иметь общий архив писем Office Mail Server сервера, посредством которого кли-
с быстрым поиском по заданным ус- Чтобы понять принципы работы OMS, енты получают предназначенные им
ловиям. Благо, что общий поток элек- достаточно прочитать статью [1]. В не- письма. При отправке письма клиент
тронной почты укладывался не более скольких словах, этот сервер имеет подключается к встроенному SMTP-
чем в 100 писем в день, включая спам. в себе перечень компонентов, обес- серверу, и его сообщение ставится
Количество почтового хлама росло печивающих транспорт, сортировку в очередь на отправку. Затем SMTP-
с каждым днем. и фильтрацию почтового потока: SMTP- клиент, используя транспорт провай-
Спам-фильтр сервера OMS лишь и POP3-серверы, SMTP- и POP3-кли- дера, отправляет письма из очереди
превращал борьбу со спамом в иг- енты, сортировщик и фильтр спама, по назначению.

20
администрирование
SpamPal Параметры реестра для указания максимального размера PST-файлов
Этот проект, аналогично OMS, не име- Имя Тип Допустимый диапазон значений По умолчанию
ет полноценного развития уже не- MaxLargeFileSize REG_DWORD 0x00000001-0x00005000 0x00005000
сколько лет. Однако функциональность 20480 (20 Гб)
работы SpamPal заставляет рассмат- WarnLargeFileSize REG_DWORD 0x00000000-0x00005000 0x00004C00
ривать его как серьезного кандидата 19456 (19 Гб)

для борьбы со спамом. В качестве ра- MaxFileSize REG_DWORD 0x001F4400-0x7C004400 0x7BB04400


2075149312 (1,933 Гб)
бочей была использована версия 1.594
WarnFileSize REG_DWORD 0x00042400-0x7C004400 0x74404400
этого продукта, но есть и более свежие 1950368768 (1,816 Гб)
бета-версии.
Для фильтрации спама SpamPal дельно прост, и его запуск в работу, щать с диска на диск и даже перено-
использует так называемые DNSBL при правильном понимании всех мани- сить на другой компьютер и работать
(DNS blacklists, «черные списки» DNS), пуляций, дело пары минут. Однако есть с ним как на личной машине. Это пер-
которые используются провайдерами один нюанс. После установки програм- вый плюс для нашей задачи. Второй
для блокировки почты с серверов, за- ма работает только в контексте поль- плюс – PST-файлы могут быть сжаты
меченных в рассылке спама. Попрос- зователя, то есть для ее запуска (пусть как средствами Outlook, так и при по-
ту говоря, SpamPal, получая письмо даже и автоматического) необходимо мощи архиваторов. Для примера,
из почтового ящика, делает запрос войти в систему. Но нас это не совсем файл личных папок размером 3 Гб мо-
на наличие IP-адреса сервера отпра- устраивает, все должно функциониро- жет быть сжат архиватором WinRAR
вителя в списке DNSBL, и, при поло- вать независимо от того, был выполнен вдвое.
жительном ответе помечает его как вход в систему или нет. Для решения Поскольку PST-файлы будут со-
спам. этой задачи будем использовать ути- держать большое количество писем,
Помимо этого после включения литу WinService Manager [2]. Ее нужно то будет вполне уместным рассказать
фильтра RegEx (от regular expressions – запустить после установки SpamPal об ограничении размера этих файлов.
регулярные выражения), есть возмож- и указать имя сервиса, а также мес- На данный момент существует два
ность фильтровать почту по вхождени- то расположения файла spampal.exe формата этих файлов – ANSI и Unicode.
ям слов. В помощь к этому можно ис- и рабочей папки. В результате наш Возможность создания файлов лич-
пользовать, например, новостную сис- спам-фильтр будет работать как сер- ных папок в формате Unicode появи-
тему электронного журнала «Спам- вис. Вдобавок к этому нужно удалить лась в MS Outlook 2003. Это позволи-
тест» (spamtest.ru) от Лаборатории Кас- SpamPal из автозагрузки, куда он про- ло увеличить максимальный размер
перского. Каждую неделю они публи- писывает себя после установки. с 2 Гб (для формата ANSI) до 20 Гб
куют самые популярные тематики спа- Нужно отметить, что для первона- (для формата Unicode). Однако су-
ма с примерами писем, на основе кото- чальной работы программа уже имеет ществует одна проблема с использо-
рых вы можете строить регулярные вы- минимальную конфигурацию. Поэтому ванием PST-файлов. При приближе-
ражения для фильтрации. Нужно отме- зачастую пользователю, пытающему- нии к максимальному размеру фай-
тить, что SpamPal требует некоторого ся «прикрутить» антиспам к почтово- ла личных папок MS Outlook начина-
первоначального обучения, потому что му клиенту, достаточно следовать инс- ет работать нестабильно. Рассмотрим
спамом, по его мнению, вполне могут трукциям соответствующего раздела параметры реестра, которые помогут
оказаться доверенные отправители. руководства к программе [3]. Как на- не допустить этого.
После установки SpamPal являет- строить SpamPal для нашего случая, В таблице первые два парамет-
ся посредником между почтовой про- будет описано дальше. ра относятся к файлам в формате
граммой и сервером, с которого по- Unicode. Параметр MaxLargeFileSize
лучается почта. Сортируя сообщения Microsoft Outlook служит для указания абсолютного мак-
на ликвидные и спам, программа ниче- Этот продукт в представлении не нуж- симального размера для файлов PST.
го не удаляет и оставляет право выбо- дается. Более того, существует боль- По достижении этого размера увели-
ра конечному пользователю. Она лишь шая вероятность, что у человека, ко- чение файла прекращается. Параметр
помечает сообщение, расцененное торый будет отвечать за архивацию WarnLargeFileSize служит для указа-
ей как спам, и пересылает его даль- почты, он уже установлен в составе ния максимального количества данных
ше. Практически все самые извест- MS Office. Я заострю внимание лишь в файлах PST. После достижения этого
ные почтовые клиенты могут работать только на нужных нам особенностях предела добавление данных в файлы
со SpamPal. Именно поэтому програм- программы. Как уже говорилось, в на- PST невозможно, однако физический
ма оказалась именно тем, что нужно. шей схеме он будет выступать хра- размер файлов может увеличиваться
Напомню, что OMS имеет встроенный нилищем электронных сообщений из-за внутренних процессов.
POP3-клиент и для транспорта почты и обеспечивать поиск необходимой Два следующих параметра от-
от провайдера к ящику конечного по- корреспонденции. носятся к файлам в формате ANSI.
лучателя использует связку POP3-кли- Всю информацию MS Outlook хра- MaxFileSize, WarnFileSize – то же са-
ент – фильтр спама – POP3-сервер. Те- нит в PST-файлах (файлы личных па- мое, что и параметры MaxLargeFileSize
перь мы добавляем еще одно звено. пок). Причем это автономное хранили- и WarnLargeFileSize соответствен-
Процесс установки SpamPal пре- ще, и его преспокойно можно переме- но. Приращение значений парамет-

№8, август 2008 21


администрирование
вному мейлбоксу папке. Это затрудня-
Замечания по SpamPal новлен до тех пор, пока вы не переза- ет оперативный поиск нужного элект-
 После создания порта будет лучше, пустите SpamPal. ронного сообщения. Поэтому на ма-
если вы отметите в настройках опцию  В той версии, которая описана в ста- шине, которая будет выступать репо-
«Подавить сообщения об ошибках со- тье, есть ошибка в интерфейсе. Меню зиторием корпоративной почты, нуж-
единения у клиента». Иначе при час- «Инструменты» содержит два подме- но в MS Outlook создать отдельный
тых запросах к серверу провайдера, ню: «В черный список» и «В белый спи- PST-файл, настроить учетную запись
отсутствующей связи SpamPal может сок». Они по смыслу перепутаны мес- для доставки почты из архива. Одно-
буквально «захлебнуться» сообщени- тами, то есть, выбрав добавление ад- временно можно создать правило, со-
ями об ошибках и «повиснуть». После реса или домена в черный список, вы гласно которому письма из архива бу-
чего, даже при восстановлении связи, на самом деле добавите его в белый дут складываться в папку, например,
входящий почтовый поток будет оста- список. с названием «Текущая почта». Так-
же можно создавать еще PST-файлы,
ров для файлов в формате Unicode чае ей выступает POP3-клиент OMS) в которые будет перемещаться архи-
осуществляется в мегабайтах (Мб), находятся на одном компьютере, при- вная почта из папки «Текущая почта».
а для файлов в формате ANSI – в ки- меняется следующая конфигурация. Допустим, каждый такой файл будет
лобайтах (Кб). Вместо адреса POP3-сервера провай- соответствовать году и содержать пап-
Значения данных параметров ус- дера указывается 127.0.0.1, а в качест- ки «1-й квартал», «2-й квартал» и т. д.
танавливаются в реестре в следую- ве номера порта должно быть указано Например, закончился первый квартал
щих ветках: число 110, но… На 110 порту на локаль-года, и вся текущая почта перекочева-
Outlook 2003: ной машине ждет подключений POP3- ла в соответствующую папку. По окон-
n HKEY_CURRENT_USER\Software\ сервер OMS, поэтому для исключения чании года можно получившийся PST-
Policies\Microsoft\Office\11.0\Outlook\ конфликта укажем другой номер пор- файл «отцепить» и скопировать на сер-
PST; та, например 11010. Все остальное ос- вер до востребования. Все это помо-
n HKEY_CURRENT_USER\Software\ тается без изменений. жет не только упорядочить весь кор-
Microsoft\Office\11.0\Outlook\PST. Далее обратимся к SpamPal. В на- поративный почтовый поток, но и ус-
стройках программы в пункте «Со- корить поиск необходимой коррес-
Outlook 2007 единения» удаляем стандартные на- понденции.
n HKEY_CURRENT_USER\Software\ стройки и добавляем новый порт (сто-
Po l i c i e s\ M i c r o s of t \O f f i c e\12 .0 \ ит отметить, что если вы используе- Итог
Outlook\PST; те или будете использовать несколь- Что в итоге мы получим? Электронное
n HKEY_CURRENT_USER\Software\ ко POP3-клиентов OMS, то для каж- сообщение, пройдя проверку на спам,
Microsoft\Office\12.0\Outlook\PST. дого подключения нужно будет создать доставляется на сервер OMS, а имен-
новый порт). На вкладке «Установки» но в папку получателя, а копия пись-
Если таких параметров не сущест- отмечаем «Конкретное имя сервера» ма – в архивную папку. После этого
вует, их можно создать. и указываем имя сервера провайде- письмо выкачивается почтовым клиен-
ра и порт (в нашем случае 11010). Та- том и появляется у получателя. А копия
Собираем компоненты ким образом, используя авторизаци- письма «летит» в папку с текущей поч-
воедино онные данные POP3-клиента OMS, той и хранится в PST-файле.
Для начала рассмотрим, как каждая SpamPal подключается к ящику, куда Такая схема обеспечивает некото-
программа должна быть настроена идет вся почта, забирает ее, проверя- рую гибкость управления почтовым
для построения задуманного, а затем ет каждое сообщение на принадлеж- потоком. Так, например, администра-
уточним нюансы. ность к спаму и передает далее кли- тор может отсеивать спам на сервере
OMS является в этой схеме цен- енту. В случае, если письмо оказыва- OMS при помощи встроенного спам-
тральным звеном, с него и начнем. ется, по мнению SpamPal, спамом, оно фильтра: копировать в специально со-
Для получения почты с ящика провай- не удаляется, но в тему письма добав- зданный ящик или просто удалять. Ли-
дера в настройках POP3-клиента долж- ляется «**SPAM**», а также добавляет- бо предоставить право пользователям
ны быть указаны соответствующие па- ся заголовок «X-SpamPal:», в котором сортировать сообщения при помощи
раметры: имя или IP-адрес POP3-сер- указывается фильтр, по мнению кото- правил непосредственно на этапе по-
вера провайдера, порт подключения рого данное сообщение – спам. лучения почтовым клиентом.
(110 по умолчанию), данные авториза- Что касается MS Outlook, здесь все
ции, тайм-аут подключения, использу- предельно просто. Напомню, что вся 1. Емельянов А. Организуем работу офис-
емый сортировщик, спам-фильтр и др. почта, проходящая через OMS, копи- ного почтового сервера на платфор-
Но помня о том, что между провайде- руется в учетную запись, которая яв- ме Windows. //Системный админист-
ром и нашим клиентом должен рас- ляется архивной. Это задается опци- ратор, №12, 2006 г. – С. 40-43 – http://
полагаться SpamPal для фильтрации онально в настройках почтового сер- www.samag.ru/cgi-bin/go.pl?q=articles;
спама, обратимся к руководству по его вера. Минус ее в том, что все письма n=12.2006;a=02.
настройке [3]. В случае, когда SpamPal хранятся в файловой системе в виде 2. http://winservice.ucoz.ru.
и почтовая программа (в данном слу- .eml‑файлов в соответствующей архи- 3. http://www.spampal.org/manual-rus.

22
на правах рекламы

О
бычно, когда речь заходит о ре-

Свой собственный
шении этой задачи, вспомина-
ют о таких полномасштабных
продуктах, как Microsoft Exchange или
Lotus Notes. Однако практика показы-
вает, что подавляющее большинство
средних, не говоря уже о малых, ком-
почтовый сервер
паний, не использует всех функци- Сегодня одной из самых часто используемых в бизнес‑процессах
ональных возможностей этих «мон- компаний интернет-технологий является электронная почта.
стров». Кроме того, администрирова-
Она представляет собой наиболее удобное и оперативное средство
ние данных продуктов требует серьез-
ных знаний. Поэтому для многих ком- обмена информацией. Поэтому системным администраторам
паний можно порекомендовать исполь- приходится сталкиваться с задачей организации корпоративного
зовать более простые и дешевые про- почтового сервера, который бы обеспечил максимальную
дукты, например MDaemon Email Server эффективность работы сотрудников с электронными сообщениями.
от компании Alt-N Technologies.
Несмотря на относительную деше- ки MDaemon Email Server специалис- ретение ПО, отказавшись от заведомо
визну, MDaemon Email Server – полно- тами, не имеющими опыта в решении ненужных функций.
ценный почтовый сервер, поддержи- подобных задач.
вающий все необходимые протоколы: Достаточно интересна политика Марат Давлетханов
SMTP, POP и IMAP. Он также может лицензирования, используемая ком-
использоваться в режиме DomainPOP. панией Alt-N Technologies. У продукта
При этом вся корпоративная почта бу- MDaemon Email Server есть две версии:
дет приходить на один внешний ящик. Standard и Pro. Первая из них облада-
А сервер будет автоматически загру- ет минимальным набором функцио-
жать из него письма и распределять нальных возможностей для реализа-
их по учетным записям сотрудников ции полноценного почтового сервера.
(на основе поля X-Deliver-To). Вторая версия расширенная. При ее
Для работы с корпоративной поч- использовании продукт может приме-
товой системой, построенной на ос- няться для решения многих дополни-
нове MDaemon Email Server, можно тельных задач, связанных с организа-
использовать любой бесплатный или цией эффективного взаимодействия
коммерческий клиент. Кроме того, сотрудников компании.
в данном сервере реализована воз- Но это еще не все. У продукта есть
можность доступа к почтовому ящику два дополнительных модуля, обес- Комментарии Владимира
с помощью веб-интерфейса. Это поз- печивающих расширенную функцио- Высоцкого, руководителя отдела
воляет сотрудникам читать свою поч- нальность. экспертизы ЗАО «Софткей»
ту из любой точки мира, в которой есть Первый из них, Outlook Connector Хотелось бы заметить, что в конце ав-
выход в Глобальную сеть. Интерес- for MDaemon, предназначен для орга- густа ожидается выход новой версии
но, что в составе рассматриваемого низации коллективной работы, реа- Mdaemon 10 и SecurePlus 4. Разработ-
продукта есть инструменты для рабо- лизованной в пакете Microsoft Outlook. чики постарались учесть все замеча-
ты с электронной почтой с карманных При этом сотрудникам компании ста- ния пользователей продукта и доба-
компьютеров. новятся доступны такие инструменты, вили более 40 новых «фич». Среди
Хотя MDaemon Email Server не- как общие календари, адресные книги, них: работа с несколькими доменами,
сколько уступает таким «монстрам», расписания встреч, списки дел и т. п. полностью обновленный World Client
как Microsoft Exchange, в нем есть все Второй модуль – SecurityPlus for и поддержка IPhone. Новая версия
необходимое для полноценной рабо- MDaemon. Он предназначен для су- полностью поддерживает Outlook 2007.
ты. Это веб-интерфейс администра- щественного усиления базовой защи- Основные усилия программистов бы-
тора, механизм для организации рас- ты почтового сервера. В нем исполь- ли сосредоточены на оптимизации
сылок, интеграция с ODBC и Active зуется Kaspersky Antivirus Engine (по- и ускорении работы. И это им уда-
Directory, поддержка серых и персо- иск и блокирование вирусов, шпионов лось. При тестировании мы наблюда-
нальных белых листов, защита от спа- и другого вредоносного ПО), техноло- ли прирост производительности по-
ма, система обмена защищенными гия Recurrent Pattern Detection и т. д. рядка 50%.
мгновенными сообщениями и многое Вынесение данных возможностей Также хочу заметить, что с выхо-
другое. Особенностями рассматрива- в отдельные модули позволяет ком- дом новой версии продукта домашние
емой программы являются интуитив- паниям самостоятельно решать воп- пользователи и представители малых
но понятный интерфейс и подробная рос об их необходимости и целесооб- организаций смогут получить бесплат-
справочная система. Все вместе это разности приобретения. Это позволя- но лицензию MDaemon Free на 5 поль-
обеспечивает возможность настрой- ет минимизировать затраты на приоб- зователей для ознакомления.

№8, август 2008 23


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

Новшества
в Windows Server 2008:
транзакционная
файловая система

Андрей Бирюков
Появление в Windows Server 2008 транзакционной файловой системы является важным
нововведением. Обсудим подробнее, что из себя представляет TxF.

В
ышедшая весной этого года опе- полнительных пояснений. В рамках ра- существенно увеличить стабильность
рационная система Windows боты файловой системы транзакцион- работы как приложений, так и системы
Server 2008 содержит целый ряд ность означает целостность выполне- в целом. Еще одним дополнительным
новых интересных функций, об одной ния операций с файлами. Другими сло- преимуществом TxF является возмож-
из которых я хочу рассказать в этой вами, в любой момент времени состо- ность дальнейшей доработки и усо-
статье. Файловая система является яние файловой системы всегда име- вершенствования данной технологии,
одним из ключевых элементов любой ет целостную структуру, то есть даже что позволит обеспечить ей дальней-
операционной системы, так как по су- при внезапном сбое питания на жест- шее развитие.
ти это фундамент, на котором строит- ком диске не будет ошибок, связан-
ся весь функционал ОС. В Windows ных с нарушением целостности фай- Область применения
Server 2008 таким фундаментом яв- лов, свойственных предыдущим верси- Приведя краткое пояснение о том,
ляется транзакционная файловая сис- ям файловой системы. А, как извест- что же из себя представляет тран-
тема. но, сбои при работе с системными фай- закционная файловая система, хоте-
Транзакционная файловая система лами могли привести к очень печаль- лось бы сказать несколько слов о том,
(TxF) – это расширение файловой сис- ным последствиям, вплоть до полной для каких задач предназначена дан-
темы NTFS, позволяющее выполнять потери данных. Транзакционная фай- ная технология и, что тоже немаловаж-
файловые операции над томом фай- ловая система использует для сво- но, для чего она не подходит. TxF бу-
ловой системы NTFS в рамках тран- ей работы транзакции, то есть закон- дет очень полезна при использова-
закций. Для читателей, не посвящен- ченные операции с файлами, что поз- нии на серверах, выполняющих час-
ных в специфику работы с базами дан- воляет добиться вышеупомянутой це- тые операции по изменению файлов.
ных, слово «транзакция» может пока- лостности файловой системы. Таким Например, на серверах баз данных
заться непонятным и требующим до- образом, функционал TxF позволяет или файловых хранилищах. На таких

24
администрирование
серверах частые обращения к фай- пользования транзакционной файло- В качестве одного из парамет-
лам в многопользовательском режи- вой системы – обновление файлов ров при вызове перечисленных выше
ме могут привести к потере данных при на группе компьютеров. функций указывается ссылка на тран-
сбое электропитания, TxF поможет из- закцию, в рамках которой выполняет-
бежать данной проблемы. Операции над файлами, ся данная операция. Транзакция может
Теперь о том, что не поддержива- поддерживаемые TxF быть создана либо вызовом функции
ется. TxF не поддерживает сетевые Сжатие. Если вы сжимаете файл, то CreateTransaction при использовании
диски (протоколы CIFS/SMB), также операция по сжатию файла не явля- Kernel Transaction Manager или функ-
не поддерживается кэширование фай- ется транзакционной. Но TxF будет ра- ции GetKTMHandle при использова-
ловых операций на стороне клиента. ботать со сжатым файлом, так же как нии DTC.
Нельзя использовать TxF при рабо- и с обычным. Появление транзакционной фай-
те с файловыми системами, отличны- При создании новых файлов или ка- ловой системы привело к внесению
ми от NTFS (к FAT32 это тоже относит- талогов доступ к создаваемому файло- ряда изменений в работу некото-
ся!). TxF не поддерживает операции вому ресурсу блокируется для других рых функций, например, CloseHandle,
над зашифрованной файловой систе- транзакций. И если в то же самое вре- CreateFilemapping, FindNextFile и дру-
мой (Encrypted File System, EFS) за ис- мя другая транзакция попытается соз- гих. Последовательность действий
ключением операций чтения (напри- дать ресурс с таким же именем, то она при транзакционной работе с фай-
мер, ReadEncryptedFileRaw). получит сообщение о конфликте: ловой системой может быть следу-
ERROR_TRANSACTIONAL_CONFLICT, ющей:
Технический функционал и завершится с ошибкой. n создание транзакций на уровне
Продолжая разговор о транзакцион- Работа с удаляемыми файлами ядра:
ной файловой системе, немного углу- и каталогами TxF осуществляется сле-
бимся в технические аспекты ее функ- дующим образом. Файл будет удален IntPtr tx = CreateTransaction ↵
(IntPtr.Zero, ↵
ционирования. Итак, реализация TxF только тогда, когда работу с ним за- IntPtr.Zero,0,0,0,0, null);
стала возможной благодаря новой вершат все транзакции. При удале-
транзакционной инфраструктуре, ре- нии каталогов доступ к его содержи- n транзакционное удаление файла:
ализованной на уровне ядра опера- мому блокируется для доступа всех
ционной системы, позволяющей сер- транзакций. If (!DeleteFileTransactedW ↵
(file1, tx))
висам ОС участвовать в транзакци- А вот если вы вносите изменения
ях, используя новый компонент – ме- в файл внутри каталога, то доступ к ка- n завершение транзакции при ус-
неджер транзакций Kernel Transaction талогу не блокируется для других тран- пешном выполнении предыдуще-
Manager (KTM). Тут следует отметить, закций, и они могут вносить любые из- го пункта:
что KTM может взаимодействовать на- менения в каталог, но не в изменяемый
прямую со службой Microsoft Distributed файл, так как доступ к нему блокиру- CommitTransaction(tx);
Transaction Coordinator (DTC), которая ется на время изменений.
управляет транзакциями операцион- Что касается административных за- n откат транзакции при ошибке:
ной системы и приложений. Это так- дач, то на этом их описание завершает-
же позволяет существенно увеличить ся, оставшаяся часть статьи будет ин- RollBackTransaction(tx);
функционал TxF. Помимо этого в обес- тересна преимущественно програм-
печении функционирования транзак- мистам и разработчикам, так как речь n закрытие ссылки на транзакцию:
ционной файловой системы задейс- пойдет о программировании TxF.
твована подсистема протоколирова- Вот список функций используе- CloseHandle(tx);
ния Common Log File System (CLFS), мых в TxF.
впервые реализованная в Microsoft n CopyFileTransacted; На этом я завершаю свое крат-
Windows Server 2003 R2. n CreateDirectoryTransacted; кое описание транзакционной файло-
За счет того, что TxF способ- n CreateFileTransacted; вой системы Transactional NTFS. Ду-
на полностью взаимодействовать n CreateHardLinkTransacted; маю, что появление новой файловой
с MS Distributed Transaction Coordinator, n CreateSymbolicLinkTransacted; системы будет полезно не только раз-
она имеет возможность участвовать n DeleteFileTransacted; работчикам, но также и администра-
в транзакциях, использующих не толь- n FindFirstFileNameTransactedW; торам, так как позволит повысить на-
ко менеджеры ресурсов, предостав- n FindFirstFileTransacted; дежность работы корпоративных ре-
ляемые Kernel Transaction Manager, n FindFirstStreamTransactedW; сурсов в целом.
но и другие менеджеры ресурсов, под- n GetCompressedFileSizeTransacted;
держиваемые на уровне DTC. Напри- n GetFileAttributesTransacted; 1. Алексей Федоров «Microsoft Windows
мер, система документооборота мо- n GetFullPathNameTransacted; Server 2008. Краткий обзор ключевых
жет использовать эту возможность n GetLongPathNameTransacted; новинок».
для работы как с файловой системой, n MoveFileTransacted; 2. http://msdn.microsoft.com/en-us/library/
так и с базой данных и все в рамках n RemoveDirectoryTransacted; bb968806(VS.85).aspx – раздел MSDN,
одной транзакции. Другой пример ис- n SetFileAttributesTransacted. посвященный Transactional NTFS.

№8, август 2008 25


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

Шлюз в Интернет
на ComixWall ISG

Сергей Яремчук
Использование специализированных дистрибутивов для организации доступа в Интернет
нельзя назвать чем-то особенным. Выбор только за решением. Сегодня познакомимся
с возможностями ComixWall ISG.

С
пециализированные решения поэтому дистрибутив ComixWall ISG для создания шлюзов безопасности,
в отличие от применения обыч- (Internet Security Gateway), появившись защищающих SOHO-сети и способ-
ных интересны тем, что позво- в июне 2006 года, сразу привлек к се- ное составить конкуренцию многим
ляют получить нужный результат с ми- бе внимание. ComixWall [1] построен коммерческим продуктам.
нимальными усилиями и за более ко- на OpenBSD, которая считается самой Интерфейс управления ComixWall
роткий срок. Большая часть дистри- безопасной системой, что и послужило распространяется по BSD-лицензии,
бутивов, построенных на Linux или определяющим фактором при ее выбо- по этой же лицензии распространя-
одной из версий BSD-системы, име- ре разработчиками в качестве основы. ются операционная система и отдель-
ют удобные инструменты для пост-ин- Номер ComixWall соответствует номе- ные пакеты. Часть пакетов, входящих
сталляционной настройки, нетребова- ру того релиза OpenBSD, на котором он в состав дистрибутива, имеет GNU
тельны к ресурсам и распространяют- построен, поэтому начальная версия GPL-лицензию.
ся по свободной лицензии. Это дела- сразу же получила цифру 3.9. Назва-
ет их востребованными в небольших ние Comix произошло из комбинации Возможности ComixWall
организациях, не имеющих штатных английских слов COMmunication и unIX. Актуальной на момент написания ста-
специалистов. Особо подчеркивается, что ComixWall тьи была версия 4.2 от декабря 2007 го-
Дистрибутивов, построенных на не является еще одним межсетевым да, с обновлением в январе 2008 го-
Linux, несколько больше, чем на иных экраном, которых сегодня предоста- да (ComixWall 4.2_20080109). Следу-
платформах. Решения, использую- точно, и удивить ими, наверное, уже ет заметить, что сами разработчики
щие в качестве основы другие вари- никого нельзя. Разработчики позици- первые релизы пока еще считают про-
анты UNIX-систем, можно пересчи- онируют его как законченное UTM-ре- бными (Proof of Concept), больше ори-
тать буквально по пальцам. Наверное, шение (см. врезку), предназначенное ентированными на специалистов, чем

26
администрирование
на широкое применение. Хотя учиты-
вая, что работают они стабильно, серь-
езных недостатков за пару лет обнару-
жено не было, поэтому ничто не меша-
ет их использовать для защиты сети.
Дистрибутив включает в себя пол-
ный спектр самого разнообразного
программного обеспечения, обеспе-
чивающего:
n функцию фильтрации пакетов при
помощи pf, входящего в состав
OpenBSD;
n антивирусную защиту с ClamAV
с автоматическим обновлением
при помощи freshclam;
n систему обнаружения атак Snort
с обновлением правил oinkmaster; Рисунок 1. После установки системы последует инсталляция ComixWall
n контентный веб - фильтр Dans
Guardian с проверкой трафика ние будущих версий: антивирусной ко для amd64, так как разработчики
при помощи ClamAV; проверки FTP- и IM-трафика, а также по праву считали, что 64-битные сис-
n анти-спам фильтры SpamAssassin IMAP-прокси с антивирусной и анти- темы имеют ряд преимуществ перед
и spamd; спам защитой. 32-битными и сделали ставку на бо-
n P3scan и smtp-gated антивирусные Эту информацию по дистрибутиву лее высокопроизводительное реше-
и анти-спам почтовые прокси; можно получить на сайте проекта [1] ние. Затем уже по многочисленным
n прокси Dante (SOCKS), Squid (HTTP), и странице на Google Code [2], теперь просьбам пользователей появился ре-
ftp-proxy, IMSpector (IM-прокси же познакомимся с ComixWall ближе. лиз под i386.
с поддержкой Jabber/XMPP, MSN, Кроме дистрибутива, советую ска-
IRC, Yahoo и других); Установка ComixWall чать и документ System Administration
n серверы: Apache, DNS, DHCP Дистрибутив доступен в двух версиях – Guide (SAG), который поможет быстрее
и OpenSSH. для платформ i386 и amd64. Загруз- сориентироваться в настройках. К тому
ка возможна только через BitTorrent. же он, как и другие документы, впол-
И некоторые другие приложения, Размер дистрибутива чуть больше не может пригодиться. Как сказано
в том числе предназначенные для сбо- 140 Мб, для установки которого тре- в документации, установка ComixWall
ра и вывода разного рода статистики. буется не менее 650 Мб свободного это: «is the usual OpenBSD installation»,
Все настройки могут быть произведе- места на диске. Кстати, в первое вре- то есть обычная установка OpenBSD.
ны стандартным способом из команд- мя версия 4.2 была доступна толь- Поэтому опыт в инсталляции этой сис-
ной строки. Начиная с версии 4.0b по-
явился веб-интерфейс, написанный
на PHP. Использование gettext позво-
ляет легко перевести его на другие
языки. Хотя в настоящее время их не-
много, доступны только английский,
испанский и турецкий варианты. Кро-
ме базовых сетевых установок, с его
помощью можно настроить правила
пакетного фильтра и сервисов, вхо-
дящих в комплект, производить мо-
ниторинг основных системных пара-
метров и загрузки сети и многое дру-
гое. Плюс при помощи веб-интерфей-
са можно получить доступ к man-стра-
ницам и другой документации.
Некоторые возможности (VPN,
VLAN, CARP, SNMP) пока настраива-
ются только из командной строки. Воз-
можность их конфигурирования через
веб-интерфейс планируется добавить
уже в следующих релизах. Кроме это-
го, в планах разработчиков добавле- Рисунок 2. Окно ComixWall Administration Interface

№8, август 2008 27


администрирование
Welcome to the ComixWall install program.

Unified Threat Management нента: межсетевой экран, антивирус и сис-
Proceed with install? [no] y
Термин Unified Threat Management (UTM, тему обнаружения и предотвращения атак.
Объединенный контроль угроз) введен Сегодня концепция UTM рассматривается Скрипт поначалу запросит синхро-
Чарльзом Колодги (Charles Kolodgy) из ана- несколько шире и предлагает для защиты низировать время с NTP-сервером:
литической компании IDC (International Data сети вместо отдельных систем использо-
Do you want to sync datetime with
Corporation) в документе «Worldwide Threat вать комплексное устройство, которое со- a Time Server? [no]
Management Security Appliances 2004-2008 четает в себе функции многих решений.
Forecast and 2003 Vendor Shares: The Rise Кроме межсетевого экрана, UTM включа- Затем указать расположение па-
of the Unified Threat Management Security ет антивирус, систему обнаружения/предо- кетов и название привода компакт-
Appliance», опубликованном в сентябре твращения атак, контентный фильтр веб- дисков:
2004 года. В нем предлагалось интегриро- страниц и антиспам. Все это должно управ-
Let's install the packages!
вать в устройство защиты сети три компо- ляться через единый интерфейс. Location of packages?
(cd disk ftp http nfs or 'done') [cd]
Available CD-ROMs are: cd0.
темы лишним не будет. В крайнем слу- версии 4.1 до 4.2. В документации реко- Which one contains the install media?
чае следует почитать документы [3, 4], мендуется создать 5 разделов как ми- (or 'done') [cd0]
в которых все подробно расписано. нимум таких размеров: / – 181 Мб, Pathname to the packages?
(or 'done') [packages]
Конечно, это несколько портит первое /home – 2 Кб, /tmp – 10 Кб, (да, имен-
впечатление от ComixWall, ведь не каж- но Кб) /usr и /var по 230 Мб. Плюс раз- Если диск был нормально обнару-
дый пользователь из SOHO, на кото- дел подкачки. Не рекомендуется про- жен при установке системы, то во всех
рого ориентирован этот дистрибутив, пускать сетевые (да и другие) настрой- случаях достаточно нажимать <Enter>.
сможет или захочет устанавливать ки во время установки системы, хотя После чего будет выведен список па-
систему таким образом. Например, затем можно к ним вернуться. кетов. Все пакеты отмечены к установ-
в том же pfSense [5] весь процесс инс- По окончании установки систе- ке (см. рис. 1), отказываться от како-
талляции максимально автоматизиро- мы запустится установочный скрипт го-либо обычно смысла нет, поэтому
ван, и справиться с ним может человек ComixWall – install.site или upgrade.site, опять нажимаем <Enter>. Повторно
без особой подготовки, не боящийся в зависимости от выбранного режи- подтверждаем свое намерение уста-
несколько раз нажать Next. Предусмот- ма. Для продолжения установки вво- новить пакеты:
рено обновление установленной ранее дим «y».
Ready to install packages? [yes]

После установки пакетов, запустит-


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

Which is LAN interface?


Options:
1) pcn0
2) pcn1
Type 'done' to exit
Selection? (#/done) [1]

Отмечаем нужный цифрой и анало-


гично поступаем для WAN. Если все на-
стройки верны, то на запрос:
Configuration complete!
You can restart or type 'done' to exit.
Choose configuration method:
Options:
1) Automatic
2) Interactive
Type 'done' to exit
Selection? (#/done) [1] done

вводим «done». Если нажать <Enter>,


Рисунок 3. Статистика работы pf весь процесс пост-инсталляционной

28
администрирование
настройки повторяется сначала. Про-
читав поздравления по окончании ус-
тановки, перезагружаем систему.

Веб-интерфейс
По умолчанию в системе заведено
две учетных записи, имеющих дос-
туп через веб-интерфейс: admin и user.
Пароль в обоих случаях одинаков –
wwwcomix. Пользователь с учетной
записью user получает доступ толь-
ко к статистике, ее может использо-
вать начальство для контроля. Доступ
из WAN блокируется правилом pf, по-
этому зайти можно только из LAN. Ес-
ли набрать адрес локального интер-
фейса, то в процессе подключения
встроенный DNS-сервер выдаст имя
узла. Работа осуществляется по про-
токолу HTTPS. Причем есть одна осо-
бенность. Если набрать http://lan_ip_
adress, то клиент будет перенаправлен
на https://hostname, но вот подключе-
ние почему-то блокируется. Хотя в до- Рисунок 4. Редактирование правил pf
кументации сказано, что это должно
срабатывать. Поэтому вариант толь- ретным модулем, входящим в состав в первом окне, которое появится пос-
ко один – https://lan_ip_adress. Далее системы (см. рис. 2). Последнее ме- ле регистрации в системе (см. рис. 2).
принимаем сертификат и регистриру- ню Information содержит ссылки на до- Правила pf по умолчанию разрешают
емся в системе. кументацию, man-страницы и ссылки работу по основным протоколам (веб,
Если по удобс тву ус танов- на сайты связанных проектов. Под ос- ftp, почтовый) из внутренней сети, по-
ки ComixWall проигрывает тому же новным меню находится небольшая этому ComixWall готов к работе сразу
pfSense, то по возможностям веб-ин- панель, в которой выводятся показа- после установки.
терфейса (ComixWall Administration ния температурных сенсоров (если
Interface) он выходит далеко вперед. они есть). После выбора пункта в ос- Заключение
Я считаю, это одна из сильных сторон новном меню, вверху страницы, бу- На сегодняшний день ComixWall не вы-
этого дистрибутива. Еще одна важная дет доступно дополнительное меню, глядит простым в освоении решением
особенность веб-интерфейса – отсутс- соответствующее выбранному моду- и вряд ли подойдет новичкам. Но на-
твие промежуточных файлов с мета- лю. Для каждого пункта они отлича- личие множества предустановленных
данными, которые часто используют- ются, но обычно присутствует пункт сервисов и веб-интерфейса, упроща-
ся в подобных решениях для генера- Info, в котором можно получить об- ющего их настройку, будет оценено
ции окончательных конфигурационных щую информацию, Graphs – графики, опытными администраторами, кото-
файлов. Поэтому можно без проблем Logs – журналы, Configs – настрой- рым требуется удобная, понятная, бе-
производить параллельную настрой- ки. Для PF, например, есть еще пункт зопасная, многофункциональная и лег-
ку, как в командной строке, так и че- Statistic (см. рис. 3), в котором нагляд- ко обновляемая система, при помощи
рез веб-интерфейс. но показана статистика работы пакет- которой можно быстро развернуть за-
Даже несмотря на наличие большо- ного фильтра и Rules – настройка пра- щитный бастион.
го количества функций, все настрой- вил. Редактирование любого парамет-
ки находятся именно там, где ожида- ра для человека, представляющего ко- 1. Сай т проек та ComixWall – ht tp://
ешь их увидеть. В 96-страничном ру- нечный результат, не выглядит слож- comixwall.org.
ководстве установке посвящено всего ным (см. рис. 4). Доступны подсказки, 2. Страница проекта на Google Code –
10 страниц (плюс ссылка на докумен- различные меню и списки предлагают http://code.google.com/p/comixwall.
тацию OpenBSD) все остальное отно- предустановленные значения. В ана- 3. OpenBSD 4.3 Installation Guide – http://
сится к работе с веб-интерфейсом, по- лизе журналов поможет система филь- openbsd.org/faq/faq4.html.
этому рассказать о его возможностях тров. Для графиков можно выбрать 4. Ус тан о в ка OpenBSD 4. 2 – ht tp: //
на странице журнала невозможно. временной промежуток и вид. www.lissyara.su/?id=1589.
Зрительно интерфейс разбит на три По умолчанию все дополнитель- 5. Яремчук С. Дистрибутив для создания
части. Слева находится основное ме- ные сервисы, кроме антиспам-филь- межсетевого экрана pfSense. //Сис-
ню настроек, состоящее из 17 пунк- тра для входящих сообщений, включе- темный администратор, № 2, 2008 г. –
тов отвечающих за работу с конк- ны, о чем будет выведена информация C. 8‑21.

№8, август 2008 29


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

История одной установки Linux


на ноутбуке

Павел Закляков
Установка Linux на ноутбук проходила с трудом, сначала дистрибутив не хотел
грузиться, потом Wi-Fi-адаптер не был подхвачен автоматически. Упорное желание
установить беспроводную связь в конечном итоге привело к положительному результату.
В статье рассказывается одна история такой установки с подробным описанием всех
проделанных шагов.

Р
егулярно общаясь с добрым де- пора заменить чем-то современным чему не противоречит. Проблема в том,
сятком людей, разбирающихся 256 Мб памяти, диск в 20 Гб и обычный что покупателям не позволяют сделать
в технике, я заметил, что ни у од- СD-ROM, даже непишущий. честный выбор, что покупать. Если из-
ного из них нет ноутбука с Linux, хо- начально люди, владеющие компью-
тя практически все время от времени Покупка ноутбука терами, вызывали уважение, так как
имеют дело с этой операционной сис- Найти подходящий ноутбук на замену им надо было не только этот компью-
темой, а кто-то только и занимается её оказалось непросто. Все люди по сво- тер купить вместе с программами, но и
администрированием. Лишь у двух че- ей природе ленивы, и я в том числе. суметь его настроить, то сейчас такого
ловек на компьютере имелся эмулятор Проблема в том, что производители глубокого уважения нет, так как поль-
VMware, под которым у них был образ коммерческих операционных систем зователь может совсем не знать, как
Linux-машины на всякий случай. делают на этой слабости деньги, пред- устроено то, чем он пользуется.
Вполне возможно, что использо- лагая компьютеры с уже установлен- Цель моей статьи – показать, что
вание SSH-клиента PuTTY и подклю- ной системой. Так как большая часть не тот круче, у кого ноутбук дороже,
чение к Интернету позволяют им ре- покупателей не специалисты, то их ус- так как я могу себе позволить купить
шать все свои проблемы без установки траивает такая практика, когда цена любой продающийся, в пределах ра-
этой операционной системы на ноутбу- за операционную систему включает- зумного, как и добрая половина ад-
ках, а с графической средой X-Window ся в общую стоимость покупки, а сами министраторов, а тот, кто в него душу
они просто не работают. Также интере- покупатели избегают возможных проб- вложил и что-то сделал сам.
сен факт, что большая часть неплохих лем. Но мы-то знаем, что бесплатный А чтобы привлечь читателей к дейс-
специалистов, использующих Linux на сыр бывает в мышеловке. У всех одна твию, я постараюсь описать все те про-
своих настольных системах, ничего не система, не надо переучиваться, на- блемы, с которыми столкнулся, и ре-
знают о настройке Wi-Fi. лицо только польза. А в том‑то и дело, шить их с точки зрения наименьшего
Именно эти факты и сподвигли ме- что господа маркетологи отучают лю- сопротивления. Вполне возможно, что
ня написать статью. В отличие от сво- дей думать. Нет, это не значит, что они у вас будет другая модель или дистри-
их «собратьев-админов», пытающихся плохие, они-то как раз очень хорошо бутив, но общие принципы и подходы
сидеть на двух стульях, то есть исполь- справляются со своей работой, думая могут оказаться полезными и вам.
зовать две операционные системы вы- за других. Благодаря их работе в обще- У каждого на примете будет своя
шеописанным образом, я решил уйти стве поощряется другая система цен- модель, мне же подходящую выбирать
от этой порочной практики. ностей, что, на мой взгляд, неправиль- долго не пришлось. Число продающих-
Ноутбук был у меня и ранее, но, ког- но. «Думать по жизни» становится уде- ся моделей без операционной системы
да в начале лета я не смог настроить лом немногих и не модно. На что толь- Windows и одновременно имеющихся
нужную мне программу, так как готово- ко не идёт капитализм ради получения в наличии было не так велико, поэто-
го пакета не было, а исходники не хоте- сверхприбыли! По законам РФ, как и му мой выбор пал на Asus X51RL с про-
ли компилироваться, в голове прозву- с точки зрения здравой логики запре- цессором M540 1,86 ГГц, 2048 Мб па-
чала фраза моей знакомой «Нет шага тить их работу нельзя, как и нельзя ос- мяти, жёстким диском 160 Гб, видео-
вперёд, значит, есть шаг назад». От- тановить прогресс в целом. Деятель- картой ATI Radeon Xpress 1100, при-
ступать я не привык, поэтому, оценив ность фирмы, предлагающей купить водом DVD-SuperMulti DL, Wi-Fi-адап-
свои усилия и пожелания, я решил, что что-то (например, тот же ноутбук), ни- тером (Atheros ARBXB63 (AR5BXB63,

30
администрирование
AR5007EG), встроенным считывате- Что интересно, подоб-
лем SD-карт и установленной систе- ное решение помогает и не-
мой FreeDOS. которым настольным систе-
мам, где используются жёс-
Выбор дистрибутива ткие диски SATA.
Мною был выбран дистрибутив Linux В дальнейшем установ-
Fedora 8, как давно уже использую- ка прошла без проблем. Ав-
щийся и проверенный временем, об- томатически была обнару-
Рисунок 1. Зависание на этапе загрузки, после
новления к нему ещё выходят и бу- жена сетевая карта, звуко- надписи «Ready.»
дут выходить, так что недавний выход вая и даже считыватель карт
Fedora 9 меня не вдохновил. SD HC заработал. Единственное, что и на большой микросхеме прочитал
не заработало, – это поддержка Wi-Fi. Atheros AR2425 (см. рис. 7).
Проблема загрузки Примечание. Если вы не не ра-
Первая проблема, с которой я столк- Проблемы с Wi-Fi диолюбитель, не очень аккуратны
нулся: вставил диск c Fedora 8, начи- На подключение Wi-Fi ушло недели две и не уверены в себе, то лучше не раз-
наю установку, запускается меню, пос- экспериментов по вечерам, но для чи- бирать ноутбук, а обойтись коман-
ле грузится ядро, подключается образ тателей этот путь будет пройден гораз- дой lspci и базой кодов оборудования,
виртуального диска, пишет «Ready.» до быстрее. Первым делом я решил уз- так как разборка может не только ли-
и виснет (см. рис. 1). нать, какой у меня стоит Wi-Fi-чипсет. шить вас гарантии, но и привести но-
Осознавая, что наступает век 64- Так как программы могут ошибаться, утбук в нерабочее состояние. Не забы-
битных процессоров с обратной сов- я решил узнать это физически, для че- вайте про статическое электричество,
местимостью, у меня закралось подоз- го перевернул ноутбук и осмотрел его заземляйтесь!
рение, что по закону подлости её как на предмет гарантийных наклеек. На- После на сайте www.atheros.com
раз и нет. Скачав и записав на диск клеек обнаружено не было, а наклей- я выяснил, что это адаптер AR5007EG
Fedora 8 (64-битная версия), я столк- ка, указывающая тип Atheros ARBXB63 [8] и фотография в описании очень
нулся с той же самой проблемой – за- (см. рис. 3), мне не помогла ничем, по- похожа на ту, что у меня. После че-
висание процесса установки на этапе этому, вооружившись отвёрткой, я ак- го я отправился по адресу проекта
распаковки ядра. Казалось бы, дело куратно отвинтил 7 винтов (см. рис. 4) MadWifi [2], так как это неплохой про-
зашло в тупик. Возвращать ноутбук и снял крышку. Под крышкой я увидел ект по поддержке беспроводных сете-
на фирму не хотелось, да и в собствен- процессор, модули памяти и модуль вых адаптеров Wi-Fi под Linux на базе
ных глазах это выглядело бы непра- Wi‑Fi (см. рис. 5). чипсетов Atheros. К сожалению, уста-
вильно. Прийти ремонтировать «же- Так как надписи на модули не смог- новка через:
лезо» по гарантии – вдруг там ошиб- ли прояснить ситуацию, я вытащил
ка, надо знать на что пожаловаться. модуль из разъёма. Обратная сто- # yum install madwifi
Желая протестировать подозритель- рона оказалась более информатив-
ное железо, порывшись у себя на сто- ной – это был AzureWave адаптер AW- не прошла, так как для madwifi нужна
ле, я обнаружил какой-то древний GE780 (см. рис. 6), но для меня этой была новая версия ядра 2.6.25.6‑27.fc8,
дистрибутив Knoppix, который возьми информации оказалось мало, поэтому а в репозитариях livna и других оно ещё
и заработай. Заодно с него проверил я снял экранирующую крышку с платы не присутствовало. Позже вышла но-
память с помощью memtest86 – сбоев
нет. Данная ситуация меня вдохнови-
ла, после чего я быстро раздобыл дист-
рибутив «Fedora 9 beta 64 bit», который
на волне удач тоже заработал и начал
ставиться, не зависая на этапе распа-
ковки ядра.
Перебирая в голове способы на-
иболее простого объединения двух ус-
тановочных дисков в один – загрузчика
и ядра с одной и всей системы с дру-
гой – и не найдя простого решения,
я и моя лень стали искать в Интернете
подобные случаи. И, надо сказать, пра-
вильно сделали – нашли выход.
Оказалось, что на сайте Red Hat
есть Bug №239585 [1], из которого ста-
ло ясно, что во время загрузки ядру на-
до передать параметр «edd=skipmbr»
(см. рис. 2). Рисунок 2. Передача параметров ядру во время загрузки

№8, август 2008 31


администрирование
во время загрузки. Когда использова- Кстати, для USB есть аналогичная
лись ядра серии 2.4.x и более ранние, команда lsusb.
то все сообщения быстро пробегали Что можно сделать, если вы не ви-
на экране, сейчас загрузка идёт тихо, дите у себя нужное устройство, но, как
даже если удалён пакет rhgb и нет гра- я, убедились, что физически оно име-
фического интерфейса. Поэтому, ес- ется? Надо попытаться его включить.
ли не предпринять какие-либо дейст- На некоторых ноутбуках есть пере-
вия, пользователи могут и не увидеть ключатель, который может физичес-
проблемы. ки отключать питание от сетевой кар-
Вторая показывает информацию ты, поэтому посмотрите, чтобы пита-
об имеющихся PCI-устройствах. За- ние имелось. Иногда механический вы-
Рисунок 3. Наклейка, указывающая
тип установленного Wi-Fi-устройства пускать эту команду лучше с ключом ключатель может быть заменён элек-
-v или -vv для большей информатив- тронным собратом в виде электрон-
вая версия 2.6.26.0-107.fc8, а у вас, чи- ности. ной схемы с кнопочкой. У меня была
тателей, может быть и ещё более све- Почему стоит начать с этих ко- как раз похожая ситуация. Более под-
жая. Процесс понятен, выходят новые манд, а не с каких-либо других? По- робно далее. Считаем, что устройс-
версии, обновления нужны всегда, та- тому, что ситуация чем-то напомина- тво включено, и поднимаемся на уро-
ким образом, мною был «открыт» ре- ет многоуровневую эталонную мо- вень выше.
сурс Rpmfind.Net Server [5]. После ска- дель взаимодействия открытых сис- Посмотрим, что нам выдаёт ядро.
чивания RPM-пакетов ядра и обнов- тем (ЭМВОС, ISO/OSI-RM) [3, стр.66], В моём случае из команды dmesg я уз-
ления его в системе вручную, коман- когда не работает сеть, начинать про- нал, что ядро при загрузке выдало сле-
дами: верять надо с самых нижних уровней, дующую ошибку:
то есть с физического уровня – есть
#rpm -Fhv kernel-2.6.....rpm ли вообще соединение? Так и тут, пер- wifi%d: unable to attach hardware:
'Hardware revision not support
вым делом надо разобраться, есть ли ed' (HAL status 13)
установка madwifi через yum, как опи- устройство (в нашем случае сетевая
сано выше, не привела к нужному ре- карта) в системе? Поддерживается ли Для того чтобы понять, что надо
зультату, после перезагрузки беспро- она ядром? делать, совсем не обязательно быть
водные сетевые интерфейсы обнару- Если устройства нет, оно не бу- программистом. Конечно, путь изуче-
жены не были. То есть либо не видны дет работать, как его ни настраивай. ния исходных кодов на 100% верный
и не обнаруживаются системой udev В моём случае я сам держал в ру- и надёжный, но все ли читатели хо-
аппаратные идентификаторы (прове- ках сетевую карту, поэтому ситуация тят и умеют программировать и раз-
рить можно командой lspci), либо они «нет устройства» может быть вызва- бираться в железе? Конечно, нет, мир
видны, но не загрузились нужные мо- на плохим контактом, что я исключаю, Linux тем и удобен, что полезные ве-
дули ядра по поддержке железа, либо либо случаем «устройство выключе- щи делают несколько умных людей,
эти модули-драйвера не смогли соз- но». Поэтому вывод lspci должен пока- а потом позволяют всем безвозмездно
дать необходимый аппаратный интер- зать, включено ли устройство, а также пользоваться их творчеством. Очень
фейс – псевдофайл в /dev, для этого информацию о нём. К моему счастью, часто бывает, что вы не одиноки в ва-
следует проверить вывод dmesg на на- адаптер у меня был обнаружен и пра- шей проблеме, поэтому поиск по сло-
личие ошибок. вильно распознан: вам, встречающимся в ошибке, приво-
Первым делом следует изучить вы- дит вас к решению проблемы.
02:00.0 Ethernet controller: Atheros
вод команд dmesg, lspci. Первая пока- Communications Inc. AR242x 802.11abg Поиск привёл меня на тот же сайт
зывает сообщения, выдаваемые ядром Wireless PCI Express Adapter (rev 01) MadWifi [2] и форум по Fedora [10],

Рисунок 4. Семь винтов, держащих крышку над отсеком


с памятью, процессором и Wi-Fi-модулем Рисунок 5. Внутренности ноутбука, слева внизу Wi‑Fi‑модуль

32
администрирование
где в разных местах обсуждались про- ной цели мне удалось узнать несколь-
блемы подключения Atheros серий ко интересных вещей, а именно...
AR5005, AR5006, AR5007.
Было найдено несколько решений Интересное
по поддержке работы адаптера: В моём ноутбуке есть индикатор Wi‑Fi,
n использовать специальную сборку который, как выяснилось, работает ав-
madwifi; тономно. Свечение индикатора мож-
n наложить patch на ядро и исполь- но включать (если при загрузке ядра
зовать драйвер ath5k; есть поддержка asus-laptop, см. вывод
n использовать NDISwrappers. dmesg) командой:

Самым простым путём оказал- echo "1">/sys/devices/platform/ ↵


asus-laptop/wlan
ся первый, так как перекомпилиро-
вать ядро мне не хотелось, а запуск и выключать:
Windows-драйверов под NDISwrappers,
судя по сообщениям, не работал echo "0">/sys/devices/platform/ ↵
asus-laptop/wlan Рисунок 6. PCI Express MiniCard
под 64‑битной версией, и перестав- AzureWave AW-GE780 (AR5BXB63)
лять систему на 32-битную сборку мне Как ни странно, горит лампочка
тоже не хотелось. Изучая сообщения или нет, на работе никак не отража- 2. Проект MadWifi. Подключение беспро-
на форумах, я выяснил, что для рабо- ется. Задавшись вопросом, а как сде- водных сетевых адаптеров под Linux –
ты люди скачивали не то, что пред- лать управление лампочками бо- http://madwifi.org.
лагается по умолчанию, а специаль- лее удобным, я нашёл в сети проект 3. Компьютерные сети. Принципы, тех-
ные сборки, в которые для моего не- «Lapsus – Linux on laptops» [6] для но- нологии, протоколы. /В.Г. Олифер, Н.А.
везучего сетевого адаптера внесены утбуков Asus. Небольшая программа, Олифер – СПб: Питер, 2001 г.
изменения. Так я попал на страницу позволяющая в графическом режиме 4. MadWifi Archive of special-purpose
со специальными сборками [4]. Путём управлять индикаторами. Её недоста- snapshots – http://snapshots.madwifi.org/
проб и ошибок я выяснил, что для мо- ток в том, что пока она работает толь- special.
его ноутбука нужна версия madwifi-hal- ко под KDE. 5. Сайт, где можно найти различные RPM
0.10.5.6-r3698-20080604. (В процессе Аналогичные программы есть и под пакеты – http://rpmfind.net.
написания статьи коллеги сообщили, другие ноутбуки. Например, для Acer 6. Lapsus – Linux on laptops – http://lapsus.
что к их адаптеру AR5006EG в ASUS существует поддержка специальных berlios.de.
Eee PC подходит версия madwifi- дополнительных кнопок [8]. 7. Linux on Laptops – http://www.linux-laptop.
ng‑r2756+ar5007.) net.
Поэтому мы выбираем или уга- Заключение 8. Acer Hotkey driver for Linux – http://www.
дываем, скачиваем, распаковываем Хочется верить, что читатель нашёл по- cakey.de/acerhk.
нужную версию и запускаем две ко- лезное в статье либо задумался об ус- 9. О п и с а н и е A R 5 0 07 EG (A R 24 2 5) –
манды: тановке Linux на ноутбук. Если так, http://www.atheros.com/pt /bulletins/
то ещё один ресурс может оказаться AR5007EGBulletin.pdf.
# make полезным [7]. 10. О б с у ж д е н и е н а ф о ру м е At he ros
# make install
В статье оказались незатронуты- A R 5 0 07EG /A R 5 BX B 6 3 – ht t p: //
которые решили мои проблемы. ми вопросы настройки ACPI, как и мно- forums.fedoraforum.org/showthread.
После перезагружаемся или даём гие другие интересные моменты, каса- php?t=174186.
команду: ющиеся поддержки различных «горя- 11. Сайт проекта NDISwrapper – http://
чих клавиш» и других вещей. ndiswrapper.sourceforge.net.
# depmod -a Пересечение мира Linux
и ноутбуков безгранично.
и выключаем-включаем адаптер, дол- Считаю, что начало проло-
жен появиться интерфейс wlan0, пос- жено, а остальное за вами,
ле чего станет возможным его на- читателями и будущими ав-
строить с помощью iwconfig. Пробле- торами! Есть мысли? – пи-
ма решена. шите в редакцию, будет по-
Если вы сразу установили компи- вод открыть раздел «Linux
лятор gcc и заголовки ядра в процес- на ноутбуке».
се установки, то первый путь наибо-
лее простой, но не всегда удачный, 1. Bugzilla Bug 239585: F8 CD/
как может показаться, так как выбран- DVD hangs with message
ная сборка может у вас не заработать. «Ready» – https://bugzilla.
Несмотря на это, я выбрал этот путь, redhat.com/show_bug.
Рисунок 7. Микросхема Atheros AR2425 на плате
так как в процессе достижения конеч- cgi?id=239585. Wi-Fi-модуля

№8, август 2008 33


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

Jabberd2 – простой и нетребовательный


к ресурсам XMPP-сервер

Михаил Кондрин
Рассмотрим конфигурирование, архитектуру и первоначальную настройку jabberd2.
История и предыстория кальных университетских (в том же Сам протокол Jabber начал разра-
Проект Athena, запущенный в Масса- MIT, например) сетях продолжается батываться в конце 90-х годов Джере-
чусетском технологическом институте вплоть до настоящего времени. Глав- ми Миллером (Jeremie Miller), в качест-
в середине 80-х годов, имевший сво- ным фактором, работающим в поль- ве альтернативы закрытого протокола
ей целью создание распределенно- зу Zephyr, была его тесная интегра- ICQ. В отличие от централизованного
го вычислительного окружения, ока- ция с другой разработкой, возникшей сервиса ICQ Jabber представляет со-
зал сильное воздействие на развитие в рамках проекта Athena, – системой бой распределенную систему, чем-то
компьютерных технологий того вре- удаленной аутентификации пользова- напоминающую электронную почту.
мени. Фактически, в эпоху мэйнфрей- телей Kerberos. Поскольку Zephyr рабо- То есть на сервере предприятия мож-
мов и терминалов, это был первый при- тает в закрытом окружении (универси- но установить свой собственный сер-
мер «сетевого окружения» в том виде, тете или предприятии), с определен- вер JABBER, так что локальные поль-
как его представляют сейчас. Среди ным кругом пользователей (сотрудни- зователи, подключаясь к нему, могут
прочего авторам проекта в процессе ки и/или студенты), особенно в том слу- обмениваться сообщениями как внут-
работы пришлось решить и такую за- чае, когда их учетные записи и так уже ри предприятия, так и с внешним ми-
дачу, как замены утилиты talk, которая хранятся в базе данных Kerberos, то та- ром, в смысле – другими серверами
позволяла передавать короткие сооб- кая система предоставляет, с одной JABBER. Отличительной особеннос-
щения между терминалами, подклю- стороны, большее удобство исполь- тью протокола является его расширя-
ченными к рабочей станции. По мере зования сервиса, за счёт развертыва- емость и использование XML-форма-
разработки этой проблемы возникла ния single-sign-on, а с другой, позволя- та для передачи данных. Поскольку
идея создания протокола Zephyr, кото- ет однозначно устанавливать идентич- протокол возник сравнительно позд-
рый одновременно решал бы две за- ность пользователей. но, то в нём, по крайней мере во вто-
дачи – обмен сообщениями и инфор- Поскольку протокол Zephyr оста- рой редакции 2003 года, предусмотре-
мирование о наличии нужного пользо- вался практически замороженным на поддержка прослойки SASL (Simple
вателя за компьютером. Таким обра- довольно долгое время, то в нем по- Authentication Security Layer), средс-
зом, этот протокол оказался не толь- прежнему использовался старый ва- твами которой к нему можно подклю-
ко одним из первых (вместе с IRC – риант протокола Kerberos4, от кото- чать различные модули аутентифи-
Internet Relay Chat) протоколов мгно- рого в последнее время начали отка- кации, в том числе и Kerberos. Специ-
венного обмена сообщениями (Instant зываться, что заставляет пользовате- фикации протокола состоят из двух
Messaging/IM), но и во многом воспро- лей и администраторов искать альтер- RFC 3920-3921, которые описыва-
изводил архитектуру, впоследствии нативные системы обмена сообщени- ют ядро протокола (Core), и доволь-
использованную в протоколе Jabber ями. (Хотя, по слухам, в Университе- но обширного числа так называемых
(XMPP – eXtensible Message Passing те штата Айова используется вариант XEP (XMPP Extension Protocols), кото-
and Presence Protocol). Zephyr с поддержкой Kerberos5, но ис- рые определяют расширения базово-
Хотя Zephyr было далеко до попу- ходный код этой системы в свободном го протокола. В настоящее время су-
лярности, сравнимой с популярностью доступе я найти так и не смог.) Наибо- ществует несколько реализаций сер-
появившегося гораздо позже прото- лее подходящим, в смысле возможнос- веров Jabber, однако пока что ни один
кола ICQ, но сам по себе он оказался ти его конфигурирования, таким обра- из них не поддерживает весь набор
довольно удачным, и его использова- зом, чтобы максимально напоминать XEP. Во-первых, это ejabber, напи-
ние в немодифицированном виде в ло- Zephyr, явлется Jabber/XMPP. санный на языке erlang и популярный

34
администрирование
в России из-за своей русской коман-
ды разработчиков, во‑вторых, напи- Небольшое отступление тимости с этим механизмом, на самом деле,
санный на Java и рассчитанный на ис- По умолчанию jabberd2 использует GNU- это решение было вызвано непониманием
пользование в корпоративных сетях версию библиотеки SASL – gsasl[5]. Это ре- работы SASL с так называемым security
OpenFire, а также два jabberd – 1.4.x шение было принято основным руководи- layers. Грубо говоря, security layer позволя-
и 2.x, оба написанных на С. Несмот- телем проекта Томашем Стерной (Tomasz ют шифровать траффик между клиентом
ря на сходство названий, jabberd 1.4.x Sterna) примерно год назад. На мой взгляд, и сервером, если они поддерживают опре-
и jabberd2 – это два независимых про- это было серьезной ошибкой. Помимо то- деленные механизмы SASL. В настоящее
екта, которые развивались парал- го, что оно спровоцировало уход из проек- время gsasl, в отличие от cyrus-sasl, не име-
лельно первоначальной справочной та Саймона Уилкинсона (Simon Wilkinson), ет такой функциональности, так что в дан-
реализации (reference implementation) который достоин отдельного упомина- ном случае мы видим просто один из при-
сервера jabberd, выполненной самим ния за включение в jabberd2 поддержки меров лечения головной боли радикаль-
Джереми Миллером. GSSAPI, а также тестирование и усовер- ными средствами.
Хотя каждый из этих серверов шенствование jabber-клиентов для совмес-
имеет свои достоинства, но в данной
статье будет рассмотрен именно jabberd2, по причине сво- комендуется использовать последние версии Heimdal, на-
ей нетребовательности к ресурсам, относительной про- пример 1.1, поскольку в более ранних версиях была допу-
стоты настройки, полной поддержки SASL, а также воз- щена досадная ошибка взаимодействия с SASL, которая
можности использования его без необходимости установ- делала аутентификацию в jabber невозможной.
ки специализированных серверов баз данных, что также После развертывания пакета с исходными текстами
в значительной степени упрощает его администрирова- jabberd2 его нужно сконфигурировать, запустив в его до-
ние. В истории самого проекта было несколько сложных машнем каталоге команду:
моментов, когда, например, в начале 2005 года был пол-
ностью утрачен репозиторий исходных кодов, которые за- ./configure --prefix=/usr --sysconfdir=/etc/jabberd ↵
--enable-db --with-sasl=cyrus --enable-debug
тем пришлось восстанавливать с нуля. В конце того же го-
да он претерпел полное обновление команды разработчи- В этом случае активируется использование хранили-
ков. Однако в настоящий момент проект динамично разви- ща баз данных BerkeleyDB, включается поддержка cyrus-
вается, и к самому серьезному его недостатку можно от- sasl и предусматривается вывод отладочной информации.
нести практически полное отсутствие документации, а от- Однако перед тем как выполнить уже привычные команды
дельные руководства, встречающиеся в сети, уже устаре- make и maker install, необходимо совершить еще одно дейст-
ли и иногда даже противоречат тому, что имеется в насто- вие, чтобы активировать поддержку cyrus-sasl, а именно за-
ящее время. Частично данная статья и имеет своей целью комментировать одну строку с указаниями компилятору:
восполнить этот пробел.
Собственно, после этого довольно долгого вступления sed -ir 's/^#define fnmatch/\/\/#define fnmatch/' config.h
sed -ir 's/^#error Cyrus SASL/\/\/#error Cyrus SASL/' ↵
можно сформулировать наше техническое задание к сер- sx/cyrus_sasl.c
веру Jabber, реализация которого и будет описана в дан-
ной статье. В первую очередь мы потребуем использование После чего сборка и установка программного пакета долж-
учетных записей пользователей, хранящихся в базе дан- ны пройти без помех.
ных Kerberos, и наличия как обычного текстового парольно- Как уже говорилось, функциональность, связанная
го входа, так и с помощью сертификатов Kerberos, а также с поддержкой в jabberd2 многопользовательских конферен-
хранение всех авторизационных и дополнительных данных, ций (Multi User/MU-confernce), вынесена в отдельный проект.
необходимых для работы сервера, в локальных дисковых Исходный код этого компонента можно получить со стра-
базах данных (для управления которыми будет использо- ницы [6], распаковать, скомпилировать командой make
вана библиотека BerkeleyDB). Также дополнительным тре- и для единообразия переместить полученный в итоге ис-
бованием будет поддержка сервером многопользователь- полняемый файл mu-conference в директорию, где лежат ос-
ских конференций, которая для jabberd2 реализована в ви- тальные компоненты jabberd2 (в нашем случае /usr/bin). Воп-
де отдельного проекта. реки сведениям различных руководств, которые можно най-
ти в Интернете, специально компилировать так называемую
Кoмпиляция и сборка JCR, среду запуска компонентов jabberd2 не нужно, для пос-
Перед сборкой jabberd2, который можно скачать с их офи- ледней версии mu-conference (0.7) она не требуется.
циальной страницы [1], следует убедиться, что у вас в систе- Собственно говоря, после этого можно приступать
ме установлены библиотеки cyrus-sasl [2] и настроен сектор к конфигурированию jabberd2, но вначале стоит взглянуть
Kerberos, например, с помощью Heimdal Kerberos [3]. Если на то, что же мы в итоге получили, и на внутреннее уст-
нет, то вам лучше начать с их настройки, которая описана ройство jabberd2.
в статьях [4], поскольку дальнейшие действия будут сильно
зависеть от работоспособности этих двух библиотек. Также Конфигурирование и архитектура
новые версии jabberd2 требуют наличия системной библио- jabberd2
теки glibc версии не ниже 2.3.6, из-за неправильной реали- При создании jabberd2 авторы стремились сделать его мак-
зации функции fnmatch в более ранних версиях. Также ре- симально модульным и расширяемым, с тем чтобы заяв-

№8, август 2008 35


администрирование
</local>
<aci>
<acl type='all'>
<user>jabberd</user>
</acl>
</aci>
</router>

Он состоит из блока с идентифика-


тором процесса (id), ссылкой на файл
с Process ID запущенного процес-
са (pidfile) и указанием использовать
syslog для журналирования событий
(log). Это практически стандартная
Рисунок 1. Структрура jabberd2 часть, которая с очевидными измене-
ниями будет повторяться во всех ос-
ленная в названии протокола расширяемость (eXtensible) тальных файлах. Следующие две части более интересны.
присутствовала и в его серверной реализации. В результа- Теги ip и port блока local привязывают процесс к локаль-
те jabberd2 состоит из нескольких процессов, взаимодейс- ному интерфейсу (нам не нужно, чтобы router был досту-
твующих между собой через сетевой интерфейс. пен по сети) и принятому по умолчанию разработчиками
С одной стороны, такая архитектура позволяет легко до- jabberd2 порту 5347 для обмена сообщениями между ком-
бавлять новые компоненты, как, например, MU-Conference, понентами jabberd2.
реализующую спецификации XEP-0030. Для подключения к rоuter всем остальным компонен-
С другой, позволяет системному администратору, по- там необходимо пройти авторизацию (это не имеет ничего
разному распределяя компоненты на нескольких серве- общего с авторизацией реальных пользователей или сис-
рах, добиваться либо большей производительности систе- темного пользователя, под которым будет запущен сервер,
мы, либо же поддерживать на одном компьютере несколь- о чём речь пойдет дальше). Причем для собственных ком-
ко «виртуальных» хостов [7]. понентов jabberd2 применимы имя пользователя и пароль,
Перейдем к настройке сервера jabberd2, попутно разби- указанные в блоке user, а сторонними компонентами (к чис-
раясь с функциями каждого из компонентов. Все компонен- лу которых относится MU-Conference) используется пароль,
ты настраиваются с помощью своего собственного конфи- вынесенный в отдельный блок secret.
гурационного файла. Поскольку протокол XMPP широко ис- При настройке своего сервера имеет смысл, по крайней
пользует формат XML, то нет ничего удивительного, что раз- мере, сменить все эти пароли. В принципе можно настро-
работчики jabberd2 выбрали для конфигурационных фай- ить сервер таким образом, чтобы каждый из компонентов
лов тотже самый формат. В качестве образца для создания имел доступ только к определенной части функциональнос-
собственных конфигурационных файлов можно использо- ти, просто дав каждому из компонентов свое собственное
вать файлы с расширением xml.dist, входящие в состав па- имя и отрегулировав права доступа с разделе acl блока aci.
кета jabberd2, тем более что изучение комментариев к ним Однако мы поступим проще, дав все права единственному
дает полезную (пусть и скудную) информацию о самой про- общему для всех компонентов пользователю jabberd.
грамме. Однако для простоты можно воспользоваться при- Единственная задача компонента resolver состоит в раз-
водимыми ниже «минимальными» файлами, где большинс- решении в доменной системе имен SRV-записей, запрошен-
тво параметров не указано, но которые, тем не менее, поз- ных компонентом s2s и соответствующих внешним jabber-
воляют получить вполне работоспособный сервер. По умол- серверам. SRV-записи вида _xmpp-server._tcp или их бо-
чанию используются конфигурационные файлы из дирек- лее старый вариант _jabber._tcp играют примерно ту же
тории /etc/jabberd с базовым именем, совпадающим с на- роль, что и MX-записи для электронной почты, т.е. позво-
званием компонента, и расширением xml. ляют по доменной части имени пользователя (JID) получать
Начнем с центрального компонента, router, который ра- адрес jabber-сервера (или серверов), отвечающих за об-
ботает в качестве диспетчера, координирующего работу служивание этого домена. Позже мы ещё вернемся к на-
всех компонентов. Его конфигурационный файл router.xml стройке DNS, пока же приведу только конфигурационный
выглядит следующим образом: файл resolver.xml:

<router> <resolver>
<id>router</id> <id>resolver</id>
<pidfile>/var/jabberd/pid/router.pid</pidfile> <pidfile>/var/jabberd/pid/resolver.pid</pidfile>
<log type='syslog'> <log type='syslog'>
<ident>jabberd/router</ident> <ident>jabberd/resolver</ident>
<facility>local3</facility> <facility>local3</facility>
</log> </log>
<local> <router>
<ip>127.0.0.1</ip> <ip>127.0.0.1</ip>
<port>5347</port> <port>5347</port>
<user> <user>jabberd</user>
<name>jabberd</name> <pass>change-me</pass>
<secret>change-me</secret> </router>
</user> <lookup>
<secret>change-me-too</secret> <srv>_xmpp-server._tcp</srv>

36
администрирование
<srv>_jabber._tcp</srv> <path>/usr/lib/jabberd</path>
</lookup> <module>db</module>
</resolver> <db>
<path>/var/jabberd/db</path>
</db>
Блок router указывает адрес и порт, который прослуши- <mechanisms>
вает router, а также имя пользователя и пароль, необходи- <traditional/>
<sasl>
мые для подключения к нему (те же самые, что и в секции <plain/>
local файла router.xml). <gssapi/>
</sasl>
Вообще-то говоря, протокол XMPP состоит из двух пото- </mechanisms>
ков данных, привязанных к разным сетевым портам: один </authreg>
</c2s>
между клиентом и сервером, а второй между двумя серве-
рами. Как раз за обработку второго потока данных отвеча-
ет компонент s2s. Настройка его достаточно проста: Обратите внимание на тег id в блоке local. В качестве его
значения необходимо указывать не имя вашего jabber-сер-
<s2s> вера, а доменное имя, иначе у вас гарантированно возник-
<id>s2s</id>
<pidfile>/var/jabberd/pid/s2s.pid</pidfile> нут проблемы с аутентификацией пользователей. Факти-
<log type='syslog'> чески то же самое имя, набранное большими буквами, мож-
<ident>jabberd/s2s</ident>
<facility>local3</facility> но указать в атрибуте realm, оставленного для тех редких
</log> случаев, когда имя домена и сектора (SASL или Kerberos)
<router>
<ip>127.0.0.1</ip> не совпадают. Заметьте также, что атрибут register-enable,
<port>5347</port> обычно рекомендуемый в руководствах, отсутствует. Собст-
<user>jabberd</user>
<pass>change-me</pass> венно говоря, это и понятно, мы не собираемся делать об-
</router> щедоступный jabber-сервер, а напротив, собираемся раз-
<local>
<ip>0.0.0.0</ip> решить к нему доступ только тем, кто уже зарегистрирован
<port>5269</port> в базе данных Kerberos. Однако это условие будет необхо-
<resolver>resolver</resolver>
</local> димым, но ещё не достаточным для подключения к серве-
</s2s> ру jabberd2. Дополнительным условием будет присутствие
соответствующей записи для пользователя в собственной
Блок local, также как и в случае router, определяет при- базе данных сервера jabberd2 – authreg. Собственно гово-
вязку к сетевому интерфейсу и порту. В данном случае ря, в данном случае происходит дублирование имен поль-
от компонента требуется, чтобы доступ к нему был открыт зователей из Kerberos, но внутреннее устройство серве-
извне, поэтому ip (0.0.0.0) указывает, что компонент исполь- ра jabberd2 не позволяет избежать этого. Как уже говори-
зует все доступные интерфейсы и привязян к стандартно- лось, чтобы не поднимать дополнительный сервер баз дан-
му порту 5269 (jabber-server). Также в этой секции указан ных, хранение всех данных jabberd2 будет производиться
идентификатор компонента resolver. в файловых базах BerkeleyDB (тэг module). В блоке db ука-
Пока что вся настройка не требует существенной прав- зан путь, где будут располагаться эти базы данных. Спи-
ки конфигурационных файлов, практически в каждом слу- сок поддерживаемых механизмов аутентификации собран
чае можно было бы обойтись минимальной переделкой в блоке mechanisms: там указаны как простые (traditional,
xml.dist из состава jabberd2. Более серьезная правка тре- осуществляемые со старыми спецификациями протокола
буется для двух других файлов, отвечающих стандартным jabber 1998 года, в нашем случае список пуст), так и более
компонентам jabberd2. новые механизмы SASL (sasl). В последнем случае, в соот-
За второй поток данных (между клиентом и сервером), ветствии с техническим заданием, разрешено использовать
а также аутентификацию реальных пользователей отвеча- как открытые текстовые пароли (plain), так и аутентифика-
ет компонент c2s. Так же, как и для компонента s2s, дос- цию средствами инфраструктуры Kerberos (gssapi).
туп к нему должен быть открыт по сети через порт 5222 Данные, которые получены компонентом c2s, поступа-
(jabber-client): ют на обработку модулю sm (Session Manager). Он имеет
наиболее объемный конфигурационный файл, поскольку
<c2s> для каждого из событий необходимо указать последова-
<id>c2s</id>
<pidfile>/var/jabberd/pid/c2s.pid</pidfile> тельность обработки полученных пакетов, в виде цепочки
<log type='syslog'> (chain) подгружаемых модулей. В приведенном ниже лис-
<ident>jabberd/c2s</ident>
<facility>local3</facility> тинге большая часть блока modules опущена, его можно
</log> будет восстановить из примеров, содержащихся в паке-
<router>
<ip>127.0.0.1</ip> те jabberd2.
<port>5347</port>
<user>jabberd</user> <sm>
<pass>change-me</pass> <id>myrealm.ru</id>
</router> <pidfile>/var/jabberd/pid/sm.pid</pidfile>
<local> <router>
<id realm='MYREALM.RU'>myrealm.ru</id> <ip>127.0.0.1</ip>
<ip>0.0.0.0</ip> <port>5347</port>
<port>5222</port> <user>jabberd</user>
</local> <pass>change-me</pass>
<authreg> </router>

№8, август 2008 37


администрирование
<log type='syslog'> <jcr>
<ident>jabberd/sm</ident> <name>conference.myrealm.ru</name>
<facility>local3</facility> <host>conference.myrealm.ru</host>
</log> <ip>127.0.0.1</ip>
<storage> <port>5347</port>
<path>/usr/lib/jabberd</path> <secret>change-me-too</secret>
<driver>db</driver> <spool>/var/jabberd/spool/rooms</spool>
<db> <logdir>/var/jabberd/log</logdir>
<path>/var/jabberd/db</path> <pidfile>/var/jabberd/pid/mu-conference.pid</pidfile>
</db> <loglevel>255</loglevel>
</storage> <conference xmlns="jabber:config:conference">
<aci> <public/>
<acl type='all'> <vCard>
<jid>root@myrealm.ru</jid> <FN>Public Chatrooms</FN>
</acl> <DESC>This service is for public chatrooms.</DESC>
</aci> <URL>http://www.myrealm.ru/</URL>
<modules> </vCard>
<path>/usr/lib/jabberd</path> <history>40</history>
.... <logdir>/var/jabberd/logs/</logdir>
<chain id='user-create'> <stylesheet>/var/jabberd/logs/style.css</stylesheet>
<module>active</module> <notice>
</chain> <join>has become available</join>
.... <leave>has left</leave>
</modules> <rename>is now known as</rename>
<user> </notice>
<auto-create/> <sadmin>
<template> <user>root@myrealm.ru</user>
<publish/> </sadmin>
</template> <persistent/>
</user> <roomlock/>
</sm> </conference>
</jcr>

Использование подгружаемых модулей является еще Атрибуты name и host лучше выбрать по принципу, ис-
одним дополнительным источником расширения функ- пользованному в данном примере, – "conference"+<имя до-
циональности сервера jabber2. Например, показанный мена> (с помощью настройки DNS это имя должно разре-
на диаграмме модуль mod_iq-vcard позволяет пользова- шаться в адрес jabber-сервера). Тэги ip, port и secret отно-
телям публиковать свои личные данные в виде электрон- сятся к компоненту router, причём в качестве пароля дол-
ных визитных карточек, а модуль mod_published-roster (ко- жен быть указан дополнительный пароль, применимый для
торый, кстати, появился в jabberd2 сравнительно недавно, старых компонентов. Все дискуссионные комнаты сделаны
благодаря усилиям русского разработчика Никиты Смир- постоянными (persistent), но создавать их может только ад-
нова) дает возможность администратору создавать на сер- министратор (roomlock). В качестве владельца/модератора
вере динамический список контактов, доступный всем конференций указан всё тот же root. Конференции журнали-
пользователям этого сервиса (внутри предприятия име- руются, причем данные хранятся в виде xml-файлов, кото-
ет смысл просто занести в этот список всех сотрудников). рые потом могут быть выложены в Интернете. Для их пред-
Показанная в листинге цепочка user-create просто добав- ставления используется стилевой файл style.css, образец
ляет в базу данных необходимые записи (при помощи мо- которого тоже можно найти в пакете mu-conference.
дуля mod_active) при первом подключении пользователя.
Админиcтратору ничего не мешает оптимизировать рабо- Создание списка пользователей
ту сервера, удаляя из цепочек «лишние» по его мнению и запуск
модули, как, например, в данном случае убран из цепочки Собственно, после создания конфигурационных файлов
user-create модуль mod_roster-template (во многом дубли- требуется решить ещё несколько административных задач –
рующий функциональность mod_published‑roster) или, на- создать системного пользователя, под которым будет ра-
пример, mod_disco-publish, аналогичный по функциональ- ботать сервер jabberd2, создать каталоги для хранения баз
ности mod_iq-vcard. При редактировании этого файла нуж- данных, настроить DNS и систему аутентификации. А также
но обратить внимание на тэг id – там должен быть указан написать скрипт, который будет запускать сервер jabberd2.
тот же домен, что и в настройках с2s. В качестве хранили- Первые две задачи решаются простым скриптом:
ща данных выбрана библиотека BerkeleyDB (блок storage),
в качестве администратора сервиса указан пользователь useradd -d /var/jabber -s null jabber
mkdir /var/jabber/db
root с передачей ему всех прав по управлению сервисом chown -R jabber /var/jabber/db
(блок aci). Кроме того (блок user), разрешена активация
учетных записей пользователей, которые уже содержатся Настройка DNS состоит в добавлении SRV-записей и со-
в базе данных authreg, а в качестве шаблона списка кон- здании нескольких псевдонимов для jabber-сервера.
тактов для вновь созданных пользователей будет исполь-
зован published-roster. $ORIGIN myrealm.ru.
jabber A 192.168.1.252
Последний конфигурационный файл используется myrealm.ru. A 192.168.1.252
для настройки компонента mu-conference. В качестве при- conference CNAME jabber
мера лучше всего использовать входящий в состав пакета _jabber._tcp SRV 5 0 5269 jabber
файл muc-example.xml. Например, возможна такая редак- _xmpp-server._tcp SRV 5 0 5269 jabber
_xmpp-client._tcp SRV 5 0 5222 jabber
ция файла mu-conference.xml:

38
администрирование
Как уже упоминалось выше, смысл этих SRV-записей После выпол-
аналогичен MX-записи для электронной почты. В данном нения всех этих
примере для сервера с адресом 192.168.1.252 выбрано имя шагов и тестиро-
jabber.myrealm.ru, и все три записи указывают на него. Пер- в ания работо с -
вые две – для порта, обслуживающего подключения сервер- пособности SASL
сервер (первая из них – это просто более старый вариант), с помощью у ти-
а последняя – для порта клиент-сервер. Тут стоит подчерк- литы sasltest [8]
нуть, что если вы хотите, чтобы ваш сервер был доступен можно прис т у-
извне, т.е. чтобы пользователи других jabber-серверов мог- пить к заполне -
ли обмениваться сообщениями с вашими пользователями, нию базы данных
то, по крайней мере, первая пара SRV-записей должна быть authreg. Для про-
видна снаружи, поскольку именно она позволяет удален- стоты мы пока за-
ным jabber-серверам правильно находить сервер, отвеча- несем двух поль-
ющий пользователю с JID username@myrealm.ru. з о в ател е й root
Последняя запись (_xmpp-client._tcp) не столь важна и mike, оба из ко-
в этом смысле, поскольку клиенты jabber обычно позволя- торых должны
ют напрямую указывать адрес сервера, но лучше создать иметь своих при-
и её. Кроме того, некоторые из jabber-клиентов игнорируют нципалов в секто-
Рисунок 2. Настройка
SRV‑записи, и если адрес сервера не указан пользователем ре Kerberos. В ре- GSSAPI-аутентификации в Linux
явно, то просто интерпретируют доменную часть JID, как имя альных условиях
сервера. Для таких «поломанных» клиентов обычно прихо- вам, скорее всего, понадобится скрипт, который считывает
дится создавать дополнительный псевдоним для jabber-сер- данные из базы данных Kerberos (в этом вам поможет ко-
вера, состоящий только из доменной части. Также для нор- манда «kadmin -l dump», например), фильтрует вывод и пе-
мальной работы компонента mu-confertnce необходимо соз- реносит имена пользователей в базу данных authreg.
дать ещё один псевдоним conference.myrealm.ru. Для заполнения базы данных authreg нужно будет напи-
И последнее – это настройка аутентификации пользова- сать текстовый файл passwd.txt такого вида:
телей, что включает в себя настройку Kerberos, SASL и за-
полнение базы данных authreg. Предполагается, что поль- root
root\00MYREALM.RU\00<random passwd>
зователи уже занесены в базы данных Kerberos. В случае mike
jabberd2 дальнейшие действия напоминают настройку элек- mike\00MYREALM.RU\00<random passwd>
тронной почты, как она описана, например, в статьях [8, 9].
Иными словами, нам нужно создать принципала то есть он состоит из парных записей: нечетные строки –
для службы jabberd (xmpp/jabber.myrealm.ru@MYREALM.RU) это ключи, четные – значения. В качестве ключа берется
и выгрузить его ключ в файл /etc/krb5.keytab: имя пользователя, а значение представляет собой список
с разделителем \00, состоящий из трех полей – имени поль-
kadmin зователя, сектора SASL и случайной комбинации симво-
>add xmpp/jabber.myrealm.ru
>ext xmpp/jabber.myrealm.ru лов, которая служит в качестве простого текстового паро-
ля для этого пользователя. Поскольку при настройке серве-
Следуя рекомендациям статьи [9], чтобы этот ключ был ра jabberd2 простые (traditional из файла c2s.xml) механиз-
доступен для сиcтемного пользователя jabber, под кото- мы аутентификации отключены, то последнее поле можно
рым запускается jabberd2, то нужно добавить этого поль- оставить пустым, оно в такой конфигурации не будет ис-
зователя в системную группу kerberos и открыть файл /etc/ пользоваться. Также следует помнить, что ни одно из по-
krb5.keytab на чтение этой группе. лей не должно превышать по длине 255 символов.
Настройка SASL состоит в создании файла /usr/lib/sasl2/ Теперь остается зайти в директорию /var/jabberd/db, пред-
xmpp.conf с практически неизменным содержимым: назначенную для хранения баз данных jabberd2, и с помо-
щью утилиты db_load, входящей в состав пакета BerkeleyDB,
pwcheck: saslauthd создать эту базу данных:
mech_list: gssapi plain

Чтобы jabberd2 мог аутентифицировать пользовате- cat passwd.txt | db_load -n -t hash ↵


-c database=myrealm.ru -h ./ -T authreg.db
лей, входящих с простыми текстовыми паролями, то на
том же хосте, где работает jabberd2, должен быть запу- Справку по команде db_load в html-формате можно най-
щен saslauthd: ти в пакете BerkeleyDB. Подробное объяснение принципов
работы с базами данных вида BerkeleyDB требует отдельно-
/usr/sbin/saslauthd -a kerberos5 го обсуждения, но в данном случае создаётся база дан-
ных в режиме обновления (ключ -n) типа hash (-t) и с име-
причем необходимо убедиться, что именованный сокет нем myrealm.ru (которое вам нужно поменять на имя ваше-
/var/spool/saslauthd, через который saslauthd обменивает- го домена) в файле authreg.db с окружением/environment
ся данными с внешними программами, доступен на чтение (‑h), в качестве которого используется текущая директо-
и запись системному пользователю jabber. рия (т.е. /var/jabberd/db). Ключ -T указывает, что в качестве

№8, август 2008 39


администрирование
входных данных используется текстовый файл. Ту же са- let retval=-1
esac
мую команду нужно использовать для пополнения или ре-
дактирования уже существующей базы данных. При этом Данный скрипт выдает большое количество отладоч-
в файл passwd.txt нужно вносить только те записи, которые ной информации в файлы вида debug"имя компонента".log
вы хотите добавить или изменить. Проблемы с блокировкой в текущей директории, что бывает полезно при настройке
пользователей проще решать удалением или блокировани- сервиса, но сильно сказывается на быстродействии в ра-
ем соответствующих принципалов в базе данных Kerberos бочем режиме. Исправить ситуацию можно редактирова-
либо же полностью переписать базу данных authreg.db, за- нием скрипта запуска.
пустив команду db_load без ключа -n. Понятно, что в пос- Сложно рекомендовать какой-то определенный jabber-
леднем случае вам нужно иметь полный список пользова- клиент, поскольку этот вопрос уже для многих является до-
телей в текстовом файле passwd.txt. статочным поводом для начала «священной войны». Одна-
Теперь всё готово к запуску сервера. Разработчики ко я всё же предлагаю использовать многопротокольный
jabberd2 и этот этап переложили на плечи администраторов, (который, кстати, поддерживает и упомянутый в начале ста-
так что вам придется создавать собственный скрипт запус- тьи протокол Zephyr) клиент Pidgin [10]. Несмотря на гранди-
ка. Можно воспользоваться моей заготовкой (rc.jabberd), ко- озный скандал, устроенный его пользователями, которым
торая, будучи запущенной с аргументами start/stop, запус- не понравилось введение разработчиками автоматичес-
кает или останавливает все шесть компонентов. ки масштабируемого поля ввода, что даже привело к рас-
колу среди разработчиков и появления форка – Funpidgin,
#!/bin/bash мне лично кажется, что клиент довольно удобен, и, по-край-
progs="router resolver sm c2s s2s"
user=jabber.jabber ней мере в Linux, позволяет легко настроить GSSAPI-аутен-
progsPath="/usr/bin" тификацию. Для этого нужно только поставить галочку на-
confPath="/etc/jabberd"
pidPath="/var/jabberd/pid" против поля «Use GSSAPI...» на вкладке Advanced диалога
Start ( ) { управления учетными записями, который показан на рис. 2.
echo "Initializing jabberd2 processes ..."
for prog in ${progs}; do В данном случае сервер можно не указывать, поскольку
if [ $( pidof -s ${prog} ) ]; then при правильно настроенном DNS он вычисляется из до-
echo -ne "\tprocess [${prog}] ↵
already running" менного имени, которое вводится в том же окне, что и по-
sleep 1 казанное на рис. 2, но на вкладке Basic.
continue
fi Кстати, использование GSSAPI решает ещё одну извес-
echo -ne "\tStarting ${prog}... " тную проблему, на которую часто жалуются пользовате-
rm -f ${pidPath}/${prog}.pid
args="-c ${confPath}/${prog}.xml" ли Pidgin – хранение текстовых паролей в незашифрован-
sudo -u jabber ${progsPath}/${prog} ↵ ном текстовом файле. В данном случае пароль «хранится»
${args} -D 2 &> debug${prog}.log &
echo средствами библиотеки Kerberos, так что Pidgin не имеет
sleep 1 к нему никакого доступа.
done
sudo -u jabber ${progsPath}/mu-conference Многие пользователи считают функциональность Pidgin
return ${retval} недостаточной для продвинутой работы с протоколом XMPP.
}
# Однако создание конференции в нем делается просто – за-
Stop ( ) { пуском мастера из меню «Buddies → Add Chat» в основном
echo "Terminating jabberd2 processes ..."
for prog in ${progs} ; do окне, разумеется, если вы зашли под административным ло-
echo -ne "\tStopping ${prog}... " гином, которому разрешено создание конференций в кон-
kill $(cat ${pidPath}/${prog}.pid) ↵
&& rm -f ${pidPath}/${prog}.pid фигурационном файле mu-conference.xml.
echo Если вы не обнаружили кнопку «Use GSSAPI...» в сбор-
sleep 1
done ке Pidgin присутствующей в вашем дистрибутиве, то, ско-
killall mu-conference рее всего, вам его (Pidgin) придется собирать вручную.
return ${retval}
} Это не слишком сложно, нужно только при запуске configure
# обратить внимание на ключи:
case "$1" in
start)
Start ./configure
;; --enable-cyrus-sasl \
stop) --with-dynamic-prpls=jabber,simple \
Stop --with-static-prpls= \
;;
restart)
Stop которые включают поддержку Cyrus-SASL и инициируют
Start
;; сборку двух динамических библиотек, обеспечивающих
condrestart) поддержку протокола XMPP.
if [ -f /var/lock/subsys/${prog} ]; then
Stop Уже на этом этапе сервер вполне работоспособен,
sleep 3 но для более тонкой настройки необходимо будет разо-
Start
fi браться с содержимым баз данных sm.db, которые не всег-
;; да удается модифицировать лишь средствами протоко-
*)
echo "Usage: ↵ ла XMPP. Этому вопросу и будет посвящена следующая
$0 {start|stop|restart|condrestart}" часть статьи.

40
Реклама
администрирование

Удаленное управление
компьютером

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

В
этой статье я постараюсь рас- так как при подключении к удаленно- к удаленному рабочему столу другого
смотреть наиболее известные му компьютеру текущий интерактив- компьютера. Замечу, что на удален-
программы удаленного адми- ный пользователь этого компьютера ном компьютере в свойствах компью-
нистрирования – программное обес- будет заблокирован. Это огромнейший тера должен быть разрешен удален-
печение, которое позволяет управ- недостаток в тех случаях, когда нужно ный доступ, в XP и Vista эта возмож-
лять компьютером на расстоянии, че- вести удаленную работу в кооперации ность по умолчанию отключена.
рез локальные или глобальные сети, с удаленным пользователем. Поэто- Особенности:
в том числе, конечно же, и Интернет. му сторонние разработчики предла- n Поддержка 32-битного цвета (в до-
Все сравнения носят общий, независи- гают свои программные разработки, полнение к 8, 15, 16 и 24-битного
мый характер. В завершение постара- от бесплатных решений с открытым в предыдущих версиях).
юсь определить, какая программа яв- исходным кодом (VNC) до серьезных n 128-битовое кодирование с ис-
ляется лучшей и при каких условиях. коммерческих продуктов (DameWare, пользованием алгоритма кодиро-
Наверное, не ошибусь, если ска- pcAnywhere, Radmin, Netop, UltraVNC, вания RC4 (значение безопаснос-
жу, что самой известной програм- Remote Office Manager и др.). ти по умолчанию; старые клиен-
мой удаленного управления являет- Итак, давайте же кратко рассмот- ты могут использовать более сла-
ся RDP-клиент (RDP расшифровыва- рим каждую программу по отдельнос- бое кодирование). Но из-за уязви-
ется как Remote Desktop Protocol), ко- ти, а потом сравним их. Сразу огово- мости man‑in‑the‑middle vulnerability
торый поставляется вместе с некото- рюсь, что тестирование проводилось в версиях ранее 6.0 трафик можно
рыми версиями Windows. Стандарт- в рамках семейства операционных перехватить и расшифровать с по-
ный RDP-клиент очень удобен в боль- систем Windows. мощью специальных утилит.
шинстве случаев, когда нужно подклю- n Звук с удалённого ПК переадресо-
читься к одному удаленному компью- RDP вывается и воспроизводится на ло-
теру и управлять им, но в случае ког- В операционной системе Windows кальном компьютере.
да рабочих станций много и на них ус- уже встроено средство для удаленно- n Позволяет подключать удаленные
тановлена, к примеру, Windows XP, ра- го управления компьютером. Вы може- ресурсы к локальной машине (дис-
ботать с помощью RDP очень тяжело, те без особых проблем подключиться ки, принтеры, порты).

42
администрирование
n Можно настроить производитель- ми системами на платформе Windows
ность для сетей с различной про- NT/2000/XP/2003/Vista, позволяющее
пускной способностью. администраторам обойти ограничения
n Есть версия для мобильных уст- Microsoft Management Console (MMC).
ройств. DNTU включает большое количество
n Можно обмениваться информаци- средств администрирования Microsoft
ей через буфер обмена. Windows NT, объединенных под од-
n На медленных каналах связи пока- ним общим централизованным интер-
зывает лучшие характеристики ра- фейсом, и позволяет удаленно управ-
боты, чем другие программы. лять серверами и рабочими станция-
ми Windows.
В Windows Server 2008 и Windows В целом программа больше ориенти-
Vista используется новая версия про- рована на управление Active Directory,
токола, RDP 6. чем на управление рабочим столом и
n Версия 6.0 установлена в Windows интерактивность. RDP
Vista и включает поддержку про- Стоимость лицензии продуктов
грамм удаленного взаимодейст- DameWare рассчитывается исходя n Сложная система лицензирования
вия, приложений Presentation из количества администраторов. и регистрации.
Foundation Windows, поддержку Особенности:
нескольких мониторов и TLS 1.0 n Функциона льнос ть DameWare Сайт: http://dameware.ru.
подключения. по работе с Active Directory не тре-
n Версия 6.1 была выпущена в февра- бует необходимости пользователю pcAnywhere
ле 2007 года и включена в Windows осуществлять вход в домен для ра- Одна из старейших программ удален-
Server 2008 и в пакет обновления боты. ного администрирования от известной
Windows Vista SP1 и Windows XP n Реализована удаленная установ- компании Symantec. Поддерживает не-
SP3. ка. сколько самых известных операцион-
n Несколько способов авторизации ных систем, есть средство для компо-
Недостатки: (AD, пароль). новки дистрибутивов. В целом програм-
n В Windows (за исключением XP n Хорошая документация. ма обладает рядом уникальных функ-
Media Center Edition, Windows Server) ций, которых нет у аналогов, но эти
основным ограничением является Недостатки: функции (например, поддержка уста-
возможность одновременного вхо- n Очень загруженный интерфейс ревшего протокола IPX/SPX) не нужны
да в систему только для одного уда- пользователя. большинству пользователей.
ленного пользователя. n Медленная скорость работы и зна- Особенности:
n В связи с тем что при подключении чительная нагрузка на сеть в режи- n Поддержка нескольких различных
блокируется текущий интерактив- ме управления удаленным экра- протоколов соединения, не только
ный пользователь, RDP плохо под- ном. TCP/IP.
ходит для задач поддержки пользо-
вателей.
n Неудобство управления большим
количеством рабочих станций –
этот недостаток можно устранить
с помощью сторонних утилит, вза-
имодействующих с RDP.
n Внешний IP-адрес должен быть ста-
тический, иначе можно попробо-
вать решить проблему с помощью
бесплатного сервиса No-IP.com.
n На быстрых каналах работает мед-
леннее, чем большинство анало-
гов.

С а й т: ht t p: // w w w.m i c ro s of t .
c o m / w i n d ow sx p /d ow n l o a d s / to o l s /
rdclientdl.mspx.

DameWare
DameWare NT Utilities (DNTU) – это
средство управления корпоративны- DameWare

№8, август 2008 43


администрирование
гое время моим выбором была имен-
но эта программа. Простой интерфейс
и приличная скорость работы делают
своё дело.
Особенности:
n Совместимость с Windows Vista
32‑bit и 64-bit.
n Несколько режимов работы, в том
числе передача файлов, телнет
и другое.
n Хорошая производительность в се-
тях с большой пропускной способ-
ностью.
n Поддержка нескольких соедине-
ний.
n Удаленная установка.
n Есть русская версия.

Недостатки:
n Конфликты с драйверами и обо-
pcAnywhere рудованием, вплоть до появления
BSOD.
n Несколько способов авторизации, в том числе с под- n Цена выросла в два раза по сравнению с предыдущей
держкой учетных записей Windows. версией.
n Версия для мобильных устройств. n Работает значительно медленнее некоторых аналогов
n Можно сконфигурировать для работы в сложной топо- в сетях с низкой пропускной способностью.
логии сети (маршрутизаторы, файрволлы).
Сайт: http://www.radmin.ru.
Недостатки:
n Медленная скорость работы с удаленным экраном. NetOp
n Высокая цена. В свое время это была одна из самых популярных про-
грамм в своём роде. Сразу очевидно, что программа боль-
Сайт: http://www.symantec.com. ше рассчитана на решение задачи поддержки пользова-
телей. Это довольно тяжелый и функциональный продукт,
Radmin 3 многим похожий на pcAnywhere и DameWare.
Очень известный продукт. Обладает аскетичным интерфей- Особенности:
сом, но при этом работает быстрее большинства аналогов. n Кроссплатформенная поддержка.
В ряде случаев это самое быстрое решение. Не так дав- n Множественные сессии Guest.
но продукт обновился до версии 3, до этого на протяже- n Благодаря сторонним утилитам этого же производите-
нии многих лет существенных обновлений не было. Дол- ля есть возможность настроить программу для сложной
топологии сети.

Недостатки:
n Медленная скорость работы в режиме просмотра/уп-
равления удаленным рабочим столом.
n Высокая цена по сравнению с другими продуктами.

Сайт: http://www.netop.ru.

RealVNC
Одно из самых популярных решений в сфере удаленного
администрирования. Благодаря тому, что исходный код это-
го продукта открыт, существует ряд клонов этого продук-
та, которые обладают своими уникальными особенностями.
К слову, последние несколько лет, особенно после выхода
Windows Vista, политика открытости и бесплатности у раз-
работчиков изменилась. Версию программы с поддержкой
Vista теперь предлагают только за деньги. Но, к слову, есть
Radmin 3 пока что полностью бесплатная UltraVNC.

44
администрирование
Особенности:
n На данный момент есть бесплатная
версия.
n Поддержка Windows Vista в плат-
ных версиях.
n Кроссплатформенная поддержка.

Недостатки:
n Недостаточно высокая скорость ра-
боты.
n Неудобный интерфейс.
n По умолчанию данные не шифру-
ются, отсутствует аутентификация
на основе учетных записей пользо-
вателей Windows.

Сайт: http://www.realvnc.com.

Remote Office Manager


Это довольно новый продукт, на рын- NetOp
ке появился в 2006 году. Не так давно
производитель выпустил новую вер- n Отсутствует кроссплатформенная надобятся, но в большинстве случа-
сию программы – 3.3. Понравилось поддержка. ев без них трудно обойтись, я поста-
в этом продукте то, что он неплохо со- рался выделить основные из них для
четает в себе простой и понятный ин- Сайт: http://aledensoft.ru. сравнения программ по функциональ-
терфейс с серьезным функционалом. ности. При всех плюсах немаловаж-
Также огромный плюс – это высокая Сравнительный анализ но для программы иметь дружествен-
производительность в различных се- программ ный и приятный интерфейс, хотя о вку-
тях и удаленная установка. Постараемся сравнить представлен- сах и не спорят, но постараюсь выде-
Особенности: ные программы как по набору функ- лить программы с наиболее приятным
n Хорошая производительность как в ций, которые необходимы для уда- и удобным дизайном.
сетях с высокой пропускной способ- ленного управления, так и по удобству
ностью, так и в медленных сетях. работы с программой, цене и другим Подводим итоги
n Совместимость с Windows Vista. важным факторам, которые произво- DameWare и pcAnywhere наполнены
n Удаленная установка. Доступно не- дители стараются обходить стороной множеством функций, в которых нуж-
сколько видов удаленной установ- при описании своих продуктов. дается определенная группа админис-
ки, в том числе в домене, с исполь- Трудно представить программу траторов, остальным же придется пе-
зованием групповой политики бе- удаленного управления без возмож- реплачивать за ненужный функцио-
зопасности и MSI. ности подключаться к рабочему сто- нал, к слову, эти программы подойдут
n Возможность настроить програм- лу и управлять им, конечно же, чем ка- серьезным организациям, обладаю-
му на работу в условиях сложной чественнее и удобнее управление, щим крупными сетями с различными
топологии сети благодаря таким тем больше сэкономленных минут конфигурациями. DameWare можно от-
функциям, как «Соединение через» (а когда и часов), времени и нервов. дать звание самой многофункциональ-
и «Обратное соединение». Управление в локальной сети замет- ной программы.
n Поддержка нескольких соедине- но отличается от работы в Интерне- VNC подойдет пользователям в ка-
ний. те, если в локальной сети можно ра- честве дополнительного инструмента
n Есть русская версия. ботать с помощью любой из этих про- администрирования, предоставляет
грамм (отмечу, что Remote Administrator, базовый функционал в универсальной
Недостатки: на мой взгляд, самый быстрый). и бесплатной программе. За поддерж-
n Небольшая известность програм- В Интернете удобнее всего рабо- ку Windows Vista и за другие полезные
мы, т.е. отсутствие серьезной про- тать с помощью RDP или Remote Office функции придется платить, что ставит
верки временем. Manager, немаловажную роль играет эту программу на равные с остальны-
возможность отключения обоев рабо- ми коммерческими продуктами.
чего стола, что дает заметное ускоре- Radmin, Netop, Remote Of fice
ние при работе. Manager не уступают своим колле-
Серьезную роль, при выборе про- гам – они прекрасно справляются
граммы играют её дополнительно с поставленной задачей и обладают
встроенные возможности администри- хорошим набором функциональнос-
RealVNC рования, возможно, кому-то они не по- ти, Radmin можно назвать самой быс-

№8, август 2008 45


администрирование
дают таким функционалом за редким
исключением.
Если же представленные програм-
мы вас не устраивают, стоит обратить
внимание на другие продукты, такие
как Citrix, Remotely Anywhere и дру-
гие, которые предоставляют множес-
тво своих уникальных возможнос-
тей, к примеру, управление удален-
ным компьютером через веб-интер-
фейс (в VNC тоже присутствует дан-
ная функция). Словом, не бойтесь экс-
периментировать, пробуйте новые про-
граммы, которые, возможно, подойдут
и понравятся вам, сделав работу го-
раздо приятнее и проще.
Особенности и сравнительная ха-
рактеристика, описанные в этой ста-
тье, могут не совсем корректно отра-
жать положение дел на данный момент,
так как программы постоянно совер-
шенствуют, появляется новый функ-
Remote Office Manager ционал, недостатки исчезают.

трой программой, если не учитывать кой Aero и отключают ее при работе, Заключение
работу на слабых каналах – достой- что, конечно, трудно не заметить поль- Каждый из этих продуктов подойдет
ный продукт. зователю. Программы, использующие и понравится определенной группе
Remote Office Manager – недоро- драйвер захвата, ставят себя в зависи- администраторов, учитывая личные
гая, удобная, быстрая и многофунк- мость от системы, нередки конфликты и профессиональные требования, по-
циональная программа, которая по- с оборудование и ошибки при работе. этому лучшую программу можете оп-
дойдет как небольшим, так и крупным Большинство рассмотренных про- ределить только вы!
организациям. грамм обладают такой полезной функ-
«Больной» вопрос среди программ цией, как удаленная установка. Хо- 1. Ачилов Р. Обзор программ удален-
удаленного администрирование – тя это скорее исключение из правил. ного доступа: выбирайте подходя-
это поддержка Windows Vista, не все Менее популярные продукты, не рас- щую. //Системный администратор, №5,
программы у живаются с оболоч- смотренные в данной статье, не обла- 2007 г. – С. 18-33.

Таблица сравнения программ по функциональным возможностям


RDP DameWare pcAnywhere Radmin 3 Netop RealVNC Remote Office Manager
Передача файлов + + + + + + +
Просмотр процессов – + – – – – +
Поддержка Vista (Windows 2008 Server) + + + + + + +
Обратное соединение (возможность – + + – – – +
сервером инициировать сетевое соединение)
Telnet – + – + – – –
64-битная платформа + + + + – + +
Текстовый или голосовой чат – + + + + + –
Работа на медленных каналах + + + – + + +
Защита настроек – – – – – – +
Удаленная установка + + – – – – +
Автоматическая интеграция с брэндмауэром + + – + + – +
Кроссплатформенность – – + – + + –
Блокировка удаленного компьютера – + – – + + +
Поиск рабочих станций – + – + + – +
Интерфейс и удобство работы (с большим – – – + – – +
количеством рабочих станций)
Цена за одну лицензию 0 $289 (лицензируется $199 $49 Сложная ценовая 0 - $50 $20
модуль администратора) политика

46
bugtraq

Переполнение буфера в Bea Weblogic Переполнение буфера


Apache Connector в Webex Meeting Manager
Программа: Bea Weblogic Server. WebexUCFObject ActiveX-компоненте
Опасность: Высокая. Программа: Webex Meeting Manager 20.2008.2601.4928, воз-
Описание: Уязвимость существует из-за ошибки провер- можно, более ранние версии.
ки границ данных в Apache-коннекторе. Удаленный поль- Опасность: Высокая.
зователь может с помощью специально сформированного Описание: Уязвимость существует из-за ошибки провер-
POST-запроса вызвать переполнение стека и выполнить ки границ данных в WebexUCFObject ActiveX-компоненте
произвольный код на целевой системе. (atucfobj.dll) при обработке аргумента, передаваемого ме-
URL производителя: www.bea.com/framework.jsp?CNT= тоду NewObject(). Удаленный пользователь может с помо-
index.htm&FP=/content/products/weblogic/server. щью специально сформированного веб-сайта вызвать пе-
Решение: В настоящее время способов устранения уязви- реполнение стека и выполнить произвольный код на целе-
мости не существует. вой системе.
URL производителя: www.webex.com/downloads_webex.html.
Решение: Установите последнюю версию 20.2008.2606.4919
Переполнение буфера с сайта производителя.
в Trend Micro OfficeScan
Программа: Trend Micro OfficeScan 7.3 build 1343(Patch 4),
возможно, более ранние версии, Trend Micro OfficeScan Переполнение буфера
Corporate Edition 8.x. в Microsoft Visual Studio
Опасность: Высокая. Программа: Microsoft Visual Studio 6.0, возможно, другие
Описание: Уязвимость существует из-за ошибки про- версии.
верки границ данных в OfficeScan Corp Edition Web- Опасность: Высокая.
Deployment ObjRemoveCtrl Class ActiveX-компоненте Описание: Уязвимость существует из-за ошибки про-
(OfficeScanRemoveCtrl.dll) в OfficeScan-клиенте при попыт- верки границ данных в Masked Edit ActiveX-компоненте
ке отобразить список конфигурационных настроек. Удален- (Msmask32.ocx версии 6.0.81.69). Удаленный пользователь
ный пользователь может с помощью специально сформи- может с помощью специально сформированного веб-сайта
рованного веб-сайта вызвать переполнение стека и выпол- передать уязвимому компоненту слишком длинный пара-
нить произвольный код на целевой системе. метр Mask, вызвать переполнение стека и выполнить про-
URL производителя: www.trendmicro.com/en/products/ извольный код на целевой системе.
desktop/osce/evaluate/overview.htm. URL производителя: msdn2.microsoft.com/en-us/library/
Решение: Установите исправление с сайта производителя. ms950417.aspx.
Решение: Установите исправленную версию Msmask32.ocx
6.0.84.18 с сайта производителя.
Множественные уязвимости в xine-lib
Программа: xine-lib версии до 1.1.15.
Опасность: Высокая. Неавторизованное изменение пароля
Описание: 1. Множественные целочисленные перепол- в Joomla
нения обнаружены при обработке ID3-тегов в файле src/ Программа: Joomla версии до 1.5.6.
demuxers/id3.c. Удаленный пользователь может с помощью Опасность: Средняя.
специально сформированного ID3-тега вызвать переполне- Описание: Уязвимость существует из-за некорректно-
ние динамической памяти и выполнить произвольный код го ограничения доступа к сценарию components/com_user/
на целевой системе. models/reset.php. Удаленный пользователь может обойти
2. Уязвимость существует из-за ошибок проверки гра- механизм аутентификации и изменить пароль пользовате-
ниц данных в функции demux_real_send_chunk() в файле ля с наименьшим идентификатором в базе данных (как пра-
src/demuxers/demux_real.c. Удаленный пользователь может вило, администратора).
с помощью специально сформированного Real Media-фай- Пример: 1. Открыть страницу: http://[host]/index.php?option=
ла вызвать переполнение динамической памяти и выпол- com_user&view=reset&layout=confirm.
нить произвольный код на целевой системе. 2. Установить в поле «token» символ “'”.
3. Уязвимость существует из-за ошибки проверки гра- 3. Указать новый пароль для учетной записи admin.
ниц данных в функции open_video_capture_device() в файле 4. Перейти на страницу: http://[host]/administrator.
src/input/input_v4l.c. Удаленный пользователь может с по- 5. Авторизоваться в приложении с новым паролем.
мощью специально сформированного V4L-потока вызвать URL производителя: www.joomla.org.
переполнение динамической памяти и выполнить произ- Решение: Установите последнюю версию 1.5.6 с сайта про-
вольный код на целевой системе. изводителя.
URL производителя: xinehq.de.
Решение: Установите последнюю версию 1.1.15 с сайта Составил Александр Антипов
производителя.

№8, август 2008 47


web

Кэшируем
динамический
контент
Виталий Банковский
Продолжая цикл статей, я расскажу, как можно создавать кэширующие сервера
для динамического контента. (Первую статью цикла «Создаем распределенную сеть доставки
контента» см. в №2 за 2008 г.)

Немного о кэшировании n Если страница уже была модифицирована, то отдается


Сейчас на рынке работают несколько компаний, предо- полная версия страницы.
ставляющих услуги по кэшированию и доставке контента. n Если дата последней модификации такая же, как в кэ-
Но все они, насколько мне известно, имеют один сущест- ше, то сайт должен отдать пустую страницу со статусом
венный недостаток – неумение достоверно кэшировать ди- HTTP 304.
намический контент. Часть из них вообще не может кэширо- n Когда кэш получает ответ со статусом HTTP 304, то он
вать динамический контент, а часть обновляют локальный отдает страницу из локального кэша.
кэш страниц только периодически, что непригодно для стра-
ниц социальных сетей. И, как я подозреваю, причина одна – Компоненты системы
для того чтобы построить акселератор, который бы хранил Для построения такой системы я использовал модуль
достоверную копию динамической страницы, необходима mod_accel Игоря Сысоева [2]. На данный момент идет ак-
плотная интеграция с оригинальным сайтом. тивная разработка такого же модуля для nginx, но на мо-
мент написания этой статьи он еще не был готов.
Технология кэширования динамических
страниц Установка и настройка
Здесь я не изобрету ничего нового, лишь применю стандарт- В свой работе я использую CentOS семейства Redhat, поэто-
ные средства протокола HTTP для построения акселерато- му описание процедуры устоновки и настройки будет ори-
ра. В целом вся система состоит из сервера-акселератора ентировано на этот дистрибутив. Первым делом необходи-
и оригинального сайта и работает по следующей схеме: мо получить библиотеку EAPI, которая нужна для компиля-
n Пользователь обращается к акселератору, который яв- ции модуля mod_accel. Ее можно скачать с сайта [3]. Биб-
ляется проксирующим сервером по отношению к сайту. лиотеку устанавливать не нужно.
n Если акселератор не имеет локальной копии страницы,
то он обращается на сайт за ней, отдает страницу поль- tar -xzvf mod_ssl-2.8.4-1.3.20.tar.gz
cd mod_ssl-2.8.4-1.3.20
зователю и сохраняет в локальном кэше. ./configure —with-apache=../apache-1.3.20
n Если акселератор уже имеет эту страницу, то он от- make
правляет запрос на оригинальную страницу с заголов-
ком If‑Modified-Since xxx, где xxx – дата последней мо- Далее получаем версию Apache 1.3.20 c cайта [4] и рас-
дификации страницы, сохраненной в кэше. крываем архив:
n Когда оригинальный сайт получает такой запрос,
он сравнивает дату модификации своей страницы с этой tar -xzvf apache_1.3.20.tar.gz
датой.

48
web
Также нужна библиотека MM, которая доступна на сай- case "$1" in
start)
те [5]. echo -n "Starting: apache"
/usr/local/apache/bin/apachectl start
tar zxf mm-1.2.1.tar.gz echo "."
cd mm-1.2.1 ;;
./configure
make stop)
make install echo -n "Stopping service: apache"
killall httpd
echo "."
Получаем модуль mod_accel и запускаем процесс об- ;;
новления исходных кодов Apache:
restart)
$0 stop
tar -xzvf mod_accel-1.0.34.tar.gz sleep 2
cd ./configure \ $0 start
--with-apache=../apache_1.3.20 \ ;;
--with-eapi=../mode_ssl-2.8.4-1.3.20/pkg.eapi
make # накладывает патчи *)
echo "Usage: /etc/init.d/apache ↵
Далее собираем Apache и устанавливаем: {start|stop|restart}" >&2
exit 1
;;
cd apache_1.3.20 esac
EAPI_MM=../mm-1.2.1 ./configure —enable-rule=EAPI \
--activate-module=src/modules/accel/libaccel.a exit 0
make
make install
Запускаем наш акселератор:

Настройка Apache /etc/init.d/apache start


Затем настраиваем Apache для кэширования нашего сай-
та. Сосредоточимся на основных моментах конфигураци-
онного файла сервера Apache: Интеграция динамической части сайта
с акселератором
# Путь, где будут храниться закэшированнные файлы. Статические элементы сайта будут успешно кэшировать-
# Уровень иерархии каталогов — 1
AccelCacheRoot /home/dcache 1 ся и без специальных настроек. Для того чтобы динами-
# Включить кэширование
AccelNoCache off

# Начальный URL и адрес оригинального сайта


AccelPass / http://10.10.10.11:80/

# Отключить удаление файлов из кэша


AccelUnlinkNoCached off

# Передавать в переменной X-Host переменную среды Host,


# пришедшей на акселератор.
AccelSetXHost on

# Включить передачу IP-адреса посетителя через


# переменную X-Real-IP нашему сайту
AccelSetXRealIP on

# Включить передачу оригинального URL нашему сайту через


# переменную X-URL
AccelSetXURL on

Перед запуском сервера Apache необходимо создать


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

mkdir /home/dcache
chown -R apache.apache /home/dcache

Если процесс apache работает под другим именами


пользователя и группы, то нужно соответственно поменять
параметры команды chown.
Включение запуска сервера Apache в процедуру началь-
ной загрузки сервера состоит в создании файла /etc/init.d/
apache со следующим содержимым:

#!/bin/sh
# chkconfig: 2345 55 25

№8, август 2008 49


web
ческие страницы нашего сайта могли быть закэширова- # Печатаем дату последней модификации страницы
header("Last-Modified: Tue, 16 Oct 2007 12:45:26 GMT");
ны, необходимо ввести проверку даты последней моди-
фикации страниц в кэше с датами последней модифика- # Также у нас есть глобальная переменная.
# При генерации страниц для некэшируемых страниц
ции страниц. Для этого я модифицировал наш сайт таким # нужно выставить эту переменную равной нулю
образом, что каждая страница имеет дату последней мо-
if($cache>0)
дификации, хранимой в базе данных. Когда на сайт пере- {
дается запрос из акселератора на какую-то страницу, сайт # Указываем акселератору, что нужно
# кэшировать контент
сравнивает дату из заголовка if-modified-since с датой пос- header("Pragma: cache");
леднего обновления страницы, и в зависимости от резуль- header("Cache-Control: cache");
}
татов проверки скрипт на сайте возвращает или полную else{
версию страницы с кодом HTTP, равным 200, или пустую # Указываем акселератору что не нужно
# кэшировать контент
страницу с кодом 304. header("Pragma: no-cache");
Также обязательно нужно обратить внимание на стра- header("Cache-Control: no-cache");
}
ницы, которые никогда не должны быть кэшированы. На-
пример, страницы авторизации, обновления учетных запи- # Как и раньше, устанавливаем дату устаревания документа
$dt=time();
сей пользователей и так далее. $dt+=1;
К сожалению, такая плотная интеграция зависит от про- header("Expires: " . ↵
gmdate("D, d M Y H:i:s",$dt) . " GMT");
граммного обеспечения на сайте, поэтому в качестве при-
мера целесообразно привести упрощенный пример скрип- # Печатаем контент
echo $content;
та сайта, проинтегрированного с акселератором: exit;}

Листинг 1. Пример программы сайта ?>

<?php
Схема работы приложения может быть построена сле-
$cache=1;
дующим образом:
# Проверяем, пришел ли к нам запрос из акселератора n В начале программы переменная $cache устанавлива-
# с заголовком If-modified-since. Если такой заголовок
# существует, это означает, что акселератор имеет ется в 1.
# локальную копию этой страницы n Проверяется наличие заголовка if-modified-since и срав-
if ($_SERVER['HTTP_IF_MODIFIED_SINCE']) нивается с датой последнего обновления запрошенной
{ страницы. В зависимости от результата проверки пере-
$txt = "cache";
$len = strlen($txt); менная $cached устанавливается в 0 или 1.
# print 304 code
n Во всех процедурах динамической генерации контента
header("Status: 304",false,304); проверяется значение переменной $cached. Если пе-
header("Content-Type: text/html",false,304); ременная равна 1, то все эти процедуры завершаются,
# Печатаем длину контента, иначе акселератор решит и программа переходит в финальную фазу – генерация
# что контент — динамический и не закэширует страницу контента как показано выше. Если переменная равна 0,
header("Content-Length: $len",false,304);
то программа создает контент с нуля.
# Печатаем дату последней модификации страницы n Во всех процедурах, где создается некэшируемый кон-
header("Last-Modified: Tue, 16 Oct 2007 12:45:26 GMT", ↵
false,304); тент, переменная $cache устанавливается равной 0.
header("Pragma: cache", false,304); n Вызывается процедура печати контента (как показано
header("Cache-Control: cache",false,304);
header("Content-Length: $len", false,304); выше в примере).

# Дата, когда документ считается устаревшим, должна Заключение


# быть будущей, иначе акселератор не сохранит страницу В этой статье я рассмотрел основные принципы построе-
$dt=time(); ния акселератора для кэширования динамического контен-
$dt+=1; та. За рамками статьи остался способ, позволяющий допол-
header("Expires: " . ↵
gmdate("D, d M Y H:i:s",$dt) . " GMT"); нительно ускорить систему кэширования через хранение
echo $txt; дат последней модификации страниц в одной из наиболее
exit;
} быстрых систем хранения данных – memcached.
else
{
# В этой секции мы будем генерировать некэшируемый 1. Банковский В. Создаем распределенную сеть доставки кон-
# контент или контент, который еще не закэширован тента. //Системный администратор, №2, 2008 г. – С. 64-68. –
# в акселераторе
http://www.samag.ru/cgi-bin/go.pl?q=articles;n=02.2008;a=01.
$content = get_some_content(); 2. http://sysoev.ru/mod_accel.
# Вычисляем длину содержимого, иначе акселератор 3. http://www.modssl.org.
# решит, что это – динамический контент 4. http://apache.org.
$len = strlen($content); 5. http://www.engelschall.com/sw/mm.
header("Status: 200"); 5. http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html.
header("Content-Type: text/html");
header("Content-Length: $len"); 6. http://www.danga.com/memcached.

50
Реклама
администрирование «1С»

Управляем списками
общих информационных баз

Андрей Луконькин
Что делать, если в организации появляется новая информационная база и нужно добавить
каждому пользователю ярлык запуска к этой базе? В этом случае работу можно облегчить
с помощью специализированного механизма платформы «1С:Предприятие 8» списки общих
информационных баз.
баз, поэтому использование в работе

В
процессе установки платфор- ляет собой небольшой текст с регла- механизма списка общих баз позво-
мы «1С:Предприятие» в опера- ментированной структурой. лит стандартизировать и регламенти-
ционной системе, кроме всего Пример файла: ровать работу пользователей, опера-
прочего, регистрируется и файловое тивно управлять доступными для за-
расширение «v8i». Файл с таким рас- [ЗУП sql рабочая] пуска базами, не тратя много време-
Connect=Srvr="Proliant7";Ref="ZP";
ширением является ярлыком, который ID=c27a142e-5a9c-477c-a69f-12914a12b347 ни для внесения изменений.
содержит ссылки на общие информа- OrderInList=466944
Folder=/Зарплата
ционные базы. OrderInTree=32768
С помощью диалога настройки ок- External=0
на запуска можно указать произволь-
ное количество списков общих инфор- Для облегчения работы по созда-
мационных баз, которые должны об- нию общих списков существует воз-
рабатываться при запуске системы можность сохранения ссылки в файл.
«1С:Предприятие» (см. рис. 1). Для этого нужно вызвать контекстное
Таким образом, содержащиеся меню правой кнопкой мыши на строке
в указанных общих списках информа- информационной базы в окне запус-
ционные базы будут добавлены в ос- ка «1С:Предприятие» и выбрать пос-
новной список информационных баз ледний пункт меню «Сохранить ссыл-
и отображены при запуске системы ку в файл» (см. рис. 3).
(см. рис. 2). Важно, что в файле v8i может быть Рисунок 1. В диалоге настройки
указываются списки общих
Файл с расширением v8i представ- указана не одна, а сразу несколько информационных баз

Рисунок 2. В окне запуска отображаются указанные в общих


списках информационные базы Рисунок 3. Сохранение ссылки в файл

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

Система компоновки данных

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

П
остроитель отчета – это объект, n указание выражения для полу- гие отчеты в типовых конфигурациях
позволяющий на основе задан- чения представления значения переписываются с использованием
ного текста запроса и настро- поля; СКД. Например, отчеты «Расчетные
ек получить результат и вывести его n указание выражений упорядочива- листки», «Штатная расстановка», «За-
в табличный документ или диаграмму. ния для поля; нятость сотрудников» и многие другие
Основной задачей построителя явля- n указание таблиц для получения ха- в конфигурации «Зарплата и управле-
ется изменение текста запроса на ос- рактеристик; ние персоналом» версии 2.5.9.2.
новании указанных настроек, а также n указание роли поля; Получается, не изучив новые воз-
динамическое формирование выход- n использование вычисляемых по- можности платформы, такие как СКД,
ных данных. лей; просто невозможно шагать в ногу
Си с те м а ко м п о н о в к и д ан н ы х n возможность группировки условий со временем. Развивая платформу,
(СКД) – средство, предназначенное отбора по «И/ИЛИ»; разработчики меняют и типовые реше-
для создания отчетов на основе их n возможность использования усло- ния, с которыми работают пользовате-
декларативного описания, позволяет вий отбора с участием нескольких ли и программисты. Поэтому наш про-
описать отчет как единое целое, предо- полей; фессиональный уровень должен расти,
ставляя как пользователям, так и раз- n поля выбора и поля выражения, за- успевая за всеми новинками, которые
работчикам практически неограничен- даваемые пользователем; преподносят нам разработчики.
ные возможности получения данных. n получение различных срезов ин- Примеры создания отчета с ис-
СКД имеет сложную структуру и мо- формации в одном отчете; пользованием системы компоновки
жет содержать произвольный набор n вывод номера по порядку; данных «1С:Предприятие 8» можно
таблиц и диаграмм. n вывод общих процентов и процен- найти по адресу http://v8.1c.ru/overview/
Новые возможности построения тов в группировке. dcs_sample_report.htm или на диске ин-
отчетов, предоставляемые системой формационно-технологического со-
компоновки данных: Система компоновки данных пов- провождения (ИТС) в разделе «Но-
n использование нескольких наборов семестно приходит на смену построи- вое в версии 8.1 для разработчиков».
данных в одном отчете; телю отчетов. Так, полностью перера- Также можно увидеть СКД в действии
n указание набора данных для пост- ботана всем известная стандартная в бесплатно распространяемой конфи-
роения иерархии; обработка КонсольОтчетов.epf, мно- гурации «Примеры 8.1».

№8, август 2008 53


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

Установка цепочки
серверов сертификации как
часть внедрения PKI в домене
Часть 1

Станислав Шпак
Электронные подписи, шифрование данных, IPSec, вход в систему по смарт-картам, и все
это с использованием цифровых сертификатов – возможно практически в любом домене.
Нужно лишь спланировать и внедрить инфраструктуру открытого ключа. А установка серверов
сертификации – наиболее важная часть этого процесса. От того, как вы проведете ее, зависит
бесперебойность работы всей инфраструктуры PKI в целом.

И
нфраструктура открытого клю- или поздно вы придете к идее развер- Microsoft Windows центром сертифика-
ча (Public Key Infrastructure) нуть ее в масштабах поддерживаемо- ции становится компьютер с серверной
не является жизненно необхо- го вами домена. PKI – это комбинация операционной системой, на котором
димой для работы домена. Вы може- из ряда совместно работающих служб установлены и запущены службы сер-
те годами не внедрять ее на предпри- и компонентов. Одним из ключевых яв- тификации (Certificate Services). В ста-
ятии и не испытывать никаких проблем. ляется центр сертификации (Certificate тье будут рассматриваться СА, работа-
Но когда вы начинаете задумываться Authority – CA) – доверенный субъект ющие на Windows 2003 Server.
о безопасности, о тех возможностях, или служба для выдачи и управления Microsoft рекомендует тщательно
которые дает внедрение PKI, то рано цифровыми сертификатами. В сети спланировать PKI, прежде чем при-

54
безопасность
ступать к действиям по развертыва- и используется, во-первых, для усиле-
нию компонентов. Что касается СА, ния безопасности всей структуры, а во-
то нужно решить, будет ли использо- вторых, в случае, когда на втором уров-
ваться только свой собственный центр не больше чем один СА, для назначе-
сертификации либо же придется при- ния различных операционных политик
бегать к услугам и открытых (пуб- или политик безопасности для CA ниж-
личных) СА, таких как VerySign. Осо- них уровней. В рассматриваемой схе-
бую роль имеет планирование распо- ме введение промежуточного второ-
ложения, количества и типа СА. Су- го уровня не является обязательным
ществует два основных типа СА: СА и используется с целью приведения
предприятия (enterprise CA) и изоли- к «классическому» виду и для возмож-
рованный СА (stand-alone CA). В свою ности маштабируемости в дальней-
очередь они подразделяются на два шем. По рекомендации Microsoft из со-
подтипа: корневой (root) и подчинен- ображений безопасности, СА первых
ный (subordinate). Тип СА определяет, двух уровней должны быть изолиро-
где хранится база сертификатов (ло- ваны от сети, а после установки и пер-
кально или в Active Directory), как из- вичной настройки – храниться в надеж-
даются сертификаты (автоматически ном, защищенном от доступа посто-
по шаблонам или вручную) и т. п. Кро- ронних месте в выключенном состо-
ме того, издающим (issuing) называет- янии. Выполнению этого требования
ся СА, который обрабатывает запросы может помочь применение виртуаль-
конечных пользователей. ных машин – использование VMware Рисунок 1. Структура из трех СА
или Virtual Server идеально подходит
Выбор структуры CA как для обеспечения безопасности n Списки отзыва сертификатов
Необходимо спланировать многоуров- на этапе развертывания инфраструк- и интервал их публикации. В слу-
невую структуру СА. Теоретически воз- туры, так и для последующей физичес- чае если сертификат стал ненуж-
можно использование одного центра кой изоляции серверов. ным или недействительным до ис-
сертификации одновременно в качест- И наконец, подчиненный СА уров- течения срока его жизни, его мож-
ве корневого СА предприятия и издаю- ня предприятия (EntCA) получает сер- но отозвать вручную (пометить
щего одновременно, но такая конфи- тификат от промежуточного СА, нахо- как недействительный). При этом
гурация настоятельно не рекоменду- дится в домене Active Directory и выпус- его номер попадает в список отзы-
ется как из соображений безопаснос- кает сертификаты по запросам конеч- ва (Certificate Revocation List – CRL).
ти, так и из соображений дальнейшей ных пользователей либо в ручном, ли- Этот список должен периодически
масштабируемости. бо в автоматическом режиме по шаб- обновляться и быть всегда доступ-
Microsoft рекомендует использо- лонам (рекомендуется). Для отказо- ным для проверки. Когда приложе-
вать число уровней СА от 2 до 4: ис- устойчивости нужно иметь как мини- ние проверяет действительность
пользование более глубокой структу- мум два выпускающих СА на каждый сертификата, происходит не толь-
ры становится трудным в управлении. промежуточный СА, однако мы будем ко проверка даты и срока дейст-
Можно назвать «классической» рассматривать установку только од- вия сертификата, но и отсутствие
схему из трех уровней СА (см. рис. 1): ного сервера. его номера в списке отзыва. Сер-
n первый уровень: изолированный тификат считается недействитель-
корневой СА; Определение ным, если его номер содержится
n второй уровень: изолированный функциональных в CRL либо CRL недоступен. Спи-
подчиненный СА (еще он называ- параметров для СА сок отзыва кэшируется на сторо-
ется промежуточным, (intermediate), Когда структура СА определена, нуж- не клиента и обновляется в соот-
или policy CA); но учесть еще ряд важных параметров, ветствии с временем жизни CRL,
n третий уровень: подчиненный СА влияющих на работу каждого из СА. поэтому возможны ситуации, ког-
уровня предприятия, он же выпус- К таковым параметрам относятся: да сертификат отозван, опублико-
кающий СА. n Срок жизни сертификатов. Здесь ван в CRL, но какое-то время еще
надо учитывать баланс между со- может считаться действительным.
Развертывание именно такой ображениями безопасности (мень- Это надо учитывать при опреде-
структуры и будет рассматриваться ший срок действия) и соображени- лении интервала публикации CRL.
в этой статье. Что она дает: изолиро- ями легкости обслуживания (боль- Для выпускающего СА интервал
ванный СА первого уровня (RootCA) ший срок действия). Мы выберем оставим по умолчанию в 1 неделю,
выпускает самоподписанный сертифи- для сертификатов корневого СА для промежуточного – 3 месяца,
кат сам себе и используется в качестве срок действия 20 лет, для подчи- для корневого – полгода. Для са-
корня структуры. Изолированный под- ненного СА – 10 лет, выпускающе- моподписанного сертификата кор-
чиненный СА второго уровня (SubCA) го СА – 5 лет и для сертификатов невого СА этот параметр неприме-
получает сертификат от корневого СА пользователей – 1 год. ним.

№8, август 2008 55


безопасность
n Сведения о доступе к СА (Authority дупредит вас об отсутствии этого фай- СА. Обратите внимание, что enterprise-
Information Access – AIA). В точке ла, но и не будет проверять его кор- типы СА будут недоступны (компью-
публикации AIA располагается сер- ректность. тер – не член домена). Выбираем
тификат СА, который также должен Отсутствие файла capolicy.inf или Stand-Alone root CA, устанавливаем
быть доступен для клиента. Клиент его неправильное конфигурирование галку Use custom setting to generate the
использует сертификаты СА как приведет к тому, что СА будет уста- key pair and CA certificate и нажимаем
часть проверки действительности новлен с параметрами по умолчанию, «Далее». При этом на следующем ша-
сертификата. поскольку для него нет родительско- ге можно будет выбрать поставщика
го СА, от которого можно было бы их служб криптографии (Cryptographic
После выбора предполагаемых ра- унаследовать. Изменить некоторые Service Provider – CSP) (по умолчанию
бочих параметров каждого из СА мож- из них после установки будет невоз- Microsoft), хэш-алгоритм и длину клю-
но перейти непосредственно к их ус- можно, и, как следствие, придется пе- ча. Для нашего типа СА выберем дли-
тановке. Надо иметь в виду, что имя реустанавливать службы сертифика- ну ключа в 4096 бит, остальные пара-
компьютера и доменную принадлеж- ции заново. Это не так страшно, пока метры оставим без изменений (пара-
ность после установки служб серти- СА единственный в структуре, но прак- метр Allow this CSP to interact with the
фикации менять уже будет нельзя. тически невыполнимо после разверты- desktop нужен, например, при исполь-
В качестве доменного окружения бу- вания СА нижележащих уровней. зовании смарт-карт).
дем рассматривать лес, состоящий из Значения параметров в разделе На следующем шаге нас попросят
одного дерева и двух доменов. Домен [Certsrv_Server] должны быть не мень- указать имя нашего СА и отличитель-
Dedicated.Root представляет собой ше, чем те, которые будут запраши- ное имя (distinguished name). В послед-
корневой домен, домен Res.Dom – до- ваться мастером установки. нем случае надо указать правильное
черний (ресурсный). Службы сертифи- Как уже было сказано, корневой имя по отношению к контексту Active
кации на третьем уровне будем разво- СА издает самоподписанный серти- Directory, несмотря на то что этот СА
рачивать на компьютере EntCA – чле- фикат, который не имеет списка от- не является СА уровня предприятия.
не домена Dedicated.Root. зывов. Поэтому очень важно разде- Итак, в качестве имени СА использу-
лы [CRLDistributionPoint] и [Authority ем RootCA, в качестве отличительного
Установка корневого СА InformationAccess] указать в явном ви- имени вводим DC=dedicated,DC=root.
Поскольку корневой СА будет изоли- де и оставить пустыми. Значение Validity Period указывает
рованный, то перед установкой убе- В итоге у нас получается вот такое на время жизни сертификата. Как бы-
дитесь, что компьютер не включен содержимое файла capolicy.inf: ло указано выше, срок службы для кор-
в домен, а также имеет имя, которое невого СА сделаем равным в 20 лет.
впоследствии не планируется менять – [Version] Далее происходит генерация крипто-
Signature= "$Windows NT$"
в нашем случае RootCA. [Certsrv_Server] материала, и нужно немного подож-
Далее надо подготовить специаль- RenewalKeyLength=4096 дать окончания этого процесса.
RenewalValidityPeriod=Years
ный файл capolicy.inf, который должен RenewalValidityPeriodUnits=20 Зак лючительным шагом явля-
быть помещен в %Systemroot%. Нали- [CRLDistributionPoint] ется указание расположения фай-
[AuthorityInformationAccess]
чие этого файла для установки корне- лов баз данных сертификатов, жур-
вого СА очень важно, поскольку в нем Также перед установкой служб сер- налов регистрации и общей папки
задаются все исходные параметры тификации имеет смысл установить для расположения информации, тре-
для СА. Более того, мастер установки службы Internet Information Services буемой для клиентов (по умолчанию
служб сертификации не только не пре- и поддержку ASP.NET. Для работы кор- это C:\CAConfig). Несмотря на то что
невого и промежуточного СА их нали- это изолированный СА, все равно ло-
чие совсем не обязательно, но это мо- кальная папка будет создана и, в слу-
жет несколько облегчить дальнейший чае наличия сетевого интерфейса, от-
выпуск сертификатов для СА нижних крыта для общего доступа.
уровней, несмотря на то что почти все
действия, доступные через веб-интер- Проверка и настройка
фейс, можно продублировать и через RootCA
консоль управления службами серти- Поскольку корневой СА является от-
фикации. правной точкой для всей цепочки СА,
Теперь можно открыть «Панель очень важно внимательно проверить
управления → Установка и удаление и сконфигурировать его. Первое, что
программ → Установка компонентов необходимо сделать, это просмот-
Windows» и выбрать Certificate Services реть сертификат, который СА выдал
(службы сертификации). Будет показа- сам для себя (см. рис. 2). Это можно
но предупреждение о том, что после сделать, заглянув в папку C:\CAConfig.
завершения установки изменить имя Там уже должен лежать файл <имя_
компьютера будет уже нельзя. Далее сервера>_<имя_СА>.crt. В нашем слу-
Рисунок 2. Самоподписанный сертификат
корневого СА будет предложено сделать выбор типа чае это файл RootCA_RootCA.crt.

56
безопасность
Что должно быть в сертификате: обходимость перевыпустить все сер-
n на вкладке General: значения по- тификаты, которые были выпущены
лей Issued by и Issued to должны до того, как этот список изменился.
совпадать и указывать на только Во-вторых, недоступность CRL оз-
что установленный СА (в нашем начает недействительность сертифи-
случае это RootCA). Диапазон вре- ката, поэтому надо предусмотреть как
мени, в течение которого сертифи- минимум два разных места располо-
кат считается действительным, дол- жения CRL.
жен быть верен и соответствовать В-третьих, не рекомендуется остав-
тому, что задавали при установке; лять в списке неиспользуемые точки
n на вкладке Details: в перечне атри- распространения.
бутов сертификата должны отсутс- В-четвертых, порядок просмотра
твовать атрибуты CRL Distribution CDP тоже важен – первыми в списке
Points и Authorit y Information должны быть те точки, которые смо-
Access; гут обслуживать больше всего клиен-
n на вкладке Certification Path: тов и быть доступными как можно ча-
в нижнем поле должна быть над- ще. Хорошим решением считается рас- Рисунок 3. Задание CDP на корневом СА
пись This certificate is OK. положение одной из CDP на корпора-
тивном сайте, с тем чтобы она была до- Delta-CRL относится к новшест-
Посмотреть сертификат можно ступна из Интернета. вам, появившимся в Windows 2003
и другим методом – воспользоваться Если посмотреть на предлагаемые Server (и, кстати, не поддерживающим-
оснасткой Certification Authority, кото- по умолчанию варианты, то без труда ся клиентами ниже Windows XP). Если
рая доступна в разделе Administrative можно сделать вывод, что в качестве вы ожидаете активного использова-
Tools панели управления. CDP может выступать: Active Directory, ния сертификатов и их частых отзы-
После ее запуска должно автома- локальная файловая система, UNC- вов, то вам нужно устанавливать бо-
тически произойти подключение к те- путь и http-путь. Каждый из этих ва- лее частый интервал обновления CRL.
кущему серверу, при этом в дереве риантов имеет свои плюсы и минусы. При этом сам список отзывов будет все
слева он должен быть помечен зеле- Например, как уже было сказано, http более и более увеличиваться в разме-
ной галочкой. Щелкнув на нем пра- удобно использовать когда требует- рах, что может затруднять его загруз-
вой кнопкой мыши и выбрав Properties ся обеспечить доступ к CRL клиентов ку клиентами. В таких случаях мож-
на вкладке General, можно обнаружить снаружи корпоративной сети. Active но использовать delta-CRL для мини-
кнопку View Certificate. Этот метод луч- Directory удобна внутри сети, но нуж- мизации трафика. Клиент загружа-
ше, так как сразу позволяет убедить- но учитывать интервалы репликации ет сам список CRL и до истечения его
ся в том, что службы сертификации ус- AD и публикации CRL – если CRL пуб- срока действия загружает изменения,
пешно запустились, иначе возникла бы ликуется чаще, чем время полной реп- произошедшие в CRL после его пуб-
ошибка подключения к СА. К тому же ликации внутри домена, то использо- ликации.
именно тут мы и продолжим конфигу- вать AD не рекомендуется. Таким образом, можно делать ин-
рирование СА и перейдем к указанию Кроме того, к каждой из CDP можно тервал публикации CRL более длин-
точек распространения CRL и AIA. указать дополнительные опции: ным, а delta-CRL публиковать ча-
Напомню еще раз про важность CRL n Publish CRL in this location – ука- ще. Однако это имеет смысл делать
для проверки действительности серти- зывает на то, что СА будет автома- только на выпускающем СА и толь-
фиката. Задать точки распростране- тически пытаться произвести пуб- ко при вышеназванных условиях, по-
ния CRL (CRL Distribution Points – CDP) ликацию CRL в этой точке. Для изо- этому для данного и последующих СА
можно перейдя на вкладку Extensions лированного СА эту опцию стоит везде отключаем опции, связанные
(Расширения) в окне свойств СА. Вы- устанавливать только для локаль- с delta-CRL.
падающий список в верхней части ок- ной CDP; Вернемся к заданию точек распро-
на содержит всего два параметра: CRL n Include in all CRLs – активно толь- странения CRL. Поскольку наш СА бу-
и AIA. Оставим предложенный по умол- ко для LDAP CDP; дет отключен от сети, то необходимо
чанию CRL и обратимся к следующе- n Include in CRLs – добавляет эту оставить локальную точку распростра-
му полю, где перечислены места рас- CDP к атрибутам CRL, для того что- нения, которая идет в списке первой
положения для CRL. бы клиенты могли находить delta- и по умолчанию указывает в папку C:\
Здесь надо быть очень осторож- CRL (об этом чуть ниже); WINDOWS\system32\CertSrv\CertEnroll\.
ным – во-первых, указанные тут точки n Include in the CDP extension of Обратите внимание, что для этой CDP
распространения CRL могут включать- issued certificates – указывает помечена опция Publish CRL in this
ся во все издаваемые этим СА серти- на необходимость включения этой location. Для обеспечения доступнос-
фикаты. То есть теоретически возмож- CDP в список атрибутов выпуска- ти CRL мы оставим также LDAP-точ-
но изменить или дополнить этот список емых этим СА сертификатов; ку (указав опции Include in all CRLs
и после того, как СА начнет работать, n Publish delta CRLs to this location – и Include in the CDP extension of issued
на практике же это будет означать не- для публикации delta-CRL. certificates) и создадим новую точку,

№8, август 2008 57


безопасность
ши на Revoked Certificates. Выбираем
Properties и попадаем на вкладку CRL
Publishing Parameters. Здесь мы видим
настройки, касающиеся интервала об-
новления CRL и delta-CRL. Поскольку
это корневой СА и не ожидается слиш-
ком частого отзыва сертификатов,
то интервал можно сделать достаточно
длинным – например, 6 месяцев.
При выборе интервала имейте в ви-
ду, что вам вручную придется поме-
щать каждый раз публикуемый CRL
в заданные точки распространения.
Если вы не сделаете этого, то сертифи-
каты, выпущенные этим СА, окажутся
недействительными. Сделав необхо-
Рисунок 4. Задание точек AIA Рисунок 5. Пример CRL димые настройки, нажмите ОК.
Первый CRL мы опубликуем вруч-
указывающую на общую сетевую папку в локальной сети ную – для этого на Revoked Certificate вызываем контекс-
(с опцией Include in the CDP extension of issued certificates). тное меню и выбираем «All Tasks → Publish». В появившем-
В качестве таковой папки введем UNC-путь к общей пап- ся окне соглашаемся с тем, что будет выпущен новый CRL,
ке, которую расположим впоследствии на нашем будущем и жмем ОК.
СА уровня предприятия с именем EntCA: file://\\Ent_CA\CDP\ После этого стоит перейти в папку, указанную как ло-
<CAName>. Конечный вид окна задания CDP представлен кальная точка публикации CRL (в нашем случае это C:\
на рис. 3. WINDOWS\system32\CertSrv\CertEnroll\), и убедиться, что
Аналогичные действия проведем и для точки публика- там появился файл RootCA.crl. Дважды щелкаем по этому
ции сведений о доступе к СА. В этом же окне из выпада- файлу, чтобы просмотреть его содержимое. Здесь нас ин-
ющего списка выше выбираем Authority Information Access тересуют дата следующего обновления (Next Update) и да-
(AIA) и видим аналогичный список точек публикации, толь- та следующей публикации CRL (Next CRL Publish).
ко опций для каждой точки несколько меньше. Список то- Обратите внимание, что эти даты не одинаковы – как ви-
чек публикации приводим в соответствие списку точек дим, дается время для того, чтобы обновленный CRL был
для CRL, указывая для LDAP- и FILE- точек опцию Include опубликован в точках распространения. Кроме того, пос-
in the AIA extension of issued certificates. Результат представ- леднее поле – Published CRL locations – должно соответс-
лен на рис. 4. твовать тому, что мы задавали при настройке CDP. А точнее,
Теперь можно нажать ОК и согласиться с тем, что служ- в качестве значения этого атрибута выступают те CDP, в оп-
бы сертификации должны быть перезапущены. циях которых было включено Include in all CRLs (см. рис. 5).
Однако прежде чем можно будет публиковать CRL, надо Обратите внимание на то, что в значении атрибута не долж-
произвести отображение пространства имен Active Directory ны присутствовать слова DC=UnavailableConfigDN – это го-
в реестр СА. Это требуется для того, чтобы указанные на- ворит о том, что не было сделано отображение пространст-
ми LDAP CDP были представлены в корректной форме. ва имен AD в реестр СА.
Делается это с помощью команды certutil.exe и для домена Последнее, что надо сделать в конфигурировании СА, –
Dedicated.Root выглядит следующим образом: это задать срок действия выдаваемых СА сертификатов.
Тот срок, который указывался при установки СА, относил-
certutil.exe –setreg ca\DSConfigDN ↵ ся к сроку жизни сертификата самого СА, а по умолчанию
CN=Configuration,DC=dedicated,DC=root
срок действия сертификатов – 1 год. Поскольку это кор-
Результат должен быть примерно следующим: невой СА и он будет выпускать сертификат для промежу-
точного СА, то фактически нам надо сейчас задать срок
SYSTEM\CurrentControlSet\Services\CertSvc\Configuration\RootCA\DSConfigDN:
New Value:
службы сертификата промежуточного СА. А его мы до-
DSConfigDN REG_SZ = CN=Configuration,DC=dedicated,DC=root говаривались установить равным 10 годам. Для того что-
CertUtil: -setreg command completed successfully.
The CertSvc service may need to be restarted for changes to take effect. бы воплотить это в жизнь, нужно открыть ветку реест-
ра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Только теперь можно производить публикацию CRL. Services\CertSvc\Configuration\<имя_СА> и изменить зна-
Это можно сделать с помощью команды «certutil -CRL» ли- чение параметра ValidityPeriodUnits, сделав его равным 10.
бо из оснастки Certificate Authority. Воспользуемся вторым Заодно нужно также проверить, чтобы значение парамет-
методом, так как нам необходимо еще будет сконфигури- ра ValidityPeriod было Years.
ровать интервал обновления CRL, а это удобнее сделать В следующей части статьи мы рассмотрим установ-
через графический интерфейс. ку промежуточного и выпускающего СА и настройку пос-
В оснастке Certificate Authority раскрываем узел, соот- леднего для работы в домене с использованием шабло-
ветствующий нашему СА, и щелкаем правой кнопкой мы- нов сертификатов.

58
Реклама
безопасность

OpenBSD
Имидж – ничто, безопасность – все!

Максим Гришков
Тот факт, что в мире нет совершенного программного обеспечения, не является большим
секретом. На момент релиза программный код любой операционной системы содержит
ошибки, которые влияют на ее производительность и надежность. Вследствии этого одной
из важных задач системного администратора является поддержание операционной системы
в актуальном, с точки зрения безопасности и надежности, состоянии путем наложения патчей
и обновлений.
Основная часть ка, в этом направлении команде раз- (http://www.openbsd.org/errata.html)
Несмотря на то что целью известного работчиков удалось достигнуть зна- официального сайта проекта, где спис-
проекта OpenBSD является разработ- чительных успехов, через некоторое ки выявленных ошибок сгруппированы
ка операционной системы (ОС), кото- время после выхода очередного ре- согласно релизам, в которых они бы-
рая характеризуется высокими пока- лиза данной ОС появляется инфор- ли выявлены: например, errata43.html –
зателями чистоты кода, безопаснос- мация о выявленных потенциальных ошибки, выявленные после выхода ре-
ти, стандартизации и портируемос- уязвимостях. Эту информацию мож- лиза 4.3. Страничка также содержит
ти и, как свидетельствует статисти- но почерпнуть на страничке «Ошибок» краткое описание, характеристику (бе-

60
безопасность
зопасность или надежность) и ссылку исходных кодов с помощью стабильной 4.3/common/003_xorg.patch
на заплатку (патч), с помощью кото- (патчевой) ветки с последующей пере-
4.3/common/004_bind.patch
рой можно избавиться от уязвимости. сборкой ядра и встроенного програм-
На момент написания статьи странич- много обеспечения (userland) – более 4.3/common/005_pcb.patch
ка релиза 4.3 содержала 5 записей. длительный, но и более автоматизиро-
Согласно терминологии, исполь- ванный (если синхронизацию перело- Как видно из вывода архивато-
зуемой внутри проекта, ваша систе- жить на могучие плечи cron) процесс. ра, в архиве находятся 5 патчей. Все
ма может находиться в одном из 3 воз- Он также позволяет исправить неза- они расположены в каталоге common,
можных состояний: релиз (-release), крытые патчами ошибки. что свидетельствует об их платформо-
стабильное (-stable) или текущее Перед тем как приступить непо- независимости. Назначение патча лег-
(‑current). Разница между этими со- средственно к наложению патчей или ко узнать, используя команду head.
стояниями заключается в том, что ре- синхронизации исходного кода, необ-
лиз – это версия, выпускаемая проек- ходимо его (код) заполучить. Самый $ cd /usr/src/patches/4.3/common
$ head -n 11 001_openssh.patch
том согласно графику релизов каждые простой способ загрузить его по ftp
Apply by doing:
6 месяцев на CD, стабильная система – (ftp://ftp.openbsd.org/pub/OpenBSD/4.3) cd /usr/src
это релиз с наложенными на него пат- или скопировать с CD (обычно это тре- patch -p0 < 001_openssh.patch
чами на текущий момент времени. Пат- тий CD в стандартной поставке). Ис-
чи представляют собой порции исход- ходный код, хранящийся на ftp-серве- And then rebuild and install file:
ного кода, содержащие очень важные ре, разделен на несколько файлов: cd usr.bin/ssh
make obj
исправления, сделанные и опробован- n src.tar.gz – содержит исходный код make cleandir
ные в текущей ветке. Подразумевает- набора встроенного ПО; make depend
ся, что для того, чтобы обладать на- n sys.tar.gz – содержит исходный код make
make install
илучшими показателями стабильнос- ядра;
ти и надежности ОС, OpenBSD долж- n xenocara.tar.gz – содержит исход- Из вывода следует, что патч пред-
на быть приведена к стабильному со- ный код модифицированной сис- назначен для исправления исходно-
стоянию. При этом следует учитывать, темы X-Window X.org или Xenocara, го кода элемента встроенного ПО
что поддержка новых устройств и кар- в интерпретации OpenBSD). (в частности OpenSSH) и потребует
динально новые свойства, реализо- пересборки толького этого элемента.
ванные в текущей ветке не попадают После загрузки необходимо разар- Тут же приведены инструкции по нало-
в стабильную. Текущая ветка в свою хивировать src.tar.gz и sys.tar.gz в ди- жению патча (первый абзац) и после-
очередь предназначена в основном ректорию /usr/src, а xenocara.tar.gz дующей пересборке приложения (вто-
для разработчиков и является поли- в – /usr. рой абзац).
гоном для испытания нововведений.
Ни один здравомыслящий системный $ cd /usr/src $ head 003_xorg.patch
# tar -xvzf /usr/sys.tar.gz
администратор не станет обновлять # tar -xvzf /usr/src.tar.gz Apply by doing:
ОС ответственного сервера до теку- $ cd /usr cd /usr/xenocara
# tar -xvzf /usr/xenocara.tar.gz #Assuming Xenocara is in /usr/xenocara
щего состояния. patch -p0 < 003_xorg.patch
Существуют два способа приве- После извлечения исходников мож-
And then rebuild and install the X server:
дения системы к стабильному состоя- но переходить к делу. Начнем с пат- cd xserver
нию. Первый – это наложение патчей чей. make -f Makefile.bsd-wrapper build
вручную, второй – использование ста-
Index: xserver/Xext/security.c
бильной (патчевой) ветки исходных ко- Накладываем заплатки
дов системы, которая содержит все ис- Патчи можно скачать как в виде отдель- Этот патч предназначен для ис-
правления для обновления системы. ных файлов (001_openssh.patch и т. д.), правления исходного кода Xenocara,
Следует учитывать тот факт, что ис- так и единым архивом (4.3.tar.gz). Сде- он также потребует пересборки толь-
ходный код стабильной ветки кроме лать это можно или с упомянутой выше ко этого элемента.
обновлений, вышедших в виде патчей, странички errata43.html или непосред-
также содержит очевидные и простые ственно по ftp (ftp://ftp.openbsd.org/pub/ $ head 005_pcb.patch
исправления, которые были признаны OpenBSD/4.3). Apply by doing:
недостойными включения в список пат- После скачивания необходимо рас-
cd /usr/src
чей на страничке «Ошибок». Разница паковать архив, содержащий патчи
между способами заключается в том, в какую-нибудь директорию, напри- patch -p0 < 005_pcb.patch
что в случае наложения патчей будут мер /usr/src/patches. Then build and install a new kernel.
закрыты только те ошибки, которые
были признаны критичными, в следс- # mkdir /usr/src/patches Комментарий «Then build and install
$ cd /usr/src/patches
твие этого существенно сокращается # tar -xvzf /usr/4.3.tar.gz a new kernel» указывает на то, что патч
время, затрачиваемое на исправле- 4.3/common/001_openssh.patch
предназначен для исправления исход-
ние ошибок (даже в случае пересбор- ного кода ядра и потребует его даль-
ки ядра). В свою очередь обновление 4.3/common/002_openssh2.patch нейшей пересборки (см. далее).

№8, август 2008 61


безопасность
На этом все премудрости работы с патчами, собственно, Непосредственно процесс пересборки ядра предель-
и заканчиваются. После просмотра заголовка патча (коли- но прост:
чество строк, выводимых командой head, может быть уве-
личено при помощи параметра -n), остается только, следуя $ cd /usr/src/sys/arch/i386/conf
# config GENERIC
полученым инструкциям, пропатчить (команда patch) и пе- # cd ../compile/GENERIC
ресобрать приложение или ядро. # make clean && make depend && make
# make install

Следуем стабильной (патчевой) ветке Правда, стоит отметить, что он длится довольно долго:
исходного кода от 30-40 минут на современной технике до суток на рари-
Поскольку разработчики OpenBSD используют для управ- тетном железе (которое частенько используется для уста-
ления исходным кодом систему контроля версий CVS, её новки OpenBSD). После завершения сборки ядра необхо-
можно использовать для получения и обновления локаль- димо перезагрузить компьютер для загрузки нового ядра.
ной копии дерева исходных кодов, находящейся в директо- Если по какой-то причине собранное ядро не может быть
рии /usr/src. Для начала необходимо выбрать один из ано- загружено, процесс загрузки будет остановлен и появится
нимных CVS (AnonCVS) серверов проекта. Это можно сде- приглашение загрузчика: «boot>».
лать на страничке http://www.openbsd.org/anoncvs.html офи- В этом случае необходимо загрузить копию старого ра-
циального сайта. После выбора сервера можно приступать бочего ядра, исправить ошибки в конфигурационном фай-
к обновлению дерева исходных кодов. ле и повторить процедуру.

$ cd /usr/src boot> bsd.old


# export CVSROOT=anoncvs@anoncvs.de.openbsd.org:/cvs
# cvs -d$CVSROOT up -rOPENBSD_4_3 -Pd
Если пересборка ядра завершилась успешно, можно
В данном примере был использован анонимный CVS-сер- приступать к пересборке встроенного ПО. Следует быть
вер anoncvs.de.openbsd.org. Параметр up команды cvs обес- особо внимательным при выполнении команды rm с фла-
печивает обновление локальной копии дерева исходных ко- гами -rf от пользователя root, ошибочно указав директорию
дов. Флаг -r позволяет выбрать версию (ревизию) исходного (не /usr/obj/*), можно в лучшем случае лишиться копии де-
кода для обновления. Флаги -Pd позволяют cvs во время об- рева исходных кодов, в худшем – системы.
новления удалять пустые директории дерева и создавать но-
вые (без этих флагов обновление закончится неудачей). # rm -rf /usr/obj/*
$ cd /usr/src
Команду cvs также можно использовать для получе- # make obj
ния дерева исходных кодов и дерева портов, указав оп- # cd /usr/src/etc && env DESTDIR=/ make distrib-dirs
# cd /usr/src
цию checkout и ветвь, которую нужно скачать (src, xenokara, # make build
ports). Пример для скачивания исходных кодов ядра и встро-
енного ПО. По сравнению со сборкой ядра процесс сборки встро-
енного ПО еще более длительный (на слабой машине мо-
$ cd /usr жет длиться более суток). После завершения пересбор-
# export CVSROOT=anoncvs@anoncvs.de.openbsd.org:/cvs
# cvs -d$CVSROOT checkout -rOPENBSD_4_3 -P src ки встроенного ПО систему можно считать обновленной
до стабильного состояния.
После того как наложены заплатки, либо дерево ис-
ходных кодов синхронизировано со стабильной (патче- Заключение
вой) веткой, можно пересобирать ядро и встроенное ПО Команда разработчиков ОС OpenBSD прилагает много уси-
(userland). лий для своевременного и оперативного исправления вы-
явленных в процессе эксплуатации ПО ошибок. Разраба-
Пересобираем ядро и встроенное ПО тываемая ими система включает достаточный и подробно
Сборка ядра происходит с параметрами, которые хранятся документированный инструментарий для поддержания бе-
в файле конфигурации ядра. Обычно этот файл находится зопасности на высоком уровне.
в директории conf по адресу /usr/src/sys/arch/<платформа>/ Обновлять или патчить, каждый решает сам, но с тем,
conf. Файл конфигурации ядра, поставляемый с дистрибу- что безопасности системы необходимо уделять особое вни-
тивом, по умолчанию носит название GENERIC. Разработ- мание, я думаю, согласится каждый.
чики OpenBSD уверяют, что этот конфигурационный файл
подойдет для большинства случаев, за исключением сис- 1. OpenBSD 4.3 release errata & patch list – http://www.openbsd.org/
тем с нестандартным оборудованием, очень маленьким errata43.html.
обьемом оперативной памяти, а также в случае, если вас 2. Documentation and Frequently Asked Questions – http://www.
интересует активация экспериментальных или выключен- openbsd.org/faq.
ных по умолчанию функций. 3. Anonymous CVS – http://www.openbsd.org/anoncvs.html.
Перед сборкой ядра необходимо сделать резервную ко- 4. Following -stable (the «Patch branch») – http://www.openbsd.org/
пию работающего в данный момент ядра: stable.html.
5. Patching and Kernel Building – http://www.openbsd101.com/
# cp /bsd /bsd.old patching.html.

62
bugtraq

Обход аутентификации Несколько уязвимостей в продуктах CA


в IBM WebSphere Portal Server Программа: CA Host-Based Intrusion Prevention System
Программа: IBM WebSphere Portal Server версии 5.1.0.0, (CA HIPS) 8.x; CA Internet Security Suite 2007; CA Internet
5.1.0.1, 5.1.0.2, 5.1.0.3, 5.1.0.4, 5.1.0.5, 6.0.0.0, 6.0.0.1, 6.0.1.0, Security Suite Plus 2008; CA Personal Firewall 2007; CA Personal
6.0.1.1, 6.0.1.3 и 6.1.0.0. Firewall 2008.
Опасность: Средняя. Опасность: Средняя.
Описание: Уязвимость существует из-за того, что админис- Описание: 1. Уязвимость существует из-за ошибки при об-
тративный интерфейс недостаточно ограничивает доступ работке IOCTL-запросов в драйвере ядра kmxfw.sys. Локаль-
к некоторым страницам. Удаленный пользователь может ный пользователь может с помощью специально сформиро-
с помощью специально сформированного HTTP-запроса ванного IOCTL-запроса аварийно завершить работу систе-
произвести некоторые административные действия. мы или выполнить произвольный код с привилегиями учет-
URL производителя: www-306.ibm.com/software/genservers/ ной записи SYSTEM.
portal. 2. Уязвимость существует из-за неизвестной ошибки
Решение: Установите последнюю версию 6.0.1.4 с сайта в драйвере kmxfw.sys. Удаленный пользователь может про-
производителя. извести DoS-атаку.
URL производителя: www.ca.com.
Множественные уязвимости в Ruby Решение: Установите исправление с сайта производителя.
Программа: Ruby 1.8.5 и более ранние версии; Ruby 1.8.6-
p286 и более ранние версии; Ruby 1.8.7-p71 и более ран- Множественные уязвимости в Python
ние версии. Программа: Python версии 2.4.x, 2.5.x.
Опасность: Средняя. Опасность: Средняя.
Описание: 1. Множественные ошибки обнаружены в ре- Описание: 1. Целочисленные переполнения обнару-
ализации ограничений безопасных уровней (safe level жены в основных модулях stringobject, unicodeobject,
restrictions). Удаленный пользователь может вызвать функ- bufferobject, longobject, tupleobject, stropmodule, gcmodule
цию untrace_var(), произвести операции syslog и изменить и mmapmodule.
$PROGRAM_NAME на безопасном уровне 4 или вызвать 2. Целочисленное переполнение обнаружено в hashlib-
небезопасные методы на безопасных уровнях 1-3. модуле, что может привести к ненадежным криптографи-
2. Уязвимость существует из-за использования регу- ческим результатам.
лярных выражений в WEBrick::HTTPUtils.split_header_value(). 3. Целочисленное переполнение обнаружено при обра-
Удаленный пользователь может с помощью специально ботке Unicode-строк. Злоумышленник может вызвать пере-
сформированного HTTP-запроса потребить все доступные полнение буфера на 32-битной системе.
ресурсы процессора на системе. 4. Целочисленное переполнение обнаружено в функции
3. Уязвимость существует из-за ошибки в DL, кото- PyOS_vsnprintf() на архитектурах, которые не поддержива-
рая позволяет удаленному пользователю обойти ограни- ют функцию vsnprintf().
чения безопасности и выполнить потенциально опасные 5. Целочисленное переполнение обнаружено в функции
функции. PyOS_vsnprintf() при обработке строк нулевой длины. Зло-
4. Уязвимость существует из-за того, что resolv.rb ис- умышленник может вызвать повреждение памяти.
пользует предсказуемый номер порта для DNS-запроса. URL производителя: python.org.
Удаленный пользователь может отравить DNS-кэш. Решение: Установите исправление из SVN-репозитория
URL производителя: www.ruby-lang.org/en. производителя.
Решение: Установите последнюю версию с сайта произ-
водителя. Выполнение произвольных команд
в Sun Solaris
Обход ограничений безопасности Программа: Sun Solaris 8, 9, 10.
в Symantec Veritas Storage Foundation Опасность: Средняя.
Программа: Symantec Veritas Storage Foundation версии Описание: Уязвимость существует из-за неизвестной
5.0, 5.0 RP1a и 5.1. ошибки в сетевой утилите snoop(1M), относящейся к отоб-
Опасность: Средняя. ражению SMB-трафика. Удаленный пользователь может
Описание: Уязвимость существует из-за того, что кон- с помощью специально сформированного пакета, прочи-
соль управления позволяет NULL NTLMSSP-аутентифи- танного или перехваченного приложением через опцию ‑i,
кацию. Удаленный пользователь может обойти встроен- выполнить произвольные команды на системе с привиле-
ный механизм аутентификации и добавит, удалить или из- гиями пользователя snoop или nobody. Для успешной экс-
менить задачи по расписанию и скомпрометировать целе- плуатации уязвимости требуется, чтобы приложение было
вую систему. запущено без опции -o.
URL производителя: www.symantec.com/enterprise/products/ URL производителя: www.sun.com
overview.jsp?pcid=1020&pvid=203_1. Решение: Установите исправление с сайта производителя.
Решение: Установите исправление с сайта производителя.
Составил Александр Антипов

№8, август 2008 63


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

Настраиваем
TLS/SASL-шифрование
и аутентификацию
в MTA Sendmail

Андрей Маркелов

При помощи механизма STARTTLS и сертификатов мы попробуем настроить взаимную


аутентификацию и шифрование пересылаемой почты между двумя почтовыми серверами
с MTA Sendmail. Также при помощи TLS защитим отправляемую клиентами на сервер почту
и настроим почтовый релей для пересылки корреспонденции только тех пользователей,
которые предъявят сертификат, выданный нашим центром сертификации (CA).

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

S
TARTTLS (RFC 2487) является расширением прото- # Директория с сертификатами
define(`confCACERT_PATH', `/etc/pki/tls/certs')dnl
кола SMTP. STARTTLS в первую очередь предназна-
чен для поддержки TLS-шифрования и аутентифи- # Сертификат CA, выдавшего сертификат нашему серверу.
# Не забудьте его также скопировать в указанную директорию
кации между двумя почтовыми серверами. Но как вы уви- define(`confCACERT', `/etc/pki/CA/cacert.pem')dnl
дите далее, он с успехом может применяться и почтовы-
# Сертификат нашего сервера, используемый во время
ми клиентами. # приема почты
MTA Sendmail в нашей тестовой конфигурации будет define(`confSERVER_CERT', ↵
`/etc/pki/tls/certs/sendmail.crt')dnl
работать на двух серверах Red Hat Enterprise Linux 5.1. Вы-
бор не является принципиальным – вы можете использо- # Приватный ключ нашего сервера
define(`confSERVER_KEY', ↵
вать ваш любимый или вовсе установить Sendmail в дру- `/etc/pki/tls/certs/sendmail.key')dnl
гой операционной системе, например Solaris. Единствен-
ное, с чем вы можете столкнуться, – отличие поставляе- и добавляем две новых строки:
мого по умолчанию в вашем дистрибутиве конфигураци-
онного файла sendmail.mc от использующегося в Red Hat # Сертификат и приватный ключ нашего сервера, используемый
# для отправления почты на другой сервер. Для простоты
Enterprise Linux/Fedora. # используем те же, файлы, что и в первом случае
Также предполагаем, что у нас есть настроенный центр define(`confSERVER_CERT', ↵
`/etc/pki/tls/certs/sendmail.crt')dnl
сертификации. Для простоты будем использовать OpenSSL, define(`confSERVER_KEY', ↵
но, естественно, это непринципиально. Один из наших тес- `/etc/pki/tls/certs/sendmail.key')dnl
товых серверов прекрасно справится с этой ролью. Конечно,
в реальной работе вы не должны разворачивать CA и пуб- Для проверки наших настроек зайдем на 25-й порт сер-
личный почтовый сервер на одной машине. вера при помощи команды telnet:
В качестве «компенсации» засилья Open Source-инстру-
ментов в роли MUA используем штатную в Windows Vista # openssl ca -in sendmail.csr -out sendmail.crt
программу Windows Mail. Trying 192.168.0.17...
Connected to station17.example.com (192.168.0.17).
Escape character is '^]'.
Базовые настройки и взаимодействие 220 station17.example.com ESMTP Sendmail 8.13.8/8.13.8; Thu, 31
двух почтовых серверов Jul 2008 14:21:33 +0400
Начнем с сертификата для MTA. Необходимо отметить,
EHLO station18.example.com
что STARTTLS в данном случае защищает только трафик
между двумя соответствующим образом настроенными 250-station17.example.com Hello station18.example.com
[192.168.0.18], pleased to meet you
почтовыми серверами. Нет никакой гарантии при отправ- 250-ENHANCEDSTATUSCODES
ке письма «во вне», что все релеи, через которые прой- 250-PIPELINING
250-8BITMIME
дет письмо, используют STARTTLS. Никогда не надо за- 250-SIZE
бывать, что отправка письма через Интернет аналогична 250-DSN
отправке почтовой карточки по обыкновенной почте. Текст 250-ETRN
250-STARTTLS
вашего письма может быть прочитан во всех точках, че- 250-DELIVERBY
рез которые пересылается письмо. Для гарантированной 250 HELP
защиты электронной почты между отправителем и полу- STARTTLS
чателем необходимо использовать шифрование при по-
220 2.0.0 Ready to start TLS
мощи S/MIME или GnuPG/PGP.
Генерируем для нашего сервера приватный ключ и со- QUIT
здаем запрос в центр сертификации:
Повторяем те же действия по настройке (включая вы-
# openssl genrsa 1024 > sendmail.key пуск второго сертификата) для второго сервера. В нашей
# openssl req -new -key sendmail.key -out sendmail.csr
ситуации оба сервера используют один и тот же удостове-
После чего необходимо переслать запрос на выда- ряющий центр. Если используются разные CA, то MTA бу-
чу сертификата в центр сертификации. Администратор дут необходимы корневые сертификаты обоих.
центра сертификации выпускает на основе запроса сер- Теперь если мы попробуем на одном из серверов локаль-
тификат: но запустить MUA, например mutt, и отправить сообщение
пользователю второго сервера, то на первом сервере в /var/
# openssl ca -in sendmail.csr -out sendmail.crt log/maillog увидим примерно такие сообщения:

Копируем полученный сертификат на почтовый сер- Jul 31 01:07:21 station18 sendmail[9558]: STARTTLS=client,
relay=station17.example.com., version=TLSv1/SSLv3, verify=OK,
вер и кладем рядом с ключом в директорию /etc/pki/tls/ cipher=DHE-RSA-AES256-SHA, bits=256/256
certs. Права на оба файла должны быть выставлены 600 Jul 31 01:07:21 station18 sendmail[9558]: m6UL7Lpc009556:
или 400. to=<andrey@station17.example.com>, ctladdr=<root@station18.exam-
ple.com> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=esmtp,
Далее начинаем править конфигурационный файл /etc/ pri=120467, relay=station17.example.com. [192.168.0.17],
mail/sendmail.mc. Редактируем пути и убираем коммента- dsn=2.0.0, stat=Sent (m6UL7LpK009193 Message accepted for
рии со строк: delivery)

№8, август 2008 65


безопасность
А на принимающем соответственно: «Скармливаем» персональный сертификат и серти-
фикат CA выбранному MUA, в нашем случае программе
Jul 31 01:07:21 station17 sendmail[9193]: STARTTLS=server,
relay=station18.example.com [192.168.0.18], version=TLSv1/SSLv3,
Windows Mail.
verify=OK, cipher=DHE-RSA-AES256-SHA, bits=256/256 А на сервере остается прописать, кому разрешена пе-
Jul 31 01:07:21 station17 sendmail[9193]: m6UL7LpK009193: ресылка почты через наш сервер:
from=<root@station18.example.com>, size=748, class=0, nrcpts=1,
msgid=<20080730210721.GA9548@station18.example.com>, proto=ESMTP,
daemon=MTA, relay=station18.example.com [192.168.0.18] # cat /etc/mail/access
Jul 31 01:07:21 station17 sendmail[9194]: m6UL7LpK009193:
to=<andrey@station17.example.com>, delay=00:00:00, xde-
Connect:localhost.localdomain RELAY
lay=00:00:00, mailer=local, pri=31037, dsn=2.0.0, stat=Sent Connect:localhost RELAY
Connect:127.0.0.1 RELAY
CERTISSUER:/C=GB/ST=Berkshire/L=Newbury/O=My+20Company+20Ltd/
Как видно из журнала, серверы аутентифицирова- CN=Station+2018+20CA RELAY
ли друг друга при помощи сертификатов, выданных од- CERTSUBJECT:/C=GB/ST=Berkshire/L=Newbury/O=My+20Company+20Ltd/
ним и тем же CA, и при пересылке письма информация CN=Station+2018+20CA RELAY

была зашифрована. Данный факт можно проверить, за-


пустив на одном из тестовых серверов утилиту wireshark В данном случае мы разрешаем пересылку только об-
или tcpdump. ладателям сертификатов, выданных нашим CA.
Параметры CERTISSUER и CERTSUBJECT мы запол-
Настройка TLS для клиента няем значениями, взятыми из полей Issuer и Subject сер-
В текущем состоянии Sendmail готов работать с клиентом, тификата CA:
принимая от него почту в зашифрованном виде, однако ни-
какой проверки клиента при помощи механизма TLS не ис- # openssl x509 -in cacert.pem -noout -subject -issuer
пользуется. Зато клиенту не нужны сертификаты, и всего subject= /C=GB/ST=Berkshire/L=Newbury/O=My Company Ltd/
лишь достаточно поставить соответствующую галку – «ис- CN=Station 18 CA
issuer= /C=GB/ST=Berkshire/L=Newbury/O=My Company Ltd/
пользовать защищенное соединение, TLS». CN=Station 18 CA
В журнале почтового сервера это выглядит пример-
но так: При этом ряд символов, в том числе «{», «<», «>», «(»,
«)», «"», «+», «}», и пробел заменяются на шестнадцатерич-
Jul 30 23:29:09 station17 sendmail[8228]: STARTTLS=server,
relay=station51.example.com [192.168.0.51], version=TLSv1/SSLv3,
ные ASCII-коды, предваряемые символом «плюс». Соот-
verify=NO, cipher=DHE-RSA-AES256-SHA, bits=256/256 ветствующие коды можно посмотреть в странице руко-
Jul 30 23:29:09 station17 sendmail[8228]: m6UJT8GH008228: водства:
from=<andrey@station17.example.com>, size=341, class=0, nrcpts=1,
msgid=<4890C39D.4020404@station17.example.com>, proto=ESMTP,
# man ascii
daemon=MTA, relay=station51.example.com [192.168.0.51]
Jul 30 23:29:09 station17 sendmail[8229]: m6UJT8GH008228:
to=<root@station17.example.com>, ctladdr=<andrey@station17.exam- Успешная попытка обладателя сертификата исполь-
ple.com> (507/508), delay=00:00:00, xdelay=00:00:00, mailer=local,
pri=30623, dsn=2.0.0, stat=Sent зовать наш почтовый сервер в качестве релея в журна-
ле /var/log/messages будет выглядеть примерно следую-
Как видно, напротив verify мы видим значение «NO». щим образом:
Попробуем «закрутить гайки».
Jul 31 02:10:31 station17 sendmail[9700]: STARTTLS=server,
Сгенерируем сертификат для пользователя. Раз мы на-
relay=station51.example.com [192.168.0.51], version=TLSv1/SSLv3,
чали работать с OpenSSL, для упрощения задачи предполо- verify=OK, cipher=AES128-SHA, bits=128/128
жим, что наш пользователь также воспользуется этой ути- Jul 31 02:10:31 station17 sendmail[9700]: m6UMAVTH009700:
литой. Естественно, какими средствами будет сгенериро- from=<andrey@station17.example.com>, size=1128, class=0, nrcpts=1,
msgid=<57A621A4BFCB411F9ACDE6A1D9CE3E62@AndreyPC>, proto=ESMTP,
ван запрос в центр сертификации, нам не важно. В «бое- daemon=MTA, relay=station51.example.com [192.168.0.51]
вой» среде скорее всего пользователь воспользуется ка- Jul 31 02:10:31 station17 sendmail[9702]: STARTTLS=client,
ким-либо веб-интерфейсом. relay=station18.example.com., version=TLSv1/SSLv3, verify=OK,
cipher=DHE-RSA-AES256-SHA, bits=256/256
Итак, от лица пользователя:
Jul 31 02:10:31 station17 sendmail[9702]: m6UMAVTH009700:
to=<root@station18.example.com>, ctladdr=<andrey@station17.exam-
# openssl genrsa 1024 > andrey.key ple.com> (507/508), delay=00:00:00, xdelay=00:00:00, mailer=esmtp,
# openssl req -new -key andrey.key -out andrey.csr pri=121128, relay=station18.example.com. [192.168.0.18],
dsn=2.0.0, stat=Sent (m6UMAVR4009739 Message accepted for deliv-
И от лица администратора CA: ery)

# openssl ca -in andrey.csr -out andrey.crt Если вы увидели подобные сообщения в журнале, зна-
чит наша цель достигнута. Убедиться в том, что соответс-
Далее необходимо «упаковать» ключ и сертификат твующий сеанс защищен, вы можете при помощи утили-
в формат PKCS#12: ты wireshark.
Таким образом, как видите, при всей относительной
# cat andrey.key andrey.crt > andrey.pem сложности настройки MTA Sendmail, механизм STARTTLS
# openssl pkcs12 -export -in andrey.pem ↵
-out testusercert.p12 -name "Andrey's Personal cert" включается достаточно просто.
Удачи.

66
закон есть закон
Какова процедура изъятия компью- действий без адвоката, требовать его
теров на экспертизу? (продолжение, присутствия при проведении обыска,
начало см. в №7 за 2008 г.) а в случае отказа указывать в протоко-
По закону все должно происходить ле на не предъявление вам постанов-
следующим образом. ления о возбуждении уголовного дела
Если проверка проводится в рам- и отсутствие на следственных действи-
ках уголовно-процессуального зако- ях адвоката. Если о возбуждении уго-
нодательства, возможны два вариан- ловного дела было известно, то пред-
та: производство осмотра (может осу- полагается, что у руководства фирмы
ществляться до возбуждения уголов- было время для подготовки и консуль-
ного дела) и проведение обыска (может тации со специалистом.
происходить только после того, как уго- При осуществлении проверки ор-
ловное дело возбуждено). ганами милиции, проверка произво-
Рубрику ведет юрист
В первом случае в компанию при- дится в соответствии с законом «О ми- Юлия Штокало
ходят проверяющие на основании пос- лиции» и Приказом МВД РФ от 2 ав-
тановления о производстве осмотра, густа 2005 г. N 636, которым утверж- нии) УПК РФ; о возбуждении дела об
после чего начинается проверка ком- дена Инструкция о порядке проведе- административном правонарушении
пьютеров. При проведении осмотра ния сотрудниками милиции проверок и рассмотрении материалов в рамках
должен вестись протокол, в который и ревизий финансовой, хозяйствен- производства по делам об админист-
записываются все действия, которые ной, предпринимательской и торго- ративных правонарушениях; о переда-
производились при осмотре, в случае вой деятельности. Согласно п. 4 Инс- че материалов по подведомственнос-
изъятия описывается изымаемое обо- трукции, при наличии данных о влеку- ти, в том числе для решения вопроса
рудование. Изымаемое оборудование щем уголовную ответственность нару- о рассмотрении материалов в рамках
должно быть опечатано, это делается, шении законодательства, регулиру- производства по делам об админист-
чтобы исключить доступ внутрь корпу- ющего финансовую, хозяйственную, ративных правонарушениях; о завер-
са и подключение к нему питания. предпринимательскую и торговую де- шении проверки в связи с неустанов-
Процесс опечатывания фиксиру- ятельность, в целях установления ос- лением нарушения законодательс-
ется в протоколе. Осмотр и изъятие нований для возбуждения уголовно- тва РФ.
должны производиться с участием го дела, начальником органа внутрен- При проведении таких мероприя-
двух понятых. них дел (органа милиции) или его за- тий следует обратить внимание, что-
Что нужно сделать: ознакомиться местителем выносится мотивирован- бы Постановление о проведении про-
с документами проверяющих (чтобы ное постановление о назначении про- верки было подписано начальником
знать, кто к вам пришел с проверкой), верки, ревизии по установленной фор- районного ОВД или его заместителем,
узнать основания проводимой провер- ме. В постановлении указывается сос- т.е. в постановлении должны быть ука-
ки, в случае изъятия техники прове- тав сотрудников милиции, проводящих заны: должность, ФИО и стоять под-
рить, чтобы в протоколе были указа- проверку. Сотрудники милиции также пись. Если постановление не подпи-
ны индивидуальные признаки и осо- вправе производить изъятие, которое сано, либо подписано другим лицом,
бенности изымаемой техники (требо- оформляется в присутствии двух по- вы вправе отказать в проведении про-
вание основано на п. 3 ст. 177 УПК РФ), нятых протоколом и описью. верки, советую также написать жало-
в случае если вы сомневаетесь в под- По результатам проведения про- бу в прокуратуру, управление собс-
линности лицензии на установленное верки сотрудниками милиции состав- твенной безопасности и вышестоя-
программного обеспечения, прежде ляется акт проверки финансовой, хо- щий орган.
чем давать показания посоветуйтесь зяйственной, предпринимательской, В постановлении должны быть ука-
с адвокатом. Если сотрудники фир- торговой деятельности. В акте отража- заны сотрудники, которые могут учас-
мы используют свою технику, то необ- ются все выявленные нарушения зако- твовать в проводимых мероприятиях,
ходимо запастись документами, под- нодательства и иные имеющие значе- и вы можете проверить их соответс-
тверждающими право собственности. ние обстоятельства. Акт составляет- твие; при проведении изъятия компью-
Постановление дается на осмотр кон- ся в трех экземплярах, один из кото- терной техники необходимо проверить
кретной фирмы и ее офиса, при про- рых передается организации, в кото- наличие протокола изъятия и описи,
ведении осмотра обыск сотрудников, рой проводилась проверка. в описи должны быть подробно ука-
закрытых помещений не допускает- По результатам проверки прини- заны изымаемые предметы.
ся, на это необходимо дополнитель- мается одно из решений: о составле- Копии всех составляемых доку-
ное постановление. нии рапорта об обнаружении призна- ментов должны быть предоставлены
Второй случай – производится ков преступления; о направлении ма- организации, в которой проводилась
обыск. При этом уже должно быть воз- териалов проверки для рассмотрения проверка.
буждено уголовное дело. Если к вам в порядке, предусмотренном статья-
пришли с обыском, а информация ми 144 (сообщение о преступлении) и Присылайте Ваши вопросы по адресу
об уголовном деле у вас отсутствует, 145 (принятие решения по результатам sekretar@samag.ru или оставляйте на фо-
советую не предпринимать никаких рассмотрения заявления о преступле- руме журнала www.samag.ru/forum.

№8, август 2008 67


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

Java:
торжественное обращение с jar
и атрибутами MANIFEST.MF

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

М
ногие Java-приложения постав- n сокращать объем приложения; работчика. Именно поэтому в данной
ляются в виде одного или не- n упростить процесс создания биб- статье будут описаны несколько спо-
скольких jar-файлов (Java лиотеки; собов применения JAR API для вызо-
ARchive), которые по сути являются n осуществлять контроль версий. ва произвольных методов из jar-фай-
обыкновенными zip-архивами. В них ла, записи и чтения атрибутов мани-
обычно, кроме байт-кода программы, Полноценно работать с техноло- феста. (Манифест – (устар.) торжес-
размещаются дополнительные ресур- гией JAR можно как с помощью ути- твенное письменное обращение вер-
сы и конфигурационные файлы. литы jar, входящей в состав JDK (Java ховной власти к народу в связи с важ-
Такой подход позволяет: Development Kit), так и с использовани- ным политическим событием, торжест-
n подписывать содержимое jar-фай- ем классов JAR API. венной датой и т. д. (Толковый словарь
ла, повышая таким образом уро- Первый способ распространен пов- русского языка).
вень безопасности; семестно, в то время как второй, за-
n сокращать время загрузки аппле- частую незаслуженно, обделен вни- Утилита jar
тов за счет отсутствия необходи- манием и, как показывает практика, Прежде всего следует уделить неко-
мости открытия нового соедине- напрасно – во многих случаях это мо- торое внимание утилите jar (http://java.
ния для каждого файла; жет существенно облегчить жизнь раз- sun.com/javase/6/docs/technotes/tools/

68
программирование
solaris/jar.html). Это консольное при- Таблица 1. Атрибуты главной группы манифеста
ложение, запускаемое с набором па- Атрибут Описание
раметров. Manifest-Version Номер версии файла-манифеста. Определяется спецификацией как регулярное выражение
Примеры вызова утилиты: следующего вида: цифра+{.цифра+}*
Created-By Версия и поставщик платформы Java, с помощью которой был создан манифест.
// Создание нового jar-файла Автоматически генерируется утилитой jar
jar cf file.jar список_файлов
Signature-Version Версия подписи jar-файла. Определяется так же, как и Manifest-Version
// Просмотр содержимого архива Class-Path Относительные указатели ресурсов (URL) для всех используемых дополнительных классов
jar tf file.jar и библиотек
// Извлечение содержимого из jar-файла Main-Class Относительный путь к главному классу приложения, который должен содержать точку входа –
jar xf file.jar метод main(String[] args). Значение атрибута не должно содержать расширение .class. Атрибут
определяется для автономных настольных приложений, которые собраны в выполняемые jar-
файлы, которые могут быть запущены виртуальной машиной Java напрямую командой:
java -jar file.jar
MANIFEST.MF
JAR File Specification (http://java.sun. Таблица 2. Наиболее используемые классы в JAR API
com/javase/6/docs/technotes/guides/jar/ Полное название класса Описание
jar.html), позволяет расположить в ар- java.util.jar.Attributes Таблица соответствий между именем атрибута и его значением
хиве file.jar только один манифест с до- java.util.jar.Attributes.Name Перечисление в виде констант всех имен атрибутов главной группы
полнительной служебной информаци-
java.util.jar.JarEntry Класс описывает элемент jar-файла, например, файл с расширением .class
ей META-INF/MANIFEST.MF, представ-
java.util.jar.JarFile Наследник класса java.util.zip.ZipFile с поддержкой манифеста. Используется
ляющий собой текстовый файл в ко- для чтения содержимого jar-файла
дировке UTF-8. Если он не был задан
java.util.jar.JarInputStream Наследник класса java.util.zip.ZipInputStream с поддержкой манифеста. Используется
при создании jar-файла, используется для чтения содержимого jar-файла из любого входящего потока
манифест, который по умолчанию со- java.util.jar.JarOutputStream Наследник класса java.util.zip.ZipOutputStream с поддержкой записи манифеста.
держит информацию о своей версии Используется для записи содержимого jar-файла в любой исходящий поток
и JDK, в которой был создан конкрет- java.util.jar.Manifest Класс используется для работы с манифестом и его атрибутами
ный jar-файл: java.net.JarURLConnection Соединение с jar-файлом или его элементом с помощью указателя ресурсов вида:
ar:<url_к_jar_файлу >!/{элемент_jar_файла}, например: jar:http://www.site.org/folder/
Manifest-Version: 1.0 file.jar!/org/site/Clazz.class
Created-By: 1.6.0 (Sun Microsystems Inc.) java.net.URLClassLoader Используется для загрузки классов и ресурсов из classpath (может определяться,
к примеру, атрибутом манифеста Class-Path)
Условно содержимое можно раз-
делить на главную группу (содержит определенные стан- public static void main(String[] args) {
System.out.println("main(): запущен");
дартами атрибуты, некоторые из них приведены в табли- }
це 1) и индивидуальную группу (состав которой определя- }
ется произвольно).
Имена произвольных атрибутов могут содержать только MANIFEST.MF архива имеет следующий вид:
цифры, строчные и заглавные буквы латинского алфавита
Manifest-Version: 1.0
и знак «_», а по длине существует ограничение – 70 симво- Created-By: 1.6.0_03-b05 (Sun Microsystems Inc.)
лов. К значению атрибута никаких требований, кроме эле- Main-Class: pkg.Main
ментарной логики, не предъявляется.
Более подробно структуру и состав JAR и META-INF/ Вначале необходимо получить URL по имени файла:
MANIFEST.MF в рамках этого текста мы затрагивать не бу-
дем по той простой причине, что любой желающий может URL fileUrl = new File("file.jar").toURL();
URL url = new URL("jar", "", fileUrl + "!/");
прочесть более подробно cпецификацию JAR.
Сам вызов осуществляется следующим образом:
Использование JAR API
В последней на текущий момент Java 1.6 к JAR API отно- public static final String MAIN_METHOD = "main";
public void runMainMethod(String className) throws ↵
сятся классы пакета java.util.jar, а также классы java.net. Exception {
JarURLConnection и java.net.URLClassLoader. Ограничимся String[] args = new String[1];
Class clazz;
рассмотрением наиболее используемых классов (см. таб- Method mainMethod;
лицу 2). // Создадим ClassLoader
URLClassLoader urlClassLoader =
new URLClassLoader(new URL[] { url });
Запуск методов класса // Загрузка класса класслоадером
clazz = urlClassLoader.loadClass(className);
Прежде всего рассмотрим пример, который будет запус- // Получение main-метода и проверка, является ли он
кать метод public static void main(String[] args) из произволь- // точкой входа
mainMethod = clazz.getMethod(MAIN_METHOD, ↵
ного класса в jar-файле. Предположим, что у нас есть некий args.getClass());
файл file.jar, который содержит класс pkg.Main: mainMethod.setAccessible(true);
int mods = mainMethod.getModifiers();
if (mainMethod.getReturnType() != void.class
package pkg; || !Modifier.isStatic(mods) || ↵
!Modifier.isPublic(mods)) {
public class Main { throw new NoSuchMethodException(MAIN_METHOD);

№8, август 2008 69


программирование
} else { В результате файл манифеста будет содержать:
// Запуск метода с объектом, у которого
// надо выполнить метод, и параметрами.
Manifest-Version: 1.0
// null показывает, что метод статический
mainMethod.invoke(null, args); Created-By: JarAttributeWriter
} Attribute_1: Value_1
} Attribute_2: Value_2

Теперь попробуем задействовать JAR API для решения Чтение атрибутов из манифеста
несколько усложненной задачи – теперь необходимо запус- Получившийся файл можно использовать в качестве мани-
тить метод main() главного класса jar-файла. Для этого нам феста для jar-архива – это довольно просто, поэтому пред-
надо лишь вызвать уже имеющийся метод runMainMethod() положим, что этот манифест уже лежит в jar-файле и тре-
с именем требуемого класса, которое можно получить буется считать из него все атрибуты или только некоторые.
из манифеста по имени атрибута Main-Class: Эту работу будет выполнять класс JarAttributeReader:

private String getMainClassName() throws IOException { import java.io.IOException;


JarURLConnection connection = ↵ import java.util.jar.Attributes;
(JarURLConnection) url.openConnection(); import java.util.jar.JarFile;
Attributes attributes = ↵
connection.getMainAttributes(); public class JarAttributeReader {
return attributes.getValue(Attributes.Name.MAIN_CLASS); private static final String OUTPUT_TEMPLATE = "%s=%s";
}
// Метод считывает все атрибуты из jar-файла filename
Attributes getAllAttributes(String filename) throws ↵
После вызова метода runMainMethod() в консоли поя- IOException {
JarFile jarFile;
вится надпись: Attributes attributes;

main(): запущен jarFile = new JarFile(filename);


attributes = jarFile.getManifest(). ↵
getMainAttributes();
return attributes;
Генерация манифеста с атрибутами }
После того как мы успешно запустили метод main() глав-
// Метод печатает в консоли атрибуты со значениями
ного класса jar-файла, попробуем поработать с атрибу- void printAllAttributesWithValues(String filename) {
тами манифеста. Начнем с создания манифеста, а затем try {
Attributes attributes = ↵
попробуем прочитать записанные атрибуты. Итак, класс getAllAttributes(filename);
JarAttributeWriter будет генерировать все атрибуты: for (Object o : attributes.keySet()) {
System.out.println ↵
(String.format ↵
import java.io.ByteArrayInputStream; (OUTPUT_TEMPLATE, ↵
import java.io.FileOutputStream; o, attributes.getValue ↵
import java.io.IOException; (o.toString())));
import java.io.InputStream; }
import java.io.OutputStream; } catch (IOException e) {
import java.util.jar.Manifest; e.printStackTrace();
}
public class JarAttributeWriter { }
private static final String LINE_TEMPLATE = "%s: %s\n";
}
// Метод генерирует текстовый файл – манифест с именем
// filename
public void generateManifest(String filename) { В результате в консоли появится запись следующе-
StringBuffer buf = new StringBuffer();
buf.append(getLine("Manifest-Version", "1.0")); го вида:
buf.append(getLine("Created-By", ↵
this.getClass().getName())); Manifest-Version=1.0
buf.append(getLine("Attribute_1", "Value_1")); Created-By=JarAttributeWriter
buf.append(getLine("Attribute_2", "Value_2"));
try { Attribute_1=Value_1
InputStream inputStream = ↵ Attribute_2=Value_2
new ByteArrayInputStream ↵
(buf.toString().getBytes("UTF-
8")); Заключение
Manifest manifest = ↵ Следует отметить, что JAR API предоставляют довольно
new Manifest(inputStream);
OutputStream outputStream = ↵ мощные средства для работы с JAR вообще и MANIFEST.MF,
new FileOutputStream(filename); в частности, которые отнюдь не ограничиваются приве-
manifest.write(outputStream);
} catch (IOException e) { денными выше примерами. Ситуаций, когда правильное
e.printStackTrace(); использования манифеста может существенно облегчить
}
} процесс отладки и/или распространения приложений, до-
вольно много. Например, добавление версии приложения
// Метод возвращает одну строку манифеста. Метод format() -
// аналог printf в C – осуществляет форматированный вывод в качестве атрибута MANIFEST.MF позволит точно опре-
private String getLine(String attributeName, ↵ делить номер сборки приложения. Иными словами, в об-
String attributeValue) {
return String.format(LINE_TEMPLATE, attributeName, ↵ щем случае, в манифест можно записать различные па-
attributeValue); раметры для последующего их использования при запус-
}
} ке приложения.

70
bugtraq

Отказ в обслуживании Уязвимость при обработке


в Sun Java System Web Proxy Server IPSec‑политик в Microsoft Windows
Программа: Sun Java System Web Proxy Server 4.x. Программа: Microsoft Windows 2008; Microsoft Windows
Опасность: Средняя. Vista.
Описание: Уязвимость существует из-за неизвестной Опасность: Низкая.
ошибки в FTP-подсистеме. Удаленный пользователь может Описание: Уязвимость существует из-за ошибки в меха-
запретить прокси-серверу принимать новые подключения. низме импорта IPsec-политик из доменов под управлением
URL производителя: www.sun.com/software/products/web_ Windows Server 2003 в домены под управлением Windows
proxy/home_web_proxy.xml. Server 2008. В результате ошибки система игнорирует
Решение: Установите исправление с сайта производителя. IPsec‑политики и данные, которые должны быть зашифро-
ванными, передаются в открытом виде.
URL производителя: www.microsoft.com.
Несколько уязвимостей в Apache Tomcat Решение: Установите исправление с сайта производителя.
Программа: Apache Tomcat 4.1.37 и более ранние вер-
сии; Apache Tomcat 5.5.26 и более ранние версии; Apache
Tomcat 6.0.16 и более ранние версии. Раскрытие данных
Опасность: Средняя. в VMware VirtualCenter
Описание: 1. Уязвимость существует из-за недостаточ- Программа: VMware VirtualCenter версии 2.0.2 до обновле-
ной обработки входных данных в функции HttpServlet ния Update 5 и 2.5 до обновления Update 2, возможно, дру-
Response.sendError(), которые возвращаются в пользовате- гие версии
лю в HTTP-заголовке Reason-Phrase. Удаленный пользова- Опасность: Низкая.
тель может с помощью специально сформированного за- Описание: Уязвимость существует из-за того, что служба
проса выполнить произвольный код сценария в браузере VirtualCenter backend некорректно проверяет привилегии
жертвы в контексте безопасности уязвимого сайта. при выполнении некоторых действий. Удаленный пользо-
2. Уязвимость существует из-за того, что приложение ватель может получить доступ к некоторым данным (напри-
нормализует целевой путь перед удалением строки запро- мер, именам системных учетных записей).
са при использовании RequestDispatcher. Удаленный поль- URL производителя: www.vmware.com/products/vi/vc.
зователь может получить возможность произвести обход Решение: Установите исправление с сайта производителя.
каталога.
URL производителя: jakarta.apache.org/tomcat.
Решение: Установите исправление для версий 4.x, 5.x из Отказ в обслуживании в Sun Solaris
SVN-репозитория или последнюю версию 6.0.18. Программа: Sun Solaris 10.
Опасность: Низкая.
Описание: Уязвимость существует из-за неизвестной
Целочисленное переполнение ошибки, относящейся к системному вызову sendfilev(). Уяз-
в ядре Linux вимость может быть эксплуатирована локальным пользо-
Программа: Linux kernel версии 2.6.17-rc1 и выше. вателем с помощью специально сформированного прило-
Опасность: Низкая. жения, или удаленным пользователем с помощью специ-
Описание: Уязвимость существует из-за целочисленного ально сформированной веб-страницы, которая обслужива-
переполнения в функции dccp_setsockopt_change() в фай- ется веб-сервером Apache 2.2.x. Для успешной эксплуата-
ле net/dccp/proto.c. Локальный пользователь может вызвать ции уязвимости с помощью веб-страницы, Apache должен
панику ядра системы. быть собран без некоторых опций.
URL производителя: www.kernel.org. URL производителя: www.sun.com.
Решение: Установите исправление из GIT-репозитория Решение: Установите исправление с сайта производителя.
производителя.

Отказ в обслуживании в IPsec-Tools


Спуфинг атака в PowerDNS в racoon
Программа: PowerDNS версии до 2.9.21.1. Программа: IPsec-Tools версии до 0.7.1.
Опасность: Низкая. Опасность: Низкая.
Описание: Уязвимость существует из-за того, что сервер Описание: Уязвимость существует из-за утечки памяти
сбрасывает DNS-запросы к недействительным DNS-запи- в демоне racoon при обработке некорректных предложе-
сям в пределах действительного домена. Злоумышленник ний. Удаленный пользователь может вызвать отказ в об-
может воспользоваться этим для проведения спуфинг-ата- служивании приложения.
ки на другой сервер. URL производителя: ipsec-tools.sourceforge.net.
URL производителя: www.powerdns.com. Решение: Установите последнюю версию 0.7.1 с сайта про-
Решение: Установите последнюю версию 2.9.21.1 с сайта изводителя.
производителя. Составил Александр Антипов

№8, август 2008 71


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

Знакомимся с YAML

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

Ч
тобы приложение было гибким чего-нибудь небольшого. Согласитесь, «параметр-разделитель-значение»
и настраиваемым, оно снабжается было бы нелепо для скрипта в 50‑100 (чаще всего в качестве разделителя
конфигурационным файлом (а то строк писать аналогичного или даже выступает любое количество пробелов
и несколькими). Очевидно, что формат большего размера «парсер» для разо- и/или символов табуляции, но могут
этого файла должен соответствовать вой (в контексте работы скрипта) зада- быть и другие, скажем, знак равенства
определённым соглашениям, то есть чи анализа конфигурации. или двоеточие; сокращённо будем на-
можно сказать, что он пишется на не- Естественно, как только в процессе зывать этот формат «П-Р-З»):
котором языке разметки. И при выбо- работы возникает подобная проблема,
ре такого языка нужно учитывать осо- то в голову сразу приходит бессмер- node_ip 10.0.0.51
node_user arc
бую роль конфигов – ведь они созда- тная фраза: «Всё украдено до нас». node_password xidughei
ются людьми для программ. С одной В том смысле, что если разработчик email_list arc,hunter,engineer
sms_list hunter12@sms.mob.ru
стороны, такой файл должен легко чи- сталкивается с некоторой типовой за-
таться и редактироваться человеком дачей, то с высокой долей вероятнос- Его достоинства: простота написа-
(не всегда имеющим диплом с отличи- ти можно считать, что данная задача ния и восприятия человеком и прос-
ем по специальности «Программист»), уже кем-то решена. Поэтому и в части той разбор (функцией split по регу-
а с другой – легко «разбираться» про- анализа конфигурационных файлов лярному выражению, которая имеет-
граммой. Причём второе требование проблема обычно сводится к поиску ся практически во всех современных
связано не столько с ресурсоёмкостью наиболее удобного инструмента сре- скриптовых языках). Но есть и недо-
задачи «разбора», сколько с простотой ди уже существующих. статки: «линейность», т.е. невозмож-
разработки соответствующей подпро- ность создавать иерархию параметров,
граммы. Особенно актуально это ста- Краткий обзор и «нетипизированность», т.е. сложнос-
новится для скриптовых языков (Perl, «типичных» форматов ти с передачей параметров, тип кото-
Python, Ruby и т. п.), основное назна- Наиболее простым форматом конфи- рых не укладывается в понятие «про-
чение которых – быстрая разработка гурационного файла можно считать стого» (строка, число).

72
программирование
Для борьбы с первым недостатком
используются различные методы. На- О примере ровать с помощью FTP наличие некоторо-
пример, разделение файла на так на- По ходу статьи часто приводится пример го файла на сервере (node_ip), и в случае
зываемые «секции», когда секция вво- некоторого конфигурационного файла. неудачи отправлять уведомления на элек-
дится специальным синтаксисом (ска- Чтобы придать ему немного конкретики, бу- тронную почту и в виде SMS пользовате-
жем, «[Server]»), и все нижеследующие дем считать, что принадлежит он скрипту, лям согласно заданным спискам.
параметры вплоть до маркера дру- задача которого – периодически контроли-
гой секции рассматриваются как от-
носящиеся к ней (вы тоже вспомнили иерархия, а сами параметры задают- заключить текстовый параметр в апос-
про win.ini?). Второй недостаток вы- ся по схеме «П-Р-З»: трофы) и соответствующим образом
нуждает вводить дополнительные со- такие ситуации обрабатывать.
глашения, и при разборе конфигура- <Node> Теперь настало время перейти
ip 10.0.0.51
ции учитывать их (в примере выше user arc собственно к теме этой статьи – языку
придётся особо оговорить, что спи- password xidighei YAML, набирающему всё большую по-
</Node>
сок параметров, разделённых запя- <Lists> пулярность и стремящемуся оставать-
тыми, является массивом, а при счи- email arc,hunter,engineer ся максимально простым как для чело-
sms hunter12@sms.mob.ru
тывании конфигурационного файла </Lists> века, так и для программы.
потребуется как минимум ещё один
вызов split). В различных вариантах подобный YAML – «ещё один»
Другой подход к описанию конфи- подход можно найти и в конфигурации или «совсем не»?
гурации – XML-подобный синтаксис, других продуктов. Читать и редактиро- Разработанный Кларком Эвансом,
набирающий в последнее время всё вать – удобнее, насчёт удобства про- язык YAML (в версии 1.0 эта аббреви-
большую популярность (сам не видел, граммного анализа не вполне уверен. атура «официально» расшифровыва-
но рассказывают, что в MacOS да- Да и в любом случае это уже похоже лась как «Yet Another Markup Language»,
же настройки операционной системы на «частное» решение. начиная с 1.1 разработчики решили,
в этом формате задаются). Вышепри- Поскольку при разработке скрип- что «YAML Ain’t Markup Language») пер-
ведённая конфигурация на этом языке тов, как правило, хочется чего-то сов- воначально претендовал на роль пол-
могла бы выглядеть как-то так: сем простого, то не последнее место ноценной замены XML, но затем акцент
по популярности занимает «програм- сместился в сторону максимально гиб-
<node> мистский» подход: в качестве файла кого описания данных. Он позволяет
<ip>10.0.0.51</ip>
<user>arc</user> конфигурации используется подклю- наиболее полно отображать основные
<password>xidughei</password> чаемый скрипт на «рабочем» языке, типы данных, используемых современ-
</node>
<list type='email'> сразу при своём выполнении созда- ными языками программирования, со-
<recipient>arc</recipient> ющий нужный набор «конфигураци- храняя при этом максимальную про-
<recipient>hunter</recipient>
<recipient>engineer</recipient> онных переменных» (пример на язы- стоту как для человека, так и для про-
</list> ке Python): граммного анализа. Wikipedia называ-
<list type='sms'>
<recipient>hunter12@sms.mob.ru ↵ ет YAML форматом сериализации дан-
</recipient> node = {'ip': '10.0.0.51', ных (http://ru.wikipedia.org/wiki/YAML),
</list> 'user': 'arc',
'password': 'xidighei'} что очень точно отражает его основную
Здесь налицо возможность стро- email_list = ['arc', 'hunter', ↵ задачу. И действительно, YAML можно
'engineer']
ить иерархию любой сложности. До- sms_list = ['hunter12@sms.mob.ru'] с успехом использовать для марша-
полнительные атрибуты также за- линга (т.е. для представления данных
метно расширяют возможности это- Типичный пример такого подхо- в памяти в формат, пригодный для хра-
го формата. Собственно, было бы да – большинство конфигов *BSD или нения и передачи, см. http://ru.wikipedia.
странно ожидать меньшего от языка, Linux, представляющих собой скрипты org/wiki/Маршалинг) или постоянного
претендующего на роль универсаль- на языке командной оболочки (sh, ре- хранения на диске тех или иных струк-
ного средства обмена информацией. же csh или bash). Очевидно, что здесь тур данных: скажем, в языке Python
Только вот анализ такого файла прос- совершенно не стоят проблемы разбо- для сериализации традиционно ис-
тым никак не назовёшь (хотя для тех, ра конфигурации, структурных ограни- пользуется модуль pickle, в Ruby час-
кто «на ты» с XPath, XSLT и прочи- чений или невозможности задать нуж- то используют модуль Marshal, анало-
ми мудрёными аббревиатурами, мо- ный тип. Но при этом от пользователя гичные решения есть и в других язы-
жет быть, и ничего сложного). Да и ре- уже начинают требоваться хотя бы ба- ках. Но если возникает необходимость
дактировать вручную такого монстра зовые познания в используемом языке организовать обмен данными между
не слишком удобно – в глазах рябит программирования и немалая аккурат- скриптами, написанными на различ-
от тегов разметки. ность и внимательность. Да и разра- ных языках программирования, то уже
Нечто среднее между этими двумя ботчик скрипта, если он стремится соз- требуется какой-нибудь универсаль-
подходами мы видим в конфигурации дать достаточно надёжную программу, ный язык сериализации. YAML может
Apache, ProFTPD и ряде других при- должен в своём коде учитывать воз- использоваться в этой роли почти без
ложений – «тегами» вводится нужная можность опечатки (скажем, забыли ограничений.

№8, август 2008 73


программирование
Тем не менее основная цель данной статьи – рассмот- +: plus
:: colon
реть YAML как язык конфигурации. В этом качестве он ус-
пешно используется в таких фреймворках, как Ruby on Rails,
Symfony, Spring. Что же он из себя представляет? После обработки, скажем, в Python получим такой сло-
Наш пример на YAML может выглядеть так: варь: «{'+': 'plus', ':': 'colon'}».
Кроме показанного выше синтаксиса, для массивов
node: и хэшей существует и «линейная» нотация, близкая по ви-
ip: 10.0.0.51
user: arc ду к языку Python (кстати, отступы в YAML тоже играют
password: xidighei не последнюю роль, так что любителям Python он явно при-
email_list: дётся по вкусу):
- arc
- hunter # Массив (как элемент хэша)
- engineer Moderators: [Site Admin, Dr.Moder, Polizei]
sms_list: # Хэш (как элемент хэша)
- hunter12@sms.mob.ru Location: {host: localhost, port: 5432}

Как видите, разработчикам YAML удалось сохранить Само собой, что с обычными строками и числами проб-
лёгкость и «читабельность» простейшего формата с раз- лем тоже не возникает. Параметры, заданные «в виде чис-
делителями, сделав его иерархическим за счёт использо- ла», включая восьмеричное и шестнадцатеричное пред-
вания вложенных параметров. Да и возможности работы ставление, а также научную нотацию, автоматически пре-
с типами данных здесь заметно расширены. Например, то, образуются в числовой формат. Аналогично, автоматичес-
что вы видите выше, это самый настоящий хэш («словарь» кое преобразование предусмотрено для дат. Скажем, стро-
в терминологии Python), один элемент которого представ- ку '2008-01-05' модуль PyYAML языка Python преобразует
ляет собой вложенный хэш, а ещё два – массивы («спис- в выражение «datetime.date(2008, 1, 5)». В качестве приме-
ки» в Python). ра рассмотрим обработку такого файла:
Вот, например, как это «развернётся» в Ruby (вывод
слегка отформатирован, для удобства восприятия): Date1: 2008-01-01
Date2: 01.02.2008
Time: 12:45
$ irb StringDate: "2008-01-01"
irb(main):001:0> require 'yaml'
irb(main):002:0> config = YAML::load(open('config.yml'))
=> {"node"=> Если этот файл называть «config.yml», то работать с ним
{"user"=>"arc",
"ip"=>"10.0.0.51", можно следующим образом:
"password"=>"xidighei"},
"sms_list"=>["hunter12@sms.mob.ru"], $ python
"email_list"=>["arc", "hunter", "engineer"]} >>> import yaml, datetime
irb(main):003:0> puts config['node']['ip'] >>> config = yaml.load(open('config.yml'))
10.0.0.51 >>> config
Как видите, хэш на YAML задаётся парами «ключ: зна- {'Date1': datetime.date(2008, 1, 1), 'Date2': '01.02.2008',
'Time': 765, 'StringDate': '2008-01-01'}
чение», причём ни для ключа, ни для значения практичес-
ки никаких ограничений не существует – они могут содер- >>> config['Date1'].year
жать пробелы, быть многострочными, представлять собой 2008
вложенные элементы... Да-да, ключ хэша может быть слож-
ной структурой данных! В этом случае он начинается с сим- Заметили, что как дата представляется только строка
вола «?». Правда, далеко не все языки программирования в формате ISO (YYYY-MM-DD)? Если говорить точнее, то спе-
допускают подобные вольности. В частности, пример, по- цификация поддерживает два формата даты и времени:
казанный ниже, нормально отрабатывается в Ruby, а, на- n Date1: 2008-08-03t11:00:00
пример, в Python уже вызывает ошибку. n Date2: 2008-08-03 11:00:00
$ cat hash.yml При необходимости можно задать и временную зо-
? - 1
- 2 ну. Однако различные «европейские» форматы (вро-
- 3: three де «01.01.2008») обработчиками YAML именно как даты
:
some digits не распознаются. Также обратите внимание на то, что стро-
$ irb ка «Time: 12:45» была преобразована в «'Time': 765». Де-
irb(main):001:0> require 'yaml'
irb(main):002:0> config = YAML::load(open('slohash.yml')) ло в том, что YAML значения вида «XX:YY:ZZ» распознаёт
=> {[1, 2, {3=>"three"}]=>"some digits"} как шестидесятеричные числа. То есть запись «12:45» бы-
irb(main):003:0> config.keys[0]
=> [1, 2, {3=>"three"}] ла рассчитана как 12*60 + 45. Фактически, подразумевая
irb(main):004:0> config[c.keys[0]] под этой записью «12 часов 45 минут», мы получили число
=> "some digits"
минут с начала дня.
Ещё одна возможность – использовать в качестве клю- Также следует учесть возможности YAML по явному и не-
ча хэша различные символы (если ваш язык программиро- явному преобразованию типов данных: если вам нужно пе-
вания от этого не впадёт в ступор): редать значение параметра именно как строку, просто за-

74
программирование
ключите его в апострофы или кавычки (в кавычках будет simple:
one
выполняться замена escape-последовательностей, строка two
в апострофах используется без каких-либо преобразова- three
ний). Есть и более строгий способ указать тип данных: continued: >
one
PortAsString: !!str 80 two
three

pre: |
Ещё одна возможность, особенно полезная для кон- one
фигурационных файлов, – поддержка своего рода «указа- two
three
телей», когда вы можете присвоить некоторому значению
имя (вводится символом «&»), а затем «разыменовывать»
его (символом «*») в других местах файла: Результат:

Email list: >>> print config['simple']


- arc
- &h hunter one two three
- engineer
SMS list: >>> print config['continued']
- *h # заменится на hunter
one two three
Правда, использовать такую «переменную» как часть
>>> print config['pre']
другого параметра (скажем, задав значение в виде
«*h@sms.mob.ru») не получится. one
two
Наконец, строки. Как вы уже поняли, строкой будет всё, three
что заключено в кавычки или апострофы, а также любые
значения параметров, не опознанные как относящиеся Вариант «simple» отличается от «continued» тем,
к другому типу данных. Но YAML предоставляет и ряд до- что в последнем случае сохраняется завершающий пере-
полнительных возможностей, например, поддержку «мно- нос строки. Кроме того, промежуточные переводы стро-
гострочных» строк (обращайте внимание на символ пос- ки после символа «>» будут заменяться на пробелы толь-
ле двоеточия): ко для групп строк, имеющих одинаковый отступ. Если же

№8, август 2008 75


программирование
перед строкой стоит символ «|», то все переводы строки со- $ cat many.yml
храняются в неприкосновенности. --- # Server
Также существует возможность хранить двоичные стро- host: localhost
port: 80
ки в формате Base64: --- # Client
user: root
png: !!binary | homedir: /var/client/home
iVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAIAAAAmdTLBAAAAAXNSR0IA
rs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAA $ cat perl.pl
gOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAh5JREFUOE+lVEsoRFEYPoow #!/usr/local/bin/perl
xORRk5SFBQsLNRtrS1ZKKXaSZEFeyQx5K6OQiPFME6XIKyYZjUKTEqmR
ZiFlMyk1Hum614zju3PvXGfunZFyOp05c+75vv///seJoZSS/wzgI4+ use YAML::Tiny;
HK+q2051ucb1zRbtFtB8Cp7NCe8ZrZ+rjkP7CSrD6evSfzSn+vW7t5XD
8i5cfLbofT111EutF2LSdEPdMEj+YT723LAuD9zg5U/r+phrJEm3ukbe $config = YAML::Tiny->read('many.yml');
utM+TKYUihBe4D7MBZgc2dMUlBapZ2ZCjsMyfixSKFzJesFWd2uJwCXij $server = $config->[0];
0YhVAZgW9aBjKeCFKCQ4gvg7FyIkAbR4HNb1GUor8lght1NJgcMRGS8s $client = $config->[1];
ljtXZNkR8eU1uZgsfs1BBHOWjPc3Ji6dheGrO7JhExMbWIb/lv0EVUb4
Jh198RIqcIH6WOWbZF/CQzP2rHKW4qlfTz1OQp/uubZkFV6JX+tkGiiw print "Connect to $server->{host}:$server->{port}\n";
qozjbwgPEbU/Odfqhy/wf+xIzA47UaD04UqMPyKBePwSf4RAFT9Ugb8h print " as $client->{user} from $client->{homedir}\n";
AdpF/Ne2+XJWDoFUP2z+wSuVAKvCsUb4mZJQ/t99nCkTFa4VGfEExp970+
F8CI9ftx199kf89VyysNXC1F9wyy+UuZZ/EhmN62CdcMMFUK7G4wgU8CK $ ./perl.pl
aENQYWhsNTt99mv5TDtx2xMIzoUMjS0WJdXeX3EzGo7vxtKiekAjvj0h/ Connect to localhost:80
PA07qGuUBtYPSyF1jKFate/PNwvDAKJ/owerAAAAAElFTkSuQmCC as root from /var/client/home

Теперь можно делать с этим изображением всё, что тре- Здесь many.yml – файл с двумя документами. Симво-
буется (в примере ниже я сохраняю его в файл): лом «#» начинаются комментарии.

>>> c = yaml.load(open('r.yml'))
>>> open('r.png', 'w').write(c['png'])
Трудности перевода
Есть у YAML и недостатки. Один из самых существенных –
Кроме рассмотренных выше, язык YAML умеет работать проблемы с кодировками, отличными от Unicode. Специфи-
и с логическими типами данных («true» и «yes» распознают- кация предусматривает поддержку лишь UTF-8, UTF‑16 LE
ся как «истина», «false» и «no» – как «ложь»), поддержива- и UTF-16 BE. Как результат – работа с другими кодировками
ются специальные значения: «null» и «~» как «None», «.NaN» полностью зависит от используемого модуля. Так, модуль
в значении «nan» (не число); «.inf» и «-.inf» – соответственно PyYAML и во FreeBSD, где используется KOI8‑R, и в Windows
«плюс бесконечность» и «минус бесконечность». XP (CP1251) упорно не желал обрабатывать файлы, содер-
Ещё следует знать о последовательности «---» – она яв- жащие хотя бы один кириллический символ независимо
ляется разделителем документов в потоке. Не все модули, от его месторасположения. С модулем 'yaml' в Ruby нигде
работающие с YAML, способны считывать несколько до- проблем не возникло. В Ubuntu, где по умолчанию исполь-
кументов из одного файла. Скажем, в Python метод load() зуется UTF8, все протестированные модули показали без-
модуля PyYAML считывает только первый (для работы со упречную работу с кириллицей.
всеми документами следует использовать метод load_all(), Таким образом, появился ещё один повод всюду,
возвращающий генератор, из которого можно последова- где только можно, переходить на Unicode.
тельно, методом next(), выбрать все документы потока). Мо-
дуль 'yaml' в Ruby действует аналогично, за тем исключе- Заключение
нием, что если символами «---» разделять простые строки, Как видите, YAML – довольно простой в освоении язык се-
то модуль включает их в состав строки, считая всё одним риализации. Наличие готовых модулей для многих языков
документом. Модуль Perl – YAML::Tiny – успешно работает программирования позволяет использовать его «прямо сей-
с несколькими документами: час», да и разработка собственного парсера вряд ли будет
слишком сложной задачей. Читается
YAML и языки программирования Python: конфигурация на YAML очень легко,
Для работы с YAML практически каждый import yaml и в то же время вы можете не ограни-
язык программирования имеет готовый мо- config = yaml.load(open('config.yml')) чивать себя только строковыми значе-
host = config['host']
дуль. Возможности YAML как языка сериа- ниями параметров, используя и масси-
лизации достаточно обширны, но если го- Ruby: вы, и хэши, и логические значения...
ворить о таком узком применении, как кон- require 'yaml' Если вы заинтересовались данным
фигурационные файлы, то в большинст- config = YAML::load(open('config.yml')) языком – обязательно просмотрите
host = config['host']
ве случаев использование YAML сводит- его полную спецификацию. Наверня-
ся к вызову одного метода (обычно load()). В последних строках показаны приме- ка вы найдёте ещё много интересного,
Ниже рассмотрены типовые примеры ис- ры использования одного из параметров, что осталось за рамками статьи.
пользования для различных языков про- в предположении, что он задан как эле-
граммирования (предполагается, что по- мент хэша (словаря). 1. Официальный сайт языка – http://
ток содержит один документ). Разрабатываются также модули/библи- yaml.org.
Perl: отеки для других языков программирова- 2. Спецификация YAML 1.2 – http://yaml.org/
use YAML::Tiny; ния: C, PHP, Java, JavaScript, Haskell. Ссыл- spec/1.2.
$config = YAML::Tiny-> ↵ ки можно найти на главной странице сайта 3. YAML Cookbook – http://yaml4r.sourceforge.
read('config.yml')->[0];
$host = $config->{'host'}; проекта: http://yaml.org. net/cookbook.

76
bugtraq

Раскрытие данных в ядре Linux Межсайтовый скриптинг в Apache


Программа: Linux kernel версии до 2.6.27-rc2. mod_proxy_ftp
Опасность: Низкая. Программа: Apache 2.0.63 и 2.2.9, возможно более ран-
Описание: Уязвимость существует из-за ошибки в функции ние версии.
snd_seq_oss_synth_make_info() в файле sound/core/seq/oss/ Опасность: Низкая.
seq_oss_synth.c. Локальный пользователь может передать Описание: Уязвимость существует из-за недостаточной
некорректный номер устройства уязвимой функции и полу- обработки входных данных в URL, содержащих символ «*»
чить доступ к потенциально важным данным. в модуле mod_proxy_ftp. Удаленный пользователь может
URL производителя: www.kernel.org. с помощью специально сформированного запроса выпол-
Решение: Установите последнюю версию 2.6.27-rc2 с сай- нить произвольный код сценария в браузере жертвы в кон-
та производителя. тексте безопасности уязвимого сайта.
URL производителя: www.apache.org.
Решение: Установите исправление из SVN-репозитория
Повышение привилегий в Sun Solaris производителя.
Программа: Sun Solaris 8, 9, 10.
Опасность: Низкая.
Описание: Уязвимость существует из-за неизвестной Раскрытие данных в OpenSSH
ошибки в модуле ядра namefs. Локальный пользователь Программа: OpenSSH версии до 5.1.
может вызвать панику ядра системы или выполнить про- Опасность: Низкая.
извольный код в контексте ядра. Описание: Уязвимость существует из-за того, что sshd-
URL производителя: www.sun.com. сервер устанавливает опцию SO_REUSEADDR для про-
Решение: Установите исправление с сайта производителя. слушивания сокета, используемого перенаправляющим
X11-сервером. Локальный пользователь может подклю-
читься к X11 перенаправляющему порту и перехватить X11-
Переполнение буфера в ядре Linux сессию. Для успешной эксплуатации уязвимости опция
Программа: Linux kernel версии до 2.6.25.11. X11UseLocalhost должна быть отключена (по умолчанию
Опасность: Низкая. включена) и операционная система должна позволять пов-
Описание: Уязвимость существует из-за ошибки при об- торное подключение к порту без проверки идентификатора
работке размера LDT-буфера на x86_64-системах. Локаль- пользователя или IP-адреса (например, HP/UX).
ный пользователь может вызвать отказ в обслуживании или URL производителя: openssh.com.
выполнить произвольный код на целевой системе с приви- Решение: Установите последнюю версию 5.1 или 5.1p1
легиями учетной записи root. с сайта производителя.
URL производителя: www.kernel.org.
Решение: Установите последнюю версию 2.6.25.11 с сай-
та производителя. Отказ в обслуживании в Asterisk
Программа: Asterisk Open Source 1.0.x (все версии); Asterisk
Open Source 1.2.x (все версии до 1.2.30); Asterisk Open
Выполнение произвольного кода Source 1.4.x (все версии до 1.4.21.2); Asterisk Business Edition
в CA ARCserve Backup for Laptops A.x.x (все версии); Asterisk Business Edition B.x.x.x (все вер-
and Desktops сии до B.2.5.4); Asterisk Business Edition C.x.x.x (все версии
Программа: CA ARCserve Backup for Laptops and Desktops до C.1.10.3); AsteriskNOW pre-release (все версии); Asterisk
r11.5; CA ARCserve Backup for Laptops and Desktops r11.1 Appliance Developer Kit 0.x.x (все версии); s800i (Asterisk
SP2; CA ARCserve Backup for Laptops and Desktops r11.1 Appliance) 1.0.x (все версии до 1.2.0.1).
SP1; CA ARCserve Backup for Laptops and Desktops r11.1; CA Опасность: Низкая.
ARCserve Backup for Laptops and Desktops r11.0; CA Desktop Описание: 1. Уязвимость существует из-за ошибки при об-
Management Suite 11.2; CA Desktop Management Suite 11.1; работке IAX2 POKE-запросов. Удаленный пользователь мо-
CA Protection Suites r2; CA Protection Suites 3.0; CA Protection жет отправить большое количество POKE-запросов, не от-
Suites 3.1. правляя ACK-пакет в ответ на пакет PONG, и потребить все
Опасность: Средняя. IAX2-номера.
Описание: Уязвимость существует из-за ошибки потери 2. Уязвимость существует из-за того, что протокол за-
значимости целочисленных в службе LGServer при обработ- грузки прошивки не требует рукопожатие. Удаленный поль-
ке входящих сообщений. Удаленный пользователь может зователь может отправит произвольном серверу пакеты
отправить специально сформированное сообщение службе размером 1040 байта с помощью 40-байтного пакета с под-
LGServer на порт 1900/TCP, вызвать переполнение буфера мененным адресом источника.
и выполнить произвольный код на целевой системе. URL производителя: www.asterisk.org.
URL производителя: www.ca.com/us/products/product. Решение: Установите последнюю версию с сайта произ-
aspx?id=263. водителя.
Решение: Установите исправление с сайта производителя. Составил Александр Антипов

№8, август 2008 77


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

Профессиональное использование консоли


с помощью GNU Screen

Дмитрий Васильев
Думаю, никто не будет возражать против того, что наиболее используемым инструментом
администратора систем UNIX является текстовая консоль. Консоль позволяет выполнять
практически все административные задачи, и тем более без нее нельзя обойтись
при управлении серверами, находящимися в другом районе города, или даже в другом городе,
или в другой стране. Большинство администраторов могут достаточно лихо пользоваться
консольными командами, но они могут с удивлением заметить, что более опытные коллеги
каким-то невообразимым образом успевают делать еще больше. В этой статье я рассмотрю
один из ключей к эффективному использованию текстовой консоли – менеджер текстовых
окон GNU Screen (далее просто Screen).

Возможности Screen ми, в которых может и не быть посто- чае Screen может быть установлен
Одна из основных возможностей янной необходимости, но которые мо- стандартными средствами поддержки
Screen – создание и управление гут помочь в выполнении админист- пакетов вашей операционной систе-
несколькими консольными окнами ративной работы в отдельные момен- мы или скачан с официального сайта
или текстовыми приложениями в од- ты времени. http://www.gnu.org/software/screen.
ном-единственном окне терминала. На рис. 1 изображен Screen с тре- Теперь мы можем запускать Screen,
В один момент времени на экране тер- мя именованными окнами (Work, для чего просто набираем:
минала может находиться только од- Configuration, Logs) и открытым в нем
но из окон (несколько их может быть текстовым редактором Vim с примером $ screen
только в случае, если они делят экран файла конфигурации Screen.
терминала на части). Screen позволя- После запуска на экран может поя-
ет быстро переключаться между окна- Первый запуск виться информация о версии и лицен-
ми, сохранять и позднее возвращать- Screen может быть запущен с помощью зии (при рассмотрении конфигурации
ся к текстовой сессии и открывать дос- консольной команды screen, но прежде мы рассмотрим, как можно отменить
туп к ней другим пользователям. Плюс всего проверим, установлен ли Screen вывод данного сообщения), и в этом
к этому Screen позволяет давать ок- в вашей системе, с помощью следую- случае необходимо нажать клавишу
нам заголовки, отслеживать актив- щей команды: «Пробел» или «Ввод», после чего мы
ность в каждом окне и обмениваться попадаем на первый взгляд в обыч-
содержимым окон с помощью копиро- $ which screen ную текстовую оболочку.
вания и вставки. И вдобавок Screen /usr/bin/screen Надо заметить, что в командной
позволяет переназначать клавиши, уп- строке сразу можно указать коман-
равлять настройкой эмуляции терми- Если команда вернула путь, как ду для запуска определенного прило-
нала и решать еще много небольших в примере выше, можно сразу начи- жения, например, для запуска top на-
задач, связанных с текстовыми окна- нать пользоваться, в противном слу- до набрать:

78
программирование
$ screen top

Хорошо, теперь Screen запущен, но, на первый взгляд,


нет никаких внешних изменений – мы можем работать в за-
пущенной оболочке или использовать top. Хитрость в том,
что во время работы Screen передает все нажатия клавиш
непосредственно приложению, но (по умолчанию) оставля-
ет для себя управляющие команды, начинающиеся с ком-
бинации клавиш <Ctrl> + <a>.
Эту управляющую комбинацию клавиш можно поменять
через файлы конфигурации (которые мы рассмотрим поз-
же), но во всех примерах будет рассматриваться только кон-
фигурация по умолчанию. Таким образом, все клавиатур-
ные команды Screen состоят из двух клавишных комбина- Рисунок 1. Screen с тремя именованными окнами (Work,
ций – управляющей <Ctrl> + <a> и непосредственно клави- Configuration, Logs) и открытым в нем текстовым редактором
Vim
ши или клавишной комбинации, представляющей команду.
Практически каждая команда также имеет свой текстовый только в конфигурации не указано создание сразу несколь-
аналог, который можно выполнить либо через файл конфи- ких окон) и присваивает ему номер 0.
гурации, либо выполнив следующую команду: Новое окно с командной оболочкой можно создать с по-
n Клавишная комбинация: <Ctrl> + <a> + <:>. мощью команды ниже:
n Текстовая команда: colon. n Клавишная комбинация: <Ctrl> + <a> + <c>.
n Описание: вывести приглашение для ввода текстовых n Текстовая команда: screen.
команд в интерактивном режиме. n Описание: создать новое окно.

В данном случае мы должны выполнить две клавиатур- При этом Screen создаст новое окно и присвоит ему сле-
ные комбинации, сначала нажав <Ctrl> + <a>, а затем кла- дующий по порядку номер. В нашем случае новым окном
вишу двоеточия. При этом Screen выведет в нижней час- будет окно с номером 1.
ти экрана приглашение для ввода команды в виде двоето- Теперь у нас есть уже два текстовых окна, из которых
чия. Ту же самую команду, которую мы только что выполни- текущим является только что созданное окно с номером 1,
ли с помощью клавишной комбинации, можно выполнить а окно с номером 0 находится в фоновом режиме. Но на-
через конфигурационный файл с помощью текстовой ко- до заметить, что даже если окно находится в фоновом ре-
манды colon, что может, например, понадобиться для вы- жиме, оно может воспринимать вывод запущенного в нем
вода приглашения о вводе команд при старте или перена- приложения, как если бы оно было текущим. Например,
значении комбинации клавиш, вызывающих это приглаше- мы могли бы запустить в окне 0 процесс, который выводит
ние. Далее, как и в примере выше, для каждой клавишной дополнительную информацию через определенные про-
комбинации я буду писать соответствующие ей ключевые межутки времени (для примера, это может быть команда
слова, которые можно использовать в файлах конфигура- «tail -f»), и затем переключиться в окно 1 для работы в тек-
ции или вводить с помощью <Ctrl> + <a> и <:>. стовом редакторе.
Здесь может возникнуть закономерный вопрос – а что Через какое-то время, если мы захотим посмотреть,
если приложению нужно непосредственно передать ком- что происходит в окне 0, мы можем переключиться в это
бинацию клавиш <Ctrl> + <a>, которая уже используется окно и увидеть весь вывод работающего там процесса.
в Screen как служебная? Например, та-
Таблица 1. Наиболее часто используемые команды для управления окнами
кая же комбинация используется биб-
лиотекой редактирования командной Клавишная комбинация Текстовая команда Описание

строки readline для выполнения пере- Ctrl + a w windows Выводит список номеров и заголовков всех окон в нижней
строчке экрана
хода в начало строки. Для этого слу-
Ctrl + a " windowlist Выводит интерактивный список номеров и заголовков всех
чая в Screen предусмотрена следую- окон, из которого можно выбрать окошко для переключения
щая команда:
Ctrl + a Номер select Выбор окна по номеру. Например, команда <Ctrl> + <a> и 0
n Клавишная комбинация: <Ctrl> + окна делает текущим окно с номером 0
<a> + <a>. Ctlr + a n next Переключиться на следующее по порядку окно или на первое
n Текстовая команда: meta. окно, если мы находились в последнем окне
n Описание: передать текущему Ctrl + a p prev Переключиться на предыдущее по порядку окно
или на последнее окно, если мы находились в первом окне
предложению клавишную комби-
нацию <Ctrl> + <a>. Ctrl + a ' select Вывести приглашение ввода номера окна для переключения
Ctrl + a Ctrl + a other Переключиться на последнее используемое окно
Управление окнами Ctrl + a N number Показать номер и заголовок текущего окна
Пришло время разобраться с коман- Ctrl + a A title Установить заголовок текущего окна
дами для управления окнами. При за- Ctrl + a k kill Принудительное закрытие окна, например, в случае если
пуске Screen создает одно окно (если приложение не удается закрыть обычным способом

№8, август 2008 79


программирование
Затем можно переключиться обратно в окно редактиро- Несколько окон на экране
вания. По умолчанию Screen оставляет видимым на экране только
В предыдущем параграфе я описал пример с переклю- одно логическое окно, но при желании есть дополнитель-
чением между окнами, но пока не сказал, какие команды ная возможность разделить экран терминала на горизон-
для этого используются. Рассмотрим подробнее наибо- тальные регионы. Таким образом можно отображать сра-
лее часто используемые команды для управления окна- зу несколько окон на одном экране терминала. Рассмот-
ми (см. таблицу 1). рим подробнее команды для работы с регионами экрана
При закрытии какого-либо из окон номера других окон (см. таблицу 3).
не меняются и в нумерации появляются «дырки», кото- На рис. 2 изображен Screen с тремя именованными ок-
рые позднее могут быть заполнены новыми окнами. Хотя нами (Work, Configuration, Logs) и разделенным на два ре-
в Screen имеется команда для изменения номера окна, она гиона экраном. В верхнем регионе открыто окно Work с тек-
здесь не рассматривается и остается для самостоятельно- стовым редактором Vim и примером файла конфигурации
го изучения. В случае если закрыты все окна, Screen завер- Screen. В нижнем регионе – окно Configuration с частью об-
шает свою работу и выводит сообщение: щего файла конфигурации /etc/screenrc.
[screen is terminating]
Консольные сессии
И в завершение мы рассмотрим одну из самых популярных
Работа с текстом возможностей Screen. Представим следующую ситуацию:
Теперь рассмотрим работу с содержимым окон – копирова- системный администратор, находясь дома, заходит на уда-
ние и вставку текстового содержимого одного окна в дру- ленный сервер, открывает несколько окон, запускает необ-
гое, мониторинг окон, сохранение текстовой копии экрана ходимые задачи, затем закрывает соединение и едет на ра-
и другие похожие задачи (см. таблицу 2). боту. На работе он опять заходит на тот же сервер и восста-
В режиме копирования Screen запускает текстовый ре- навливает открытые дома окна с результатами выполнен-
дактор, похожий на редактор Vi. Наиболее часто использу- ных задач. Звучит немного фантастично? Ни в коем слу-
емые команды редактора: чае! Консольные сессии Screen как раз и предназначены
n клавиши управления курсором перемещают курсор для осуществления этой задачи. Они позволяют отсоеди-
по экранному буферу; нить от терминала текущую сессию Screen со всеми окна-
n клавиша «Пробел» отмечает начало и конец региона ми и выполняемыми приложениями и затем в любой мо-
для копирования. При втором нажатии «Пробел» от- мент времени присоединиться к ней опять. При этом все
меченный текст копируется в регистр по умолчанию выполняемые под Screen приложения будут продолжать
и Screen выходит из режима копирования. работать и использовать свои окна для вывода информа-
ции. Плюс ко всему консольных сессий
Таблица 2. Команды для работы с содержимым окон может быть несколько, но в этой ста-
Клавишная комбинация Текстовая команда Описание тье мы не будем на этом подробно ос-
Ctrl + a M monitor Включить/выключить мониторинг активности для текущего танавливаться.
окна. Когда мониторинг включен и в окне, находящемся
в фоновом режиме, производится вывод текста, в служебной
Рассмотрим команды отсоедине-
строке выводится информация об активности ния консольной сессии от терминала
- silence Включить/выключить мониторинг отсутствия активности (см. таблицу 4).
для текущего окна. Когда мониторинг включен и в окне, Чтобы присоединиться обратно
находящемся в фоновом режиме, некоторый период времени
не производится вывод текста, в служебной строке выводится к отсоединенной сессии или посмот-
информация об отсутствии активности реть список доступных сессий, необхо-
Ctrl + a h hardcopy Записать текстовое изображение текущего окна в файл димо запустить Screen с одним из сле-
hardcopy.номер_окна в каталоге Screen по умолчанию
дующих ключей:
Ctrl + a H log Включить/выключить трассировку текста текущего окна в файл n screen -r – присоединиться к отсо-
screenlog.номер_окна в каталоге Screen по умолчанию
единенной сессии.
Ctrl + a [ copy Войти в режим копирования. Дополнительные команды этого
режима описаны ниже n screen -R – присоединиться к пер-
Ctrl + a ] paste Вставить в окно текст из регистра по умолчанию (куда он вой подходящей отсоединенной
предварительно был скопирован с помощью команды выше) сессии. Это может быть полезно
в случае, если используется не-
Таблица 3. Команды для работы с регионами экрана сколько сессий.
Клавишная комбинация Текстовая команда Описание n screen -x – присоединиться к уже
Ctrl + a S split Разделить текущее окно или регион на два новых региона. работающей сессии.
При этом размеры всех регионов меняются для получения n screen -ls – вывести список доступ-
дополнительного пространства на экране, и в новом регионе
отображается пустое окно ных сессий.
Ctrl + a Tab focus Переместить текущий фокус отображения на регион ниже
или на верхний регион, если текущим является самый нижний Конфигурация
регион При запуске Screen по умолчанию
Ctrl + a Q only Закрыть все регионы, кроме текущего выполняются команды из файла /etc/
Ctrl + a X remove Закрыть текущий регион screenrc и файла .screenrc из домаш-

80
программирование
него каталога пользователя. Многие команды, которые
можно использовать в файлах конфигурации, были рас-
смотрены в таблицах выше в поле «Текстовая команда».
Ниже представлен пример конфигурации Screen из фай-
ла .screenrc:

# Отключить вывод лицензионной информации при старте


Screen
startup_message off

# Открыть оболочку для работы


chdir
screen -t Work

# Открыть оболочку для управления конфигурацией


chdir /etc
screen -t Configuration

# Открыть оболочку для просмотра логов Рисунок 2. Screen с тремя именованными окнами (Work,
chdir /var/log Configuration, Logs) и разделенным на два региона экраном
screen -t Logs
Если кому-то не нравится относительная «старость»
# Выбрать первое окошко после старта
select 0 Screen или не нужно такое большое количество возмож-
ностей, то можно обратиться к одной из следующих про-
Этот достаточно простой файл конфигурации открывает грамм:
три окна с именами Work, Configuration, Logs соответственно n dtach (http://dtach.sourceforge.net) – основной акцент
в личном каталоге пользователя, в каталоге /etc и каталоге при разработке этой программы сделан на компакт-
/var/log. После запуска на экране будет находиться первое ность. По аналогии со Screen она поддерживает воз-
окно с именем Work. На рис. 1 представлен пример рабо- можность работы с консольными сессиями, но не име-
ты Screen с этим файлом конфигурации. ет других возможностей Screen.
n SplitVT (http://www.devolution.com/~slouken/projects/
Что дальше? splitvt) – позволяет разделить экран терминала на две
Screen имеет огромное количество различных возмож- половинки и работать сразу с двумя программными обо-
ностей, и практически невозможно описать их все в одной лочками.
статье, поэтому некоторая часть функциональности оста- n Tmux (http://sourceforge.net/projects/tmux) – для работы
лась «за кадром». с консольными сессиями Tmux использует модель «кли-
Вот некоторые возможности/настройки Screen, кото- ент-сервер».
рые не были рассмотрены выше и остаются для самосто- n Twin (http://linuz.sns.it/~max/twin) – попытка создать тек-
ятельного изучения: стовый оконный интерфейс, аналогичный графическим
n Команды настройки эмуляции терминала. собратьям.
n Многопользовательские консольные сессии.
n Назначение или переназначение командам клавишных Итак, в этой статье мы рассмотрели возможности и боль-
комбинаций. шинство команд менеджера текстовых окон Screen. Я счи-
n Вспомогательные опции текстовых команд. Например, таю, что изучение Screen или одной из похожих программ
опция -t команды screen, которая используется в приме- может вывести производительность и соответственно про-
ре файла конфигурации. фессионализм системного администратора или програм-
n Редко используемые команды, например команды, ко- миста на качественно новый уровень. В любом случае это
торые можно использовать при настройке запуска не будет пустой тратой времени.
Screen, – echo и sleep.
n Переменные среды, которые мо- Таблица 4. Команды отсоединения консольной сессии от терминала
гут быть полезны при настройке Клавишная комбинация Текстовая команда Описание

Screen. Ctrl + a d detach Отсоединить консольную сессию и оставить ее запущенной


в фоновом режиме. При этом Screen пишет: [detached]
n Дополнительные ключи запуска
Screen. Ctrl + a D D pow_detach Отсоединить консольную сессию, оставить ее запущенной
в фоновом режиме и послать родительскому процессу Screen
сигнал HANGUP. При запуске Screen из удаленного терминала
Screen – это программа с большой это означает отсоединение Screen и затем закрытие
соединения. При этом Screen пишет: [power detached]
историей, надо заметить, что первая
Ctrl + a z suspend Отсоединить консольную сессию и оставить ее запущенной
версия появилась в 1987 году. На дан- как фоновый процесс родительской командной оболочки.
ный момент к Screen практически В этом случае для восстановления сессии, кроме команд,
описанных ниже, могут быть использованы стандартные
не добавляется новых возможностей команды управления фоновыми процессами командной
(одной из причин может быть наличие оболочки
уже большого их количества на дан- Ctrl + a Ctrl + \ quit Закрыть все окна сессии и выйти из Screen. Надо заметить,
что многие дистрибутивы переопределяют клавишную
ный момент) и производится в основ- комбинацию для этой команды, но текстовую команду можно
ном только исправление ошибок. использовать в любом случае

№8, август 2008 81


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

Окно в электронный мир:


история развития графического
пользовательского интерфейса
Часть третья, заключительная

Дмитрий Мороз
Рубеж последнего десятилетия ушедшего века стал переломным моментом в становлении
графического интерфейса в качестве неотъемлемой части операционной системы.
Практически все популярные ОС обзавелись собственным GUI, а командная строка
окончательно перешла в разряд «для фанатов» и пользователей UNIX.

С
момента подписания между кор- Первая версия операционной сис- из Windows 3.0 с той лишь разницей,
порациями IBM и Microsoft до- темы не имела графического интер- что группы программ открывались
говора о сотрудничестве в об- фейса и, как и DOS, управлялась из ко- в новом окне, а не внутри предыду-
ласти разработки операционных сис- мандной строки. Примитивная фор- щего. На экране Presentation Manager
тем в августе 1985 года и до появле- ма GUI под названием Presentation постоянно присутствовали две икон-
ния в продаже первого продукта про- Manager (Менеджер презентаций) по- ки – DOS и Print Manager. При нажа-
шло почти два года. Лишь в апреле явилась лишь с выходом версии 1.1 тии на первую ОС активировала сес-
1987 года миру была представлена но- в ноябре 1988 года и была усовер- сию DOS, в которой запускались про-
вая ОС под названием OS/2 (Operating шенствована в OS/2 1.2 и 1.3. Данный граммы MS-DOS. Вторая же, как сле-
System/2), продажи которой стартова- графический интерфейс практически дует из названия, запускала менед-
ли спустя ещё восемь месяцев. полностью повторял Program Manager жер печати.

82
ретроспектива
Сотрудничество двух корпораций
просуществовало недолго. Microsoft Экспериментальный пёс по своему усмотрению. Они представляли
понимала, что совершенствование Microsoft собой как ярлыки для запуска программ,
и продажа своей операционной сис- В начале 1995 года Microsoft выпустила так и различные файлы. При помощи гида
темы в лице Windows принесёт ей го- программу Bob, разработанную в качест- можно было легко добавить, изменить либо
раздо больше прибыли. В то же время, ве замены для интерфейсов Windows 3.x же удалить объект из комнаты. Кроме того,
принимая участие в разработке OS/2, и 95 и ориентированную на новичков, толь- пользователь мог полностью изменить вне-
корпорация собственноручно ставила ко приступающих к своему знакомству шний вид GUI, выбрав один из нескольких
палки себе же в колёса. В результате с компьютером. стилей. В арсенале Bob имелось несколько
в 1991 году партнёрское соглашение Срезу после запуска Bob пользователь собственных программ, таких как: тексто-
между IBM и Microsoft было расторг- попадал в так называемую «Общую ком- вый редактор, программа для ведения до-
нуто, и отныне компании шли каждая нату», в углу которой его ждал «гид» – пёс машней бухгалтерии, адресная книга, ка-
своим путём. по кличке Ровер (Rover). При желании мож- лендарь, чековая книжка, а также специ-
В марте 1992 года появилась сле- но было выбрать себе другого гида, каж- альный «менеджер для ухода за домом»,
дующая версия операционной систе- дый из которых обладал своим собствен- содержавший предустановленные катего-
мы IBM – OS/2 2.0. Данная операци- ным поведением, словарём из подсказок рии с различной текстовой информацией
онная система стала первой 32-раз- и случайных фраз, анимацией и звуковы- и списками дел.
рядной ОС для IBM PC-совместимых ми эффектами (позже часть этих гидов Все активные объекты GUI были на-
компьютеров. стала «помощниками» справочного раз- рисованы при помощи векторной графи-
Главным новшеством в OS/2 2.0 дела офисного пакета Microsoft Office 97). ки, в результате чего пользователь мог са-
стал графический интерфейс Workplace Однако даже в этом случае Ровер перио- мостоятельно изменять размеры любого
Shell. Он был создан на основе стан- дически заглядывал «в гости» с каким-ни- из них. Однако это особенность обладала
дарта CUA’91 (Common User Access – будь полезным советом. и существенным недостатком: в угоду про-
Общий пользовательский доступ), яв- Интерфейс операционной системы изводительности цветовая палитра в Bob
лявшегося частью семейства стандар- представлял собой комнату жилого дома, была ограничена 256 цветами.
тов, разработанных IBM для облегче- с расположенными на столиках адресной Из-за высокой стоимости и системных
ния разработки унифицированных гра- книгой, блокнотом, корзинами для входя- требований новый Bob не получил широ-
фических интерфейсов приложений щих и исходящих сообщений, календарём кого распространения, в результате чего
для различных платформ и операци- на стене и т. д. Каждый элемент на экране Microsoft прекратила его дальнейшее раз-
онных систем. активен, то есть, например, чтобы прове- витие. Впоследствии пёс Ровер появился
Workplace Shell был полностью объ- рить почту, пользователю было достаточ- в операционной системе Windows XP, од-
ектно-ориентированным GUI, благода- но кликнуть по корзине со входящими со- нако на этот раз лишь в качестве анима-
ря чему пользователь мог управлять общениями. ционного персонажа, сопровождающе-
программами, файлами, устройства- Комната, являвшаяся основой GUI, со- го пользователя во время активации диа-
ми и папками, манипулируя объекта- держала множество активных объектов, лога поиска.
ми на экране, в качестве которых вы- которые пользователь был волен изменять
ступали иконки. Присутствовал в ОС
и специальный редактор, благодаря чение компьютера осуществлялось мостоятельно добавлять либо удалять
которому пользователь при желании выбором соответствующего пункта ящики, а также содержащиеся в них
мог изменять вид штатных иконок. из всплывающего меню. объекты. Механизм работы Измельчи-
Наиболее интересной особен- Минимизированное окно програм- теля не изменился, однако теперь он
ностью графического интерфейса мы не оставалось на рабочем сто- также находился на LaunchPad. Сама
OS/2 2.0 стала возможность измене- ле, а перемещалось в специально от- панель могла быть размещена пользо-
ния в любой папке цвета фона. Кро- ведённую для этого папку. Вместо вателем в любой части экрана.
ме того, пользователь мог установить «Корзины» в OS/2 2.0 использовал-
в качестве него любое графическое ся «Шреддер» (от англ. Shredder – из- Империя наносит
изображение. мельчитель). Перемещённый на него ответный удар
В отличие от «к лассической» файл не сохранялся во временной пап- В то время как «Голубой гигант» про-
MacOS, о которой я рассказывал в про- ке, а сразу же удалялся. должал совершенствовать свою OS/2,
шлой статье цикла, в OS/2 2.0 для вы- В октябре 1994 года IBM предста- компания Гейтса не собиралась до-
полнения различных операций исполь- вила общественности новую версию жидаться своего бывшего партнёра
зовались обе кнопки мыши, а также OS/2 Warp 3. Главным нововведени- и готовила миру новую операцион-
повсеместно применялись всплываю- ем в графическом интерфейсе треть- ную систему, выход которой был на-
щие меню. Стоит отметить появление ей версии ОС стало появление панели мечен на 1994 год. Очередная версия
в них команды «Создать ещё один» LaunchPad. Она содержала специаль- Windows, ещё более похожая внешне
(Create another), дублирующей объект, ные «ящики», в которых хранились раз- на MacOS, должна была уравнять поль-
а также «Создать тень» (Create shadow), личные объекты. При нажатии на пик- зователей IBM PC-совместимых ком-
формировавшей ссылку на оригиналь- тограмму секции всплывал список её пьютеров со счастливыми владельца-
ный объект («ярлык»). Даже выклю- содержимого. Пользователь мог са- ми Macintosh.

№8, август 2008 83


ретроспектива
компьютер, Сетевое окружение, Корзина и др.). При помо-
щи механизма Drag & Drop папки можно было переместить
из окна Windows Explorer на рабочий стол, в другие папки
или же на иконки программ, вызывая тем самым определён-
ное действие системы.
Обновлению подвергся и внешний вид окон, а также
их содержимого. В дополнение к опциям сворачивания
и развёртывания в правом верхнем углу каждого окна была
добавлена кнопка его закрытия. Различные элементы уп-
равления (флажки, радио-кнопки и обычные кнопки, а так-
же текстовые поля) – отныне элементы диалоговых окон –
также имели «трёхмерный» вид. Панель задач, которая
по умолчанию располагалась внизу, могла быть перемеще-
на пользователем в любую другую сторону экрана. На ней
располагались кнопка меню «Start», пиктограммы быстро-
OS/2 2.0 го доступа к программам и папкам с файлами, свёрнутые
окна запущенных приложений, а также часы.
Выход Windows 95 состоялся 24 августа 1995 года. Сре- Меню Start содержало ярлыки для быстрого запуска
ди множества нововведений по сравнению с предыдущей установленных программ, список последних открытых до-
версией ОС, пожалуй, главным стал переписанный практи- кументов, ссылки на инструменты для настройки системы,
чески «с нуля» графический интерфейс, основная концеп- доступ к меню поиска и т. д.
ция которого используется Microsoft (и другими разработ- Напоследок нельзя не упомянуть и о шедшем в комп-
чиками ОС) по сей день. лекте с новой версией ОС браузере Internet Explorer 4.0, ко-
Рабочий стол Windows 95 отныне был полностью под- торый после установки к нему дополнения Windows Desktop
властен пользователю: он мог создавать новые иконки Update наделял Windows 95 графическим интерфейсом,
и удалять старые, а также перемещать их в любую точ- ставшим позже стандартным GUI для следующей опера-
ку экрана. Появилась возможность создания «ярлыков» – ционной системы компании – Windows 98.
файлов в виде иконок, указывавших путь на другой файл Благодаря большому количеству нововведений, повы-
в компьютере. шенной стабильности, а также новому графическому интер-
Главными нововведениями GUI Windows 95 стал фай- фейсу Windows 95 быстро завоевала популярность среди
ловый менеджер Windows Explorer (Проводник), пришед- пользователей персональных компьютеров. В течение сле-
ший на смену Program Manager из Windows 3.x, и «Панель дующей пары лет она стала самой продаваемой операцион-
задач». ной системой в мире, сильно ударив по позициям Apple и её
Рабочий стол Windows представлял собой не просто ми- MacOS, а также забив самый большой гвоздь в гроб OS/2.
нимизированные иконки. Теперь на нём могли находиться Последняя версия ОС от IBM под номером «4» увидела
файлы, папки, а также некоторые системные иконки (Мой свет в сентябре 1996 года. Графически Warp 4 не сильно от-
личалась от своей предшественницы,
за исключением одного: LaunchPad бы-
ла заменена на WarpBar, сильно напо-
минающую панель задач Windows 95.
Следующей операционной систе-
мой Microsoft стала Windows 98, вы-
шедшая 25 июня 1998 года. В целом
оконный менеджмент новой ОС не пе-
ретерпел практически никаких изме-
нений по сравнению с предшествен-
ницей.
Главным образом изменения за-
тронули менеджер Windows Explorer.
Отныне его обновлённая версия была
тесно связана с Internet Explorer. Од-
ним из компонентов интернет-брау-
зера стала и новая система справки
Hyper Help.
Windows 98 позволяла элементам
управления ActiveX отображаться пря-
мо на рабочем столе. Также отныне
он поддерживал установку в качестве
OS/2 Warp 4 фона не только рисунков, но и полно-

84
ретроспектива
функциональных веб-страниц, с анимированной графикой
и функционирующими ссылками.
Радикальных изменений в графическом интерфейсе
Windows 98 сделано не было. Можно сказать, что Microsoft
просто провела «работу над ошибками» своей предыду-
щей ОС.

Последний из могикан
Покинувший в 1990 году компанию Apple Жан-Луи Гассе
(Jean-Louis Gassee), ранее возглавлявший её исследова-
тельские и производственные подразделения, решил соз-
дать с нуля новый компьютер, для чего основал компанию
Be Inc. Компьютер BeBox с операционной системой BeOS,
появившийся в 1995 году, стал последней платформой
с собственным аппаратным и программным обеспечени-
ем. В дальнейшем операционная система была перенесе- Microsoft Bob
на на компьютеры Macintosh и платформу x86.
Наиболее интересной особенностью графического ин- интерфейс MacOS вплоть до версии 9.х включительно ос-
терфейса BeOS стали так называемые «скользящие заго- тавался всё тем же классическим GUI, который в 1984 году
ловки» (sliding tabs), позаимствованные у среды Smalltalk: увидели пользователи компьютеров Macintosh.
строка заголовка занимала лишь необходимую для отоб- В компании понимали, что улучшение операционной
ражения названия часть длины окна. Однако разработчи- системы, основа которой была написана ещё в начале
ки Be Inc. усовершенствовали эту идею, в результате чего 80‑х годов прошлого века, в конце концов заведёт в тупик.
пользователь мог двигать строку заголовка по всей дли- В результате в конце 1996 года Apple приобрела компанию
не окна, подстраивая её под конкретные нужды. Благода- NeXT Inc., тем самым прибрав к своим рукам операционную
ря этому при открытии нескольких окон путём использова- систему NeXTSTEP. Разработка новой ОС для компьютеров
ния «скользящих заголовков» можно было ускорить пере- Macintosh продолжалась на протяжении пяти лет, и лишь
ключение между ними. в марте 2001 года появилась десятая версия операцион-
BeOS поддерживала до 32 виртуальных рабочих сто- ной системы MacOS, получившей приставку «X».
лов, каждому из которых можно было присвоить своё раз- Одним из основных нововведений MacOS X стал новый
решение, а также цветовую палитру. В операционной сис- графический интерфейс под кодовым названием Aqua, по-
теме было реализовано удобное перемещение окна с од- лучивший в своё распоряжение масштабируемые полно-
ного рабочего стола на другой путём его удерживания кур- цветные иконки, тени, отбрасываемые различными объек-
сором мыши. тами, прозрачные заголовки окон и т. д. Благодаря стара-
Ещё одна полезная особенность интерфейса BeOS за- ниям инженеров Apple одна из главных особенностей ин-
ключалась в возможности выполнения операций с файла- терфейса NeXTSTEP, панель Dock, «перебралась» и в но-
ми посредством одного нажатия мы-
ши. Например, если пользователю
необходимо было скопировать объект
из рабочего стола в выбранную папку,
он при помощи правой кнопки мыши
вызывал выпадающее меню, и, не от-
пуская её, последовательно открывал
весь путь вплоть до нужной папки. Пос-
ле отпускания кнопки мыши происхо-
дило копирование файла.
Напоследок стоит упомянуть об од-
ном «пасхальном яйце»: после нажа-
тия комбинации клавиш <Ctrl>, <Alt>
и <Shift> и одновременно щелчка мы-
шью по кнопке Start в меню появляет-
ся новая опция Windows Decor, кото-
рая позволяет изменить стандартное
оформление окон на MacOS, Windows
или же AmigaOS-подобное.

«Десятка»: перерождение
Несмотря на различные нововведения
и усовершенствования, графический Windows 95

№8, август 2008 85


ретроспектива
Новый графический интерфейс стал «визитной карто-
чкой» MacOS, и Apple, не желая упускать полученное пре-
имущество, в каждой следующей версии своей ОС продол-
жала развивать Aqua.
Так, в MacOS X v10.2 появилась технология Quartz
Extreme, впервые задействовавшая мощность графичес-
ких процессоров видеокарт для прорисовки объектов на эк-
ране, а также различных визуальных эффектов.
Ещё одна технология, Bonjour (ранее именовавшаяся
Rendezvous), позволяла устройствам автоматически на-
ходить между собой «общий язык» абсолютно без участия
пользователя в процессе настройки.
В MacOS X v10.3 внешний вид окон был изменён
со «стекла» на «полированный металл». Не заставил себя
ждать и ряд новых возможностей.
Windows 98 Одной из них стала Expose, вызываемая нажатием спе-
циальной клавиши либо же перемещением курсора мыши
вый GUI. Кроме ярлыков для запуска программ, Dock содер- в определённый угол экрана. При активации данной опции
жала и свёрнутые окна. Способность минимизировать ок- все открытые в данный момент окна моментально умень-
на в MacOS также впервые появилась именно в «десятке». шаются в размерах и меняют своё расположение таким об-
Вместо обычных рисованных пиктограмм свёрнутое окно разом, чтобы быть видимыми без взаимного перекрытия,
отображало своё реальное содержимое. Например, виде- облегчая пользователю поиск нужного.
оплеер, будучи уменьшенным до иконки в Dock, продолжал Обновление коснулось и файлового менеджера Finder.
проигрывать видеоролик. Наконец, пользователь мог вы- Теперь он мог «похвастаться» поиском из любого окна в ре-
носить на панель избранные папки, навигация по которым жиме реального времени, настраиваемой панелью Sidebar,
осуществлялась при помощи всплывающих меню без не- расположенной в левой части окна, разноцветными «мет-
обходимости использования файлового менеджера. ками» для файлов и т. д.
Файловый менеджер получил способность предостав- Отныне один компьютер могли делить сразу несколько
лять каталоги и папки тремя различными способами. В до- пользователей. Достигалось это при помощи технологии
полнение к обыденным «иконкам» и «спискам» появилось быстрого переключения сеансов Fast User Switching, кото-
отображение в виде колонок, перекочевавшее опять-таки рая позволяла одному пользователю оставаться под сво-
из NeXTSTEP. В последнем случае содержимое каждой пап- им логином, в то время как в ОС заходил другой.
ки в Finder открывается в новой колонке, которая сдвига- Появившийся в MacOS X v 10.4 Dashboard представ-
ет колонку более высокого уровня в противоположную сто- лял собой группу небольших программ, названных «вид-
рону. Также стоит отметить, что в отличие от большинства жетами», рабочая область с которыми могла быть вызва-
встроенных файловых менеджеров современных ОС Finder на нажатием всего одной клавиши. Стандартный набор
не является веб-браузером. виджетов, поставлявшийся с системой, впоследствии мог
быть легко расширен пользователем
за счёт скачивания из Интернета но-
вых программ.
Специальное средство для созда-
ния скриптов под названием Automator
позволяло пользователю лёгко объ-
единять различные приложения вмес-
те для комплексной автоматизации
часто повторяющихся действий.
Текущей на данный момент являет-
ся MacOS X v10.5. Согласно заявлени-
ям Apple в очередной версии её ОС бы-
ло реализовано более 300 различных
нововведений, из которых ниже упомя-
нуты лишь наиболее крупные.
Очередному изменению подвер-
гся внешний вид интерфейса новой
MacOS Х. Так, основательная перера-
ботка затронула панель Dock, отныне
представляющую пользователю своё
содержимое в трёхмерной проекции.
BeOS 5.0 Кроме того, теперь любая папка, вы-

86
ретроспектива
несенная на Dock, демонстрирует своё
содержимое в виде «вылетающего»
вверх списка с превью содержащихся
в ней файлов.
Новое представление данных под
названием CoverFlow позволяет Finder
отображать большие превью каждого
файла, которые «летают» по рабоче-
му столу в трёхмерном пространстве.
При этом пользователь может исполь-
зовать эти превью в качестве обычных
иконок, совершая над ними различные
манипуляции.
Собственная реализация Apple
идеи виртуальных рабочих столов
в MacOS X представлена технологи-
ей Spaces. Она позволяет одновре-
менно просмотреть все активные ра-
бочие столы, переключаться между
ними и переносить запущенные про-
граммы и открытые окна с одного сто-
ла на другой. MacOS X v10.0
Ещё одной интересной техноло-
гией, о которой стоит упомянуть, яв-
ляется утилита автоматизированного
резервирования данных Time Machine,
предоставляющая пользователю воз-
можность восстановить файлы, кото-
рые были удалены либо же заменены
файлами более новой версии.
Ну и, конечно же, нельзя не упомя-
нуть о Front Row – специальной оболоч-
ке для работы с хранящейся на ком-
пьютере и подключённых к нему муль-
тимедийных устройствах информаци-
ей. Теперь просмотр фотографий и ви-
деороликов, а также прослушивание
музыки осуществляется при помощи
небольшого и удобного пульта дистан-
ционного управления, идущего в ком-
плекте с компьютером.
На данный момент Apple вовсю ра-
ботает над следующей версией своей
операционной системы, которую она
намеревается представить миру уже MacOS X v10.3
в следующем году. По словам пред-
ставителей компании, новая MacOS X тем Windows Me и 2000, таким же «се- Переработке подверглась панель
практически не будет содержать боль- рым и унылым», как и его предшест- управления, элементы которой объ-
ших нововведений. Однако уже су- венники. единены в общие группы. Сама па-
ществующие будут «отточены до со- Ситуация изменилась с выходом нель теперь представлена в виде веб-
вершенства». в октябре 2001 года новой ОС под наз- странички. Иконки, находящиеся в сис-
ванием Windows XP. Улучшенный гра- темной области возле часов, получи-
Разукрашенные «Окна» фический интерфейс новой операци- ли способность привлекать внимание
В то время как пользователи компью- онной системы обзавёлся поддерж- пользователя при помощи всплываю-
теров Macintosh не могли нарадовать- кой тем оформления, тенями, отбра- щих сообщений.
ся красоте и продуманности интер- сываемыми значками на рабочем сто- Нововведения «постучались в две-
фейса MacOS X, подавляющему боль- ле и меню, а также новомодными эф- ри» и к «Панели задач» вместе с ме-
шинству пользователей приходилось фектами типа прозрачности, затуха- ню Start. Отныне появилась возмож-
иметь дело с GUI операционных сис- ния и скольжения. ность группировать открытые окна од-

№8, август 2008 87


ретроспектива
да. Новый графический интерфейс под
названием «Aero», хотя и требует со-
ответствующего аппаратного обеспе-
чения, содержит изрядную долю нов-
шеств.
Windows Flip 3D позволяет пере-
ключаться между открытыми окна-
ми, организовав их в колонку одно-за-
другим. Обновлённые эффекты, ими-
тирующие воду, позволяют регулиро-
вать прозрачность окон и других эле-
ментов интерфейса. Сами же окошки
получили в своё распоряжение новые
эффекты анимации.
В Windows Vista появилась боковая
панель Sidebar, на которую пользова-
тель волен вынести небольшие аппле-
ты под названием «гаджеты». Кроме
этой панели данные программки мо-
гут быть установлены в любой части
MacOS X v10.4 рабочего стола.
Большие изменения произошли
и с файловым менеджером Windows
Explorer, который теперь предостав-
ляет больше возможностей для орга-
низации, навигации и поиска. Панель
задач менеджера была убрана, а все
её опции перенесены на панель инс-
трументов. Была добавлена новая па-
нель под названием «Favorite links»,
позволяющая одним нажатием мыши
получить доступ к общим директори-
ям. Стоит упомянуть и про новую ад-
ресную строку, а также обновлённую
панель предварительного просмотра
и панель детального описания.
Как и в MacOS X, Windows Vista
обзавелась своим движком для поис-
ка информации в режиме «реального
времени» под названием Instant Search.
Как и в ОС от Apple, поле для поиска
встроено во многие окна интерфей-
MacOS X v10.5 са системы.
Напоследок стоит отметить, что
ной программы для более экономного Файловый менед жер Windows вп ер вы е с о вр е м е ни появ л е ния
расходования места на панели. Explorer обзавёлся контекстно-зави- в Windows 95 меню Start Microsoft кар-
Меню кнопки Start теперь разде- симыми выпадающими списками в ле- динально изменила его кнопку. Вмес-
лено на две области. В левой части вой части окна, которые содержат сис- то прямоугольника с надписью «Start»
находятся ссылки на использующи- темную информацию, наиболее часто на пользователя теперь «смотрит» круг
еся «по умолчанию» интернет-брау- употребляемые папки, а также «об- с эмблемой компании, получивший на-
зер и почтовый клиент, а также ярлы- щие» действия над объектом. звание «Pearl» (Жемчуг).
ки для часто используемых программ. В Windows XP появилась новая ин-
Полный же список установленного ПО терактивная справочная система, при- Многоликий Linux
можно посмотреть, щёлкнув по со- званная в виде пошаговых инструкций За почти два десятилетия существо-
ответствующей кнопке. Что же каса- помочь пользователю решить возник- вания GNU/Linux для неё было созда-
ется системных иконок, ранее нахо- шую проблему. но множество различных оконных ин-
дившихся на рабочем столе, теперь Ещё большему обновлению GUI терфейсов, предназначенных для са-
они перенесены в правую часть меню подверглась Windows Vista, появив- мых разнообразных целей. Ограничен-
кнопки Start. шаяся на свет в конце января 2007 го- ный объём журнала не позволяет ох-

88
ретроспектива
ватить всё разнообразие графических
оконных интерфейсов Linux, поэтому я
расскажу лишь о наиболее известных –
KDE и GNOME.
В то время, когда стартовали оба
проекта, в мире существовало уже
достаточное количество разнообраз-
ных графических интерфейсов, по-
этому «изобретать велосипед» созда-
телям KDE и GNOME не пришлось. Ос-
новную часть идей разработчики поза-
имствовали из операционных систем
Windows, попутно «приправив» их на-
иболее интересными возможностями
GUI других ОС.
И KDE, и GNOME имеют как свои
сильные стороны, так и слабые. На-
чать стоит с того, что основаны они
на базе различных кроссплатформен-
ных библиотек. GNOME, созданный
на базе библиотеки GTK/GTK+, име-
ет строгий «классический» вид, одна- Windows XP
ко более удобную организацию меню,
да и остального интерфейса в целом.
В отличие от него, KDE, основанный
на Qt, более «красив», однако в по-
гоне за разнообразием и количест-
вом функций он становится сложнее
в использовании для обычных поль-
зователей.
А теперь поговорим о каждом
из оконных интерфейсов более под-
робно.
За время своего существования
KDE (начало проекту было положено
в 1996 году, выпуск первой версии –
в июле 1998 года) успел пережить мно-
жество версий и на данный момент ос-
тановился на 4.х.
И KDE, и GNOME внешне старают-
ся быть похожими на графический ин-
терфейс Windows, попутно заимствуя
лучшие особенности GUI других опе-
рационных систем. Панель под наз-
ванием KDE Desktop Panel, находя- Windows Vista
щаяся в нижней части экрана интер-
фейса оконного менеджера, является ный интерфейс способен демонстри- следующим образом: в списке откры-
аналогом панели задач в ОС Microsoft. ровать содержимое свёрнутого ок- тых окон на панели задач появляется
Точно так же она «несёт в себе» меню на в виде небольшого изображения, пункт нового ПО, в котором отобра-
«Start» (в KDE 4.0 получившее назва- в режиме реального времени отобра- жается индикатор процесса загрузки
ние «KickOff»), иконки часто исполь- жающего всё, что происходит с объ- программы.
зуемых программ, список открытых ектом. Для этого достаточно навес- Интересной особенностью ме-
окон и часы. ти курсором мыши на имя окна на па- ню «Start» является группировка про-
Единственное видимое различие нели задач. грамм по задачам (впрочем, данное
между двумя панелями заключается Многое программное обеспече- свойство относится ко всем оконным
в наличии на KDE Desktop Panel об- ние для Linux грузится достаточно менеджерам для Linux). Например, всё
ласти, в которой находятся четыре (по долго, не демонстрируя при этом ни- программное обеспечение для рабо-
умолчанию) виртуальных рабочих сто- какой видимой активности на экра- ты с графикой хранится в отдельной
ла. Начиная с четвёртой версии окон- не. В KDE данная проблема решена категории.

№8, август 2008 89


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

Gnome 2.20 Добавление GUI третьего


измерения
Со дня появления графического ин-
терфейса в лабораториях Xerox PARC
прошло уже более тридцати лет, од-
нако концепция двухмерного рабочего
стола в качестве GUI для операцион-
ных систем продолжает доминировать
на рынке. Впрочем, с каждым годом
на свет появляется всё больше проек-
тов, задающихся целью «подружить»
интерфейс ОС с третьим измерением.
Поскольку место для статьи в журна-
ле ограничено, я расскажу лишь о на-
иболее известном GUI подобного ти-
па – Project Looking Glass.
Начало данному проекту в недрах
корпорации Sun Microsystems положил
программист Хидейя Кавахара (Hideya
Kawahara), корпевший над ним в сво-
бодное от работы время. Руководство
Sun заинтересовали первые результа-
Looking Glass ты, и инженеру, а также группе выде-
ленных ему помощников, было поруче-
Помимо стандартных кнопок уп- По сравнению со своим конкурен- но сконцентрировать все свои усилия
равления окнами, KDE (впрочем, как и том развитие GNOME продвигается на разработке Looking Glass.
другие оконные интерфейсы для Linux) более спокойно и неторопливо. Одна- Демонстрация проекта в 2003 го-
позволяет двойным щелчком по заго- ко и этому GUI есть что предоставить ду, а также новость об открытии его
ловку окна «свернуть» его в узкую по- пользователю. исходных кодов вызвали живейший
лоску, тем самым экономя место на ра- Компоненты интерфейса GNOME интерес к трёхмерному GUI Кавахары.
бочем столе. взаимодействуют друг с другом. С тех пор проект развивается не толь-
В K D E р е а л и з о в а н а н а л о г В большинстве случаев пользователь ко усилиями Sun, но и сообществом
Dashboard из MacOS X, в 4-й версии может выполнить одно действие не- Open Source. После трёх лет разрабо-
оконного интерфейса именуемый сколькими различными способами. ток в декабре 2006 года свет увиде-
Show Desktop. Из прочих «красивос- Например, можно запускать приложе- ла первая стабильная версия Looking
тей» стоит отметить возможность ус- ния из панелей, меню или же с рабо- Glass под номером 1.0.
тановки для каждого окна индивиду- чего стола. Looking Glass представляет собой
ального уровня прозрачности, реали- В отличие от KDE, где панель уп- трёхмерный графический интерфейс
зованную в оконном менеджере KDE равления оконным интерфейсом со- для операционных систем Linux, Solaris
под названием KWin. держит все настройки в одном инс- и Windows, который написан на язы-

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

KDE 4.0

ке Java с использованием API Java 3D ся текст заголовка, облегчающий по- ные графические интерфейсы, следу-
для достижения платформенной не- иск нужного приложения. ющие принципам, заложенным десят-
зависимости. Каждое окно имеет возможность ки лет назад. И ведь если немного за-
Внешне Looking Glass представ- разворота тыльной стороной, на кото- думаться: зачем «ломать» то, что де-
ляет собой трёхмерное рабочее про- рой пользователь может делать текс- сятки лет работает так же исправно,
странство с объёмными фоновы- товые заметки. Кроме того, она служит как и швейцарские часы?
ми изображениями и трёхмерной па- для вывода дополнительных меню на-
нелью задач, напоминающей Dock строек, не загромождающих основную 1. http://www.wikipedia.org.
из MacOS X v10.5. Трёхмерные иконки рабочую область. Наконец, для каждо- 2. http://www.arstechnica.com.
окон на ней в режиме реального вре- го окна существует опция настройки 3. http://www.sitepoint.com.
мени отображают своё содержимое, определённой степени прозрачности. 4. http://toastytech.com.
которое можно увидеть, просто наве- 5. http://www.mprove.de.
дя курсор на пиктограмму. С компьютером на «ты» 6. http://www.guidebookgallery.org.
Одной из наиболее примечатель- Что же ждёт нас в будущем? Давайте 7. http://www.kde.org.
ных особенностей Looking Glass яв- пофантазируем: повсеместное рас- 8. http://www.gnome.org.
ляются объёмные окна, которые мож- пространение трёхмерных графичес- 9. Мороз Д. Окно в электронный мир: ис-
но не только перемещать традицион- ких интерфейсов? Управление ком- тория развития графического поль-
ным для «двухмерных» GUI способом, пьютером при помощи голоса, жести- зовательского интерфейса. Часть 1.
но и вращать относительно вертикаль- куляции или даже глаз? А может, через //Системный администратор, №11,
ной оси. В результате не используемое несколько лет нам предложат абсолют- 2007 г. – C. 86-91.
в данный момент окно пользователь но новую концепцию GUI, основанного 10. Мороз Д. Окно в электронный мир: ис-
волен повернуть торцом к плоскости на концепции «виртуальной реальнос- тория развития графического поль-
экрана, дабы оно не занимало лишнее ти»? Будущее покажет. Ну а пока пот- зовательского интерфейса. Часть 2.
место на рабочем пространстве. В до- ребности большинства пользователей //Системный администратор, №12,
полнение к этому на торце размещает- продолжают удовлетворять двухмер- 2007 г. – C. 82-89.

№8, август 2008 91


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

Fedora Unleashed 2008 Edition


Andrew Hudson, Paul Hudson
сяце мы поставим обновленное изда- нением основных операций по систем-
ние данной книги, которое, хотя и не ному администрированию операцион-
переведено на русский язык, зато со- ной системы: управление пользовате-
держит информацию, актуальную для лями, автоматизация выполнения за-
восьмой версии Fedora. дач, мониторинг, резервное копирова-
Книга, написанная бывшим штат- ние и восстановление, сеть, удаленный
ным редактором журнала Linux Format доступ, виртуализация на основе ги-
и его коллегой по перу, содержит под- первизора Xen. В четвертой части рас-
робную информацию по инсталляции, сматриваются такие серверные службы
использованию и администрированию как веб-сервер Apache, сервер печати,
популярного дистрибутива Linux. Тыся- FTP-сервер, сервер электронной поч-
честраничное издание отличает широ- ты, прокси-сервер, DNS и DHCP, LDAP-
кий охват тем: от настольных приложе- сервер. Пятая часть представляет со-
ний и игр до настройки серверных ком- бой краткое введение в языки Perl, PHP,
понентов, виртуализации и програм- Python и утилиты разработки.  шестую
мирования. часть собраны такие темы, как настрой-
С переводом одного из предыдущих Книга разбита на шесть основных ка производительности, безопасность
изданий этой книги читатели могли оз- частей. В первой рассматривается ус- написание Shell-скриптов, управление
накомиться несколько лет назад, когда тановка дистрибутива и первоначаль- модулями ядра.
вышла книга «Red Hat Fedora 4. Пол- ная настройка. Во второй части идет
ное руководство». На данный момент речь об использовании Fedora в качест- n Издательство: Sams Publishing
эта книга до сих пор остается, пожа- ве клиентской операционной системы. n Год издания: 2008
луй, самым подробным руководством Здесь рассматриваются такие темы, n Количество страниц: 926
по дистрибутиву Red Hat на русском как офисные приложения, мультимедиа n ISBN: 978-0-672-32977-7
языке. На «книжную полку» в этом ме- и игры. Третья часть знакомит с выпол- n Цена: ≈ $31,49

Поддержка корпоративных
пользователей Windows Vista
Тони Нортроп, Дж. К. Макин
Но даже если вы и не планируете вой политики; решение проблем, свя-
сдавать данный тест, а являетесь сис- занных с настройками системы безо-
темным администратором или специ- пасности и установка обновлений; нас-
алистом по поддержке пользователей тройка аутентификации, авторизации
на предприятии, где по тем или иным и шифрования; работа с событиями
причинам используется Windows Vista, и решение проблем настройки произ-
данная книга будет весьма полезна. водительности; настройка сети и ре-
Большинство вышедших изданий, пос- шение возникающих проблем, подклю-
вященных Windows Vista, рассматри- чение клиентских компьютеров и уда-
вают данную операционную систему ленный доступ к операционной систе-
как работающую на отдельно стоящем ме. К учебнику прилагается CD-диск
компьютере, подключенному к Интер- с демонстрационной версией экзаме-
нету, или максимум взаимодействую- национного теста, дополнительными
щую с другими хостами домашней се- упражнениями и PDF-версией данной
Еще один учебный курс по Windows ти. В данном же учебнике рассматри- книги на английском языке.
Vista позволит подготовиться к сер- ваются темы, без знания которых вам
тификационному тесту на получение не обойтись, если вы вынуждены об- n Издательство: «Русская Редакция»
звания Microsoft Certified IT Professional служивать десятки или сотни инстал- n Год издания: 2008
(MCITP): Enterprise Support Technician. ляций данной операционной системы. n Количество страниц: 560
Кстати, как и сама книга, данный экза- Изучив это пособие для самоподго- n ISBN: 978-5-7502-0363-5
мен доступен на русском языке, что уп- товки, вы познакомитесь с такими те- n Цена: ≈ 577 руб.
рощает «вход» в армию сертифициро- мами, как установка и развертывание Книга предоставлена интернет-магазином
ванных специалистов Microsoft. ОС на предприятии; настройка группо- Books.Ru.

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

Joomla! Практическое руководство


Бэрри Норт
перевод выполнен весьма оператив- создание блога на движке Joomla, при-
но, по англоязычному изданию этого влечение посетителей. Приведен при-
года, и в книге обсуждается актуаль- мер создания сайта для малого биз-
ная версия Joomla! 1.5. неса и школьного портала. Для русс-
В отличие от ранее рассмотренной коязычного читателя немаловажным
книги по CMS Drupal, для начала ра- обстоятельством является то, что от-
боты с этой книгой не требуется пред- дельную главу автор посвятил рабо-
варительной подготовки. Она написа- те с шаблонами и языками, отличны-
на простым языком, и автор старает- ми от английского. Помимо шестнад-
ся по минимуму использовать техни- цати глав книга содержит ряд прило-
ческие термины. Книга проведет чита- жений, освещающих частные вопросы.
теля через все этапы разработки веб- Для уже существующих пользовате-
сайта на основе системы управления лей Joomla предыдущих версий будет
содержимым Joomla. В ней содержит- небезынтересна информация по миг-
ся краткий обзор приемов управления рации на актуальную версию с версии
системой и рассказывается о ключе- 1.0.x. Для разработчиков будет инте-
Этим летом отечественные издатели вых концепциях организации инфор- ресна информация по Joomla API.
радуют нас уже второй переводной мации, редактировании наполнения
книгой, посвященной открытой CMS. сайта и шаблонах. Также в книге рас- n Издательство: «Символ-Плюс»
В прошлом номере журнала мы пи- сматриваются темы более общего ха- n Год издания: 2008
сали об издании, посвященном CMS рактера, например, как при использо- n Количество страниц: 448
Drupal. В этом номере в наших об- вании Joomla провести оптимизацию n ISBN: 978-5-93286-117-2
зорах книга об не менее популярной веб-сайта для поисковых систем и ре- n Цена: ≈ 449 руб.
системе управления содержимым – сурсы сообщества Joomla. В отдель- Книга предоставлена интернет-магазином
«Joomla!». Причем нужно отметить, что ные главы вынесены такие темы, как Books.Ru.

Изучаем PHP и MySQL, 2-е издание


Мишель Дэвис, Джон А. Филлипс
ческих веб-сайтов с использованием примерами, и в целом книга имеет яр-
баз данных, в данном случае MySQL, ко выраженный практический харак-
и популярного языка программирова- тер. При всей «практичности», однако,
ния PHP. авторы не скатываются к сборнику со-
В книге рассмотрены следующие ветов и инструкций.
основные темы: базовые сведения Незнание Linux/UNIX, «естественной
о PHP (типы данных, логика исполне- среды обитания» – LAMP, для MySQL
ния программы, переменные, функ- и PHP не станет помехой при работе
ции, массивы, формы); пошаговые с книгой. Авторы уделяют особое вни-
инструкции по установке PHP и MySQL мание установке и работе с компонен-
и сопутствующих средств разработ- тами в среде Microsoft Windows. Также
ки и утилит; основные понятия мира не обойдены вниманием и пользова-
баз данных и MySQL, в частности, на- тели Mac OS X. Все это делает данную
пример, таблицы и инструкции; осно- книгу отличным учебником для первого
вы управления базами данных с помо- знакомства с обсуждаемой темой.
щью языка запросов SQL; информа-
Издательство O'Reilly всегда слави- ция о совместной работе XHTML и PHP n
Издательство: «Символ-Плюс»
лось отличными книгами по Open на веб-сайтах; безопасность и управ- n
Год издания: 2008
Source-технологиям (и не только). ление доступом с учетом типичных n
Количество страниц: 448
И фирменный дизайн обложки с чер- «подводных камней»; обработка оши- n
ISBN: 978-5-93286-115-8
но-белым рисунком «под гравюру» уже бок, HTTP-аутентификация и многое n
Цена: ≈ 390 руб.
давно рассматривается как своеобраз- другое. Авторы стараются все рассмат- Книга предоставлена интернет-магазином
ный «знак качества». Из этого правила риваемые концепции иллюстрировать Books.Ru.
не станет исключением и данная кни-
га, посвященная созданию динами- Обзор книжных новинок подготовил Андрей Маркелов

№8, август 2008 93


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

Отчего ломается Интернет


Работаю на пивзаводе (мечта любого админа!). У нас 2 офиса:
один в Канске, другой в Зеленогорске. Я работаю в Зеленогорске. Меч
Чтобы забирать данные с канского сервера, сделан мост. Подклю- Было дело, когда на заводе работал. Через неделю, после тупых
чается через Radmin. Тут недавно сервер у меня перестал коннек- косяков девушки из отдела снабжения, притащил на работу меч –
титься. Приходит бухгалтер и давай толкать свои теории: «Может, над собой повесить. Естественно, был замечен на проходной,
у вас система плохо работает», «Может, у вас проводки плохие» но охранник все понял, когда я выхватил меч из ножен и с вопля-
и т. д. Я-то понимаю, что дело совсем не у меня, так как у меня все ми убежал в КБ. Дальше – круче. В КБ наткнулся на секретаршу.
работает: и сеть, и Интернет. Звоню в Канск, общаюсь с тамошним Она с ошарашенным видом (меч уже в ножнах, а на лице – сви-
сисадмином. И на узел связи грешили, и так, и этак... Приходит репая улыбка) забилась в комнату отдыха (она напротив лестни-
опять тетка с бухгалтерии и давай опять на меня гнать, что у ме- цы была). Прохожу по коридору, и тут меня встречает прежний
ня все плохо работает. Я встаю и спокойно так говорю: админ. Улыбается, глядя на меч, и сообщает, что Олечка (снаб-
– Вы об удаленном администрировании знаете больше меня? женка-блондинка) просила зайти к ней. Как я этого ждал! Бро-
Она рот открыла, а я продолжаю: саю в кабинете сумку, наушники, хватаю меч и топаю к Оле, что-
– Вот и разбирайтесь сами, раз вы считаете себя умнее меня. бы помочь ей настроить графы в экселевской таблице, которую
Встала и пошла курить. Тут тетка поняла, что она не то сказа- она уже третий год пользует.
ла, летит следом! (Ну, типа, я просто уже от нервов такая). В ито- Эффект превзошел все ожидания! Оля тихо пискнула и вер-
ге причина оказалась настолько банальная, просто слов нет. нулась к работе! Старый дед, работавший с ней и косячивший
Мы про нее сразу подумали, но бухгалтеры не признавались. При- не меньше, тоже замолк! Вопросы отпали! Все работает! Забло-
ходит одна из них и выдает: кированные таблички в Ворде не пропадают никуда – руки пото-
– Ой, вы знаете, а мы там за Интернет не заплатили, это мо- му что выпрямились! Тишь и благодать...
жет повлиять на связь? А меч у меня в кабинете еще долго висел – рядышком сиде-
Я выпала в осадок... Такой злой я не была еще ни разу... ли дизайнеры, которые работали под виндами, а не как снабжен-
gelyagav@mail.ru цы под убунтой.
bogdanvlad@mail.ru

Отпраздновали
Был такой случай. Звонят мне из бухгалтерии, говорят, что ниче-
го не работает, не могут работать с «1С», в общем, беда. Я беру
на всякий случай свитч и бегу туда. Открываю дверь и вхожу. Кар- Знакомство с мышью
тина маслом: сонное царство на привале, одна из бухгалтерш во- Работаю сисадмином в учреждении здравоохранения. Всяких на-
обще спит на стуле и подает мало признаков трудового дня. Мед- видался юзверей, но недавно встретил просто уникума, короче
ленно ползу к свитчу, смотрю на лампочки и поражаюсь его состо- говоря, у тетки реальный трабл по жизни. Мышь она почувство-
янию (мигает всем, чем можно), думаю: «Сдох, бобик». вала в руках впервые, как я поставил им всем новое специали-
Запустил пинг и начал дергать порты, подумав, что вчераш- зированное ПО. До этого момента все они кувыркались в сине-
няя гроза могла какой-то порт вышибить. На 10-м порту пинги ющем DOSе и FOX Pro 4.0, короче, зрелище удручающее!!! Пы-
пошли, и все стало хорошо. Начал искать, откуда ноги растут, таюсь объяснить человеку, как пользоваться мышью. Это вы все
воткнул и начал дергать шнурки на системниках – ничего. Решил думаете, что фигня полная – две клавиши, скролл и тягай куда
пройтись по проводу и... эти нехорошие женщины закольцевали попало. СЕЙЧАС! Только не для нее! После объяснения, нагляд-
свитч!!! Я был вне себя! Оказалось, что у какой-то бухгалтерши ных инструктажей тетка хватает мышь, поднимает ее над голо-
был день рождения, и все остальные были просто не в состоянии вой и начинает кликать, как автомат Калашникова, без останов-
работать. И вот таким нахальным, но глупым образом они реши- ки. Любой геймер мог бы позавидовать скорости кликов за ми-
ли отлынивать. Все это, естественно, списывали на неработоспо- нуту, да я и сам малость офигел. Пытаюсь не отвлекать ее осо-
собность сети, за что получили по мозгам от высшего начальства. бо от процесса, осторожно интересуюсь: «А что Вы сейчас пыта-
Надеюсь, что такого больше не повторится. етесь сделать?» – та, не останавливаясь ни на секунду и продол-
_hunter@mail.ru жая молотить по клавише, отвечает: «Да вот, пытаюсь вот на эту
кнопку ткнуть!!!»
Короче, я полностью ушел в осадок, осознавая тот факт, что
Излучал 10 минут обучения работы с «наикрутейшим манипулятором, осо-
Ремонт. Сервер стоит в зале с операторами. Смотрю – пропал, бо офигенной сложности» были для нее, как основы термодина-
нет сервера. Прихожу проверить – его нет на месте вообще (!?), мики и квантовой физики вместе взятые...
пропал, одни провода остались. slider2000@inbox.ru
Немая сцена – ГДЕ??? Смотрю – в углу стоит мой сервак...
Спрашиваю тетку: «ЗАЧЕМ ВЫ ЭТО СДЕЛАЛИ!?»
Она на меня смотрит чистыми глазами и говорит: «Он на ме-
ня излучал...».
Vera Novikova По материалам сайта «Сисадмин тоже человек» –
http://sysadmin.mail.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
без диска
**

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

№8, август 2008 95


СИСТЕМНЫЙ АДМИНИСТРАТОР
№8(69), Август, 2008 год

УЧРЕДИТЕЛИ
Частные лица
Вышел DVD-диск с архивом
РЕДАКЦИЯ
Генеральный директор
номеров журнала за 2007 год
Владимир Положевец
Ответственный секретарь Что на диске?  NeTAMS 3.4.1rc1;
Наталья Хвостова n Архив 12-ти номеров журнала «Системный ад-  IPStat 0.9.7.2;
sekretar@samag.ru министратор» за 2007 год.  Linux kernel 2.6.24.1;
Технический редактор n Архив всех выпусков электронного приложе-  BIND 9.4.2 (+ win32);
Владимир Лукин
ния «Open Source» за 2007 год.  OpenSSL 0.9.8g;
Главный редактор n Программные продукты от партнеров журна-  OpenSSH 4.7p1;
электронного приложения ла (триальные версии):  Samba 3.0.28;
«Open Source»  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);
Внештатные редакторы  Система контроля доступа 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);
тел./факс: (495) 628-8253  Linux-дистрибутив Mandriva One 2008;  Pidgin 2.4.0 (+ win32);
Евгения Тарабрина (доб. 119)  Linbox Rescue Server 20070703.  SIM IM 0.9.4.3 (+ win32);
reсlama@samag.ru n Серверы/сети/администрирование:  X-Chat 2.8.4 (+ 2.8.5e win32);
 FreeBSD 7.0-RELEASE;  aMule 2.1.3 (+ win32);
Верстка и оформление  Apache HTTP Server 2.2.8 (+ win32);  GIMP 2.4.5 (+ 2.4.4 win32);
maker_up@samag.ru  nginx 0.6.26, 0.5.35;  MPlayer 1.0rc2 (+ win32);
Дизайн обложки  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);
(495) 628-8253 (доб. 121)  Courier Mail Server 0.58.0;  7-Zip 457 (+ win32);
107045, г. Москва,  Exim 4.69;  GnuPG 2.0.8 (+ w32cli 1.4.8).
Ананьевский переулок, дом 4/2, стр. 1  SpamAssassin 3.2.4;
тел./факс: (495) 628-8253  DSPAM 3.8.0; Как получить диск в подарок?
Сайт журнала: www.samag.ru  Policy Daemon 1.82; n Клиенты компании SecurIT, заказавшие Zserver
 SquirrelMail 1.4.13; в любой комплектации или более 50 лицензий
ИЗДАТЕЛЬ  RoundCube 0.1-rc2; Zlock, получат диск в подарок.
ООО «С 13»  MySQL 5.0.51a (+ win32);
Отпечатано типографией
ГП «Московская Типография №13»  PostgreSQL 8.3.0 (+ win32); Где можно приобрести диск?
Тираж 17000 экз.  Firebird 2.0.3.12981 (+ win32); n В редакции ж урна ла «Сис темный а дми-
 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.
77-12542 от 24 апреля 2002 г.).
 Ruby 1.8.6-p111, 1.9.0-1; n В интернет-супермаркете Softkey.ru.
За содержание статьи ответственность несет
 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; Цена в редакции – 150 рублей.
 tcpdump 3.9.8;

96

Вам также может понравиться