98
Роспечать – 20780, 81655 Пресса России – 87836 Интер-почта – тел. (495) 500-00-60 Так видит журнал читатель, который забыл оформить подписку: ПОДПИШИТЕСЬ И ЧИТАЙТЕ! Так видит журнал читатель, оформивший подписку: НОВОГОДНИЕ КАНИКУЛЫ ЗАТЯНУЛИСЬ БЫСТРО РАСКУПИЛИ ТИРАЖ НЕОЖИДАННО ЗАКОНЧИЛИСЬ ДЕНЬГИ УЕХАЛ В ОТПУСК ПОСЛЕ ОТПУСКА АВРАЛ НА РАБОТЕ №5(30) май 2005 подписной индекс 81655 www.samag.ru Почему MS SQL медленно работает? Ищем причины Строим защищенную беспроводную сеть: WPA-Enterprise, 802.1x EAP-TLS Настраиваем UPS под Linux Как восстановить удаленные файлы под BSD Что важно знать об IP-телефонии танавливаем Symantec Antivirus 9.0 в корпоративной сети Эффективно управляем полями пользователей в AD Контролируем безопасность сети с помощью OSSIM Интервью с Ларри Уоллом – создателем языка Perl №5(30) май 2005 подписной индекс 81655 www.samag.ru Почему MS SQL медленно работает? Ищем причины Строим защищенную беспроводную сеть: WPA-Enterprise, 802.1x EAP-TLS Настраиваем UPS под Linux Как восстановить удаленные файлы под BSD Что важно знать об IP-телефонии танавливаем Symantec Antivirus 9.0 в корпоративной сети Эффективно управляем полями пользователей в AD Контролируем безопасность сети с помощью OSSIM Интервью с Ларри Уоллом – создателем языка Perl №3(52) март 2007 №3(52) март 2007 подписной индекс 20780 www.samag.ru Как построить сетевую инфраструктуру на основе VMware Server Составит ли VirtualBox конкуренцию VMware? Система контроля версий RCS на службе сисадмина Как арендовать или купить в рассрочку ПО от Microsoft Создаём VPN с ViPNet Используйте преимущества файловой системы ZFS в Solaris Большие гонки веб-серверов Устанавливаем eGroupware Решаем типичные проблемы безопасности домашних сетей

052 Системный Администратор 03 2007

Embed Size (px)

DESCRIPTION

ЗАКО Н ЧИ Ж И ДАН ДЕН ЬГИ РАБО ТЕ ГО ДН И Е СТРО Н О ВО УЕХА №3(52) март 2007 РАЖ Н ЕО БЫ ЛИ ЛИ Н О СЬ СЬ ТИ №5(30) май 2005 №5(30) май 2005 подписной индекс 81655 www.samag.ru подписной индекс 81655 www.samag.ru Auditor Collection: проверяем безопасность вашей сети 74 Советы Джона Чемберса52 Используйте преимущества файловой системы ZFS в Solaris 28 ПРОГРАММИРОВАНИЕ Воспользуйтесь дистрибутивом Linux, специально соб- ранным для поиска уязвимостей в сети. Андрей Бирюков [email protected] ЧЕЛОВЕК НОМЕРА

Citation preview

Page 1: 052 Системный Администратор 03 2007

Роспечать – 20780, 81655Пресса России – 87836Интер-почта – тел. (495) 500-00-60

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

ПОДПИШИТЕСЬ И ЧИТАЙТЕ!

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

НОВОГОДНИЕ

КАНИКУЛЫ

ЗАТЯ

НУЛИСЬ

БЫСТР

О РАСКУПИЛИ

ТИРА

Ж

НЕОЖ

ИДАННО

ЗАКОНЧИЛИСЬ Д

ЕНЬГИ

УЕХАЛ В

ОТП

УСК

ПОСЛЕ ОТП

УСКА

АВРАЛ Н

А РАБОТЕ

№5(30) май 2005подписной индекс 81655www.samag.ru

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

Строим защищенную беспроводную сеть:WPA-Enterprise, 802.1x EAP-TLS

Настраиваем UPS под Linux

Как восстановить удаленные файлы под BSD

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

танавливаем Symantec Antivirus 9.0в корпоративной сети

Эффективно управляем полями пользователей в AD

Контролируем безопасность сетис помощью OSSIM

Интервью с Ларри Уоллом –создателем языка Perl

№5(30) май 2005подписной индекс 81655www.samag.ru

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

Строим защищенную беспроводную сеть:WPA-Enterprise, 802.1x EAP-TLS

Настраиваем UPS под Linux

Как восстановить удаленные файлы под BSD

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

танавливаем Symantec Antivirus 9.0в корпоративной сети

Эффективно управляем полями пользователей в AD

Контролируем безопасность сетис помощью OSSIM

Интервью с Ларри Уоллом –создателем языка Perl

№3(

52)

мар

т 20

07

№3(52) март 2007подписной индекс 20780www.samag.ru

Как построить сетевую инфраструктуру на основе VMware Server

Составит ли VirtualBoxконкуренцию VMware?

Система контроля версий RCSна службе сисадмина

Как арендовать или купитьв рассрочку ПО от Microsoft

Создаём VPN с ViPNet

Используйте преимущества файловой системы ZFS в Solaris

Большие гонки веб-серверов

Устанавливаем eGroupware

Решаем типичные проблемы безопасности домашних сетей

Page 2: 052 Системный Администратор 03 2007
Page 3: 052 Системный Администратор 03 2007

�№3, март 2007

в номере

ТЕНДЕНЦИИ3

АДМИНИСТРИРОВАНИЕ

Как купить ПО от Microsoft? Часть 3. Приобретаем в рассрочку

6

Три программы лицензирования – Open Value Non Company-Wide, Open Value Company-Wide и Open Value Subscription – являются, пожалуй, самыми интересными способами покупки программного обеспечения для кор-поративных клиентов. Дмитрий Бутянов

[email protected]

Создаём VPN с ViPNet�2Технологии создания VPN, заложенные в продуктах и решениях ViPNet, позволяют организовать безопас-ный обмен защищенной информацией как в локаль-ных, так и в глобальных сетях, независимо от спосо-ба и места подключения компьютеров и типа выделя-емого им IP-адреса. Сергей Яремчук

[email protected]

Строим сетевую инфраструктуру на основе VMware Server

�4

Современные требования к IT-структуре – быстрая пе-реносимость сервисов с одного сервера на другой, уп-рощение резервного копирования, безопасность и де-легируемость полномочий – порой не являются просты-ми для системного администратора. На помощь при-ходит VMware Server. Алексей Бережной

[email protected]

VirtualBox – виртуализация под GPL2015 января 2007 года вполне может войти в историю сво-бодного ПО как день, когда у VMware Workstation впер-вые появился достойный открытый аналог. Насколько полной вышла эта аналогия? Валентин Синицын

[email protected]

Система контроля версий RCS на службе сисадмина

24

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

[email protected]

Используйте преимущества файловой системы ZFS в Solaris

28

В летнем релизе 6/06 Solaris 10 появилась поддержка новой файловой системы ZFS. Почему понадобилось изобретать новую файловую систему вместо привыч-ной ufs, и чем она интересна? Алексей Коробкин

[email protected]

Устанавливаем eGroupware36Обзор программного пакета eGroupware, предназначен-ного для обеспечения совместной работы групп поль-зователей и автоматизации бизнес-процессов.

Сергей Яремчук[email protected]

KolibriOS: дайте ей шанс полетать на вашем компьютере

42

В феврале 2007 г. новость о релизе KolibriOS 0.65 обле-тела весь Интернет. Еще бы: первая ОС на Ассемблере, поддерживающая чтение разделов NTFS.

Сергей Кузьмин[email protected]

Корпоративный MAIL RELAY-сервис. E-mail + UNIX + Exchange

46

Ваша почтовая система основана на MS Exchange, и вы опасаетесь подключать его напрямую в Интернет? Тре-буется большая гибкость в маршрутизации и фильтра-ции почты? UNIX-сервер и Sendmail с правильной на-стройкой избавят от головной боли и дадут мощные инс-трументы для работы с почтой. Яков Коваленко

[email protected]

Советы Джона Чемберса52Президент и главный управляющий Cisco Systems учит-ся на чужих и своих ошибках. А молодые топ-менедже-ры изучают его биографию. Оксана Родионова

[email protected]

ЧЕЛОВЕК НОМЕРА

Большие гонки веб-серверов56Сравнительное тестирование веб-серверов. (Дейс-твительно для серверов класса SOHO под управлени-ем ОС FreeBSD.)

WEB

Сергей Супрунов[email protected]

Решаем типичные проблемы безопасности домашних сетей

68

Домашние сети объединили вначале соседей, а поз-же – тысячи пользователей районов. Какие трудности возникают при работе в домашних сетях и как их пре-одолевать? Иван Максимов

[email protected]

БЕЗОПАСНОСТЬ

Auditor Collection: проверяем безопасность вашей сети

74

Воспользуйтесь дистрибутивом Linux, специально соб-ранным для поиска уязвимостей в сети.

Андрей Бирюков[email protected]

Ruby: язык завтрашнего дня80Сегодня очень трудно не заметить ажиотаж вокруг язы-ка программирования Ruby. Владимир Овсянников

[email protected]

ПРОГРАММИРОВАНИЕ

Обзор Ruby on Rails84Благодаря удивительной гибкости языка программиро-вания Ruby, создавая приложения на «Рельсах», трудно заметить, где заканчивается Ruby и начинается Rails.

Владимир Овсянников[email protected]

Google: история лучшей поисковой системы86Многие скептически называют Интернет большой свал-кой информации. Но достаточно набрать в адресной строке браузера www.google.com, чтобы понять абсур-дность таких высказываний. Илья Александров

[email protected]

РЕТРОСПЕКТИВА

27, 35, 9� BUGTRAQ

КНИЖНАЯ ПОЛКА92

Page 4: 052 Системный Администратор 03 2007

VI международная конференция «Современные технологии эффективной разработки веб-приложений с использованием PHP»

Москва, 24-25 Мая 2007

Международный клуб разработчиков PHPCLUB приглашает Вас принять участие в PHPCONF 2007 – еже-годной международной конференции веб-разработчиков, которая состоится 24-25 мая 2007 года в Мос-кве. Мероприятие будет проводиться уже в шестой раз.

Тематика конференции охватывает широкий круг вопросов веб-программирования: Применение PHP в веб-разработке: приёмы, методы и парадигмы программирования в PHP, полез-

ные модули и библиотеки, интеграция с Ajax. Эффективное создание приложений: фреймворки, гибкие методологии, экстремальное программи-

рование, ТDD-методики. PHP и корпоративные информационные системы: разработка систем масштаба предприятия, интег-

рация корпоративных ИС. Будущее PHP: основные направления развития, PHP6, мультиязычные приложения, Unicode, приме-

нение в условиях Web 2.0.

Внимание на конференции будет уделено таким темам как: Практика разработки корпоративных веб-приложений 2007. Аспектно-ориентированное программирование(AOP) в PHP. Nginx – архитектура самого быстрого веб-сервера. PHP/MapScript и MapServer. Публикация картографических данных с помощью PHP в WEB. PHP & Flash PHP & Flash, новая альтернатива для создания Rich Internet Applications (Flex Stress Testing

Framework, модульное тестирование – FlexUnit, связка Flex и JavaScript). XForms – новое поколение веб-форм WAP (WAP 1.1, WAP 2.0, I-mode, Usability WAP сайтов, личный опыт). Exposing Hidden PHP Secrets / How PHP Ticks (PHP Internals) – как работает PHP внутри. Веб-службы снаружи и изнутри. Технические и маркетинговые аспекты поисковой оптимизации сайтов. Практика независимой WEB-разработки (freelance). Достоинства применения служб LDAP на предприятии. Обработка метаданных и цифровое подписывание HTML-форм. Управление зависимостями в программном коде.

Формат PHPCONF 2007 включает серию мастер-классов в течение трех дней и 2-х дневную конферен-цию. Мероприятия будут проходить в течение недели с 21 по 25 мая.

Аудиторию конференции составят более 200 представителей крупных и средних предприятий России и СНГ: профессиональные веб-разработчики и фрилансеры, руководители IT-отделов, руководители про-ектов, директора по развитию, а также разработчики, повышающие свою квалификацию. Профессио-нальный состав участников PHPCONF традиционно обеспечивается благодаря высокому уровню знаний и опыта докладчиков, выступающих на конференции.

Местом проведения PHPCONF 2007 выбран «Телеком-холл» – крупный конференц-центр, расположен-ный в самом сердце российского Интернета в здании знаменитого дата-центра и узла обмена трафиком ММТС-9. Символично, что многие участники конференции будут получать и обмениваться новыми зна-ниями в области веб-программирования всего в нескольких метрах от серверов дата-центра М9, на ко-торых эти знания будут воплощаться в реальные проекты.

В ближайшее время на сайте конференции www.phpconf.ru будет выложена официальная программа про-ведения и открыта регистрация участников. Будем рады Вас видеть в составе делегатов конференции!

Организаторы:

Page 5: 052 Системный Администратор 03 2007

�№3, март 2007

тенденции

Создан новый Open Source-союз: Open Solutions AllianceНекоммерческий консорциум Open Solutions Alliance (OSA) займется популяризацией бизнес-решений на базе Open Source. К своим основным целям, определенным еще в конце прошлого года, OSA относит подготовку и продви-жение нормативов для взаимодействия приложений, со-здание «метасообщества» пользователей, разработчиков и системных интеграторов (не имеющего единую лидирую-щую компанию, а состоящего из множества бизнес-струк-тур, заинтересованных в достижении общего результата), устранение барьеров к пониманию выгод открытых реше-ний для деловых клиентов.

Сформированный в феврале альянс уже начал рабо-тать с системными интеграторами, опирающимися на про-граммное обеспечение с открытым кодом, Open Source-со-обществом и бизнес-пользователями. Среди основателей OSA такие компании, как Centric CRM, Hyperic, Jaspersoft, Openbravo и SpikeSource.

Базовой платформой Linspire станет Ubuntu LinuxДве компании – Canonical Ltd, спонсирующая Ubuntu Linux, и Linspire Inc. – объявили о достижении технологического со-трудничества. Базовой системой для дистрибутива Linspire (и его бесплатной, поддерживаемой сообществом, редак-ции Freespire) станет Ubuntu – вместо Debian GNU/Linux, как это было раньше. Несмотря на то что разработки самого проекта Ubuntu основываются на Debian, в Linspire считают, что эта миграция позволит достичь ускоренного цикла раз-работки и большего удобства использования ОС.

«Ubuntu – наиболее успешный на сегодня поддержи-ваемый сообществом Linux-проект, – пояснил Кевин Кар-мони (Kevin Carmony), исполнительный директор Linspire. – Проделан фантастический объем работы по созданию как сообщества, так и утилит для удобства его использова-ния. Это и стало значительными доводами в пользу наше-го сотрудничества с Canonical и миграции на Ubuntu как ба-зовую платформу для наших Linux-решений для настоль-ных ПК».

HP заработала 25 млн. долларов на Debian GNU/LinuxКомпания Hewlett-Packard сообщила о первых успехах ее проекта по оказанию услуг поддержки для Debian GNU/Linux. Летом минувшего года HP анонсировала свои планы по под-держке бесплатного и создаваемого сообществом дистри-бутива, лишь в декабре начались продажи пакетов с соот-ветствующими услугами, но первые результаты уже впечат-ляют. Данные за 2006 финансовый год отдела продаж под-разделения HP EMEA (Европа, Средний Восток и Африка) показали, что Debian GNU/Linux принес компании прибыль в 25 миллионов долларов.

Такая цифра впечатлила даже самих представителей HP: «Я был изрядно удивлен, когда узнал об этом», – поде-лился своими впечатлениями Джеффри Уэйд (Jeffrey Wade), менеджер HP по маркетингу Open Source и Linux во всем мире. Уэйд не стал разглашать подробности о том, что же конкретно позволило добиться такого дохода, но сообщил,

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

Dell готовит компьютеры с LinuxУже через несколько дней после запуска компанией Dell инициативы Ideastorm стало ясно, что потребители хотят Open Source. Цель проекта Dell Ideastorm заключалась в том, чтобы узнать у своих клиентов, что они больше всего хотят увидеть в новых компьютерных системах. На специально со-зданном для этого сайте (www.dellideastorm.com) пользова-тели могли выдвигать свои идеи и голосовать за уже пред-ставленные. Первые места в рейтинге вскоре оккупирова-ли предложения сторонников движения за ПО с открытым кодом. Так, например, первую строчку с большим отрывом заняла идея предварительно устанавливать 3 популярных бесплатных Linux-дистрибутива (Ubuntu, Fedora, OpenSUSE) с возможностью выбора любого из них при загрузке компью-тера. Среди других Open Source-предложений можно вы-делить лаптоп с ОС GNU/Linux, предустановленные на но-вых машинах программные пакеты OpenOffice.org и Mozilla Firefox. В Dell оперативно отреагировали на просьбы пот-ребителей и вскоре выпустили пресс-релиз, где сообщили о том, что уже ведутся переговоры с компанией Novell по сертификации корпоративных клиентских продуктов для SUSE Linux. Кроме того, было объявлено, что Dell работа-ет с другими Linux-дистрибьюторами, оценивает возмож-ность дополнительных сертификаций собственных продук-тов с их решениями.

Составил Дмитрий Шуруповпо материалам www.nixp.ru

Page 6: 052 Системный Администратор 03 2007

тенденции

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

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

В новорожденном предприятии равное (50/50) долевое участие «1С» и «Битрикс».

Такая схема вызвала множество вопросов со стороны прессы, но оба докладчика подчеркнули, что нахо-дят ее наиболее эффективной, и про-демонстрировали уверенность в пра-вильности этого выбора. Возглавил «1С-Битрикс» Сергей Рыжиков, кото-рый также останется и директором ООО «Битрикс».

Цель альянса – создание новых и продвижение уже существующих ин-тернет-разработок «Битрикс» на тер-ритории стран СНГ и Балтии (опера-циями в регионах США, где также раз-вивается бизнес Рыжикова, продол-жит заниматься «Битрикс»). Участ-ники «1С-Битрикс» логично раздели-ли обязанности, которые в целом све-лись к следующей модели: сотрудни-ки «Битрикс» отвечают за технологи-ческую часть и будут продолжать за-ниматься непосредственно разработ-кой, а «1С», являясь заметным экспер-том в области маркетинга и продаж, поможет с распространением продук-тов нового предприятия.

В частности, Рыжиков сообщил о росте партнерской сети «Битрикс» (причем таком бурном, что буквально «не успевают подписывать бумаги»): если сейчас количество ее представи-телей насчитывает около 1200 участ-

ников, то уже в текущем году это чис-ло должно вырасти до 2500. Пусть пар-тнерская сеть «Битрикс» и не «сольет-ся» с оной у «1С», альянс, несомнен-но, способствует процветанию данно-го направления.

Нуралиев в свою очередь, коммен-тируя «массовую партнерскую сеть» и общую бизнес-модель «1С», выразил намерение добиться с новым предпри-ятием успеха, аналогичного другим из-вестным проектам его фирмы:

«Ранее эта модель позволила нам добиться отличных результатов на та-ких направлениях, как «1С:Предпри-ятие» или «1С:Мультимедиа», и сов-местное предприятие «1С-Битрикс» дает возможность применить этот под-ход в области Интернета».

Насколько успешным окажется «1С-Битрикс», покажет время. Однако, исходя из субъективной оценки про-изошедшего с учетом нынешней ры-ночной ситуации и уровня услуг и про-дуктов, предоставляемых обеими ком-паниями, осмелюсь предположить, что перспективы проекта, как мини-мум, внушают доверие.

Дмитрий Шурупов,фотографии предоставлены

компанией «Битрикс»

«1С» и «Битрикс» обязуются любить друг друга

3 марта 2007 года фирма «1С» и компания «Битрикс» провели в Москве пресс-конференцию, посвященную созданию совместного предприятия «1С-Битрикс». На полуторачасовой официальной части мероприятия выступали и отвечали на вопросы журналистов руководители обеих сторон: Борис Нуралиев и Сергей Рыжиков.

Сергей Рыжиков расказывет о бурном росте партнерской сети

Page 7: 052 Системный Администратор 03 2007
Page 8: 052 Системный Администратор 03 2007

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

Утром – стулья, вечером – деньгиДумаю, что вы уже читали две преды‑дущие части статьи (в №12 за 2006 г. и в №1 за 2007 г.), ну а если не чита‑ли – ай‑ай‑ай! Срочно исправляйтесь. Изложенные в них варианты покупки программного обеспечения могут быть

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

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

Как купить ПО от Microsoft? Часть 3. Приобретаем в рассрочку

Дмитрий Бутянов

Как водится, самое вкусное я оставил напоследок. Три программы лицензирования – Open Value Non Company-Wide, Open Value Company-Wide и Open Value Subscription – на мой взгляд, самые интересные способы покупки программного обеспечения для корпоративных клиентов. Это касается как условий приобретения, так и цены. Да и дополнительные бонусы, которые вы получите, сбрасывать со счетов не стоит.

Page 9: 052 Системный Администратор 03 2007

�№3, март 2007

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

нежные средства‑то из оборота изыма‑ются. Чтобы смягчить этот финансо‑вый удар, Microsoft и предлагает про‑граммы лицензирования с возможнос‑тью рассрочки. Вы берете нужное про‑граммное обеспечение, а платить бу‑дете в течение трех лет, равными доля‑ми. Или – вообще ничего не покупаете, а берете нужный софт в аренду. Усло‑вия участия в программах демократич‑ны, однако есть темные места, на кото‑рые я постараюсь пролить свет.

Начну с «Важного заявления». По программам корпоративного ли-цензирования  нельзя  купить  опе-рационную  систему  персонально-го  компьютера. Никак. Без вариан‑тов! Только OEM с новыми компью‑терами или при их сборке, либо коро‑бочная версия, либо GGK (Get Genuine Kit – специальная версия для легали‑зации, см. статью в №12 за 2006 г.) для Windows XP. В прайс‑листах про‑грамм корпоративного лицензирова‑ния вы тем не менее можете увидеть строки, содержащие слова наподобие «Windows Vista Business», но не спе‑шите удивляться, а читайте строчку дальше – там обязательно будет сто‑ять слово «Upgrade». Это означает вер‑сию операционной системы, предна‑значенную для обновления существу‑ющей ОС. А вот существующая опе‑рационная система должна быть ле‑гальной, и ее можно купить только как OEM или коробку. Список опера‑ционных систем, которые можно ис‑пользовать с Windows Vista Business Upgrade, ограничен – Windows XP Pro, Windows Vista Ultimate, Windows 2000 Pro, Windows 98. Нельзя использовать Windows XP Home, Windows Vista Home Basic/Premium. Так что не ошибитесь при покупке новых ПК!

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

К базовым продуктам относят‑ся: Windows Vista Business Upgrade, Microsoft Office 2007 Professional Plus, Core CAL Suite (состоит из Windows CAL, Exchange Standard CAL, SMS CML, Office SharePoint Standard CAL). Эти продукты все вместе составляют Professional Desktop Platform.

Набор базовых продуктов Windows Vista Business Upgrade, Microsoft Office

2007 Small Business Edition, Windows Small Business Server CAL составляет Small Business Platform.

Смысл покупки Core CAL Suite со‑стоит в экономии средств: если поку‑пать клиентские лицензии, входящие в набор, по отдельности, то получит‑ся дороже.

Свободный выборНачну с программы Microsoft Open Value Non Company‑Wide (Non Company Wide означает, что вам не нужно по‑купать программное обеспечение для всех персональных компьютеров ва‑шей компании). Эта программа пре‑дусматривает возможность рассроч‑ки платежей на срок до трех лет. Что‑бы стать участником программы, нуж‑но преодолеть входной порог – 5 лю‑бых лицензий. Это немного, фактичес‑ки любая компания может войти в эту программу. Лицензии, которые вы при‑обретете по этой программе, являются постоянными, то есть вы можете поль‑зоваться ими неограниченное время. Опция Software Assurance является не‑отъемлемой частью покупки, и вы не можете от нее отказаться. Таким обра‑зом, вы в течение трех лет будете по‑лучать новые версии приобретенных продуктов и иметь на них право ис‑пользования. Причем право это оста‑нется у вас и после окончания дейст‑вия соглашения – если продукт был вы‑пущен в течение срока его действия.

К примеру, если вы в 2007 году купили по этой программе Office Professional Plus 2007, то вы получаете право на все новые версии Office Professional Plus, которые выйдут до 2010 года, и можете пользоваться этими верси‑ями неограниченное время и после окончания срока действия соглаше‑ния. Но если вы в 2010 году не про‑длите эту подписку на следующие три года, то новые версии Office, вышед‑шие после 2010 года, вы использовать уже не сможете. Я не могу указывать вам, как и что покупать, но продление подписки – это хороший способ быть все время Up‑To‑Date, а с учетом роста цен на программные продукты – и са‑мый экономичный. Более подробно Software Assurance обсуждалась в пре‑дыдущей статье (№1 за 2007 г.).

Еще одним хорошим свойством этой, а также всех описанных в данной статье программ является то, что за‑купки в рамках этих программ корпо‑ративного лицензирования может де‑лать и само предприятие, и его аффи‑лированные лица (юридические ли‑ца со степенью участия более 50%). Так что если у вашей компании есть аффилированные «дочки», то можно купить софт сразу на всех. При офор‑млении сделки можно указать спи‑сок аффилированных предприятий или выбрать опцию «предприятие, все аффилированные лица предпри‑ятия, включая те, которые будут со‑

Рисунок 1. Размер ежегодных платежей за Office Professional в программах корпоративного лицензирования

Page 10: 052 Системный Администратор 03 2007

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

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

По программе Open Value Non Company‑Wide вы можете приобрес‑ти любые необходимые вам продукты. При этом вы получаете право исполь‑зовать любую языковую версию про‑дукта при условии, что она не доро‑же купленной версии. Таким образом вы, например, можете использовать Microsoft Office 2007 Russian при покуп‑ке Microsoft Office 2007 English. Техно‑логия заключения сделки проста: об‑ращайтесь в компанию, занимающую‑ся продажами программного обеспе‑чения (реселлеру). В ходе оформления сделки (внутреннюю «кухню» я опи‑сывать не буду), вы получите ссыл‑ку на веб‑узел Microsoft eAgreements, на котором получите доступ к тексту соглашения. Письмо придет на адрес электронной почты, который вы ука‑

жете реселлеру, так что проверяйте его регулярно. Соглашение надо под‑писать в электронной или бумажной форме. Для этого само соглашение вы можете распечатать. (Внимание! За‑ходить на сайт надо только по ссылке в письме! Прочитайте это вслух пять раз!) Подписанное вами соглашение будет передано в Microsoft, а вы полу‑чите письмо, подтверждающее согла‑сие Microsoft заключить соглашение – Acceptance Letter, а также подтверж‑дение заказа, включающее выбран‑ный вами набор продуктов, количест‑во и срок использования.

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

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

По окончании соглашения вы по‑лучаете постоянную лицензию на те‑

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

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

Не теряйте свой логин/пароль входа на на веб‑узел Microsoft eAgreements! На этом узле вы найдете все ключи, необходимые для установки продук‑тов, а также сможете скачать дист‑рибутивы. Кроме того, на этом сай‑те вы сможете управлять бонусами Software Assurance. Обратите на это внимание – чтобы воспользовать‑ся дополнительными преимущест‑вами Software Assurance, вам нуж‑но их включить на сайте. Например, так вы сможете получить Windows Vista Enterprise как бонус при покуп‑ке Windows Vista Business Upgrade + Software Assurance.

Отбеливатель для всей семьиПрограмма Open Value Company‑Wide является подвидом программы Open Value, но по сравнению с предыдущей она обладает важными особенностя‑ми. Входной порог в программу – 5 ПК. Обратите внимание, не 5 лицен‑зий, а 5 ПК!

Главное, что необходимо знать, – в этой программе обязательная стан‑дартизация. Стандартизация – это обя‑

Изменения в правилах продаж продуктов MicrosoftСо времени выхода первой статьи об осо‑бенностях приобретения OEM‑лицензий (№12 за 2006 г.) компания Microsoft изме‑нила правила продаж OEM‑версий про‑граммных продуктов. С конца 2006 го‑да продажи OEM‑версий конечным поль‑зователям разрешена только в том слу‑чае, если конечный пользователь соби‑рает свой компьютер самостоятельно. Ес‑ли конечный пользователь уже обладает собранным компьютером, то он не может воспользоваться OEM‑версией програм‑много продукта. Таким образом, для це‑лей легализации вы можете использовать либо коробочные версии продуктов, либо, для Windows XP Professional, приобретать Get Genuine Kit.

Прода жа OEM ‑версий Mic rosof t Office 2007 также претерпела изменения. При поставке этого продукта в составе соб‑ранного ПК вы бесплатно получаете пре‑дустановленную версию Office 2007, поль‑

зоваться которой можно будет 60 дней. В течение этого срока продукт можно ак‑тивировать, для чего требуется приобрес‑ти ключ продукта. Таким образом, вы мо‑жете стать владельцем OEM‑версии про‑граммного продукта, но у вас не будет дис‑ка с дистрибутивом. Вместо диска состав‑ляющей лицензии является купленный ва‑ми ключ в виде DVD‑бокса. Носитель мож‑но приобрести за отдельную плату. Новая программа продажи Microsoft Office 2007 получила название Office Ready.

Изменились правила продажи Windows Vista Business Upgrade – версии операци‑онной системы, приобретаемой по про‑граммам корпоративного лицензирова‑ния. Использование Windows Vista Upgrade возможно с Windows XP Professional или Windows 2000 Professional. Приобретение комбинации Windows XP Home + Windows Vista Upgrade возможно только в том слу‑чае, если Windows Vista Business Upgrade приобретается в виде коробочного про‑дукта.

Page 11: 052 Системный Администратор 03 2007

�№3, март 2007

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

зательное приобретение продуктов для всех персональных компьютеров организации. Помните, я писал в на‑чале статьи про базовые продукты (платформы)? Тут как раз и использу‑ются эти понятия. Дело в том, что по требованиям программы Open Value Company‑Wide вы будете должны ли‑цензировать хотя бы один из базовых продуктов для всех ПК организации. Необязательно все. Но если вы ли‑цензируете сразу платформу, то по‑лучите дополнительные скидки. Ес‑ли вы лицензируете базовый продукт для всех ПК в организации, то може‑те получить скидку до 40% на продукт, в зависимости от продукта. Если быть точным, то за стандартизацию опера‑ционной системы – 40% скидки, Office – от 10% до 28%, Core CAL Suite – 23%. Если же вы к тому же берете Плат‑форму (Professional Desktop Platform или Small Business Platform), то полу‑чите еще 15% скидки «за платформу» на продукты, в нее входящие.

Естественно, возникает вопрос: а какие именно компьютеры должны включаться в соглашение? Под стан‑дартизацию попадают персональные компьютеры, аппаратные возможности которых позволяют запустить продукт. Не включаются в соглашение серве‑ры, компьютеры со встроенными опе‑рационными системами типа Windows Embedded, а также компьютеры, на ко‑торых используется узкоспециализи‑рованное программное обеспечение. Последний пункт всё время вызыва‑ет много вопросов, и готового рецеп‑та нет – посоветуйтесь с реселлером, его опыт поможет.

Если вы лицензируете на все пер‑сональные компьютеры не платформу, а только один из базовых продуктов, то другие базовые продукты вы можете покупать в любых количествах, однако скидки «за платформу» и «за стандар‑тизацию» можно получить только при оформлении соглашения. Цена на ба‑зовые продукты фиксируется в момент подписания соглашения, таким обра‑зом вы пользуетесь трехлетней защи‑той от повышения цены. Если в течение срока действия соглашения количест‑во компьютеров в вашей организации увеличивается, то вы должны покупать базовые продукты, по которым была выполнена стандартизация, для при‑обретаемых ПК, причем по «старым»

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

Данная программа является не‑плохим инструментом легализации, так как предполагает лицензирование

всего парка ПК – тем самым вы сра‑зу покупаете «оптовое» лицензирова‑ние для всей компании. Главное – это вовремя докупать нужное количес‑тво лицензий при росте парка ком‑пьютеров или при установке серве‑ров. Делать это нужно в течение ме‑сяца после установки программного обеспечения.

Попробую подвести промежуточ‑ные итоги.

П р е и м у ще с т в а м и п р о г р а м м Microsoft Open Value (Company‑Wide Non и Company‑Wide) является воз‑можность уменьшения единовремен‑ных затрат на приобретение програм‑много обеспечения: оплата произ‑водится в виде ежегодных платежей, а это позволит решить проблему не‑хватки оборотных средств. Так как в эти программы входит опция Software

Рисунок 2. Итоговая стоимость приобретения Office Professional в восьмилетней перспективе

Рисунок 3. Влияние скидок программ корпоративного лицензирования на стоимость Office Professional

Page 12: 052 Системный Администратор 03 2007

10

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

Assurance, то вы автоматически полу‑чаете право использовать самые пос‑ледние версии программных продук‑тов Microsoft, которые будут выпуще‑ны в течение трех лет действия со‑глашения, а также предыдущие вер‑сии, так как право Downgrade ник‑то не отменял. Также у вас появляет‑ся возможность контролировать рас‑ходы на приобретение программно‑го обеспечения в случае лицензиро‑вания всего парка ПК – стоимость ли‑цензий на базовые продукты в расчете на один ПК остается постоянной в те‑чение всего срока действия соглаше‑ния, а автоматическое включение оп‑ции Software Assurance позволяет за‑страховаться от возможного повыше‑ния цен в связи с выходом новых вер‑сий. Риск нелицензионного исполь‑зования программного обеспечения снижается, так как у вас есть право использовать лицензированные про‑дукты на любых компьютерах в орга‑низации, включая новые ПК, добав‑ленные в течение действия соглаше‑ния, при условии оплаты в течение ме‑сяца с момента установки.

Если не хочется покупатьЭто тоже возможно – не покупать про‑граммное обеспечение и тем не менее пользоваться легальными продукта‑ми. Для этого вам нужно арендовать ПО у Microsoft, воспользовавшись про‑граммой Open Value Subscription.

Входной порог в программу – 5 ПК. В рамках программы Open Value Subscription вам предлагается вре‑менная лицензия – срок ее действия ограничен сроком действия соглаше‑ния. Вам необходимо ежегодно оплачи‑вать свое право использовать любые новые порядковые и языковые (в зави‑симости от выбранного языкового на‑бора) версии лицензированных про‑дуктов. Поскольку лицензия ограниче‑на во времени, размер ежегодных пла‑тежей существенно ниже, чем при за‑купке постоянных лицензий. Кроме то‑го, временная лицензия освобождает вас от ограничений, связанных с еже‑годной оплатой постоянных лицензий, которую необходимо вносить незави‑симо от имеющихся финансовых воз‑можностей.

По условиям программы Open Value Subscription лицензии закупа‑ются для всех ПК в организации. Пра‑во использования лицензированных продуктов распространяется и на все ПК, добавляемые в течение года. Вы можете немедленно начинать исполь‑зование лицензированного програм‑много обеспечения на новых компью‑терах, при этом оплата будет произво‑диться только в следующую годовщи‑ну соглашения. Таким образом, вы за‑щищены от риска нелицензионного ис‑пользования ПО. На практике это оз‑начает следующее: компания Microsoft выдает вам своего рода индульген‑

цию, согласно которой все ваши пер‑сональные компьютеры являются но‑сителями подлинных версий базовых продуктов, сколько бы их ни было (но не менее 5 штук). Предположим, в ва‑шей организации 30 ПК. Вы заключа‑ете это соглашение, лицензируя од‑ну из двух Платформ. Таким образом, все ваши персональные компьютеры становятся носителями лицензион‑ных версий программных продуктов, входящих в Платформу. Не забудь‑те про «Важное заявление»! На поку‑паемых компьютерах должна стоять, как минимум, лицензионная Windows XP Pro, так как в «Платформу» вхо‑дит только Upgrade‑вариант Windows Vista! Если через месяц число ваших персональных компьютеров увеличит‑ся еще на 30 штук, то они тоже попа‑дают под действие этого соглашения автоматически. Но – важное отличие от других программ! – вам не надо пла‑тить за них в течение месяца. Вы пла‑тите за ваш парк ПК только раз в год, по фактическому количеству ПК на мо‑мент годовщины соглашения. Еще од‑ним важнейшим отличием програм‑мы Microsoft Open Value Subscription от других программ корпоративного лицензирования является то, что ко‑личество компьютеров, за которое вы платите в годовщину соглашения, мо‑жет уменьшаться (запишите это куда‑нибудь. Может уменьшаться!). Напри‑мер, в первый год вы лицензировали 100 персональных машин. Через год волею судеб у вас вместо 100 ПК ос‑талось 30. Нет проблем – вы платите за тридцать. Это становится возмож‑ным, потому что вы ничего не поку‑паете – вы просто платите за год ис‑пользования продуктов Microsoft в ор‑ганизации.

Чтобы войти в эту программу, нуж‑но соблюсти ряд требований. Неслож‑ных, не пугайтесь, нормы ГТО сдавать не надо будет. Программа подразуме‑вает «Стандартизацию» в том виде, в каком я ее уже описывал. То есть один из базовых продуктов лицензиру‑ется на весь парк ПК, и это обязатель‑но. Естественно, вы получите скидку «за стандартизацию». Если вы вклю‑чите в соглашение набор базовых про‑дуктов, составляющий «Платформу», то вы также получите скидку «за плат‑форму». Купить базовый продукт в про‑извольном количестве нельзя. Иными

Рисунок 4. График прихода электронных уведомлений в программах Open Value (* расторжение соглашения только при отсутствии платежа)

Page 13: 052 Системный Администратор 03 2007

11№3, март 2007

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

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

Цена на базовые продукты фик‑сируется в расчете на один ПК в мо‑мент подписания соглашения и не мо‑жет быть изменена в течение срока его действия (три года). Дополнитель‑ные продукты можно покупать в лю‑бых количествах, правило Стандар‑тизации на них не распространяется. Платить за дополнительный продукт надо в течение месяца после его ус‑тановки. Цена на дополнительный про‑дукт фиксируется в момент его первого приобретения, и последующие закупки этого же продукта будут производить‑ся по той же цене. Если приобретае‑те продукт не в годовщину соглаше‑ния, то вы всё равно заплатите за год, пропорционального пересчета плате‑жей не будет. Поэтому заказывать до‑полнительные продукты имеет смысл в годовщину соглашения.

Правило «Стандартизации» рас‑пространяется на все ПК, включая и те, на которых уже есть легальный про‑дукт. Но тут Microsoft дает вам следу‑ющую скидку – Up‑To‑Date. Например, у вас уже есть 30 ПК с Windows Vista Business, которая является легаль‑ной. Вы хотите приобрести Windows Vista Business Upgrade, чтобы ли‑цензировать машины с Windows XP Professional в количестве 50 штук. По правилам Open Value Subscription, вы должны лицензировать Windows Vista Business Upgrade на все ПК ор‑ганизации, т.е. на 80 штук. Но Microsoft даст вам скидку 50% на первый годо‑вой платеж за 30 машин с уже легаль‑ной ОС. То есть в первый год вы запла‑тите за 50 ПК по полной, а за 30 ПК – со скидкой 50%. Дальнейшие платежи будут идти без скидок.

