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

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

ЛИ
С
ЛИ
ТЯ Е

Ж ПИ
ЗА ДНИ
НУ

РА КУ
ЛЫ ГО

ТИ РАС
К У ВО

О
№12(73) декабрь 2008
НИ НО

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

www.samag.ru
Новые возможности

№12(73) декабрь 2008


мониторинга событий

И
ЬГ
ЬД О
БО А
К

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

в Windows Server 2008

ИЛ ДА
У
ТП

НА П
Л ОТ

НЧ ЖИ
ВО

РА ЛЕ

КО НЕО
Л

АВ ОС
ХА
УЕ

Меры безопасности

ЗА
для защиты информации IT-службы

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

Мониторинг активности хостов

Решаем проблемы
в Outlook Express

Три способа организации VPN

Белые списки в DSPAM

Сетевое сканирование
с помощью МФУ от HP
ПОДПИШИТЕСЬ И ЧИТАЙТЕ!
Безопасность в сетях,
Роспечать – 20780, 81655 построенных
Пресса России – 88099, 87836 на Layer2-коммутаторах Найди в журнале код.
Интер-почта – тел. (495) 500-00-60 Следуй инструкциям.
На кону настоящий
«АДМИНСКИЙ ПРИЗ»
Реклама
Реклама
в номере
3 ТЕНДЕНЦИИ БЕЗОПАСНОСТЬ
РЕПОРТАЖ 56 Меры безопасности для защиты
информации IT-службы
6 Запуск проекта Russian Fedora Существует огромное количество статей, книг и дру-
20 ноября в МИФИ состоялись мероприятия, посвящен- гих публикаций о защите важной бизнес-информации.
ные запуску проекта Russian Fedora. Но ситуация сильно осложняется, когда речь идет о за-
Андрей Маркелов щите информации самой IT-структуры.
Лев Мышкин
АДМИНИСТРИРОВАНИЕ
60 Безопасность в сетях, построенных
8 Тестируем программы для работы на Layer2-коммутаторах
с разделами жестких дисков Рассмотрим, как можно произвести атаки на Layer2-се-
Участники обзора: Norton PartitionMagic, Paragon ти и как защитить такую сеть от нападения с помощью
Partition Manager, Acronis Disk Director Suite, EASEUS оборудования Cisco Systems.
Partition Manager и GParted. Александр Неупокоев
Сергей Яремчук
ЧЕЛОВЕК НОМЕРА
14 Новые возможности мониторинга
событий в Windows Server 2008 66 Цель: стать лучшими разработчиками ПО
Рассмотрим, какие функции для решения задачи пред- в сегменте туристического бизнеса
лагает операционная система Windows Server 2008. Интервью с Антоном Россихиным, директором компа-
Андрей Бирюков нии «САМО-Софт».
Наталия Тарасенко
18 Мониторинг активности хостов
Часто возникают ситуации, когда необходимо произ- 69 ЗАКОН ЕСТЬ ЗАКОН
водить мониторинг серверов или рабочих станций.
И не просто иметь сведение о том, что конкретный хост WEB
выключен в данный момент, а иметь на руках статисти-
ческие данные за определенный период. 70 WSGI – протокол связи веб-сервера
Антон Борисов с Python-приложением
Если вы разрабатываете веб-приложение, каркас
26 Решаем проблемы в Outlook Express для разработки веб-приложений, или даже веб-сер-
Наиболее частые причины сбоев, возникающие вер на Python, вам необходимо знание основ прото-
при работе с e-mail через клиент Outlook Express. кола WSGI – стандартного способа связи веб-серве-
Дмитрий Нестеркин ра и веб-приложения.
Дмитрий Васильев
28 Белые списки в DSPAM
Как позволить пользователям настраивать индивиду- ОБРАЗОВАНИЕ
альные белые списки в DSPAM?
Михаил Кондрин 74 Обзор учебных центров
Куда пойти учиться, какие сертификаты можно получить
36 OpenBSD: особенности организации VPN в учебных центрах, как наиболее выгодно потратить
на основе набора протоколов IPsec свои или корпоративные деньги, а главное, как не по-
Три способа организации VPN. жалеть о потраченном.
Максим Гришков Алексей Коршунов

44 Сетевое сканирование с помощью МФУ РЕТРОСПЕКТИВА


от HP
Процедура инсталляции драйверов и необходимого 82 Через тернии к звёздам:
программного обеспечения сетевых МФУ – длительный история создания плеера Apple iPod
процесс, в результате которого на компьютер клиента В октябре исполнилось семь лет с момента выхода
устанавливается лишнее ПО и устройства. Давайте вы- в свет портативного плеера iPod от Apple. За этот про-
членим из дистрибутива необходимые компоненты. межуток времени устройство стало поистине культо-
Иван Коробко вым, завоевав сердца свыше ста миллионов человек.
Дмитрий Мороз
50 Работаем с данными Active Directory
из скриптов. 87 СИСАДМИН ТОЖЕ ЧЕЛОВЕК
Часть вторая. Применение Perl и PHP
В предыдущей статье мы рассмотрели вопрос, как мож- 88 КНИЖНАЯ ПОЛКА
но обработать данные, полученные из Actve Directory
с использованием языка Bourne Shell и остались 90 СОДЕРЖАНИЕ ЖУРНАЛА ЗА 2008 ГОД
не очень довольны громоздкостью конструкций. Поп-
робуем то же самое сделать на языках Perl и PHP. 25, 65, 73 BUGTRAQ
Рашид Ачилов

АДМИНИСТРИРОВАНИЕ «1С»
Код для участия в розыгрыше призов.
55 Варианты очистки базы данных Следуйте инструкциям на стр. 4.
Продолжаем тему перехода на новую базу данных.
Андрей Луконькин

№12, декабрь 2008 


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

Г
од подходит к концу и само собой напрашивается подведение итогов.
А я все никак не могу отделаться от ощущения, что именно этот год
оставил вопросов больше, чем дал ответов и в любом случае итоги
будут какие-то череcчур уж промежуточные.
События последних месяцев настолько затмили собой все то, что про-
исходило в первой половине 2008 года, и уже с трудом вспоминается, с че-
го же он начинался. Лично я вспоминаю только то, как с трудом создава-
лись, а потом неумолимо разрушались деловые связи. Как создавались
новые проекты, а следом приходило понимание, что их неизбежно придет-
ся отложить до лучших времен, которых пока еще неизвестно когда сто-
ит ожидать.
Но я предлагаю не впадать в черную апатию и просто подождать янва-
ря-февраля 2009 года, когда станет примерно понятно, чего ожидать от бу-
дущего года в целом. По мнению многих аналитиков (и прочих «предсказа-
телей»), именно в этот период станет понятно, как мы будем жить дальше
и какие задачи перед нами будут стоять.
Мне же хочется до последнего оставаться оптимистом и верить, что уже
будущим летом-осенью мы сможем воплотить все свои планы и реализо-
вать большую часть проектов. Разумеется, делать это придется с оглядкой
на происходящее в мире, но разве когда-то было иначе?
Радует то, что хорошенько обдумав перспективы (насколько это воз-
можно сейчас), как компании, так и люди пришли к выводу, что трудности
надо переживать вместе. И это внушает неподдельный оптимизм, потому
что означает – не все «опустили руки, закупили рис и принялись ждать кон-
ца света». Раз есть желание преодолевать трудности, а не судачить по до-
мам и офисам о тяжелой обстановке на финансовом рынке, значит, бес-
покоиться не о чем.
В любом случае, в новый год хочется войти не «аккуратно бочком», с сом-
нением пробуя почву под ногами, а твердой походкой, глядя только вперед,
с уверенностью в собственных силах. Поэтому хочу пожелать всем чита-
телям успешности исполнения их собственных планов, крепкого здоровья
и поменьше волнений. В наших силах решить любые проблемы и справить-
ся с любыми трудностями. С наступающим Новым 2009 годом вас!

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


тенденции
Компании развивают свои ного дистрибутива Debian GNU/Linux на T-Mobile G1 с ори-
Open Source-драйверы для Linux гинальной Linux-платформой Android. В своем блоге он уже
В середине ноября VIA обнародовала пресс-релиз, в кото- опубликовал подробные инструкции, с помощью которых
ром сообщалось, что компания «активно сотрудничает с ко- любой обладатель G1 может повторить успех автора, за-
мандой разработчиков OpenChrome, занимающихся графи- пустив Debian на своем смартфоне. С помощью файловой
ческим драйвером с открытым исходным кодом, помогая системы unionfs энтузиасту удалось «совместить» Debian
им с поддержкой multi-head и с функцией RandR». Заявле- с родной для G1 платформой и фактически он добился воз-
ние вызвало заметный интерес Open Source-сообщества, можности работать с приложениями для Debian в самом
поскольку еще в августе VIA выпустила свой драйвер с от- Android. Очевидно, в Google подобные инициативы не одоб-
крытым кодом. По всей видимости, VIA сместила акценты ряют и будут им препятствовать (в последних прошивках
в пользу поддержки разработок сообщества (OpenChrome). G1 устранена возможность получения пользователем root-
Одновременно с этим, VIA опубликовала (на веб-сайте X.org) привилегий). Вскоре компания Koolu Inc объявила о перено-
четыре гида по своим видеокартам для программистов, об- се сроков выхода Android для Open Source-смартфона Neo
щий объем которых составил около 450 страниц. В конце FreeRunner, заявив, что бета-релиз этого порта состоится
месяца Сэм Леффлер (Sam Leffler), занимающийся под- в первую неделю декабря. Koolu надеется продавать свой
держкой HAL, используемого в релизах Linux-драйверов телефонный стек Android и телефоны для разработчиков,
для беспроводных карт Open Source-проекта MadWifi, объ- конечных пользователей, дистрибьюторов и реселлеров.
явил о выпуске исходного кода его реализации HAL для карт Первым объявленным VAR-партнером является компания
Atheros под лицензией ISC. Автор так анонсировал событие: SDG Systems, которая имеет долгую историю распростране-
«Этим релизом я выполнил соглашение с Atheros, по кото- ния защищённых Linux-КПК. Стивен Мошер (Steven Mosher),
рому имел доступ к информации об их устройствах. Сие оз- вице-президент по маркетингу Openmoko, благосклонно от-
начает, что в будущем все исправления, обновления для но- несся к инициативе: «Openmoko приветствует усилия Koolu
вых чипов и прочее нуждается в поддержке сообществом. по оптимизации сообщества для портирования платформы
Atheros заявляет, что Linux-платформа будет исходной пуб- Google Android на FreeRunner. В этом преимущества откры-
личной кодовой базой, поэтому желающим добавить под- той платформы. Их сфера деятельности дополняет нашу».
держку устройств для других платформ потребуется обра- Выход финального релиза Android для FreeRunner ожида-
щаться к информации, почерпнутой из этой базы». ется в начале первого квартала 2009 года.

Novell заинтересовалась клиентами Подготовил Дмитрий Шурупов


по материалам www.nixp.ru
Red Hat
Компания Novell объявила о старте программы, нацелен-
ной на плавный перевод пользователей Linux-дистрибути-
вов Red Hat и CentOS на свое корпоративное решение SUSE
Linux Enterprise Server (SLES). С новой инициативой Novell
предлагает обладателям серверов, работающих под управ-
лением систем Red Hat Enterprise Linux (RHEL) или CentOS,
поддержку на 2 года, в течение которых клиент должен миг-
рировать на SLES. Предложение действительно для RHEL
версий 3, 4, 5 и соответствующих им релизам CentOS. При
этом срок поддержки ограничивается не только двумя го-
дами, но и концом жизненного цикла продуктов (если пос-
ледний наступит раньше, чем через 2 года, то и поддержка
Novell перестанет действовать). В рамках новой программы
Novell будет выпускать для своих клиентов бинарные пат-
чи и обновления, самостоятельно собранные из исходно-
го кода, распространяемого Red Hat. Компания гарантиру-
ет бинарную совместимость с RHEL и CentOS. В Novell обе-
щают круглосуточную техническую поддержку по телефо-
ну и электронной почте. Конечная цель такой «поддержки»
пользователей RHEL/CentOS – миграция на решения Novell
(самостоятельно клиентами или через сторонних консуль-
тантов), компания запустит веб-сайт с исчерпывающей ин-
формацией о переходе на SLES.

Android пытаются «подружить»


с миром Open Source
В начале ноября Джей Фримэн (Jay Freeman), прославив-
шийся благодаря своим разработкам для iPhone, сообщил
об успешном запуске популярного свободного и бесплат-

№12, декабрь 2008 


ризов
ыш п
зыг р
ро
рши лся из ж у
в
рн ала,

Заве
н ы х кодо
ь –
с п е ц иа л ы г р ыш а
ю о з
в в е де н и е р в ого р
по п
«к в ест» и м итоги с т ран и
це
ы й о д й
е н пер в и е м подв с о с ед н
е
и з ер ов
д в а п р
Пр о й д о воль
ст
А З »! те лей.
Н
п е р вых
с у Р д и е м
и мы и й п р из и л а по бе з д р ав л я
инс к ел П о
«Адм н а о п р ед в ч и ков.
м а ши ч астли РА З»,
т р а с тна я
с те р ых с
к и й при з
т у ч астие
рис е е
Бе с п и м ена ш «А д минс к то пр им
м ,
в ля е эта п а и всех
жид а
ет
объя ! в т р и
Р И » , , о .
з ы г р ыш
а
р о х оди т
й п р из Т
т ь к одо в
– н оу тбук
ро п и ес T  
о з ы г р ыш д м ин ск е т в се ш и и S ecurI
А
з н а ете, р ДВА» и « г и с тр ир
у
т ко м п ан
ы е о
Как В и й п р из ш а и з ар п е р пр из о д в ед е н
ы
инс к ыгр ы нс у т п
«Адм тапах роз а з ы г ра А » буду
т р В
хэ буде из Д
в дву п, гд е и й п р
т и й эта д м ин ск я только
тр е в« А ит с
а п р и зо п о н а до б
ш в ам
р о з ыгр ы од а . р ы ш е
Итог
и
л я 20 09 г е м р оз ыг
е в ра осле
дн
25 ф я в п
л я у части
Д
и м а ние!
Вн дать.
и е ж
умен
А З»!
риз Р
к ий п
минс
«А д
р из
г ра л п
лей! ск) в
ы и
3700
.
о б е дите ж е в n d P т
в л яем п о в и ч (г. И c h D iamo р т и ф и ка
р а ти н Tou йс е ний
По з д В а ле н р HTC р и зо в о п р ав л е
и й ка то ает П н а
в Д м итр к о м муни ) п олуч в ы б ор из
пан о T – с кв а на
Коре и S ecurI ч (г. Мо С и с тем» .
  ко м п ан
и
и м иров
и
а т и вных A , C CNP)
о т д по р CN
Вл а я Кор мм C
кс а нд р е м и о г р а
ле ад пр пр из
р и к ов А н т р е «Ак C is c o (из г р а л
Гав вц е ли ыи
б у ч е ни е re e B SD и а я о бл.) в
на о x, F ск я: 8;
o f t, Linu ч (К у р ган с п е ч е ни u s ; Nero
s и о бе R
Micro икол
ае в
м ного n 360
v2
11 plu
s;
й Н а м o r to d io
се огр antec
N Stu
к о в А ле к п а к ет п р S ym a d V ideo
а y, .2; le
Ка н д и Sofke a g IT 8 C orel U т
м па н и
tion S n
a n d a ;
т и ф и ка й
от ко
C o rp o ra
te 4 . 2 + P
в о й с е р
р а в л е ни
и зо п
Smith р Use
r Ga
ет Пр р из
на
Tech р в е у ч а в ы б о
си- се пол ем» н
а
пр о к v o   12. М о с ква) и с т
Y Lin
g (г. ых С P).
ABBY о л а евич о р а тивн N A , CCN
ик рп CC
и к о лай Н д е м ия Ко р о г р ам м
s onyx

в Н А к а з п R u
нико ре « co (и нии
Скот е в   це н т и л и Cis о т к о мпа
у чен
и SD з
на об u x , FreeB р ь ) – пр и
Lin з ы
soft, (г. Мо
Micro л е го
в и ч
из
И л ья О е р в ер. у ч а ет п р
ич йс пол
т р а шкев д е л е нны л г о г ра д) ер.
Пе
л ь н ый вы в н а (г. Во н ы й с ер в
уа о ен
вирт а д имир й в ыдел
аВ л ьн ы
Л ю д м ил – в и ртуал
ова uson
yx
Битк и и R
м п ан
от ко

у ра!
ип,
Гип-г

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

Запуск проекта Russian Fedora


Двадцатого ноября в МИФИ
состоялись пресс-конференция
и мероприятия, посвященные
запуску проекта Russian
Fedora (http://russianfedora.ru).
Начало проекту было
положено еще в марте этого
года во время обсуждения
программы по развитию
открытого программного
обеспечения в Министерстве
информационных технологий
и связи РФ, когда Москву
с визитом посетил президент
и CEO компании Red Hat Джим
Вайтхёрст.

Основные цели проекта n Помочь российским разработчикам ределенных шагов развития проек-
n Объединить российских разра- более активно влиять на основные та, это:
ботчиков и пользователей СПО, СПО-проекты. n Проведение различных меропри-
сформировать «центр притяжения» n Укрепить имидж российского со- ятий в российских вузах, вклю-
для новых пользователей. общества разработки СПО на гло- чая технические семинары и Install
n Сделать Fedora «коробочным» бальном мировом рынке. Party.
дистрибутивом, ориентирован- n Бесплатная рассылка DVD-дисков
ным на российских пользователей. Проект стартовал при непосредст- с дистрибутивом Fedora.
Что касается выходящей десятой венной поддержке Red Hat, и, помимо n Координация действий по лока-
версии Fedora, это будет реализо- руководства европейского представи- лизации как самого дистрибутива,
вано как respin (установочный об- тельства лидера Linux-индустрии и ру- так и ряда дистрибутивнонезави-
раз, основанный на оригинальном, ководства компании VDEL, представ- симых компонентов GNU/Linix.
но с рядом изменений и дополне- ляющей Red Hat на территории Рос- n Создание сети локальных репози-
ний). В дальнейшем рассматри- сии, в мероприятии принял участие ториев по регионам России для то-
вается возможность модифика- Макс Спевак – лидер Fedora Project го, чтобы можно было использо-
ции компонентов дистрибутива – с 2006 по 2008 год, который в настоя- вать региональный интернет-тра-
Anaconda или firstboot «большой» щее время отвечает в Red Hat за стра- фик. (В настоящее время в России
Fedora на предмет облегчения ин- тегию работы с сообществом. Помимо два зеркала репозитория Fedora,
теграции стороннего ПО. За основу англоязычных спикеров собравшему- оба территориально расположены
respin взята известная среди рос- ся в актовом зале МИФИ сообществу в Москве.)
сийских пользователей сборка под был представлен «костяк» российской
названием Tedora, а ее создатель команды Russian Fedora. За организацию программы Russian
Аркадий Шейн – один из активных Кстати, выбор МИФИ в качест- Fedora, в частности за инфраструктуру,
участников проекта. ве площадки проведения мероприя- отвечает компания VDEL. Технологи-
тия далеко не случаен. На сегодняш- ческим ядром проекта Russian Fedora
ний день университет одним из пер- станет Лаборатория Linux ВНИИНС
вых подк лючился к ака демичес - им. В.В. Соломатина.
кой программе Russian Open Source Нужно отметить, что в случае ус-
Educational Program (ROSEP), что поз- пеха проекта в дальнейшем предпо-
воляет студентам изучать курсы по от- лагается создание аналогичных ко-
крытому программному обеспечению манд разработки в других заинтере-
компании Red Hat. Также необходимо сованных странах.
отметить, что встреча в МИФИ прошла
при поддержке LUG MEPhI. Текст: Андрей Маркелов,
Что касается конкретных, уже оп- фото: Дмитрий Астахов
Какой «день рождения» без торта


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

Тестируем программы
для работы с разделами
жестких дисков

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

Р
азмещать все данные на одном В результе пользователю для рабо- Описания выбранных менеджеров
разделе жесткого диска, неудоб- ты может понадобиться два или более разделов на первый взгляд кажут-
но, небезопасно и нецелесооб- раздела, отформатированных в раз- ся абсолютно идентичными, поэтому
разно. Иначе через некоторое время ные типы файловых систем. Выбран- одной из задач теста было выяснить,
вы рискуете утонуть в свалке файлов, ная первоначально схема разметки в чем отличия программ.
а то и все потерять. диска может корректироваться в про- Обычными при работе с жесткими
Создание нескольких разделов цессе работы системы. Могут добав- дисками являются шесть задач:
на диске может преследовать одну или ляться новые или, наоборот, удаляться n Увеличение системного раздела
несколько целей: уже ненужные разделы и объединять- (диска C:, корневой *nix) – изна-
n отделить установленную систему ся с уже имеющимися. Внешне задача чально выбран системный раздел
от данных пользователя – это упро- выглядит просто, но она очень тяжела недостаточного объема, после ус-
щает операции по восстановлению в решении, ведь все операции необ- тановки всех программ свободного
операционной системы, а также ре- ходимо производить в рабочей среде, места осталось мало. Задача уве-
зервное копирование и восстанов- избежав потери информации и жела- личить его за счет свободного мес-
ление пользовательской информа- тельно за минимальное время. Вероят- та на соседнем разделе (диск «D:»,
ции; но, поэтому сегодня список программ «E:» и так далее).
n разделение информации по кате- для работы с разделами можно пере- n Уменьшение системного разде-
гориям – для ценных данных отво- числить буквально по пальцам одной ла (диск C:, корневой) и созда-
дится один раздел, который систе- руки. В обзор включены как известные ние нового раздела на высво-
матически резервируется, к нему у нас – Norton PartitionMagic, Paragon бодившемся месте – изначаль-
может быть ограничен доступ и так Partition Manager и Acronis Disk Director но была выбраная неудачная схе-
далее, в прочие разделы пользо- Suite, так и менее известный EASEUS ма, все данные находятся на одном
ватель может поместить данные, Partition Manager, не забыт и свобод- разделе, пользователю необходим
не нуждающиеся в тщательном ный аналог GParted. отдельный раздел жесткого диска
уходе (например, аудиоколлек- В обзор не вошла программа под определенные нужды.
цию); Partition Logic (http://partitionlogic.org.uk), n Слияние находящихся рядом
n раздел может быть выделен для ди- распространяющаяся бесплатно. Она разделов жесткого диска – от-
намических данных, чтобы неожи- не требует установки и запускается дельный раздел уже не нужен, при-
данный их рост не помешал рабо- с загрузочного диска, но по качест- нято решение объединить два раз-
те остальных приложений. ву явно уступает GParted. Возможно, дела, сохранив данные.
n установка нескольких операцион- в дальнейшем разработчики устранят n Установка еще одной операци-
ных систем для работы и тестиро- все ошибки и можно будет говорить онной системы на компьютер –
вания на реальном оборудовании. об этой программе серьезно. возникла необходимость работы


администрирование
в двух системах (98-XP, XP-Vista,
Windows-*nix). Штатные возможности Windows можно лишь создавать, удалять и фор-
n Конвертация файловой систе- В операционных системах Windows Vista матировать разделы в файловые систе-
мы без потери информации – из- и Windows 2008 Server имеется програм- мы FAT16, FAT32 и NTFS (в Windows 2008
менились требования у использу- ма, позволяющая выполнить разбивку Server только NTFS), а также конверти-
емых программ, например, ранее жесткого диска на разделы без примене- ровать раздел с файловой системой FAT
было достаточно FAT, теперь про- ния сторонних утилит. Но с ее помощью в NTFS.
грамма требует, чтобы данные хра-
нились на разделе NTFS. образом, NTFS поддерживается только версий до v.5.1 вклю-
n Копирование раздела диска, в том числе и систем- чительно (Windows 2003 Server). Программа корректно счи-
ного или всего жесткого диска – необходимо клони- тывает данные только с разделов FAT и NTFS. Для разделов
ровать систему или безболезнено перейти на новое с этими типами файловых систем поддерживается слияние,
«железо». копирование и перемещение. Естественно, что объединя-
емые разделы должны иметь один тип файловой системы.
Norton PartitionMagic 8.05 Перед объединением разделов FAT и NTFS один из них вна-
Пожалуй, самая известная утилита, предназначенная для чале следует преобразовать в другой тип. Для ext2/3 пока-
решения описываемых задач. Задав вопрос на любом фо-
руме о поиске необходимой утилиты, с вероятностью 100% Реклама
получим в ответ – PowerQuest PartitionMagic. В свое время
компания-разработчик PowerQuest создала утилиту, ко-
торая быстро преобрела широкую популярность и стала
фактически стандартом в этой области. Но после выпуска
восьмой версии компания была выкуплена Symantec, а про-
грамма переименована в Norton PartitionMagic. К сожале-
нию, после получения такого громкого имени стремитель-
ного рывка в развитии не произошло, и даже наоборот, об
утилите начали забывать. Текущая версия 8.05 датирова-
на 2004 годом, а значит, можно отметить, что развитие ути-
литы фактически прекращено. Найти ссылку на описание
нужного продукта в меню русскоязычного зеркала сайта
Symantec невозможно. Удалось выйти на нее, только вос-
пользовавшись поиском. Скачать ознакомительную версию
нельзя, чтобы увидеть ее в действии, вначале программу
предлагают приобрести.
«Заморозка» продукта сразу же высвечивает главный
ее минус – поддерживаются только известные на тот мо-
мент операционные системы семейства Windows от 98
до XP. И хотя в списке совместимости указана Windows NT
Workstation, есть вероятность того, что при запуске будет по-
лучена ошибка. Не работает PartitionMagic в Windows 2000
и новых Vista или Windows 2008 Server. Все это по мере об-
новления версий Windows весьма сужает области приме-
нения PartitionMagic.
При помощи удобного интерфейса, ставшего стандар-
том и понятного даже новичку, можно разделить жесткий
диск на несколько разделов. Поддерживается форматиро-
вание разделов в файловые системы FAT16, FAT32, NTFS,
Ext2 и Ext3 и Linux Swap. При создании раздела автомати-
чески устанавливается оптимальный размер кластера, хо-
тя есть возможность задать его вручную.
Возможно преобразование разделов без потери дан-
ных из FAT в NTFS и наоборот, а также первичный раздел
в логический и обратно. Но при попытке доступа из другой
операционной системы к разделу, созданному инсталлято-
ром Vista или Windows 2008 (отформатирован в NTFS V6.0),
получаем ошибку: «Init failed: Error 117. Partition’s drive letter
cannot be identified.». Метка, выставленная такому разделу,
отображается некорректно, свойства недоступны, а функции
преобразования и изменения размера блокированы. Таким

№12, декабрь 2008 


администрирование
Если новый раздел добавлен пе-
ред уже имеющимся, то, естественно,
будут изменены названия дисков. Так,
диск D может стать E, а привод из E –
F. И так далее. Некоторые программы
после этого перестанут запускаться.
Специальная программа DriveMapper,
входящая в комплект, позволяет изме-
нить всю системную информацию, ука-
зав новые пути к файлам. В комплект
входит и программа BootMagic которая
позволяет переключаться между раз-
личными операционными системами.
Для вывода информации о разделах
с последующей распечаткой отчета
предложена утилита PartitionInfo.
Из меню PartitionMagic можно соз-
дать дискету восстановления (Rescue
Diskettes), но при отсутствии дисковода
на большинстве современных компью-
теров смысла в этом пункте уже нет.
Norton PartitionMagic является своего рода стандартом, но, к сожалению, давно
не развивается
Paragon Partition
Manager 9.0
В отличие от предыдущей, информа-
цию о Paragon Partition Manager ис-
кать на сайте Paragon Software Group
не приходится. Для загрузки предлага-
ются две версии продукта: Professional
и Server, ориентированные для при-
менения на рабочих столах и серве-
рах соответственно. Список поддер-
живаемых операционных систем ши-
ре – от Windows 2000 Professional
до Windows Server 2008, заявлена пол-
ная поддержка 64-битной архитектуры.
Список файловых систем аналогичен
предыдущему FAT, NTFS (в том числе
и ко всем пяти типам динамических
дисков), HPFS, ext2, ext3 и Linux swap.
Хотя программа корректно показыва-
ет информацию о разделе ReiserFS,
но работать с ним практически не уме-
Paragon Partition Manager – удобная программа, позволяющая выполнить основные
операции как вручную, так и при помощи мастеров ет. Контекстное меню для ReiserFS
предлагает лишь форматирование,
зывается только его геометрия. Раздел Из дополнительных функций сле- удаление раздела, тест поверхнос-
ReiserFS обозначается как ext2. дует отметить возможность провер- ти и даже такая интересная функция,
Все действия могут производить- ки раздела на ошибки (только FAT как показ и редактирование секторов.
ся вручную при помощи меню, пунктов и NTFS) (встроенный и CheckDisk) Вряд ли последняя будет задейство-
«Операции над разделами» или выбо- и запуск дефрагментатора Windows, ваться большинством пользователей,
ром соответствующей задачи. В пос- установки другой буквы разделу, со- но все же любое дополнение лишним
леднем случае вызывается понятный крытия раздела (он не будет виден не бывает. Отмечу наличие в файло-
пошаговый мастер. Доступно несколь- в Windows). Файловый браузер, вызы- вого менеджера Partition Manager, кото-
ко готовых задач: «Создать новый раз- ваемый из меню, позволяет просмат- рый позволяет получить доступ к под-
дел», «Создать резервный раздел», ривать список, а также копировать держиваемым файловым системам
«Установка другой ОС», «Размеры раз- и добавлять файлы и каталоги в раз- (в том числе и ReiserFS) с возможно-
делов», «Распределение свободного делы Windows и Linux. Заявлена под- стью экспорта данных в другой раз-
места», «Слияние разделов» и «Копи- держка внешних накопителей с интер- дел (только в FAT и NTFS).
ровать раздел». фейсами USB 1.1/2.0 и FireWire. В документации заявленна под-

10
администрирование
держка NTFS до версии 3.1, но про- пройти все этапы. Наверняка это оце- ным в ReiserFS, с которым он не уме-
грамма позволяет уменьшить или нят новички, для опытных пользова- ет работать. Результат такой операции
увеличить размер раздела сделан- телей некоторые мастера предлагают предсказать проблематично.
ного в Vista. Однако объединить два соответствующий режим. Каждый вы- Программа умеет работать с жест-
стоящих рядом раздела NTFS, один бор сопровождается подсказкой о воз- кими дисками большого объема (про-
из которых создан Vista, а другой – можных дальнейших действиях. На- тестировано до 500 Гб). Кроме IDE-,
в XP, отказывается. Еще одним из ос- пример «Мастер перераспределения SCSI- и SATA-жестких дисков, поддер-
новных отличий Partition Manager свободного места» сразу показыва- живаются FireWire, USB 1.0/2.0, а так-
от PartitionMagic является его умение ет, на сколько можно увеличить про- же флеш-карты.
изменять размеры разделов ext 2/3. странство выбранного раздела за счет Из дополнительных функций можно
Возможности по настройке разде- свободного места на других разделах- отметить наличие менеджера загруз-
лов жесткого диска в Partition Manager донорах. Далее пользователь флаж- ки и возможность создания аварийно-
совпадают с PartitionMagic – формати- ками отмечает разделы, за счет ко- го CD/DVD диска или дискеты, который
рование, удаление, изменение, объ- торых будет увеличено пространство, используется для восстановления ра-
единение, перераспределение сво- и вводит новое значение размера це- ботоспособности.
бодного места, копирование разделов левого раздела. Мастер покажет, как
и клонирование системы. Дополни- будет выглядеть диск после актива- Acronis Disk Director
тельно следует отметить возможность ции изменений. Всю дальнейшую за- Suite 10.0
сохранения резервной копии данных боту берет на себя мастер. В обыч- Для управления разделами жестко-
с любой поддерживаемой файловой ном режиме (пункт «Полный арсенал го диска компания Acronis предлага-
системы на локальный или сетевой средств для эффективного управле- ет комплексное решение Acronis Disk
диск, в скрытый раздел или на CD/DVD- ния жестким диском») пользователю Director Suite, которое включает пять
диск (в том числе и двухслойный). пришлось бы самостоятельно разме- решений, ориентированных на выпол-
После запуска программы появит- чать диск, вручную перераспределяя нение разных задач:
ся окно, в котором предстоит выбрать пространство. Интересно, что мастер n Acronis Partition Expert – собст-
задачу. Основной упор сделан на на- «берется» увеличить размер раздела венно менеджер разделов, поз-
стройку при помощи мастеров, ко- за счет разделов-доноров, располо- воляющий осуществлять копиро-
торые в пошаговом режиме помогут женных за разделом отформатирован- вание, перемещение и изменение

EASEUS Partition ManagerHome – бесплатная программа с минимумом возможностей

№12, декабрь 2008 11


администрирование
размеров разделов без риска по- сителей, содержащих продукты ющий под управлением Windows 98
тери данных; от Acronis, которые можно исполь-до Vista включительно. Поддержива-
n Acronis Disk Editor – программа зовать в том случае, если системается работа с файловыми система-
для вывода информации из секто- не загружается; ми FAT16, FAT32, NTFS, HPFS, еxt2,
ров диска в удобном виде и редак- n Acronis Acronis OS Selector – ме-ext3, ReiserFS и Linux swap. Нет проб-
тирования содержимого; неджер, позволяющий управлять лем у программы при работе с новы-
n Acronis Recovery Expert – про- загрузкой нескольких операцион- ми версиями NTFS, хотя при попытке
грамма для восстанавления слу- ных систем, установленных на од- объединения NTFS разделов Vista и XP
чайно удаленных или «потерянных» ном компьютер. программа завершила работу с ошиб-
разделов; кой. Работает со всеми типами дис-
n Acronis Media Builder – програм- Возможна установка Acronis Disk ков, включая дисковые массивы RAID
ма для создания загрузочных но- Director Suite на компьютер, работа- и флеш-карты.
При помощи Acronis Partition Expert
можно выполнять все стандартные
для такого рода программ операции:
создание, удаление, копирование и пе-
ремещение, объединение и разделе-
ние разделов. Последний режим ре-
ализован весьма интересно. При раз-
делении раздела можно указать ка-
талоги и файлы, которые будут пе-
ренесены в новый раздел. Объеди-
нение двух разделов без потери дан-
ных возможно даже в том случае, ес-
ли на этих разделах используются раз-
личные файловые системы. При объ-
единениии NTFS автоматически пре-
образовывается в FAT32. Преобразо-
вание из FAT32 в NTFS невозможно.
Интересно, что программа также бе-
рется объединять разделы, созданные
в Windows и Linux. Реализован фай-
ловый менеджер, позволяющий по-
лучить доступ к файлам на разделах
любого типа.
Кроме возможностей Acronis Disk Director Suite, впечатляет и поставка При первом запуске Acronis Disk
Director будет запрошен режим интер-
фейса пользователя. Предлагается
«Автоматический режим», в котором
часть настроек будет скрыта и при ра-
боте будут использованы рекомендо-
ванные разработчиками параметры,
ориентирован такой режим впервую
очередь на малоопытного пользова-
теля. Ручной режим дает полный кон-
троль над работой утилиты. Доступно
четыре мастера, которые помогут осу-
ществить некоторые настройки: «Соз-
дания разделов», «Увеличения свобод-
ного пространства, копирования и вос-
становления разделов». Для файло-
вых систем Ext2/Ext3 возможно изме-
нить размер таблицы INODE.

EASEUS Partition
Manager V2.1
Программа EASEUS Partition Manager
(EPM), позиционируемая разработ-
По количеству поддерживаемых файловых систем GParted впереди чиками как а льтернатива Nor ton

12
администрирование
Сравнительные возможности менеджеров разделов
Norton PartitionMagic 8.05 Paragon Partition Manager 9.0 Acronis Disk Director EASEUS Partition Manager GParted
Suite 10.0 Home/Professional
Лицензия Shareware Shareware Shareware Free/Shareware GNU GPL
Стоимость 69,99 $ 790 руб 499 руб 31,96 $ –
Сайт http://www.symantec.com/ http://www.paragon.ru/pm.htm http://www.acronis.ru http://www.partition-tool.com http://gparted.sourceforge.net
ru/ru/norton/partitionmagic
Файловые системы FAT16, FAT32, NTFS FAT16, FAT32, NTFS, ext2, FAT16, FAT32, NTFS FAT12, FAT16, FAT32 Полностью - ext2, ext3,
(до v6.0), ext2, ext3, Linux ext3, Linux swap (до v6.0), ext2, ext3, и NTFS FAT16, FAT32, NTFS, Linux
swap ReiserFS, Linux swap swap, ReiserFS. Частично:
HFS, HFS+, JFS, Reiser4,
UFS, XFS
Увеличение раздела + + + + +
Уменьшение раздела + + + + +
Слияние разделов + + + – –
Конвертация + + – – –
файловой системы
FAT и NTFS без потери
информации
Копирование раздела + + + – +
диска
Поддержка ОС Windows от 98 до XP Windows 2000-2008 Windows 98 до Vista Версия Home – 32-битные Linux
Windows 2000 Professional
SP4, XP или Vista
Плюсы Наличие большого Наличие большого Хорошая поставка Версия Home бесплатна Поддержка большого
количества документации, количества мастеров, количества файловых
DriveMapper редактирование секторов, систем
файловый менеджер,
сохранение информации
с дисков на любой носитель
Минусы Развитие прекращено Нет Отсутствие возможности Интерфейс не локализован, За такую цену – нет
преобразования FAT небольшое количество
в NTFS функций

PartitionMagic, распространяется в нес- тельный просмотр изменений с воз- ния). Кроме указанных операций, под-
кольких версиях, отличающихся лицен- можностью их отмены. Из дополни- держивается преобразование файло-
зией и возможностями. Версия Home тельных функций можно отметить воз- вых систем с потерей информации
Edition для индивидуального использо- можность «спрятать» раздел, изменить и копирование разделов.
вания бесплатна, для ее установки по- букву раздела и наличие программы Для удобства пользователей про-
требуется компьютер с 32-битной вер- проверки диска. Коммерческие версии ект предоставляет специализирован-
сией Windows 2000 Professional SP4, позволяют создавать загрузочный CD/ ные загрузочные мини-дистрибутивы
XP или Vista. Для 64 битных или сер- DVD-диск, с которого можно управлять в LiveCD, LiveUSB и PXE вариантах.
верных версий ОС следует выби- разделами без загрузки системы.
рать соответственно Professional или Итоги
Server Edition. Список поддерживае- GParted 0.3.9 Все программы, принимавшие учас-
мых файловых систем самый малень- Редактор дисковых разделов GParted тие в тестировании, «умеют» созда-
кий из программ обзора FAT12, FAT16, (GNOME Partition Editor) хорошо из- вать, удалять и изменять размеры раз-
FAT32 и NTFS. Разделы, отформатиро- вестен пользователям свободных ОС. делов, но возможности по копирова-
ванные в остальные типы, помечают- Это была, наверное, первая подоб- нию разделов и конвертации файло-
ся в окне программы как «Other». Воз- ная программа для *nix, которая име- вой системы без потерь данных реа-
можна работа с IDE-, SATA-, SCSI-жест- ла графический интерфейс. Для рабо- лизованы далеко не у всех. И как по-
ких дисков, а также Firewire- и USB-уст- ты с различными файловыми систе- казывают эксперименты, новая вер-
ройствами. Старшие версии поддер- мами используются соответсвующие сия файловой системы NTFS v6, по-
живают и RAID. библиотеки и утилиты, поэтому спи- явившаяся, начиная с Vista, пока мо-
Интерфейс не локализован, его сок поддерживаемых файловых сис- жет вызвать проблемы в работе про-
внешний вид и принцип работы пол- тем самый большой из всех программ грамм. Скорость выполнения операций
ностью скопированы с PartitionMagic. обзора. Полностью поддерживаются: у всех участников примерно одинакова,
Но количество реализованных функ- ext2, ext3, FAT16, FAT32, NTFS, Linux и выделить здесь явного лидера нель-
ций на порядок меньше. Она может swap, ReiserFS. И частично: HFS и HFS+ зя. Так как оперции по работе с разде-
создавать, удалять и форматировать (кроме расширения, проверки, метки), лами относятся к числу рискованных,
разделы. Операции конвертирования JFS (кроме уменьшения), Reiser4 (кро- то возможность создания восстано-
из FAT в NTFS и обратно без потери ме расширения и уменьшения), UFS вительного компакт-диска в Paragon
информации не предусмотрено. Как и (кроме чтения, создания, расширения Partition Manager и Acronis Disk Director
в PartitionMagic реализован предвари- и уменьшения) и XFS (кроме уменьше- Suite не является лишней.

№12, декабрь 2008 13


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

Новые возможности
мониторинга событий
в Windows Server 2008

Андрей Бирюков
Анализ различных журналов событий является неотъемлемой задачей для любого
системного администратора. Рассмотрим, какие функции для решения этой задачи предлагает
операционная система Windows Server 2008.

Как было раньше существенно переделаны и дополнены На основе данных свойств событий
Мощные производственные серверы новыми возможностями. Но обо всем можно осуществлять выборку и филь-
требуют постоянного контроля за тем, по порядку. Для начала рассмотрим, трацию, выполнять поиск.
какие события на них происходят. Не- как новшества были внесены в сред-
верный ввод паролей, попытки дос- ства получения и обработки событий Внешний вид
тупа к административным ресурсам, Event Viewer. Интерфейс утилиты Event Viewer также
внезапные остановки служб, отсутс- По определению Microsoft [1], со- существенно изменился. Информация,
твие свободного места на жестких дис- бытие – это любое значительное про- содержащаяся в системных собщени-
ках – информация обо всех этих и дру- явление в операционной системе или ях, во многом осталась прежней, пе-
гих событиях необходима системному приложении, требующее отслежива- реработанный интерфейс теперь поз-
администратору для обеспечения ра- ния информации. Событие не всегда воляет более эффективно работать
бочего функционирования промыш- негативно, поскольку успешный вход с событиями, осуществлять их поиск,
ленных серверов. в сеть, успешная передача сообще- фильтрацию и другие функциональные
Операционная система Windows ний или репликация данных также мо- возможности. Внешний вид утилиты
Server 2003 содержит по умолча- гут генерировать события в Windows. аналогичен реализации MMC 3.0. На-
нию три журнала событий: Application, В каждом журнале с его событиями вигационное дерево на левой панели
Security и System. В эти журналы попа- связаны общие свойства. окна утилиты просмотра событий отоб-
дают сообщения от различных прило- n Level (уровень) – это свойство оп- ражает список системных собщений
жений, сервисов и самой операцион- ределяет важность события; и журналов, доступных для просмотра,
ной системы. Однако в Windows 2003 n Date and Time (дата и время) – а также содержит новые папки, пред-
не было средств для обработки и ре- это свойство содержит информа- назначенные для создания настраива-
акции на данные события. Для реше- цию о дате и времени возникнове- емых представлений событий и подпи-
ния этих проблем приходилось ис- ния события; сок с удаленных систем. Подробнее об
пользовать специальные сценарии n Source (источник) – это свойство этих и других новых функциях мы пого-
на языке VBScript. О разработке неко- указывает источник события: при- ворим чуть позже (см. рис. 1).
торых из этих средств я писал в №11 ложение, удаленный доступ, служ- Центральная панель сведений, на-
за 2005 год. ба и т. д.; ходящаяся в центре консоли, отобра-
Теперь настало время поговорить n Event ID (код события) – каждо- жает важную информацию о событии
о том, как реализованы средства му событию назначен идентифи- в зависимости от папки, выбранной
сбора сообщений о событиях в но- катор события ID, число, сгенери- в навигационном дереве. И, наконец,
вой операционной системе Windows рованное источником и уникаль- крайняя справа панель задач содержит
Server 2008. ное для всех типов событий; контекстно зависимые действия в за-
n Task Category (категория зада- висимости от события, просматрива-
Нововведения чи) – это свойство определяет кате- емого в оснастке просмотра событий.
Как и многие другие функции Windows горию события, например Security Расположенные на левой панели пап-
Server 2008, журналы событий были или System. ки сгруппированы по следующим эле-

14
администрирование
ментам: Custom Views (настраиваемые панели утилиты просмотра событий. Logged выберите диапазон дат. Затем
представления), Windows Logs (журна- Если в этой папке щелкнуть правой необходимо указать критерий Event
лы Windows), Applications and Services кнопкой мыши по Administrative Events Level (уровень событий) для включе-
Logs (журналы приложений и служб), и затем указать Properties, то после ния в настраиваемое представление.
Subscriptions (подписки). нажатия Edit Filter получаем набор от- Возможные значения:
Рассмотрим более подробно эти фильтрованных по критерию сооб- n Critical –критическое;
папки. щений. n Error – ошибка;
Настраиваемые представления ос- n Warning – предупреждение;
Фильтры настки Administrative Events фиксиру- n Information – информация;
Настраиваемые представления – ют все критические события, а собы- n Verbose – подробности.
это специальные фильтры, созданные тия ошибок и предупреждений фик-
либо автоматически системой Windows сируются для всех журналов собы- После указания уровня событий не-
Server 2008 во время добавления тий (в отличие от предыдущих версий обходимо перейти к разделам By Log
в систему новых ролей сервера или Windows). Таким образом, с помощью и By Source. Используя соответствую-
приложений, таких как Active Directory данного фильтра администратор мо- щие раскрывающиеся списки, укажи-
Certificate Services (cлужбы сертифи- жет обращаться к единственному ис- те журнал события и источники жур-
катов каталогов), сервер DHCP, либо точнику для быстрой проверки потен- нала событий, которые должны быть
администраторами вручную. Для ад- циальных проблем, присутствующих включены в данный настраиваемый
министраторов одной из важнейших в системе. фильтр.
функций при работе с журналами со- Теперь в качестве примера попро- При необходимости вы также мо-
бытий является возможность созда- буем создать собственное представле- жете указать конкретные коды собы-
вать фильтры, позволяющие просмат- ние. Для этого щелкнем правой кноп- тий, категории задач и другие парамет-
ривать только интересующие собы- кой мыши на папке Custom View и в кон- ры. Но помните, что включение слиш-
тия, чтобы можно было быстро диа- текстном меню выберем пункт Create ком большого числа событий в на-
гностировать и устранять проблемы Custom View (создать настраиваемое страиваемое представление может
в системе. представление). отрицательно сказаться на произво-
В качестве примера рассмотрим Если требуемые события необхо- дительности и использовании ресур-
папку Custom Views в навигационной димо фильтровать по дате, то в списке сов системы.

Реклама

№12, декабрь 2008 15


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

Рисунок 1. Внешний вид журнала событий Рисунок 2. Настройка Debug

Созданные настраиваемые пред- на всю систему. Эти журналы вклю- все события в одной консоли. Это поз-
ставления можно экспортировать чают четыре подтипа: волит сэкономить время и облегчить
в XML-файл для последующего рас- n Admin – события, предназначен- процесс решения проблем.
пространения на другие машины. ные для конечных пользователей В качестве примера настроим под-
и администраторов; писку событий. Для этого нам потребу-
Журналы n Operational – рабочий журнал со- ются два компьютера: один будет вы-
Теперь рассмотрим типы журналов, бытий, также предназначенный ступать в качестве источника событий,
появившиеся в Windows Server 2008. для администраторов; второй будет получать события от пер-
Здесь тоже произошли некоторые из- n Analytic – журнал позволяет от- вого. Зайдите на сервер-источник под
менения. В папке журналов Windows слеживать цепочку возникнове- учетной записью, обладающей адми-
Logs находятся как традиционные жур- ния проблемы и часто содержит нистративными правами. Введите в ок-
налы безопасности, приложений и сис- большое количество записанных не командной строки:
темы, так и два новых журнала – Setup событий;
(настройка) и Forwarded Events (пере- n Debug – используется для отладки winrm quickconfig
сланные события). приложений.
Первые три типа событий уже при- Добавьте компьютер, собирающий
сутствовали в предыдущих версиях По умолчанию журналы Analytic сообщения о событиях, в группу ло-
системы, поэтому рассказывать о них и Debug скрыты и отключены. Для то- кальных администраторов на источ-
нет смысла. А о последних двух следу- го чтобы их просмотреть, щелкни- нике. Затем войдите на компьютер,
ет рассказать подробнее. те правой кнопкой мыши на папке собирающий сообщения, и также вы-
Журнал Setup фиксирует информа- Applications and Services Logs, а затем полните:
цию, связанную с установкой прило- в контекстном меню выберите пункт
жений, ролями сервера и их характе- View, Show Analytic and Debug Logs winrm quickconfig
ристиками. Так, например, сообщения (см. рис. 2).
о добавлении на сервере роли DHCP После этого выполните на нем же
будет отражены в этом журнале. Подписки на события следующую команду:
В журнале Forwarded Events соби- Рас с м от р и м е ще од н о н о в о в в е -
раются сообщения, присланные с дру- дение в Windows Server 2008. Это wecutil qc
гих машин в сети. Наличие такой функ- Subscriptions (подписки). Эта долгож-
ции позволяет облегчить решение данная функция аналогична службе При необходимости вы можете из-
проблем, возникших сразу на несколь- Syslog в UNIX. Данная функциональ- менять параметры оптимизации до-
ких машинах в сети. ная возможность позволяет удален- ставки событий. Например, вы можете
Папка Applications and Services Logs ным компьютерам пересылать сооб- изменить параметр Minimize Bandwidth
(журналы приложений и служб) пред- щения о событиях, в результате чего (минимизация пропускной способнос-
ставляют собой новый способ логичес- их можно просматривать централи- ти) для удаленных серверов с ненадеж-
кой организации, представления и со- зованно. Например, если у вас имеет- ным каналом связи.
хранения событий, связанных с конк- ся несколько серверов и вам необхо- Теперь необходимо собственно соз-
ретным приложением, компонентом димо следить за состоянием каждого дать подписку, указав события, кото-
или службой Windows, вместо исполь- из них. Теперь вместо того чтобы пе- рые должны извлекаться из компью-
зовавшейся ранее регистрации со- реключаться из одной консоли Event тера-источника. Для этого на собира-
бытий, которые оказывают влияние Viewer в другую, вы можете наблюдать ющем компьютере запустите утилиту

16
администрирование
просмотра событий с учетной записью, ление администратору по электронной ге поставьте галочку в соответствую-
обладающей правами администрато- почте или смс. Данная функция явля- щем поле, для того чтобы после созда-
ра. Затем щелкните мышью на папке ется долгожданным решением проб- ния задачи открылось окно с ее свойс-
Subscriptions в дереве консоли и выбе- лем с автоматизацией работы серве- твами (см. рис. 4).
рите команду Create Subscription (соз- ров, так как раньше требовалось уста-
дать подписку). В поле Subscription навливать дополнительное програм- Свойства задач
Name нужно указать имя подписки. мное обеспечение или писать сцена- Окно свойств задачи аналогично ин-
При необходимости в поле Description рии, для того чтобы заставить сервер терфейсу Scheduled Tasks для зада-
можно привести описание. Затем в по- автоматически реагировать на опре- ний, выполняющихся по расписанию.
ле Destination Log (журнал назначе- деленные события. Здесь можно указать учетную за-
ния) выберите файл журнала, в кото- В качестве примера настроим от- пись, под которой выполняется зада-
ром будут храниться собранные собы- правку сообщения администратору ча, при необходимости ее можно вы-
тия. По умолчанию эти события будут в случае неудачного входа пользова- полнять только когда пользователь ра-
храниться в журнале перенаправлен- теля в систему. Обратите внимание ботает на машине.
ных событий в папке Windows Logs де- на то, что теперь это событие имеет В закладке Triggers вы можете до-
рева консоли. После этого щелкните другой ID, отличный от использовав- бавлять или изменять условия выпол-
на кнопке Select Computers, чтобы вы- шегося в Windows 2003 ID 528. нения задачи. В Actions вы можете до-
брать исходные компьютеры, которые Для этого необходимо зайти в жур- бавлять различные действия. В за-
будут перенаправлять системные со- нал событий Event Viewer, открыть раз- кладке Conditions прописаны усло-
общения. Данные компьютеры долж- дел Windows Logs, затем Security, вы- вия, при которых выполняется зада-
ны находиться в домене. Затем выбе- брать нужное событие, нажать пра- ча. В Settings можно прописать, ка-
рите события, нажав на кнопке Select вую кнопку мыши и указать Attach кие действия должны быть выполне-
Events. Сконфигурируйте журналы и Task To This Event… (прикрепить зада- ны при различных условиях. Напри-
типы событий, предназначенные для чу к этому событию) (см. рис. 3). мер, что нужно делать в случае, если
сбора. Щелкните ОК, чтобы сохранить В открывшемся окне необходимо такая задача уже выполняется. Нако-
подписку. выбрать название события и его опи- нец, в закладке History вы можете на-
сание. На следующем шаге указыва- блюдать все события, которые вызва-
Реагируем на события ются используемый журнал, источник ли выполнение задачи.
Еще одной интересной функцией, о ко- и номер события. Содержимое этого
торой хотелось бы упомянуть, явля- журнала нельзя изменить. Потом вы- Заключение
ется возможность ответной реакции бирается тип ответного действия. Это Вот мы и рассмотрели новый функци-
на события. Другими словами, если может быть выполнение какого-либо онал Windows Server 2008, связанный
в журнал событий поступило сообще- приложения, отправка электронного с мониторингом событий. Новые функ-
ние о том, что на жестком диске оста- письма или вывод сообщения на экран. ции позволят вам автоматизировать
лось слишком мало свободного мес- Выберем отправку письма. На сле- процесс управления сбором событий
та, вы можете автоматически запус- дующем шаге нужно указать, от кого и более эффективно управлять кор-
тить сценарий, выполняющий архива- и на чей адрес отправлять письмо, те- поративной сетью.
цию данных. Аналогично в случае по- му письма, его текст. Можно также при-
лучения сообщения об ошибке како- крепить какой-либо файл к данному 1. Р. Моримото, М. Ноэл, О. Драуби.
го-либо критически важного прило- сообщению. Не забудьте указать IP‑ад- Microsoft Windows Server 2008. Полное
жения, вы можете отправить уведом- рес SMTP-сервера. На следующем ша- руководство.

Рисунок 3. Настройка ответной реакции на событие Рисунок 4. Свойства задач

№12, декабрь 2008 17


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

Мониторинг активности
хостов
Антон Борисов
Довольно часто возникают ситуации, когда необходимо производить мониторинг серверов
или рабочих станций. И не просто иметь сведение о том, что конкретный хост выключен
в данный момент, а иметь на руках статистические данные за определенный период.

Б
ыстро узнать, включен ли определенный хост в на- <title>Welcome to nginx!</title>
шей локальной сети, очень просто – достаточно за- </head>
<body bgcolor="white" text="black">
пустить команду ping до этого хоста и посмотреть ре- <center><h1>Welcome to nginx!</h1></center>
зультат. Как правило, машина бывает включена и охотно </body>
</html>
откликается на запросы. Connection closed by foreign host.

$ ping 10.66.2.1
PING 10.66.2.1 (10.66.2.1) 56(84) bytes of data. Впрочем, это прописные истины. Проблемы возника-
64 bytes from 10.66.2.1: icmp_seq=1 ttl=61 time=0.227 ms ют при необходимости не только контролировать большой
64 bytes from 10.66.2.1: icmp_seq=2 ttl=61 time=0.228 ms
64 bytes from 10.66.2.1: icmp_seq=3 ttl=61 time=0.225 ms парк ЭВМ и серверов, но и определять, а правильно ли ра-
64 bytes from 10.66.2.1: icmp_seq=4 ttl=61 time=0.230 ms ботает сервис. Что если хост откликается на ping, Apache,
64 bytes from 10.66.2.1: icmp_seq=5 ttl=61 time=0.227 ms
64 bytes from 10.66.2.1: icmp_seq=6 ttl=61 time=0.244 ms
работающий на этом же хосту правильно отдает докумен-
64 bytes from 10.66.2.1: icmp_seq=7 ttl=61 time=0.229 ms ты, а вот зайти, например, по протоколу SSH нельзя? Мож-
но ли отслеживать в автоматическом режиме указанные
--- 10.66.2.1 ping statistics ---
7 packets transmitted, 7 received, 0% packet loss, time 5997ms сбои? Оказывается, можно.
rtt min/avg/max/mdev = 0.225/0.230/0.244/0.005 ms
«Свистать всех наверх!» –
Естественно, что мы доверяем всем рабочим хостам Mila NetWhistler
в нашей локальной сети, и firewall пропускает ICMP Echo- Элегантной и в то же время простой кажется разработ-
запросы, на которые опирается при своей работе команда ка Александра Еремина под названием Mila NetWhistler.
ping. Проверить определенный сервис, «висящий» на оп- Это Java-приложение с обвязкой в виде fping (fast ping),
ределенном порту, также не составляет труда. traceroute, nmap и SNMP-утилит. В последней выпущен-
ной версии 2.10 также есть возможность взаимодействия
$ telnet 10.66.2.1 22 с MRTG.
Trying 10.66.2.1... На данный момент NetWhistler может функционировать
Connected to 10.66.2.1. на следующих платформах: Linux, *BSD, Solaris, OpenVMS.
Escape character is '^]'.
SSH-2.0-dropbear_0.49 Поддержка для Windows также задекларирована, но пос-
ледняя рабочая версия, которую удалось найти под эту плат-
$ telnet 10.66.2.1 80 форму, – это 2.6. Она вполне работоспособна, единствен-
Trying 10.66.2.1... ное, что в ней отсутствует, поддержкаMRTG и вместо fping
Connected to 10.66.2.1.
Escape character is '^]'.
используется обычный, привычный ping.
GET / HTTP/1.0 Давайте рассмотрим на примере openSUSE 10.3, Sun
HTTP/1.1 200 OK
JRE 1.5 и NetWhistler 2.10 [1], как построить карту сети.
Server: nginx/0.7.13 Установим пакет от имени суперпользователя:
Date: Thu, 30 Oct 2008 16:06:50 GMT
Content-Type: text/html
Content-Length: 151 # chmod +x ./netwhistler2.10.bin
Last-Modified: Mon, 01 Sep 2008 13:04:23 GMT # ./netwhistler2.10.bin
Connection: close
Accept-Ranges: bytes И запускаем с правами обычного пользователя:
<html>
<head> $ /usr/local/netwhistler/netwhistler.sh

18
администрирование
Создаем описание новой сети, в данном случае подсеть
класса A – 10.66.2.0/24 (см. рис. 1). И разрешаем программе
самостоятельно определить количество хостов, работаю-
щих в данной сети, – нажимаем кнопку Discover. И убежда-
емся, что ничего не обнаружено. Странно, но мы точно зна-
ем, что рабочие машины есть. Что делать в этом случае?
Запустить NetWhistler с администраторскими правами,
просканировать сеть и сохранить карту в нужный каталог.
Далее загружать уже готовую карту, но с правами обычно-
го пользователя.
По всей видимости, запуск fping происходит из готового
java-класса с параметрами, которые могут быть использо-
ваны только суперпользователем.При дальнейшей эксплу-
атации, когда явно возникает проблема, что хост включен,
но NetWhistler не «признает» его в рабочем состоянии, не-
обходимо будет отредактировать внешний скрипт fping.py
из подкаталога scripts, который непосредственно запускает
fping со следующими параметрами: «‑a -r 1 -e -t 1», где: Рисунок 1. Определяем подсеть класса A
n -a – показывать хосты, которые активны в настоящий
момент; и включаем мониторинг – «Monitoring → Start Monitoring».
n -r 1 – количество отправленных пакетов к определен- Опрашиваются все машины, а также контролируемые
ному хосту; сервисы. И видим, что у нас происходит в локальной сети.
n -e – показывать затраченное время при получении па- В частности, все узлы включены и работают нормально,
кета от хоста; кроме 10.66.2.250 и 10.66.2.2. Причем первый выключен,
n -t 1 – используемый тайм-аут при отправке пакета а на втором не работает веб-сервер (см. рис. 2).
(в миллисекундах). Просмотреть произошедшие события можно, переклю-
чаясь между режимами просмотра: Topology View, Status
Пользователь с обычными (не суперпользовательски- View, Interface View, Events View и Graph View. В частности,
ми правами) не может использовать время тайм-аута мень- в последнем режиме можно наглядно убедиться, каков про-
ше 50 мс. цент «выживаемости» на текущий момент (см. рис. 3).
Итак, карта готова. Теперь нужно определиться, какие По мере возникновения ошибки существует возмож-
сервисы мы хотим контролировать на хосте. ность просигнализировать оператору об аварии. Либо ви-
Щелкаем на пиктограмме хоста, затем «Properties → зуально, показав окно предупреждения с проблемным хос-
Services». Из списка выбираем нужную для контроля служ- том, либо отправив email или же запустив внешнюю коман-
бу: FTP, SSH, SMTP, POP3, IMAP, SAMBA или CITRIX. К со- ду. Настройки параметров в закладке «Edit → Options →
жалению, добавить другую службу, помимо указанных, Alerts» (см. рис. 4).
не представляется возможным. Какие присутствуют концептуальные особенности у
Аналогично выставляем параметры для всех хостов данного решения? Во-первых, необходимость держать

Реклама

№12, декабрь 2008 19


администрирование
1) RootDir "/var/netmon"
2) Polling 60
3) Timeout 2
4) Retries 3
5) Saving 300
6) TimeFmt "%H:%M:%S"

В строке 1 объявляем директорию,


где будут храниться логи программы.
Опрос хостов производится каждые 60
секунд (строка 2), но не чаще, чем че-
рез 30 секунд. Будет произведено 3 оп-
роса (строка 4) с тайм-аутом в 2 се-
кунды (строка 3) для каждого объек-
та, который мы укажем чуть позднее.
Сброс статистики, т.е. сохранение лог-
файлов, происходит раз в 300 секунд
(строка 5). Формат времени для запи-
си события указан в строке 6.
Рисунок 2. Проблемные хосты или службы выделяются красным цветом
7) Group "local" {
# Разрешить хосту с DNS-именем
# localhost
8) Permit "^localhost$"
# Рарешить хосту по IP-адресу
9) Permit "^127\\.0\\.0\\.1$"
# запретить всем – по умолчанию
10) Deny ".*"
11)}

В строках 7-11 объявляется группа


доступа local для просмотра событий:

12) Group "remote" {


13) Permit "^192\\.168\\.1\\.*"
14)}

И объявляется также группа remote,


владельцы которой (а именно, сеть
192.168.1.0/24), смогут также подклю-
чаться к консоли управления и про-
сматривать события.

Рисунок 3. Визуальная карта позволяет оценить масштабы аварии 15) NetState {


# NetState server port number
# (mandatory)
приложение в активном состоянии. предлагаю обратить ваше внимание 16) Port 3333
# Client timeout (optional)
Из‑за того, что нет разбиения на сер- на netmond – Network Monitor Dealer. 17) Timeout 30
верную часть (в виде демона или служ- Программа предназначена для запус- # The number of Group references
# is unlimited
бы) и графическую часть, которая не- ка в UNIX-средах, в частности в линей- 18) Group "local"
посредственно занимается отобра- ке FreeBSD, где с 2006 года находится # Match is done from top to bottom
19) Group "remote"
жением. в дереве портов – /usr/ports/net‑mgmt/ 20)}
Во-вторых, необходимость уста- netmond.
новленной Java-машины. И в-треть-
их, нет возможности контролиро- # cd /usr/ports/net-mgmt/netmond
# make && make install && make clean
вать произвольные порты, т.к. пред-
лагаются к использованию только те, Организуем автоматический старт
что «зашиты» в программу. А так, впе- netmond при загрузке системы – добав-
чатление производит достойное. ляем в /etc/rc.conf строчку:

На поле действия выходит netmond_enable="YES"


дилер. Сетевой
Так как желание увидеть решение И займемся теперь составлени-
в классическом варианте, когда про- ем конфигурации – файл /usr/local/etc/
грамма разбита на 2 части, сервер- netmond.conf.
Рисунок 4. Сообщить об аварии можно
ную и клиентскую, вполне логично, то Итак: несколькими способами

20
администрирование
Собственно включаем консоль управления на порту 45) tcp port 5900
3333 и разрешаем членам групп local и remote подключать- 46) ChatScript { Send "" Expect "^RFB" Send ↵
"\r\n\r\n\r\n\r\n\r\n\r\n" }
ся для анализа событий. Затем мы производим объявление 47)}
различных методов контроля, по сути, мы создаем различ-
ные алгоритмы опроса портов. И затем мы делаем еще одно объявление, которое поз-
волит нам мониторить VNC-службу, строки 44-47.
21) Method "http" { Для сведения – чтобы осуществлять проверку работы
22) tcp port 80
23) ChatScript { сервисов, использующих SSL (например, HTTPS/SMTPS/
24) Send "GET $1 HTTP/1.0\r\n\r\n" IMAPS), вам придется отказаться от схемы с ChatScript.
25) Expect "^HTTP/1.1 200 OK$"
26) } И производить вызов внешней UNIX-утилиты (под назва-
27)} нием openssl), используя метод Exec (о нем расскажем чуть
позже) в netmond.
В строках 21-27 создаем метод с названием http для оп- После этого мы должны организовать обработку со-
роса порта 80. Фактически при вызове метода происходит бытий, т.е. что делать с данными сигнализации. Отсылать
следующее: хосту на порт 80 отправляется запрос в виде по почте, сохранять в файл или что-то еще.
«GET $1 HTTP/1.0», где вместо параметра $1 будет высту-
пать адрес документа. Например, /index.html. Если хост от- 48) Save "change-state-alarm" {
49) Pipe "mail -s \"$0\" root"
вечает «HTTP/1.1 200 OK», т.е. документ /index.html найден 50) State "$time $1 $name $state"
и ошибок при его получении нет (статус ответа 200), то будет 51)}
считаться, что сервис веб-службы работает без ошибок.
В строках 48-51 объявляем обработчик change-state-
28) Method "pop3" { alarm, который при наступлении события будет отсылать
29) tcp port 110
30) ChatScript { Send "" Expect "^\\+OK " Send ↵ почту абоненту root, с темой письма, взятого из парамет-
"QUIT\r\n" Expect "" } ра $0. В письме будет содержаться строка вида: «10:23:45
31)}
icmp-echo-alarm "DHCP-Server1" "UP"».
Аналогичная ситуация для проверки POP3-серви-
са (строки 28-31). Хосту на порт 110 ничего не отсылает- 52) Save "icmp-echo-alarm" {
53) File "%Y.%m.%d"
ся, но проверяется, чтобы при подключении была выдана 54) State "$time $0 $name $state"
строка «+OK», что означало бы, что POP3-сервис работает. 55) }
Затем отсылается комнада QUIT, сигнализирующая POP3-
службе об отключении клиента, т.е. нашего запроса. Обработчик icmp-echo-alarm будет сохранять изменения
в файл, в отличие от рассмотренного выше. Формат фай-
32) Method "smtp" { ла – год, месяц, день. Например, так – 2008.10.29.
33) tcp port 25
34) ChatScript { Send "" Expect "^220-" Send ↵ Чтобы определить, активен ли сервис DHCP как таковой,
"QUIT\r\n" Expect "" } стоит вызывать утилиту dhcping, например, так:
35)}

Строки 32-35 объявляют метод smtp, для проверки dhcping -s 192.168.0.203 -c 192.168.0.201 -v -i
SMTP-службы. Got answer from: 192.168.0.203

36) Method "ftp" { где, 192.168.0.203 – DHCP-сервер, а 192.168.0.201 – адрес


37) tcp port 21
38) ChatScript { Send "" Expect "^220 " Send ↵ сервера, откуда происходит мониторинг. Сам вызов утили-
"QUIT\r\n" Expect "" } ты «завернуть» в обертку метода Exec.
39)}
И наконец приступаем к определению объектов, кото-
И затем идет объявление метода для проверки уже FTP- рые будем мониторить.
службы. Проверяется, выдает ли хост на порту 21 строку, В строке 56 указываем название объекта – DHCP-
например «220 (vsFTPd 2.0.5)». Что означало бы, что FTP- Server1. Именно с таким названием в /var/netmon будет
служба активна. создана поддиректория, хранящая записи о событиях
с хоста.
40) Method "ssh" { В строке 57 прописываем IP-адрес хоста и вызываем
41) tcp port 22
42) ChatScript { Send "" Expect "^SSH-" Send ↵ встроенный метод ping (строка 58). Это необходимо сделать
"QUIT\r\n" Expect "" } для того, чтобы netmond определил для своих внутренних
43)}
целей первоначальное состояние объекта – либо он вклю-
Вы можете проследить аналогию также и для проверки чен (состояние UP), либо выключен (DOWN).
SSH в методе ssh. Ожидается, что хост на порту 22 будет В строке 59 указываем, что будет вызываться обработ-
отдавать нечто похожее на «SSH-2.0-OpenSSH_4.6». На са- чик «icmp-echo-alarm» для всего объекта. И в строках 60‑63,
мом деле нас не интересует, как полностью выглядит стро- 64-67 используем 2 метода контроля хоста – соответствен-
ка ответа, главное, чтобы она начиналась на «SSH-». но для POP3-службы и веб-сервера.

44) Method "vnc" { 56) Object "DHCP-Server1" {

№12, декабрь 2008 21


администрирование
57) Address "192.168.0.201" соли управления (мы ее активизировали для групп local
58) Method Ping
59) Save "icmp-echo-alarm" "DHCP-Server1 ping" и remote на порту 3333) и вводим название объекта, кото-
60) Service "pop3" { рый нам интересен.
61) Method "pop3"
62) Save "icmp-echo-alarm" "DHCP-Server1 pop3"
63) } $ telnet 127.00.00.1 3333
64) Service "http" {
65) Method "http" "/index.html" Trying 127.0.0.1...
66) Save "icmp-echo-alarm" "DHCP-Server1 http" Connected to localhost.lib.
67) } Escape character is '^]'.
68)} NetState server ready (timeout 30 sec.)
Compress: ZLIB 1.2.3
!
В качестве проверки работоспособности веб-службы Object Host-51
будем проверерять доступность файла /index.html на объ- !OBJECT
екте DHCP-Server1. Host-51!NAME = "Host-51"
Host-51!ADDRESS = "192.168.0.51"
Добавим еще один объект – Unit1. Его проверка будет Host-51!POLLING = 60
заключаться в получении отклика по ICMP-протоколу. Host-51!TIMEOUT = 2
Host-51!RETRIES = 3
Host-51!SAVING = 300
69) Object "Unit1" {
Host-51!DATADIR = "/var/netmon/Host-51"
70) Address "192.168.0.101"
71) Method Ping Host-51!STATE = "UP"
72) Save "icmp-echo-alarm" "Unit1 ping" Host-51!QUERYTIME = 1225454401
73)} Host-51!REPLYTIME = 1225454401
Host-51!LASTCHANGE = 1225433058
И добавляем рабочую станцию (Host-51), где помимо ин- Host-51!HOPCOUNT = 1
Host-51!PING = 14
формации, включена она или нет, нас еще будет интересо- Host-51!PING.ok = 1
вать, а запущен ли на ней VNC-сервер. Host-51!PING.send = 1
Host-51!PING.recv = 1
74) Object "Host-51" { Так, эта рабочая станция включена. Проверим объект
75) Address "192.168.0.51"
76) Method Ping Unit1. Набираем в консоли Object Unit1 для просмотра ин-
77) Save "icmp-echo-alarm" "Host-51 ping" формации.
78) Service "vnc" {
79) Method "vnc"
80) Save "icmp-echo-alarm" "Host-51 vnc" Unit1!NAME = "Unit1"
81) } Unit1!ADDRESS = "192.168.0.101"
82)} Unit1!POLLING = 60
Unit1!TIMEOUT = 2
Unit1!RETRIES = 3
Теперь запускаем сервер netmond и ждем, пока не на- Unit1!SAVING = 300
копится статистика. Которая, как вы помните, складирует- Unit1!DATADIR = "/var/netmon/Unit1"
ся в /var/netmon/. Unit1!STATE = "DOWN"
Unit1!QUERYTIME = 1225454852
Посмотрим, что у нас получилось: Unit1!LASTCHANGE = 1225454852
Unit1!PING = "Host is down"
# tail -f /var/netmon/Host-51/2008.10.31 Unit1!PING.ok = 0
Unit1!PING.send = 0
08:59:35 icmp-echo-alarm "Host-51" "DOWN" Unit1!PING.recv = 0
09:00:05 icmp-echo-alarm "Host-51" "DOWN"
09:00:35 icmp-echo-alarm "Host-51" "DOWN"
09:01:05 icmp-echo-alarm "Host-51" "DOWN" Вывод – указанный объект выключен.
09:01:35 icmp-echo-alarm "Host-51" "DOWN" Чтобы просмотреть всю информацию, включая пара-
09:02:05 icmp-echo-alarm "Host-51" "DOWN"
09:02:35 icmp-echo-alarm "Host-51" "DOWN"
метры объектов, текущее время и внутренние переменные,
09:03:11 icmp-echo-alarm "Host-51" "DOWN" можно воспользоваться командой:
09:03:47 icmp-echo-alarm "Host-51" "DOWN"
09:04:17 icmp-echo-alarm "Host-51" "UP"
any :*
Рабочая станция включена в 09:04:17. И до сих пор не вы-
ключена. Как только произойдет перезагрузка либо выклю- Так же, как и в NetWhistler, есть возможность реагиро-
чение, то в лог-файле появится отметка – DOWN. вать на события, т.е. не только выдавать сообщения в лог-
Так как для этого объекта мы заказывали получение ста- файл, а также отсылать email, но и запустить исполнение
тистики еще и по предоставляемому сервису VNC, то най- собственного скрипта. Посмотрим на пример:
ти его вы можете в директории /var/netmon/Host-51/vnc/
[ДатаФайла]. Структура лог-файла такая же, что и для все- Save "down-alarm" {
Exec "/root/system/pager.sh"
го объекта Host-51: When "$state == \"DOWN\"" 300 "$1 $name $state ↵
5 minutes"
09:34:29 icmp-echo-alarm "vnc" "UP" }
09:39:00 icmp-echo-alarm "vnc" "DOWN"
09:40:00 icmp-echo-alarm "vnc" "UP" Если хост будет в нерабочем состоянии более 5 минут,
09:58:00 icmp-echo-alarm "vnc" "DOWN" то сигнализация запустит скрипт /root/system/pager.sh с па-
09:59:00 icmp-echo-alarm "vnc" "UP"
раметрами даты, имени объекта и его состояния.
Просмотреть состояние мониторинга в реальном вре- Сравните со строками 48-51, которые мы рассмотре-
мени можно следующим образом – подключаемся к кон- ли выше.

22
администрирование
Организуем авторестарт узла 1) #!/usr/local/bin/expect -f
Предположим, что у нас есть DSL-модем, который необхо- 2) set host 192.168.1.1
димо мониторить, в силу его не всегда правильного пове- 3) set user username_to_login
4) set pass password_to_login
дения, т.е. отслеживать ситуации, когда он на самом деле-
то работает, только вот из внешней сети до него не досту- 5) spawn telnet "$host"
6) expect "login:"
чаться. В качестве такого оригинального прибора пусть бу- 7) send "$user\r"
дет выступать D-Link 2500U. Чем он характерен? Тем, что 8) expect "word:"
9) send "$pass\r"
у него есть веб-интерфейс управления и возможность зай-
ти на него с помощью telnet. 10) expect "#"
11) send "ifconfig\r"
$ telnet 192.168.1.1 12) send "exit\r"
13) interact
Trying 192.168.1.1...
Connected to 192.168.1.1. В строке 1 указываем название командного интерпре-
Escape character is '^]'.
BCM96338 ADSL Router татора, в нашем случае expect.
(none) login: admin Выставляем значения переменных host, user, pass для
Password:
доступа к D-Link (строки 2-4). Запускается внешнее прило-
BusyBox v1.00 (2005.04.12-18:11+0000) Built-in shell (msh) жение telnet (строка 5), программа ждет, пока не появится
Enter 'help' for a list of built-in commands. приглашение от D-Link в виде строки «login:» (строка 6), за-
тем будет передано имя пользователя (строка 7). Аналогич-
Выясняется, что это Linux-система, подобная тем, что но реализовано для передачи пароля (строки 8‑9). Ждем
у многих используется в качестве сервера. приглашения операционной системы D-Link и запрашива-
ем статистику по внутренним интерфейсам (строки 10-11).
# cat /proc/uptime Затем завершаем сеанс и выходим из программы (стро-
12501.58 12042.20 ки 12-13).
Просто и понятно. Если нас интересует все-таки воз-
Даже узнать uptime не составляет большого труда. можность перезагрузки модема, то вместо получения ста-
Впрочем, как и запущенные процессы. тистики (строка 11) логично запустить D-Link через коман-
ду reboot. Новая строка выглядит как:
# ps afx
PID Uid VmSize Stat Command send "reboot\r"
1 admin 220 S init
2 admin SW< [ksoftirqd/0]
3 admin SW< [events/0] На этом можно было бы успокоиться, настроить мони-
4 admin SW< [khelper]
5 admin SW< [kblockd/0] торинг какого-либо хоста на стороне провайдера и в слу-
6 admin SW [pdflush]
7 admin SW [pdflush] чае пропадания связи запускать pager.sh.
8 admin SW [kswapd0] Оказалось, что в данном конкретном случае reboot
9 admin SW< [aio/0]
10 admin SW [mtdblockd] не работает для D-Link 2500U и необходимо перезапус-
17 admin 292 S -sh
120 admin 164 S pvc2684d кать через веб-интерфейс, что, как понимаете, возмож-
166 admin 188 S igmp lo но лишь из локальной сети этого модема. Либо вручную.
225 admin 408 S telnetd
229 admin 144 S bftpd Но последнее условие мы и хотели обойти автоматизаци-
233 admin 212 S tftpd
237 admin 608 S snmp ей процесса.
258 admin 680 S httpd Тупик? Вовсе нет. Несмотря на то, что в этом D-Link ис-
263 admin 264 S pppd -c 1.32.1 -i nas_1_32 -u 100101 -p ******* -f 0
2405 admin 188 S /bin/dnsprobe пользуется веб-сервер с авторизацией, есть все же воз-
2409 admin 240 S upnp -L br0 -W ppp_1_32_1 -D
15441 admin 300 S -sh можность его перезагрузки.
15448 admin 256 R ps afx Не будем ходить вокруг да около, приступаем.

Казалось бы, UNIX-система обязана работать долго # cat /root/system/pager2.sh


#!/bin/sh
и не требовать к себе особенного внимания. Однако прак-
тика доказывает (в данном конкретном случае) обратное, REBOOT_TEXT=/root/system/modem_reboot.txt
NC=/usr/bin/nc
и выяснять, кто прав, а кто виноват – изготовитель моде- CAT=/bin/cat
ма или провайдер услуг – в случае потери связи не особен-
но хочется. Решение, как всегда, кроется на поверхности – $CAT $REBOOT_TEXT | $NC 192.168.1.1 80
нужно перезапустить модем. Сказано – сделано. Если ря-
дом находится оператор, то никаких сложностей нажать С помощью netcat присоединяемся к 80-му порту моде-
на кнопку нет. Теперь представьте, что это автоматизиро- ма. И передаем текст:
ванный комплекс, лишних рук просто нет. Что делать? По-
пытаться зайти автоматически в модем. # cat /root/system/modem_reboot.txt
Есть замечательная утилита под названием expect. GET /rebootinfo.cgi HTTP/1.1
Её помощью и воспользуемся. Host: localhost
Authorization: Basic aGVsbG86dGhlcmUK
Составляем скрипт pager.sh:

№12, декабрь 2008 23


администрирование
ню Edit и нажимаете Discover NetState
Server. Пара мгновений – и карта за-
полнена (см. рис. 5).
Можно подписать узлы, для кото-
рых требуется расшифровка и при-
ступить к следующему шагу. А имен-
но: включить визуализацию – кнопку
«Monitoring → Update».
Теперь все узлы, что активны, обоз-
начены зеленым цветом, проблемные –
красным (см. рис. 6).
Карту можно загрузить и из файла
конфигурации netmond, если он будет
соответствовать «стилю» TkNetmon.
«Стиль» состоит в том, что все дирек-
тивы должны быть в «правильном» ви-
де – для программы Object и OBJECT –
Рисунок 5. Узлы импортированы из работающего сервера netmond разные команды. Первую он пой-
мет и исполнит, вторую – не поймет.
Который на самом-то деле запускает скрипт rebootinfo.cgi Ка должны выглядеть «правильные» директивы – можно
на стороне веб-сервера D-Link. Этот скрипт и перезапус- посмотреть в файле lib/LoadFile.tcl. Там все директивы –
тит сам модем. А чтобы обойти интерактивный ввод дан- это названия подпрограмм.
ных авторизации для веб-сервера, мы добавили строку: Что делать, если запускать TkNetmon вы хотите с ра-
«Authorization: Basic aGVsbG86dGhlcmUK», где строка пос- бочего места, а не с сервера *BSD, ситуацию с котрым мы
ле слова Basic является mime64-кодировкой имени поль- только что рассмотрели? Установить указанные выше па-
зователя и пароля. Чтобы получить ваш собственный ко- кеты! С единственным исключением – пакет sql-tcl вы, ско-
дированный текст, делайте так: рее всего, не сможете скомпилировать из-за очевидной его
древности (последнее его обновление – 2001 год). С теку-
$ echo «username_to_login:password_to_login» | base64
щей, распространенной версией MySQL 5 он просто-на-
просто не соберется.
Проверяете – работает как часы. Теперь, как только В этом случае стоит убрать возможность хранения ло-
перестает отвечать хост провайдера, например, в течение гов в SQL-базе. Закомментируйте строчки вызова проце-
5 минут DNS-сервер, это будет означать, что модем «спот- дуры EventsLog в файле TkNetmon.tcl (строки 681, 1598),
кнулся» на ровном месте и требуется его перезагрузка, ко- lib/EventsLog.tcl (строка 809) и вызов пакета sql в lib/Sql.tcl
торую мы и можем организовать, используя возможность (строка 10) и в lib/EventsLog.tcl (строка 31).
запуска внешних скриптов – вызов Exec в netmond. Серверная часть этого решения, т.е. непосредственно
Отлично, вручную мы знаем, как получить данные. Те- сборщик данных, портированы в следующие ОС: FreeBSD,
перь хотелось бы пощелкать мышкой, чтобы получить те же Linux, Solaris. Насчет Win32/Win64-окружения текущий раз-
данные в красивом виде. Как вы догадались, мы перехо- работчик дал такой ответ – «вероятность портирования
дим к клиентской части «сетевого дилера». близка к 0». Что касается клиентской части под Windows,
Визуализация происходит с помощью пакетов Tcl/Tk, то все «комплектующие» под эту систему есть: Tcl/Tk,
TkTables, BLT и, если требуется, пакетов tcl-sql и snack. Пос- TkTables, BLT. Так что вероятность запуска в последнем
ледние два нужны прежде всего для возможности сохранять случае будет значительно выше 0.
логи в SQL-базу и звукового оповещения статуса узлов. В заключение хотелось бы поблагодарить Виктора Фоми-
чева, текущего разработчика проекта netmond и TkNetmod
# cd /usr/ports/net-mgmt/tknetmon/
# make && make install && make clean з а п о м о щ ь п р и
подготовке мате-
Так получается, что и сам сервер netmond, и его клиент- риала.
скую часть (TkNetmond) мы собрали на одном и том же уз-
ле управления. Но картинку мы хотим наблюдать на своем 1. http://netwhistler.
рабочем месте. Сделаем перенаправление экрана на свою sourceforge.net/
машину и запустим визуализатор: downloads.shtml.
2. http://vfom.narod.
$ export DISPLAY=myIP:0
$ wish8.4 /usr/local/lib/TkNetmon-2.0.7a/TkNetmon.tcl ru/ TkNetmon/
index.html.
Получили незаполненную карту. Дальше можно вруч- 3. h t t p : / / n e o n .
ную внести необходимые для контроля узлы на карту либо h e ave n n e t . r u /
импортировать все узлы, что хранятся в работающем сер- netmond_rrdtool. Рисунок 6. Хост на момент проверки
вере netmond. Для последнего случая отправляетесь в ме- html. выключен

24
bugtraq

Выполнение произвольного кода Ошибка завышения на единицу в ClamAV


в SAP GUI MDrmSap ActiveX-компоненте Программа: ClamAV версии до 0.94.1.
Программа: SAP GUI версии 6.x, 7.x. Опасность: Средняя.
Опасность: Высокая. Описание: Уязвимость существует из-за ошибки завы-
Описание: Уязвимость существует из-за неизвестной шения на единицу в функции get_unicode_name() в фай-
ошибки во встроенном MDrmSap ActiveX-компоненте ле libclamav/vba_extract.c. Удаленный пользователь может
(mdrmsap.dll). Удаленный пользователь может с помощью с помощью специально сформированного VBA-проекта вы-
специально сформированного веб-сайта выполнить про- звать переполнение динамической памяти с нулевым бай-
извольный код на целевой системе. том и выполнить произвольный код на целевой системе.
URL производителя: www.sap.com. URL производителя: www.clamav.net.
Решение: Установите исправление с сайта производителя. Решение: Установите последнюю версию 0.94.1 с сайта
производителя.
Множественные уязвимости в Libxml2
Программа: Libxml2 2.7.2, возможно, другие версии. Переполнение буфера в imlib2
Опасность: Высокая. Программа: imlib2 1.4.2, возможно, другие версии.
Описание: 1. Целочисленное переполнение существует из- Опасность: Высокая.
за ошибки в функции xmlSAX2Characters(). Удаленный поль- Описание: Уязвимость существует из-за ошибки в функ-
зователь может с помощью специально сформированного ции load() в XPM-загрузчике. Удаленный пользователь мо-
XML-файла вызвать повреждение памяти и выполнить про- жет с помощью специально сформированного XPM-файла
извольный код на целевой системе. вызвать переполнение динамической памяти и выполнить
2. Целочисленное переполнение обнаружено в функ- произвольный код на целевой системе.
ции xmlBufferResize(). Удаленный пользователь может вы- URL производителя: enlightenment.org.
звать зацикливание приложения. Решение: В настоящее время способов устранения уязви-
URL производителя: www.xmlsoft.org. мости не существует.
Решение: В настоящее время способов устранения уязви-
мости не существует. Выполнение произвольного кода
в Ubuntu webkit
Выполнение произвольного кода Программа: Ubuntu Linux 8.10.
в Exodus Опасность: Высокая.
Программа: Exodus 0.10, возможно, другие версии. Описание: Уязвимость существует из-за ошибки повторно-
Опасность: Высокая. го использования памяти при обработке импорта каскадных
Описание: Уязвимость существует из-за того, что прило- стилей. Удаленный пользователь может с помощью специ-
жение доверяет аргументам, полученным через «im:// URI». ально сформированного веб-сайта выполнить произволь-
Удаленный пользователь может с помощью специально ный код на целевой системе.
сформированного URI перезаписать произвольные фай- URL производителя: www.ubuntu.com.
лы на системе. Пример: Решение: Установите исправление с сайта производителя.
im:///'%20-l%20c:\boot.ini%20-v
Несколько уязвимостей в Openfire
URL производителя: exodus.jabberstudio.org. Программа: Openfire 3.6.0a, возможно, другие версии.
Решение: В настоящее время способов устранения уязви- Опасность: Средняя.
мости не существует. Описание: 1. Уязвимость существует из-за ошибки в филь-
тре AuthCheck при наложении ограничений доступа. Уда-
Повреждение памяти в BitDefender ленный неавторизованный пользователь может с помощью
Antivirus специально сформированного URL, содержащего строку
Программа: BitDefender Antivirus Standard 10.x; BitDefender «setup/setup-» и символы обхода каталога, получить дос-
Free Edition 10.x. туп к административным ресурсам. Пример:
Опасность: Высокая. http://www.foo.bar:9090/setup/setup-/../../ ↵
Описание: Уязвимость существует из-за ошибки про- log.jsp?log=info&mode=asc&lines=All
верки границ данных в модуле pdf.xmd при обработке за- 2. Уязвимость существует из-за ошибки проверки вход-
шифрованных данных с помощью фильтров FlateDecode ных данных в плагине SIP. Удаленный пользователь мо-
и ASCIIHexDecode. Удаленный пользователь может с по- жет выполнить произвольные SQL-команды в базе дан-
мощью специально сформированного PDF-файла вызвать ных приложения.
повреждение памяти и выполнить произвольный код на це- URL производителя: www.igniterealtime.org/projects/openfire/
левой системе. index.jsp.
URL производителя: www.bitdefender.com. Решение: В настоящее время способов устранения уязви-
Решение: В настоящее время способов устранения уязви- мости не существует.
мости не существует.
Составил Александр Антипов

№12, декабрь 2008 25


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

Решаем проблемы в Outlook Express

Дмитрий Нестеркин
Проблемы с электронной почтой – пожалуй, одна из наиболее частых причин обращения
пользователей в службы технической поддержки и к системным администраторам.
Несмотря на кажущуюся простоту задачи, найти причину сбоя и быстро устранить её
получается не всегда. Рассмотрим наиболее частые проблемы, возникающие при работе
с электронной почтой через клиент Outlook Express.

Э
тот стандартный почтовый кли- лов с расширением .dbx, каждый из ко- дует создать упомянутую выше струк-
ент операционной системы торых соответствует одной из пользо- туру подпапок и либо переносить все
Windows не отличается гибкос- вательских папок. Имена этих файлов письма вручную (причем небольшими
тью и надежностью. Тем не менее на- в точности повторяют названия папок порциями, а в идеале – по одному), ли-
равне с Internet Explorer данный про- в окне почтового клиента. Также име- бо воспользоваться функцией импорта
граммный продукт зачастую выбира- ются служебные dbx-фалы, в которых какой-либо другой почтовой програм-
ется в качестве корпоративного стан- хранятся лог принятых сообщений мы (например, Microsoft Office Outlook).
дарта в целях экономии и простоты и иерархия подпапок. Учтите, что не все почтовые програм-
конфигурации. мы позволяют экспортировать письма
В отличие от «старшего брата» – Переполнение почты обратно в Outlook Express. Переполнен-
программы Outlook из комплекта Случается, что программа выдает со- ные файлы баз корректно не сжима-
Microsoft Office, где, впрочем, иногда общение с кодом ошибки и крайне рас- ются и не подлежат восстановлению –
также случаются некоторые из проб- плывчатым пояснением «неопознанная их придется удалить. После перезапус-
лем, о которых мы сегодня поговорим, ошибка» без дополнительных коммен- ка Outlook Express создаст пустые dbx-
в Outlook Express используется упро- тариев при проверке почты, и новые файлы взамен удаленных, и вы получи-
щенный формат почтовых баз (.dbx), ко- письма не поступают. Также может воз- те пустые соответствующие папки.
торый менее устойчив к повреждени- никнуть обратная ситуация, когда пись-
ям. Данная особенность является при- ма не перемещаются из папки «Исхо- Восстановление
чиной многих сбоев в работе почтово- дящие» в папку «Отправленные», и их структуры папок
го клиента, а зачастую и потери дан- отправка повторяется снова и снова. и базы писем
ных. В отличие от «офисной версии» В большинстве случаев это свидетель- Иногда происходит случайное удале-
Outlook, к которой Microsoft предостав- ствует о переполнении одного или нес- ние либо повреждение одного из фа-
ляет встроенные средства восстанов- кольких файлов почтовой базы. Причи- лов почтовой базы. В данном слу-
ления почтовых баз и архивов – утили- на подобного заключается в том, что чае восстановление возможно только
ты scanpst и scanost (найти их обычно программа не может работать с файла- с сервера или из бэкапа. Тем не менее
можно в папке C:\Program files\Common ми более 1,99 Гб. Решение – регуляр- и здесь есть «подводные камни». Про-
files\system\msmapi\1033, если у вас ус- ное сжатие папок. В случае если этого грамма, скорее всего, не примет заново
тановлен Outlook 2003, или C:\Program мало, следует создать структуру под- удаленные письма с сервера, так как
Files\Microsoft Office\Office12, если у вас папок (например, по месяцам или квар- «знает», что они уже были получены.
используется Outlook 2007), в Express- талам) и перенести письма в соответс- Заставить «забыть» ее о них доволь-
версии подобных инструментов нет. твующие подпапки. В результате вмес- но просто – достаточно найти в про-
По умолчанию банк сообщений то одного большого файла вы полу- филе пользователя файл pop3uidl.dbx
Outlook Express располагается в лич- чите несколько маленьких. Но что же и удалить его. Также встречается пов-
ном профиле пользователя (в каталоге делать, если неприятность уже слу- реждение файла Folders.dbx, приводя-
C:\Documents and Settings\<имя пользо- чилась? Во-первых, следует прекра- щее к нарушению структуры подпапок
вателя>\Local Settings\Application Data\ тить все попытки получения или от- либо исчезновению некоторых из них
Identities\{уникальный идентификатор}\ правки почты до момента полного ус- из списка доступных. После удаления
Microsoft\Outlook Express). При необхо- транения сбоя. Это предотвратит воз- или перемещения данного файла и пе-
димости его расположение может быть можное повреждение файлов почто- резапуска Outlook Express все подпап-
изменено в параметрах программы на вой базы и потерю всех писем в про- ки переносятся на самый верхний уро-
вкладке «Обслуживание». База пи- блемной папке при приеме или отправ- вень и теряют свою иерархию. Одна-
сем представляет собой набор фай- ке небольших писем. После этого сле- ко «потерянные» подпапки после та-

26
администрирование
кой операции появляются и после ручного восстановления через стандартную утилиту «Адресная книга». К сожале-
иерархии продолжают быть доступны. нию, в отличие от данной утилиты Outlook Express не мо-
жет отображать более 999 контактов. Поэтому для возоб-
Самопроизвольное удаление писем новления работы данной функции вам потребуется удалить
с сервера один или несколько контактов.
При использовании общего почтового ящика письма уда-
ляются с сервера после получения их первым пользовате- Печать писем в неверной кодировке
лем, несмотря на наличие флажка «оставлять копии пи- Несмотря на то что решение кажется очевидным, оно мо-
сем на сервере». Данная проблема, к примеру, наблюда- жет оказаться безрезультатным. Многие пользователи по-
лась при получении писем с сервера Communigate Pro пос- лагают, что Outlook Express имеет свой интерпретатор HTML
ле изменения адреса электронной почты в настройках учет- для создания и обработки писем в HTML-формате. На са-
ной записи Outlook Express. Устранить данный сбой можно, мом деле для этой задачи в некоторых случаях использу-
удалив и создав учетную запись заново. При этом можно ется интерпретатор Internet Explorer, которому при печати
ее предварительно экспортировать в файл, а после удале- и передается письмо в неизменном виде. Если в Internet
ния импортировать обратно. Explorer вместо варианта «Автовыбор» выбрана какая-то
конкретная кодировка по умолчанию, то при несоответс-
Потеря писем твии кодировки письма установленному в Internet Explorer
Иногда происходит исчезновение большого количества пи- варианту может возникнуть подобная проблема. Устранить
сем, как правило, за непрерывный промежуток времени (на- ее можно путем включения опции «Автовыбор» через ме-
пример, с 3 марта по 7 апреля). Обычно причиной подоб- ню «Вид → Кодировка» в Internet Explorer.
ного исчезновения писем является сбой при сжатии почто- В Windows Vista на смену Outlook Express пришел новый
вой базы, в результате которого часть писем маркируется клиент – Windows Mail («Почта Windows»). В нем изменился
как удаленные. Восстановить письма в таком случае мож- формат почтовых баз, и теперь все письма хранятся инди-
но лишь с помощью ПО сторонних разработчиков. Конечно, видуально. В результате некоторые описанные здесь про-
если вы понимаете структуру dbx-файлов, можно попробо- блемы были устранены. Однако, разумеется, не обошлось
вать восстановить письма вручную, но это весьма трудоем- и без новых проблем.
кий и сложный процесс. Чтобы подобного не происходило, Я надеюсь, что описанные здесь способы решения
следует постоянно следить за объемом свободного диско- проблем помогут вам справиться с трудностями при рабо-
вого пространства и не прерывать процесс сжатия папок. те с электронной почтой.

Обрывки писем
Корпоративным пользователям множество неудобств так-
же доставляет неверная обработка разбитых на части пи-
сем, если на стороне отправителя и получателя использу-
ются разные почтовые программы, например, письмо раз-
бито Outlook Express, а у получателя Lotus Notes либо у от-
правителя Mozilla Thunderbird, а у адресата Outlook Express.
В идеале функция разбивки больших писем позволяет в не-
которых случаях обойти ограничение на максимальный раз-
мер письма, но очень часто это порождает лишние трудно-
сти. В случае несовместимости получатель видит множес-
тво пронумерованных нечитаемых писем. Самым прос-
тым способом было бы попросить отправителя отключить
функцию разбивки сообщений и переслать письмо зано-
во. Но как быть, если это по какой-то причине невозможно?
В таком случае придется «собирать» письмо вручную. Со-
здайте в «блокноте» новый текстовый файл и скопируйте
в него из окна почтовой программы содержимое всех час-
тей письма. Делать это нужно последовательно, не нару-
шая порядка частей сообщения и не делая пробелов. Пос-
ле этого файл следует сохранить с расширением .eml и от-
крыть программой Outlook Express либо импортировать
в стороннюю почтовую программу.

Исчезновение списка контактов


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

№12, декабрь 2008 27


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

Белые списки
в DSPAM

Михаил Кондрин
Как позволить пользователям настраивать индивидуальные белые списки в DSPAM?
Белые списки списках, для конечного пользователя независимо от выставляемых оценок,
и статистические этот вариант оказывается вполне удоб- что гарантирует сохранность писем
спам‑фильтры ным. Использование статистических даже в случае ошибок, допускаемых
Использование статистических спам- фильтров на стороне сервера в отли- фильтром. По сравнению с greylisting,
фильтров на почтовом сервере в пос- чие от клиентских (например, встроен- когда разные почтовые серверы до-
леднее время завоевало большую по- ных в почтовую программу) позволяет статочно гибко подходят к интерпрета-
пулярность среди системных админис- повысить точность оценок, выставляе- ции ошибок 4xx, что зачастую (при не-
траторов. Несмотря на то что такое ре- мых фильтром, за счёт использования настроенных белых списках) приво-
шение оказывает серьёзную нагрузку большего объёма данных в силу зако- дит к потере писем, этот вариант да-
на вычислительные ресурсы сервера на больших чисел. Кроме того, как пра- же предпочтительнее для пользовате-
и не даёт снижения паразитного (спа- вило, статистические фильтры обычно лей, которые параноидально относят-
мерского) трафика в отличие от реше- конфигурируются таким образом, что ся к вероятности пропажи своей кор-
ний основанных, к примеру, на серых письма доставляются пользователю респонденции. Безусловно, статисти-

28
администрирование
ческие фильтры не являются панацеей, но в комбинации с users), но достучаться через него до сотрудников Sensory
другими средствами они серьёзно снижают привлекатель- Networks (если таковые существуют) бесполезно.
ность вашей почтовой системы для спамеров. Вообще говоря, давно уже назрела необходимость фор-
На страницах журнала [1] подробно описывались функ- ка проекта (тем более что юридических препятствий к это-
циональность и особенности настройки одного из популяр- му нет, так как DSPAM по-прежнему остаётся под лицензи-
ных серверных спам-фильтров DSPAM [2], так что на этом ей GPL), к чему, кстати, призывал и сам автор, оговорив-
вопросе можно не останавливаться. Вместе с тем многих шись, однако, что сам он этого делать не хочет и не может,
пользователей и администраторов смущает отсутствие будучи связанным контрактом. Вопрос заключается только
в DSPAM принудительных белых списков (whitelisting), при- в отсутствии желающих, и хотя бурные дискуссии на эту те-
чём это ограничение для некоторых является весомым ар- му время от времени возникают в списке рассылки, но пока
гументом, чтобы отказываться от DSPAM в пользу самоде- нового лидера проекта найти не удалось. Это ещё не поз-
льных решений [3]. Хотя в качестве опции в DSPAM есть воз- дно сделать, пока у пользователей ещё не пропал инте-
можность вести автоматические белые списки, когда адре- рес к проекту. Понятно также, что время тут играет против,
сат заносится в белый список после получения от него оп- и сроки уже, честно говоря, поджимают.
ределённого количества неспамных писем (обычно 10), при Так что дальнейший текст предназначен в основном для
том что пользователи ни разу не заносили его корреспон- тех администраторов, у которых уже имеется установлен-
денцию в спам. Но обычно под белыми списками подразу- ный DSPAM и у которых даже после прочтения предыдуще-
меваются списки, создаваемые заранее вручную пользо- го абзаца не появилось желания срочно снести его и уста-
вателем, со списком корреспондентов по умолчанию «хоро- новить SpamAssassin (для свежих инсталляций в данный
ших». В этом смысле действительно DSPAM такую функци- момент это наиболее предпочтительный вариант). Пред-
ональность не предоставляет, и (более того) есть несколь- полагается, что используется версия DSPAM из CVS, кото-
ко вполне весомых аргументов, почему whitelisting, выпол- рая в разных дистрибутивах обозначается как 3.8.1-3.8.4.
ненный в таком стиле, вреден. Например, как разрешить Анонимный доступ к CVS открыт, поэтому при отсутствии
конфликт с письмом, которое при разборе идентифициро- подходящей бинарной версии в дистрибутиве можно ска-
вано как спам, но его отправитель в белом списке (ситуа- чать исходный код:
ция, которая в автоматическом whitelisting крайне малове-
роятна)? Может быть, специалисты по статистическому ана- cvs -z3 -d :pserver:cvs@cvs.nuclearelephant.com: ↵
/usr/local/cvsroot login
лизу и могут предложить хороший вариант решения этой cvs -z3 -d :pserver:cvs@cvs.nuclearelephant.com: ↵
проблемы, но, вообще говоря, искусственное вмешатель- /usr/local/cvsroot co dspam
ство в процесс тренировки спам-фильтра может серьёзно
сказаться на его точности. Так что, по мнению противников и скомпилировать dspam используя скрипт configure:
белых списков, к числу которых относится и автор DSPAM
Jonathan Zdziarski, эта функциональность представляет со- ./configure --sysconfdir=/etc \
--prefix=/usr \
бой tick-feature, т.е. нечто, что пользователи хотят видеть в --with-dspam-home=/var/dspam \
системе, но чем они реально не пользуются (или пользуют- --with-storage-driver=mysql_drv \
--with-mysql-includes=/usr/include/mysql \
ся, но без особой выгоды для себя). --with-mysql-libraries=/usr/lib/mysql \
Вместе с тем, белые списки легко могут быть реализо- --enable-preferences-extension \
--enable-virtual-users \
ваны в DSPAM, так почему бы не предоставить пользовате- --enable-debug \
лям то, чего они добиваются, постаравшись при этом мини- --enable-verbose-debug \
--enable-daemon
мизировать вред, который они могут себе нанести.
Но сначала о грустном. К сожалению, перспективы
дальнейшего развития DSPAM представляются достаточ- DSPAM в качестве LMTP-фильтра
но туманными. В мае 2007 года автор продал все права Реализация белых списков в DSPAM не является универ-
на DSPAM (вместе с домашним сайтом проекта) компании сальным решением, а привязана к конкретной системе,
Sensory Networks. Перед самой продажей был выпущен но- так что мне придётся вначале описать способ установки
вый (последний официальный на сегодняшний день) релиз DSPAM, тем более что он в моем случае существенно отли-
3.8.0, но поскольку, по всей видимости, он делался в спеш- чается от описанного, например, в статье [1]. «Общеприня-
ке, то результат получился не слишком удачным. Как впос- тый способ» состоит во встраивании DSPAM в виде филь-
ледствии сам автор жаловался в списке рассылки, он был тра в MailTransferAgent, а его тренировка пользователем за-
введён в заблуждение относительно намерений этой ком- ключается в пересылке писем на специальные адреса ли-
пании и рассчитывал, что она будет продолжать развитие бо же использовании веб-интерфейса. Однако мне боль-
проекта. Однако этого не случилось. Проект фактически за- ше нравится способ, предложенный в [4], когда DSPAM ус-
морожен. Сама компания разработкой не занимается, лишь танавливается между MTA и IMAP4-сервером, что позволя-
в начале 2008 в CVS проекта были внесены патчи, создан- ет как бы «приблизить» DSPAM к конечному пользователю,
ные сообществом пользователей DSPAM, но с тех пор вся- делая, с одной стороны, тренировку фильтра более удобной,
кая активность прекратилась, несмотря на то, что в насто- а с другой, не привязывая пользователя к конкретному поч-
ящее время снова образовалась разрозненная масса за- товому клиенту. Фактически тренировка DSPAM сводится
платок, которую стоило бы добавить в проект. На страни- к перемещению писем между IMAP-каталогами, что может
це [2] работает пользовательский список рассылки (dspam- быть выполнено в любом мало-мальски продвинутом поч-

№12, декабрь 2008 29


администрирование
Так что, как видно из р и сун -
ка cо снимком почтового клиента
Thunderbird, для очистки каталога
Junk достаточно будет нажать кнопку
Compact (которая выполняет IMAP‑ко-
манду expunge в соответствующем ка-
талоге на сервере). Очень удобно! Хотя
пользователь может сам выбрать, ка-
ким образом ему помечать спам, на-
пример, не перемещая его и не удаляя,
а просто используя стандартную пик-
тограмму Thunderbird «Junk» (addflag
«Junk»;). Стоит ещё упомянуть в этой
связи, что для Thunderbird есть хоро-
шее расширение, позволяющее ре-
дактировать sieve-скрипты [7], прав-
да, и в этом случае лучше всё же ис-
Результат работы статистического фильтра в окне Thunderbird пользовать версию из CVS.
Таким образом два звена цепочки –
товом клиенте. К его недостатку можно отнести тот факт, Cyrus-IMAP и Postfix уже подготовлены для фильтрации спа-
что он работает только для протокола IMAP4. ма. Осталось только соединить их с помощью демона dspam.
В руководстве [4] разобран способ установки DSPAM Его настройка приведена в листинге, который я комменти-
в качестве LMTP-фильтра между Sendmail и Cyrus-IMAP, ровать не буду, отсылая читателя к статье [1]:
т.е. полученное письмо передаётся по LMTP-протоколу
от MTA к DSPAM, который проверяет письмо и в зависи- Home /var/dspam
мости от выставляемых оценок пересылает его по LMTP- Trust root
протоколу в один из пользовательских почтовых ящиков Trust mail
Trust cyrus
Cyrus-IMAP (с помощью «+» адресации). Эта схема была
несколько модифицирована мною, во-первых, Sendmail за- StorageDriver /usr/lib/libmysql_drv.so
менён на Postfix. При этом конфигурация, описанная в ста- # --- Cyrus-IMAP ---
тье [5], применима в данном случае практически без из- DeliveryHost /var/imap/socket/lmtp
DeliveryProto LMTP
менений. Единственный параметр, который требуется из-
менить в конфигурационном файле /etc/postfix/main.cf, – # --- MySQL ---
MySQLServer /var/run/mysql/mysql.sock
это замена стандартного транспорта, по которому отсы- MySQLPort 3306
лаются письма: MySQLUser dspam
MySQLPass _dont_use_this_pass_
MySQLDb dspam
mailbox_transport = lmtp:unix:/var/dspam/dspam.sock
# --- DSPAM daemon/client ---
ServerMode auto
Это, как вы понимаете, просто название именованного ServerParameters "--deliver=innocent,spam"
ServerDomainSocketPath "/var/dspam/dspam.sock"
сокета, прослушиваемого демоном dspam.
Во-вторых, вместо использования «+» адресации при ClientHost /var/dspam/dspam.sock
отсылке проверенных писем в моем варианте DSPAM прос- # --- Preferences ---
то вставлял оценки в письма в виде нескольких заголовков, ...
Preference "spamAction=deliver"
в расчёте на то, что пользователь сможет либо отфильтро- Preference "signatureLocation=message"
вать спамные письма в почтовом клиенте, либо использо- Feature whitelist
...
вать sieve-shell в Cyrus-IMAP. Эта группа заголовков име-
ет такой вид: Ничего сложного, каждый из блоков отвечает за на-
X-DSPAM-Result: Spam
стройку именованных сокетов, с одного из которых dspam
X-DSPAM-Processed: Sun Sep 7 17:56:35 2008 получает письма на проверку от Postfix, а на другой пе-
X-DSPAM-Confidence: 0.9158 редаёт уже проверенные письма серверу Cyrus-IMAP.
X-DSPAM-Probability: 1.0000
Свои данные DSPAM хранит в базе данных MySQL, что от-
Таким образом, для перехвата такого рода писем, пе- личается от случая, рассмотренного в статье [1], где был
ремещения их в специальный Junk-каталог и маркирова- использован сервер PostgresSQL, но различия в их нас-
ния их как «удалённых» можно воспользоваться следую- тройке применительно к DSPAM минимальны и несущес-
щим sieve-скриптом [6]: твенны.
Также блок Preferences может быть дополнен в соответс-
require ["regex", "relational", "fileinto", "envelope", ↵ твии с вашими предпочтениями, я выделил только необхо-
"imapflags"];
if header :contains ["X-DSPAM-Result"] "Spam" димые опции. Как уже говорилось, независимо от выстав-
{addflag "\\Deleted"; fileinto "Junk"; stop;} ленных оценок письмо будет доставлено получателю.

30
администрирование
Кроме того, разумеется, включена функция автомати- while 1 {
if { [::imap4::processline $imap] == "*" } {
ческого whitelisting, без которого нам не удастся реализо- lappend userslist [lindex [split [lindex ↵
вать принудительный whitelisting, и добавлена опция, ука- $::imap4::info($imap,lastline) end] "."] end-1]
} else {
зывающая, что метки/signature, которыми dspam помечает break
проверенные письма, располагаются в теле письма. Это }
}
связано с ошибкой в последних версиях DSPAM, которая
не позволяет правильно читать сигнатуры, вставленные в foreach user [lsort -unique $userslist] {
#Обработка ящиков spam и ham
заголовки писем. Сами же метки необходимы для того, что- foreach action [list "spam" "innocent"] {
бы DSPAM мог найти данные вычисления оценки для пись- if { $action == "spam" } {
set d ${otherpref}.${user}.${spambox}
ма в базе данных, если потребуется пересмотреть выстав- } else {
ленную оценку. set d ${otherpref}.${user}.${hambox}
}
Теперь запуск DSPAM в виде демона с помощью ко- ::imap4::select $imap \"$d\"
манды: set mn [::imap4::mboxinfo $imap exists]
for {set i 1} {$i <= $mn} {incr i} {
#извлекаем отдельные письма
/usr/bin/dspam --daemon & ::imap4::fetch $imap $i flags
if { [lsearch [::imap4::msginfo $imap $i flags] ↵
Deleted ] >= 0 } {
позволяет сортировать корреспонденцию на спам и неспам. continue
}
Но это ещё только полдела, поскольку нужно дать возмож- if { ([lsearch [::imap4::msginfo $imap ↵
ность пользователю обучать статистический фильтр. $i flags] Flagged ] >= 0)&($action == ↵
"innocent") } {
Это достигается с помощью создания двух IMAP-ката- whitelist_message $imap $i ${user}@${domain}
логов spam и ham в почтовых ящиках каждого из пользо- }
processmail [get_message $imap $i] ↵
вателей и периодической их проверкой скриптом, который ${user}@${domain} $action
запускает тренировку dspam. Идея состоит в том, что если ::imap4::request $imap "store $i +flags \\deleted"
::imap4::getresponse $imap
пользователь считает оценку, выставленную dspam пись- }
му неправильной, то он перемещает false-negatives (пись-
if { $action == "spam" } {
мо, ошибочно классифицированное как неспам) в папку #очистка ящика spam
spam, каковым оно и является, а false-positives (легальное ::imap4::request $imap "expunge"
::imap4::getresponse $imap
письмо, ошибочно классифицированное как спам) в папку }
ham. Для периодической проверки этих каталогов на сто- }
}
роне сервера я использую скрипт traindspam.tcl:
close $imap
#!/usr/bin/tclsh
set imapuser "dspam"
set imappasswd "_dont_use_this_pass_" Скрипт читает каталоги spam и ham, используя протокол
set dspam "/usr/bin/dspam" IMAP, для чего необходим файл imap4.tcl, который входит
set imaphost "mail.myrealm.ru"
set domain "myrealm.ru" в состав tcllib [8]. Кроме того, чтобы скрипт мог прочитать
эти каталоги, он должен каким-то образом зарегистриро-
set spambox "spam"
set hambox "ham" ваться на сервере Cyrus-IMAP (в данном скрипте – под име-
set otherpref "Other" нем пользователя dspam), и, вообще-то говоря, каталоги
#Пользовательские параметры оканчиваются здесь spam и ham должны быть, как минимум, доступны для чте-
ния этому пользователю. В конфигурации, рассмотренной
source /usr/local/bin/imap4.tcl
в статье [5], для этой цели достаточно создать принципала
proc processmail { message username spam } { dspam в базе данных Kerberos. Необходимо также отредак-
#Обучение dspam
global dspam тировать начальную часть скрипта, указав там имя этого
set f [open "| $dspam --client --user $username ↵ принципала и его пароль, и остальные параметры, чьё на-
--source=error --class=$spam --process" WRONLY]
fconfigure $f -encoding binary -buffering none ↵ значение понятно из названий переменных. Единственный
-blocking 0 неочевидный параметр – это otherpref, который соответству-
puts $f $message
flush $f ет параметру userprefix: Other из конфигурационного фай-
close $f ла /etc/imapd.conf и означает префикс, добавляемый к на-
}
званиям каталогов других пользователей, с точки зрения
proc get_message { stream num } { пользователя dspam (т.е. каталог ham пользователя johndoe
#формируем письмо из заголовков и тела письма
::imap4::fetch $stream $num header для dspam будет виден как Other.johndoe.ham).
set h [::imap4::msginfo $stream $num header] Принцип работы скрипта состоит в следующем. Подклю-
::imap4::fetch $stream $num text
set h2 [::imap4::msginfo $stream $num text] чившись к IMAP-серверу, он собирает список всех пользо-
return ${h}${h2} вателей, чьи подкаталоги доступны пользователю dspam.
}
Затем последовательно проверяется каждый из катало-
set imap [::imap4::open $imaphost] гов. Если в них обнаруживаются письма без флага \deleted,
::imap4::login $imap $imapuser $imappasswd
то такое письмо передается на вход программе dspam
#Собираем ящики, доступные $imapuser (см. функцию process_message), запущенной как клиент
::imap4::request $imap {list "" "*"}
демона dspam (ключ --client), в режиме исправления оши-

№12, декабрь 2008 31


администрирование
бок (ключ ‑‑source=error), и тип исправляемой ошибки оче- на сервере, тем самым уменьшив нагрузку на линию между
видным образом связан с каталогом, в котором это письмо клиентом и сервером. Однако преимущества DSPAM начи-
было обнаружено (--class=spam или --class=innocent). Потом нают сказываться, когда пользователи получают возмож-
письмо удаляется, т.е. просто помечается флагом \deleted, ность обмениваться накопленными данными и координи-
а каталог spam в итоге ещё и очищается, поскольку содер- ровать свои усилия в борьбе со спамом. В DSPAM это до-
жащиеся там письма для пользователя уж точно никакой стигается за счёт создания пользовательских групп (кон-
ценности не представляют. Заметьте, что в самом скрип- фигурационный файл /var/dspam/group). При этом сущест-
те содержится вызов функции whitelist_message, которая вуют два слабо пересекающихся способа.
как раз и заносит корреспондента в белый список, но об- Первый из них состоит в создании merged (смешанных)-
суждение этой темы я пока отложу. групп, когда статистика одного виртуального пользовате-
Массовое создание каталогов ham и spam можно вы- ля (т.е. этот пользователь должен присутствовать в табли-
полнить посредством приведённого ниже скрипта, кото- це dspam_virtual_uids), чьим именем названа группа, до-
рый использует диалоговый язык expect для вызова ин- бавляется к статистикам каждого из пользователей, вхо-
терактивной программы cyradm и с её помощью создаёт дящих в группу.
эти каталоги во всех зарегистрированных почтовых ящи-
ках, попутно выставляя подходящие права доступа к ним dummy:merged:user1@myrealm.ru,user2@myrealm@ru
пользователю dspam.
Синтаксис для всех групп выглядит однотипно – на-
package require Expect звание группы, разделитель-двоеточие, тип, снова разде-
spawn cyradm mail.myrealm.ru
set prompt "\.ru> $" литель и далее список пользователей, входящих в группу
expect { (можно использовать шаблон – «*», включающий всех поль-
-re $prompt
} зователей, и префикс-минус для исключения определён-
exp_send "lm user.*\r" ных пользователей), всё – без пробелов. В данном приме-
while 1 {
expect { ре статистика пользователя dummy даёт как бы базовый
-re {user\.([[:alnum:]]+)} { функционал, который позволяет любому новому пользо-
lappend users $expect_out(1,string)
} вателю, ещё не набравшему своей собственной статис-
-re $prompt { тики, после включения в группу достаточно эффективно
break
} фильтровать спам.
} Системный администратор может взять на себя под-
}
foreach v2 [lsort -unique $users] { держание данных пользователя dummy в актуальном со-
exp_send "cm user.${v2}.spam;cm user.${v2}.ham\r" стоянии, используя свою собственную статистику, напри-
expect {
-re $prompt мер с помощью утилиты dspam_merge:
}
exp_send "sam user.${v2}.spam dspam lrswd\r" dspam_merge mike@myrealm.ru -o dummy
expect {
-re $prompt
}
exp_send "sam user.${v2}.ham dspam lrsw\r" Другой вариант – включить пользователя dummy
expect { в inoculation (вакцинационную)-группу, которая позволяет
-re $prompt
} пользователям обмениваться результатами работы про-
} граммы dspam, запущенной в режиме вакцинации:

Что касается скрипта traindspam.tcl, то организовать его cat <vaccine-mail> | dspam --user dummy --class=spam ↵
--source=inoculation
периодический запуск можно, либо настроив crontab, либо
же непосредственно из Cyrus-IMAP (при этом скрипт будет В таком режиме информация заносится в базу дан-
работать под тем же пользователем и с теми же правами, ных с несколько иным статистическим весом, с тем чтобы
что и сам Cyrus-IMAP), отредактировав конфигурационный выработать у фильтра, если можно так сказать, «иммуни-
файл cyrus.conf файл и добавив в раздел EVENTS строчку, тет» на письма, подобные тем, что используются в качест-
которая вызывает этот скрипт раз в час: ве «прививки». Понятно, что такой режим следует исполь-
зовать, если вам попалcя в руки очень характерный образ-
EVENTS { чик спамерской почты и вас не смущает, что данные, по-
...
trainspam cmd="/usr/local/bin/traindspam.tcl" period=60 лученные в результате, будут продублированы в базе дан-
... ных для каждого пользователя, входящего в группу. При-
}
мер настройки вакцинационной группы:

Пользовательские группы в DSPAM vaccine:inoculation:dummy,johndoe@myrealm.ru, ↵


mike@myrealm.ru
Пока что статистический фильтр, сконфигурированный та-
ким образом как показано выше, не даёт никаких преиму- Обычно используется следующий популярный приём
ществ перед десктопными фильтрами, встроенными, на- (так называемая внешняя вакцинация – external inoculation)
пример, в такие почтовые клиенты, как Thunderbird. Раз- для полуавтоматической тренировки фильтров DSPAM
ве что с помощью Sieve можно организовать фильтрацию в своего рода двухтактном режиме. Фиктивный пользова-

32
администрирование
тель johndoe@myrealm.ru подписывается на всевозможные этому для систем с небольшим объёмом дискового про-
спам-рассылки, при этом весь приходящий на его имя спам странства более приемлемым окажется альтернативный
передаётся (с помощью alias или transport_map) на вход вариант с shared (разделяемыми) группами:
скрипту с вызовом dspam в режиме вакцинации. Таким об-
разом статистика, набранная в результате вакцинации, ста- shared-user:shared:user1@myrealm.ru,user2@myrealm.ru
новится доступной пользователю dummy (через inoculation
группу), а затем от пользователя dummy через одноимённую Фактически в данном случае все пользователи соби-
merged-группу и всем пользователям этой группы. рают статистику для одного виртуального пользователя,
Дополнительного увеличения точности оценок, вы- чьим именем названа группа, и данные именно этого поль-
ставляемых dspam, можно добиться за счёт внедрения зователя используются при анализе почты каждого из учас-
classification (классификационных) – групп. Они использу- тников. Хотя этот тип групп можно использовать вместе
ются в том случае, если данные пользователя, на чьё имя с тремя видами групп, перечисленными ранее, но пользо-
пришло письмо, не позволяют сделать вывод: спам это или ватель из shared группы не может входить ни в какую дру-
нет. В таком случае письмо будет проверено, используя дан- гую. Таким образом следует выбирать между предоставле-
ные всех пользователей в классификационной группе, и ес- нием возможности пользователю вести собственную ста-
ли окажется, что хотя бы в одном случае оно признано спа- тистику или же экономией места на диске.
мом, то таковым оно и будет признано в итоге. У shared-групп есть ещё один недостаток – это борьба
Эти три типа групп можно комбинировать в любых вари- с «друзьями, которые оказываются хуже врагов», т.е. с поль-
антах (единственное требование, чтобы имена групп не сов- зователями, которые безответсвенно подходят к трениров-
падали), например, распределять пользователей по груп- ке фильтра и тем самым портят статистику для всей группы.
пам в соответствии с типом корреспонденции (условно го- Если для merged-групп эта проблема решается автомати-
воря, для бухгалтеров одна merged группа, для програм- чески, поскольку они выступают только в роли потребите-
мистов – другая), причём никаких ограничений для добав- лей, а «производителями» являются inoculation-группы и ад-
ления пользователей в любую из этих групп нет. При этом министраторы, имеющие доступ к dspam_merge, то любой
за подобную гибкость настроек приходится платить – в дан- пользователь из shared-группы имеет полную свободу обу-
ном случае дисковым пространством, поскольку для каж- чать dspam тем трюкам, каким ему захочется. Для предо-
дого из пользователей dspam ведёт отдельную статистику, твращения этого в DSPAM имеются управляемые (managed)
что существенно сказывается на объёме баз данных. По- разделяемые группы, где к тренировке фильтра допускает-

Реклама

№12, декабрь 2008 33


администрирование
ся только администратор группы, чьим именем она назва- кого сорта тоже можно каким-то образом «украсить», чтобы
на. Согласно документации настроить такую группу мож- они выделялись во входящем ящике почтового клиента.
но следующим образом: Теперь решение задачи очевидно – для занесения отпра-
вителя в пользовательский белый список достаточно просто
group-admin:shared,managed:user1,user2 с помощью SQL-запроса найти соответствующий имени от-
правителя токен в базе данных и исправить в найденной за-
Кроме того, к ещё одному недостатку shared-групп мож- писи поля innocent_hits и spam_hits! Остальное – техничес-
но отнести ещё и тот факт, что для них не будет работать кие детали. Во-первых, токены хранятся в таблице не в ви-
рецепт создания белых списков, к рассмотрению которого де строки, а в виде числа, представляющего собой её конт-
(после такого долгого вступления) мы сейчас и перейдём. рольную сумму, вычисленную по алгоритму CRC‑64‑ISO [9].
Это упрощает поиск в таблице (поле token является также
Организация белых списков в DSPAM первичным индексом), и кроме того даёт несколько боль-
Идея метода состоит в обмане автоматического фильтра шую приватность, поскольку обратное восстановление
и маскировки писем, чей отправитель вручную помечен строки по контрольной сумме невозможно. Алгоритм CRC –
пользователем как легальный, под письма занесённые это, конечно же, не хэш-функция, но для слов естественно-
фильтром в автоматический белый список. В общем-то, го языка вероятность коллизий невелика, зато его гораз-
именно поэтому для метода необходим параметр Feature до легче реализовать даже на скриптовом языке, вроде ис-
«whitelist» в конфигурационном файле, без него он рабо- пользуемого нами tcl. Но даже этого нам делать не потре-
тать не будет. буется, поскольку в состав пакета DSPAM входит утилита
Рассмотрим поподробнее, как происходит занесение dspam_crc, которая как раз и вычисляет требуемую конт-
письма в белый список. При обработке письма его тело рольную сумму. Во-вторых, поскольку потребуется выпол-
и заголовки разбиваются по словам (токенам), которые за- нять непосредственное редактирование баз данных (сер-
носятся в базу данных DSPAM в таблицу dspam_token_data. вером которых, напомню, у нас служит MySQL), то нам по-
Её структура достаточно очевидна, она содержит колонки требуется какой-нибудь интерфейс доступа к этим базам
uid, token, innocent_hits, spam_hits, last – которые обознача- данных. Можно было бы воспользоваться соответствующей
ют идентификатор получателя письма, сам токен, сколько библиотекой для tcl [10], но для наших целей, поскольку за-
раз он встречался в легальных и спамных письмах, а так- прос будет не очень сложным, это слишком мощное сред-
же дату, когда он последний раз попадался. Идентифика- ство, и можно будет обойтись вызовом консольной програм-
тор связан с именем получателя письма согласно таблице мы mysql из скрипта. Так что теперь можно привести упо-
dspam_virtual_uids, которая как раз состоит из всего двух ко- мянутую выше функцию whitelist_message, которую нужно
лонок – uid и username. Данные, касающиеся всего письма будет вставить в скрипт traindspam.tcl:
целиком, и результаты вычислений оценки для этого пись-
ма собраны в отдельной таблице – dspam_signature_data, proc whitelist_message { stream num user } {
#Добавление отправителя в белый список
которая обычно используется для пересчёта вероятностей ::imap4::fetch $stream $num from:
и тренировки фильтра, но нам она не понадобится. set h From*[string trim [::imap4::msginfo $stream ↵
$num from:]]
Когда включён автоматический whitelisting, то в табли- set h1 [lindex [regexp -inline {CRC: ([[:digit:]]*)} ↵
цу dspam_token_data заносится ещё один токен – это заго- [exec /usr/bin/dspam_crc $h]] 1]
exec mysql -u dspam -p privet_dont_use -h post ↵
ловок письма с именем отправителя и приставкой From*. dspam -e \\
При этом следует учитывать, что используется заголо- 'update dspam_token_data natural left join ↵
dspam_virtual_uids set innocent_hits=10000, ↵
вок полностью, а не только адрес отправителя, например, spam_hits=0 where token=$h1 and username=$user'
для моих писем он будет выглядеть как From*M.Kondrin }
<mkondrin@hppi.troitsk.ru>. Хотя это уменьшает вероятность
подделки «подписи» спамерами, но при отправке разными Запрос заключается в склейке таблиц dspam_virtual_uids
почтовыми программами это поле может меняться в зави- и dspam_token_data по общему индексу (uids), поиске в по-
симости от настроек клиента. Так что следует учитывать, лучившейся таблице нужной пары пользователь-токен и мо-
что один и тот же отправитель может фигурировать в спис- дификации колонок innocent_hits и spam_hits. Эта конструк-
ках под разными именами. ция «update-join» работает в 5-й версии MySQL, относитель-
Отправитель автоматически добавляется в белый спи- но более ранних я не уверен. В качестве innocent_hits вы-
сок, если от него получено 10 (зависит от настроек dspam) брано достаточно большое значение для того, чтобы потом
легальных писем и не одного спамного. Подсчёт этой ста- при необходимости можно было бы легко найти в базе дан-
тистики ведётся в полях innocent_hits и spam_hits. При этом ных записи, составляющие пользовательский белый спи-
получатель письма может заметить, что отправитель вне- сок. Поскольку поиск происходит одновременно по имени
сен в белый список, по изменившимся заголовкам, допи- пользователя и токену, то именно из-за этого нельзя ис-
сываемым к письму фильтром: пользовать этот трюк для пользователей, входящих в shared-
X-DSPAM-Result: Whitelisted
группу. Действительно, имя пользователя скрипт получает
X-DSPAM-Processed: Wed Oct 22 16:08:08 2008 из названия обрабатываемого почтового ящика и передает
X-DSPAM-Confidence: 0.5203 его в виде параметра user функции whitelist_message. Вы-
X-DSPAM-Probability: 0.0000
яснить, принадлежит ли этот пользователь shared-группе
Так что с помощью изменения sieve-фильтра письма та- и узнать имя этой группы, чтобы использовать его для по-

34
администрирование
иска в таблице, можно только с помощью синтаксическо- ["X-DSPAM-Probability"] "0.5", ↵
header :contains ["X-DSPAM-Result"] "Whitelisted")
го разбора файла /var/dspam/groups, что сложно и не всег- {fileinto "ham"; addflag "\\Flagged"; keep;}
да реализуемо, хотя бы из-за несовместимых прав досту- if header :contains ["X-DSPAM-Result"] "Whitelisted"
{addflag "\\Flagged"; stop;}
па. Хотя, конечно же, если отказаться от поддержки белых
списков, индивидуальных для каждого из пользователей, Тут нужно только уточнить, что модуль, обеспечиваю-
то это ограничение на shared-группы нетрудно обойти. щий операции сравнения (relational [12]), является не впол-
Теперь остается придумать способ, как разрешить поль- не стандартным, хотя он присутствует в Cyrus-IMAP, но он
зователю заносить адресатов в белый список. Можно было может не поддерживаться другими реализациями sieve.
бы создать ещё один IMAP-каталог для этой цели, но в при- Кроме того, сравнение в данном случае – это не сравне-
веденном выше скрипте traindspam.tcl используется другой ние действительных чисел (sieve – слишком ограниченный
способ. Процедура занесения отправителя письма в бе- язык, и понятия действительного числа там нет), а алфавит-
лый список запускается после того, как получатель письма ное упорядочение, но поскольку DSPAM выставляет оцен-
скопирует это письмо в ящик ham и пометит его флажком ки в фиксированном формате, то результат в обоих случа-
\Flagged, с тем чтобы отличать эти письма от false-negatives, ях получается одинаковым.
не требующих помещения в белый список. Наличие этого Таким образом, с помощью нескольких скриптов и од-
флага требуется по стандарту IMAP4 [11] и, следовательно, ного SQL-запроса нам удалось добавить недостающую
должно поддерживаться всеми IMAP-серверами и почто- функциональность DSPAM, реализовав там индивидуаль-
выми клиентами. Единственная сложность – определить, ные белые списки, пополнение которых находится в веде-
как он называется в почтовом клиенте. Например, в ранних нии пользователей. Можно было бы ещё продолжать усо-
версиях Thunderbird письма, помеченные таким флажком, вершенствование нашего фильтра и, например, отредак-
бесхитростно назывались flagged и отображались с соот- тировать скрипт traindspam.tcl, так чтобы письма из катало-
ветствующей пиктограммой. Однако в версиях начиная c 2.0 га spam, помеченные флажком, использовались для вак-
флаг прeвратился почему-то в звезду (star), добавить кото- цинации фильтра, или организацию запуска этого скрип-
рую можно через пункт меню «Message → Mark → Add star» та не периодически, а непосредственно в момент переме-
или щелкнув на соответствующей колонке в окне заголов- щения письма в соответствующий каталог (в Линуксе это
ков почтового ящика. можно было бы осуществить средствами inotify), но я ос-
Поставленную нами задачу реализации индивидуаль- тавляю эти задачи читателю. Кроме того, хотелось бы ещё
ных белых списков можно уже считать решённой, но ос- напомнить о сложной ситуации, в которой сейчас оказал-
талось наложить ещё один слой полировки и отредакти- ся проект DSPAM, и при наличии желания и навыков при-
ровать пользовательский sieve-скрипт. Раз мы использу- нять участие в его спасении.
ем флаги для отметки писем, требующих занесения в бе-
лый список, то почему бы не применять ту же символи- 1. Супрунов С. Настраиваем DSPAM – ваш личный спам-фильтр.
ку и в обратном направлении и не выставлять этот флаг //Системный Администратор, №8, 2005 г. – С. 24-34 (http://
для писем, полученных от корреспондентов, которые уже www.samag.ru/cgi-bin/go.pl?q=articles;n=08.2005;a=04).
внесены в белый список. Тем более тут нет ничего слож- 2. Официальный сайт DSPAM – http://dspam.nuclearelephant.com/
ного, просто добавляем ещё одну проверку значения заго- index.shtml.
ловка. Более трудный – это вопрос, поставленный в нача- 3. Литвинов П. Фильтруем спам в Exim с помощью SpamProbe.
ле статьи, а именно: что делать с письмами, помещёнными //Системный Администратор, №5, 2008 г. – С. 50-52.
в белый список, но при этом классифицированных филь- 4. Arnaldo Viegas de Lima. The Sendmail + DSPAM + Cyrus HOWTO.
тром как спам? В качестве одного из вариантов – автома- How to Configure DSPAM 3.6 with Sendmail and Cyrus IMAP or How
тически помещать в каталог ham копию приходящих писем to create a spam protected, highly scalable and high performance
с высоким коэффициентом спамности (заголовок X-DSPAM- mail server. arnaldo@viegasdelima.com, 0.61 edition, Apr 2006.
Probability больше  0.5), но при этом с оценкой «Whitelisted», 5. Кондрин М. Kerberos и электронная почта. //Системный Адми-
чтобы при следующей проверке скрипт traindspam.tcl улуч- нистратор, №11, 2006 г. – С. 62-67.
шил их показатели. Поскольку DSPAM при выставлении 6. T.Showalter. RFC3028 – Sieve: A Mail Filtering Language. Technical
оценок больше исходит от содержания письма, а не от то- report, Mirapoint, Inc., January 2001.
го, кем оно было отправлено (в конце концов имя отправи- 7. Интерфейс к Sieve для Thunderbird – http://sieve.mozdev.org/
теля можно и подделать), то эта ситуация не является чем- source.html.
то невероятным. К примеру, если ваш адресат из белого 8. Домашняя страница пакета Tcllib – http://www.tcl.tk/software/
списка использовал несколько слов, которые значительно tcllib.
чаще используются в спамных письмах, чем в легальных, 9. Статья в Wikipediа о CRC – http://en.wikipedia.org/wiki/Cyclic_
то это снизит оценку всего письма. То есть в данном случае redundancy_check.
стоило бы повысить оценку содержания письма и ещё раз 10. Интерфейс доступа к базам данных MySQL из tcl – http://
с помощью этого письма натренировать фильтр, с учетом www.xdobry.de/mysqltcl.
того факта, что автор – ваш хороший знакомый. Решает- 11. M.Crispin. RFC3501 – Internet Message Access Protocol – Version
ся это таким кодом, который нужно добавить в конец при- 4rev1. Technical report, University of Washington, March 2003.
ведённого выше sieve-скрипта: 12. W.Segmuller and B.Leiba. Request for Comments: 5231. Sieve
Email Filtering: Relational Extension. Technical report, IBM T.J.
if allof ( header :value "ge" ↵ Watson Research Center, January 2008.

№12, декабрь 2008 35


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

OpenBSD: особенности организации VPN


на основе набора протоколов IPsec

Максим Гришков
Одной из задач, с которыми приходится иметь дело системным администраторам
(администраторам сети) развивающихся многофилиальных бизнес-структур или организаций,
является обьединение территориально разграниченных подсетей в единую сетевую
инфраструктуру. Как правило, эта задача решается путем организации VPN (Virtual Private
Network), соединяющей разрозненные подсети защищенным каналом передачи данных поверх
существующего небезопасного канала (как правило, Интернета).

Н
а данный момент существует n Шифрование передаваемых дан- Выполнение вышеперечисленных
несколько протоколов, стан- ных – обеспечивается путем ис- задач связано с использованием специ-
дартизирующих процесс орга- пользования одного из следующих альных протоколов ESP (Encapsulating
низации VPN, и большое количест- алгоритмов: DES, 3DES, Blowfish, Security Payload) и AH (Authentication
во их программных реализаций. На- AES и др. Header). Различия между протокола-
иболее известными среди них явля- n Проверка целостности переда- ми заключаются в том, что протокол
ются: IPsec (FreeS/WAN, Openswan, ваемых данных – осуществляет- AH обеспечивает проверку целостнос-
strongSwan, KAME/racoon, Isakmpd), ся путем хеширования с исполь- ти, аутентификацию и защиту от вос-
SSL/TLS/OpenVPN (OpenVPN), PPTP/ зованием следующих алгоритмов: произведения (т.е. выполнение 2-4 за-
L2TP (poptop, OpenL2TP) и другие. MD5, SHA, SHA2 и др. дач), но при этом не обеспечивает шиф-
Среди перечисленных выше набор n Аутентификация участников об- рование/дешифрование передавае-
протоколов IPsec выделяется благо- мена данными – осуществляется мых данных. В свою очередь протокол
даря сочетанию высокого уровня за- с помощью протокола IKE (Internet ESP обеспечивает выполнение всех
щиты передаваемых конфиденциаль- Key Exchange), который обеспечи- четырех задач, включая криптографи-
ных данных и гибкости использова- вает аутентификацию участников ческую защиту передаваемых данных.
ния. Высокий уровень защиты дости- обмена, согласование параметров Возможно отдельное или комбиниро-
гается благодаря использованию на- защиты IKE и IPsec, а также выбор ванное использование протоколов.
дежных механизмов аутентификации ключей для алгоритмов шифрова- Существует два режима работы
и шифрования, гибкость – благодаря ния, используемых в рамках IPsec. IPsec: транспортный и туннельный.
использованию 3-го (сетевого) уров- Возможен также вариант установ- В транспортном режиме защите (шиф-
ня модели OSI, а следовательно, воз- ки этих параметров для каждой рованию и хешированию) подверга-
можности защиты протоколов высших из сторон вручную. ется только поле данных IP-пакета,
уровней, таких как TCP и UDP. Следу- n Защита от воспроизведения сес- при этом заголовок IP-пакета остает-
ет также отметить, что большой попу- сии передачи данных – обеспе- ся незащищенным, что облегчает мар-
лярностью пользуется протокол L2TP чивается путем создания так на- шрутизацию таких пакетов, однако это
или «L2TP поверх IPsec», который зываемых ассоциаций безопас- также делает доступной для злоумыш-
обеспечивает инкапсуляцию данных по ности или SA (Security Association) ленника информацию об объемах и на-
протоколу PPP и последующее шифро- и индексов SPI (Security Parameter правлениях передачи данных, располо-
вание средствами IPsec. Index), которые позволяют одно- жении участников сеанса. Транспор-
Основными задачами набора про- значно идентифицировать пакеты, тный режим применяется для соеди-
токолов IPsec являются: принадлежащие текущей сессии. нений типа «хост‑хост». В туннельном

36
администрирование
режиме защите подвергается IP‑пакет содержащиеся в IP-пакете. Заголовок
в целом. При этом заголовок IP-пакета пакета остается открытым, что позво-
формируется пограничным маршрути- ляет беспрепятственно подвергать та-
затором (одним из тех, которые непо- кие пакеты динамическому NAT-преоб-
средственно формируют «туннель») разованию. В случае NAPT-преобразо-
и не содержит информации о конк- вания ситуация аналогична туннельно-
ретном отправителе пакета. Все паке- му режиму, поскольку данные, включая
ты извне (т.е. из других подсетей VPN), и содержимое заголовка TCP- или UDP-
предназначенные для абонентов, нахо- пакета, зашифрованы.
дящихся внутри подсети, подключен- При NAT-T-преобразовании IP-паке-
ной к VPN, маршрутизируются погра- ты, защищенные IPSec, предваритель-
ничному маршрутизатору этой подсе- но упаковываются в UDP-пакеты и толь-
ти и только после расшифровки мар- ко после этого подвергаются NAT-пре-
шрутизатором пакет направляется по- образованию [5, 6].
лучателю. Туннельный режим применя- В данной статье речь пойдет о
ется при организации соединений типа isakmpd (ISAKMP/Oakley a.k.a IKE key
«сеть‑сеть», «хост‑сеть» и «хост-хост». management daemon) и ipsecctl, про-
Одним из существенных недостат- граммной реализации набора протоко-
ков IPsec является то, что IPsec-трафик лов IPsec, входящей в набор пользова-
не может маршрутизироваться через тельского программного обеспечения
шлюзы, осуществляющие NAT-преоб- (userland) ОС OpenBSD. Схема развер-
разования (Network Address Translation) тывания VPN приведена на рисунке.
пакетов без дополнительной инкапсу- На схеме изображен типовой сег-
ляции ESP в UDP (NAT-T, NAT Traversal мент VPN. Сети А и Б являются террито-
in the IKE). Это происходит из-за того, риально отделенными подсетями, вхо-
что в случае использования протоко- дящими в состав сетевой инфраструк-
ла АН в процессе передачи контроли- туры многофилиальной организации.
руется целостность данных (в том чис- Сеть А использует диапазон IP-адре-
ле и заголовка IP-пакета), а поскольку сов 10.10.10.0/24, а сеть Б – 10.10.99.0/24.
NAT изменяет заголовок пакета, то это Шлюзами для данных подсетей явля-
приводит к возникновению ошибок ются маршрутизатор сети А (IP-адрес:
при проверке целостности передава- ххх.ххх.ххх.1) и маршрутизатор сети Б
емых пакетов. Поэтому данные, пере- (IP-адрес: ххх.ххх.ххх.2) соответствен-
даваемые с использованием протоко- но. Шлюзы также являються погранич-
ла АН, не могут быть подвержены NAT- ными маршрутизаторами или конеч-
преобразованиям. ными точками (end-point) VPN. Защи-
При работе по протоколу ESP в тун- та передаваемых данных осуществля-
нельном режиме шифруются и дан- ется только между пограничными мар-
ные и заголовок IP-пакета, после этого шрутизаторами.
он повторно инкапсулируется в IP‑па-
кет. Заголовок IP остается нетронутым Организация VPN
и может быть преобразован. Такая си- с использованием
туация характерна только в случае ди- утилиты ipsecctl
намического NAT-преобразования, ког- Ipsecctl – специализированная ути-
да изменяется только IP-адрес источни- лита OpenBSD, предназначенная для
ка. Однако на практике очень часто при- управления потоками (flows), которые
меняется NAT-преобразование на уров- формируют правила, определяющие,
не портов (NAPT), при котором измене- какие пакеты необходимо обрабаты-
нию подвергается не только адрес ис- вать IPsec. Она позволяет создавать
точника в заголовке IP-пакета, но и порт VPN-соединения на основе набора пра-
источника, значение которого хранит- вил, хранящегося в конфигурационном
ся в заголовке пакета TCP/UDP. В таком файле /etc/ipsec.conf, а также отобра-
случае маршрутизатор, осуществляю- жать информацию о состоянии SPD
щий NAPT-преобразование, не может (Security Policy Database) и SAD (Security
получить доступ к содержимому заго- Association Database), куда, собственно,
ловка TCP- или UDP-пакета, и, следова- и загружается информация о потоках
тельно, не может осуществить преобра- и SA из конфигурационного файла.
зование. В транспортном режиме шиф- Для организации VPN между дву-
рованию подвергаются только данные, мя подсетями (см. рисунок) с ис- Реклама

№12, декабрь 2008 37


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

Общая схема развертывания VPN

пользованием ipsecctl необходимо выполнить следующие Генерация ключей аутентификации и шифрования тра-
действия: фика для маршрутизатора сети А:
n Активировать перенаправление пакетов (packet
forwarding) на пограничных маршрутизаторах. #dd bs=64 count=1 if=/dev/urandom | hexdump ↵
-e '64/1 "%02x"' >/etc/ipsec/akey.local
n Сгенерировать ключи для аутентификации и ключ для #dd bs=20 count=1 if=/dev/urandom | hexdump ↵
шифрования трафика (одинаковый для обеих сторон). -e '20/1 "%02x"' >/etc/ipsec/ekey
n Произвести обмен ключами аутентификации и копиро-
вание ключа шифрования трафика. В данном примере первая команда предназначена
n Задать соответствующие права доступа для файлов, для генерации ключа аутентификации длиной 64 байта
содержащих ключевые данные. (512 бит), результаты работы команды перенаправляют-
n Создать соответствующие SA (конфигурационный файл). ся в файл /etc/ipsec/akey.local. Вторая команда – для гене-
n Создать соответствующие конфигурации потоков (flow) рации ключа шифрования трафика /etc/ipsec/ekey длиной
в конфигурационном файле. 160 бит (20 байт).
n Добавить маршруты на удаленные подсети на погра- Для генерации ключа аутентификации для удаленно-
ничных маршрутизаторах. го маршрутизатора (маршрутизатора сети Б) необходимо
повторить первую команду, сменив имя файла для перена-
Активировать перенаправление пакетов на каждом правления вывода на akey.remote.
из маршрутизаторов можно, используя утилитой sysctl:
#dd bs=64 count=1 if=/dev/urandom | hexdump ↵
-e '64/1 "%02x"' >/etc/ipsec/akey.remote
#sysctl net.inet.ip.forwarding=1
Для обмена ключами между пограничными маршру-
или раскоментировав соответствующую строку в файле тизаторами можно использовать утилиту для удаленного
/etc/sysctl.conf: защищенного копирования файлов scp. Подразумевается,
что к удаленному маршрутизатору имеется доступ по про-
net.inet.ip.forwarding=1 токолу SSH (конфигурация по умолчанию в OpenBSD).

Перед тем как приступить к генерации ключей, необхо- #scp /etc/ipsec/akey.local ↵


xxx.xxx.xxx.2:/etc/ipsec/akey.remote
димо выбрать алгоритмы шифрования и хеширования, ко- #scp /etc/ipsec/akey.remote ↵
торые будут использоваться при организации VPN. Инфор- xxx.xxx.xxx.2:/etc/ipsec/akey.local
#scp /etc/ipsec/ekey xxx.xxx.xxx.2:/etc/ipsec/ekey
мацию о возможных вариантах можно получить на стра-
нице руководства IPSEC.CONF(5) или по адресу: http:// В данном примере копирование производилось с мар-
www.openbsd.org/cgi-bin/man.cgi. Для приведенного примера шрутизатора сети А на маршрутизатор сети Б с IP-адре-
были выбраны алгоритм хеширования hmac-sha2-512, под- сом ххх.ххх.ххх.2.
разумевающий использование ключа аутентификации дли- На файлы, содержащие ключевую информацию, кото-
ной 512 бит, и blowfish в качестве алгоритма шифрования рые находятся в директории /etc/ipsec на каждом из марш-
данных, использующий ключ длинной 160 бит. рутизаторов, необходимо установить соответствующие пра-
Для генерации псевдослучайных ключей можно вос- ва доступа.
пользоватся утилитой dd.
Ключи рекомендуется разместить в директории /etc/ #chmod 600 /etc/ipsec/{akey*,ekey}
ipsec (созданной предварительно), правами на которую вла-
деет только пользователь root. После завершения процедуры генерации ключей необ-
ходимо задать параметры VPN-соединения в файле /etc/
#mkdir -m 700 /etc/ipsec ipsec.conf.

38
администрирование
flow esp from 10.10.10.0/24 to 10.10.99.0/24 local ↵ #ipsecctl -sa
xxx.xxx.xxx.1 peer xxx.xxx.xxx.2 type require FLOWS:
esp from xxx.xxx.xxx.1 to xxx.xxx.xxx.2 spi ↵ flow esp in from 10.10.10.0/24 to 10.10.99.0/24 local xxx.xxx.xxx.2
0xc9dbb83d:0xabd9da39 \ peer xxx.xxx.xxx.1 type require
auth hmac-sha2-512 enc blowfish \ flow esp out from 10.10.99.0/24 to 10.10.10.0/24 local xxx.xxx.xxx.2
authkey file ↵ peer xxx.xxx.xxx.1 type require
"/etc/ipsec/akey.local:/etc/ipsec/akey.remote" \
enckey file ↵ SAD:
"/etc/ipsec/ekey:/etc/ipsec/ekey" esp tunnel from xxx.xxx. xxx.2 to xxx.xxx.xxx.l spi 0xabd9da39
auth hmac-sha2-512 enc blowfish
esp tunnel from xxx.xxx. xxx.1 to xxx.xxx.xxx.2 spi 0xc9dbb83d
В приведенном примере файла конфигурации для мар- auth hmac-sha2-512 enc blowfish
шрутизатора сети А первая строка задает параметры по-
тока (flow) с использованием специального протокола ESP А при просмотре таблицы маршрутизации ядра в выводе
между подсетями 10.10.10.0/24 и 10.10.99.0/24, локальной этой команды должны появиться следующие строки:
конечной точки VPN (local end-point) с IP-адресом ххх.ххх.
ххх.1 (указывается для машин с несколькими интерфей- #netstat -rnf encap
сами), удаленной конечной точки VPN (remote end-point) Routing tables

с IP‑адресом ххх.ххх.ххх.2, с режимом работы require (не- Encap:


Source Port Destination Port Proto SA(Address/Proto/Type/Direction)
зашифрованый трафик запрещен). 10.10.99/24 0 10.10.10/24 0 0 xxx.xxx.xxx.2/esp/require/in
Вторая строка задает параметры ассоциаций безопас- 10.10.10/24 0 10.10.99/24 0 0 xxx.xxx.xxx.2/esp/require/out

ности (SA), а именно: направление и IP-адреса участников


(peer-ов), значение Security Parameter Index (SPI), которое Следующая команда, запущенная на одном из маршру-
представляет собой произвольное уникальное 32-битное тизаторов во время «пингования» хостами из одной подсети
значение, идентифицирующее конкретную SA, парамет- хостов другой подсети, должна показать следующее:
ры криптографических преобразований (аутентификация –
hmac-sha2-512, шифрование – blowfish), расположение фай- #tcpdump esp
лов, содержащих ключевые данные. tcpdump: listening on vicO, link-type EN10HE
02:03:10.750306 esp xxx. xxx. xxx.2 > xxx. xxx. xxx.l spi 0x7D4B4241 seq 5 len 92
Файл конфигурации для маршрутизатора сети Б будет 02:03:10.751660 esp xxx. xxx. xxx.l > xxx. xxx. xxx.2 spi 0x2CC6A79D seq 5 len 92
отличатся значениями IP-адресов и параметра SPI. 02:03:11.717436 esp xxx. xxx. xxx.2 > xxx. xxx. xxx.l spi 0x7D4B4241 seq 6 len 92
02:03:11.718117 esp xxx. xxx. xxx.l > xxx. xxx. xxx.2 spi 0x2CC6A79D seq 6 len 92
02:03:12.732470 esp xxx. xxx. xxx.2 > xxx. xxx. xxx.l spi 0x7D4B4241 seq 7 len 92
flow esp from 10.10.99.0/24 to 10.10.10.0/24 local ↵ 02:03:12.733304 esp xxx. xxx. xxx.l > xxx. xxx. xxx.2 spi 0x2CC6A79D seq 7 len 92
xxx.xxx.xxx.2 peer xxx.xxx.xxx.1 type require 02:03:13.733055 esp xxx. xxx. xxx.2 > xxx. xxx. xxx.l spi 0x7D4B4241 seq 8 len 92
esp from xxx.xxx.xxx.2 to xxx.xxx.xxx.1 spi ↵ 02:03:13.733616 esp xxx. xxx. xxx.l > xxx. xxx. xxx.2 spi 0x2CC6A79D seq 8 len 92
0xabd9da39:0xc9dbb83d \
auth hmac-sha2-512 enc blowfish \
authkey file ↵ Для автоматического «поднятия» VPN при запуске сис-
"/etc/ipsec/akey.local:/etc/ipsec/akey.remote" \ темы необходимо добавить в файл /etc/rc.conf.local строку:
enckey file ↵
"/etc/ipsec/ekey:/etc/ipsec/ekey"
ipsec=YES
Во избежание ошибки чтения конфигурационного фай-
ла /etc/ipsec.conf утилитой ipsecctl он обязательно должен Преимуществами данного способа являются быстро-
заканчиваться пустой строкой. та развертывания VPN и простота синтаксиса конфигура-
Для правильной маршрутизации транзитного трафи- ционного файла. К его недостаткам можно отнести невы-
ка на пограничных маршрутизаторах в таблицу маршру- сокую степень защиты передаваемых данных вследствии
тизации ядра необходимо внести соответствующие запи- установки вручную параметров SA, отсутствия механизма
си для маршрутизатора сети А: автоматической смены ключевых данных.

#route add -net 10.10.99.0/24 xxx.xxx.xxx.2 Организация VPN с использованием IKE,


демона isakmpd и аутентификации
и для маршрутизатора сети Б: с помощью общего ключа (PSK)
Демон isakmpd предназначен для автоматического управле-
#route add -net 10.10.10.0/24 xxx.xxx.xxx.1 ния ключевыми данными и параметрами ассоциаций безо-
пасности (SA) IPsec-трафика. Основным применением данно-
Для автоматического добавления этих маршрутов пос- го ПО является организация VPN. При запуске демон считы-
ле загрузки операционной системы необходимо добавить вает конфигурационные параметры из файлов /etc/isakmpd/
соответствующие команды в файл /etc/rc.local. isakmpd.conf и /etc/isakmpd/isakmpd.policy. Файл /etc/isakmpd/
Для «поднятия» VPN можно использовать следующую isakmpd.conf является конфигурационным файлом isakmpd,
команду: а файл /etc/isakmpd/isakmpd.policy содержит параметры по-
литики безопасности, определяющие требования к участни-
#ipsecctl -vf /etc/ipsec.conf кам. В режиме аутентификации с помощью общего ключа
или PSK (Pre-shared Key) общий ключ используется для ини-
После успешного «поднятия» VPN при просмотре со- циализации обмена данными, происходящего в первой фазе
стояния SPD и SAD с помощью следующей команды долж- автоматического обмена ключевой информацией, аутенти-
на отображаться подобная информация: фикации участников и создания защищенного канала между

№12, декабрь 2008 39


администрирование
сторонами, позволяющего начать непосредственный обмен. Далее следуют секции, раскрывающие использованые
В качестве PSK будет использована парольная фраза. ранее значения (ISAKMP-peer-B и IPsec-A-B). Секция [ISAKMP-
Для организации VPN согласно схеме (см. рисунок): peer-B] вмещает ряд параметров, описывающих участни-
1. Активировать перенаправление пакетов на погранич- ка ISAKMP-peer-B, в частности: фазу соединения (Phase),
ных маршрутизаторах (см. выше). во время которой используются эти параметры, локальный
2. Сформировать конфигурационный файл /etc/isakmpd/ IP-адрес (Local-address), на котором осуществляется взаи-
isakmpd.conf. модействие с участником для системы с несколькими адап-
3. Сформировать конфигурационный файл /etc/isakmpd/ терами, IP-адрес (Address) участника, имя секции, содержа-
isakmpd.policy. щей параметры конфигурации (Configuration) для участника,
4. Добавить маршруты на удаленные подсети на погра- Authentication – непосредственное значение PSK (т.е. пароль,
ничных маршрутизаторах (см. выше). для примера использовано значение great_password).
Секция [IPsec-A-B] содержит подобные параметры, ка-
Пункты 1-й и 4-й приведенной выше последовательнос- сающиеся IPsec-соединения с участником, за исключением
ти выполняются аналогично случаю с утилитой ipsecctl. параметров: ISAKMP-peer – указывает имя участника, с ко-
Конфигурационный файл isakmpd.conf состоит из сек- торым устанавливается соединение, Local-ID и Remote‑ID –
ций, название которых заключено в квадратные скобки, имена секций, описывающих значения, которые должны
и наборов «параметр = значение» для каждой секции. Ни- быть переданы участнику в качестве дополнительных ло-
же приведено содержимое конфигурационного файла /etc/ кальных и удаленных параметров.
isakmpd/isakmpd.conf маршрутизатора сети А: В последующих секциях [Net-A] и [Net-В] перечислены,
упомянутые выше дополнительные параметры, а именно па-
[General] раметры подсетей (возможно также описание единого IP4-
Listen-on= ххх.ххх.ххх.1
или IP6-адреса), находящихся по разные стороны туннеля.
[Phase 1] Секция [Default-main-mode] задает конфигурационные
ххх.ххх.ххх.2= ISAKMP-peer-B
параметры для организации процесса автоматического об-
[Phase 2] мена криптографическими ключами с удаленным участни-
Connections= IPsec-A-B
ком, а именно: DOI и EXCHANGE_TYPE – стандартные зна-
[ISAKMP-peer-B] чения, Transforms – задает список предлагаемых крипторга-
Phase= 1
Local-address= ххх.ххх.ххх.1 фических преобразований для защиты трафика автомати-
Address= ххх.ххх.ххх.2 зированного обмена ключевыми данными (алгоритм шиф-
Configuration= Default-main-mode
Authentication= great_password рования 3DES, алгоритм хеширования SHA).
Секция [Default-quick-mode] устанавливает конфигура-
[IPsec-A-B]
Phase= 2 ционные параметры IPsec: EXCHANGE_TYPE – стандарт-
ISAKMP-peer= ISAKMP-peer-B ное значение, Suites – задает список протоколов и алго-
Configuration= Default-quick-mode
Local-ID= Net-A ритмов, используемых для защиты трафика (протокол ESP,
Remote-ID= Net-B алгоритм шифрования 3DES, алгоритм хеширования SHA,
[Net-A] протокол согласования ключей PFS).
ID-type= IPV4_ADDR_SUBNET Более детальную информацию о комбинациях протоко-
Network= 10.10.10.0
Netmask= 255.255.255.0 лов и алгоритмов, которые можно использовать для защи-
ты трафика и аутентификации можно почерпнуть на стра-
[Net-B]
ID-type= IPV4_ADDR_SUBNET ничке руководства ISAKMPD.CONF(5).
Network= 10.10.99.0 Конфигурационный файл /etc/isakmpd/isakmpd.conf мар-
Netmask= 255.255.255.0
шрутизатора сети Б отличается от приведенного выше зна-
[Default-main-mode] чениями, использованными в секциях, задающих парамет-
DOI= IPSEC
EXCHANGE_TYPE= ID_PROT ры удаленного участника, IPsec-соединения:
Transforms= 3DES-SHA
[General]
[Default-quick-mode] Listen-on= ххх.ххх.ххх.2
EXCHANGE_TYPE= QUICK_MODE
Suites= QM-ESP-3DES-SHA-PFS-SUITE [Phase 1]
ххх.ххх.ххх.1= ISAKMP-peer-A
В приведенном примере в секции [General] параметр
Listen-on указывает IP-адрес интерфейса, на котором [Phase 2]
Connections= IPsec-B-A
isakmpd ожидает запросы на соединение.
В секции [Phase 1], в которой задаются параметры SA [ISAKMP-peer-A]
Phase= 1
для демона автоматического обмена криптографичес- Local-address= ххх.ххх.ххх.2
кими ключами, для удаленного участника с IP-адресом Address= ххх.ххх.ххх.1
Configuration= Default-main-mode
ххх.ххх.ххх.2 устанавливается имя ISAKMP-peer-B. Authentication= great_password
В секции [Phase 2], в которой задаются параметры SA
[IPsec-B-A]
для IPsec, параметр Connections задает название IPSec-со- Phase= 2
единения (IPsec-A-B), которое должно быть «поднято» ав- ISAKMP-peer= ISAKMP-peer-A
Configuration= Default-quick-mode
томатически после запуска демона isakmpd.

40
администрирование
Local-ID= Net-B isakmpd="-d"
Remote-ID= Net-A

[Net-A] По сравнению с предыдущим данный способ является


ID-type= IPV4_ADDR_SUBNET
Network= 10.10.10.0 более надежным благодаря применению механизма авто-
Netmask= 255.255.255.0 матического обмена параметрами безопасности (SA, SPI).
[Net-B] К числу его недостатков можно отнести использование об-
ID-type= IPV4_ADDR_SUBNET щего ключа (PSK), который является узким местом механиз-
Network= 10.10.99.0
Netmask= 255.255.255.0 ма аутентификации сторон, а также наличие двух конфигу-
рационных файлов и их более сложный синтаксис.
[Default-main-mode]
DOI= IPSEC
EXCHANGE_TYPE= ID_PROT Организация VPN с использованием IKE,
Transforms= 3DES-SHA
демона isakmpd и механизма
[Default-quick-mode] аутентификации на основе
EXCHANGE_TYPE= QUICK_MODE
Suites= QM-ESP-3DES-SHA-PFS-SUITE сертификатов стандарта X.509
Стандарт X.509 – является стандартом инфраструктуры от-
Особое внимание необходимо обратить на параметр крытого ключа (PKI, Public Key Infrastructure) и управления
Authentication, который устанавливает значение пароля полномочиями (PMI, Privilege Management Infrastructure) меж-
(PSK). Его значение должно быть одинаковым для обеих сто- дународного института связи и телекоммуникации ITU-T.
рон. Для создания пароля можно воспользоваться утилитой Стандарт X.509 определяет форматы сертификатов от-
dd аналогично случаю с генерацией ключевых файлов. крытого ключа, механизмы отзыва сертификатов, атрибуты
Содержимое файла /etc/isakmpd/isakmpd.policy являет- сертификатов и алгоритм проверки подлинности сертифика-
ся одинаковым для обеих сторон: та (принадлежности к определенной PKI). Для производства
сертификатов используется четко определенная структура
KeyNote-Version: 2 ответственных узлов или CA (Certificate Authorities). Возмож-
Authorizer: "POLICY"
Licensees: "passphrase:great_password" ны варианты организации как одно-, так и многоуровневой
(иерархической) структуры СА. Как правило, на больших пред-
Conditions: app_domain == "IPsec policy" &&
esp_present == "yes" && приятиях, где широко применяется инфраструктура открыто-
esp_enc_alg != "null" -> "true"; го ключа, используется структура СА, состоящая из несколь-
ких уровней. В данном случае будет рассмотрена одноуров-
Формат файла isakmpd.policy отличается от формата невая структура CA с одним узлом, обладающим полномочи-
isakmpd.conf и содержит пары параметр/значение, при этом ями корневого СА и самоподписанным сертификатом.
параметры могут иметь сложные значения. Для организации VPN с использованием сертификатов
В приведенном выше примере параметры KeyNote- Х.509 согласно схеме (см. рисунок) необходимо выполнить
Version и Authorizer принимают стандартные значения (бо- следующие действия:
лее подробно смотрите страницы руководства ISAKMPD. 1. Активировать перенаправление пакетов на погранич-
POLICY(5) и KEYNOTE(4,5)). ных маршрутизаторах (см. выше).
Параметр Licensees устанавливает значение пароля, 2. Сформировать PKI (сгенерировать необходимые сек-
который является ключем к началу первой фазы (автома- ретные ключи и сертификаты, произвести обмен сер-
тический обмен ключевыми данными) установления VPN- тификатами).
соединения. 3. Сформировать конфигурационный файл /etc/isakmpd/
Параметр Conditions содержит перечень требований isakmpd.conf.
к входящему IPsec-трафику. Требования простые: нали- 4. Сформировать конфигурационный файл /etc/isakmpd/
чие протокола ESP и обязательное использование одного isakmpd.policy.
из алгоритмов криптографической защиты (более подроб- 5. Добавить маршруты на удаленные подсети на погра-
но см. ISAKMPD.POLICY(5)). ничных маршрутизаторах (см. выше).
С целью ограничения доступа необходимо выставить
права с маской 600 на конфигурационные файлы isakmpd: Для создания PKI необходимо с помощью утилиты
OpenSSL сгенерировать набор Х.509-сертификатов, кото-
#chmod 600 /etc/isakmpd/isakmpd* рые обеспечат аутентификацию узлов-участников в рамках
инфраструктуры. Сначала необходимо создать сертифи-
иначе запуск isakmpd завершится с ошибкой. кат корневого СА, которым будут подписаны сертификаты
Для «поднятия» VPN достаточно выполнить команду: участников, а его атрибуты – использованы для аутентифи-
кации. Для создания самоподписанного сертификата сро-
#isakmpd -d ком действия 365 дней необходимо выполнить команду:

Для автоматического «поднятия» VPN при загрузке сис- #openssl req -x509 -days 365 -newkey rsa:1024 ↵
-keyout /etc/ssl/private/ca.key -out /etc/ssl/ca.crt
темы в файле /etc/rc.conf.local для строки, начинающей-
ся словом isakmpd, необходимо сменить значение фла- В результате выполнения команды, на основании со-
га на -d: зданого секретного ключа /etc/ssl/private/ca.key длиной

№12, декабрь 2008 41


администрирование
1024 бита, дополнительно закрытого с помощью шифрова- [Phase 2]
Connections= IPsec-A-B
ния и пароля, будет создан самоподписанный сертификат
/etc/ssl/ca.crt, действительный на протяжении 365 дней. В хо- [ISAKMP-peer-B]
Phase= 1
де формирования CSR-файла необходимо ответить на ряд Local-address= xxx.xxx.xxx.1
стандартных вопросов. В качестве узла с полномочиями кор- Address= xxx.xxx.xxx.2
Configuration= Default-main-mode
невого СА для описанного случая может выступать любой
доверенный хост, на котором установлен пакет OpenSSL. [IPsec-A-B]
Phase= 2
Следующим этапом является формирование секретных ISAKMP-peer= ISAKMP-peer-B
ключей и запросов на сертификацию для каждого участни- Configuration= Default-quick-mode
Local-ID= Net-A
ка (в данном случае маршрутизаторов сетей А и Б). Remote-ID= Net-B
Аналогично для маршрутизаторов сетей А и Б (с ис-
[Net-A]
пользованием в качестве имени IP-адресов xxx.xxx.xxx.1 ID-type= IPV4_ADDR_SUBNET
и xxx.xxx.xxx.2 соответственно): Network= 10.10.10.0
Netmask= 255.255.255.0
$openssl req -new -newkey rsa:1024 -nodes ↵ [Net-B]
-keyout xxx.xxx.xxx.1.key -out xxx.xxx.xxx.1.csr ID-type= IPV4_ADDR_SUBNET
Network= 10.10.99.0
Особенностью формирования секретных ключей явля- Netmask= 255.255.255.0
ется то, что они не могут быть дополнительно защищены [Default-main-mode]
шифрованием (опция -nodes), такая защита повлечет отказ DOI= IPSEC
EXCHANGE_TYPE= ID_PROT
isakmpd во время запуска вследствие ошибки чтения со- Transforms= 3DES-SHA-RSA_SIG
держимого ключа. Созданый ключ необходимо поместить
[3DES-SHA-RSA_SIG]
в директорию /etc/isakmpd/private соответствующего хоста ENCRYPTION_ALGORITHM= 3DES_CBC
и установить на него права доступа по маске 600. HASH_ALGORITHM= SHA
AUTHENTICATION_METHOD= RSA_SIG
Для правильной работы isakmpd необходимо, чтобы сер-
тификаты, подписанные CA, содержали дополнительное [Default-quick-mode]
EXCHANGE_TYPE= QUICK_MODE
поле subjectAltName, которое содержит IP-адрес или FQDN Suites= QM-ESP-3DES-SHA-PFS-SUITE
(Fully Qualified Domain Name) и позволяет isakmpd опреде-
лить принадлежность сертификата: В отличие от конфигурационного файла маршрутиза-
тора сети А, предназначенного для рассмотренного ранее
$export CERTIP=xxx.xxx.xxx.1 случая, данный файл, также предназначенный для маршру-
$openssl x509 -req -days 365 -in $CERTIP.csr ↵
-CA /etc/ssl/ca.crt -CAkey /etc/ssl/private/ca.key ↵ тизатора сети А, содержит секцию [X509-certificates], задаю-
-CAcreateserial -extfile /etc/ssl/x509v3.cnf ↵ щую расположение директорий, содержащих СА-сертифи-
-extensions x509v3_IPAddr -out $CERTIP.crt
кат (CA-directory), сертификат(ы) пограничных маршрутиза-
В ходе выполнения команд на основании CSR-фай- торов (Cert-directory) и файл, содержащий секретный ключ
ла $CERTIP.csr (т.е. ххх.ххх.ххх.1.csr) будет создан серти- (Private-key). Из секции [ISAKMP-peer-A] за ненадобностью
фикат $CERTIP.crt, включающий дополнительное поле удалена строка, содержащая параметр Authentication.
subjectAltName, содержащее значение переменной $CERTIP В секции [3DES-SHA-RSA_SIG] дано подробное описа-
(ххх.ххх.ххх.1), подписанный ключом ca.key (более подроб- ние предлагаемых криптографических преобразований
но см. ISAKMPD(8)). для защиты трафика автоматизированного обмена клю-
Таким способом необходимо создать сертификаты для чевыми данными (алгоритма шифрования, алгоритма хе-
каждого участника (т.е. для маршрутизаторов сетей А и Б). ширования и метода аутентификации).
После создания соответствующие сертификаты необхо- Аналогичные изменения необходимо внести и в конфи-
димо поместить в директории /etc/isakmpd/certs на каждом гурационный файл маршрутизатора сети Б. Конфигураци-
из маршрутизаторов. онный файл маршрутизатора сети Б:
Также необходимо скопировать корневой сертификат
ca.crt на каждый из маршрутизаторов и поместить в ди- [General]
Listen-on= ххх.ххх.ххх.2
ректорию /etc/isakmpd/ca.
После этого необходимо сформировать конфигурацион- [X509-certificates]
CA-directory= /etc/isakmpd/ca/
ный файл /etc/isakmpd/isakmpd.conf. Рассмотрим его отли- Cert-directory= /etc/isakmpd/certs/
чия от файла, созданного для случая использования PSK: Private-key= /etc/isakmpd/private/ ↵
ххх.ххх.ххх.2.key

[General] [Phase 1]
Listen-on= xxx.xxx.xxx.1 ххх.ххх.ххх.1= ISAKMP-peer-A

[X509-certificates] [Phase 2]
CA-directory= /etc/isakmpd/ca/ Connections= IPsec-B-A
Cert-directory= /etc/isakmpd/certs/
Private-key= /etc/isakmpd/private/ ↵ [ISAKMP-peer-A]
xxx.xxx.xxx.1.key Phase= 1
Local-address= ххх.ххх.ххх.2
[Phase 1] Address= ххх.ххх.ххх.1
xxx.xxx.xxx.2= ISAKMP-peer-B Configuration= Default-main-mode

42
администрирование
[IPsec-B-A] сурсов на поддержание PKI, уязвимость системы в случае
Phase= 2
ISAKMP-peer= ISAKMP-peer-A компроментации ответственного узла (СА).
Configuration= Default-quick-mode
Local-ID= Net-B
Remote-ID= Net-A Заключение
В статье были рассмотрены три способа организации VPN на
[Net-A]
ID-type= IPV4_ADDR_SUBNET основе набора протоколов IPsec согласно предложеной схеме
Network= 10.10.10.0 (см. рисунок) с помощью встроенного инструментария, пре-
Netmask= 255.255.255.0
доставляемого OpenBSD. Предложенная схема не охватыва-
[Net-B] ет все разнообразие возможных ситуаций, однако является
ID-type= IPV4_ADDR_SUBNET
Network= 10.10.99.0 типичной схемой одного из сегментов сложной VPN многофи-
Netmask= 255.255.255.0 лиальной организации. Следует также отметить, что в качест-
[Default-main-mode] ве ОС на сетевых узлах, обеспечивающих «поднятие» VPN
DOI= IPSEC с помощью ПО isakmpd, может быть использована любая ОС,
EXCHANGE_TYPE= ID_PROT
Transforms= 3DES-SHA-RSA_SIG для которой данное ПО портировано разработчиками.
В статье не были затронуты вопросы настройки сетевых
[3DES-SHA-RSA_SIG]
ENCRYPTION_ALGORITHM= 3DES_CBC (пакетных) фильтров на пограничных маршрутизаторах. Не-
HASH_ALGORITHM= SHA смотря на это, необходимо учитывать, что правильная кон-
AUTHENTICATION_METHOD= RSA_SIG
фигурация пакетного фильтра является важным аспектом
[Default-quick-mode] при рассмотрении вопросов сетевой безопасности.
EXCHANGE_TYPE= QUICK_MODE
Suites= QM-ESP-3DES-SHA-PFS-SUITE Каждый из описаных выше способов имеет свои преиму-
щества и недостатки, однако, поскольку уровень безопаснос-
В содержимое файла isakmpd.policy также необходимо ти соединений «точка-точка», каковыми являются VPN-тун-
внести изменения с целью обеспечения аутентификации нели, определяется не только длиной используемых криптог-
только тех участников, чьи сертификаты подписаны «мест- рафических ключей, но и свойствами самой структуры крип-
ным» корневым CA. Для этого в качестве значения пара- тозащиты, то неоспоримыми преимуществами для многофи-
метра Licensees необходимо использовать содержимое ат- лиальной бизнес-структуры или организации становятся по-
трибута subject сертификата корневого СА (/etc/isakmpd/ca/ вышенная по сравнению с PSK криптостойкость, а также на-
ca.crt). Для получения содержимого можно воспользовать- личие централизованного механизма управления средства-
ся следующей командой: ми криптографической защиты каналов передачи данных,
связывающих территориально разграниченные подсети.
$openssl x509 -in /etc/isakmpd/ca/ca.crt -noout -subject И в этом отношении преимущества способа с использова-
subject=/C=RU/ST=MW/L=MOSCOW/O=SMPL/OU=IT ↵ нием инфраструктуры открытого ключа очевидны.
DEPT/CN=RootCA/emailAddress=admin@pki.lan
1. IPsec http://en.wikipedia.org/wiki/IPsec.
Как и в предыдущем случае, содержимое файла 2. IPSec – протокол защиты сетевого трафика на IP-уровне –
isakmpd.policy идентично для обоих маршрутизаторов: http://www.ixbt.com/comm/ipsecure.shtml.
3. Туннельные протоколы VPN – http://www.redline-software.com/
KeyNote-Version: 2 rus/support/docs/isaserver/FW_C_VPNProtocol.php.
Authorizer: "POLICY"
Licensees:"DN:/C=RU/ST=MW/L=MOSCOW/O=SMPL/OU=IT ↵ 4. IPSEC как протокол защиты сетевого трафика – http://
DEPT/CN=RootCA/emailAddress=admin@pki.lan" www.ciscolab.ru/2007/01/07/chto_takoe_ipsec.html.
Conditions: app_domain == "IPsec policy" && 5. Альфред Брот. IPSec, NAT, брандмауэры и VPN – http://
esp_present == "yes" && www.osp.ru/lan/2003/01/137057.
esp_enc_alg != "null" -> "true";
6. Майк Фратто. Могут ли ужиться IPsec и NAT? – http://www.ccc.ru/
Параметры, использованные в данном случае, аналогич- magazine/depot/01_03/read.html?web.htm.
ны параметрам в случае с PSK. Элемент DN (Distinguished 7. Настройка IPsec с помощью ipsecctl – http://www.openbsd.ru/
Name), используемый при установке значения параметра docs/faq/ipsecctl.html.
Licensees, является обязательным, так как указывает на тип 8. An Illustrated Guide to IPsec – http://unixwiz.net/techtips/iguide-
выражения, следующего за ним (passphrase в случае с PSK). ipsec.html.
Дальнейшая настройка автозапуска аналогична случаю 9. IPSec, ISAKMPD, FreeBSD, OpenBSD и x509-сертифика-
с PSK, а методика тестирования – методике, предложен- ты. Конспект – http://www.pankin.ru/cgi-bin/moin.cgi/NotePage/
ной для всех описанных выше случаев. IPSecWithX509.
Благодаря применению механизма аутентификации 10. IPSEC.CONF(5).
на основе стандарта Х.509 данный способ организации 11. SYSCTL.CONF(5).
VPN является наиболее безопасным из числа перечислен- 12. ISAKMPD.POLICY(5).
ных. К его преимуществам можно отнести использование 13. ISAKMPD.CONF(5).
централизованного механизма создания временных серти- 14. ISAKMPD(8).
фикатов. Как и предыдущие, данный способ также не ли- 15. X.509 – http://uk.wikipedia.org/wiki/X.509.
шен недостатков, среди них: сложность конфигурационных 16. Perfect forward secrecy – http://en.wikipedia.org/wiki/Perfect_
файлов, необходимость выделения административных ре- forward_secrecy.

№12, декабрь 2008 43


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

Сетевое сканирование
с помощью МФУ от HP

Иван Коробко
Процедура инсталляции драйверов и необходимого программного обеспечения сетевых
МФУ – достаточно длительный процесс, в результате которого на компьютер клиента
устанавливаются лишние программное обеспечение и устройства. Давайте вычленим
из дистрибутива необходимые компоненты.

В
се знают о надежности черно- n д ли тельно е вр емя ус тановк и дит в состав операционной системы
белых принтеров и сканеров, (30‑40 минут); Windows 2K. В этой статье не будут
созданных инженерами ком- n при установке сетевого МФУ со- рассматриваться операционные сис-
пании HP. Несколько лет назад под здается локальный принтер на кли- темы Windows 9x, поскольку они сня-
этой маркой появились многофункци- енте; ты с поддержки. Для предыдущих мо-
ональные устройства: принтер, ска- n нестабильная работа программы делей МФУ c USB-интерфейсом не-
нер, копировальный аппарат, а иног- сканирования при подключении обходимо использовать Jet Direct для
да и факс теперь объединены в од- МФУ как сетевого устройства; преобразования USB и LAN. Для уп-
ном устройстве. n установка графического интерфей- равления такого рода системой необ-
МФУ со временем эволюциониро- са для драйвера принтера, что не- ходимо специфическое программное
вали: сначала была реализована под- благоприятно сказывается на ско- обеспечение. В противном случае не-
держка только USB-интерфейса. Се- рости работы МФУ. возможно будет отсканировать изоб-
тевое подключение этих устройств ражения с помощью таких программ,
можно было обеспечить с помощью Несмотря на прекрасно реали- как Photoshop или ACDSee. Если при-
Jet Direct. Принтер при таком подклю- зованную аппаратную часть, про- нято решение отказаться от исполь-
чении функционировал прекрасно, граммная часть сильно недоработа- зования программы сканирования HP,
сканер давал частые сбои. Позже этот на. В связи с этим предлагается вы- то рекомендуется использовать анало-
недостаток был устранен. В настоящее членить из прилагаемого к МФУ ком- гичную программу ScanVue [1], в кото-
время МФУ поддерживает LAN и USB- пакт-диска драйверы принтера и ска- рой реализована связка USB‑LAN.
интерфейсы. нера. Поскольку в настоящее время
Несмотря на это, основной недо- в продаже только МФУ с поддержкой Структура дистрибутива
статок – неудобное программное обес- сети (например, HP 3390, HP  2727), для МФУ HP
печение – не был устранен. Привожу то вычленять программу сканирова- Все МФУ, созданные HP, можно раз-
список недостатков входящего в ком- ния не нужно, поскольку мастер ра- делить по аппаратной поддержке
плект программного обеспечения: боты со сканером и камерой вхо- на 2 группы: с интегрированным сете-

44
администрирование
вым интерфейсом и без него. К МФУ Таблица 1. Классы часто используемых типов устройств
с встроенным сетевым интерфейсом Тип устройства Класс устройства (Class) Идентификатор безопасности (ClassGuid)
относятся такие модели, как HP 3390, USB USB {36fc9e60-c465-11cf-8056-444553540000}
3392, 3050, 3052, 3055, M2727 и т. д. CD/DVD CDROM {4d36e965-e325-11ce-bfc1-08002be10318}
К МФУ без поддержки сети – HP 3300,
Видеоадаптер Display {4d36e968-e325-11ce-bfc1-08002be10318}
3320, 3330, 3380 и др.
Принтер Printer {4d36e979-e325-11ce-bfc1-08002be10318}
В состав любого дистрибутива
МФУ входят: Клавиатура Keyboard {4d36e96b-e325-11ce-bfc1-08002be10318}

n драйверы принтера (PCL5, PCL6, Монитор Monitor {4d36e96e-e325-11ce-bfc1-08002be10318}


PS); Мышь Mouse {4d36e96f-e325-11ce-bfc1-08002be10318}
n драйвер сканера (USB, LAN); Сетевая карта Net {4d36e972-e325-11ce-bfc1-08002be10318}
n драйвер DOT4 (USB 1.0, 2.0); COM и LPT-порты Ports {4d36e979-e325-11ce-bfc1-08002be10318}
n программное обеспечение. Звуковая карта Sound {4d36e97c-e325-11ce-bfc1-08002be10318}
SCSI и RAID-контроллеры SCSIAdapter {50dd5230-ba8a-11d1-bf5d-0000f805f530}
Разделим дистрибутив на состав-
Контроллер IEEE 1394 1394 {6bdd1fc1-810f-11d0-bec7-08002be2092f}
ные части. Основная задача – вы-
Сканеры и камеры Image {6bdd1fc6-810f-11d0-bec7-08002be2092f}
членить из него драйверы принтера
и сканера. Для этого необходимо про-
анализировать имеющиеся на диске
INF‑файлы.

Поиск INF-файлов
для установки сканера
и принтера
Каждый INF-файл, представляющий
собой текстовый файл в кодировке
ASCII, содержит в себе секции. Та-
кие секции, как [version], [manufacture]
или [strings], стандартизованы и содер-
жат список параметров, определяю-
щих назначение INF-файла. Подроб-
ное описание обязательных разделов
приведено в статье [2].
Для идентификации устройств
в INF-файле в разделе [version] отве-
чают два параметра: Class и ClassGuid. Рисунок 1. Взаимосвязь INF-файла и реестра
Каждому классу соответствует опре-
деленный GUID. Ошибка в названии
класса устройства или идентификато-
ра будет фатальной. В таблице 1 при-
веден список широко используемых
устройств и соответствующие им зна-
чения параметров Class и ClassGuid
(полный список классов и идентифика-
торов безопасности приведен в [3]).
На каждом диске имеется только
один INF-файл, позволяющий устано-
вить драйвер принтера, и один, позво-
ляющий установить драйвер сканера.
Пользуясь данными в таблице 1 необ-
ходимо найти два INF-файла, относя-
щихся к классам Print (для принтера)
и Image (для сканера).
На рис. 1 показана взаимосвязь
указанных классов и идентификаторов
безопасности с реестром. Описание
классов и устройств (папки 0000, 0001
и т. д.) располагается в ветви реест-
ра HKLM\SYSTEM\CurrentControlSet\ Рисунок 2. Библиотеки — драйвер сканеров HP

№12, декабрь 2008 45


администрирование
Таблица 2. Параметры сетевого сканирования ройства и программы. INF-файлы, на-
Параметр Тип данных Значения Описание ходящиеся на диске, изменены та-
Capabilities DWORD 0x31 – USB + LAN Определяется тип сканера: с поддержкой сетевого ким образом, чтобы ими можно бы-
0x20 – USB интерфейса и без нее ло управлять программно. Наша за-
TuipIOType DWORD 0х5 Определяется тип интерфейса: дача – извлечь из дистрибутива драй-
0х1 – USB; веры сканера и убрать все лишнее
0х2 – LPT;
0х3 – SCSI; из INF‑файла.
0х4 – DOT4; Драйвер для сканера HP состоит
0х5 – TCP/IP;
0х6 – USB2; из нескольких файлов:
0х7 – Fireware n INF-файл. Обеспечивает установ-
PortSelect REG_SZ NO Назначается порт сканирования, например LPT1, FILE. ку драйвера.
Для сетевого сканирования значение всегда NO
n CAT-файл (необязателен). Файл
CreateFileName REG_SZ AUTO Имя файла, в который осуществляется сканирование.
Поскольку оно назначается программой сканирования, цифровой подписи драйвера.
то параметр CreateFileName принимает значение AUTO n DLL-файл. Hewlett-Packard WIA
minidriver.
Таблица 3. Параметры линкования МФУ к драйверу n DLL-файл. Hewlett-Packard WIA
Параметр Значение Описание
ScanJet VendorSetup Extension.
n DLL-файл. PLS TULIP Scan Module.
USB
n DLL-файл. TWAIN Data Stub DLL.
NetworkDeviceID \macaddr:xxxxxxxxxxxx\port:0 Поскольку LAN-интерфейс
или не поддерживается,
\macaddr:xxxxxxxxxxxx\port:1 то указываются только При поверхностном сравнении дис-
МАС‑адрес и номер порта.
Не рекомендуется менять имя трибутивов от разных принтеров поч-
порта, указанного в INF-файле ти невозможно найти ничего общего.
NetworkHostName Не назначается Значение не присваивается, При ближайшем рассмотрении ока-
т.к. отсутствует встроенная зывается, что драйверы, кажущие-
поддержка в сети
ся разными, идентичны. Различают-
PortID ххх.ххх.ххх.ххх IP-адрес подключенного
Jet Direct ся лишь названия файлов. Для сбора
LAN + USB комплекта драйверов требуется найти
библиотеки. Для этого достаточно оп-
NetworkDeviceID \\hostname: HP2727_3.domain.ru Идентификатор сожержит IP,
\\ipaddr:xxx.xxx.xxx.xxx\\guid:\\macaddr:xxxxxxxxxxxx\\port:1 МАС-адрес, имя в сети. ределить описание библиотеки, вой-
или дя во вкладку «Версия» в свойствах
\\hostname: HP2727_3.domain.ru
\\ipaddr:xxx.xxx.xxx.xxx\\guid:\\macaddr:xxxxxxxxxxxx\\port:0 DLL‑файла (см. рис. 2).
NetworkHostName HP2727_3.domain.ru DNS-имя устройства
PortID ххх.ххх.ххх.ххх IP-адрес подключенного
Порядок работы
Jet Direct INF‑файла
Точкой входа в INF-файл при попыт-
Control\Class\{***}, где {***} – иденти- анализировать INF-файл и скопиро- ке его инсталляции с помощью мас-
фикатор безопасности. вать в соответствующую ему папку тера является обязательный раздел
Найденные INF-файлы необходимо все встречающиеся библиотеки. Од- [Version], в котором должны быть сле-
скопировать на жесткий диск каждый нако это решение не самое оптималь- дующие ключи (см. листинг 1):
в свою папку, например, DRV_Printer, ное, поскольку встроенный графичес- n Signature. Принимает одно из трех
DRV_Scaner и т. д. Название папки кий модуль значительно замедляет значений: $CHICAGO$ (для всех
произвольно и определяется пользова- скорость печати, работа драйвера мо- ОС), $Windows 95$ (для Windows 9x)
телем. Теперь следует установить спи- жет быть нестабильной. Рекомендует- или $Windows NT$ (для Windows 2K).
сок необходимых для установки драй- ся использовать встроенный в опера- Оптимально использовать значе-
вера файлов. ционную систему PS-драйвер. О том, ние $CHICAGO$.
как это сделать, подробно рассказа- n Class. Название класса устройства.
Драйвер для принтера но в статье [2]. Для сканера соответствует единс-
В комплект дистрибутива входят PCL5, Для реализации этого решения не- твенное значение IMAGE (см. таб-
PCL6 и PostScript-драйвера. Для вы- обходимо найти PPD-файл, который лицу 1).
членения драйвера необходимо про- находится на диске в CAB-файле, имя n Class. Глобальный идентификатор
и местоположение которого совпада- безопасности устройств. Для ска-
ют с INF-файлом. Все INF-файлы обыч- неров соответствует единственное
но находятся в корневом каталоге ком- значение {6bdd1fc6-810f-11d0-bec7-
пакт-диска. 08002be2092f} (см. таблицу 1).
n Provider. Значение данного пара-
Драйвер для сканера метра произвольно. При его отсутс-
Программа, находящаяся на диске, твии во время установки возникает
Рисунок 3. Ошибка при отсутствии
ключа Provider в разделе [Version] устанавливает все необходимые уст- ошибка (см. рис. 3).

46
администрирование
n DriverVer (необязательный параметр). Версия драйвера, вляется переход при выборе оборудования. Второе – уни-
например 10/03/2006, 1.0.0.0. кальный идентификатор модели устройства. Он стандар-
n CatalogFile (необязательный параметр). Ссылка на файл тизован и не может быть изменен. Сетевой идентификатор
с расширением CAT, содержащий цифровую подпись. не имеет никакого префикса, USB- и SCSI-идентификато-
Например, hppasc07.cat. ры имеют соответствующие префиксы.
Внимание! Если в INF-файле присутствует раздел
Листинг 1. Раздел [Version] [ControlFlags] с ключом ExcludeFromSelect=*, удалите его
[Version] целиком. В противном случае список устанавливаемого
Signature = "$CHICAGO$" оборудования будет пуст.
Class = IMAGE
ClassGUID = {6bdd1fc6-810f-11d0-bec7-08002be2092f} По умолчанию мастер установки устанавливает USB-
Provider = "any" драйвер. Для того чтобы избежать этого, необходимо уда-
лить лишние идентификаторы и ликвидировать разделы
После анализа раздела [Version] осуществляется чте- операционных систем, которые не используются на пред-
ние раздела [Manufacture], в котором описывается назва- приятии (см. рис. 4).
ние фирмы производителя оборудования (см. рис. 4). Зна- Несмотря на многообразие операционных систем,
чением ключа(ей) в этом разделе является список разде- перечисленных в файле, список библиотек одинаков
лов. К одному из них осуществляется переход в зависимос- для всех ОС. Исключение составляют 64-битные библио-
ти от типа операционной системы. теки и настройки реестра Windows 2000. Проанализиро-
В INF-файле могут быть использованы следующие суф- вав все блоки INF-файла, читатель обнаружит, что разни-
фиксы, идентифицирующие ее версию: ца существует только в 32- и 64‑битных устройствах, от-
n .x86. Платформа Intel 80x86, 32‑bit. дельно от них стоит Windows 2000, которая не рассматри-
n .ia64. Платформа x86, 64-bit. вается. Таким образом, позиционируя МФУ как сетевое
n .amd64. Архитектура процессора, разработанная AMD, устройство, упростим листинг, приведенный на рис. 4 (см.
64-bit. листинг 2а или 2б).
Оба листинга будут работать под Windows XP (32-бит)
Структура любого из дочерних разделов следующая: и Windows Vista (32-бит). Принципиальная разница заключа-
каждая строка состоит из ключа, название которого отра- ется в том, что попытка установить драйвер, описанный лис-
жается в списке устанавливаемого оборудования при за- тингом 2а, в операционных системах, кроме Windows XP
пуске мастера, обеспечивающего установку сканера. Ключ или Vista (32‑бит), закончится неудачей – будет выведено
обычно состоит из двух значений, разделенных запятой: сообщение о том, что оборудование не найдено. Исполь-
первое из них – название раздела, к которому осущест- зуя второй вариант, во всех версиях драйвер будет уста-

Рисунок 4. Распределение драйверов для различных операционных систем в INF-файле

№12, декабрь 2008 47


администрирование
новлен, однако работать не будет. Поэтому рекомендует- Для автоматизации процесса линковки рекомендуется
ся использовать первый вариант, в котором все описате- использовать REG-файл. Пример такого файла, обеспечи-
ли устройства для разных операционных систем ссылают- вающего линкование драйвера к МФУ c USB-интерфейсом,
ся на один раздел – WIA_2727nf_NW. приведен в листинге 3.

Листинг 2а. Определение списка устанавливаемых устройств Листинг 3. REG-файл для линковки МФУ с USB-интерфейсом
к драйверу
[Manufacturer]
"Hewlett-Packard"=HP,NTx86.5.1,NT.6.0 Windows Registry Editor Version 5.00
[HP] [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ ↵
; Windows XP Class\{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0002\ ↵
[HP.NTx86.5.1] DeviceData]
"HP LaserJet M2727nf MFP"= ↵ "TulipIOType"=dword:00000005
WIA_2727nf_NW,vid_03f0&pid_4D17&IP_SCAN "NetworkDeviceID"="\\macaddr:00170883C1CA\\port:1"
"NetworkHostName"=""
;Windows Vista "PortID"="192.168.1.100"
[HP.NT.6.0]
"HP LaserJet M2727nf MFP"= ↵ [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ ↵
WIA_2727nf_NW,vid_03f0&pid_4D17&IP_SCAN IMAGE\0002\Device Parameters]
"NetworkDeviceID"="\\macaddr:00170883C1CA\\port:1"
"PortID"="192.168.1.100"
Листинг 2б. Определение списка устанавливаемых устройств "NetworkHostName"=" "
[Manufacturer]
"Hewlett-Packard"=HP
; Все версии Windows
Проверка работоспособности
[HP] После завершения установки драйвера и его линкования
"HP LaserJet M2727nf MFP"= ↵ к устройству необходимо перезагрузить рабочую станцию.
WIA_2727nf,vid_03f0&pid_4D17&IP_SCAN
Тестом правильности установки драйвера является успеш-
Следующий раздел – WIA_2727nf_NW – является ос- ное прохождение теста связи с МФУ (см. рис. 5).
новным. С его помощью осуществляется управление ус-
тановкой драйвера. В нем указаны ссылки на другие раз- Заключение
делы, с помощью которых осуществляются настройка ре- Пользуясь тем, что драйверы ко всем МФУ HP одинако-
естра, копирование и регистрация библиотек. Имя разде- вы, достаточно установить один драйвер, далее требуется
ла назначается произвольно. менять только название устройства, его тип (Capabilities)
В этом и взаимосвязанных с ним разделах осуществля- и строку доступа к нему (NetworkDeviceID).
ются настройка реестра, регистрация библиотек. Их описа-
ние выходит за рамки статьи. Для обеспечения успешной 1. Cайт ScanVue – http://www.scanvue.com.
установки драйверов необходимо выполнить ряд рекомен- 2. Коробко И. Оптимизация сетевой печати. //Системный адми-
даций. В таблице 2 приведены параметры реестра, описан- нистратор, №11, 2008 г. – С.
ные в INF-файле, и их возможные значения, от которых за- 3. System-Supplied Device Setup Classes – http://msdn.microsoft.com/
висят тип и способ подключения сканера. en-us/library/ms791134.aspx.
После завершения процесса ус-
тановки драйвера необходимо к нему
прилинковать само устройство. В таб-
лице 3 приведены параметры и шаб-
лон их значений в зависимости от мо-
дели. Обратите внимание, что для
МФУ, поддерживающего сетевой ин-
терфейс, формат значений отличает-
ся от USB. Значения перечисленных
в таблице 3 строковых параметров
должны быть указаны в двух ветвях
реестра (где хххх – порядковый номер
устройства, присваиваемый автомати-
чески при создании камеры или ска-
нера в соответствующей папке пане-
ли управления):
n HKLM\SYSTEM\CurrentControlSet\
Control\Class\{6BDD1FC6 -810F-
11D0-BEC7-08002BE2092F}\хххх\
DeviceData;
n HKLM\SYSTEM\CurrentControlSet\
Enum\Root\IMAGE \ х х х х\Device
Parameters. Рисунок 5. Проверка корректности установки драйвера

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

Работаем с данными
Active Directory из скриптов
Часть вторая. Применение Perl и PHP

Рашид Ачилов
В предыдущей статье мы рассмотрели вопрос, как можно обработать данные, полученные
из Active Directory с использованием языка Bourne Shell, и остались не очень довольны
громоздкостью конструкций. Попробуем то же самое сделать на языках Perl и PHP.

А вот так – проще! n Net::LDAP (p5-perl-ldap);


Совершенно непостижимые на первый взгляд конструк- n Text::Iconv (p5-Text-Iconv).
ции, составлявшие основу предыдущего скрипта, просто
поражают неискушенного человека. Разработаны они бы- Также все модули, от которых они зависят, если они еще
ли вовсе не с учебной целью, а с целью написания некото- у вас не установлены.
рой программы целиком на Bourne Shell. К сожалению (а мо- Общее построение программы ничуть не изменилось –
жет, к счастью), в процессе работы выяснилось, что реали- мы также имеем конфигурационный файл, построенный
зовать задуманное только на Bourne Shell или невозможно, по классической схеме «ключ=значение», файл регистра-
или крайне трудоемко, поэтому пришлось мне вспомнить ционного журнала, где отмечается успех или неуспех от-
навыки программирования на языке Perl. дельного действия, и файл списка пользователей Sarg, ко-
Язык Perl, надо сказать, значительно больше подходит торый должен пополниться новыми пользователями, а ес-
для решения поставленной задачи – конструкции сокра- ли он отсутствует – должен быть создан. Вот таков кон-
щаются, логика становится более понятной. Поэтому для фигурационный файл, он уже рассматривался подробно,
разработок такого рода Perl – инструмент, близкий к иде- я привожу его только затем, что на него будут постоянно
альному. Правда, этот «инструмент» перед началом рабо- идти ссылки.
ты следует оснастить различными «насадками», то есть до-
полнительными модулями. А именно, нам потребуются (в ldap_server=192.168.50.1
ldap_basedn="dc=shelton,dc=net"
скобках приводится имя порта FreeBSD): ldap_binddn=ldapread@SHELTON.NET
n Date::Format (p5-TimeDate); ldap_password="cXdlcnR5ezEyM30K 0"
ldap_common_filter="(&(sAMAccountName=*) ↵
n Getopt::Long (p5-Getopt-Long); (sAMAccountType=805306368)(telephoneNumber=*))"
n Config::Simple (p5-Config-Simple); etcdir=/tmp
sargdir=sarg2
n MIME::Base64 (p5-MIME-Base64); sarglist=sargusers

50
администрирование
Кроме того, не будет рассматриваться реализация return $revisionNumber;
}
процедур, явно не относящихся к теме статьи – usage(),
safe_logger(). Интересующиеся могут скачать полную вер-
сию скрипта с [1] и посмотреть, хотя ничего особо интерес- Интересного в этой процедуре только то, что, следуя ес-
ного там нет. Кроме основного модуля, мы рассмотрим про- тественной логике поведения, когда заданные в командной
цедуру demux_passwd(), как она реализуется на Perl, про- строке опции перекрывают такие же, но заданные в конфи-
цедуру разбора командной строки parseOptions() и неболь- гурационном файле, я достаточно долго добивался возмож-
шую, но очень важную процедурку _from_utf8(), которая пе- ности указания элементов хэша _Config в качестве полей
реводит данные из UTF-8 в KOI-8R. Ну и, разумеется, ос- для передачи туда значений, обрабатываемых Getopt::Long.
новной модуль. Добился. Теперь при указании в командной строке и в кон-
Итак: фигурационном файле различных параметров, принима-
ется тот, что указан в командной строке.
# Обратное преобразование строки пароля И, наконец, основной модуль:
# из конфигурационного файла
# Вход: $1 conv_passwd (строка) – преобразованный пароль
# Выход: password (строка) – раскодированный пароль # Размещение файла регистрационного журнала
sub demux_passwd { my $logfile = ">>./gensarguserlist.log";
# Преобразованый пароль # Размещение конфигурационного файла
my $_deconved = shift(@_); my $config = "./gensarguserlist.conf";
my @_conved = split(/ /,$_deconved); # Прочитать конфигурационный файл и импортировать
# Дополнить преобразованную строку заполнителями # все параметры в хэш _Config, если конфигурационный файл
if ( $_conved[1] != 0 ) { # существует и читается
for (;$_conved[1] != 0; $_conved[1]--) safe_logger(sprintf("Config file %s does not exist ↵
{ $_conved[0] = $_conved[0] . "="; } or does not readable", $_config), "DIE") ↵
} if (! -e $config) || (! -r $config);
# Раскодировать текст. decode_base64 присоединяет '\n' Config::Simple->import_from($config, \%_Config) || ↵
# к декодированному тексту, так что мы обрезаем его die Config::Simple->error();
my $_iconved = decode_base64($_conved[0]);
chomp($_iconved);
return $_iconved; Я не буду здесь подробно расписывать, как работает
} Config::Simple, интересующихся отсылаю к man. Ориенти-
рован он главным образом на секционированные конфи-
Здесь, так же как и в ее реализации на Bourne Shell, гурационные файлы (в стиле Windows), но может быть ис-
особо говорить не о чем. Реализация на Bourne Shell вы- пользован и для чтения обычного файла. В этом случае
ходит даже более компактной из-за особенностей Bourne Config::Simple предполагает, что все данные просто вхо-
Shell. Впрочем, если кто предложит более изящное реше- дят в одну секцию default. Это очень важное замечание
ние (полностью или частично) – я рассмотрю его. нам пригодится в дальнейшем. Скажу только, что метод
import_from() читает исходный файл и создает выходной
# Перекодировка строки из UTF-8 в KOI8-R хэш, в котором ключами будут имена параметров, а значе-
# Вход: $1 source (строка) – строка в кодировке UTF-8
# Выход: dest (строка) – строка в кодировке KOI8-R ниями – соответственно их значения. При этом имя ключа
sub _from_utf8 { будет не parameter, а default.parameter в связи с особеннос-
# Строка в кодировке UTF-8
my $_src = shift(@_); тью, упомянутой выше.
# Преобразовать в KOI8-R
my $converter = Text::Iconv->new("utf-8", "koi8-r"); # Разобрать командную строку, вернуть номер версии
my $converted = $converter->convert($_src); # программы и заполнить хэш параметров
return($converted); my $rev = parseOptions(\%_Config);
} # Открыть файл регистрационного журнала и отметить
# начало работы
Просто и без вопросов. Необходимость в этой процедуре open(LOG,$logfile) || die "Sorry, I could not open ↵
возникает постоянно, как только читаешь что-либо не в ко- log file $logfile for writing: $!\n";
safe_logger(sprintf("GenSargUserlist ver. ↵
де ASCII, хотя в рассматриваемом примере это можно бы- %s started", $rev), "");
ло и не выносить в процедуру. # Преобразовать пароль для подключения к LDAP
# в используемую форму
my $_ldap_pwd = demux_passwd ↵
# Разобрать командную строку ($_Config{'default.ldap_password'});
# Вход: $1 _cmdref (ссылка на хэш) – ссылка на хэш
# с параметрами командной строки
# Выход: rev (строка) – версия программы в текстовом виде Пока что идет рутинная подготовка к работе – открываем
sub parseOptions {
# Ссылка на хэш с параметрами командной строки файл регистрационного журнала, отмечаем начало работы.
my $_cmdref = shift(@_); Обратить внимание следует только на форму записи ключа
# Версия программы
my $revisionNumber = sprintf("%d.%d", ↵ хэша – не забывайте, что они все default.parameter!
q$Revision: 1.33 $ =~ /(\d+)\.(\d+)/);
# Разрешить обьединение различных опций после одного # Подключиться к LDAP
# знака «-» my $ldap = Net::LDAP->new($_Config{'default.ldap_server'}) || ↵
Getopt::Long::Configure("bundling"); die "Cannot connect to LDAP server ↵
if ( !GetOptions( 'verbose|v' => \$_cmdref{'verbose'}, $_Config{'default.ldap_server'}: $!\n";
'help|h' => \$_cmdref{'help'}, my $msg = $ldap->bind("$_Config{'default.ldap_binddn'}", ↵
'debug|x' => \$_cmdref{'debug'}, password => "$_ldap_pwd");
'etcdir|e' => \$_cmdref{'etcdir'}, # Если подключиться не удалось — работу продолжать незачем
) or $_cmdref{help} ) { safe_logger(sprintf("[%d] %s: %s",$msg->code(), ↵
usage($revisionNumber); $msg->error_name(),$msg->error_text()), "DIE") ↵
exit(20); if ($msg->is_error());
}

№12, декабрь 2008 51


администрирование
# Путь к файлу пользователей Sarg образующийся в памяти после вызова as_struct, представ-
my $_sarglist = sprintf("%s/%s/%s", ↵
$_Config{'default.etcdir'}, ↵ ляет из себя массив хэшей. Элементами массива являют-
$_Config{'default.sargdir'}, ↵ ся адреса (указатели в Perl все же есть, только с ними нет
$_Config{'default.sarglist'});
такой свободы обращения) хэшей, каждый из которых со-
Здесь Net::LDAP сделает за нас всю черную рабо- держит данные по одной записи из AD. Ключом в этом хэ-
ту по подключению к AD. Нужно только проверить ус- ше является DN, а данными – адреса хэшей, содержащих
пешность подключения. Для этого лучше использовать по одному атрибуту. Таким образом, один элемент масси-
if($msg‑>is_error()), хотя ранние версии скрипта использова- ва – это хэш хэшей. Для перебора всех атрибутов обычно
ли проверку if ($msg->code()), но она оказалась не слишком перебираются все поля данных хэша первого уровня, пере-
надежной, почему-то не срабатывала, хотя должна была. ход в хэш второго уровня и выбор данных, потому что в по-
ле данных хэша второго уровня располагаются не непо-
# Путь к файлу пользователей Sarg средственно данные, а массив! Зачем так было сделано –
my $_sarglist = sprintf("%s/%s/%s", ↵
$_Config{'default.etcdir'}, ↵ мне неизвестно, но это так (см. рисунок):
$_Config{'default.sargdir'}, ↵
$_Config{'default.sarglist'}); # Строка из файла Sarg userlist
my $line;
Этот маленький кусочек отделен недаром. Во-первых, # Выходной массив, с логинами, уже присутствующими
обратите внимание на написание атрибутов – в массив attrs # в Sarg userlist
my @_presented;
они заносятся так, как они звучат в схеме AD. Но в получен- # Прочитано строк из файла Sarg userlist
ных структурах имена ключей, соответствующих этим ат- my $q_sarglist = 0;
# Открыть Sarg userlist, если он существует.
рибутам, будут строго в нижнем регистре, и указание «пра- # Аварийно завершиться, если есть, но не читается
вильного» атрибута приведет к тому, что поиск не даст ни- if (-e $_sarglist) {
open(ADD, $_sarglist) || ↵
чего. (Это еще будет отмечено впоследствие.) safe_logger(sprintf("File %s " . ↵
Во-вторых, что есть общий фильтр? Общий фильтр, при- "cannot open to read: %s", $_sarglist, $!), "DIE");
# Прочитать Sarg userlist и обработать каждую строку
веденный в конфигурационном файле, разбирался в пре- while (defined($line = <ADD>)) {
дыдущей статье и означает «отобрать все записи, у кото- chomp($line);
my @_str = split(/ /,$line);
рых заполнены поля sAMAccountName и telephoneNumber, push(@_presented, $_str[0]);
а также значение поля sAMAccountType соответствует кон- }
$q_sarglist = @_presented;
станте USER». Вы можете изменять общий фильтр так, как # Вывести количество записей, прочитанных из Sarg
вам надо. # userlist и закрыть файл
safe_logger(sprintf("Read %d records from file %s", ↵
$q_sarglist, $_sarglist),"");
# Обработано записей close(ADD);
my $_processed = 0; }
# Эти атрибуты будут запрошены из AD
my $attrs = [ 'displayName', 'sAMAccountName' ]; Эта часть неинтересная, здесь просто читается тексто-
# Отбираем данные в соответствии с общим фильтром
my $result = $ldap->search ↵ вый файл Sarg userlist, если он существовал ранее, и все
( base => "$_Config{'default.ldap_basedn'}", упомянутые в нем логины (первое поле записи) помещают-
scope => "sub",
filter => "$_Config{'default.ldap_common_filter'}", ся в массив, а потом берется количество записей, выводим
attrs => $attrs файл в регистрационный журнал и закрываем его.
);

Очень маленькая строка. Но она удостоится очень длин- # Открываем Sarg userlist для пополнения,
# создаем если отсутствует
ного описания. Разумеется, о safe_logger тут говорить не- open(ADD,">>" . $_sarglist) || die "Sorry, I could not ↵
чего, разве только что упомянуть, что метод $result->count() open file $_sarglist for writing: $!\n";
# Этот хэш будет использован для поиска среди логинов,
возвращает число записей, считанных из AD. А вот строч- # уже пристутствующих в Sarg userlist
ка $entries=$result->as_struct... my %seen;
# Инициализируем хэш
Здесь мне придется отвлечься и рассказать о том, @seen{@_presented} = ();
как организованы данные, которые передаются Net::LDAP my $ex_value;
в массив при вызове as_struct().
Как известно, в языке Perl отсутствует структурный тип Готовимся к основной работе. Для формирования спис-
данных. Хорошо это или плохо – оставим обсуждение мно- ка нам понадобится постоянно отвечать на вопрос «При-
гочисленным интернет-форумам. Нельзя просто объявить сутствует ли в данном массиве строка из данного хэша?».
тип данных typedef struct {...} myArray; и присвоить указателю Для упрощения поиска создадим вспомогательный хэш,
на переменную типа myArray адрес области данных – лю- в котором будут только ключи. Поскольку в левой части пе-
бой композитный объект данных в Perl управляется только ременных больше, чем в правой, хэш будет проинициали-
средствами самого Perl и более ничем (это, например, дает зирован, при этом все элементы массива станут ключами,
возможность не заботиться об управлении памятью). Кроме а всем полям данных будет присвоено undef.
того, базовых типов сложных объектов в Perl достаточно ма-
ло – массив, хэш и срез, причем последний, строго говоря, # Внешний хэш содержит в поле ключа DN, в поле данных –
# адрес хэша с атрибутами
самостоятельным типом не является. Все прочие структу- foreach $ex_value (values %$entries) {
ры данных в памяти представляются комбинацией первых # Взять логин
my $_login = $$ex_value{'samaccountname'};
двух – массивы массивов, хэши хэшей... Массив данных, # Проверить его наличие в хэше из файла Sarg userlist

52
администрирование
if (not exists $seen{$$_login[0]}) { // Обратное преобразование пароля
# Взять описание пользователя // Вход: $converted (string) — преобразованный пароль
# (фамилию имя и отчество одной строкой) // Выход: $passwd (string) — пароль в виде простого текста
my $_dispay = $$ex_value{'displayname'}; function demux_passwd($converted) {
printf ADD "%s \t%s\n", $$_login[0], ↵ $_conved = explode(" ", $converted);
_from_utf8($$_dispay[0]); // Дополнить строку нужным количеством заполнителей
# Обработано записей if ( $_conved[1] != 0 ) {
$_processed++; for (;$_conved[1] != 0; $_conved[1]--)
} { $_conved[0] = $_conved[0] . "="; }
} }
close(ADD); // Преобразовать получившуюся строку
$ldap->unbind(); $_passwd = base64_decode($_conved[0]);
close(LOG); return rtrim($_passwd);
}

Вот это, собственно, самая важная часть программы – Третий вариант реализации функции обратного преоб-
все остальное было только получением данных и подготов- разования пароля. Практически все варианты одинаковы,
кой к работе. Внешний цикл идет по полям данных каждо- отличия только в деталях.
го элемента из массива $entries. Пусть вас не смущает не-
сколько странная запись %$entries или $$login[0] – по син- // Вывести сообщение в файл журнала
// Вход: $handle (filehandle) — хэндл открытого файла журнала
таксическим соглашениям языка Perl первый символ обоз- // $msg (string) - строка для вывода
начает, как следует интерпретировать значение данной пе- // $severity (string) — если DIE, то выйти с ошибкой
// Выход: ничего
ременной, а второй следует воспринимать просто как не- function safe_logger($handle, $msg, $severity) {
кий обязательный элемент, букву, с которой всегда начина- $formatted = sprintf("%s [%s] gensargulist: %s\n", ↵
date("d/m/Y H:i:s"), posix_getpid(), $msg);
ется переменная. В первом случае это означает «хэш, ад- fwrite($handle, $formatted);
рес которого содержится в переменной $entries», а во вто- // Выход, если запрошено
if ($severity == "DIE") die($formatted);
ром – «первый элемент массива, адрес которого находит- }
ся в переменной $_login».
Значением переменной $_login становится логин теку- Я не нашел способа вывести строку в файл, кроме как
щей записи из AD (значение атрибута sAMAccountName). через fwrite(), хотя долго искал аналог С-функции fprintf().
Обратите внимание на то, как записано название атрибу- Поэтому вот так.
та – полностью в нижнем регистре! Если записать его здесь
«правильно» – поиск не даст результата. // Перекодировать строку из UTF-8 в KOI-8
// Вход: $1 source (string) - строка в UTF-8
Ищем, присутствует ли уже полученный логин в файле // Выход: dest (string) - строка в KOI8-R
Sarg userlist. Вот для чего мы и строили вспомогательный function _from_utf8($source) {
$converted = iconv("UTF-8", "KOI8-R", $source);
хэш %seen – чтобы воспользоваться возможностью поиска return($converted);
в хэше exists/not exists. Если не существует ключа, равного }
значению первого элемента массива, адрес которого нахо-
дится в переменной $_login (бррр! Одна маленькая строч- Реализация данной функции на PHP однако значитель-
ка на Perl превращается чуть ли не в сочинение, когда пы- но проще, чем на Perl. Наверное, даже в одну строчку мож-
таешься проговорить это словами...), то таким же образом но было бы уложиться.
получить отображаемое имя пользователя и, собственно,
сформировать строку, выводимую в файл Sarg userlist (по- // Файл регистрационного журнала
$logfile = "./gensarguserlist.log";
путно при этом перекодировав ее из UTF‑8 в KOI8-R), под- // Конфигурационный файл
считать выведенные строки, и, собственно, все. Все зак- $config = "./gensarguserlist.conf";
// Открыть файл журнала
рыть, ото всего отключиться... $handle = fopen($logfile, "a") or die(sprintf("Log file ↵

Вот так тоже проще


В заключение рассмотрим реализа-
цию данной задачи на языке PHP. Не-
смотря на то что он ориентирован в ос-
новном на веб-разработку, PHP мож-
но также использовать для разработ-
ки скриптов, запускающихся с команд-
ной строки (cli-скриптов). Для работы
скрипта потребуется расширение PHP
для работы с LDAP php5-ldap.
В отличие от скрипта на Perl, кото-
рый был разработан для использова-
ния, этот скрипт был разработан ис-
ключительно с демонстрационной це-
лью. Поэтому в нем отсутствуют неко-
торые вспомогательные компоненты
и текст приводится целиком. Структура массива данных в памяти после вызова result->as_struct

№12, декабрь 2008 53


администрирование
%s cannot open", $logfile)); for ($i = 0; $i < $info["count"]; $i++) {
// Прочитать конфигурационный файл и импортировать // Если логин отсутствует в файле Sarg userlist
// его переменные if (!in_array($info[$i]["samaccountname"], $presented)) {
if (!is_readable($config)) // Вывести строку с данными по отсутствующему логину
safe_logger($handle, sprintf("Config file %s does not ↵ $oneadd = sprintf("%s \t%s\n", ↵
exist or does not readable", $config), "DIE"); $info[$i]["samaccountname"], ↵
$_config = parse_ini_file($config); _from_utf8($info[$i]["displayname"]));
// Преобразовать пароль для подключения к LDAP fwrite($add, $oneadd);
// в читаемую форму // Подсчитать количество добавленных строк
$_ldap_pwd = demux_passwd($_config['ldap_password']); $_processed++;
}
}
Здесь ничего примечательного. Отмечу только, что
is_readable() проверяет сразу существование и читаемость, Вот, собственно, и основной цикл. Перед этим только
и конфигурационные файлы для parse_ini_file() должны быть файл Sarg userlist открывается для дополнения. Програм-
в формате php.ini, то есть с комментариями в виде знака ма в цикле перебирает все элементы массива, полученного
«;», прочие знаки комментариев дадут ошибку. после ldap_get_entries(). Для PHP нет необходимости «хит-
рого» преобразования массива в хэш, потому что массивы
// Подключиться к серверу LDAP в PHP – по сути хэши. Поэтому просто функцией in_array()
if (!$ldapconn = ldap_connect($_config['ldap_server']))
safe_logger($handle, sprintf("Cannot connect to ↵ проверяется наличие такого элемента в массиве уже при-
LDAP server $s", $_config['ldap_server']), "DIE"); сутствующих в файле Sarg userlist логинов, и, если такого
$ldapbind = ldap_bind($ldapconn, ↵
$_config['ldap_binddn'], $_ldap_pwd); нет, выбирается логин и отображаемое имя и формирует-
ся новая строка файла.
Подключаемся к серверу LDAP. Для подключения ис- Немного о структуре области данных, в которую бу-
пользуется $ldap_binddn из конфигурационного файла. дут помещены прочитанные из AD записи. Поскольку
в PHP массивы – это вовсе не массивы в привычном по-
// Путь к файлу Sarg userlist нимании, где данные в памяти идут друг за другом, а не-
$_sarglist = sprintf("%s/%s/%s", $_config['etcdir'], ↵
$_config['sargdir'], $_config['sarglist']); что настолько свободное, насколько себе можно предста-
// Обработано записей вить композитный объект данных, доступ к данным дела-
$_processed = 0;
// Атрибуты, которые будут запрошены из AD ется очень просто. Формально возвращаемые данные име-
$attrs = array("displayName", "sAMAccountName"); ют структуру двумерного массива, в котором элемента-
// Отобрать данные из AD
$result = ldap_search($ldapconn, $_config['ldap_basedn'], ↵ ми первого уровня являются отдельные записи, прочитан-
$_config['ldap_common_filter'], $attrs); ные из AD, а элементами второго уровня – массивы с клю-
// Загрузить полученные данные
$info = ldap_get_entries($ldapconn, $result); чами, равными именам атрибутов, и значениями, равны-
// Вывести количество записей в журнал ми прочитанным из AD значениям. Поэтому конструкция
safe_logger($handle, sprintf("Read %d records from server ↵
%s", $info["count"], $_config['ldap_server']), ""); $info[$i] даст нам ссылку на i-тый элемент массива данных,
а $info[$i]["displayname"] даст значение атрибута displayName
Сформировать массив с атрибутами, которые мы хотим i-того элемента массива.
получить из AD, выполнить поиск, используя $ldap_basedn
и общий фильтр, и загрузить полученные данные в массив // Записать результат в файл журнала
if ($_processed)
(о структуре этого массива будет сказано ниже): safe_logger($handle, sprintf("Added %d records ↵
in file %s", $_processed, $_sarglist), "");
ldap_unbind($ldapconn);
// Если файл Sarg userlist существует, попробовать прочитать
fclose($add);
// и разобрать его fclose($handle);
if (file_exists($_sarglist)) {
// Выйти с ошибкой, если файл существует, но не читается
if (!is_readable($_sarglist))
safe_logger($handle, sprintf("File %s cannot open ↵ Ну и завершить работу – записать, что сделано, все зак-
to read", $_sarglist), "DIE"); рыть, ото всего отключиться.
// Прочитать файл в массив
$lines = file($_sarglist);
// Разбить каждую строку и поместить первый элемент
// в массив
Заключение
foreach ($lines as $_oneline) { Несомненно, использование Perl или PHP для доступа
$pieces = explode(" ", $_oneline); к данным AD значительно упрощает программирование.
$presented[] = $pieces[0];
} Если только хорошо представлять себе, как организована
// Ну и вывести количество строк в журнал область данных, в которой размещаются считанные из AD
safe_logger($handle, sprintf("Read %d records from ↵
file %s", count($presented), $_sarglist),""); записи, да и от изучения языка запросов никуда не деться.
} Но это несравнимо с возможностями, которые получаешь
для обработки данных – ведь представленные скрипты вы-
В общем-то, ничего особенного в этой части нет. Файл чи- полняют всего лишь простейшие преобразования.
тается в массив целиком средствами PHP, хотя с таким же ус-
пехом это можно было бы сделать через построчное чтение. 1. http://openoffice.mirahost.ru – сайт, где выложены скрипты.
2. Колисниченко Д.Н. Самоучитель PHP5 – СПб.: Наука и Техни-
// Открыть Sarg userlist для пополнения ка, 2007. – 640 с., ил.
$add = fopen($_sarglist, "a+")
or safe_logger($handle, sprintf("Sorry, I could not open ↵ 3. Кристиансен Т., Торкингтон Н. Perl: Библиотека программис-
file %s for writing", $_sarglist), "DIE"); та. – СПб:Питер, 2001. – 736 с.:ил. ISBN 5-8046-0094-X.

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

Варианты очистки базы данных


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

Н
а интернет-форумах участи- лочную целостность, а удаляет объект но первоначальное заполнение ба-
лись вопросы примерно следу- из базы данных напрямую. зы данных.
ющего содержания: «Как соз- Примером может служить следу-
дать копию рабочей базы данных, что- ющий код: Четвертый способ
бы в ней не было документов, но при Способ наиболее наукоёмкий. При за-
этом сохранились бы все справочни- Процедура УдалитьДокументы() пуске «1С:Предприятие» добавляет-
Док = Создатьобъект ↵
ки?». То есть организации по разным ("Документ.ПриказПоОтпуску"); ся новая база, путь к ней указывает-
причинам приходят к тому, чтобы уда- Док.ВыбратьДокументы(); ся на пустую папку. При запуске в ре-
Пока Док.ПолучитьДокумент() = 1 ↵
лить накопившиеся обороты за не- Цикл жиме «Конфигуратор» будет создана
сколько лет и начать с нового года ра- Док.Удалить(1); чистая база данных.
КонецЦикла;
боту в новой чистой базе. Действитель- КонецПроцедуры Затем нужно через пункт меню
но, так ли это просто, удалить десятки «Конфигурация → Загрузить изменен-
тысяч документов? Обязательным условием будет яв- ную конфигурацию» загрузить файл
Существует несколько способов, ляться проведение полного тестиро- 1CV7.MD от текущей рабочей програм-
у каждого есть свои плюсы и минусы, вания и исправления базы в режиме мы. Таким образом, получим абсолютно
выбор наиболее подходящего остает- конфигуратора («Администрирова- чистую базу со всеми нужными струк-
ся за администратором. ние → Тестирование и исправление турами метаданных, но без введенных
Рассмотрим пример базы данных ИБ»). Но даже после тестирования ни- данных (справочников, документов).
«1С:Предприятия» платформы 7.7. кто не может дать гарантии работоспо- А так как документы нам и не нужны,
собности базы. Я бы оценил этот спо- то задача сводится просто к переносу
Первый способ соб как достаточно быстрый, но рис- справочников между двумя идентич-
С помощью типового инструмента «Об- кованный. ными конфигурациями! Для этого су-
работка документов» пометить на уда- ществует масса инструментов, начи-
ление все документы за период (на- Третий способ ная от типовых обработок (Import77.ert/
пример, за год). Затем опять же, с по- Физическое удаление файлов базы Export771.ert, TRANREF.ERT) и заканчи-
мощью встроенного механизма «Уда- данных, отвечающих за хранение доку- вая конфигурацией «Конвертация дан-
ление помеченных объектов», удалить ментов. Это файлы DBF, начинающие- ных», в которой, опять же, можно ис-
помеченные документы. ся с DH (шапки документов) и DT (таб- пользовать стандартные правила об-
Этот метод не требует каких-то спе- личные части), например DH665.DBF мена, исключив лишь оттуда обмен до-
циальных навыков и умений, им смо- или DT877.DBF. кументов. Для удобства можно также
жет воспользоваться даже бухгалтер Кроме того, следует удалить файл перенести сведения о пользователях,
или менеджер. Но, во-первых, дале- 1SCONST.DBF, хранящий в себе пери- скопировав подкаталог usrdef в каталог
ко не все документы удалятся, так как одические значения и константы (по- вновь созданной базы данных.
на них существуют ссылки в истории том установить нужные значения конс-
периодических значений справочни- тант в новой базе не составит большо- Итог
ков, во-вторых, данная процедура зай- го труда). Если оставить этот файл как Какой из способов наиболее предпоч-
мёт очень много времени, так как сис- есть, то база будет не пригодна к ра- тителен? Я бы отметил первый и чет-
тема контролирует ссылочную целост- боте, у справочников останется исто- вертый как самые корректные и бе-
ность данных, и при наличии большого рия периодических реквизитов, но до- зопасные. Но и другие варианты тоже
объема документов это может вылить- кументов, установивших эти значения, имеют право на существование, и если
ся в многочасовое ожидание оконча- уже не будет существовать. выполнять их осторожно, перед нача-
ния процесса. Тестирование и исправление ба- лом работы пользователей проверить
зы в этом случае будет просто необ- внимательно базу данных, то можно
Второй способ ходимо. В ходе процесса исправле- сэкономить массу времени. И не забы-
Чтобы избежать недостатков перво- ния вновь будут созданы файлы DH*. вайте делать архивные копии, как гла-
го метода, некоторые разработчики DBF, DT*.DBF и 1SCONST.DBF, но уже сит народная мудрость: «Архив лиш-
пишут свою собственную небольшую пустые. При первом запуске в режи- ним не бывает». Проверено, это каж-
программу, которая не проверяет ссы- ме «Предприятие» будет произведе- дый раз так!

№12, декабрь 2008 55


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

Меры безопасности для защиты


информации IT-службы

Лев Мышкин

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

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

Н
е секрет, что у любого системного администратора стая мера позволяет отсечь изменения, сделанные
рано или поздно возникает потребность в сверхуроч- сотрудниками IT‑отдела, от изменений, сделанных
ной работе. Однажды мне довелось остаться после посторонними лицами. Например, если осуществлял-
десяти вечера на работе. Надо отметить, работал я в весь- ся консольный вход в определенное время, а соот-
ма благополучной на первый взгляд компании. Офис был ветствующей записи в данном журнале нет, это да-
очень симпатичный, чистенький. Уборка проводилась ре- ет право предполагать, что пароль сотрудника и сер-
гулярно после десяти вечера. Ранее я не придавал особо- вер, на который осуществлялся доступ, были скомп-
го значения этому факту. Но тут довелось, что называется, рометированы. Например, в моем случае имел мес-
вживую увидеть, как она происходила. то инцидент, когда от провайдера пришла распечат-
Двери помещений не просто открывались, а распахива- ка с ошибочной статистикой, судя по которой, с теле-
лись настежь. Рабочие и другой персонал, в основном инос- фона из серверной осуществлялись звонки по всему
транные граждане СНГ, сновали туда-сюда, а вместе с ни- СНГ. Наличие журнала регистраций посещений поз-
ми задержавшиеся по той или иной причине допоздна со- волило выяснить и доказать, что это ошибка. Позд-
трудники офиса. Можно было запросто посидеть в дирек- нее оказалось, что это была статистика совсем другой
торском кресле или попить чаю в VIP-переговорной. компании.
А что же охрана? Ноль эмоций. Судя по реакции служ- n Блокировать серверную консоль. Первое и самое
бы безопасности, подобный «шабаш» происходил каждый строжайшее правило, которому необходимо следовать
вечер и был в порядке вещей. Камеры видеонаблюдения всю жизнь. Никаких оправданий наподобие «Я отошел
стояли в основном в коридорах, и в суматохе и сутолоке на одну минутку, за это время ничего не случится...».
проследить, кто куда ходил, практически было невозмож- Случится. И очень многое. Уходя из серверной ком-
но. Тем более что раскрытые по всему коридору двери не- наты, любой сотрудник обязан тщательно заблокиро-
минуемо должны были закрывать обзор для телекамер. вать все консоли на всех серверах, включая серверы,
И, естественно, подобная участь не миновала и поме- не входящие в его зону ответственности. В случае на-
щения IT-отдела. Дождавшись конца и выпроводив убор- личия консоли в свободном доступе немедленно со-
щиков из кабинета, я задумался о безопасности своего ра- общить сотруднику безопасности или руководителю
бочего места. Особенно мне не понравилась возможность отдела.
свободного проникновения сотрудников офиса в помеще- n Ограничить возможность работы с консоли (ис-
ние IT‑отдела. пользование клавиатуры и мыши). По возможнос-
Не секрет, что любая документация по инфраструктуре ти размещайте консоль управления серверами в запи-
IT и тем более компьютер администратора – лакомый кусо- рающемся стоечном шкафу или используйте USB‑кла-
чек не только для хакера, но и для недоброжелательно на- виатуру и мышь для управления серверами, которые
строенного офисного сотрудника, ведь бизнес-информа- впоследствии можно легко спрятать. Отсутствие воз-
ция – важная часть работы любой компании. можности подключить к серверу устройства ввода мо-
гут послужить весьма существенным препятствием для
Меры по защите оборудования кражи или порчи информации.
в серверной комнате n По возможности использовать двойные блоки пи-
Оборудование, размещенное в серверной комнате, нуж- тания в серверах, подключенные к разным UPS.
дается в защите от несанкционированного доступа. Си- Эта простая мера позволяет избежать ошибочного от-
туация усугубляется тем, что помимо кражи информации ключения сервера, например, при уборке. Случайно за-
злоумышленник может нанести ощутимый вред, просто детый провод может иметь губительные последствия
выключив то или иное устройство. Не говоря уже об унич- для бизнес-процессов компании. Особенно если дело
тожении информации или порче оборудования, посторон- касается серверов с файловой системой с отложенной
ний человек может натворить здесь много бед. записью (lazy file system). В этом случае может потре-
Рекомендую: боваться длительная процедура реанимирования фай-
n Запирать дверь в серверную. В ряде компаний ог- ловой системы или даже восстановление с резервной
раничиваются запиранием двери на магнитный замок копии. Если же на сервере 2 блока питания, случайное
системы контроля доступа. Это не совсем правильно, отключение одного из них не приведет к остановке сер-
так как в этом случае доступ могут получить сотруд- вера. Если же все серверы имеет более одного блока
ники службы охраны, уборщики помещений, электри- питания и подключены к разным источникам беспере-
ки и другие лица, присутствие которых в серверной, бойного питания (UPS), то даже отключение или сбой
мягко говоря, далеко не всегда необходимо. Лучше одного UPS не приведет к катастрофическим послед-
доверить сотруднику службы безопасности. (И толь- ствиям.
ко ему одному. Не следует «оставлять ключи охра-
не».) Все остальные «походы в серверную», напри- Описание мер по защите
мер, представителей электрослужбы или интернет- локальных ресурсов
провайдера должны осуществляться только с ведо- Следует сразу отметить, что мы не ставим своей целью
ма руководства IT‑отдела. создать некий непробиваемый барьер. Известное правило
n Вести журнал регистрации посещений серверной «100 долларов за безопасность» гласит: «Первые 90 про-
комнаты. В дополнение к первому пункту эта про- центов защиты стоят 10 долларов, оставшиеся 10 процен-

№12, декабрь 2008 57


безопасность
тов обойдутся в 90 долларов». Далее речь пойдет о «первых n По возможности огранить доступ к компьютеру.
10 долларах». Мне повезло, у меня служебный ноутбук, который мож-
но просто запереть в сейфе или на худой конец в ящике
Не проще ли все хранить на сервере? тумбочки, закрывающемся на ключ. Другое дело, если
Написано множество статей и книг о сетевой безопасности, приходится работать с настольным ПК. В этом случае
о том, как сделать сетевые ресурсы практически неуязви- могу посоветовать по возможности ограничить доступ
мыми для хакеров. Но весь этот накопленный опыт стано- к компьютеру, а также спрятать устройства ввода: мышь
вится бесполезным, когда любой сотрудник может получить и клавиатуру. Вряд ли «офисный гуляка», шатающийся
доступ в помещение IT-отдела. Какие же меры возможно по кабинетам в вечернее время, догадается прихватить
применить для повышения уровня безопасности в услови- с собой мышь и клавиатуру.
ях легкого доступа в помещение? n Использовать незнакомые форматы файлов. На-
Первый вопрос, который возникает: а не проще ли все пример, если в компании в качестве корпоративного
хранить на сервере? На первый взгляд ответ очевиден: стандарта используется MS Office, файлы в формате
да, проще. Но не всякую информацию разумно хранить OpenOffice могут весьма озадачить злоумышленника.
на сетевых ресурсах. Документы, содержащие ключевую В нашем случае было принято решение всем отделом
информацию доступа или информацию, необходимую перейти на использование OpenOffice и перевести всю
для восстановления работы серверного и сетевого обо- документацию, включая схемы сети и кроссировки СКС,
рудования (например: описание работающих служб, пере- в соответствующие форматы.
чень правил для firewall, список административных паро-
лей и т. д.), обязательно должны храниться на локальных Съемные носители
или съемных носителях. Иначе вполне возможно возник- На съемных носителях имеет смысл держать более или ме-
новение ситуации, описанной в известном анекдотичном нее постоянную информацию, менее подверженную изме-
высказывании: «Ключ от «срочной медицинской комна- нениям, а также резервную копию данных, которые хранятся
ты» хранится в «срочной медицинской комнате»». То есть на компьютере администратора. На сегодняшний день чаще
документы, необходимые для восстановления сервера всего используются флеш-накопители («флешки») и пере-
или любого другого сетевого ресурса, хранятся на этом записываемые диски DVD-RW (CD‑RW). Для обеспечения
самом ресурсе. их сохранности, а также для сохранения конфиденциаль-
Итак, что же нам остается? Либо хранить информацию ности информации могут помочь простые правила:
на компьютере, принадлежащем системному администра- n Вести учет съемных носителей. В ситуации, когда
тору, либо на съемном носителе, либо на «твердой копии», информация бесконтрольно записывается на болван-
то есть в распечатанном виде. Соответственно для каждо- ки или разносится на флешках, трудно определить,
го вида информации предпочтителен тот или иной способ что могло быть вынесено за пределы IT-одела, а что
хранения и соответственно свои методы защиты. осталось неприкосновенным. Если же ведется строгий
учет накопителей, на которых ведется запись резерв-
Компьютер системного администратора ных копий материалов IT‑отдела, то пропажа, скажем,
Здесь так или иначе приходится хранить какие-либо на- одного диска должна насторожить сотрудников и указать
броски, планы работ, схемы бэкапов и другую сиюминут- на необходимость принятия экстренных мер по предо-
ную информацию, которая может быть изменена в любой твращению несанкционированного использования за-
момент. Стандартная система установки пароля на опера- писанной на этом носителе информации.
ционную систему оставляет много возможностей для взло- n Хранить съемные носители, содержащие важную ин-
ма. Существует множество программ для сброса админис- формацию, а также дистрибутивы в запирающемся
тративного пароля как для Windows, так и для UNIX-плат- сейфе. Вкупе со строгим учетом данная мера позволит
форм. Поэтому нужны дополнительные меры по защите предотвратить кражу и несанкционированное копиро-
от несанкционированного доступа. Надо: вание информации об IT‑структуре. Кража дистрибу-
n Установить пароль на BIOS при загрузке компьюте- тивов с целью пиратского использования может свести
ра. Удивительно, как много неприятностей можно из- на нет дорогостоящие усилия по лицензированию про-
бежать этой простой превентивной мерой. Как прави- граммного обеспечения и навлечь неприятности с за-
ло, злоумышленник не имеет возможности получить коном. Хранение носителей с дистрибутивами в сейфе
в свои руки рабочую станцию в длительное использо- устраняет эту проблему.
вание. Поэтому снять крышку компьютера и обнулить n Хранить информацию на съемных носителях в за-
BIOS будет весьма сложно. К тому же сброс пароля даст шифрованном виде. Представим себе интересней-
понять, что компьютер скомпрометирован. шую ситуацию: у системного администратора пропа-
n Использовать средства шифрования. В случае если дает флешка с данными, в том числе файлы, содер-
злоумышленник все же получил доступ к аппаратной жащие пароли. Или еще интереснее: системный адми-
части компьютера и сумел получить доступ к файло- нистратор теряет флешку, например, по пути в сервер-
вой системе (например, снял жесткий диск), он не смо- ную. Где окажется данная флешка, сколько паролей при-
жет получить доступ к зашифрованной части данных. дется сменить после этого – будет весьма трудно ис-
На работе в служебных целях я использую программу кать ответы на данные вопросы. И самое главное, что
Secret Disk. делать это придется в кратчайшие сроки. Другое дело,

58
безопасность
если посторонний человек найдет на флешке один-единст-
венный зашифрованный файл (криптоконтейнер). Что- Реклама
бы получить доступ к зашифрованной информации, зло-
умышленнику потребуются некоторое, зачастую весь-ма
продолжительное время и определенная квалификация.
Большая же часть людей, найдя подобный носитель, поп-
росту сотрет непонятный файл и будет использовать флеш-
ку просто как устройство.

Твердая копия (распечатки)


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

Важное замечание. Во избежание утраты критически


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

Заключение
Небезызвестный Козьма Прутков писал: «Невозможно объ-
ять необъятное». Создание некоего единого свода правил,
позволяющего избежать любой возможности кражи или пор-
чи информации, и есть та пресловутая необъятная задача.
Но использовать ряд простых превентивных мер, способ-
ных в большинстве случаев остановить злоумышленника
при попытке нанести урон в сфере IT, вполне по силам лю-
бому системному администратору. Я описал именно те мето-
ды, которые помогли в вышеописанной ситуации. Перечень
и характер подобных мер могут весьма различаться в зави-
симости от возможностей и требований бизнеса.

№12, декабрь 2008 59


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

Безопасность в сетях,
построенных на Layer2-коммутаторах

Александр Неупокоев
В этой статье будет рассмотрено, как можно произвести атаки на Layer2-сети и как можно
защитить такую сеть от нападения с помощью оборудования Cisco Systems.

Типы Layer2-атак высокий приоритет и меньший MAC-адрес и тем самым


n Переполнение CAM-таблицы (Content Address стать «корневым коммутатором» с целью перехвата се-
Memory) – злоумышленник флудит таблицу MAC-ад- тевого трафика.
ресов коммутатора, к которому он подключен, с це- n MAC-спуфинг – злоумышленник может подменить MAC-
лью переполнения соответствующей таблицы. После адрес с целью захватить трафик необходимого ему уст-
переполнения CAM-таблицы, коммутатор начинает ра- ройства.
ботать в режиме простого хаба. То есть при получении n Атака на PVLAN – Private Vlan, это виланы, которые со-
кадра на порт коммутатора коммутатор рассылает кадр ставляют одну подсеть (как правило), и между хостами
на все порты, за исключением того, от которого пришел этого вилана связи быть не должно. Но злоумышленник
данный кадр. может получить доступ к соседнему устройству PVLAN
n VLAN Hopping – смысл атаки заключается в том, что посредством устройства L3 (роутера).
злоумышленник может получить доступ к другому уст- n Атака на DHCP – злоумышленник может заполнить весь
ройству в сети не из своего VLAN. пул DHCP с помощью генерации большого количества
n Атака на STP – смысл атаки заключается в том, что зло- запросов с несуществующими MAC-адресами. Что при-
умышленник с помощью программных средств может ведет к DOS-атаке, т.е. отказу в обслуживании, так как
отправить коммутатору пакет BPDU, в котором указать после заполнения пула сервер не сможет выделять ад-

60
безопасность
реса реальным хостам. После чего атакующий может под- switch(config-if-range)#switchport port-security
нять собственный DHCP-сервер, и хосты сети будут полу-
чать от недоверительного сервера все настройки, кото- Выбираем реакцию на нарушения нашей политики безо-
рые укажет злоумышленник. Например, он может напра- пасности, т.е. что будет коммутатор делать, когда на порту
вить весь трафик через свой хост и таким образом пере- появится больше MAC-адресов, чем нами указано. В дан-
хватить и просканировать его на предмет служебной ин- ном случае мы хотим, чтобы порт выключался и посылалось
формации. соответствующее сообщение по SNMP trap и syslog. Дан-
ную опцию можно не указывать принудительно, она дейс-
Рассмотрим эти атаки и меры борьбы с ними более твует по умолчанию.
подробно. Также существуют режимы: protect и restrict. Смысл этих
режимов заключается в том, что порт не будет выключать-
Переполнение CAM‑таблицы ся (т.е. переходить в состояние shutdown), а лишь будут
Коммутатор имеет CAM-таблицу, где содержится «привяз- блокироваться пакеты, если обнаружено нарушение, свя-
ка», какие MAC-адреса на каком порту принимаются. занное с MAC-адресами. Protect от Restrict отличается тем,
Разумеется, CAM-таблица не бесконечна и имеет свои что при возникновении внештатной ситуации restrict может
размеры. Например, коммутатор Catalyst 2960 может содер- послать snmp trap и syslog-сообщение о нарушении поли-
жать 8192 MAC-адресов, Catalyst 6000 серии – 128000 MAC- тики безопасности:
адресов.
Стоит подумать, а что же произойдет, когда вся таблица switch(config-if-range)#switchport port-security ↵
violation shutdown
будет занята? Новые записи не смогут добавляться, весь
трафик будет проходить на все порты. Соответственно указываем, сколько MAC-адресов мы
Что это даст атакующему вполне очевидно. Он может готовы увидеть на этом порту. В данном случае 1 MAC-ад-
«прослушать» весь сетевой трафик и получить конфеден- рес, значение 1, устанавливается по умолчанию.
циальную информацию.
Стоит отметить, что всё это действенно для VLAN, в ко- switch(config-if-range)#switchport port-security maximum 1
тором находится злоумышленник, т.е. после переполнения
данной таблицы атакующий не сможет прослушивать весь Поставим порт коммутатора в режим обучения, т.е. пер-
сетевой трафик, который «ходит» через коммутатор, а лишь вый MAC-адрес, который будет получен через этот порт, бу-
своего VLAN, но и это не очень радостно. дет прописан автоматически в running-config. Запись будет
Какие же существуют способы борьбы с данным ви- сохраняться до тех пор, пока не будет перезагружен комму-
дом атаки? татор. Либо если выполнить команду «copy running-config
Логика подсказывает, что для подавления такой атаки startup config» (или просто wr), то значение привязки MAC-
нам необходимо указать, что на порту коммутатора, к ко- адреса к порту будет сохранено и в дальнейшем может ис-
торому подключен пользователь, может быть, скажем, пользоваться даже после перезагрузки коммутатора.
не больше одного MAC-адреса, а в случае если появляет-
ся более одного, перевести порт в отключенное состояние switch(config-if-range)#switchport port-security ↵
mac-address sticky
и отправить сообщение администратору о нарушении бе-
зопасности (например, на syslog-сервер). Данной меры вполне достаточно, чтобы избежать ата-
Рассмотрим на примере. Допустим, у нас есть комму- ки на переполнение CAM-таблицы.
татор Cisco Catalyst 2960 и 24 порта, к которым подклю- Команда для просмотра установок, сделанных на пор-
чены пользователи. Нужно сделать так, чтобы на каждом тах, связанных с port-security:
порту мог быть только один хост (иными словами, только
один MAC-адрес). show port-security
Для этого заходим в режим глобального конфигури-
рования: Пример:

switch# conf t catalyst#show port-security


Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
(Count) (Count) (Count)
Затем перейдем к конфигурированию портов, выберем ---------------------------------------------------------------------------
сразу все, с 1 по 24: Fa0/1 2 2 38174 Restrict
Fa0/2 2 2 21601 Restrict
Fa0/3 3 3 6346 Restrict
switch(config)#int range f0/1 Fa0/4 2 2 34777 Restrict
Fa0/5 2 2 0 Restrict
skipped
Fa0/48 2 2 26 Restrict
Затем укажем, что все эти порты являются портами ---------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port) : 35
доступа: Max Addresses limit in System (excluding one mac per port) : 8320

switch(config-if-range)#switchport mode access Следующая команда покажет вам, на каких портах вклю-
чен port-security и как они сконфигурированы относитель-
Включаем защиту порта port-security: но безопасности port-security:

№12, декабрь 2008 61


безопасность
show port-security interface имя_интерфейса switch(config-if)#switchport mode trunk

Пример: Для неактивных портов создадим специальный VLAN,


скажем, под номером 666, дадим ему имя unconnected и пе-
catalyst#show port-security int ренесем все неиспользуемые порты в этот самый VLAN
ASW-ZU2#show port-security interface f0/1 и сделаем им shutdown.
Port Security : Enabled Создаем VLAN.
Port Status : Secure-up
Violation Mode : Restrict
Aging Time : 0 mins switch(conf)#vlan 666
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 2 Даем ему имя:
Total MAC Addresses : 2
Configured MAC Addresses : 0 switch(config-vlan)#name Unconnected
Sticky MAC Addresses : 2 switch(config-vlan)#exit
Last Source Address:Vlan : 001b.d491.4b1a:1
Security Violation Count : 38176 Переносим необходимые нам порты (например, с 12
по 24) в созданный VLAN.
В отличие от предыдущей команды вывод покажет на-
стройки конкретного интерфейса. switch(conf)#int range f0/12 - 24
switch(config-if-range)#switchport access vlan 666
switch(config-if-range)#shut
VLAN Hopping
Рассмотрим более подробно данный вид атаки, способ ре- Описанные настройки позволят противостоять атакам
ализации и как ее предотвратить. типа VLAN Hopping.
Цель данной атаки в том, что пользователь может попы-
таться передать данные в другой VLAN. Давайте рассмот- Атака на STP
рим, как это сделать. Как подсказывает логика, это возмож- Как известно, STP (Spanning Tree Protocol) – это протокол,
но, когда атакующий может инициировать trunk-режим. предназначенный для предотвращения зацикливания па-
В коммутаторах Cisco Catalyst по умолчанию порт ра- кетов в сети, при наличии дублирующих маршрутов. Рас-
ботает не в режиме mode access и не в режиме mode trunk, скажу вкратце, как он работает.
таким образом, на порту работает протокол DTP (Dynamic Сначала происходит обнаружение коммутаторов, кото-
Trunk Protocol). рые связаны между собой. Затем выбирается так называе-
В такой ситуации стоит атакующему «притвориться» мый Root Bridge, т.е. главный «корневой коммутатор». Да-
коммутатором, как между ними будет установленно тран- лее по специальному алгоритму будут заблокированы пор-
ковое соединение, и соответственно будут доступны VLAN, ты коммутатора, которые создают петли в получившейся
сконфигурированные на коммутаторе, и после чего пере- топологии. Более подробно работу STP мы не будем рас-
дать данные в другой VLAN не составит труда. Бороться сматривать.
с этим не легко, а очень легко. Что может сделать атакующий?
Для начала нужно все используемые интерфейсы Атакующий может также «притвориться» коммутатором,
коммутатора принудительно перевести в режимы access направить в сторону коммутатора BPDU-пакет, в котором
и trunk, где это положено. Неиспользуемые порты необхо- он может подделать приоритет, MAC-адрес, для того что-
димо перевести в shutdown, и перенести их в несуществу- бы стать «корневым коммутатором» и с его помощью пе-
ющий VLAN, который будет известен только данному ком- рехватить сетевой трафик.
мутатору, т.е. не передаваться по trunk-портам другим ком- Корневым коммутатором становится тот, у которого са-
мутаторам. мый высокий приоритет. Если приоритет у нескольких ком-
Для перевода порта в режим доступа необходимо пере- мутаторов одинаковый, то для выбора корневого коммута-
ключиться в режим глобального конфигурирования: тора используется MAC-адрес, у кого он меньше, тот и ста-
новится корневым.
switch# conf t Постараемся избавиться от этой уязвимости. Что для
этого необходимо?
Заходим в настройку порта: n Запретить хождение BPDU-пакетов с портов, в кото-
рых мы точно знаем, что там нет никаких коммутато-
switch(conf)#int f0/1 ров. И в случае если такой пакет всё же пришёл, пере-
водить этот порт в shutdown.
Принудительно указываем режим доступа: n Обезопасить наш корневой коммутатор, чтобы ни
при каких условиях не мог быть выбран другой корне-
switch(config-if)#switchport mode access вой коммутатор, в том числе и наш атакующий (атаку-
ющему не составит труда поставить приортитет лучше,
Для того чтобы перевести порт коммутатора в режим чем у настояшего главного коммутатора, и MAC-адрес
trunk, в режиме конфигурации интерфейса выполните сле- поменьше, что будет гарантировать, что атакующий
дующую команду: представляется root).

62
безопасность
Перейдем к реализации данной идеи непосредствен- Указать MAC-адреса статически, динамически либо
но на коммутаторе. в режиме обучения.
Для начала на всех портах доступа поставим специаль- Для указания статического MAC-адреса, в режиме кон-
ный режим STP, который называется portfast. После это- фигурирования интерфейса необходимо выполнить:
го клиент, подключенный к такому порту, не будет прини-
мать участия в разрешении маршрутов по алгоритму STP, switch(config-if)# switchport port-security mac-address ↵
3234.2343.fa12
и данные будут передаваться ему сразу. Если данная опция
включена не будет, то сначала подключенный клиент ини- где 3234.2343.fa12 – MAC-адрес клиента.
циирует пересчет маршрутов по алгоритму STP (это может Для указания динамического MAC-адреса ничего до-
занять достаточно много времени, десятки секунд и даже полнительного не делается, необходимо только включить
больше), и лишь после того будут начинать передаваться функцию port-security, как было описано выше.
пользовательские данные через порт. Чтобы указать режим обучения MAC-адресов, необхо-
По умолчанию portfast на Cisco Catalyst отключен, и это димо выполнить в режиме конфигурирования интерфей-
нужно будет сконфигурировать вручную. са команду:
Будем конфигурировать Portfast на портах f0/1 – 24.
switch(config-if-range)#switchport port-security ↵
mac-address sticky
switch# conf t
switch(config)#int range f0/1 - 24
switch(config-if-range)#spanning-tree portfast Указать время жизни записей ARP-таблицы. Рассмот-
рим пример, в котором установим максимальное количест-
Далее укажем, что на этих портах хождение BPDU-паке- во адресов на порту равным 1, действие shutdown и укажем,
тов противопоказано, для этого в режиме глобальной кон- что ARP‑таблица имеет таймер в 60 секунд.
фигурации необходимо сделать следующее:
switch# conf t
switch(config)#int range f0/1 - 24
switch(config)#spanning-tree portfast bpduguard default switch(config-if-range)#switchport mode access
switch(config-if-range)#switchport port-security
switch(config-if-range)#switchport port-security ↵
Теперь при появлении на портах, на которых указан ре- violation shutdown
жим STP portfast, BPDU-пакета, порт будет отключаться, switch(config-if-range)#switchport port-security maximum 1
switch(config-if-range)#arp timeout 60
т.е. переходить в режим shutdown.
И последнее, необходимо обезопасить наш Root Bridge. В этом примере все порты коммутатора FastEthernet
Для этого необходимо перейти в конфигурацию интер- с 1 по 24 переведены в режим доступа, применена тех-
фейса, к которому подключен другой коммутатор, и сде- нология port-security. На каждом порту может находиться
лать следующее: лишь один клиент одновременно, об этом говорит коман-
да «switchport port-security maximum 1», данный параметр
switch(config)# int f0/1 установлен по умолчанию, и поэтому в конфигурационном
switch(config-if)spanning-tree guard root
файле этой команды видно не будет. В случае если на пор-
Теперь, в случае если появится злоумышленник и на- ту появилось сразу два и более MAC-адреса, порт перево-
правит в сторону коммутатора пакет BPDU с максималь- дится в режим shutdown. Команда «arp timeout 60» говорит
ным приоритетом и меньшим MAC-адресом, это не позво- о том, что MAC-адрес будет находиться в ARP-кэше 60 се-
лит стать ему «корневым коммутатором» кунд без обновления.

MAC Spoofing Атака на PVLAN (Private VLAN)


MAC Spoofing – это атака, реализуемая путем подделыва- В технологии PVLAN в отличие от VLAN порты могут нахо-
ния MAC-адреса, например, атакующий может подделать диться в трёх режимах:
MAC-адрес, который использовал другой хост сети. Что это n Isolated;
может дать атакующему, зависит от политики безопасности n Promiscuous;
сети. Для того чтобы предотвратить данный тип атаки, необ- n Community.
ходимо выполнить меры, которые описаны в разделе «Пе-
реполнение CAM-таблицы», т.е. необходимо указать макси- Порты, которые отмечены как Isolated, не могут пе-
мальное количество MAC-адресов на порту, указать дейст- редавать данные в своем VLAN между клиентами. Дан-
вие, которое будет выполнено в случае нарушения нашей ные передаваться могут только между портами Isolated
политики (shutdown, restrict, protect). и Promiscuous.

№12, декабрь 2008 63


безопасность
Порты Promiscuous – это порты в PVLAN, в которые мож- ся уже по своему усмотрению, начиная от прослушивания
но передавать данные со всех портов Isalated и Community, трафика до подделки DNS-ответов, и т. д.
как и в обычном VLAN. Если в сети существует несколько DHCP-серверов,
Community – это группы портов, между членами которых то на запрос будут отвечать все серверы, но клиентом бу-
можно передавать данные, можно назвать VLAN во VLAN. дет обработан только первый ответ. Какой из DHCP-серве-
Если атакующему доступно устройство Layer 3 (напри- ров ответит быстрее и чей ответ быстрее дойдет до клиента
мер, маршрутизатор либо коммутатор третьего уровня), зависит от многих факторов, таких как: загрузка DHCP‑сер-
он может установить связь между клиентами, которые на- вера, загрузка сети и т. д.
ходятся в одном PVLAN, между портами Isolated. Как это Для того чтоб злоумышленник был уверен, что именно
можно реализовать? от его DHCP-сервера клиент получит ответ, атакующим мо-
Пользователь может подделать пакет, в котором он жет быть предварительно произведена DoS-атака на легаль-
укажет в IP-адресе назначения необходимое ему устройс- ные DHCP-сервера способом, описанным в 1‑м пункте.
тво (которое находится на другом порту Isolated), источ- В технологии DHCP Snooping существует понятие дове-
ник останется без изменения, а вот в качестве MAC-адре- рительных и недоверительных портов (trusted и untrusted со-
са назначения он укажет MAC-адрес устройства L3. L3-ус- ответственно). Доверительные порты – это порты, с которых
тройство получит данный пакет и может переправить его может приходить ответ DHCP (DHCPOFFER и так далее),
по указанному адресу. Принимающая сторона может сде- а недоверительные порты – это порты, с которых не могут
лать то же самое, тем самым обеспечив передачу данных приходить ответы DHCPOFFER.
между Isolated-портами. Доверительные порты указываются вручную. Все пор-
Предотвращение такой атаки сводится к тому, что на ус- ты, которые не указаны доверительными, автоматически
тройстве L3 создается специальный Access List, в котором становятся недоверительными. Порт, который непосред-
запрещается прямая передача данных между сегментом ственно подключен к DHCP-серверу, должен быть объяв-
сети. Рассмотрим пример настройки. лен как доверительный (trust порт).
DHCP Snooping настраивается для каждого VLAN. Для
router#conf t настройки DHCP Snooping необходимо сначала включить
router(config)#ip access-list extended pvlan
router(config-ext-nacl)#deny ip 10.0.0.0 0.0.0.255 ↵ snooping в режиме глобальной конфигурации, затем вклю-
10.0.0.0 0.0.0.255 чить на нужном VLAN, затем указать trust-порты. Рассмот-
router(config-ext-nacl)#permit any any
router(config-ext-nacl)#exit рим на примере.
router(config)#int f0/1
router(config-if)#ip access-group pvlan in switch(config)# ip dhcp snooping
switch(config)# ip dhcp snooping vlan 10
Таким образом был создан список управления доступом switch(config)#int f0/1
под названием PVLAN, в котором указывается, что с сети switch(config-if)#ip dhcp snooping trust
10.0.0.0/24 запрещено передавать данные в 10.0.0.0/24, всё
остальное разрешено. И этот список доступа последней ко- В данном примере мы включили защиту DHCP на
мандой был связан с интерфейсом f0/1. VLAN 10. Интерфейс f0/1 у нас подключен непосредственно
Описанные выше настройки не позволят атакующему к DHCP-серверу, поэтому на нем мы включили trust.
установить связь между клиентами одного PVLAN, между Также можно включить или выключить опцию 82 DHCP
Isolated-портами используя L3-устройство. (которая отвечает за информацию relay, т.е. через какие
коммутаторы прошёл данный пакет, аналогию можно про-
Атака на DHCP вести с таблицей маршрутизации). Делается в режиме гло-
Существуеет несколько способов атаковать DHCP-сервер. бального конфигурирования командой:
1. Злоумышленник может сформировать и послать
DHCP-серверу огромное количество DHCP-запросов с раз- switch(config)#ip dhcp snooping information option
ными MAC-адресами. Сервер будет выделять IP-адре-
са из пула, и рано или поздно весь DHCP-пул закончится, Также есть возможность включить ограничение количес-
после чего сервер не сможет обслуживать новых клиен- тва запросов DHCP в секунду. Делается это на интерфейсе,
тов. Данный вид атаки можно классифицировать как DoS в нашем случае f0/1. К этому параметру нужно относиться
(Denial of Service – откзаз в обслуживании). Нарушается ра- с осторожностью. Если количество запросов в секунду бу-
ботоспособность сети. дет больше, чем мы указали (в нашем примере 100), то за-
Метод борьбы с такими атаками называется DHCP просы будут отклонены.
Snooping. Вкратце рассмотрим, как это работает. Когда ком-
мутатор получает пакет, то он сравнивает MAC-адрес, ука- switch(config)#interface fa0/1
switch(config-if)#ip dhcp snooping limit rate 100
занный в DHCP-запросе, и MAC-адрес, который был пропи-
сан на порту коммутатора. Если адреса совпадают, то ком-
мутатор отправляет пакет дальше. Если адреса не совпа- Заключение
дают, то коммутатор отбрасывает пакет. В статье мы рассмотрели основные виды Layer 2-атак, и рас-
2. Злоумышленник может поставить свой DHCP-сер- смотрели, как с ними можно бороться. Описанные меры
вер и выдавать свои настройки пользователям сети (мо- должны применяться комплексно, для повышения безо-
жет указать любой DNS, Gateway и т. д.), и воспользовать- пасности сети в целом.

64
bugtraq

Уязвимости при обработке Множественные уязвимости в Adobe AIR


DHCP‑запросов в Sun Solaris Программа: Adobe AIR 1.1 и более ранние версии.
Программа: Sun Solaris 8, 9, 10. Опасность: Высокая.
Опасность: Средняя. Описание: 1. Уязвимости существуют из-за ошибок при об-
Описание: 1. Уязвимость существует из-за ошибки про- работке SFW-файлов. Удаленный пользователь может с по-
верки границ данных в in.dhcpd при обработке DHCP-за- мощью специально сформированного SFW-файла выпол-
просов. Удаленный пользователь может вызвать перепол- нить произвольный код на целевой системе.
нение буфера. 2. Уязвимость существует из-за неизвестной ошибки,
2. Уязвимость существует из-за неизвестной ошибки которая позволяет выполнение недоверенного JavaScript-
в in.dhcpd при обработке DHCP-запросов. Удаленный поль- кода с повышенными привилегиями при загрузке данных
зователь может с помощью специально сформированного из внешнего источника.
DHCP-запроса аварийно завершить работу DHCP-сервера URL производителя: www.adobe.com.
или выполнить произвольный код на целевой системе. Решение: Установите последнюю версию 1.5 с сайта про-
URL производителя: www.sun.com. изводителя.
Решение: Установите исправление с сайта производителя.
Уязвимость в протоколе SMB
Множественные уязвимости в Microsoft Windows
в Trend Micro ServerProtect Программа: Microsoft Windows 2000, Microsoft Windows XP,
Программа: Trend Micro ServerProtect for EMC Celerra 5.7 Microsoft Windows 2003, Microsoft Windows Vista, Microsoft
и 5.58, возможно, другие версии; Trend Micro ServerProtect Windows 2008.
for Network Appliance Filer 5.7 и 5.58, возможно, другие вер- Опасность: Средняя.
сии; Trend Micro ServerProtect for Windows/NetWare 5.7 и 5.58, Описание: Уязвимость существует из-за ошибки при обра-
возможно, другие версии. ботке NTLM-данных в Microsoft Server Message Block (SMB)-
Опасность: Средняя. протоколе, когда пользователь подключается к SMB-серве-
Описание: 1. Уязвимость существует из-за ошибки в процес- ру, контролируемому злоумышленником. Удаленный поль-
се RPC-аутентификации. Удаленный пользователь может зователь может обратно отослать аутентификационные
получить административный доступ к RPC-интерфейсу. данные пользователя и получить доступ к системе с при-
2. Уязвимость существует из-за различных ошибок в ре- вилегиями пользователя, попытавшегося подключиться
ализации некоторых RPC-процедур. Удаленный пользова- к злонамеренному SMB-серверу.
тель может вызвать переполнение динамической памяти URL производителя: www.microsoft.com.
и выполнить произвольный код на целевой системе. Решение: Установите исправление с сайта производителя.
URL производителя: www.trendmicro.com.
Решение: В настоящее время способов устранения уязви- Уязвимость при обработке
мости не существует. X.509‑сертификатов в GnuTLS
Программа: GnuTLS версии до 2.6.1.
Множественные уязвимости Опасность: Средняя.
в Sun Java System Identity Manager Описание: Уязвимость существует из-за ошибки при про-
Программа: Sun Java System Identity Manager 6.0, 7.0 и 7.1 верке подлинности цепочки X.509-сертификатов. Удален-
Опасность: Средняя. ный пользователь может подделать имя и произвести ата-
Описание: 1. Уязвимость существует из-за недостаточной ку «человек посередине».
обработки входных данных. Удаленный пользователь может URL производителя: www.gnu.org/software/gnutls.
с помощью специально сформированного запроса выпол- Решение: Установите последнюю версию 2.6.1 с сайта про-
нить произвольный код сценария в браузере жертвы в кон- изводителя.
тексте безопасности уязвимого сайта.
2. Уязвимость существует из-за неизвестной ошибки, Отравление DNS-кеша
относящейся к CSRF-атакам. Удаленный пользователь мо- в Sun Solaris IP Filter
жет получить неавторизованный доступ к административ- Программа: Sun Solaris 10.
ному интерфейсу. Опасность: Средняя.
3. Уязвимость существует из-за неизвестной ошиб- Описание: Уязвимость существует из-за ошибки при об-
ки, которая позволяет удаленному пользователю полу- работке DNS-трафика. Удаленный пользователь может
чить неавторизованный доступ к файлам на IDM-файло- отправить DNS-кеш и произвести спуфинг-атаку. Для ус-
вой системе. пешной эксплуатации уязвимости IP Filter (ipfilter(5)) дол-
4. Уязвимость существует из-за неизвестной ошиб- жен быть сконфигурирован для трансляции адресов (NAT)
ки, которая позволяет внедрить произвольное содержи- на DNS-сервере.
мое в фреймы. URL производителя: www.sun.com/software/solaris.
URL производителя: www.sun.com/software/products/ Решение: Установите исправление с сайта производителя.
identity_mgr/index.jsp.
Решение: Установите исправление с сайта производителя. Составил Александр Антипов

№12, декабрь 2008 65


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

Цель – стать лучшими разработчиками ПО


в сегменте туристического бизнеса

«Я очень не люблю субординацию. У нас нет начальников. Авторитет и знания отдельных


людей делают их безусловными лидерами без должностей».

Х
очешь не хочешь, а детство, вос- оборот. Одно дело, когда ты рассуж- не только доволен своей жизнью, но и
питание, дворовые друзья ока- даешь о воспитании абстрактно, дру- приносит пользу обществу.
зывают влияние на судьбу. Ка- гое – когда это касается твоих детей.
залось бы, что на жизни сказывает- Как добиться того, чтобы они не попа- Неужели в жизни не было ошибок?
ся всё, но наш герой думает, что на- ли в плохую компанию и не набрались Есть ли что-то, о чём вы сожалеете,
ибольшее влияние на формирование плохого? Наиболее правильно расска- что поступили не так?
его взглядов и жизненной позиции зать детям, что есть хорошо и что есть Ошибок громадное количество. Меня
оказали люди, общением с которыми плохо, научить отличать одно от дру- пугают люди, которые ни о чём не жа-
и их отношением к нему он очень до- гого и предоставить самостоятель- леют.
рожил и дорожит. ный выбор.
Я не могу с ним не согласиться, Мне кажется, что с Антоном Васи- Антон Васильевич, где вы родились?
так как случается, что в плохих усло- льевичем Россихиным так и случилось Где вы росли?
виях вырастают очень талантливые в жизни, он сделал правильный вы- Родился я в городе Жуковском – цент-
люди, а когда «всё есть», бывает и на- бор своей профессии, поэтому сейчас ре отечественной авиации. Хорошо

66
человек номера
рос. Ну, в том смысле, что всё было ние для ведения реестров акционе- са, цель – быть лучшими в своём сег-
в свое время. ров. Мы выиграли тендер ЕБРР, и, по- менте.
жалуй, половина владельцев ваучеров
Какие были мечты в детстве, сбы- России учитывались на нашем софте. Является ли фирма частью вашей
лись ли они? Наверняка вы мечта- Первый чековый, Первый ваучерный, жизни?
ли стать лётчиком или космонав- Программа приватизации, РАО ЕЭС Как работа может не быть частью жиз-
том, может, у вас сейчас есть част- России... иных уж нет, а те... Но спра- ни – загадка. Если человек проводит
ный самолёт? ведливости ради надо сказать, что ещё на работе большую часть жизни в луч-
Сказать, что живя в Жуковском, во дво- и в этом году звонили пользователи то- шем своём возрасте и считает, что это
ре, где жили лётчики-испытатели го ПО – значит, работает! До сих пор! не часть его жизни – это катастрофа!
и в который захаживал Юрий Гагарин, Тема была выбрана верно, и мы долгие
я не хотел неба – значит слукавить. Хо- годы занимали в ней лидирующие по- Если работа – это жизнь, то, может,
тел в разные времена быть путешест- зиции. Но, слава богу, период ваучер- вспомните интересные случаи из
венником, дипломатом, военным. Са- ной приватизации в России оказался жизни?
молёта нет, но летать путешествуя не таким долгим, и появилась необхо- Трудно выделить что-то. Вся жизнь уди-
или по работе люблю. димость в новой теме. вительно интересная штука. Чем доль-
Как-то на дне рождения одного ше живу, тем больше удивляюсь.
C детством понятно, обычные меч- из многочисленных родственников
ты советского мальчишки. А где разговорился с владельцем неболь- Читателям наверняка будет интерес-
вы учились, как шли к целям? Или шой туроператорской компании, ко- но не только мнение о вашей фир-
они возникли лишь в институте или торый жаловался на сложности уп- ме и её перспективах, но и прогно-
после? равления, учёта и анализа в туризме. зы о рынке программного обеспече-
Окончил школу с углублённым изу- Первичную задачу учёта и составле- ния, ваше отношение к Open Source
чением английского языка. Поступил ния списков можно было легко решить, и взгляды на будущее. Сейчас, я по-
в МАДИ на экономический факультет. трансформировав нашу программу нимаю, все продукты «САМО-Софт»
С четвёртого курса работал на кафед- ведения реестра акционеров, и уже являются закрытыми.
ре прикладной математики, туда же на следующий день, придя на работу, Компании давно пора выходить на меж-
и распределился, но проработал все- я дал первое задание по новой задаче. дународные рынки более агрессивно.
го неделю. Было это в августе, а уже в январе сле- Но здесь надо признать недостаточ-
дующего года на выставке в Сочи мы ность собственного образования. Зна-
Почему неделю, что случилось? заключили первый договор на внедре- чит, нужны люди с соответствующим
Долго объяснять, мой научный руково- ние в крупнейшей на тот момент турец- опытом и образованием. То, что наше
дитель ушел с кафедры ровно когда я кой туроператорской компании. ПО работает в Турции, Египте, Черно-
туда распределился, и именно он по- Оказалось, что на рынке ПО для ту- гории, Греции, Албании, Чехии, Гру-
том забрал меня в ГУИ Совмина. ристических компаний в 1995 году поч- зии, ОАЭ, Тунисе, Таиланде и т. д., го-
А ещё, я и в армии служил лейте- ти не было конкуренции. Естествен- ворит о том, что мы можем реально
нантом, после двух лет работы на ав- но, от той первичной и наивной поста- расширить своё присутствие на зару-
токомбинате. Не думаю, что это всё бу- новки задачи, которая была в 1994 го- бежных рынках, так как поставки в вы-
дет интересно читателям, хотя это то- ду, через пару лет не осталось и сле- шеперечисленные страны произошли
же часть моего прошлого. да, и пришло понимание ёмкости сто- без каких-либо маркетинговых уси-
ящих задач. лий. Что касается Open Source, кри-
Хорошо, а как случилось, что воз- Сегодня из того простенького про- зис и системные администраторы всё
никла мысль начать своё дело? екта выросло ещё как минимум 7: это и активнее двигают нас навстречу от-
Как получилось, что образовалась софт принимающего туроператора, крытому коду.
фирма? и системы online-бронирования, и по-
Мои старшие товарищи доверили мне исковые системы, и агентский софт. А ваша личная жизнь? Увлечения,
ещё в 1991 году стать руководителем Надо сказать, что ещё как минимум хобби и прочее?
«САМО-Софт». Это был очень щедрый столько же задач уже почти сложились Хобби у меня нет. Я много путешест-
аванс. Оглядываясь назад, понимаю, и ждут своего часа. вую, только в этом году я был в Герма-
насколько наивными были мои взгля- Внедряют наши решения наши нии, в Швейцарии, Италии, на Украине
ды и действия. партнёры в Киеве, Екатеринбурге, Пе- и в Киргизии и, самое главное, с колле-
Изначально мы не хотели менять тербурге, Анталье. Надеюсь, список гами в горном Алтае на Телецком озе-
тематику, которой занимались, и по- этот будет расти. ре. Теперь, когда дети выросли, чаще
пытались продвигать наши разработ- всего путешествуем вдвоём с женой.
ки в области прогнозирования земле- Нельзя ли подробнее, например, не- Сын изучает японский в МГУ. Вот у него
трясений и их последствий. Но в де- много статистики про вашу фирму? хобби на всю семью. И музыка (скрип-
вяностых эта тема не была востребо- В компании 25 человек, направление ка, гитара, ударные), и фотографиро-
вана. Зато приватизация шла во всю, деятельности – разработка приклад- вание, и бадминтон... Дочь в этом го-
и мы создали программное обеспече- ного ПО для туристического бизне- ду окончила университет и пошла ра-

№12, декабрь 2008 67


человек номера
ботать в школу учителем английского Но программирование еще и твор- ваете, как расставляете приоритеты,
языка. Очень светлый человечек. Но, ческая работа, отнимающая много фирма развивается, и у вас крепкая
понятно, у них, у детей, уже очень мно- времени, а у вас работает много де-
дружная семья, каков секрет?
го своего. Хотелось бы оставаться ин- вушек, не мешает ли их профессияРабота у меня приятная и интересная,
тересным для них. семейной жизни? но это, слава богу, лишь часть моей
Долгие годы я принципиально ограни-
жизни. Успеваю я, увы, далеко не всё,
Как-то всё очень красиво получает- чивал количество женщин в коллекти-что планирую. Время разделяется са-
ся, интересно, как у вас складыва- ве, но теперь понимаю, что это быламо. Бывают периоды, когда много ра-
ются отношения с коллегами, парт- ошибка. Возможно, хотя и не всегда боты и есть ясные цели и все время
нёрами и с конкурентами? это так, изящные решения и нестан-
подчинено достижению этих целей.
Коллеги – это большей частью близ- дартные подходы свойственны мужчи- А бывает, что созданные механизмы
кие мне люди, ведь со многими из них нам. Но любая работа в конечном итоге
работают и появляется время на книги,
мы вместе более 10 лет, с немноги- требует методичности, аккуратности и
театры и путешествия, благо жена моя
большая умница и большой в этом де-
ми – более 15. Я очень не люблю су- должна быть доведена до логического
бординацию. У нас нет начальников. конца. И вот тут женщины незамени- ле специалист. А ещё она специалист
Авторитет и знания отдельных лю- мы абсолютно. «Гении мужчины», най- в области кулинарии – как известно,
дей делают их безусловными лидера- дя решение, иногда утрачивают инте-путь к сердцу... он известно через что
ми без должностей. Хотя я отдаю се- рес к конечному результату – и так все
лежит. Готовит прекрасно и умеет оце-
бе отчёт, что дальнейший рост компа- ясно! Природное умение женщин дово-
нить кухни разных народов, особенно
нии лишит её приятности «семейных» дить процесс до логического заверше-
любит японскую, ну и я против япон-
отношений. К партнёрам отношение ния оказывается не менее важной со- цев ничего не имею. А ещё могу с уве-
уважительное. Наша работа сродни ставляющей нашей работы, чем само ренностью сказать, что столько, сколь-
работе врача: наши партнёры долж- решение. Опять же эстетическая со- ко сделала моя жена для наших детей,
ны быть здоровы, мы должны знать ставляющая. Огромное значение име- сделали и делают очень немногие ма-
средства профилактики, и, конечно, ет и образование. У нас многолетнийтери. И это при том, что в своей про-
«не навреди» и врачебная тайна. Кон- договор о подготовке для нас сотруд-
фессиональной области (доктор) она
куренты у нас замечательные. Дай бог ников с МГТУ им. Баумана. Так вот, две
специалист высшего класса.
им здоровья. красавицы и умницы, которых нам под-
А если уж совсем серьезно, то у лю-
готовил МГТУ за прошедшие три года,
дей всегда есть конфликты и поводов
Наверное, есть достижения в жизни стоят многих программистов мужско- разбежаться всегда достаточно, было
или то, чем хотелось бы (или мож- го пола. Конечно, барышни неизбежно бы желание. Так вот, наверное, «САМО-
но) гордиться? выходят замуж и рожают детей. Вот и
Софт» до сих пор здравствует потому,
Да, я горжусь своими детьми. Я гор- в этом году двое замуж вышли. Одначто для достижения целей компании
жусь, что «САМО-Софт» существует из них скоро уходит в декрет. Согласи-
люди, принимающие решения, готовы
к компромиссам, готовы иногда усту-
17 лет и что, приходя на работу, я ви- тесь, не менее важное дело, чем про-
жу умные, красивые лица. граммы писать. пить и принять чужую точку зрения. Ра-
зумеется, всё, всегда и во всём имеет
Считается, что программирование То, что жизнь и работа у вас перепле- определённый предел. И в профессио-
больше мужская профессия, тре- тены, понятно, но как происходит нальной, и в личной жизни очень важ-
бующая логического мышления. разделение времени? Как всё успе- но быть с партнёрами-единомышлен-
никами. Мне с этим повезло.

Антон Васильевич, большое вам


спасибо за интервью, очень рада
нашему с вами знакомству, но мне
пора уходить. В заключение два ко-
ротких вопроса: читают ли журнал
«Системный администратор» ва-
ши сотрудники и как вы планируе-
те встретить Новый год?
После ряда известных публикаций –
да. Новый год – это семейный празд-
ник. Вот уже 23 года встречаю с семьёй,
думаю, что этот год не станет исключе-
нием. Желаю вам и читателям журнала
счастливого Нового года!

Текст: Наталия Тарасенко,


фото из архива Антона Россихина

68
закон есть закон
Ущерб, нанесённый разным про- ден о предстоящем сокращении не ме-
изводителям ПО (дабы опреде - нее чем за 3 календарных дня.
лить, подпадает ли он под понятие 2. Работодатель должен предло-
«крупного»), считается отдельно или жить работнику перейти на вакантные
в сумме? должности (если такие есть) внутри
Указанный ущерб считается в сумме, компании (такая работа должна соот-
учитывается стоимость прав на ис- ветствовать квалификации работника,
пользование объектов авторского пра- работодатель обязан предложить со-
ва и смежных прав. Крупным считает- кращаемым вакантную нижестоящую
ся ущерб, который превышает пятьде- должность или нижеоплачиваемую ра-
сят тысяч рублей, а в особо крупным – боту), которую работник может выпол-
двести пятьдесят тысяч рублей. нять с учетом его состояния здоровья,
При определении размера ущерба образования, квалификации, опыта ра-
Рубрику ведет юрист
правоохранительные органы исходят боты. Перевод на такие должности мо- Юлия Штокало
из розничной стоимости оригиналь- жет проводиться только после получе-
ных (лицензионных) экземпляров про- ния письменного согласия работника 4. После соблюдения всего выше-
грамм, также учитывается их количест- (обычно под роспись в приказе). В слу- перечисленного работодатель дол-
во, включая копии, принадлежащие чае нарушения этого порядка вы може- жен произвести с работником полный
различным правообладателям. Стои- те обратиться в суд с иском о восста- расчет и выдать ему трудовую книжку.
мость прав на использование объек- новлении на работе в прежней долж- Расчет производится в день увольне-
тов интеллектуальной собственности ности с выплатой заработной платы ния, если сотрудник в день увольнения
может быть установлена путем прове- за время вынужденного прогула. не работал, то расчет должен быть про-
дения экспертизы, о чем будет дано за- Преимущественное право на ос- изведен не позднее, чем в день, сле-
ключение эксперта. Работник правоох- тавление на работе имеют работники дующий за днем обращения работни-
ранительных органов при проведении с более высокой производительнос- ка за расчетом. Трудовая книжка выда-
расследования не должен производить тью труда и квалификацией, а имен- ется в день увольнения либо в течение
оценку ущерба, он может лишь предва- но: работник, у которого были поощ- 3 рабочих дней со дня обращения ра-
рительно установить стоимость нару- рения за работу от работодателя, ра- ботника (если трудовая книжка не бы-
шенных авторских прав, окончатель- ботник с более высокой квалифика- ла им получена при увольнении).
ный размер ущерба должен быть оп- цией (образованием, дополнительным
ределен экспертом на основании пос- образованием, работник, прошедший Как и какими методами работода-
тановления о производстве эксперти- повышение квалификации), при рав- тель может заставить сотрудни-
зы, при этом считаются все программы, ной производительности труда и ква- ка написать заявление на увольне-
используемые с нарушением авторских лификации: семейные работники, в се- ние по собственному желанию? Как
прав, а также их количество. мье у которых есть два или более не- противостоять давлению недобро-
трудоспособных; в семье у которых нет совестного работодателя?
В ряде компаний проходит сокра- других работников с самостоятельным Про методы ничего сказать не могу, су-
щение сотрудников. Как по закону заработком (например, если жена со- ществует много видов силового и мо-
должно проходить сокращение, ка- трудника не работает); а также работ- рального давления... Методы проти-
кие выплаты в связи с этим должен ники, повышающие свою квалифика- востояния больше затронуты в психо-
получить работник? цию по направлению работодателя без логии. В такой ситуации могу посове-
При сокращении численности или шта- отрыва от работы. товать собрать документы, свидетель-
та сотрудников организации: Кроме того, нельзя увольнять по со- ствующие о том, что на предприятии
1. Работник должен быть уведом- кращению численности или штата со- проходит сокращение, заручиться под-
лен о готовящемся сокращении лич- трудника, который находится на боль- держкой свидетелей, которые подтвер-
но, в письменной форме не менее чем ничном или в отпуске. дят, что на вас оказывалось давление,
за два месяца до увольнения. 3. При отказе сотрудников от пред- т.е. нужно собрать как можно больше
Если работодатель предлагает вам ложенных должностей трудовой до- доказательств, подтверждающих со-
расторгнуть договор до истечения говор расторгается. На работодате- кращение и давление на вас. При оказа-
двухмесячного срока, то можете тре- ля возлагается обязанность выпла- нии давления вы увольняетесь по собс-
бовать выплаты компенсации в раз- тить работникам выходное пособие твенному желанию, либо вас увольняют
мере среднего заработка за время, в размере среднемесячного заработка. по другому основанию, а после этого по-
оставшееся до истечения срока пре- А если работник не устроился на ра- даете в суд на работодателя с требова-
дупреждения об увольнении (изна- боту в течение двух месяцев со дня нием о восстановлении на работе, вы-
чально 2 месяца), и выплаты выход- увольнения, то он может потребовать плате среднего заработка за время вы-
ного пособия. от работодателя выплаты среднеме- нужденного прогула, возмещении мо-
Исключение, если работник заклю- сячного заработка за второй месяц, рального вреда. Мотивируя свои требо-
чил трудовой договор на срок до двух в котором он не работал (первый месяц вания тем, что вы написали заявление
месяцев. Он должен быть предупреж- оплачивался выходным пособием). об увольнении под давлением.

№12, декабрь 2008 69


web

WSGI – протокол связи веб-сервера


с Python-приложением
Дмитрий Васильев
Если вы разрабатываете веб-приложение, каркас для разработки веб-приложений
или даже веб-сервер на языке Python, вам необходимо знание основ протокола WSGI –
стандартного способа связи веб-сервера и веб-приложения.

Д
олгое время пользователи многих веб-приложений, (http://www.python.org/dev/peps/pep-0333). Под простотой
написанных на Python, были ограничены в выборе в данном случае подразумевается лишь простота подклю-
веб-серверов, которые они могли использовать сов- чения приложения, но не простота реализации веб-прило-
местно с приложениями. Разработчики приложений обыч- жений для авторов. Надо заметить, что основной целью раз-
но ограничивались поддержкой одного (изредка – нес- работки WSGI была разработка простого протокола, кото-
кольких) способа подключения к веб-серверу. Одни при- рый мог бы разделить выбор каркасов для разработки веб-
ложения могли использовать CGI, или FastCGI, другие мог- приложений от выбора веб-серверов. Это, в частности, поз-
ли быть привязаны к модулю Apache mod_python. Некото- воляет разработчикам приложений (каркасов) и серверов
рые из приложений могли поддерживать только API, спе- концентрироваться на своей области специализации и от-
цифичное для одного-единственного сервера. Такая ситу- личает WSGI от более общих протоколов связи приложе-
ация затрудняла распространение веб-приложений, напи- ний с веб-серверами, таких как CGI, или FastCGI. С точ-
санных на Python, и в конце 2003 года впервые был пред- ки зрения WSGI цельное веб-приложение делится на две
ложен протокол WSGI. части: сервер (или шлюз) и непосредственно приложение
(или каркас для построения приложений). Для обращения
Описание протокола к приложению серверная часть использует вызываемый
WSGI (расшифровывается как Web Server Gateway Interface – объект (это может быть функция, метод, класс или экзем-
интерфейс шлюза веб-сервера) – это простой и универ- пляр класса с методом __call__). WSGI также позволяет
сальный интерфейс взаимодействия между веб-серве- создавать приложения-посредники, которые являются при-
ром и веб-приложением, впервые описанный в PEP-333 ложением для веб-сервера и сервером для веб-приложе-
ния. Такие посредники могут использо-
Таблица 1. Переменные, которые может содержать словарь environ ваться для предварительной обработ-
Имя Наличие Описание ки запросов к приложению или после-
REQUEST_METHOD Обязательный Метод запроса, например GET или POST дующей обработки его ответов. Даль-
SCRIPT_NAME Может быть пустым Начальная порция пути в URL, соответствующая объекту
ше мы рассмотрим несколько приме-
приложения ров использования WSGI и затем об-
PATH_INFO Может быть пустым Остаток пути в URL, соответствующий цели запроса внутри ратимся к деталям протокола.
приложения
QUERY_STRING Может быть пустым Часть URL, которая следует за «?» Сторона приложения
или отсутствовать
Как уже говорилось, приложение – это
CONTENT_TYPE Может быть пустым Содержимое заголовка Content-Type в HTTP-запросе
или отсутствовать
вызываемый объект, который принима-
ет два аргумента. Приложения долж-
CONTENT_LENGTH Может быть пустым Содержимое заголовка Content‑Length в HTTP-запросе
или отсутствовать ны допускать возможность многократ-
SERVER_NAME Обязательный Имя сервера ных вызовов, что является обычной си-
туацией практически для всех серве-
SERVER_PORT Обязательный Порт сервера
ров (исключая вызовы с помощью CGI).
SERVER_PROTOCOL Обязательный Версия протокола, который использует клиент для посылки
запроса, например HTTP/1.0 или HTTP/1.1 Далее представлены два примера при-
HTTP_переменные Необязательны Переменные, соответствующие заголовкам запроса,
ложения. Первое приложение реализо-
переданным клиентом вано в виде функции:

70
web
def simple_app(environ, start_response): sys.stdout.write(data)
status = '200 OK' sys.stdout.flush()
response_headers = [('Content-type','text/plain')]
start_response(status, response_headers) def start_response(status, response_headers, ↵
return ['Hello world!\n'] exc_info=None):
if exc_info:
Здесь функция использует второй аргумент для пере- try:
if headers_sent:
дачи статуса и заголовков ответа и затем возвращает те- # Если заголовки были отправлены,
ло ответа в виде списка строк. Второе приложение реали- # выкинуть исключение
raise exc_info[0], exc_info[1], ↵
зовано в виде класса: exc_info[2]
finally:
class AppClass: exc_info = None
elif headers_set:
def __init__(self, environ, start_response): raise AssertionError("Headers already set!")
self.environ = environ
self.start = start_response headers_set[:] = [status, response_headers]
return write
def __iter__(self):
status = '200 OK' result = application(environ, start_response)
response_headers = [('Content-type','text/plain')] try:
self.start(status, response_headers) for data in result:
yield "Hello world!\n" # Не отправляем заголовки, пока не видно тела
if data:
write(data)
В данном случае объект класса будет представлять if not headers_sent:
из себя итератор, который на первом шаге итерации ис- # Отправляем заголовки, если тело было пустое
write('')
пользует второй аргумент для передачи статуса и заголов- finally:
ков ответа и затем вернет тело ответа. if hasattr(result, 'close'):
result.close()
Надо отметить, что приложение с точки зрения WSGI –
это всего лишь точка входа, через которую сервер получа-
ет доступ к веб-приложению или каркасу для построения Посредник: сервер и приложение
веб-приложений. в одном
Как уже было замечено, некоторые объекты могут играть
Сторона сервера сразу две роли – быть сервером для какого-либо приложе-
Сервер (или шлюз) будет вызывать приложение для каж- ния и приложением для сервера. Вот примеры ситуаций,
дого HTTP-запроса, который ему предназначен. Для при- для которых могут быть полезны WSGI-посредники:
мера представлен упрощенный шлюз CGI – WSGI. Пример n перенаправление запроса на различные приложения,
использует упрощенную обработку ошибок, т.к. по умолча- в зависимости от URL после соответствующего изме-
нию ошибки будут выдаваться на sys.stderr и затем записы- нения environ;
ваться в лог веб-сервера. Вызываемый объект приложения n возможность запуска нескольких веб-приложений,
в данном случае передается как параметр функции: или каркасов в одном процессе;
n распределение нагрузки по нескольким сетевым при-
import os ложениям;
import sys
n обработка ответов приложения, например, с помощью
def run_with_cgi(application): XSL.
environ = dict(os.environ.items())
environ['wsgi.input'] = sys.stdin Присутствие посредника в большинстве случаев про-
environ['wsgi.errors'] = sys.stderr
environ['wsgi.version'] = (1, 0) зрачно и для сервера, и для приложения, более того, пос-
environ['wsgi.multithread'] = False редников можно располагать одного за другим, составляя
environ['wsgi.multiprocess'] = True
environ['wsgi.run_once'] = True таким образом «стек посредников».
if environ.get('HTTPS', 'off') in ('on', '1'):
environ['wsgi.url_scheme'] = 'https' Детали протокола
else: Как мы уже видели, приложение должно принимать два
environ['wsgi.url_scheme'] = 'http'
аргумента, которые были названы environ и start_response,
headers_set = [] но могут иметь любые другие имена.
headers_sent = []
Первый параметр (environ) должен быть объектом сло-
def write(data): варя (dict) Python и содержит переменные среды, похожие
if not headers_set:
raise AssertionError("write() ↵ на переменные CGI. Этот объект также должен содержать
before start_response()") обязательные для WSGI параметры, которые мы подробнее
elif not headers_sent: рассмотрим позже, и может содержать переменные, спе-
# Перед выводом первых данных вывести цифичные для конкретного веб-сервера.
# сохраненные заголовки
status, response_headers = headers_sent[:] = ↵ Второй параметр (start_response) – это вызываемый объ-
headers_set ект, которым приложение предваряет возвращение тела от-
sys.stdout.write('Status: %s\r\n' % status)
for header in response_headers: вета, и принимающий два обязательных параметра и один
sys.stdout.write('%s: %s\r\n' % header) необязательный. Первый параметр (status) – статус ответа в
sys.stdout.write('\r\n')
виде строки, например «200 Ok». Второй параметр (response_

№12, декабрь 2008 71


web
Таблица 2. Обязательные для WSGI переменные в словаре environ бы увидеть набор переменных, передаваемых приложе-
Имя Описание нию, можно использовать, например, следующее простое
wsgi.version Кортеж (1, 0), представляющий версию WSGI – 1.0 WSGI-приложение:
wsgi.url_scheme Строка, представляющая схему из URL, обычно http или https
def application(environ, start_response):
wsgi.input Объект, похожий на файл, из которого может быть прочитано lines = []
тело запроса for key, value in environ.items():
lines.append("%s: %r" % (key, value))
wsgi.output Объект, похожий на файл, в который приложение может start_response("200 OK", [("Content-Type", ↵
выводить сообщения об ошибках "text/plain")])
wsgi.multithread True, если объект приложения может быть одновременно вызван
return ["\n".join(lines)]
из нескольких потоков
wsgi.multiprocess True, если соответствующие объекты приложения могут быть
одновременно вызваны в нескольких процессах
Обработка ошибок
wsgi.run_once True, если сервер предполагает (но не гарантирует),
что приложение будет вызвано только один раз во время жизни
В общем случае приложение должно обрабатывать внутрен-
текущего процесса ние ошибки и выводить соответствующее сообщение кли-
енту. Конечно, прежде чем выводить сообщение об ошиб-
headers в примере выше) – список кортежей (tuples) вида ке, приложение не должно начинать выводить нормальный
(имя_заголовка, значение_заголовка). Третий, необязатель- ответ. Чтобы обойти эту ситуацию, используется третий па-
ный, параметр (exc_info) должен использоваться только при раметр start_response – exc_info:
обработке ошибок и должен быть кортежем, который воз-
вращает функция sys.exc_info(). Надо заметить, что start_ try:
# Код обычного приложения
response не посылает заголовки сразу, а откладывает их до status = "200 OK"
получения первой части тела ответа, чтобы в случае ошиб- response_headers = [("content-type", "text/plain")]
start_response(status, response_headers)
ки их можно было заменить на заголовки, сопутствующие return ["OK"]
ошибке. При этом start_response можно вызывать несколько except:
# В реальном коде различные ошибки должны
раз, только если передается третий параметр (exc_info). # обрабатываться различными обработчиками
После вызова сервером вызываемый объект приложе- # и не должен использоваться пустой except
status = "500 Error"
ния должен вернуть итерируемый объект, возвращающий response_headers = [("content-type", "text/plain")]
ноль, или несколько строк. Как мы видели в предыдущих start_response(status, response_headers, ↵
sys.exc_info())
примерах выше, этого можно достичь несколькими спосо- return ["Error"]
бами, например, вернув список строк, или объект-итератор.
При получении очередной части ответа сервер посылает ее Если приложение еще не начало вывод тела ответа, ког-
клиенту без буферизации, но приложения могут осущест- да произошло исключение, то вызов start_response в об-
влять буферизацию ответа собственными силами. работчике будет нормальным и клиенту вернется ответ
В случае если итерируемый объект имеет метод close(), об ошибке. В случае если на момент ошибки уже был на-
он будет вызван по окончании обработки ответа сервером, чат вывод ответа, start_response выкинет переданное ис-
даже в случае ошибки. Таким образом метод close() может ключение. Это исключение не должно обрабатываться
использоваться для закрытия всех ресурсов приложения, обработчиком, а будет обработано сервером и записано
которые могли быть задействованы при создании ответа. в журнал ошибок.

Переменные словаря environ Заключение


Словарь environ может содержать следующие CGI перемен- На данный момент подавляющее большинство серверов
ные (см. таблицу 1). и каркасов для создания веб-приложений поддерживает
Также словарь environ должен содержать следующие, WSGI. В качестве примера можно привести большое коли-
обязательные для WSGI, переменные (см. таблицу 2). чество серверов, написанных на Python, в том числе веб-
Плюс environ может содержать специфичные для кон- сервер из пакета Twisted (http://twistedmatrix.com/trac), а так-
кретного сервера переменные и переменные среды. Что- же адаптеры для CGI и FastCGI, модули для Apache и nginx.
В качестве примера каркасов могут
Пакет wsgiref вета в виде объекта, похожего на сло- быть наиболее известные – Django,
В стандартной библиотеке Python 2.5 по- варь; TurboGears и Pylons. Более полный
явился новый пакет wsgiref, предоставля- n wsgiref.simple_server – содержит список и последнюю информацию
ющий различные утилиты для упрощения функции и классы для создания про- по WSGI можно получить на сайте
работы с WSGI. Рассмотрим кратко его со- стого WSGI-сервера и демонстраци- http://www.wsgi.org.
держимое: онного приложения; Описание работы WSGI, изло-
n wsgiref.util – содержит функции для n wsgiref.validate – содержит функцию- женное в этой статье, должно помочь
работы со словарем environ. Напри- обертку, проверяющую WSGI-прило- в лучшем понимании готовых веб-
мер, функцию для сборки полного URL жение и сервер на соответствие WSGI- приложений, написанных с исполь-
из переменных environ; спецификации; зованием этого протокола, а также
n wsgiref.headers – содержит класс для n wsgiref.handlers – содержит базовые в написании собственных веб-прило-
упрощения работы с заголовками от- классы для создания WSGI-серверов. жений и серверов.

72
bugtraq

Межсайтовый скриптинг в MDaemon Недостаточная энтропия в FreeBSD


Программа: MDaemon версии до 10.0.2. Программа: FreeBSD 6.3, .64, 7.0, возможно, другие вер-
Опасность: Средняя. сии.
Описание: Уязвимость существует из-за недостаточной Опасность: Низкая.
обработки входных данных в некоторых email-сообщениях Описание: Уязвимость существует из-за того, что функ-
в WorldClient HTTP Server и WorldClient DLL (версия 10.0.1). ция arc4random() использует ненадежные источники энтро-
Удаленный пользователь может с помощью специально пии на протяжении 300 секунд после старта системы. Уяз-
сформированного email-сообщения выполнить произволь- вимость влияет на приложения и процессы, которые пола-
ный код сценария в браузере жертвы в контексте безопас- гаются на безопасность arc4random() (например, создание
ности уязвимого сайта. IV для WEP, создание идентификаторов IP-пакетов, иден-
URL производителя: altn.com/Products/MDaemon-Email- тификаторов RPC-транзакций ядра и в GEOM ELI и GEOM
Server-Windows. shsec-провайдерах).
Решение: Установите последнюю версию 10.0.2 с сайта URL производителя: www.freebsd.org.
производителя. Решение: Установите исправление с сайта производителя.

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


Backup Exec for Windows Server в IBM Tivoli Access Manager
Программа: Backup Exec for Windows Server версия 12.5 Программа: IBM Tivoli Access Manager 6.0.0.17, возможно,
build 2213; Backup Exec for Windows Server версия 12.0 build другие версии.
1364; Backup Exec for Windows Server версия 11d build 7170; Опасность: Средняя.
Backup Exec for Windows Server версия 11d build 6235. Описание: Уязвимость существует из-за ошибки в WebSEAL
Опасность: Средняя. при обработке HTTP-трафика. Удаленный пользователь мо-
Описание: 1. Множественные уязвимости существуют в нес- жет с помощью специально сформированного HTTP-трафи-
кольких методах аутентификации, используемых в Backup ка аварийно завершить работу демона webseald.
Exec Remote Agent. Удаленный пользователь может полу- URL производителя: www-306.ibm.com/software/tivoli/
чить неавторизованный доступ к приложению и просмот- products/access-mgr-e-bus.
реть или удалить произвольные файлы на системе. Решение: Установите исправление 6.0.0-TIV-AWS-FP0022
2. Уязвимость существует из-за ошибки проверки гра- с сайта производителя.
ниц данных в протоколе управления данными. Удаленный
пользователь может вызвать переполнение буфера и вы- Несколько уязвимостей в tog-pegasus
полнить произвольный код на целевой системе. Для успеш- в Red Hat Enterprise Linux
ной эксплуатации уязвимости злоумышленник должен быть Программа: Red Hat Enterprise Linux (v. 5 server), Red Hat
аутентифицирован в приложении (см. уязвимость 1). Enterprise Linux Desktop (v. 5 client).
URL производителя: www.symantec.com. Опасность: Низкая.
Решение: Установите исправление с сайта производителя. Описание: 1. Уязвимость существует из-за того, что Red
Hat не применяет политику безопасности после пересбор-
Несколько уязвимостей ки пакета до версии 2.7.0, что позволяет злоумышленнику,
в EMC Control Center SAN Manager например, отправлять запросы к WBEM-службам. Для удач-
Программа: EMC ControlCenter версии до 5.2 SP5 ной эксплуатации атакующему требуются действительные
Patch 4433; EMC ControlCenter версии до 6.0 Patch 4434. учетные данные.
Опасность: Средняя. 2. Уязвимость существует из-за того, что приложение
Описание: 1. Уязвимость существует из-за ошибки про- не записывает в системный журнал неудачные попытки ау-
верки границ данных при обработке SST_CTGTRANS-за- тентификации. Удаленный пользователь может незамечен-
просов в службе SAN Manager Master Agent (msragent.exe). но произвести брут-форс-атаку.
Удаленный пользователь может с помощью специально URL производителя: www.redhat.com/rhel.
сформированного запроса, отправленного на порт 10444/ Решение: Установите исправление с сайта производителя.
TCP вызвать переполнение буфера и выполнить произ-
вольный код на целевой системе с привилегиями учетной Отказ в обслуживании в Wireshark
записи SYSTEM. Программа: Wireshark 1.0.4, возможно, другие версии.
2. Уязвимость существует из-за недостаточной про- Опасность: Средняя.
верки подлинности при обработке SST_SENDFILE-запро- Описание: Уязвимость существует из-за ошибки в SMTP-
сов в службе SAN Manager Master Agent (msragent.exe). Уда- диссекторе. Удаленный пользователь может с помощью
ленный пользователь может с помощью специально сфор- слишком большого SMTP-пакета вызвать зацикливание
мированного запроса скачать произвольные файлы с уда- приложения.
ленной системы. URL производителя: www.wireshark.org.
URL производителя: www.emc.com/products/family/ Решение: Установите исправление из SVN-репозитория
controlcenter-family.htm. производителя.
Решение: Установите исправление с сайта производителя. Составил Александр Антипов

№12, декабрь 2008 73


образование

Обзор учебных центров

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

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

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

«Академия Корпоративных Систем»


«Академия Корпоративных Систем» (www.a-sys.ru) была об-
разована в 2003 году. Основные направления обучения –
Microsoft, Cisco, Linux, FreeBSD, Oracle, Solaris. Как допол-
нительное обучение для IT‑менеджеров в 2006 году в про-
грамме появилось «Искусство управленческой борьбы и уп-
равленческие поединки».
«Академия Корпоративных Систем» предлагает комп-
лексные программы подготовки самого разного уровня –
от курсов для начинающих пользователей ПК до сертифи-
цированных курсов по продуктам и технологиям компаний
Microsoft (весь спектр курсов для системных администрато- Слушатели «Академии Корпоративных Систем»
ров, специалистов по работе с Microsoft SQL Server, разра-
ботчиков в среде Visual Studio), Cisco, ASPLinux; авторские Согласно анкетированию прошедших обучение людей на-
курсы Oracle, Sun Solaris, FreeBSD, ITIL, курсы по управле- иболее сильной стороной учебного центра является высо-
нию проектами, по Microsoft Office и Share Point. кое качество образовательных услуг.
В штате академии эксперты с богатым практическим
О сертификации опытом работы в сфере IT: преподаватели-программис-
«Академия Корпоративных Систем» является авторизо- ты разрабатывают ПО для нескольких серий космичес-
ванным центром тестирования ведущей сертифицирую- ких спутников.
щей организации Prometric. Клиенты академии имеют воз- Услуги преподавателей, ведущих курсы системного ад-
можность в удобное время пройти обучение и сдать офи- министрирования, пользуются спросом на рынке аутсор-
циальные тесты вендоров: Microsoft, Sun, Oracle, Citrix, синг-обслуживания.
IBM, подтвердив свои знания сертификатом международ- Простые запросы обрабатывают сотрудники-админист-
ного образца. раторы, а к сложным задачам привлекаются эксперты-пре-
подаватели. Внутренний стандарт численности слушателей
Учебные классы в группах ограничен 8 обучаемыми, позволяя уделить вни-
Помимо компьютерных классов общего назначения ака- мание каждому клиенту центра.
демия имеет специализированные классы по обучению Внедрены дополнительные услуги по оказанию бесплат-
Cisco и Sun. ных консультаций по тематике пройденных курсов, которые
пользуются большой популярностью у слушателей.
Выгодные программы обучения и скидки
В академии существуют специальные условия обучения Учебный центр «Интерфейс»
для корпоративных клиентов, частных лиц и студентов Учебный центр «Интерфейс» (www.interface.ru/training), ос-
вузов. нованный в 1991 году, входит в десятку сильнейших учеб-
Наибольшей популярностью пользуются следующие ных центров страны, обучающих информационным техно-
спецпредложения: логиям.
n специальные цены для частных лиц и студентов Центр проводит обучение по продуктам Microsoft,
(на 15‑30% ниже базовых цен); Oracle, IBM Rational, Borland, Embarcadero, CA, Business
n бесплатные тесты при оплате программ подготовки Objects, и других компаний, а также авторизованные курсы
к сертификациям по всем направлениям обучения; по продуктам компаний Microsoft, Embarcadero и Computer
n дополнительные скидки при предварительной оплате Associates.
курсов и треков; Направления обучения:
n гибкая система скидок для корпоративных клиентов. n Управление проектами.
n Оптимизация бизнес-процессов.
Одним из распространенных среди корпоративных кли- n Проектирование информационных систем и баз дан-
ентов является предложение: если сотрудник, прошедший ных.
обучение, в течение года после окончания обучения уво- n Имитационное моделирование технологических и ра-
лится из компании, академия бесплатно обучит другого со- бочих процессов.
трудника организации по той же программе. n Разработка информационных систем и языки програм-
мирования.
Наиболее сильная сторона учебного центра n Администрирование СУБД.
До 78% клиентов обращаются в «Академию Корпоратив- n Системное администрирование (операционные систе-
ных Систем» по рекомендациям своих знакомых и друзей. мы, серверы и т. п.).

№12, декабрь 2008 75


образование
Наиболее сильная сторона учебного центра
Учебный центр «Интерфейс» проводит обучение как в собст-
венных офисах компании в Москве и Санкт-Петербурге,
так и в офисе заказчика при наличии сформированных
групп, что позволяет сократить командировочные расхо-
ды и свести к минимуму отрыв специалистов от рабоче-
го процесса.
Причем в этом случае программа обучения может быть
заранее скорректирована под требования заказчика. Воз-
можно заключение долгосрочных договоров, в рамках ко-
торых центр обучения может взять на себя как организа-
цию обучения сотрудников по всем направлениям обуче-
ния, так и анализ потребностей сотрудников в обучении,
сбор заявок на обучение и формирование графиков обу-
чения сотрудников.
Менеджер Getronics PinkRoccade Мартин Бьордвик проводит
показательный курс «Переход к 3-й версии ITIL»
для тренеров и консультантов IT Expert Учебный центр консалтинговой
компании IT Expert
n Работа с офисными приложениями. Основной концепцией деятельности компании IT Expert
n Организация документооборота. (www.itexpert.ru) явилось распространение передового меж-
дународного опыта и применение знаний и практики еди-
Курсы проводят лучшие специалисты в области инфор- ной команды профессионалов для эффективного реше-
мационных технологий, с большим опытом преподавания и ния стратегических задач российского бизнеса. C 2002 го-
участия в проектах. Обучение проходит в специально обо- да компания специализируется в области услуг консалтин-
рудованных классах учебного центра. га, обучения, аудита и управления IT. Услуги компании на-
правлены на решение IT-задач и максимально эффектив-
Сертификация ное использование информационных систем в реализации
Центр тестирования «Интерфейс» авторизован тестирую- стратегических планов организаций.
щими организациями Pearson VUE и Prometric, что предо- IT Expert предлагает широкую линейку учебных про-
ставляет возможность всем желающим сдать экзамены грамм на основе лучшего мирового опыта в области уп-
для получения сертификатов от ведущих мировых произ- равления IT, используя подходы:
водителей программного обеспечения, включая Microsoft, n ITIL – библиотека мирового передового опыта ITIL.
Cisco, CompTIA, IBM, Check Point, Adobe и других, а так- n ITSM – IT-cервис менеджмент.
же получить международный сертификат специалиста n CobiT и ISO – стандарты процессного управления и ау-
по информационным технологиям. Для системных адми- дита.
нистраторов можно выделить сертификационные экзаме-
ны по Microsoft (Windows Server 2000/2003/2008, Windows В области ITSM центр обучил более 13 000 специалис-
Vista), IBM Rational, Aruba, CIW, CompTIA, Linux, Novell, Cisco, тов в России.
Business Objects и другие.
Сертификация
Учебные классы IT Expert – первая российская компания, организующая
Курсы проводят лучшие специалисты в области инфор- весь спектр европейских экзаменов на получение сертифи-
мационных технологий, с большим опытом преподавания катов специалистов в области IT-менеджмента всех уров-
и участия в проектах. Для учебного процесса созданы ком- ней – на основе статуса официального партнера института
фортные условия: оборудованные современной техникой EXIN (Examination Institute for Information Science).
учебные классы, все примеры демонстрируются с помощью
видеопроектора на большом экране. Каждому слушателю Наиболее сильная сторона учебного центра
на руки выдается подробный раздаточный материал. В качестве тренеров IT Expert выступают квалифицирован-
ные специалисты-практики, имеющие многолетний стаж ра-
Выгодные программы обучения, скидки боты в консалтинговых и проектных подразделениях меж-
В учебном центре «Интерфейс» действуют скидки на обу- дународных и крупных российских IT-компаний, обладаю-
чение от 5 до 30%: щие уникальным опытом внедрения современных подхо-
n при покупке программного обеспечения в компании «Ин- дов организации служб IT.
терфейс»; IT Expert – единственная в России компания, в которой
n для студентов; каждый тренер-консультант имеет самый значимый в уп-
n для преподавателей вузов; равлении IT-сертификат – ITIL Expert.
n для групп более 5 человек от одной организации; Курсы проводятся как в Москве, так и в сотрудничестве
n для постоянных заказчиков по долгосрочным догово- с региональными партнерами – в Санкт-Петербурге, Екате-
рам. ринбурге, Новосибирске, Киеве, Ростове-на-Дону, Алматы,

76
образование
Астане, Ташкенте, Минске и других городах СНГ, а также Непрерывно совершенствуя и расширяя линейку кур-
ближнего зарубежья. сов, REDLAB/REDCENTER ежегодно обучает более 3000
слушателей в очной форме и более 20 000 – дистанцион-
Учебный центр REDLAB/REDCENTER но. Сегодня учебный центр предлагает 350 курсов по 12 на-
Учебный центр REDLAB/REDCENTER (www.redcenter.ru), правлениям обучения.
возникший в 1992 году как единственный авторизованный
учебный центр Sun Microsystems, сегодня предлагает прой- Филиалы
ти обучение в очной, дистанционной или смешанной форме. Компания активно развивает партнерскую сеть, и сегод-
Являясь первым российским CLSP-партнером Cisco, ком- ня существует более 15 учебных центров-партнеров в Рос-
пания проводит авторизованное обучение и по другим на- сии и СНГ в таких городах, как: Киев, Минск, Санкт-Пе-
правлениям: Microsoft, Brocade, SAP и другим. тербург, Алматы, Владивосток, Иркутск, Нижний Новго-
Курсы читают только высокопрофессиональные инс- род и других.
трукторы, прошедшие подготовку по программам произво-
дителя оборудования или программного обеспечения. Все Учебный центр R-Style
инструкторы Cisco имеют сертификацию CCSI, а каждый Основное направление деятельности учебного центра
второй – статус «Эксперта». Cisco высоко оценивает работу R‑Style (academy.r-style.ru) – авторизованное обучение
инструкторов: средний балл профессионализма тренеров и сертификация IT-специалистов. В учебном центре ши-
всегда приближен к максимальному. Sun Microsystems по- роко представлено авторизованное обучение по таким
ручает учебному центру проведение обучения своих парт- направлениям как Microsoft, Microsoft Dynamics, Red Hat
неров, а также регулярно обучает в REDLAB/REDCENTER Linux, Novell/SUSE Linux, Mandriva Linux, ALT Linux, HP‑UNIX,
своих заказчиков. Dr.WEB и др. В сентябре 2007 года в учебном центре R‑Style
создано новое подразделение – «Академия Linux». В на-
Сертификация стоящее время в «Академии Linux» предлагается обучение
REDLAB/REDCENTER является авторизованным центром по шести Linux-системам и курсы Open Office.
тестирования ведущих сертифицирующих организаций
Thomson Prometric и Pearson VUE. Клиенты компании мо- Сертификация
гут пройти обучение и подтвердить свои знания сертифи- В учебном центре R-Style работает международный тес-
катом международного образца по программам сертифи- товый центр Prometric. Центр может принимать экзамены
кации Brocade, Veritas, Microsoft, Oracle, Novell и ITIL. любого уровня сложности по всем направлениям IT-техно-
Специалисты по Cisco могут подтвердить свои навы- логий, доступные в тестовом центре Prometric. Кроме это-
ки и знания, получив сертификацию начального или про- го учебный центр может принимать экзамены Red Hat Linux
фессионального уровня: CCDA certification, CCENT, CCNA, и Novell/SUSE Linux.
CCNA Security, CCNA Voice, CCNA Wireless, ССDP, CCIP,
CCNP, CCSP, CCVP l. Специалисты, работающие с обору- Учебные классы
дованием Sun Microsystems, могут получить статусы SCSAS, В учебном центре используется оборудование произ-
SCSA, SCNA, SCSECA. водственной компании R-Style Computers. Техника пос-
тоянно и оперативно обновляется, в соответствии с пос-
Учебные классы тоянно изменяющимися требованиями к проведению но-
Поскольку авторизованное обучение предполагает ис- вых курсов.
пользование только реального оборудования оригинально-
го производителя, студенты учебного центра практикуют- Выгодные программы обучения и скидки
ся на таких машинах, как Ultra 25, Ultra 45 (Sun), в том чис- В учебном центре R-Style действует гибкая система скидок.
ле многопроцессорные, Sun Fire 4800. В классах с рабочих Кроме этого существуют различные предложения, позво-
мест существует доступ к оптической кабельной сети, что
позволяет работать с дисковыми массивами Sun/EMC. Во
время занятий по Cisco клиенты работают с маршрутизато-
рами серии 37ХХ, 28ХХ, 38ХХ; коммутаторами серии 29ХХ,
35ХХ, 37ХХ, 65ХХ; а также firewall pix515, asa55xx, системой
комплексного контроля безопасности Cisco mars appliance,
системой безопасного контроля доступа пользователей
NAC appliance и другим.

Наиболее сильная сторона учебного центра


Высокий уровень качества обучения подтверждают и сами
клиенты: 95% слушателей сообщают, что они положитель-
но оценивают уровень подготовки в REDLAB/REDCENTER,
а 9 из 10 специалистов, воспользовавшихся услугами, го-
товы рекомендовать учебный центр своим друзьям, зна-
комым, коллегам. Учебный класс в УЦ REDLAB/REDCENTER

№12, декабрь 2008 77


образование
ляющие пройти обучение значительно дешевле ценового лезные Дороги», Пенсионный фонд, ОАО «Уралсвязьин-
листа, либо вообще бесплатно. В данное время действует форм», Банк России, Министерство финансов РФ, «Тран-
специальное «антикризисное» предложение по обучению сТелеКом» и другие. Ежегодно в центре обучается более
Microsoft Dynamics Axapta. С этим предложением можно оз- 1000 специалистов.
накомиться на сайте.
Сертификация
Наиболее сильная сторона учебного центра Учебный центр «Микротест» имеет статусы авторизован-
Обучение по направлению Microsoft Dynamics. Это направ- ных центров Microsoft, Сisco Systems, а также два центра
ление включает в себя курсы по трем системам: Microsoft тестирования, авторизованные Prometric и VUE. Осущест-
Dynamics Axapta, Microsoft Dynamics Navision, Microsoft вляется обучение по авторским программам: Oracle, Linux/
Dynamics CRM. (К моему удивлению, в учебном центре под- FreeBSD/UNIX, Sun Microsystems, Novell, Java, телефонии
твердили, что действительно считают это наиболее силь- и мини-АТС, «Структурированным Кабельным Системам»,
ной своей стороной. – Прим. автора.) При чтении курсов «Управлению проектами» и другим. В стоимость обучения
по этим системам необходимо, чтобы преподаватель об- могут входить бесплатные тесты.
ладал не только глубокими знаниями по своему предмету,
но и имел огромный практический опыт. Центру удалось Учебные классы
собрать команду профессионалов, обладающих возмож- Учебный центр «Микротест» своевременно обновляет ба-
ностью передать свои знания и практический опыт слу- зу лабораторного оборудования. Используются коммута-
шателям. торы серии Cisco Catalyst 4500 и Cisco Catalyst 6500, уст-
ройства ASA 5510, маршрутизаторы Cisco 2811, Cisco 3725,
Учебный центр «Микротест» Cisco 3620, имеется оборудование для проведения курсов
Учебный центр «Микротест» (training.microtest.ru) основан по беспроводным технологиям Cisco и курсов Cisco Unified
в 1996 году в Екатеринбурге, на базе крупнейшего систем- Communication и многое другое.
ного интегратора «Микротест». Одним из приоритетных
направлений деятельности учебного центра является про- Наиболее сильная сторона учебного центра
ведение авторизованных курсов компании Cisco Systems Преимущества учебного центра «Микротест»:
и корпорации Microsoft. Центр имеет большой опыт про- n авторизованное обучение проводится сертифицирован-
ведения обучения среди клиентов: ОАО «Российские Же- ным преподавателем;

Коротко о главном Многие преподаватели, помимо препо- Ольга: Бывает по-разному. Крупные высо-
Мы решили задать несколько вопросов давания курсов, имеют основную рабо- копрофессиональные компании ценят и то,
представителям учебных центров, на ко- ту. В чем интерес (мотив) для таких лю- и другое. Молодые компании часто эконо-
торые любезно согласились ответить Оль- дей читать курсы? мят на сертификации. Отношение к серти-
га Гришина (директор по маркетингу «Ака- Ольга: У нас скорее наоборот. Основ- фикации – это показатель зрелости компа-
демии Корпоративных Систем») и Евгения ная работа – преподавание, а професси- нии. В общем объеме продаж около 30%
Булыгина (менеджер по рекламе центра ональная работа – дополнительная. И та- приходится на обучение совместно с сер-
компьютерного обучения «Специалист» кую работу мы либо сами организуем, ли- тификацией.
при МГТУ им. Н.Э.Баумана). бо поддерживаем ее. Это позволяет быть Евгения: Вариант, когда компании опла-
не «чистыми» теоретиками, а владеть чивают не только сам курс обучения, но и
Все ли преподаватели учебных центров предметом на практике. А главный мотив сертификацию – довольно распространен-
сертифицированы по тем курсам, кото- для преподавателя – то, что им нравится ное явление. После прохождения обучения
рые читают? преподавать. Достаточно немного послу- они получают оценку именно знаний сво-
Ольга: Если академия проводит сертифи- шать занятия и становится ясно ведет ли их сотрудников, а не «прослушанных ака-
цированное обучение, то тренеры в обяза- занятия тренер по призванию или «отбы- демических часов». Пройденный курс це-
тельном порядке имеют соответствующую вает номер». нен с точки зрения приобретенных знаний,
сертификацию. Некоторые курсы, напри- Евгения: 2/3 наших преподавателей ра- а сертификация – с позиции подтвержде-
мер по FreeBSD, не имеют сертификаций, ботают только в центре «Специалист». ния компетенций.
соответственно, нет ее и у тренеров. Для них это основная работа и смысл жиз-
Евгения: В центре «Специалист» при МГТУ ни. Однако есть и совместители. Для мно- Много ли людей занимаются самооб-
им. Н.Э. Баумана более 80% преподавате- гих из них совмещение – шанс поделить- разованием, оплачивая курсы само-
лей – сертифицированные тренеры. Объ- ся накопленным опытом, показать «боевое стоятельно?
ем сданных ими экзаменационных тестов применение» накопленных знаний. Ольга: У нас процентов 30-40.
определяется конкретными требованиями Евгения: Количество таких людей состав-
курсов, например, базовую компьютерную Часто ли встречаются случаи, когда ляет 45% от общего числа наших слушате-
подготовку в нашем центре преподают сер- компания оплачивает своим сотрудни- лей и неуклонно растет. Это вызвано спро-
тифицированные тренеры Microsoft, ECDL, кам только курсы обучения, но не оп- сом на программы повышения квалифи-
курсы по сетевым технологиям CISCO чи- лачивает сертификацию? Что же в ито- кации в условиях высокой конкуренции
тают только профессионалы с наивысшим ге ценится: пройденный курс или сер- на рынке труда и непростой экономической
статусом CCIE. тификат? ситуации в стране, когда многие ищут но-

78
образование
n используются фирменные методики, учебные матери- дых специалистов, которым нужно повысить свой профес-
алы; сиональный уровень.
n по окончании слушателям выдается сертификат об обу- Обучение проводится в сети академий Softline, кото-
чении международного образца. рые организованы на базе высших учебных заведений.
Академии предлагают слушателям курсы по технологиям
Учебный центр «Микротест» предлагает большой пе- Microsoft, Oracle, Linux и Cisco. Выпускники академий при-
речень авторских курсов (Sony, Oracle, Sun Microsystems, обретают знания по самым последним технологиям этих
FreeBSD, UNIX, Linux, Novell, Borland и другие). Это авто- производителей и готовы к сдаче международных серти-
рские разработки методистов, преподавателей и специа- фикационных экзаменов.
листов Микротеста, которые по тематике полностью соот-
ветствуют авторизованным программам и так же готовят Сертификация
специалистов к международной сертификации, но по сто- Каждая академия Softline готовит слушателей по опреде-
имости ниже авторизованных от 20 до 40%. ленному набору курсов, которые включаются в програм-
Обучение может быть организовано на площадях заказ- му академии, исходя из потребностей конкретного реги-
чика (сокращаются командировочные расходы и время от- она. В ряде академий открыты тестовые центры Prometric
сутствия на рабочих местах обучающихся специалистов). и Certiport, и выпускники могут сразу после окончания кур-
сов приступать к сдаче международных экзаменов. Спи-
Филиалы сок экзаменов, доступных в центре тестирования Prometric,
Учебный центр «Микротест» обладает сетью филиалов обширен. Кандидаты могут сдавать экзамены Microsoft,
в Москве, Екатеринбурге, Нижнем Новгороде, Санкт-Пе- Symantec, Oracle, Citrix, Check Point, Лаборатория Каспер-
тербурге, Тюмени, Новосибирске, Краснодаре. ского, Red Hat.
Компания Softline также является единственным в Рос-
Softline Academy сии провайдером международной компании Certiport и по-
Компания Softline поддерживает проект Softline Academy могает вузам открыть центры тестирования Certiport. В таких
(www.it-academy.ru), в рамках которого предлагается обуче- центрах слушатели могут сдавать экзамены по направле-
ние по IT-направлениям в академическом режиме – 2‑3 ра- ниям Microsoft Office Specialist (MOS), Internet and Computing
за в неделю, в вечернее время. Данный формат предназна- Core Certification (IC3), Microsoft Certified Application Specialist
чен в первую очередь для студентов, аспирантов и моло- (MCAS) и Adobe Certified Associate (ACA).

вую работу или хотят продвинуться по ка- и высоких зарплат для «недоучек» и низко- может быть уверен в том, что тренер, обуча-
рьерной лестнице, ожидая более высокий квалифицированных кадров уходит в про- ющий его, это не уволенный «вчера» специ-
уровень дохода. шлое, и вместе с этим возрастает потреб- алист, а профессионал своего дела!
ность в специалистах, постоянно повыша-
Какие курсы последнее время стали ющих квалификацию или имеющих под- Как вы оцениваете вероятность мас-
пользоваться меньшей популярнос- тверждение своих компетенций. совой переквалификации специалис-
тью, а какие большей? Можно ли гово- тов в связи с кризисом, которая может
рить о тенденции изменения интересов Наблюдается ли заметный приток новых оказаться «золотой жилой» для учеб-
аудитории? преподавателей? Есть ли среди них уво- ных центров?
Ольга: У нас небольшой популярностью ленные «вчера» специалисты? Ольга: Мы ожидаем рост числа частных
пользуются курсы Oracle, Solaris. Стабиль- Ольга: Пока притока тренеров из быв- клиентов на наших учебных курсах и не-
но высокий интерес есть к курсам Microsoft. ших специалистов еще не наблюдается, которое сокращение корпоративных. Хо-
Растет интерес к курсам Cisco, Linux. Кри- а вот увеличение числа свободных трене- тя в условиях кризиса не до «золотой жи-
зисное сокращение обучения стало замет- ров уже есть. Значительно более свобод- лы», надо сохранить накопленное: и трене-
ным в октябре. По всем направлениям, со- ными на рынке стали тренеры-фрилансе- ров, и клиентов.
кращение на 40%, кроме Linux, где сокра- ры. Раньше у них все заранее было рас- Евгения: Массовая переквалификация
щение несколько меньше (около 25%). писано, а теперь они активно ищут работу. на сегодняшний день маловероятна, ведь
Евгения: Интерес аудитории к определен- (Тренер-фрилансер – преподаватель, сов- ни для кого не секрет, что миграции спе-
ным курсам это динамический показатель. мещающий работу на основном месте ра- циалистов из одной отрасли в другую это
Сегодня пользуются популярностью учеб- боты с ведением курсов в учебном цент- постоянное явление. Однако желающих
ные программы по продуктам Microsoft, ре. – Прим. автора.) сменить род деятельности в нынешних ус-
1С, интернет-технологиям, CISCO, CRM- Евгения: В нашем центре собран стабиль- ловиях несравненно больше, чем, скажем,
и CMS-системам, управлению проектами, ный педагогический коллектив, состоящий год назад. В этих условиях возрастает роль
средствам бизнес-аналитики, менеджмен- из более 200 преподавателей-практиков. учебных центров, к которым будет прояв-
ту. Тенденции изменений спроса – спрос Многие сотрудничают со «Специалистом» ляться повышенный интерес, однако «зо-
на курсы повышения квалификации и сер- уже более 10 лет, но есть и «молодая кровь». лотая жила» предъявит и дополнительные
тификацию. Это связано с перенасыщен- Наша задача в перспективе – удержать и со- требования к образовательным учрежде-
ностью рынка труда представителями оп- хранить этот коллектив. Мы не ставим экс- ниям: более пристальное внимание к ка-
ределенных профессий и ужесточением периментов над нашими слушателями. По- честву, методике, ассортименту курсов, со-
требований к кандидатам. Время спроса этому человек, пришедший к нам на курсы, ответствие реалиям рынка труда.

№12, декабрь 2008 79


образование
Выгодные программы обучения, скидки умана – ведущем техническом вузе страны, известном
В сети академий Softline существует система скидок, кото- не только в России, но и за рубежом. В ноябре уходящего
рая позволяет слушателям при прохождении всех курсов года центру исполнилось 17 лет. Все это время, учитывая
комплексной программы получить скидку на обучение 10%. пожелания клиентов (как корпоративных заказчиков, так и
Также в академиях работает система мотивации студентов – частных лиц), центр активно работал над расширением ас-
во время обучения проводится тестирование, по результа- сортимента курсов.
там которого определяется лучший слушатель, который по- На сегодняшний день «Специалист» предлагает обуче-
лучает ваучер на бесплатную сдачу международного сер- ние по таким направлениям, как:
тификационного экзамена. n Сетевые технологии (Windows Server 2008/2003, UNIX
Дополнительной возможностью для студентов пройти (Linux), Cisco, SQL Server, Exchange Server 2007, Systems
бесплатное обучение является участие в различных кон- Management Server, Microsoft Office SharePoint 2007).
курсах, проводимых Softline Academy. Например, с дека- n Информационная безопасность (IT-безопасность пред-
бря до апреля студенты средних и высших учебных заведе- приятия, DeviceLock, Aladdin, Cisco, SQL Server).
ний могут принять участие в IV всероссийском чемпионате n Интернет-технологии (HTML, веб-дизайн, Flash, MySQL,
«IT‑Academy 2009». Участники чемпионата имеют возмож- IIS, ASP.NET, Java 2, веб-маркетинг).
ность изучить новейшие продукты и технологии современ- n Курсы программирования (JavaScript и DHTML, веб-мас-
ных IT-компаний, а также получить ценные призы. теринг, PHP, JavaScript, ASP .NET, Си, Си++).
n Базы данных и Business Intelligence (MySQL, Access,
Наиболее сильная сторона учебного центра Oracle, Delphi, SQL Server).
Несмотря на специфику работы каждой академии в конк- n Настройка и ремонт ПК (Microsoft Windows XP/Vista,
ретном регионе, академии Softline имеют единую систему Paragon).
предоставления образовательных услуг. К наиболее силь- n Управление проектами и IT-сервис-менеджмент
ным сторонам учебных центров Softline Academy можно от- (Project 2007, ITIL, MOF).
нести следующее: n ERP, CRM.
n высокое качество обучения; n Английский язык.
n сертифицированные высокопрофессиональные препо-
даватели; Сертификация
n материалы на русском языке, написанные доступным В «Специалисте» работает центр тестирования, в котором
языком; обучающиеся могут сдать экзамен и получить престижные
n удобный для студентов режим занятий; доступная сертификаты от ведущих зарубежных и российских IT-ком-
для студентов цена; паний, что повысит ценность прошедших обучение специ-
n возможность бесплатной сдачи международных экза- алистов на рынке труда.
менов, а также готовность сотрудников академий всег- Среди различных сертификаций, интересных для чи-
да пойти навстречу своим слушателям. тателей журнала «Системный администратор», можно
выделить следующие: CCNA, CCNP, CCIP, CCDP, MCAS,
Филлиалы MCP, MCDST, MCSA, MCSE, MCDBA, MCAD, MCSD, Adobe
Академии Softline открываются на базе самых передовых Certified Expert (ACE), Certified Internet Webmaster (CIW)
вузов как в Москве, так и в российских регионах. Сейчас и многие другие.
в России действует 20 академий Softline.
Учебные классы
Учебный центр «Специалист» Занятия проводятся в 70 просторных аудиториях, рассчи-
Центр компьютерного обучения «Специа лист» танных на различное число слушателей (от 4 до 32). Это да-
(www.specialist.ru) создан в 1991 году при МГТУ им. Н.Э. Ба- ет возможность организовывать и проводить все возмож-
ные виды обучения: очное (в группе), дистанционное, ин-
дивидуальное.
Центр располагает уникальными техническими лабора-
ториями, в которых специалисты смогут получить реаль-
ный практический опыт работы с современным дорогосто-
ящим оборудованием:
n лаборатория оборудования Cisco Systems;
n лаборатория информационной безопасности;
n класс-лаборатория кластерных технологий;
n класс-лаборатория для монтажников СКС;
n класс-лаборатория для компьютерных техников.

Преподаватели
Все преподаватели центра – признанные эксперты в сво-
ей области и талантливые педагоги. Опыт и знания препо-
Учебный класс в УЦ «Микротест» давателей подтверждены престижными международны-

80
образование
ми сертификатами и сотнями благодарностей от корпора-
тивных заказчиков. Большинство преподавателей центра –
сертифицированные специалисты в своей области. В ко-
манде центра на сегодняшний день 200 преподавателей.
Большая часть из них имеют многолетний опыт в облас-
ти компьютерных технологий, а также являются обладате-
лями эксклюзивных международных сертификатов и про-
фессиональных наград.
Профессиональный опыт MCT (Microsoft Certified Trainer)
учебного центра:
n Многолетний опыт работы в области информационных
технологий.
n Участие в сотне реализованных проектов в качестве
технических специалистов, разработчиков и руководи-
телей.
n Успешное сочетание преподавания с оказанием кон- Учебный класс в УЦ R-Style
салтинговых услуг в крупнейших компаниях и систем-
ных интеграторах. торая позволяет человеку, заранее определившемуся с обу-
n Ежегодное повышение квалификации на курсах и семи- чением, значительно сэкономить деньги и получить скидку
нарах в России и за рубежом (США, Германия, Нидер- до 30%. В преддверии Нового года на сайте будут разме-
ланды и др.). щены новогодние скидки и спецпредложения.
n Подготовили свыше 10000 специалистов по програм-
мным продуктам и решениям Microsoft. Наиболее сильная сторона учебного центра
n Первыми в России подготовили и провели авторизован- В первую очередь «Специалист» – это, по сути, настоящая
ные курсы по новейшим технологиям Microsoft. «школа качества». Центр образован при МГТУ им. Н.Э. Ба-
n По заказу Microsoft разрабатывают и проводят техничес- умана, основанном в 1830 году, а это значит, что он вырос
кие семинары, лабораторные работы и курсы для заказ- в традициях, ориентированных на качественное обучение.
чиков, партнеров и сотрудников Microsoft (в том числе Сегодня в ассортименте центра 1000 курсов и комплекс-
«Полигон», «Платформа» и др.). ных программ (набор модулей, трек) по различным ком-
n Первыми в России сдают сертификационные экзамены пьютерным продуктам. При этом каждый из слушателей
и получают эксклюзивные сертификаты по новым тех- может выбрать как авторизованный курс (от мировых про-
нологиям Microsoft (Early Achiever). вайдеров), так и авторский (разработанный ведущими пре-
подавателями центра).
Cisco®Systems Кроме этого в «Специалисте» на сегодняшний день ис-
Инструкторы центра прошли сложнейшее испытание и по- пользуется индивидуальная форма обучения. При этом обу-
лучили подлинную сертификацию Certified Cisco® Systems чение может проводиться как в утреннее, дневное, вечернее
Instructor (CCSI®). Адресная подготовка позволяет препо- время в будни, так и в группах выходного дня. Уже в начале
давателям точнее донести до слушателей материал о под- октября клиенты учебного центра получили новейший ка-
готовке и сдаче сертификационных экзаменов. талог курсов с расписанием на 2009 год (более 4500 групп),
Занятия проводятся как на русском, так и на английс- что позволяет планировать обучение на год вперед.
ком языке. Также центр компьютерного обучения «Специалист»
реализует целую систему дополнительных сервисов (клуб
Выгодные программы обучения, скидки выпускников, служба трудоустройства, система контроля
Действует накопительная скидка при оплате курсов на оп- качества и др.).
ределенную сумму (скидка не распространяется на серти-
фицированные курсы): Заключение
n 18% – для тех, кто оплатил 3 курса (общей стоимостью При подготовке материала в процессе общения с предста-
не менее 70000 руб.); вителями учебных центров мне довелось узнать о настрое-
n 15% – для тех, кто оплатил 3 курса (общей стоимостью ниях, царящих внутри некоторых компаний. Несмотря на оп-
не менее 40000 руб.); тимизм участников интервью, как и многие другие органи-
n 10% – для тех, кто оплатил 2 курса (общей стоимостью зации, учебные центры уже столкнулись с ощутимым отто-
не менее 20000 рублей); ком клиентов. Трудно сказать, по этой ли причине уже на-
n 5% – для тех, кто оплатил какой-либо курс (стоимостью чались сокращения как преподавателей, так и прочих со-
не менее 5000 рублей, за исключением сертифициро- трудников учебных центров или руководство предвидит
ванных курсов CIW). еще более масштабные проблемы в ближайшем будущем.
Для планирующих на будущий год обучение это может оз-
Дополнительная скидка 5%, предоставляемая слушате- начать скорое начало борьбы за клиента, что в свою оче-
лям, оплатившим обучение в течение 2 недель после дня редь может привести к появлению новых выгодных пред-
рождения. Кроме этого действует программа «Резерв», ко- ложений и скидок при покупке курсов.

№12, декабрь 2008 81


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

Через тернии к звёздам: история создания плеера Apple iPod


Данный проект изменит Apple, и через 10 лет
это будет не компьютерный, а музыкальный бизнес.

Тони Фейдел

Дмитрий Мороз
В октябре исполнилось ровно семь лет с момента выхода в свет портативного плеера iPod
от Apple. За данный промежуток времени это устройство стало поистине культовым, завоевав
сердца свыше ста миллионов человек.

23
октября 2001 года состоя- с потерями MP3 (MPEG Layer-3) и впос- довому покупателю. Не обошло это
лось событие, перевернув- ледствии наслаждаться их звучани- и флеш-память, хотя в начале ново-
шее жизнь не только одной ем, где бы он ни был. Впрочем, всю го тысячелетия её стоимость всё ещё
компании, но и целой индустрии. Имен- свою музыкальную коллекцию унести оставалась очень высокой. К 2001 го-
но в этот день глава Apple Стив Джобс не удавалось, поскольку объём памяти ду большая часть портативных про-
(Steve Jobs) представил публике порта- в MPMan составлял всего 16 Мб. игрывателей на её основе обладала
тивный музыкальный плеер iPod, кото- Появление первого по-настояще- 64‑128 Мб пространства для хранения
рый не только позволил компании об- му массового MP3-плеера состоя- музыкальной информации, и лишь не-
рести финансовую стабильность, но и лось всего несколько месяцев спустя многие из них могли похвастаться сло-
стал её символом успеха, преобразив- после выхода MPMan на рынок США, том расширения, позволявшим увели-
шим прослушивание музыки в цифро- когда в сентябре 1998 года компа- чить этот объём.
вом виде и вознесшим его на качест- ния Diamond Multimedia выпустила ус- Некоторые производители реши-
венно более высокий уровень. Одна- тройство под названием Rio PMP300. ли пойти другим путём и применить
ко iPod пришлось пройти весьма тер- Объём флеш-памяти в плеере соста- в качестве источника хранения дан-
нистую дорожку, прежде чем он стал вил 32 Мб, однако мог быть увеличен ных более дешёвый носитель – жёс-
любимцем миллионов людей по все- вдвое путём установки карты памяти ткий диск. Небольшие «ноутбучные»
му миру. в слот расширения SmartMedia. Одна- 2,5-дюймовые винчестеры подходили
ко удовольствие это было не из дешё- для этого как нельзя лучше. Первой
Погружение в историю вых, поскольку к 200 долларам за пле- идею использования жёсткого диска
Право называться первым MP3-пле- ер владельцу необходимо было доба- в портативном музыкальном плеере
ером принадлежит модели MPMan, вить ещё 100 долларов за 32 Мб кар- реализовала Compaq ещё в 1998 году,
выпущенной корейской компани- точку. При цене 300 долларов за воз- продав разработку корейской компа-
ей Saehan на азиатский рынок в мае можность ношения часа музыки Rio нии Hango, которая выпустила у себя
1998 года. Чуть позже проигрыватель PMP300 являлся не самым лучшим ва- на родине 6 Гб плеер Personal Jukebox
появился и на американском рынке риантом, что, однако, не помешало ему PJB-100. Однако популярность подоб-
под названием Eiger Labs MPMan F10. в краткие сроки обрести популярность ные устройства обрели с появлени-
Продукт Saehan стал первым музы- и заложить фундамент начавшего на- ем на рубеже тысячелетий MP3-пле-
кальным плеером с энергонезависи- бирать стремительные обороты рынка еров Creative Nomad и Archos Jukebox,
мой флеш-памятью, на которую поль- портативных MP3-плееров. нёсших целых 20 Гб дискового про-
зователь мог посредством соедине- Обычно передовая технология странства для хранения музыкальных
ния с компьютером записать свои лю- с ростом популярности дешевеет композиций и прочей информации.
бимые композиции в формате сжатия и становится всё более доступной ря- Однако они имели большие размеры

82
ретроспектива
и вес, слабый аккумулятор, а также
медленный коммуникационный порт
USB 1.1, делавший заполнение диско-
вого пространства в этих устройствах
гигабайтами музыки занятием очень
неторопливым.
В сложившейся ситуации покупа-
тели были вынуждены решать: или
ставить на небольших размеров пле-
ер на базе флеш-памяти, который, од-
нако, будет способен хранить не более
одного-двух альбомов, либо же сми-
риться с большим и тяжёлым устройс-
твом на базе жёсткого диска, аккуму-
лятор которого не сможет проработать
больше 3-4 часов за раз. И в это вре-
мя, как гром среди ясного неба, ком-
пания Apple объявила о создании соб- Saehan MPMan Diamond Rio PMP300
ственного плеера iPod, продемонстри-
ровав миру, каким должен быть насто- компании RealNetworks, в которую он поставлявшую жёсткие диски для ком-
ящий портативный музыкальный про- устроился на работу в конце 2000 го- пьютеров и ноутбуков Apple. Руководс-
игрыватель. да. Однако исполнительный директор тво японского производителя электро-
Роб Глейзер (Rob Glaser) нашёл её не- ники продемонстрировало ему свою
Один человек – одна идея привлекательной. Так и не найдя об- новую разработку – миниатюрный
Энтони Майкл Фейдел (Anthony Michael щий язык с главой RealNetworks, То- винчестер диаметром всего 1,8 дюй-
Fadell), впрочем, как и многие дру- ни спустя всего шесть недель поки- ма и объёмом 5 Гб, который был го-
гие, фанатично влюблён в Apple. Ещё нул компанию. раздо меньше 2,5-дюймовых винчесте-
в 12 лет он собрал воедино свои чес- Фейдел был настолько одержим ров Fujitsu, использовавшихся в Nomad
тно заработанные за лето сбереже- своей идеей, что решил реализовать и Jukebox. «Они сказали, что не зна-
ния, а также «помощь» дедушки и ку- её своими силами. Для этого он ос- ют, что делать с ним. Возможно, бу-
пил на них компьютер Apple IIe. Во вре- новал собственную фирму под назва- дут устанавливать в ультрапортатив-
мя учёбы в Университете штата Ми- нием Fuse Networks и стал искать ин- ные ноутбуки, – говорил Рубинштейн. –
чиган (University of Michigan) Фейдел вестиции для финансирования про- Я же сразу решил, что именно этот
писал различные программы и игры екта. Глава отдела аппаратного обес- жёсткий диск и станет хранилищем ин-
для своего компьютера и мечтал рабо- печения Apple Джон Рубинштейн (Jon формации для нашего плеера».
тать в компании, его создавшей. Rubinstein) предложил Тони рассказать К апрелю 2001 года истёк испы-
В 1992 году он устроился на работу о своих намерениях Стиву Джобсу. Всё тательный срок, отданный Фейде-
в молодую фирму General Magic, в ко- ещё благоговея от Apple, Фейдел сра- лу на планирование, и он представил
торой помогал Sony и Motorola разра- зу же согласился. Джобсу, а также собравшимся руко-
батывать их коммуникационные ком- Результаты переговоров, прошед- водителям группы разработки iPod
пьютеры MagicLink и Envoy. Позднее он ших в январе 2001 года, были обнадё- три различные версии плеера. Первая
перебрался в Phillips Electronics на пост живающими: компания уже довольно из них представляла собой устройство,
руководителя отдела по разработке долгое время самостоятельно вынаши- на задней стенке которого был реали-
карманных компьютеров. Успех евро- вала идею создания MP3-плеера, кото- зован слот для подключения как жёст-
пейского гиганта электроники в прода- рый можно было бы подключать к про- кого диска, так и флеш-памяти. По сло-
же КПК на основе Windows CE (Phillips граммному обеспечению iTunes, и поэ- вам Джобса, подобное решение было
удалось реализовать 500 тысяч уст- тому сразу же предложила Тони рабо- слишком сложным, и его сразу же от-
ройств под названиями Velo и Nino) ту внештатным консультантом, выде- бросили. Во втором варианте проигры-
поспособствовал появлению у Фейде- лив ему в помощь команду из 35 со- ватель был оснащён обычной динами-
ла идеи создания персонального му- трудников Apple. Однако Джобс поста- ческой RAM-памятью. Преимуществом
зыкального проигрывателя, способ- вил перед инженером условие – спустя решения была низкая стоимость хра-
ного хранить тысячи песен. «Идея То- восемь недель тот должен будет пре- нения информации, недостатком же –
ни заключалась в создании MP3-плее- доставить свои наработки в некоем по- потеря данных при разрядке аккуму-
ра, платного онлайн-сервиса, который добии будущего продукта. лятора. По мнению Стива, пользовате-
снабжал бы проигрыватель необходи- ли просто побоялись бы покупать по-
мым контентом, а также компании, за- С миру по нитке добный продукт. Наконец, третий ва-
нимавшейся всем этим», – рассказы- В феврале 2001 года во время прове- риант представлял собой плеер с ус-
вал его друг Бен Кнаусс (Ben Knauss). дения выставки Macworld в Токио Ру- тановленным внутри 1,8-дюймовым
Фейдел решил предложить свою идею бинштейн навестил компанию Toshiba, жёстким диском Toshiba, снабжённый

№12, декабрь 2008 83


ретроспектива
он воплотить данную идею, на что по- Руководство PortalPlayer, однако, бы-
лучил утвердительный ответ. ло не сильно довольно сотрудничест-
Итак, зелёный свет проекту под ко- вом с «голубым гигантом» и, как толь-
довым названием Р-68 был дан. Боль- ко компании была предоставлена воз-
шей популярностью, однако, поль- можность поработать на Apple, сразу
зовалось другое его имя – Цимбалы же согласилось.
(Dulcimer). На этот раз Тони был офи- В активе у PortalPlayer уже было не-
циально принят на работу в компанию сколько готовых к производству моде-
своей мечты на должность главы отде- лей MP3-плееров. Изучив все проекты,
ла разработки iPod. Фейдел остановился на проигрывате-
Дабы как можно скорее вывести ле размером с пачку сигарет. Несмот-
продукт на рынок (Джобс хотел, чтобы ря на незаконченный дизайн, компа-
Creative Nomad продажи проигрывателя стартовали ния уже изготовила несколько прото-
в предрождественский сезон 2001 го- типов изделия. «Честно говоря, он был
экраном в верхней части лицевой сто- да), для проектирования iPod Фейдел просто уродлив», – говорил Кнаусс.
роны корпуса и кнопками управления – предложил воспользоваться услугами «Этот плеер напоминал портативный
в нижней. Обычно во время встречи молодой компании PortalPlayer, в кото- радиоприёмник с несколькими кноп-
Джобс то и дело перебивал выступа- рой работал его друг Кнаусс. ками». Наряду с внешним видом плеер
ющих своими комментариями, однако В то время PortalPlayer помогала обладал и другими недостатками. На-
на этот раз в помещении повисла мёр- другим производителям в разработ- пример, он не поддерживал плей-лис-
твая тишина, означавшая лишь одно – ке их собственных моделей MP3-пле- ты с количеством композиций больше
Стив был доволен. еров. До того как к ней за помощью десяти штук, в нём отсутствовал эк-
Определившись с источником для обратилась Apple, компания работа- валайзер, а пользовательский интер-
хранения музыкальной информации, ла над проектом по созданию порта- фейс был слишком запутанным.
Apple сразу же выкупила всю пар- тивного музыкального проигрывателя Впрочем, даже в таком виде Фей-
тию 1,8-дюймовых жёстких дисков для IBM. Из его примечательных осо- дел разглядел в проекте его потенциал.
у Toshiba, дабы те не достались кон- бенностей стоит отметить использова- По словам Кнаусса: «PortalPlayer при-
курентам. ние для хранения музыки миниатюр- влекала Apple потому, что у нас был бо-
Впрочем, на этом презентация ных жёстких дисков собственного про- лее-менее завершённый продукт, поз-
не завершилась. Как только Фейдел изводства под названием Microdrive, волявший ей придерживаться строго
закончил своё представление, вице- а также наличие встроенного моду- намеченного графика».
президент по мировому маркетингу ля Bluetooth для реализации беспро- Для создания системного про-
Фил Шиллер (Phil Schiller) внёс в ком- водной передачи звука на наушники. граммного обеспечения Apple при-
нату макеты с эскизными изображе- влекла компанию Pixo, состоявшую
ниями различных музыкальных проиг- из её бывших сотрудников и работав-
рывателей, которые объединяла одна шую над операционной системой для
вещь – колесо в центре блока с кноп- мобильных телефонов. Венчал же её
ками управления. По словам Шиллера, пользовательский интерфейс, разра-
идея заключалась в прокрутке боль- ботанный дизайнером Тимом Васко
шим пальцем руки колеса для лёгко- (Tim Wasko). Придя в Apple из NeXT,
го перемещения по спискам компози- он успел запомниться как создатель
ций. Для выбора достаточно было на- простого интерфейса проигрывате-
жать выпуклую клавишу в его центре. ля QuickTime. Васко готовил свои на-
Впрочем, это ещё не всё: чем дольше броски один за другим, представляя их
пользователь вращал колесо, тем быс- на больших листах картона, которые
трее выполнялась операция. «Практи- передавались всем участникам сове-
чески все MP3-плееры имеют кнопки щаний для ознакомления и последую-
«+» и «–», при помощи которых поль- щего обсуждения.
зователь перемещается по каталогу Не осталась без дел и команда ди-
с песнями», – рассказывал о возник- зайнеров под предводительством Джо-
новении идеи колеса прокрутки Шил- натана Ива, вице-президента по про-
лер. «Однако если мы собирались мышленному проектированию, созда-
вместить в наш проигрыватель тыся- телю внешнего вида iMac, iBook и ос-
чу песен, нельзя было заставлять бу- тальных продуктов Apple. Инженерам
дущего пользователя нажимать одну удалось разместить жёсткий диск, уп-
и ту же кнопку тысячу раз! Поэтому я равляющую электронику, дисплей
подумал: если вы не можете подняться и аккумуляторную батарею в корпу-
вверх, почему бы не пойти по кругу?» се размером с колоду игральных карт.
Джобс спросил у Фейдела, сможет ли Оригинальный iPod На долю же Ива и его команды выпала

84
ретроспектива
задача придать этой конструкции как можно более изыс-
канный и запоминающийся дизайн.
Стив Джобс лично принимал активное участие в проекте,
организовывая регулярные собрания представителей груп-
пы Фейдела, а также PortalPlayer. На начальном этапе глава
Apple встречался с ними раз в две-три недели, однако к то-
му времени, когда на свет были произведены первые про-
тотипы iPod, он превратил их в ежедневное общение. В те-
чение этих собраний глава Apple рассказывал им о пробле-
мах, с которыми он сталкивался при использовании уст-
ройства, будь то интерфейс, качество звука или же размер
колеса прокрутки. «На встречах Стив раздражённым голо-
сом заявлял, что хочет получить доступ к необходимой ему
песне нажатием не более чем трёх кнопок», – говорил Кла- Комплектация iPod
ус. «Каждый день мы слышали новые указания по поводу
того, что и как должно быть сделано». Подобная практика са. По её мнению, наушники – это единственная часть му-
была нетипичным явлением для других разработок компа- зыкального проигрывателя, которую замечает посторон-
нии и недвусмысленно указывала, что проект не будет вне- ний при взгляде на человека, слушающего музыку. Поэто-
запно отменён или заморожен. му всё внимание он концентрирует именно на них. Науш-
Впрочем, на узком кругу избранных вся открытость и за- ники же белого цвета позволяли выделить владельца iPod
канчивалась. Извечное стремление Apple скрывать свои из толпы, сделать его непохожим на других, что как раз
разработки от посторонних глаз и ушей не обошло сторо- соответствовало рекламному слогану Apple «Думай ина-
ной и iPod. За исключением Фейдела и его команды, а также че» (Think Different).
нескольких сотрудников PortalPlayer, компания никому боль- Позднее Apple построила всю рекламную кампанию
ше не демонстрировала пилотную версию плеера. Во вре- iPod вокруг белых наушников. Многие до сих пор пом-
мя тестирования устройства оно было заключено в боль- нят рекламные ролики танцующих силуэтов фигур и бе-
шой корпус, своими размерами сопоставимый с коробкой лые провода, тянущиеся от наушников к зажатому в руке
из-под обуви, а органы управления находились на различ- или же находящемуся на поясе iPod. Впрочем, что гово-
ных её поверхностях, дабы «посторонние» не могли оце- рить: «рекламная машина» Apple уже давно стала леген-
нить размеры проигрывателя, а также определить реаль- дарной благодаря своему ролику 1984 года (оригиналь-
ное расположение элементов на его корпусе.
Создание iPod, как и любого другого высокотехноло-
гичного устройства, нельзя было назвать гладким. Пробле-
мы случались как на этапе проектирования, так и на этапе
производства. Однако обнаруженная всего за три месяца
до начала поставок iPod в магазины серьёзная конструк-
тивная недоработка чуть не поставила крест на проекте. Из-
за плохой работы системы энергопотребления (а точнее –
постоянно работающего жёсткого диска) встроенный ак-
кумулятор разряжался в течение трёх часов, причём даже
в том случае, если плеер находился в выключенном состо-
янии. На решение этой проблемы инженеры потратили во-
семь недель, что, к счастью, не повлияло на сроки появле-
ния iPod на прилавках. Выход заключался в использовании
флеш-памяти в качестве буферной памяти, в которую пе-
риодически загружались песни с винчестера. Таким обра-
зом, устройство гораздо реже обращалось к «прожорливо-
му» жёсткому диску. Установка 32 Мб флеш-памяти в iPod,
позволявшей хранить до 20 минут музыки, а также оптими-
зация программного обеспечения позволили поднять вре-
мя его автономной работы до 10 часов.
В разговоре о создании iPod нельзя не упомянуть о, ка-
залось бы, такой весьма тривиальной вещи для портатив-
ного проигрывателя, как комплектные наушники. Решение
сделать их белого цвета было заранее спланированным ша-
гом, нацеленным на превращение iPod в наиболее узнава-
емое электронное устройство на планете. До появления
плеера Apple производители не придавали особого значе-
ния цвету наушников, чего не скажешь о компании Джоб- Стив Джобс на обложке журнала Newsweek

№12, декабрь 2008 85


ретроспектива
на то что во всех обзорах устройст-
Как вы лодку назовёте… звание должно быть описательным. Во вре- ва критиковалась его высокая цена
Космический корабль и музыкальный про- мя своих пространных разговоров на те- в 400 долларов США, обозреватели
игрыватель – может ли между ними быть му MP3-плеера Стив постоянно обращал- практически в один голос отмечали,
что-нибудь общее? В случае с iPod, как ока- ся к стратегии «цифрового хаба» (digital что по сравнению с другими аналогич-
залось, очень даже. hub), центром которой являлся компьютер ными устройствами деньги на iPod бу-
Название будущему плееру Apple при- Macintosh, к которому в свою очередь под- дут потрачены не зря.
думал Вини Чико (Vinnie Chieco), незави- ключались различные цифровые устройст- Стив Джобс с самого начала был
симый копирайтер, среди прочих наня- ва. В образе «ультимативного» хаба Чико уверен в успехе своей новинки, и он
тый компанией для разработки плана по представлял себе космический корабль, не заставил себя ждать: спустя всего
представлению новинки широкой обще- нёсший небольшие челноки, названные полтора месяца после старта продаж
ственности. им Pod. Оставалось только добавить к по- плеера 10 ноября 2001 года Apple про-
Джобс дал им наставление – руководс- лучившемуся названию вездесущую в про- дала 125 тысяч устройств. Новая эра,
твоваться главным девизом будущего уст- дуктах Apple букву «i», и новый музыкаль- эра iPod, началась.
ройства: «1000 песен в вашем кармане». ный плеер обзавёлся своим ставшим уже
Исходя их этого, Чико полагал, что его на- легендарным названием – iPod. Сладкое послевкусие
2008 год стал седьмым годом жизни
ный Macintosh), а также целой филосо- После того как Джобс представил iPod. За прошедшее время мир уви-
фии под уже упомянутым единым ло- публике новое детище Apple, часть дело шесть поколений оригинально-
зунгом «Think Different», запущенной присутствовавших осталась разоча- го iPod (в прошлом году получивше-
в 1998 году и приуроченной к анон- рованной. Конечно, на фоне осталь- го приставку «Classic»), новые моде-
су первого компьютера iMac. Так что ных MP3-плееров iPod выделялся по ли Mini, Nano, Shuffle и, наконец, Touch.
глупо было бы ожидать от неё прома- своим характеристикам в лучшую сто- На данный момент Apple в общей слож-
ха в этот раз. рону, однако оставался при этом «все- ности продала свыше 160 миллионов
го лишь» музыкальным проигрывате- портативных музыкальных проигры-
Подсказка: это не Mac лем. Однако совсем не этого ждали вателей, и с каждый днём эта циф-
Данный подзаголовок был выбран журналисты. ра растёт.
мною неспроста, ведь именно он стал Впрочем, Джобс не был бы собой, Не стоит на месте и онлайновый
темой письма, разосланного 16 октяб- если бы заранее не просчитал возмож- сервис по продаже музыки iTunes
ря 2001 года пресс-службой Apple при- ную реакцию публики. В конце пресс- Music Store, запущенный в мае 2003 го-
глашённым на пресс-конференцию, конференции каждый её участник по- да, он уже неделю спустя отрапорто-
где и должно было состояться явле- лучил в подарок по плееру. И поступи- вал о сенсационных результатах – про-
ние iPod миру. ла Apple так не из-за желания угодить даже миллионной композиции. На се-
Свою речь 23 октября Стив Джобс критикам и их первым обзорам. В ком- годняшний день через iTunes Store (пе-
начал с разговора на тему конверген- пании понимали, что для того чтобы по- реименованный в прошлом году в свя-
ции музыки и технологии и пообещал, настоящему оценить iPod и убедиться зи с появлением в нём фильмов и кли-
что этот день станет началом новой му- в его уникальности, необходимо позна- пов, а позже и программ) приобретено
зыкальной революции. После чего он комиться с ним лично, воочию отметить свыше 5 миллиардов песен.
достал iPod из своего кармана и ска- дизайн, опробовать управление собс- Отдельно стоит упомянуть и рынок
зал: «Вот как раз и он! Это потрясаю- твенными руками, послушать качест- аксессуаров к плеерам Apple, по оцен-
щее маленькое устройство хранит ты- во музыки своими ушами… кам экспертов оценивающийся в пол-
сячу песен и помещается в моём кар- Тактический план сработал, нажив- тора миллиарда долларов.
мане». ка была проглочена. Даже несмотря Феноменальный успех iPod отчёт-
ливо демонстрирует успешный резуль-
тат слаженной деятельности команды
талантливых инженеров, руководству-
ющихся видением одного человека.
«С iPod прослушивание музыки боль-
ше не будет таким, как раньше», – го-
ворил Джобс в октябре 2001 года, и он
в конечном итоге не прогадал.

1. http://www.wikipedia.org.
2. http://www.wired.com.
3. http://www.macworld.co.uk.
4. http://www.ilounge.com.
5. http://www.nytimes.com.
6. http://www.about.com.
Текущая линейка плееров iPod 7. http://lowendmac.com.

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

Ржущий конь Источник юзерских недугов


Звонит пользовательница с большими глазами: Приходит тетка в кабинет. У меня нет так называемой серверной.
– У меня здесь постоянно ВИРУС какой-то вылезает!!! Сижу с девчонками-машинистками вместе с сервером и копиро-
Иду смотреть... вальной техникой в одном кабинете. Вот заходит, значит, тетка че-
– Где? го-то копировать и вспоминает «странную закономерность». Си-
– Троянский конь. Сейчас нету, вот, когда я пытаюсь в поч- дят они в своем отделе за столами, заставшими молодого Бреж-
те письмо посмотреть – у меня вот тут (манипуляция рукой куда- нева, никак к обыкновенным компам (моник + системник) не при-
то в нижнюю правую область экрана) вылезает троянский конь! способленным. Столы двухтумбовые, и, если ставить системник
И ржет. под стол между тумбами, тетки по-любому задевают его ногами.
PS: сообщение: почтовое вложение заражено Troyan.bla-bla. И они заметили, что у всех, кто работает за компьютером, забо-
Удалить? (с) антивирус Касперского. лела левая коленка. Может быть, это от «ИЗЛУЧЕНИЯ»? Именно
vip_777 так, они большие глаза при этом слове делают. Пугаю еще силь-
нее, что теперь они неизлечимы, и отправляю к остальным бор-
цам с невидимой смертью за молодыми побегами кактуса и учить
физику. Заколебался переворачивать горшки с кактусами и оп-
Школа ремонта лакивать убитую поливом растений технику.
Находимся мы сейчас в 2 зданиях. В одном ремонт, но часть офи- Zampolit
са там осталась, а следовательно, и все коммуникации. IT, прав-
да, находится в новом офисе, но каждый день туда ходим, следим
за процессом. Ремонтникам строго-настрого запретили трогать
какие-либо провода (благо они закреплены над подвесными по- Новая клава
толками и в стенных шахтах, а их вроде не трогают). С утра зво- Купил как-то себе новую клаву взамен утопленной сестриной, про-
нок – не работают телефоны, прямые провода, офисы друг дру- стую, в общем-то, без особых наворотов. А через какое-то вре-
га не видят. Пришли и увидели картину великолепную. Три мет- мя у меня очепятки полезли с буквой «Ж». Я в непонятках – ви-
ра 50-парного телефонного кабеля вырезано напрочь и аккурат- рус словил, что ли? Обновил Каспера, Аутпост, Ад-Аваре, и ниче-
но свернуто на полу. На вопрос – на фига, ремонтники изобра- го – девственная чистота. Задумался, что делать дальше, и рас-
зили Равшанов и Джамшудов и сказали типа: «Проводама само- сеянно вожу взглядом по новехонькой клаве... И тут подсозна-
убийцама. Мы потолка раскиривать, а она сама кааак упадать». ние краем глаза замечает какую-то несуразицу... Останавлива-
Потом скрылись от нашего праведного гнева в подвале и боль- юсь, присматриваюсь и выругался – вместо клавиши «Ж» уста-
ше не высовывались. Естественно, все соединили (методом науч- новлена «Э». Таким образом, у меня было две «Э», вот и опеча-
ного тыка, так как телефонного оборудования нет), теперь ждем, тывался забавно порой.
когда наступит очередь сети и нового оптоволокна, которое толь- Линкей
ко туда подвели...
Kecalkoatl

Осторожно с кактусами!
А я хотел бы пожаловаться не на юЗверей с кактусами, а на свой
Борьба с курением домашний кактус. Я, конечно же, не верю в защиту от радиации
Вот такое веселое письмо свалилось в корпоративную почту и т. п., просто мне нравятся кактусы, и они растут у меня дома.
за 1 минуту до конца рабочего дня. Так вот, со мной приключилась презабавная история.
«Всем сотрудникам Компании и их руководителям! Как-то раз пришел с работы весь в проблемах и решил пооб-
Ваш профессионализм и желание работать выкуриваются Ва- щаться с подругой по телефону. Говорил часа полтора и так был
ми ежедневно около офиса Компании. Вы делаете это в рабочее увлечен разговором, что присел на подоконник покурить.
время и по многу часов. А как вы думаете, что у меня на подоконнике? Правильно –
С 28 ноября курение около офиса в рабочее время категори- КАКТУС.
чески запрещено! У всех сотрудников, курящих внизу, будут отби- Мой вам совет, если у вас дома есть кактус с 2-сантимет-
раться пропуска, а также будет поставлен вопрос о продолжении ровыми иголками, то не ходите по дому в шортах и не садитесь
их дальнейшей работы в Компании. По руководителям, сотрудники на подоконники.
которых будут обнаружены курящими около офиса, будет постав- Алексей Трофименко
лен вопрос о профессиональном соответствии должности. КОМ-
ПАНИЯ ПЛАТИТ ДЕНЬГИ ТОЛЬКО ЗА РАБОТУ!»
Видимо, скоро будет достигнута тотальная победа над куре-
нием в одной отдельно взятой компании.
Tarracue

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


http://sysadmin.mail.ru

№12, декабрь 2008 87


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

Компьютерная сеть за один день.


Как на базе оборудования D-Link
развернуть проводную и Wi-Fi сеть
Сергей Клименко
са, а во-вторых, в качестве «методи- ная сеть (подключение компьютеров
ческого пособия по сетевым решени- к коммутатору и соответствующая кон-
ям для уроков информатики в различ- фигурация, каскадирование), беспро-
ных учебных заведениях и для курсов водные сети (настройка точки доступа,
компьютерной грамотности». Доволь- установка сетевого адаптера для ком-
но исчерпывающая характеристика, пьютера), подключение локальной се-
поскольку издание изобилует иллюс- ти к Интернету (Ethernet, ADSL), сервер
трированными и подробно описанны- печати, IP-камеры и комбинированные
ми решениями ряда конкретных и до- устройства. В приложениях можно най-
вольно популярных задач, с которы- ти несколько полезных заметок вро-
ми зачастую сталкиваются неопытные де настройки статического IP-адреса
пользователи. Во всех практических и DHCP, а также информацию об осно-
примерах подразумевается исполь- вах IP-адресации и модели OSI.
зование продуктов D-Link, что понят-
Назвать это издание полноценной кни- но, но воспринимается все же двойс- n
Издательство: «Диалектика»
гой сложно, впрочем, оно на то не пре- твенно: с одной стороны, читатель по- n
Год издания: 2009
тендует и относится скорее к формату лучает реальный навык простого при- n
Количество страниц: 256
карманных справочников. Содержимое менения полученных знаний, но с дру- n
ISBN: 978-5-8459-1431-6
же позиционируется двояко: во-пер- гой – его кругозор ограничивается све- n
Цена: ≈ 143 руб.
вых, как универсальное руководство по дением теории до пошаговых кликов. К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
оборудованию D-Link для дома и офи- Среди рассматриваемых тем: локаль- «Вильямс».

Анализ и проектирование
информационных систем с помощью
UML 2.0, третье издание
Лешек А. Мацяшек
В отдельной главе рассматривает- ниями, телемаркетинг, расходы на рек-
ся спецификация требований (состо- ламу. У каждого представленного при-
яний и их изменения, а также пове- мера есть свои особенности, на кото-
дения). Затем читателя обучают под- рых акцентируется внимание. Другие
готовке технического задания, визу- полезные компоненты книги – конт-
альному моделированию, проекти- рольные вопросы с ответами и упраж-
рованию пользовательского интер- нения с пояснениями, а также отде-
фейса (оконного и Web) и баз данных. льная глава, посвященная «система-
Одна из последних глав посвящена тизации и закреплению учебного ма-
вопросам управления качества (ау- териала». Все это не только способст-
дит, тестирование и его методы) и из- вует усвоению материала, но и служит
менениям. хорошим мостом между теорией и ее
Фундаментальная книга по двум пер- Главное отличие этой книги от по- практическим применением.
вым этапам разработки информаци- добных – использование «учебных
онных систем: анализу и проектиро- примеров» в основе изложения. Автор n
Издательство: «Вильямс»
ванию. В начале автор знакомит с про- подобрал ряд распространенных при- n
Год издания: 2008
цессом разработки программного меров, которые должны помочь чита- n
Количество страниц: 816
обеспечения и определением требова- телю лучше сориентироваться при ре- n
ISBN: 978-5-8459-1430-9
ний – с классическими и более совре- шении возникающих у него на практи- n
Цена: ≈ 1024 руб.
менными методами их выявления вро- ке задач. Среди таковых – магазин ви- К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
де мозгового штурма и JAD. деокассет, управление взаимоотноше- «Вильямс».

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

ASP.NET 3.5, компоненты AJAX


и серверные элементы управления
для профессионалов
Роб Камерон, Дэйл Михалк
дующие основополагающие момен- щена созданию пакетов и их развер-
ты – это наследование и инкапсуля- тыванию, где особое внимание уделя-
ция в ASP.NET, архитектура обработ- ется лицензиям и локализации. Авто-
ки запросов и управление состояни- ры щедро наполнили издание листин-
ем, оформление элементов управле- гами: иногда даже невольно возника-
ния с помощью WebControl, события, ет ощущение, что их объем превыша-
шаблоны серверных элементов управ- ет количество пояснений. К недостат-
ления и привязка данных к ним. После кам книги стоит отнести качество ее
этого в книге рассказывается о сцена- перевода: содержимое не только изо-
риях клиентской стороны (такие веб- билует кальками с английского языка,
формы, как Click, Confirm, CallBack) но и вовсе не лучшим образом воспри-
и об использовании AJAX. После рас- нимается из-за не самых удачных язы-
Заявляется, что книга ориентирована смотрения дополнительных серверных ковых конструкций.
на опытных разработчиков ASP.NET элементов управления читатель узна-
(и, возможно, VB.NET), но, несмот- ет об архитектуре времени проектиро- n
Издательство: «Вильямс»
ря на это, начинается с классическо- вания в .NET Framework. Все получен- n
Год издания: 2009
го приложения «Hello, World». Затем ные знания объединяются для демонс- n
Количество страниц: 608
читателя знакомят со свойствами, ме- трации примера разработки сложного n
ISBN: 978-5-8459-1467-5
тодами, событиями элементов управ- элемента управления, взаимодейс- n
Цена: ≈ 772 руб.
ления и представлением веб-страни- твующего с поисковым веб-сервисом К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
цы как дерева таких элементов. Сле- Live Search. Последняя глава посвя- «Вильямс».

WPF: Windows Presentation Foundation


в .NET 3.5 с примерами на C# 2008
для профессионалов, второе издание
Мэтью Мак-Дональд
боткой на C# для .NET с помощью Visual вы посвящены документам (потоковым
Studio и желающим не просто познако- и фиксированным) и возможностям пе-
миться с WPF, но и добиться глубокого чати. Из мультимедийных аспектов вы-
понимания всей соответствующей спе- делены и рассмотрены анимация, звук,
цифики. После лаконичного введения видео и трехмерная графика. Послед-
в WPF автор предлагает поэтапное изу- ние главы – о пользовательских эле-
чение предмета: язык разметки XAML, ментах, взаимодействии с Windows
класс Application для создания прило- Forms (взаимодействие форм и окон),
жений, понятие компоновки (исполь- многопоточности и развертывании при-
зование контейнеров), управление со- ложений с помощью средства установ-
держимым и его организацией, рабо- ки ClickOnce.
та с событиями и окнами, страничные
Неспроста это издание даже внешне интерфейсы и служба навигации, мо- n Издательство: «Вильямс»
напоминает энциклопедию: в столь дель команд и их выполнение, ресур- n Год издания: 2008
внушительном томе действитель- сы. После этого рассматриваются сти- n Количество страниц: 928
но удалось собрать исчерпывающую ли и геометрия (фигуры, их преобразо- n ISBN: 978-5-8459-1429-3
информацию по такому значимому вания, кисти), а также такие вопросы, n Цена: ≈ 1104 руб.
компоненту .NET, как WPF (Windows как привязка данных и шаблоны эле- К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
Presentation Foundation). Как результат, ментов управления и данных. Две гла- «Вильямс».
его можно однозначно рекомендовать
специалистам, занимающимся разра- Обзор книжных новинок подготовил Дмитрий Шурупов

№12, декабрь 2008 89


содержание журнала за 2008 год
АДМИНИСТРИРОВАНИЕ № История одной установки Linux на ноутбуке Павел Закляков №8
Как запустить «САМО-Тур» для Windows под Linux
BSD для пользователя, или Обзор TrueBSD Сергей Яремчук №2 Сергей Барановский №5
btrfs от Oracle: наш ответ ZFS Андрей Пешеходов №6 Как подружить Linux с доменом Active Directory Мирослав Бусалов №3
CRM-решения – направление роста Михаил Зуев №3 Клавиатура с усилителем пароля Иван Максимов №2
DeleGate – многофункциональный прокси-сервер Клонирование разделов диска во FreeBSD Владимир Ляшко №4
Сергей Супрунов №10 Корпоративное лицензирование: если уж делать, то грамотно
Diskeeper – увеличение производительности винчестеров Дина Моисеева №10
Марат Давлетханов №8 Лебедь, рак да щука: САМО-Софт, wine, Etersoft
Endian Firewall 2.2: из Италии с любовью Валентин Синицын №6 Сергей Барановский №9
Fedora Directory Server – сервер каталогов уровня предприятия Легализация ПО. Цена ошибки! Дмитрий Жеряков №8
Андрей Маркелов №1 Медиация Linux и GDI-принтера Павел Закляков №5
FreeBSD 7.0: быстрее, современней, надёжней Сергей Супрунов №2 Могут ли информационные киоски работать под Linux
Hyper-V: виртуализация в Windows Server 2008 Андрей Бирюков №4 Антон Борисов №10
ITIL: необходимо и достаточно? Александр Башкиров №11 Модификация дистрибутивов на основе Windows Installer
Jabberd2 – простой и нетребовательный к ресурсам Иван Коробко №8
XMPP-сервер. Часть 1 Михаил Кондрин №8 Мониторинг активности хостов Антон Борисов №12
Jabberd2 – простой и нетребовательный к ресурсам Настраиваем firewall с if_bridge на базе FreeBSD 7.0
XMPP-сервер. Часть 2 Михаил Кондрин №9 Владимир Ляшко №7
Lustre FS. Настраиваем и используем кластерную систему Настраиваем подключения к удаленному рабочему столу
в промышленных масштабах. Часть 1 Виталий Банковский №11 Иван Коробко №10
Microsoft Exchange Server 2007 Сергей Лопутнев, Дмитрий Ильин №2 Настраиваем связку Apache + PHP + MySQL
Microsoft Exchange Server 2007. Переходим на кластер на базе ОС OpenBSD 4.3 Максим Гришков №6
Сергей Лопутнев, Дмитрий Ильин №7 Новшества в Windows 2008: транзакционная
OES 2 – Linux для профессионалов Виталий Сайфуллин №3 файловая система Андрей Бирюков №8
OpenBSD 4.3: что новенького? Влад Глаголев №6 Новшества в Windows Server 2008: стек TCP/IP Андрей Бирюков №9
OpenBSD: особенности организации VPN на основе набора Новые возможности мониторинга событий
протоколов IPsec Максим Гришков №12 в Windows Server 2008 Андрей Бирюков №12
Openfiler – дистрибутив для организации NAS Сергей Яремчук №7 Обзор ALT Linux 4.0 Children Сергей Яремчук №9
PowerShell: часто задаваемые вопросы Василий Гусев №3 Обзор CMS Skeletonz Сергей Супрунов №11
PowerShell: часто задаваемые вопросы. Продолжение Обзор Linux-дистрибутива MEPIS 7.0 Сергей Яремчук №4
Василий Гусев №4 Обзор OpenSolaris 2008.05 Андрей Соколов №6
SharePoint в качестве платформы документооборота Определение первичного ключа вставленной записи
Нелли Садретдинова №5 Сергей Супрунов №2
VMware Esxi – виртуализация уровня предприятия Оптимизация сетевой печати Иван Коробко №11
Виктор Карабедянц №11 Оптимизируем работу MS SQL Server Алексей Бережной №1
Windows 2008 Server Core: Windows без окон Андрей Бирюков №1 Организуем сетевой календарь в корпоративной среде
XFS от SGI: структура и алгоритмы Андрей Пешеходов №11 Иван Максимов №2
Xneur – автоматическое переключение раскладок под Linux Особенности обновления контроллера домена
Павел Закляков №10 до Windows Server 2008 Андрей Бирюков №10
Балансировка исходящего веб-трафика между Панель управления хостингом ISPConfig Сергей Яремчук №9
двумя провайдерами. Squid+ipvs+keepalived Кирилл Хорошилов №1 Первый взгляд на MySQL 6 Кирилл Сухов №10
Безопасный ftp – это легко! Иван Максимов №1 Переводим домен Active Directory на лицензионную основу
Белые списки в DSPAM Михаил Кондрин №12 Александр Емельянов №1
Введение в системное программирование Потоковое аудио/видеовещание с VideoLAN Крис Касперски №2
Часть 1. Постановка задачи Алексей Барабанов №4 Почтовое отделение для малого офиса:
Дао DTrace. Часть 2 Евгений Ильин, Филипп Торчинский №1 OMS + Spampal + MS Outlook Александр Емельянов №8
Дао DTrace. Часть 3 Евгений Ильин, Филипп Торчинский №2 Почтовый шлюз для MS Exchange 2007 на базе
Дистрибутив для создания межсетевого экрана – pfSense FreeBSD 7.0 + Postfix 2.4 Антон Сенько №11
Сергей Яремчук №2 Простейшая установка и настройка PPPoE-сервера под Linux.
Дистрибутивный диск с FreeBSD собственной сборки Исправление ошибки LCP Config Request Сергей Гулинов №2
Рашид Ачилов №4 Простой скрипт для резервного копирования Рашид Ачилов №2
Единая прозрачная авторизация пользователей домена Работаем с данными Active Directory из скриптов.
Active Directory на сервере Squid Александр Соколов №7 Часть 1. Применение Bourne Shell Рашид Ачилов №9
Инструменты миграции Sharepoint на все случаи жизни Работаем с данными Active Directory из скриптов.
Нелли Садретдинова №4 Часть вторая. Применение Perl и PHP Рашид Ачилов №12
Используем check_relay в Sendmail для борьбы со спамом Решаем проблемы в Outlook Express Дмитрий Нестеркин №12
Сергей Супрунов №9 Свой собственный почтовый сервер Марат Давлетханов №8
Используем систему мониторинга сети OpenNMS Андрей Семенов №7 Сетевое сканирование с помощью МФУ от HP Иван Коробко №12

90
содержание журнала за 2008 год
Сколько стоит переход на легальный софт? Александр Емельянов №5 Хитрости и тонкости работы, позволяющие экономить время
Службы доменов Active Directory в Windows Server 2008 Андрей Луконькин №5
Александр Емельянов №11 Эффект утечки памяти на сервере «1С:Предприятие 8»
Собираем базу знаний Даниил Никифоров №1 Андрей Луконькин №2
Создаем интернет-магазин на osCommerce Сергей Яремчук №1
Создаем каталог Active Directory Иван Коробко №7 БЕЗОПАСНОСТЬ №
Создаем персональный набор ярлыков для каждого
пользователя в папке «Мой Компьютер» Иван Коробко №3 BitLocker: новое средство защиты данных
Создаем почтовый сервер. Полное руководство Андрей Шетухин №7 в Windows Server 2008 Андрей Бирюков №7
Создаём сервер сетевой установки Fedora/RHEL Андрей Маркелов №11 NOD32 – комплексная защита системы Андрей Бирюков №4
Строим персональный SyncML-сервис синхронизации OpenBSD: имидж – ничто, безопасность – все! Максим Гришков №8
Максим Иргизнов №3 Безопасность в сетях, построенных на Layer2-коммутаторах
Строим плановое IT-хозяйство Дмитрий Бутянов №8 Александр Неупокоев №12
Строим систему для виртуализации на базе Борьба с фишингом при помощи ClamAV Сергей Яремчук №7
серверной платформы Intel при помощи Linux CentOS 5.1 Дефекты проектирования Intel Core 2 Duo – аналитический
и VMware Server 2 Алексей Бережной №10 обзор с точки зрения безопасности Крис Касперски №6
Такой разный Squid Сергей Яремчук №3 Жучки в электронных письмах Крис Касперски №4
Терминальные службы в Windows Server 2008 Андрей Бирюков №5 Изучаем теневое копирование Роман Васильев №5
Тестируем программы для работы с разделами Меры безопасности для защиты информации IT-службы
жестких дисков Сергей Яремчук №12 Лев Мышкин №12
Технология борьбы со спамом DKIM Сергей Яремчук №11 На страже безопасности – Software Restriction Policies
Удаленное управление компьютером Виталий Банковский №8 Вадим Поданс №9
Управляем объектами в Active Directory. Часть 1 Иван Коробко №5 Настройка TLS/SASL-шифрования и аутентификации
Управляем объектами в Active Directory. Часть 2 Иван Коробко №6 в MTA Sendmail Андрей Маркелов №8
Управляем объектами в Active Directory. Часть 3 Иван Коробко №7 Новые возможности Heimdal – объединение открытых ключей
Устанавливаем и настраиваем систему и Kerberos Михаил Кондрин №5
мониторинга сети OpenNMS Андрей Семенов №5 О пользе файерволов Сергей Супрунов №3
Устанавливаем и настраиваем терминальное решение Организуем Cisco IPSec VPN с авторизацией по сертификатам
на базе Citrix Presentation Server 4.5 и тонких клиентов WYSE на ключах eToken Роман Совалов, Константин Троицкий,
Алексей Бережной №9 Кирилл Случанко №7
Учет оборудования с Kwok Information Server Сергей Яремчук №10 Поиск malware на Server 2003/XP своими руками Крис Касперски №3
Фильтруем спам в EXIM с помощью SpamProbe Павел Литвинов №5 Правда об идентификаторах безопасности Иван Коробко №5
Храним учетные записи VPN в связке RADIUS/MySQL Синхронизация ACL и структуры организации. Часть 2
Виталий Банковский №4 Вадим Андросов №1
Что нового в IIS 7.0 Сергей Яремчук №3 Синхронизация ACL и структуры организации. Часть 3
Что представляет собой система мониторинга Вадим Андросов №2
GroundWork Monitor Сергей Яремчук №6 Установка цепочки серверов сертификации
Шлюз в Интернет на ComixWall ISG Сергей Яремчук №8 как часть внедрения PKI в домене. Часть 1 Станислав Шпак №8
Установка цепочки серверов сертификации

АДМИНИСТРИРОВАНИЕ «1С» № как часть внедрения PKI в домене. Часть 2 Станислав Шпак №10
Установка цепочки серверов сертификации
«1С:Сценарное тестирование» Андрей Луконькин №9 как часть внедрения PKI в домене. Часть 3 Станислав Шпак №11
Анализируем производительность «1С:Предприятие»
Андрей Луконькин №3 ПРОГРАММИРОВАНИЕ №
Варианты очистки базы данных Андрей Луконькин №12
Информационной база «1С:Предприятие 7.7». Взгляд изнутри Java: торжественное обращение с jar и атрибутами
Андрей Луконькин №6 MANIFEST.MF Алексей Саенко №8
Кластер серверов «1С:Предприятие» 8.1 Андрей Луконькин №4 Rakudo – компилятор Perl 6 на виртуальной машине Parrot
Открываем базу данных одним щелчком мыши Андрей Луконькин №9 Андрей Шитов №3
Переносим данные с использованием технологии OLE Введение в Grails Андрей Уваров №3
Андрей Луконькин №11 Готовимся к переходу на PHP 5.3 Александр Майоров №9
Распространенные ошибки программистов Андрей Луконькин №10 «Дежурный» редактор SQL-запросов на Java Алексей Вторников №7
Система компоновки данных Андрей Луконькин №8 Знакомимся с YAML Сергей Супрунов №8
Технологический журнал «1С:Предприятие 8.1» Андрей Луконькин №6 По следам Sun Tech Days: Java FX Кирилл Сухов №4
Управляем списками общих информационных баз Профессиональное использование консоли
Андрей Луконькин №8 с помощью GNU Screen Дмитрий Васильев №8
Устраняем проблемы несовпадения кодовой страницы Распределенная система контроля версий Bazaar
ОС Windows и базы данных «1С:Предприятие 7.7» Дмитрий Васильев №9
Андрей Луконькин №1 Сервер приложений С++ Андрей Шетухин, Илья Космодемьянский №10

№12, декабрь 2008 91


содержание журнала за 2008 год
Создание графических интерфейсов на Ruby/GTK+ Как сисадмину противостоять стрессам Сергей Супрунов №2

Александр Симаков №10

РЕТРОСПЕКТИВА №
WEB-ПРОГРАММИРОВАНИЕ №
«Магические» технологии Дмитрий Мороз №10
SOAP и веб-сервисы XML на платформе .Net Алексей Бойко №1 «Магические» технологии: история компании General Magic.
Каркасная разработка веб-приложений на основе фреймворка Часть 2 Дмитрий Мороз №11
Kohana Александр Слесарев №11 Долгая счастливая жизнь – история компании IBM Илья Александров №6
Начинаем работать с Zend Framework Кирилл Сухов №1 Империя, которую создал Майкл:Dell Inc. Илья Александров №7
Проводим отладку JavaScript-приложений Андрей Уваров №1 История «Аси», спутницы пользователя Илья Александров №3
Окно в электронный мир: история развития графического

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


Дмитрий Мороз №8
PHP-GTK – вторая попытка Кирилл Сухов №6 Сквозь тернии к звездам: история компании Hewlett-Packard
WSGI – протокол связи веб-сервера с Python-приложением Илья Александров №9
Дмитрий Васильев №12 Хакеры: история субкультуры Илья Александров №4
XML native-базы данных на примере Sedna Александр Календарев №4 Хакеры: история субкультуры. Часть 2 Илья Александров №5
XML-native DB. XQuery Александр Календарев №5 Через тернии к звёздам: история создания плеера Apple iPod
Как работает HTTP-сервер nginx Дмитрий Васильев №10 Дмитрий Мороз №12
Контуры HTML 5: больше тегов, хороших и разных Кирилл Сухов №2
Корпоративный информационный портал,
ИНТЕРВЬЮ №
который построил Джек Антон Борисов №6
Оцениваем технологию Adobe AIR Александр Майоров №6 Точная геонавигация в городе с помощью технологии Wi2Geo
Секреты Огнелиса Александр Майоров №3 Антон Борисов №9
Создаем распределенную сеть доставки контента
Виталий Банковский №2
ЧЕЛОВЕК НОМЕРА №

IP-ТЕЛЕФОНИЯ № Андрей Албитов: находка для журналиста Оксана Родионова №4


Бриллиант чистой воды Оксана Родионова №10
A2Billing – система отчетов и биллинга для Asterisk Сергей Яремчук №1 Гений с болезнью Паркинсона Оксана Родионова №1
Elastix – дистрибутив для создания VoIP-сервиса Сергей Яремчук №4 Гражданин мира Оксана Родионова №2
Знакомимся с системой VoIP-телефонии 3CX Сергей Яремчук №1 Маэстро, музыку! Оксана Родионова №7
Проект Asterisk Management System Николай Шестаков №4 Открытия Николая Новожилова Оксана Родионова №5
Телефония для эпохи Web 2.0 Антон Борисов №11 Ричард Столлман: свобода без ограничений Дмитрий Мороз №9
Цель: стать лучшими разработчиками ПО в сегменте

СЕТИ № туристического бизнеса Наталия Тарасенко №12

Знакомимся с реализацией свободной mesh-сети Антон Борисов №7


ТЕНДЕНЦИИ №
Мультисервисная сеть: качество обслуживания и мультикаст
Антон Кустов №4 Первый взгляд на MS SQL Server 2008 Кирилл Сухов №2

ОБРАЗОВАНИЕ № РЕПОРТАЖ №

Немного о сертификации Cisco Андрей Бирюков №11 «Российский СПО-Саммит» удался Дмитрий Шурупов №10
Обзор учебных центров Алексей Коршунов №12 Microsoft: герои среди нас Андрей Бирюков №3
Система управления обучением Claroline Сергей Яремчук №7 Open Source в образовательных учреждениях
Санкт-Петербурга Иван Максимов №1

ОШИБКИ СИСАДМИНА № SofTool 2008 – количество, не перешедшее в качество


Алексей Коршунов №10
Недооцененное влияние IT Лев Мышкин №4 Sun Tech Days 2008 – всемирная конференция разработчиков
Отдел обслуживания Лев Мышкин №7 Иван Максимов №4
Случай в казино Лев Мышкин №3 Запуск проекта Russian Fedora Андрей Маркелов №12
Мир! Труд! May Perl! Кирилл Сухов №6

ИЗ ЛИЧНОГО ОПЫТА № На Interop 2008 прошел четвертый форум по Open Source


Дмитрий Шурупов №4
Бессистемные заметки о поиске работы за рубежом Октябрьская встреча российского PostgreSQL-сообщества
Крис Касперски №5 Кирилл Сухов №11
Еще один способ придумывать и запоминать сложные пароли Репортаж с конференции HP Blade System Алексей Бережной №10
Владимир Черняев №1 Форум IBM: инновации в технологиях и бизнесе Иван Максимов №3

92
Реклама
подписка на 2009 год

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

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

 

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

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

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

81655 **
без диска

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

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

87836
без диска
**

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

№12, декабрь 2008 95


СИСТЕМНЫЙ АДМИНИСТРАТОР
№12(73), Декабрь, 2008 год

УЧРЕДИТЕЛИ
Частные лица

РЕДАКЦИЯ
Генеральный директор
Владимир Положевец
Главный редактор
Алексей Коршунов
chief@samag.ru
Ответственный секретарь
Наталья Хвостова
sekretar@samag.ru
Технический редактор
Владимир Лукин Вы знаете, как бороться
с «Просачивающейся А дварью»?
Главный редактор
электронного приложения
Применяете «Чарующий скрипт»?
«Open Source»
Дмитрий Шурупов Редакция журнала «Системный администратор» представляет
Внештатные редакторы
вам новый админский сувенир для истинных знатоков своего дела –
Алексей Барабанов карточную игру «AYTCOPCEP».
Александр Емельянов
Сергей Супрунов
Олег Щербаков
В ходе игры участники тянут из колоды карты «Проблем», с которым
им предстоит бороться один на один или с помощниками, используя
РЕКЛАМНАЯ СЛУЖБА подручные средства. Успешное решение «Проблемы» добавляет игроку
тел./факс: (495) 628-8253
Евгения Тарабрина (доб. 120)
уровни. Если вы не считаете себя добрым и милым, то для вас в игре
reсlama@samag.ru предусмотрена специальная возможность – сделать гадость другому
участнику и обойти его в погоне за уровнями.
Верстка и оформление
maker@samag.ru
Победителем становится тот, кто быстрее всех
Дизайн обложки доберется до 10 уровня. Остальные подробности об игре,
Дмитрий Репин
«Чарующем скрипте», «МегаУтилите» и «Клановом коктейле»
По вопросам распространения вы сможете узнать из правил игры.
обращайтесь по телефону:
Светлана Зобова
(495) 628-8253 (доб. 120)
«AYTCOPCEP» – это пародия на жизнь, которая позволит вам
ощутить всю прелесть аутсорсинга... но без всей словесной мишуры,
107045, г. Москва, типа, «утром стулья, вечером деньги…»!
Ананьевский переулок, дом 4/2, стр. 1
тел./факс: (495) 628-8253
Приобретайте игру «AYTCOPCEP» в редакции.
Сайт журнала: www.samag.ru

ИЗДАТЕЛЬ
ООО «С 13»

Отпечатано типографией
ООО «Периодика»
Тираж 17000 экз.

Журнал зарегистрирован в Министерстве РФ


по делам печати, телерадиовещания и средств
массовых коммуникаций (свидетельство ПИ
№ 77-12542 от 24 апреля 2002 г.).

За содержание статьи ответственность несет


автор. Мнение редакции может не совпадать
с мнением автора. За содержание рекламных
материалов ответственность несет рекламо-
датель. Все права на опубликованные мате-
риалы защищены.

96