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

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

№5(30) май 2005


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

СЬ
www.samag.ru

ЛИ
Почему MS SQL медленно работает?
Ищем причины
ЛИ
ТЯ Е

Ж ПИ
Строим защищенную беспроводную сеть:
ЗА ДНИ

WPA-Enterprise, 802.1x EAP-TLS


НУ

РА КУ
Настраиваем UPS под Linux
ЛЫ ГО

ТИ РАС
Как восстановить
удаленные файлы под BSD
К У ВО

Что важно знать об IP-телефонии

О
танавливаем Symantec Antivirus 9.0

№10(47) октябрь 2006


НИ НО

ТР
в корпоративной сети
Эффективно управляем

С
полями пользователей в AD

БЫ
подписной индекс 20780
Контролируем безопасность сети
с помощью OSSIM
КА

Интервью с Ларри Уоллом –


создателем языка Perl

www.samag.ru

Как обеспечить

№10(47) октябрь 2006


И
необходимое быстродействие

ЬГ
ЬД О
РА СКА
ТЕ
К

ИС НН
ЕН
УС

БО
НА ТПУ

ИЛ ДА
ТП

систем «1С: Предприятие»

НЧ ЖИ
ВО

РА Е О

КО НЕО
АВ СЛ
Л

Л
ХА

ПО
УЕ

Microsoft Operations Manager:

ЗА
управляем сетью
Так видит журнал читатель, оформивший подписку: Linux-VServer: настраиваем
№5(30) май 2005
подписной индекс 81655
www.samag.ru

Почему MS SQL медленно работает?


виртуальные серверы
Ищем причины
Строим защищенную беспроводную сеть:

Создаем адресную книгу


WPA-Enterprise, 802.1x EAP-TLS
Настраиваем UPS под Linux
Как восстановить
удаленные файлы под BSD
Что важно знать об IP-телефонии

на базе OpenLDAP
танавливаем Symantec Antivirus 9.0
в корпоративной сети
Эффективно управляем
полями пользователей в AD
Контролируем безопасность сети
с помощью OSSIM
Интервью с Ларри Уоллом –
создателем языка Perl

Как настроить библиотеку


SASL для совместной работы
c Kerberos
Растущая угроза:
руткиты Win32
Как зарабатывают
ПОДПИШИТЕСЬ И ЧИТАЙТЕ! на Open Source
Роспечать – 20780, 81655 Головоломка, ведущая
Пресса России – 87836 по жизни Игоря Данилова
Интер-почта – тел. (495) 500-00-60
в номере
3 ТЕНДЕНЦИИ 46 Растущая угроза: руткиты Win32
Схемы работы руткитов.
РЕПОРТАЖ Артем Баранов
artembaranov@yandex.ru
4 Осенний марафон выставок начался
Алексей Коршунов 50 Защитить ваш компьютер поможет
akeeper@samag.ru Browser Sentinel
Обзор возможностей утилиты.
6 Softool стал самой успешной Сергей Яремчук
IT-выставкой этого года grinder@ua.fm
Дмитрий Шурупов
osa@samag.ru ЧЕЛОВЕК НОМЕРА
АДМИНИСТРИРОВАНИЕ 52 Головоломка, ведущая по жизни
Игоря Данилова
8 Как обеспечить Виртуальное путешествие по Петербургу и биографии
необходимое быстродействие легендарного создателя антивируса Dr.Web.
систем «1С: Предприятие» Оксана Родионова
Разберемся в сути проблемы и проанализируем вари- rodion@dol.ru
анты решения. Роман Марков
stepan-razin@newmail.ru IMHO
12 Microsoft Operations Manager 2005: 56 Как зарабатывают на Open Source
управляем сетью Конкуренция между программистами заставляет не толь-
Мониторинг и управление серверами и приложениями ко совершенствовать качество кода, но и искать новые
требует больших затрат времени и ресурсов. Часть этих бизнес-схемы, использующие в том числе и концепцию
проблем решает MOM 2005. Андрей Бирюков открытых исходных текстов. Крис Касперски
mex_inet@rambler.ru kk@sendmail.ru

18 Экономьте время на администрировании 63 Куда приведет Open Source?


Active Directory Сегодня всё большее число компаний связывает с от-
Обзор возможностей утилиты Active Administrator. крытыми проектами свой бизнес. Что ждёт эти проек-
Сергей Яремчук ты в перспективе? Сергей Супрунов
grinder@ua.fm amsand@rambler.ru

22 Как собирать сетевую статистику 68 Open Source взглядом оптимиста


Сведения о сети позволят оценить ее состояние, за- Явление Open Source пока не получило объяснения
планировать модификацию и вовремя заметить воз- своего возникновения и развития, но уже породило
никновение проблем. Андрей Бирюков спекуляции на этот счет. Алексей Барабанов
mex_inet@rambler.ru alekseybb@mail.ru

28 Создаем адресную книгу на базе OpenLDAP ОБРАЗОВАНИЕ


Настраиваем OpenLDAP в качестве адресной книги
с хранением данных в PostgreSQL. 74 Python – в школу!
Сергей Алаев Что должно быть на уроках информатики?
alaev777@mail.ru Сергей Супрунов
amsand@rambler.ru
32 Linux-VServer
Настраиваем виртуальные серверы. 77 Полезные советы: Python
Дмитрий Столяров Сергей Супрунов
_@mrms-dos.ru amsand@rambler.ru

БЕЗОПАСНОСТЬ ПРОГРАММИРОВАНИЕ
38 Как настроить библиотеку SASL 78 Многоядерные процессоры…
для совместной работы c Kerberos …и проблемы, ими порождаемые, в ОС семейства NT.
С помощью библиотеки SASL сетевые приложения мо- Крис Касперски
гут автоматически договориться об использовании оп- kk@sendmail.ru
ределенного механизма подтверждения идентичности
пользователя. Как осуществить взаимодействие биб- РЕТРОСПЕКТИВА
лиотеки SASL c Kerberos? Михаил Кондрин
mkondrin@hppi.troitsk.ru 86 Суровая правда, скрытая за «розовыми
очками». Часть 2
43 Защищаем корпоративную почту История компании Transmeta.
с SecExMail Gate Дмитрий Мороз
Обзор инструмента SecExMail Gate, который позволит akuji@list.ru
обеспечить конфиденциальность корпоративной поч-
ты, передаваемой по незащищенным сетям. 92 КНИЖНАЯ ПОЛКА
Сергей Яремчук
grinder@ua.fm 17, 27, 49, 73, 91 BUGTRAQ

№10, октябрь 2006 1


тенденции
Проект FreeDOS достиг релиза 1.0 (Luis Villa) из GNOME, в котором говорится, что «иногда
Проект по созданию совместимой с DOS свободной ОС, оплата труда добровольцев приводит к понижению обще-
представил первый финальный стабильный релиз. Система го уровня коллективной работы» в проектах.
разрабатывалась с 1994 года и вобрала в себя такие воз-
можности, как мультизагрузка с Windows 95-2003/NT/XP/ME, Известны первые детали о новшествах
поддержка файловой системы FAT32 и больших дисков в OpenOffice.org
(LBA), поддержка LFN, дисковый кэш. В систему входит ПО На прошедшей недавно конференции OOoCON 2006, посвя-
для управления памятью, замена SHSUCDX и драйвер для щенной свободному офисному пакету OpenOffice.org, стало
CD-ROM, драйвер для мыши с колесом прокрутки, FDAPM известно о готовящихся новшествах для будущих релизов
для управления питанием ПК, драйвер UDMA (до 4 дис- OOo. Ожидается, что в версии 2.0.4 появится поддержка
ков). Из пользовательского программного обеспечения расширений, аналогичная той, что есть в популярном брау-
в FreeDOS 1.0 можно отметить мультимедийный проигры- зере с открытым кодом Mozilla Firefox. Хоть в OpenOffice.org
ватель MPXPLAY (для mp3, ogg, wmv и других форматов), и была поддержка расширений вообще, теперь их созда-
архиваторы (7ZIP, INFO-ZIP zip & unzip), многооконные тек- ние, включение в офис, выбор и управление ими значитель-
стовые редактор и просмотрщик файлов помощи. Распро- но упростится. У расширений к OpenOffice.org будет новый
страняется FreeDOS под свободной лицензией GNU GPL. файловый формат (.oxt), позволяющий разрабатывать до-
Все подробности о проекте доступны на www.freedos.org. полнения на широком спектре языков программирования
(от StarBasic до Java).
Novell готовит ОС реального времени Кроме того, сообщается, что в обозримом будущем
Компания Novell планирует в октябре начать продажи но- в состав OpenOffice.org и StarOffice включат разработки
вого продукта из линейки своих корпоративных GNU/Linux- от Mozilla Foundation: клиент электронной почты Thunderbird
дистрибутивов – Suse Linux Enterprise Real-Time (SLERT). и календарь Sunbird. Вместе с тем будут созданы и специ-
Это операционная система реального времени, способ- альные модули для возможности свободного офиса под-
ная реагировать на какие-либо срочные события в очень ключаться к Sun Calendar Server и Microsoft Exchange.
короткие временные интервалы, что актуально далеко не Из новостей по OpenOffice.org 3.0 объявлено о том,
для всех, однако может пригодиться компаниям, нуждаю- что офис станет более модульным и работоспособным в та-
щимся в подобной системе, например, тем, кто занимает- ких структурах, как Eclipse, Netbeans и Mozilla XUL.
ся торговлей на Wall Street. Уже известен и первый крупный
заказчик системы – это Siemens Medical Solutions. SLERT Составил Дмитрий Шурупов
по материалам www.nixp.ru
будет применяться ею для оснащения продуктов магнит-
но-резонансной интроскопии Magnetom.

Dunc-Tank будет платить


разработчикам Debian
Группа разработчиков, называющая себя Dunc-Tank, гото-
ва заплатить отдельным коллегам из Debian GNU/Linux за
завершение некоторых проектов.
Главная цель Dunc-Tank – помочь проекту Debian выпус-
тить следующий стабильный релиз дистрибутива в срок.
Объявление о запуске такой инициативы привело к деба-
там на тему мотивации разработчиков свободного програм-
много обеспечения.
В первом публичном анонсе Dunc-Tank охарактери-
зовала себя как «эксперимент», а своих участников –
как «независимую группу разработчиков, пользовате-
лей и желающих поддержать Debian». В действительнос-
ти же оказалось, что среди членов Dunc-Tank целый ряд
выдающихся разработчиков Debian: лидер проекта Энто-
ни Таунс (Anthony Towns) и его помощник Стив Макинтайр
(Steve McIntyre), а также Рафаэль Герцог (Raphatl Hertzog),
Джоуи Хесс (Joey Hess), Тед Тсо (Ted Ts'o).
Первыми объектами спонсирования у Dunc-Tank стали
два менеджера релизов: планируется нанять Стива Ланга-
сека (Steve Langasek) на полный рабочий день в октябре,
а Андреаса Барта (Andreas Barth) — в ноябре.
Полемика на тему мотивации разработчиков проявилась
в том, что сразу после анонса инициативы Dunc-Tank один
из разработчиков Debian Лукас Нассбаум (Lucas Nussbaum)
раскритиковал ее, указав на исследование Луиса Виллы

№10, октябрь 2006 3


репортаж

Осенний марафон выставок


начался

С 4 по 6 сентября в Экспоцентре прошла выставка LinuxWorld, совмещённая с InfoSecurity,


StorageExpo и Documation.

П
режде всего обратим внимание ного семейства – пингвин. Компания Были представлены и компании,
на LinuxWorld. В этом году вы- IBM представляла ряд своих решений занимающиеся разработками своих
ставка была расположена особ- на базе Red Hat Linux. решений на Linux. Например, компа-
няком от всех остальных, и случайно Компания Novell традиционно пред- ния Smart Software знакомила с про-
забрести на неё было крайне сложно, лагала наиболее свежую версию дис- граммным продуктом «Умный ресто-
так как перед этим нужно было прой- трибутива Suse. ран» (система автоматизированного
ти сквозь довольно длинный и пустой ALT Linux и ASP Linux соответствен- учёта для управления ресторанным
коридор. но предлагали свои дистрибутивы. бизнесом).
Посещаемость выставки LinuxWorld
едва ли можно назвать рекордной. Од-
нако посетители подходили к экспо-
зициям с вполне конкретными целя-
ми, а не только праздным интересом.
Малое количество посетителей мо-
жет означать либо то, что на выставку
пришли только деловые люди или же
что нездоровый ажиотаж вокруг Open
Source подошёл к концу. Практически
не было заметно любителей халявы,
которые на многих выставках стайками
носятся от одного стенда к другому.
Больше всего внимания посетите-
лей собирали стенды ЛинуксЦентра
и журнала «Системный администра-
тор». И в первом, и во втором случае
основной причиной к этому были све-
жие номера журналов.
Также немало людей было около эк-
спозиции компании IBM, вокруг кото-
рой ходил представитель линуксоид- Лёгкий ажиотаж на стенде ЛинуксЦентра

4
репортаж
Компания R-Style, кроме всего про-
чего, предлагала авторизованное обу-
чение по Red Hat Linux.
Присутствовал и стенд компании
Linux-Online, разработчика дистрибу-
тива Linux XP, о котором в своё вре-
мя прошли жаркие дебаты на многих
форумах.
Несколько удивило название вы-
ставки систем электронного докумен-
тооборота – Documation. На стенде
Cognitive Technologies была представ-
лена система Евфрат-Документообо-
рот. InterTrust предлагал посетителям
узнать, как правильно управлять пер-
соналом и узнать побольше про за-
щищённый документооборот. Также
присутствовали компании DocsVision,
Neuhous group и Globus.
Честно говоря, на выставке
Documation было еще менее ожив- Весьма оживлённый стенд компании Hewlett-Packard
лённо, чем на LinuxWorld.
Гораздо оживлённее было на вы- ные решения. Несколько удивило при- мерной перегруженности выставоч-
ставках StorageExpo и InfoSecurity. сутствие компании Мегафон, которая ных площадей людьми заметно не бы-
Здесь присутствовали основные иг- предлагала услугу конфиденциальной ло ни ранним утром, ни в более позд-
роки рынка систем информационной и защищённой сотовой связи. нее время. К слову сказать, листая ка-
безопасности. Системы аутентифи- Сложно было пройти мимо бо- талог всех представленных компаний,
кации, антивирусной защиты и шиф- лее чем серьёзных стендов Aladdin, я слегка недоумевал. Сложилось впе-
рования были представлены компа- Trend Micro, Ланит, Открытые техно- чатление, что половина из заявлен-
ниями «Антивирусный центр», Aladdin, логии и ряда других. Очевидно, что ных компаний попросту не явилась
Dr. Web, Актив (Guardant), Лаборато- InfoSecurity и StorageExpo более при- на выставку.
рия Касперского, Websense, BioLink, влекательны для компаний, так как ни Стабильной посещаемостью могли
HP, Kraftway и другими. одного по-настоящему большого стен- похвастаться только разве что конфе-
Повсюду можно было видеть, как да (исключая компанию IBM) на том же ренц-залы. Списки выступающих, ви-
посетители заинтересованно общались LinuxWorld не было. севшие перед входом, внушали сво-
с представителями компаний, предла- В целом, нельзя сказать, что все ей длиной и обещали не дать скучать
гающими свои программные и аппарат- четыре выставки пустовали, но и чрез- на протяжении всего времени прове-
дения выставки.
В последнее время создаётся ус-
тойчивое впечатление, будто бы IT-вы-
ставки мало-помалу потихоньку себя
изживают, как произошло с приснопа-
мятной Комтек. Если говорить про вы-
ставку безопасности (InfoSecurity), ко-
торая интересна большинству систем-
ных администраторов, то налицо от-
сутствие новаторских решений и но-
вых технологий. Те же компании пред-
ставляют всё те же продукты. Стро-
го говоря, тот, кто был на выставке
в прошлом году, но не был в этом, –
ничего не потерял. Остаётся надеять-
ся, что отсутствие новинок – это лишь
«затишье перед бурей», а не мрачная
тенденция к истощению идей в компа-
ниях-разработчиках.

Алексей Коршунов,
А некоторые стенды вообще пустовали… фото автора

№10, октябрь 2006 5


репортаж

Softool стал самой успешной


IT-выставкой этого года

Уже в семнадцатый раз русскоязычный мир IT-шников собирается на крупное и уже давно
ставшее культовым мероприятие, имя которому – Softool.

О выставке в целом ления», «АСУТП’Экспо», «Информа- ний, имеющих дело с информационны-


Выставка Softool’2006, проходившая ционная безопасность», «DOCFLOW ми технологиями.
в Москве с 26 по 29 сентября, по тра- Day», «LinuxLand», «Информационные Раздел «АСУТП’Экспо», как и сле-
диции собрала множество участни- технологии в образовании». дует из названия (автоматизирован-
ков и посетителей. Всей экспозиции В первой и самой крупной секции ные системы управления технологи-
не хватило одного этажа и без того не- представлено все многообразие су- ческим процессом), посвящен автома-
малого 69-го павильона ВВЦ, часть – ществующих продуктов для менедж- тизации производства, причем преиму-
САПР’Экспо – была расположена мента в различных его проявлениях. щественно крупных промышленных
на втором, аккурат по соседству с пра- Основные направления – системы уп- предприятий (во всяком случае именно
вославной выставкой «По завету Кня- равления предприятиями, управле- о них шла речь в докладах конферен-
зя Даниила» (впрочем, такое ориги- ние бизнес-процессами и т. д. Участ- ции, приуроченной к экспозиции).
нальное сожительство совсем не в но- ники специализируются на разработ- «Информационную безопасность»
винку тем, кто приходит на Softool ке и внедрении сложных информаци- представляли знакомые компании-
не впервые). Участники экспозиции на онных систем, а также системной ин- мэтры из областей криптографии,
первом этаже были разделены на сле- теграции. Обилие предложений порож- защиты данных, обеспечения безо-
дующие категории: «Технологии управ- дено спросом огромного числа компа- пасной работы на ПК и т. п. Несмот-

6
репортаж
ря на широту затрагиваемых этой эк-
спозицией вопросов, путешествие
по стендам оставило ощущение на-
личия наибольшего спроса на антиви-
русные решения от лидеров индустрии
(правда, имеющих тенденцию расши-
ряться и интегрироваться во все более
значительных масштабах).
Популярная в последнее время тема
электронного документооборота и его
автоматизации не могла остаться неза-
меченной на Softool – ей отвели само-
стоятельную секцию «DOCFLOW Day»,
в которой вновь главенствовала не-
когда учредившая это мероприятие
ABBYY. На непродолжительной конфе-
ренции успели выступить наиболее яр-
кие представители этой области из оте-
чественной индустрии.
САПР’Экспо не случайно размес-
тили на втором этаже – практика пре-
дыдущих выставок показала, что CAD,
CAM и ГИС беспрестанно набирают по-
пулярность. В связи с этим экспозиции
понадобилось больше места для всех
желающих продемонстрировать свою
продукцию. Стоит выделить и насы-
щенную программу мастер-классов,
а также и занятной инициативы, полу-
чившей название «САПР-Шоу», где од-
ни и те же задачи одновременно реша-
лись на различных системах САПР.

LinuxLand
Проводимый во второй раз LinuxLand
вновь собрал ряд компаний, продви-
гающих технологии с открытым ко-
дом. Как завсегдатаев таких выста-
вок (в основном, конечно, отечествен-
ных и зарубежных Linux-поставщиков),
так и новичков вроде SmartSoftware, начально не планируя, создала Open На стенде редакции «Системного
предлагающих под лозунгом «Время Source-решение, обеспечивающее администратора» читатели приобре-
умных решений» комплексные систе- взаимодействие между веб-сервисами тали любимый журнал со специаль-
мы автоматизации предприятий, зани- и COM-объектами ОС Windows. ной большой скидкой, которая дейс-
мающихся такими услугами, как гости- твует исключительно на выставках.
ницы и рестораны, для Linux. В заключение А читателям, оформившим подпис-
Ввиду недавних релизов Mandriva Отдельно выделю привычную актив- ку на следующий, 2007 год, с юбилей-
(Corporate Server 4.0 и Linux 2007) ность со стороны «1C». ным пятидесятым номером журнала
в Москву пожаловал Пол Гийе (Paul Некоммерческое Партнерство Пос- (№1 за 2007 г.) в подарок будет прила-
Guillet), вице-президент продаж в этой тавщиков Программных Продуктов гаться диск с архивом всех вышедших
французской компании. Благодаря та- провело акцию «Не корми пирата!» – номеров, начиная с 2002 года.
кому стечению обстоятельств и стара- на своем стенде представители пар- По сравнению с остальными IT-вы-
ниям организаторов Россия стала пер- тнерства развернули свободную про- ставками этого года, Softool-2006 дейс-
вой в мире страной, где прошла офи- пагандистскую площадку, где пред- твительно удался, по-прежнему де-
циальная презентация последних раз- лагали каждому написать что-нибудь ржит марку и пользуется популярнос-
работок Mandriva. в поддержку лицензионной продук- тью у посетителей и участников.
Самым же интересным событием ции; разумеется, засилья коммента-
для меня стало знакомство с компани- риев от сторонников Open Source из- Дмитрий Шурупов,
ей Keyintegrity, которая, сама того из- бежать не удалось. фото автора

№10, октябрь 2006 7


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

Как обеспечить
необходимое быстродействие
систем «1С: Предприятие»

Роман Марков
Вы каждый день выслушиваете жалобы бухгалтеров и менеджеров на низкое быстродействие
системы «1С:Предприятие», невозможно долгое формирование отчетов и постоянные
конфликты одновременных блокировок таблиц? Попробуем разобраться в сути проблемы
и проанализировать возможные варианты решений.

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

8
администрирование
ями обо всех возможных причинах за- базы данных при каж-
медления, а главное – о способах ус- дом новом подключе-
транения таких причин, – невозможно нии, а посылает за-
построить быстродействующую сис- прос серверу баз дан-
тему, на 100% использующую все ее ных (SQL server). За-
возможности. Успешная работа при прос обрабатывается
реализации многих проектов систем- самим SQL-сервером,
ной интеграции, связанных с комплек- который считывает
сным внедрением систем «1С:Пред- данные из своей ба-
приятие», дает мне возможность мак- зы и выдает клиент-
График зависимости времени реакции системы
симально точно оценивать причины не- скому приложению от количества активных пользователей
эффективной работы указанного при- только необходимую
ложения у заказчиков. их часть. Таким образом взаимодейс- ное отличие состоит в том, что при не-
твие «клиент-сервер» сводится к от- обходимости SQL-сервер обеспечи-
Общие модели доступа правке на сервер запроса и получе- вает откат транзакций, аварийно за-
к БД «1С:Предприятие» ния ответа, содержащего уже отсор- вершившихся по каким-либо причи-
Наиболее часто использующийся тированные данные вместо самосто- нам. То есть в начале любой операции
на малых и средних предприятиях ва- ятельного считывания клиентом фай- по внесению изменений в БД SQL-сер-
риант – файл-серверная модель до- лов БД по сети. Это уменьшает сетевой вер записывает состояние изменяемо-
ступа. В этом случае один из компью- трафик и увеличивает быстродействие го объекта до проведения изменения
теров исполняет роль файл-сервера, в сравнении с файл-серверной моде- и отслеживает успех операции. В слу-
на котором хранятся БД, предостав- лью при большом количестве активных чае аварийного завершения этой опе-
ленные в общий доступ по сети, а поль- пользователей и значительном объеме рации объект не изменяется и возвра-
зователи играют роль клиентов этого БД. То есть для клиент-серверной вер- щается в предыдущее стабильное со-
файл-сервера, открывая предостав- сии время реакции на запросы поль- стояние. В случае аварийного завер-
ленные им файлы баз данных на чте- зователей при возрастании количес- шения операции по изменению фай-
ние и запись. тва активных пользователей не воз- ла DBF информация в нем остается
Файл-серверная версия использу- растает так резко, как это происхо- «как есть», что может привести к не-
ет файлы в формате DBF. Основное дит с файл-серверной моделью. Од- работоспособности БД.
ее преимущество заключается в том, нако не стоит забывать, что SQL-вер- Поэтому для обеспечения макси-
что не требуется дополнительного про- сия изначально ориентирована имен- мальной надежности хранения боль-
граммного обеспечения для органи- но на надежность обработки боль- ших БД и исключения возникновения
зации работы, так как для подключе- ших объемов данных, хранение кото- транзакций рекомендуется использо-
ния к базе данных достаточно предо- рых в файл-серверной модели чрева- вать клиент-серверную модель.
ставить папку с ее файлами в общий то разрушением БД, а не на увеличе- В «1С:Предприятии 8.0» использу-
доступ, что достигается средствами ние скорости работы с приложением ется трёхуровневая архитектура «кли-
любой сетевой операционной систе- (во всяком случае, это относится к со- ент-сервер», при которой клиентская
мы. Этот формат разрабатывался пре- четанию «1С:Предприятие» – Microsoft часть обращается к серверу приложе-
жде всего для работы с БД небольшо- SQL Server). Поэтому при малых раз- ний 1С, а он в свою очередь обращает-
го размера при малой нагрузке. Поэ- мерах БД или небольшом количест- ся к серверу баз данных Microsoft SQL
тому при активной работе нескольких ве активных пользователей SQL-вер- Server, который и обрабатывает за-
пользователей с базой данных наблю- сия проигрывает по скоростным пока- просы к информационной базе. Сер-
дается значительное замедление ра- зателям файл-серверной. Это можно вер приложений 1С сосредотачивает
боты программы. Особенно если кто- увидеть на примерном графике со- на себе выполнение объемных и слож-
нибудь из пользователей запустит пос- отношения. ных операций, при этом клиентская
троение масштабных отчётов за боль- Однако при больших объемах часть будет получать необходимую ей
шой период времени. О причинах этого БД (например, при общем объеме выборку. Ресурсы современных сер-
замедления я расскажу немного поз- DBF-файлов, превышающем 2-3 Гб) веров позволяют расположить и сер-
же, так как именно они мотивируют пе- хранение такой базы в файл-сервер- вер приложений и сервер БД на одном
реход к использованию терминально- ном варианте и работа с ней в много- физическом сервере, что, несомнен-
го решения в файл-серверной версии пользовательском режиме может со- но, ускоряет обработку запросов, од-
системы «1С:Предприятие». здать проблемы возникновения бло- нако создает двойную нагрузку на ре-
Второй тип организации досту- кировок таблиц при одновременном сурсы. К сожалению, именно к этому
па к базе данных системы «1С:Пред- доступе к ней нескольких пользова- нас вынуждают схемы взаимодействия
приятие» – клиент-серверная модель. телей, а также разрушение структу- клиентов систем «1С:Предприятие»
В клиент-серверной версии таблицы ры таблиц, что приведет к неработос- с их серверами.
хранятся в базе данных под управле- пособности БД. В случае перегрузки такого серве-
нием Microsoft SQL Server, и клиент- SQL-сервер хранит данные в дру- ра в моменты пиковых нагрузок жела-
ское приложение не открывает файлы гом формате. Главное принципиаль- тельно разделить Сервер Приложе-

№10, октябрь 2006 9


администрирование
ний «1С:Предприятия 8.0» и Microsoft файлов БД необходимо выполнить 5. Зависимость от уровня профес-
SQL Server, установив их на разных «Упаковку таблиц БД». Для систе- сионализма программистов: не-
компьютерах, что позволит нормали- мы «1С:Предприятие 7.7» это мож- редко встречаются случаи, когда
зовать работу системы. но сделать из конфигуратора, вы- отдельные нестандартные проце-
Рекомендации по выбору необхо- брав в меню «Администрирова- дуры, написанные программис-
димого оборудования для различных ние» пункт «Тестирование и ис- тами вручную, работали медлен-
моделей доступа к БД и максимальных правление ИБ». Будьте осторож- но из-за нерационального подхо-
нагрузок будут даны в конце статьи. ны с этой процедурой! Ее необхо- да к анализу данных и затормажи-
Разобравшись в моделях доступа димо проводить только после то- вали работу остальных пользова-
к БД в разрезе систем «1С:Предпри- го, как вы сделали архивную ко- телей с БД. И наоборот – вручную
ятие», можно приступать к анализу пию БД и провели ее полное тести- переписанные талантливым про-
факторов, влияющих на общее быс- рование и исправление. Для боль- граммистом обработки давали не-
тродействие системы в целом. Еще ших БД данный процесс продолжи- имоверную производительность
раз рассмотрим возможные причины телен и в зависимости от быстро- даже в простом файл-серверном
замедления: действия компьютера может зани- варианте. При использовании кли-
1. Увеличение размера информа- мать до 3-5 суток! ент-серверной модели максималь-
ционных БД: это естественное 2. Увеличение количества актив- ной производительности можно до-
следствие штатной работы с БД, ных пользователей БД: тут таких стичь, обрабатывая записи БД не-
размер которой зависит от коли- советов, как в предыдущем пункте, посредственно средствами SQL.
чества введенных документов, дать не получится, так как «Упаков- Однако не все программисты уме-
однако есть некоторые нюансы. ку пользователей» производить за- ют это делать, а признаться в этом
Если компания ведет непрерыв- прещено законом… Так что с этим не решаются.
ный учет всех документов за весь остается только смириться и следо- 6. Некорректная настройка IT-инф-
период работы БД, то ее размер вать другим советам по увеличению раструктуры техническими спе-
при интенсивном документообо- производительности системы. циалистами и отсутствие у тех-
роте может вырасти до критичес- 3. Недостаточная производитель- персонала знаний о возможнос-
кого за очень небольшой период. ность серверов и рабочих стан- тях оптимизации информаци-
Напоминаю, что мы рассматрива- ций: особых хитростей здесь нет, онной системы: здесь все зави-
ем условную величину «критичнос- кроме того, что вы должны быть сит от глубокого понимания IT-спе-
ти» размера БД в файл-серверном уверены, что замедление работы циалистами происходящих в се-
варианте, равную 2 Гб. Для кли- является следствием недостаточ- ти процессов. Помимо общих ка-
ент-серверной модели это понятие ности ресурсов, а не других причин, нонов настройки локальной сети,
(в разумных пределах), в общем- о которых будет сказано в разделе необходимо учитывать множес-
то, не имеет значения. В случае ес- организации терминального досту- тво факторов. Например, частой
ли компания не собирается пере- па к БД. ошибкой технических специалис-
ходить к клиент-серверному вари- 4. Низкая пропускная способность тов является отсутствие тонкой на-
анту доступа к БД, ей приходится локальной сети: для обеспече- стройки антивирусных мониторов.
принимать меры по свертке таких ния достаточного быстродейс- Чаще всего оставляют настрой-
баз, путем закрытия отчетных пе- твия необходимо, чтобы пропус- ки по умолчанию, что для мно-
риодов и переноса остатков на на- кная способность сети составля- гих антивирусных продуктов оз-
чало нового периода. При этом все ла 100 мегабит от клиента до сер- начает постоянную проверку всех
документы, предшествующие на- вера БД (это требование не отно- подключенных сетевых ресурсов,
чалу нового периода, из базы уда- сится к варианту с сервером тер- а также абсолютно всех файлов.
ляются. Именно на это я и хотел миналов – там достаточно 50-100 Рекомендуется исключать из про-
бы обратить ваше внимание. Да- килобит(!) в сек. для каждого из верки файлы БД, так как нали-
же после удаления неактуальных клиентов. Для 3-уровневой систе- чие в них вирусов – очень мало-
документов из БД ее размер не из- мы обработки «1С:Предприятие» вероятное событие. А вот посто-
менится! Причина заключается при разнесении сервера приложе- янная проверка файлов метадан-
в структуре данных, используемой ний 1С и SQL-сервера по физичес- ных (*.md), структуры метаданных
для хранения БД. При удалении до- ки разным серверам рекомендует- (*.dd) и файлов БД 1С *.dbf и *.cdx
кументов из базы на физическом ся максимально увеличить скорость замедлят работу всей вашей сис-
уровне происходит только удале- их взаимодействия между собой. темы в несколько раз.
ние ссылок на эти документы. Са- Нелишним окажется установить
мо место, зарезервированное под в каждый сервер по два и более Замедление работы
эти записи, в файлах БД остается гигабитных сетевых адаптера и со- файл-серверной модели БД
занятым. Из-за этого и не меняет- единить их через гигабитный ком- на серверах с Windows
ся размер БД сразу после очист- мутатор, объединив сетевые адап- Итак, мы добрались до рассмотрения
ки всех помеченных на удаление теры в транк с поддержкой балан- технологии терминального доступа,
записей. Для физического сжатия сировки нагрузки. ее преимуществ и причин, по которым

10
администрирование
ее применение позволяет максималь- со сервером терминалов. Именно по- тическая» скорость работы с БД в ре-
но ускорить работу с БД. этому не имеет значения, какой ком- жиме сервера терминалов. Не пре-
Наверняка все вы знаете о «стран- пьютер установлен у клиента – единс- доставляйте общего сетевого досту-
ной» особенности работы с БД, распо- твенная его задача – запустить клиент- па к папке с базами данных, так как
ложенных на сетевых дисках серверов, скую часть, которая будет нормально совместное использование ее по сети
под управлением ОС Windows. С файл- работать даже на 486-м компьютере значительно замедлит работу. То есть
серверами под управлением других ОС с 16 Мб памяти и любой ОС, для кото- с одной и той же базой все должны ра-
дело обстоит получше, но не все умеют рой существует клиент сервера терми- ботать в терминальном режиме, неза-
их администрировать, да и то ускоре- налов Windows. висимо от ресурсов клиентской рабо-
ние, которое предоставляют техноло- Однако в таком варианте постро- чей станции.
гии терминального доступа, все равно ения сети вся нагрузка перекладыва- Помимо ускорения работы с БД
недостижимо другими способами – пе- ется на сервер, так как в его обязан- неоспоримым преимуществом терми-
реносом БД на файл-сервер с ОС, от- ности будет входить не только хране- нал-сервера является сжатие переда-
личимой от Windows. ние информационной базы, но и пол- ваемой по сети информации, что поз-
Итак, в чем же заключается эта ностью вся обработка, что равносиль- воляет работать с программой через
особенность, из-за которой резко но работе всех пользователей на од- медленные каналы связи. Именно та-
замедляется работа с сетевой БД ном локальном компьютере. Плюс под- кая модель доступа позволяет орга-
при одновременной работе с ней бо- держка сеанса связи с каждой подклю- низовать удаленную работу фили-
лее чем одного пользователя? То есть чённой машиной. В терминальном ре- альных отделов с единой БД в режи-
при работе в однопользовательском жиме специфична и сама работа поль- ме online – ведь для каждого клиента
режиме, даже по сети, скорость рабо- зователей: на экране они видят ра- достаточно канала передачи данных
ты оказывается приемлемой, однако бочий стол сервера, поэтому все ло- шириной 40-60 Кбит/сек. Таким обра-
стоит хотя бы еще одному пользова- кальные диски и принтеры на самом зом, при необходимости предоставить
телю начать работу с БД, как скорость деле будут являться периферией са- филиальным представительствам до-
формирования отчетов и проведения мого сервера. ступ к центральной БД (или наоборот)
документов падает в несколько раз, Серьезным расширением возмож- достаточно обладать сервером необ-
а то и на порядок. Это происходит из- ностей стандартного сервера терми- ходимой мощности для организации
за того, что система Windows отклю- налов Windows является продукт Citrix на нем сервера терминалов и кана-
чает кэширование дисковых опера- Metaframe. Он предоставляет возмож- лом связи с указанной выше пропус-
ций при подключении к сетевому ре- ность сделать работу с терминальным кной способностью.
сурсу более чем 1 пользователя. Де- приложением абсолютно прозрачным
лается это во избежание потери дан- для пользователя и для удобства поз- Сколько стоит такое
ных из-за взаимных блокировок, од- воляет подключить и собственные ре- терминальное решение?
нако сильно страдает производитель- сурсы компьютера. Например, под- Итак, принимая решение о переходе на
ность системы. ключение к сеансу пользователя его терминальную схему работы системы
Преимущество терминального локальных принтеров, на мой взгляд, «1С:Предприятие», необходимо учиты-
решения в том, что при его исполь- в Citrix Metaframe организован более вать, что для организации работы сер-
зовании вся обработка информа- удобно. Однако следует учитывать вера в режиме сервера приложений
ции (не только запросы, но и вся кли- что Citrix Metaframe является только необходимо приобрести лицензии кли-
ентская часть) происходит на серве- дополнением к стандартному серве- ентского доступа к нему. Каждая ли-
ре терминалов, так что на компьюте- ру терминалов MS, а не самостоятель- цензия «на устройство» (MS TS CAL)
рах пользователей даже нет необхо- ным продуктом. Да и стоимость данно- обойдется вам около 80 $. Сам сервер
димости устанавливать программу го «расширения» велика по сравнению терминалов входит в стоимость лицен-
«1С:Предприятие». с применением стандартного сервера зии Windows Server.
По сети компьютерам-клиентам терминалов от Microsoft. К слову, са- Расширение Citrix Metaframe стоит
предоставляются только готовые эк- му технологию Terminal Services ком- от 2000 USD за стартовый пакет из 5
ранные формы, пользовательской тер- пания Microsoft купила именно у ком- лицензий. Каждые последующие 5 ли-
минальной сессии. Поскольку переда- пании Citrix. цензий будут стоить около 1500 $.
ча экранного изображения в сжатом Если вы используете файл-сервер- Поэтому (это мое субъективное
виде требует меньшего потока данных ную версию программы, то максималь- мнение) покупка MS TS CAL – абсо-
для подключения к серверу термина- ные преимущества терминального ре- лютно оправдана, так как ускорение
лов, можно использовать медленные шения достигаются при расположении работы системы при этом предоста-
каналы связи, вплоть до обычного мо- базы данных на локальном дисковом вит новые возможности расширения
дема, а сами компьютеры могут быть массиве этого же сервера. При рас- бизнеса.
низкой производительности. положении базы на локальном диске Приобретение же Citrix Metaframe
На компьютеры пользователей сервера обмен с ней осуществляется должно быть обусловлено серьезной
устанавливается только терминаль- по внутренним шинам передачи дан- необходимостью использования воз-
ный клиент, задача которого иници- ных сервера, а не по локальной сети. можностей продукта, однако их анализ
ировать и поддерживать сеанс связи Именно этим и объясняется «фантас- выходит за рамки данной статьи.

№10, октябрь 2006 11


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

Microsoft Operations Manager 2005:


управляем сетью

Андрей Бирюков
Мониторинг и управление серверами и приложениями, особенно в большой сети, –
задача нетривиальная, и зачастую требует довольно больших затрат времени
и ресурсов. Эффективное средство, которое позволит вам решить часть этих проблем, –
Microsoft Operations Manager.

Приступая к работе вый продукт, не используют большинс- Ключевой элемент системы – сер-
Решение проблем, связанных с экс- тво имеющихся возможностей. Другие вер управления MOM. Отмечу, что сер-
плуатацией оборудования и програм- коллеги говорили, что хотели бы внед- вер управления должен размещаться
много обеспечения, – неотъемлемая рить у себя подобное средство, но опа- в центральном офисе (в случае, ес-
часть работы системного администра- саются, что продукт слишком сложен ли сеть компании географически раз-
тора. Так называемый troubleshooting, в эксплуатации и поддержке. Так ли несена), желательно иметь несколь-
как правило, занимает намного боль- это на самом деле? В этой статье вы ко маршрутов до каждого из фили-
ше времени, чем, к примеру, работы узнаете об архитектуре MOM, а также алов (хотя это требование относит-
по внедрению программных продук- разберем вместе типичные примеры ся не только к МОМ, но прежде всего
тов или начальная настройка сетевого использования различных компонент к надежности всей сети), а также про-
оборудования. В связи с этим возника- и функций. пускная способность сегмента сети,
ет необходимость в постоянном мони- в котором находится сервер управле-
торинге событий, происходящих в се- Архитектура системы ния, должна быть достаточной для то-
ти. Конечно, если у вас один или два «MOM 2005 предоставляет открытые го, чтобы администратор мог быстро
сервера, то всю необходимую инфор- и масштабируемые средства для уп- получать уведомления о различных
мацию можно получать из журнала со- равления информационными система- событиях и сбоях.
бытий (Event Viewer), счетчиков произ- ми предприятий, комплексного управ- Следующий элемент системы –
водительности (Performance Counter), ления событиями, активного контроля база МОМ, в которой хранятся все
а также WSH-сценариев. Но если у вас и оповещения, создания отчетов и ана- настройки и сообщения о событиях.
десятки серверов, на которых установ- лиза тенденций, а также специальные В связи с этим необходимо позабо-
лены различные программные продук- базы знаний, содержащие сведения титься о безопасности базы, разграни-
ты (службы Active Directory, базы дан- о функционировании систем и прило- чив соответствующим образом доступ
ных, система резервного копирования, жений, для повышения уровня управ- к ней. В зависимости от аппаратных
корпоративный антивирус и так далее), ляемости корпоративных систем». Та- возможностей сервера, на котором
то без промышленного решения не кое определение своему продукту дает разворачивается Microsoft Operations
обойтись. Для сети на основе Windows Microsoft. Несмотря на официальный Manager, базу данных можно устано-
таким решением является Microsoft стиль, такое определение дает общее вить как на том же узле, так и другом,
Operations Manager 2005. Однако, об- представление об архитектуре и фун- в случае, если нагрузка на сервер уп-
щаясь со многими системными адми- кциональности продукта. Итак, рас- равления слишком велика. Что каса-
нистраторами, мне приходилось стал- смотрим более подробно схему взаи- ется редакции SQL-серверa, которую
киваться с тем, что некоторые из них, модействия МОМ с управляемыми про- можно использовать для базы дан-
внедрив этот, прямо скажем, недеше- дуктами (см. рис. 2). ных, то лучше по возможности избе-

12
администрирование
жать применения MSDE. Дело в том,
что ввиду ограничений, которые раз-
работчики наложили на версию MSDE,
например, общий объем файлов базы
должен быть не более 2 Гб, нормальное
функционирование МОМ в больших се-
тях может оказаться под угрозой. К со-
жалению, мне не довелось разворачи-
вать МОМ вместе с Microsoft SQL 2005,
но по заверениям Microsoft, ее также
можно использовать в качестве ба-
зы данных.
Описав систему управления МОМ,
теперь перейду к элементам, которы-
ми управляет система. Узлы могут уп-
равляться как с помощью специаль-
ных агентов, так и без них. Для раз- Рисунок 1. Административная консоль МОМ
вертывания агентов необходимо ус-
тановить на управляемую машину производителей программных про- После установки, открыв
агент МОМ (узел вида Agent managed), дуктов. Management Packs для про- Administrative Console, вы увидите ок-
то есть сервис, который будет локаль- дуктов Microsoft можно скачать бес- но (см. рис. 1).
но собирать данные о состоянии маши- платно [1]. К тому же хочу заметить, Консоль является основным сред-
ны и отправлять их на сервер управ- что Management Pack можно сделать ством администрирования Microsoft
ления. Устанавливать агентов можно самому, подробнее этот вопрос я рас- O p e r at i o n s M a n a g e r. В р а з д е л е
как удаленно с сервера управления, смотрю далее. На этом теоретическая Administration, открыв подраздел
так и локально, запустив дистрибутив часть закончена, и приступим к более Computers, в группе Management
на управляемом сервере. Для соеди- интересной практической части, то Servers видны те серверы, которыми
нения с сервером управления по умол- есть реализации функциональных воз- может управлять МОМ. Сюда входят
чанию используется порт 1270 и про- можностей МОМ на практике. как узлы с установленными агента-
токол TCP. Узлы без агентов (agentless ми, так и agentless-узлы. Однако сра-
managed) не содержат каких-либо сер- Разворачиваем систему зу после установки в этом разделе бу-
висов и приложений МОМ. При этом Прежде всего необходимо определить, дет только один узел – сам сервер уп-
агент установлен на самом сервере какие сведения надо собирать. Пред- равления МОМ.
управления, который удаленно соби- положим, что в сети имеется четыре Теперь нужно развернуть агенты
рает информацию с управляемого уз- сервера. Первый является основным на тех узлах, которыми необходимо
ла. При этом используются средства контроллером домена, на нем так- управлять. Конечно, можно обойтись
Windows для сбора сведений о состо- же запущены службы DHCP, DNS, IIS без установки агентов, но тогда нельзя
янии управляемой системы. Недостат- и система резервного копирования. будет продемонстрировать часть фун-
ком agentless-узлов является отсутс- Второй – резервный контроллер доме- кциональных возможностей продукта.
твие ряда возможностей для более эф- на, на котором также установлен поч- Для развертывания можно воспользо-
фективного сбора статистики и реаги- товый сервер Exchange. Третий сервер ваться MSI-пакетом, который входит
рования на инциденты, по сравнению в предполагаемой топологии – это сер- в состав дистрибутива МОМ, или уда-
с agent-managed. вер баз данных, на котором установ- ленной установкой из консоли управ-
Еще один элемент системы управ- лены Microsoft SQL 2000 и сервер тер- ления Administration console. После за-
ления Microsoft Operations Manager – миналов. И наконец, четвертый фай- пуска открывается окно для установ-
Management Packs – контейнеры, со- ловый сервер, на нем находятся пап-
держащие наборы правил, позволя- ки общего доступа, хранятся профили
ющих осуществлять сбор информа- пользователей и файлы резервных ко-
ции. Этот элемент МОМ представляет пий. Расположение описанных прило-
особый интерес, так как именно с по- жений на конкретных серверах боль-
мощью Management Packs можно со- шого значения не имеет, даже если
бирать разнообразную информацию все они установлены на одном серве-
о системе. На основе этих сведений ре, МОМ это не помешает.
можно создавать правила, позволяю- Процесс установки самого серве-
щие реагировать на различные собы- ра управления MOM 2005 подробно
тия системы. расписан в файле помощи. Отмечу
Пакеты управления бывают как лишь, что после установки MOM 2005
платные, так и бесплатные. Бесплат- необходимо также установить Service
Рисунок 2. Схема взаимодействия МОМ
ные пакеты можно найти на сайтах Pack1. и управляемых серверов

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


администрирование
Computers административ- но они платные в отличие от пакетов
ной консоли МОМ. При об- для продуктов Microsoft, которые мож-
суждении вопроса установ- но скачать бесплатно. Далее будет
ки агентов на различные весьма полезен пакет Group Policy, ко-
узлы нельзя обойти еще торый позволит собирать все сведения
одну интересную возмож- о результатах применения групповых
ность Microsoft Operations политик на клиентских машинах и сер-
Manager – это с редс тво верах. Если в вашей сети используются
Computer Discovery Rule, поз- веб- или FTP-службы на базе IIS, то со-
воляющее задавать прави- ответствующий пакет управления так-
ла при поиске машин, на ко- же будет полезен. Management Pack для
торые не был установлен таких продуктов Microsoft, как ISA, SQL
агент, машин, входящих Server, SMS, Office и MOM (собственно,
Рисунок 3. Соединение с сервером управления
в домен, серверных или кли- сбор статистики по самому МОМу то-
ки соединения с сервером управления ентских операционных систем, а также же необходим), нужно установить в том
(см. рис. 3). имен машин, содержащих определен- случае, если эти продукты используют-
Здесь необходимо указать группу, ный набор символов. ся в вашей сети. Возвращаясь к нашим
в которой должен находиться данный Итак, после того, как агенты уп- четырем серверам, отмечу, что необ-
узел, сервер управления, а также порт, равления установлены, можно присту- ходимо установить пакет для Terminal
по которому должен осуществляться пить к установке пакетов management Services, Print Service, WINS (несмотря
доступ. Обратите внимание на номер Packs, позволяющих осуществлять на все рекомендации Microsoft, данная
порта, который используется для уста- сбор информации по событиям кон- служба до сих пор активно использует-
новки соединения. Если при установке кретного вида. Если в состав ваше- ся во многих сетях).
сервера управления был указан другой го дистрибутива МОМ не входят нуж- Теперь, определившись с пакетами,
порт, то его надо указать и при установ- ные пакеты или они уже слишком ус- которые необходимо развернуть, мож-
ке агента. Также следует проследить, тарели, то можно воспользоваться ис- но приступать к самому процессу уста-
чтобы этот порт был открыт на межсе- точником [1] или же поискать на сайте новки. Для этого в административной
тевом экране, в случае, если управля- производителя конкретного програм- консоли выберите раздел management
емый сервер находится в DMZ. В раз- много обеспечения. Так какие пакеты Packs, далее в меню Action, опция
деле Agent Control Level можно выбрать management Pack нам нужны для то- Import/Export Management Pack. В ок-
уровень доступа, который будет разре- го, чтобы эффективно управлять на- не запустившегося мастера, выбираем
шен управляющему серверу к данно- шими четырьмя серверами? Прежде Import (Export может потребоваться при
му агенту. По умолчанию предлагает- всего, учитывая, что сегодня практи- миграции настроек на другой сервер
ся опция None, то есть сервер управ- чески каждая сеть на основе Windows управления). Далее указываем путь
ления не будет иметь права на изме- использует AD, нужно установить па- к файлам пакета, внизу предлагается
нение конфигурации, деинсталляцию кет для Active Directory. С помощью выбрать, что экспортировать. В случае,
или обновление агента. Такой вариант Management Pack можно получать уве- если у вас служба Reports не использу-
является наиболее приемлемым в си- домления об использовании учетных ется, импортируйте только Management
туации, когда управляемый узел и сер- записей, попытках несанкциониро- Pack. Далее можно выбрать тип импор-
вер МОМ разделены межсетевым эк- ванного доступа, изменения привиле- та, если пакет устанавливается впер-
раном. Опция Full позволяет серверу гий и так далее. Следующий необхо- вые, то делать резервное копирование
управления осуществлять изменение димый пакет – Base Operating System – предыдущей версии не нужно. Затем
конфигурации и деинсталляцию аген- позволяет собирать сведения о про- происходит собственно импорт паке-
тов. В разделе Advanced можно также изводительности серверов, использо- та. В случае удачного завершения уста-
добавить адрес альтернативного сер- вании ресурсов, загрузке процессора. новленный Management Pack сразу же
вера МОМ. Это позволяет увеличить Далее DHCP Service и, следовательно, начинает наблюдение за соответству-
надежность системы в целом. Management Pack для сбора статисти- ющими компонентами системы. С по-
На следующем шаге ус танов- ческой информации по событиям, свя- мощью данного алгоритма необходи-
ки необходимо указать тип аутенти- занным с DHCP. В случае, если в ва- мо установить все выбранные пакеты
фикации. В общем случае лучше ис- шей сети используется Distributed File управления МОМ.
пользовать доменную учетную запись System, можно воспользоваться соот- Для того чтобы увидеть резуль-
с правами, достаточными для управ- ветствующим пакетом для DFS. Так- тат работы пакетов, достаточно зайти
ления сервисами на данном узле. Да- же необходим пакет для DNS. Так как в Operator Console. Здесь есть раздел
лее аналогичные действия необходи- мы договорились, что в нашей сети ис- Alerts и раздел Service Level Exceptions.
мо проделать на остальных серверах, пользуется почтовый сервер Exchange, В них находятся сообщения обо всех
на которые требуется поставить аген- то необходимо установить пакеты уп- событиях, которые фиксирует МОМ.
та управления МОМ. После установ- равления для него. Тут следует огово- Также есть разделы, каждый из ко-
ки агента управляемые узлы должны риться, что для Lotus Domino также су- торых соответствует определенному
появиться в разделе Agent Managed ществуют пакеты управления для МОМ, Management Pack, в которые аналогич-

14
администрирование
но собираются события (Events) и ис-
ключения (Exceptions), но уже относя-
щиеся только к данному разделу. На-
пример, на рис. 4 можно наблюдать
несколько сообщений разного уровня
важности, критические ошибки (Critical
Error), ошибки (Error), предупреждения
(Warning) и информационные сообще-
ния (Information).
Следует заметить, что это не прос-
то сообщения, ана логичные тем,
что операционная система создает в
журнале событий Event Log. Здесь со-
общения предусматривают некото-
рую реакцию оператора, в частности,
обратите внимание на поле Resolution
State. Новые сообщения всегда появ-
ляются в состоянии New, однако даль-
нейшее состояние каждого сообщения
должен определять уже оператор. Со-
стояние может подразделяться на че- Рисунок 4. Консоль оператора
тыре уровня: чае, приведенном на рис. 4, админист- Group». Далее создаваемой группе
 Уровень 1 – проблема отправле- ратор при создании нового пула адре- необходимо дать имя и активировать
на внутренней технической под- сов на DHCP-сервере, забыл его акти- ее, включив опцию «Enabled». Теперь
держке. вировать, что и привело к появлению вам доступны три вида правил: Event
 Уровень 2 – проблема отправлена данных сообщений об ошибке. Rules, Alert Rules и Performance Rules.
специалисту по данному продукту. Еще одной весьма полезной функ- Каждая из этих групп предполагает
 Уровень 3 – проблема направлена цией МОМ, которая помогает систем- наличие правил для решения опреде-
во внешнюю поддержку (например, ному администратору в решении про- ленных задач:
службе технической поддержки блем, является наличие базы знаний.  Event Rules – эта группа реагирует
компании-поставщика). При этом есть база знаний как по дан- на появление определенных собы-
 Уровень 4 – проблема отправлена ному продукту, так и корпоративная ба- тий в журнале Event Log.
производителю. за, сведения в которую может добав-  Alert Rules – правила, реагирую-
лять администратор. щие на определенные Alerts.
И также есть состояние Resolved Из прочих полезных функций  Performance Rules – правила, ре-
(решено). При этом рекомендую не ста- Microsoft Operation Manager упомяну агирующие на определенные по-
вить сообщениям состояние Resolved, наличие в консоли оператора раздела роговые значения производитель-
не выяснив полностью причину возник- Events, содержащего сведения о собы- ности различных компонентов сис-
новения проблемы. В противном слу- тиях, но, в отличие от Alerts, здесь фик- темы.
чае вы можете просто забыть о её на- сируются все события, которые полу-
личии, а ведь при следующем прояв- чает МОМ. Эти события уже не требуют Для лучшего понимания я создам
лении этой проблемы последствия мо- реакции от оператора и носят инфор- по одному правилу каждого вида.
гут быть более значительны. Вот прос- мативный характер, но при этом на ос- Для Event Rules поставим задачу со-
той пример, на рис. 4 приведено со- новании сообщений раздела Events со- здать правило, по которому оператор
общение, в котором говорится о том, здаются уведомления Alerts. должен получать Alert при каждой не-
что DHCP-сервер по какой-то причи- удачной попытке FTP-соединения. Alert
не не выдает адреса. Можно предпо- Жизнь по правилам Rules – будем следить за сообщениями
ложить, что область DHCP не активи- Еще одно полезное свойство МОМ – недоступности сервиса, в случае их по-
рована, в связи с чем он не может вы- это возможность создания собствен- явления запускать сценарий, который
давать IP-адреса. Теперь обратите ных правил (Rule). На их основании будет осуществлять перезапуск серви-
внимание на поля «Time of First Event» можно создавать уведомление (Alert), сов. Для Performance Rules необходи-
и «Time of Last Event». Эти поля со- которое будет отправляться в случае мо следить за тем, чтобы нагрузка на
держат сведения о первом и послед- возникновения сообщений, интересу- процессор любого из серверов не пре-
нем сообщениях и о данной пробле- ющих администратора. Для того чтобы вышала 80%, в противном случае так-
ме. Согласитесь, так намного удобнее, создать правило, необходимо снача- же запускать сценарий.
чем самому искать сведения об ошиб- ла создать группу Rule Group. Для это- Итак, для создания первого пра-
ке в журнале событий Event Log. Зная, го требуется в разделе «Management вила заходим в «Event Rules», далее
когда проблема впервые появилась, Packs» выбрать «Rule Group» и далее «Action → Create Event Rule». Выбира-
намного проще ее решать. В моем слу- в меню «Action» выбрать «New Rule ем в появившемся меню «Alert on or

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


администрирование
Respond to Event». Выбор обусловлен И наконец, для создания треть- вящены множество курсов во многих
тем, что необходимо создать правило, его правила, которое должно сле- учебных центрах, также большое ко-
реагирующее на появление опреде- дить за нагрузкой на процессор, нуж- личество информации можно найти на
ленного события. В следующем окне но проделать аналогичные действия, сайте Microsoft. В этой статье я лишь по-
выбираем опцию «IIS Application Log – Create Performance Rule. Затем ука- пытался описать основные возможнос-
FTP», тип событий – «failure audit» (ин- зывается, каким образом произво- ти продукта и рассмотреть на примерах
тересуют только неудачные попытки дится сбор сведений по производи- варианты его использования. Но в за-
соединения). Следующий этап – рас- тельности, в данном случае выбира- ключение – несколько слов относитель-
писание (лучше всего постоянный мо- ете «Sample Performance», в следую- но особенностей использования МОМ.
ниторинг), затем выбираем Computer щем окне нужно выбрать «Performance Отмечу, что хотя МОМ и позволяет ав-
и Domain (области действия). Потом Measure – Processor Time…» данный томатизировать выполнение опреде-
Response, здесь можно задать дейс- счетчик сообщает об использовании ленных задач, но он требует постоян-
твие, которое необходимо совершить ресурсов процессора, далее в разде- ной работы со стороны системных ад-
в случае выполнения заданных кри- ле Response выбираете готовый сце- министраторов. Нужно составить спи-
териев, например запуск какого-ли- нарий Microsoft Windows Base OS CPU сок тех ресурсов, которые необходимо
бо сценария. На этом пункте останов- Overload Script. По умолчанию в кри- отслеживать с помощью МОМ. Далее,
люсь особо. Так как само по себе по- териях указано значение 95%, но так в соответствии с этим списком необ-
лучение уведомлений о попытках не- как предполагалось использовать зна- ходимо создать правила. Однако это-
санкционированного доступа не слиш- чение 80%, то соответственно его не- го мало. Надо также регулярно следить
ком информативно (их может быть де- обходимо заменить. за теми уведомлениями, которые сооб-
сятки за день), то имеет смысл исполь- В результате теперь можно полу- щает система, и реагировать на них.
зовать сценарий, либо специально на- чать уведомления, а также реагиро- Если вы один раз, установив агентов
строенное приложение, которое будет вать на сообщения о различных ви- и пакеты управления и настроив нуж-
адекватно реагировать на подобные дах событий, которые интересуют ад- ные правила, затем забыли про сер-
попытки. Например, в случае пяти не- министратора. вер МОМ, то польза от применения бу-
удачных попыток подключения по FTP, дет невелика. Продукт применяется
для IP-адреса, с которого осуществля- Резервное копирование для так называемой проактивной за-
лись попытки, на час будет заблокиро- Такая мощная система, как МОМ, нуж- щиты от сбоев, то есть он предупреж-
ван доступ по порту 21. Вопросы прак- дается в регулярном резервном копи- дает администратора о возможности
тической реализации данного меха- ровании. Приведу те компоненты, ко- возникновения проблемы еще до того,
низма уже обсуждались в предыду- торые необходимо копировать. Пре- как она проявилась (например, закон-
щих моих статьях [3]. И, наконец, собс- жде всего это база SQL, в которой хра- чилось место на диске или IP-адреса
твенно Alert, который будет создавать- нятся все настройки МОМ. Если вы ис- в DHCP-пуле). Учитывая это, необхо-
ся. Здесь необходимо указать степень пользуете только Microsoft Operations димо ежедневно проверять уведомле-
критичности создаваемого уведомле- Manager, то вам достаточно регуляр- ния системы.
ния, затем состояние, в котором Alert но делать резервную копию базы В продолжение темы, в следующей
появляется, а также описание и источ- Оnepoint, однако если вы также ис- статье, посвященной МОМ, вы про-
ник проблемы (рекомендую исполь- пользуете отчеты (Reporting), то тог- чтете о процессе создания собствен-
зовать значения по умолчанию). В ре- да необходимо делать и копию баз ных пакетов управления Management
зультате выполненных действий после SystemCenterReporting и ReportServer. Pack, которые позволяют существенно
каждой неудачной попытки установле- Выполнять это копирование можно увеличить функциональность данного
ния FTP-соединения будет появляться штатными средствами Microsoft SQL продукта, а также эффективно реаги-
соответствующий Alert MOM, а также, Server. Также нужно обязательно иметь ровать на различные инциденты.
при соответствующей настройке, будут в наличии все Management Packs. Для Кстати, сейчас доступна для ска-
выполняться действия по предотвра- этого воспользуйтесь экспортом паке- чивания бета-версия MOM 2007, ко-
щению несанкционированного досту- тов из MOM, аналогично уже описанно- торую можно бесплатно получить по
па к FTP-ресурсу. му выше импорту. Для восстановления адресу [2].
Для создания Alert Rule необходи- данных необходимо сначала восстано-
мо зайти в соответствующий раздел, вить базы данных, а затем импортиро- 1. http://www.microsoft.com/downloads/
выбрать «Create Alert Rule», в появив- вать Management Pack в МОМ. Также не Browse.aspx?displaylang=en&productID=
шемся окне выбираете «Alert Criteria – забывайте следить за выходом новых 9 C D 2C70 F- F1D E- 4 C 4 D - 8 EC B -
of severity → Service Unavaliable», далее версий Management Pack [1, 2]. 1432951CE0C6 – раздел, посвящен-
«Define Response – Launch a script», вы- ный пакетам обновления Management
бираем из списка или указываем но- В завершение Packs.
вый, в данном случае указываем свой Система Microsoft Operations Manager 2. http://www.microsoft.com/mom – страни-
сценарий, который будет перезапус- содержит в себе множество функций ца посвященная МОМ.
кать нужные сервисы, место запуска – и средств администрирования, расска- 3. Бирюков А. Пишем систему динамичес-
Agent Computer, далее остается только зать о которых в одной статье невоз- кой защиты ресурсов сети./Системный
дать правилу имя. можно. Обучению этому продукту пос- администратор, №6, 2006 г. – С. 56-60.

16
bugtraq

Множественные уязвимости Переполнение динамической памяти


в Mozilla Firefox при обработке LHA-архивов в Dr.Web
Программа: Mozilla Firefox до версии 1.5.0.7. Программа: Dr.Web 4.33, возможно, более ранние версии.
Опасность: Критическая. Опасность: Критическая.
Описание: 1. Переполнение буфера в обработке JavaScript Описание: Уязвимость существует из-за ошибки при об-
регулярных выражений позволяет злоумышленнику выпол- работке LHA-архивов, содержащих длинные имена дирек-
нить произвольный код на целевой системе. торий в расширенном заголовке директории. Удаленный
2. Механизм автообновления использует SSL для безо- пользователь может вызвать переполнение динамической
пасного общения. Если пользователь подтвердит непрове- памяти и выполнить произвольный код на целевой систе-
ряемый самоподписанный сертификат при посещении сай- ме. Рабочий эксплоит написан для Dr.Web Scanner for Linux
та, атакующий может перенаправить проверку обновления v4.33 (4.33.0.09211).
к злонамеренному веб-сайту и выполнить нападение «че- URL производителя: http://www.drweb.com.
ловек посередине». Решение: Установите исправление от производителя пу-
3. Некоторые зависимые от времени ошибки в процессе тем обновления антивирусных баз.
отображения текста могут эксплуатироваться для повреж-
дения памяти и выполнения произвольного кода. Загрузка произвольных файлов
4. Уязвимость обнаружена в проверке некоторых подпи- в TikiWiki
сей в Network Security Services (NSS)-библиотеке. Программа: TikiWiki 1.9.4, возможно, более ранние вер-
5. Уязвимость в междоменном взаимодействии позво- сии.
ляет внедрить произвольный HTML и код сценария в фрейм Опасность: Высокая.
другого веб-сайта, используя вызов [window].frames[index]. Описание: Уязвимость существует из-за недостаточной
document.open(). проверки загруженных файлов в сценарии jhot.php. Уда-
6. Ошибка обнаружена при открытии заблокированных ленный пользователь может загрузить злонамеренный
всплывающих окон. В результате можно выполнить произ- PHP-сценарий в каталог img/wiki и выполнить его на сис-
вольный HTML и код сценария в браузере текущего поль- теме с привилегиями веб-сервера.
зователя в контексте произвольного веб-сайта. URL производителя: http://www.tikiwiki.org.
7. Несколько нераскрываемых ошибок памяти позволя- Решение: В настоящее время способов устранения уязви-
ют выполнить произвольный код на целевой системе. мости не существует.
URL производителя: http://www.mozilla.com/firefox.
Решение: Обновите до версии 1.5.0.7. Переполнение динамической памяти
в Microsoft Internet Explorer
Множественные уязвимости Программа: Microsoft Internet Explorer 6.x.
в Zend Platform Опасность: Высокая.
Программа: Zend Platform 2.2.1, возможно, более ранние Описание: Уязвимость существует из-за недостаточной
версии. проверки входных данных в ActiveX-компоненте daxctle.ocx.
Опасность: Высокая. Удаленный пользователь может с помощью дескриптора
Описание: 1. Уязвимость существует из-за ошибки провер- DirectAnimation.PathControl вызвать переполнение дина-
ки границ данных в ZendSession Manager Daemon при обра- мической памяти и аварийно завершить работу браузера
ботке сессий. Удаленный пользователь может аварийно за- или выполнить произвольный код на целевой системе.
вершить работу приложения, отправив слишком длинный URL производителя: http://www.microsoft.com.
или нулевой длины идентификатор сессии. Решение: В настоящее время способов устранения уязви-
2. Уязвимость существует из-за ошибки проверки гра- мости не существует.
ниц данных в модуле mod_cluster при обработке сессий.
Удаленный пользователь может аварийно завершить ра- Выполнение произвольного кода
боту приложения, отправив слишком длинный или нуле- в Ipswitch IMail Server
вой длины идентификатор сессии. Удачная эксплуатация Программа: Ipswitch Collaboration Suite 2006, IMail Secure
уязвимости позволит злоумышленнику выполнить произ- Server 2006, IMail Server 2006.
вольный код на целевой системе. Опасность: Высокая.
3. Уязвимость существует в ZendSession Manager при об- Описание: Уязвимость существует из-за неизвестной
работке сессионных файлов. Злоумышленник может со- ошибки в SMTP-демоне. Удаленный пользователь может
здать и просмотреть произвольные файлы сессий на це- выполнить произвольный код на целевой системе.
левой системе с привилегиями приложения. URL производителя: http://www.ipswitch.com.
URL производителя: http://www.zend.com/products/ Решение: Установите исправленную версию с сайта про-
zend_platform. изводителя.
Решение: Установите последнюю версию (2.2.1a) с сайта
производителя. Составил Александр Антипов

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


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

Экономьте время
на администрировании
Active Directory

Сергей Яремчук

Служба каталогов Active Directory – мощный и один из наиболее важных компонентов


распределенной компьютерной системы, который дает гибкость в распределении ресурсов.
Но в то же время стандартные инструменты, входящие в состав ОС Windows не во всех
случаях обеспечивают должный уровень управления AD.

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

П
о мере роста количества пользо- каемых продуктов являет-
вателей и ресурсов, к которым ся Active Administrator, прос-
должен быть предоставлен до- той в использовании инс-
ступ, управление Active Directory да- трумент, позволяющий эф-
же внутри отдельного домена замет- фективно управлять груп-
но усложняется. А учитывая, что ад- повыми политиками и Active
министрированием может занимать- Directory, информировать
ся несколько человек, через некото- обо всех значительных из-
рое время ситуация может стать не- менениях, проводить всес-
управляемой, а сама система потре- торонний аудит, значитель-
бует серьезного аудита. Для админис- но экономя время на адми-
трирования Active Directory использу- нистрирование.
ются несколько инструментов, встро- Программа, к сожалению,
Рисунок 2. Настройка сервиса Active Template
енных в Windows 2000/2003 Server, не бесплатна, стоимость ли- Auto-Repair
что не всегда удобно и требует некото- цензии зависит от количест-
рого времени на их полноценное осво- ва объектов в Active Directory. Сама ли- шаблоны, как с нуля, так и на основе
ение. Консоль управления групповыми цензия привязана к Organizational Unit, уже имеющихся. Интерфейс позволя-
политиками (Group Policy Management поэтому применение ее с иным OU не- ет легко найти необходимый объект,
Console – GPMC), которая появилась возможно. при этом в другом окне будут отобра-
в 2003 году, обеспечивает пользовате- Для определенных администра- жены все разрешения. Для удобства
лю более удобный интерфейс управле- тивных целей используются шаблоны их отбора можно использовать систе-
ния политиками Windows на базе MMC Active Templates. Каждый шаблон оп- му фильтров.
(Microsoft Management Console). В его ределяет разрешения, которые тре- Консоль управления предоставля-
состав входит набор сценариев, пред- буются для определенных задач. С по- ет единый интерфейс для управления,
назначенных для автоматизации ти- мощью таких шаблонов можно лег- планирования, редактирования, ре-
повых задач управления объектами ко делегировать некоторые функции зервирования и восстановления груп-
групповой политики. Но в то же время пользователям и гарантируют после- повых политик. Поддерживается фун-
и его возможностей часто бывает не- довательное назначение разрешений кциональность инструмента, извест-
достаточно. в пределах Active Directory. Програм- ного как результирующий набор по-
ма контролирует состояние установ- литик (Resultant Set of Policies – RSoP),
Утилита Active ленных с помощью Active Templates появившаяся в Windows 2003 Server,
Administrator разрешений, права, не соответству- задача которого – упростить измере-
Корпорация ScriptLogic специализи- ющие действующей модели безопас- ние накопительных настроек группо-
руется на разработке решений, пред- ности, автоматически восстанавли- вой политики, применяемых к пользо-
назначенных для администрирова- ваются. Администратор может само- вателю или компьютеру. Это позволя-
ния сетей Windows. Одним из выпус- стоятельно создавать необходимые ет администраторам планировать сце-
нарии перемещения объекта. Active
Administrator автоматически сохраняет
всю историю изменений групповых по-
литик, давая тем самым возможность
при необходимости сравнить новые
настройки, быстро осуществить воз-
врат к старым настройкам. Изменения
политик производятся не напрямую
в рабочую среду, а в Offline Repository.
Для оценки эффекта созданные та-
ким образом политики сравниваются
с действующими, в том числе и с ис-
пользованием RSoP. Удобно, что ре-
дактирование Offline Repository может
быть осуществлено администратора-
ми, имеющими доступ к политикам
в режиме только для чтения. Но при-
меняют их только те, кто имеет соот-
ветствующие права. Средствами про-
граммы возможны копирование и реп-
ликация групповых политик между
доменами. Для контроля изменений
Рисунок 1. Настройка сервиса Event Configuration Utility в Active Directory и групповых поли-

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


администрирование
тик Active Administrator анализирует для компьютера, на который устанав- го – создать базу данных и помочь
журнал. Воспользовавшись системой ливается Active Administrator, невелики. в настройке сервисов истории груп-
фильтров, администратор всегда уз- Требуется процессор класса Pentium повых политик (Group Policy History),
нает, кто и когда внес эти изменения. 600 Мгц с 256 Мб оперативной памя- восстановления Active Template (Active
Кроме того, при возникновении неко- ти с Windows 2000 и выше. Кроме это- Template Auto-Repair service) и сер-
торых событий администратор опове- го, для хранения информации может виса восстановления информации.
щается посредством электронной поч- использоваться Microsoft SQL Server Для каждого необходимо указать до-
ты. И наконец, программа предостав- Desktop Engine, который устанавли- мен и пользователя для регистрации
ляет полноценные отчеты по установ- вается по умолчанию, либо имею- (рис. 2).
кам Active Directory и групповых поли- щийся SQL Server. В последнем слу- При настройке параметров Auto-
тик, по безопасности, классам объек- чае при установке следует выбрать Repair-сервиса возможна настройка
тов и прочее. Отчеты экспортируются режим Custom и отключить инсталля- оповещения по электронной почте, вы-
в файлы форматов RTF, PDF, HTML, цию MSDE. Программа установки пот- брав Configure e-mail Setting, указыва-
XLS, TIF, RDF, TXT. ребует, чтобы вы указали каталог, ко- ем почтового сервера и адрес, на ко-
торый будет использован для хране- торый они будут отсылаться. Если ис-
Установка Active ния информации. На этом этапе со- пользуется Windows 2003 с SP1, Active
Administrator здаем локальную базу событий безо- Administrator может восстанавливать
Для того чтобы скачать файл, необ- пасности, в которую будет заносить- пароли к удаленным счетам. Жела-
ходимо зарегистрироваться на сайте, ся информация о событиях безопас- тельно сразу же после настройки сер-
указав персональные данные и пароль, ности. Заполняем поля и выбираем виса восстановления нажать Backup
которым будете пользоваться. После метод аутентификации для доступа Now для создания резервной копии.
чего на указанный почтовый адрес при- к базе: Windows или SQL Server. В ре- На этом установка сервера Active
дет ссылка для закачки. В архиве «ве- зультате будет созданный разделяе- Administrator заканчивается.
сом» 45 Мб два файла: AAServerSetup мый ресурс ActiveAdministrator, имею- Консоль можно установить как
предназначен для установки на сервер, щий по умолчанию права Full Control на любой компьютер в сети, так и
а с помощью AAConsoleSetup необхо- для Everyone. на тот, на котором стоит сервер Active
дима для установки удаленной консо- Д а л е е з а п ус к ае тс я D at abase Administrator. Каких-либо особенностей
ли управления. Системные требования Maintenance Wizard, задача которо- при установке консоли нет.

20
администрирование
Настройка базы аудита
событий
Программа установки позволяет со-
здать базу событий безопасности
для локальной системы MSDE 2000.
Вероятно, может понадобиться пере-
нести ее на SQL Server. Для создания
такой базы выбираем «Creating Auditing
Database» в меню «Пуск». После это-
го появится знакомый мастер. На пер-
вом шаге которого в выпадающем
списке выбираем new database и да-
лее действуем как во время установ-
ки, заполняя нужные поля. После уста-
новки базы данных необходимо с по-
мощью Active Administrator, либо Active
Directory Users с MMC и разрешить ау-
дит в Default Domain Controllers Policy.
После чего выполнить gpupdate. Сле-
дующий шаг, настройка утилиты опо-
вещения Event Configuration Utility. В по-
явившемся окне (рис. 1) во вкладке
«Event Definitions» выбираем события,
Рисунок 3. Вид Active Administrator Console
при появлении которых мы хотим по-
лучать оповещение. Список адресов, GPO без их применения в реальной ются различные отчеты. В качес-
которым будет отсылаться уведомле- сети. тве фильтров можно использовать
ние, вводится во вкладке «Defailt Email  Resultant Set of Policies (RSoP) – такие параметры, как дата, время,
Adresses». Но можно для отдельно- в этой вкладке производится ана- пользователь, событие и прочие.
го события указать специфический лиз созданных в offline repository по-  Group Policy Objects – используя
электронный адрес, для этого нужно литик. эту вкладку, можно просматривать,
вызвать контекстное меню, щелкнув  Group Policy Objects by Container – создавать, редактировать, вос-
по нему правой кнопкой мышки. Ес- здесь можно просмотреть группо- станавливать, добавлять к Offline
ли еще имеются сервисы с включен- вые политики и проследить связи, Repository групповые политики.
ным мониторингом событий, добавить отбирая информацию по OU или
их контроль можно во вкладке «Install сайтам. Вывод
DC Agents». На этой же странице отоб-  AD Object Restore – в этой вклад- Несмотря на то, что начальная на-
ражается статус агентов и загружают- ке можно восстановить объекты стройка несколько непривычна, в том
ся новые файлы, содержащие собы- Active Directory, без перехода в ре- числе и из-за несколько неинтуитив-
тия. Все зарегистрированные собы- жим восстановления AD. При этом ного интерфейса, в дальнейшем Active
тия сохраняются затем в файле с рас- объектам можно восстановить ста- Administrator оправдает свое приме-
ширением edf. рые пароли либо задать новые. нение, а удобство работы окупит за-
 Client Side Troubleshooting – весь- траченное на настройку время. На-
Работа с Active ма удобная функция, позволяющая личие таких возможностей, как Active
Administrator Console соединиться с клиентским компью- Templates, Offline Repository, аудит
При первом запуске консоли управ- тером, позволяя, например, убе- и оповещение о событиях по e-mail,
ления вам предстоит ввести лицензи- диться в том, что новые политики восстановление и прочее, делают его
онный ключ, если у вас его нет, но вы- применены правильно. удобным инструментом при админис-
бираем «Begin Evaluation» и пользу-  Active Directory Security – здесь трировании Active Directory. Также хо-
емся программой в течении 30 дней, показан список ваших серверов чется отметить наличие довольно под-
без всяких ограничений функцио- и контейнеров, а также выводят- робной, в том числе и пошаговой доку-
нальности. ся пользователи или группы, име- ментации на английском языке.
Консоль состоит из 10 вкладок: ющие доступ к выбранным объек-
 Group Policy History – здесь мож- там. 1. С а й т S c r i p t L o g i c , р а з р а б о т ч и -
но отследить историю изменений  Active Templates – здесь создают- ка Active Administrator – ht tp://
групповых политик и при необхо- ся, редактируются и применяются www.scriptlogic.com.
димости произвести откат к пре- Active Templates. 2. Та б л и ц а с р а в н е н и я в о з м о ж н о с -
дыдущему состоянию.  Active Directory Auditing – в этой тей Active Administrator 4.0 и GPMC –
 Group Policy Offline Repository – вкладке просматриваются сооб- http://www.scriptlogic.com/products/
здесь создаются и редактируются щения системы аудита, генериру- activeadmin/comparisonmatrix.asp.

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


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

Как собирать
сетевую статистику

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

Суть проблем для того чтобы иметь представление Рассмотрим все эти уровни по по-
Современные локальные сети имеют, о том, какие пакеты проходят через рядку. Работа на физическом уровне
как правило, довольно сложную струк- сеть, на какие периоды времени при- нас мало интересует, так как опреде-
туру и часто являются гетерогенными, ходятся пиковые нагрузки, сколько па- лить, насколько хорошо работает ка-
то есть состоят из сетевого оборудова- кетов теряется или приходит с ошиб- нал, можно лишь с помощью специ-
ния различных производителей и раз- ками и так далее. ального оборудования, например тес-
нообразных устройств, выполняющих Для того чтобы предложить прин- тера. Исключением может являться
специальные функции. В связи с этим цип классификации, рассмотрим ос- DSL-оборудование (модемы, DSLAM
в сети присутствует разнородный тра- новы сетевых технологий, в частнос- и т. д.), с помощью встроенных в него
фик, который необходимо правильно ти, иерархическую модель ISO OSI. функций можно получать информацию
классифицировать, в противном слу- Как известно, она делит сетевое вза- о состоянии интерфейса, статистику
чае существует риск того, что можно имодействие на семь уровней: по коллизиям и другую информацию.
пропустить критическое изменение в  Физический Как получить эту информацию по то-
сетевом трафике определенного ви-  Канальный му или иному конкретному оборудова-
да, что в свою очередь влечет поте-  Сетевой нию, вы можете узнать в документации
рю или задержку критически важных  Транспортный к соответствующей модели.
для бизнеса данных. После проведе-  Сеансовый В отличие от физического уровня
ния классификации необходимо соб-  Уровень представлений канальный (в англоязычной литера-
рать статистику для каждого класса,  Уровень приложений туре именующийся Data Link) гораздо

22
администрирование
более информативен. Его рассмотрим
подробнее чуть позже.
Сбор статистики по сетевому
и транспортному уровням – основ-
ная тема этой сегодня, и большинство
примеров будет связано именно с эти-
ми уровнями.
Оставшиеся три уровня рассматри-
ваться не будут. Причин этому несколь-
ко, во-первых, многообразие различ-
ных протоколов, работающих на вер-
хнем уровне модели OSI, во-вторых, Рисунок 1. Статистика, построенная с помощью MRTG
связанная с этим многообразием слож-
ность в сборе соответствующей статис- тво сообщает о состоянии запущен- дения о попытках несанкционирован-
тики, в частности, отсутствие средств ных процессов, служб и интерфейсов. ного проникновения в сеть. Во втором
для учета пакетов, отправленных оп- Фактически те системные сообщения, случае большое количество пакетов,
ределенным протоколом высокого создаваемые устройством (также име- исходящих из внутренней сети на за-
уровня. Вообще для сбора статистики нуемые логами, журналами событий), крытые порты, может свидетельство-
для определенных протоколов высо- отправляемые на хост, на котором за- вать о том, что на некоторых машинах
кого уровня существуют специальные пущена служба Syslog, (в общем слу- пользователей установлено програм-
утилиты, созданные самими разработ- чае это может быть машина, работа- мное обеспечение, несоответствую-
чиками данного приложения. ющая под управлением Linux), c кото- щее корпоративной политике безопас-
Определившись с тем, какие ста- рого уже можно собирать статистику ности, и, возможно, есть смысл побе-
тистические данные и для каких про- за определенный период. Эти сооб- седовать с некоторыми пользователя-
токолов требуется собрать, теперь оп- щения могут быть как информацион- ми или администраторами.
ределимся с тем, для каких устройств ные, так и сообщения об ошибках, все Однако кроме сбора статисти-
что нужно собирать. Как уже упомина- зависит от настройки протоколиро- ки по запрещенным пакетам иногда
лось выше, локальная сеть содержит вания на конкретном устройстве. Ка- имеет смысл собирать информацию
в себе целый ряд различного оборудо- кую статистику можно собрать с по- и по разрешенным. Приведу пример.
вания, например сервера, маршрути- мощью Syslog? Предположим, при попытке отправить
заторы, коммутаторы, межсетевые эк- Например, в случае если какой-ли- письмо из своей сети, внешнему поль-
раны и т. д. Но при этом каждая груп- бо порт отключился и устройство по- зователю, ваш почтовый сервер полу-
па устройств функционирует на опре- теряло соединение с определенной се- чил сообщение об ошибке 550 (сер-
деленном уровне модели, маршрути- тью. Еще одним примером использова- вис недоступен) или 450 (сервис вре-
заторы на сетевом, коммутаторы на ния Syslog является журналирование менно недоступен), но при этом сер-
канальном, сервера на уровне прило- списков доступа Access Lists. Спис- вер получателя нормально пингует-
жений. Я буду рассматривать сбор ста- ки доступа определяют, каким хостам ся. Это может означать, что ваш вне-
тистики на определенных устройствах, и подсетям разрешен доступ к опре- шний IP-адрес попал в черные списки
для конкретных протоколов. деленным ресурсам посредством за- сетей, из которых идет рассылка не-
данных протоколов через соответству- желательной почты (спама). Сейчас
Статистика на сетевом ющие порты. Хорошим тоном при пос- нередко спам рассылается без ведо-
оборудовании троении ACL является правило «все, ма владельца компьютера с помощью
Сейчас на рынке можно встретить се- что не разрешено, то запрещено». Ру- троянских программ, которые, зара-
тевое оборудование от различных про- ководствуясь этим, ваш список досту- зив машину, превращают ее неболь-
изводителей, обладающих аналогич- па должен содержать правило, кото- шой SMTP-сервер, c которого начина-
ным функционалом для своего клас- рое запрещает весь трафик, который ют автоматически рассылать спам во
са устройств. В связи с этим при рас- не был разрешен (на некотором обору- внешнюю сеть. Для того чтобы опре-
смотрении примеров я не буду привя- довании, приоритет правил определя- делить зараженную рабочую станцию,
зываться только к одному производи- ется их очередностью в списке, на дру- достаточно просто посмотреть в фай-
телю, а буду использовать общие для гом – присвоенным значением приоре- ле журнала Syslog, с какого узла бы-
всех производителей стандарты и тех- тизации). Возвращаясь к задаче сбо- ли отправлены SMTP-сообщения на за-
нологии. Поэтому прежде чем присту- ра статистики, отправляем информа- блокировавший сервер. Вообще лучше
пить к описанию конкретных приме- цию обо всех запрещенных пакетах, всего запретить соединения по 25 пор-
ров, рассмотрим средства сбора ста- на службу syslog на специально выде- ту всем узлам, кроме корпоративного
тистики. ленном для этого хосте. Причем мож- почтового сервера, но, к сожалению,
но протоколировать как сведения о па- это, как правило, не делается, хотя
Syslog кетах, шедших из Интернета во внут- следовало бы.
Сообщения Syslog являются средс- реннюю сеть, так и наоборот. В пер- Данная служба использует прото-
твом, с помощью которого устройс- вом случае мы поможет соберем све- кол UDP, также она реализована прак-

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


администрирование
жде всего на уровень приложений, ко-
торый в этой статье не рассматривает-
ся. Однако возможны ситуации, в кото-
рых требуется сетевая статистика по
протоколам нижнего уровня. Например,
в случае, если сервер выполняет роль
маршрутизатора, связывая несколько
сетей, подключенных к различным ин-
терфейсам. Собирать статистику мож-
но также несколькими способами.
Во-первых, для того чтобы осу-
ществлять сбор статистики на сете-
вом интерфейсе сервера, можно вос-
пользоваться штатным средством
Windows – счетчиками производитель-
ности (см. рис. 2).
Запустить эти счетчики можно
Рисунок 2. Результат работы счетчика производительности из консоли «Панель управления», да-
лее «Администрирование» и «Произ-
тически на всех моделях современно- чать поиск источника трафика до то- водительность». В этой консоли имеет-
го сетевого оборудования. го, как сеть окажется полностью не- ся несколько средств для наблюдения
работоспособной. за состоянием системы: «Системный
Служба SNMP монитор», «Журналы счетчиков», «Жур-
Другое средство – это служба SNMP, MRTG налы трассировки» и «Оповещения».
которая позволяет не только получать Следующей группой устройств, о ко- «Системный монитор» представля-
информацию об устройстве, но и уп- торой хотелось бы рассказать, явля- ет данные о состоянии различных ус-
равлять им. С его помощью можно по- ются маршрутизаторы. По аналогии тройств и приложений в виде графи-
лучать сведения о количестве полу- с коммутаторами, с маршрутизато- ка, строящегося в режиме реально-
ченных и потерянных пакетов на ин- ров можно собирать статистику с по- го времени.
терфейсе, состоянии различных про- мощью MRTG. Однако эти устройства «Журналы счетчиков» – это средс-
токолов динамической маршрутиза- выполняют также целый ряд функций тво, аналогичное «Системному мони-
ции. Но для более удобного визуаль- сетевого уровня, которые могут пред- тору» с той лишь разницей, что здесь
ного представления можно восполь- ставлять интерес для сбора статис- результаты мониторинга не выводят-
зоваться специальными приложе- тики. Например, уже упоминавшиеся ся на экран в виде графика, а сохра-
ниями для сбора статистики с помо- протоколы динамической маршрути- няются в файле.
щью SNMP. В качестве средства ви- зации: RIP, OSPF, BGP. Все эти прото- «Оповещения» – это средство, поз-
зуализации статистики лучше все- колы работают на сетевом (L3) уровне воляющее системе реагировать на оп-
го использовать программы MRTG [1] и обрабатываются маршрутизатора- ределенные события. Например, в слу-
для Linux/FreeBSD (см. рис. 1), а в слу- ми. Получить статистическую инфор- чае если количество пакетов, посту-
чае Windows PRTG [2]. мацию по состоянию пакетов для оп- пивших на сетевой интерфейс в тече-
Данные программы просты в ис- ределенного протокола маршрутиза- ние текущего сеанса работы, превос-
пользовании, для их работы достаточ- ции можно с помощью средств SNMP, ходит определенное пороговое значе-
но указать лишь IP-адрес устройства обратившись к соответствующей вет- ние, то можно сделать запись в журна-
и community. ке и применив базу MIB данного про- ле событий (Event Log), отправить со-
Итак, начнем с коммутаторов. Ка- изводителя оборудования. общение по сети, запустить журнал
кую статистическую информацию мож- Итак, с помощью приведенных вы- производительности или приложе-
но получить с этих устройств? Прежде ше средств, можно осуществить сбор ние. Это средство может быть полезно
всего с помощью SNMP и MRTG мож- статистики на сетевом оборудовании, в случае, если на интерфейс поступает
но собирать и визуализировать данные которая затем может оказаться полез- большое количество пакетов с ошибка-
о состоянии интерфейсов. На основа- ной при обнаружении различных про- ми или неопознанных пакетов, в случае
нии этих сведений можно делать выво- блем, возникающих в локальной сети. превышении порогового значения, на-
ды о степени загруженности каналов, пример 10000, можно отправлять сооб-
разнице между объемом отправлен- Мониторинг серверов щение на экран с указанием времени
ных и полученных пакетов. Предвижу Выше рассматривались примеры сбора и даты, а также делать запись в жур-
вопрос читателей о том, как эта инфор- статистики на маршрутизаторах и ком- нал событий. С помощью этих опове-
мация может пригодиться? К приме- мутаторах, устройствах, функциониру- щений можно поставить в известность
ру, вы можете составить представле- ющих на нижних уровнях эталонной мо- системного администратора, который
ние о штатной нагрузке на сеть, в слу- дели OSI. Сервера и рабочие станции сможет предотвратить возникновение
чае ее непредвиденного роста, на- ориентированы на верхние уровни, пре- проблем еще до их появления.

24
администрирование
Другим средством, с помощью которого можно соби-  Fragments Reassembly Per Second – фрагментов пере-
рать сетевую статистику, является сценарий Windows Script собрано за секунду;
Host, который будет собирать информацию о количестве  Fragments received Per Second – получено фрагментов
полученных и переданных пакетов, а также о пакетах, со- за секунду.
держащих ошибки.
Механизм действия такого сценария довольно прост, Эта статистика нуждается в некотором пояснении.
оригинальную версию можно найти в источнике [5]. Но я Для протокола TCP единицей измерения являются сег-
предлагаю его немного модифицировать, для того что- менты, также здесь фигурируют соединения (Connections),
бы сделать пригодным для практического использова- так как данный протокол использует при работе установку
ния. Для того чтобы автоматизировать процесс сбора све- соединения. Для UDP в контексте данного сценария еди-
дений, я буду собирать данные в документ формата Excel, ницей измерения является датаграмма. А для протокола IP
в котором первая страница посвящена статистике по TCP, кроме датаграмм также учитываются и их фрагменты, что
вторая – по UDP и третья – по IP. При этом получать будем позволяет учитывать также статистику по обработке час-
следующие данные. тей данных, передаваемых этим протоколом.
Для TCP: Следует отметить, что в источнике [5] также имеются
 Connection Failures – счетчик неудачных соединений; примеры сценариев для сбора статистики по IPSec и по про-
 Connection Active Connection Established – количество токолам IP телефонии. Так что при необходимости их тоже
активных соединений; можно включить в приведенный далее сценарий.
 Connection Passive – количество пассивных соедине- Далее приведу пример сценария, выполняющего все
ний; эти действия с необходимыми комментариями.
 Connection Reset Segments Per Second – отброшено сег-
ментов за секунду; Листинг 1. Сценарий, собирающий статистику по протоколам
 Segments Received Per Second – получено сегментов strComputer = "." // используется локальная машина
за секунду; Set objWMIService = GetObject("winmgmts:" ↵
& "{impersonationLevel=impersonate}!\\" ↵
 Segments Retransmited Per Second – транслировано сег- & strComputer & "\root\cimv2")
ментов за секунду; set objRefresher = ↵
CreateObject("WbemScripting.SWbemRefresher")
 Segments Sent Per Second – отправлено сегментов за се- // объекты, необходимые для запуска сценария
кунду. Set colItems = objRefresher.AddEnum _
(objWMIService, ↵
"Win32_PerfFormattedData_TCPIP_TCP").objectSet
Для UDP: // объект, с помощью которого собираются данные по TCP
Set colItems1 = objRefresher.AddEnum _
 Datagrams No Port Per Second – получено датаграмм (objWMIService, ↵
на неверный порт в секунду; "Win32_PerfFormattedData_TCPIP_UDP").objectSet
// объект, с помощью которого собираются данные по UDP
 Datagrams Per Second – отправлено датаграмм в секун- Set colItems2 = objRefresher.AddEnum _
ду; (objWMIService, ↵
"Win32_PerfFormattedData_TCPIP_IP").objectSet
 Datagrams Received Errors – получено с ошибками; // объект, с помощью которого собираются данные по IP
 Datagrams Received Per Second – датаграмм получено objRefresher.Refresh // обновление счетчиков
в секунду.
Const xlDiagonalDown = 5
Const xlDiagonalUp = 6
Для IP: Const xlNone = -4142
 Datagrams Forwarded Per Second – датаграмм передано Const xlContinuous = 1
Const xlThin = 4
за секунду; Const xlThick = 4
 Datagrams Discarded – отклонено; Const xlEdgeLeft = 7
Const xlEdgeTop = 8
 Datagrams Received Header Errors – получено с ошибка- Const xlEdgeBottom = 9
ми в заголовке; Const xlEdgeRight = 10
Const xlInsideVertical = 11
 Datagrams Received Per Second – датаграмм получено Const xlInsideHorizontal = 12
за секунду; Const xlAutomatic = -4105
Const xlCenter = -4108
 Datagrams Received Unknown port – получено на неиз- Const ForReading = 1
вестный порт; Const ForWriting = 5
// набор констант, необходимых для создания документа Excel
 Datagrams Sent Per Second – датаграмм отправлено
за секунду; Set oE = CreateObject("Excel.Application")
oE.Visible = false
 Fragments Per Second – всего фрагментов (частей да- oE.Workbooks.Add
таграмм) за секунду; // создаем новый документ Excel
oE.DisplayAlerts = False
 Fragments Failures – фрагменты с ошибками; 'oE.Sheets(4).Delete
 Fragments Datagrams Per Second – фрагменты датаграмм oE.DisplayAlerts = True
// определяем количество страниц
за секунду; Set s = oE.Sheets(1)
 Fragments Reassembly Failures – неудачные попытки пе- s.Name = "Статистика по TCP"
// название для первой страницы
ресборки фрагментов; Set s1 = oE.Sheets(2)
 Fragments Created Per Second – создано фрагментов за s1.Name = "Статистика по UDP"
// название для второй страницы
секунду; Set s2 = oE.Sheets(3)

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


администрирование
s2.Name = "Статистика по IP" Next
// название для третьей страницы // каждый элемент для статистики по IP
// далее перечисляются названия столбцов For Each objItem in colItems2
s.Rows(1).RowHeight = 2 * s.StandardHeight s2.Cells(f,1)=Now
s.Cells(1,1) = "Статистика по протоколу TCP" s2.Cells(f,2)=objItem.DatagramsForwardedPersec
s.Cells(2,1) = "Время" s2.Cells(f,3)= ↵
s.Cells(2,2) = "Connection Failures" objItem.DatagramsOutboundDiscarded
s.Cells(2,3) = "Connection Active" s2.Cells(f,4)=objItem.DatagramsOutboundNoRoute
s.Cells(2,4) = "Connection Established" s2.Cells(f,5)=objItem.DatagramsPersec
s.Cells(2,5) = "Connection Passive" s2.Cells(f,6)= ↵
s.Cells(2,6) = "Connection Reset" objItem.DatagramsReceivedAddressErrors
s.Cells(2,7) = "Segments Per Second" s2.Cells(f,7)= ↵
s.Cells(2,8) = "Segments Received Per Second" objItem.DatagramsReceivedDeliveredPersec
s.Cells(2,9) = "Segments Retransmited Per Second" s2.Cells(f,8)= ↵
s.Cells(2,10) = "Segments Sent Per Second" objItem.DatagramsReceivedDiscarded
s.Columns("A:B").Columns.AutoFit s2.Cells(f,9)= ↵
With s.Range("A1:B1") objItem.DatagramsReceivedHeaderErrors
.MergeCells = True s2.Cells(f,10)= ↵
.VerticalAlignment = xlCenter objItem.DatagramsReceivedPersec
.HorizontalAlignment = xlCenter s2.Cells(f,11)= ↵
.Font.Size=14 objItem.DatagramsReceivedUnknownProtocol
End With s2.Cells(f,12)=objItem.DatagramsSentPersec
s1.Rows(1).RowHeight = 2 * s1.StandardHeight s2.Cells(f,13)=objItem.FragmentationFailures
s1.Cells(1,1) = "Статистика по протоколу UDP" s2.Cells(f,14)= ↵
s1.Cells(2,1) = "Время" objItem.FragmentedDatagramsPersec
s1.Cells(2,2) = "Datagrams No Port Per Second" s2.Cells(f,15)= ↵
s1.Cells(2,3) = "Datagrams Per Second" objItem.FragmentsReassembledPersec
s1.Cells(2,4) = "Datagrams Received Errors" s2.Cells(f,16)= ↵
s1.Cells(2,5) = "Datagrams Received Per Second" objItem.FragmentsReceivedPersec
s1.Columns("A:B").Columns.AutoFit Next
With s1.Range("A1:B1") WScript.Sleep 60000 // пауза на 60 секунд
.MergeCells = True
.VerticalAlignment = xlCenter objRefresher.Refresh
.HorizontalAlignment = xlCenter f=f+1
.Font.Size=14
End With Next

s2.Rows(1).RowHeight = 2 * s2.StandardHeight oE.DisplayAlerts = False


s2.Cells(1,1) = "Статистика по протоколу IP" // сохранение документа Excel
s2.Cells(2,1) = "Время" oE.ActiveWorkbook.SaveAs "result"
s2.Cells(2,2) = "Datagrams Forwarded Per Second" oE.DisplayAlerts = True
s2.Cells(2,3) = "Datagrams Discarded" oE.Quit ‘ закрытие Excel
s2.Cells(2,4) = "Datagrams Received Header Errors"
s2.Cells(2,5) = "Datagrams Received Per Second"
s2.Cells(2,6) = "Datagrams Received Unknown port" Рекомендуемый способ развертывания данного сце-
s2.Cells(2,7) = "Datagrams Sent Per Second" нария – это запуск на длительный период (порядка суток),
s2.Cells(2,8) = "Fragments Per Second"
s2.Cells(2,9) = "Fragments Failures" за который собираются статистические сведения о прото-
s2.Cells(2,10) = "Fragments Datagrams Per Second" колах на интерфейсе.
s2.Cells(2,11) = "Fragments Reassembly Failures"
s2.Cells(2,12) = "Fragments Created Per Second" Какие данные можно получить с его помощью? Напри-
s2.Cells(2,13) = "Fragments Reassembly Per Second" мер, количество IP-пакетов, пришедших на ошибочный
s2.Cells(2,14) = "Fragments received Per Second"
s2.Columns("A:B").Columns.AutoFit порт, слишком большое соотношение с легитимными па-
With s2.Range("A1:B1") кетами может говорить о том, что какое-то приложение от-
.MergeCells = True
.VerticalAlignment = xlCenter правляет свои пакеты не по адресу. То есть можно предпо-
.HorizontalAlignment = xlCenter ложить, что какое-то приложение пытается выйти в Интер-
.Font.Size=14
End With нет, вопреки корпоративной политике безопасности. Воз-
// в данном цикле производится сбор статистических данных можно, это троян. Большое количество пакетов с ошиб-
f=3 // начинается заполнение с третьей строки
For i = 1 to 5 ками свидетельствует о наличии источника помех в се-
// в данном примере пять итераций, в реальном сценарии ти (например, мощный электроприбор рядом с сетевым
// необходимо намного больше
// каждый элемент для статистики по TCP кабелем). Большое количество пассивных TCP-соедине-
For Each objItem in colItems ний также не слишком хорошо сказывается на пропуск-
// дата и времы занесения записи
s.Cells(f,1)=Now ной способности сети.
s.Cells(f,2)=objItem.ConnectionFailures Таким образом, приведенный WSH-сценарий может ока-
s.Cells(f,3)=objItem.ConnectionsActive
s.Cells(f,4)=objItem.ConnectionsEstablished зать помощь в поиске проблем на указанном хосте.
s.Cells(f,5)=objItem.ConnectionsPassive
s.Cells(f,6)=objItem.ConnectionsReset
s.Cells(f,7)=objItem.SegmentsPersec 1. http://www.mrtg.org – описание и дистрибутив MRTG.
s.Cells(f,8)=objItem.SegmentsReceivedPersec 2. h t t p : / / w w w . s e c u r i t y l a b . r u / s o f t w a r e / d o w n l o a d /
s.Cells(f,9)= ↵
objItem.SegmentsRetransmittedPersec ?page=267148&el=2596383&file=http://download2.paessler.com/
s.Cells(f,10)=objItem.SegmentsSentPersec download/prtg.zip – дистрибутив PRTG.
Next
// каждый элемент для статистики по UDP 3. К. Пакет. Создание сетей удаленного доступа Cisco. Cisco
For Each objItem in colItems1 Press.
s1.Cells(f,1)=Now
s1.Cells(f,2)=objItem.DatagramsNoPortPersec 4. D. Hucaby Building Cisco Multi Switching Networks. Cisco Press.
s1.Cells(f,3)=objItem.DatagramsPersec 5. ht t p : / / w w w.mic rosof t .c om / te c hnet / sc riptc enter/ sc ripts /
s1.Cells(f,4)=objItem.DatagramsReceivedErrors
s1.Cells(f,5)=objItem.DatagramsReceivedPersec default.mspx?mfr=true – коллекция WSH-сценариев для мони-
s1.Cells(f,6)=objItem.DatagramsSentPersec торинга состояния сети.

26
bugtraq

Несколько уязвимостей Несколько уязвимостей в Cisco IPS/IDS


в Cisco IOS VLAN Trunking Protocol Программа: Cisco Guard Appliance (Software Version 3.X),
Программа: проверено на CISCO IOS 12.1(19). Cisco Guard Blade (Software Version 4.X), Cisco Guard Appliance
Опасность: Высокая. (Software Version 5.0(3)), Cisco Guard Appliance (Software
Описание: 1. Удаленный пользователь в локальном сег- Version 5.1(5)).
менте сети может послать специально сформированный Опасность: Средняя.
VTP-пакет 1-й версии с установленным полем VTP-вер- Описание: 1. Уязвимость существует в административном
сии 2 к транк-порту, чтобы перезагрузить целевое устройс- веб-интерфейсе из-за ошибки при обработке SSLv2-паке-
тво с ошибкой «Software Forced Crash Exception». тов. Удаленный пользователь может с помощью специаль-
2. Удаленный пользователь может послать VTP-пакет но сформированного SSLv2 Client Hello-пакета аварийно
с Type-Length-Value-содержащим специально сформиро- завершить работу процесса mainApp, что не позволит бо-
ванное имя VLAN, длиннее 100 символов, к транк-порту, лее принимать запросы на управление приложением, но не
чтобы перезагрузить устройство с ошибкой «Unassigned повлияет на процесс проверки трафика.
Exception». В результате можно выполнить произвольный 2. Уязвимость существует из-за ошибки при обработ-
код на целевом устройстве. ке фрагментированных IP-пакетов. Удаленный пользова-
3. Атакующий может послать VTP updates (summary или тель может послать устройству специально сформирован-
sub) к CISCO IOS или CatOS устройству и выбрать VTP-ре- ную последовательность фрагментированных IP-пакетов
дакцию 0x7FFFFFFF. Когда VLAN-конфигурация измене- и вызвать отказ в обслуживании устройства, запущенного
на оператором, IOS увеличивает редакцию, которая ста- в режимах inline или promiscuous.
нет как 0x80000000 и запишется во внутреннюю перемен- URL производителя: http://www.cisco.com.
ную как целое со знаком. В результате редакция становит- Решение: Установите исправленные версии (4.1(5c),
ся больше, чем самое большое отрицательное значение. 5.0(6p2), 5.1(2)) с сайта производителя.
После этого коммутатор не сможет сообщить измененную
конфигурацию VLAN, так как произведенные обновления Переполнение буфера при обработке
будут отвергнуты всеми другими коммутаторами. некоторых команд в WS_FTP Server
Уязвимы коммутаторы Cisco Catalyst, работающие Программа: WS_FTP Server 5.05, возможно, более ран-
на Cisco IOS с VTP Operating Mode, установленным как ние версии.
«server» или «client». Опасность: Средняя.
Cisco Catalyst-коммутаторы, работающие на Cisco Описание: Уязвимость существует из-за ошибки проверки
CatOS с VTP Operating Mode, установленные как «server» границ данных при обработке аргументов, передаваемых
или «client», уязвимы к третьей уязвимости. командам XCRC, XSHA1 и XMD5. Удаленный пользователь
Коммутаторы с VTP Operating Mode, установленные может с помощью слишком длинного аргумента команды
как «transparent», не уязвимы (это значение по умолча- вызвать переполнение стека и выполнить произвольный
нию). код на целевой системе.
URL производителя: http://www.cisco.com. URL производителя: http://www.ipswitch.com/products/
Решение: Установите соответствующее обновление. ws_ftp-server.
Решение: Установите исправление с сайта производи-
теля.
Обход ограничений безопасности
в Cisco IOS Отказ в обслуживании в ISC BIND
Программа: Cisco IOS 12.2(15)MC2 с установленным обра- Программа: ISC BIND 9.2.x, 9.3.x.
зом MWR1900-I-M, Cisco IAD2430 Integrated Access Device, Опасность: Средняя.
Cisco IAD2431 Integrated Access Device, Cisco IAD2432 Описание: 1. Уязвимость существует при обработке SIG-
Integrated Access Device, Cisco VG224 Analog Phone Gateway, запросов. Удаленный пользователь может аварийно за-
Cisco MWR 1900 Mobile Wireless Edge Router, Cisco MWR 1941 вершить работу рекурсивного сервера, если возвращает-
Mobile Wireless Edge Router. ся более чем один SIG RRset, либо завершить работу до-
Опасность: Высокая. веренного сервера, обслуживающего RFC 2535 DNSSEC-
Описание: Уязвимость существует из-за наличия неиз- зоны, если ответ содержит большое количество SIG RRset-
меняемой community-строки cable-docsis на устройствах записей.
с поддержкой DOCSIS (Data Over Cable Service Interface 2. Уязвимость существует при обработке большого коли-
Specification) интерфейсов. Если на устройстве запущен чества рекурсивных запросов. Злоумышленник может вы-
SNMP-сервис, злоумышленник может получить полный звать ошибку INSIST и вызвать отказ в обслуживании.
контроль над устройством. URL производителя: http://www.isc.org.
URL производителя: http://www.cisco.com. Решение: Установите последнюю версию (BIND 9.3.3rc2,
Решение: Установите исправление с сайта производи- BIND 9.3.2-P1, BIND 9.2.7rc1 или BIND 9.2.6-P1) с сайта про-
теля. изводителя.

Составил Александр Антипов

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


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

Создаем адресную книгу


на базе OpenLDAP

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

Почему OpenLDAP? Бухгалтерия v. 8.1 был полностью ре- Установка и настройка


OpenLDAP – бесплатный сервер катало- ализован на PostgreSQL. Использо- OpenLDAP
гов, который содержится в большинс- вание PostgreSQL в данном приме- Для успешной сборки OpenLDAP уста-
тве дистрибутивов Linux и FreeBSD. ре ярко иллюстрирует часть его воз- новим unixODBC-2.2.11.
Он обладает достаточной функци- можностей.
Структура адресной книги
ональностью и полностью совмес-
Наименование поля
тим с Outlook Express, Mozilla и Mozilla Остальные подробности
Thunderbird. Для управления содержимым сущнос- Имя

тей будет использоваться веб-интер- Фамилия

Почему PostgreSQL? фейс PHPLdapAdmin. Это мощный веб- ФИО (полностью)


PostgreSQL – достаточно известный интерфейс для работы с OpenLDAP. Электронная почта
сервер баз данных. Обладает хоро- Он содержит большое количество Домашний телефон
шим быстродействием, надёжнос- встроенных шаблонов, что упрощает Рабочий телефон
тью и многофункционален. В отли- работу с каталогами. Мобильный телефон
чие от MySQL он поддерживает спе- OpenLDAP осуществляет взаимо- Должность
цификацию ANSI SQL 92, что без осо- действие с PostgreSQL через источ-
Название отдела
бых усилий позволяет перенести ба- ники данных UnixODBC, что позволя-
Название организации (частная компания)
зы данных, написанные на PostgreSQL, ет использовать другие серверы баз
Факс
в такие коммерческие продук ты, данных (MySQL, MSSQL, Oracle и т. д.).
как Oracle и MSSQL, а также облада- Все поля из таблицы будут отобра- Пейджер (ICQ, Yahoo и т. д.)

ет широким набором дополнитель- жаться в таких почтовых клиентах, Домашний адрес

ных возможностей (правила, тригге- как Outlook Express, Mozilla Thunderbird Рабочий адрес
ры, встроенные языки). Продукт 1С и просто Mozilla. Итак, приступим. Почтовый индекс

28
администрирование
Собираем из портов:

# cd /usr/ports/databases/unixODBC
# make && make install

Приступаем к установке самого пакета OpenLDAP:

# cd /usr/ports/databases/openldap23-client
# make && make install
# cd ../openldap23-server
# make WITH_ODBC=YES WITH_ODBC_TYPE=unixodbc
# make install

Приступаем к настройке сервера.


Убедитесь, что после установки на главный конфигу-
рационный файл стоят права владельца на пользователя
ldap. В противном случае задайте права на главный кон-
фигурационный файл:
Рисунок 1. Пример добавления пользователя
# chown ldap:ldap /usr/local/etc/openldap/slapd.conf
 Для доступа к PostgreSQL:
Правим главный конфигурационный файл:
# slappasswd –h {MD5} –s 123456
# mcedit /usr/local/etc/openldap/slapd.conf

# Подключаем необходимые схемы Для того чтобы не переписывать длинный кодирован-


include /usr/local/etc/openldap/schema/core.schema ный пароль, в конце данных команд можно поставить пере-
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/ ↵ направление вывода на конфиг в конец файла (>>/usr/local/
inetorgperson.schema openldap/etc/slapd.conf), а потом отредактировать.
#Указываем путь для файлов pid и args Для запуска, остановки, перезапуска, проверки стату-
са используем команду:
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
# /usr/local/etc/rc.d/slapd.sh start stop restart status
# Определяем порядок доступа к сущностям
# Разрешаем доступ к службе каталогов LDAP только
# авторизированным пользователям Запускаем сервер после установки PostreSQL.
access to *
by users read Для автоматического запуска OpenLDAP при загрузке
by self read правим rc.conf:
by anonymous auth
# Путь к модулю sql
modulepath /usr/local/libexec/openldap # mcedit /etc/rc.conf
moduleload back_sql.so
######################################################### slapd_enable="YES"
# sql database definitions slapd_flags="-u ldap –g ldap –h ldap://192.168.7.1"
#########################################################
# Определяем настройки для соединения с PostgreSQL-сервером
database sql Базовая настройка сервера каталогов закончена.
suffix "o=myorg"
rootdn "cn=root,o=myorg"
rootpw {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ== Установка и настройка PostgreSQL
# Имя источника данных
dbname PostgreSQL PostgreSQL – мощный сервер баз данных, предназначен-
# Имя пользователя для соединения с PostgreSQL ный для бесплатного использования в рамках лицензии
dbuser ldap
# Пароль для данного пользователя BSD. Он входит в состав большинства дистрибутивов Linux
dbpasswd {MD5}4QrcOUm6Wau+VuBX8g+IPg== и FreeBSD.
insentry_stmt "insert into ldap_entries ↵
(id,dn,oc_map_id,parent,keyval) ↵ Собираем PostgreSQL из портов:
values ((select ↵
nextval('ldap_entries_id_seq')),?,?,?,?)" # cd /usr/ports/databases/postgresql80-client
upper_func "upper" # make && make install
strcast_func "text" # cd /usr/ports/databases/postgresql80-server
concat_pattern "?||?" # make && make install
has_ldapinfo_dn_ru no
# При использовании модуля sql-индексы указывать не нужно
# Поиск автоматически можно вести по всем атрибутам,
# используемым в LDAP-дереве Создадим каталог для размещения баз данных с пра-
вами на pgsql:
Для более безопасного хранения пароля его необходи-
мо зашифровать, поэтому для шифрования паролей вы- # cd /var/db
# mkdir pgsql
полните команду: # chmod 700 pgsql && chown pgsql:pgsql pgsql
 для администратора ldap-каталогов: # /usr/local/bin/sudo –u pgsql /usr/local/bin/initdb ↵
–-username=pgsql –-pgdata=/var/db/pgsql

# slappasswd –h {MD5} –s secret Возможно, вам придётся установить утилиту sudo в раз-

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


администрирование
# mcedit /usr/local/etc/odbcinst.ini

[PostgreSQL]
Description = PostgreSQL driver for Linux & Win32
Driver = /usr/local/lib/libodbcpsql.so
Setup = /usr/local/lib/libodbcpsqlS.so
FileUsage = 1

В данном файле мы указываем путь к библиотеке, ко-


торая отвечает за работу с PostgreSQL-сервером.

# mcedit /usr/local/etc/odbc.ini

[PostgreSQL]
Description = Test to Postgres
Driver = PostgreSQL
Trace = Yes
TraceFile = sql.log
Database = ldap
Servername = 127.0.0.1
UserName =
Password =
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =

Рисунок 2. Пример добавления данных о сотруднике


Здесь содержится информация, используемая для до-
деле security общего дерева портов. После установки не за- ступа к PosgreSQL. Имя пользователя и пароль мы указа-
будьте разрешить root запускать команды для пользователя ли в главном конфигурационном файле slapd.conf, поэто-
pgsql. Для этого необходимо отредактировать sudoers: му здесь эти данные можно не указывать

# mcedit /usr/local/etc/sudoers Создание базы данных PostgreSQL


root ALL=(pgsql) ALL хранения сущностей LDAP
Прежде всего необходимо определиться со структурой
Данная строка разрешает root запускать команды для пользо- LDAP-дерева. В корне каталогов будет находиться контей-
вателя pgsql. После создания первичных баз в целях безопас- нер o=myorg, в котором будут содержаться два контейне-
ности данную строку можно закомментировать или удалить. ра. В первом ou=users,o=myorg будет храниться информа-
Для автоматического запуска сервера при загрузке сис- ция о пользователях, которые будут иметь доступ к серве-
темы правим rc.conf: ру каталогов(например, cn=ivan ivanov,ou=users,o=myorg).
Во втором ou=myaddressbook,o=myorg будут храниться за-
# mcedit /etc/rc.conf писи о сотрудниках.
postgresql_enable="YES" Приступаем к созданию баз данных:
postgresql_user="pgsql"
postgresql_data="/var/db/pgsql" # psql –h 127.0.0.1 -d template1 -U pgsql
Далее правим главный конфигурационный файл,
где указываем IP, на котором будет работать сервер: Далее создаём пользователя ldap:

# mcedit /var/db/pgsql/postgresql.conf template1=# CREATE USER ldap WITH SYSID 100 PASSWORD '123456'
NOCREATEDB NOCREATEUSER;
listen_addresses='localhost'
Теперь создадим базу данных для данной адресной
Для версии 7.x необходимо указать: книги:

tcpip_socket = true template1=# CREATE DATABASE ldap WITH OWNER = ↵


virtual_host = '127.0.0.1' ldap ENCODING = 'UNICODE';

Для запуска PostgreSQL выполните команду: В данном случае очень важно использовать коди-
ровку UNICODE, т.к. OpenLDAP будет добавлять дан-
# /usr/local/etc/rc.d/010.pgsql.sh start ные, содержащие русские символы в юникодной коди-
ровке, а не SQL-ASCII. Использование данной кодиров-
ки в базе данных позволит корректно отображать симво-
Настройка UnixODBC лы на русском при непосредственном доступе к таблицам
Для настройки UnixODBC необходимо создать два файла PostgreSQL. Отсоединяемся и создаем таблицы под новым
следующего содержания: пользователем ldap к вновь созданной базе ldap:

30
администрирование
# psql –h 127.0.0.1 –d ldap –U ldap –p 5432 ↵ В браузере заходим на http://192.168.7.1/phpldapadmin/.
–W < /usr/local/scripts/main.sql

Данный SQL-скрипт автоматически создаст таблицы Создание адресной книги


для хранения сущностей. Приступаем к созданию адресной книги. Для автори-
Перезапускаем систему. После авторизации выпол- зации нажимаем «ВХОД». В качестве логина вводим
няем: cn=root,o=myorg, в качестве пароля – secret. Для создания
главного контейнера выбираем «IMPORT», и далее в текс-
# sockstat -4 товом поле «Paste your LDIF here» введите следующее:

На что он должен выдать список всех сервисов, которые dn: o=myorg


objectclass: organization
слушают на IPv.4, среди которых должны быть PostgreSQL o: myorg
и slapd, что свидетельствует об успешно выполненных на-
стройках. Переходим к созданию контейнера, содержащего ин-
формацию о пользователях, которым разрешено пользо-
Установка и настройка PHPLdapAdmin ваться сервером каталогов. Выделите контейнер o=myorg
Доступ к нему осуществляется через сервер Apache. и кликните «Создать потомка». В качестве шаблона выбе-
Для нормальной работы phpldapadmin никаких особых рите «Organisational Unit» и введите название контейнера -
настроек PHP не требуется, нужна только поддержка users. Создадим учётную запись для доступа к серверу ка-
OpenLDAP, поэтому если уже имеется настроенный PHP, талогов. В контейнере ou=users,o=myorg кликните «Создать
то просто добавьте модуль ldap, и этого будет достаточно. потомка» и в качестве шаблона укажите «User Account»,
Собираем PHPLdapAdmin из портов: и заполните данные. В качестве uid можно вводить поряд-
ковый номер пользователя (рис. 1).
# cd /usr/ports/net/phpldapadmin Создадим контейнер для хранения записей о сотруд-
# make && make install
никах. Для этого в контейнере o=myorg создайте контей-
Для запуска Apache выполняем: нер ou=address_book по тому же принципу, что и ou=users.
Для добавления записей о сотрудниках создайте в контей-
# apachectl start нере ou=addressbook,o=myorg потомка, указав в качестве
шаблона Address Book Entry (mozillaOrgPerson). И далее за-
Переходим к настройке PHPLdapAdmin: полняйте данные на русском (рис. 2). После чего нажми-
те «proceed» для создания объекта. Вот таким образом до-
# cd /usr/local/www/phpldapadmin/config бавляются данные. OpenLDAP автоматически размещает
# mv config.php.example config.php
их в SQL-таблицах. С помощью интерактивного клиента
Для подключения к LDAP-серверу имя пользователя pgadmin вы можете посмотреть данные в таблицах.
и пароль мы будем вводить в самом интерфейсе. Хост не-
обходимо указать в данном файле. Настройка Outlook Express
на использование адресной книги
# mcedit config.php Переходим к настройке Outlook Express. Для добавления
$ldapservers->SetValue($i,'server','host','192.168.7.1'); сервера каталогов в меню «Сервис → Учётные записи» вы-
бираем «Добавить → Служба каталогов».
В качестве имени укажите 192.168.7.1.
Потом зайдите в свойства и на вкладке
«Общие» в поле «Учётная запись» введи-
те «Моя адресная книга». Установите гал-
ку «Требуется вход на сервер» в состояние
включено.
В качестве учётной записи введите
cn=ivan ivanov,ou=users,o=myorg и укажите
пароль, который вы вводили при создании
данного пользователя.
Переходим на вкладку «Дополнитель-
но» и в поле «Основа поиска» укажите
ou=myaddressbook,o=myorg.
Теперь можно выполнять поиск в адрес-
ной книге по любым критериям. Кликни-
те кнопку «Адреса», далее «Поиск людей»
и введите критерии поиска.
Пример поиска показан на рис. 3.
Вот и всё в принципе.
Рисунок 3. Пример поиска контактной информации сотрудника в адресной книге Удачи!

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


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

Linux-VServer: настраиваем виртуальные


серверы

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

В
наше время неудержимого про- В этой статье рассматривается с нулевым номером и обладают боль-
гресса информационных техно- технология Linux-VServer (http://linux- шими возможностями, они имеют до-
логий и развития глобальных се- vserver.org). Описываются основные ступ к процессам и данным всех вирту-
тей многим системным администрато- возможности, а также вы найдете инс- альных серверов. В файловой системе
рам приходится сталкиваться с зада- трукции по установке программного главного сервера корни файловых сис-
чами, связанными с созданием ресур- обеспечения, и настройке виртуаль- тем виртуальных серверов расположе-
сов для широкого пользования. С уве- ных серверов. ны в некоторой директории.
личением объема таких ресурсов, на- VPS внутри выглядит как полноцен-
ходящихся в руках одного админист- Основные возможности ная Linux-система. Вы можете предо-
ратора, растет сложность администри- Технология Linux-VServer позволяет со- ставить права root на него и совершен-
рования и, как правило, страдает бе- здавать несколько виртуальных сер- но не бояться, что как-то могут быть
зопасность. Встают вопросы частич- веров (VPS), работающих независи- повреждены другие виртуальные сер-
ного делегирования административ- мо под управлением одного ядра опе- веры или главный сервер. Все серви-
ных полномочий. Техники VPS (Virtual рационной системы. сы, такие как электронная почта, ба-
Private Server) и VDS (Virtual Dedicated Каждый виртуальный сервер свя- зы данных, Web, SSH, могут быть за-
Server) позволяют решать такие за- зан с одним контекстом, в котором вы- пущены без модификаций (или с не-
дачи – задачи «эффективного раз- полняются его процессы. Контекст – которыми минимальными модифика-
деления целого на меньшее». В отли- это окружение, объединяющее группу циями) на виртуальном сервере (спи-
чие от других небезызвестных техно- процессов в системе, и отделяющее их сок программ, с которыми возникают
логий, таких как VMWare и Xen, VPS от процессов, не входящих в этот кон- проблемы, вы можете можете просмот-
предоставляет минимальную виртуа- текст. Имена пользователей и групп, реть здесь: http://wiki.linux-vserver.org/
лизацию. Подробнее различные виды а также их идентификаторы принад- ProblematicPrograms). Каждый VPS мо-
виртуализации описаны здесь: http:// лежат контексту. Процессы главного жет обладать как одним IP-адресом,
en.wikipedia.org/wiki/Virtualization. (корневого) сервера входят в контекст так и несколькими.

32
администрирование
Для виртуального сервера может быть настроено мно- Опции, отвечающие за совместимость со старым управ-
жество параметров и ограничений. Вот наиболее часто ис- ляющим программным обеспечением, и не представляющие
пользуемые из них: в нашем случае никакого интереса. Их надо отключить.
 Место, занимаемое на диске и количество индексных
Linux-VServer -> Show a Legacy Version Number (VSERVER_LEGACY_VERSION=n)
дескрипторов (файлов). Linux-VServer -> Enable Legacy Kernel API (VSERVER_LEGACY=n)
 Объем физической и виртуальной памяти.
 Доля использования мощности процессора и список Следующая опция отвечает за устаревшую поддержку
процессоров, на которых может выполняться VPS. сети в виртуальных серверах, эта поддержка, как написа-
 Максимальное количество процессов, принадлежащих но в документации, нужна:
контексту.
Linux-VServer -> Disable Legacy Networking Kernel API (CONFIG_VSERVER_NGNET=n)

Для каждого VPS могут отслеживаться такие показа- Опция, отвечающая за то, чтобы виртуальные серверы
тели, как: видели только свои процессы (в отличие от главного сер-
 Использованное процессорное время. вера, который может просматривать процессы всех VPS
 Количество совершенных системных вызовов fork (с его (с помощью специальных утилит):
помощью создаются новые процессы).
Linux-VServer -> Enable Proc Security (VSERVER_PROC_SECURE=y)
 Количество полученных и переданных сетевых паке-
тов. Опция, отвечающая за возможность жесткого управле-
ния процессами. Если VPS превысил свой лимит процес-
Программное обеспечение сорной мощности и для него установлено жесткое управ-
 Операционная система GNU/Linux; Linux-ядро 2.6.17 ление, выполнение процессов контекста будет замороже-
(http://kernel.org). но на некоторый промежуток времени (подробнее смотреть
 Linux-VServer Kernel Patches 2.0.21 (http://wiki.linux-vserver. «Ограничение ресурсов»):
org/Downloads).
Linux-VServer -> Enable Hard CPU Limits (VSERVER_HARDCPU=y)
 Linux-VServer Userspace Utilities 0.30.210 (http://wiki.linux-
vserver.org/Downloads). Следующая опция отвечает за ограничение времени
простоя контекста, она позволяет добиться большей интер-
Также потребуется образ, который будет использовать- активности (меньшего времени отклика), но и сильно уве-
ся на VPS. Вот некоторый список архивов, содержащих го- личивает перегрузку, связанную с планированием процес-
товые образы: сов (отправкой их на выполнение). Оставлю выбор на ва-
 http://mirrors.sandino.net/vserver/images; ше усмотрение:
 http://debian.marlow.dk/vserver/guest; Linux-VServer -> Limit The IDLE task (VSERVER_HARDCPU_IDLE)
 http://www.fumanchu.com/vserver;
 http://lylix.net/vps+templates/func,select/id,1; Опция, отвечающая за разделение битов в идентифика-
 http://distfiles.gentoo.org/experimental/x86/vserver; торах пользователя и группы на биты, характеризующие но-
 http://distfiles.gentoo.org/experimental/amd64/vserver. мер контекста, и биты являющиеся идентификатором поль-
зователя внутри VPS. Изменяя эти числа, можно достичь
Отличается такой образ от полноценной Linux-системы разного максимального числа возможных групп и пользо-
обычно измененными скриптами инициализации, а в осо- вателей в системе. Используется это при сохранении при-
бенности – скриптами, направленными на проверку целос- надлежности файла к конкретному VPS в файловой систе-
тности корневой файловой системы и т. п. ме. Рекомендую оставить значение по умолчанию:
Разумеется, никто не отменяет возможности самосто- Linux-VServer -> Persistent Inode Context Tagging -> UID24/GID24 (INOXID_UGID24=y)
ятельного создания образа на основе используемого ва-
ми дистрибутива. Опция отвечает за поддержку встроенного в ядро NFS
демона:
Установка поддержки Linux-VServer Linux-VServer -> Tag NFSD User Auth and Files (XID_TAG_NFSD=n)
в ядре
Скачаем ядро, разархивируем его и добавим патч: После настройки этих опций скомпилируем и устано-
вим ядро, поправим соответствующим образом загрузчик,
# wget http://www.kernel.org/pub/linux/kernel/v2.6 ↵ а потом не забудем перезагрузиться:
/linux-2.6.17.13.tar.bz2
# wget http://ftp.linux-vserver.org/pub/kernel/vs2.0 ↵
/patch-2.6.17.13-vs2.0.2.1.diff.bz2 # make bzImage modules modules_install install
# tar -xjf linux-2.6.17.13.tar.bz2
# bunzip2 patch-2.6.17.13-vs2.0.2.1.diff.bz2
# cd linux-2.6.17.13
# patch -p1 < ../patch-2.6.17.13-vs2.0.2.1.diff
# make menuconfig Устанавливаем программное
обеспечение для управления VPS
После того, как вы примените патч к ядру, в меню кон- Для работы утилит нам понадобится программа vconfig
фигурации появится новая секция «Linux-VServer», ей мы (http://www.candelatech.com/~greear/vlan.html).
и уделим внимание. Скачаем и разархивируем утилиты:

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


администрирование
# wget http://ftp.linux-vserver.org/pub/utils/ ↵ ных серверов обрабатывались корректно, потребуется сде-
util-vserver/util-vserver-0.30.210.tar.bz2
# tar -xjf util-vserver-0.30.210.tar.bz2 лать следующее:
# cd util-vserver-0.30.210
# echo 'kernel.vshelper =/usr/local/vserver/lib ↵
/util-vserver/vshelper' >> /etc/sysctl.conf
Конфигурацию производим следующим образом: # sysctl -p

# ./configure --prefix=/usr/local/vserver ↵ Следующая команда должна вывести информацию


–with-vrootdir=/var/vservers
о версии Linux-VServer API в ядре и версии утилит. Если она
Опция «vrootdir» указывает папку, в которой будут рас- делает это, то установка прошла успешно.
полагаться корни виртуальных фаловых систем.
Компилируем и устанавливаем: # vserver-info

# make
# make install
Создание VPS
Дополним переменные окружения новыми путями Для начала нужен образ VPS. Мы выберем для себя образ
(это лучше прописать, например, в bashrc): на основе Gentoo. Скачаем и распакуем его:

# PATH=$PATH:/usr/local/vserver/sbin # wget http://distfiles.gentoo.org/experimental/x86/ ↵


# MANPATH=$MANPATH:/usr/local/vserver/man vserver/stage3-i686-20060317.tar.bz2
# mkdir /usr/src/stage3-vserver
Настроим файловую систему, в которой будут распо- # tar -xjf stage3-i686-20060317.tar.bz2 -C /usr/src/ ↵
stage3-vserver
лагаться виртуальные серверы (в ней будет находиться # mkdir /usr/src/stage3-vserver/usr/portage
vrootdir, в нашем случае – /var/vservers).
При монтировании нам нужно обязательно указать оп- Если вы используете не Gentoo в качестве дистри-
цию «tagxid»: она включает установку принадлежности фай- бутива для главного сервера, вам понадобится скачать
лов конкретному VPS (см. «Ядро: Linux-VServer -> Persistent и установить дерево портежей (это дерево можно мож-
Inode Context Tagging»). но монтировать к нескольким VPS для совместного ис-
Также, если вы используете reiserfs, вам понадобит- пользования):
ся опция «attrs», включающая поддержку атрибутов фай-
ла (chattr, lsattr) (проверьте, включена ли в ядре опция # wget http://distfiles.gentoo.org/snapshots/ ↵
portage-latest.tar.bz2
REISERFS_FS_XATTR, при использовании reiserfs). # tar -xjf portage-latest.tar.bz2 -C /usr
Монтирование производится следующим образом:
Создадим базовую конфигурацию для нашего ново-
# mount /dev/sda2 /var/ -o tagxid,attrs го VPS:

Или, в случае fstab, это будет строчка вида: # vserver testvps build -m skeleton --context 5 ↵
--initstyle plain

/dev/sda2 /var reiserfs tagxid,attrs 1 1 Рассмотрим параметры команды:


 testvps – имя виртуального сервера.
В этом примере монтирование производится в дирек-  -m skeleton – метод, означающий, что надо создать
торию /var, это не обязательно. только конфигурационные файлы.
После установки поддержки в ядре, установки утилит,  --context 5 – идентификатор контекста.
настройки файловой системы произведем перезагрузку.  --initstyle plain – стиль загрузки (http://oldwiki.linux-
Создаем директорию, в которой будут храниться наши vserver.org/InitStyles).
VPS и устанавливаем для нее флаг «Chroot Barrier» («ба-
рьер смененного корня»). Отвечает этот флаг за то, что ни- После выполнения команды для нового сервера созда-
какой процесс из VPS (контекста) не сможет выбраться на конфигурация в /usr/local/vserver/etc/vservers/testvps, зай-
за этот барьер. дем в эту директорию.
Скопируем файловую систему нашего будущего VPS:
# mkdir /var/vservers
# /usr/local/vserver/sbin/setattr --barrier /var/vservers/ # cp /usr/src/stage3-vserver/* /var/vservers/testvps/ -pPR
Для продолжения понадобится выполнить команду, де-
лающую видимыми для самого сервера некоторые час- Дополним fstab следующим образом:
ти /proc (см. «Ядро: Linux-VServer -> Enable Proc Security»).
Полезно добавить эту команду к скриптам инициализа- # cat >> /usr/local/vserver/etc/vservers/testvps/fstab
ции системы. /usr/portage /usr/portage none bind,ro 0 0
/usr/portage/distfiles /usr/portage/distfiles ↵
none bind,rw 0 0
# /usr/local/vserver/etc/init.d/vprocunhide start
Первая строчка монтирует «дерево портежей» в режи-
Для того чтобы перезагрузка и выключение виртуаль- ме «только чтение», вторая – директорию, содержащую ар-

34
администрирование
хивы исходных файлов, используемые пакетным менедже- # vserver testvps enter
# ifconfig
ром emerge.
Запустим наш новый виртуальный сервер: Выход из консоли VPS осуществляется стандартно: ком-
бинацией клавиш <Ctrl+D> или командой logout.
# vserver testvps start Если по аналогии создать второй виртуальный сер-
вер и присвоить ему IP-адрес из той же сети (например,
Посмотрим информацию о запущенных серверах: 192.168.0.3) серверы смогут осуществлять коммуникации
друг с другом.
# vserver-stat
CTX PROC VSZ RSS userTIME sysTIME UPTIME NAME Архитектурные рекомендации
0 106 1.6G 744.4M 36m41s10 6m39s70 17h45m58 root server
5 1 1.4M 492K 0m00s21 0m00s13 0m00s75 testvps
Наиболее востребованной технология VPS оказалась для
создания хостинговых решений. Большую актуальность
Обратите внимание, что главный сервер представляет- она имеет и в образовательной среде, так как предостав-
ся как VPS с номером 0 и именем «root server». ляет возможность без последствий давать привилегии су-
Для входа в консоль VPS можно использовать следу- перпользователя (root). А как без них обучить админист-
ющую команду: рированию?
Рассмотрим четыре способа организации доступа к вир-
# vserver testvps enter туальным серверам. Некоторые из них могут быть исполь-
зованы для организации публичного (для неограниченной
аудитории) доступа, другие – для групп пользователей ко-
Настройка сети в VPS нечного размера. Выбирая наиболее эффективные вари-
Прежде всего перейдем в каталог с конфигурацией ин- анты доступа в конкретной ситуации и правильно комби-
терфейсов виртуального сервера и создадим директорию нируя их, можно добиться больших гибкости, удобства ис-
для первого интерфейса: пользования и надежности.

# cd /usr/local/vserver/etc/vservers/testvps/interfaces Публичный IP на каждый VPS


# mkdir 0
# cd 0/ Это самый простой вариант для реализации и в то же вре-
мя самый расточительный для адресного пространства IP.
Установим имя устройства, к которому будет присоеди- Заключается он в том, что на каждый VPS выделяется один
нен IP-адрес нашего VPS: (или более) публичный IP. Таким образом, любой сервис, за-
пущенный на VPS и слушающий на каком-то порту, будет
# echo 'eth0' > dev доступен из глобальной сети.

Укажем псевдоним устройства, создаваемого при ини- Приватный IP + Port Forwarding (DNAT)
циализации VPS: Этот вариант очень удобен, когда вы хотите предоставить
доступ к одному или нескольким сервисам, запущенным
# echo 'testvps' > name на VPS, например, для администрирования.
VPS-серверам выделяются IP-адреса из приватного диа-
Настроим IP-адрес и маску сети: пазона некоторой виртуальной сети. Для нужных сервисов
на VPS-серверы пробрасываются порты с публичных IP-ад-
# echo '192.168.0.2' > ip ресов, привязанных к самому серверу. Таким образом, об-
# echo '24' > prefix
ращаясь на один и тот же IP-адрес, например, по портам
Перезагрузим VPS: 21 (FTP) и 80 (HTTP), мы можем в действительности обра-
щаться к разным VPS.
# vserver testvps restart Основным недостатком такой реализации является то,
что она совершенно не пригодна для HTTP-хостинга. Ско-
Для того чтобы посмотреть получившийся результат, рее всего, вас не поймут, если вы предложите одним сво-
воспользуемся командой ip (входит в iproute2: http://linux- им клиентам обращаться к своему сайту по порту 1080,
net.osdl.org/index.php/Iproute2). а другим – по 8080, что простительно в случае с админис-
тративным доступом.
# ip addr | grep 192.168.0.1
Приватный IP + VPN
На экране мы увидим: Так же, как и в предыдущем варианте, VPS назначаются
приватные IP-адреса. В получившуюся приватную сеть ор-
inet 192.168.0.2/24 brd 192.168.0.255 scope global eth0:testvps
ганизовывается VPN-доступ с использованием, например,
Обратите внимание, что полное имя устройства ви- PPTP или OpenVPN, или IPSec.
да <имя>:<псевдоним> не может быть в длину больше 15 Этот вариант может быть использован не для публич-
символов. ного доступа, а для административного или для досту-
В VPS можно увидеть результат: па некоторой небольшой группы людей. Многие VPN-ре-

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


администрирование
ализации предоставляют шифрование: таким образом, # vserver testvps stop
# chxid -c 5 -R /var/vservers/testvps
работая через VPN с сервисами, запущенными на VPS, # vserver testvps start
можно гарантировать некоторый, достаточно высокий,
уровень сохранности данных. В образовательной среде Входим и проверяем:
этот вариант имеет большие преимущества, так как поз-
воляет малыми затратами адресного пространства сде- # df -h
лать многое. /dev/hdv1 5,0G 503M 4,3G 11% /

Приватный IP + HTTP-прокси
На главном сервере или на одном из VPS с публичным IP- Настройка ограничений ресурсов
адресом мы запускаем реверсный HTTP-прокси-сервер, Перейдем в директорию с конфигурацией виртуального
перенаправляющий, в зависимости от доменного име- сервера:
ни, запросы внутрь виртуальной сети на нужные VPS. Та-
ким образом, через 80 порт на одном публичном IP мы мо- # cd /usr/local/vserver/etc/vservers/testvps/
# mkdir rlimits
жем предоставлять HTTP-доступ к сайтам, расположен- # cd rlimits
ным на разных VPS. В качестве реверсного прокси-серве-
ра прекрасно подходит продукт российского производства Существуют следующие ресурсы: cpu, fsize, data, stack,
nginx (http://sysoev.ru). core, rss, nproc, nofile, memlock, as, locks. Более подробно
Этот вариант, к большому сожалению (в силу внутрен- о типах ресурсов можно прочитать в man setrlimit.
него устройства протокола), пригоден только для HTTP. В директории создаются файлы с именами <имя
ресурса>.min, <имя ресурса>.soft, <имя ресурса>.hard,
Настройка ограничений дискового в которых и определяются конкретные ограничения для
пространства ресурсов.
Для настройки перейдем в директорию с конфигурацией В файле /usr/local/vserver/etc/vservers/testvps/flags вы
VPS и создадим там каталог: можете установить флаги, рассмотрим некоторые часто
используемые:
# cd /usr/local/vserver/etc/vservers/testvps/  virt_uptime – показывать внутри VPS время работы вир-
# mkdir dlimits
# mkdir dlimits/0 туального сервера.
# cd dlimits/0  virt_load – показывать индикатор загрузки VPS,
а не главного сервера.
Укажем директорию, для которой мы устанавливаем  sched_hard – указывает планировщику замораживать
ограничения: процесс, если он превысил лимит мощности процессо-
ра.
# echo '/var/vservers/testvps' > directory  sched_prio – указывает планировщику понижать при-
оритет процесса, если он превысил лимит процессора.
Ограничим количество индексных дескрипторов фай-  fork_rss – запрещать системный вызов fork, если пре-
лов: вышен rlimit rss.

# echo '100000' > inodes_total В файле /usr/local/vserver/etc/vservers/schedule вы мо-


жете установить параметры планировщика. Например,
Ограничим пятью гигабайтами место, доступное VPS: для того чтобы VPS выделялось 7/32 (21.9%) каждого про-
цесса, а в случае превышения он приостанавливался на
# echo '5242880' > space_total (200/7)*32=928 так называемых «мгновений» (jiffies), нуж-
но создать файл следующего содержания:
Установим процент от общего размера, резервируемый
для пользователя root. 7
32
500
# echo '5' > reserved 200
1000
string
После этого перезагрузим VPS, войдем в него и посмот-
рим, что получилось: 928 jiffies – это порядка одной секунды, если частота тай-
мера равна 1000 Гц и примерно десять секунд, если час-
# df -h тота равна 100 Гц (частота таймера в конфигурации ядра:
/dev/hdv1 5,0G 0 4,8G 0% / «Processor type and features -> Timer frequency»).
Управление планировщиком находится в стадии разра-
Так как для файлов образа не установлен идентифи- ботки и может измениться.
катор контекста (XID), место на диске, занимаемое ими, Более подробно об этих и многих других настройках вы
не учитывается. Если вы хотите, чтобы и оно учитывалось, можете прочитать в документации на официальном сайте:
можно сделать следующее: http://wiki.linux-vserver.org/VServerConfiguration.

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

Как настроить библиотеку SASL


для совместной работы c Kerberos

Михаил Кондрин
С помощью библиотеки SASL сетевые приложения могут автоматически договориться
об использовании определенного механизма подтверждения идентичности пользователя.
Как осуществить взаимодействие библиотеки SASL c Kerberos?

Общие свойства SASL потребуется приложить определенные тевых протоколов – SMTP, IMAP и/или
Преимущества протокола Kerberos – усилия по анализу используемых про- POP3, их конфиденциальности и за-
сильная криптографическая защи- граммных пакетов и выбору тех из них, щиты от несанкционированного до-
та паролей и данных, единая система что поддерживают Kerberos. ступа. В принципе способов добиться
управления паролями пользователей Любой из вас в своей работе на- решения этой задачи может быть не-
и возможность реализации single sign- верняка сталкивается с протокола- сколько (см., например, [1, 2, 3, 4]), но
on-системы (система единой регист- ми отправки и получения электрон- решение с помощью Kerberos пред-
рации пользователей). Основной не- ной почты. Электронная почта – ста- ставляется мне наиболее простым и
достаток – сложная программная реа- рый и популярный протокол. И именно удобным. Удобство в данном случае
лизация механизма аутентификации. потому, что протокол старый (создан- подразумевает не только простоту ад-
Для того чтобы протокол, точнее, сер- ный в те времена, когда разработчи- министрирования, но и удобство поль-
вис и клиентское приложение, исполь- ки не слишком задумывались о безо- зователей, которые получают единооб-
зовали аутентификацию пользовате- пасности своих продуктов) и популяр- разный способ доступа к протоколам
лей через Kerberos, соответствующий ный (широкий выбор потенциальных чтения и отправки почты на основании
код должен быть реализован как в кли- жертв), электронная почта является своего системного пароля как изнутри,
ентской, так и серверной частях прото- удобной целью для злоумышленников. так и извне локальной сети (в послед-
кола. Поэтому, если вы попытаетесь ор- При этом ваша задача состоит в орга- нем случае есть некоторые оговорки).
ганизовать single sign-on-систему, вам низации безопасности нескольких се- Немаловажным обстоятельством яв-

38
безопасность
ляется и то, что Kerberos – хорошо мас-
штабируемый протокол, который раз-
рабатывался в расчете на огромные
университетские сети.
Ключевой элемент, обеспечиваю-
щий взаимодействие Kerberos и поч-
товых служб, – пакет SASL (Simple
Secure Authentication Layer), разрабо-
танный в Университете Карнеги-Мел-
лон. Помимо реализации от CMU (по-
лучившей название Cyrus-SASL) су-
ществует GNU-версия gsasl [5], разра-
батываемая практически единолично
шведским программистом Джеффсо-
ном. Несмотря на то что gsasl доволь-
но быстро развивается, эта реализа-
ция все еще считается бета-версией
и значительно уступает по надежнос-
ти Cyrus-SASL. Всего университетом
Карнеги-Меллон было выпущено две
реализации библиотеки SASL, разли-
чающиеся между собой по API и фор-
мату хранения пользовательских дан-
ных, хотя и совместимые по протоко-
лу. В настоящее время вторая версия Структура SASL
SASL практически полностью вытесни-
ла первую, и поэтому под SASL я буду раторами, каждый из которых имеет значения принимается решение о про-
понимать именно вторую версию (кото- свой взгляд на политику сетевой бе- должении или остановке цикла аутен-
рую иногда обозначают как SASL2). зопасности. Предположим, что один тификации. Цикл прекращается, когда
Сегодня вы узнаете, как настроить из них сконфигурировал сервис та- возвращаемое значение станет рав-
SASL применительно к использованию ким образом, что тот позволяет ау- ным SASL_OK, что означает успешную
в системе электронной почты, но функ- тентифицировать пользователя че- аутентификацию, или функция вернет
ции SASL гораздо шире, чем просто ин- рез Kerberos5 (условное обозначение сообщение об ошибке, что означает от-
терфейс между почтовыми службами механизма – GSSAPI), с помощью па- каз в аутентификации. Хотя число ша-
и Kerberos. SASL был задуман в качес- роля, закодированного по алгоритму гов, которое требуется для подтверж-
тве своего рода диспетчера, позволя- MD5 (CRAM-MD5), и простого тексто- дения идентичности пользователя, мо-
ющего сетевым клиентам и серверам вого пароля (PLAIN). Если в клиенте жет быть различно для разных меха-
договориться о механизме аутентифи- настроена поддержка какого-нибудь низмов аутентификации, да и спосо-
кации, который клиент должен исполь- из этих механизмов, то SASL позволя- бы ввода пароля (или его отсутствие)
зовать, чтобы подключиться к серве- ет провести аутентификацию посредс- в клиентском приложении могут быть
ру. Более того, библиотека, входящая твом именно этого механизма, причем различными, но сам алгоритм аутен-
в состав SASL, позволяет унифициро- в случае множественного пересечения тификации при этом остается тем же
ванным образом провести эту аутен- будет выбран наиболее сильный. Про- самым.
тификацию независимо от выбранно- граммная реализация выглядит оди- Теперь небольшой обзор возмож-
го механизма. Прозрачность процеду- наково – разработчик должен иници- ностей SASL. Механизмы аутентифи-
ры аутентификации через SASL поз- ализировать библиотеку (c помощью кации, реализованные в Cyrus-SASL,
воляет как клиенту, так и серверу од- функций sasl_client/server_new, ..._init, условно можно разделить на три груп-
новременно поддерживать несколь- ..._start) и затем войти в цикл аутенти- пы (см. рисунок). Первая группа – на-
ко различных типов аутентификации фикации. На каждом шаге цикла про- иболее слабые механизмы – это аутен-
без необходимости программно реа- грамма должна прочитать блок дан- тификация посредством открытых тек-
лизовывать каждый из них – разработ- ных, полученный по сети (реплика кли- стовых паролей PLAIN и LOGIN. Раз-
чик может положиться на библиотеку ента/сервера), и передать его функ- личие между ними только в формате,
SASL, что та выберет наиболее подхо- ции sasl_client/server_step. На выходе в котором имя и пароль пользователя
дящий из набора, предлагаемого кли- функции контролируется возвраща- передаются по сети от клиента к сер-
ентом или сервером. емое значение и один из ссылочных веру. Это очень слабые механизмы
Как это выглядит на практике? Кли- параметров. Ссылочный параметр пе- (слабее них только ANONYMOUS, от-
ент и сервер могут находиться в раз- редается по сети без дополнительной крывающий беспарольный доступ лю-
ных сетях, которые построены и скон- обработки, а возвращаемое значение бому пользователю), поскольку паро-
фигурированы разными админист- анализируется, и в зависимости от его ли могут быть перехвачены злоумыш-

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


безопасность
ленником в момент передачи по сети. рые в терминологии SASL называются цедура сборки программного паке-
Если же вы решите использовать эти методами. Вы должны решить, какой та стандартна – с помощью скрипта
механизмы, то вам нужно озаботиться из методов будете использовать, при- configure проводим предварительную
поиском внешнего способа криптова- чем можно подбирать метод индивиду- настройку программы и компилируем
ния канала передачи, например, с по- ально для каждого приложения. Воз- командами make, make install. Помимо
мощью SSL/TLS. можные варианты: собственная база обычных опций (например, --prefix=/usr,
Вторая группа механизмов – это ме- данных SASL (sasldb2), база данных означающий, что программа будет ус-
ханизмы с общим ключом: CRAM-MD5, LDAP, внешняя SQL-совместимая ба- тановлены в каталог /usr) configure
DIGEST-MD5 и несколько особняком за данных, системные файлы с иденти- имеет еще большое число парамет-
стоящим от них механизмом одноразо- фикационной информацией о пользо- ров, которые позволяют гибко настра-
вых паролей – OTP. Слабость механиз- вателях (/etc/passwd, /etc/shadow), ис- ивать Cyrus-SASL. Разберем неко-
мов CRAM-MD5 и DIGEST-MD5 состо- пользование инфраструктуры PAM или торые из этих параметров. В первую
ит в том, что хотя пароли и передаются Kerberos. В последнем случае не нужно очередь нас интересуют --with-gssapi
по сети в зашифрованном виде, но они путать Kerberos как метод с механиз- и --with-gss_impl=heimdal, которые
могут быть перехвачены и взломаны мами GSSAPI и KERBEROS_V4. При- вк лючают под держк у механизма
offline с помощью простого перебора. менение этого метода позволяет ис- GSSAPI и указывают, какая реализа-
С другой стороны, при использовании пользовать базу данных Kerberos как ция Kerberos будет использована для
этих механизмов требуется наличие хранилище паролей без необходимос- этого. Так же, как и в статье [7], пред-
незашифрованных паролей на почто- ти развертывания всей инфраструк- полагаем, что в системе установле-
вом сервере, где их безопасность бы- туры Kerberos. Выбор метода во мно- ны библиотеки и заголовочные фай-
вает сложно гарантировать. Метод од- гом определяет набор доступных ме- лы Heimdal Kerberos, хотя возможно
норазовых паролей в этом смысле бо- ханизмов – бесполезно объявлять ме- применение и более распространнен-
лее безопасен. Идея этого метода со- ханизм GSSAPI как поддерживаемый ной версии Kerberos от MIT. Другие
стоит в создании последовательнос- приложением, если единственный до- механизмы SASL можно также вклю-
ти легко запоминающихся фраз, сге- ступный для него метод – это систем- чить (или выключить) при конфигура-
нерированных из одного секретного ные файлы. Библиотека SASL может ции, например:
пароля. Этот список хранится на сер- использовать методы либо напрямую,
вере и время от времени пополняется. либо через своего «агента» – демо- --enable-login \
--enable-ntpl \
Для подключения к серверу пользо- на saslauthd, с которым библиотека --disable-otp \
ватель использует очередную фразу SASL общается через именованный --disable-anon \
из сгенерированного списка как свой сокет. Использование агента бывает
пароль, после чего эта фраза из спис- необходимо для согласования прав LOGIN и NTPL используются мно-
ка вычеркивается, и для следующе- доступа – сетевое приложение мо- гими старыми почтовыми программа-
го подключения должна быть исполь- жет быть запущено от непривилеги- ми от Microsoft, и их поддержку бывает
зована следующая в списке. Понят- рованного системного пользователя, полезно включить в Cyrus-SASL. Меха-
но, что перехват пароля ничего не да- а для аутентификации, к примеру, че- низм ANONYMOUS для почтовых про-
ет злоумышленнику, хотя по-прежне- рез системные файлы нужен доступ грамм скорее вреден, OTP – на ваше
му остается опасность, что злоумыш- на чтение /etc/shadow, что при разум- усмотрение. Если вы решите исполь-
ленник сумеет завладеть всем спис- ной установке возможно только для зовать OTP, имейте в виду, что Cyrus-
ком одноразовых паролей, хранящим- root. Однако можно запустить сервис SASL может либо использовать свою
ся на сервере. saslauthd с привилегированными пра- собственную версию OTP, либо уже
И наконец, последняя группа – меха- вами, тем самым открывая ему доступ установленные библиотеки OPIE (One
низмы, использующие Kerberos (GSSAPI к /etc/shadow и при этом не компроме- Time Passwords in Everything [8], соот-
и KERBEROS_V4). KERBEROS_V4 при- тируя безопасность системы, посколь- ветствующий параметр компиляции
меняется для аутентификации по ста- ку непосредственный доступ к это- --with-opie). Хотя heimdal имеет свою
рому, не очень надежному, но тем не му сервису из сети невозможен. Ре- встроенную реализацию OTP, но у ме-
менее все еще используемому прото- зультат процедуры аутентификации ня не получилось заставить Cyrus-SASL
колу Kerberos4, а GSSAPI следует по- saslauthd сообщает сервису через име- использовать именно эту библиотеку.
нимать как синоним Kerberos5, более нованный сокет права на доступ, к ко- Под держка метода SASLDB
современной версии Kerberos. Нас бу- торому могут быть более либеральны, (или auxprop) обязательна для Cyrus-
дет интересовать в основном этот пос- чем к /etc/shadow. SASL, хотя в нашем случае она и не
ледний механизм. нужна. Другие методы можно выклю-
Как уже говорилось ранее, вы- Установка библиотеки чить с помощью параметров:
бор механизма определяется проце- SASL
дурой «автоподстройки», происходя- После этого небольшого обзора SASL --enable-ldapdb=no
--enable-sql=no
щей по сети между клиентской и сер- можно приступить к установке и тес-
верной программами. Помимо разных тированию самой библиотеки Cyrus- Можно также отключить агента
механизмов SASL предлагает различ- SASL. Исходный код доступен на сай- saslauthd (опция --with-saslauthd=no),
ные способы хранения паролей, кото- те CMU (или на его зеркалах) [6]. Про- но мы это делать не будем.

40
безопасность
SASLDB по умолчанию требует в качестве DB-движка После того как все эти условия выполнены, можно на-
Berkley DB [9]. С этим связана одна небольшая проблема. чать тестирование SASL. Вначале, войдя как root на одном
Так же, как и SASL, многие программы, такие как heimdal, из терминалов, запускаем серверную часть:
Postfix и Cyrus-IMAP, используют Berkley DB для хранения
своих собственных данных, например, псевдонимов поль- $./server -p 3001 -s host -m GSSAPI
зователей в Postfix. Многие дистрибутивы Linux включа-
ют в себя несколько версий Berkley DB (от 2-й до 4-й), при- Опция -p задает порт, который будет прослушивать сер-
чём эти версии несовместимы между собой, и линковка вер. Имя сервиса определяется с помощью опции -s host,
какой-нибудь программы с разными версиями Berkley-DB причем необходимо указать только первую часть имени при-
ни к чему хорошему не приведёт. К примеру, если попы- нципала, к которой затем автоматически добавляются имя
таться скомпилировать SASL с 4-й версией, в то время как компьютера и имя сектора Kerberos. Можно выбрать любо-
heimdal, используемый SASL, слинкован с 3-й, то в резуль- го другого принципала, отличного от host/kdc.myrealm.ru,
тате библиотека SASL будет неработоспособна. Грубо гово- лишь бы его ключ присутствовал в keytab-файле. Список
ря, динамический загрузчик просто не разберётся, из какой- доступных механизмов определяется опцией -m, здесь мы
именно библиотеки вызывать функцию, если она присутс- ограничиваемся только GSSAPI-механизмом.
твует в обеих библиотеках. При конфигурации по умолча- Затем на другом терминале запускаете клиентскую
нию интересующих нас программ автоматически выбира- часть. В первую очередь получим супербилет (TGT) для ря-
ется самая новая версия BerkleyDB, которую удалось найти дового пользователя (kinit mike) и от имени этого же поль-
в системе. В то же время могут возникнуть проблемы сов- зователя запускаем клиента:
местимости Cyrus-SASL и почтового сервера Postfix, кото-
рый не поддерживает 4 версию BDB. Поэтому следует ог- ./client -p 3001 -s host -m GSSAPI kdc.myrealm.ru
раничиться только третьей версией и на время сборки про- receiving capability list... recv: {6}
грамм деинсталлировать BerkleyDB4 (если она присутству- GSSAPI
GSSAPI
ет у вас в системе), или, по крайней мере, удалить ее заго- please enter an authorization id: mike
ловочные файлы. У меня все упомянутые выше програм- ...
successful authentication
мы были скомпилированы с BerkleyDB-3.3. closing connection

Взаимодействие с Kerberos Все ключи означают то же самое, что и в случае сер-


через GSSAPI вера; последняя опция – это имя компьютера, к которому
После сборки и установки Cyrus-SASL можно прове- производится подключение. В процессе программа клиент
рить его работоспособность и взаимодействие с Kerberos потребует ввести авторизационный идентификатор, т.е. имя
с помощью тестовых программ client и server из папки пользователя, который должен быть аутентифицирован.
cyrus-sasl-*/sample. Если они не скомпилировались вмес- Ввести нужно имя того принципала, для которого получен
те с библиотекой, то можно компилировать их и позже, вы- супербилет. После непродолжительного обмена закодиро-
полнив make в папке sample. ванными сообшениями (в листинге они опущены) в обеих
Разумеется, для проверки взаимодействия с Kerberos терминалах должно появиться сообщение об успешной ау-
у вас должен быть настроен сектор Kerberos. Как это сде- тентификации. Если же появилось сообщение об ошибке,
лать, описано в статье [7]. Поскольку в данном случае я хо- следует проверить, записан ли ключ принципала-сервиса
чу продемонстрировать вам лишь принципы работы паке- в keytab-файле и правильно ли происходит преобразова-
та Cyrus-SASL с Kerberos, будет достаточно, если ваш сек- ние имени компьютера в его адрес и наоборот. Просмотр
тор Kerberos будет состоять только из одного компьюте- логов контроллера Kerberos (/var/log/krb5kdc.log) также по-
ра. Это также на начальном этапе значительно упростит может в поиске неисправностей.
отладку. Так же, как и в статье [7], предполагаем, что сек-
тор Kerberos называется MYREALM.RU, а машина, на кото- Проверка простых текстовых паролей
рой мы разворачиваем «песочницу», является также кон- в Kerberos
троллером Kerberos и называется kdc.myrealm.ru. Чтобы Теперь протестируем взаимодействие клиента и сервера при
не подвергать систему риску в процессе экспериментов аутентификации с помощью простых текстовых паролей, но
с Kerberos и почтой, желательно использовать фиктивный так, чтобы пароль пользователя всё равно проверялся по ба-
сетевой интерфейс: зам данных Kerberos. Этот механизм требует использования
демона saslauthd, который должен попытаться получить су-
/sbin/ifconfig dummy0 192.168.10.1 netmask 255.255.255.0 up пербилет от KDC, используя имя и пароль пользователя. Ес-
echo ``192.168.10.1 kdc.myrealm.ru'' >> /etc/hosts ли супербилет получен, то идентичность пользователя под-
hostname kdc.myrealm.ru тверждена. Следует понимать, что это не лучший способ
использования Kerberos. Помимо риска перехвата паролей
Будем также считать, что в Kerberos уже созданы (а в случае паролей Kerberos ставки очень высоки) сама про-
принципалы, соответствующие машине host/kdc.myreal. цедура генерации TGT для каждого подключения к сетевым
ru@MYREALM.RU и пользователю mike@MYREALM.RU, службам достаточно ресурсоемка. Разработчики Kerberos
а ключ принципала host/kdc.myrealm.ru записан в keytab-файл и не рассчитывали на такой режим его работы, эта идея
(/etc/krb5.keytab). целиком на совести разработчиков SASL. Заметьте также,

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


безопасность
что saslauthd не имеет собственного принципала в Kerberos, В отличие от предыдущего случая вам требуется ввес-
а сам пытается выступать от лица пользователя. ти не только свой идентификатор, но и пароль – разумеет-
Перед запуском saslauthd нужно создать его рабочий ся, тот же самый, что и для команды kinit. Если всё же сер-
каталог и выставить права доступа к нему. Как уже гово- вер вас не аутентифицировал, следует посмотреть на тер-
рилось, эти права достаточно мягкие. минал, где запущен saslauthd, и проверить, есть ли там со-
общения об ошибках. Если же там не появилось вообще
chown -R root.kerberos /var/state/saslauthd/ никаких новых сообщений, то скорее всего сервер не мо-
chmod -R 755 /var/state/saslauthd/
жет найти именованный сокет для соединения с saslauthd
Теперь в ещё одном терминале запустим saslauthd: или права доступа к этому сокету слишком строгие.

/usr/sbin/saslauthd -a kerberos5 -d Заключение


На этом настройку SASL можно считать завершенной
С помощью ключа -a выбирается метод аутентифика- и можно приступать к подключению этой библиотеки к се-
ции, а ключ -d нужен только для отладки, чтобы все сообще- тевым службам. Несмотря на простоту разработки и про-
ния от saslauthd выводились на терминал, а не в log-файл. граммирования, SASL используется не слишком широко.
Как минимум, результатом работы этой программы будет Главным образом это связано с довольно поздними появ-
создание именованного сокета /var/state/saslauthd/mux. лением спецификации SASL (вторая половина 90-х), ког-
Следующим шагом нужно объяснить библиотеке SASL, да большинство популярных сетевых протоколов уже име-
что проверка паролей происходит опосредованно, через ло свой собственный механизм идентификации пользова-
взаимодействие с saslauthd, причем эту настройку можно телей. Поэтому SASL используется либо в протоколах, где
выполнить индивидуально для каждой из сетевых служб. существовавшая на тот момент защита была признана не-
При инициализации серверной части библиотеки SASL достаточной, либо в новых протоколах.
(функция sasl_server_init) один из параметров – это так на- К первой категории можно отнести протоколы электрон-
зываемое имя приложения. Оно может отличаться от насто- ной почты и LDAP. Поддержка SASL включена в такие по-
ящего имени исполняемого файла и используется библиоте- пулярные продукты, как Sendmail, Postfix, Cyrus-IMAP (на-
кой для поиска файла настроек в каталоге /usr/lib/sasl2. Тес-
стройка последних двух программ будет рассмотрена в сле-
товый сервер выступает под именем «sample», так что нам дующей статье). Протокол мгновенного обмена сообщени-
понадобится файл /usr/lib/sasl2/sample.conf такого вида: ями jabber [10] – это пример нового протокола, где SASL ис-
пользуется как на стороне сервера, так и поддерживается
pwcheck_method:saslauthd некоторыми клиентами (например, tkabber [11] собранный
mech_list:gssapi plain
с библиотекой tcl SASL [12]). Интерес представляет также
Нас в данном случае интересуют только два парамет- использование SASL для аутентификации пользователей
ра – pwcheck_method и mech_list, а полный список пара- сервера баз данных MySQL. Хотя эта поддержка не вклю-
метров вы можете посмотреть в документации cyrus-sasl чена в основную ветку, но в Интернете можно найти патчи
(doc/options.html). В этом конфигурационном файле ука- для 4 и 5 версий MySQL [13, 14].
зано, что помимо механизма GSSAPI разрешено исполь- Таким образом, соответствующая настройка библиоте-
зовать также незашифрованные пароли (PLAIN) и их про- ки SASL позволяет интегрировать эти продукты в систему
верка будет осуществляться агентом saslauthd. В конечном единой регистрации пользователей Kerberos.
итоге выбор механизма аутентификации всегда остается
за клиентом, сервер может только ограничить этот выбор, 1. Бешков А. Почтовая система для среднего и малого офиса.
сообщив клиенту список поддерживаемых механизмов //Системный администратор, №5, 2003 г. – С. 46-54.
(GSSAPI и PLAIN в данном случае). Понятно, что исключе- 2. Мозговой А. Smtp auth in da postfix + ... //Системный админис-
ние из mech_list механизма plain равносильно запрету ис- тратор, №10, 2003 г. – С. 26-28.
пользования простых текстовых паролей для данного при- 3. Литвиненко Е. Настраиваем основные компоненты почтового
ложения. Хотя в этом и есть свой резон, но пока в наши сервера. //Системный администратор, №9, 2005 г. – С. 48-51.
планы это не входит. 4. Шергин Д. Ус тановка IMAP4 - сервера на базе Cyrus-
Теперь перезапустим server. Команда практически та же imapd+Sendmail. //Системный Администратор, №10, 2003 г. –
самая, что и использованная ранее, только без ключа -m. С. 10-15.
В этом случае список механизмов будет взят из файла 5. http://www.gnu.org/software/gsasl.
/usr/lib/sasl2/sample.conf. Но при новом запуске клиента мы 6. ftp://ftp.andrew.cmu.edu/pub/cyrus-mail.
теперь должны указать механизм PLAIN: 7. Кондрин М. Развертываем Heimdal Kerberos. //Системный ад-
министратор, №7, 2005 г. – С. 26-31.
./client -p 3001 -s host -m PLAIN kdc.myrealm.ru 8. http://www.inner.net/opie.
receiving capability list... recv: {6} 9. http://www.sleepycat.com/products/bdb.html.
GSSAPI PLAIN 10. http://www.jabber.org/software/jabberd2x.shtml.
PLAIN 11. http://tkabber.jabber.ru/en/.
please enter an authorization id: mike
... 12. http://beepcore-tcl.sourceforge.net/tclsasl.html.
successful authentication 13. http://rc.vintela.com/topics/labs/mysql.
closing connection 14. ftp://hppidc.hppi.troitsk.ru/mysql-sasl-patch.tgz.

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

Защищаем корпоративную почту


с SecExMail Gate

Cергей Яремчук
Сегодня электронная почта – центральное звено в системе обмена информацией благодаря
скорости доставки и простоте в использовании. Обеспечить защиту электронной переписки –
задача любого администратора.

Н
е секрет, что электронную почту го, что важная информация будет от- ся исключительно открытые стандар-
можно перехватить, – достаточ- правлена незашифрованной. ты. На рабочих местах никакого допол-
но установить сниффер и затем В журнале уже рассматривал- нительного программного обеспече-
спокойно читать всю проходящую ин- ся вариант построения защищенной ния не требуется. При этом SecExMail
формацию. Низкий уровень компью- почтовой системы на основе Tiger Gate довольно легко интегрирует-
терной грамотности некоторых пользо- Envelopes [1], в SecExMail Gate приме- ся в существующую инфраструктуру.
вателей только упрощает этот процесс. нен аналогичный принцип. После установки сервера на компью-
Можно, конечно, заставить пользова- терах клиентов потребуется лишь за-
телей самостоятельно зашифровы- Как работает дать новые параметры, указав в на-
вать перед отправкой всю корреспон- SecExMail Gate стройках в качестве SMTP/POP3-сер-
денцию (большинство почтовых клиен- SecExMail Gate – почтовый прокси- вера SecExMail Gate. На самом же
тов умеют делать это автоматически), сервер, который подключается меж- SecExMail Gate необходимо пропи-
но сразу же станет вопрос об управле- ду почтовым клиентом и SMTP/POP3- сать данные корпоративного почтово-
нии ключами. Кроме того, пользова- сервером, и в реальном времени шиф- го сервера. Хотя в некоторых случаях,
тель должен будет запоминать порядок рует все проходящие через него элек- чтобы не бегать по этажам, наверное
отправки сообщений различным кор- тронные сообщения, обеспечивая кон- проще на место почтового сервера
респондентам, возможность напутать фиденциальность корпоративной поч- поставить SecExMail Gate, а старому
здесь все-таки довольно велика. Всег- ты, передаваемой по незащищенным серверу дать новый адрес (не забыв
да будет существовать вероятность то- сетям. Для шифрования используют- поменять настройки DNS). Пользо-

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


безопасность
пользуется при генерировании сеан- ем SSL (Secure Socket Layer) или TLS
сового одноразового ключа, который (Transport Layer Security).
и используется при шифровании со- На сайте проекта можно загрузить
общения. Два сообщения никогда не полнофункциональную версию про-
шифруются одинаковыми ключами. дукта, которая без регистрации бу-
Индивидуальные сообщения кодиру- дет работать в течение 30 дней. Сто-
ются с использованием 256-битного имость лицензии зависит от количес-
блочного шифра Twofish, совместно тва пользователей. Так SecEx Mail
с 64-битным генератором случайных Corporate для 20 пользователей обой-
чисел ISAAC. дется в 949 $, а для 500 – 14995 $.
Рисунок 1. Выбор размера ключа При шифровании сообщение про- Для работы сервера SecExMail Gate
ходит несколько этапов: потребуется компьютер, работающий
 Полученное сообщение анали- под управлением Windows от 95 до XP,
зируется, проверяется информа- имеющий 5,5 Мб свободного места на
ция, записанная в SMTP-заголов- жестком диске. Системные требова-
ке письма и тело сообщения. Сер- ния которого напрямую зависят от ко-
вер SecExMail Gate использует эту личества передаваемых и принима-
информацию для получения досту- емых сообщений. В качестве ориен-
па к почтовому серверу и в случае тировки лучше посмотреть нагрузку
положительного ответа продолжа- своего почтового сервера.
ет дальнейшую обработку получен-
ного сообщения. Установка и создание
 Сообщение, как правило, содер- ключей
жит часть известной информации, Установка SecExMail Gate стандартна
Рисунок 2. Настройки параметров
SMTP-шлюза приветствие, визитная карточка от- для Windows, вы просто запускаете ис-
правителя, поэтому во избежание полняемый файл и нажимаете «Next».
ватели не заметят этих перестановок возможности проведения PlainText На предпоследнем шаге, выбрав «Set
и будут работать с почтой как обычно. Attack сообщение сжимается с ис- service to start boot», разрешите авто-
Но внутри системы многое в работе пользованием алгоритма ZLIB. матический запуск сервера SecExMail
почты изменилось. Ключ, введенный  Сжатый поток также имеет инфор- Gate при загрузке системы. После за-
для конкретного корреспондента, за- мацию, позволяющую криптоана- вершения установки первым делом
ставит SecExMail Gate автоматичес- литикам установить характер сооб- необходимо сгенерировать ключи.
ки зашифровать сообщение, от поль- щения, поэтому первые 64 бита со- В меню «Пуск» выбираем «SecExMail
зователя никаких дополнительных общения дополнительно складыва- Gate» и «SecEx KeyGenerator», в по-
указаний не потребуется. Но это еще ются (XOR) со случайным текстом явившемся окне персональные дан-
не все. Анализируя заголовки сооб- (One-Time Pads), обеспечивая его ные (имя и почтовый адрес), и на сле-
щений, злоумышленник может всег- уникальность. дующем этапе размер ключа (рис. 1),
да определить характер письма и тип  Сжатая информация складывается внизу будет показано приблизитель-
MIME, все это может оказаться хоро- с 64-битным потоком случайных чи- ное время, необходимое для генери-
шим подспорьем для криптоаналити- сел ISAAC. рования ключа выбранного размера.
ков, которые попытаются раскодиро-  Полученный поток данных коди- Далее вводим пароль, и в следующем
вать сообщение. Например, если один руется 256-битным Twofish, в нем окне несколько раз щелкаем мышкой
и тот же текст или файл будет пере- используется режим chained block в любом месте белого поля, чтобы ути-
дан разным корреспондентам, мож- mode, в котором ключ, использу- лита сгенерировала случайное число.
но попытаться реализовать так на- емый при шифровании текущего По окончании генерирования публич-
зываемую атаку по открытому тексту блока текста, зависит от предыду- ного и секретного ключей вас попросят
(PlainText Attack), когда по известно- щего блока. ввести пароль, после чего созданный
му тексту вычисляется ключ. Поэтому  Информация преобразуется в тип ключ появится во вкладке «Keys» ок-
SecExMail Gate шифрует тему сообще- base64 и передается MTA. на настройки сервера SecExMail Gate.
ний и все заголовки, позволяющие ус- Для создания SSL-сертификатов, под-
тановить характер передаваемой ин- В обычном режиме логин и па- тверждающих подлинность, исполь-
формации, поэтому криптоанализ пе- роль передаются в открытом виде, зуется другая утилита Generate SSL
рехваченного письма очень затруд- что не препятствует их возможному Certificate Request, расположенная там
нен. SecExMail Gate использует алго- перехвату. Что делать, если пользо- же. При создании своего сертификата
ритм RSA с 2048, 4096 и 8192 ключа- ватель вынужден работать по неза- вам также придется ввести информа-
ми, хотя в корпоративной версии воз- щищенному каналу, например из до- цию об организации, которая исполь-
можно использование размера клю- ма. В качестве дополнительных уров- зует сервер SecExMail Gate (название,
чей вплоть до 10240. Открытый ключ, ней защиты возможна работа по за- имя сервера, город, страна) и размер
ассоциированный с получателем, ис- щищенному каналу с использовани- ключа. По окончании создания серти-

44
безопасность
фиката будет выдано сообщение, в ко- рианта работы SecExMail Gate. Ина-
тором указано имя файла ключа и сер- че сообщение дальше SecExMail Gate
тификата (они сохраняются в каталог, не пройдет, почтовый сервер не смо-
в который установлен сервер). Орга- жет зарегистрироваться, чтобы пере-
низации, купившие лицензию, могут дать или принять сообщение. После
подписать в Bytefusion Ltd. созданный внесения изменений на вкладке на-
сертификат, отослав файл по адресу жимаем «Apply» для записи измене-
support@bytefusion.com. ний и перезапуска сервера.
Теперь все готово для настройки Вкладка «Service» предназначе-
сервера SecExMail Gate. на для управления работой сервиса
SecExMail Gate. Здесь можно просмот-
Настройка и запуск реть статус работы, остановить и за-
Рисунок 3. Настройка параметров
SecExMail Gate пустить сервер, включить журнали- защищенного POP3-соединения
Программа настройки SecExMail Gate рование событий и подключение кли-
проста и понятна, зная все необходи- ентов. Для получения более подроб- Соответствие между пользователь-
мые для работы параметры, весь про- ной информации включите флажок скими почтовыми адресами и группа-
цесс не займет более 5 минут. Для на- «Verbose». Журнал работы сервера со- ми задается во вкладке «Groups». За-
стройки SMTP-туннеля заходим в од- храняется в текстовый файл, просмот- писи, в которой имеют приблизитель-
ноименную вкладку и устанавливаем реть записанную в него информацию но такой вид:
флажок «Enable SMTP Relay» (рис. 2). можно во вкладке «Events». Для каж-
Слева в области «E-Mail Client» изме- дого клиента в подкаталоге client-logs info@test.com administrations
support@test.com administrations
няем при необходимости номер пор- создается свой текстовый файл, в ко- sales@test.com sales
та для входящей почты (по умолча- торый заносятся все связанные с ним fedja@test.com sales
нию 25), а справа указываем порт, имя события. В имени файла использован
или IP-адрес почтового сервера, кото- IP-адрес, с которого зашел клиент, Для удобства хранения и обра-
рому будут перенаправляться сообще- например 127_0_0_1.txt. Во вкладке ботки вся информация хранится
ния после зашифровки. Теперь пере- «Clients Log» можно просмотреть все в «comma separated values» в фай-
ходим во вкладку «POP3», и аналогич- эти файлы. ле groupkes.csv. После внесения из-
ным образом настраиваем параметры Д л я х ран е н и я к л юч е в ы х д ан - менений напрямую в файл необходи-
транзита входящих сообщений. В на- ных в зависимости от назначения мо зайти в эту вкладку и нажать кноп-
стройках почтовых клиентов указыва- используются различные вкладки. ку «Re-read groups file», чтобы инфор-
ем новые параметры, установив в ка- Так, во вкладке «Keys» прописывают- мация стала доступна SecExMail Gate.
честве сервера приема передачи со- ся публичные и закрытые ключи, при- Для работы указанной схемы должны
общений SecExMail Gate. надлежащие внутренним пользовате- быть созданы ключи, соответствую-
Защищенные с помощью SSL POP3 лям компании. Для создания нового щие адресам administrations@test.com
и SMTP-соединения настраиваются ключа необходимо нажать «New key», и sales@test.com. И наконец публичные
в других вкладках. Но в начале не- после чего появится знакомый SecEx ключи всех корреспондентов хранятся
обходимо указать на файлы серти- KeyGenerator. Из этого же окна можно во вкладке «Friends».
фикатов и ключей, сгенерированных экспортировать или импортировать Для генерирования случайных чи-
ранее с помощью утилиты Generate любой ключ. сел SecExMail Gate использует инфор-
SSL Certificate Request. Переходим В SecExMail Gate предусмотрены мацию, взятую из системных процес-
во вкладку «SSL», в поле «SSL/TSL три вида ключей, что позволяет наибо- сов, файлов в системных и временных
Tunables» выбираем параметры тун- лее оптимально распределять ключе- каталогах. Все возможные настройки
неля (TSL v.1, SSL v.2 или 3), и мини- вую информацию: доступны на вкладке «Entropy».
мальный размер шифра (Min.Cipher  Wildcard keys – представляют об- SecExMail Gate является простым
Bits). И, наконец, в «Certificate File» щий ключ без привязки к опреде- и в то же время весьма эффективным
и «Private Key File» указываем создан- ленному почтовому адресу, то есть инструментом, позволяющим быст-
ный сертификат и ключ. После чего сообщение, зашифрованное с его ро наладить обмен зашифрованными
потребуется перезапустить сервер. Те- помощью, может предназначаться почтовыми сообщениями. Для поль-
перь переходим во вкладку «SMTPS» любому пользователю компании, зователей его применение будет про-
и прописываем параметры защищен- почтовый адрес которого заранее зрачным, а удобство при работе с клю-
ного соединения, указав номер порта, не устанавливается. чами заметно упрощает его админис-
отличный от используемого во вклад-  Personal keys – этот ключ уже при- трирование.
ках «SMTP» и «POP3» (по умолчанию вязан к определенному почтовому
стоят стандартные 465 и 995). Учтите, адресу и предназначен для индиви- 1. Яремчук С. Защищенная почтовая сис-
что если основной почтовый сервер дуального обмена сообщениями. тема с Tiger Envelopes. //Системный ад-
также использует защищенное соеди-  Department keys – ключ ассоции- министратор, № 6, 2005 г. – C. 61-63.
нение, то для работы с ним возможно рован с отделом или группой поль- 2. Cайт By tefusion Ltd. – http://w w w.
применение только защищенного ва- зователей. bytefusion.com.

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


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

Растущая угроза:
руткиты Win32

Артем Баранов
Для хакеров и вирусописателей во все времена был актуален вопрос, как сделать работающий
код, файл на диске или раздел реестра невидимым для программ, работающих в системе.
Решение этого вопроса пришло из мира UNIX и называется rootkit.

П
од руткитом понимается техно- шить проблему, если будете понимать, ют на нулевом кольце или на уровне
логия, используя которую, мож- как устроены руткиты, для чего они ядра NT.
но скрыть в системе что угод- нужны, с помощью чего можно их уда-
но, в том числе работающий процесс, лять и как это делать вручную. В статье Руткиты
файл на диске, раздел реестра. При- рассмотрены руткиты для Windows NT пользовательского
меняя такую технологию, хакер мо- 5 (Windows 2000, 2003 Server, XP). режима
жет скрыть раздел в реестре, куда за- В Windows существует два вида Руткиты пользовательского режима
писался бэкдор или работающий кли- руткитов, различных в схеме работы легче в реализации, чем руткиты ре-
ентский модуль трояна. С появлением и устройстве. Первые, руткиты поль- жима ядра. Первые в свою очередь
такой технологии в Windows у адми- зовательского режима, функциони- можно разбить на две группы. К одной
нистраторов начались головные боли. руют на третьем кольце х86. Вторые, относятся руткиты, которые являются
Вы сможете гораздо эффективнее ре- руткиты режима ядра, функциониру- троянскими программами и заменяют

46
безопасность
настоящие приложения. Например, ес-
ли для отображения процессов исполь-
зуется tlist.exe из Resource Kit, то мож-
но написать свою tlist.exe, например с
использованием Psapi или библиотеки
Tool Help, скрывающую имя конкрет-
ного процесса и подменить ею насто-
ящую tlist.exe. Недостаток такого под-
хода очевиден. Кому захочется зано-
во написать диспетчер задач Windows
для скрытия определенного процесса.
Второй тип руткитов 3-го кольца отли-
чается от первого техникой реализа-
ции. Руткиты, относящиеся ко второму
типу, используют общий принцип фун-
кционирования, именуемый перехва-
том API-вызовов. Он был описан Дж.
Рихтером в его монографии «Windows
для профессионалов» и М. Питреком
«Секреты системного программирова-
ния в Windows 95». Этот тип также мо-
жет быть разбит на два. К первому сле-
дует отнести руткиты, перехватываю-
щие вызовы DLL подсистемы окруже-
ния Win32 (Kernel32, Advapi32, User32,
Gdi32). Ко второму типу относятся рут-
киты, перехватывающие недокумен-
тированные «родные» API (Native API) Этапы обработки API в Win32 и места внедрения руткитов
в Ntdll.dll. Напрашивается вопрос, за-
чем перехватывать недокументиро- керы уже давно дизассемблировали По сути, руткиты режима ядра пред-
ванные API, если можно перехватить код Kernel32.dll и Ntdll.dll и опубликова- ставляют собой драйверы, загружен-
«обычные». Дело в том, что некоторые ли свои соображения на этот счет. Во- ные в период работы Windows. Меха-
стандартные программы Microsoft, на- вторых, перехват API-вызовов на уров- низм перехвата API-вызовов на уровне
пример диспетчер задач (task manager), не Ntdll.dll дает некоторые существен- ядра впервые был предложен М. Рус-
для получения статистики используют ные преимущества. Дело в том, что все синовичем и Б. Когсвелом, авторами
не обычные API, а недокументирован- библиотеки, получающие информацию sysinternals.com. Он базируется на под-
ные. Тот же диспетчер задач использу- о процессах, типа Psapi, обращаются мене адресов в таблице диспетчериза-
ет для получения списка процессов не в конечном счете к одной точке входа ции системных сервисов на свои обра-
что-то вроде Psapi, а функцию NtQuery в Ntdll.dll, которая предоставляет неис- ботчики, например, на адреса функций
SystemInformation, которая хоть и доку- черпаемую системную информацию – драйвера. Перед тем, как менять адре-
ментирована в последних SDK, но да- NtQuerySystemInformation. са, руткит сохраняет настоящие адре-
леко не полностью. Изучая лишь SDK са системных сервисов в своем буфе-
по этой функции, можно долго недо- Руткиты режима ядра ре. Когда ядро обрабатывает систем-
умевать, как диспетчер задач получает Руткиты режима ядра, как уже упо- ный сервис, это приводит к актива-
с помощью нее информацию о процес- миналось, функционируют на уровне ции не настоящей функции, а троянс-
сах. Полное описание этой функции ядра NT и более сложны в реализа- кой (т.е. функции драйвера), та в свою
вы можете увидеть в книге Г. Неббе- ции. В их основу положен тот же ме- очередь вызывает настоящий сервис
та «Справочник по базовым функциям ханизм перехвата API-вызовов, но уже по сохраненному адресу и фильтрует
API Windows NT/2000». Очевидный не- на уровне ядра. С использованием та- результат. Основное преимущество та-
достаток такого руткита заключается в ких руткитов можно модифицировать ких руткитов в том, что они независи-
том, что он реализован с использова- как само ядро, так и объекты ядра. Учи- мы от процессов, а точнее от их вирту-
нием структур, которые могут быть из- тывая, что устройство объектов ядра альных адресных пространств. Теперь
менены в следующей версии Windows. является полностью недокументиро- о недостатках руткитов режима ядра.
По вышесказанному следует сделать ванным, можно смело сказать, что да- Как известно, разработка кода режи-
несколько замечаний. Во-первых, рут- леко не каждый профессионал в Win32 ма ядра сама по себе довольно слож-
киты для Windows распространяют- может разработать такой руткит. Хоро- на и налагает определенные ограни-
ся очень быстро. Поэтому говорить о шей отправной точкой в этом послужит чения. Одна малейшая ошибка в ко-
том, что что-то является недокумен- книга С. Шрайбера «Недокументиро- де, например появление жучка или не-
тированным, бессмысленно, т. к. ха- ванные возможности Windows 2000». обработанного исключения, повлечет

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


безопасность
крах всей системы. Кроме того, раз- виса в Win32. Изображен поток, пи- мы. Кроме того, эта история имела пе-
работка такого руткита очень сложна, шущий данные в файл, и два руткита: чальные последствия. Как известно,
требует понимания устройства и рабо- 3-го и 0-го кольца. Также изображены после появления руткита Sony в Интер-
ты самой системы. возможные точки проникновения рут- нет был выпущен backdoor, использую-
Хотя руткиты пользовательского китов. Что касается руткита пользова- щий этот руткит для сокрытия своего
режима могут воздействовать только тельского режима, то он может внед- кода на диске. В скандале вокруг Sony
на процесс, для которого они предна- ряться тремя способами: BMG участвовал Руссинович, который
значены, существуют методы, позво- 1. Внедрение в работающий процесс указал, что Symantec и Kaspersky Lаb
ляющие руткиту работать «глобаль- путем модификации таблицы им- используют в своих продуктах техно-
но». Например, руткит может пора- порта в образе EXE-файла. Так пе- логии, близкие к rootkit. Например, ан-
жать вновь создаваемые процессы. рехватываются вызовы DLL, кото- тивирус Касперского использует тех-
Как только система создаст новый про- рые связаны неявно с EXE-фай- нологию iStreams. Технология позво-
цесс, руткит сможет узнать об этом, ис- лом. ляет уменьшить время сканирования
пользуя системный сервис для пере- 2. Модификация первых слов пере- за счет создания в файлах на NTFS-то-
числения процессов. Затем руткиту хватываемой функции на инструк- мах дополнительных потоков для хра-
нужно остановить все потоки в новом цию jmp, в DLL подсистемы Win32. нения контрольных сумм. Так как эта
процессе и попытаться модифициро- Если DLL связывается с процессом информация важна для работы антиви-
вать таблицу импорта или переписать явно (в периоде выполнения). руса, он скрывает эти потоки, что очень
первые байты перехватываемой функ- 3. Модификация первых слов пере- похоже на rootkit-технологию.
ции. Другой способ заключается в сле- хватываемой функции на инструк- Руткиты, по сути, являются расту-
дующем. В реестре существует раздел цию jmp в Ntdll.dll. Аналогично вто- щей угрозой, т. к. количество их неук-
HKEY_LOCAL_MACHINE\SOFTWARE\ рому. лонно растет. Хакеры и вирусописа-
Microsoft\Windows NT\CurrentVersion\ тели используют их для скрытия ко-
Windows с параметром AppInit_DLLs. Руткит 0-го кольца внедряется пу- да и файлов в системе. Администра-
Система автоматически загружает тем перезаписи адреса в таблице дис- торы должны своевременно их обна-
DLL, указанные в этом параметре. петчеризации системных сервисов. руживать.
Руткиты режима ядра не являют- Помимо перехвата API-вызовов Если в системе предположительно
ся «полноценными» драйверами ус- можно использовать стандартные воз- живет руткит пользовательского ре-
тройств, т.к. никакими устройствами можности режима ядра, которые при- жима, скрывающий что-либо, то мож-
они не управляют. Но все же драйвера- меняют антивирусы. Например, драй- но написать программу, получающую
ми называться могут. Об этом говорят вер фильтра файловой системы, поз- информацию аналогично той, кото-
Руссинович и Соломон в книге «Inside воляющий просматривать обращения рую скрывает инфицированная рут-
Windows NT», что драйверы пишут не к файловой системе и модифициро- китом программа, и сравнить резуль-
для управления устройствами, а толь- вать их. В Windows XP появилась воз- таты, полученные ими. Если руткит
ко для внедрения кода, функциониру- можность регистрировать функции сидит на уровне ядра, то можно вос-
ющего в режиме ядра. Аналогичный драйвера у диспетчера конфигурации пользоваться средством, разработан-
подход использует программа Русси- для перехвата сервисов реестра и их ным Руссиновичем, – RootkitRevealer
новича Regmon (Registry Monitor), кото- возможной модификации. для удаления руткита. Скачать можно
рая отображает обращения к систем- В Windows процесс должен иметь с www.sysinternals.com.
ному реестру. Она запускает драйвер права на загрузку драйвера в систему. Ресурсов и книг, посвященных теме
во время своего выполнения, тот по- То есть процесс должен иметь в марке- руткитов немного. Вообще же эта тема
лучает доступ к таблице диспетчери- ре доступа активированную привиле- охватывает многие аспекты системно-
зации системных сервисов и модифи- гию SeLoadDriver или иметь право ее го программирования для Win32. На се-
цирует ее на свои обработчики. Затем, активировать в маркере доступа. годняшний день существует единствен-
когда какой-то процесс вызывает сер- Владея технологией rootkits, адми- ная книга, пока не выпущенная на рус-
вис реестра, управление получает ус- нистратор может, используя специаль- ском языке – Hoglund, Butler «Rootkits.
тановленная ловушка, которая в свою ное ПО, своевременно выявлять рут- Subverting the Windows Kernel». Сущест-
очередь вызывает настоящий сервис киты и удалять их из системы, а так- вует также ресурс, посвященный рут-
реестра, запоминает возвращенные же использовать их в мирных целях, китам – www.rootkit.com. На нем разме-
данные в буфере, а затем приложе- скрывая необходимые данные от поль- щено достаточно информации о рут-
ние забирает их по IOCTL и выводит. зователей. Хотя использование rootkit- китах, в том числе выложен исходный
(Подробности см. в книге Руссинови- технологий – это палка о двух концах. код некоторых из них. Также там мож-
ча, Соломона «Внутреннее устройс- Еще не утихли страсти вокруг сканда- но найти наиболее функциональный
тво Microsoft Windows: Windows XP, ла с Sony BMG, которая использова- на сегодняшний день руткит – Hacker
Windows 2003 Server, Windows XP».) ла свой руткит в мирных целях, скры- Defender. И конечно, всем известный
Чтобы наглядно представить се- вая свои программные DRM-компонен- сайт по продвинутому системному ПО
бе вышеприведенную информацию, ты. Но руткит Sony способствует очень для Windows – www.sysinternals.com,
на рис. 1 показаны этапы диспетче- частому появлению BSOD (Blue Screen где Руссинович рассматривает техно-
ризации (обработки) системного сер- Of Death) и замедлению работы систе- логию руткитов.

48
bugtraq

Межсайтовый скриптинг и раскрытие Обход аутентификации


данных в Webmin/Usermin в Citrix Access Gateway
Программа: Webmin, версии до 1.296; Usermin, версии Программа: Citrix Access Gateway 4.2.
до 1.226. Опасность: Высокая.
Опасность: Средняя. Описание: Уязвимость существует из-за неизвестной
Описание: 1. Уязвимость существует из-за недостаточной ошибки при обработке LDAP-аутентификации при вклю-
обработки входных данных в URL. Удаленный пользователь ченной опции Advanced Access Control (AAC). Удаленный
может с помощью специально сформированного запроса пользователь может обойти процесс аутентификации и по-
выполнить произвольный код сценария в браузере жертвы лучить доступ к системе.
в контексте безопасности уязвимого сайта. URL производителя: http://www.citrix.com.
2. Уязвимость существует из-за недостаточной обработ- Решение: Установите исправление с сайта производите-
ки входных данных в URL. Удаленный пользователь может с ля.
помощью специально сформированного запроса просмот-
реть исходный код CGI- и Perl-сценариев на системе. Множественные уязвимости в gzip
URL производителя: http://www.webmin.com. Программа: gzip 1.3.5, возможно, более ранние версии.
Решение: Установите исправление с сайта производите- Опасность: Средняя.
ля. Описание: 1. Уязвимость существует из-за ошибки разы-
менования нулевого указателя в функции huft_build(). Уда-
Межсайтовый скриптинг в RssReader ленный пользователь может с помощью специально сфор-
Программа: RssReader 1.0.88.0, возможно более ранние мированного архива вызвать отказ в обслуживании при-
версии. ложения.
Опасность: Средняя. 2. Уязвимость существует из-за ошибки индекса масси-
Описание: Уязвимость позволяет удаленному пользова- ва в функции make_table в файле unlzh.c при обработке LZH-
телю произвести XSS-нападение. Уязвимость существует архивов. Удаленный пользователь может с помощью специ-
из-за недостаточной проверки данных при обработке Atom- ально сформированного архива вызвать переполнение бу-
и RSS-каналов. Удаленный пользователь может с помощью фера и выполнить произвольный код на целевой системе.
специально сформированного Atom-канала выполнить про- 3. Переполнение буфера существует в функции
извольный код сценария в приложении. build_tree в файле unpack.c. Удаленный пользователь мо-
URL производителя: http://www.rssreader.com. жет с помощью специально сформированной таблицы за-
Решение: В настоящее время способов устранения уязви- писать отрицательное значение индекса и выполнить про-
мости не существует. извольный код на целевой системе.
4. Переполнение буфера обнаружено в функции
Переполнение буфера make_table в компоненте LHZ. Удаленный пользователь
в TFTP Server TFTPDWIN может создать специально сформированную таблицу де-
Программа: TFTP Server TFTPDWIN 0.4.2, возможно, бо- кодирования архива и выполнить произвольный код на це-
лее ранние версии. левой системе.
Опасность: Средняя. 5. Уязвимость существует в файле unlzh.c в компоненте
Описание: Уязвимость существует из-за ошибки проверки LHZ. Злоумышленник может с помощью специально сфор-
границ данных в файле tftpd.exe во время обработки запро- мированного архива вызвать зацикливание приложения
шенных ресурсов. Удаленный пользователь может запро- и потребить все доступные ресурсы на системе.
сить ресурс длиной более 280 байт, вызвать переполнение URL производителя: http://www.gzip.org.
стека и выполнить произвольный код на целевой системе. Решение: Установите исправленную версию от произво-
URL производителя: http://www.prosysinfo.com.pl/tftpserver. дителя.
Решение: В настоящее время способов устранения уязви-
мости не существует. Переполнение буфера в avast!
Программа: avast! 4.7.869 for desktops, avast! 4.7.660 for
Переполнение буфера в WS_FTP LE servers.
Программа: WS_FTP LE 5.08, возможно, более ранние Опасность: Высокая.
версии. Описание: Уязвимость существует из-за ошибки провер-
Опасность: Средняя. ки границ данных при обработке LHA-архивов. Удаленный
Описание: Уязвимость существует из-за ошибки провер- пользователь может с помощью специально сформирован-
ки входных данных при обработке ответов команды PASV. ного LHA-архива вызвать переполнение динамической па-
Злоумышленник может обманом заставить пользователя мяти и выполнить произвольный код на целевой системе.
подключиться к злонамеренному серверу и выполнить про- URL производителя: http://www.avast.com.
извольный код на системе пользователя. Решение: Установите исправленную версию с сайта про-
URL производителя: http://www.ipswitch.com. изводителя.
Решение: В настоящее время способов устранения уязви-
мости не существует. Составил Александр Антипов

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


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

Защитить ваш компьютер


поможет Browser Sentinel

Cергей Яремчук
Все больше специалистов сходятся во мнении, что антивирусные программы – это, скорее,
инструмент управления антивирусным риском, чем решение, предназначенное для защиты.

К
сожалению, методы обнаруже- с Browser Sentinel [2] разработки UnH зовано вредоносной программой, что-
ния, основанные на знаниях, Solutions. бы обеспечить себе дальнейшую жиз-
не всегда справляются со сво- недеятельность. В случае возникнове-
ими обязанностями. В случае появле- Назначение Browser ния подозрительной активности поль-
ния нового вируса, либо неизвестной Sentinel зователь будет оповещен. И при необ-
реализации атаки, они уже не в состо- Программа предназначена для наблю- ходимости любой элемент может быть
янии защитить систему. В большинс- дения за уязвимыми зонами компью- остановлен или удален. Кроме этого,
тве случаев вирус или другую вредную тера, которые часто подвергаются на- есть возможность произвести деталь-
программу можно обнаружить, контро- падениям со стороны различного типа ный анализ всех запущенных процес-
лируя уязвимые элементы операци- вредоносных программ, предоставляя сов, программ, элементов управления
онной системы и целостность систем- пользователю полный контроль над ни- ActiveX, драйверов и других модулей,
ных файлов. Вероятно, поэтому сегод- ми. А таких чувствительных к зараже- с выдачей подробной информации и со-
ня активно продвигаются такие реше- нию зон в системе не мало. Здесь пла- зданием разнообразных отчетов. Для
ния, не требующие каждодневного об- гины Browser Helper Object и различ- удобства Browser Sentinel содержит
новления баз и позволяющие с доста- ные элементы Internet Explorer, эле- небольшую встроенную базу данных
точно большой вероятностью обнару- менты автозапуска программы, служ- по элементам, которые поставляются
жить вирусы, которые не зарегистри- бы, драйверы, модули, расширения вместе с Windows и являются ее час-
рованы в сигнатурных базах. В жур- оболочки, протоколы, файл hosts, пос- тью, и не более. Пользователь для уп-
нале уже рассказывалось о некото- тавщики многоуровневых услуг и про- рощения анализа ситуации может уб-
рых из них [1], сегодня познакомимся чее. То есть все, что может быть исполь- рать все известные программе компо-

50
безопасность
ненты, чтобы они не мешали. Хотя пос- Работа с Browser Sentinel
ле обновления системы или установки Установка Browser Sentinel стандартна
некоторых драйверов системные про- для Windows, в процессе можно будет
граммы могут попасть в категорию не- выбрать один из режимов:
известных, поэтому до конца полагать-  профессионала – под наблюдением
ся на выводимую информацию по сис- находятся все зоны, каждый новый Рисунок 2. Сообщение, появляющееся
темным элементам не стоит. элемент требует подтверждения; после установки Browser Sentinel
Так как программа не использует  новичка – не наблюдаются следую-
никаких других баз, и ее действия но- щие зоны: службы, драйвера, про- кто и когда запустил, ключ реестра, ста-
сят скорее информационный характер, токолы, LPS и файл hosts. Измене- тус и некоторые другие параметры.
то всё решение о легитимности той или ния в загруженных модулях и мо- Для каждого такого элемента мож-
иной программы лежит на пользовате- дулях автозапуска принимаются но выполнить два действия: выключить
ле. Поэтому разработчики ориентиру- автоматически. В дальнейшем ре- и удалить. В любом случае перед уда-
ют свой продукт именно на подготов- жим работы можно сменить. Также лением желательно вначале отклю-
ленного пользователя, который сможет следует помнить, что все сторонние чать, в этом случае запись переносит-
разобраться в многочисленных воп- программы, имевшиеся на компью- ся во временное хранилище, из кото-
росах, задаваемых этой программой тере на момент установки Browser рого ее всегда можно будет восстано-
в процессе работы. Иначе в случае не- Sentinel, принимаются автомати- вить. Если система и программы пос-
правильного редактирования парамет- чески (рис. 2). Рекомендуется про- ле этого работают нормально, то за-
ров возможна блокировка системы, что смотреть все вкладки и убедиться, тем этот элемент можно смело уда-
в некоторых случаях исправить можно что все элементы безопасны. лять. В этом случае стирается вся ин-
только полной ее переустановкой. формация, без возможности восста-
Актуальной на момент написания По щелчку на изображении щи- новления. Некоторые программы мо-
статьи являлась версия 2.1.1. Browser та в системной панели появляет- гут генерировать большое количест-
Sentinel работает на компьютерах с ус- ся главное окно программы (рис. 1). во событий, которые могут отвлекать.
тановленной Windows 98/ME/2000/XP/ Для удобства охраняемые зоны поде- Для удобства некоторые программы,
Server 2003. Имеет русский и английс- лены на две группы. Первая контроли- имеющие меньшую вероятность стать
кий интерфейсы. рует все, что связано с Internet Explorer. источником неприятностей, можно за-
Именно к настройкам этой зоны допу- нести в доверенную зону. После этого
Лицензия щен пользователь в режиме, предна- Browser Sentinel не будет показывать
Программа распространяется как значенном для новичка, так в случае предупреждения для таких элементов.
Shareware, при этом пользователю ошибки максимум, что придется сде- И наоборот, действия отдельных при-
предоставляется для тестирования лать, это переустановить приложение. ложений всегда требуют отрицатель-
на 30 дней полноценная версия про- Вторая зона защищает систему. Все ного ответа и удаления нового эле-
граммы. Стоимость регистрации 350 настройки в эту зону должны вносить- мента. Для удобства их можно занес-
руб. Если почитать лицензию, то узна- ся с большой осторожностью. Выбрав ти в список запрещенных, и операция
ем, что можно использовать зарегис- элемент, можно просмотреть подроб- удаления или отключения будет про-
трированную версию на всех компью- ную информацию о нем: имя, описа- изводиться автоматически без выдачи
терах, которыми владеет купивший ее ние, файл, версия, размер, контрольная предупредительного сообщения.
пользователь. сумма (MD5, CRC32), время создания, Информация поражается не виру-
сом, а выполненным им действием. По-
этому, отслеживая потенциально опас-
ные точки системы, можно с большой
долей вероятности обнаружить лю-
бую программу, которая тайком пыта-
ется запуститься на компьютере. Ути-
литы вроде Browser Sentinel, несмотря
на кажущуюся простоту, позволяют ос-
тановить большую часть таких вредо-
носных программ и тем самым защи-
тить компьютер от неизвестных виру-
сов и других malware.

1. Яремчук С. Проактивные системы за-


щиты, или Есть ли жизнь без антиви-
руса?//Системный администратор, №7,
2005 г. – C. 9-13.
2. Cайт проекта – http://browsersentinel.
Рисунок 1. Главное окно программы com/ru.

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


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

Головоломка, ведущая по жизни


Игоря Данилова

Виртуальное путешествие по Петербургу и биографии легендарного создателя


антивируса Dr.Web.

К
ак и многие москвичи, я люблю ставка, я не могу отделаться от ощу- Летний сад
Питер. Как и многие москвичи, щения, что где-то за дверью – Невский Вы, конечно, помните, строки Анны
я считаю его мистическим горо- проспект, Эрмитаж, стрелка Васильев- Ахматовой:
дом. Как и многие москвичи, я радуюсь, ского острова. И чего сидеть в четырех Я к розам хочу, в тот единственный сад,
когда встречаю петербуржца. Почему? стенах – лучше пойти погулять. Только Где лучшая в мире стоит из оград,
Трудно объяснить. Как любой здра- тогда и беседы не получится, нас пог- Где статуи помнят меня молодой,
вомыслящий житель города на Неве, лотит блеск града Петрова… А я их под невскою помню водой.
Игорь Данилов, легендарный Dr. Web, Но я п о с л у ш н о во з в ращ аю с ь
на мои восторги улыбнулся. «Мы все на землю, в Москву, и задаю Иго- Какой турист не хочет «посетить»
время живем в этом городе, конеч- рю свои вопросы. Однако надеюсь, Летний сад, на статуи полюбоваться?
но, не всегда видим эту красоту… Вот, что мой собеседник простит мне та- Но какое слово ужасное – «посетить»,
гости недавно приезжали, с ними вы- кую вольность и позволит совершить бр-р-р… В один из первых своих визи-
брались, погуляли». Конечно, он прав. с ним виртуальную прогулку по Пе- тов в Петербург я специально ждала мо-
Но почему-то все время, пока мы раз- тербургу. Прогулку с человеком, кото- мента, когда экскурсии закончатся, на-
говариваем, несмотря на то, что бесе- рый родился и вырос в Северной сто- ступит вечер, благо ночи были белые,
да происходит в самом сердце Мос- лице и потому ассоциируется у меня и пошла в одиночку искать заветный сад.
квы и вокруг шумит столичная IT-вы- именно с ней. Увы, в ту ночь он не пожелал впустить

52
человек номера
меня за «лучшую в мире ограду», хотя я
усердно искала и спрашивала прохожих.
Мы встретились через много лет…
Эта история, рассказанная Игорю
Данилову, вызвала у него удивление:
«Вы спрашивали? И вам не помогли?
Обычно у нас бабушки не только под-
скажут, где, но и проводят, покажут».
Летний сад… У него удивительная
судьба! Созданный по велению Пет-
ра Первого в 1704 году лучшими мас-
терами садово-паркового искусства,
при жизни императора он был блестя-
щей парадной резиденцией. При Анне
Иоанновне превратился в звериный за-
Слева направо: ведущая рубрики Оксана Родионова, «Доктор Веб» Игорь Данилов,
гон. В XIX веке это уже городской сад Марина Хромова – PR-менеджер компании
«для прилично одетой публики». После
революции – музей. Сразу после Ленин- да Безымянным ериком, но в связи им видом виновато показывая: «Я вам
градской блокады школьники и учителя с устройством в саду фонтанов, пе- не помешаю, только не гоните…»
выращивали здесь овощи… И всегда – реименованная. Помню, зайдя как-то Дети Игоря Данилова к высоким
любимое место для отдыха. по делу в один из офисов, располо- технологиям не приобщились. Если
Не подумайте, что я собираюсь женных на Фонтанке, я по-хорошему у самого Игоря явно сработали гены –
сравнивать судьбы сада и человека. позавидовала сидящим там людям – мама и сейчас работает учителем ма-
Но все же параллель напрашивается смотришь в окошко на воду, на мос- тематики в одной из петербургских
сама собой. Летний сад всегда остает- ты, на Фонтанный дом на другом бе- школ, – то любовь к точным наукам сы-
ся самим собой, каким бы не было его регу… Веселее как-то работать, по- ну и дочери не передалась. Хотя жена
название и облик. Игорь Данилов всег- моему. «Да ведь вода, – скажите вы, – Игоря, тоже, между прочим, матема-
да оставался самим собой, пробуя се- наверняка грязная. Что тут весело- тик. Сын Иннокентий учится в универ-
бя в разных профессиях и ипостасях. го?». Грязная. И дома вдоль набереж- ситете на биологическом факультете,
После школы он твердо знал, где хо- ной обшарпанные, в копоти иногда. дочь Ольга перешла в 11-й класс и то-
чет учиться дальше. Собрал чемодан, Что делать? Это не портит Петербург, же не собирается идти по родитель-
сел в поезд и уехал в Волгоград, в Ка- на мой взгляд. Правда, Игорь Данилов ским стопам. Да и невозможно было
чинское высшее военное авиацион- со мной не согласен: «Мне неприятно. передать, считает Игорь. Заложенное
ное училище летчиков. Родители это- Я очень переживаю, особенно в начале природой нельзя изменить, сколько
му выбору не препятствовали. А поче- зимы, когда вся эта грязь видна, у ме- не пытайся. «Воспитание большой ро-
му именно в летное? Игорь не роман- ня депрессивное настроение. Хочет- ли не играет. Оно, конечно, имеет ог-
тик, но считает, что так распорядились ся, чтобы было как в Хельсинки, Сток- ромное значение, но не решающее».
высшие силы – Бог, Судьба… В конце гольме. Белый город, без грязи, без со- Еще одно убеждение Игоря Данило-
концов он закончил Ленинградский ин- ли. У нас, к сожалению, этого не умеют, ва – преподавателем в школе должен
ститут авиационного приборостроения не хотят. К 300-летию отремонтирова- быть обязательно мужчина, «потому
(ныне Санкт-Петербургский государс- ли хотя бы центр. Я тут вышел на набе- что он может научить детей логичес-
твенный университет аэрокосмическо- режную и удивился: ничего себе, ока- ки мыслить, дать основы мышления».
го приборостроения), стал инженером- зывается, вот что у нас есть». Взгляд консервативный, но вполне
радиотехником. И это тоже судьба так Но вернемся к Фонтанному дому. объяснимый. И мне близкий. Уж слиш-
решила. А уж приобщение к сфере IT Удивительное место. Снаружи это дво- ком женственны нынче мужчины и му-
было явно судьбоносным. «Появились рец, шедевр русского барокко. А внут- жественны женщины…
персональные компьютеры, некому бы- ри еще интереснее. В музее Анны Ах- Я спросила Игоря Данилова, как от-
ло на них работать. Я как-то случайно матовой есть мемориальная часть, воз- носятся к его популярности сын и дочь.
попал за компьютер, и меня захватило вращающая квартире Пуниных – Ахма- Он спокойно ответил: «У меня такие же
эта сфера деятельности», – объясняет товой облик 1920-1940-х годов, и лите- проблемы с детьми, как у всех, это ни-
Данилов. Однако Игорь Данилов, раз- ратурно-историческая. Они нисколько коим образом не влияет на мои взаи-
рабатывающий антивирус, и школьник не мешают друг другу. А уже если экс- моотношения с ними». Однако борцу
Игорь, выбирающий профессию, – один курсовод попадется хороший, хожде- с антивирусами приятно, что его дети
и тот же человек. Любитель математи- ние по ахматовскому музею превраща- учились по учебникам, в которых напи-
ки, кроссвордов, головоломок, логики. ется в праздник. Мне повезло попасть сано про их папу, Доктора Веба.
в Фонтанный дом вместе с группой
Фонтанка школьников. Их вел учитель, историк, Мойка
Около Летнего сада из Невы вытека- и так его было интересно слушать, что О будущем информационных техноло-
ет Фонтанка, речка, бывшая неког- я присоединилась к ребятам, всем сво- гий у Игоря Данилова довольно мрач-

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


человек номера
которые появятся завтра, послезавт-
ра, наверное, более интересная зада-
ча. Мне так кажется». – «Получается
вы угадываете мысли тех, кто созда-
ет вирусы?» – «Пытаемся».
Тут я в последний раз попыталась
перевести нашу беседу в романтичес-
кое русло: «Почему вы создаете ан-
тивирусные программы? Не ощуща-
ете себя рыцарем, который спасает
человечество?». Но моя идея потер-
пела крах: «Нет, все гораздо проза-
ичнее. В конце 80-х годов, когда поя-
вились вирусы, мы работали в «ящи-
ке», в НИИ, и просто-напросто с эти-
ми вирусами надо было как-то бороть-
ся, потому что существующие антиви-
русы не всегда помогали. Мне это ста-
Вокруг шумит столичная IT-выставка ло интересно. Покопался, увидел вирус,
один, второй, понял, как можно сделать
ное представление: «Черное. Термина- кой и закуской на газетке. Картина са- защиту от следующего вируса. Понача-
тор 4». Говорит он серьезно или шутит, мая мирная, но совершенно не соот- лу это было хобби – находить вирусы
понять невозможно. Кажется, не шу- ветствующая моему пушкинскому на- и обезвреживать. Потихоньку стал де-
тит, объясняет: «Уровень настолько строению… В другой раз я была на эк- лать программы, которые позволяют
низкий стал, количество ошибок, ко- скурсии по этой последней квартире защищать от будущих модификаций
личество дыр, высокая степень уяз- Александра Сергеевича. Экскурсовод этих вирусов. Меня привлекла голо-
вимости настолько впечатляют, что уже довела нас до кабинета, где Пуш- воломка, которую надо было решить».
понимаешь: чем дальше, тем хуже бу- кин умирал, где произнес последние Вот она, головоломка, логическая за-
дет. Пока компьютер был калькулято- слова: «Жизнь кончена. Теснит дыха- дача, которая, похоже, ведет по жизни
ром, все было нормально, как только ние…». И вдруг в открытые окна вор- Игоря Данилова. Заниматься любимым
ему стали доверять серьезные процес- вался зычный голос: «Прогулка по Не- делом, да еще получать за э то мате-
сы, от которых зависит жизнь челове- ве, по каналам, цены умеренные…». риальные блага и заслуженную сла-
ка, все изменилось». «Но можно как- За точность данной цитаты не ручаюсь, ву, – согласитесь, счастливая судьба
то повлиять на ситуацию?» – спраши- что-то коммерческое, в общем. для любого профессионала. И будущее
ваю. – «Остановить прогресс. Пере- Таков Петербург. Любите его та- такому человеку видится вполне четко
сесть на лошадь». – «И вы бы согла- ким и не считайте, что он над вами из- и ясно: «Мы пытаемся делать хорошую
сились?» – «Я бы с удовольствием со- девается… технологию. Чтобы продукты, которые
гласился». – «А чем бы вы занимались, Кстати, возможно, во время интер- мы производим, были технологичес-
если не информационными технологи- вью я обидела Игоря Данилова. Чест- ки совершенны, и наши пользовате-
ями?» – «Землю бы копал. Картошку ное слово, не хотела. Просто предпо- ли могли бы защищаться от вирусов».
бы сажал». Наверное, это мудрость. ложила, что создавать вирусы – бо- И пусть не всем пользователям анти-
А вернее, привычка ожидать от нашей лее творческое занятие, чем антиви- вирусов семейства Dr.Web дано пос-
российской действительности любого русы. Быть хакером, рисковать, при- тичь, каким именно образом их защи-
поворота. Понятно одно – Игорь Дани- думывать ловушки… Но Игорь осту- щают – имеет ли это значение? Игорь
лов не пропадет, если отключат свет, дил мой романтический пыл: «Хакер – рассказал трогательную историю: «Де-
газ и воду. Построит дом (это он умеет, это не гений, журналисты сделали ха- душка моей жены уже был старень-
в студенческие годы приходилось), по- керов гениями. Там все тривиально». ким и перед смертью все спрашивал:
селит там семью и будет добывать каж- «Неужели вирус создать легче, чем ан- «Как там Игорь? Все на калькутере?»
дый день кусок хлеба в поте лица. тивирус?», – робко удивилась я. «Есть «Да, на калькутере…».
Только не подумайте, что я ирони- сложные вирусы, по которым видно, Мне нравится, когда в Петербур-
зирую. Я просто опять вспомнила один что их создал серьезный специалист, ге солнечно. Обычно я попадаю туда
из своих визитов в Санкт-Петербург. но их единицы. Основной поток сделан в дождь и туман. А солнце делает его
Я шла к дому Пушкина на Мойке. Не- бездарями, то есть людьми, которые ослепительно европейским городом.
слась, как на свидание с поэтом. А пе- просто берут чужие исходные тексты, И словно усмешка прячется в уголках
ред самым музеем на набережной Мой- сами пишут элементарные вещи. А хо- губ. Он всегда готов подшутить над
ки, 12, притормозила. Было лето, на фа- роший антивирус создать – достаточ- гостями...
сад дома наводили глянец. Конец рабо- но сложная задача. Хороших антиви-
чего дня, и у самого подъезда располо- русов не так много. И бороться не толь- текст: Оксана Родионова
жились трое рабочих с початой бутыл- ко с этим данным вирусом, но и с теми, фото: Владимир Лукин

54
IMHO

Как зарабатывают
на Open Source

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

П
рактически на любом програм- жить, и не просто жить, но еще поку- циализированные секторы рынка еще
мистском форуме можно встре- пать дорогостоящую вычислительную как-то держатся на плаву, но объемы
тить человека (а то и целую технику, летать на различные конфе- продаж ПО до приобретения Феррари
группу людей), пропагандирующую ренции, да и просто носиться на Фер- явно недотягивают.
«Свободу Кода» (в той или иной трак- рари-512-TR в свое удовольствие – по- Открытые исходные тексты пред-
товке) и призывающую программис- чему бы и нет, если их труд оплачива- ставляют реальную угрозу для компа-
тов открывать исходные тексты сво- ется?! ний-гигантов и дают программистам
их проектов, разделив знание с ми- В 16 лет еще можно работать возможность урвать свой кусок пиро-
ром. Продавать уже проданную про- на благо человечества, не требуя ни- га, пополнив карманы пачками прият-
грамму – страшный грех и единствен- чего взамен, но с возрастом неизбеж- но хрустящих банкнот. Здесь, в этой
но правильный путь, ведущий в рай, – но встает проблема: как зарабатывать статье, мы будем говорить исключи-
это трудиться на благо человечества на жизнь?! Программисты относятся тельно о коммерческой составляющей
в поте лица своего, не заботясь о ком- к тем немногим счастливчикам, совме- Open Source, оставив идеологическую
мерческой выгоде. щающим приятное с полезным, зачас- подоплеку в покое. Но для начала нуж-
Примечательно, что большинство тую полностью отдающимся своей ра- но разобраться с терминологической
вышеуказанных личностей сами ни- боте и при этом зарабатывающим не- путаницей, царящей в этом мире.
чего не программируют, но с удовольс- плохие деньги, правда, с каждым го-
твием пользуются программами, за ко- дом этих денег становится все мень- Различные виды
торые не нужно платить. Естествен- ше и меньше. Массовый рынок давно лицензий
но, им хочется, чтобы таких программ находится под пятой крупных корпора- Английский язык относится к числу на-
было как можно больше. Тем време- ций, мелкие фирмы скупаются на кор- иболее примитивных среди всех высо-
нем программистам нужно на что-то ню или идут ко дну косяками. Узкоспе- коразвитых, чем, собственно, и объ-

56
IMHO
ясняется его популярность, а вовсе приобрести по цене носителя, причем ные» каналы весьма успешно конкури-
не тем, что Америка правит миром BSD не стоит на месте и активно раз- руют с коммерческими.
и центр научно-технического прогрес- вивается, предоставляя возможности, Давайте попробуем найти бизнес-
са находится именно там. В английс- которые в Windows появляются с ог- схему, позволяющую выпускать «бес-
ком очень мало слов, вследствие чего ромным запозданием или не появля- платные» программы. Ведь никто же
каждое слово имеет множество значе- ются вообще! Вот только один пример: не будет спорить, что бесплатная про-
ний, что, в конечном счете, едва не по- при возникновении исключения в од- грамма намного более конкурентос-
губило движение Open Source. Термин ном из драйверов, Windows останав- пособна своего коммерческого ана-
«free» означает не только «свобод- ливает всю систему целиком, не поз- лога, даже если аналог превосходит
ный», но и «бесплатный», поэтому по- воляя драйверам файловой системы ее по ряду параметров.
нятие «Free Software» можно толковать сбросить свои буфера. И хотя такая Ниже обсуждаются различные
двояко, и большинство пользователей возможность на уровне архитектуры бизнес-схемы, ориентированные как
(по закону Мерфи) истолковали его в NT закладывалась изначально, она на индивидуальных программистов,
совсем не так, как это задумывалось. до сих пор остается нереализованной, так и на крупные компании. Подчер-
Чуть позже «free» заменили на «open», а вот крах одного из модулей в BSD кну еще раз – именно бизнес-схемы,
но это лишь добавило путаницы и поз- оказывает минимально пагубное воз- целью которых является максимали-
волило Microsoft и другим компаниям действие на остальные компоненты зация прибыли, а вовсе не стремле-
«примазаться» к движению за свобод- системы, позволяя ей корректно за- ние осчастливить человечество в пла-
ное ПО, путем раскрытия части исход- вершить свою работу или даже пере- нетарном масштабе.
ных текстов под подписку о неразгла- запустить «упавший» модуль на лету).
шении и без передачи прав на их пос- Свобода «коммунистического типа» Мотивы раскрытия
ледующую модификацию. предлагается нам под видом GPL-по- исходного текста
Давайте выделим следующие уров- добных лицензий, требующих отчис- Прежде чем обсуждать аргументы
ни свободы. Абсолютная свобода пре- лений в случае применения их в ком- сторонников Open Source, обратите
доставляется BSD-подобными лицен- мерческих продуктах или открытия ко- внимание на одну интересную деталь.
зиями, позволяющими делать с ис- да всего проекта под все той же GPL. Большинство пользователей предпо-
ходными кодами все, что угодно: на- Это справедливо, но… никакой свобо- читают скачивать готовые бинарные
резать на болванки и перепродавать, дой здесь и не пахнет. Во многих слу- сборки, игнорируя наличие исходных
модифицировать по своему усмотре- чаях GPL является хитрым маркетин- текстов, которые, во-первых, занима-
нию, использовать в составе коммер- говым трюком: «свободная» програм- ют гораздо больше места, а во-вторых,
ческих проектов… и все это без каких- ма требует гораздо меньших вложений очень часто требуют наличия внеш-
либо отчислений! В частности, на ба- в рекламу для ее продвижения. Лю- них библиотек, влекущих в свою оче-
зе свободной BSD построена закрытая дям свойственно скачивать то, что бес- редь дополнительные зависимости,
CISCO OS, а ряд сетевых компонентов платно, но… как только дело доходит причем все они не самым лучшим об-
лег в основу стека NT. Компании-ги- до коммерческого применения, прихо- разом стыкуются друг с другом, отка-
ганты обогатились, а разработчики… дится либо нарушать лицензию (ведь зываясь компилироваться новой (или,
подарили миру свободный код, пов- открывать свой код только потому, что наоборот, старой) версией компилято-
торив историю с Прометеем. (Тут кто- там используется пара «свободных» ра. И даже когда сборка проходит без
то может увидеть противоречие, ведь библиотек, никто не будет!), либо… сучка и задоринки, она все равно тре-
выше утверждалось, что Open Source платить разработчикам! бует процессорного времени и диско-
создает угрозу компаниям-гигантам Поэтому BSD – это свобода и от- вого пространства, не говоря уже о се-
и… в то же самое время их обогаща- крытость, а GPL – всего лишь откры- тевом трафике.
ет. На самом деле, никакого проти- тость. Что же касается «бесплатности», Так зачем же скачивать исходные
воречия здесь нет, CISCO поставля- то это не более чем распространенный тексты, если мы не собираемся до-
ет на рынок маршрутизаторы, снаб- миф. По дорогам тоже можно ездить рабатывать программу «напильни-
женные всеми необходимыми серти- как бы бесплатно, но если вспомнить, ком» или проводить аудит безопас-
фикатами, и схожую функциональ- что их строительство обычно финан- ности? Правильно, – незачем. Вот по-
ность можно получить от более деше- сируется из местного бюджета, а мес- тому большинство пользователей их
вой связки PC + BSD, коллектив раз- тный бюджет – это налоги, то какая- и не качает, а один из самых популяр-
работчиков BSD маршрутизаторами то странная «бесплатность» у нас по- ных дистрибутивов Linux – KNOPPIX
не занимается, поскольку здесь кро- лучается. Другой пример – телевиде- распространяется без исходных тек-
ме энтузиазма нужны большие капита- ние, оплачиваемое рекламодателями, стов, и ведь никто же не жалуется!
ловложения. Microsoft, довольно мно- включившими в свои продукты доба- Другой вопрос, что собирая програм-
го позаимствовавшая из BSD, сократи- вочную стоимость на рекламу. То есть му с определенными ключами, мож-
ла расходы на разработку своей сис- «бесплатные» телеканалы оплачива- но здорово сократить ее размер, вы-
темы и смогла создать более конку- ются пивом, стиральным порошком, кинув все ненужное или оптимизиро-
рентоспособный серверный продукт, прокладками и прочими продуктами вать под конкретный тип процессора,
который миллионы людей покупают народного потребления. При всей не- но при желании этого же эффекта мож-
за деньги, в то время как BSD можно нависти зрителей к рекламе «бесплат- но добиться путем использования ди-

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


IMHO
намически подключаемых библиотек, ном поиске можно обнаружить что- лизаций оказался знаменитый проект
включив в дистрибутив все необходи- нибудь «интересное». Ни одна фир- OpenSSL, которой вплоть до версии
мые двоичные компоненты, размер ко- ма со всей «свитой» своих програм- 0.9.8c использовал RSA-ключи с эк-
торых будет заведомо меньше исход- мистов не смогла выпустить продукт, спонентой 3, удаляющие padding-по-
ных текстов! полностью свободный от ошибок, до- ля PKCS #1 до генерации хэш-суммы,
Рынок уже давно все расставил пускающих удаленные атаки, а ведь что позволяет удаленному атакующе-
по местам, доказав, что у массового они знают свои исходные тексты на- му подделать PKCS #1 сигнатуру, под-
пользователя нет никакой потребности много лучше, чем кто-то чужой. И это писанную RSA-ключом, и препятству-
в исходных текстах, по крайней мере, ошибки, допущенные по небрежности! ет корректной проверке различных
в мире Windows. Пестрота UNIX-подоб- Тщательно же продуманная закладка цифровых сертификатов, использу-
ных систем требует создания множес- может (и должна!) срабатывать лишь ющих PKCS. А ведь OpenSSL подвер-
тва бинарных сборок, а разработчи- при сочетании определенной комбина- гался аудиту множество раз. Его ис-
кам заниматься сборками лень. Гораз- ции внешних воздействий. Она не со- следовали и профессионалы, и люби-
до проще выложить исходные тексты, средоточена в каком-то одном конк- тели, и просто «интересующиеся», но…
и пусть каждый пользователь самосто- ретном месте, а как бы «размазана» результат все сказал сам за себя: на-
ятельно компилирует их под свою плат- по всем исходных текстам. Чтобы ее личие исходных текстов позволя-
форму, ругаясь при этом всеми слова- обнаружить, необходимо не только де- ет каждому пользователю исправ-
ми и пытаясь найти готовые сборки на ржать весь проект в голове, но и про- лять ошибки, допущенные разра-
неофициальных сайтах. анализировать все возможные связи ботчиками, дорабатывать програм-
Таким образом, на потребительские между его компонентами, что невоз- му под свои нужды, развивать и со-
свойства массового продукта раскры- можно, не говоря уже о том, что за- вершенствовать ее сообща.
тие исходных текстов никак не влияет. кладка может использовать некото- Прежде чем исправлять ошибку,
Тем не менее, сторонники движения рые особенности компилятора/линке- как минимум, требуется ее воспроиз-
Open Source утверждают, что: имея ра, поэтому они должны быть проана- вести, а каждый программист, хоть ка-
исходные тексты на руках, пользо- лизированы тоже. А железо?! Можем кое-то время проработавший в служ-
ватель может убедиться, что в про- ли мы ему на 100% доверять?! Доста- бе технической поддержки, знает,
грамме нет закладок, дыр и прочих точно вспомнить «странности» реали- что практически никто из пользовате-
ошибок. Другими словами, пользо- зации команды AAA, чтобы доказать, лей не способен грамотно описать ус-
ватель может провести аудит безо- что, даже имея полный исходный код ловия, при которых возникает ошибка.
пасности или заказать его сторон- программы и справочник по командам А ведь чтобы ее устранить, одной лишь
ней фирме. x86, мы не можем знать, как он пове- квалификации недостаточно. Первым
Но это даже не смешно! Да, дейс- дет себя, встретившись с «необычны- делом следует разобраться со струк-
твительно, вокруг крупных проектов ми» аргументами. Аудит, заказанный турой исходных текстов, что требует
таких, например, как OpenBSD, обра- конкретной фирме, на 99% бесполе- времени, причем весьма значительно-
зовалось целое сообщество поклонни- зен, а исходные тексты, выложенные го. Не лучше ли поручить исправление
ков, среди которых есть как эксперты, на всеобщее обозрение, создают ил- ошибок самим разработчикам? Что же
так и новички, занимающиеся поиском люзию безопасности, успокаиваю- касается новых возможностей… ну хо-
ошибок из чисто спортивного интере- щую общественность, поскольку су- рошо, допустим, разобравшись, какая
са или в качестве демонстрации (чи- ществует вероятность, что кто-то об- строка за что отвечает, мы добавили
тай – рекламы) силы своего интеллек- наружит спрятанную закладку слу- необходимую нам функциональную
та. Однако открытость проекта никак чайно (и ведь обнаруживают!), одна- возможность в программу, изменив
не связана с количеством имеющихся ко при этом мы неявно постулируем, десяток файлов в сотне мест. Мы по-
в нем дыр. Взять хотя бы открытоый что все люди, живущие на земле, это – сылаем исправленные исходные тек-
FireFox и сравнить его с закрытым бра- хорошие люди и они не будут исполь- сты координатору проекта, но нас по-
узером Opera. Лавинообразный рост зовать свои знания в корыстных или сылают обратно, поскольку уже давно
критических ошибок, обнаруженных тем более преступных целях. К тому вышла новая версия и никому не ин-
в FireFox за последнее время, доказы- же шансы обнаружить ошибку не так тересно «перетаскивать» все измене-
вает, что качество кода определяется уж и велики. В частности, в конце ав- ния из старой, к тому же такая функ-
исключительно профессионализмом густа 2006 года Daniel Bleichenbacher циональная возможность, по его мне-
его создателей и доступность исход- выступил с докладом на конферен- нию, никому не нужна, да и реализо-
ных текстов для всеобщего аудита не ции криптоаналитиков, где показал, вана она слишком криво, нестабиль-
в состоянии исправить многочислен- что при стечении определенных обсто- но и вообще идеологически непра-
ные дефекты изначально небрежно ятельств цифровая подпись RSA мо- вильно. Если наши изменения не бу-
сконструированного продукта. жет быть подделана в прямом смыс- дут приняты и включены в основной
Кстати говоря, «аудит безопаснос- ле слова – одной лишь бумагой и ка- проект, это означает, что мы намерт-
ти» в подавляющем большинстве слу- рандашом (даже без использования во привязываем себя к своей «собс-
чаев – формальная процедура, про- кластера суперкомпьютеров). Виною твенной» правленой версии, посколь-
водимая по заказу тех, кто свято ве- тому не сам алгоритм RSA, а ошибки ку переход на новые потребует боль-
рит в идею, что при целенаправлен- его реализации. Одной из таких реа- ших трудозатрат.

58
IMHO
На самом деле, для расширения тывать программу совершенно необя- непрофессионализм? Особенно, ес-
функционала программы достаточно зательно. Гораздо проще скопировать ли программа содержит ворованные
реализовать механизм плагинов или ее один к одному и продавать, как это компоненты. Анализируя откомпили-
встроенный скриптовый язык. Отлад- делают пираты. рованный код, невозможно доказать,
чик OllyDbg распространяется без ис- Наукоемкие ноу-хау, заложенные соответствует ли он данному исходно-
ходных текстов, но для него написа- в программу, лучше сразу же патен- му тексту или нет, поэтому воровство
но огромное количество плагинов, ко- товать, поскольку в противном слу- легко сходит с рук.
торые не привязаны к какой-то од- чае их все равно выдерут дизассемб- Плюс еще стадный признак и инер-
ной конкретной версии и могут рас- лером, хотя… 99% программ ничего ционность мышления. В мире UNIX
пространяется как по официальным, принципиального нового (на уровне ко- принято распространять программы
так и по независимым каналам: ис- да) в себе не содержат и основная до- вместе с исходными текстами, и боль-
ходные тексты служат гарантом, ля находок приходится на дизайнерс- шинство программистов так поступа-
что автор программы неожиданно кие решения, то есть на видимый не- ют, даже когда их исходные тексты
не уедет в Израиль и проект, лишен- вооруженным глазом интерфейс, а вот интересны только им самим. В мире
ный поддержки, не умрет, ударив код… порою на него страшно смотреть. Windows, напротив, большинство про-
по всем его пользователям. А кому хочется демонстрировать свой грамм распространяется в двоичном
Какая-то доля истины в этом ут-
верждении есть, но… раскрыть исход-
ные тексты это одно, а подобрать до-

www.inconex.ru
стойного преемника – совсем другое.
Не нужно приводить в пример FireFox,
возникший на обломках Netscape,
или FAR, создатель которого сосре-
доточился на RAR, поняв, что не смо-
жет тянуть два проекта одновременно.
Возьмите DOS Navigator, пользующие-
ся во времена DOS огромной популяр-

ПР И Г Л А СИ Т Е Л Ь НЫ Й Б И Л Е Т
ностью, особенно в среде программис-
тов. Ну и где он сейчас? А ведь исход-
ные тексты открыты… Но сплоченной
команды разработчиков, подхватив- БЕСПРОВОДНЫЕ И МОБИЛЬНЫЕ
ших знамя и продолживших «дело Ле-
ТЕХНОЛОГИИ В ПРОМЫШЛЕННОСТИ
нина», как-то не сложилось и продукт
распался на несколько независимых
проектов, ни один из которых не полу-
чил дальнейшего развития.
РОССИЯ, МОСКВА, CК ОЛИМПИЙСКИЙ
Подводя итог, можно сказать, что
потребителя в первую очередь ин-
тересуют не исходные тексты, а бес- БЕСПРОВОДНАЯ СВЯЗЬ
платность продукта, поэтому дальней- COMMUNICATION
ший разговор мы будем вести именно БЕСПРОВОДНЫЕ СИСТЕМЫ
в этом ключе. S E C U R I T Y БЕЗОПАСНОСТИ

Мотивы удержания ДИСТАНЦИОННЫЙ КОНТРОЛЬ


И УПРАВЛЕНИЕ
исходных текстов CONTROL&AUTOMATION

под колпаком СИСТЕМЫ РАДИОЧАСТОТНОЙ


Что мешает программистам распро- ИДЕНТИФИКАЦИИ
странять исходные тексты вместе
с продуктом? В первую очередь – опа-
Организатор: Проезд:
сение, что кто-нибудь возьмет готовую Москва, Олимпийский пр., 16
СК Олимпийский, Северный вход
программу, слегка доработает ее и бу- Метро: Проспект Мира
дет продавать без каких бы то ни было Информационная
поддержка:
ИНКОНЭКС
отчислений. Но эта угроза совершенно Тел.: (495) 739 55 09 СК Олимпийский
Факс: (495) 641 22 38 Северный
безосновательна. Если действие про- вход
исходит в стране, где законы об охране Время работы выставки: ул. Щепкина
авторского права действуют не только
Проспект Мира
на бумаге, распространителей запрос-
Метро: Проспект Мира
то можно привлечь к ответственности,
если же законы «отдыхают», то дораба-

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


IMHO
виде, и программисты «зажимают» ис- тора не обойтись. Но все существую- хоть какую-то защиту, чтобы не взло-
ходные тексты только потому, что так щие либо неудобны, либо не подде- мали (хотя, все равно ведь взломают) –
поступают все остальные. рживают необходимых нам возмож- это два... Также придется приготовить
ностей, либо хотят немереных денег. себя к необходимости отвечать на воп-
Бесплатный сыр Возникает мысль – а что если попро- росы покупателей, оказывая им подде-
вне мышеловки бовать написать каталогизатор само- ржку, съедающую все время и отрыва-
Разобравшись в проблеме, перечис- стоятельно?! Заодно и в программиро- ющую от действительно важных проек-
лим мотивы раскрытия исходных тек- вании попрактикуемся! тов – это три. Причем заработать мно-
стов и распространения программы И вот, каталогизатор написан, мы го денег все равно не удастся. Во-пер-
на бесплатной основе, основываясь с удовольствуем пользуемся им и… вых, на рынке уже существует куча по-
на чисто коммерческих соображениях. в какой-то момент до нас доходит, добных каталогизаторов, во-вторых,
А мотивов таких достаточно много. что его можно продать. Мысль инте- хакеры не дремлют, а платить свои
ресная, но с точки зрения бизнеса не- кровные не любят даже миллионе-
Проба пера правильная. Чтобы продавать про- ры. Наконец, в-третьих, единой пла-
Ух ты, сколько у нас лазерных дисков дукт, его нужно очень сильно довес- тежной системы не существует, и да-
скопилось! Без хорошего каталогиза- ти до ума – это раз. Нужно придумать же те пользователи, которые хотят ку-
пить вашу программу, далеко не всег-
да могут это сделать, поскольку пере-
вод денег требует слишком больших

www.inconex.ru
телодвижений.
А вот если выложить каталогиза-
тор в свободный доступ, мы хоть ни-
чего и не приобретем, но зато ничего
и не потеряем. Тысячи людей скажут
«спасибо», протестируют программу
на всем спектре оборудования, под-
скажут несколько интересных идей
COM PL I M E N TA R Y T I CK E T

по ее улучшению и это еще не все! Кое-


кто может подкинуть интересный ком-
мерческий заказ, а кое-кто даже пред-
MOBILE & WIRELESS ложить работу.
Случай из жизни. Прохожу со-
TECHNOLOGIES беседование при приеме на рабо-
ту и на вопрос: что, мол, я за «север-
ный олень» такой, говорю – а вот у вас
на рабочем столе я вижу ярлык своей
SC OLIMPIYSKIY, MOSCOW, RUSSIA
программы. Отношение сразу меняет-
ся, и нижняя планка моей квалифика-
WIRELESS DATA COMMUNICATION ции определяется сама собой. Только
COMMUNICATION EQUIPMENT не надо вставлять свое резюме прямо
в программу. Во-первых, это несолид-
WIRELESS SECURITY SYSTEMS но (специалисты, как правило, не ищут
SECURITY
работы, это работа ищет их), во-вто-
REMOTE CONTROL & TEST SYSTEMS рых, жестко вшитое резюме доставля-
CONTROL&AUTOMATION
ет множество хлопот и проблем после
RADIO FREQUENCY COMPONENTS того, как вы уже нашли работу. Лучше
& SYSTEMS просто дать ссылку на сайт с динами-
чески обновляемой информацией.

Оrganizer: Venue:
SC Olimpiyskiy, North exit Оружие против монстров
16 Olimpiyskiy pr., Moscow
Metro: “Prospekt Mira” Конкурировать с компаниями-гига-
Information нтами на самом деле не так сложно,
INCONEX support:
Теl: +7 (495) 739 55 09 SC Olimpiyskiy как это кажется, особенно, если рас-
Fax: +7 (495) 641 22 38 North exit
пространять свой продукт на бесплат-
Opening hours: Ul. Schepkina
ной основе. Несмотря ни на какие уси-
лия Microsoft, весовая доля FireFox
Prospekt Mira
и Opera все растет и растет. И хотя
Metro: “Prospekt Mira”
стабильности IE ничего не угрожает,
Microsoft с большим удовольствием

60
IMHO
скупила бы конкурентов, если бы они Да, по лицензии GPL продук т ных (если один человек «вбил» описа-
только продавались. Многие компании не может быть куплен без согласия ние дисков в базу, зачем тысячам дру-
изначально строят свой бизнес на том, всех разработчиков, на что поклонники гих делать то же самое?!), после чего
что через некоторое время их купит тот, Open Source всегда напирают, но зато начнем привлекать лейблы (лейблами
кому они мешают, или тот, кому нуж- он может быть похоронен, к чему кон- (от англ. label, одним из значений кото-
на клиентская база. Так было в случае куренты, собственно, и стремятся. Ко- рого является «бренд») в музыкальной
и с WinAmp, и с ICQ… да много можно нечно, с психологической точки зрения, индустрии называют компании, поку-
привести примеров! Вон, легендар- не слишком-то приятно работать с пер- пающие права на произведения и за-
ный исследователь недр Windows Макр спективой быть закопанным в могилу, нимающиеся их рекламой, распро-
Руссинович, и тот продал свой бизнес но… эта бизнес-схема приносит непло- странением и т. д. (см. «record label»
Microsoft, чем остался страшно дово- хие деньги, а программное обеспече- на wikipedia – http://en.wikipedia.org/
лен: http://www.sysinternals.com/blog/ ние в конечном счете все равно уста- wiki/Record_label)) (или просто магази-
2006/07/on-my-way-to-microsoft.html. ревает, отправляясь в небытие. ны, торгующие дисками), предоставив
Конечно, подобные шаги требу- им возможность информировать поль-
ют внушительных капиталовложе- Программа как услуга зователей о новинках и вести мони-
ний, и существует риск, что продукт Рассматривая программу как товар, торинг реальной популярности своей
не «пойдет», конкуренты не обратят мы, во-первых, ввязываемся в вой- продукции. Ведь если у человека есть
на него внимания или рыночная ситу- ну с хакерами и пиратами, норовящи- два альбома такой-то группы, то сооб-
ация неожиданно изменится, сделав ми взломать программу, выложить ее щение о появлении третьего, навряд ли
продукт ненужным (в частности, рас- в файло-обменную сеть или распро- оставит его равнодушным. То есть мы
пространение высокоскоростных ка- странять по цене носителя. А конку- продаем контекстную рекламу, и ос-
налов связи снизило популярность ме- ренция?! Десятки компаний предлага- новным источником прибыли стано-
неджеров закачек в десятки раз, и вы- ют схожие по своим функциональным вятся именно лейблы. Прибыль будет
жили те, кто обеспечивал лучшую ка- возможностям программы, и на рын- тем выше, чем больше у вас пользо-
талогизацию содержимого, лимита- ке появляются все новые и новые иг- вателей, количество которых обрат-
цию трафика, продвинутую планиров- роки. Как говорится, тут не до нажи- но пропорционально стоимости про-
ку и т. д.). Однако затраты на разра- вы! Выжить бы… А что!!! И выживем, граммы. То есть для достижения мак-
ботку программы можно существенно если начнем рассматривать програм- симальной прибыли программа долж-
сократить, если не раздувать штаты му как услугу. на распространяется бесплатно! Наша
сверх необходимого и активно вербо- Продажи программы – не единс- основная задача – собрать как можно
вать энтузиастов со всех концов зем- твенно возможный источник дохо- больше пользователей, предоставив
ли, а такие всегда найдутся, если вести да. Пусть программа будет бесплат- им те сервисы, в которых они острее
проект под эгидой Open Source. ной, пусть ею пользуются все желаю- всего нуждаются (заказы новых дис-
Весь фокус в том, что несмотря щие! А мы им поможем! Техническая ков одним кликом мыши, поиск по на-
на то, что исходный код никому из учас- поддержка, всевозможные семинары званию файла/композиции в базе, пи-
тников проекта единолично не прина- и тренинги, литература и бумажная до- ринговая сеть, наконец!).
длежит, основную ценность представ- кументация… Перечень платных услуг Естественно, сразу же возника-
ляет не текст, а… координация его со- можно продолжать бесконечно. В тех- ет вопрос о приватности и безопас-
здания. Уберите лидера, и проект раз- нически сложных программах (таких, ности. Передавая он-лайновой служ-
валится, в лучшем случае распавшись например, как IDA Pro, PC-3000) огром- бе описания своих дисков, пользова-
на несколько независимых «остров- ную роль играет наличие центра обу- тель рискует нарваться на очень круп-
ков», в худшем – просто задохнется. чения специалистов, поскольку само- ные неприятности, если эти диски – пи-
К тому же, не надо забывать, что дви- стоятельно разобраться с продукта- ратские (а в большинстве случаев это
жение Open Source имеет разветвлен- ми подобного уровня среднестатисти- так и есть). Следовательно, необходи-
ную сеть каналов распространения ческий пользователь не в состоянии. мо обеспечить такой механизм пере-
программного обеспечения и постоян- А программные комплексы еще тре- дачи данных от пользователей к ба-
но используется средствами массовой буют и грамотного внедрения. Здесь зе и от пользователя к пользователю,
информации в качестве фетиша по по- мало вставить лицензионный диск который бы гарантировал со 100% на-
воду и без повода. То есть разработка и щелкнуть по пиктограмме с надпи- дежностью, что ничей IP-адрес не бу-
продукта под знаменем Open Source сью «Install»! дет «засвечен». Технически добить-
обеспечивает хорошую рекламу, спо- Но оставим корпоративный сектор ся этого очень легко – достаточно ис-
собствует его продвижению на рынок, тем, кто на нем пасется. Возьмем ве- пользовать proxy-серверы, в роли ко-
что оказывает поразительное психо- щи простые и куда более приземлен- торых могут выступать и сами поль-
логическое давление на конкурентов, ные, например, уже упомянутый ката- зователи. Да-да, если информация
у которых желание прибрать наш биз- логизатор дисков, бесперспективность передается не напрямую, а через це-
нес к рукам возникает раньше, чем продаж которого мы обсуждали выше. почку наугад выбранных пользовате-
попытка реально оценить: какую уг- А теперь прикрутим к нему он-лайно- лей, каждый из которых не запоми-
розу для их существования он пред- вую службу, позволяющую пользовате- нает IP-адрес отправителя, то опре-
ставляет. лям обмениваться своими базами дан- делить IP-адрес обладателя данного

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


IMHO
диска – невозможно. Правда, при од- мы говорим, что каждый, кто зальет бом случае не получит никакой при-
ном лишь маленьком условии. Что на- столько-то описаний дисков, получит были от заброшенного soft-ice и не по-
ша программа работает честно и что бесплатный доступ на какое-то время терпит убытка, передав soft-ice кон-
в ней нет никаких закладок, остав- (а то и на всю жизнь). курентам, ведь других отладчиков
ленных по просьбе (или под нажимом) В общем, главное фантазию иметь у нее все равно нету, но… существу-
спецслужб разных стран. Существует и не зацикливаться на схеме «програм- ют такие понятия, как жадность и глу-
только один путь убедить пользовате- ма – деньги». пость. Глупость – хоронить легендар-
лей, что все в порядке, это – открыть ный продукт вместо того, чтобы искать
исходные тексты. Другие мотивы новые бизнес-схемы для его распро-
Вот простой пример бизнес-схе- Разработки, оплачиваемые различны- странения.
мы, основанной на бесплатно распро- ми грантами или созданные в ходе раз- К сожалению, подобные ситуации
страняемом программном обеспече- личных исследовательских программ, не редкость, а скорее общепринятое
нии. Самое забавное, что написание дотируемых из госбюджета, как пра- правило поведения.
подобного каталогизатора не требует вило, не принадлежат их создателю
практически никаких вложений и хо- и распространяются в открытых тек- Заключение
роший программист напишет его бук- стах на бесплатной основе. Но в ос- Все упирается в деньги. Мы живем
вально за неделю. Однако сам по се- новном это относится к научным про- не при коммунизме, и окружающие
бе он бесполезен, и львиная доля тру- граммам, ареал обитания которых ни- нас товары и услуги стоят денег, сле-
да уйдет на создание обширной ба- как не пересекается с офисными про- довательно, программировать на чис-
зы данных (ну кого из нас не раздра- дуктами и другими приложениями мас- том энтузиазме можно либо за счет
жает, когда Microsoft CD-Player Deluxe сового назначения. родителей, либо добывая средства
не опознает очередной диск?). Пере- Еще одним мотивом к раскрытию к существованию каким-нибудь иным
ложив эту задачу на плечи пользова- кода становится сворачивание рабо- способом (торговлей бананами, на-
телей, мы получим базу в обмен на… ты над проектом, как произошло, на- пример), что превращает программи-
в том-то и дело, что пользователи пример, в случае с Netscape. К сожа- рование из ремесла в хобби. Ведь по-
не получат ничего. лению, остальные компании следо- мимо бизнес-схем в мире есть и про-
Допустим, с лейблами договорить- вать этому примеру не хотят. Напри- стое увлечение, страсть, стремление,
ся не удалось, но, имея базу, создан- мер, Compuware, объявившая о пре- азарт, любовь к компьютерам, иногда
ную первой волной пользователей, мы кращении поддержки soft-ice, наотрез переходящая в манию, граничащую
можем продавать не саму программу, отказалась отдавать исходные коды с помешательством. Есть люди, ощу-
а доступ к базе, который, кстати, легко последней версии за разумную сум- щающие буквально физическую пот-
контролировать, пресекая хакерскую му, хотя она могла бы их просто по- ребность писать программы, разра-
деятельность. Невозможно сгенериро- дарить миру, ничего от этого не поте- батывать новые алгоритмы или прос-
вать ключ, если его проверка осущест- ряв. Но… в мире бизнеса законы логи- то проводить за монитором все сво-
вляется на сервере, хранящем список ки работают по-другому. Это намного бодное и несвободное время. Но да-
легально проданных ключей. Постойте, хуже, чем собака на сене (по крайней леко не все из них примыкают к дви-
а как же с базой?! Ведь вторая волна мере, собака на сене лежит, и если она жению Open Source, предпочитая дер-
пользователей, которым она доступ- позволит корове съесть его, лежать ей жаться в стороне от шумной и пестрой
на за деньги, за просто так ее попол- придется на сырой земле, а для хвос- толпы, построенной на бизнесе и про-
нять не будет!!! Следующая хитрость: та это нехорошо). Compuware в лю- паганде.

62
IMHO

Куда приведет Open Source?


Только два стимула заставляют людей работать –
жажда заработной платы и боязнь её потерять.

Генри Форд

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

Что мы хотим тивация. Такова наша природа. И что- в дальнейшем на сопровождение, оку-
от программы бы понять, какое будущее ждёт откры- паются уже тем, что вы сами использу-
Сначала посмотрим, каким требовани- тое ПО и что мы сами можем ждать ете эту программу. Следовательно, вы
ям должна отвечать программа, что- от него, нужно попытаться разобрать- ничего не потеряете, если отдадите её
бы называться «хорошей» с точки зре- ся в таком вопросе: что заставляет лю- ещё кому-нибудь бесплатно (если, ко-
ния конечного потребителя. Очевидно, дей распространять свои программы нечно, не боитесь, что ею воспользу-
что основное требование – минимум бесплатно? ются и ваши конкуренты).
ошибок. Ошибки, которые в ней всё Ричард Столлмен в своём пись- Следующий логический шаг –
же будут выявляться, необходимо ус- ме «Свободному ПО двадцать лет: выпустить её не просто бесплатно,
транять профессионально и как мож- что дальше?» выделяет два вида моти- но с открытым кодом. Вы по-прежне-
но быстрее. Не последнюю роль игра- вации: отсутствие нужной программы му ничего не теряете, но зато можете
ют удобство работы и понятность ин- и желание быть свободным [1]. Но, ду- рассчитывать, что какая-нибудь «доб-
терфейса, а на все вопросы должна маю, при более детальном рассмотре- рая душа» (мотивы доброты которой
быть возможность получить грамот- нии мотивов будет больше. Коротко мы ещё рассмотрим) будет помогать
ный и исчерпывающий ответ. охарактеризую основные из них. вам в вашей разработке (хотя бы ука-
То есть программный проект дол- зывая на ошибки).
жен разрабатываться квалифициро- Удовлетворение своих нужд С точки зрения сообщества такая
ванными специалистами (в том чис- На этот мотив указывает и Столлмен, мотивировка не позволяет продук-
ле и в области эргономики), снабжать- а также Эрик Реймонд в своей нашу- ту далеко отойти от удовлетворения
ся качественной документацией и эф- мевшей статье «Собор и Базар» [2] – частных потребностей его разработ-
фективной технической поддержкой. иногда случается так, что вы не можете чика. И его качество будет ровно та-
Способны ли открытые проекты соот- найти готовую программу (пусть даже ким, какое необходимо разработчи-
ветствовать этим требованиям? и за деньги), которая обладала бы нуж- ку – не больше и не меньше. К тому
ными вам качествами. Тогда вы разра- же на гарантированную техподдержку
Что движет батываете её самостоятельно и тем са- тоже рассчитывать не приходится.
разработчиками мым удовлетворяете свои потребнос- Конечно, если проект очень хорош,
Как известно, люди ничего не делают ти. То есть силы и ресурсы, затрачен- то у него есть все шансы вырваться из-
просто так. Им непременно нужна мо- ные на разработку и затрачиваемые под крыла своего создателя и «уйти

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


IMHO
в свободное плавание». Но этим дви- И здесь открытые проекты опять- крупной компании, то на программи-
жут уже другие мотивы... таки подкупают низкой «планкой вхож- рование ради удовольствия остаётся
дения». Но эта мотивация тоже не веч- не так уж и много времени. Особенно
Программировать, чтобы на – она работает лишь до тех пор, по- когда у вас есть возможность делать
учиться программировать ка человек не найдёт работу, о кото- то же самое, но за деньги...
Лучший способ научиться говорить по- рой мечтал. К тому же в полном жизненном цик-
английски – это говорить по-английс- ле проекта далеко не всё будет достав-
ки. То же самое и с программировани- Выполнение должностных лять удовольствие. Кто-то не любит пи-
ем – практика, и желательно не прос- обязанностей сать документацию, кому-то не нравит-
то уровня «Hello, world!», к чему быстро
Да, есть такие счастливцы, которые по- ся отлавливать неочевидные ошиб-
теряешь интерес, а участие в реальном лучают зарплату, разрабатывая откры- ки... Как метко заметил Николай Без-
проекте – это неотъемлемое условие тые продукты. Немало программистов, руков в статье «Повторный взгляд
достижения высоких результатов. работающих над Linux, найдётся в та- на Собор и базар» [4], «талантливые
В этом плане работа над открыты- ких компаниях, как IBM, Oracle, не го- разработчики в первую очередь про-
ми проектами практически идеаль- воря уже об Red Hat Inc. и Novell, чей граммисты, а не тестеры: они обыч-
на – вам всегда будут рады, от вас ни- бизнес напрямую связан с этой опе- но предпочитают делать собствен-
чего не будут требовать сверх ваших рационной системой. (Нужно заме- ные ошибки, а не исправлять ошибки
возможностей, общаясь с настоящи- тить, что здесь есть и свои ограниче- других». Так что этот мотив тоже не-
ми «гуру» своего дела, вы сможете пе- ния – вложения в открытое ПО ничем льзя рассматривать в качестве гаран-
ренять то, что американцы называют не защищены, то есть любой конку- та высокого качества и долгосрочнос-
«лучшими практиками», то есть освои- рент вполне может совершенно бес- ти проекта.
те наиболее эффективные приёмы ра- платно воспользоваться теми резуль-
боты, познакомитесь с красивыми ал- татами, на достижение которых были Протест и борьба за идеалы
горитмами и т. д. Было бы желание. потрачены немалые средства.) Второй из «столлменовских» мотивов –
Однако эта мотивация накладыва- С мотивами здесь всё понятно, вы пишете открытые программы, пото-
ет два ограничения. Во-первых, дале- но нужно также понимать, что корпора- му что считаете неправильным брать
ко не каждый программист, пришед- ции оплачивают эту работу не по щед- за них деньги и запрещать людям изу-
ший в проект учиться, обладает не- рости душевной, а преследуя впол- чать и модифицировать их код. Осо-
обходимой квалификацией для раз- не определённые коммерческие це- бенно когда сами создали свою про-
работки действительно качественно- ли. Впрочем, о них мы поговорим чуть грамму, пользуясь идеями и наработ-
го кода. Во-вторых, как только он до- позже. ками других людей.
стигнет достаточно высокого уров- Это, конечно, хороший и благород-
ня, действие данного стимула на этом Just for fun ный мотив, но, к сожалению, трудно
и заканчивается. Знаменитый «мотив» Линуса Торваль- найти кого-то кроме самого Ричарда,
Конечно, Open Source затягивает. дса. Да, программирование захваты- кто им на самом деле руководствовался
Ощущение причастности к большому, вает и доставляет истинное наслажде- бы (ну ещё Торвальдс ссылается на не-
общему и полезному делу заставляет ние – вне компьютерной жизни не час- го в своей книге как на одну из причин
не спать ночами, и потому многие не- то удаётся почувствовать себя все- сделать код Linux открытым).
давние «ученики» не всегда «завязы- могущим творцом. Оно вполне может Кстати говоря, идеологические
вают» с открытым ПО, достигнув жела- быть хобби, и для некоторых так оно принципы, лежащие в основе дви-
емого уровня мастерства. Но посколь- и есть. А на хобби мы готовы тратить жения FOSS (Free and Open Source
ку их мотивация меняется, то и данный кучу денег и времени, даже не задумы- Software), всё чаще подвергаются сом-
стимул нельзя назвать основополагаю- ваясь о выгоде, отдаче и т. д. Нам это нению. Не так давно даже Эрик Рей-
щим для построения прочного и долго- нравится, и этого достаточно. монд выразил мнение, что открытые
живущего открытого проекта. Но, как пишет сам Торвальдс в сво- проекты более лояльно должны от-
ей книге «Just for Fun. Рассказ неча- носиться к коммерческим системам
Наработка «портфолио» янного революционера» [3], удоволь- и, в частности, к включению проприе-
Каждый, кому доводилось искать ра- ствие – это третий, заключительный тарного кода в открытые продукты [5].
боту, наверняка знает, что работо- этап эволюционирования любой ве- Это, по его мнению, является ключе-
датель гораздо чаще задаёт вопрос щи. Этому этапу предшествуют борь- вым условием сохранения жизнеспо-
«что ты умеешь», а не «что ты знаешь». ба за выживание и достижение соци- собности Linux.
То есть опыт практической работы при- ального статуса. То есть программи-
обретает первостепенное значение, ровать просто так, ради одного лишь Азарт и жажда борьбы
и запись в резюме об участии в проек- удовольствия, человек будет только Это менее идеализированный вариант
те разработки операционной системы после того, как накормит свою семью, предыдущего случая – людям нравит-
выглядит зачастую более предпочти- обеспечит ей крышу над головой, за- ся бороться. Они готовы тратить си-
тельно, чем наличие высшего образо- воюет устойчивое положение в обще- лы и время, чтобы быть лучше дру-
вания по специальности «системный стве. И если только вы не владеете со- гих. Это их распаляет, зажигает огонь
программист». лидным пакетом акций какой-нибудь в глазах. Но для этого нужен достой-

64
IMHO
ный противник. Не намного сильнее, лучение прибыли. (Единичный слу- ся сделать то же самое с Java. Но от-
чтобы борьба с ним не выглядела без- чай с Canonical Ltd. принимать во вни- нюдь не из любви к свободе – просто
надёжным делом, но всё же находя- мание не будем – не каждому мульти- ей нужно продавать свои Sun Fire. Без-
щийся впереди. Сейчас такой против- миллионеру захочется тратить свои условно, эти примеры слишком упро-
ник есть – коммерческое ПО. Оно го- деньги так, как это делает Шаттлворт. щены и в какой-то степени даже грубы,
раздо сильнее распространено, и за- Да, кстати говоря, и Canonical не только но тем не менее смысл они отражают
частую лучше свободных аналогов. благотворительностью занята.) довольно точно – бесплатное распро-
(Что бы там ни говорили, но я исполь- Поэтому посмотрим, как же можно странение программ в данном случае
зую AbiWord для подготовки этой ста- зарабатывать на открытых програм- служит средством повышения прибы-
тьи лишь потому, что он бесплатен мах, которые каждый желающий мо- ли в других областях.
и работает в Ubuntu, а вовсе не потому, жет распространять безо всяких огра- А прибыль может повыситься толь-
что он лучше MS Word технически.) ничений и по любой цене. ко в одном случае – если мы, то есть
Но что будет, когда открытые про- конечные потребители, выложим боль-
граммы станут действительно луч- Проекты под заказ ше денег. Так что это «бесплатное» ПО
ше коммерческих? Их разработчики Это, скорее, теоретическая возмож- довольно сильно начинает смахивать
просто потеряют интерес к дальнейше- ность, нежели практический пример. на пресловутый сыр...
му улучшению. Но и не победить тоже Суть открытого и свободно распро-
нельзя – когда всё время бежишь вто- страняемого ПО в том, что получив Борьба с конкурентами
рым, начинаешь думать, что первым тем или иным способом (в том числе И снова сразу же вспоминается IBM.
тебе никогда не стать, а раз так, зачем и купив) программный продукт, вы мо- Она ведёт свой бизнес в самых раз-
вообще бежать? жете легко передать его кому-то ещё личных секторах рынка. И, например,
по меньшей стоимости или даже бес- в секторе корпоративных баз данных
К сожалению, большинство из этих платно. Фактически, разработчик по- одним из основных конкурентов IBM
факторов не всегда в состоянии сти- лучает гарантию только на первую является Microsoft. Но Microsoft имеет
мулировать работу над проектом, что продажу. Так что если сделать перво- интерес и в секторе операционных сис-
называется, «от и до». Первоначаль- начальную стоимость продукта доста- тем, куда IBM уже давно не стремится.
ная работа, когда идея начинает воп- точно высокой, то таким путём мож- Так что если поддерживать бесплат-
лощаться во что-то реальное, достав- но попытаться компенсировать за- ную ОС, то можно нанести серьёзный
ляет массу удовольствия. Но вот ког- траты на разработку и даже получить урон своему конкуренту, ничуть не пос-
да дело доходит до необходимости прибыль. традав самому.
«вычищать» ошибки (не зря говорят, Пожалуй, единственный способ И если в предыдущем случае (про-
что последние 10% проекта отнима- продать один экземпляр программы движение других товаров) компания-
ют 90% времени), отвечать на беско- по цене, превышающей её себестои- спонсор так или иначе диктует свои
нечные однообразные вопросы поль- мость, – это разработка на заказ (ина- требования разработчикам, чтобы по-
зователей, да и даже писать докумен- че как вы получите гарантию, что во- лучить те свойства продукта, которые
тацию, то здесь уже не всегда энтузи- обще сможете что-то продать). Но весь соответствовали бы её маркетинго-
азма хватает... Традиционный путь – фокус в том, что заказчик, выклады- вым целям, то для того чтобы «подло-
«свалить» это на новичков, присоеди- вая немалые деньги, будет, скорее жить свинью» конкуренту, достаточно
нившихся к проекту («поработай с пол- всего, желать получить программу просто создать участникам открытого
годика в Bugzilla, а там, может, и в раз- в свою полную собственность, так что проекта условия для разработки пре-
работчики возьмём»). об Open Source в данном случае речь восходной программы. С точки зрения
Так что можно сделать небольшой вряд ли будет идти (разве что разра- сообщества этот способ меценатства
промежуточный вывод о том, что из су- ботка будет основана на GPL-коде, наиболее хорош. К тому же, если вам
ществующих мотиваций единствен- и заказчика поставят перед фактом, не нужна корпоративная СУБД, то и пе-
ная, которая может оказывать более- что «иначе нельзя»). Потому я и оха- реплачивать за неё вы не будете.
менее серьёзное влияние на полно- рактеризовал данный пункт как тео-
ценное развитие открытых проектов ретический. Техническая поддержка
в долгосрочной перспективе, – это всё- На этом в значительной степени строят
таки оплачиваемая работа. Попытаем- Продвижение сопутствующих свой бизнес такие компании, как Red
ся разобраться, зачем же коммерчес- товаров Hat Inc., Novell, Mandriva... То есть ос-
ким компаниям может понадобить- Вот этому уже можно найти массу новной источник дохода – не продажи
ся оплачивать разработку открытых практических примеров. IBM актив- программы, а плата за её обслужива-
программ. но спонсирует разработку Linux, что- ние. Поскольку люди, особенно в кор-
бы более успешно продвигать свои поративном секторе, хотят просто де-
«Шкурный интерес» серверные решения, да и чтобы на их лать свою работу с помощью компью-
Не подлежит, думаю, ни малейшему новом процессоре Cell гарантирован- тера – рассчитывать фундамент зда-
сомнению тот факт, что любое вло- но работала хотя бы одна операцион- ния, рисовать дизайн будущего ав-
жение, осуществляемое коммерчес- ная система. Sun Microsystems час- томобиля, раскладывать пасьянс, –
кими компаниями, направлено на по- тично открыла коды Solaris и готовит- то они совсем не желают знать, что та-

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


IMHO
кое файловая система и загрузчик, Сейчас, конечно, технология про- Финансирование им тоже необходи-
не говоря уже о том, чтобы это ещё граммирования такова, что ошибки не- мо, если они действительно стре-
и настраивать. избежны, так что компаниям, специа- мятся обеспечить должный уровень
Отвлекусь на небольшое наблюде- лизирующимся на технической под- качества. И здесь основным спосо-
ние. Очень многие готовы, не задумы- держке, специально заботиться о них бом получить необходимые средс-
ваясь, отдать некоторую сумму за то, нет нужды. Но кто знает, что будет, ког- тва становятся пожертвования ком-
чтобы им настроили подключение да в Linux будет устранена последняя паний и частных лиц. Но пожертво-
к Интернету на домашней Windows XP. ошибка? вания редко позволяют обзавестись
То есть операция «Пуск → Все про- серьёзным «железом» для выполне-
граммы → Стандартные → Связь → Иногда программы с открытым ко- ния всестороннего тестирования раз-
Мастер новых подключений» являет- дом выполняют роль «демо-версий», рабатываемого продукта, не говоря
ся для них непосильной задачей. Безо служащих продвижению коммерчес- уже о привлечении сторонних специ-
всякой иронии скажу, что так и должно ких версий того же продукта. В качес- алистов для выполнения «непрестиж-
быть – не дело бухгалтера или врача тве примера можно привести MySQL, ной» работы.
разбираться в «драйверах», «логинах» Sendmail. Но данный случай, в зави- То есть некоммерческие проекты
и «IP-адресах» (хотя Microsoft и делает симости от того, насколько возмож- зачастую держатся на голом энтузи-
всё, чтобы пользователю приходилось ности открытой версии меньше, чем азме, который, к сожалению, не вечен.
с этим сталкиваться как можно мень- коммерческой, может быть отнесён Безусловно, есть успешные примеры,
ше). А открытые проекты, где доволь- либо к «продвижению сопутствую- такие как Debian, хотя более чем три
но часто помощь ограничивается аб- щих товаров», либо к «технической года ожидания Sarge продемонстри-
бревиатурой «RTFM», не зря славятся поддержке». Поэтому отдельно я его ровали, что и здесь могут быть сущес-
своей сложностью. не выделяю. твенные проблемы.
Кстати говоря, нынешнее отноше- Так что получается, что попыт-
ние разработчиков многих открытых ки заработать на открытых проектах Шаг в бизнес
программ к своим пользователям сти- (и тем самым обеспечить этим проек- Ещё одна тенденция наших дней – ком-
мулирует возврат к натуральному хо- там необходимый источник финанси- пании, строящие свой бизнес на откры-
зяйству: «Вы же получили исходники? рования) так или иначе отражаются тых проектах, всё чаще говорят о не-
Если что-то не нравится, нанимайте на карманах конечных пользователей обходимости более явно переходить
программиста и переделывайте, как и при этом не стимулируют улучшение на коммерческие рельсы. Например,
вам надо». Как указывается в анали- качества программ. Саймон Фиппс, занимающий руково-
тическом отчёте компании Elashkin дящую роль в Sun Microsystems, при-
Research [6], даже если специалисты Зачем открывать код звал сообщество Open Source «усво-
необходимой квалификации уже есть Зачем же тогда коммерческие компа- ить уроки капитализма и капиталис-
в компании, работодатель фактически нии открывают код своих флагманс- тов» [7].
будет вынужден оплачивать их занятие ких продуктов, если на этом так слож- Особо показательна позиция рос-
непрофильной деятельностью. но зарабатывать? К сожалению, нужно сийской компании «LINUX-ONLINE» –
Так что люди готовы платить за тех- признать, что открывается в основном разработчика дистрибутива Linux XP
ническую поддержку. Но здесь, когда код тех продуктов, на которых итак уже Desktop. Её «манифест» [8] явно де-
речь идёт об открытых программах, становится сложно зарабатывать. От- кларирует, что при сохранении до-
мы наталкиваемся на очень интерес- крытие кода зачастую похоже на прин- ступности Linux «каждому пользова-
ную вещь. Для начала ответим на воп- цип «отдать палец, чтобы спасти ру- телю PC» в Linux необходима сильная
рос: заинтересована ли коммерческая ку» – это привлекает внимание к ком- коммерческая составляющая. К со-
компания в повышении качества про- пании (и к другим её продуктам), вли- жалению, нужно признать, что это
даваемой ею программы? Да, заинте- вает в проект новых (и притом бесплат- не просто маркетинговый ход, наце-
ресована. Потому что основной источ- ных) разработчиков и тестеров, и т. д. ленный на продвижение своего дис-
ник дохода – продажи, и чем лучше бу- Приходится, конечно, серьёзно спон- трибутива (хотя сами они указывают,
дет программа, тем лучше она будет сировать эти сообщества (ядро раз- что разрабатывают не «дистрибути-
продаваться и тем меньше будут из- работчиков OpenOffice.org ещё долго, вы», а «решения»), а вполне обосно-
держки на её сопровождение. наверное, будут составлять оплачива- ванная позиция.
Теперь зададим тот же вопрос при- емые компанией Sun программисты), Действительно, если в качестве
менительно к открытым продуктам. От- но определённая отдача от этого всё- стратегической цели разработки ста-
вет, к сожалению, будет отрицатель- таки есть. А значит, не прямо, так кос- вить как можно более широкое рас-
ный. Ведь спрос на техническую под- венно, но именно конечные пользо- пространение продукта, то это неиз-
держку будет тем больше, чем боль- ватели оплачивают этот «жест доб- бежно приведёт к увеличению доли
ше с программой проблем и чем слож- рой воли». «пассивных» пользователей, кото-
нее с ней разобраться. И лишь высо- рые лишь потребляют продукт, но са-
кий уровень конкуренции сдержива- Свобода во всём ми не участвуют в его разработке.
ет появление совсем никуда не год- Конечно, есть ряд проектов, разра- Эта тенденция итак характерна сей-
ных продуктов. батываемых как «некоммерческие». час для многих открытых проектов.

66
IMHO
В итоге если разработчики хотят со- рами. Эти проекты и сейчас во многом как техническая поддержка. В то же
хранить этих пользователей, то им опираются на университеты. время рост числа пассивных поль-
придётся более серьёзно относить- Что может дать открытым проек- зователей, требующих от разработ-
ся к вопросу технической поддержки. там возврат в науку? Во-первых, хоть чиков «коммерческого» качества по
А это уже возможно лишь на коммер- и небольшое, но всё же стабильное «свободной» цене и мешающих тем
ческой основе. финансирование, поскольку любое самым программировать просто для
По большому счёту разработчи- здравомыслящее государство за- удовольствия, постоянно будет уси-
кам, если они не получают за это де- интересовано в дешёвых и эффек- ливаться.
ньги, безразлично, будет их програм- тивных программах, а также в гра- В этих условиях у открытых проек-
ма использоваться одним пользова- мотных специалистах, выучивших- тов есть, на мой взгляд, три пути. Пер-
телем или несколькими миллиона- ся на этих самых программах. Да и вый – не обращать ни на что внимание
ми. Вот число активных пользовате- для коммерческих компаний, кото- и просто делать то, что и делали. Воз-
лей, присылающих грамотные отчёты рые сейчас используют открытое ПО можно, здесь трудно будет говорить
об ошибках или даже патчи, – фактор и потому оказывают поддержку про- о высоком качестве конечного продук-
критический, но, к сожалению, на ны- ектам Open Source, в принципе ниче- та. Возможно, использовать его будут
нешнем этапе развития Open Source го не меняется. лишь несколько сотен человек, кото-
можно, наверное, считать, что здесь Во-вторых, университет – это рые сами же и занимаются его разра-
потенциал для экстенсивного роста практически неисчерпаемый источ- боткой. Но, в конце концов, не слиш-
почти исчерпан. Кто хотел участво- ник студентов-добровольцев (а по- ком давно так всё и было.
вать в открытых проектах, тот в них рой и не совсем добровольцев), ко- Второй – переход на коммерчес-
уже участвует. торых можно привлечь к той или кие рельсы. Только деньги всё же луч-
На самом деле проектам нужны иной работе. Конечно, рассчитывать ше брать за сам продукт, а не за его
и пассивные пользователи – но лишь в этом случае на высокую квалифи- поддержку – так оно и честнее, и по-
как средство влияния на потенциаль- кацию разработчиков не приходится, нятнее для конечного пользователя.
ных инвесторов и жертвователей, ну и но под чутким руководством грамот- Да и не будет соблазна оставить «ды-
в определённой степени как повод гор- ного профессора эффективность их рочку», чтобы потом дать повод поль-
диться своим детищем. работы, скорее всего, будет замет- зователям пожалеть, что не подписа-
но выше, чем при нынешнем спосо- лись на обновления.
Назад в будущее бе взаимодействия в большинстве Третий путь – переход на науч-
Получается, что бизнес-модель Open сообществ. ные принципы разработки без огляд-
Source не подкреплена достаточно Научный подход позволит более ки на число вовлечённых пользовате-
надёжными и долгосрочными ресур- фундаментально подходить к разра- лей, показатели TCO, привлекатель-
сами, гарантирующими качественное ботке, когда на смену принципу «ес- ность для инвесторов. А все «рыноч-
и эффективное развитие и в будущем. ли это работает – не трогай» придёт ные» вопросы оставить на откуп ком-
Так есть ли это будущее у открытых подход «выбирай наилучшее реше- мерческим компаниям.
проектов вообще? ние». Может быть, это несколько затя- Что получится на самом деле – вре-
На мой взгляд, есть. Но чтобы его нет время разработки и появления но- мя покажет.
увидеть, нужно забыть о коммерчес- вых функций, но зато можно будет го- Удачи!
кой составляющей и обратить внима- ворить о заметном повышении качес-
ние на то, что процесс работы над от- тва. А «фичи» всегда студенты-энту- 1. Столлмен Р. Свободному ПО двад-
крытыми проектами очень напоми- зиасты добавят. цать лет: что дальше? – http://zdnet.ru/
нает научную работу. Действитель- Остаётся открытым вопрос с тех- ?ID=312009.
но, в научной среде тоже принято де- нической поддержкой, но этим в прин- 2. Реймонд Э. Собор и базар – http://
лать достоянием общественности но- ципе по-прежнему могут заниматься www.seagreen.ru/free/esr/esr_cathedral-
вые теории, результаты эксперимен- коммерческие компании на платной bazaar2.html.
тов и т. д. И каждый может опереть- основе. Им даже проще будет стро- 3. Торвальдс Л., Даймонд Д. Just for Fun.
ся на достижения своих коллег, чтобы ить свой бизнес, поскольку «источ- Рассказ нечаянного революционе-
продвинуться ещё дальше. Это естес- ник» разработки более предсказуем ра. – Эксмо-Пресс, 2001.
твенная схема обмена мыслями и иде- и есть с кем при необходимости всту- 4. Безруков Н. Повторный взгляд на Собор
ями, выработанная, скажем так, «эво- пить в переговоры. и Базар – http://www.linux.org.ru/books/
люционным» путём и отличающая- GNU/misc/second-look-at-CatB.html.
ся от столь же естественной схемы Подводя итоги 5. http://www.nixp.ru/news/7670
обмена товарами и услугами. А про- Таким образом, можно сделать вывод, 6. Бизнес модель Open Source – перспек-
грамма – это, скорее, идея, чем мате- что дальнейшее развитие Open Source тивы и угрозы. Elashkin Research – http://
риальная вещь. рано или поздно упрётся (наверно, www.elashkin.com.
По большому счёт у движение можно сказать, что уже упирается) 7. http://www.nixp.ru/news/7583.
Open Source зародилось именно в на- в недостаток разработчиков, не го- 8. М а н и ф е с т L i n u x X P D e s k t o p –
учной среде. BSD, UW-IMAP, Exim, воря уже о «сотрудниках», занятых http://linux-online.ru /about /articles /
X-Window являются хорошими приме- на таких неинтересных направлениях, detail.php?ID=897.

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


IMHO

Open Source
взглядом оптимиста

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

Н
аиболее полный и многофактор- граммное обеспечение (ПО) с откры- профессионалами, если по всем фор-
ный анализ явления Open Source тым кодом, понимая под этим как ре- мальным признакам их деятельность
дается в материалах Elashkin зультат работы, так и саму процедуру напоминает хобби? Именно этот па-
Research (http://www.elashkin.com), его создания. радокс создал целую школу наукооб-
а именно в работе «Бизнес-модель Итак, в чем феномен OSS? Он про- разных фантазеров, рассуждающих
Open Source. Перспективы и угрозы». являет себя и в сфере технологий, о том, что качество OSS не соответс-
Можно даже сказать, что исчерпываю- и в сфере общественных отношений, твует качеству проприетарных проек-
щий. Но я предлагаю обратиться к ука- а главное, в сфере экономики. Мож- тов. И, мол, управление там ненадеж-
занному источнику лишь тем, кто нуж- но бесконечно долго восхищаться ное, и контроль недостаточный, а са-
дается в терминологических поясне- тем, как проекты OSS создаются, ка- мое тревожное в том, что производите-
ниях, то есть не знает ничего о пред- залось бы, сами собой, можно беско- ли не заботятся о благе потребителей,
мете, или склонен к академическо- нечно долго митинговать на тему про- так как не получают за работу деньги.
му способу мышления, то есть хочет тивостояния «старого мира» и сторон- Ну и после такого «веского» аргумен-
знать все. Я не буду ставить перед со- ников OSS, но самое главное, что биз- та, радетели за качество, как ловкие
бой цели объять необъятное. Отвечу нес OSS на первый взгляд не содержит ярмарочные фокусники, предлагают
лишь на один главный вопрос: есть ли стандартной экономической цепочки немедленно облегчить карманы зева-
нечто, что угрожает Open Source? В об- «товар-деньги-товар». Вот, что осо- кам, призывая их заплатить за пропри-
суждении будем придерживаться тер- бенно поражает при рассмотрении етарное ПО, которое, по мнению доб-
минологии, введенной упомянутой OSS, то, что производитель отдает то- рых проповедников, спасет Мир.
статьей, и главный объект называть вар даром! Где же тут бизнес? Можно Спрашивается, может ли подобное
Open Source Software (OSS) или про- ли после этого разработчиков считать явление, как кажется на первый взгляд,

68
IMHO
игнорирующее все экономические за- ронних обязательств. Старая формула Примеры:
коны, оказывать такое сильное влияние «товар-деньги-товар» была сильна тем,  все проекты имеют свои «домаш-
на экономику? Одно из двух: или OSS – что деньги считались абсолютной цен- ние» сайты и электронную почту
это секта, религия или партия анархис- ностью. Но в условиях современного для связи с разработчиками;
тов, тогда «ату их» без всяких рассуж- мира использование банковских биле-  создаются даже специальные
дений о выгодности или невыгодности тов и даже виртуальных электронных бесплатные виртуальные места
для потребителей, так как в этом слу- денежных единиц ставит вопрос о га- для размещения проектов OSS и
чае OSS – это уже общественно-по- рантии ликвидности самих оборотных организации их разработчиков.
литическое явление. Или OSS – это денег. Почему же покупка акций пред- Этот фактор снижает стоимость
вид новой экономики, и все противни- приятий зарубежных государств нико- разработки и сопровождения OSS
ки OSS сознательно лгут! Думаю, вто- го не смущает, а вот возвратность ин- и обеспечивает ее сотрудниками.
рое. И докажу это. Бизнес-модель OSS вестиций в OSS так тревожит? Дело 3. Интернет, как среда электрон-
полностью подчиняется всем экономи- в том, что реализация преимуществ ных платежей.
ческим законам. В рамках этой моде- от производства OSS сопровождает- Примеры:
ли потребители платят за товар, а про- ся большим числом условий. Даже са-  для работы с OSS и аналогичной
изводители получают деньги за работу. мо функционирование проектов OSS продукцией были созданы спе-
Начнем обсуждение с производителей, также возможно лишь при соблюдении циальные платежные системы,
так как именно эта сторона экономи- ряда условий. ориентированные на небольшие
ческой цепочки обязательно идентифи- Теперь можно дать ответ на воп- и очень быстрые переводы.
цируется (хотя бы авторским правом) рос, почему так многочисленны вер- Это самый важный фактор для реа-
и поэтому в первую очередь подверга- сии защитников о преимуществах OSS лизации выгод от продажи продук-
ется нападкам противников OSS. и столь же велики числом доводы про- ции OSS. Он единственный обеспе-
тивников. Все они описывают частные чивает прямую конвертацию в де-
Разработчики OSS условия, гарантирующие или препятс- нежный эквивалент.
не филантропы твующие реализации выгод, получен-
О, сколько догадок на счет мотива- ных от продажи продукции, созданной Могут ли перечисленные факторы
ции разработчиков OSS высказано OSS. Хотя ключевых факторов совсем исчезнуть или перестать действовать?
в прессе и на страницах вполне серь- немного. И в упомянутой выше рабо- Иначе говоря, угрожает ли что-то Ин-
езных монографий. И тема эта никогда те они названы среди прочих: «В ос- тернету? Конечно, да! Война, напри-
не исчерпается. Ключевое слово в этих нове этого явления лежит огромный мер. Стоит ли об этом беспокоиться?
опусах «даром». А логическая связ- рост скорости обмена информацией Конечно, да! Стоит ли это обсуждать
ка строится так: разработчик трудит- и чрезвычайно низкая стоимость это- не как фактор политики, а именно от-
ся – даром! Что такое «даром» в эко- го процесса». Конечно, не надо пони- раслевой экономики? Конечно, нет!
номике? Это значит, что в процессе мать, что, протянув высокочастотный А теперь, учитывая, что перечис-
передачи некоторого товара его стои- канал из Европы в Америку и дождав- ленные факторы обеспечивают воз-
мость не учитывается. Ну а в отноше- шись амортизации его стоимости, мы можность производства продукции
нии разработчиков OSS, что они пи- создадим OSS. Ключевое слово – «Ин- с минимальными издержками, на ос-
таются святым духом, так как, создав тернет»! нове эффективной системы группо-
ценный продукт, не взяли за него пла- В становлении OSS сыграли глав- вой работы и создают возможность по-
ту. Если бы это было так, то тема OSS ную роль три фактора: лучать за это живые деньги, стоит ли
исчерпала бы себя естественным пу- 1. Интернет, как средство доставки, обсуждать проблемы тех, кто не уме-
тем после смерти от голода последне- позволивший сделать почти бес- ет воспользоваться очевидными пре-
го безумного разработчика. Учитывая, платными как передачу (разме- имуществами? Ведь это подобно тому,
что обычный человек без пищи не смо- щение), так и получение (загруз- что нуждающийся увидел деньги и про-
жет прожить более месяца даже с по- ку) программной продукции. шел мимо! То есть совершенно не со-
мощью мантр, то OSS не продержалось Примеры: ответствует природе человека.
бы такое время и уж точно не смогло  владение недорогим хостингом Смотрите, что выходит. Разработчи-
расти подобными темпами. Значит, все обходится менее 80 $ в год; ку необходимо получать плату за свой
ложь с самого начала. С этого звонко-  неограниченный трафик досту- труд, чтобы иметь средства к сущест-
го слова «даром». пен за 25 $ в месяц. вованию. Участие разработчика в про-
Итак, первая аксиома: все участни- Этот фактор позволяет снизить екте OSS обеспечивает такую возмож-
ки процесса OSS со стороны разработ- стоимость оборота продукции OSS ность. Что еще надо, чтобы доказать,
ки за свой труд получают... выгоду! и одновременно реализовать ряд что разработчики все-таки имеют доход
Не деньги, а именно выгоду, неко- преимуществ путем привлечения от своей деятельности? Скептики хотят
торое преимущество, стороннее обя- определенной аудитории к сайтам, узнать «как»? Надо «схватить за руку»
зательство и прочее. Именно поэтому связанным с OSS. и прямо вручить «ключи от квартиры,
возникает вопрос об условиях реали- 2. Интернет, как средство рекрути- где деньги лежат», а то ведь не пове-
зации этой выгоды, или о ликвиднос- рования и интеграции разработ- рят! Но не забывайте, в этом разделе
ти полученных преимуществ или сто- чиков OSS. мы обсуждаем только сторону разра-

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


IMHO
ботки. То есть здесь не будем затраги- частность к группе! И аналогично, они работка на OSS с помощью сервисно-
вать, «почему» платят за бесплатные с удовольствием поддерживают OSS- го обслуживания: «...на практике высо-
продукты категории OSS, а просто при- проекты, так как им важно, что такая кий уровень сервисов в IT-экономике
мем, что это есть. Допустим это! поддержка приносит им уважение! характерен как раз для развитых рын-
Итак, если допустить, что некие Вот она, «экономика наоборот»! ков и «богатых» стран.» Но далее они
потребители все-таки вопреки быто- В условиях современного индустри- делают главную ошибку. Они считают
вой логике платят за бесплатные про- ального общества, когда уровень бла- услуги по сопровождению OSS глав-
дукты, то нет никаких препятствий для госостояния, уровень гарантирован- ным источником дохода в бизнес-мо-
разработчиков OSS получать эту пла- ных удобств и уровень гарантирован- дели Open Source. И все их заблужде-
ту и данному процессу ничто не угро- ного качества окружающих вещей на- ния, обиды и сетования на обманутые
жает. Значит, настало время обсудить столько высок, что индивидуум даже ожидания основаны на этой вздорной
мотивацию потребителей продукции, не желает обсуждать вопросы цены, идее. Например, можно там прочесть
распространяемой OSS. поскольку разница в качестве конку- такую фразу: «В отсутствие примеров
рирующих предложений уже несущес- стран с высокой долей Open Source...».
Потребителям нравится твенна. Именно в этом случае важны- Что это? Неужели кто-то ждет появ-
платить за продукты, ми становятся вторичные и зачастую ления стран с доминирующим уров-
созданные как OSS бесплатные добавки в виде OSS-про- нем сервисных услуг? Ну, разве лишь
Вот это самое спорное утверждение. дукции, которая и трансформируется кто-то очень наивный. Это все равно,
Именно здесь скрыт секрет успеха OSS. в средство обозначения принадлеж- что требовать от всего гражданско-
Скептик с незамысловатым умом ска- ности к группе и способа достижения го населения высокой сознательнос-
жет, что такое невозможно, зачем пла- общественного уважения! Нет, де- ти прямо с пеленок. Утопия! Но с дру-
тить за то, что получают даром! И здесь ньги никуда не исчезают. И труд тоже. гой стороны, чем не упрек OSS? Вот,
обычно сторонники OSS начинают нуд- Но, присоединяясь к группе, труд раз- мол, не сможете победить и не смо-
ный разговор о вторичных способах по- дают даром, а ожидая уважения, так- жете заменить Linux-ом MS Windows!
лучения дохода, а значит и о вторичных же раздают и деньги! А зачем? Человек не может питаться
способах взимания платы. Ну, вроде то- Господа из Elashkin Research пишут только сладким эскимо, смотреть толь-
го, что «бесплатный сыр только в мы- об этом так: «...OSS использует более ко боевики, читать только детективы
шеловке» и прочее. Чем сами себя современные модели маркетинга...», и всю сознательную жизнь не работать
в угол загоняют, кроме того, что прояв- и чуть далее «...методы движения Open по найму, а играть в теннис. Возможно,
ляют еще и чудеса сутяжничества. Source ближе всего к методам ново- это идеал для кого-то, но не правило.
При обсуждении этого вопроса про- модных сект и религиозных течений.» Пирамида Маслоу сужается к верши-
тивники OSS рассматривают мотива- От таких слов хочется поморщиться не – вот это правило! Поэтому одно
цию абстрактного отдельно взятого че- и сказать, что здесь явно происходит из ключевых утверждений аналитики
ловека и задают вопрос, «зачем пла- манипуляция истиной. Хотя далее они от Elashkin Research, что «тезис о поль-
тить за то, что даром». Это логическая же признаются: «Основной вектор рас- зе OSS для ускоренного развития рын-
ловушка. Надо рассматривать не отде- пространения OSS направлен на тех- ка высоких технологий пока не находит
льного человека, а общество в целом нических специалистов и социально своего подтверждения», не более чем
или отдельного человека в обществен- активных людей...». Ну, здесь совсем уловка (или ошибка, не знаю, что ху-
ном окружении. Как формируется моти- немного осталось, чтобы догадаться, же). Дело в том, что не OSS приводит
вация такого человека? Есть уже дока- что «технические специалисты и соци- к развитию высоких технологий, а раз-
занная теория об иерархии потребнос- ально активные люди» – это именно те, витие технологий в высокоразвитой
тей, известная как пирамида Маслоу. кто занимает верхушку пирамиды Мас- общественной среде порождает OSS!
Чего может добиться человек, оплатив- лоу. Может быть, в следующем опусе Зарождение OSS является «лак-
ший бесплатный продукт? Если он на- специалисты из Elashkin Research оз- мусовой бумажкой», отмечающей до-
ходится на низшей ступени, где важно вучат и эту мысль. стижение обществом определенного
удовлетворение физиологических пот- Теперь снова зададимся вопросом, уровня развития как в технологичес-
ребностей, то такой поступок приведет что угрожает OSS с этой точки зрения. ком плане, так и в плане обществен-
к тому, что далее ему не хватит средств Что может разрушить иерархию пот- ных отношений. Поэтому все рассуж-
для чего-то насущного. Если он нахо- ребностей и отбросить людей на ниж- дения от Elashkin Research на счет OSS
дится на ступени, где важна его бе- ние уровни? Ответ очевиден: факторы, в России, а особенно выводы, постро-
зопасность, такая растрата уменьшит которые могут привести к экономичес- енные на российской статистике, сме-
бюджет мероприятий безопасности. кому регрессу. Даже более того, только ху подобны. OSS в России нет! Есть
А вот если он уже стоит на том уровне, в развитых странах, где число граждан, разработчики-россияне, участвующие
где важны потребности группы, или да- соответствующих верхним уровням пи- в международных OSS-проектах. Есть
же там, где важно уважение его самого, рамиды Маслоу, достаточно велико, отдельные компании, ведущие успеш-
то все кардинально меняется. может зародиться и развиваться дви- ный бизнес в секторе OSS. Но никакое
В этом секрет того, что люди при- жение OSS. Специалисты из Elashkin внедрение OSS в странах с развива-
соединяются к OSS-проектам и ниче- Research приходят к тому же выводу ющейся экономикой, например в Ин-
го не просят взамен – им важна при- путем анализа вторичных способов за- дии, в Китае и в обсуждаемой России,

70
IMHO
не изменит статус этих стран. Так как указ Думы, и тогда мы все бросимся признать достаточными, то послед-
подобные страны становятся лишь на- писать «бесплатные программы»? ним требованием будет финансиро-
хлебниками OSS-проектов и попадают Что вообще нам для этого нужно? вание. То есть надо «влить» в систе-
в зависимость от них. И тут уже совер- Дешевый Интернет? Смотрю на свой му «кровь», и она заработает. Вот это-
шенно правильно отмечено, что «даль- ADSL-роутер, вроде уже есть. Высоко- го-то и не происходит!
нейшее развитие IT в стране будет тор- развитое демократическое общество? Никакие сервисные услуги не на-
мозиться.» Я бы даже усугубил. OSS – Смотрю на экран телевизора, говорят, кормят разработчиков, которые долж-
это реинкарнация «халявы». В свое что тоже есть. Обеспеченные гражда- ны не крутиться вокруг серверов и ра-
время украденные технологии IBM 360 не с высоким уровнем самосознания? бочих станций, а писать код в ком-
сыграли решающую роль в погребе- Смотрю в окно на проезжающие доро- фортных условиях. Значит, все столь
нии отечественной IT. И теперь выжи- гие автомобили и догадываюсь, что их бурно обсуждаемые вторичные спо-
вет лишь та страна, которая не только тоже изрядно. Почему же нет OSS? собы заработка не смогут сыграть су-
возьмет все от OSS, но и вернет об- Тут мне возразят: «А как же ALT Linux, щественной роли в становлении OSS,
ратно не менее! Значит, лишь тогда Этерсофт и другие, которые разра- так как эти поступления будут оседать
можно утверждать о существовании батывают оригинальный отечествен- на счетах сервисных же предприятий
OSS в России, когда наша страна ста- ный OSS?» Дело в том, что эти компа- и не дойдут до разработчиков, если
нет оплачивать собственные проекты нии вынуждены строить свой бизнес только... если только сами сервисные
OSS, и эти проекты станут востребо- по традиционной схеме, и их бюджет компании, как IBM и Novell, не осоз-
ваны за рубежом. А в противном слу- пополняется из поступлений от про- нают необходимость отчислений! Вот,
чае все мы превратимся в обслужива- даж по традиционным физическим опять пришли к мысли о иерархии пот-
ющий персонал, сопровождающий чу- каналам. Сравните их с Fedora Project ребностей.
жие OSS-проекты. или с openSUSE. Почувствуйте разни- Теперь просуммируем все ранее
И вот аксиома номер два: потреби- цу между мелкими частными инициа- сказанное, применительно к вопросам
тели продукции OSS всегда на выбор тивами и деяниями транснациональ- финансирования. Итак, объект финан-
или оплачивают продукцию, или при- ных корпораций. Для того чтобы OSS- сирования – это компания, ведущая
соединяются к разработчикам, то есть проект мог успешно развиваться, он OSS-разработки методами, описан-
возвращают труд, но делают это после не должен попадать в тиски жестких ными в первом разделе настоящей
получения продукта. потребительских требований. То есть статьи. То есть компания со столь вы-
Говоря иначе, потребители OSS вы- надо исключить диктат неграмотного соким уровнем виртуализации своей
нуждаются или работать на него, или потребителя, голосующего «рублем». деятельности, что ее капитализация
платить за него. И поэтому распростра- А в случае ALT Linux и Этерсофт это и IPO на рынке ценных бумаг в эконо-
нение OSS в станах третьего мира мо- всего лишь удачный частный бизнес мической системе, ориентированной
жет привести лишь к тому, что где-то группы лиц, но никто из нас не готов на сырьевые отрасли, вряд ли воз-
в Центральной Африке станут чтить его спонсировать просто так. И мно- можна. Источник финансирования –
нового белого колдуна Марка, но не гочисленные фонды, поощряющие это частные лица и компании, гото-
стоит ждать, что появятся африканс- развитие технологических проектов, вые к поощрению проектов с негаран-
кие инкубаторы OSS, которые будут на зарубежные гранты тоже не готовы. тированной финансовой отдачей или
рекрутировать в свои проекты евро- И многочисленные комитеты, растра- вообще к спонсированию, что в усло-
пейцев. OSS – это своего рода «тро- чивающие российский бюджет, как нам виях фискальных налоговых законов
янский конь». Принятие такого подар- говорят, на развитие наукоемких про- тоже невозможно. Способ финанси-
ка не принесет ничего хорошего ника- ектов, тоже не готовы. И даже россий- рования – это целевые перечисления,
кой «Трое». ские олигархи, времени которых хва- управляемые и контролируемые него-
Вы все еще думаете, что за OSS тает на вздорные телепередачи по по- сударственными и коммерчески толе-
никто не платит? В отсталых стра- иску менеджера-эксгибициониста, то- рантными комитетами, что в условиях
нах да, в передовых выстраиваются же не находят здесь своего интереса. коррумпированного государства тоже,
в очередь! Иначе говоря, для разви- То есть наше общество не готово к со- увы, невозможно.
тых стран OSS давно уже стал инстру- зданию собственного OSS. И поэтому У вас еще остались вопросы о том,
ментом влияния и национальной гор- с удовольствием потребляет и обслу- что мешает OSS и угрожает его разви-
дости. Гордость в розницу не продают, живает зарубежный. тию? Сами подумайте, если предпри-
но все за нее платят. Тут самое время задать вопрос, ятие, называемое коммерческим, от-
а в какой форме общество может вы- дает свою продукцию даром, а с другой
Перспективы OSS разить свой интерес в OSS. Не будем стороны, существует иное предпри-
Cтало ясно, что внутри OSS все готово обсуждать зарубежные страны. Попро- ятие, для которого никакой проводкой
для получения доходов, а потребитель- буем ответить, как это может произой- в балансе и никакой производственной
ская среда точно так же готова платить, ти в нашем отечестве. необходимостью не оправдать оплату
если не прямо по счету, то опосредо- Ключевой момент – это обеспече- работы, которая фактически достает-
ванно как минимум. Так что же теперь ние финансирования. Если уровень ся ему даром, то как может расценить
мешает создать и развивать OSS, на- технологии и подготовка среды по- такую ситуацию типичный простова-
пример, в той же России? Может, нужен тенциальных разработчиков можно тый российский налоговик?

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


IMHO
Но зато теперь можно сказать, ког- му и коммунистическому. Отсюда и на- не остановить. Потому что он усилия-
да у нас появится отечественный OSS. прасное ожидание, что Linux и все про- ми таких компаний, как IBM и Novell,
Это случится, когда «...одна палочка дукты, произведенные OSS, окажутся превращается в инструмент неогло-
и девять дырочек сокрушат целое вой- дешевле проприетарных. А происходит бализма.
ско, когда король...». Ой, чуть раньше, ровно наоборот. Именно Linux получа- И теперь можно ответить на воп-
конечно, но условия не менее сказоч- ется дороже в эксплуатационном цик- рос, угрожает ли что-нибудь OSS. Нет,
ные. Тогда, когда наше общество на- ле для корпоративных потребителей, не угрожает! Напротив, это сам OSS уг-
кормит бедных, обеспечит стариков, чем MS Windows. Да, согласен, пото- рожает оригинальным коммерческим
устроит инвалидов и успокоит неурав- му-то я и работаю на Linux, что это при- проектам. Чужой, импортированный
новешенных экстремистов. Вот тог- носит больше прибыли при меньших OSS – это быстрая и сладкая смерть
да терпимость и доброжелатель- усилиях. Linux и другие OSS являют- национальной IT-индустрии той стра-
ность в обществе возрастут настоль- ся следующей за проприетарными мо- ны, которая не сможет противопоста-
ко, что отечественные OSS-разработки делями формой развития IT-отрасли. вить аналогичный свой OSS. Зачем вы-
получат финансовую поддержку, и ник- И соответственно они несут большую возить «мозги»? Можно подарить «бес-
то не нее не покусится, как сейчас все эксплуатацию разработчикам, дороже платный» OSS и тем привлечь чужих
на злосчастный стабилизационный для потребителей и выгоднее для ин- специалистов к обслуживанию науко-
фонд, который потому и стабилизаци- весторов. Но не надо ждать, что движе- емкой индустрии «доброго дяди» вза-
онный, что его тратить нельзя. ние OSS будет добиваться успеха пов- мен отечественной.
семестно. С появлением коммунисти- Столлман со товарищи, конечно,
Выводы ческих и развитых демократических революционеры. Но как учит История,
Для многих противостояние OSS стран на планете Земля история мно- после каждой революции создается
и проприетарного ПО сосредоточе- гих феодальных и даже рабовладель- свой «НКВД», и за каждый подарок
но в соревновании Linux vs Windows. ческих государств вовсе не заверши- прогресса надо платить. Обесценив
Это очень примитивно, но почти вер- лась путем добровольного присоеди- процесс получения программных про-
но. Ошибкой является стереотипное нения к СССР. Но так же, как неизбе- дуктов, ведущие индустриальные стра-
приравнивание MS Windows к старому жен прогресс в общественных отноше- ны подняли цену его владения на недо-
и капиталистическому, а Linux – к ново- ниях, так и распространение OSS уже сягаемую для прочих высоту!

72
bugtraq

Переполнение буфера при обработке Обход ограничений безопасности в PHP


ELF-файлов в Linux-ядре Программа: PHP 4.4.4 и более ранние версии, PHP 5.1.6
Программа: Linux kernel версии до 2.6.17.11. и более ранние версии.
Опасность: Низкая. Опасность: Низкая.
Описание: Уязвимость существует из-за ошибки на плат- Описание: Уязвимость существует из-за недостаточного
формах IA64 и SPARC при обработке определенных ограничения на смену параметров safe_mode и open_basedir
ELF-файлов. Локальный пользователь может с помощью в функции ini_restore(). Если эти ограничения установлены
специально сформированного ELF-файла аварийно завер- в настройках виртуального хоста веб-сервера, а в файле
шить работу системы. php.ini находятся значения по умолчанию, злоумышленник
URL производителя: http://www.kernel.org. может восстановить значения по умолчанию и обойти огра-
Решение: Установите последнюю версию ядра (2.6.17.11 ничения, установленные в конфигурационном файле веб-
или выше) с сайта производителя. сервера. Пример уязвимой конфигурации:
<Directory /usr/home/frajer/public_html/>
Options FollowSymLinks MultiViews Indexes
Целочисленные переполнения буфера AllowOverride None
php_admin_flag safe_mode 1
в FreeBSD php_admin_value open_basedir /usr/home/frajer/public_html/
Программа: FreeBSD 5.2-5.5. </Directory>
Опасность: Низкая. Эксплоит:
Описание: 1. Уязвимость существует из-за ошибки провер-
<?
ки входных данных в реализации ядра в i386_set_ldt(). Ло- echo ini_get("safe_mode");
кальный пользователь может вызвать панику ядра. Также echo ini_get("open_basedir");
include("/etc/passwd");
существует потенциальная возможность выполнения про- ini_restore("safe_mode");
извольного кода. ini_restore("open_basedir");
echo ini_get("safe_mode");
2. Целочисленное переполнение буфера обнаружено echo ini_get("open_basedir");
из-за недостаточной обработки входных данных в функции include("/etc/passwd");
?>
i386_set_ldt(). Локальный пользователь может вызвать от-
каз в обслуживании системы. Удачная эксплуатация уязвимости позволит злоумыш-
URL производителя: http://www.freebsd.org. леннику получить доступ к содержимому произвольных
Решение: В настоящее время способов устранения уязви- файлов на системе.
мости не существует. URL производителя: http://www.php.net.
Решение: В настоящее время способов устранения уязви-
мости не существует.
Переполнение буфера в Sun Solaris
Программа: Sun Solaris 8, 9, 10. Множественные уязвимости
Опасность: Низкая. в IBM Director
Описание: Уязвимость существует из-за ошибки провер- Программа: BM Director 5.x.
ки границ данных в libX11. Локальный пользователь может Опасность: Низкая.
вызвать переполнение буфера и выполнить произвольный Описание: 1. Уязвимость существует из-за недостаточной
код на целевой системе с привилегиями приложения, ди- обработки входных данных в параметре file в файле Redirect.
намически подключенного к библиотеке. bat. Удаленный пользователь может просмотреть содержи-
URL производителя: http://www.sun.com. мое произвольных файлов на системе. Пример:
Решение: Установите последнюю версию с сайта произ-
http://[host]:411/cgi-bin/Redirect.bat?file= ↵
водителя. %7C..\..\..\..\..\..\....\..\[file]

2. Уязвимость существует из-за ошибки при обработ-


Переполнение буфера в libX11 ке запросов к WMI CIM-серверу. Удаленный пользователь
Программа: libX11 до версии X11R6.5.1. может аварийно завершить работу службы.
Опасность: Низкая. 3. Уязвимость существует из-за ошибки при обработ-
О п и с а н и е : П е р е п ол н е н и е буф е р а о б н а ру же н о в ке запросов. Удаленный пользователь может аварийно за-
_XKB_CHARSET-переменной окружения, когда DISPLAY вершить работу IBM Director.
установлен как «X Window System server» с включенным 4. Удаленный пользователь может получить доступ
XKEYBOARD-расширением. Успешная эксплуатация уяз- к файлам куки и аутентификационным данным в HTTP-за-
вимости позволяет получить привилегии приложения, ди- головках с помощью функционала HTTP TRACE.
намически подключенного к библиотеке. URL производителя: http://www.ibm.com.
URL производителя: http://www.libx.org. Решение: Установите последнюю версию (5.10) с сайта
Решение: Установите X11R6.5.1 или более позднюю вер- производителя.
сию.
Составил Александр Антипов

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


образование

Python – в школу!

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

Что должно быть фундаментальной дисциплины, вы- то есть понимание процессов, кото-
на уроках информатики? рождаясь в некие курсы подготовки рые заложены в то или иное явление.
Сейчас со школьным предметом «Ин- секретарей-машинисток. Мы же не учим детей на уроках физи-
форматика» сложилась довольно не- Однако основная задача средней ки, как менять головку блока цилинд-
приятная ситуация – он теряет роль школы – дать общее образование, ров двигателя ЕМЗ-236? И на биоло-

74
образование
гии не преподаётся практика протези- Ну а как тогда объяснить школьни- те с учениками, постепенно наращи-
рования зубов. Эти вопросы – уже за- ку, как именно работает операционная вая сложность и позволяя на первых
дача профессионального образования, система или тот же Word? Без понима- этапах получить осязаемый резуль-
но никак не общего. ния основ программирования, без при- тат, не углубляясь в излишние под-
А вот с информатикой получилась косновения к ним на практике инфор- робности.
ситуация как раз противоположная. мационные системы так и останутся Во-вторых, такому языку програм-
Определённые «общие» понятия, та- «чёрными ящиками», а неизвестность мирования нужна определённая «про-
кие как архитектура ЭВМ (по плака- ведь всегда пугает. зрачность», чтобы детали работы раз-
там, нарисованным в 80-х годах) и ос- Естественно, не нужно ставить сво- рабатываемой программы не были
новы алгоритмизации, по инерции ей задачей научить школьника писать скрыты за «виджетами и прочими гад-
ещё преподаются, хотя порой и с до- драйверы к Linux или полнофункцио- жетами».
вольно сильным отрывом от действи- нальные клиенты для сетей BitTorrent. В-третьих, он должен быть совре-
тельности. Но показать частичку этого «вол- менным. Не нужно бояться расска-
А вот практическая составляющая шебства», когда из нескольких десят- зывать детям про объектный под-
сводится к программам типа «Вве- ков строк самых обычных букв и цифр ход к программированию, про моду-
дите A, введите B, получите A + B» рождается работающая программа – ли и библиотеки. Ведь это всё есть,
на Бейсике и «глубокому» освоению это просто необходимо. на этих понятиях основана работа сов-
процедуры создания таблицы в Word, Причём важным моментом здесь ременных вычислительных систем,
когда любое отклонение мышки от за- является «жизненность» этих экспери- с этим ученикам предстоит столкнуть-
данной преподавателем траектории ментов, их соответствие современным ся в будущем, если они выберут себе
жестоко карается... стандартам и тенденциям. Ну и, конеч- специальность, связанную с компью-
Мне кажется, такой подход как раз но же, полезность, практическая цен- терами. В конце концов базовые кон-
и приводит к тому, что, устроившись ность. Если программа не вписывается цепции ООП совсем не сложнее орга-
на работу или поступив в вуз, недав- в интерфейс нынешних систем и не де- нической химии и общей теории отно-
ний ученик как огня боится компью- лает ничего полезного, то её разработ- сительности.
тера, полностью теряет ориентацию ка вряд ли сможет вызвать необходи- В-четвёртых, было бы хорошо, ес-
в системе при минимальных измене- мый интерес и желание действитель- ли бы выбранный язык программиро-
ниях интерфейса и при всплывании но разобраться во всей этой «кухне», вания был «практикующим». То есть
любого окошка, не упомянутого в инс- вместо того чтобы просто «содрать» это должен быть не искусственный,
трукции, бежит к системному адми- код у соседа по парте. пусть и идеально соответствующий це-
нистратору. лям образования, а всё-таки реальный
По моему глубокому убеждению, Что нам надо от языка инструмент. Если навыки, полученные
сейчас назрела необходимость вер- программирования? в школе, нельзя будет применить до-
нуть информатике былую «фундамен- Итак, возникает следующий вопрос – ма для разработки какой-нибудь «за-
тальность», когда изучаются не пос- а какой же язык программирования пускалки для игрушек», то их цен-
ледовательность «кликов» для запус- лучше всего подходит на роль «учебно- ность будет уже заметно ниже. А ес-
ка веб-браузера, а основы архитекту- го»? Традиционно это Basic или Pascal, ли эти знания пригодятся и в универ-
ры операционной системы и её орга- но, к сожалению, сейчас они несколь- ситете, и на работе – так вообще за-
низация; не назначение иконок на па- ко устарели. Впрочем, чтобы не гадать мечательно.
нели инструментов в Excel, записыва- на кофейной гуще, попробуем сформу- Ну и, наконец, дополнительными
емое под диктовку, а базовые поня- лировать основные требования, кото- плюсами будут доступность самого
тия графического интерфейса поль- рым должен (по крайней мере, в идеа- языка программирования и среды раз-
зователя... Причём в идеале – абс- ле) соответствовать язык программи- работки, а также его многоплатфор-
трагируясь от конкретной операци- рования для школы. менность, то есть возможность исполь-
онной системы. Во-первых, он должен быть прост зовать его независимо от того, рискнёт
Безусловно, практическая рабо- и понятен. Если для того, чтобы вывести ли школа выбрать в качестве базовой
та тоже необходима, но именно как на экран любимое всеми «Hello, world!», платформы Linux или «останется вер-
практикум, дополняющий основной потребуется целую четверть рассказы- на» системам Windows.
курс. вать пятиклассникам про «кучи», сте-
ки и динамическое выделение памя- Почему Python – лучший
Нужно ли изучать ти, то такой язык должен быть отбро- выбор?
языки программирования? шен сразу. Теперь попытаюсь объяснить, поче-
Понятно, что компьютеры изучать не- Но с другой стороны, он также му я вынес в заголовок статьи имен-
обходимо. А нужно ли в школе препо- не должен быть и слишком прос- но Python. Анализ сформулирован-
давать программирование? Ведь мы тым, не позволяющим «выпрыгнуть» ных выше критериев показывает, что
только что решили, что не стоит гото- за пределы элементарных консольных Python в той или иной мере соответс-
вить из учеников полноценных специ- диалогов. То есть в идеале язык про- твует всем этим требованиям.
алистов в той или иной области, отби- граммирования должен обладать спо- Написать первую программу на нём
рая хлеб у вузов и колледжей. собностью «эволюционировать» вмес- предельно просто:

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


образование
print ‘Ура! Я программирую!!!’ торой читается код на Python. Про- в чём не уступающий языку Python.
граммиста, написавшего тысячи строк Но его вольный стиль и возможность
И всё! Если потребуется в буду- на Java, все эти отступы могут раздра- писать код хоть ёлочкой, хоть столби-
щем показать на практике концеп- жать, но для начинающего разработчи- ком, хоть вообще в одну строку – слиш-
цию переменных, просто развиваем ка они позволяют не запутаться в собс- ком тяжёлое испытание для неокреп-
этот скрипт: твенном коде, не говоря уже про чужой. ших детских пальчиков, не привыкших
А ведь умение разбираться в чужом, к определённому стилю программиро-
message = ‘Ура! ↵ уже готовом коде, и использовать его вания. Да и графический интерфейс
Я использую переменные!!!’
print message в своей программе – это тоже непре- Python более «интегрирован» в язык,
менный и очень важный элемент про- чем графические модули к Perl. Кро-
И так, шаг за шагом, можно зайти граммирования, о котором почему-то ме того, следует отметить и более яс-
настолько далеко, насколько это пот- часто забывают. ную и простую для понимания объект-
ребуется. Вплоть до графического ин- Далее, Python – безусловно, совре- ную концепцию Python.
терфейса и объектов. Причём Python менный язык. Достаточно открыть лю- В последние годы Perl всё больше
позволяет выбирать любую стратегию бой дистрибутив Linux и посмотреть, и больше вытесняется набирающим
преподавания: и быть «на шаг впере- что используется для многих средств силу PHP, причём не только на ниве
ди», когда с каждым разом вводятся администрирования и даже игр. Это же веб-программирования. Безусловно,
всё новые и новые понятия, и «на шаг говорит и о том, что им пользуются это очень простой и понятный язык,
позади», когда сами ученики начинают на практике, что это – «живой», пос- но, на мой взгляд, он имеет и те чер-
чувствовать, что какую-то задачу мож- тоянно развивающийся язык програм- ты, которые я отнёс к недостаткам язы-
но решить проще, и таким образом, за- мирования. ка Perl, в частности, излишнюю «воль-
дают темп движению вперёд. Ну и то, что он совершенно беспла- ность» стиля. Плюс к этому его (былая,
Python прекрасно подходит для де- тен, не требует дорогостоящих инс- но ещё не забытая) ориентированность
монстрации и пооперационного (ли- трументариев, замечательно работа- на веб-разработку может привести
нейного), и процедурного, и объект- ет практически на всех современных к слишком однобокому подходу в его
ного подходов. Так что преподавате- операционных системах, делает его преподавании.
лю не придётся переключаться с од- ещё более привлекательным. Кстати, английского языка бояться
ного языка программирования на дру- А что же его «конкуренты»? Basic не нужно. Есть мнение, что использо-
гой по мере усложнения излагаемого и Pascal, внеся немалый вклад в раз- вание «реальных» языков программи-
материала. витие информационных дисциплин, рования создаёт определённый барь-
Причём и работа с объектами, к сожалению, потеряли свою актуаль- ер для детей, изучающих другой инос-
и программирование графическо- ность. Их «визуальные» последовате- транный язык, не английский. Но пос-
го интерфейса осуществляются на ли – Visual Basic и Delphi – мало пригод- кольку в программировании не требу-
Python достаточно легко и понятно, ны для преподавания программирова- ется знать времена глаголов и прави-
и в то же время без излишнего упро- ния, поскольку не позволяют видеть ла построения деепричастных оборо-
щения и «визуализации», позволяя ра- скрывающийся за «мастерами» код, тов, а выучить пару десятков новых
зобраться, что называется, на нижнем и тем самым не дают полного понима- слов – вряд ли такая уж непосильная
уровне, как на самом деле формиру- ния того, как на самом деле работают задача, то на самом деле нет и никако-
ются окна графического интерфейса программы. Да и высокая стоимость го барьера. Так что различные искус-
и как на них появляются кнопки, поля инструментов разработки не позво- ственные языки вроде РЯПдш («Рус-
ввода; почему что-то происходит, ес- ляет их применять достаточно широ- ский Язык Программирования для
ли щёлкнуть по той или иной кнопке, ко (даже если школы и получат их по школы») лишь усложняют ситуацию,
и т. д. По себе помню, сколько востор- какой-нибудь льготной «академичес- отрывая теорию от практики и плодя
га доставляет простая линия на экра- кой» лицензии, школьники всё равно лишние сущности.
не, но не прочерченная мышкой, а на- будут лишены возможности поставить Так что, при всём богатстве альтер-
рисованная моей собственной про- на свой домашний компьютер полно- натив Python, как мне кажется, на се-
граммой! ценную версию). годняшний день является идеальным
Прозрачность Python тоже не вы- Про языки «семейства Си» вооб- кандидатом, чтобы вдохнуть новую
зывает сомнений – вплоть до того, что ще можно не упоминать – их сложность жизнь в такую жизненно необходимую
можно заглянуть в исходный код ка- просто непостижима для школьного (извините за каламбур) школьную дис-
кого-то модуля и убедиться, что внут- уровня. К сожалению, сюда же я отно- циплину, как информатика.
ри у него всё то же самое, что расска- шу и Java. Несмотря на высокую попу-
зывает преподаватель. Да и что мо- лярность этого языка, особенно в кор- 1. Ремнёв А. А. Программирование в кур-
жет быть прозрачнее, чем открыть поративном секторе, и сравнительную се средней школы. – http://som.fio.ru/
обычный текстовый файл, ввести са- простоту разработки, всё же его «абсо- item.asp?id=10009522
мые обычные строки и получить ито- лютная и непреклонная объектность» 2. Ильясов А. Н. Один из подходов к изу-
говый результат безо всякой компиля- будет являться барьером на первых чению программирования в базовом
ции, компоновки и т. п.? шагах обучения. курсе информатики средней школы –
Прибавим к этому лёгкость, с ко- Perl? Да, хороший, мощный, ни http://www.ito.su/2001/I/I-2-38.html.

76
полезные советы

Используйте функцию map()


И не только её. Python предоставляет три мощных функ-
ции для обработки последовательностей – map(), filter() Используйте xrange()
и reduce(). Первая позволяет применить к каждому эле- В Python, как известно, нет цикла for в стиле языка C –
менту одной или нескольких последовательностей задан- здесь for выполняет проход по элементам последователь-
ную функцию, вторая – получить подпоследовательность ности (в Perl есть похожий оператор – foreach). Поэтому
по тому или иному критерию, третья – «свернуть» последо- для построения циклов, записываемых, скажем, в Perl
вательность (например, просуммировать все элементы): как for($i=0; $i < 1000; $i++), в Python используется фун-
>>> def tostr(a, b):
кция-генератор последовательности – range(), формирую-
... return a + b щая список целых чисел, по которому затем и выполняет-
... ся цикл: for i in range(1000).
>>> list = [1,2,3,4,5]
>>> map(str, list) Однако это неэффективно на больших значениях – ведь
['1', '2', '3', '4', '5'] сначала нужно создать список, разместить его в памяти,
>>> filter(lambda i: i>3, list)
[4, 5] и только затем начнётся обработка цикла. Избежать это-
>>> reduce(tostr, list) го позволяет функция xrange(), которая не формирует пос-
15
>>> reduce(tostr, map(str, list)) ледовательность физически, а создаёт объект, который
'12345' лишь имитирует её, генерируя нужные элементы по мере
Это не только удобно, но и быстро, поскольку внутрен- необходимости.
ний цикл этих функций реализован на C. Для функции filter() Благодаря тому, что внутренне xrange() реализована
показано применение lambda-функции. Так же можно бы- на C, она выполняется довольно быстро. А поскольку пос-
ло бы поступить и в случае с reduce(), но для наглядности ледовательность не требует размещения в памяти, можно
оставлен «классический» способ. писать даже такие циклы:
for i in xrange(10000000):
Подружитесь с lambda . . . .
Иногда возникает необходимость использовать некоторую Использование range() с таким значением привело бы
функцию «локально». В Python использовать безымянную систему к непрерывному «свопингу».
функцию позволяет оператор lambda:
>>> a = lambda a,b: a*a + a*b + b*b
>>> a(2,3) # аргументы 2 -> a, 3 -> b
19
Выносите максимум за пределы цикла
>>> (lambda a,b: a+b)(2,3) Истина, известная любому студенту. В Python за пределы
5 цикла можно вынести даже определение методов:
Гораздо больший смысл она приобретает там, где син- list = []
таксис требует указать функцию, но определять её опера- func = list.append
for i in xrange(5000000):
тором def неудобно. Типичный пример – функции обработки # list.append(i)
последовательностей, описанные в следующем совете. func(i)
Казалось бы – какая мелочь! Но благодаря тому, что
Складывайте строки вдумчиво на каждой итерации цикла интерпретатору не приходится
Сложение строк в Python выполняется не слишком быстро. искать метод append() у объекта list, этот код выполняется
Поэтому если вам нужно получить строку из списка элемен- быстрее «обычного» почти на 30% (на реальных, более по-
тов, лучше использовать для этого метод join: лезных циклах, конечно, прирост скорости будет не столь
ошеломительным).
#s = ''
#for i in xrange(1000000):
# s += str(i)
s = ''.join([str(i) for i in xrange(1000000)])
Живите в ногу со временем
Последняя строка, помимо того что занимает меньше 19 сентября выпущен Python 2.5. Помимо ряда обычных
места в коде, чем предыдущие три (которые закомменти- для любой новой версии улучшений и исправлений оши-
рованы и соответствуют «стандартному» решению), ещё и бок, в синтаксисе языка появился ряд новых конструкций,
отработает процентов на 15 быстрее. Если работать нужно а также заявлена более высокая скорость работы, особен-
с уже готовой последовательностью, как и бывает на прак- но с Unicode-строками.
тике, а не генерировать её искусственно, то прирост скоро- Этот релиз объявлен как пригодный для промышлен-
сти будет ещё выше. ного использования, так что если вы желаете воспользо-
А вот повсеместный совет вместо strA + strB использовать ваться всеми этими преимуществами – смело ставьте но-
форматное преобразование ‘%s%s’ % (strA, strB), на прак- вую версию.
тике не подтвердился – по крайней мере, в Python 2.4.3 про-
стое сложение выполнялось примерно на 35% быстрее, чем Сергей Супрунов
форматирование. С ростом размера строк этот разрыв со-
кращается, но даже при сложении строк из 26000 символов
традиционное суммирование выполнялось быстрее.

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


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

Многоядерные процессоры
и проблемы, ими порождаемые,
в ОС семейства NT

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

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

78
программирование
цы могли позволить себе иметь такую ные машины» мы будем по-
штучку на рабочем столе. нимать как истинно мно-
Теперь же все изменилось. Исчер- гопроцессорные системы,
пав резервы тактовой частоты, произ- так и компьютеры, постро-
водители процессоров сначала пред- енные на базе многоядер-
ложили нам Hyper-Threading (два вир- ных процессоров или про-
туальных процессора в одном), а затем цессоров с Hyper-Threading).
и многоядерные процессоры (несколь- Прик ладное приложение
ко полноценных процессоров на одном или драйвер устройства,
кристалле). И хотя до «эмуляции» на- спроектированный для од-
стоящей многопроцессорной системы нопроцессорной системы,
им еще далеко (многоядерные процес- не требует никакой адапта-
соры имеют одну шину, один контрол- ции для переноса на много-
лер прерываний и т. д.), дефекты про- процессорную систему, ес-
граммного обеспечения уже начина- ли, конечно, он спроектиро-
ют проявляться. ван правильно. Многие ти-
Проблема на самом деле очень се- пы ошибок (и в особеннос-
рьезна и относится не только к про- ти ошибки синхронизации)
граммис там- самоучкам, к лепаю - могут годами не проявлять-
щим мелкие утилиты, но затрагива- ся в однопроцессорных кон-
ет и весьма именитые корпорации, фигурациях, но завалива-
в том числе специализирующиеся на ют многопроцессорную ма-
мобильных устройствах. Вот что пи- шину каждые десять минут,
шет AMD в руководстве по програм- а то и чаще.
мированию под многоядерные про- Исправление ошибок
цессоры: «...the primary issues that the требует переделки исходных Рисунок 1. В симметричной многопроцессорной
mobile industry typically faced involved текстов (иногда очень зна- системе (которой является Windows NT и ее
потомки), каждый поток может исполняться
maximizing performance in a battery- чительной), но… что делать, на любом процессоре
operated environment, handling sleep если все, что у нас есть – это
states and non-standard display and двоичный файл? Хорошо, если дефек- точное приложение, на многопроцес-
I / O s u b sys te m s , a n d l ow -vo l t ag e ты исправлены в новой версии (кото- сорной машине оно будет выполняться
considerations. Thus, many device рая, между прочим, денег стоит), а ес- с той же самой скоростью, что и на од-
drivers were tuned to maximize reliability ли нет? нопроцессорной (или даже чуть мед-
and performance in those singleprocessor Эта статья адресована как самим леннее, за счет накладных расходов
mobile environments: and many haven’t разработчикам, так и продвинутым на поддержку многопроцессорности)
even been tested in a multiprocessor пользователям, умеющим держать (см. рис. 1).
system, even in the manufacturer’s own hiew в руках и не шарахающихся в сто- Процесс – более крупная испол-
test lab» («…основная проблема в том, рону от дизассемблера. Мы постара- нительная единица. Грубо говоря, это
что мобильная индустрия в основном емся рассмотреть как можно больше «коробок», в котором находятся прина-
сосредоточена на максимизации про- способов решения проблем, а вопро- длежащие ему потоки, исполняющие-
изводительности в условиях питания сы правомерности модификации дво- ся в едином адресном пространстве.
от батарей, обработке «спящего» со- ичного кода пускай решают юристы Каждый поток обладает своим собс-
стояния, нестандартных дисплеев, и… моралисты. твенным стеком и набором регист-
подсистемы ввода/вывода и умень- ров, но вынужден разделять глобаль-
шении питающего напряжения. Поэ- Прикладной уровень ные переменные и динамическую па-
тому большинство драйверов наце- Минимальной единицей исполнения мять вместе с другими потоками про-
лено на максимальную надежность в Windows является поток (thread), ко- цесса, что порождает проблему синх-
и производительность в однопроцес- торый в каждый момент времени мо- ронизации. Допустим, один поток вы-
сорном окружении. Многие из них жет исполняться только на одном про- водит ASCIIZ-строку на экран, а дру-
не были протестированы на много- цессоре. Несмотря на то что в боль- гой – в это же самое время выполня-
процессорных машинах, даже в про- шинстве случаев этот процессор не яв- ет над этой строкой функцию strcat(),
изводственных тестовых лаборатори- ляется жестко закрепленным и плани- удаляющую символ нуля до заверше-
ях» (http://developer.amd.com/assets/ ровщик может запускать поток на лю- ния операции копирования. Как следс-
16_Interrupts.pdf)). бом свободном процессоре, поток ос- твие – первый поток «вылетит» за пре-
Основной «удар» различий одно- тается неделимым (как атом), и раз- делы строки и пойдет чесать напа-
и многопроцессорных машин опера- личные части потока никогда не выпол- ханную область памяти до тех пор
ционная система и BIOS берут на се- няются более чем на одном процессо- пока не встретит посторонний нуль
бя (примечание: здесь и далее по тек- ре одновременно. То есть, если в сис- или не нарвется на исключение типа
сту под термином «многопроцессор- теме запущено только одно однопо- access violation.

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


программирование
лась, но так и не сыскала большой по- вом C-функции и обращением к errno,
пулярности). Процессы исполняются в это надо очень сильно «постараться».
раздельных адресных пространствах А вот на многопроцессорной систе-
и могут обмениваться данными только ме, где несколько потоков выполня-
через явные средства межпроцессор- ются параллельно, вероятность одно-
ного взаимодействия, что значительно временного вызова C-функций значи-
упрощает задачу синхронизации. тельно повышается и тщательно про-
Теперь поговорим о том, почему тестированная (на однопроцессорной
на однопроцессорных машинах ошиб- машине), проверенная и отлаженная
ки синхронизации проявляются зна- программа начинает регулярно падать
чительно реже, чем на многопроцес- без всяких видимых причин!
сорных. Дело в том, что при наличии
только одного процессора потоки вы- Уровень драйверов
полняются последовательно, а не па- Драйверы обычно не создают сво-
Рисунок 2. Архитектура контроллера раллельно. Иллюзия одновременного их собственных потоков, довольству-
прерываний на двухпроцессорной машине
выполнения создается лишь за счет ясь уже существующими, но проблем
Предотвратить такую ситуацию того, что каждый поток работает в те- с синхронизацией у них даже боль-
можно двояко. Либо перепис ать чение очень короткого (с человечес- ше, чем у приложений. Хуже всего то,
strcat() так, чтобы она сначала дуб- кой точки зрения) промежутка вре- что на многопроцессорной системе од-
лировала символ нуля, а только по- мени, называемого квантом, а потом ни и те же части драйвера могут одно-
том замещала его символом копи- системный планировщик передает уп- временно выполняться на различных
руемой строки, либо воспользовать- равление другому потоку. Длитель- процессорах! Чтобы понять причины
ся одним из средств синхрониза- ность кванта варьируется в зависи- такого беспредела, нам необходимо
ции, например, критической секцией, мости от множества обстоятельств разобраться с базовыми понятиями
фактически представляющей собой (подробнее этот вопрос рассмот- ядра: IRQL и ISR.
флаг занятости. Поток, копирующий рен в статье «Разгон и торможение Планировка драйверов осущест-
строку, взводит этот флаг перед вы- Windows NT»), но как бы там ни было, вляется совсем не так, как потоков
зовом strcat(), а поток, выводящий ее квант – это целая вечность для про- прикладного режима. Если приклад-
на экран, проверяет состояние фла- цессора, за которую он очень многое ной поток может быть прерван в лю-
га и при необходимости ждет, пока успевает сделать. бое время безо всякого вреда, пре-
тот не освобождается, и тут же взво- Рассмотрим следующую (кстати, рвать работу драйвера можно только
дит его вновь, чтобы во время выво- вполне типичную) ситуацию. Поток вы- с его явного разрешения, иначе нор-
да строки никто другой не вздумал ее зывает какую-нибудь функцию из стан- мальное функционирование системы
модифицировать. дартной библиотеки C, а затем считы- станет невозможным. Драйверы, об-
В первом случае, требуется всего вает глобальную переменную errno, рабатывающие асинхронные собы-
лишь переделать strcat(), а во втором – в которую функция поместила код тия, должны быть либо полностью ре-
скоординировать действие несколь- ошибки. В многопоточной программе, ентерабельными (т.е. корректно «под-
ких потоков, малейшая небрежность выполняющейся на однопроцессорной хватывать» новое событие во время
в синхронизации которых оборачива- машине, такая стратегия работает до- обработки предыдущего), либо каким-
ется либо неполной синхронизацией вольно уверенно, хотя и является по- то образом задерживать поступле-
(например, поток, выводящий строку рочной. Существует угроза, что поток ние новых событий, пока они не раз-
на экран, не взводит перед этим флаг будет прерван планировщиком после берутся с текущим. Первый механизм
занятости), либо взаимоблокировкой завершения C-функции, но до обра- гораздо более сложен в реализации.
(когда два или более потоков ждут щения к переменной errno
освобождения друг друга, но никак и управление получит дру-
не могут дождаться, поскольку один гой поток, вызывающий
из них взвел флаг занятости и забыл «свою» C-функцию, затира-
его сбросить). К сожалению, при рабо- ющую прежнее содержимое
те со сложными структурами данных errno. И, когда первый поток
без механизмов синхронизации обой- вновь получит управление,
тись уже не получается. Синхронизи- он увидит там совсем не то,
рующий код как бы «размазывается» что ожидал! Однако вероят-
по всей программе, и проверить его ность этого события на одно-
работоспособность становится очень процессорной машине край-
трудно. Отсюда и ошибки. не мала. Тело потока состоит
С Linux/BSD в этом плане дела об- из тысяч машинных команд,
стоят намного лучше. Основной еди- и переключение контекста
ницей выполнения там является про- может произойти где угодно. Рисунок 3. Уровни запросов прерываний
цесс (поддержка потоков уже появи- Чтобы попасть между вызо- и их назначение

80
программирование
Программисты, писавшие резиден-
тов под MS-DOS, должно быть, помнят,
как часто им приходилось пользовать-
ся командой CLI, запрещающей преры-
вания на время перестройки критичес-
ких структур данных. Допустим, наш
русификатор устанавливает новый об-
работчик клавиатурного прерывания.
Он записал в таблицу векторов свое
смещение и только собирался запи-
сать сегмент, как пользователь вдруг
нажал на клавишу, и процессор пере-
дал управление по адресу со старым
сегментом и новым смещением.
Программируемый контроллер
прерываний (Programmable Interrupt
Controller, или сокращенно PIC) ориги- Рисунок 4. Обработка аппаратных прерываний на машине с одним процессором
нального IBM PC был построен на мик-
росхеме i8259A, сейчас же контроллер
прерываний встроен непосредствен-
но в южный мост чипсета и эмулирует
i8259A лишь в целях обратной совмес-
тимости. PIC имеет 15 линий прерыва-
ний, а каждая линия – свой приоритет.
Во время обработки прерываний пре-
рывания с равным или более низким
приоритетом маскируются, так сказать,
откладываясь на потом. Иногда это по-
могает, иногда нет. Например, если за-
маскировать прерывания от таймера
более чем на один «тик», системные
часы начнут отставать. А если проигно-
рировать прерывания от звуковой кар-
ты и вовремя не «скормить» ей очеред-
ную порцию данных, она начнет «буль- Рисунок 5. Маскировка прерываний драйвером на двухпроцессорной машине
кать», заставляя пользователя рыдать
от счастья и биться головой о монитор. ный. Нормальное выполнение потока гие программисты просто повыша-
Прерывания с более высоким приори- происходит на нулевом уровне, назы- ют уровень IRQL ядерной API-фун-
тетом прерывают менее приоритетные ваемом пассивным (PASSIVE), и его кций KeRaiseIrql (), а при выходе
прерывания, возвращая им управле- может прерывать любое асинхрон- из ISR восстанавливают его вызовом
ние после того, как они будут обрабо- ное событие, возникающее в системе. KeLowerIrql(). Даже если они не дела-
таны. Усовершенствованные клоны При этом операционная система повы- ют этого явно, за них это делает сис-
PIC (Advanced Programmable Interrupt шает текущий IRQL до уровня возник- тема. Рассмотрим происходящие со-
Controller, или сокращенно APIC) обес- шего прерывания и передает управле- бытия более подробно.
печивают 256 линий прерываний и, ние его ISR (Interrupt Service Routine – Допустим, поток A работает
в отличие от обычного PIC, способны процедура обработки прерывания), на уровне IRQL равном PASSIVE_LEVEL
работать в многопроцессорных сис- предварительно сохранив состояние (см. рис. 4). Устройство Device 1 воз-
темах (см. рис. 2). текущего обработчика. бу ж дает аппаратное прерывание
Операционная система Windows Приоритеты с номерами 1 и 2 отда- с уровнем DIRQL (т.е. с номером 3 до 31
поддерживает PIC и APIC контролле- ны под программные прерывания (на- включительно). Операционная систе-
ры, но использует свою собственную пример, возникающие при ошибке об- ма прерывает выполнение потока A,
систему приоритетов прерываний, из- ращения к странице памяти, вытеснен- повышает IRQL до DIRQL и передает
вестную под аббревиатурой IRQL, ко- ной на диск), а все остальные обслу- управление на ISR устройства Device 1.
торая расшифровывается как Interrupt живают аппаратные прерывания от пе- Обработчик прерывания обращает-
Request Levels (уровни запроса пре- риферийных устройств, причем преры- ся к устройству Device 1, делает с ним
рываний). Всего существует 32 уров- вание от таймера имеет приоритет 28 все, что оно требует, ставит в очередь
ня, пронумерованных целыми числа- (см. рис. 3). отложенную процедуру DpcForISR()
ми от 0 до 31. Уровень 0 имеет мини- Чтобы замаскировать прерыва- для дальнейшей обработки и понижает
мальный приоритет, 31 – максималь- ния на время выполнения ISR, мно- IRQL до прежнего уровня. Отложенные

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


программирование
и начинается выполнение отложенной
процедуры DpcForIsr(), стоящей как
в очереди процессора 0, так и в оче-
реди процессора 1. Да! Вы не ошиб-
лись! Процедура DpcForIsr() будет
исполняться сразу на обоих процес-
сорах одновременно, отвечая за об-
работку двух прерываний от одного
устройства! Как вам это нравится?!
В такой ситуации очень легко превра-
тить совместно используемые дан-
ные в мешанину, возвратив неожи-
данный результат или завесив систе-
му (см. рис 7).
Чтобы упорядочить выполнение
отложенных процедур, необходи-
мо использовать спинлоки (spin-lock)
или другие средства синхронизации,
работающие по принципу флагов за-
нятости (см. рис. 8).
Другим источником ошибок явля-
ются модификация кода ядра систе-
мы или загружаемых драйверов. Мно-
гие программы, такие как брандма-
уэры, антивирусы, защиты или виру-
сы, перехватывают некоторые функ-
ции для управления трафиком, авто-
матической проверки открываемых
Рисунок 6. Обработка аппаратных прерываний драйвером на двухпроцессорной машине файлов и т. д. Модификация потенци-
ально опасна даже на однопроцессор-
процедуры (Deferred Procedure Calls, в то время как поток B выполняется ных машинах, а о многопроцессорных
или сокращенно DPCs) выполняются на процессоре 1 с тем же самым IRQL и говорить не стоит! Это отвратитель-
на IRQL, равном 2 (DISPATCH_LEVEL), (см. рис. 6). Устройство Device 1 посы- ный прием программирования, которо-
и потому не могут начать свою работу лал процессору 0 сигнал прерывания. го настоятельно рекомендуется избе-
вплоть до выхода из ISR. Операционная система «ловит» его, гать, но… он есть! И это факт!
Если во время выполнения ISR повышает IRQL процессора 0 до зна- Большинство программистов прос-
возникнет прерывание, то оно бу- чения DIRQL и передает управление то внедряют в начало функции jump
дет замаскировано. Если прерыва- ISR устройства Device 1, которое дела- на свой перехватчик (предваритель-
ние возникнет во время выполнения ет с устройством что положено и ста- но скопировав оригинальные байты
DpcForISR(), операционная система вит в очередь отложенную процедуру в свой же собственный буфер). При за-
прервет ее работу, передаст управ- DpcForIsr() для дальнейшей обработ- вершении работы обработчик выпол-
ление ISR, который поставит в оче- ки. По умолчанию функция добавля- няет сохраненные инструкции, после
редь еще одну отложенную процеду- ется в очередь того процессора, на ко- чего передает управление на первую
ру и вновь возвратится в DpcForISR(). тором запущена ISR (в данном случае машинную инструкцию перехвачен-
Таким образом, сколько бы прерыва- процессора 0). ной функции, следующую за коман-
ний ни возникало, отложенные проце- Устройство Device 1 вновь гене- дой jump. Поскольку на x86-процессо-
дуры обрабатываются последователь- рирует сигнал прерывания, который рах длина команд непостоянна, пере-
но, в порядке очереди. на этот раз посылается процессору 1, хватчику приходится тащить за собой
На однопроцессорных системах та- поскольку процессор 0 еще не успел целый дизассемблер (называемый ди-
кая схема работает вполне нормально, завершить обработку ISR и не пони- зассемблером длин). Однако это не са-
но вот на многопроцессорных… каж- зил IRQL. Система повышает IRQL мое страшное.
дый процессор имеет свой IRQL, не- процессора 1 до DIRQL и передает Во-первых, посторонний отладчик
зависимый от остальных. Повыше- управление IRQ устройства Device 1, мог внедрить в начало (или середину
ние IRQL на одном процессоре никак который делает с устройством все функции) программную точку остано-
не затрагивает все остальные, и ге- что нужно и ставит отложенную про- ва, представляющую собой однобай-
нерация прерываний продолжается цедуру DpcForIsr() в очередь на про- товую команду с опкодом CCh, сохра-
(см. рис. 5). цессоре 1. нив оригинальный байт где-то в па-
Допустим, поток A выполняется на Затем ISR на обоих процессорах мяти. В этом случае вставлять jump
процессоре 1 с IRQL=PASSIVE_LEVEL, завершаются, система понижает IRQL, поверх CCh ни в коем случае нельзя,

82
программирование
поскольку отладчик может заметить,
что точка останова исчезла, и поста-
вить ССh еще раз, забыв обновить
оригинальное содержимое, оставше-
еся от старой команды. Корректный
перехват в этом случае практичес-
ки невозможен. Теоретически мож-
но внедрить jump во вторую инструк-
цию, но для этого нам необходимо оп-
ределить, где заканчивается первая,
а поскольку ее начало искажено про-
граммной точкой останова, для ее де-
кодирования придется прибегнуть
к эвристическим методам, а они не-
надежны. К счастью, большинство
Рисунок 7. Отсутствие синхронизации при обработке прерываний на двухпроцессорной
функций начинаются со стандартно- машине приводит к порче разделяемых данных
го пролога PUSH EBP/MOV EBP,ESP
(55h/8Bh ECh), поэтому, встретив пос- хваченных функций и, если это дейс- кают (если они вообще возникают, ху-
ледовательность CCh/8Bh ECh, мы твительно «наш» адрес, выполняем ра- же когда программа делает из обраба-
вполне уверенно можем внедрять свой нее сохраненную машинную инструк- тываемых данных «винегрет») доволь-
jump, начиная с MOV EBP,ESP. цию в своем буфере и передаем управ- но далеко от места «аварии». То же
Вот только тут есть один нюанс. Ко- ление на вторую инструкцию перехва- самое относится и к голубым экранам
манда ближнего перехода в 32-битном ченной функции. Снимать CCh ни в ко- смерти. Изучение дампов памяти дает
режиме занимает целых 5 байт, поэто- ем случае нельзя! Поскольку в этот мо- довольно скудную информацию, осо-
му для ее записи необходимо восполь- мент функцию может вызывать кто-то бенно если разрушены структуры дан-
зоваться командой MOVQ, иначе мо- еще, но наш перехватчик «прозевает» ных, хранящиеся в динамической па-
дификация будет представлять неа- этот факт! мяти, которая каждый раз выделяет-
томарную операцию. Задумайтесь, что Если же полученный адрес не «наш», ся по разным адресам, что затрудня-
произойдет, если мы записали 4 пер- мы передаем управление предыдуще- ет воспроизведение ошибки.
вых байта команды JMP NEAR TARGET му обработчику INT 03h. То же самое При наличии исходных текстов
командой MOV и только собрались до- мы делаем, если программная точка в первую очередь проверьте: не ис-
писать последний байт, как внезап- останова была установлена еще до пе- пользуются ли во многопоточной про-
но пробудившийся поток захотел вы- рехвата. Тогда мы позволяем преды- грамме однопоточные версии биб-
звать эту функцию? Правильно – про- дущему обработчику INT 03h восста- лиотек? В частности, компилятор
изойдет крах! новить ее содержимое, а сами ставим Microsoft Visual C++ поставляется
Но даже атомарность не спаса- CCh на следующую инструкцию. Ко- с двумя версиями статических биб-
ет от всех проблем. Допустим, мы нечно, такой способ перехвата намно- лиотек С: LIBC.LIB – для однопоточ-
записываем 5-байтовую команду го сложнее «общепринятого», зато он ных и LIBCMT.LIB – для многопоточ-
JMP NEAR TARGET поверх 2-байтовой на 100% надежен и работает в любых ных программ. Динамически компону-
команды MOV EBP,ESP, естественно, конфигурациях – как одно- так и мно- емая библиотека MSVCRT.LIB исполь-
затрагивая следующую за ней коман- гопроцессорных. зуется как в одно- так и во многопоточ-
ду. Даже на однопроцессорных маши- ных проектах. Также поищите прямые
нах существует вероятность, что какой- Пути решения проблем вызовы CreateThread(). Со стандарт-
то из потоков был ранее прерван сра- Самое простое (и самое радикальное) ной библиотекой С они несовместимы
зу же после выполнения MOV EBP,ESP, решение – указать ключ /NUMPROC=1 и потому должны быть в обязательном
и когда он возобновит свое выполне- (или /ONECPU) в файле boot.ini, од- порядке заменены на _beginthread()
ние, то… окажется посередине коман- ним росчерком пера превратив много- или _beginthreadex().
ды JMP NEAR TARGET, что повлечет процессорную систему в однопроцес- Все глобальные переменные (кро-
за собой непредсказуемое поведе- сорную. Правда, о производительнос- ме тех, что используются для обмена
ние системы. ти после этого можно забыть, поэто- данных между потоками) поместите
Алгоритм безопасной модифи- му прибегать к такому «варварскому» в TLS (Thread Local Storage – локаль-
кации выглядит так: перехватываем методу стоит только в самых крайних ная память потока). На уровне исход-
INT 03h, запоминая адрес прежнего случаях, когда система регулярно сбо- ных текстов это делается так:
обработчика, внедряем в начало пере- ит, а времени на поиски неисправности
хватываемой функции CCh (если толь- и капитальный ремонт у нас нет. __declspec (thread) int my_var
ко программная точка уже не установ- Кстати, поиск неисправностей – са-
лена). При возникновении прерыва- мое сложное дело. Некорректная син- при этом компилятор создает в PE-фай-
ния INT 03h мы сравниваем получен- хронизация потоков приводит к порче ле специальную секцию .tls, куда и по-
ный адрес со списком адресов пере- данных, и критические ошибки возни- мещает my_var, автоматически созда-

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


программирование
путь – достаточно исправить таблицу
диспетчеризации прерываний (IDT –
Interrupt Dispatch Table), разрешив каж-
дому процессору обрабатывать пре-
рывания только от «своих» устройств.
Это практически не снижает произво-
дительности (особенно если быстрые
и медленные устройства между про-
цессорами распределяются по-честно-
му, то есть равномерно) и ликвидирует
ошибки синхронизации вместе с голу-
быми экранами смерти.

Заключение
Многопроцессорные системы созда-
ют гораздо больше проблем, чем мы
здесь описали, и далеко не все из них
разрешимы в рамках простой передел-
Рисунок 8. Защита разделяемых данных спин-блокировками
ки программ. Получив возможность со-
вая отдельный экземпляр для каждо- шить и без правки – поменяв приори- здавать потоки, программисты дале-
го из потоков. теты потоков. Если один из двух (или ко не сразу осознали, что отлаживать
В отсутствие исходных текстов эту более) потоков, использующий раз- многопоточные программы на поря-
затею осуществить труднее, но все- деляемые данные без синхронизации, док сложнее, чем однопоточные. С дру-
таки возможно. Сначала необходи- получит больший приоритет, чем ос- гой стороны, уже сейчас мы приходим
мо найти переменные, к которым идет тальные, «расстановка сил» немед- к распределенным системам и распре-
обращение из нескольких потоков. ленно изменится, и, возможно, она из- деленному программированию. Раз-
Это делается так: ищутся все вызовы менится так, что порча данных станет бив цикл с большим количеством ите-
CreateThread()/_beginthread(), опреде- происходить не так часто, как прежде. раций на два цикла, исполняющихся
ляется стартовый адрес функции пото- Нужные значения приоритетов под- в разных потоках/процессах, на двух-
ка и создается дерево функций, вызы- бираются экспериментально, а зада- процессорной машине мы удвоим про-
ваемых этим потоком (для этого удоб- ются API-функцией SetThreadPriority(), изводительность! Это слишком значи-
но использовать скрипт func_tree.idc принимающей дескриптор потока. Вот тельный выигрыш, чтобы позволить
от mammon, который можно скачать тут-то и начинаются проблемы. Мы мо- себе пренебрегать им, поэтому осва-
с www.idapro.com). Перечисляем гло- жем легко узнать идентификатор по- ивать азы распределенного програм-
бальные переменные, упомянутые тока через функции TOOLHELP32: мирования нужно уже сейчас.
в этих функциях, и если одна и та C r e a t e T o o l h e l p 3 2 S n a p s h o t ( ) ,
же переменная встречается в дере- Thread32First()/Thread32Next(), оста- 1. Scheduling, Thread Context, and IRQL –
вьях двух разных потоков – смотрим ется «всего лишь» преобразовать его статья, сжато, но доходчиво описы-
на нее пристальным взглядом, пыта- в дескриптор. Долгое время это при- вающая механизмы диспетчериза-
ясь ответить на вопрос: может ли она ходилось делать весьма извращен- ции потоков, IRQL-уровни и обработ-
быть источником проблем или нет? ным путем через недокументиро- ку прерываний на однопроцессорных
Если переменная не используется ванные функции типа NtOpenThread и многопроцессорных машинах под
для обмена данными между потока- (см. http://hi-tech.nsys.by/11), но в Windows NT (на английском языке):
ми, замещаем все обращения к ней Windows 2000 наконец-то появилась http://www.microsoft.com/whdc/driver/
на переходник к нашему обработчи- легальная API-функция OpenThread(), kernel/IRQL.mspx.
ку, размещенному в свободном мес- принимающая идентификатор пото- 2. Locks, Deadlocks, and Synchronization –
те файла, который, используя вызовы ка и возвращающая его дескриптор статья, описывающая механизмы син-
TslSetValue()/TslGetValue(), записыва- (разумеется, при условии, что все не- хронизации Windows NT и проблемы,
ет/считывает ее содержимое. Если же обходимые права у нас есть). Виват, возникающие при их некорректном ис-
переменная используется для обмена Microsoft! пользовании (на английском языке):
данными между потоками, – окружаем Разобравшись с прикладными при- http://www.microsoft.com/whdc/driver/
ее критическими секциями или други- ложениями, перейдем к драйверам. kernel/locks.mspx.
ми механизмами синхронизации. При наличии исходных текстов доста- 3. Principles of Concurrent and Distributed
Естественно, все это требует прав- точно использовать спин-блокировку Programming – книга, посвященная
ки исполняемого файла (и притом до- во всех отложенных процедурах, од- основам распределенного програм-
вольно значительной). Без соответс- нако в большинстве случаев исход- мирования (на английском языке):
твующих знаний и навыков за такую ных текстов у нас нет, а править драй- http://www.amazon.com /gp /product /
задачу не стоит и браться! Правда, есть вер в hiew удовольствие не из прият- 013711821X/002-0912814-0689662?v=
шанс, что проблему удастся разре- ных. К счастью, существует и другой glance&n=283155.

84
конкурс

Напоминаем Вам об учреждении редакцией


журнала 3-х премий лучшим авторам
по итогам 2006 года:
 1 место – 30 000 рублей О номинациях
 2 место – 20 000 рублей 1. Серией материалов считается блок из не менее чем
 3 место – 10 000 рублей двух статей. Тема серии – по собственному выбору ав-
тора или же по выбору редакции.
Номинации 2. Статья, написанная на тему, придуманную автором
1. За лучшую серию материалов и одобренную редакцией.
2. За лучшую новую авторскую тему 3. Аналитическая статья может быть написана на тему,
3. За лучшую аналитическую статью предложенную автором или же на тему, заказанную ре-
дакцией.
Кто участвует
Участие принимают все авторы, опубликовавшие свои Кто судьи
статьи в журнале «Системный администратор» в тече- В состав жюри войдут сотрудники редакции и предста-
ние 2006 года. Напоминаем, что автором может стать лю- вители дружественных журналу информационных ре-
бой человек. сурсов.

Условия публикации предполагает объем, превышающий 20 тыс. знаков – раз-


Принимаются материалы, нигде ранее не опубликованные бивайте материал на несколько частей.
(в том числе в Интернете, прочих глобальных сетях, печат- Если вы пишете о продукте, технологии или компании,
ных изданиях и т. д.). Статьи не рецензируются. описывайте не только «плюсы», но и «минусы», а также при-
За содержание статьи ответственность несет автор. водите информацию о конкурентах.
В течение двух недель редакция принимает решение Рекомендуем ознакомиться со статьями на интересую-
о публикации статьи и сообщает об этом автору. щую вас тему, которые уже есть на нашем сайте.
Редакция оставляет за собой право редактировать пре-
доставленные материалы. Требования к виду присылаемых
Редакция имеет эксклюзивное право на распростране- материалов
ние принятого материала в журнале, включая возможность Статьи следует присылать в текстовом виде, предпочти-
его публикации в любой электронной форме. тельно в формате RTF или DOC. Имена пересылаемых
По истечении двух месяцев с момента выхода журнала, файлов только на английском языке. Выравнивание столб-
содержащего публикации, автор имеет право опубликовать цов производится табуляцией, а не пробелом. В тексте ста-
свой материал в другом месте только с предварительного тьи рекомендуется указывать местоположение иллюстра-
письменного согласия редакции и с обязательной ссылкой ций и подписи к ним, а сами иллюстрации не нужно встав-
на журнал «Системный администратор». лять в тело документа, их нужно запаковать в отдельный
По истечении одного года с момента первой публика- архив. Иллюстрации должны быть строго в формате PNG.
ции автор имеет право опубликовать свой материал в дру- Листинги должны содержать не более 60 символов (вмес-
гом месте без предварительного письменного согласия те с пробелами) в одной строчке. Переносы строк листин-
редакции. гов должны быть указаны в явном виде (---перенос стро-
ки---). Если в статье приводятся ссылки на ресурсы в сети,
Общие требования к статьям URL должен быть указан в явном виде.
Статьи не должны иметь рекламный характер какого-либо
продукта, компании или технологии. Контакты
В статье указываются ссылки на источники информа- Адрес: 107045, г. Москва, Ананьевский переулок д. 4/2,
ции. стр. 1, Редакция «Учительской газеты», журнал «Систем-
Не допускается несанкционированный перевод на рус- ный администратор»
ский язык статей, обзоров и сравнительных тестирований Телефон: (495) 628-82-53
продуктов, опубликованных в иностранных изданиях. Факс: (495) 628-82-53
Сайт: www.samag.ru
Рекомендации авторам e-mail: imp@samag.ru
Объем статьи – от 4 до 20 тыс. знаков. Если тема статьи secretar@samag.ru

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


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

Суровая правда,
скрытая за «розовыми очками»:
история компании Transmeta
Часть 2

Дмитрий Мороз
В 2001 году Transmeta находилась в плачевном положении. Являвшаяся одной из самых
перспективных компаний ХХI века, она вмиг оказалась среди аутсайдеров процессорного
рынка.

Жизнь цвета зебры впрочем, особых надежд по этому по- енты – производители ноутбуков. Для
2001 год выдался для Transmeta не са- воду не питала. Остальные же произ- примера можно вспомнить ситуацию
мым радостным: отсутствие прибыли, водители Страны восходящего солнца конца 2000 года, когда компания NEC
клиентов, постоянные проблемы с про- продолжали выпускать модели, ориен- отозвала из магазинов 300 портатив-
изводством. Большая часть процессо- тируясь лишь на собственный рынок. ных компьютеров, содержавших неста-
ров Crusoe уходила в Японию, где на их Качество процессоров Transmeta бильно работавшие чипы Crusoe. Sony
основе японские гиганты Sony, Toshiba, было второй по популярности темой постигла та же участь: корпорация бы-
Casio, Hitachi и другие изготовляли уль- для обсуждения после низкой произ- ла вынуждена предупредить своих
тратонкие ноутбуки. Проблема состо- водительности Crusoe. Даже тогда, ког- клиентов о возможном возникновении
яла в том, что за пределы страны эти да производством чипов Transmeta за- проблем с её ноутбуками серии Vaio из-
портативные системы не вывозились, ведовала IBM, вкладывающая в свои за центрального процессора Transmeta.
во всяком случае, официально. заводы не меньше денежных средств, Если быть более конкретным, это поло-
К 2001 году наладить постоянные чем та же Intel, процент изготовленных вина всей партии, состоящей из 28 ты-
поставки ноутбуков на базе Crusoe чипов, содержавших брак, был доволь- сяч систем.
в страны Америки и Европы осмели- но высок. Из-за проблем Transmeta Переход производства
лась лишь японская Casio, которая, страдали в первую очередь её кли- C r u s o e к Ta i w a n S e m i c o n d u c t o r

86
ретроспектива
Manufacturing Co. (TSMC) ситуацию Дитцелу (David Ditzel) вместе со сво-
не улучшил. Да, цена снизилась не- ими извинениями пришлось объявить,
много, однако для такого важного ком- что планку в 1 ГГц ТМ5800 сможет
понента любой вычислительной сис- преодолеть лишь в январе 2002 года,
темы, как процессор, качество пре- а в продаже он появится никак не рань-
выше всего. Как раз с этим у TSMC ше лета того же года.
были большие проблемы. Её новый К счастью для Transmeta, не весь Crusoe TM5400 рядом с монетой
в 25 американских центов
0,13 мкм технический процесс под ко- 2001 год был для неё чередой сплош-
довым названием «Чёрный алмаз» ных неудач. Попытки компании про-
(Black Diamond), разработанный сов- биться на новые рынки возымели не-
местно с компанией Applied Materials который успех, и сразу несколько про-
и расхваленный на всякий лад, сра- изводителей серверных систем объ-
зу же показал свои недостатки. Nvidia, явили об использовании процессо-
разработчик графических процессо- ров Crusoe для постройки тонких ин-
ров, не удовлетворённая низким ка- тернет-серверов и многопроцессор-
чеством продукции, производимой ных кластеров с пониженным энерго- Efficeon TM8620 рядом с монетой
в 25 американских центов
TSMC, «ушла» к её конкуренту – UMC. потреблением.
Ещё два основных клиента тайвань- Стоит отметить, что серверы на ба- Goldman), входивший в состав совета
ской компании, VIA и Broadcom, также зе Crusoe не являются многопроцес- директоров Transmeta.
обвинили своего партнёра в большом сорными системами, построенными по Сам отчёт, предоставленный на
количестве производимых им брако- типу SMP (Symmetric Multy Processing – всеобщее обозрение спустя двое су-
ванных кремниевых чипов. симметричная многопроцессорная об- ток, был удручающим: потери компа-
Transmeta не стала для TSMC «при- работка), на основе которого работают нии составили 29,6 млн. долларов, при-
ятным исключением»: процент процес- серверы на базе чипов Intel и AMD. Дит- быль – 5 млн. долларов. Аналогичные
соров ТМ5800 «с ошибками», только цел, будучи ещё на посту генерального цифры за второй финансовый квартал
что сошедших с конвейера, был чрез- директора, публично заявил: «Я боль- составили 27,7 млн. долларов убытка
вычайно велик. Проблемы с произ- ше не верю в SMP. Просто не вижу при- и 10,5 млн. долларов дохода. К ноябрю
водством Crusoe вылились в задержки чин, которые бы подталкивали людей цена за одну акцию Transmeta опусти-
с поставкой чипов клиентам Transmeta. к её использованию». По его словам, лась до смехотворной отметки в 2 дол-
Компания Toshiba, после долгих меся- потери производительности, прису- лара. В день выхода компании на фон-
цев неопределённости решившаяся- щие SMP, например, неэффективное довую биржу этот показатель соста-
таки выпустить свой первый ноутбук управление приоритетами кэшей про- вил 21 доллар.
на базе Crusoe в США, была вынуж- цессоров и пр., не подходят для сис- Цифры говорят сами за себя –
дена отказаться от своих планов из- тем, ориентированных на рынок ин- Transmeta продолжала терять своих
за банального отсутствия процессоров тернет-вычислений. Вместо этого сер- клиентов, а также их деньги, причём
к своим портативным системам. По- веры на базе Crusoe строятся на ба- с невероятной скоростью.
добная судьба постигла и пять новых зе массовой параллельной обработки
субноутбуков от Sony и Fujitsu. В нояб- (Massively Parallel Processing – MPP), Больше товаров –
ре 2001 года представители обеих ком- на основе которой работают Beowulf- хороших и разных!
паний публично обвинили Transmeta кластеры. 2002 год стал годом прихода Crusoe
в невыполнении своих обещаний, со- Готовые решения Fibrecycle, Rebel «в массы». Наконец-то количество сис-
гласно которым последняя обязалась и RLX Technologies пообещали пред- тем, использующих в своей основе
предоставить им чип ТМ5800, работа- ставить миру уже в конце 2001 – нача- процессор компании Transmeta, пере-
ющий на частоте 800 МГц, ещё в сере- ле 2002 года. стало исчисляться единицами.
дине года. Однако пока компании «пели дифи- Однако прежде чем новинки за-
Что же касается давно ожидаемого рамбы» высокой экономичности и ма- полнили собой прилавки магазинов,
Crusoe, работающего на частоте 1 ГГц, лому энергопотреблению процессоров Transmeta наконец-то «обрела» ново-
первоначальное обещание Transmeta Crusoe, показателям, столь важным го генерального директора в лице Мэ-
выпустить его в январе 2001 года «рас- для тонких серверов, Transmeta про- тью Перри (Matthew R. Perry), до этого
сыпалось в пух и прах». Для того что- должала с катастрофической скоро- успевшего поработать в компаниях:
бы процессор ТМ5800 и его более де- стью терять деньги. 17 октября 2001 го- Cirrus Logic, AMD и Motorola.
шёвый вариант, ТМ5500, выпуска- да, за два дня до оглашения отчёта за Ну а теперь кратко пройдёмся по
лись по 0,13 мкм технологии, инжене- третий финансовый квартал, с поста ассортименту устройств, использую-
рам пришлось значительно доработать генерального директора был уволен щих процессоры Crusoe, благо в 2002
внутреннюю компоновку элементов Марк Аллен (Mark Allen), пребывав- году их было выпущено достаточно.
на кристалле чипа, негативным обра- ший в «кресле» всего шесть с полови- Основными «потребителями» про-
зом сказавшуюся на дальнейшем по- ной месяцев после своего восхожде- цессоров Transmeta оставались, ко-
вышении его тактовой частоты. Техни- ния на эту должность. Его место вре- нечно же, ноутбуки. В Японии компа-
ческому директору компании Дэвиду менно занял Мюррей Голдмен (Murray ния сумела отхватить солидный кусок

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


ретроспектива
малыша был процессор ТМ5800. Сис- ем компании выйти на доходный уро-
тему подобного класса на базе Crusoe вень к середине года. Однако резуль-
также представила компания Antelope таты второго финансового квартала
Technologies. были удручающими: 7,5 млн. долларов
Как и было обещано, тонкие сер- прибыли при 35,6 млн. долларов убыт-
веры на базе процессоров Crusoe по- ка. Уже в тот момент Transmeta скром-
явились в первые месяцы 2002 года. но призналась, что с подобными «циф-
Компания RLX первой представила рами в своих отчётах» она может наде-
свои решения на базе чипов Transmeta. яться на достижение доходного уровня
Серверы этой компании были исполь- не раньше конца 2003 года.
зованы Лос-Аламосской лаборато- Вознамерившись покорить эту
рией (Нью-Мексико) для построения «высоту», Transmeta все усилия напра-
высокопроизводительного класте- вила на разработку нового процессора
ра. 240 однопроцессорных серверов ТМ8000 (изначально – ТМ6000), кото-
были объединены в единую систе- рый должен был исправить все ошиб-
му под названием «Зелёная судьба» ки своих предшественников и стать на-
Арт Свифт (Green Destiny), основное предназна- конец-то чипом, достойным компании
чение которой – выполнение различ- и её разработчиков.
пирога ультрапортативных систем: все ных научных и технических расчётов.
шесть основных производителей но- По словам разработчика системы Ву- Попытка №2
утбуков в Стране восходящего солн- чун Фенга (Wu-chun Feng), стоимость Впервые о работах Transmeta над «на-
ца продолжали уверенно предлагать обслуживания этого кластера в три следником» Crusoe стало известно
рынку свои системы на базе Crusoe, раза меньше аналогичного показате- ещё в ноябре 2000 года, когда вице-
за рубеж, правда, почти не постав- ля для конкурентов, построенных на президент компании Эд МакКирнен
лявшиеся. процессорах других производителей. (Ed McKernan) публично объявил о на-
Выпущенный к середине года Подобный результат был достигнут чале разработки 256-битного процес-
ТМ5800 с частотой 1 ГГц позволил на- не в последнюю очередь благодаря сора. Со временем было обнародова-
конец-то добиться производительнос- низкому энергопотреблению и тепло- но его кодовое название – Astro.
ти, сходной с процессором Pentium III выделению чипов Crusoe, в результа- В мае 2001 года Transmeta объяви-
Mobile, работающим на 500-600 МГц, те чего устанавливать «Зелёную судь- ла о лицензировании у AMD техноло-
а для ультрапортативных машин этого бу» в специальное помещение с мощ- гии x86-64, над которой обе компании
в 2002 году было вполне достаточно. ной системой охлаждения не было не- работали уже довольно продолжитель-
Вторым по популярности классом обходимости. ное время. В обязанности Transmeta
устройств, использующих процессор Кроме того, в 2002 году появились входило создание программного обес-
Crusoe, стали компактные бесшумные первые слухи относительно подпи- печения для трансляции 32-битных ко-
персональные компьютеры. Примене- сания соглашений между Transmeta манд в 64-битные и наоборот. Кроме
ние чипов Transmeta позволило значи- и компаниями, задумавшими выпус- того, компания отвечала за энергос-
тельно уменьшить их габариты, а так- тить планшетные компьютеры, работа- берегающие функции будущих про-
же полностью лишить охлаждающих ющие под Windows XP Tablet PC Edition. цессоров AMD под кодовыми назва-
вентиляторов. Например, миниатюр- Поскольку референсная платформа ниями Hammer (Opteron) и ClawHammer
ный ПК компании NEC под названи- Microsoft была произведена на свет (Athlon 64).
ем Mate, оборудованный процессором усилиями инженеров Transmeta, она, Приблизительно в то же время
ТМ5800 с частотой 900 МГц, благодаря естественно, базировалась на процес- стало известно, что Transmeta стала
отсутствию вентиляторов на централь- соре Crusoe. Для компаний, не желав- членом организации, занимающейся
ном чипе и блоке питания, а также ис- ших кардинально перерабатывать её разработкой высокоскоростной шины
пользованию жёсткого диска для но- «начинку», выбор центрального чипа HyperTransport.
утбуков издавал звук на уровне всего для будущей системы был очевиден. Политика строжайшей секретнос-
20 дБ. Для сравнения: столько же вы- Первым подобным клиентом Transmeta ти, применённая компанией во вре-
дают отдельные «малошумящие» бло- стала Hewlett-Packard, вознамеривша- мя создания Crusoe, в случае с Astro
ки питания для ПК. яся выпустить планшетный компьютер, была «отложена на полку», в резуль-
Процессоры Transmeta нашли при- позже получивший название Compaq тате чего новые подробности относи-
менение и в ультрапортативных ком- Tablet PC TC100. тельно его разработки не заставили
пьютерах, по размеру лишь немно- На фоне столь бурного появления себя ждать.
гим превосходящих своих карман- новинок финансовое состояние компа- Уже в марте 2003 года обществен-
ных «собратьев». Известный OQO нии продолжало ухудшаться. В июле ность узнала, что Astro – это 256-раз-
Ultra Personal Computer при размерах 2002 года Transmeta объявила о сокра- рядный VLIW-процессор, содержа-
7,5х12,5 см представлял собой прак- щении своего штата сотрудников сразу щий также: контроллер оперативной
тически полноценный ПК под управ- на 40% – с 500 до 300 человек. Подоб- памяти DDR 400, шину LPC для рабо-
лением Windows XP. «Сердцем» этого ный шаг был продиктован стремлени- ты с флэш-памятью, интерфейс AGP,

88
ретроспектива
а также шину HyperTransport, которая же (ТМ8600 с уменьшенными на 46%
будет использоваться для соединения размерами корпуса). Частоты всех
с южным мостом. трёх моделей колебались в пределах
Буквально через пару месяцев 1-1,3 ГГц.
стало известно нечто интересное: На фоне громкого анонса Efficeon
Transmeta заручилась поддержкой остался практически незамеченным
графического гиганта, компании уход из Transmeta создателя Linux Ли-
nVidia, которая согласилась разрабо- нуса Торвальдса, который решил пос-
тать для Astro мобильную версию юж- вятить своё время исключительно раз-
ного моста nForce 3. В свою очередь работке собственного программно-
Transmeta пообещала сделать мост, го «чада». OQO Ultra Personal Computer
а также графический чип от nVidia не- Возможно, уход Торвальдса был
отъемлемой частью своей референс- продиктован очередным финансовым Workstation производства компании
ной платформы на базе нового про- кварталом, который напрочь «разве- Orion Multisystems. 96 процессоров
цессора. ял мечты» Transmeta по поводу до- Efficeon, 192 Гб оперативной памяти,
В августе 2003 года у ТМ8000 по- стижения доходного уровня в 2003 го- а также 9,6 Тб дискового пространства
явилось официальное имя – Efficeon ду. Судите сами: по сравнению с пре- свободно уместились в корпусе прак-
(Efficient Computing – эффективная дыдущим кварталом прибыль компа- тически стандартных для настольных
обработка). Все основные детали от- нии в связи с нежеланием покупать ПК размеров. При этом вес системы
носительно нового чипа были извест- её морально устаревшие процессо- составляет всего 86 кг. Стоимость –
ны, и Transmeta оставалось всего ниче- ры Crusoe упала почти на 50%, соста- от 100 тыс. долларов.
го – представить Efficeon на суд публи- вив всего 2,7 млн. долларов. Потери
ки. Данное событие состоялось 14 ок- увеличились ещё на несколько мил- Потерянная процессорная
тября на Микропроцессорном форуме лионов, составив 23,7 млн. долларов. гонка
(Microprocessor Forum). Теперь судьба компании напрямую за- В январе 2004 года Transmeta выпусти-
Итак, что новенького пригото- висела от того, примет ли рынок её но- ла Crusoe ТМ5900, который представ-
вили инженеры на этот раз? Новое вый Efficeon. лял собой обычный ТМ5800 с умень-
256-разрядное ядро способно выпол- Результаты производительнос- шенным корпусом, однако одногига-
нять до восьми инструкций за такт. ти нового чипа Transmeta показыва- герцовый чип ещё до своего выхода
Для увеличения производительности ли двукратное преимущество Efficeon в свет был отправлен общественнос-
в Efficeon к уже имевшимся в Crusoe относительно Crusoe, что само по себе тью «на свалку».
модулям добавили по одному блоку уже было достижением. Казалось бы, В это время рынок начал переход
для операций с числами с плавающей новый процессор Transmeta получил- на 0,9 мкм производственный процесс.
запятой, операций с памятью и управ- ся удачнее своего предшественника… Порядком «уставшая» от постоянных
ления переходами. Ядро нового чипа К сожалению, компания опоздала проблем с TSMC, для второго поко-
«подружилось» с наборами инструк- с его появлением. В 2003 году рынок ления процессоров Efficeon Transmeta
ций SSE и SSE2. Размер кэша второ- был полностью оккупирован Intel и её выбрала нового производителя микро-
го уровня был увеличен в два раза – новой платформой Centrino. Анонсиро- схем – Fujitsu. ТМ8800, выполненный
до 1 Мб. Упоминавшиеся ранее конт- ванная в марте 2003 года, Centrino ус- по нормам 0,9 мкм, должен был поя-
роллер ОЗУ стандарта DDR 400 и гра- пела в короткие сроки стать стандар- виться к осени 2004 года. А пока не-
фический интерфейс AGP 4х позволи- том де-факто в качестве основы для многие компании, главным образом
ли отказаться от микросхемы север- построения высокопроизводитель- Sharp и Orion Multisystems, выбравшие
ного моста. С южным же мостом но- ных и вместе с тем экономичных но- Efficeon первого поколения в качестве
вый чип общается посредством шины утбуков. Что же касается её процес- основы для своих систем, получали
HyperTransport, работающей на час- сора, Pentium M, он оказался настоль- процессоры в небольших партиях.
тоте 400 МГц. Полностью переписан- ко удачно спроектированным чипом, Именно благодаря им Transmeta
ное программное обеспечение Code что по производительности без труда удавалось держаться на плаву. Опуб-
Morphing Software, по заверениям ин- справлялся не только со своими кон- ликованный в середине года финан-
женеров Transmeta, эффективнее ста- курентами из мобильного рынка, но и совый отчёт продемонстрировал да-
рого на 40-50%. Стоит, правда, отме- с процессорами, предназначенными же небольшое увеличение прибыли –
тить и недостатки – заметно увели- для настольных систем. «Хиленький» с 3,6 до 5,2 млн. долларов, да и потери
чившееся количество транзисторов Efficeon конкуренцию Pentium M со- компании замерли на отметке 23,4 млн.
(с 36,8 до 85 млн.), и, следовательно, ставить не мог. долларов.
размер кристалла чипа (с 55 кв. мм. В результате лишь немногие ком- Публичная демонстрация ТМ8800,
(ТМ5800) до 119 кв. мм.). пании выпустили устройства на ба- работающего на частоте 1,6 ГГц, состо-
Миру были представлены сразу не- зе нового процессора Transmeta. Кро- ялась в мае 2004 года. Кроме более со-
сколько версий Efficeon: ТМ8600 (1 Мб ме небольшого количества ноутбу- вершенного техпроцесса, а также бо-
кэш-памяти второго уровня), TM8300 ков, упоминания заслуживает лишь лее высокой тактовой частоты, новый
(L2-кэш размером 512 Кбайт), а так- «серверная станция» Orion Cluster Efficeon «предлагал» два новшества.

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


ретроспектива
своих микропроцессорных ядер. По- Похоже, что 2006 год будет ещё бо-
добная бизнес-модель давно не нова лее успешным: в январе Sony продли-
и находится на вооружении у компа- ла свой контракт вплоть до марта 2007
ний ARM и MIPS Technologies. «Мы рас- года, а в июне компания AMD лицен-
сматриваем любые предложения», – зировала ядро Efficeon для производс-
комментировал на выставке Consumer тва микропроцессоров, ориентирован-
Electronics Show (CES) 2005 глава от- ных на Китай, Индию и другие разви-
дела маркетинга Transmeta Грег Ро- вающиеся, но пока полностью не ком-
уз (Greg Rose). «Переход к бизнес-мо- пьютеризированные страны.
дели, в основе которой лежит прода- Ещё один клиент до недавних пор
жа интеллектуальной собственности – оставался в тени, и лишь недавно ста-
значительно дешевле продажи про- ло известно о его существовании. В но-
цессоров. У нас нет собственных за- ябре 2005 года Transmeta подписа-
Compaq Tablet PC TC100 водов по производству чипов, потому ла несколько соглашений с Microsoft,
что их постройка – занятие слишком однако особой огласке они не при-
Первое – AntiVirusNX, аппаратно под- дорогое. Однако тестирование про- давались. Известно было только то,
держивающая антивирусную техноло- цессоров, а также их дистрибуция – ве- что незамедлительно в недрах компа-
гию Data Execution Protection, появив- щи также отнюдь не дешёвые, поэто- нии была сформирована особая груп-
шуюся в Service Pack 2 для Windows XP. му Transmeta намного выгоднее изба- па, состоящая из 30 инженеров, о ко-
Вторая – новая версия энергосбере- виться от этих затрат путём, который торой отзывались как о «работающих
гающей технологии LongRun2, кото- мы и выбрали». над секретным проектом Microsoft».
рая «научилась» контролировать токи Через два дня после заявления В средствах массовой информации
утечки транзисторов в кристалле, бла- компания «нашла» второго клиента сразу поползли слухи о якобы «пор-
годаря чему теоретически во время ре- на свои разработки. Ею стала Sony, ли- тативной консоли, разрабатываемой
жима «сна» новый процессор выделя- цензировавшая LongRun2 для разра- Transmeta по заказу Microsoft». В апре-
ет всего 0,03 Вт тепла. батываемых совместно с IBM и Toshiba ле этого года появилась более реаль-
Продажи ТМ8800 стартовали в сен- процессоров Cell. ная версия – компания работает над
тябре, правда, количество отгружае- На протяжении 2005 года клиента- эмулятором для Xbox 360, который поз-
мых процессоров вследствие большой ми Transmeta стали ещё две компании: воляет ей запускать игры, разработан-
сложности их изготовления было неве- японская NEC обзавелась лицензией ные для оригинальной Xbox. На первый
лико. В принципе даже этот досадный на LongRun2, а китайская компания взгляд это предположение более веро-
факт не мог исправить сложившуюся Culture.com Technology Limited – на ар- ятно, поскольку людей, лучше разби-
ситуацию – у Transmeta практически хитектуры Crusoe и Efficeon, на осно- рающихся в эмуляции, чем инженеры
не осталось клиентов, которые бы по- ве которых она будет производить про- Transmeta, найти очень сложно.
купали её Efficeon. К счастью, компа- цессоры для внутреннего рынка. Однако сбрасывать второй вари-
ния сумела избежать наметившегося В марте состоялась реструктури- ант со счетов всё же не стоит. Позна-
финансового кризиса. зация компании, направленная на по- ния Transmeta в проектировании вы-
Ещё в октябре в одном из сво- вышение эффективности ведения но- сокоэкономичных процессоров вели-
их заявлений компания намекнула, вого бизнеса, связанного с лицензиро- ки, а всё растущая популярность пор-
что «одна многомиллиардная компа- ванием: из 275 сотрудников Transmeta тативной консоли PlayStation Portable
ния» присматривается к её техноло- было уволено 67 человек, генераль- от Sony корпорацию Microsoft никак
гии LongRun2 и желает её лицензиро- ный директор Мэтью Перри был сме- не радует, вынуждая в максимально
вать. Последний месяц 2004 года про- щён с поста Артом Свифтом (Art Swift), сжатые сроки предложить рынку свой
лил свет на её имя – Fujitsu. до этого работавшем в отделе марке- вариант.
В я н в а р е 20 0 5 год а в ж и з н и тинга. Ну а если слухи по поводу игровой
Transmeta состоялось очень важное Меры, предпринятые Transmeta консоли подтвердятся и Transmeta из-
событие. Со дня своего выхода на на протяжении 2005 года, дали пот- готовит для Microsoft удачный про-
фондовую биржу компания потеряла рясающий результат, полностью оп- дукт, она сможет вернуть себе утра-
на собственных акциях в общей слож- равдав решение компании о пере- ченную репутацию. И тогда, быть мо-
ности 591 млн. долларов, так и не став квалификации. Годовой отчёт все- жет, имя компании вновь засияет все-
прибыльной. Оценив сложившуюся си- лил в Transmeta новую надежду: тог- ми цветами радуги.
туацию, 22 января Transmeta приняла да как общая прибыль за 2004 год
решение уйти с процессорного биз- составила всего 29,4 млн. долларов, 1. http://www.wired.com
неса, сконцентрировав свои усилия в 2005 году компания заработала поч- 2. http://archive.salon.com
на продаже интеллектуальной собс- ти в два с половиной раза больше, до- 3. http://www.arstechnica.com
твенности. ведя этот показатель до 72,7 млн. дол- 4. http://www.pcworld.com
В дополнение к специфическим ларов. Для Transmeta, бывшей всю 5. http://www.forbes.com
технологиям типа LongRun2 компания свою жизнь убыточной, эти показате- 6. http://www.theregister.co.uk
отныне предлагает лицензирование ли как бальзам на душу. 7. http://www.transmeta.com

90
bugtraq

Выполнение произвольного кода Переполнение буфера


в Microsoft Office в Microsoft Publisher при обработке
Программа: Microsoft Office 2000, возможно, другие вер- .pub-файлов
сии. Программа: Microsoft Office 2000, Microsoft Office 2003
Опасность: Критическая. Professional Edition, Microsoft Office 2003 Small Business
Описание: Уязвимость существует из-за неизвестной Edition, Microsoft Office 2003 Standard Edition, Microsoft
ошибки при обработке документов в Microsoft Word. Уда- Office 2003 Student and Teacher Edition, Microsoft Office XP,
ленный пользователь может с помощью специально сфор- Microsoft Publisher 2000, Microsoft Publisher 2002, Microsoft
мированного файла выполнить произвольный код на це- Publisher 2003.
левой системе. Уязвимость активно эксплуатируется в на- Опасность: Критическая.
стоящее время. Описание: Переполнение буфера обнаружено в Publisher
URL производителя: http://www.microsoft.com. при обработке .pub-файлов, содержащих специально об-
Решение: В настоящее время способов устранения уязви- работанную строку. Злоумышленник может создать спе-
мости не существует. циальный документ, который, когда будет открыт целе-
вым пользователем, запустит произвольный код на целе-
Переполнение буфера при обработке вой системе.
сжатых редиректов в Internet Explorer URL производителя: http://www.microsoft.com.
Программа: Microsoft Internet Explorer (IE) 5sp4, 6sp1. Решение: Установите соответствующее обновление.
Опасность: Критическая.
Описание: Удаленный злоумышленник может вызвать от-
каз в обслуживании или выполнить произвольный код с при- Множественные уязвимости
вилегиями целевого пользователя, используя длинный URL в Adobe Flash Player
на веб-сайте, который использует компрессию HTTP 1.1 Программа: Macromedia Flash 8.x, Macromedia Flash MX
и отвечает 302 HTTP-ответом (редирект). 2004, Macromedia Flash MX Professional 2004, Macromedia
Уязвимость обнаружена во второй версии патча Flash Player 7.x, Macromedia Flash Player 8.x, Macromedia
MS06-042 для IE 5 SP4 и IE 6 SP1 (который был опублико- Flex 1.x
ван 24 августа 2006 года). Опасность: Критическая.
URL производителя: http://www.microsoft.com. Описание: 1. Несколько неустановленных уязвимостей пе-
Решение: Microsoft опубликовал третью версию патча MS06- реполнения буфера позволяют выполнить произвольный
042, который устраняет обнаруженную уязвимость. код при загрузке специально обработанного SWF-файла,
например, при просмотре злонамеренного веб-сайта.
Удаленное переполнение буфера 2. Неустановленная ошибка позволяет обойти ограни-
в Microsoft Internet Explorer чения параметра allowScriptAccess.
и Microsoft Multimedia Controls ActiveX 3. Неустановленная ошибка существует в пути, в ко-
Программа: Microsoft Internet Explorer 6.x. тором ActiveX-управление запускает программы Microsoft
Опасность: Критическая. Office на Windows-системах.
Описание: Переполнение буфера обнаружено в функции URL производителя: http://www.adobe.com.
CPathCtl::KeyFrame() в Microsoft Multimedia Controls ActiveX. Решение: Установите последнюю версию Flash.
Злоумышленник может создать специально сформиро-
ванную HTML-страницу, чтобы выполнить произвольный
код с привилегиями пользователя, просматривающего эту Переполнение буфера в библиотеке
http://[host]:411/cgi-bin/Redirect.bat?file= ↵
страницу в браузере. Microsoft Vector Graphics Rendering
%7C..\..\..\..\..\..\....\..\[file]
URL производителя: http://www.microsoft.com. Программа: Microsoft Windows 2000, Microsoft Windows XP,
Решение: В настоящее время способов устранения уязви- Microsoft Windows 2003.
мости не существует. Опасность: Критическая.
Описание: Уязвимость существует из-за ошибки проверки
Обход ограничений безопасности в границ данных в Microsoft Vector Graphics Rendering (VML)-
Opera библиотеке (vgx.dll) при обработке определенных VML-до-
Программа: Opera 9.01, возможно, более ранние версии. кументов. Удаленный пользователь может с помощью спе-
Опасность: Низкая. циально сформированного VML-документа, содержащего
Описание: Уязвимость существует из-за ошибки при про- слишком длинный метод fill внутри тега rect, вызвать пе-
верке подлинности подписи сертификата. Злоумышленник реполнение стека и выполнить произвольный код на це-
может подделать сертификат, если при подписи сертифи- левой системе. Уязвимость активно эксплуатируется в на-
ката использовался RSA-ключ с экспонентом 3. Уязвимость стоящее время.
относится к обходу ограничений безопасности в OpenSSL. URL производителя: http://www.microsoft.com.
URL производителя: http://www.opera.com. Решение: В настоящее время способов устранения уязви-
Решение: В настоящее время способов устранения уязви- мости не существует.
мости не существует.

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


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

Брандмауэры Cisco Secure PIX


Под редакцией Дэвида Чемпена-мл. и Энди Фокса
чения. Затем авторы познакомят вас с ки протоколов и защиты от взломов с
ПО и аппаратными средствами бранд- помощью Cisco PIX. Механизмы пол-
мауэров Cisco PIX (рассмотрены типы ного восстановления состояния в слу-
брандмауэров, модели, элементы уп- чае отказа брандмауэра PIX. Настрой-
равления). Использование и обновле- ка механизмов IPSec при использова-
ние ПО Cisco PIX (интерфейс команд- нии в брандмауэре PIX. Контекстное
ной строки, установка новой версии управление доступом с помощью бран-
ОС и обновление существующей, вос- дмауэра, основанного на ОС Cisco IOS.
становление утерянного пароля). На- Настройка службы прокси – аутенти-
стройка Cisco PIX (уровни безопаснос- фикации в Cisco IOS. Каждая из глав
ти ASA, основные команды настройки: оканчивается контрольными вопроса-
nameif, interface, ip address, nat, global, ми (есть и ответы на них). В приложе-
route). Трансляция адресов (транспорт- нии вы также найдете информацию о
ные протоколы, статическая и динами- настройке протоколов SNMP, DHCP,
ческая трансляция адресов). Настрой- SSH в Cisco PIX. Отличная книга, ко-
ка доступа через Cisco PIX (обеспече- торая окажется полезной всем без ис-
Материал книги основан на офици- ние доступа к сети через брандмауэр, ключения людям, работающим с PIX.
альном курсе CSPFA (Cisco Secure PIX команды static и conduit, альтернатив-
Firewall Advanced). Несмотря на то что ные методы, настройка дополнитель-  Издательство: «Вильямс»
оригинал книги (на англ. языке) вы- ных интерфейсов). Системные сооб-  Год издания: 2003
шел в 2002 году, большая часть мате- щения (настройка системного журна-  Количество страниц: 384
риала актуальна и сейчас. Из разде- ла, команды семейства logging). На-  ISBN: 5-8459-0463-3
ла «Введение» вы узнаете о критери- стройка аутентификации, авторизации  Цена: ≈ 395 руб.
ях угроз безопасности сети, полити- и учета в Cisco PIX. Подробно рассмот- Книга предоставлена издательстким домом
ках безопасности сетей и их обеспе- рены вопросы расширенной обработ- «Вильямс».

Организация защиты сетей Cisco


Майкл Уэнстром
блемы защиты территориальной сети рование). Настройка доступа через PIX
и варианты их решения, защита фи- Firewall (настройка управления исходя-
зических устройств и административ- щим доступом, а также доступ к внут-
ного интерфейса, защита связи меж- ренним хостам). Настройка интерфей-
ду маршрутизаторами и коммутатора- сов и средств AAA PIX firewall. Исполь-
ми Ethernet). Вторая часть книги рас- зование дополнительных возможнос-
сматривает вопросы защиты удален- тей PIX firewall. Не остались без вни-
ного доступа. Среди рассмотренных мания технологии шифрования Cisco
тем: технология защиты AAA, настрой- (обзор технологий шифрования, крип-
ка средств AAA сервера сетевого до- тосистема IOS, применение шифро-
ступа. Конфигурирование CiscoSecure вания на примере CET). Виртуальные
ACS и TACACS+/RADIUS. Защита меж- частные сети, использующие IPSec
сетевых соединений. Настройка мар- (настройка и поддержка IPSec в сетях
штуризаторов периметра Cisco (систе- Cisco, IPSec в PIX firewall, масштаби-
мы защиты периметра сети, управле- рование сетей IPSec). В конце каждой
Книга – перевод официального курса ния сервисами TCP/IP, защита от не- из глав вниманию предлагаются конт-
по управлению защитой сетей Cisco санкционированного изменения марш- рольные вопросы.
(MCNS). Первая часть посвящена вы- рутов, управление доступом, средства
бору политики защиты. Угрозы безо- трансляции IP-адресов, регистрация  Издательство: «Вильямс»
пасности сети (принципы возникнове- событий маршрутизаторов перимет-  Год издания: 2005
ния проблем защиты, типы угроз бе- ра). Настройка Cisco IOS Firewall (обзор  Количество страниц: 768
зопасности). Оценка политики защи- возможностей, настройка CBAC, уп-  ISBN: 5-8459-0387-4
ты (процесс оценки состояния защи- равление). Настройка CiscoSecure PIX  Цена: ≈ 480 руб.
ты, анализ практики защиты сетей). Firewall (возможности, модели бранд- Книга предоставлена издательстким домом
Защита инфраструктуры сети (про- мауэров и их компоненты, конфигури- «Вильямс».

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

Интерфейсы устройств хранения:


ATA, SCSI и другие
Михаил Гук
контроллеры ATA (контроллеры PCI IDE те об устройствах, портах и соединени-
Bus Master, SATA intel 31244, AHCI). Про- ях SAS, будут рассмотрены протоколы
граммное взаимодействие с устройс- SSP, SMP, STP. Отдельная часть книги
твами ATA/ATAPI/SATA (традиционный посвящена технологии iSCSI, у которой
механизм взаимодействия для ATA, пе- вы получите исчерпывающие сведения
рекрытие команд и очереди, интерфейс об этой технологии. Не остался без вни-
AHCI, регистры устройства ATA/SATA). мания и интерфейс Fibre Channel (ар-
Система команд ATA/ATAPI и SATA (па- хитектура стандарта, каналы переда-
кетный интерфейс ATAPI, идентифи- чи данных FC-PH, FC-FS, арбитражное
кация и конфигурирование устройств, кольцо FC-AL). В заключительных гла-
журналы ошибок и событий, монито- вах автор повествует об интерфейсах
ринг состояния SMART). Вопросы, ка- и конструктивах твердотельных носите-
сающиеся SCSI, представлены следую- лей информации, шинах USB и FireWire
Издание является продолжением серии щим материалом: спецификация SCSI, для устройства хранения. Отличная
книг об интерфейсах (напомню, что в архитектурная модель SCSI-SAM, сис- книга, которая будет интересна широ-
рамках этой серии автором написаны тема команд SCSI. Подробно рассмот- кому кругу читателей.
книги, посвященные темам «Аппарат- рены вопросы параллельных шин SCSI
ные интерфейсы ПК», «Шины PCI, USB (протокол параллельной шины, процесс  Издательство: «Питер»
и FireWire»). Среди рассмотренных тем: ввода-вывода в шине SCSI, физический  Год издания: 2007
устройства хранения данных и их интер- и электрический интерфейс). Из гла-  Количество страниц: 447
фейсы: НГМД, IDE (ATA/ATAPI) и SATA. вы, которая носит название «Последо-  ISBN: 5-469-01531-9
Параллельный интерфейс ATA и пос- вательный интерфейс для подключе-  Цена: ≈ 375 руб.
ледовательный Serial ATA, адаптеры и ния устройств SCSI – SAS», вы узнае- Книга предоставлена издательством «Питер».

Криминалистический анализ
файловых систем
Брайан Кэрриэ
инструментарий эксперта), основные тура данных, файловые системы ext2
принципы работы компьютера (орга- и 1ext3, а также UFS1 и UFS2). На про-
низация данных, процесс загрузки, тех- тяжении всей книги в качестве основ-
нологии жестких дисков), снятие дан- ного инструмента используется пакет
ных с жеского диска (чтение исходных TSK (The Sleuth Kit), который вы можете
данных, запись снятых данных, прак- загрузить с www.sleuthkit.org. Весь ма-
тические примеры). Во второй части териал книги отлично структурирован.
книги автор проводит анализ томов. Несмотря на достаточно сложную те-
Рассмотрены вопросы, касающиеся му, книга легко читается и усваивается.
основ анализа, основные концепции Отличный материал, написанный спе-
MBR, расширенный раздел. Особый циалистом для специалистов, он зай-
интерес предствляет глава «Разделы в мет достойное место на книжной полке
серверных системах», из которой вы уз- у любого системного администратора
Уникальная в своем роде книга, анало- наете о разделах BSD и структуре дан- или инженера по безопасности.
гов которой нет не только на русском, ных, сегментах Sun Solaris, разделах
но и на других языках. Автору удалось GPT. Многодисковые тома (рассмот-  Издательство: «Питер»
удачно совместить теорию с практикой рены технологии RAID и объединения  Год издания: 2007
и в максимально доступной форме из- дисков – Linux MD, LVM, Windows LDM).  Количество страниц: 480
ложить весь материал. Первая часть Черезвычайно подробно рассказано  ISBN: 5-469-01311-1
книги носит теоретический характер, об анализе файловых систем: (fat и ntfs:  Цена: ≈ 523 руб.
из нее вы узнаете основы цифровых основные концепции, анализ и струк- Книга предоставлена издательством «Питер».
расследований (цифровые расследо-
вания повтор и улики, анализ данных, Обзор книжных новинок подготовил Александр Байрак

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


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

Оформите годовую подписку


и получите в подарок DVD-диск с архивом
всех вышедших номеров с 2002 года.
Диск будет вложен в январьский юбилейный
выпуск журнала
Редакционная подписка  Подписку можно оформить с любо-  Копию заполненного и оплаченно-
для физических лиц го месяца на любой срок. го бланка отправьте в редакцию по
 Подписку Вы можете оформить  В графе «Сумма» проставьте сум- факсу: (495) 628-8253 или на элек-
на любой российский адрес. му за выбранное количество номе- тронный адрес: info@samag.ru
 При заполнении разборчиво укажи- ров. Стоимость одного номера жур-  Журнал высылается почтой прос-
те фамилию, имя, отчество полно- нала 150 руб. За год – 1800 руб. той бандеролью только после
стью, почтовый индекс и адрес по- НДС и почтовые расходы включе- поступления денег на расчетный
лучателя, контактный телефон. ны в стоимость. счет.

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

Подписные
индексы:

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

87836
по каталогу
агентства
«Пресса
России»
*
годовой
**
полугодовой

№10 октябрь 2006 95


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

УЧРЕДИТЕЛИ
ЧИТАЙТЕ
Владимир Положевец
Александр Михалев В СЛЕДУЮЩЕМ
РУКОВОДИТЕЛЬ ПРОЕКТА
Петр Положевец
НОМЕРЕ:
РЕДАКЦИЯ
Исполнительный директор
Владимир Положевец FreeBSD jail: зона еще не сталкивались, и который может
Ответственный секретарь строгого режима стать доминирующим в обозримом бу-
Наталья Хвостова Безопасность FreeBSD всегда была дущем, поэтому представляет интерес
sekretar@samag.ru на должном уровне. Но когда в Интер- проанализировать проблему и описать
Технический редактор нет нужно «выставить» один или не- источник угрозы и возможные спосо-
Владимир Лукин сколько сервисов, надеяться прихо- бы борьбы.
Редактор дится уже не только на разработчи-
Алексей Коршунов
Внештатные редакторы
ков системы. Традиционно для сни- Обзор дистрибутива
Алексей Барабанов
жения опасности используют chroot- SystemRescueCd Linux
Сергей Супрунов окружение, но этот вызов разрабаты- Вам часто приходится восстанавли-
Валентин Синицын вался для иных целей. А вот вызову jail, вать систему после сбоя, копировать
Крис Касперски специально созданному для решения данные с поврежденных жестких дис-
вопросов безопасности, зачастую от- ков, тестировать аппаратную часть
РЕКЛАМНАЯ СЛУЖБА дают лишь роль средства виртуализа- ЭВМ, сбрасывать забытые пароли в се-
тел./факс: (495) 628-8253 ции. Но область его применения зна- мействе ОС windows NT, готовить дис-
Евгения Тарабрина чительно шире. ки для установки новой ОС и решать
reсlama@samag.ru другие административные задачи?
Верстка и оформление
Атаки на ошибки Обычно для этого используются набо-
maker_up@samag.ru
синхронизации потоков ры дистрибутивов и Live-CD различно-
3 сентября 2006 года хакер johnny го назначения, но есть ли единое и ком-
Дизайн обложки
Николай Петрочук cache реализовал принципиально но- пактное решение «все в одном»?
вый тип атаки на драйверы устройств
По вопросам распространения беспроводной связи Intel Centrino PRO, Kerberos
обращайтесь по телефону: воздейстовав на регистр EIP через и электронная почта
(495) 628-8253 (доб. 120) ошибку синхронизации потоков (впол- В статье будет рассмотрен способ ин-
не типичную для DSL-модемов, ИК-пор- теграции smtp-сервера Postfix и imap/
107045, г. Москва, тов и других устройств, обрабатыва- pop3-сервера Сyrus-IMAP в систему
Ананьевский переулок, дом 4/2, стр. 1 ющих асинхронные запросы). Но на- единой регистрации пользователей
тел./факс: (495) 628-8253 вряд ли он осознал, что эта атака от- Heimdal-Kerberos. Также будет показан
Сайт журнала: www.samag.ru
крывает новую страницу в истории пе- пример использования этой системы
реполняющихся буферов. Это действи- в гетерогенном окружении при помо-
ИЗДАТЕЛЬ
ЗАО «Издательский дом тельно новый тип атаки, с которым мы щи почтового клиента Thunderbird.
«Учительская газета»

Отпечатано типографией Уважаемые читатели!


ГП «Московская Типография №13»
Тираж 11000 экз. Обратите внимание, что теперь оформить подписку вы можете
не только на полугодие, но и сразу на весь год.
Журнал зарегистрирован Годовой индекс по каталогу «Роспечать» – 20780.
в Министерстве РФ по делам печати, Интер-почта – заказ журналов по тел.(495) 500-00-60.
телерадиовещания и средств массо-
Подписка on-line – SetBook.ru.
вых коммуникаций (свидетельство
ПИ № 77-12542 от 24 апреля 2002 г.).
Приобрести новые и старые номера журнала
За содержание статьи ответственность вы можете через интернет-магазины LinuxCenter.ru и Allsoft.ru.
несет автор. За содержание реклам-
ных материалов ответственность не-
сет рекламодатель. Все права на опуб-
ликованные материалы защищены.
Доставка почтой в любую точку России.

96

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