«А что будет через три года?» – спросите вы и будете правы. Согла‑шение‑то длится ровно три года, а ли‑цензии временные. И тут перед ва‑ми открываются три варианта разви‑тия событий.

Первый вариант можно назвать «Всем спасибо, все свободны». Это значит, что вы не хотите использо‑

вать продукты дальше. Поскольку ли‑цензия временная, то вы теряете пра‑во использования этих продуктов и вам необходимо их удалить. Удале‑ние оформляется документально (об‑ратитесь в Информцентр Microsoft, вам там подскажут, какой документ должен быть оформлен).

Второй вариант – продление со‑глашения на три года. Все как и рань‑ше, но продление будет по текущему прайс‑листу.

Третий вариант – выкуп. В качестве выкупа вы платите 1.75 годового пла‑тежа + плата за лицензии, добавлен‑ные в течение последнего года. И вре‑менная лицензия превращается в пос‑тоянную.

Проблема выбораЯ постарался коротко «пробежаться» по основным понятиям корпоративно‑го лицензирования продуктов Microsoft. Шесть программ, девять схем лицен‑зирования… что же выбрать?

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

ным программам с рассрочкой плате‑жей. И опять – выбор программы бу‑дет зависеть от ваших целей. Если ва‑ша цель заключается в минимизации ежегодных платежей и вы не рассмат‑риваете долгосрочные финансовые ас‑пекты сделки, то вам подойдет Open Value Subscription (см. рис 1).

Если проводить сравнительный анализ, затрат на программное обес‑печение в перспективе 8 лет и более, то самым дешевым вариантом покуп‑ки будет покупка по Open License без Software Assurance, но тогда вам при‑дется в дальнейшем покупать новые версии продуктов. Если рассматривать программы лицензирования с рассроч‑кой, то в перспективе 8 лет стоимость продуктов Open Value и Open Value Subscription сравняются, и подписка станет более дорогой (см. рис 2).

Конечно, очень хотелось бы дать некий готовый рецепт покупки. Но всё решает конкретная ситуация. Пос‑мотрите на рис.  3. Цена на Office Professional Plus может измениться от 640 $ до 143 $ из‑за влияния ски‑док, которые предоставляют разные программы лицензирования. Это боль‑шая разница, но надо взвесить все со‑ставляющие покупки. В ряде случаев на разные продукты нужно открывать разные соглашения. Что‑то покупать по Open License, что‑то по Open Value. Не стесняйтесь спрашивать и терзать вашего реселлера, получите у не‑го итоговые таблицы цен продуктов в случае использования разных про‑грамм лицензирования. Не забывайте о скидках. Хороший вариант вы всегда сможете найти.

Удачи!

Рисунок 5. Возможность изменения парка ПК в программе Open Value Subscription

Page 14: 052 Системный Администратор 03 2007

12

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

В случае подключения к кор-поративным ресурсам уда-ленных клиентов для защиты

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

Проект ViPNetТехнологии создания VPN, заложенные в продуктах и решениях ViPNet, разра-батываемых российской компанией Ин-фотекс (http://www.infotecs.ru), позволя-ют организовать безопасный обмен за-щищенной информацией как в локаль-ных, так и в глобальных сетях незави-симо от способа (модем, xDSL, ISDN, GPRS, Ethernet, WiFi и прочие), мес-та подключения компьютеров и типа выделяемого им IP-адреса (см. рису-нок). Обеспечивается работа из-за ус-тройств, реализующих трансляцию се-тевых адресов (NAT). Одна из главных особенностей – возможность созда-ния зашифрованного соединения меж-ду клиентскими компьютерами напря-мую, минуя центральный узел.

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

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

Некоторые сторонние бизнес-при-ложения (MS NetMeeting, VoxPhone, In te rnet Phone, Compaq Ins ight Manager) могут быть вызваны ViPNet. С абонентом, выбранным из окна VPN-клиента, соединение будет уста-новлено автоматически. Весь трафик при этом принудительно шифруется. Кроме того, в составе ViPNet – целый набор необходимых в повседневной ра-боте защищенных бизнес-приложений, за которые не нужно платить дополни-тельно: защищенная служба обмена сообщениями, почтовая служба «Де-ловая почта», файловый обмен и веб-ссылка, позволяющая получить до-ступ к корпоративным информацион-ным ресурсам, построенным на осно-ве веб-технологий. Для отправки фай-ла или письма адресату можно исполь-зовать контекстное меню Проводника.

Продукт коммерческий, cтоимость лицензии зависит от количества внут-ренних интерфейсов и внутренних IP-адресов клиентов, а также версии продукта.

Структура сети ViPNetДоступны три решения, позволяющие организовать виртуальную сеть: ViPNet CUSTOM, ViPNet OFFICE и ViPNet TUNNEL. Первое позволяет созда-вать произвольные сети неограничен-ного масштаба и объединять в еди-ную защищенную виртуальную сеть произвольное число локальных сетей и рабочих станций. В качестве про-граммы управления VPN-сетью в ре-шении ViPNet CUSTOM использует-ся программа ViPNet Администратор. Её облегченная версия ViPNet Менед-жер, применяемая в решении ViPNet OFFICE, позволяет легко создавать и изменять структуру защищенной се-ти небольшого или среднего размера несколькими движениями мыши. Са-мое простое решение – ViPNet TUNNEL. Оно предназначено для защиты соеди-нения только между сетями, связанны-ми друг с другом через Интернет.

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

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

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

Page 15: 052 Системный Администратор 03 2007

13№3, март 2007

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

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

Координатор – это Клиент с дополнительными возмож-ностями. Компьютер с установленным ViPNet Координато-ром используется на границах разделения локальных се-тей, обеспечивая включение в сеть VPN компьютеров, на-ходящихся в этих сетях, и выполняя функции межсетево-го экрана. Варианты соединения Клиентов и Координато-ров задаются при построении VPN-сети с помощью ViPNet Менеджера. При установке предлагается выбрать один из трех вариантов:n связать все сетевые узлы – все узлы сети ViPNet бу-

дут связаны между собой;n связать все абонентские пункты каждого Координа-

тора – АП, привязанные к «своему» Координатору, мо-гут иметь связи только с Координатором и другими АП своего координатора;

n связать каждый абонентский пункт со своим Ко-ординатором – каждый АП будет иметь связь только со своим Координатором.

Координаторы всегда будут иметь связи между собой.В дальнейшем можно более гибко распределить возмож-

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

Все программное обеспечение ViPNet вы можете уста-новить на компьютеры под управлением ОС Windows 2000/XP/2003, для Координатора – и под ОС Linux.

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

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

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

Криптографическое ядро системы ViPNet по умолчанию использует алгоритм с длиной ключа 256 бит. Но есть и дру-гие алгоритмы, которые могут быть свободно выбраны самим пользователем. Длина открытого ключа для асимметричной ключевой системы равна 1024 бит (ГОСТ Р 34.10-2001). Тех-нологии ViPNet в составе продукта ViPNet Custom прошли сертификацию в ФСБ и ФСТЭК и используются крупными заказчиками, среди которых Российские железные дороги, Пенсионный фонд РФ и другие.

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

При наличии схемы будущей сети установка и настрой-ка ViPNet OFFICE (TUNNEL) очень проста. Первым уста-навливается Менеджер, а затем Клиенты и Координато-ры. При установке Менеджера создается структура буду-щей сети, которую затем можно будет скорректировать. Система будет работать сразу после установки в настрой-ках по умолчанию.

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

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

Структура сети VipNet

Page 16: 052 Системный Администратор 03 2007

14

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

Строим сетевую инфраструктуру на основе VMware Server

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

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

Page 17: 052 Системный Администратор 03 2007

15№3, март 2007

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

В данной статье пойдет речь об интересной методике, когда часть серверов размещается

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

Преимущество методаn Упрощается процесс резервно-

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

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

n На одном компьютере возможно использование серверов под уп-равлением различных операци-онных систем, например, Windows и FreeBSD.

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

n Накладные расходы на подде-ржание аппаратного обеспече-ния виртуальной машины как та-ковые отсутствуют. Не нужно ме‑нять кулеры на процессорах, ремон‑тировать вышедший из строя блок питания и т. д. и т. п. С другой сторо‑ны, повышается требовательность к аппаратным ресурсам (см. раздел «Минусы метода»).

В случае размещения на одном физическом и множестве виртуаль‑ных серверов различных операцион‑ных систем и приложений мы выигры‑ваем следующее:n Оборудование для системы за-

нимает меньше места в стойке. Зачем устанавливать в стойку 3‑4 маломощных сервера, если вмес‑то них можно установить один сер‑вер, который будет выполнять те же самые функции. Особенно это кри‑тично, если оборудование разме‑щается на арендуемой площадке провайдера, или не хватает места в стойке. Для виртуальных машин, размещенных на одном сервере, требуется меньше портов на KVM‑switch (Keyboard‑Video‑Mouse).

n Добавляются дополнительные возможноcти администрирова-ния. Например, появляется воз‑можность при зависании прило‑жения не только перезапустить нужный процесс, а перезагрузить виртуальный сервер целиком, не влияя на работу приложений, раз‑мещенных на других виртуальных серверах.

n Улучшается система безопас-ности. Даже при успешном несан‑кционированном проникновении по сети на один виртуальный сервер, другие виртуальные серверы оста‑ются нетронутыми.

n Значительно упрощается про-цесс делегирования полномочий. Можно передать права на адми‑нистрирование виртуальным сер‑вером доверенному лицу, не пере‑живая о пересечении полномочий при управлении процессами, раз‑мещенными на других серверах.

Минусы методаВ случае если виртуальные серве‑ры размещаются на платформе фи‑зического сервера под управлением Windows, возникает необходимость покупки соответствующего количес‑тва дополнительных лицензий, ведь с точки зрения лицензионной поли‑тики нет разницы, на каком сервере устанавливается продукт – програм‑мном или виртуальном. Правда, этих затрат удается избежать, если исполь‑зовать VMware на базе Linux. Кро‑ме того, при увеличении числа вирту‑альных серверов на одном физичес‑ком сервере относительные затраты на «лишние» лицензии уменьшаются пропорционально количеству вирту‑альных серверов.

В целом, описание разнообраз‑ных аспектов лицензирования выхо‑дит за рамки данной статьи. Всем, ко‑го заинтересует данный вопрос, реко‑мендую прочесть цикл статей Дмитрия Бутянова «Как купить ПО от Microsoft?» в журнале «Системный администра‑

Рисунок 1. Окно выбора интерфейса для создания «моста» виртуальной машины

Page 18: 052 Системный Администратор 03 2007

16

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

тор», выпуски: №12 за 2006 г. №1 за 2007 г. и в этом номере на стр. 6‑11.

Второй минус – снижение быстро‑действия при использовании системы виртуальных машин на VMware Server. В частности это касается объема опе‑ративной памяти, скорости обмена дисковой подсистемы и т. д. Но раз‑витие аппаратной части компьютер‑ной техники происходит достаточно ин‑тенсивно (вспоминаем законы Мура), и поэтому деньги, потраченные на по‑купку дополнительных модулей памя‑ти или более быстрого RAID‑контрол‑лера уже не кажутся баснословными затратами на фоне повышения отка‑зоустойчивости, безопасности и дру‑гих важных характеристик.

Описание примераПоскольку утверждения, не подкреп‑ленные практикой, недорогого стоят, то нужно провести некий показатель‑ный эксперимент, чтобы показать всю простоту данного решения. Мы запус‑тим систему виртуальных машин на од‑ном компьютере и разместим различ‑ные операционные системы: Windows 2003 Server и FreeBSD на виртуальных серверах. На виртуальной Windows‑машине разместим контроллер доме‑на Active Directory. Потом установим на другую машину FreeBSD и настро‑им на ней сетевой интерфейс.

После чего проимитируем сбой и восстановим наши виртуальные ма‑шины с контроллером домена и серве‑ром FreeBSD из резервной копии и поп‑робуем зарегистрироваться на конт‑роллере домена с рабочей станции.

Компьютер, на котором будет ус‑танавливаться система виртуальных машин, имеет следующую конфигура‑

цию: AMD Athlon 2600+, 1 Гб RAM, HDD UDMA133, 100 Мб/с LAN. Несмотря на то что оборудование весьма скром‑ное, оно прекрасно справится с постав‑ленной тестовой задачей.

Кроме того, мы будем использовать другой компьютер в качестве рабочей станции, вводимой в домен. Так как конфигурация этой машины не игра‑ет существенной роли, ее лучше опус‑тить. Отметим только, что на данном компьютере будет установлена вер‑сия Windows XP Pro.

Я специально не буду касаться всех деталей установки. О програм‑мных продуктах Windows 2003 Server и VMware написано достаточно много статей и книг, чтобы еще раз подроб‑но описывать все аспекты установки и настройки в этой статье.

Установка необходимого ПОСкачаем с сайта http://www.vmware.com свежую версию VMware Server. Потом необходимо зарегистрироваться. Пос‑ле чего необходимо заполнить форму по адресу http://register.vmware.com/content/registration.html, чтобы получить серийный номер.

Установим на тестовый компьютер Windows 2003 Server. В данном слу‑чае устанавливаем Standard Edition, но система VMware будет неплохо рабо‑

Рисунок 3. Виртуальный компьютер в качестве контроллера домена с запущенной оснасткой «Active Directory Users and Computers»

Рисунок 2. Виртуальный интерфейс находится в нерабочем состоянии вследствие того, что физический интерфейс, используемый в качестве bridge, также не подключен

Page 19: 052 Системный Администратор 03 2007

17№3, март 2007

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

тать на любой другой версии Windows 2003 Server.

После установки операционной системы и необходимых драйверов устанавливаем VMware Server. Уста‑новка данного программного продук‑та практически ничем не отличается от других.

Создание виртуальной машины Windows 2003 ServerПосле установки операционной сис‑темы и VMware Server создаем вирту‑альную машину Windows 2003 Server Standard Edition. В окне «Network Type» нужно установить переключатель на «Use bridged networking».

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

Устанавливаем соответствующую операционную систему. В качестве ус‑тановочного CD‑ROM можно использо‑вать физическое устройство, а мож‑но выбрать ISO‑образ диска (который предварительно нужно создать).

Настраиваем и тестируем наше виртуальное «оборудование», в част‑ности – сетевой интерфейс. Мы будем использовать для всех компьютеров IP‑адреса одной подсети, поэтому при правильных настройках можно прове‑рить при помощи команды ping доступ к виртуальной машине с реального ин‑терфейса и наоборот.

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

Создание контроллера домена Active Directory на базе виртуальной машиныПосле установки на виртуальную ма‑шину Windows 2003 Server поднима‑ем на ней контроллер домена Active Directory. Процедура эта ничем не отли‑чается от обычной стандартной проце‑дуры установки контроллера на физи‑ческом компьютере (см. рис. 3).

Теперь осталось ввести в получен‑ный тестовый домен рабочую станцию. Как видите, (см. рис. 3) данный экспе‑римент удался, и рабочая станция бла‑гополучно стала членом домена.

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

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

Для этого в окне настроек вир‑туальной машины «Virtual Machine settings» во вкладке «Options» уста‑новим параметры автоматического запуска: «On host start up → Power on

Рисунок 4. Настройки автостарта виртуальной машины

Рисунок 5. Настройка интерфейса посредством программы sysinstall в окне виртуальной машины FreeBSD

Page 20: 052 Системный Администратор 03 2007

18

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

virtual machine» и «On host shutdown → Power off virtual machine» (см. рис. 4).

Кроме этого, необходимо просле‑дить, чтобы службы VMware Server за‑пускались автоматически.

Создание и установка виртуальной машины FreeBSDНу здесь все просто. Как обычно, вна‑чале создаем виртуальную маши‑ну. Примечательно, что при создании виртуальной машины соответствую‑щий пункт меню нужно искать в ок‑не «Select a Guest Operation System», переставив переключатель в положе‑ние «Other».

После создания виртуальной ма‑шины устанавливаем на нее соответс‑твующую OS.

Совет: в данном случае особенно актуально использовать для вирту‑альной машины в качестве CD_ROM ISO‑образ первого диска, скачанного с сайта http://www.freebsd.org. Во‑пер‑вых, потому что не нужно записывать инсталляционный диск из данного об‑раза, а во‑вторых, система так уста‑навливается быстрее.

Создав виртуальную машину и ус‑тановив на ней операционную систему, мы настроим сетевой интерфейс. Пос‑ле этого мы будем считать свою зада‑чу выполненной.

В дальнейшем на этом компьютере можно будет создать, к примеру, поч‑товый сервер (см. рис. 5).

Теперь осталось установить пара‑метры автоматического запуска вир‑туальной машины аналогично описан‑ным для виртуальной машины с конт‑роллером домена.

Искусственный крах и восстановление из резервной копииИ вот начинается самое интересное. Мы уничтожим наш созданный сер‑вер вместе с виртуальной машиной – контроллером домена. После чего перестановим операционную систе‑му и VMware Server, восстановим из резервной копии нашу виртуальную машину и попытаемся зарегистриро‑ваться на контроллере домена с ра‑бочей станции, принадлежащей это‑му домену.

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

В качестве метода «уничтожения» сервера я просто отформатировал диск C. После этого вновь переставил Windows 2003 Server и VMware Server.

Для «чистоты» эксперимента я вос‑

становил виртуальные машины в дру‑гую папку.

После восстановления из резерв‑ной копии и попытки открыть восста‑новленную виртуальную машину я по‑лучил сообщение, говорящее о том, что у виртуальной машины изменил‑ся уникальный идентификатор и пред‑ложение создать новый или сохранить старый идентификатор. Я выбрал «со‑хранить старый» – Keep (см. рис. 6).

Вновь запущенная система про‑должила отлично работать. Я спокой‑но зарегистрировался в Active Directory с рабочей станции и получил доступ ко всем ресурсам, в том числе к пап‑кам, расположенным на виртуальном сервере.

Время восстановления 10 Гб вир‑туального раздела заняло 33 минуты. Для ситуации, когда подразумевает‑ся полный выход контроллера доме‑на Active Directory из строя, это не са‑мый плохой вариант. При этом следу‑ет учесть, что данная процедура вос‑становления виртуального сервера с контроллером домена требует гораз‑до более скромной квалификации сис‑темного администратора (достаточно лишь обладать основными навыками работы с VMware), чем при восстанов‑лении контроллера домена стандарт‑ными средствами.

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

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

Самое лучшее – это прочесть до‑кументацию от производителя, раз‑мещенную на http://www.vmware.com/support/pubs. Здесь вы найдете много интересного, в том числе и выходяще‑го за рамки данной статьи.

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

Page 21: 052 Системный Администратор 03 2007
Page 22: 052 Системный Администратор 03 2007

20

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

Ситуацию, сложившуюся к на-стоящему моменту на рынке средств виртуализации, иначе

как гонкой не назовешь. А началось все с того, что на территорию, практи-чески безраздельно принадлежавшую VMware, Inc. вторглась вездесущая корпорация Microsoft, использовав с успехом опробованную на Netscape

тактику – демпинг. Приобретенный у сторонней фирмы и доработанный самой компанией Microsoft Virtual PC был не просто дешев – он вообще ни-чего не стоил. Ответ VMware, которая по понятным причинам не могла ком-пенсировать затраты на производс-тво одноименной линейки продуктов за счет продаж операционных систем

и офисных пакетов, был асимметрич-ным, но стратегически правильным. «Бесплатный как пиво» VMware Player быстро стал стандартом де-факто для распространения appliances – обра-зов дисковых накопителей с предус-тановленными и настроенными систе-мами: серверами, средствами разра-ботки и др. [7]. Несмотря на отведен-

VirtualBox – виртуализация под GPL

Валентин Синицын

15 января 2007 года вполне может войти в историю свободного ПО как день, когда у VMware Workstation впервые появился достойный открытый аналог. Насколько полной вышла эта аналогия? Попробуем разобраться.

Page 23: 052 Системный Администратор 03 2007

21№3, март 2007

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

ную ему роль проигрывателя, VMware Player мог худо-бедно использоваться как замена Workstation – дескрипторы виртуальных машин и дисковые обра-зы легко генерировались при помощи сервисов вроде www.easyvmx.com.

В то время, пока гиганты актив-но боролись за место под солнцем, мир свободного ПО неспешно строил «флот» пара-виртуализаторов, флаг-маном которого стал Xen [1]. И хотя по-явление технологий аппаратной вир-туализации (Intel VT и AMD SVM) поз-волило запускать в домене Xen немо-дифицированные версии Windows XP, свободных полных виртуализато-ров наподобие VMware или Parallels Workstation по-прежнему не сущест-вовало.

Ситуация изменилась 15 января 2007 года. В этот день немецкая ком-пания InnoTek (имеющая, судя по ин-формации на сайте, офисы и в Рос-сии) объявила о выпуске VirtualBox Open Source Edition (OSE) – инстру-мента полной виртуализации для плат-формы x86, распространяющегося по лицензии GPL [2]. Спустя еще три не-дели, 6 февраля, был открыт QEMU Accelerator Module – kqemu, «позволяю-щий PC-эмулятору QEMU выполняться значительно быстрее при эмуляции PC на x86-хосте» [4]. Впрочем, я не скло-нен считать, что сейчас в мире Open Source существует два полных вир-туализатора, ибо VirtualBox и QEMU подходят к решению проблемы с про-тивоположных концов: VirtualBox – это в первую очередь виртуализатор с динамической трансляцией и прочи-ми «прелестями», переключающий-ся в режим эмуляции только в случае крайней необходимости, тогда как QEMU – это эмулятор, имеющий не-обязательный модуль полной вирту-ализации. Оба варианта имеют свои плюсы и минусы, но сейчас мы сфоку-сируемся на VirtualBox.

VirtualBox для пользователяДля начала посмотрим на VirtualBox глазами человека, который собирает-ся использовать его для обеспечения параллельной работы нескольких ОС. В разделе Downloads на сайте проек-та [2] предлагаются к загрузке две ре-дакции: закрытая VirtualBox и уже упо-минавшаяся открытая VirtualBox OSE.

виться и в редакции OSE. Таким обра-зом, обмен данными с внешним миром из VirtualBox OSE затруднен, но возмо-жен (например, через общий сетевой ресурс). Зато OSE-редакция уже вош-ла в репозитории некоторых дистрибу-тивов, а нидерландская группа пользо-вателей Linux даже выпустила специ-ализированный LiveCD/USB с предус-тановленным и настроенным VirtualBox OSE – MCNLive «VirtualCity» – на базе Mandriva Linux [5].

Перейдем к установке програм-мы. В качестве хост-систем VirtualBox поддерживает Windows (2000 SP3+/XP/Server 2003) и Linux 2.4 или 2.6 (в насто-ящее время ведется работа над вер-сией для Mac OS X). Для платформ Microsoft продукт распространяется в формате MSI, пользователи Linux могут выбирать между deb-пакета-ми для Ubuntu 6.06-6.10/Debian 3.1-4.0 (вот она, популярность – раньше сто-ронние поставщики старались выпус-тить в первую очередь RPM для Red Hat/SUSE; правда, в версии 1.3.6, вы-шедшей во время подготовки статьи к печати, таки добавился RPM для openSUSE 10.2) и универсальным ус-тановщиком в виде сценария sh. Все вышесказанное не касается редакции OSE, которая распространяется только в исходных текстах (а до версии 1.3.4 была доступна только через SVN). Не-приятным фактом является также не-возможность работы любой из редак-ций VirtualBox в 64-битном окружении

Выбор между ними определяется как техническими требованиями, предъ-являемыми вами к виртуализатору, так и условиями, в которых его пред-полагается использовать. Распро-странение VirtualBox регулируется ус-ловиями VirtualBox Personal Use and Evaluation License (PUEL), согласно ко-торой вы можете бесплатно использо-вать программу в оценочных и личных целях. В последнем случае не исклю-чается и коммерческое использование, и установка на нескольких компьюте-рах – важно, чтобы с копией програм-мы работали только вы и никто дру-гой, поэтому администратору, желаю-щему установить VirtualBox в рамках целой организации, придется обра-титься в InnoTek и обсудить приобре-тение коммерческой лицензии (инте-ресно, что о ее стоимости ничего не со-общается – вероятно, она будет опре-деляться индивидуально). VirtualBox OSE свободен от подобных юридичес-ких ограничений, но зато более огра-ничен в техническом смысле: он не со-держит сервера удаленного доступа к рабочему столу гостевой системы, не поддерживает USB и разделяемых папок (Shared Folders, виртуальных ус-тройств, выглядящих в гостевой сис-теме как обычный каталог и позволя-ющих обмениваться файлами с хост-системой) и не включает в себя ини-циатора iSCSI – хотя разработчики не исключают, что со временем не-которые из этих функций могут поя-

VirtualBox задействует сразу два окна: одно – основное, второе – «дисплей» гостевой системы

Page 24: 052 Системный Администратор 03 2007

22

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

(и, как следствие, с 64-битными «гостевыми» ОС), но есть надежда, что это препятствие будет в скором времени ус-транено.

Установка, как правило, не вызывает затруднений. Пользователям Linux рекомендуется иметь исходные тек-сты ядра, чтобы не возникало проблем со сборкой моду-лей. VirtualBox официально поддерживает Debian GNU/Linux и Ubuntu, Fedora Core и RHEL, SUSE Linux, а также Gentoo. Если вы используете другой дистрибутив, вам придется вручную позаботиться о том, чтобы модуль vboxdrv авто-матически загружался при старте системы. Необходимо также добавить пользователя, от имени которого вы рабо-таете в системе, в группу vboxusers. После этого следует выйти из системы и зарегистрироваться повторно или пе-резагрузиться.

Основной пользовательский интерфейс VirtualBox пост-роен с использованием библиотеки Qt и запускается (что не-удивительно) командой VirtualBox. Помимо этого, можно использовать упрощенную версию – VBoxSDL. Для управ-ления параметрами виртуальной машины используется как GUI, так и всеобъемлющая утилита командной стро-ки VBoxManage, предоставляющая доступ даже к тем на-стройкам, для которых еще не готов графический конфигу-ратор (самый яркий пример – разделяемые папки, способ подключить один из каталогов хост-системы в виде диска гостевой системы). Все эти инструменты подробно описаны в руководстве пользователя, которое поставляется в фор-мате PDF вместе с VirtualBox.

Помимо увесистого руководства, дистрибутив VirtualBox включает в себя ISO-образ с расширениями VirtualBox Guest Additions, повышающими степень интеграции госте-вой и хост-системы. В настоящее время Guest Additions до-ступны для Windows и для Linux, а в число их функций вхо-дит: автоматический «захват» курсора мыши (при его по-мещении курсора в окно), поддержка нестандартных виде-орежимов, синхронизация времени с хост-системой, те са-

мые «разделяемые папки» и автовход для «гостей» семейс-тва Windows.

Внимательный читатель может возразить, что авто-вход (autologon) прекрасно поддерживается всеми совре-менными ОС безо всяких сторонних модулей. В данном случае имеет место «конфликт терминов»: под автовхо-дом (Automated Windows Guest Logons) в VirtualBox Guest Additions понимается не регистрация без запроса пароля, а автоматическое использование в гостевой системе рек-визитов (имени пользователя, пароля и имени домена), пре-доставленных хост-системой – см. раздел 8.2 в руководс-тве пользователя VirtualBox.

Установка данных расширений выглядит как инстал-ляция дополнительного ПО и драйверов в гостевой сис-теме. При этом, если «гость» не относится к числу офици-ально поддерживаемых (это особенно актуально для Linux, где круг «одобренных» дистрибутивов ограничен Fedora Core/RHEL, SUSE и Ubuntu), вам может опять же потребо-ваться обеспечить загрузку соответствующих драйверов гостевой ОС вручную.

Какое «оборудование» предоставляет VirtualBox в рас-поряжение гостевой системы? Ниже приведен вывод ути-литы lscpi из состава Slackware Linux 11, запущенного в VirtualBox 1.3.4 под управлением Windows XP:

Весь набор переферии неплохо поддерживается «из коробки» всеми популярными ОС – кроме Windows Vista, для которой необходимо загрузить драйвер сетевой кар-ты AMD PCNet32 с сайта производителя.

Таким образом, Vir tualBox успешно справляется с «джентльменским минимумом» эмулируемых устройств: жестким диском (используется собственный формат VDI, включающий в себя образы фиксированного размера и динамически растущие по мере необходимости; образы VMware/VMDK пока не поддерживаются), дисководом и при-водом CD-ROM, в роли которых может выступать как ре-альное устройство, так и файл-образ, VESA-совместимой видеокартой (используется модифицированный LGPL VGA BIOS, разработанный проектом Bochs), AC-97-совместимой звуковой платой (вывод звука в хост-системе может осу-ществляться через ALSA/OSS, Windows Multimedia или Null-драйвер), сетевой картой и пр. Работа с сетью в VirtualBox возможна в двух режимах: NAT (гостевая ОС оказывается как бы за маршрутизатором с трансляцией адресов, IP-ад-рес назначается встроенным в VirtualBox DHCP-сервером) и Host (сетевой интерфейс «гостя» добавляется в хост-сис-тему как еще одна сетевая карта).

Отдельного упоминания заслуживает встроенный в VirtualBox VRDP-сервер. С его помощью можно легко по-лучить доступ к виртуальной машине, запущенной на дру-гом физическом компьютере. Используемый им протокол VRDP (VirtualBox Remote Desktop Protocol) обратно-совмес-тим с Microsoft RDP и отличается в основном возможнос-тью сетевого доступа к USB-устройствам. При этом VRDP-

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

00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]00:01.1 IDE interface: Intel Corporation 82371SB PIIX3 IDE [Natoma/Triton II]00:02.0 VGA compatible controller: Unknown device 80ee:beef00:03.0 Ethernet controller: Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rev 30)00:04.0 System peripheral: Unknown device 80ee:cafe00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC’97 Audio (rev 01)00:06.0 USB Controller: Apple Computer Inc. KeyLargo/Intrepid USB00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)

Page 25: 052 Системный Администратор 03 2007

23№3, март 2007

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

сервер можно запустить даже на ком-пьютере, вообще не имеющем X, Qt, SDL и прочих зависимостей графичес-кого интерфейса VirtualBox. Для этого используется «безголовый» (headless) сервер VBoxVRDP, весь вывод которо-го доступен только по сети, но не на ло-кальном компьютере (конечно, за ис-ключением случаев, когда VRDP-сер-вер и VRDP-клиент общаются по се-ти, будучи фактически запущенными на одной и той же машине).

VirtualBox для хакераКак уже отмечалось, Vir tualBox – это не только средство виртуализа-ции, но и открытый проект, в кото-ром, при желании, можно поучаство-вать. Список «вакансий», то есть за-дач, хорошо подходящих для сторон-них разработчиков, находится по ад-ресу: http://www.virtualbox.org/wiki/Suggestions_for_Contributions [6].

Несколько слов о юридической сто-роне вопроса. Поскольку VirtualBox фактически использует двойное ли-цензирование, перед включением раз-работанного вами патча в основное де-рево исходного кода необходимо под-писать специальное соглашение, пере-дающее InnoTek права на его исполь-зование в коммерческой версии. Аль-тернативный вариант – выпустить код по лицензии MIT.

Рассмотрим VirtualBox с точки зре-ния программиста. Проект активно пользуется другими открытыми раз-работками, в первую очередь QEMU и Mozilla. Следует особенно подчер-кнуть, что VirtualBox не базируется на QEMU в том смысле, что не являет-ся его расширенной/доработанной вер-сией. «Сердце» программы – монитор виртуальных машин – авторская раз-работка компании InnoTek. Из QEMU же был позаимствован эмулятор, который выполняет код, почему-либо не под-дающийся динамической трансляции (например, приложения, работающие в реальном режиме). Такой режим ра-боты, естественно, является «крайней мерой» – программа стремится выпол-нять инструкции на реальном процес-соре всюду, где это возможно.

Использование QEMU не вызыва-ет вопросов – в конце концов львиная доля средств виртуализации так или иначе применяет libqemu для эмуля-ции различного оборудования. Но за-

чем InnoTek понадобился такой тяже-ловес, как Mozilla? Все дело в компо-нентной среде – XPCOM – и нежелании разработчиков Mozilla разбивать свой код на независимые пакеты.

VirtualBox имеет глубоко прорабо-танную модульную архитектуру, реа-лизуемые средствами Microsoft COM (в Windows) или XPCOM (в Linux). Упо-мянутые выше пользовательские ин-терфейсы от VBoxManage до VirtualBox являются просто COM-клиентами, а основной функционал программы реализован в виде inproc-сервера VBoxVMM.dll в Windows или VBoxVMM.so в Linux. Набор экспортируемых им интерфейсов (коих существует вели-кое множество) является основной частью VirtualBox SDK, а их подроб-ное описание также входит в дистри-бутив VirtualBox. SDK (вместе с приме-рами его использования) можно най-ти в каталоге $VBOXINSTALLDIR/sdk. Для читателей, знакомых с техноло-гией XPCOM, отмечу, что ее реализа-ция в VirtualBox не содержит привязки к языкам программирования сценари-ев вроде Pyhton или JavaScript, поэтому C++ остается единственно возможным выбором. Изменится ли эта ситуация в будущем, пока сказать сложно.

Модульная архитектура и ясные ин-терфейсы VirtualBox позволяют рас-ширять программу, не особенно заду-мываясь о тонкостях процесса вирту-ализации, а открытая природа проек-та позволяет надеяться на появление подобных расширений в не самом от-даленном будущем. Особенно инте-ресными выглядят «мосты» между VirtualBox Main API и D-BUS или Mono.

ЗаключениеМы рассмотрели VirtualBox как сна-ружи, так и изнутри, но один важный

вопрос – качество продукта – так и ос-тался неосвещенным. С сожалением должен констатировать, что именно он не дает поставить программе твер-дую пятерку. Несмотря на общее хо-рошее впечатление и разумную ско-рость работы (я сознательно не приво-жу каких-либо численных характерис-тик, ибо сравнительное тестирование производительности различных вирту-ализаторов – задача сложная и небла-годарная), VirtualBox несколько «сыро-ват». Иногда оказывается невозмож-ным выполнить простое действие, на-пример, изменить разрешение экра-на гостевой ОС стандартными средс-твами X Window System. Я не хочу ска-зать, что VirtualBox в своей нынешней форме непригоден к промышленному применению, но будьте готовы к сюр-призам.

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

1. XenSource – www.xensource.com.2. VirtualBox – www.virtualbox.org.3. QEMU – http://fabrice.bellard.free.fr/

qemu.4. QEMU Accelerator User Documentation –

ht tp: // fabr ice.be l lard.f ree.f r/qemu /kqemu-doc.html.

5. MCNLive – http://www.mcnlive.org.6. Список задач для сторонних участ-

ников – http://www.virtualbox.org/wiki/Suggestions_for_Contributions.

7. Virtual Appliance Marketplace – http://www.vmware.com/vmtn/appliances.

VirtualBox – «за» и «против»Попробуйте VirtualBox, если:n Вам часто приходится создавать вир-

туальные машины самостоятельно.n Вы часто изменяете параметры вир-

туальных машин, с которыми работа-ете.

n Поддержка 64-битных операционных систем не является для вас критич-ной.

n Вы четко следуете генеральной линии Фонда Свободного ПО и не хотите дер-

жать в своей системе проприетарный код.

VirtualBox вряд ли будет для вас наилуч-шим решением, если:n Большая часть виртуальных машин,

с которыми вам приходится рабо-тать, – это готовые appliances в фор-мате VMware Player.

n Вы активно используете 64-битные сис-темы, или ваша основная рабочая ОС является 64-битной.

Page 26: 052 Системный Администратор 03 2007

24

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

Система контроля версий RCS на службе сисадмина

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

Сергей Супрунов

Page 27: 052 Системный Администратор 03 2007

25№3, март 2007

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

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

тому для её решения существует масса инструментов – CVS, Subversion и тому подобные. Они позволяют управ-лять доступом к хранилищу кода (репозитарию), в том чис-ле и удалённым пользователям, отслеживать любые изме-нения, автоматически вести учёт ветвей и версий... Но для «частных» задач эти средства порой оказываются слишком громоздки, и там удобнее использовать одну из простей-ших систем контроля версий – RCS.

Системный администратор может приспособить её и для повышения удобства своей работы. Например, ес-ли регистрировать изменения в конфигурацию системы с её помощью, то RCS позволяет:n отслеживать все внесённые изменения;n обеспечивать «контролируемый» доступ нескольким

пользователям к настройкам;n сопровождать каждую модификацию пояснениями;n при необходимости «откатываться» на любую из пре-

дыдущих версий.

Рассмотрим пример использования RCS во FreeBSD, где эта система контроля версий включена в базовую сис-тему.

Типовая задачаВ качестве примера приведём использование RCS для со-провождения файла конфигурации ядра (для конкретики пусть это будет /usr/src/sys/i386/conf/MICRO). Прежде всего в каталоге с конфигурационными файлами создаём под-каталог RCS. Этот шаг не является обязательным, но без такого каталога файлы-хранилища версий (с именем ви-да <имя_файла>,v) будут создаваться в рабочем каталоге, что, на мой взгляд, не слишком удобно. А так они будут ав-томатически перемещаться в подкаталог RCS. (Кстати, так проще выполнять и резервное копирование – достаточно сохранить целиком каталог RCS.)

Теперь выполняем следующую команду:

В ответ на приглашение «>>» вводим назначение фай-ла и завершаем его строкой с единственным символом «.», чтобы отметить окончание ввода. Текущее состояние файла MICRO будет занесено в RCS/MICRO,v под номером версии 1.1. Ключ -u необходим, чтобы оригинальный файл не удалялся после занесения в RCS. (Вообще-то для ини-циализации хранилища существует специальный ключ -i, но, на мой взгляд, в большинстве случаев вполне можно обойтись и без него).

Теперь, если взглянуть на права доступа к файлу MICRO, можно увидеть, что он доступен только для чтения – с точки зрения безопасности приобретение не слишком существен-

ное, но, по крайней мере, vi предупредит вас, если вы попы-таетесь внести в него изменения напрямую, в обход RCS. Старайтесь избегать соблазна проигнорировать это пре-дупреждение и сохранить файл по команде «:w!».

Как же теперь модифицировать этот файл? Для начала полезно убедиться, что никто не изменил наш MICRO вруч-ную и что он соответствует версии, находящейся в храни-лище версий:

Отсутствие информации о различиях – хороший знак. В противном случае все внесённые напрямую изменения будут потеряны при извлечении ранее сохранённой вер-сии. Строго говоря, для файлов конфигурации ядра, во избежание путаницы, лучше не оставлять в каталоге ра-бочую копию (то есть выполнять команду ci без ключа -u). В этом случае единственно возможным способом работы с конфигурацией ядра будет её извлечение из хранили-ща версий. Но поскольку RCS также может быть полез-на и для системных настроек, например, для отслежива-ния изменений в /etc/rc.conf или /etc/crontab, а эти файлы, очевидно, для нормальной работы системы должны при-сутствовать всегда, то я описываю здесь наиболее об-щий случай.

Далее выполняем команду «извлечения последней версии»:

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

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

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

# ci -u MICRO

RCS/MICRO,v <-- MICROenter description, terminated with single '.' or end of file:NOTE: This is NOT the log message!>> My kernel configuration.>> .initial revision: 1.1done

# rcsdiff -u MICRO

===================RCS file: RCS/MICRO,vretrieving revision 1.1diff -u -r1.1 MICRO

# co -l MICRO

RCS/MICRO,v --> MICROrevision 1.1 (locked)done

# ci -u MICRO

RCS/MICRO,v <-- MICROnew revision: 1.2; previous revision: 1.1enter log message, terminated with single '.' or end of file:>> change ident, disable IPFILTER.>> .done

Page 28: 052 Системный Администратор 03 2007

26

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

комментарий к сделанным изменениям (в данном случае я подправил строку ident и убрал поддержку IPFILTER). Но-мер версии, как видите, поменялся на 1.2.

Теперь можно просмотреть лог изменений:

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

Если нужно посмотреть, что именно менялось меж-ду версиями 1.1 и 1.2, можно выполнить следующую ко-манду:

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

Как видите, всё очень просто и удобно, если, конечно, не забывать заносить все изменения в хранилище.

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

Для этого нужных пользователей требуется занести в так называемый access list хранилища, что выполняет-ся такой командой:

В файле-хранилище появится запись в разделе access log:

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

системы для изменения каталога RCS (если он есть) и рабочего каталога;

n при извлечении рабочей копии из хранилища владель-цем копии станет текущий пользователь (именно для этого и нужно право записи в рабочий каталог);

n при фиксации модифицированной версии владельцем хранилища станет текущий пользователь (и поэтому нужны права на модификацию и каталога RCS).

Таким образом, если политика безопасности не допус-кает такое «плавание» прав владения конфигурационны-ми файлами, то лучше избегать использования списков доступа на уровне RCS. Кроме того, следует учитывать эту особенность и в том случае, когда программа требует конкретного владельца для своих конфигурационных фай-лов. Тут придётся либо выполнять редактирование от име-ни этого пользователя (предварительно выполнив команду su), либо вручную менять владельца после внесения изме-нений. (Возможно, вы решите, что для таких файлов проще вообще отказаться от использования RCS.)

Также имейте в виду такую особенность: посколь-ку владельцем хранилища становится последний поль-зователь, внёсший туда изменения, а владельцу разре-шена запись, даже если он не входит в access list, то про-стое исключение пользователя из списка доступа (коман-дой rcs -e<имя_пользователя>) может не оказать должно-го действия. Так что не забывайте проверять также и то, кто в данный момент является владельцем файла-храни-лища.

Это ещё не всё...Возможности RCS этим не исчерпываются, так что если вам понадобится что-то ещё, обратитесь к документации (прежде всего man-страницам) – не исключено, что необ-ходимая вам функция системой RCS поддерживается. На-чать лучше всего с man rcsintro, ну и дальше согласно сек-ции «See Also».

# co -r1.1 MICRO

RCS/MICRO,v --> MICROrevision 1.1done

# rcs -aserg MICRO

RCS file: RCS/MICRO,vdone

$ rlog MICRO

RCS file: RCS/MICRO,vWorking file: MICROhead: 1.2branch:locks: strictaccess list: serg. . . <дальше пропущено> . . .

root# rlog MICRO

RCS file: RCS/MICRO,vWorking file: MICROhead: 1.2. . . <здесь кое-что сокращено> . . .total revisions: 2; selected revisions: 2description:My kernel configuration.- ---------------------------revision 1.2date: 2007/02/22 05:19:24; author: serg; state: Exp; lines: +3 -3change ident, disable IPFILTER.- ---------------------------revision 1.1date: 2007/02/22 05:03:59; author: serg; state: Exp;Initial revision- ---------------------------

# rcsdiff -r1.1 -r1.2 MICRO

= =======================RCS file: RCS/MICRO,vretrieving revision 1.1retrieving revision 1.2diff -r1.1 -r1.25c5< ident MIKRO---> ident MICRO61,62c61,62< options IPFILTER< options IPFILTER_LOG---> #options IPFILTER> #options IPFILTER_LOG

Page 29: 052 Системный Администратор 03 2007

27№3, март 2007

bugtraq

Переполнение буфера в DCE/RPC‑препроцессоре в SnortПрограмма: Snort 2.6.1, 2.6.1.1, 2.6.1.2 и 2.7.0 beta 1.Опасность: Критическая.Описание: Уязвимость существует из-за ошибки проверки границ данных в DCE/RPC препроцессоре при реассембли-ровании SMB Write AndX запросов. Удаленный пользова-тель может с помощью специально сформированного па-кета вызвать переполнение стека и выполнить произволь-ный код на целевой системе.URL производителя: www.snort.orgРешение: Установите последнюю версию (2.6.1.3) с сай-та производителя.

Переполнение буфера в Mozilla FirefoxПрограмма: Mozilla Firefox версии до 1.5.0.10; Mozilla Firefox версии до 2.0.0.2; SeaMonkey версии до 1.0.8.Опасность: Критическая.Описание: Уязвимость существует из-за ошибки дизай-на при обработке специально сформированных SSLv2-со-общений сервера. Злоумышленник, контролирующий веб-сервер, может послать целевому пользователю сертифи-кат с публичным ключом, которого недостаточно для шиф-рования «Master Secret», вызвать переполнение динами-ческой памяти и выполнить произвольный код на целе-вой системе.URL производителя: www.mozilla.org.Решение: Установите последнюю версию с сайта произ-водителя.

Несколько уязвимостей в Microsoft Internet ExplorerПрограмма: Microsoft Internet Explorer 5.01; Microsoft Internet Explorer 6.x; Microsoft Internet Explorer 7.x.Опасность: Критическая.Описание: 1. Уязвимость существует из-за ошибки при инициализации COM-объектов Imjpcksid.dll и Imjpskdic.dll, не предназначенных для инициализации в Internet Explorer. Удаленный пользователь может вызвать повреждение па-мяти и выполнить произвольный код на целевой системе.

2. Уязвимость существует из-за ошибки при инициали-зации COM-объектов Msb1fren.dll, Htmlmm.ocx и Blnmgrps.dll, не предназначенных для инициализации в Internet Explorer. Удаленный пользователь может вызвать повреждение па-мяти и выполнить произвольный код на целевой системе.

3. Уязвимость существует из-за ошибки при обработке ответов FTP-сервера. Удаленный пользователь, контроли-рующий FTP-сервер, может с помощью специально сфор-мированного ответа вызвать повреждение памяти и выпол-нить произвольный код на целевой системе.URL производителя: www.microsoft.com.Решение: Установите исправление с сайта производите-ля.

Уязвимость при обработке сообщений в Symantec Mail Security for SMTPПрограмма: Symantec Mail Security for SMTP 5.0 for Windows, возможно более ранние версии.Опасность: Критическая.Описание: Уязвимость существует из-за ошибки при обра-ботке определенных сообщений. Удаленный пользователь может с помощью специально сформированного сообще-ния вызвать отказ в обслуживании или выполнить произ-вольный код на целевой системе.URL производителя: www.symantec.com/enterprise/products/overview.jsp?pcid=1008&pvid=845_1.Решение: Установите исправление (Patch 175) с сайта про-изводителя.

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

Переполнение буфера в службе IMAP в MailEnableПрограмма: MailEnable Professional 2.37, возможно более ранние версии.Опасность: Средняя.Описание: Уязвимость существует из-за ошибки проверки границ данных в службе IMAP при обработке аргументов, передаваемых команде APPEND. Удаленный пользователь может с помощью специально сформированной команды (длиной более 128 байт) вызвать переполнение стека и вы-полнить произвольный код на целевой системе.URL производителя: www.mailenable.com.Решение: В настоящее время способов устранения уязви-мости не существует.

Переполнение буфера в Apache TomcatПрограмма: Apache Tomcat 5.5.20; Apache Tomcat 4.1.34; Apache Tomcat JK Web Server Connector 1.2.19 и 1.2.20.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки провер-ки границ данных в функции map_uri_to_worker() в библи-отеке mod_jk.so. Удаленный пользователь может с помо-щью слишком длинного URL-запроса (более 4,095 байт) вызвать переполнение стека и выполнить произвольный код на целевой системе.URL производителя: tomcat.apache.org.Решение: Установите последнюю версию (1.2.21) с сайта производителя.

Уязвимость при обработке UPX‑файлов в Kaspersky Anti‑VirusПрограмма: Kaspersky Anti-Virus 6.0.1.411 for Windows и 5.5-10 for LinuxОпасность: Средняя.Описание: Уязвимость существует из-за ошибки при об-работке UPX-файлов, содержащих отрицательные значе-ния смещений. Злоумышленник может с помощью спе-циально сформированного UPX-файла использовать все доступные ресурсы на системе и вызвать отказ в обслу-живании.URL производителя: www.kaspersky.com.Решение: Установите исправление с помощью автомати-ческого обновления.

Page 30: 052 Системный Администратор 03 2007

28

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

Управление дискамиКогда администратор сервера подклю-чает новое хранилище, он действует примерно так: при помощи встроен-ного в хранилище менеджера дисков формирует один или несколько аппа-ратных RAID-массивов, полученные дисковые тома разбивает на разде-лы fdisk, а разделы затем размеча-ет под файловые системы с помощью

newfs, mkfs и прочих. Если админис-тратор, следуя современным тенден-циям [2], решил построить програм-мный, а не аппаратный RAID-массив, то он должен воспользоваться ещё и менеджером дисков операционной системы. Иными словами, процесс не выглядит слишком простым: нужно со-вершить три действия, требующие по-вышенного внимания и тщательного

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

Инженеры Sun попытались упрос-тить эту работу. Созданная ими ZFS объединяет в себе все три слоя управ-ления хранилищами. Новизна подхо-да в том, что верхний слой – файло-вая система – знает, на каком масси-

Используйте преимущества файловой системы ZFS в Solaris

В летнем релизе 6/06 ОС Solaris версии 10 появилась поддержка новой файловой системы ZFS. Это интересное нововведение, и оно не менее значительно, нежели зоны или система самодиагностики DTrace. Почему понадобилось изобретать новую файловую систему вместо привычной ufs и чем она интересна?

Алексей Коробкин

Page 31: 052 Системный Администратор 03 2007

29№3, март 2007

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

ве она работает. В чем здесь преимущество? Например, зная размер файлов, которые она туда пишет, ZFS может создавать полоски (stripes) переменной длины на масси-вах RAID-0 и RAID-5, обеспечивая таким образом высокую скорость работы и повышенную отказоустойчивость. ZFS высчитывает контрольные суммы для файлов, а не блоков данных, избавляясь от возможной ошибки обычных RAID-массивов, когда блок с правильной суммой бывает запи-сан не туда, куда надо.

Кроме того, ZFS – транзакционная, а не журналируе-мая файловая система. Она использует методику копи-рования при записи (copy on write), и в случае, например, сбоя питания транзакция либо завершается, либо игнори-руется. При этом файловая система всегда остается в ис-правном состоянии.

Подключенные к серверу новые диски ZFS может начать использовать сразу же. По аналогии с оперативной памя-тью, если мы добавили в сервер память, нет необходимос-ти что-то делать – операционная система автоматически её распознает и задействует. Ограничений объёма практичес-ки нет: ZFS – 128-битная файловая система, и её полное название звучит как Zettabyte File System. Она может хра-нить 128 квадриллионов зетабайт данных.

Предполагается, что мы всегда объединяем все до-ступные серверу хранилища и диски в единый массив ZFS, а внутри него строим столько файловых систем, сколько нужно. Такой массив носит название пул (pool). Конфигу-рация пула может быть самой разнообразной, варианты вы сейчас посмотрите на примерах.

Пул файловых систем ZFS можно создать либо на пус-тых дисках, либо на слайсах (slice) ufs, либо на отдельных файлах большого размера. Естественно, в последнем слу-чае надежность и скорость будут зависеть от свойств ос-новной файловой системы. Сначала попробуем на одном диске:

Пул zoopark займёт весь диск c1t1d0 целиком, а коман-да zpool автоматически создаст внутри него готовую но-вую файловую систему и примонтирует её к /zoopark. Вот статус системы:

Один диск – это не очень интересно. Построим новый пул zerkalo3 на основе тройного зеркала, то есть RAID-1 на трех дисках:

В больших хранилищах редко встретишь зеркала: алго-ритм контроля четности и избыточности данных RAID-5 бо-лее популярен. В реализации ZFS ему соответствуют сразу два алгоритма, RAIDZ и RAIDZ2. Первый, RAIDZ, рекомен-дуется для получения максимального объема массива. Вто-рой, RAIDZ2, использует алгоритм двойной четности и по-тому существенно более отказоустойчив. Если при созда-нии массива конкретный алгоритм не указан, массивы со-бираются в RAID-0. Всего ZFS поддерживает четыре кон-фигурации RAID: RAID-0, RAID-1, RAIDZ и RAIDZ2.

Отличие RAIDZ и RAIDZ2 от алгоритмов RAID-4, RAID-5 и подобных состоит в исправлении некоторых фундамен-тальных ошибок этих алгоритмов. В частности, соглас-но [1], так называемый сбой при записи RAID-5 может по-явиться, когда питание массива было прервано в момент записи полоски данных. Тогда подсчитанная четность мас-сива и реальная четность данных оказываются рассинхро-низированы, и восстановление данных по чётности приво-дит к их порче. В ZFS эта ошибка устранена благодаря то-му, что файловая система и менеджер дисков объединены в одно целое. Полоса переменного размера записывается в один проход, и сбой при записи не нарушает чётности все-го остального массива. Транзакционность файловой систе-мы помогает обеспечить постоянную целостность данных, а связь файловой системы с информацией о массиве даёт возможность правильно рассчитывать длину полосок.

Построим RAIDZ на нескольких дисках:

Если у вас много дисков, Sun рекомендует разбивать их на группы от трех до девяти для повышения произво-дительности.

Обратите внимание на повторяющееся ключевое сло-во raidz2 в списке:

Используйте преимущества файловой системы ZFS в Solaris

# zpool create zoopark c1t1d0

# zpool status zoopark

pool: zoopark state: ONLINE scrub: none requested config:

NAME STATE READ WRITE CKSUM zoopark ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0

# zpool create zerkalo3 mirror c1t1d0 c1t2d0 c1t3d0# zpool status

pool: zerkalo3 state: ONLINE

# zpool create veer raidz c1t1d0 c1t2d0 c1t3d0 c1t4d0# zpool status veer

pool: veer state: ONLINE scrub: none requestedconfig:

NAME STATE READ WRITE CKSUM veer ONLINE 0 0 0 raidz1 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0

scrub: none requestedconfig:

NAME STATE READ WRITE CKSUM zerkalo3 ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0

# zpool create kombi raidz2 c1t1d0 c1t2d0 c1t3d0 c1t4d0 ↵ raidz2 c1t5d0 c1t6d0 c1t8d0 c1t9d0# zpool status

pool: kombi state: ONLINE scrub: none requested

Page 32: 052 Системный Администратор 03 2007

30

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

Таким образом, у нас два массива RAIDZ2 объединены в пул. Обратите внимание: данные в таких конфигураци-ях динамически распределяются по всем массивам пула, не подчиняясь каким-либо строгим алгоритмам. Это зна-чит, что, например, создать зеркало из двух RAIDZ нельзя. Зато можно добавлять в существующий пул любое коли-чество новых дисков, и Solaris будет постепенно раскла-дывать данные по всем массивам. Добавим еще один на-бор дисков в пул kombi:

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

А затем и создать массив:

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

Адрес интерфейса https://имя_сервера:6789/zfs. По умол-чанию использовать этот интерфейс может только супер-пользователь, root. Чтобы делегировать полномочия друго-му пользователю, нужно воспользоваться системой ролево-го управления доступом – RBAC (Role-Based Access Control). Подробней про роли и профили безопасности в Solaris мож-но почитать в официальном руководстве [4].

Управление массивами определено ролями ZFS Storage Management и ZFS File System Management. Можно, напри-мер, создать специального пользователя zfsadmin и дать ему эти роли.

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

Обработка ошибокВернемся к командной строке и посмотрим, как ZFS рабо-тает с ошибками и перемещениями дисков. С перемеще-ниями всё просто: как и в большинстве менеджеров дисков и файловых систем, каждому элементу массива сопостав-лен уникальный номер ID, по которому система может иден-тифицировать любой свой диск и каждую часть массива. Так что если диски были переставлены местами или подклю-

# zpool create -n lusterko mirror c1t1d0 c1t2d0 ↵ mirror c1t3d0 c1t4d0 mirror c1t5d0 c1t6d0 ↵ mirror c1t8d0 c1t9d0 spare c1t10d0 c1t11d0

would create 'lusterko' with the following layout:

lusterko mirror c1t1d0 c1t2d0 mirror c1t3d0 c1t4d0 mirror c1t5d0 c1t6d0 mirror c1t8d0 c1t9d0

# zpool create lusterko mirror c1t1d0 c1t2d0 ↵ mirror c1t3d0 c1t4d0 mirror c1t5d0 c1t6d0 ↵ mirror c1t8d0 c1t9d0 spare c1t10d0 c1t11d0# zpool status

pool: lusterko state: ONLINE scrub: none requestedconfig:

NAME STATE READ WRITE CKSUM lusterko ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t5d0 ONLINE 0 0 0 c1t6d0 ONLINE 0 0 0 mirror ONLINE 0 0 0 c1t8d0 ONLINE 0 0 0 c1t9d0 ONLINE 0 0 0 spares c1t10d0 AVAIL c1t11d0 AVAIL

# /usr/sbin/smcwebconsole start

# useradd -P 'ZFS Storage Management', ↵ 'ZFS File System Management' zfsadmin

# zpool add kombi raidz2 c1t10d0 c1t11d0 c1t12d0 c1t15d0# zpool status

pool: kombi state: ONLINE scrub: none requestedconfig:

NAME STATE READ WRITE CKSUM kombi ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c1t5d0 ONLINE 0 0 0 c1t6d0 ONLINE 0 0 0 c1t8d0 ONLINE 0 0 0 c1t9d0 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c1t10d0 ONLINE 0 0 0 c1t11d0 ONLINE 0 0 0 c1t12d0 ONLINE 0 0 0 c1t15d0 ONLINE 0 0 0

config:

NAME STATE READ WRITE CKSUM kombi ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c1t5d0 ONLINE 0 0 0 c1t6d0 ONLINE 0 0 0 c1t8d0 ONLINE 0 0 0 c1t9d0 ONLINE 0 0 0

Page 33: 052 Системный Администратор 03 2007

31№3, март 2007

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

чены к другому контроллеру, ZFS автоматически определит это и соберет все массивы в правильном порядке.

Перейдём к ошибкам. Что делать, если массив был не-нароком уничтожен? Если после уничтожения никакие дру-гие массивы не создавались, то диски находятся в прежнем состоянии и массив можно воскресить.

Сначала смотрим список уничтоженных или отключен-ных массивов:

Solaris не только показывает, в каком состоянии нахо-дится массив, но и пишет понятный комментарий о возмож-ных действиях по его восстановлению.

Что происходит, когда выходит из строя диск?

Мы видим, что пул rombik отмечен как degraded, на-против соответствующего диска указана причина ошиб-

ки, а в свойствах пула появилось подробное описание про-блемы и даже ссылка на более актуальную документацию онлайн. Сообщение «No known data errors» означает, что нет ошибок, непосредственно связанных с порчей дан-ных, поскольку доступных дисков достаточно для восста-новления утерянной информации. Столбцы READ, WRITE и CHECKSUM указывают количество ошибок при чтении, записи и подсчёте контрольных сумм. При обнаружении та-ких ошибок ZFS проверяет целостность затронутого фай-ла и исправляет файл целиком, а не только испорченный блок данных.

Команды fsck для ZFS не существует в силу транзакци-онности файловых операций. Для поиска плохих секторов используется команда zpool scrub, которая выполняет поб-лочную проверку файлов и их контрольных сумм в фоно-вом режиме и с самым низким приоритетом. Таким обра-зом, сервер с файловой системой ZFS останавливать на об-служивание нет необходимости, все его файловые систе-мы всегда доступны.

Файловая системаДо сих пор для работы с ZFS мы использовали только од-ну команду, zpool. На самом деле команд в комплекте ZFS целых две. Вторая, zfs, работает с файловыми система-ми внутри пула, и именно здесь лежит одно из фундамен-тальных отличий ZFS от других средств управления хра-нилищами.

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

Исследуем работу файловых систем внутри пула на при-мерах:

При создании пула в нём сразу же создается файло-вая система zoo и подключается к каталогу /zoo. Обрати-те внимание, что в /etc/vfstab ничего писать не надо – фай-ловые объекты ZFS по умолчанию монтируются автомати-чески. Как при создании пула, так и при создании файло-вой системы, и при загрузке Solaris, управляет этим про-цессом бинарный файл /etc/zfs/zpool.cache.

Создадим файловые системы animals и fish внутри zoo:

# zpool import -D

pool: rombik id: 90651616518883316 state: ONLINE (DESTROYED)action: The pool can be imported using its name or numeric identifier. The pool was destroyed, but can be imported using the '-Df' flags.config:

rombik ONLINE raidz2 ONLINE c1t1d0 ONLINE c1t2d0 ONLINE c1t3d0 ONLINE c1t4d0 ONLINE

# zpool import -D -f rombik# zpool status

pool: rombik state: ONLINE scrub: none requestedconfig:

NAME STATE READ WRITE CKSUM rombik ONLINE 0 0 0 raidz2 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0

# zpool status

pool: rombik state: DEGRADEDstatus: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state.action: Attach the missing device and online it using 'zpool online'. see: http://www.sun.com/msg/ZFS-8000-D3 scrub: none requestedconfig:

NAME STATE READ WRITE CKSUM rombik DEGRADED 0 0 0 raidz2 DEGRADED 0 0 0 c1t1d0 ONLINE 0 0 0 c1t2d0 UNAVAIL 0 0 0 cannot open c1t3d0 ONLINE 0 0 0 c1t4d0 ONLINE 0 0 0

errors: No known data errors

# zpool create zoo raidz c1t1d0 c1t2d0 c1t3d0 c1t4d0# zfs list zoo

NAME USED AVAIL REFER MOUNTPOINTzoo 124K 23.4G 36.7K /zoo

# zfs create zoo/animals# zfs create zoo/fish

Page 34: 052 Системный Администратор 03 2007

32

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

Что получилось?

То, что мы сейчас сделали, очень сильно отличается от обычной работы с файловыми системами. Мы ничего не форматировали, мы не указывали размер, физический диск или точку монтирования. Мы просто создали в пуле zoo две дополнительные файловые системы, и моментально можем начинать работать с ними. Все необходимые пара-метры мы можем задать потом или пронаследовать из вы-шестоящей файловой системы. Например, изменим пара-метр compression (сжатие) файловой системы zoo/fish.

Поле Source указывает, откуда взято значение пара-метра. До изменения в этом поле стояло ключевое слово default, «по умолчанию». Теперь там local – параметр ука-зан непосредственно для данной файловой системы. Ес-ли мы создадим внутри zoo/fish файловую систему shark, то параметр compression пронаследуется от fish:

Чтобы указать размер файловой системы, мы исполь-зуем свойство quota:

Уменьшим доступное zoo/fish пространство до пяти ги-габайт:

Список файловых систем теперь выглядит так (ключ -r перебирает все вложенные файловые системы):

Как видите, вместе с размером файловой системы fish сократился и размер системы fish/shark. Понятно, что если бы мы таким образом создавали домашние каталоги поль-зователей, мы могли бы просто и легко на лету менять до-ступное им свободное пространство, включать компрессию данных и многое другое.

Посмотрим, какие еще есть свойства у файловых сис-тем ZFS:

Параметры, у которых поле Source пустое – только для чтения. К ним можно обращаться, чтобы узнать теку-щее состояние системы. Например, занятое место на фай-ловой системе:

Ключ -H убирает заголовок результата, чтобы можно было легко передать данные скрипту. Поля used, available, и quote относятся к размеру самой файловой системы, а referenced – к размеру данных, занятых служебной ин-формацией. Интересное поле reservation дает возможность зарезервировать свободное пространство для файловой системы, чтобы никакие другие файловые системы на него не претендовали и считали занятым. Свойство mountpoint указывает, к какой папке подключена файловая система. Мы не обязаны сохранять иерархию, предлагаемую по умол-чанию, и можем монтировать файловые системы куда угод-но. Например, перенесём zoo/fish в /mnt:

Как видите, вложенные файловые системы унаследова-ли точку монтирования. А если mountpoint указать как none, файловая система никуда подключена не будет.

ZFS и зоныЕсли вы хотите подключить файловую систему внутрь зо-ны, то точка монтирования должна быть указана как legacy, а само подключение делается так:

# zfs set quota=5gb zoo/fish

# zfs list -r zoo

NAME USED AVAIL REFER MOUNTPOINTzoo 261K 23.4G 39.6K /zoozoo/animals 36.7K 23.4G 36.7K /zoo/animalszoo/fish 74.8K 5.00G 38.2K /zoo/fishzoo/fish/shark 36.7K 5.00G 36.7K /zoo/fish/shark

# zfs get all zoo/fish

NAME PROPERTY VALUE SOURCEzoo/fish type filesystem -zoo/fish creation Tue Jan 23 18:50 -zoo/fish used 54.4M -zoo/fish available 4.95G -zoo/fish referenced 25.5K -zoo/fish compressratio 1.00x -zoo/fish mounted yes -zoo/fish quota 5G localzoo/fish reservation none defaultzoo/fish recordsize 128K defaultzoo/fish mountpoint /zoo/fish defaultzoo/fish sharenfs off defaultzoo/fish checksum on defaultzoo/fish compression on localzoo/fish atime on defaultzoo/fish devices on defaultzoo/fish exec on defaultzoo/fish setuid on defaultzoo/fish readonly off defaultzoo/fish zoned off defaultzoo/fish snapdir hidden defaultzoo/fish aclmode groupmask defaultzoo/fish aclinherit secure default

# zfs get -H used zoo/fish

zoo/fish used 54.4M -

# zfs set mountpoint=/mnt/fish zoo/fish# zfs list -r zoo

NAME USED AVAIL REFER MOUNTPOINTzoo 174K 7.81G 25.5K /zoozoo/animals 24.5K 7.81G 24.5K /zoo/animalszoo/fish 50K 5.00G 25.5K /mnt/fishzoo/fish/shark 24.5K 5.00G 24.5K /mnt/fish/shark

# zfs list

NAME USED AVAIL REFER MOUNTPOINTzoo 214K 23.4G 39.6K /zoozoo/animals 36.7K 23.4G 36.7K /zoo/animalszoo/fish 36.7K 23.4G 36.7K /zoo/fish

# zfs set compression=on zoo/fish# zfs get compression zoo/fish

NAME PROPERTY VALUE SOURCEzoo/fish compression on local

# zfs create zoo/fish/shark# zfs get compression zoo/fish/shark

NAME PROPERTY VALUE SOURCEzoo/fish/shark compression on inherited from zoo/fish

# zfs get quota zoo/fish

NAME PROPERTY VALUE SOURCEzoo/fish quota none default

Page 35: 052 Системный Администратор 03 2007

33№3, март 2007

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

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

В указанной конфигурации администратор зоны не мо-жет управлять файловой системой zoo/fish. Полный конт-роль над файловой системой делегируется иначе:

Вот результат:

Внутри зоны мы видим пул zoo и делегированную файловую систему. Другие файловые системы мы не ви-дим, и сами новую систему вне делегированной создать не можем:

Есть еще одно интересное применение ZFS для рабо-ты с зонами – клонирование файловых систем. Клонирова-ние – это по сути то же самое, что и всем хорошо знакомые мгновенные снимки, snapshots. При клонировании файло-вой системы её клон не занимает места на диске – он на-чинает поглощать пространство только тогда, когда дан-ные клона и оригинала начинают различаться. Занимае-мое клоном место в точности равно этой разнице.

А теперь предположим, что у нас есть уже настроенная зона, все файлы которой расположены на ZFS. Если мы хо-тим настроить очень похожую зону, то можно при её созда-нии указать, что файловую систему зоны следует клониро-вать с уже имеющейся. Экономия пространства на диске, времени и сил администратора налицо!

Вернемся в глобальную зону и посмотрим, на что влия-ют остальные параметры файловой системы.

NFS v4 и списки контроля доступаЕсли вы включите параметр sharenfs, файловая система автоматически станет доступна по NFS, при этом /etc/dfs/dfstab редактировать не надо.

Зачем так сделано? Как вы уже успели заметить, фай-ловые системы ZFS очень гибкие и легкие, и постоянно сле-дить, куда именно переместилась та или иная система, не-удобно. А всякий раз соответственно редактировать dfstab было бы просто мукой. Поэтому вы один раз указываете, какие файловые системы должны быть доступны по сети, делаете с ними что хотите, а они тем не менее остаются до-ступны. Обеспечение безопасности осуществляется спис-ками контроля доступа.

Вместо списков POSIX-draft ACL, которые можно исполь-зовать на ufs, файловая система ZFS поддерживает новые списки стандарта NFS v4, формат которых похож на списки NTFS. Управление осуществляется обычными командами chmod, chown и ls; никаких getfacl и setfacl для ZFS не су-ществует. По умолчанию все файлы имеют упрощенный список прав доступа:

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

Разберем строку номер 1 (cм. таблицу):

# zfs set mountpoint=legacy zoo/fish# zonecfg -z aquariumzonecfg:aquarium> add fszonecfg:aquarium:fs> set type=zfszonecfg:aquarium:fs> set special=zoo/fishzonecfg:aquarium:fs> set dir=/export/home/fishzonecfg:aquarium:fs> end

# zonecfg -z aquariumzonecfg:aquarium> add datasetzonecfg:aquarium:dataset> set name=zoo/fishzonecfg:aquarium:dataset> end

# zlogin aquarium

[Connected to zone 'aquarium' pts/1]

# zpool list

NAME SIZE USED AVAIL CAP HEALTH ALTROOTzoo 31.8G 353K 31.7G 0% ONLINE -

# zfs list -r

NAME USED AVAIL REFER MOUNTPOINTzoo 260K 23.4G 38.2K /zoozoo/fish 74.8K 5.00G 38.2K legacy

# zfs create zoo/crocodile

cannot create 'zoo/crocodile': permission denied

# zfs create zoo/fish/salmon# zfs list -r

NAME USED AVAIL REFER MOUNTPOINTzoo 260K 23.4G 38.2K /zoozoo/fish 74.8K 5.00G 38.2K legacyzoo/fish/salmon 36.7K 5.00G 36.7K legacy

# zfs set sharenfs=on zoo/fish# share

- /mnt/fish rw ""- /mnt/fish/shark rw ""

# touch /zoo/animals/snake# ls -v /zoo/animals/snake

-rw-r--r-- 1 root root 0 Feb 1 13:12 /zoo/animals/snake 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data /write_xattr/write_attributes/write_acl /write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr /execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes /read_acl/synchronize:allow

1:owner@:read_data/write_data/append_data /write_xattr/write_attributes/write_acl /write_owner:allow

Значение Описание

1Порядковый номер строки в списке, используется в командах для обращения к конкретной строке

owner@ Имя пользователя или группы, к которому относятся перечисленные в строке права. В данном случае указано ключевое слово (знак @ указывает на это), а не конкретное имя. Owner – это владелец файла

read_data/../../ Список прав доступа

allow Одно из двух ключевых слов, allow или deny. Определяет, доступ разрешён или запрещён, соответственно

Назначение полей в строке прав доступа к файлу

Page 36: 052 Системный Администратор 03 2007

34

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

Попробуем для примера добавить права нашему поль-зователю:

Я использую команду ls -v для подробного просмотра прав доступа к файлу. В повседневной работе это не очень удобно, проще использовать сокращенное отображение:

Полный синтаксис назначения прав доступа с примера-ми лучше всего посмотреть в руководстве [1].

Резервное копированиеКак и в большинстве современных файловых систем, в ZFS реализованы мгновенные снимки, snapshots. Ничего нового про них рассказать не получится: снимок делается коман-дой zfs snapshot, к нему можно получить доступ на чтение

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

Наверное, единственным интерес-ным отличием снимков ZFS является возможность их пересылки из одной файловой системы в другую (команды zfs send/receive). Такую функциональ-ность можно использовать для репли-кации файловых систем, быстрого вос-становления или резервного копирова-ния на удаленный сервер.

НедостаткиПервая же мысль, которая приходит после изучения всех достоинств новой файловой системы, – перевести все сервера целиком на ZFS. Увы, не по-

лучится. Чтобы загрузчик нашел при старте ядро Solaris, он должен уметь читать ZFS, а стандартный GRUB этого не умеет. Впрочем, если выделить небольшой кусочек дис-ка под каталог /boot на ufs, то можно обеспечить загрузку микроядра, которое сделает остальную работу. Можно даже реализовать альтернативную загрузку в безопасном режи-ме, с подключением корня и других файловых систем стан-дартно в каталог /a, как это описано в [3].

К другим недостаткам относится повышение требова-ний к объему оперативной памяти сервера. Для обеспече-ния высокой производительности Sun советует иметь не ме-нее одного гигабайта оперативной памяти на серверах, ис-пользующих ZFS.

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

Удачи.

1. Solaris ZFS Administration Guide – http://docs.sun.com/app/docs/doc/819-5461.

2. Jeff Garzik. Linux: Why Software RAID? – http://linux.yyz.us/why-software-raid.html.

3. Doug Scott, ZFS Root on Solaris (Part 1, 2, 3) – http://solaristhings.blogspot.com/2006/06/zfs-root-on-solaris.html.

4. System Administration Guide: Security Services – http://docs.sun.com/app/docs/doc/816-4557.

Веб-интерфейс управления файловой системой ZFS

# chmod A+user:korobkin:read_data/write_data:allow snake# ls -v /zoo/animals/snake

-rw-r--r--+ 1 root root 0 Feb 6 18:01 /zoo/animals/snake 0:user:korobkin:read_data/write_data:allow 1:owner@:execute:deny 2:owner@:read_data/write_data/append_data /write_xattr/write_attributes /write_acl/write_owner:allow 3:group@:write_data/append_data/execute:deny 4:group@:read_data:allow 5:everyone@:write_data/append_data /write_xattr/execute/write_attributes /write_acl/write_owner:deny 6:everyone@:read_data/read_xattr /read_attributes/read_acl/synchronize:allow

# ls -V /zoo/animals/snake

-rw-r--r--+ 1 root root 0 Feb 6 18:01 /zoo/animals/snake user:korobkin:rw------------:------:allow owner@:--x-----------:------:deny owner@:rw-p---A-W-Co-:------:allow group@:-wxp----------:------:deny group@:r-------------:------:allow everyone@:-wxp---A-W-Co-:------:deny everyone@:r-----a-R-c--s:------:allow

Page 37: 052 Системный Администратор 03 2007

35№3, март 2007

bugtraq

Уязвимость состояния операции в Sun SolarisПрограмма: Sun Solaris 8, 9, 10.Опасность: Низкая.Описание: Уязвимость состояния операции обнаружена при удалении директорий с помощью команды rm(1). Зло-умышленник может создать специально сформированную иерархию директорий, которая приведет к удалению произ-вольных файлов и директорий на системе, когда привилеги-рованный пользователь будет удалять эту директорию.URL производителя: www.sun.com.Решение: Установите исправление с сайта производите-ля.

Множественные уязвимости в PHPПрограмма: PHP 5.1.x; PHP 5.2.x.Опасность: Средняя.Описание: 1. Злоумышленник может обойти защитные ме-ханизмы safe_mode и open_basedir посредством расшире-ния сессии.

2. Некоторые ошибки могут привести к повреждению стека в реализации сессий.

3. Переполнения стека обнаружены в расширениях zip, imap и sqlite.

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

5. Переполнение буфера обнаружено в функции str_replace().

6. Уязвимость в расширении wddx может позволить зло-умышленнику получить доступ к важным данным на сис-теме.

7. Уязвимость форматной строки обнаружена в функ-ции *print() на 64-битных системах.

8. Ошибки проверки границ данных обнаружены в функциях mail(), ibase_add_user(), ibase_delete_user() и ibase_modify_user(). Удаленный пользователь может вы-звать переполнение буфера.

9. Уязвимость форматной строки обнаружена в функ-ции odbc_result_all().URL производителя: www.php.net.Решение: Установите последнюю версию (5.2.1) с сайта производителя.

Обход аутентификации в Sun SolarisПрограмма: Sun Solaris 10.Опасность: Средняя.Описание: Уязвимость существует из-за ошибки в демо-не in.telnetd при вызове приложения login. Удаленный поль-зователь может обойти процесс аутентификации путем до-бавления к валидному имени опции -f.URL производителя: www.sun.com.Решение: В настоящее время способов устранения уязви-мости не существует. В качестве временного решения ре-комендуется отключить службу telnet.

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

Переполнение буфера в uTorrentПрограмма: uTorrent 1.6 build 474, возможно более ран-ние версии.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки проверки границ данных при обработке .torrent-файлов. Удаленный пользователь может с помощью специально сформирован-ного .torrent-файла, содержащего слишком длинную строку (более 4800 байт) в опции «announce» вызвать переполнение стека и выполнить произвольный код на целевой системе.URL производителя: www.utorrent.com.Решение: В настоящее время способов устранения уязви-мости не существует.

Уязвимость в Microsoft MDAC ADODB.Connection ActiveX-компонентеПрограмма: Microsoft Windows 2000; Microsoft Windows XP; Microsoft Windows 2003; Microsoft Data Access Components (MDAC) 2.x.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки в ADODB.Connection ActiveX-компоненте при обработке ме-тода Execute(). Удаленный пользователь может с помощью специально сформированной веб-страницы выполнить про-извольный код на целевой системе с привилегиями поль-зователя, запустившего браузер.URL производителя: www.microsoft.com.Решение: Установите исправление с сайта производите-ля.

Несколько уязвимостей в Cisco IOS IPSПрограмма: Cisco IOS 12.3, 12.4.Опасность: Средняя.Описание: 1. Уязвимость существует из-за ошибки при об-работке регулярных выражений в Intrusion Prevention System (IPS). Удаленный пользователь может с помощью специаль-но сформированных фрагментированных IP-пакетов обой-ти правила IPS и произвести атаку.

2. Уязвимость существует из-за ошибки в механизме ATOMIC.TCP. Удаленный пользователь может вызвать от-каз в обслуживании устройства.URL производителя: www.cisco.com.Решение: Установите исправление с сайта производите-ля.

Уязвимость при обработке NTLM-аутентификации в MailEnableПрограмма: MailEnable Enterprise Edition 2.x; MailEnable Professional 2.x.Опасность: Средняя.Оп и са н и е : Уяз вимо с ть суще с твует в функ ц ии NTLM_UnPack_Type3() (MENTLM.DLL) при обработке дан-ных NTLM аутентификации. Удаленный пользователь мо-жет с помощью специально сформированной последова-тельности команд и данных аварийно завершить работу IMAP- или POP3-службы.URL производителя: www.mailenable.com.Решение: Установите последнюю версию (2.351 или выше) с сайта производителя.

Page 38: 052 Системный Администратор 03 2007

36

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

Какие бывают Groupware‑серверыOpen Source-решения для автоматиза-ции групповой работы строятся на от-крытых технологиях и стандартах, в числе которых SMTP, POP3/POP3S, IMAP/IMAPS, LDAP, LS/SSL, S/MIME, VCard, iCalendar и другие. Основой служат веб-технологии, как правило, для их работы необходим веб-сервер с поддержкой PHP.

Open Source-решения на Java встречаются реже. Для ускорения об-работки данных такие системы тре-буют наличия БД, например MySQL/PostgreSQL, в которой будут хранить-ся настройки и другая информация. Та-кой подход очень удобен, так как от-падает необходимость в специализи-рованном клиентском программном обеспечении, достаточно обычного веб-браузера.

Хотя некоторые проекты позволяют использовать и клиентские программы

Evolution, Mozilla ThunderBird, Mozilla Sunbird, Kontact, Outlook и другие, что обеспечивает большую гибкость и удобство. Поэтому перед внедрени-ем приложения для коллективной ра-боты следует остановиться на решени-ях, обеспечивающих требуемую функ-циональность. Кроме основных функ-ций, присущих таким системам (рабо-та с почтой, календарь, планировщик заданий, записная книжка), могут быть и другие возможности – форумы, чаты, WiKi, системы управления контентом, просмотр комиксов и прочее. Естест-венно, приложение должно быть лока-лизовано и максимально дружелюбно к пользователю. Использование веб дает еще одно преимущество – в ка-честве базовой платформы можно ис-пользовать любую операционную сис-тему, на которой может быть установ-лен базовый комплект. А это веб-сер-вер с поддержкой PHP и СУБД. В боль-шинстве случаев рекомендуемыми яв-

ляются компоненты XAMPP – Apache, PHP, MySQL [7], почтовый сервер мож-но использовать внешний, хотя встре-чаются и ограничения. И, как правило, сервер коллективной работы без про-блем может быть запущен на ком-пьютере под управлением Windows, Linux/UNIX, *BSD и Solaris. Учитывая, что некоторые решения, несмотря на кажущуюся на первый взгляд просто-ту, установить не так-то и легко, про-цесс выбора нужной системы для кол-лективной работы упрощен наличием демонстрационных версий, к которым любой желающий может получить до-ступ. Их можно найти как на сайтах проекта, так и специализированных ресурсах [1]. Хотя в большинстве слу-чаев предоставляется доступ к кон-соли администратора. Как будет вы-глядеть система с точки зрения обык-новенного пользователя, на которого ориентирован сервис, ясно не всегда. Хотя это и существенно экономит вре-мя, да и нервы тоже, позволяя на ран-нем этапе отсеять часть продуктов, не подходящих под начальные условия.

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

При поиске были рассмотрены сле-дующие проекты.

TUTOSСтарожил TUTOS (http://www.tutos.org). Этот проект развивается с 1997 года, поэтому период становления и «детских болезней» уже можно счи-тать пройденным. Его отличает прос-той, не перегруженный, но примитив-ный по сегодняшним меркам интер-фейс, хотя его можно облагородить с помощью тем. Интересно, что язык интерфейса определяется автомати-чески по настройкам браузера, что хо-рошо заметно при посещении демонс-трационной страницы, хотя его можно указать и вручную. Это весьма разви-тая система, направленная в первую очередь на оптимизацию работы с про-ектами. Предусмотрена гибкая систе-

Устанавливаем eGroupware

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

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

Page 39: 052 Системный Администратор 03 2007

37№3, март 2007

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

ма управления пользователями, кото-рые могут быть сопоставлены по отде-лам, группам, департаментам и их ро-ли (менеджер, разработчик и прочее). Еще одним достоинством TUTOS яв-ляется быстрота работы. В настоящее время разрабатываются приложения для синхронизации для рабочих сред KDE и Gnome, Java-сервлеты, плани-руется разработка механизмов синхро-низации со сторонними приложениями. Но это в будущем.

PHProjektPHProjekt (http://www.phprojekt.com) не-плохая система управления коллек-тивной работой, имеющая модульную структуру. Легко адаптируемая под лю-бые требования. Базовый комплект включает: компоненты группового ка-лендаря, управления проектами, учета времени, менеджер контактов, работу с электронной почтой, форум и некото-рые другие. Поддерживается просмотр и печать документов в pdf, xml, csv, xls, rtf, doc, html, отправка SMS и факсов. Остальное (WiKi, WAP и прочее) реали-зовано с помощью модулей. PHProjekt поддерживает самое большое коли-чество СУБД – 9. Интерфейс переве-ден более чем на 35 языков, в списке которых есть русский. По умолчанию поддерживается работа с кодировкой СP1251, но, скачав дополнение, можно установить любую из доступных. Хо-тя в документации все подробно рас-писано, установить PHProjekt бывает не так просто. Результирующий кон-фигурационный файл не появляется, а сам скрипт безнадежно виснет. При-чем разработчики считают это вполне нормальным явлением, так как сове-туют повторить все сначала. PHProjekt полностью ориентирован на использо-вание веб. Возможен экспорт и импорт адресных книг, но только путем созда-ния промежуточных файлов.

TikiwikiПо этой же причине не подошел и не-плохой проект Tikiwiki (http://tikiwiki.org), хотя и назначение его иное. Как ска-зано на сайте, это wiki-based Content Management System (CMS), с помощью которого можно создавать целые пор-талы, а затем уже следуют средства коллективной работы и прочие воз-можности, коих у Tikiwiki предостаточ-но. Поддерживается и русский язык.

Scalix Community EditionВесьма неплохая разработка Scalix Community Edition (http://www.scalix.com). Представляет собой бесплатную вер-сию коммерческого продукта, в кото-рой количество привилегированных пользователей ограничено 25, стан-дартных можно заводить сколько угод-но. Разработка основана на лицензи-рованном HP OpenMail и обеспечива-ет пользователей доступом к элект-ронной почте, календарю и некото-рым другим, стандартным для серве-ров групповой работы возможностям. Пользователям и администратору пре-доставлен удобный веб-интерфейс, ос-нованный на AJAX. Кроме того, доступ

к информации можно получить с помо-щью внешних приложений наподобие Microsoft Outlook, Novell Evolution и не-которых беспроводных устройств. Сов-местима с MS Exchange и легко интег-рируется в Active Directory. В числе раз-работчиков есть выходцы из постсо-ветского пространства, поэтому с ло-кализацией проблем нет. Программа установки имеет графический интер-фейс и будет понятна даже новичку. Официально поддерживается Red Hat Enterprise Linux 3.0/4.0, Fedora Core 5*, SUSE Linux Enterprise Server 9.0/10.0, SUSE Linux Open Source Software (OSS) 10.1*, для которых можно скачать го-товые пакеты. В остальных дистрибу-

Рисунок 1. Результат работы скрипта, проверяющего готовность системы

Рисунок 2. Окно создания конфигурационного файла header.inc.php

Page 40: 052 Системный Администратор 03 2007

38

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

тивах установку можно производить из исходных текстов.

Open-Xchange Community EditionOpen-Xchange Community Edition (http://www.open-xchange.com) также пред-ставляет собой свободную версию коммерческого продукта, не имеющую некоторой функциональности. В част-ности, удобного интерфейса админис-тратора, простоты в установке и на-стройке. Это полноценный сервер групповой работы, обеспечивающий работу с почтой, календарь, список контактов и задачи управления (форум, база знаний, совместная работа с до-кументами, управление проектами),

ступ к электронную почте, управле-ние документами и проектами, пла-нирование ресурсов, синхронизацию с Palm, Kontact, Novell Evolution. Досту-пен коммерческий модуль расшире-ния для Outlook. Работает как в Linux, так и в Windows. В CVS-версии никаких средств локализации веб-интерфейса я не нашел, хотя есть список рассылки для русскоязычных пользователей.

Возможности eGroupwareeGroupware [2] – программный пакет, предназначенный для обеспечения совместной работы групп пользовате-лей и автоматизации бизнес-процес-сов. Основу eGroupware API составля-ет код – phpGroupWare, часть его раз-работчиков также перешла в новый проект. Задачей своего проекта они видели не механическое соединение модулей, а создание единого инфор-мационного пространства, максималь-но удобного для конечного пользовате-ля, в котором он сможет выполнять всю повседневную работу. Идеология про-екта использует принципы FSF, поэто-му в качестве лицензии выбрана GNU GPL. Хотя и не исключена поддержка модулей, разрабатываемых по лицен-зии BSD. Результатом явилась систе-ма коллективной работы, изначально обеспечивающая большую функцио-нальность по отношению к остальным подобным проектам. Основные средс-тва коллективной работы:n Календарь – поддерживает плани-

рование времени для пользовате-лей, групп и контактов.

n Адресная книга – для управления контактами и связи с другими при-ложениями eGroupware, реализова-ны экспорт и импорт в/из LDIF, CSV и VCard и управление через LDAP или SQL.

n Почтовый клиент (FelaMiMail) – один из клиентов электронной поч-ты, поддерживающий протокол IMAP, обеспечивается сортиров-ка, удаление сообщения, занесе-ние отправителя в адресную книгу и прочие возможности.

n InfoLog – представляет собой за-мену спискам ToDo, заметкам, спискам звонков и систему управ-ления взаимодействием с клиента-ми (CRM), тесно взаимодействую-щую с остальными компонентами eGroupware.

способный заменить Exchange Server. Поддерживается и синхронизация с KDE Kontact. Работа с устройствами, работающими по стандарту SyncML, а также Outlook и Outlook Express, ре-ализована в коммерческой версии. Ра-бота версии Community заявлена в 30 дистрибутивах Linux, а коммерческая – только SUSE и RedHat. Интерфейс ло-кализован.

OpenGroupware.orgOpenGroupware.o rg (h t tp: / /w w w.opengroupware.org) подробно описан в [4], базовая функциональность оста-лась прежней. OGo обеспечивает уп-равление контактами, групповой ка-лендарь, управление заданиями, до-

Рисунок 3. Окно установок eGroupware

Рисунок 4. Задание основных настроек

Page 41: 052 Системный Администратор 03 2007

39№3, март 2007

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

Дополнительных средств на по-рядок больше. Это менеджер про-ектов, система управления ресур-сами и их планированием, файло-вый менеджер и ftp-клиент, систе-ма управления контентом (SiteMgr) и WiKi (клон WikkiTikkiTavi), чат, а так-же средства разработки, админис-трирования и многое другое. Поми-мо FelaMiMail в eGroupware включен еще один почтовый клиент AngleMail (http://www.anglemail.org), поддержи-вающий POP3/IMAP. Всего 48 прило-жений. Плюс еще несколько приложе-ний находятся в стадии разработки. Недостаток функциональности – тяже-ловесность eGroupware по сравнению с остальными приложениями, рассмот-ренными выше. Ведь только в базовом варианте содержится около 20 тысяч файлов размером 70 Мб.

Ко всем функциям можно получить доступ через веб-ин-терфейс, который полностью или частично переведен на 25 языков (есть русский и украинский языки). Поддерживает-ся синхронизация информации с Kontact, Evolution, Outlook, Apple iCal, КПК и мобильными телефонами. Аутентифика-ция пользователей возможна с использованием внутрен-ней базы, LDAP или средствами ActiveDirectory.

Еще один плюс при выборе eGroupware – наличие сай-та русскоязычных пользователей eGroupware [3], на кото-ром хоть и маловато информации, зато работает форум. Здесь же можно взять файл для лучшей локализации ин-терфейса.

Для установки и работы eGroupware понадобятся: ком-пьютер под управлением Windows от 95, Linux, MacOS X или другой POSIX-совместимой системы, с установлен-ным веб-сервером Apache, Roxen или IIS (рекомендован Apache 2), PHP от 4.3 (рекомендован 5.x) и база данных MySQL, Postgres, MaxDB, MSSQL (рекомендован MySQL 4.1 или 5.0) и сервер LDAP. Частично поддерживается и Oracle. Для отправки почтовых сообщений понадобится любой SMTP-сервер (Postfix), и для работы FelaMiMail – сервер Courier-IMAP, Cyrus-IMAP, UW-IMAP или MS Exchange.

Для тех, кто не знает, как все это настроить, разработ-чики рекомендуют воспользоваться XAMPP [7].

Устанавливаем eGroupwareТестовая установка производилась на Ubuntu 6.06, с уста-новленным Apache 2.0.55, PHP 5.1.6 с Suhosin 0.9.5, как опи-сано в [5], скомпилированный с минимальными опциями. Недостающие модули PHP при необходимости будут ус-тановлены из репозитария, а также MySQL 5.0.22 и IMAP Cyrus 2.2. Для упрощения будем считать, что все компонен-ты уже настроены и работают. В репозитарии Ubuntu до-ступна пока версия 1.0. Хотя актуальной на момент напи-сания статьи была уже 1.2.106, ее установку и будем рас-сматривать в дальнейшем. При этом доступен пререлиз для разработчиков – 1.3.015 (1.4 beta1). Перед установкой советую ознакомиться с файлом «How to install and secure

eGroupWare» [6], здесь же находятся готовые скрипты к это-му документу.

Дистрибутив eGroupware располагается в двух пакетах: базовом, обязательном для установки, и contrib, в который входят все дополнительные модули. В последнем находятся почтовый и ftp-клиенты, форум, средства создания резерв-ных архивов, чат и некоторые другие полезные дополнения. Я бы советовал использовать оба архива, затем в процес-се настроек или эксплуатации лишние приложения можно легко удалить или отключить.

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

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

Для файлов задаем право на чтение, для каталогов – чтение и исполнение:

Веб-сервер должен иметь возможность записи в под-каталог fudforum:

Добавим в apache2.conf такие строки:

$ cd /var/www$ sudo tar xjvf eGroupWare-1.2.106-2.tar.bz2$ sudo tar xjvf eGroupWare-contrib-1.2.106-2.tar.bz2

$ sudo cat /etc/apache2/apache2.conf | grep UserUser www-data$ sudo chown -R www-data:www-data /var/www/egroupware

$ sudo find egroupware -type d -exec chmod 550 {} \;$ sudo find egroupware -type f -exec chmod 440 {} \;

$ sudo chmod -R 660 /var/www/egroupware/fudforum

<Directory /var/www/egroupware><Files ~ "\.(inc.php|tpl)$">Order allow,deny

Рисунок 5. Редактирование доступных приложений

Page 42: 052 Системный Администратор 03 2007

40

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

Теперь перезапускаем веб-сервер, в браузере набираем http://имя_узла/egroupware/setup/ и попадаем в программу установки. Сначала в выпадающем списке выберите язык, после чего для тестирования системных установок и нали-чия всех пакетов нажмите «Run installation test». Через неко-торое время скрипт выдаст результат (см. рис. 1). В идеаль-ном варианте все тесты за исключением проверяющих рабо-ту баз данных (ведь для работы будет использована только одна) должны быть отмечены зеленым цветом. Все помечен-ные красным крестиком относятся к критическим ошибкам, влияющим на работу eGroupware, они должны быть устра-нены полностью. Отмеченные желтыми модулями означа-ют, что некоторая функциональность не будет доступна. Это некритично, но лучше тоже с ними разобраться. К ошибкам даны подсказки, помогающие быстро устранить проблему. Чтобы некоторые изменения вступили в силу, потребуется перезапуск компонентов: веб-сервера, MySQL.

В тестовой системе, чтобы привести все в соответс-твие с требованиями, необходимо было выполнить следу-ющие действия.

Установить значения параметра «memory_limit = 16M» (можно больше) и «mbstring.func_overload = 7» в файле /etc/php5/apache2/php.ini.

Установить модули php для работы с выбранной базой данных, модуль для поддержки библиотек GD и IMAP:

Далее потребовалось установить модуль PEAR::Log из PEAR (PHP Extension and Application Repository). Сначала устанавливаем основной пакет для работы с PEAR:

а затем и сам Log:

После решения всех проблем выберите повторную про-верку или нажатием на «Continue to the Header Admin» пере-ходите к следующему этапу. Результатом его работы дол-жен стать файл header.inc.php, содержащий основные на-стройки. В появившемся окне (см. рис. 2) будет выдан ана-лиз настроек, в Setting необходимо уточнить или заполнить основные значения: имя пользователя и пароль для досту-па к header-файлу, адреса интерфейсов, на которых будет принимать соединения eGroupware, параметры соединения

с базой данных, выбрать ее тип, а также имя пользователя БД и имя пользователя для изменения настроек (по умол-чанию используется). После чего нажмите на «Скачать» или «View», чтобы сгенерировать файл. Файл будет создан в ка-талоге /tmp, и под обыкновенным пользователем на место поместить его не получится. Можно поступить так.

Для дальнейших настроек необходимо зайти веб-брау-зером на страницу http://localhost/egroupware/login.php. Этот момент в документации описан непонятно. Теоретически все необходимые базы данных должны быть созданы авто-матически, в моем же случае было получено сообщение:

И возврат на предыдущую позицию, и так по кругу. При-шлось все создавать вручную.

Теперь повторяем попытку. В появившемся окне можно зарегистрироваться в двух позициях. Если воспользоваться полем Header Admin Login, вернемся к меню создания header.inc.php. Для продолжения настройки необходимо зарегист-рироваться в окне Setup/Config Admin Login, где ввести поль-зователя, указанного в поле Configuration User.

Последние настройкиТеперь осталось пройти еще шесть шагов, часть которых, возможно, будет выполнена автоматически (см. рис. 3). Для начала нажимаем кнопку «Install application Mysql database», будет произведено создание необходимых по-лей в базе данных и установка всех приложений, которые будут найдены в каталогах. Второй шаг – создание настро-ек. В появившемся окне необходимо уточнить или запол-нить значение каталогов для хранения временных фай-лов, каталогов для пользовательских файлов, WebDAV, на-стройки http, ftp и параметры прокси-сервера, установки SMTP/POP/IMAP и LDAP, Active Directory (если нужно), на-строить авторизацию и учетные записи, в том числе и вклю-чение анонимного пользователя (см. рис. 4). После внесе-ния всех изменений нажимаем «Save». При первом запус-ке у меня появилось сообщение:

Deny from all</Files></Directory>

$ sudo apt-cache search php | grep mysql$ sudo apt-get install php5-mysql php5-mysqli ↵ php5-gd php5-imap

$ sudo apt-get install pear

$ sudo pear install Log

WARNING: channel "pear.php.net" has updated its protocols, use "channel-update pear.php.net" to updateDid not download optional dependencies: pear/DB, pear/MDB2, use --alldeps to download automaticallypear/Log can optionally use package “pear/DB” (version >= 1.3)pear/Log can optionally use package “pear/MDB2” (version >= 2.0.0RC1)downloading Log-1.9.10.tar ...Starting to download Log-1.9.10.tar (-1 bytes)......................done: 227,840 bytesinstall ok: channel://pear.php.net/Log-1.9.10

$ sudo cp -v /tmp/header.inc.php /var/www/egroupware/

`/tmp/header.inc.php' -> `/var/www/egroupware/header.inc.php

$ sudo chown -R www-data:www-data ↵ /var/www/egroupware/header.inc.php

Fatal Error: It appears that you have not created the database tables for eGroupWare. Click here to run setup.

$ mysqladmin -u root -p create egroupware$ mysql -u root -p

Enter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 13 to server version: 5.0.22-Debian_0ubuntu6.06.2-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant all on egroupware. * to admin@localhost identified by "admin";Query OK, 0 rows affected (0.21 sec)

Step 2 - Configuration*not completed* Your files directory '/var/lib/egroupware/default/files' does not exist**Your backup directory '/var/lib/egroupware/default/backup' does not exist**Missing or uncomplete mailserver configuration*

Page 43: 052 Системный Администратор 03 2007

41№3, март 2007

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

Устраняем:

Третьим шагом настройки является создание учетной записи администратора, нажимаем кнопку «Create admin account». В появившемся окне заполняем данные пользо-вателя, который будет обладать правами администратора, вводим пароль, установив флажок в «Create demo accounts» можно также автоматически еще и создать трех демонс-трационных пользователей: demo/guest, demo2/guest and demo3/guest.

Шаг четвертый «Language Management» нажима-ем кнопку «Manage Languages» и в окне выбираем язы-ки интерфейса, нажимаем «Install» и переходим к выбо-

ру приложений «Advanced Application Management». Здесь поступаем ана-логично, нажимаем кнопку «Manage Applications», в таблице два основных столбца (см. рис. 5).

В первом указаны установлен-ные приложения, их версии и крат-кое описание, а во втором – действие над выбранным приложением – Install, Upgrade, Resolve и Remove. Сейчас можно удалить лишнее, установив флажок в Remove и нажав «Save», для выхода из меню нажимаем «Cancel».

Последний, шестой шаг «DB backup and restore» позволяет сохранить ре-зервную копию настроек (немедленно или установить расписание) и восста-новить их при необходимости. По окон-чании настроек выбираем в меню «Back to user login», регистрируемся как пользователь-администратор.

Рабочее окружение обычного поль-зователя будет выглядеть аналогично, только не будет кнопки «Админ». На-жав на которую можно: изменить на-стройки сервера, создать/удалить/ре-дактировать учетные записи пользова-телей и групп, просмотреть журнал ра-боты, изменить сообщение на главной странице и прочее (см. рис. 6).

При редактировании/создании учетных записей указываются: пер-сональные данные пользователя (см. рис. 7), срок действия пароля, при-ложения, с которыми он может рабо-тать, принадлежность к группам. Ана-логично и приложения: их можно уда-лить, отключить, изменить располо-жение в меню.

На этом ус тановк у с ервера eGroupware можно считать завершен-ной. Осталось проверить работоспо-

собность всех компонентов, завести пользователей и рас-пределить их по группам.

1. Сайт предлагающий демоверсии Open Source-продуктов раз-личных категорий: CMS, Groupware, WiKi, форумы, интернет-магазины и другие – http://demo.opensourcecms.com.

2. Сайт проекта eGroupware – http://www.eGroupware.org.3. Сайт русскоязычных пользователей eGroupware – http://

eGroupware.ru.4. Яремчук С. OpenGroupware.org, или последний кирпич в сте-

не. //Журнал «Системный администратор», №10, 2004 г. – С. 12-16.

5. Яремчук С. Защита PHP-приложений с Suhosin. //Журнал «Сис-темный администратор», №11, 2006 г. – C. 74-77.

6. Проект «eGW install and security howto» – http://sourceforge.net/projects/egwsec.

7. Проект XAMPP – http://www.apachefriends.org.

$ sudo mkdir /var/lib/egroupware/$ sudo mkdir /var/lib/egroupware/default/$ sudo mkdir /var/lib/egroupware/default/backup$ sudo mkdir /var/lib/egroupware/default/files$ sudo chown -R www-data:www-data /var/lib/egroupware

Рисунок 7. Редактирование учетной записи пользователя

Рисунок 6. Окно администрирования eGroupware

Page 44: 052 Системный Администратор 03 2007

42

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

Как появилась KolibriOS?Это ответвление (fork) некогда очень популярной в России 32-битной опера-ционной системы MenuetOS. MenuetOS была искусственно разведена на две ветки: открытую для 32-битных про-цессоров и закрытую для 64-битных. Этого искусственного разделения нет в KolibriOS, которая работает на 32- и 64-битных процессорах. KolibriOS распространяется согласно лицензии GPL, как и Menuet32.

Даже в кратком описании истории KolibriOS нельзя не упомянуть пред-шествовавшие ее появлению собы-тия.

Во второй половине 1990-х го-дов финский студент Вилле Турь-янмаа писал графическую оболоч-

ку для DOS. Ему хотелось, чтобы его программы на Паскале выпол-нялись в многозадачном защищен-ном режиме и имели оконный графи-ческий интерфейс. Оболочка назы-валась MultiRun Program for IBM-PC. Программа обрастала возможностя-ми и со временем превратилась в са-модостаточную операционную систему (DOS уже не требовался), которая за-пускалась с дискеты. Называлась эта операционная система MrOS (http://web.archive.org/web/20010810054655/www.cc.jyu.fi/~villemt/mr.html), а объем ее исходных текстов на Паскале со-ставлял 25 тысяч строк. В дистрибутив входили три десятка программ типа ча-сов, проигрывателя AudioCD, игр, син-тезатора пианино, регулятора громкос-

ти... В последних версиях велась рабо-та над загрузчиком исполняемых фай-лов формата ELF, но наступил милле-ниум, и программисты всего мира на-чали говорить о Java, XML, скрипто-вых языках и прочих технологиях. Вил-ле понял, что его 16-битная ОС уста-рела и требуется что-то менять. С дру-гой стороны, ему не нравилось мед-ленное выполнение программ, напи-санных на интерпретируемых языках, наличие прослоек между программой и железом. Он решил написать самое быстрое ядро в мире, и единственным подходящим языком для этого оказал-ся Ассемблер. Такое радикальное из-менение курса вызвало недоумение у его соратника по MrOS. Ян-Микаэль Брюммер начал проект UNIX-подоб-

KolibriOS: дайте ей шанс полетать на вашем компьютере

Сергей Кузьмин

В середине февраля 2007 года новость о релизе KolibriOS 0.65 облетела весь Интернет. Еще бы: первая операционная система на Ассемблере, поддерживающая чтение разделов NTFS. У прочитавших эту новость сразу возникли вопросы: «Как появилась эта операционная система?», «Кто ее разрабатывает?», «Как ее установить?», «Что она предлагает пользователю и программисту?», «Каково ее будущее?»

Page 45: 052 Системный Администратор 03 2007

43№3, март 2007

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

ной TabOS (http://www.tabos.org), хотя в дальнейшем он написал немного ко-да и для MenuetOS.

Через несколько месяцев был вы-пущен релиз MenuetOS 0.01. Назва-ние было придумано еще во времена MrOS, но Вилле приберег его для но-вой ОС. Оно произошло от слов «Menu» и «Menuet», поскольку использование ОС должно быть простым (как рабо-та с меню программ) и веселым заня-тием (как танец). В то время она раз-рабатывалась с помощью Ассембле-ра Nasm, и ее интерфейс был похож на интерфейс оригинальной MrOS. На-пример, некоторые части интерфей-са MrOS (иконка готической буквы M и рисунок розы на экране завершения работы) использовались в MenuetOS несколько лет. Сообщество разработ-чиков MenuetOS было очень малень-ким до 5 сентября 2001 года, когда было опубликовано интервью на сай-те OSNews (http://www.osnews.com/story.php?news_id=93). Операционная система с графическим интерфей-сом, написанная на Ассемблере и по-мещающаяся на дискету, – подобно-го мир не видел с начала 1990-х годов (PC/GEOS, http://en.wikipedia.org/wiki/GEOS_(16-bit_operating_system)). Лю-ди загружали эту ОС, разносили весть о ней по форумам, создавали посвя-щенные ей сайты. Отметим, что рос-сийские сайты были сделаны букваль-но через неделю после интервью. Со-бытия 11 сентября 2001 года отвлек-ли внимание от MenuetOS, но разви-тие продолжалось.

MenuetOS была еще сырым про-ектом, и в ней многого недоставало. К Вилле стали присоединяться разра-ботчики. В начале 2002 года был пор-тирован Ассемблер FASM, и стало воз-можным компилировать ядро и про-граммы прямо в MenuetOS, что уско-рило процесс разработки. Затем Майк Хиббет начал разработку сетевого сте-ка и ряда сетевых программ, благода-ря другим программистам появилась поддержка форматов bmp, jpeg, wav, доступ к шине PCI.

В 2003 году в компьютерных из-даниях вышли обзорные статьи о MenuetOS, которые привлекли к ней большое внимание в СНГ. Начался Menuet-бум, и сайт русскоязычного сообщества (http://menuet.narod.ru) за-нял одно из лидирующих мест по по-

сещаемости среди сайтов операци-онных систем Рунета. Администратор сайта отмечал, что за год этого бума он получил 9588 писем и сайт посети-ли около 50 тысяч человек. Началась активная русификация MenuetOS, по-являлись исправленные и новые про-граммы. Появление российского дис-трибутива стало неизбежным (отме-тим, что в 2001-2002 годах уже были российские сборки MenuetOS, которые расширяли ее возможности, но те ис-правления не были приняты в офици-альный дистрибутив).

В июле 2003 года вышел немец-кий дистрибутив Gershi. Через неко-торое время он был немного обнов-лен и частично переведен на русский язык Ростиславом «Sniper» Окуловым. Эта переведенная версия не понрави-лась Ивану Поддубному, и он выложил свой собственный дистрибутив, назвав его Menuet RE#1 (RE – Russian Edition). Развитие этого дистрибутива заложи-ло основы взаимодействия внутри со-общества пользователей и програм-мистов СНГ. Было выпущено еще не-сколько релизов, но часть изменений и ряд новых программ были отвергну-ты Вилле.

Весной 2004 года Иван Поддубный заканчивал школу и поступал в уни-верситет. Из-за этого образовался перерыв со времени выпуска RE#6, и Марат Закиянов «Mario79» выпустил Kolibri 1, который включал в себя ис-

правления для драйвера FAT32. Назва-ние Kolibri было предложено Станисла-вом «VaStaNi» Валыйских, потому что ОС на Ассемблере должна быть ком-пактной и быстрой. Через некоторое время были выпущены RE#7 и Kolibri 2, включающие в себя драйвер FAT16, автоматическое определение разме-ра ОЗУ, поддержку gif. Летом 2004 го-да Ярослав Пельчар портировал Doom, Quake и несколько других игр с помо-щью своих наработок (С library).

Вилле передал руководство Май-ку Хиббетту в июле 2004 года, моти-вируя это занятостью из-за переезда в Париж. Что-то у него не заладилось с переездом, и в сентябре он начал пи-сать ядро новой ОС – Menuet64. Русс-коязычное сообщество узнало об этом только в ноябре.

Осенью 2004 года Иван Поддуб-ный выпустил 3 беты дистрибутива RE#8, которые включили в себя но-вую подсистему отрисовки GUI и пле-ер wav-файлов для материнских плат со встроенным звуком. В это время Майк Хиббет оказался слишком занят на работе и вернул руководство Вил-ле в конце декабря.

Весной 2005 года Иван Поддубный выложил ядро, размер которого был уменьшен на 20% по сравнению с офи-циальным при большей функциональ-ности. Это ядро легло в основу дистри-бутивов Kolibri 3 и Kolibri 3 SE, предста-вивших улучшенный интерфейс поль-

MrOS – предыдущая разработка В. Турьянмаа

Page 46: 052 Системный Администратор 03 2007

44

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

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

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

Выпущенный в июне дистрибутив Kolibri 4 принес автоматическое опре-деление мыши и дисков/разделов ЖД, а также новый загрузочный экран, поз-воляющий выбирать частоту верти-кальной развертки монитора.

В июне 2005 года вышла Menuet64 0.01, и Вилле дал понять, что разви-тие этой ОС должно быть основной це-лью не только для него, но и для все-го сообщества (хотя в то время 64-бит-ных компьютеров ни у кого кроме него не было). Исходные тексты Menuet64 были закрыты, поэтому ведущих про-граммистов сообщества Menuet32 она

не привлекла. Была продолжена рабо-та над дистрибутивом Kolibri. Разви-тие Kolibri раздражало Вилле, и он по-ругался с нашей командой, что приве-ло к разрыву отношений.

Выход очередной версии Kolibri в октябре 2005 года стал знаковым: поддержка FAT12 и менеджмент па-мяти, улучшенный драйвер RAM-диска и новая семантика обращения к жес-тким дискам. Различие между ядром Kolibri и MenuetOS достигло 50% – при-знак того, что родилась новая опера-ционная система! Эта версия получи-ла название KolibriOS 0.50 в знак со-хранения преемственности от дистри-бутива Kolibri.

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

В версии 0.58 были серьезные из-менения в работе с жесткими дисками (в том числе поддержка длинных имен файлов), появилась поддержка файло-вой системы CDFS и стандарта управ-ления питанием APM.

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

Выход KolibriOS 0.63 был связан с внедрением поддержки внешних

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

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

Кто ее разрабатывает?В настоящий момент KolibriOS разви-вается благодаря усилиям трех десят-ков человек, среди которых есть пред-ставители Белоруссии, Бельгии, Гер-мании, Казахстана, Молдавии, Рос-сии, Узбекистана, Украины, Эстонии и ряда других стран. Примерно треть из нашей команды разработчиков участвовала в разработке оригиналь-ной MenuetOS. С версии 0.60 сборкой дистрибутива занимается Евгений Гречников «Diamond». В июле 2006 го-да был открыт сайт http://kolibrios.org (администратор сайта – Михаил Се-меняко «mike.dld»). Форум для русс-коязычных пользователей находится на http://meos.sysbin.com.

Как ее установить?Для установки подойдет любой компью-тер класса Pentium, 16 Мб ОЗУ и виде-окарта с поддержкой VESA. Для рабо-ты ОС ее образ должен быть загружен в память (в так называемый RAM-диск). Запакованный в архив образ форма-та img вместе с документацией мож-но скачать на сайте http://kolibrios.org. Пользователям Windows может пона-добиться программа WinImage для уп-равления файлами внутри образа (на-пример, обновления ядра и добавле-ния новых программ) – ее можно ска-чать на http://winimage.com. Сущест-вует множество вариантов загрузки: с винчестера (FAT- или NTFS-раздел), с дискеты, с компакт-диска, с flash-на-копителя. Подробности настройки за-грузочных устройств изложены в до-кументации к ОС (файл install.txt). Так-же можно запускать KolibriOS в вирту-альных машинах типа Bochs, Qemu, VMWare.

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

KolibriOS в работе: игра «Гробница фараона», файловый менеджер KFM, программа для снятия скриншотов

Page 47: 052 Системный Администратор 03 2007

45№3, март 2007

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

После загрузки появится рабочий стол. Для быстрого доступа к настрой-кам интерфейса можно использовать контекстное меню, появляющееся по щелчку правой кнопкой мыши на ра-бочем столе. Для настройки устройств раскрывайте главное меню: «Меню → Система → Настройка → Настройка устройств». Можно просто щелкнуть курсором по букве S на панели задач для вызова программы «Настройка ус-тройств» (Setup). Настройка устройств заключается в конфигурации некото-рых параметров работы, касающих-ся звуковой карты, раскладки клави-атуры и т. п.

Для работы в KolibriOS важно знать, как выглядят пути к файлам. Путь к файлу b.bmp на первом разде-ле первого по индексу жесткого диска выглядит так: /hd0/1/b.bmp, на компакт-диске – /cd1/1/b.bmp, на дискете – /fd/1/b.bmp, а на RAM-диске – /rd/1/b.bmp.

Что KolibriOS предлагает пользователю и программисту?Для KolibriOS разработано более 250 программ. Конечно, это немного в сравнении с ОС, разработка которых началась еще в 80-90-х годах (Windows, Linux, BeOS, *BSD), но отсутствие про-грамм как раз привлекает разработ-чиков, выступая в качестве хорошей возможности опробовать свои силы. Благодаря портированному DOSBox возможно запускать еще тысячи про-грамм, написанных для DOS.

Офисных программ немного, но текстовый редактор TINYPAD яв-ляется продвинутым (многодокумент-ный интерфейс, смена кодировки, под-светка синтаксиса, нумерация строк, компиляция исходных текстов прямо из редактора) в сравнении с аналогами из любых других ОС. Также есть воз-можность просмотра файлов формата rtf в программе RTFREAD. Естественно, есть календарь, калькулятор и англо-русский словарь. Можно просматри-вать архивы в форматах zip, tar.gz.

Для любителей мультимедийных развлечений есть возможность про-смотра графических файлов форма-тов bmp, gif, jpeg, png и 3ds, прослу-шивания музыкальных файлов фор-матов mid, mp3, wav и обычных аудио-дисков. Редактор графики ANIMAGE позволяет создавать и редактировать

рисунки. KolibriOS оснащена отличным скринсейвером.

По какой-то непонятной причине для MenuetOS и KolibriOS больше всего разрабатывалось файловых менедже-ров (не менее 7 программ). Сейчас на-иболее часто обновляются менеджеры KFAR (аналог FAR) и KFM (аналог Total Commander). В скором времени KFAR будет поддерживать распаковку архи-вов в форматах zip и 7z.

Есть несколько десятков игр (тет-рис, арканоид, «15», сапер, шашки, со-кобан и др.), в том числе портирован-ные версии Doom и Quake. Многие иг-ры можно запускать в портированных DOSBox и ScummVM.

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

Хотя сетевой стек пока еще дора-батывается (ведутся работы над под-держкой обработки прерываний от се-тевых карт), но сетевых программ уже написано несколько десятков.

Есть даже две научные програм-мы – таблица Менделеева и програм-ма для мессбауэровской спектрос-копии.

Разработчик может писать библио-теки, драйверы и программы не толь-ко на Ассемблере, но и на языках вы-сокого уровня типа С++, С, C--, Modula, Паскаль, Форт. Инструкции по исполь-зованию некоторых компиляторов языков высокого уровня есть в статье http://diamondz.land.ru/hll/hll.htm. Есть компрессоры исполняемых файлов, hex-редакторы и средства отладки. Есть эмуляторы для запуска программ Kolibri/Menuet32 в Windows, что ускоря-ет процесс разработки.

Каково ее будущее?Летом (2007 года) планируется пере-писать ядро и программы для ускоре-ния работы на 64-разрядных процес-сорах. Это изменение приведет к не-возможности запускать программы Menuet32 в KolibriOS, но мы мало что теряем, поскольку Menuet32 практи-чески не развивается.

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

держка шрифтов TrueType; улучше-ние мультимедийных, офисных и се-тевых программ; портирование ком-пилятора языка Cи (уже есть наработ-ки по Tiny C Compiler и Open Watcom); расширение функциональности в ра-боте с файловыми системами; созда-ние системного буфера обмена; под-держка USB и SMP.

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

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

Поскольку KolibriOS разрабаты-вается в основном разработчиками из СНГ и распространяется бесплатно, то проблем с ознакомлением с ОС и ус-тановлением контактов c сообществом у заинтересовавшихся не будет.

1. О ф и ц и а л ь н ы й с а й т – h t t p : / /kolibrios.org.

2. Форум русскоязычных разработчиков – http://meos.sysbin.com.

3. Форум зарубежных разработчиков – http://meos32.7.forumer.com.

4. Статья об установке на f lash-на-копитель – http://www.kolibri.hut1.ru/load_usb.htm.

5. Обзор С. Кузьмина (2004 год) – http://comprice.ru/pop/2004-50.phtml.

6. Обзор М. Закиянова (2005 год) – http://kolibri.hut1.ru/info.htm.

7. История MenuetOS от С. Кузьми-на и А. Халявина (2005 год) – http://coolthemes.narod.ru/history2.html.

8. О ф и ц и а л ь н ы й с а й т M e n u e t 3 2 и Menuet64 – http://menuetos.net.

Page 48: 052 Системный Администратор 03 2007

46

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

В российских компаниях в боль-шинстве случаев главным почтовым сервером являет-

ся MS Exchange. Я не буду говорить ни плохих, ни хороших слов в его ад-рес, возьмем за данность, что он до-минирует.

Как известно, продукты от MS час-то подвергаются нападениям и стано-вятся жертвами взломов, если они вы-ставлены напрямую в Интернет. В свя-зи с этим позиции UNIX-систем выгля-дят более чем привлекательно, и круп-ные компании стараются сделать front-end именно из UNIX-систем.

Как это реализуется?Схема очень проста. Exchange-сер-вер устанавливается в изолирован-ной от внешнего Интернета локаль-

ной сети. Обычно Exchange устанав-ливают на Высоконадежный Кластер, во избежание простоев из-за аппа-ратных сбоев. Поток почты поступает на Exchange через MX-серверы (Mail Exchangers, от названия DNS-записи, указывающей, какому серверу следует передавать почту), которые находятся под управлением UNIX-систем, не важ-но каких, Solaris, Linux, FreeBSD. Я со-ветую ставить 3 MX-сервера для сред-ней нагрузки в 20 000 – 50 000 сооб-щений в день.

Сломать UNIX-сервер в общем случае сложнее, чем Windows-сервер, при должном администрировании за-дача взломщика усложняется в разы.

В описываемом случае на UNIX-сервере работает MTA Sendmail, хотя общие принципы применимы к Postfix,

Exim или другому MTA. Sendmail яв-ляется на сегодняшний день одним из наиболее популярных агентов пе-редачи сообщений в UNIX-подобных операционных системах. Кроме того, многие авторитетные люди призна-ют его наиболее надежным и универ-сальным MTA из доступных в настоя-щее время.

MX-серверы устанавливаются либо в DMZ, либо одним сетевым интерфей-сом подключены к Интернету, а дру-гим – в приватную сеть. Так или ина-че, у сервера должно быть соединение с Интернетом и с приватной сетью.

Конфигурирование SendmailВ нашем конфигурационном файле sendmail.mc прописываем строку:

Корпоративный MAIL RELAY-сервисE-mail + UNIX + Exchange

Яков Коваленко

Ваша почтовая система основана на MS Exchange, и вы опасаетесь подключать его напрямую в Интернет? Или вам требуется большая гибкость в маршрутизации и фильтрации почты, чего не может обеспечить упомянутый продукт? Так или иначе – UNIX‑сервер и Sendmail с правильной настройкой избавят вас от головной боли и дадут мощные инструменты для работы с почтой.

Page 49: 052 Системный Администратор 03 2007

47№3, март 2007

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

В файле mailertable прописываем домен или домены, почту для которых мы принимаем, и адрес сервера, куда мы переправляем почту.

На место XXX.XXX.XXX.XXX требуется поставить IP-ад-рес Exchange-сервера, тогда весь поток почты будет пере-даваться на него. В access-файле нужно прописать:

На место XXX.XXX.XXX.XXX требуется поставить IP-ад-рес Exchange-сервера, тогда мы сможем принимать и пере-сылать почту от него. После всех этих манипуляций нужно пересобрать sendmail.cf, access и mailertable.

Это можно сделать либо отдельно для каждого файла, как инструкции к Sendmail, а можно создать в директории, где эти файлы расположены (в данном случае /etc/mail), Makefile с содержанием:

(взято с RHEL, во FreeBSD есть аналогичный метод).Тогда можно будет дать команду make и перезапустить

Sendmail. Все, сервер принимает почту для наших доменов и пересылает ее Exchange-серверу. Указанные операции необходимо проделать на всех MX-серверах. На Exchange нужно указать UNIX-серверы в качестве смарт-хостов для пересылки почты. Как это конкретно делается – несложно найти в руководстве к Exchange.

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

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

Проблемы с мусорным трафикомСразу встает следующий вопрос – «Если почтовые ящи-ки не хранятся локально на UNIX-сервере, то это значит, что Sendmail не знает, какой адрес существует, а какой нет, и будет принимать все письма с адресом, содержащим наш домен. Как быть с мусорным спам-трафиком, который от-правляется зачастую на несуществующие адреса и вооб-ще с бессмысленным набором символов?».

Действительно, спамеры так и делают – отправляют письмо на совершенно немыслимые адреса в нашем до-мене, например [email protected]. Или, напри-мер, некоторые сотрудники уволились, а почта им идет. Ес-ли бы отправляющий сервер соединялся непосредственно с Exchange-сервером, то Exchange сказал бы, что не знает такого адресата и почту не примет. А в нашем случае ему приходится отвечать на попытки отправить почту на несу-ществующие адреса уже нашим MX-серверам, которые при-няли эту почту, потратили на нее трафик и, самое обидное, в большинстве случаев они не смогут отправить уведомле-ние о недоставке, так как отправитель тоже, скорее всего, вымышленный. Доля таких писем составляет порядка 75%, что в масштабе больших предприятий выливается в очень солидные затраты на интернет-трафик.

Проведя многие часы в поисках, я так и не нашел гото-вого удобоваримого способа решить эту проблему. Но вы-ход есть! С помощью Perl можно написать Milter, – программу фильтрации почты на этапе SMTP-сессии. Сразу хочу ска-зать, что я не такой хороший программист на Perl, как это-го хотелось бы, но написанный мной скрипт замечательно работает на загруженных серверах и экономит до 60-75% почтового трафика. Итак, схема работы сервиса.

Perl-скрипт принимает от Sendmail содержание RCPT TO, что является адресом получателя. Через модуль Net::Telnet генерирует telnet-сессию, через которую опрашивает Exchange-сервер на предмет наличия или отсутствия адре-са. На основании полученного ответа или пропускает пись-мо, или отказывает в приеме. Для более производительной работы и для того чтобы по каждому письму не беспокоить Exchange-сервер, создается база существующих адресов, куда заносятся на сутки нормальные адреса и по их поводу Exchange уже не опрашивается. Просто и логично.

Для этого потребуется – сам Perl, модули Sendmail::Milter и Net::Telnet. Sendmail должен быть собран с libmilter. В пос-ледних версиях это делается по умолчанию. Устанавливать модули для Perl удобнее всего так:

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

FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl

mydomain.ru smtp8:[XXX.XXX.XXX.XXX]mydomain.com smtp8:[XXX.XXX.XXX.XXX]

To:mydomain.ru RELAYTo:mydomain.com RELAYXXX.XXX.XXX.XXX RELAY

POSSIBLE += $(shell test -f bitdomain ↵ && echo bitdomain.db)POSSIBLE += $(shell test -f uudomain ↵ && echo uudomain.db)POSSIBLE += $(shell test -f genericstable ↵ && echo genericstable.db)POSSIBLE += $(shell test -f userdb ↵ && echo userdb.db)CFFILES = sendmail.cf submit.cf

all: ${CFFILES} ${POSSIBLE} virtusertable.db access.db ↵ domaintable.db mailertable.db

userdb.db : userdb @makemap btree $@ < $<

%.db : % @makemap hash $@ < $<

%.cf : %.mc @if test -f /usr/share/sendmail-cf/m4/cf.m4; then \ mv -f $@ [email protected]; \ m4 $< > $@; \ fi;

clean: rm -f *.db *~

perl -MCPAN -e shell

install Net::Telnet

Page 50: 052 Системный Администратор 03 2007

48

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

Аналогично с Sendmail::Milter.Для установки Sendmail::Milter файл Makefile.pl требует

наличия исходных кодов Sendmail. Если вы собирали из них, то проблем возникнуть не должно, но если у вас rpm или pkg, то потребуется несколько дополнительных телодвижений.

Установите devel-пакет Sendmail. Запустите скрипт:

Скрипт будет работать на RedHat-совместимых дистри-бутивах Linux. Чтобы он заработал на других UNIX-подоб-ных операционных системах, нужно найти аналог команды «rpm -ql» (вывести листинг файлов, относящихся к пакету). Например, в Solaris нужно с помощью утилит grep и awk от-фильтровать файл /var/sadm/install/contents.

Далее в /root/.cpan/build/Sendmail-Milter-* дайте после-довательно команды:

Должно заработать.Итак, если установлены все необходимые модули, мож-

но настраивать и запускать Perl-Milter.Потребуется:

1. Добавить в sendmail.mc описание Milter.2. Создать сам скрипт /usr/local/milters/mxcheck/mxcheck.pl.3. Создать init-скрипт /etc/init.d/mxcheck.4. Пересобрать sendmail.cf.5. Перезапустить sendmail.6. Запустить mxcheck.

В sendmail.mc добавляем:

Я не могу точно сказать, есть ли очередность мильтеров, но лучше поставить mxcheck до остальных мильтеров, если они у вас есть. Создаем скрипты и настраиваем их.

Листинг скрипта mxcheck.pl с комментариями:

#!/bin/sh

SRC_DIR=/usr/local/src/sendmail

mkdir -p ${SRC_DIR}/includecp `rpm -ql sendmail-devel | grep '\.h$’` ↵ ${SRC_DIR}/include/

mkdir -p ${SRC_DIR}/libmiltercp `rpm -ql sendmail-devel | grep '/lib’` ↵ ${SRC_DIR}/libmilter/

cd /root/.cpan/build/Sendmail-Milter-*perl Makefile.PL ${SRC_DIR}/ ${SRC_DIR}/

makemake testmake install

INPUT_MAIL_FILTER(`mxcheck', ↵ `S=local:/var/run/mxcheck.socket')

define(`confINPUT_MAIL_FILTERS’,`mxcheck’)

#!/usr/bin/perl## Любой продукт можно бесконечно оптимизировать и развивать.# Скрипт должен послужить только отправной точкой.# Здесь описаны лишь основные моменты, но они работают. # Готовый продукт вы должны написать для себя сами.#

## Определяем переменные и модули# use Sendmail::Milter;

use Net::Telnet (); use Socket; use AnyDBM_File; use strict; my ( $uncheck, $scriptname, $sendmail_cf, $error_code, $reply, $exchangeip, $debug, $time, $basedir, %validsbase, $validsbase, $TTL, $rcpt_to, $line, $smtp, $msg, $IP, $enh_error_code );## Директория, в которую кладется база # $basedir = "/etc/mail";## Название кэш-базы# $validsbase = "validmails";## Имя скрипта для поиска коннект-информации в sendmail.cf# $scriptname = "mxcheck";## Местоположение конфигурационного файла Sendmail# $sendmail_cf = "$basedir/sendmail.cf";## Адрес Exchange-сервера, у которого мы будем спрашивать # существование адресов# $exchangeip = "10.1.0.10";## Адрес или подсеть, которая считается «своей», и почта # от которой не проверяется# $uncheck = "10.1";## Режим отладки. Если поставить 1 – будет выдавать# на STDOUT отладочные сообщения# $debug = 0;## Время жизни адреса в кэш-базе. Секунды# $TTL = 86400;

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

my %mx_callbacks = ( 'connect' => \&connect_callback, 'envrcpt' => \&callback_rcptto,

);

## Инициализируем Milter#

BEGIN: { @AnyDBM_File::ISA = qw(DB_File); my($conn) = Sendmail::Milter::auto_getconn ↵ ("mxcheck", "$sendmail_cf");

print "Found connection info for milter: $conn\n";

if ($conn =~ /^local:(.+)$/) { my $unix_socket = $1; if (-e $unix_socket) { print "Attempting to unlink UNIX socket '$conn'\n";

Page 51: 052 Системный Администратор 03 2007

49№3, март 2007

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

if (unlink($unix_socket) == 0) { print "failed\n"; exit(); } print "successful\n"; } }

if (not Sendmail::Milter::auto_setconn ↵ ("$scriptname", "$sendmail_cf")) { print "Failed to detect connection information\n"; } elsif (not Sendmail::Milter::register ↵ ("$scriptname", \%mx_callbacks, SMFI_CURR_ACTS)) { print "Failed to register callbacks for milter\n"; } else { print "Starting Sendmail::Milter ↵ $Sendmail::Milter::VERSION engine\n";

if (Sendmail::Milter::main()) { print "Successful exit from the Sendmail::Milter \n"; } else { print "Unsuccessful exit from the Sendmail::Milter \n"; } }

}

## Получение информации о подключении# sub connect_callback { my $ctx = shift; my $hostname = shift; my $sockaddr_in = shift; my ($port, $iaddr);

if ($debug == 1) { print "connect:\n"; print " + hostname: ‘$hostname’\n"; }## Если к нам подключился сервер из доверенной подсети –# никаких проверок# if (defined $sockaddr_in) { ($port, $iaddr) = sockaddr_in($sockaddr_in); $IP = inet_ntoa($iaddr); if ($IP =~ /^$uncheck/) { if ($debug == 1) { print "$IP in ALLOWED list.\n"; } return SMFIS_ACCEPT;

} if ($debug == 1) { print " port: '$port'\n"; print " iaddr: '" . inet_ntoa($iaddr) . "'\n"; } }

return SMFIS_CONTINUE; }

### Проверка адреса в Exchange#

sub callback_rcptto {

## Получаем информацию об адресате # my $time=time();

my $ctx = shift; my $rcpt_to = shift; $rcpt_to = lc($rcpt_to); $rcpt_to =~ s/\s*\<(.+?)\>\s*/$1/;

my($href) = $ctx->getpriv(); $ctx->setpriv($href);## Посмотрим, есть ли этот адрес в кэш-базе# unless (dbmopen(%validsbase,"$basedir/$validsbase",0600)) {

return SMFIS_CONTINUE; if ($debug == 1) { print "Cannot open base \n"; } }

if ($validsbase{$rcpt_to} ) { if ($debug == 1) { print "$rcpt_to FOUND in base \n"; }

## Похоже, что есть. Посмотрим TTL# $valid = ($time - $validsbase{$rcpt_to}); if ( $valid < $TTL) { if ($debug == 1) { print "$rcpt_to ALIVE TTL is ". ($valid - $TTL) ." time left - ". (($valid - $TTL) / 3600) ." hours \n"; }## Есть и TTL не истек. Пропускаем# return SMFIS_CONTINUE;

} else { delete $validsbase{$rcpt_to};## Есть, но TTL истек, удаляем из базы и продолжаем проверку# if ($debug == 1) { print "$rcpt_to DEAD. erasing \n"; }

}

} dbmclose(%validsbase);## Если адрес не найден в кэш-базе или TTL истек –# проверяем на Exchange# if ($debug == 1) { print "Go to exch \n"; }## Запускаем подпрограмму проверки на Exchange# &check_exch($rcpt_to);

$line =~ s/[\r\n]+$//;## Возвращен ответ, начинающийся на 550, это означает, # что нет такого адреса# if ($line =~ /^550/) { $error_code = '554'; $enh_error_code = '5.1.1'; $reply = 'Unroutable address'; $ctx->setreply($error_code, $enh_error_code, $reply);## Пишем сообщение и отказываем в приеме# return SMFIS_REJECT; }## Возвращен ответ, начинающийся на 250, это означает, # что такой адрес есть# elsif ($line =~ /^250/) { $reply = $rcpt_to; $ctx->setreply('250', '2.1.5', $reply);## Сохраняем его в кэш-базе на сутки# unless (dbmopen(%validsbase,"$basedir/$validsbase",0600)) { return SMFIS_CONTINUE; if ($debug == 1) { print "Cannot open basefile \n"; } } $validsbase{$rcpt_to} = $time; dbmclose(%validsbase);## Принимаем почту# return SMFIS_CONTINUE; }## Если ни то и ни другое – все равно принять, # на всякий случай# else { return SMFIS_CONTINUE; }

}

## Проверка на Exchange#

Page 52: 052 Системный Администратор 03 2007

50

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

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

С помощью Milter с почтой можно делать почти все, что угодно.

Листинг init-скрипта:

Пересобираем sendmail.cf:

Перезапускаем сервисы:

Если все настроено правильно и все запустилось – поз-дравляю, у вас правильная система, которая еще и тра-фик экономит.

БлагодарностиОгромное спасибо Виктору Устюгову aka Сorvax за советы и помощь в борьбе со спамом на relay-серверах.

Большое спасибо моим коллегам по работе Григорье-ву Игорю Григорьевичу и Королеву Игорю Александрови-чу за помощь в Perl и UNIX.

sub check_exch { my($rcpt_to) = @_; if ($debug == 1) { print "connecting to ↵ $exchangeip as $rcpt_to \n"; }

## Устанавливаем Telnet-соединение с Exchange-сервером# $smtp = new Net::Telnet (Telnetmode => 0); $smtp->open(Host => $exchangeip, ↵ Port => 25, Errmode => "return"); if ($debug == 1) { print "Processing ↵ Telnet... please wait - $smtp \n"; }## Обрабатываем возможные ошибки# $msg = $smtp->errmsg; if ($debug == 1) { print "Debug info - $msg \n"; }

## Если ошибка подключения – принимаем почту, # на всякий случай# if ($msg) { if ($msg =~ /^problem/) { $line = 250; if ($debug == 1) { print "connecting ↵ to $exchangeip falled \n"; } return $line; exit; } else { $line = 250; if ($debug == 1) { print "Unknown error ↵ with Telnet session \n"; } return $line; exit; } }## Получаем первое SMTP-сообщение от сервера# $line = $smtp->getline; if ($debug == 1) { print "$line \n"; }

## Отправляем HELO # $smtp->print("HELO mail.mydomain.ru"); $line = $smtp->getline; if ($debug == 1) { print "$line \n"; }## Отправляем MAIL FROM:<># $smtp->print("MAIL FROM:<>"); $line = $smtp->getline; if ($debug == 1) { print "$line \n"; }

## Отправляем RCPT TO с адресом получателя# $smtp->print("RCPT TO:<$rcpt_to>"); $line = $smtp->getline; if ($debug == 1) { print "$line \n"; }## Отправляем QUIT# $smtp->print("QUIT");## Возвращаем результат – ответ сервера# return $line;}

#!/bin/sh

# Source function library.

cd /etc/mailmake

/etc/init.d/sendmail restart/etc/init.d/mxcheck start

. /etc/rc.d/init.d/functions

RETVAL=0

milter_path="/usr/local/milters/mxcheck"milter_name="mxcheck.pl"

start() { # Start daemons. echo -n "Starting $milter_name: " $milter_path/$milter_name & sleep 2

RETVAL=$? echo return $RETVAL}

stop() { # Stop daemons. echo -n "Shutdowning $milter_name: " killproc $milter_name RETVAL=$? echo PID=`ps axwu | grep $milter_name | ↵ grep perl | gawk '{print $2}'` if [ ! -z "${PID}" ]; then kill ${PID} 2>/dev/null sleep 1 fi return $RETVAL}

# See how we were calledcase "$1" in start) start RETVAL=$? ;; stop) stop RETVAL=$? ;; restart) stop sleep 2 start RETVAL=$? ;; status) status $milter_name RETVAL=$? ;; *) echo "Usage: $0 { start | stop | restart | status }" exit 1esac

exit $RETVAL

Page 53: 052 Системный Администратор 03 2007
Page 54: 052 Системный Администратор 03 2007

52

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

Никогда не сдавайсяУ Джона Чемберса, ныне всесильно-го руководителя Cisco, немало наград. Их названия звучат довольно высоко-парно – человек, получивший «Дости-жение жизни» от Смитсоновского ин-ститута, «Достойный лидер промыш-ленности», или «Самый сильный че-ловек в Сети» от Network World, может собой гордиться. У Джона причин гор-диться больше, чем у кого-либо друго-го. В детстве ему поставили диагноз «дислексия» и готовы были признать необучаемым. Однако у парня оказал-ся сильный характер, да и с родителя-ми повезло. Не только потому, что Чем-берс-старший был высокооплачивае-мым акушером-гинекологом, которому сам губернатор штата Западная Вирд-жиния доверил принять всех своих де-тей. Не только потому, что мама была хорошим психологом. И даже не по-тому, что первые бизнес-уроки маль-чик получил в собственном рестора-не Чемберсов в Чарльстоне. Важнее всего, что в семье царили лад и со-гласие. Родители во всем поддержи-вали своего сына и активно помога-ли ему справиться с болезнью – наня-ли специалиста по обучению чтению Лорин Андерсен-Уолтерс. Джон не об-манул ожиданий папы и мамы, он при-лежно учился в школе. Лорен вспоми-нает: «У него был ко всему очень оп-тимистичный подход. Он просто не со-бирался проигрывать. Недавно я слы-шала его выступление по телевиде-нию и поняла, что он остался таким же оптимистом». Она права. Извест-но, что своих служащих мистер Чем-берс любит приветствовать забавной фразой: «Веселитесь?».

Однако вернемся к детству и юнос-ти. Закончив школу, Чемберс посту-пил в университет Западной Вирд-

жинии и с тем же упорством, с каким штудировал школьные предметы, про-шел вузовский курс, получил степень по юриспруденции. Но Джон не был книжным червем. Наоборот, любил компании и командные виды спор-та, например, баскетбол. Даже тен-нис предпочитал парный. Закончив вуз, Джон интуитивно почувствовал, что «доктор права» останется лишь красивыми буквами перед его фами-лией. Не по душе ему эта сфера… Рас-страиваться? Как бы не так! Чемберс отправился в Индиану, опять поступил в университет и стал магистром дело-вого администрирования.

Рабочий стаж Джона-младше-го (отец топ-менеджера, а также сын,

ну и он сам – тезки) отсчитывает-ся с 1976 года. В начале пути опять не обошлось без проблем, связан-ных с неприятием политики руководс-тва компании, как это было в IBM, где, вспоминает Чемберс, «я научил-ся, чего не надо делать. Было видно, что менеджмент все дальше и дальше отходит от покупателя, а менеджеры утверждают, что лучше знают, что по-купателю нужно». Были проблемы, свя-занные с появлением нового босса в компании Wang Laboratories, где Джон Чемберс дослужился до исполнитель-ного вице-президента, но был вынуж-ден уйти, так как уважаемый им на-чальник, основатель фирмы Ан Ванг, умер, а его сын Фрэд не смог, получив

Советы Джона ЧемберсаПрезидент и главный управляющий Cisco Systems учится на чужих и своих ошибках. А молодые топ‑менеджеры изучают его биографию.

Page 55: 052 Системный Администратор 03 2007

53№3, март 2007

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

бразды правления, удержать компа-нию в лидерах. Wang Laboratories упор-но производила дорогие офисные ком-пьютеры, в то время как все остальные двигались к персональным. Акции ком-пании резко подешевели. Уволив пять тысяч работников, Чемберс и сам по-дал в отставку…

Двигайся вперед и с прибыльюСудьба продолжала испытывать Джо-на Чемберса даже когда он, казалось бы, достиг своей «бухты», стал дело-вым лидером огромного интернет-ори-ентированного бизнеса и идейным лидером интернет-экономики. У него не просто покупали продукцию фирмы Cisco. Люди приняли его философию, взгляд на современный мир. Бизнес-мены, покупатели, целые правительс-тва поверили руководителю крупней-шей IT-компании, что новые техноло-гии помогут им работать быстрее, эф-фективнее и с удовольствием. В мар-те 2000 года активы Cisco достиг-ли 555 млрд. долларов, на короткий срок сделав ее самой ценной компа-нией в мире!

Но тот же 2000 год стал роковым для Cisco. Неожиданный экономичес-кий спад в сфере информационных технологий привел к тому, что леген-дарный рост продаж компании прак-тически остановился. 8 500 работни-ков, т.е. более 17% от общего числа персонала, были уволены. Огромные складские запасы добавили 3,4 млрд. долларов в непроизводительные рас-ходы, приводя к тяжелейшим, ранее неслыханным квартальным убыткам. Инвесторы отреагировали снижени-ем биржевой котировки Cisco более чем на 50% за первые три с половиной месяца 2001 года, выбив ее из десят-ки американских компаний с наивыс-шей рыночной стоимостью.

В этой ситуации Джон Чемберс не только не пал духом, но сумел из-влечь уроки, выработать своего рода «курс борьбы с неприятностями». В са-мый разгар бед, назначив себе само-му символическую зарплату в один доллар, он умудрился дать уверен-ное интервью Fast Company, в котором спокойно предсказал: «Вы будете пи-сать статью через 6 или 12 месяцев – когда произойдет очередной поворот экономики, – о том, как Cisco справи-

лась с кризисом в своем классичес-ком стиле и снова вырвалась вперед. Мы сделали это и в 1991-м, и в 1994-м, и в 1997-м, и мы надеемся сделать это в 2000-2001-м».

Вот небольшие фрагменты того па-мятного интервью в июне 2001 года.

Заголовки полны плохими новостя-ми. При таком состоянии экономи-ки что все же может вызвать энту-зиазм?Отличный вопрос. Я уже давно понял, что мир надо воспринимать таким, ка-ков он есть, а не таким, каким ты хо-чешь, чтобы он был. Так вырабаты-вается характер. Опыт поучительный и не слишком приятный. Но в высшей степени важный для построения вели-ких компаний.

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

Трудности в разгаре, но вы тем не ме-нее считаете, что даже в этих усло-виях можно развиваться, да еще

и привлекаете сотни, тысячи пар-тнеров к сотрудничеству с вами. Как это у вас получается?Нужно рисковать. Это необходимое ка-чество. Мы очень внимательно прислу-шиваемся к нашим клиентам, и, если видим, что они хотят нечто, еще отсутс-твующее на рынке, реагируем. В иде-але мы предпочитаем передвигаться к новым рынкам вместе с партнерами по «экологической нише». Но очень часто нам приходится сильно опере-жать рынок. А партнеры не всегда хо-тят рисковать. Поэтому мы часто само-стоятельно разрабатываем новый про-дукт для рынка в полной уверенности, что через какое-то время мы переда-дим его производство партнерам, кото-рые будут вести массовое производс-тво эффективнее, чем мы, и с меньши-ми издержками.

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

Можете ли вы, входя в новый мно-гообещающий рынок, нести убытки или иметь нулевую прибыль?Нет. Это одна из вещей, которую нуж-но знать: всегда фокусируйтесь на при-

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

Page 56: 052 Системный Администратор 03 2007

54

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

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

Помни о человеческом фактореДжон Чемберс всегда был «консерва-тором». Попав в Силиконовую Долину в 1990 году, он сразу выделился сво-им внешним видом – аккуратный кос-тюм, хорошие манеры, в то время как вокруг него были полусумасшедшие программисты в джинсах и футболках, которые готовы были ночевать на ра-бочем месте, лишь бы не расставать-ся с компьютером. А Чемберс думал не столько о продуктах, которые про-изводила Cisco, сколько о людях, на ко-торых работала компания. И о людях, которые работали в компании.

Именно при Чемберсе Cisco нача-ла поиск талантов для технологичес-кого бизнеса. Он воплотил в жизнь специальную программу рекрутиро-вания. Хотя к середине 90-х у Cisco была репутация фирмы, где работать престижно и интересно, в ней не жда-ли, когда кандидаты придут сами. Рек-рутеры выискивали способных моло-дых людей повсюду, даже на частных вечеринках. Была создана веб-стра-ница, которая подбирала каждому со-искателю своего собственного «дру-га» в Cisco – человека, который лич-

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

Руководящий стиль Джона Чембер-са весьма необычен: он разделяет обя-занности своих менеджеров методом, который условно называется «Разде-ляй и расти». Вот как сам руководитель Cisco описывает этот метод: «Чем ус-пешнее действует группа, тем больше оснований для ее разделения. Это поз-воляет сфокусироваться на покупате-ле. Группа фокусируется на достиже-нии цели. Если ваш стиль – отношения «верх-низ» и централизация, у вас бу-дет полная эффективность, но ограни-ченный рост. Если же вы хотите роста в столь же многих областях, как и мы, вам не обойтись без делегирования полномочий отдельным сотрудникам. У нас сеть и специализированная ба-за данных, которые позволяют это осу-ществить».

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

сторону – и спрашиваем себя: как же нам приспособиться? Мы учимся смот-реть на такие ситуации не как на про-блему, а как на возможности оторвать-ся от всех остальных. На самом деле вы получаете большую долю рынка в трудные времена.

Этому вы должны помочь научить-ся всей вашей команде, особенно но-вым менеджерам. Даже некоторые «старички» забывают, каково это. Нуж-но указывать направление вашей ко-манде, заставлять ее впрягаться и тя-нуть в этом направлении. Быть ли-дером – это внушать людям уверен-ность и в то же время заставлять их шевелиться, понимать, что скорость – единственный реальный шанс реаль-но получить свою долю рынка».

Когда читаешь эти строки, пони-маешь, что в Джоне Чемберсе «умер» преподаватель. Не зря Cisco в 1997 году учредила Сетевую академию для обучения молодых людей компью-терному конструированию. Не зря па-ру лет назад компания предоставила на 18 млн долларов услуг и оборудо-вания 57 образовательным учрежде-ниям США. Cisco поддерживает такие молодежные программы, как «Интер-нет-школы», «Киберярмарка», «Вирту-альная школа»…

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

1. http://www.thehinduimages.com/hindu/mySearch.do?command=hotlink&searchString=JOHN%20T%20CHAMBERS.

2. http://www.cisco.com.3. h t tp: / /scob le ize r.com /20 07/01/0 9 /

a-chat-with-john-chambers-ciscos-ceo.4. ht tp: //newsroom.c isco.com/dl ls / t ln /

exec_team/chambers/content.html.

Оксана Родионова

«Пусть изначально прибыль будет не очень высокой, упорно добивайтесь её роста»

Page 57: 052 Системный Администратор 03 2007
Page 58: 052 Системный Администратор 03 2007

56

web

Большие гонки веб-серверов

Современная жизнь немыслима без Интернета, а Интернету необходимы веб-серверы. Смутное подозрение, что Apache – далеко не единственный HTTP-сервер в мире, подтолкнуло меня на проведение небольшого исследования в этой области.

Сергей Супрунов

Page 59: 052 Системный Администратор 03 2007

57№3, март 2007

web

Как отбирались претендентыПодручной тестовой платформой была операционная сис-тема FreeBSD, поэтому в кандидаты на «обозрение» попа-ли только приложения, присутствующие в коллекции Пор-тов. По «make search» в различных комбинациях в катало-ге /usr/ports/www были выявлены 30 пакетов, претендую-щих на звание веб-сервера.

1-й этапПервым этапом был «конкурс документов» – просматри-вались заявленные сайты претендентов на предмет их су-ществования и хоть какого-то развития за последние не-сколько лет. Учитывалась также актуальность версии, пред-ставленной в Портах.

В результате отсеялись 7 серверов (AOLServer, caudium, dhttpd, fhttpd, lws, roxen и tclhttpd), как не подающие при-знаков жизни либо давно не обновлявшиеся в коллекции Портов.

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

Таким образом, до следующего этапа добралось 23 при-ложения.

Замечание: поскольку Apache 1.3 и Apache 2.2 значи-тельно отличаются друг от друга, то они в обзоре рассмат-ривались как разные веб-серверы; ветку 2.0, как промежу-точный продукт, было решено не рассматривать.

2-й этапПосле отсева «по документам» претендентов ждало следу-ющее испытание – установка в систему. Для удобства тес-тирования при инсталляции были нарушены традиции раз-мещения вновь устанавливаемого ПО в каталог /usr/local, и для всех пакетов в качестве префикса указывался /usr/local/<имя_веб-сервера>.

Все пакеты устанавливались из коллекции Портов с па-раметрами по умолчанию, то есть установка выполнялась таким образом:

Вторая строка (make depends без указания префикса) используется, чтобы пакеты зависимостей раскладывались по традиционным местам, где их будут потом искать дру-гие программы, а не устанавливались в каталог конкрет-ного сервера в соответствии с префиксом. Время сборки указывалось без учёта зависимостей. Этот этап успешно преодолели все претенденты.

Как проводилось тестированиеТестирование выполнялось на машине Celeron 433 МГц/192 Мб/40 Гб IDE под управлением FreeBSD 6.2 в среде jail. Поэтому результаты испытаний следует трактовать при-менительно к использованию на серверах класса SOHO – на высокопроизводительном многопроцессорном оборудо-вании они могут отличаться от полученных.

Учитывая большое число претендентов, при тестирова-нии учитывался заявленный функционал, обращалось вни-мание на такие субъективные моменты, как удобство на-стройки и качество документации, и «на сладкое» запус-кались четыре теста производительности.

Во-первых, проверялась работа с маленьким (3 Кб) и большим (1,1 Мб) статическими документами и с тесто-вым CGI-скриптом из поставки Boa (для серверов, подде-рживающих данную функциональность). Выполнялись эти тесты утилитой ab, устанавливаемой с сервером Apache 1.3, запускаемой на этой же машине (что ещё раз подчёркива-ет ориентированность обзора на класс SOHO, где веб-сер-вер редко является единственным приложением и зачас-тую вынужден делить ресурсы системы с другими служ-бами). Каждый из тестов запускался с уровнем конкурен-ции, т.е. числом параллельных запросов, равным 1 (1000/1), 10 (1000/10) и 100 (1000/100).

# cd /usr/ports/www/<имя_веб-сервера># make depends# make install PREFIX=/usr/local/<имя_веб-сервера>

Тест 1000/1 1000/10 1000/100

«Малый статик» 4.508 4.631 4.440

«Большой статик» 110.960 112.864 116.917

«Чистый CGI» 192.214 185.192 201.035

Таблица 1. Apache 1.3

Рисунок 1. Apache 1.3

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 5.853 5.099 5.938

«Большой статик» 70.111 61.319 63.730

«Чистый CGI» 191.266 190.438 216.518

Таблица 2. Apache 2.2

Рисунок 2. Apache 2.2

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Page 60: 052 Системный Администратор 03 2007

58

web

Для четвёртого теста использовалась утилита WART 4.0 (спасибо Сергею Яремчуку за прекрасный обзор в №12 за 2006 год), работающая на отдельном компьютере P4-2,4 ГГц/384 Mб/40 Гб IDE под управлением Windows XP, соединённая с сервером по локальной сети на скорости 10 Мбит/с («сторонняя» нагрузка на сеть во время выполне-ния тестов была пренебрежимо мала). Тест включал в себя запрос трёх статических документов (два по 3 Кб и один – 12 Кб) на протяжении 2 минут при 20 одновременно рабо-тающих «пользователях». Показанные графики получены именно ею.

Хотя некоторые серверы (например, Apache 1.3, Apache 2.2, nginx) допускают тонкую подстройку произ-водительности, способную повлиять на результаты тес-тирования, в обзоре использовались настройки по умол-чанию.

Для Apache 2.2 и nginx «вне конкурса» была проверена

работа с максимальным числом процессов выше устанав-ливаемого по умолчанию.

Переходим к обзоруИтак, настало время поближе познакомиться с претенден-тами на звание самого шустрого, умелого и весёлого!

Apache 1.3n Версия: 1.3.37.n Путь в дереве портов: www/apache13.n Размер архива: 2603 Кб (от 27.07.2006).n Сайт разработчика: http://httpd.apache.org.

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

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

В WART-тесте после небольшой «раскачки» была про-демонстрирована скорость обработки запросов на уровне 44 страницы в секунду при загрузке процессора примерно на 60% (см. рис. 1 и таблицу 1).

Вывод: тесты показали очень высокую устойчивость к нагрузкам – число одновременных запросов практичес-ки не влияло на общее время выполнения тестов. Оши-бок не наблюдалось. Производительность – одна из са-мых высоких.

Apache 2.2n Версия: 2.2.4.n Путь в дереве портов: www/apache22.

Тест 1000/1 1000/10 1000/100

«Малый статик» 3.477 3.659 4.810

«Большой статик» 118.954 150.626 171.727

«Чистый CGI» 200.179 181.118 189.799

Таблица 3. Boa

Рисунок 3. Boa

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 15.153 16.481 21.325

«Большой статик» 109.578 116.953 129.675

«Чистый CGI» 184.605 197.998 220.072

Таблица 4. bozohttpd

Рисунок 4. bozohttpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Рисунок 5. Cherokee

Тест 1000/1 1000/10 1000/100

«Малый статик» 4.152 3.867 5.337

«Большой статик» 79.329 79.768 89.333

«Чистый CGI» 188.196 205.812 211.706

Таблица 5. Cherokee

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Page 61: 052 Системный Администратор 03 2007

59№3, март 2007

web

n Размер архива: 4814 Кб (от 06.01.2007).n Сайт разработчика: http://httpd.apache.org.

Вторая версия Apache. Основное отличие от версии 1.3 – переход к «многопоточной» архитектуре, когда один процесс может одновременно обслуживать несколько за-просов.

На редкость долгая сборка – 34 минуты. Разбирать-ся не стал (собралось, и ладно), но неприятный осадок ос-тался. В конфигурации нужно не забыть открыть (в сек-ции <Directory />) доступ как минимум с хоста, откуда вы-полняется тестирование – по умолчанию там стоит «Deny from all».

Единственный веб-сервер, загнавший при выполнении тестов значение «Load average» аж до 110. Для FreeBSD это ощутимо. В WART-тесте, тоже после «раскачки», до-стиг 37 запросов в секунду, нагружая процессор на 40-45% (см. рис. 2 и таблицу 2).

Увеличив в конфигурации максимальное число процес-сов, можно поднять это значение до 42-43 запросов при за-грузке процессора порядка 60%. На ab-тестах, учитывая полную загрузку процессора, такая подстройка не оказы-вала заметного влияния.

Вывод: эта версия также продемонстрировала устой-чивость к нагрузкам (при 10 конкурирующих запросах да-же наблюдается рост производительности). По сравнению с Apache 1.3 заметно улучшилась работа с большими фай-лами, в остальном производительность несколько снизи-лась. Дополнительной подстройкой применительно к кон-кретной системе эти результаты могут быть ещё несколь-ко улучшены (равно как и ухудшены), однако это уже тема для отдельной статьи.

Boan Версия: 0.94.14.r20,1.n Путь в дереве портов: www/boa.n Размер архива: 163 Кб (от 10.06.2004).n Сайт разработчика: http://www.boa.org.

Основной конфигурационный файл boa.conf (пример можно найти в share/examples/boa/boa.conf) прокомменти-рован весьма щедро, многие директивы очень похожи на аналогичные в конфигурации Apache.

Для начала работы нужно, как обычно, проверить на-стройки директив DocumentRoot – остальное можно при-нять по умолчанию.

Две проблемы при первой попытке запуска заключа-лись в отсутствии файла mime.types в каталоге etc и от-сутствии же прописанного в конфигурации log-файла /var/log/boa/error_log. После создания пустых файлов с со-ответствующими именами boa успокоился и стал запускать-ся. Хотя для полноценного функционирования mime-типов нужный файл придётся где-то позаимствовать (например, в поставке того же Apache).

WART показал среднюю производительность 35 стра-ниц в секунду, с нагрузкой на процессор в районе 28-45% (см. рис. 3 и таблицу 3).

Вывод: на малых статических файлах обходит Apache 1.3 почти на 25%, ненамного отставая на других тестах. С ростом числа параллельных запросов производитель-ность падает.

bozohttpdn Версия: 20060517.n Путь в дереве портов: www/bozohttpd.n Размер архива: 32 Кб (от 18.05.2006).n Сайт разработчика: ht tp: //www.eterna.com.au/

bozohttpd.

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

Тест 1000/1 1000/10 1000/100

«Малый статик» 3.147 2.736 3.349

«Большой статик» 78.647 52.225 58.582

«Чистый CGI» – – –

Таблица 8. gatling

Рисунок 7. gatling

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 28.186 29.694 31.925

«Большой статик» 134.794 133.879 141.688

«Чистый CGI» – – –

Таблица 7. fnord

Тест 1000/1 1000/10 1000/100

«Малый статик» 3.865 4.317 4.925

«Большой статик» 114.217 132.927 146.794

«Чистый CGI» – – –

Таблица 6. DFileServer

Рисунок 6. DFileServer

Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Ошибки, %

Page 62: 052 Системный Администратор 03 2007

60

web

n Путь в дереве портов: www/cherokee.n Размер архива: 1359 Кб.n Сайт разработчика: http://cherokee-project.com.

Заявлен как быстрый, гибкий и простой в настройке веб-сервер с поддержкой FastCGI, PHP, CGI, TLS/SSL, виртуаль-ного хостинга, аутентификации.

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

Пожалуй, единственное, что может сбить с толку, – это что здесь вся работа строится на принципах вирту-ального хостинга, и даже для запуска одного-единствен-ного сайта вы должны настроить виртуальный хост default (etc/cherokee/sites-enabled/default). Именно здесь задаются такие параметры, как «DocumentRoot» и секция «Directory /cgi-bin».

Команда запуска: «sbin/cherokee -b». Дочерние процессы не создаются. Основной процесс, занимая в памяти около 4,5 Мб, на WART-тесте нагружал процессор всего на 25-30%, отдавая страницы примерно со скоростью 25 штук в секун-ду (см. рис. 5 и таблицу 5).

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

DFileServern Версия: 1.1.3.n Путь в дереве портов: www/dfileserver.n Размер архива: 22 Кб (от 30.10.2005).n Сайт разработчика: не обнаружен.

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

Тест 1000/1 1000/10 1000/100

«Малый статик» 6.365 5.744 8.514

«Большой статик» 113.61 118.895 174.232

«Чистый CGI» 183.590 192.081 209.090

Таблица 9. hiawatha

Рисунок 8. hiawatha

Производительность, страниц / сек

Время, мин

Производительность

Рисунок 9. Hydra

фигурационного файла – все опции задаются в команд-ной строке:

В эти 32 килобайта поместилась поддержка HTTP/1.1, CGI, userdir, автоиндекса, виртуального хостинга. Однако WART-тест показал не самые впечатляющие результаты (24-27 запросов в секунду), а вот процессор при этом на-гружался до 90-100% (см. рис. 4 и таблицу 4).

Вывод: что-то страшное на небольших файлах (видимо, высока стоимость создания нового процесса). Также замет-но «проседание» под нагрузкой. Для больших файлов и CGI не так плохо, но и до рекорда ещё ой как далеко.

Cherokeen Версия: 0.5.6 (от 14.12.2006).

Время, мин

Производительность

Ошибки

Ошибки, % Производительность, страниц / сек

Тест 1000/1 1000/10 1000/100

«Малый статик» 4.108 4.020 5.127

«Большой статик» 101.538 110.578 139.080

«Чистый CGI» 201.234 223.744 241.509

Таблица 10. Hydra

Тест 1000/1 1000/10 1000/100

«Малый статик» 3.679 3.504 4.350

«Большой статик» 73.566 81.525 85.519

«Чистый CGI» ? ? 218.448

Таблица 11. lighttpd

Рисунок 10. lighttpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

wwwtest# libexec/bozohttpd -b -c /var/cgi-bin ↵ -i 10.161.193.253 -I 80 -U www /var/www

Page 63: 052 Системный Администратор 03 2007

61№3, март 2007

web

Попытка запустить «в лоб» приводила лишь к стар-ту на 2000-м порту в текущем каталоге. Как выяснилось из скудной документации, которую можно найти в исход-никах, порт указывается в параметре -port, а рабочим ка-талогом станет текущий. Так что запуск выполнялся та-ким образом:

В среднем 27 страниц в секунду при загрузке про-цессора от 30 до 80%. Пару раз на WART-тесте отмеча-лось падение производительности до нуля (см. рис. 6 и таблицу 6).

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

fnordn Версия: 1.10.n Путь в дереве портов: www/fnord.n Размер архива: 32 Кб (от 28.09.2005).n Сайт разработчика: http://www.fefe.de/fnord.

Ещё один «малыш» с поддержкой CGI. Сервер предпо-лагает запуск либо с использованием tcpserver, либо с помо-щью inetd. Для тестирования я использовал второй способ запуска, так что в /etc/inetd.conf была добавлена строка:

Для проведения тестирования в переменной inetd_flags были увеличены значения максимального числа соеди-нений и скорости поступления запросов (по умолча-нию разрешено не более 60 запросов в минуту с одного IP-адреса).

Поддерживается виртуальный хостинг, реализован-ный с привязкой к имени запрошенного хоста. Т.е. при ука-зании рабочего каталога /var/www и поступлении запро-са http://localhost/test.html будет искаться файл /var/www/localhost:80/test.html.

WART-тест почему-то не пошёл. Загрузка процессора доходила до 100%, но WART сообщал о том, что обрабо-тано 0 запросов при 0% ошибок. В то же время с обычного браузера запросы выполнялись нормально. Видимо, какое-то несогласование формата заголовков (см. таблицу 7).

Вывод: что ещё можно было ожидать от запуска через inetd? Но зато в «демонах» постоянно не болтается...

gatlingn Версия: 0.8.n Путь в дереве портов: www/gatling.n Размер архива: 60 Кб (от 20.05.2005).n Сайт разработчика: http://www.fefe.de/gatling.

Ещё одно детище разработчиков fnord, на этот раз «де-монизированное». Заявлена поддержка автоиндекса, рабо-

ты в chroot-окружении, SSL, виртуального хостинга. Кроме того, gatling является также и FTP-сервером.

Рабочие опции задаются в командной строке (-n отменя-ет вывод на консоль информации о работе сервера):

Несмотря на упоминание на сайте поддержки CGI, за-ставить работать её не удалось. Кстати, на man-страни-це нет упоминания параметра -C (в котором указывается регулярное выражение, по которому будет определяться, является ли файл cgi-сценарием), так что будем считать, что на сайте просто пошутили... Хотя не исключаю, что и я что-то не так понял.

24-26 страниц в секунду при загрузке процессора на уров-не 20-25% делает gatling неплохим претендентом на часть ресурсов слабеньких машин (см. рис. 7 и таблицу 8).

http stream tcp nowait root ↵ /usr/local/fnord/bin/fnord fnord /var/www

wwwtest# sbin/gatling -n -u www -c /var/www &

wwwtest# cd /var/wwwwwwtest# /usr/local/dfileserver/bin/dfileserver -port 80 &

Тест 1000/1 1000/10 1000/100

«Малый статик» 3.101 2.944 3.201

«Большой статик» 64.388 73.955 60.612

«Чистый CGI» 209.350 224.391 232.714

Таблица 12. mathopd

Рисунок 11. mathopd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 30.898 31.951 33.459

«Большой статик» 180.177 189.469 215.069

«Чистый CGI» – – –

Таблица 13. micro_httpd

Рисунок 12. micro_httpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Page 64: 052 Системный Администратор 03 2007

62

web

Вывод: серьёзная заявка на рекорд, особенно при 10 од-новременных запросах, однако 5 ошибок в тестах 1000/100 несколько портят впечатление. Также осталась непонятной ситуация с CGI.

hiawathan Версия: 5.3.n Путь в дереве портов: www/hiawatha.n Размер архива: 180 Кб.n Сайт разработчика: http://hiawatha.leisink.org.

Основной особенностью этого сервера заявлена безо-пасность. Apache на официальном сайте назван «большой жирной коровой», хотя, забегая вперёд, скажу, что такая самонадеянность разработчиков выглядит несколько бес-почвенной. Конфигурация располагается в etc/hiawatha, ос-новной файл – httpd.conf.

Для работы с CGI-сценариями на Perl нужно раскоммен-тировать обработчик:

Причём cgi-скрипт не должен содержать строки «#!» – почему-то на ней возникала ошибка. Для каждого языка сценариев нужно прописывать свой обработчик.

Плавающая в пределах 30-50% загрузка процессора на WART-тесте при 30 страницах – не самый лучший ре-зультат. Даже в сравнении с «большой жирной коровой» (см. рис. 8 и таблицу 9).

Вывод: в общей сложности 40 ошибок (а это почти 0,5% от общего числа запросов) заставляет относиться к серверу с настороженностью. «Провал» в режиме 1000/100 на ста-тических запросах также опускает этот сервер в область слабонагруженных применений.

Hydran Версия: 0.1.8.n Путь в дереве портов: www/hydra.

n Размер архива: 275 Кб (от 21.06.2006).n Сайт разработчика: http://hydra.hellug.gr.

Высокопроизводительный (по определению разработ-чиков) многопоточный сервер.

Использует фиксированный пул заранее созданных потоков, каждый из которых за счёт мультиплексирова-ния способен обрабатывать несколько запросов одно-временно. Поддержка виртуального хостинга, HTTP/1.1, CGI, SSL.

В «прародителях» значится рассмотренный выше Boa.В конфигурационном файле (несколько громоздком,

но понятном) была раскомментирована поддержка CGI по типу:

Для работы с большими файлами нужно увеличить зна-чение параметра MaxFileSizeCache.

Один процесс размером 3,6 Мб загружал на WART-тесте процессор в пределах 30-43%, показав производительность до 39 страниц в секунду (см. рис. 9 и таблицу 10).

Вывод: ошибки при CGI-запросах и некоторый «про-вал» при большом числе конкурентных запросов немно-го портят впечатление, оставленное шикарным результа-том WART-теста.

lighttpdn Версия: 1.4.13.n Путь в дереве портов: www/lighttpd.n Размер архива: 779 Кб (от 29.01.2007).n Сайт разработчика: http://www.lighttpd.net.

Функционально очень развитый веб-сервер, сохранив-ший легковесность и простоту работы.

Первое, на что натыкаешься в конфигурационном фай-ле (etc/lighttpd.conf) – на список модулей, которые можно подгружать при старте сервера. Среди них – mod_rewrite,

AddType application/x-httpd-cgi cgi

Тест 1000/1 1000/10 1000/100

«Малый статик» 13.903 14.100 16.505

«Большой статик» 69.209 68.941 64.830

«Чистый CGI» 186.052 202.774 228.614

Таблица 14. mini_httpd

Рисунок 13. mini_httpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 5.618 5.577 9.351

«Большой статик» 129.180 134.481 241.984

«Чистый CGI» 191.860 190.631 207.245

Таблица 15. monkey

Рисунок 14. monkey

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

CGIhandler = /usr/bin/perl:cgi

Page 65: 052 Системный Администратор 03 2007

63№3, март 2007

web

mod_redirect, mod_auth, mod_userdir, mod_cgi, mod_fastcgi, mod_proxy, mod_compress... До Apache, пожалуй, не дотя-гивает, но данный набор с лихвой удовлетворит потребнос-ти подавляющего большинства пользователей.

Формат директив в etc/lighttpd.conf выглядит немного «нестандартно»:

Нужно также открыть mod_cgi. При такой схеме в скрип-тах не должно быть строки «#!». Можно указать «'.cgi' => ''» – тогда CGI будет работать традиционно, запуская интерпре-татор, указанный в строке «#!».

К сожалению, ни в том, ни в другом режиме, несмот-ря на «игры» с различными server.*-опциями, полноценно протестировать обработку CGI-страниц не удалось – спус-тя 200-300 запросов сервер без объявления ошибок пе-реставал отвечать на запросы ab, нагрузка на процессор полностью падала. Тест завершался с сообщением «Server timed out». (При ограничении числа запросов до 100 были получены результаты 17,2 сек., 18,4 сек. и 35,3 сек. соот-ветственно.)

В тесте WART достиг производительности 29 стр. в се-кунду, нагрузка на процессор при этом составляла 28-33% (см. рис. 10 и таблицу 11).

Вывод: cтатические тесты – выше всяких похвал. 1000 запросов на CGI-тестах почему-то оказались серверу не по силам (странно, что в одной из попыток удалось-та-ки получить значение в режиме 1000/100).

mathopdn Версия: 1.5p5.n Путь в дереве портов: www/mathopd.n Размер архива: 57 Кб (от 23.03.2005).n Сайт разработчика: http://www.mathopd.org.

Надеюсь, вам ещё не надоели «очень маленькие и про-изводительные» веб-серверы с поддержкой CGI? Вот вам очередной представитель плеяды.

В конфигурации сразу подстраиваем значения в сек-ции Tuning, влияющие на максимальную нагрузку. Попут-но можно подправить пути к pid- и log-файлам, поставить «User www» вместо daemon – здесь многое нестандартно, по крайней мере, для FreeBSD. Поддерживается cgi, php (в секциях Specials и Externals соответственно), виртуаль-ный хостинг, userdir, redirect.

На WART-тесте показал в среднем 32 страницы в се-кунду при 30%-ной загрузке процессора. Однако раз-мер процесса mathopd – 197 Мб! – заставил усомниться в своём зрении и пару раз перезапустить top (см. рис. 11 и таблицу 12)...

Вывод: низкая скорость обработки CGI-запросов с лих-вой компенсируется отличными показателями при работе со статической нагрузкой.

micro_httpdn Версия: 12dec2005.n Размер архива: 5 Кб (от 13.12.2005).n Сайт разработчика: http://www.acme.com/software/

micro_httpd.

Ну что тут можно сказать? Много в 200 строк кода не за-толкаешь. Тем не менее есть автоиндекс, поддержка MIME-типов (правда, в исходный код зашитая) и даже какие-то за-чатки редиректа.

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

WART-тест не порадовал – 20 страниц в секунду при 100%-ной загрузке процессора (см. рис. 12 и таблицу 13).

Вывод: хотел было написать, что «мал, да удал», но нет... С такими скоростными показателями он имеет смысл разве что для изучения – в двухстах строках трудно заблу-

server.document-root = "/var/www"cgi.assign = ( ".pl" => "/usr/bin/perl", ".cgi" => "/usr/bin/perl" )

Тест 1000/1 1000/10 1000/100

«Малый статик» 13.702 13.008 15.004

«Большой статик» 135.663 156.336 150.127

«Чистый CGI» 208.115 220.721 183.227

Таблица 17. pserv

Тест 1000/1 1000/10 1000/100

«Малый статик» 3.284 3.280 3.843

«Большой статик» 70.949 64.262 58.345

«Чистый CGI» – – –

Таблица 16. nginx

Рисунок 15. nginx

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Рисунок 16. ginx при 10 процессах

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Page 66: 052 Системный Администратор 03 2007

64

web

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

mini_httpdn Версия: 1.19.n Путь в дереве портов: www/mini_httpd.n Размер архива: 41 Кб (от 29.06.2005).n Сайт разработчика: http://www.acme.com/software/

mini_httpd.

Старший брат ранее рассмотренного micro_httpd, уже с поддержкой CGI, автоиндексом и некоторыми другими возможностями «больших мальчиков». Предварительно нужно подправить пути в конфигурационном файле sbin/mini_httpd_wrapper и добавить шаблон для CGI-сценариев:

Вместо указания ключей можно параметры внести в конфигурационный файл (см. man mini_httpd).

Запуск по умолчанию выполняется из каталога веб-сервера:

Интересная особенность – интерпретатор Perl для CGI-сценариев запускается со значением nice, равным 10, то есть все, кому не лень, будут его вытеснять. 37-38 стра-ниц в секунду на WART-тесте (с редкими провалами до 30) сопровождаются нагрузкой на уровне 72-100%. Поэто-му на локальных ab-тестах силёнок, видимо, и не хватило (см. рис. 13 и таблицу 14).

Вывод: очень хорошие показатели на больших файлах (с ростом числа одновременных запросов даже наблюда-ется рост производительности), но на небольших файлах и CGI-запросах не впечатляет. На CGI-тесте при 1000/100 соединений проскочило 8 ошибок.

monkeyn Версия: 0.9.1.n Путь в дереве портов: www/monkey.n Размер архива: 82 Кб (от 13.04.2005).n Сайт разработчика: http://monkeyd.sourceforge.net.

Написан на «чистом C», с поддержкой CGI и PHP, userdir, виртуального хостинга. Есть встроенная поддержка добав-ления к каждой веб-странице «шапки» и «подвала» (header и footer). В etc/monkey/ вы найдёте щедро прокомментиро-ванные конфигурационные файлы. Для тестирования бы-ли выставлены с запасом тайм-ауты и максимальное чис-ло клиентов. Параметр DocumentRoot здесь именуется Server_root.

Запуск/останов выполняются скриптом sbin/banana (а чем ещё можно заставить мартышку что-то делать?). При первой попытке запуска ругнулся на невозможность открыть файл monkey.mime (который вообще никуда не ус-тановился и о котором скудная документация упорно умал-чивает). Пришлось его вручную перекидывать из устано-вочного каталога conf/monkey.mime.

40-50% загрузки в WART-тесте позволяли первые 15-30 секунд работать с производительностью порядка 30 запро-сов в секунду, после чего сервер «падал». Хотя на локаль-ных тестах его устойчивость была чуть выше (см. рис. 14 и таблицу 15).

Вывод: резкий провал в режиме 1000/100 и огромное число ошибок (в среднем по 150 на 1000 запросов) плюс аварийные завершения работы в CGI-тестах смещают этот сервер на роль слабозагруженного «поставщика» чисто ста-тических файлов. Да и то не самого быстрого.

nginxn Версия: 0.5.10.n Путь в дереве портов: www/nginx.n Размер архива: 444 Кб (от 25.01.2007).n Сайт разработчика: http://sysoev.ru/nginx.

Результат работы нашего соотечественника Игоря Сы-

Тест 1000/1 1000/10 1000/100

«Малый статик» 5.743 5.271 7.046

«Большой статик» 144.175 226.484 219.082

«Чистый CGI» 183.127 189.647 185.757

Таблица 18. shttpd

Рисунок 17. shttpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 3.739 3.179 3.473

«Большой статик» 64.832 56.909 54.067

«Чистый CGI» 186.802 195.754 233.423

Таблица 19. thttpd

Рисунок 18. thttpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

/usr/local/mini_httpd/sbin/mini_httpd -D -c '**.cgi'

wwwtest# cd /var/wwwwwwtest# /usr/local/mini_httpd/sbin/mini_httpd_wrapper &

Page 67: 052 Системный Администратор 03 2007

65№3, март 2007

web

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

Поддержки «чистого CGI» в нём я не нашёл (есть встро-енный интерпретатор Perl, но его использование было бы несправедливым по отношению к другим рассматриваемым серверам), поэтому CGI-тест для него не выполнялся.

Непривычный, но удобный в работе «Си-подобный» формат конфигурационного файла. Например, так задаёт-ся корневой каталог:

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

При одном из самых низких показателей загрузки процессора – 20-25% – на WART-тесте продемонстриро-вал средний результат в районе 25 запросов в секунду (см. рис. 15 и таблицу 16).

Справедливости ради отмечу, что с выставлением в конфигурации параметра «worker_processes» на уровне 10 вместо используемого по умолчанию значения 1 дости-гается производительность 46 запросов в секунду при за-грузке процессора на уровне 50% (см. рис. 16). Однако мы договорились не углубляться в тонкую настройку.

Вывод: одни из лучших показателей производитель-ности на «статике». Вкупе со множеством других функ-ций – хороший претендент на замену Apache для решения типовых задач.

pservn Версия: 3.3.n Путь в дереве портов: www/pserv.

n Размер архива: 102 Кб (от 16.05.2005).n Сайт разработчика: http://sourceforge.net/projects/

pserv.

В основу этого сервера положена идея портируемос-ти (хотя на Windows она не распространилась). Конфигу-рация после громоздких «больших» серверов – как баль-зам на душу. Буквально 10 строк. Для выполнения нагру-зочных тестов нужно увеличить там значения тайм-аутов (однако чрезмерное увеличение uSecTimeout приводит к ошибкам «setsockopt: : Numerical argument out of domain», а недостаточное значение приводит к ошибкам тестов при большой параллельности). К сожалению, способа за-пустить pserv как демон я не нашёл, поэтому пришлось из-бавляться от отладочных сообщений путём перенаправле-ния их в /dev/null:

На WART-тесте нагрузка на процессор «плавала» в райо-не 70-100%, но при этом получить какой-нибудь результат, как и в случае с fnord, не удалось – отчёты упорно выдавали одни нули и на HTTP/1.1, и на HTTP/1.0 (см. таблицу 17).

Вывод: снижение времени теста в режиме 1000/100 «Большого статика» и CGI-теста обусловлено появлением 997 и 282 ошибок соответственно – такая нагрузка, похо-же, серверу не по силам.

shttpdn Версия: 1.35.n Путь в дереве портов: www/shttpd.n Размер архива: 47 Кб (от 07.04.2006).n Сайт разработчика: http://shttpd.sourceforge.net.

Поддерживает SSI, CGI, SSL, виртуальные домены, userdir, ограничения скорости. Позиционируется прежде всего как простой и не требующий установки веб-сер-вер для целей тестирования для систем Windows, однако

location / { root /var/www; index index.html index.htm;}

AddType application/x-httpd-cgi cgi

Тест 1000/1 1000/10 1000/100

«Малый статик» 4.558 4.793 6.329

«Большой статик» 120.369 124.180 168.180

«Чистый CGI» 329.094 fail fail

Таблица 20. wyvern

Рисунок 19. wyvern

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 7.603 7.413 11.648

«Большой статик» 242.929 236.415 243.825

«Чистый CGI» 238.035 207.032 188.908

Таблица 21. xitami

Рисунок 20. xitami

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Page 68: 052 Системный Администратор 03 2007

66

web

и в UNIX чувствует себя не хуже. Запускается из команд-ной строки:

Процессор на WART-тесте он нагрузил почти на две трети (55-70%), выдав близкое к рекорду значение про-изводительности – 44 страницы в секунду. Правда, на ло-кальных тестах «запаса прочности» не хватило (см. рис. 17 и таблицу 18).

Вывод: неплохая скорость обслуживания CGI-запросов при средних показателях на «статике». Но для веб-разра-ботчиков может оказаться весьма удобным.

thttpdn Версия: 2.25b.n Путь в дереве портов: www/thttpd.

n Размер архива: 129 Кб (от 29.06.2005).n Сайт разработчика: http://www.acme.com/software/

thttpd.

Простой шестистрочный конфигурационный файл, а также возможность задавать все опции в командной стро-ке... Поддержка CGI и HTTP/1.1. Как и его братья (mini_httpd и micro_httpd), делает что-то непотребное с русским текс-том в UTF-8.

Зато на WART – абсолютный рекорд в 49 страниц в секунду при загрузке процессора на уровне 39-51% (см. рис. 18 и таблицу 19).

Вывод: хорош на статике, но CGI обрабатывает не слиш-ком быстро. К тому же, было отмечено 11 ошибок в режи-ме 1000/100 CGI-теста. Тем не менее именно этот сервер предпочитают разработчики встроенных систем (например, многих ADSL-модемов).

wyvernn Версия: 2.1.2.n Путь в дереве портов: www/wyvern.n Размер архива: 415 Кб.n Сайт разработчика: http://www.MysticWALL.COM/

software/wyvern/index.html.

Очень порадовала документация на японском на стра-ничке, открывающейся по умолчанию, – несколько се-кунд провёл в созерцании иероглифов. Вся конфигура-ция – в /conf. Прокомментирован конфиг хорошо, похож на httpd.conf сервера Apache. Есть семь уровней безопас-ности с разными ограничениями, userdir, автоиндекс, под-держка символических ссылок, CGI, модули, виртуальный хостинг... Выглядит неплохо.

Чтобы работала поддержка CGI с переменными окруже-ния, нужно раскомментировать следующие модули:

В среднем 45 запросов в секунду в WART-тесте при за-грузке процессора до 59%. Но проскакивали ошибки. На CGI-тесте произошло что-то страшное (см. рис. 19 и таблицу 20)...

Вывод: 218 ошибок на «большом статике» в режиме 1000/100. Плюс к этому самая медленная обработка CGI «по одному» и паталогическая неспособность обслуживать CGI-запросы параллельно.

xitamin Версия: 2.5c2.n Путь в дереве портов: www/xitami.n Размер архива: 1815 Кб (от 22.07.2004).n Сайт разработчика: http://www.xitami.com.

Пожалуй, самый невзрачный веб-сервер: не малень-кий, не быстрый, не слишком функциональный, не особен-но документированный... Процессор загрузил не сильно, показав не ахти какую производительность на WART-тес-те (см. рис. 19 и таблицу 20)... Я затрудняюсь сказать, по-чему его следовало бы использовать.

Module modules/mod_env.soModule modules/mod_cgi.so

Тест 1000/1 1000/10 1000/100

«Малый статик» 9.474 8.967 9.096

«Большой статик» 126.493 127.753 141.032

«Чистый CGI» 265.402 194.916 176.747

Таблица 22. xshttpd

Рисунок 21. xshttpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

Тест 1000/1 1000/10 1000/100

«Малый статик» 2.983 3.868 3.713

«Большой статик» 66.278 56.912 50.554

«Чистый CGI» – – –

Таблица 23. zerowait_httpd

Рисунок 22. zerowait_httpd

Ошибки, % Производительность, страниц / сек

Время, мин

Производительность

Ошибки

wwwtest# bin/shttpd -d /var/www -c cgi -p 80 -u www &

Page 69: 052 Системный Администратор 03 2007

67№3, март 2007

web

Вывод: медленный, плюс ошибки во всех тестах в режи-ме 1000/100 (видимо, сервер борется с нагрузкой, отбрасы-вая «лишние» запросы).

xshttpdn Версия: 3.3.g01_1.n Путь в дереве портов: www/xshttpd.n Размер архива: 203 Кб (от 06.11.2005).n Сайт разработчика: http://www.stack.nl/xs-httpd.

Как заявлено на сайте, не просто маленький и быст-рый, а маленький и быстрый! Есть поддержка CGI, сжатия. При старте запускает указанное в конфигурации число процессов, которые в дальнейшем за всё и «отдуваются». При компиляции можно включить опцию «Persistent Perl», но я её не тестировал.

При загрузке процессора на 52-71% показал произ-водительность 30-35 страниц в секунду, хотя на «локаль-ных» тестах производительности был слаб (см. рис. 20 и таблицу 21).

Вывод: не обольщайтесь снижением времени выполне-ния CGI-тестов с ростом нагрузки – это результат 106 оши-бок. Также ошибки были и на «большом статике» в режи-ме 1000/100.

zerowait-httpdn Версия: 0.7p.n Путь в дереве портов: www/zerowait-httpd.n Размер архива: 97 Кб (от 18.11.2006).n Сайт разработчика: http://www.0w.ru/httpd.

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

На WART-тесте при загрузке 25-40% отдавал страницы со скоростью около 35 штук в секунду. На локальных тес-тах был просто блестящ (см. рис. 21 и таблицу 22).

Вывод: что ж, имя своё этот сервер получил не зря. Особенно впечатляет рост производительности с ростом нагрузки.

Подведение итоговЧто же, если говорить о работе со статическими файла-ми, то у Apache много конкурентов, делающих это быст-рее и экономнее по отношению к ресурсам. Это и Cherokee, и gatling, и hydra, и mathopd (несмотря на ужасающий раз-мер процесса), и nginx, и thttpd, и zerowait_httpd. Если тре-буется хотя бы базовая поддержка CGI, число конкурен-тов несколько снижается, но альтернативы по-прежне-му есть.

Понятно, что от веб-сервера требуется не только ско-рость. Функциональность и работа с динамическим кон-тентом в наши дни приобретают всё большее значение. Впрочем, работа с FastCGI, PHP и т. д. заслуживает отде-льного обзора.

А на сегодня нашу работу будем считать завершённой. Основные характеристики рассмотренных веб-серверов вынесены в сводную таблицу (cм. таблицу 24).

Удачных вам выборов!

Размер дистрибутива

Время сборки/установки

Т1* Т2* Т3* T4* %*Размер процесса в памяти

Поддержка FastCGI и/или PHP

Поддержка виртуального хостинга

Поддержка «автоиндексации» каталога

Apache 13 2,6 Мб 5 м 4,6 112,9 185,2 44 60 2,6 Мб + + +

Apache 22 4,8 Мб 34 м 5,1 61,3 190,4 37 45 6,4 Мб + + +

Boa 163 Кб 2 м 3,7 150,6 181,1 35 37 1,4 Мб – + +

bozohttpd 32 Кб 20 с 16,5 117,0 198,0 25 99 2,5 Мб – + +

Cherokee 1,3 Мб 3 м 3,9 79,8 205,8 25 30 4,5 Мб + + +

DFileServer 22 Кб 2 м 4,3 132,9 – 27 70 2,3 Мб – – +

fnord 32 Кб 30 с 29,7 133,9 – ? ? 1,3 Мб – + +

gatling 60 Кб 30 с 2,7 52,2 ? 25 23 1,5 Мб – + +

hiawatha 180 Кб 2 м 5,7 118,9 192,1 30 40 6,3 Мб + + –

Hydra 275 Кб 3 м 4,0 110,6 223,7 39 37 3,6 Мб – + +

lighttpd 779 Кб 10 м 3,5 81,5 ? 29 31 2,9 Мб + + +

mathopd 57 Кб 20 с 2,9 74,0 224,4 32 30 197 Мб + + –

micro_httpd 5 Кб 5 с 32,0 189,5 – 20 99 1,2 Мб – – +

mini_httpd 41 Кб 20 с 14,1 68,9 202,8 38 90 2,6 Мб – – +

monkey 82 Кб 25 с 5,6 134,5 190,6 ? ? 4,8 Мб + + +

nginx 444 Кб 3 м 3,3 64,3 – 25 23 2,2 Мб + + –

pserv 102 Кб 1 м 13,0 156,3 220,7 ? ? 1,3 Мб – – +

shttpd 47 Кб 20 с 5,3 226,5 189,6 44 65 1,6 Мб – – +

wyvern 415 Кб 3 м 4,8 124,2 fail 45 59 2,7 Мб – + +

xitami 1,8 Мб 5 м 7,4 236,4 207,0 24 36 5,2 Мб – + –

xshttpd 203 Кб 2 м 9,0 127,8 194,9 33 60 2,8 Мб – + –

zerowait_httpd 97 Кб 1 м 3,9 56,9 – 35 35 1,8 Мб – – –

Таблица 24. Сводная таблица

Page 70: 052 Системный Администратор 03 2007

68

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

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

кальных ресурсов большого количес-тва программного обеспечения, музы-ки и фильмов. Позже домашние сети «взрослели», появлялись медиапорта-лы с радио- и телевизионными переда-чами, игровыми серверами и другими развлекательными службами.

В настоящее время многие до-машние сети больше похожи на MAN (Metropolitan Area Network), так как, объединив десятки тысяч людей с раз-ных концов города, они вышли из ра-мок «любительских». На данный мо-мент подобных сетей только в Санкт-Петербурге и Москве официально со-тни [1, 2], неофициально их гораздо больше.

Предоставляя все больше и боль-

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

Проблемы безопасностиАдминистраторы домашних сетей отреагировали вполне адекватно на возникшие проблемы, открыва-лись зеркала Windows Update, рассы-лались предупреждения с просьбой установки антивирусов и firewall. Тра-фик с ресурсов SUS (Microsoft Software Update Services) и WUS (Microsoft Windows Update Services) не учиты-

Решаем типичные проблемы безопасности домашних сетей

Компьютеры уже давно прочно вошли в жизнь простых пользователей, как и доступ в Интернет. Домашние сети объединили вначале соседей, а позже – тысячи пользователей районов. Какие трудности возникают при работе в домашних сетях?

Иван Максимов

Page 71: 052 Системный Администратор 03 2007

69№3, март 2007

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

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

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

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

Итак, можно выделить две про-блемы, связанные с безопасностью домашних сетей: социальные и тех-нические.

СоциальныеВ корпоративных сетях существуют специальные отделы (зачастую со-стоящие из одного-единственного ад-министратора, но не это главное), ко-торые отвечают за безопасность сети, они имеют средства повлиять на поло-жение в сети: административные (пре-дупреждения, объяснительные работы, взыскания), технические (ужесточение

зователей, конечно, есть, но, скажем, заблокировав возможность соедине-ния клиентов по SMB-протоколу (не-которые не останавливаются на этом, блокируя и HTTP-, FTP-соединения, а позже «заодно» снижая скорость передачи данных внутри сети), теря-ют клиентов сети. Это не имеет значе-ния, если сеть выросла до масштабов небольшого провайдера и отсутствуют конкуренты, но чаще всего, «перегнув» с безопасностью, сеть умирает.

Итак, разобравшись, можно за-метить, что проблемы в основном со-циального характера, но попытаемся проанализировать и решить некото-рые из них технически.

Анализ сетиНа примере одной средней домашней сети (приблизительно из 200 пользова-телей) попробуем выявить ее наиболее слабые места. Для начала просмотрим ее SMB-ресурсы.

Набрав команду:

в любой Linux /BSD-системе рас-смотрим дерево SMB-ресурсов сети (см. рис. 1).

Как можно заметить, большинс-тво пользователей доверяют друг дру-гу и открывают доступ к своим маши-нам. Чем это грозит обычным пользо-вателям? Простое открытие SMB-ре-сурса только для чтения не столь опас-но, но если учесть количество найден-ных уязвимостей в сетевых службах ОС Windows, использующих порты 135, 139, 137, 445, становится понят-но, почему корпорация Microsoft в не-далеком прошлом очень активно на-

Сетевые порты, службы и некоторые уязвимости ОС Windowsn 135 порт TCP/UDP – Microsoft Remoute

Procedure Call (ошибки, связанные с переполнением буфера, например – ms03-043);

n 139 порт TCP – NetBios (ошибки на 139 порту связаны с доступом в систему через NULL сессию и доступом к сете-вым ресурсам, например – ms03-026, ms03-39);

n 445  порт  TCP – Microsoft-DS (мно-жественные уязвимости связанные

с переполнением буфера ms05-039, ms05-043, ms06-040).

По статистике, наиболее эксплуатиру-емым портом для получения несанкциони-рованного доступа к ОС семейства windows NT является TCP-порт 445.

Посмотреть статистику по используе-мым злоумышленниками и вредоносными программами к сетевым службам можно, например, на сайте www.viruslist.ru: «Ин-тернет-атаки 2005 года [3]», «Kaspersky Securi ty Bul let in 2006. Интернет-ата-ки» [4].

smbtree -N

Page 72: 052 Системный Администратор 03 2007

70

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

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

Проанализировав несколько пользовательских машин сканером nmap, не было обнаружено ничего удивительно-го, полный набор стандартных сетевых служб открыт, а уг-лубившись далее, было выяснено, что пользователи, ес-тественно, не обновляли свои ОС – многие классические уязвимости присутствовали. Можно, конечно, во многом обвинить администраторов данной сети, установка WUS или SUS могла бы решить частично проблему, но загрузка всех патчей и сервис паков от Windows 98 до Windows XP (объемом приблизительно с 10 Гб) все же затруднительна. Есть еще она проблема, как убедить пользователей в не-обходимости обновлять свои системы? Именно последним вопросом мы и займемся.

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

Для реализации данной задачи нам понадобится любая Linux/BSD-система, веб-сервер Apache, антивирус ClamAV, сканер безопасности nmap и интерпретатор языка Perl. Для начала создадим все необходимые скрипты, а позже, соб-рав всех их воедино, создадим макет будущего веб-сайта.

Первое, создадим скрипт, отображающий сетевое окру-жение по протоколу SMB (адреса машин и открытые на них ресурсы), воспользовавшись упомянутой выше утилитой smbtree из пакета Samba.

Рассмотрим скрипт подробнее. Выполняется команда smbtree, ключ -N означает, что программа будет работать, не запрашивая пароль у пользователя для доступа к сете-вым ресурсам (фактически доступ к удаленным машинам, используя гостевой вход). Командой grep отфильтруем вы-вод команды по маске двух символов «\\», далее поток пе-ренаправим не на экран, а в файл «139». Далее построчно читаем созданный файл и выводим строки на экран, после каждой напечатанной строки добавляем тэг «<p>» (для бо-лее удобного отображения). Возможно, кто-то спросит, поче-му бы нам вывод команды smbtree сразу не поместить в пе-ременную $smb и выводить ее на экран, используя подоб-ную конструкцию <pre>$smb</pre>? (тэг «pre» выведет со-держимое переменно SMB без форматирования). Выводя информацию подобным способом, мы не сможем контро-лировать выходную информацию, используя средства Perl, в будущем можно будет добавить необходимые средства форматирования текста (например, можно создать табли-цу или выделить из списка машину клиента).

HTML-код вызова данного скрипта будет выглядеть так:

Одной из популярных функций порталов, посвященных антивирусам, является on-line-проверка файлов на вредо-носные программы.

Создадим подобную функцию, используя свободный антивирус ClamAV.

#!/usr/bin/perl -w# Путь к интерпретатору языка Perlprint "Content-Type: text/html; charset=koi8-r\n\n";

#!/usr/bin/perl -wprint "Content-Type: text/html; charset=koi8-r\n\n";use CGI;# Используем cgi для получения данных с html-формы$f=new CGI;$tmp_f="/tmp/$$";$fn = $f->param('Fl');# Получаем путь к локальному файлу (указанный в форме)$fn=~ s/.*[\/\\](.*)/$1/;# Получаем имя файла, «отсекая» локальный путь (вида c:\xxx)$fl_h = $f->upload('Fl');# Используя метод upload, получаем указатель на временный# файл, созданного CGI.pmopen (FILE,">$tmp_f");# Создаем пустой файлwhile (<$fl_h>){print FILE;}close (FILE);$vir=`clamscan $tmp_f | grep $tmp_f`;# Проверка файла антивирусом Clam$vir=~s/^.*[\\\:]//;print "$fn $vir";# Вывод результатов

<a href="/cgi-bin/smbscan.cgi" target="main">SMB scan</a>

Рисунок 1. Сетевое окружение по протоколу SMB (некоторые уникальные имена машин убраны или переименованы)

# Сообщаем браузеру, что данный тип документа text/html# в кодировке koi8-r$tmp_f="/tmp/$$.txt";# Создаем временный файл$smb=`smbtree -N 2>/dev/null | grep "[\\]" > $tmp_f`;# Выполним команду smbtree для создания дерева SMB-ресурсов# и командой grep отфильтруем содержимое вывода,# результат запишем во временный файлopen (LIST,$tmp_f); while (<LIST>){print $_;# Вывод содержимого временного файла print "<p>";}close (LIST);

Page 73: 052 Системный Администратор 03 2007

71№3, март 2007

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

Рассмотрим работу скрипта. Из полученной формы со-храним файл в директорию tmp. Проверим его антивиру-сом ClamAV и, так же как и в предыдущем скрипте, выве-дем пользователю только необходимую информацию, филь-труя вывод утилитой grep (будет показано только имя файла и название вируса, если он заражен). Вся лишняя инфор-мация, такая как путь до локального файла и другие опи-сания, будет «отсечена».

HTML-код формы для загрузки и проверки файла на ви-рус будет выглядеть таким образом:

Другой популярной функцией на всевозможных веб-ресурсах разработчиков антивирусных программ (и пор-талах, посвященных безопасности сети) является статис-тика сетевой вирусной активности. Создадим подобную функцию и на нашем веб-портале. Статистику будут со-ставлять пришедшие по протоколу SMB на нашу машину вирусы. Для этого предварительно необходимо создать открытый на запись (для любых пользователей) SMB-ресурс с именем «С» и созданными папками «Windows» и «Program Files» внутри ресурса (для полноты иллюзии Windows-машины можно создать еще более точное дере-во каталогов).

Необходимо также будет создать связку Samba + ClamAV для фильтрации вирусов на лету. Прочитать, как это сделать, можно в статье «Все ли возможности ClamAV вы используете?» [5]. Таким образом, мы получим простей-шую ловушку для вирусов.

Для получения данных о вирусах и времени их появле-ния раскомментируем два параметра в файле конфигура-ции антивируса ClamAV (/etc/clamd.conf).

Первый, включающий журналирование событий clamd и указание директории журнала:

Второй, для ведения в журнале записей о времени про-исходящих событий clamd:

Сам скрипт вывода статистики выглядит так:

Скрипт читает из файла статистики антивируса ClamAV подготовленные данные и выводит на экран строки, содер-жащие в себе пометку found (файлы, в которых были най-дены вирусы). Фактически скрипт выполняет элементар-ную команду:

HTML-код вызова скрипта:

Еще одной полезной функций нашего «web security»-ре-сурса будет возможность сканировать клиента програм-мой nmap.

Скрипт, используя переменную среды окружения REMOTE_ADDR, передает ее в качестве параметра IP-ад-реса клиента сканеру nmap. Производится сканирование только TCP-портов, для полного сканирования програм-ме nmap необходимы права суперпользователя, если это нужно, воспользуйтесь пакетом sudo. Результат работы вы-водим на экран. Последняя функция, которая понадобит-ся на нашем портале, это установка поискового движка DataParkSearch, но так как мы уже рассматривали движок DataparkSearch в статьях [6, 7], не будем касаться вопросов его установки. Поисковая машина по локальным ресурсам домашней сети должна дополнительно привлечь пользова-телей к данному ресурсу и, конечно, выполнять свои глав-ные функции – помогать пользователям искать необходи-мую информацию в домашней сети.

Создав простой макет сайта и добавив соответствую-щие описание, «верстаем» страницу (см. рис. 2).

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

<form action="/cgi-bin/upload.cgi" target="main" ↵ ENCTYPE="multipart/form-data" method=post><p><input TYPE="file" NAME="Fl" size="5"><input TYPE="submit" VALUE="Upload!"> </p></form>

# Uncomment this option to enable logging.# LogFile must be writable for the user running daemon.# A full path is required.# Default: disabledLogFile /tmp/clamd.log

# Log time with each message.# Default: disabledLogTime

#!/usr/bin/perl -wprint "Content-Type: text/html; charset=koi8-r\n\n";$searchword="FOUND";# Переменная с ключевым словомopen (LIST,"/tmp/clamd.log");while (<LIST>){ if (/\Q$searchword/i)# Если в данной строке есть совпадения с ключевым словом,# то выводим эту строку на экран { print $_; }

cat /tmp/clamd.log | grep FOUND

<a href="/cgi-bin/ack_vir.cgi" ↵ target="main">Вирусная активность</a>

#!/usr/bin/perl –w print "Content-Type: text/html; charset=koi8-r\n\n";$str = $ENV{'REMOTE_ADDR'};# Записываем переменную среды окружения REMOTE_ADDR# в переменную $str $tmp_f="/tmp/$$";$scan=`nmap -sT $str > $tmp_f`;# Сканируем tcp порты удаленной машины, результат запишем# во временный файлopen (LIST,$tmp_f);while (<LIST>){print $_;print "<p>";}close (LIST);

print "<p>";}close (LIST);

Page 74: 052 Системный Администратор 03 2007

72

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

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

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

С другой стороны, любой энтузи-аст сможет создать подобный сайт, так как можно заметить, что состоит он из элементарных скриптов, кото-рые базируются на консольных коман-дах Linux/BSD и используют в качестве «клея» Perl, подчеркивая в очередной раз знаменитую пословицу: UNIX – это дружественная система (но вот друзей она тщательно выбирает).

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

торый при ближайшем рассмотрении также работает с сокетом).

ИтогиВозможно, в будущем, через полгода-год, вы вернетесь к порталу, когда бу-дут учтены пожелания пользователей домашней сети, создан хороший ди-зайн и произведен «тюнинг» веб-сай-та. Из полезных функций, которые мо-гут быть полезны в будущем, стоит со-здать: HTTP/FTP-сканер ресурсов сети, отображение любимой многими пере-менной среды окружения x-user-agent, сканер скрытно установленных прокси-серверов, счетчики. Но все это техни-ческие аспекты, главное, будут накоп-лены статистические данные поведе-ния пользователей, но, а пока на этом все. Удачной работы!

1. http://grinkod.spb.ru – домашние сети Санкт-Петербурга.

2. http://www.mosnet.ru – домашние сети Москвы.

3. h t t p : / / w w w . v i r u s l i s t . c o m / r u /analysis?pubid=179379988 – интернет-атаки 2005 года.

4. h t t p : / / w w w . v i r u s l i s t . c o m / r u /analysis?pubid=204007527 – Kaspersky Security Bulletin 2006. Интернет-атаки.

5. Авраменко А. Все ли возможности ClamAV вы используете? //Системный администратор, №9, 2005 г. – С. 52-55.

6. Максимов И. Возможности поисково-го движка DataparkSearch. //Системный администратор, №5, 2006 г. – С. 80-84.

7. Максимов И. Тестируем движки поис-ковых машин. //Системный админист-ратор, №8, 2006 г. – С. 80-85.

8. http://de.samba.org/samba/ftp/smb2www – сетевой ресурс программы smb2www.

9. http://www.fpsn.net/products&product=File::Scan::ClamAV – официальная страница модуля File::Scan::ClamAV.

са лучше отказываться от использова-ния консольных команд.

Просмотр SBM-ресурсов можно полностью реализовать на Perl мето-дом простого перебора IP-адресов пу-тем обращения к 139 порту (что, прав-да, займет значительное время, не-жели программа smbtree, работаю-щая 2-4 сек.).

Также можно воспользоваться ути-литой smb2www [8], которая входит в большинство систем портов/паке-тов и обладает богатым функциона-лом, хорошим графическим интер-фейсом, хотя в то же время достаточ-но громоздкая.

Проверку на вирусы с помощью антивируса ClamAV также можно ре-ализовать по-иному, либо через сокет (см. параметр LocalSocket в clamd.conf), либо используя модуль с сайта [9] (ко-

Рисунок 2. Портал безопасности локальной сети

Ловушки для вирусовСоздание ловушек для вирусов на основе ложного ресурса, открытого по протоколу SMB, получило широкое распространение во времена Windows 9X. Ловушки созда-вались путем создания сетевого ресурса «C» на FDD-дискете с созданными на ней директориями «Windows» и «Program Files». Дополнительно для любителей бесплатного dial-up-доступа в Интернет в папке Windows создавался файл <Имя_пользователя>.pwd (именно в подобных pwd-файлах содержат-

ся плохо зашифрованные пароли dial-up-сессий). Обращение к данному файлу либо журналировалось, либо (ради шутки) в не-го записывали множество нецензурных вы-сказываний в адрес хакера. Данный вид ло-вушек получил название «рыбалка». Поче-му для данных целей использовался FDD-привод, а не другой логический диск? Опять же ради шутки, так как при обращении по сети к подобному ресурсу флоппи-диско-вод «издает» характерные звуки, которые получили название «поклевка».

Page 75: 052 Системный Администратор 03 2007
Page 76: 052 Системный Администратор 03 2007

74

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

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

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

Теперь несколько слов об инстру-менте, который мы будем использо-вать для решения поставленных задач. Для поиска уязвимостей в сети можно воспользоваться специально собран-ным для этих целей дистрибутивом Linux с нехитрым названием Auditor Collection. Я полагаю, этот дистрибу-тив будет полезен как специалистам по сетевой безопасности, так и сис-темным администраторам, решившим произвести аудит своей сети. В статье я расскажу об этом бесплатном про-дукте, опишу инструменты для ана-лиза безопасности, которые, как в хо-рошем швейцарском ноже, собраны в Linux Auditor [6]. А также рассмотрим,

как лучше закрыть обнаруженные уяз-вимости в системе безопасности.

Запуск и начало работыAuditor Collection собран на основе Knoppix и, следовательно, позволя-ет осуществлять загрузку образа опе-рационной системы с компакт-диска, не требуя установки на жесткий диск. Хотя при желании Auditor можно раз-вернуть в качестве постоянной опе-рационной системы на жестком диске. Для проведения полноценного аудита я бы рекомендовал по возможности ис-пользовать ноутбук. Это позволит до-стичь мобильности при проверки фи-зически разделенных сегментов сети, а также позволит протестировать бес-проводные точки доступа как на ох-раняемой территории вашего офиса, так и, что важно, за ее пределами.

В состав дистрибутива входит на-бор драйверов, так что проблем с оп-ределением оборудования, в частнос-

Auditor Collection: проверяем безопасность вашей сети

Каждый системный администратор – хозяин сети компании, но иногда сеть может захватить кто-то другой. Для того чтобы этого не произошло, необходимо заботиться о безопасности корпоративных ресурсов.

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

Page 77: 052 Системный Администратор 03 2007

75№3, март 2007

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

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

После загрузки к вашим услугам оконный ин-терфейс KDE. Выбрав значок с буквой «К» в ле-вом нижнем углу, и затем, обратившись к разде-лу Auditor, вы получите список средств, которые можно использовать для проверки.

Узнаем больше о системеНачнем с первого пункта «Footprinting» – это про-цесс сбора информации об интересующей се-ти. Утилиты, собранные в данном разделе, в той или иной степени преследуют цель получения различными способами информации об удален-ном узле или сети (см. рис. 1).

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

Теперь я расскажу про утилиты, входящие в группу Footprinting. Утилиты подгруппы WhoIs помимо стандарт-ных функций по сбору информации о том или ином хос-те позволяют использовать для сбора информации нуж-ный WhoIs-сервер. Также есть возможность работать че-рез GUI-интерфейс. Подробнее о работе протокола WhoIs можно узнать из документа RFC 3912 (WHOIS Protocol Specification) [1]. Следующий инструмент сбора информа-ции о сети – Traceroute. Здесь также подобраны утилиты, обладающие расширенным функционалом по сравнению с обычной командой traceroute. Например, в программе есть возможность применять для сбора информации о маршруте не только протокол ICMP, но и протокол TCP, использующий для соединения различные порты. Это может быть полез-но, когда необходимо узнать маршрут до узла, если ICMP-трафик закрыт. Вот небольшой пример использования дан-ной утилиты: на рис. 2 получаем маршрут из нашей сети до yandex.ru при закрытом протоколе ICMP. А для любите-лей работать с оконным интерфейсом также есть GUI.

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

домена. Если вам удалось получить копию зоны с того IP, которому это не разрешено (а разрешено пересылать зо-ны только secondary DNS-серверам), то значит, ваш DNS-сервер настроен некорректно с точки зрения безопаснос-ти. Также с помощью dnswalk можно находить ошибки в на-стройках DNS. В следующем примере в зоне делегируется поддомен zone.webserver.ru, для которого не удается най-ти авторитативных серверов. Подробнее о DNS можно про-честь в статье [2].

Среди других утилит этой подгруппы хотелось обра-тить внимание на NSTX. Это уже не совсем инструмент для Footprinting, а скорее средство вторжения, но авто-ры Linux Auditor почему-то поместили NSTX именно в эту группу. Утилита позволяет организовать туннелирование IP-трафика поверх DNS. Этот способ проникновения бы-вает эффективен, когда в вашей сети закрыт доступ в Ин-тернет по всем портам, кроме 53 (DNS). Так что, если в ва-шей сети имеются сегменты с такими ограничениями (на-пример, гостевой доступ у провайдера доступа в Интернет), то рекомендую провести проверку с помощью NSTX. Вот что для этого нужно. Возьмем машину, находящуюся в ог-раниченном сегменте, загрузимся с диска Auditor. Это бу-дет наш клиент. Для начала запускаем псевдоинтерфейс с нужным IP-адресом:

Рисунок 1. Список утилит

auditor# dnswalk -r webserver.ru.

Checking webserver.ru.Getting zone transfer of webserver.ru. from ns.webserver.ru...done.SOA=ns.webserver.ru contact=paul.webserver.ruBAD: webserver.ru NS ns. webserver.ru: CNAME (to webserver.ru)BAD: webserver.ru NS ns4.nic.ru: unknown hostWARN: user1. webserver.ru CNAME user. webserver.ru: CNAME (to host. webserver.ru)BAD: zone. webserver.ru NS ns. webserver.ru: CNAME (to webserver.ru)Checking zone. webserver.ruBAD: SOA record not found for zone. webserver.ruBAD: zone. webserver.ru has NO authoritative nameservers!BAD: All zone transfer attempts of zone. webserver.ru failed!0 failures, 6 warnings, 6 errors.

ifconfig tun0 10.0.0.1 up

Page 78: 052 Системный Администратор 03 2007

76

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

в DNS-запрос, и наши данные переда-ются серверу DNS, к которому мы име-ем доступ. DNS провайдера обраща-ется к нашему серверу, отвечающему за зону zone.server.com, а тот передаёт всю информацию на фальшивый сер-вер имён, который и возвращает нуж-ный ответ по тому же маршруту назад. Несмотря на кажущуюся сложность в реализации DNS, туннелинг является эффективным методом обхода защи-ты сети. Наиболее эффективным сред-ством для борьбы с этим видом взло-ма, на мой взгляд, является внедрение системы обнаружения вторжения (IDS), например SNORT (www.snort.org).

Следующим подразделом явля-ется HTTP/HTTPS. Здесь можно най-ти несколько браузеров, большинство должны быть знакомы опытным ад-министраторам UNIX-систем, поэто-му подробно останавливаться на этом не буду.

Все об оборудованииЕсли в вашей сети используется актив-ное сетевое оборудование (маршрути-заторы, коммутаторы, принт-серверы и т. д.), то утилиты для работы с SNMP вам могут пригодиться. Прежде всего это MIB-браузер, с помощью которого можно подключиться к оборудованию (см. рис. 3).

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

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

Затем создаем файл устройства:

Теперь берем еще одну машину, на-ходящуюся за пределами ограничен-ного сегмента, также грузимся с диска Auditor. На ней также запускам псевдо-интерфейс, по аналогии с описанным выше. Осталось запустить наш nstxd на обоих сторонах. Сначала на сер-верной запускаем фальшивый сер-вер имён:

Потом на клиентской:

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

чения community – public. Вполне ве-роятно, что вам удастся получить дан-ные в режиме Read Only. Но если ка-кие-либо значения доступны для за-писи, тогда примите меры по защите устройства. Как правило, наилучшим решением является запрет на запись по SNMP и закрытие доступа по 161 порту для всех сетей, которым дан-ный протокол не требуется. Подробнее об SNMP и его использовании можно прочитать в источнике [3].

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

Далее идут утилиты для работы с SMB. С их помощью можно проскани-ровать сеть на предмет наличия обще-доступных ресурсов. Имеются как кон-сольные, так и графические утилиты.

И завершают группу Footprinting средства определения операцион-ной системы OS Detection. Например, на рис. 4 изображен отчет, сделанный утилитой Nmap Front End.

Средством борьбы с OS Detection является закрытие доступа к уз-лу по протоколу ICMP из всех подсе-тей, кроме административной под-сети (Management VLAN). Более под-робно о способах определения опе-рационной системы, а также о борь-бе с footprinting можно прочесть в ис-точнике [7].

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

insmod netlink_devinsmod ethertap

mknod /dev/tun0 c 36 16

nstxcd zone.server.com

nstxd zone.server.com 123.45.67.89

Рисунок 2. Traceroute через TCP

Page 79: 052 Системный Администратор 03 2007

77№3, март 2007

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

взломщикам проникновение к ресур-сам вашей сети.

Сканеры: ищем уязвимостиСледующим, не менее важным инс-трументом при проведении наше-го аудита являются сканеры, объеди-ненные в группу Scanners. Эта груп-па в свою очередь разделена на под-группы: сканеры безопасности, уязви-мости для приложений и оборудова-ния, сетевые сканеры и другие. Опи-сывать по отдельности каждую из ути-лит нет смысла. На основании тех све-дений, которые были получены в ре-зультате Footprinting, просканируйте свои ресурсы на предмет уязвимостей. Например, если у вас есть веб-сервер, то можно воспользоваться утилитами из подгруппы Web Server Scanner, луч-шим из которых, на мой взгляд, явля-ется сканер Nikto. Аналогично можно проверить активное сетевое оборудо-вание и другие ресурсы.

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

затором, обсудим то, где лучше раз-местить машину с запущенным сниф-фером. Для того чтобы аудит был на-иболее эффективен, необходимо, что-бы через данную машину проходил весь трафик сети. В простейшем слу-чае можно воспользоваться концен-тратором (хабом) или включить дан-ную машину «в разрыв», но для круп-ных сетей это не самые лучшие реше-ния. Гораздо более эффективно это можно сделать, если активное сете-вое оборудование, используемое в се-ти, поддерживает технологию SPAN (Switched Port Analyzer). Она позволя-ет осуществлять мониторинг трафика, проходящего через коммутатор. Более подробно про технологию SPAN мож-но прочесть в [4].

Подмена как инструмент взломаСледующая группа утилит, которую авторы Auditor Linux включили в свой дистрибутив, – это Spoofing. Спуфин-гом именуется вид удаленных атак, связанных с подменой адреса источ-ника. Например, IP Spoofing – подме-на IP-адреса определенной машины. Это позволяет злоумышленнику либо скрыть источник атаки (использует-ся в атаках типа «отказ в обслужива-нии»), либо извлечь какую-либо пользу из доверительных связей двух машин. Для злоумышленника базовый прин-цип атаки заключается в фальсифика-Рисунок 4. Утилита Nmap Front End

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

Определившись с сетевым анали-

Рисунок 3. MIB-браузер

Page 80: 052 Системный Администратор 03 2007

78

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

ции собственных IP-пакетов (например, с помощью таких программ, как hping2 или nemesis из группы Spoofing), в ко-торых изменяется среди прочего IP-адрес источника. Ата-ка IP Spoofing часто называется «слепой подменой» (Blind Spoofing). Это связано с тем, что ответы на фальсифициро-ванные пакеты не могут прийти машине атакующего, ведь был изменен исходящий адрес. Но порой это и не нужно, на-пример, для протоколов, не требующих подтверждения.

Рассмотрим то, как можно воспользоваться утилита-ми для спуфинга. Вот пример утилиты для осуществления ARP-spoofing (ARP-redirect), то есть перенаправления се-тевого трафика с одного или нескольких узлов на машину злоумышленника. Атака ARP Spoofing используется в ло-кальной сети, построенной на коммутаторах. С ее помо-щью можно перенаправить поток Ethernet-фреймов на дру-гие порты в соответствии с MAC-адресом. После чего зло-умышленник может перехватывать все пакеты на своем порту. Таким образом, атака ARP Spoofing позволяет пере-хватывать трафик машин, расположенных на разных пор-тах коммутатора. Поясним на практике.

Пусть у нас есть машина-жертва с адресом 10.0.0.171, ее шлюз – 10.0.0.1, машина злоумышленника имеет ад-рес 10.0.0.227. Результат выполнения команды traceroute перед атакой:

ARP-кэш машины:

Злоумышленник запускает программу ARPSpoof (Audit → Spoofing → Address Resolution Protocol):

Посылаемые пакеты – это ARP-ответы, изменяющие кэш машины 10.0.0.171. Они несут информацию, что с адресом 10.0.0.1 теперь ассоциирован MAC-адрес 00:00:86:35:c9:3f.

Теперь ARP-кэш машины 10.0.0.171 выглядит так:

Чтобы убедиться, что весь трафик теперь проходит че-рез машину 10.0.0.227, еще раз запустите traceroute к шлю-зу 10.0.0.1:

Теперь злоумышленник может прослушивать трафик между машинами 10.0.0.171 и 10.0.0.1. Для того чтобы при-веденный пример заработал, не забудьте на машине пред-полагаемого злоумышленника активировать маршрутиза-цию через 10.0.0.227.

На резонный вопрос, как от подобных атак защитить-ся, могу предложить реализовать безопасность на втором уровне – протокол 802.1х.

Аудит беспроводного доступаДалее идут две группы утилит, посвященных беспровод-ному доступу. Первая из них – это набор утилит для рабо-ты с Bluetooth. В связи с развитием мобильных технологий данный адаптер устанавливается на многие модели мо-бильных телефонов и карманных компьютеров. И очень часто владелец не предпринимает никаких мер по защи-те своего мобильного устройства от проникновений через Bluetooth-адаптер. Так что если у вас на машине имеется Bluetooth, то рекомендую вам проверить вашу сеть с помо-щью сканера и в случае обнаружения устройств произвес-ти проверку на наличие уязвимостей.

Вторая группа утилит – это набор утилит для работы с Wireless – беспроводными точками доступа. Эта техно-логия используется повсеместно, поэтому на вопросах бе-зопасности остановимся подробнее. Еще до запуска каких-либо утилит аудита произведите следующие действия.

Отключите отправку SSID (если вы не являетесь провай-дером беспроводного доступа к Интернету, то незачем всем сообщать о существовании своей беспроводной сети).

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

Если у вас небольшое число клиентских устройств, то лучше всего составить список MAC-адресов устройств, которым разрешен доступ.

На клиентских устройствах отключите использование соединений компьютер-компьютер (ad-hoc).

И наконец, самое главное, это шифрование трафи-ка. Прежде всего ни в коем случае не используйте WEP. При современных вычислительных мощностях для того чтобы обеспечить конфиденциальность данных, зашиф-рованных WEP, вам потребуется менять ключ шифрова-ния каждые 10 минут. Как вы понимаете, это практически невозможно. Наилучшим решением является использова-ние WPA. Если у вас большая сеть, то лучше всего развер-нуть WPA-EAP, использующий уже упоминавшийся ранее протокол аутентификации 802.1x. Вообще о безопасности беспроводных сетей лучше всего прочитать труды «клас-сика» – [5].

Из утилит, входящих в состав Linux Auditor, предназна-ченных для проверки безопасности беспроводных соеди-нений, хотелось бы отметить Kismet. Это набор утилит, поз-воляющих осуществлять сканирование и анализ беспро-водной сети.

[root@user~]$ arp

Address HWtype HWAddress Flags Mask Iface10.0.0.1 ether 00:00:86:35:c9:3f C eth010.0.0.227 ether 00:00:86:35:c9:3f C eth0

[root@user]$ traceroute 10.0.0.1

traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets1 10.0.0.227 (10.0.0.227) 1.712 ms 1.465 ms 1.501 ms2 10.0.0.1 (10.0.0.1) 2.238 ms 2.121 ms 2.169 ms

[root@user -> ~]$ traceroute 10.0.0.1

traceroute to 10.0.0.1 (10.0.0.1), 30 hops max, 40 byte packets1 10.0.0.1 (10.0.0.1) 1.218 ms 1.061 ms 0.849 ms

[root@user -> ~]$ arp

Address HWtype HWAddress Flags Mask Iface10.0.0.1 ether 00:b0:c2:88:de:65 C eth010.0.0.227 ether 00:00:86:35:c9:3f C eth0

[root@hacker -> ~]$ arpspoof -t 10.0.0.171 10.0.0.1

0:0:86:35:c9:3f 0:60:8:de:64:f0 0806 42: arp reply 10.0.0.1 is-at 0:0:86:35:c9:3f…

Page 81: 052 Системный Администратор 03 2007

79№3, март 2007

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

Стойкость паролейВот мы медленно, но верно подходим к концу нашего аудита сети. Подведем промежуточный итог. Была собрана ин-формация о существующих устройс-твах и приложениях, проверены воз-можности несанкционированного вы-хода в Интернет, в обход межсетевых экранов, и устойчивость сети к атакам типа spoofing. Проверили также бес-проводной доступ в сеть. Но один очень важный фактор безопасности сети ос-тался не освещенным – это человечес-кий фактор. Я не собираюсь пускать-ся в пространные размышления на те-му социальной инженерии, но упомя-ну о том, что большинство утечек ин-формации происходит по неосторож-ности или злому умыслу со стороны са-мих сотрудников компании. Здесь не-маловажным фактором является то, как сам сотрудник хранит корпоратив-ные секреты. Про бумажки с пароля-ми, которые приклеивают к мониторам, уже упоминалось неоднократно, но да-же тщательно скрываемый пароль мо-жет оказаться не таким уж большим секретом, если он, например, является каким-то осмысленным набором сим-волов (слово или фраза, дата рожде-ния и т. д.). Вот тут нам и пригодятся утилиты из следующих двух разделов Bruteforce и Password Cracker.

В разделе Bruteforce собраны ути-литы, которые позволяют осущест-влять подбор паролей. «Слепой» пе-ребор всех возможных вариантов мо-жет занять долгое время, но нам это и не нужно. Определитесь со сложнос-тью пароля и проверьте только те вари-анты, которые не удовлетворяют это-му уровню сложности. Можно прове-рять на предмет соответствия спис-ку известных паролей, которые также имеются в этом разделе. Кстати, там есть словари для разных языков, в том числе и для русского. Так что любите-лям использовать в качестве паролей русские слова в английской раскладке стоит призадуматься. Например, с по-мощью утилиты HydraGTK можно про-извести проверку паролей ко многим распространенным службам: серверу POP3, ICQ, HTTP Proxy и других. Ути-лита имеет как оконный интерфейс, так и консольный вариант.

Также в этой группе имеется доку-мент, содержащий заводские настрой-ки по умолчанию для оборудования

нуть еще о некоторых полезных функ-циях.

Если вы хотите установить дис-трибутив на жесткий диск, зайдите в раздел «System» и далее «Auditor HD installer». Также в разделе Applications можно найти утилиту для получения Screenshots (снимков экрана), иногда бывает полезно.

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

Удачи.

1. Описание протокола WhoIs – http://tools.ietf.org/html/rfc3912.

2. Система доменных имен – ht tp: //zeus.sai .msu.ru:7000/ internet /dns/khramtsov/25.shtml.

3. Бирюков А. Управляем сетевым обо-рудованием с помощью протокола SNMP. //Системный администратор, №3, 2006 г. – C. 64-69.

4. Описание и конфигурирование SPAN – http://cisco.com/en/US/products/hw/switches/ps708/products_configuration_guide_chapter09186a008007f323.html# wp1019961.

5. Крис Касперски. Насколько неуяз-вима ваша беспроводная сеть? – http://www.samag.ru/cgi-bin/go.pl?q= articles;n=06.2005;a=12.

6. Сайт проекта Linux Auditor Collection – http://www.remote-exploit.org.

7. Методика определения ОС – http://insecure.org/nmap/osdetect.

и программного обеспе-чения.

Ут и л и т ы р а з д е л а Password Cracker име-ют схожий функционал, только предназначены для аудита файлов с па-ролями. Для проверки на-дежности паролей вашей сети, вам прежде всего пригодится утилита John The Ripper, хорошо из-весный взломщик паро-лей. Применив утилиту для расшифровки sam-файлов (в которых хра-нятся пароли Windows), можно легко узнать у ко-го из пользователей простые пароли, легко подвергаемые взлому.

Собираем уликиСледующий раздел – это Forensics (можно перевести как «следственные средства»). Утилиты из этого раздела пригодятся вам в случае, если есть по-дозрение, что в вашу сеть кто-то про-ник, либо действует шпион. С помо-щью утилиты Autospy можно отслежи-вать все обращения к ресурсам серве-ра, выясняя таким образом, кто и за-чем пытается получить доступ. Также в данной группе имеется несколько утилит для восстановления удаленных файлов. Эти утилиты могут оказаться полезными не только при расследова-нии инцидентов, связанных с безопас-ностью, но и при банальном восстанов-лении случайно удаленных данных.

Горшочки с медомИ наконец, последняя группа утилит – Honeypot (буквальный перевод – при-манка). Технология Honeypot – ресурс безопасности, назначение которого состоит в том, чтобы стать приманкой. Это означает, что независимо от то-го, какую структуру имеет средство Honeypot, цель состоит в том, чтобы данный ресурс был исследован, атако-ван и использован злоумышленником. Так что, если вас интересуют, к приме-ру, методы взлома сервера Microsoft IIS, то можете воспользоваться соот-ветствующей утилитой IISimulator.

Подводим итогиЗавершая повествование о Linux Auditor Collection, хотелось бы упомя-

Рисунок 5. Утилита Hydra

Page 82: 052 Системный Администратор 03 2007

80

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

Ruby (в переводе с англ. – ру-бин) был задуман в 1993 году японцем Йукихиро Мацумото

(Yukihiro Matsumoto), известным как Matz. Фанатик объектно-ориентиро-ванного программирования, он решил создать более объектный язык, нежели Python и более мощный, чем Perl.

Первая публичная версия Ruby вы-шла в 1995 году. Постоянно нараста-ла его популярность – ведь раз напи-сав хотя бы одну программу на Ruby, писать на другом языке уже невоз-можно.

Но действительный прорыв в его распространении произошёл совсем

недавно – в 2004 году, с появлением Ruby on Rails.

Что же такое Ruby?Ruby – интерпретируемый язык про-граммирования, поддерживающий много разных парадигм, в первую оче-редь объектную. Обладает автомати-ческим «сборщиком мусора» и строгой динамической типизацией, поддержи-вает многопоточность (*nix и независи-мая от ОС).

Достоинства Rubyn Объектом является абсолютно

всё (имя класса – тоже объект).

Как и в языке SmallTalk, понятие «примитивный тип» отсутствует (5 – объект класса Fixnum, 'ruby' – объект класса String, ... ). Даже части кода представлены тоже в виде объекта.

n Простой и последовательный синтаксис. Если вы хорошо гово-рите, читаете, пишете на английс-ком, то для вас программа на Ruby – великолепная проза. Об этом хо-рошо изложено в книге «Why's (Poignant) Guide to Ruby» (http://poignantguide.net/ruby).

n Переменные не нужно объявлять, они не типизированы. Это касает-ся и атрибутов класса.

Ruby – язык завтрашнего дня

Владимир Овсянников

Сегодня очень трудно не заметить ажиотаж вокруг языка программирования Ruby и фреймворка Ruby on Rails.

Page 83: 052 Системный Администратор 03 2007

81№3, март 2007

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

n Задание низкоуровневых струк-тур данных не представляется возможным.

Установкаn Linux – большинство дистрибути-

вов уже распространяется с Ruby. Но если вы не являетесь обла-дателем оного либо хотите пос-тавить более свежую версию, то взять исходные коды всегда мож-но с сайта http://www.ruby-lang.org/en/downloads.

n Windows – на сайте http://www.ruby-lang.org/en/downloads можно взять Ruby One-Click Installer – самый простой способ поставить Ruby на Windows.

n MacOS – установить Ruby, используя MacPorts (http://www.macports.org), можно командой:

При установке Ruby ставится irb (Interactive Ruby), именно им и бу-дем пользоваться, запускается в кон-соли командой irb. (При установке на Windows, используя Ruby One-Click Installer, автоматически в перемен-ную PATH добавляется директорий с бинарными кодами ruby.) Irb – ин-терактивный интерпретатор выраже-ний Ruby, считываемых со стандарт-ного ввода.

Для удобного и системонезависи-мого управления модулями/плагинами используется свой собственный фор-мат пакетов (аналог rpm, deb, tgz, tbz, msi, ...) – rubygems. При использова-нии Ruby One-Click Installer rubygems можно установить сразу (предлагает-

n Поддержка основных принци-пов ООП (классы, методы, поли-морфизм, инкапсуляция, примеси, методы-одиночки и т. д.).

n Блоки/Итераторы. Обычно эти понятия ассоциируются с языком программирования Python, однако Ruby ничем не уступает ему, а бла-годаря удивительной гибкости язы-ка использование блоков стало бо-лее удобным.

n Неограниченный диапазон зна-чений целых чисел. К сожалению, только целых.

n Обработка и перехват исключе-ний. В этом плане язык схож с Java.

n Абсолютно всё возвращает зна-чения. Методы, циклы, блоки и ус-ловные операторы if, unless, ?: воз-вращают последнее высчитанное значение, а условия and и or воз-вращают элемент, эквивалентный true, или первый элемент. Благода-ря этому можно переменную при-равнять, допустим, к циклу или конструкции case! Это удобно.

n Мощная поддержка правил (ре-гулярных выражений). Заимство-вана у Perl с адаптацией под объек-тную парадигму.

Ruby – скриптовый язык, хотя име-ется средство упаковки в .exe-файл для Win32 (http://exerb.sourceforge.jp), но при упаковке теряются некоторые преимущества программ, написанных на Ruby, такие как неограниченный диапазон целых чисел, кросплатфор-менность и некоторые другие.

Недостатки Rubyn Скорость. Ruby действительно

медленный, на что сам автор язы-ка ответил следующим вопросом: «Вам платят за результат, который достигнут в срок или за качество, которое достигнуто с опозданием?» Также хочется отметить, что Java также очень медленный, но тем не менее им пользуются.

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

n Невозможность управлять неко-торыми процессами, например выделением памяти.

ся на втором этапе установки выбрать необходимые компоненты, в том чис-ле и rubygems), а вот для обладате-лей не Windows придется скачивать rubygems из Интернета и устанавли-вать отдельно. Установить модуль, на-пример vcard (для работы с форматами vCard и iCalendar), можно командой:

При этом модуль будет скачан из Интернета c соблюдением всех за-висимостей (вам не стоит тратить вре-мя на поиски недостающих пакетов) и установлен на вашей машине. Под-робнее о gem вы можете узнать, вы-полнив команду:

Типы данныхКак вы уже знаете, в Ruby всё – объ-екты тех или иных классов. Базовые классы:n Fixnum (целые числа, меньше 231);n Bignum (целые числа, больше 231);n Float (дроби);n String (строки);n Array (индексные массивы);n Hash (ассоциативные массивы);n NilClass (nil/null);n TrueClass (истина);n FalseClass (ложь).

Ruby автоматически приводит к классу Numeric (в зависимости от значения – Float, Fixnum или Bignum) все объекты следующего вида:n 2 – целое число;n -3 – отрицательное целое число;

%port install ruby

# gem install vcard -y --remote

# gem --help

Иерархия базовых классов Ruby

Page 84: 052 Системный Администратор 03 2007

82

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

n 4.5 – число с плавающей точкой;n 067 – восьмеричное число;n 0b11 – двоичное число;n 0xF0F0 – шестнадцатеричное число.

К классу String приводятся все объекты, записанные в апострофах или кавычках. Разница между этими двумя типами записи такая же, как в PHP, – в строках в кавыч-ках происходит автозамена эскейп-последовательностей на соответствующие коды и записи вида #{объект} на зна-чение объекта.

В Ruby есть два предопределённых объекта для обоз-начения логических значений («да»/«нет») – true (класс TrueClass) и false (класс FalseCalss).

Внимание: пустая строка, ноль, пустой массив… в логи-ческих операторах не являются аналогом false, его анало-гом является только nil (класс NilClass), остальное – true.

Запись вида [el1, el2, el3] воспринимается как массив (индексный),а {'A'=>1, 'B'=>2, 'C'=>3} – как ассоциативный массив.

Так что следующие строки кода взаимозаменяемы:

Не hello word!Начнём сразу с более интересных вещей, нежели вывод на экран тривиальной фразы. Метод class есть у всех объ-ектов, и возвращает он класс объекта.

Введите «1.class» и нажмите <Enter>. Irb выведет:

значит, 1 – объект класса Fixnum, а вот, написав «(2**99).class», результат будет другой, т.к. целые числа более 231 являются объектами другого класса (** – возведение в степень).

Теперь напишем ещё более интересный пример:

Это значит, что класс Fixnum является объектом класса Class, который в свою очередь тоже объект класса Class.

Методы и атрибутыКогда я программировал на C/C++, порой часто перепи-сывал часть кода, которая обычно была связана с непри-язнью использования глобальных переменных. Я в кон-це концов запутывался, какие переменные у меня локаль-ные, какие глобальные, а какие – атрибуты класса. В Ruby это не проблема:n Все имена классов и модулей должны начинаться с боль-

шой латинской буквы.n Локальная переменная называется просто с маленькой

буквы или знака подчёркивания.n Все переменные объекта (они же атрибуты) со знака @,

за которым следует строчная буква или знак подчёрки-вания.

n Переменные класса с @@, за которыми следует строч-ная буква или знак подчёркивания.

n Глобальные переменные со знаком «доллар» ($), за кото-рым следует строчная буква или знак подчёркивания.

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

В Ruby можно создать методы с именами, например attr= и attr, которые будут вызываться:

А благодаря акцессорам (attr_accessor, attr_reader и attr_writer) отпадает необходимость написания большинс-тва методов для доступа к атрибутам объектов.

БлокиБлок – одна из главных особенностей Ruby, умение ими пользоваться – ключ к очень коротким, понятным и много делающим программам.

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

Теперь это не проблема:

Блок – анонимный метод. Он захватывает перемен-ные окружающей среды. В примере тело блока ограни-чено do end, которые, кстати, могут быть заменены на { }. В качестве аргумента блоку передаётся объект класса File. После выхода из блока этой переменной не будет – она ло-кальная для блока.

Блок сам откроет, а главное, закроет файл при необ-ходимости.

arr1 = Array.newarr2 = []hash1 = Hash.newhash2 = {}

=> Fixnum

1.class.class

=> Class

obj.attr = 5var = obj.attr

class MyFirstClass # создаём класс с именем MyFirstClass attr_reader :first # заменится на def first; @first; end attr_writer :second # заменится на def first=(v); # @first = v; end attr_accessor :tre # attr_reader + attr_writer def initialize(attrs) # конструктор @first = attrs[:first] @second = attrs[:second] @tre = attrs[:tre] @end_attr = attrs[:end] end def end=(oth) # метод end = будет приравнивать # @end_attr половине аргумента @end_attr = oth/2.to_f # .to_f – принудительное # приведение к Float end def end # метод end будет возвращать квадрат @end_attr @end_attr**2 # методы возвращают последнее вычисленное # значение или аргумент return endend

obj = MyFirstClass.new(:first=>'FIRST', :second=>2, ↵ :tre=>'ТРИ', :end=>5)obj.first # => FIRSTobj.first = 'ПЕРВЫЙ' # => ОШИБКА: метод first=() не определёнobj.second = 'ДВА' # => ДВАobj.second # => ОШИБКА: метод second() не определёнobj.tre = obj.tre*3 # => ТРИТРИТРИobj.end # => 25obj.end = 11 # => 11obj.end # => 30.25

File.open('/tmp/tempfile', 'w') do |tmp| tmp.write 'Bla-bla-bla'end

Page 85: 052 Системный Администратор 03 2007

83№3, март 2007

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

ИтераторыЭто те же блоки, но заточенные на работу с перечисляемы-ми объектами (объект является перечисляемым, если у не-го есть метод succ, возвращающий следующий элемент). То, что в древности люди делали циклами, теперь делают итераторы. Самое главное – что их много и каждый дела-ет своё дело.

Для того чтобы вывести на экран все элементы масси-ва, например, на C, нужно написать:

На Ruby это выглядит приятнее:

А вот как найти все числа массива, которые делятся на 3 без остатка:

На экране появятся числа 3, 6, 9, 12, 15, 21, 30 – всё верно.

Увеличить все элементы в два раза:

Разделить массив на две части: в одном собрать все элементы больше 12, а в другом – остальные:

В rez[0] – 15, 17, 21, 22, 25, 30; а в rez[1] – 3, 4, 5, 6, 7, 8, 9, 11, 12

Преимущества итераторов перед циклами очевид-ны: они проходят по каждому элементу единожды. В от-личие от циклов у них нет счётчика, который можно под-кручивать.

Их много, и каждый делает своё дело.

ИндексыНу что за программа без массивов? Думаю, таких нет. Так вот, как, например, выбрать из массива три послед-них элемента?

Не знаю, как это делаете вы, а я – так:

Да, отрицательные индексы! Очень удобно.

Квадратные скобки у строк возвращают коды символов, а не сами символы. Для преобразования кодов в символы используется метод chr. А квадратные скобки у чисел воз-вращают значения соответствующих битов.

Вывод на экранДля вывода на экран есть три метода: puts, print и p. У каж-дого класса имеются методы to_s и inspect (они наследуют-ся от класса Object). Методы puts и print выводят возвраща-емое методом to_s значение, разница лишь в том, что puts после вывода очередного аргумента ставит перевод стро-ки, а print нет. Метод p выводит значение метода inspect и используется для отладки. Методы to_s и inspect должны возвращать именно строку.

Метод to_s класса Integer (целые числа) может прини-мать в качестве аргумента целое число – основание сис-темы счисления.

Следует не забывать, что to_s возвращает строку, т.е. 5.to_s(2)*2 вернёт не 10, и даже не 1010, а '101101'.

Хотелось бы отметить, что Ruby уже во многих школах преподают вместо Basic. Также его преподают и в универ-ситетах в целях изучения ООП (даже на специальностях, не связанных с информационными технологиями). Всё это потому, что Ruby – самый лёгкий язык программирования.

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

Несмотря на сравнительно недавний бум Ruby, для не-го уже написано огромное количество модулей на все слу-чаи жизни. А благодаря автоматическому сборщику мусора и удобному API крайне легко использовать для нужд Ruby библиотеки, написанные на C.

И напоследок:n Существует и развивается интерпретатор Ruby

для Symbian (http://developer.symbian.com/main/tools/opensrc/ruby/index.jsp).

n Разработчики JRuby уже работают на компанию SUN Microsystems.

n По данным http://www.tiobe.com за март 2007 г., Ruby – на 10-м месте по распространённости среди языков про-граммирования.

Ruby – язык завтрашнего для. Учите, дерзайте и раз-вивайте!

1. Скачать Ruby и множество библиотек к нему можно с сайтов – http://www.ruby-lang.org и http://www.rubyforge.com.

2. Больше о Ruby можно узнать на http://ru.wikibooks.org/wiki/Ruby и http://ruby-doc.org.

3. Programming Ruby. The Pragmatic Programmer's Guide – http://pragmaticprogrammer.com. Русскоязычной литературы пока нет, но издательство «Питер» планирует переводить эту книгу.

4. Интересные скринкасты – http://showmedo.com/videos/series? name=rubyRailsOriginalCastsSeries и http://showmedo.com/videos/video?name=rubyGrosenbachDeprec&fromSeriesID=48.

for(i=0; arr[i]; i++){ printf("%d\n", arr[i])}

arr.each{|el| puts el}

rez = [3,4,5,6,7,8,9,11,12,15,17,21,22,25,30].find_all ↵ {|el| (el%3).zero?}puts rez

rez = [3,4,5,6,7,8,9,11,12,15,17,21,22,25,30].map{|el| el*2}

rez = [3,4,5,6,7,8,9,11,12,15,17,21,22,25,30].partition ↵ {|el| el>12}

a = [1,2,3,4,5,6,7,8,9,0]a[-3..-1] # => [8, 9, 0]

str = 'String'str[1] # => 116str[1].chr # => 't'

print 5[0], 5[1], 5[2] # => 101

5.to_s(2) # => '101'8.to_s(7) # => '11'59.to_s(27) # => '25'100.to_s(36) # => '2s'

Page 86: 052 Системный Администратор 03 2007

84

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

Ruby on Rails – фреймворк для со-здания «изящных» веб-прило-жений, использующих СУБД,

написанный на Ruby. Реализует при-нципы MVC (модель – представление – контроллер). Ruby on Rails не писался специально в качестве фреймворка. Он был «выделен» из удачно работа-ющего приложения Basecamp.

Для установки Ruby on Rails необхо-димо в командной строке набрать:

Ruby on Rails – это набор интегри-рованных друг в друга модулей Ruby:n actionmailer;

n actionwebservice;n activesupport;n actionpack;n activerecord;n rails.

ActionmailerПомогает значительно упростить ра-боту с почтой. Используя этот модуль можно с лёгкостью отправлять и чи-тать электронные письма. Для отправ-ки можно использовать Sendmail или удалённый SMTP-сервер. Есть воз-можность работать как с простыми письмами, так и с письмами в форма-те HTML, составными (maltipart) и пись-мами с вложениями.

ActiverecordАссоциирует объекты с базой данных. Позволяет работать с таблицами СУБД не как с набором строк, а как с конк-ретными объектами.

Увольнение сотрудника сводится не к удалению определённого корте-жа из одной таблицы и добавлению кортежа в другую, а к вызову метода «dismiss!» (уволить) объекта, соответс-твующего определённому сотруднику.

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

Обзор Ruby on Rails

Благодаря удивительной гибкости языка программирования Ruby при создании приложения на «Рельсах» трудно заметить, где заканчивается Ruby и начинается Rails.

Владимир Овсянников

# gem install rails -y

Page 87: 052 Системный Администратор 03 2007

85№3, март 2007

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

В Ruby on Rails практически ничего не надо настраивать. Единственное, что нужно указать, – параметры доступа к данным (СУБД, хост, имя пользователя/пароль... ).

Благодаря гибкости Ruby Activerecord позволяет рабо-тать с таблицами без какой-либо предварительной обра-ботки. Даже не нужно указывать имена таблиц! Если имя модели User, значит, она организовывает работу с табли-цей users, Person – peoples. Вместо настроек – договорён-ность – модель – единственное число от имени таблицы (подразумевается, что таблицы всегда во множественном, но если это не так, то это не проблема – в определении мо-дели можно указать имя таблицы).

The EndК Rails очень многие относятся неравнодушно. Например, на официальном сайте IBM выложено множество статей и документации по этому фреймворку, и причины, по кото-рым вместо Java лучше использовать RoR или использо-вать их вместе. А Sun Microsystems усиленно принялась за разработку JRuby, и в первую очередь именно из-за Rails. Также имеется несколько реализаций компиляторов Ruby-программ в объектный код .net, и многие видят в этом по-пытки запуска Rails в .NET-среде.

Сейчас модно ассоциировать интерес к Ruby и Ruby on Rails с признанием поражения Java на рынке языков про-граммирования для Web. Но так это или не так (я склонен считать, что именно так), Ruby on Rails достоин изучения.

Приверженцы Javа утверждают, что аппаратура дешев-ле, нежели программисты или ПО, чем оправдывают мед-лительность и требовательность к ресурсам этого язы-ка программирования. В таком случае не стоит обращать внимание на медленность Ruby, которая, безусловно, ска-зывается на Ruby on Rails, а при использовании Mongrel (mongrel.rubyforge.org) их медлительность практически не ощущается. И ещё:n Ruby on Rails-приложения можно запустить на Sun Java

System Web Server 7.0.n Ruby on Rails – на первом месте в «The Top Five

Technologies You Need to Know About in '07» (http://computerworld.com/action/article.do?command=viewArticle Basic&articleId=9011969&intsrc=hm_ts_head).

Ruby on Rails достоин того, чтобы его изучали и исполь-зовали.

1. Подробно о схеме-паттерне MVC – http://heim.ifi.uio.no/~trygver/themes/mvc/mvc-index.html и http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html.

2. Официальный сайт Rails – www.rubyonrails.com3. Документация – www.api.rubyonrails.com.4. Больше о Ruby on Rails можно узнать, посетив группу на http://

groups.google.com/group/ror2ru.5. Agile Web Development with Rails – http://books.pragprog.com/

titles/rails2.

условий выдавать пояснения, нужно написать следую-щее:

ActionpackВключает в себя реализацию контроллера MVC (средства для обработки запроса, инициализации модели и переда-чи данных в шаблоны) и реализацию представления MVC (средства предоставления информации пользователю). Ре-ализована поддержка генерации (x)HTML, XML, JavaScript, шаблонов, разбиения разметки на составляющие.

Поставляется с JavaScript-библиотеками Prototype.js и script.aculo.us, а также неплохим набором помощников для удобной работы с ними. Это позволяет писать мощные AJAX-приложения легко и просто.

ActionwebserviceНеобходим для создания приложений, использующих веб-сервисы. Позволяет писать как клиентские, так и сервер-ные части приложений. С помощью этого модуля можно ре-ализовать сервер WS лишь SOAP/XMLrpc-ориентирован-ный, однако, в RoR 1.2 уже поддерживается «из коробки» и RESTfull WS, но уже на уровне Actionpack.

ActivesupportРасширяет возможности стандартных классов Ruby и не-которых классов предыдущих модулей.

К примеру, у класса Numeric появляются методы minutes, day, week... что позволяет удобно работать с датами:

А данные в массиве легко разбить на группы, например, по три элемента в каждой:

RailsЭто модуль, который интегрирует все предыдущие. При со-здании RoR-проекта командой:

Будет создано следующее дерево директорий:

class User < ActiveRecord::Base validates_confirmation_of :password, ↵ :message=>'Пароли не совпадают' validates_length_of:password, :in=>4..10, ↵ :too_long=>'Пароль слишком длинный', ↵ :too_short=>'Пароль слишком короткий', :on=>:createend

(10.weeks + 1.day – 4.minutes).ago

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10].in_groups_of(3){|el| p el}=> [1, 2, 3]=> [4, 5, 6]=> [7, 8, 9]=> [10, nil, nil]

rails <имя директории>

/app/ В принципе именно в этой директории находится приложение controllers/ Контроллеры models/ Модели views/ Представления helpers/ Методы-помощники/config/ Файлы настроек/log/ Файлы журнализации/tmp/ Файлы сессий, кеш/script/ rails-скрипты генерации/удаления/тестирования/...

/db/ migrate/ Файлы миграции/public/ Корень (index.html, изображения, Java-скрипты)/test//vendor/ plugins/ Плагины

Page 88: 052 Системный Администратор 03 2007

86

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

Google: история лучшей поисковой системы

Илья Александров

Многие скептически называют Интернет большой свалкой информации. Но достаточно набрать в адресной строке браузера www.google.com, чтобы понять абсурдность таких высказываний.

Page 89: 052 Системный Администратор 03 2007

87№3, март 2007

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

Googol (гугол) – термин матема-тический, обозначающий чис-ло, равное десяти в сотой сте-

пени. Впервые его употребил в сво-их научных работах Эдвард Краснер (Edward Krasner), а имя термину при-думал его девятилетний племянник Милтон (Milton). Но в подавляющем большинстве знают об этом лишь вы-пускники технических университетов. У всех же остальных, когда они слы-шат слово «Google», ассоциации воз-никают исключительно с электронной поисковой системой.

Отцы-основателиОдин из создателей Google, Сергей Брин, родился в Москве, в 1973 году. Дед Сергея был преподавателем ма-тематики в МЭИ, отец работал учите-лем в школе. В 1979 году семья Бри-на переехала из Советского Сою-за в США, пользуясь американской программой эмиграции для евреев, проживающих на территории России. Отец Сергея продолжал преподавать – теперь уже в университете штата Мэ-риленд (Maryland). Мать, тоже матема-тик, устроилась на работу в NASA.

Уже в детстве Сергей позна-комился с компьютерами. Первой его вычислительной машиной стал Commodore 64, за которой он прово-дил массу времени. Даже домашнее задание часто выполнялось на ком-пьютере.

После школы Сергей поступил в университет, где преподавал его отец. Закончил его досрочно и по-лучил престижную премию NSGF. Во многом благодаря данному фак-ту Сергей смог продолжить образо-вание в Стэнфордском университе-те. Это учебное заведение примеча-тельно тем, что талантливые студен-ты могут сразу получить кандидатс-кую степень, «перешагнув» через сте-пень магистра.

В 1995 году Сергей жил в Кремни-евой долине (там, собственно, Стэн-фордский университет и находится), и являлся магистром математичес-ких наук.

Лэрри Пэйджу (Larry Page) сам Бог велел стать компьютерщиком. Как и в случае с Брином, он родился в семье математиков. Его отец, Карл Пэйдж (Carl Page), профессор компьютер-ных наук, как заядлый компьютерщик

был известен по всей Америке. Час-то рассказывают легенду о том, как в юности Лэрри собрал модель струй-ного принтера из набора конструкто-ра Lego. Его мать преподавала про-граммирование в Мичиганском уни-верситете.

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

Как бы там ни было, очень скоро Сергей и Лэрри стали лучшими дру-зьями. Но вряд ли они догадывались, во что выльется их дружба.

BackRub – предвестник GoogleУже в то время Сергей был автором ряда интересных программ, например, конвертера из формата TeX в HTML. Брином был создан сайт, где разме-щались рецензии на кинофильмы, но больше всего волновали молодо-го человека системы поиска данных. Вместе с Пэйджем они вступили в ра-бочую группу Стэнфордского универ-ситета под руководством доцента ка-федры информационных технологий. К началу 1996 года проект, использу-ющий инновационные возможности поиска данных в Интернете, был поч-ти завершен. Сервер получил назва-ние BackRub.

BackRub обрабатывал содержа-ние различных ресурсов, выявляя,

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

Эффективность данного алгорит-ма поиска была очень высока. Брин даже опубликовал на эту тему не-сколько материалов в ряде американ-ских научных журналов.

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

Пока сервер использовался лишь для поиска информации в локальной сети университета, но позже он стал доступен всем пользователям Интер-нета по адресу google.stanford.edu.

Бета-версия поисковой машины была запущена на университетском

Лэрри Пэйдж (слева) и Сергей Брин

Page 90: 052 Системный Администратор 03 2007

88

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

сервере в 1998 году. Тогда же окон-чательно утвердилось и название – «Google», произошедшее из немного переигранного слова googol, о кото-ром говорилось в начале статьи.

Отныне Брин и Пэйдж читали лек-ции в университете на свою люби-мую тему – о технологиях поиска ин-формации.

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

Одним из первых, к кому они об-ратились, стал Джордж Белл (George Bell). В то время он возглавлял компа-нию Excite, занимавшуюся почтовыми системами. Джордж скептически от-несся к Google, заверив, что на поиске денег не заработаешь. К слову, Excite в скором будущем обанкротилась.

Тогда Сергей встретился с Дэви-дом Фило (David Filo), создателем Yahoo. Дэвид отказался покупать Google, но поисковая система ему понравилась. Он посоветовал и даль-ше работать над проектом.

Отчаявшись продать свою разра-ботку, Брин и Пэйдж решили самосто-

ятельно развивать ресурс, попутно продолжая искать инвесторов.

«Гаражный» этап историиЭнди Бехтольшайм (Andy Bechtolsheim), один из отцов-основателей Sun Microsystems, не зря считается че-ловеком дальновидным. Он заинте-ресовался поисковой системой и вы-разил желание стать её спонсором. Когда Лэрри и Сергей встретились с Брином, он очень спешил. Мельком взглянув на демо-версию Google, он просто спросил: «На чье имя выпи-сывать чек?»

Таким образом, друзья получили в своё распоряжение первые сто ты-сяч долларов, часть из которых сра-зу ушла на покупку доменного име-ни google.com. Брин взял академи-ческий отпуск, и они с Пэйджем уе-хали из Стэнфорда, прихватив с со-бой в команду Крейга Сильверштей-на (Creig Silverstein). Крейг стал пер-вым нанятым сотрудником новоис-печённой Google Inc. Сегодня он за-нимает пост технического директо-ра компании.

Офис Google был открыт в Мен-ло-Парке, штат Калифорния. Перво-начально в качестве него выступал обычный… гараж. Однако гараж был очень комфортным: в нём была мой-ка, сушилка и даже джакузи! Нашлось

в нём и место для парковки автомо-биля Крейга.

Но, как бы там ни было, уже тогда поисковая система, всё ещё прохо-дившая бета-тестирование, обраба-тывала по 10 тысяч запросов в день. О Google появились статьи в прессе, причем в крупнейших изданиях вроде USA Today. В конце 1998 года Google вошёл в список ста лучших сайтов Интернета.

В том же году Sequoia Capital ин-вестировала в проект 25 миллионов долларов. В совет директоров компа-нии, состоявший тогда лишь из Бри-на, Сильверштейна и Пэйджа, вошёл Джон Дёрр (Jhon Derr), до этого рабо-тавший в Amazon.com.

Штат сотрудников постоянно по-полнялся, в гараже уже не было сво-бодного места. Да и стол для иг-ры в настольный теннис, за которым проходили собрания директоров, яв-но не соответствовал растущему ста-тусу компании. Требовалось переез-жать в более солидный офис. А посе-щаемость Google тем временем до-стигла трёх миллионов поисковых за-просов в день.

1999-2000 годыНовую штаб-квартиру компании ре-шено было разместить в городе Ма-унтин-Вью. Гаражные будни остались в прошлом, офис теперь располагал-ся в прекрасном здании в центре го-рода. Он даже получил специальное название – Googleplex.

В 1999 году отладка програм-мной части сервера была закончена, и Google заработал в нормальном ре-жиме. В качестве поисковой службы этот сервер выбрали America On-Line и NetScape. Клиентами компании так-же стали популярнейший ресурс Ита-лии Virgilio и британский сетевой спра-вочник Virgin Net. Журнал Time вклю-чил Google в десятку лучших кибер-нетических технологий.

В июне 2000 года поисковая сис-тема официально стала крупнейшим ресурсом такого рода в сети, проин-дексировав более миллиарда веб-страниц.

Появились доходы от клиентов, пользующихся Google на своих сайтах. Портал Yahoo объявил о более актив-ном сотрудничестве с поисковой сис-темой. Со временем разработкой Бри-Заглавная страница Google.ru

Page 91: 052 Системный Администратор 03 2007

89№3, март 2007

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

на и Пэйджа начали пользоваться жи-тели Китая и Японии.

На рубеже тысячелетий сайт стал лауреатом Webby Award, получив на-граду «Народный выбор» за техничес-кие достижения. Речь победителей, произнесенная Сергеем и Лэрри, со-стояла из пяти слов: «Мы любим вас, пользователи Google!»

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

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

В 2000 году Google вышла на мо-бильный рынок. Отныне искать ин-формацию в Интернете могли и обла-датели мобильных телефонов, подде-рживающих WAP.

2001 годВ феврале 2001 года Google приобре-ла Deja.com – крупнейший архив со-общений сети UseNet. Началась ра-бота по созданию улучшенного архи-ва системы сообщений. В итоге бы-ло проиндексировано порядка пяти-сот миллионов сообщений, дорабо-тан интерфейс и введена нормальная система поиска.

Позже к архиву UseNet добавился и еще один архив сети – FidoNET. Оце-нить результат работы можно, зайдя на groups.google.com.

Для превращения Google в ком-мерчески успешный интернет-проект на должность исполнительного дирек-тора был приглашен Эрик Шмидт (Eric Schmidt), до этого занимавший руко-водящие посты в Novell и Sun.

Прибыль компании неуклонно росла, увеличивалось и количест-во пользователей ресурса. Согла-шение с Lycos Korea улучшило пози-ции Google в азиатском секторе се-

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

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

2002-2003 годыВ это время состоялось открытие раз-дела labs.google.com. На этом разде-ле программисты компании выкла-дывали новые разработки для бета-тестирования. Пользователи смог-ли удовлетворить свое любопытс-тво, а разработчики получили мас-су отзывов.

В сентябре была запущена служ-ба «Новости Google», автоматически выбирающая сообщения с лучших но-востных порталов и объединяющая их в единые блоки.

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

В 2003 году Google Inc. приобре-ла компанию Pyra Labs, ранее прина-

длежавшую Blogger.com. Этот ресурс является одним из самых популяр-ных среди «блоггеров». Таким обра-зом, Google показал, что сферы вли-яния компании в Интернете не огра-ничиваются одними лишь поисковы-ми системами.

2004 годВ начале года появился новый сер-вис – «местный поиск». Благодаря ему человек может, например, найти мага-зин одежды в окрестностях своего до-ма или посмотреть список существу-ющих в городе пиццерий.

Первого апреля Google Inc. объ-явила о создании собственной почто-вой службы под названием Gmail, кото-рая выделяла для каждого почтового ящика гигабайт дискового пространс-тва. Оказалось, это вовсе не шутка, и вскоре сервис gmail.com действи-тельно заработал. Помимо гигабайта места на сервере, он отличался раз-витой системой поиска и серьезным подходом к регистрации адреса. Что-бы получить почтовый ящик, требова-лось попросить инвайт-код у челове-ка, уже зарегистрированного на Gmail. Однако на этом компания не остано-вилась.

В июне была приобретена Picasa Inc., что позволило запустить ресурс picasa.google.com, специализирую-щийся на хранении графических фай-

Группы новостей на groups.google.ru

Page 92: 052 Системный Администратор 03 2007

90

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

лов пользователей. Picasa стал одним из самых популярных хранилищ циф-ровых фотографий в Интернете.

Но Google не забывает и о новых кадрах. Для набора программистов был проведен конкурс Code Jam, в хо-де которого пятьдесят наиболее та-лантливых программистов стали со-трудниками компании.

А к сентябрю Google мог «похвас-таться» языковыми версиями уже для ста стран мира, включая, кроме всего прочего, ряд стран Африки.

В декабре была запущена про-грамма Google Print, целью которой является создание онлайновой биб-лиотеки. Книги из личных хранилищ американских университетов, Нью-Йоркской и других публичных библи-отек были отсканированы и выложены в свободный доступ в Интернет.

В этом же году мировое сообщес-тво, наконец-то, по-достоинству оце-нило труд основателей Google. Лэр-ри Пэйдж стал членом Национальной академии инженерных наук (National academy of engineering sciences), а вместе с Сергеем Брином они были награждены премией Маркони. Этой премией в свое время был награж-ден, скажем, Тим Бернерс-Ли (Tim Berners-Lee) – один из создателей «Глобальной паутины» (World Wide Web, WWW).

2005-2006 годыВ последние годы Google начал про-являть активный интерес к онлайно-вому видео, вследствие чего и был со-здан портал Google Video. Изначаль-но он содержал лишь записи телеви-зионных передач, однако впоследс-твии на нём стали появляться люби-тельские видеоролики.

В 2006 году Google укрепила ус-пех в этом секторе рынка, купив youtube.com – самую популярную служ-бу хранения видео в Интернете, предо-

ставляющую услуги хостинга владель-цам цифровых видеокамер.

В это время была также создана программа Google Desktop Search: от-ныне Google может искать не только информацию в Интернете, но и файлы на жестком диске пользователя. Кро-ме того, существует специальная вер-сия для локальных сетей, а для удобс-тва ипользования программа локали-зована на многие языки мира.

Чувствуя веяние времени, Google Inc. открыла собственный блог: в Google Blog публикуется информа-ция о продуктах компании, записи ее сотрудников.

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

В 2005 году был также разрабо-тан новый важный продукт – Google Talk, являющийся голосовым анало-гом ICQ.

Google сегодняГоворя о Google, нельзя не рассказать об атмосфере внутри компании.

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

Одно время вместо стульев в ком-пании использовались большие шары для спортивной гимнастики.

Двадцать процентов рабочего вре-мени выделяется сотрудникам для са-мообразования. Кто-то совершенс-твует свои знания, кто-то пишет науч-ные статьи.

Внутри Google Inc. царит очень дружественная, почти семейная об-становка.

Но требования к новым сотрудни-кам более чем высоки. Из первых ста двадцати служащих двадцать имели докторскую степень!

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

Другой тип акций, позволяющих влиять на политику компании, был распространён среди основателей и первых сотрудников Google.

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

Сегодня Google однозначно яв-ляется лучшей поисковой систе-мой в Интернете. По некоторым под-счетам, его трафик составляет 80% от всего трафика, вырабатываемого поисковыми системами.

В английском языке уже появился неологизм «to google» (существует он и на русском: «гуглить»), внесенный в несколько словарей.

Компания продолжает расти и раз-виваться, ежедневно предоставляя пользователям сети Интернет самую качественную поисковую систему, а также сопутствующие ей услуги.

1. http://www.google.ru/intl/ru/about.html.2. http://en.wikipedia.org/wiki/Google.3. h t t p : / / g o o g l e . b l o g s p a c e . c o m /

archives/000621.4. h t t p : / / w w w . w o r k - a t - h o m e - n e t -

g u i d e s . c o m / a r t i c l e s / h i s t o r y - o f -google.html.

Редактор рубрики Дмитрий Мороз

Философия GoogleДесять лозунгов, определяющих филосо-фию компании (по материалам google.ru):1. Сосредоточь все внимание на пользо-

вателе, а остальное приложится.2. Лучше делать что-то одно, но делать

это очень и очень хорошо.3. Быстро – лучше, чем медленно.4. Демократия в Интернете есть.

5. Не нужно сидеть за компьютером, что-бы получить ответ.

6. Деньги можно заработать честным пу-тем.

7. Новая информация существует всегда.8. Для поиска информации нет границ.9. Можно быть серьезным и без костюма

с галстуком.10. Пределов совершенству нет.

Page 93: 052 Системный Администратор 03 2007

91№3, март 2007

bugtraq

Несколько уязвимостей в Cisco Firewall Services ModuleПрограмма: Cisco Firewall Services Module (FWSM) 2.x.Опасность: Средняя.Описание: 1. Уязвимость существует из-за ошибки при про-верке SIP-пакетов. Удаленный пользователь может послать специально сформированный SIP-пакет и вызвать пере-загрузку устройства. Для успешной эксплуатации уязви-мости опция «SIP fixup» должна быть включена (значение по умолчанию).

2. Уязвимость существует из-за ошибки при обработке списков доступа (Access Control Lists), использующих груп-пы объектов. Некорректное применение административ-ным пользователем списков доступа может привести к тому, что ACE (Access Control Entries) будут пропущены или учте-ны не в том порядке, что может позволить злоумышленни-ку обойти некоторые ограничения безопасности.URL производителя: www.cisco.com.Решение: Установите исправление 2.3(4.12) или 3.1(3.24) с сайта производителя.

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

Обход ограничений безопасности в Mozilla FirefoxПрограмма: Mozilla Firefox 2.0.0.1 и более ранние версии; Mozilla Firefox 1.5.0.9 и более ранние версии.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки обработки записи данных, содержащих NULL-терминированные стро-ки, в DOM-свойство location.hostname. Удаленный пользо-ватель может с помощью специально сформированной веб-страницы управлять файлами куки для произвольных до-менов. Пример эксплуатации уязвимости доступен по ад-ресу: http://lcamtuf.dione.cc/ffhostname.html.URL производителя: www.mozilla.org.Решение: В настоящее время способов устранения уязви-мости не существует.

Множественные уязвимости в Cisco PIX и ASAПрограмма: Cisco PIX 6.x; Cisco PIX 7.x; Cisco Adaptive Security Appliance (ASA) 7.x.Опасность: Средняя.Описание: 1. Уязвимость существует из-за ошибки при рас-ширенной проверке HTTP-трафика. Удаленный пользо-ватель может с помощью специально сформированно-го HTTP-запроса аварийно завершить работу устройства. Для успешной эксплуатации уязвимости должна быть вклю-чена расширенная проверка HTTP.

2. Уязвимость существует из-за ошибки при проверке SIP-пакетов. Удаленный пользователь может с помощью специально сформированного SIP-пакета аварийно за-вершить работу устройства. Для успешной эксплуатации уязвимости должна быть включена проверка SIP-пакетов (по умолчанию отключена).

3. Уязвимость существует из-за ошибки при проверке TCP-протоколов. Удаленный пользователь может с помо-щью специально сформированных пакетов вызвать отказ в обслуживании устройства. Для успешной эксплуатации уязвимости должна быть включена проверка TCP-прото-колов (FTP или HTTP).

4. Уязвимость существует из-за ошибки в методе аутен-тификации «LOCAL». Злоумышленник может получить при-вилегии уровня 15 и полностью изменить конфигурацию уст-ройства. Для успешной эксплуатации уязвимости злоумыш-ленник должен успешно пройти аутентификацию и должен иметь привилегии уровня 0 в локальной базе данных.URL производителя: www.cisco.com.Решение: Установите исправление с сайта производите-ля.

Несколько уязвимостей в ClamAVПрограмма: Clam AntiVirus (clamav) версии до 0.90.Опасность: Средняя.Описание: 1. Уязвимость существует из-за недостаточной проверки входных данных в параметре «id» при обработке MIME-заголовков перед созданием локальных файлов. Уда-ленный пользователь может с помощью специально сфор-мированного сообщения, содержащего символы обхода ка-талога, перезаписать файл сигнатур антивируса и отклю-чить обнаружение злонамеренного ПО на системе.

2. Утечка дескрипторов файла существует при обра-ботке CAB-файлов, содержащих длину записи, равную 0 в заголовке файла. Удаленный пользователь может пос-лать специально сформированный CAB-архив антивиру-су и запретить всем пользователям отправлять легитим-ные архивы.URL производителя: www.clamav.net.Решение: Установите последнюю версию (0.90) с сайта производителя.

Уязвимость при обработке длинных URL в SpamAssassinПрограмма: SpamAssassin версии до 3.1.8..Опасность: Средняя.Описание: Уязвимость существует из-за неизвестной ошибки при обработке длинных URL в сообщении. Удален-ный пользователь может с помощью специально сформи-рованного сообщения аварийно завершить работу прило-жения.URL производителя: spamassassin.apache.org.Решение: Установите последнюю версию (3.1.8) с сайта производителя.

Переполнение буфера в VicFTPSПрограмма: VicFTPS 3.9, возможно более ранние версии.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки провер-ки границ данных при обработке информации, передавае-мой серверу. Удаленный пользователь может послать сер-веру слишком длинную строку (более 320 байт), вызвать переполнение стека и выполнить произвольный код на це-левой системе.URL производителя: vicftps.50webs.com.Решение: Установите последнюю версию (5.0) с сайта про-изводителя.

Page 94: 052 Системный Администратор 03 2007

92

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

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

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

UNIX. СправочникАрнольд Роббинс (перевод М. Н. Аницкого)ОС, основанных на UNIX или совмес-тимых с ними.

Формально книга охватывает 3 опе-рационные системы: Sun Solaris 10 (как классическая разновидность UNIX), Fedora Core 3 (как яркий представи-тель популярной ОС, не являющей-ся прямым потомком UNIX, но «близ-кой по духу»), Mac OS X 10.4. Однако ими справочник не ограничивается, например, в главе про управление па-кетами рассказано и про систему apt проекта Debian GNU/Linux. Основная часть материала подается как подхо-дящая для всех этих и многих других программных платформ, а специфи-ческие особенности каждой оговари-ваются отдельно.

Первая часть справочника и со-ставляет его фундамент – в нем соб-рана основа для работы в командной строке UNIX-систем. Это и подробные описания огромного числа стандарт-ных утилит, и информация по коман-дным интерпретаторам bash, ksh, tcsh,

и вопросы менеджмента программно-го обеспечения (RPM, yum, up2date, dpkg/apt, Fink для Mac OS X, pkgadd/pkgadm/... для Solaris). Вторая часть посвящена обработке текста: текс-товым редакторам (emacs, vi/vim, ex) и специализированным утилитам (sed, awk). Третья – разработке программно-го обеспечения в среде UNIX (рассмат-риваются различные аспекты: кон-троль версий с RCS/CVS/Subversion, автоматизация сборки с GNU make, отладка с GDB, создание документа-ции). А четвертая часть содержит до-полнительные материалы, среди кото-рых наибольшую ценность представля-ет «Библиография».

Архитектура вычислительных систем и компьютерных сетейАнатолий Степанов

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

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

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством «КУДИЦ-

ОБРАЗ» .

«КУДИЦ-ПРЕСС»

2007

864

5-91136-031-4

≈ 651 руб.

ек микропроцессоров. В ряду послед-них не забыты и отечественные разра-ботки: помимо информации об «исто-рическом» семействе БЭСМ есть дан-ные и об «Эльбрусе».

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

Все главы оканчиваются конт-рольными вопросами и упражнения-ми для проверки и закрепления полу-ченного материала.

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством

«Питер».

«Питер Пресс»

2007

509

978-5-469-01451-5

≈ 390 руб.

Page 95: 052 Системный Администратор 03 2007

93№3, март 2007

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

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

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

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

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

Для приводимых тестовых сце-нариев рекомендуется использовать Oracle 10g, однако в тексте зачастую приводятся замечания и про более ранние релизы этой СУБД (8i и 9i).

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

Linux: азбука ядраКлаудия Зальзберг Родригез, Гордон Фишер, Стивен Смолски (перевод И. В. Легостаева)

Oracle. Основы стоимостной оптимизацииДжонатан Льюис

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

Начинается книга с истории, обзо-ра дистрибутивов GNU/Linux, устройс-тва ОС и ее ядра. Затем приводятся основные конструкции Linux-програм-мирования, примеры «общения» с яд-ром, раскрывается работа с процес-сами и управление памятью, взаимо-действие с подсистемой ввода-выво-да, файловой системой (разумеется, особое внимание уделено VFS). Рас-сказывается также о планировщике,

процессе загрузки, сборке Linux-яд-ра. Подробно описана процедура до-бавления собственного кода в состав ядра операционной системы. К слову, важно учитывать тот факт, что изда-ние не ограничивается Linux на плат-форме x86, но и содержит множество примеров для PowerPC.

При всех плюсах выделю отрица-тельный момент: за время изучения книги удалось неоднократно встретить-ся с досадными опечатками и целым ря-дом спорных мелочей в правописании.

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

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

Обзор книжных новинок подготовил Дмитрий Шурупов

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством «КУДИЦ-

ОБРАЗ» .

«КУДИЦ-ПРЕСС»

2007

584

978-5-91136-017-7

≈ 584 руб.

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством

«Питер».

«Питер Пресс»

2007

528

978-5-469-01309-9

≈ 455 руб.

Page 96: 052 Системный Администратор 03 2007

94

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

n Вы можете оформить подпискуналюбойроссийскийадрес.

n При заполнении квитанцииобя‑зательно РАЗБОРЧИВО укажи‑те фамилию, имя, отчество пол‑ностью, почтовый индекс и ад‑рес получателя (область, город, улица, номер дома, номер квар‑тиры), контактный телефон.

Редакционная подписка для физических лиц

n Вы можете оформить подпискуслюбогомесяцаналюбойсрок.

n Вграфе«Сумма»проставьтесуммузавыбранноеколичествономеров.Стоимостьодногономеражурна-ла150 руб.За10месяцев(смартаподекабрь)–1500 руб.НДСипоч-товые расходывключенывстои-мость.

nЖурналвысылаетсяпочтойпрос-тойбандерольютолькопослепос-тупленияденегнарасчетныйсчетикопии заполненного и оплачен‑ного бланка, отправленной в ре‑дакцию по факсу:(495) 628‑82‑53или на электронный адрес: [email protected].

Page 97: 052 Системный Администратор 03 2007

95№3, март 2007

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

Российская ФедерацияnПодписнойиндекс:годовой–20780,полугодовой–81655 Каталогагентства«Роспечать»nПодписнойиндекс:87836 Объединенныйкаталог«Пресса России» Адресныйкаталог«Подписка за рабочим столом» Адресныйкаталог«Библиотечный каталог»nАльтернативныеподписныеагентства: Агентство«Интер‑Почта»(495)500-00-60,курьерская

доставкапоМоскве Агентство«Вся Пресса»(495)787-34-47 Агентство«Курьер‑Прессервис» Агентство«ООО Урал‑Пресс»(343)375-62-74 ЛинуксЦентрwww.linuxcenter.runПодпискаOn-line http://www.arzi.ru http://www.gazety.ru http://www.presscafe.ru

СНГ ВстранахСНГподпискапринимаетсявпочтовыхотделе-нияхпонациональнымкаталогамилипо спискуноменк-латуры«АРЗИ»:nАзербайджан – по объединенному каталогу россий-

скихизданийчерезпредприятиепораспространению

печати«Гасид»(370102,г.Баку,ул.Джавадхана,21)nКазахстан–покаталогу«РоссийскаяПресса»через

ОАО«Казпочта»иЗАО«Евразияпресс»nБеларусь–покаталогуизданийстранСНГчерезРГО

«Белпочта»(220050,г.Минск,пр-тФ.Скорины,10)nУзбекистан–покаталогу«Davriy nashrlar»российс-

киеизданиячерезагентствопораспространениюпе-чати«Davriy nashrlar»(7000029,г.Ташкент,пл.Муста-киллик,5/3,офис33)

nАрмения – по списку номенклатуры «АРЗИ» черезГЗАО«Армпечать»(375005,г.Ереван,пл.СасунциДа-вида,д.2)иЗАО«Контакт‑Мамул»(375002,г.Ереван,ул.Сарьяна,22)

nГрузия – по спискуноменклатуры«АРЗИ»черезАО«Сакпресса»(380019,г.Тбилиси,ул.Хошараульская,29)иАО«Мацне»(380060,г.Тбилиси,пр-тГамсахурдия,42)

nМолдавия–покаталогучерезГП«Пошта Молдовей»(МД-2012,г.Кишинев,бул.ШтефанчелМаре,134)

поспискучерезГУП«Почта Приднестровья»(МD-3300,г.Тирасполь,ул.Ленина,17)

попрайс-листучерезОООАгентство«Editil Periodice»(МД-2012,г.Кишинев,бул.ШтефанчелМаре,134)

nПодпискадляУкраины: Киевскийглавпочтамт Подписноеагентство«KSS»,тел./факс(044)464-0220

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

20780*

81655**

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

87836

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

* годовой** полугодовой

Page 98: 052 Системный Администратор 03 2007

96

СИСТЕМНЫЙ АДМИНИСТРАТОР№3(52), Март, 2007 год

УЧРЕДИТЕЛИВладимир ПоложевецАлександр Михалев

РУКОВОДИТЕЛЬ ПРОЕКТАПетр Положевец

РЕДАКЦИЯИсполнительный директорВладимир ПоложевецОтветственный секретарьНаталья Хвостова[email protected]Технический редакторВладимир ЛукинГлавный редактор электронного приложения «Open Source»Дмитрий ШуруповВнештатные редакторыАлексей БарабановСергей СупруновДмитрий МорозВладимир ВасилькинАндрей Бешков

РЕКЛАМНАЯ СЛУЖБАтел./факс: (495) 628-8253Евгения Тарабринаreс[email protected]

Верстка и оформление[email protected]Дизайн обложкиНиколай Петрочук

По вопросам распространенияобращайтесь по телефону:(495) 628-8253 (доб. 120)

107045, г. Москва,Ананьевский переулок, дом 4/2, стр. 1тел./факс: (495) 628-8253Сайт журнала: www.samag.ru

ИЗДАТЕЛЬЗАО «Издательский дом«Учительская газета»

Отпечатано типографиейГП «Московская Типография №13»Тираж 15000 экз.

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

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

Читайтев следующемномере:

уважаемые читатели!

Обратите внимание, что оформить подписку вы можете не только на полугодие, но и сразу на весь год.

Годовой индекс по каталогу «Роспечать» – 20780.Интер-почта – заказ журналов по тел.(495) 500-00-60.

Подписка on-line – SetBook.ru.

Приобрести новые и старые номера журналавы можете через интернет-магазины LinuxCenter.ru и Allsoft.ru.

Доставка почтой в любую точку России.

Борьба с утечками информации через USB/Ethernet-портыВоздвигая все новые и новые систе-мы защиты, многие системные адми-нистраторы даже и не подозревают, что враги находятся не только снару-жи, но еще и изнутри корпоративной сети. Это обычные сотрудники, копи-рующие конфиденциальные файлы через USB\Ethernet-порты и вынося-щие их за пределы охраняемого пери-метра. В следующем выпуске журна-ла обсудим возможные каналы утеч-ки информации и покажем, как защи-титься от них, используя только штат-ные средства операционной системы семейства Windows NT.

мониторинг ресурсов с CactiПо мере увеличения размеров се-ти все более актуальным становится вопрос обеспечения ее бесперебой-ной работы, своевременное нахож-дение проблемных участков. Добить-ся его решения можно только прово-дя постоянный мониторинг. Сущест-вует большое количество Open Source-систем мониторинга: Nagios, базирую-щийся на нем Oreon; MRTG, RRDtool, небольшой Cricket, Zabbix, NetMRG и

прочие. Соответственно и задачу мож-но решить разными способами и инс-трументами. В следующем номере журнала подробно рассмотрим один из них – проект Cacti.

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

Gnuplot. Графики заказывали?Уже более двадцати лет gnuplot ис-пользуется для визуализации дан-ных. Это профессиональный инстру-мент, так как создавался под нуж-ды учёных и ровно по той же причи-не gnuplot поразительно эффекти-вен. Gnuplot не может думать за вас, но ему не сложно объяснить, что вам нужно. Трансформация данных в гра-фики – то, что у gnuplot получается лучше всех.