98
Роспечать – 20780, 81655 Пресса России – 87836 Интер-почта – тел. (495) 500-00-60 Так видит журнал читатель, который забыл оформить подписку: ПОДПИШИТЕСЬ И ЧИТАЙТЕ! Так видит журнал читатель, оформивший подписку: НОВОГОДНИЕ КАНИКУЛЫ ЗАТЯНУЛИСЬ БЫСТРО РАСКУПИЛИ ТИРАЖ НЕОЖИДАННО ЗАКОНЧИЛИСЬ ДЕНЬГИ УЕХАЛ В ОТПУСК ПОСЛЕ ОТПУСКА АВРАЛ НА РАБОТЕ №5(54) май 2007 №5(54) май 2007 подписной индекс 20780 www.samag.ru Программы удаленного доступа: выбирайте подходящую! Разворачиваем кластер на основе Windows Server 2003 Используем Cisco PIX для обеспечения VPN‑подключений к локальной сети Split DNS: заставим BIND работать на два фронта! UserGate – безопасный прокси‑сервер Резервное копирование и восстановление СУБД Oracle средствами ОС Технологии защиты ядра NT Всё, что вы хотели знать о протоколе SIP

054 Системный Администратор 05 2007

Embed Size (px)

DESCRIPTION

НЕОЖ ИДАННО ЗАКОНЧИЛИСЬ №5(54) май 2007 подписной индекс 20780 www.samag.ru БЫСТРО РАСКУПИЛИ ТИРАЖ НОВОГОДНИЕ ЗАТЯНУЛИСЬ КАНИКУЛЫ ОТПУСКА ДЕНЬГИ РАБОТЕ АВРАЛ №5(54) май 2007 НА Обзор программ удаленного доступа: выбирайте подходящую 8 Технологии защиты ядра NT66 IP-ТЕЛЕФОНИЯ Патентные войны: оберегай своё, не посягай на чужое 88 Всё, что вы хотели знать о протоколе SIP78 ЧЕЛОВЕК НОМЕРА Используем Cisco PIX для обеспечения VPN-подключений к локальной сети 34

Citation preview

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

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

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

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

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

НОВОГОДНИЕ

КАНИКУЛЫ ЗА

ТЯНУЛ

ИСЬ

БЫСТРО РА

СКУПИЛИ

ТИРА

Ж

НЕОЖ

ИДАННО

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

ЕНЬГИ

УЕХАЛ В О

ТПУСК

ПОСЛЕ ОТП

УСКА

АВРАЛ Н

А РАБОТЕ

№5(

54)

май

200

7

№5(54) май 2007подписной индекс 20780www.samag.ru

Программы удаленного доступа: выбирайте подходящую!

Разворачиваем кластер на основе Windows Server 2003

Используем Cisco PIX для обеспечения VPN‑подключений к локальной сети

Split DNS: заставим BIND работать на два фронта!

UserGate – безопасный прокси‑сервер

Резервное копирование и восстановление СУБД Oracle средствами ОС

Технологии защиты ядра NT

Всё, что вы хотели знать о протоколе SIP

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

�№5, май 2007

в номере

6�, 72, 73 BUGTRAQ

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

ТЕНДЕНЦИИ3

РЕПОРТАЖ

Sun Tech Days в Санкт-Петербурге4Итоги конференции Sun Tech Days, ежегодно проводи-мой корпорацией Sun Microsystems.

Иван Максимов[email protected]

Конференция РИТ-2007 собрала веб-разработчиков России

8

Впечатления от первой конференции «Российские ин-тернет-технологии – 2007». Дмитрий Шурупов

[email protected]

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

Обзор новой версии дистрибутиваDebian GNU/Linux 4.0

�2

Говоря о Debian, поневоле приходится использовать превосходную степень: самый всеобъемлющий, са-мый свободный, самый плодовитый дистрибутив Linux. В апреле была объявлена стабильной четвёртая вер-сия Debian. Что же в этом особенного?

Евгений Балдин[email protected]

UserGate – безопасный прокси-сервер�7Рассматривая богатые возможности UserGate, проана-лизируем, обладает ли он всей необходимой функци-ональностью для организации совместного доступа в сеть Интернет. Иван Максимов

[email protected]

Обзор программ удаленного доступа:выбирайте подходящую

�8

Чем рабочее место системного администратора отлича-ется от рабочего места пользователя? Тем, что на нем, как правило, установлен клиент системы удаленного доступа, а иногда и не один. Чтобы виртуально побы-вать на удаленном компьютере, используется широкий диапазон программ. Рашид Ачилов

[email protected]

Используем Cisco PIX для обеспечения VPN-подключений к локальной сети

34

Существует множество способов предоставить удалён-ным пользователям доступ к ресурсам локальной се-ти компании. Предлагаем вам решить задачу с помо-щью специально разработанного для подобных целей межсетевого экрана Cisco PIX. Ильяс Кулиев

[email protected]

Split DNS: заставим BIND работать на два фронта!

40

Вы системный администратор организации, которая ис-пользует много внешних адресов и свои DNS-серверы? У вас единое адресное пространство для внешних и внут-ренних серверов? Вы используете разные DNS-серверы для внутренней и внешней сети? Есть способ заставить BIND работать на два фронта. Яков Коваленко

[email protected]

Строим Jabber-сервер с OpenFire44Сегодня для более эффективной организации совмест-ной работы сотрудников все чаще используют системы мгновенного обмена сообщениями. Рассмотрим, как ус-тановить и настроить Jabber-сервер OpenFire.

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

Разворачиваем кластер на основе Windows Server 2003

50

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

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

Резервное копирование и восстановлениебазы данных Oracle средствами ОС

56

Мы установили какое-либо приложение, хранилищем данных в котором служит СУБД Oracle. Но вводить систему в производственную эксплуатацию еще ра-но. Предварительно нужно создать надежную мето-дику резервного копирования и восстановления ба-зы данных. Сергей Косько

[email protected]

Мечты сбываются62Глава одноименной фирмы Майкл Делл не боится ста-вить нереальные задачи и планомерно воплощать их в жизнь. Оксана Родионова

[email protected]

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

Технологии защиты ядра NT66О внутреннем устройстве этих технологий защиты ядра NT известно немного. А между тем они серьезно раз-личаются, как от версии к версии NT, так и на разных машинах и к тому же далеко не совершенны.

Артем Баранов[email protected]

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

m0n0wall – дистрибутив для создания межсетевого экрана

74

Интернет не только средство обмена информацей, но и источник многих проблем – вирусы, атаки хаке-ров... Первым барьером на их пути стоят межсетевые экраны. Сергей Яремчук

[email protected]

Всё, что вы хотели знать о протоколе SIP78Что общего у Microsoft Exchange 2007, Asterisk и Google Talk? А общим здесь является использование прото-кола SIP, который обещает единое решение задач как реализации мультимедийных функций в веб-приложе-ниях, так и переноса сигнального трафика в сетях опе-раторов связи. Андрей Погребенник

[email protected]

IP-ТЕЛЕФОНИЯ

Патентные войны: оберегай своё, не посягай на чужое

88

Термин «патентный терроризм» был придуман в 2001 году ассистентом Intel Питером Диткином неспроста. Ведь сегодня в мире высоких технологий отстаивание компаниями своей интеллектуальной собственности является одной из наиболее насущных проблем.

Дмитрий Мороз [email protected]

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

Page 4: 054 Системный Администратор 05 2007
Page 5: 054 Системный Администратор 05 2007

�№5, май 2007

тенденции

Palm представила свою Linux‑платформуИсполнительный директор Palm Эд Коллиган (Ed Colligan) объявил о намерении его компании позже в этом году вы-пустить новую платформу на базе Linux и Open Source.

Не стоит путать этот проект с платформой ACCESS Lin-ux Platform, которую разрабатывает компания ACCESS, ра-нее известная как PalmSource. Над новой Linux-системой в Palm работают уже не один год, и ожидается, что она ста-нет «новым фундаментом для Palm». Для этого функцио-нал Palm OS Garnet будет связан с ядром Linux. Таким об-разом, интерес к продукту должны проявить разработчи-ки и сторонники обеих этих платформ.

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

Состоялся релиз Ubuntu Linux 7.0419 апреля разработчики представили долгожданный для многих релиз новой версии не перестающего набирать по-пулярность Linux-дистрибутива Ubuntu 7.04. Этот релиз по-лучил кодовое название «Feisty Fawn».

Среди новшеств в Ubuntu 7.04 отмечается: появление утилиты для перевода в Linux данных из Windows (закладки из браузеров, обои для рабочего стола, контакты из IM-кли-ентов); теперь система сама предлагает установить необхо-димые пакеты с кодеками/драйверами, как только во вре-мя работы возникает потребность в них; значительные улучшения в поддержке сети; новые версии программно-го обеспечения (Linux-ядро 2.6.20, X.Org 7.2, GNOME 2.18, OpenOffice.org 2.2, Mozilla Firefox 2.0.0.3, Mozilla Thunderbird 1.5.0.10, Gaim 2.0.0beta6...).

В Ubuntu 7.04 вошел и полный стек Java: (Open Source-реализация платформы Java Platform, Enterprise Edition 5), Java Platform Standard Edition (JDK 6), Java DB 10.2 (на базе Apache Derby), интегрированная среда разработки с откры-тым кодом NetBeans IDE 5.5. Все пакеты доступны в офици-альном репозитории дистрибутива «multiverse».

Кроме того, стало известно о том, что в июле этого го-да в рамках O'Reilly 2007 Open Source Convention пройдет первая официальная конференция, посвященная Ubuntu Linux, – Ubuntu Live, а также о том, что вместе со следу-ющим релизом у Ubuntu появится полностью свободная (в столлмановском понимании этого слова) версия. В раз-работке свободной редакции Ubuntu будут принимать учас-тие авторы GNU/Linux-дистрибутива gNewSense.

Adobe откроет код Flex, а Microsoft – SilverlightКомпания Adobe объявила о своем намерении открыть ис-ходный код Flex, программного обеспечения для создания приложений на базе Flash. Не прошло и несколько дней с момента этого анонса, как от корпорации Microsoft ста-ло известно, что она собирается анонсировать частичное открытие кода своей технологии Silverlight, выступающей в роли прямого конкурента Flash.

Бета-версия Flex, что появится летом, уже будет обна-родована под лицензией MPL (Mozilla Public License). Анали-

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

Подробностей о том, какие части Silverlight будут от-крыты, пока нет, но у Microsoft уже есть достаточный опыт Open Source-релизов, чтобы не ставить под сомнение ре-альность подобной инициативы (в прошлом году код проек-тов Windows Installer XML, Windows Template Library, FlexWiki был выпущен под лицензией CPL).

В MySQL 6.0 интегрируют свой движокКак сообщил исполнительный директор компании MySQL AB, стоящей за разработкой и поддержкой СУБД с откры-тым кодом, Мартен Микос (Marten Mickos), исполнительный директор MySQL AB, главным новшеством в MySQL 6.0 ста-нет появление движка хранения данных Falcon.

Альфа-версия Falcon дебютировала в январе, и ее со-стояние, по-видимому, уже позволяет разработчикам с оп-тимизмом смотреть на возможности ее применения в ка-честве движка для будущего релиза MySQL. В MySQL AB занялись разработкой Falcon в октябре 2005 года – когда корпорация Oracle купила компанию Innobase, разработчи-ка движка InnoDB. Микос не назвал примерных дат выпус-ка бета-релиза Falcon и не уточнил ожидаемое время по-явления MySQL 6.0 и основной версии Falcon.

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

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

репортаж

Место проведения было выбрано удачно – гавань, выставочный комплекс ЛенЭкспо, огромное

помещение, способное вместить тыся-чи посетителей.

«Технические дни» состояли из трех основных мероприятий: собс-твенно Sun Tech Days 11,12 апреля и OpenSolaris Day с NetBeans Day, про-водившиеся в один день – 13 апреля. Мероприятия были открыты для же-лающих узнать о продуктах и даль-нейших планах развития компании Sun Microsystems.

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

было разделено на 4 потока: Java EE, Java SE, Solaris и мастер-класс, 12 ап-реля на: Java ME, Java, Solaris и опять же мастер-класс, а 13 апреля на 3 сек-ции: NetBeans, OpenSolaris и Java-уни-верситет.

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

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

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

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

Далее на сцену вышел Джефф Джексон (Jeff Jackson) – старший вице-президент группы разработки Solaris в компании Sun Microsystems. Он рас-сказал о больших достижениях ком-пании на рынке серверного и клиент-ского программного обеспечения, бы-ли упомянуты успехи сотрудничест-

Sun Tech Days в Санкт-Петербурге

Корпорация Sun Microsystems в рамках мирового тура 11-13 апреля в Санкт-Петербурге провела конференцию Sun Tech Days.

Page 7: 054 Системный Администратор 05 2007

�№5, май 2007

репортаж

ва Sun и AMD в области высоких тех-нологий.

Пленарный доклад включал в себя много вводных понятий о преимущес-тве открытого программного обеспе-чения, о продукции компании Sun, та-кой как среды разработки Sun Studio 12 и NetBeans 5.5. Наибольший инте-рес у посетителей вызвал показ де-моверсии нового объектно ориен-тированного языка программирова-ния под кодовым названием «F3». Как и следовало ожидать, язык очень похож на Java. Как заявили докладчи-ки, с помощью этого языка и средств разработки от Sun создавать ПО ста-нет проще. Во время презентации бы-ла показана игра lines, написанная на «F3», состоящая всего из 360 стро-чек кода. При этом в процессе добав-ления новых функций в игру на пре-зентации произошел небольшой курь-ез: выполнив операцию <Ctrl + Insert> и <Shift + Insert>, содержимое буфера обмена «вставилось» 5 раз в различ-ных местах кода программы, поиск ошибок сопровождался бурными ап-лодисментами посетителей.

После перерыва аудитория разде-лилась, каждый выбирал то направ-ление, которое было ему интереснее; не являясь Java-разработчиком, я вы-брал поток, посвященный ОС Solaris.

Технический обзор о Solaris на-чал Крис Армс (Chris Armes) – дирек-тор подразделения Solaris Revenue Products Engineering. Нужно сразу за-метить, что весь поток Solaris в первый день конференции не совсем был пос-вящен операционной системе, скорее он был о программном обеспечении компании Sun Microsystems.

Крис Армс рассказывал о том, что Sun – единственная компания, ко-торая гарантирует совместимость би-нарных пакетов во всех ОС Solaris от 2 до 10 версий, также говорил о плюсах открытого и свободного программно-го обеспечения. Далее Крис демонс-трировал достоинства пакета Sun Studio 11, вкратце рассказав о плюсах оптимизации и компиляторах С, С++, Fortran, входящих в пакет.

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

зирована работа ОС Solaris с процес-сорами Intel.

Далее было рассказано об улуч-шении работы PostgreSQL в ОС Solaris и богатых возможностях Service Management Facility, о том, что эта ОС одна из самых быстрых UNIX-подобных ОС, о многоплатформенности, в кон-це Крис похвастался тем, что у Sun Microsystems крупные партнеры, такие как AMD, Intel, HP, Dell и другие.

Передали слово нашему соотечес-твеннику, и был начат доклад на тему Sun Studio 11. Аудитории рассказыва-ли, что данный пакет – среда разработ-ки, набор инструментов и компилято-ров для разработчиков, распростра-няемый бесплатно, но только в бинар-никах. Отличие от платной версии со-стоит в том, что нет технической под-держки и некоторых модулей. Нужно заметить, что, как только зашла речь о компиляторах Sun, о том, что мно-гоядерность/многопоточность всегда была «коньком» компании, зал резко оживился и, не дав завершить обзор, засыпал докладчика вопросами: «По-чему и за счет чего достигается опти-мизация?», «Совместима ли Студия с GCC?», «Возможна ли установка под Linux?», «Как компилятор работает с потоками?» и многие, многие другие. В итоге из зала на сцену вышел один из российских разработчиков Sun Studio и попытался ответить на большинство

вопросов. Сложно объяснить, с чем бы-ло связано такое оживление, возмож-но, с тем, что конференция все же бы-ла нацелена на разработчиков и те-ма оптимизации компиляторов «заде-ла за живое» аудиторию, но, возмож-но, это было связано и с тем, что вы-ступал первый русскоговорящий до-кладчик в этот день. Только по одно-му этому поистине кульминационно-му моменту, когда возникли шумные споры и было задано множество воп-росов, можно с уверенностью сказать, что Sun Tech Day ждали!

После обеда посетители разо-шлись рассматривать установленные на конференции стенды. Один из них с сервером Sun Fire T2000. Рассмат-ривая дорогую «игрушку», попроси-ли сотрудников Sun продемонстриро-вать возможность горячего отключе-ния блоков сервера; ответом на дан-ную просьбу было легкое движение руки и изъятие блока питания из ра-бочей машины. На просьбу повторить то же самое с процессором ответили отказом, мотивируя это тем, что про-цессор установлен в одном экземп-ляре. В ходе дальнейшего разговора с сотрудниками Sun выяснились ин-тересные факты об аппаратной части сервера, о том, что используемая ар-хитектура sparc в Sun открыта (http://www.opensparc.net), и другие моменты, но наиболее интересным оказалось то,

Место проведения конференции, 7 павильон выставочного комплекса ЛенЭкспо

Page 8: 054 Системный Администратор 05 2007

репортаж

что один из представителей Sun в не-далеком прошлом работал над оте-чественным процессором Эльбрус 3. Многие знают, сколько тайн и интриг было вокруг этого процессора, поэ-тому не упущу шанса приоткрыть за-весу тьмы.

Главное достоинство отечествен-ного процессора в том, что в нем ре-ализована программируемая систе-ма команд (как в Sun sparc), архитек-тура, аналогичная IA64, тактовая час-тота 900-1200 МГц. По общей произ-водительности процессор был при-мерно равен 1,7 МГц Атлону. Два года назад были изготовлены опытные об-разцы, которые успешно функциони-ровали, но на запуск в массовое про-изводство не было денег, на этом все и завершилось.

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

День второй и третийК сожалению, второй день конферен-ции был менее насыщен событиями

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

В этот день из выступлений стоит выделить доклад о контейнерах и зо-нах в ОС Solaris.

Зоны – это полностью изолиро-ванные программные копии машины ОС Solaris. Многие посетители путали зоны с виртуальными машинами, пол-ностью эмулирующими операционные системы и оборудование (наподобие VMware), из-за чего возникала пута-ница и неправильные вопросы к до-кладчику. Поэтому специалист Sun был вынужден отдельно уточнить по-нятие: зона – это что-то между chroot и VMware, но не то и не другое. Ос-новное предназначение зон – созда-ние безопасных контейнеров и сис-тем управления ресурсами в ограни-ченной среде.

Далее были представлены некото-рые методы организации зон и проде-монстрирована их работа. Наиболь-ший интерес аудитории вызвала воз-можность организации Linux-зон в Solaris. Данная возможность была предусмотрена для безопасной сов-местимости двух операционных сис-тем. В качестве примера было предло-жено запустить СУБД Oracle, свободно распространяемую для Linux, но не до-ступную для пользователей Solaris, в специально созданной зоне. К со-жалению, Linux-зоны могут быть со-

зданы только на базе Red Hat Linux 3.5 и CentOS также, Linux-зоны ограниче-ны ядром 2.4.

Третий день конференции был пос-вящен ОС OpenSolaris. В первую поло-вину дня сотрудники Sun пропаганди-ровали свободное ПО и OpenSolaris, в частности, но, кроме этого, расска-зывали об обучении и сертифика-ции. Sun приглашает к сотрудничеству вузы России, распространяя програм-мы обучения и сертификации. В част-ности, для вузов предоставляются бес-платное русскоязычное ПО и методи-ческие указания, при необходимос-ти поставки оборудования Sun про-дает его со значительными скидка-ми, а обучение преподавателей про-изводится за счет Sun. Для студентов (вузов участников) бесплатно предо-ставляется доступ к образовательно-му веб-порталу (Web Learninig Center), программам обучения от Sun (разра-ботанным преподавателями Sun), сер-тификации по теме Java программиро-вания или администрирования Solaris со скидками от 50 до 80%.

Во второй половине дня из всех выступлений стоит выделить до-клад о файловой системе ZFS, о ней была подробная публикация в №3 за 2007 г.

ИтогВ целом конференция прошла вели-колепно. Постоянно проводились кон-курсы по Java и всем ее направлени-ям (EE, SE, ME, ...), отдельные розыг-рыши от Sun и спонсоров. Каждый день посетителям раздавали подар-ки: рюкзаки, майки, бейсболки, игруш-ки и многое другое. Sun явно не скупи-лась на подарки, в чем и призналась: «Мы ничего не повезем обратно, это все для вас».

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

Иван Максимов, фото автора

Конференц-зал. Поток Solaris

Page 9: 054 Системный Администратор 05 2007
Page 10: 054 Системный Администратор 05 2007

репортаж

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

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

рование центра веб-разработок в Рос-сии – ведь есть чем гордиться Отечес-тву и в этой области. Завершил свое небольшое выступление Бунин коло-ритным заявлением: «Надо учиться думать!».

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

Павел Рогожин, председатель ор-ганизационного комитета, сделал ак-цент на еще одной важной особеннос-

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

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

Первые доклады: Игорь СысоевПосле открытия в зале №1 началась секция «Разработка больших интер-нет-сайтов». И первым докладчи-ком в ней стал Игорь Сысоев, автор nginx, скромно охарактеризованный Буниным как «звезда» – впрочем, он без преувеличений значимая фигура для рунета последних лет.

Первое выступление Сысоева бы-ло посвящено его проекту – nginx [2]. Статистические данные по российско-му Интернету за март 2007 года сви-детельствуют о том, что ngnix стреми-тельно набирает обороты: именно он обслуживал HTTP-запросы исследо-вателей в 22,7% случаях [3].

Автор рассказал, что начал зани-маться проектом nginx весной 2000 года, на первый этап разработки уш-ло около 2 лет. Затем было проведено успешное внедрение сервера на такие ресурсы, как zvuki.ru и photo.rambler.ru. Но первый публичный релиз (0.1.0) по-явился значительно позже – 4 октября 2004 года [4]. Сысоев рассказал об ар-хитектуре сервера и «волшебных пу-зырьках», позволяющих добиваться высокой производительности: kqueue, epoll, /dev/poll, event ports, select и poll; sendfile. Вместе с тем обозначил ос-новные приоритеты для nginx, кои-

Конференция РИТ-2007 собрала веб-разработчиков России

16 и 17 апреля в московском конференц-центре «ИнфоПространство» прошла первая конференция российских веб-разработчиков «Российские интернет-технологии-2007».

Организатор конференции РИТ-2007 – Олег Бунин

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

�№5, май 2007

репортаж

ми являются раздача статики, под-держка режима Keep-Alive, обработ-ка большого количества соединений, проксирование. Среди достоинств ав-тор выделил гибкость настройки, воз-можность обновления конфигурации налету, быструю ротацию логов и лог для отладки. Особое внимание бы-ло уделено планам на будущее. Сре-ди них: различное кэширование, огра-ничение числа соединений с backend, введение возможности просмотра со-стояния сервера (в удобном виде), раз-витие встроенного модуля Perl, небло-кируемая работа с MySQL (в привязке к Perl), фильтры тела запроса, замена модуля rewrite на собственный script-модуль (в докладе не раз сообщалось, что автору не нравится существующий движок rewrite).

Сысоев продолжил секцию, вы-ступив со вторым сообщением. Те-перь уже по настройке операцион-ной системы FreeBSD (рассматрива-лась версия 6.2, однако присутствова-ли некоторые комментарии и по дру-гим веткам/релизам) в случаях высо-кой нагрузки (вариант обслуживания порядка 100-200 тысяч соединений). В качестве способов улучшения быс-тродействия были приведены такие рекомендации, как, например, огра-ничение по количеству mbufs, увели-чение количества буферов (kern.ipc.nmbclusters), увеличение памяти, до-ступной для ядра.

LAMP, большие системы, архитектура ЯндексаПосле кофе-брейка тематика смес-тилась в сторону организации проек-тов крупной архитектуры. Здесь пер-вым выступил один из бывших раз-работчиков СУБД MySQL Петр Зай-цев, который рассказал о распреде-ленной архитектуре LAMP-приложе-ний (Linux, Apache, MySQL, Perl/PHP/Python). Видимо, ввиду собственных профессиональных интересов сразу после краткого введения докладчик перешел к вопросам масштабируе-мости MySQL. И только затем вернул-ся к некоторым другим проблемам уже на уровне Web, HTTP, а также связан-ным с большими файлами.

Следующим перед аудиторией за-ла №1 предстал Александр Горный, продюсер Почта.ру, с общим докладом по «разработке архитектур больших

систем». В качестве примера для рас-смотрения был по очевидным причи-нам взят проект веб-почты, где все глобальные задачи разделены между backend (приложения для которого на-писаны на C/C++ – для скорости рабо-ты) и frontend (на скриптовом языке для лучшей и более быстрой адаптации в случае появления новых требований у заказчика). Сама структура храни-мой почты устроена по следующему принципу: пользователь представля-ет собой каталог в файловой систе-ме, письмо – файл (в том виде, в ка-ком письмо было принято). Кроме то-го, для каждого каталога должен гене-рироваться индексный файл с уже от-сортированным списком и обработан-ными полями MIME, чтобы не обраба-тывать письма при каждом запросе на просмотр их списка.

Олегу Оболенскому своим ярким выступлением по архитектуре Яндекса удалось развлечь слушателей перед обедом. Привнеся в зал веселую и не-принужденную атмосферу (возмож-но, не самую подходящую для уровня доклада), он сохранял ее до победно-го конца, при этом рассказывая об ис-пользуемой в Яндексе с 2001 года ар-хитектуре CORBA (Common Object Request Broker Architecture). Особый акцент был поставлен на модульность: в случае «падения» какого-либо ком-понента на его месте на сайтах выво-дится либо кэш, если он еще актуа-лен (в таком случае пользователь ни-чего и не замечает), либо какая-то дру-гая доступная информация. На вопрос

о популярности языков программиро-вания, на которых написано использу-емое в Яндексе ПО, Оболенский отве-тил, что 80% на C++, 15% на Java, ос-тальное – на Perl и других языках.

Хостинг, AdRiverДмитрий Даниленко из .masterhost выступил с докладом о том, как в его компании пришли к предоставлению виртуальных серверов и какие пре-имущества это дает клиентам. В ка-честве базы для виртуальных сер-веров была выбрана ОС GNU/Linux с Virtuozzo [5]. Однако на мой вопрос, почему, например, не Linux-VServer, адекватного ответа так и не после-довало, если, конечно, не восприни-мать за таковой фразы в стиле «Ведь всегда нужно что-то выбирать!»... Ис-ходя из этого (VZ) уже была опреде-лена и панель управления – Plesk: от того же производителя (компании SWsoft), обладающая хорошей интег-рацией с Virtuozzo. «Главным в VPS» была названа оптимизация, к которой причислены жесткие и мягкие ограни-чения по ресурсам. Также Даниленко особо выделил vzmigrate, что обеспе-чивает переход на другой тарифный план хостинга, как правило, без оста-новки сервера.

Позже Сергей Бакунин рассказал о более простом (по сравнению с пер-вым докладчиком этой части сек-ции) решении RU-CENTER, где до сих пор используют виртуальный хостинг. А между двумя докладами по хостингу Всеволод Потапов со своим коллегой

Разработчик nginx – Игорь Сысоев

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

10

репортаж

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

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

Иван Салагаев рассказал публи-ке об основах написанного на Python фреймворка Django [6]. При этом шарм его выступлению придал тот факт,

что вышел он с внушительным напиль-ником, который поднял вверх при сло-вах «... не придется прибегать к же-лезным предметам!». Григорий Ба-кунов развил тему доклада, расска-зав, зачем Яндекс использует Django. Основных причин на то 4, и заявле-ны они были забавно: «это что-то но-венькое», «это быстро», «это весело» и «это модно». Так что Django приме-няется как средство сверхбыстрой разработки и прототипирования. Пос-ле этого Олег Андреев противопоста-вил Django альтернативу – написанный на Ruby фреймворк Ruby-on-Rails [7], со схожей идеологией (Django появил-ся позже и действительно многое пе-ренял у этого проекта), но и не мень-шим числом принципиальных отли-

чий, зачастую вызывающих ожесто-ченные споры.

Завершился этот день конфе-ренции докладом Дмитрия Котерова по HTML_MetaForm – о том, как рабо-тать с метаданными HTML-форм, цен-трализовать их и защитить формы от подделок.

КачествоТемой первой секции зала №1 во вто-рой день стало «Качество». Открыл ее очень лаконичный провокацион-ный доклад «инженерного психолога» Дмитрия Сатина под названием «По-чему юзабилити?». И своей цели – мо-жет, не с таким размахом, какой можно было ожидать после соответствующе-го предупреждения в начале выступ-ления, – он добился. Смелые вопросы вроде «Вы уверены, что ваши пользо-ватели не называют ваш продукт от-стойным?» и дальнейшие рассужде-ния и советы должны были заставить публику хотя бы задуматься о пробле-мах usability. Универсальное же реше-ние по Сатину – «соберите данные!», и уже основываясь на них, улучшай-те продукт.

Следующим докладчиком стал Ан-дрей Удалов, который выдвинул свою формулу для Web 3.0 и раскрыл ее смысл. По его мнению, третья вер-сия веба – это Web 2.0 в сочетании с usability. Автор привел несколько на-глядных примеров из серии «есть ку-да расти» среди популярных сервисов с краткими пояснениями, что он счита-ет сделанным у них неудобно: Мой Круг, YouTube, GMail, Google Reader.

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

Андрей Оконечников выступил с наиболее запомнившимся мне до-кладом под названием «Профессия

Выступление Дмитрия Даниленко из .masterhost было посвещено виртуальным серверам

Иван Салагаев рассказал об основах написанного на Python фреймворка Django

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

11№5, май 2007

репортаж

frontend-архитектор». Автор попы-тался донести до слушателей смысл этой новой профессии, которая еще фактически никак не представлена в России, хотя потребность в ней есть. Frontend-архитектор должен не только обладать огромным багажом знаний в различных областях (как в верстке, так и в программировании, usability, accessibility, дизайне UI и многом-мно-гом другом), но и уметь общаться на языке разработчиков, принимать кри-тические решения, а также постоянно следить за технологиями. В некотором смысле эта профессия схожа с уже ус-тоявшейся должностью «системно-го архитектора», но у последней – ос-новной акцент делается на техничес-кую сторону.

Затем опять выступил Андре-ев с призывом ко всем переходить на UTF-8 (в рамках «важнейших при-нципов работы с текстом и кодиров-ками»).

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

После этого был представлен до-клад, который вызвал резонанс в ау-дитории. Назывался он вполне безо-бидно: «Опыт использования MySQL в LiveInternet.ru». В нем Андрей Гу-рьянов рассказал об архитектуре LiveInternet.ru: 2 frontend-сервера, 5 – backend (0w-http и PHP), 3 – с малы-ми базами данных (3-6 ГБ), 1 - с кэ-шем (memcached), 1 – с резервной ко-пией. Все работает под управлением FreeBSD 6.1/6.2, а в качестве СУБД ис-пользуется MySQL 4.0.27.

Коллега Гурьянова Максим Быст-ров обозначил основные методы оп-тимизации: отказ от JOIN, минимиза-ция количества таблиц, разделение таблиц, кэширование. После чего бы-

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

Иван Золотухин выступил с со-общением про другую Open Source-СУБД – PostgreSQL. После краткого введения докладчик перешел к бо-лее детальному описанию таких до-стоинств этой СУБД, как отказоустой-чивость, балансировка нагрузки, мас-штабирование, репликация, а также некоторых решений: pgpool-II, Slony-I, PgCluster, проекты Skype (PL/Proxy для проксирования запросов, лег-кий менеджер соединений PgBounce, SkyTools для управления кластером).

Позже его дополнил Олег Барту-нов с докладом о реализации про-двинутого полнотекстового поиска в PostgreSQL, которая сейчас исполь-зуется на официальном сайте этой СУБД. С аналогичным сообщением (по полнотекстовому поиску) примени-тельно к MySQL вновь выступил Зай-цев, который сфокусировался на про-екте Sphinx [8].

Обобщил сведения об оптимизации производительности баз данных веду-щий секции Денис Бесков-Доронин.

ВердиктВ целом впечатления от конференции остались на удивление положитель-

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

Появились основания полагаться на то, что в будущем организаторам удастся повышать уровень конферен-ции и не только сделать его «замеча-тельным» поводом для веб-разработ-чиков, чтобы встретиться, но и помо-гать в формировании, укреплении та-кого сообщества в России.

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

P.P.S.Архив презентаций, которые были представлены на конференции, вы можете найти на сайте конферен-ции [1].

1. http://www.rit2007.ru.2. http://sysoev.ru/nginx.3. http://www.nixp.ru/news/8248.4. http://sysoev.ru/nginx/changes.html.5. http://www.swsoft.com/en/virtuozzo.6. http://www.djangoproject.com.7. http://www.rubyonrails.org.8. http://www.sphinxsearch.com.

Дмитрий Шурупов, фото автора

«Инженерный психолог» Дмитрий Сатин представил доклад об usability

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

12

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

Немного историиВсё началось в 1993 году, когда Ян Мердок (Ian Murdock) анонсировал создание некоммерческого проек-та по созданию дистрибутива GNU/Linux, поддерживаемого и развива-емого исключительно добровольца-ми. Ян дал имя своей идее в честь са-мого себя (Ian) и своей подруги, а ны-не жены Деборы (Debra). В то время

вряд ли кто-то рискнул бы предска-зать, что к 2007 году число активных разработчиков Debian будет превы-шать 1060 человек.

Человеку на необитаемом остро-ве нет необходимости в социальных навыках, но когда для достижения общей цели собирается сообщество, необходим общественный договор. И такой договор (http://www.debian.org/

social_contract) был представлен сле-дующим после Яна лидером проек-та Брюсом Перенсом (Bruce Perens) в 1997 году. После месячного обсуж-дения договор, в котором постули-ровалась приверженность свобо-де (лицензионная чистота програм-много обеспечения) и честности (за-прет на сокрытие любой информа-ции от пользователей), был принят

Обзор новой версии дистрибутива Debian GNU/Linux 4.0

Евгений Балдин

Debian – это платформа не только для программных приложений, но и для других платформ тоже.

Ян Мердок

Говоря о Debian GNU/Linux, поневоле приходится использовать превосходную степень: самый всеобъемлющий, самый свободный, самый плодовитый дистрибутив GNU/Linux. 8 апреля 2007 года была объявлена стабильной четвёртая версия Debian. Что же в этом особенного?

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

13№5, май 2007

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

сообществом Debian. Значение этого общественного договора трудно пе-реоценить. По этим правилам сооб-щество живёт и развивается уже бо-лее десяти лет. Ян Мердок давно ото-шёл от своего детища и сейчас являет-ся главой отдела операционных плат-форм в Sun Microsystems, а Debian GNU/Linux движется вперёд несмотря на отсутствие своего основателя.

Структура DebianDebian состоит из трёх различных дис-трибутивов или веток:n stable или на текущий момент

Etch – наиболее подходящий для сервера дистрибутив. Про-граммы в стабильной ветке об-новляются только для исправ-ления обнаруженных уязвимос-тей. Стабильная ветка поддержи-вается и обновляется специаль-ной командой безопасности DSA (http://security.debian.org – Debian Security Team). Реакция на обнару-женную уязвимость очень опера-тивна. После выхода нового рели-за предыдущая стабильная версия поддерживается в течение некото-рого времени, достаточного для не-спешного тестирования и перехода. Например, предыдущий стабиль-ный релиз Debian Sarge будет под-держиваться ещё год. Установив на компьютер Debian Etch, можно жить размеренной и скучной жиз-нью без каких-либо неожиданных сюрпризов. Если же очень хочет-ся более нового софта, то всегда этот софт можно собрать самому или прибегнуть к услугам сторон-них репозитариев, например, http://www.backports.org.

n testing или на текущий момент Lenny – дистрибутив, ориенти-рованный на десктоп. Прежде чем попасть в эту ветку, програм-мное обеспечение обязательно тестируется, но не вылизывает-ся. Как следствие при обновле-нии иногда возможны неожидан-ности, как и в других дистрибути-вах. Это плата за свежие програм-мы. Тестовая ветка является заро-дышем будущей стабильной.

n unstable или вечный Sid – дист-рибутив для тестирования новых программ. Это выбор разработчи-ков и экспериментаторов.

Что новогоС момента выхода предыдущего рели-за Debian 3.1 (Sarge) прошло чуть мень-ше двух лет. Для современного мира, где гонка релизов рядовое явление, это может показаться вечностью. В ка-ком-то смысле так оно и есть, и объ-ём изменений, внесённых в Debian 4.0 (Etch), вполне оправдывает затрачен-ное на внесение их время. Счёт идёт на тысячи программных пакетов: до-бавлено свыше 6,5 тысяч, обновле-но свыше 10,5 тысяч, правда, и удале-но по разным причинам чуть больше 3,5 тысяч программ. Несмотря на сле-дование духу и букве свободного про-граммного обеспечения разработчики дистрибутива осознают, что пользова-тели хотят использовать и не совсем свободные программы. Свыше пяти-сот таких пакетов помещено в специ-альный раздел non-free.

С выходом Etch, наконец-то, в спи-сок официально поддерживаемых про-цессорных Debian GNU/Linux архитек-тур была включена AMD64.

Вместе с ней этот список содержит 11 архитектур:n Sun SPARC (sparc);n HP Alpha (alpha);n Motorola/IBM PowerPC (powerpc);n Intel IA-32 (i386);n Intel IA-64 (ia64);n HP PA-RISC (hppa);n big-endian MIPS (mips);n little-endian MIPS (mipsel);

n ARM (arm);n IBM S/390 (s390);n AMD64 (amd64).

Своего часа на включение ждут:n PPC64 (ppc64);n Hitachi SuperH (sh);n big-endian ARM (armeb);n Renesas Technology RISC (m32r).

GNU/Linux является не единс-твенным ядром проекта. Существу-ют социальные ветки разной степе-ни законченности для Debian/GNU Hurd (hurd-i386), Debian GNU/NetBSD (netbsd-i386 и netbsd-alpha), Debian GNU/kFreeBSD (kfreebsd-gnu).

Пока отдельно, в неофициальном порядке, существует проект Nexenta (http://www.gnusolaris.org) или Debian GNU/Solaris.

В качестве базы в дистрибутиве Etch теперь используется gcc (GNU Compiler Collection) версии 4.1.1 и glibc (GNU C library) 2.3.6. Чем дальше, тем более популярным становится скриптовый язык Python (версия 2.4.4), не говоря уже о PHP (версия 5.2).

Почту предполагается по умолча-нию рассылать с помощью Exim 4.63, но никто не запрещает использовать, скажем, Postfix 2.3.8 или Sendmail 8.13.8.

Для создания веб-сервера предла-гается Apache 2.2. Базу данных мож-но выбирать среди популярной MySQL

Текстовый инсталлятор Debian. Выбор языка

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

14

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

5.0.32, надёжной PostgreSQL 8.1 и вос-ставшей из пепла FireBird 1.5.3.

Значительно увеличено число па-кетов, так или иначе связанных с техно-логией Java: официальные Java-паке-ты от Sun, Tomcat~5, Eclipse и тому по-добное. В дистрибутив включена под-держка NFS v4 и пакет Samba 3.0.24.

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

В релиз включён последний ста-бильный FireFox 2.0.0.3, точнее, пере-маркированный, то есть лишённый за-регистрированных Mozilla Foundation товарных знаков, Iceweasel. Это да-ло сообществу Debian возможность накладывать патчи для обеспечения безопасности без оглядки на Mozilla Foundation. Спорное, но гарантирую-щее лицензионную чистоту дистрибу-тива решение.

Такой же перемаркировки подверг-лись пакеты Mozilla Thunderbird 1.5.0.10 и Mozilla Seamonkey 1.0.8, ставшие Icedove и Iceape соответственно.

Наконец-то в дистрибутив включи-ли MPlayer (просмотр фильмов) 1.0rc1.

По умолчанию везде при установ-ке предлагается UTF-8. Для «старич-ка» KOI8-R наступают по настоящему тяжёлые времена.

Общее число пакетов превышает 18 тысяч – всё это богатство разме-щается на трёх DVD или на двадцати одном CD. Это большой объём и ес-ли по близости нет зеркала Debian, то имеет смысл приобрести дистри-бутив.

Предыдущий стабильный релиз помещался на одном DVD. Это связа-но с крупными вливаниями новых па-кетов подобными TeX Live (флагманс-кий дистрибутив LaTeX).

Важной особенностью стабильно-го релиза является полная поддержка стандарта LSB 3.1 (Linux Standard Base http://www.linux-foundation.org/en/LSB). Наличие этого стандарта позволяет сгладить различия между дистрибу-тивами GNU/Linux. Опираясь на согла-шения LSB, сторонние производители программного обеспечения могут пос-тавлять свои решения, гарантирован-но работающие в дистрибутивах, под-держивающих этот стандарт. На се-годня фактически все основные сов-ременные дистрибутивы обеспечива-ют такую возможность.

Кроме стандартного сервиса для обновления программ в случае обнаружения проблем с безопас-ностью http://security.debian.org офи-циально представлен сервис debian-volatile (http://volatile.debian.org) – быс-трые обновления для пакетов, кото-рые по своему предназначению быс-тро устаревают. К таким пакетам от-носятся антивирусы, спам-фильтры и т. п.

видеокарт и облегчает их автоопре-деление. GNOME по-прежнему явля-ется рабочей средой по умолчанию, но без проблем можно перейти на KDE 3.5.5a, Xfce 4.4 или просто поставить fvwm 2.5.12.

Для работы с документами пред-лагается использовать OpenOffice.org 2.0.4a, что при общении с внешним ми-ром для большинства случаев являет-ся рабочим решением, но по возмож-ности лучше взять сборку от Инфра Ре-сурса http://www.i-rs.ru/download.

Новый графический инсталлятор Debian. Выбор языка

Приглашение на вход после установки (установлены пакеты базовой системы и пакеты пользовательской станции)

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

15№5, май 2007

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

Чуть-чуть об установкеСам процесс можно разбить на следу-ющие основные этапы, которые требу-ют вмешательства человека:

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

Далее нужно загрузиться с устано-вочного DVD/CD/USB-брелка или даже флоппи-диска.

Если после загрузки на первый воп-рос «Press F1 for help, or Enter to Boot:» нажать <Enter>, то далее предлагается выбрать язык установки. Стандартный инсталлятор Etch переведён на 58 язы-ков. В дальнейшем текст подсказки бу-дет идти на этом языке. Также предла-гается выбрать страну проживания, ло-каль и раскладку клавиатуры.

После загрузки базовой систе-мы предполагается настройка се-ти. Это необходимо, если установка идёт не с CD/DVD, а по сети. По воз-можности всё определяется автома-тически с помощью DHCP, но можно это сделать и вручную. Спрашивается имя компьютера и домен, к которому он принадлежит.

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

После выбора часового пояса нуж-но ввести пароль суперпользователя и завести непривилегированного поль-зователя/пользователей.

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

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

Инсталлятор поддерживает в том числе и зашифрованные разделы.

читать примечания к выпуску Etch: http://www.debian.org/releases/etch/releasenotes.

Определённо полезным для зна-комства с системой является офици-альный сайт проекта http://www.debian.org/. Этот сайт многоязычный, и рус-ский является одним из основных язы-ков. Новички также могут почерпнуть интересную информацию на Debian-Wiki http://wiki.debian.org.

Куда идёт DebianВ результате голосования в апреле 2007 года новым лидером Debian стал Самуэль Хокевар (Samuel Hocevar) из Франции. В своём предвыборном манифесте будущий лидер отказал-ся мириться с необходимостью выби-рать две из трёх опций: большой, сов-ременный и качественный. Несмотря на крен в сторону размера и качества, Debian развивается всё более и более динамично. Хоть и с большим «скри-пом», но Etch вышел почти в два ра-за быстрее, чем предыдущий релиз Sarge без ущерба качеству. Только большое и сплочённое сообщество позволит вобрать все современные идеи, не жертвуя при этом интереса-ми пользователей.

Сообщество у Debian большое. Останется ли оно сплочённым, по-кажет время – главный судья всех проектов. Больше решений хороших и разных!

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

Установочный диск также можно использовать в качестве инструмента спасения (Rescue). Для этого в качест-ве загрузочных параметров достаточ-но добавить «rescue/enable=true».

После установки имеет смысл под-писаться на список рассылки команды безопасности (подробности на http://security.debian.org).

В качестве одного из источников пакетов полезно указать сервер этой команды, добавив в /etc/apt/sources.list строку вида:

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

При обновлении с предыдущего стабильного релиза Debian 3.1 (Sarge) никаких особых сложностей произойти не должно. Достаточно после указания источника пакетов в /etc/apt/sources.list выполнить стандартные команды:

Естественно, до прохождения этой процедуры необходимо про-

Первый вход под пользователем

deb http://security.debian.org/ ↵ stable/updates main contrib ↵ non-free

> aptitude update> aptitude upgrade

Page 18: 054 Системный Администратор 05 2007
Page 19: 054 Системный Администратор 05 2007

17№5, май 2007

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

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

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

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

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

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

Во-первых, классический механизм идентификации, по IP-адре-су и/или MAC-адресу машины. Во-вто-рых, по имени пользователя и паро-лю. В-третьих, экзотическая авториза-ция, но не менее удобная по Windows login. В-четвертых, используя поль-зователей Active Directory, что очень удобно при работе в сети контролле-ра домена.

Что ж, подходим к главной изюмин-ке прокси-сервера UserGate – двойной проверке трафика на вредоносный код. В чем она заключается? В UserGate встроены две антивирусные програм-мы – от «Лаборатории Касперского» и Panda Software, что позволяет гаран-тировать «чистоту» информации, пос-тупающей в офис, и безопасность ра-боты клиентов. Дополнительно име-ются гибкие возможности настройки антивирусов: можно выбирать, какой трафик (http, ftp, почтовый), какой про-граммой будет проверяться. Допустим, необходимо, чтобы поступающая кор-поративная почта была чиста от вредо-носного кода, будем проверять ее дву-мя антивирусами. В то же время необ-ходимо проверять http-трафик, где ско-рость работы является главным крите-рием, здесь подойдет Panda.

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

тью и стабильностью работы основных сетевых служб.

Вместо итоговПрокси-сервер UserGate обладает мно-жеством других полезных свойств. Port mapping – функция, позволяющая пере-направлять соединения с одного порта на другой. Функция автодозвона при использовании модемного соединения и инициализируемая, если это необхо-димо, при запросе со стороны клиента. Гибкие настройки кэш-хранилища, рег-ламентирующие время жизни, размер и тип хранимых данных. Возможность использовать прокси в каскаде (спис-ки). Мощные средства ограничения кон-тента трафика для повышения инфор-мационной безопасности офиса.

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

Иван Максимов

UserGate – безопасный прокси-серверРассматривая богатые возможности UserGate, проанализируем, обладает ли он всей необходимой функциональностью для организации совместного доступа в сеть Интернет.

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

18

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

Обзор программ удаленного доступа: выбирайте подходящую

Рашид Ачилов

Чем рабочее место системного администратора отличается от рабочего места обычного пользователя? Тем, что на нем, как правило, установлен клиент системы удаленного доступа, а иногда два или несколько. Для того чтобы виртуально «побывать» на удаленном компьютере, используется широкий диапазон программ.

Page 21: 054 Системный Администратор 05 2007

19№5, май 2007

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

Такие разные клиентыПоявлению большого количества средств удаленного доступа способс-твовали как объективные, так и субъ-ективные причины, среди которых не последнее место занимает банальная человеческая лень – если можно зада-чу сделать не сходя со своего рабочего места, то зачем куда-то идти?

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

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

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

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

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

Все это привело к возникновению средств удаленного доступа как специ-ального отдельного класса программ.

Итак, программы, участвующие в обзоре:n Remote Administrator (Radmin)

версии 3.0.n Danware NetOp версии 9.00.n MetaVNC версии 0.6.0.n TightVNC версии 1.3.8.n UltraVNC версии 1.1.0.2.n RealVNC версии 4.2.8.n Pointdev IDEAL Administration вер-

сии 7.5.n Remote Desktop Connect ion

(RDC).n Timbuktu Pro версии 8.6.3.n Xmanager версии 2.0.n NX Client для Windows версии

2.1.17.n TridiaVNC версии 1.4.n Rdesktop версии 1.5.0.n Free NX server версии 1.4.0.

Как правило, решение вопро-са о том, каким же клиентом пользо-ваться, начинается с вопроса «А ка-кие задачи из числа тех, что нужны мне, он умеет решать?» Для этого мы разобьем все перечисленные клиен-ты на несколько групп по типу решае-мых ими задач:n Группа 1: средства организации

терминальных сессий (терминаль-ные сервера). Предназначена для имитации сети «майнфрейм – тон-кие клиенты», когда несколько пользователей одновременно ра-ботают за одним компьютером. Не-смотря на то что в мире UNIX это су-ществовало изначально, в Windows это появилось только с Windows NT Server Terminal Service Edition

n Группа 2: средства «удаленной по-мощи», когда локальный и удален-ный пользователь используют од-ну и ту же сессию – перемещение курсора мыши локальным пользо-вателем видно удаленному и на-оборот.

n Группа 3: средства «удаленного вы-полнения задач», не предоставля-ющие непосредственного доступа к локальному указателю мы-ши и экрану, но имеющие воз-можность уда-ленного выпол-нения опреде-ленного набо-ра команд.

Все VNC-средства под Windows, Timbuktu Pro, а также такие «гиганты», как Radmin и NetOp, относятся ко вто-рой группе.

Все средства под UNIX, а также RDC и Xmanager относятся к первой группе.

IDEAL Administration относится к са-мой малочисленной – третьей группе.

Программы группы «удаленный помощник»Начнем мы со второй группы, и как с самой многочисленной, и как на-иболее ярко соответствующей назва-нию «средства удаленного управле-ния». Основной причиной их появле-ния стало то, что лучше один раз уви-деть, чем сто раз услышать, и лучше один раз показать, чем сто раз объяс-нять по телефону. Все программы этой группы основаны в той или иной мере на некогда изобретенном в AT&T прин-ципе удаленного кадрового буфера (remote frame buffer), при использова-нии которого по сети передается толь-ко копия экрана пользователя.

Основной задачей программ груп-пы является любой ценой показать

Рисунок 1. Внешний вид окна настроек сервера Remote Administrator

Рисунок 2. Внешний вид программы Radmin Viewer

Page 22: 054 Системный Администратор 05 2007

20

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

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

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

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

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

Практически все программы на основе VNC совместимы друг с другом так, что, используя, например, UltraVNC в ка-честве сервера, можно использовать RealVNC в качестве

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

Программы же Radmin и NetOp не совместимы ни с чем.Основные параметры программ приведены в итоговой

таблице (в конце статьи).

Remote Administrator (Radmin)Первая в нашем обзоре – программа Remote Administrator (Radmin), которая давно и прочно заняла свою нишу мел-ких и средних сетей. Неприхотливая, небольшая по обье-му (11 Мб – дистрибутив сервера и 9 Мб – клиента), про-стая в настройках, способная работать «из коробки», рус-ский интерфейс – в этом, видимо, и состоит секрет попу-лярности Radmin. Шифрование передаваемого контента всегда включено, как-либо повлиять на его работу (задать другие алгоритмы шифрования, изменить длину ключа) не-возможно. Программа использует собственные алгоритмы упаковки потока.

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

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

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

Рисунок 3. Внешний вид окна Radmin Viewer, подключенного к удаленному узлу

Рисунок 4. Внешний вид окна сервера Danware NetOp Host

Рисунок 5. Внешний вид окна NetOp Guest, подключенного к удаленному узлу

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

21№5, май 2007

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

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

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

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

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

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

Программа не совместима с други-ми средствами удаленного доступа.

Дополнительно можно сказать, что одно время программа пользова-лась стойкой нелюбовью у Kaspersky Antivirus – даже Radmin Viewer пери-одически оказывался в так называ-емых расширенных базах, в которых перечислены рекламные и шпионские

модули, программы дозвона до порно-сайтов и пр. Некогда в эхоконферен-ции AVP.SUPPORT развернулась об-ширная полемика на тему «Права ли Kapsersky Lab, что включает Radmin в список программ, обнаруживае-мых системой защиты». В настоящий момент по заявлению разработчи-ков Radmin из программа полностью удалена изо всех баз.

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

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

граммах других производителей) ты можешь изменить, а какие нет.

Danware NetOpВ программе NetOp чувствуется сис-темный подход. Разработчики про-граммы не ограничились простым «удаленным помощником», а выстро-или целую систему функций, в кото-рой режим «удаленного помощника» – только одна их них. Программа имеет набор так называемых коммуникаци-онных профилей – набор заранее за-данных настроек для получения досту-па с использованием тех или иных про-токолов. Набор профилей потрясает – здесь и IPX, и NetBIOS и HTTP, и, ко-нечно же, LAN. Программа позволяет

Рисунок 6. Внешний вид окна настроек сервера Danware NetOp Host

Рисунок 7. Внешний вид программы Danware NetOp Guest

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

22

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

в широком диапазоне настроить оптимизацию передавае-мого контента – отключить можно не только фоновую кар-тинку, но и визуальные эффекты и даже Active Desktop.

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

Программа имеет возможность скрыть факт своего присутствия. Если программа запущена в так называемом stealth-режиме, ее можно «проявить», запустив специаль-ную программку showhost.exe.

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

все отключены. В этом случае с использованием режима «только просмотр» программа может быть использована как средство удаленного мониторинга.

Разумеется, не забыты и такие вещи, как передача фай-лов, обмен сообщениями, текстовыми и аудиовизуальными. Но настоящей «изюминкой» NetOp является так называе-мый remote management (я не перевожу этот термин, пото-му что для обозначения обычной сессии NetOp использует термин «remote control», что переводится практически точ-но так же). Remote management реализует некоторый набор задач, схожий с «Управлением компьютером» из стандарт-ной оснастки Windows-домена позволяет просмотреть со-стояние дисков, системные журналы, реестр, списки поль-зователей и групп, открыть сессию текстовой консоли и про-смотреть отчет об аппаратном и программном обеспечении сервера. Это действительно уникальная возможность, ко-торая делает NetOp незаменимым помощником системно-го администратора сетей Windows. Вы, конечно, спросите – а чем же она уникальна, когда все это есть в стандартных средствах? А тем, что компьютер, на котором установлен модуль Host, может входить в совсем другой домен или же не входить ни в какой.

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

Порт, используемый программой в профилях LAN (TCP), Internet (TCP) и TCP/IP – 6502. Его значение можно пере-определить. В профиле HTTP используется стандартный порт 80. Программа не совместима с другими средствами удаленного доступа.

Программа пока не имеет русскоязычного интерфейса, хотя версия для Windows переведена более чем на 10 языков. По информации представителей Danware в России, компа-нии «Аксис Проекты» (http://www.cybercontrol.ru) перевод на русский язык планируется в конце года. Распространя-ется по коммерческой лицензии. Стоимость программы вычисляется в зависимости от количества приобретаемых лицензий, причем модули сервера и клиента (Host и Guest) лицензируются отдельно. При этом стоимость варьируется в пределах – от $275 до 1 Host + 1 Guest, до $40 за 1 Host при покупке более 500 лицензий Host.

Рисунок 8. Внешний вид окна настроек сервера UltraVNC Рисунок 10. Внешний вид программы UltraVNC Viewer

Рисунок 9. Внешний вид окна UltraVNC Viewer, подключенного к удаленному узлу

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

23№5, май 2007

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

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

UltraVNCСледующие программы представляют собой развитие протокола VNC, разра-ботанного AT&T, в отличие от двух пре-дыдущих, в основе работы которых ле-жат закрытые коммерческие реализа-ции протоколов. Протокол VNC име-ет открытую реализацию и на основе этой реализации разработано несколь-ко клиентов, как свободно распростра-няемых, так и коммерческих.

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

Программа имеет возможность шифровки контента с помощью под-ключаемого плагина MSRC4Plugin.dsm. Правда, возможность его использова-ния есть только тогда, когда с другой стороны работает тоже UltraVNC. На-строить шифрование автоматически тоже не получится – необходимо сна-чала скопировать файл MSRC4Plugin.dsm из подкаталога plugin в основной каталог, потом сгенерировать ключ в файл new_rc4.key, переименовать его в rc4.key, и только потом можно ис-пользовать.

Программа имеет возможность ра-боты в stealth-режиме и даже возмож-ность запретить пользователю закрыть процесс WinVNC (для пользователя, не являющегося администратором удаленного компьютера), что делает ее идеальным инструментом для на-блюдения в режиме view-only.

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

чения обработки событий мыши и кла-виатуры. Работает программа на стан-дартном порту 5900. Из дополнитель-ных сервисов присутствует только HTTP-сервер на стандартном же пор-ту 5800, при заходе на который с по-мощью Java-апплета можно управлять удаленным компьютером, так же как из запущенного клиента.

UltraVNC Viewer позволяет подклю-читься к произвольному порту VNC, а не только к стандартному (это будет актуально при рассмотрении способов подключения к не Windows-компьюте-рам). Порт задается стандартным об-разом через двоеточие после IP-адре-са. Программа имеет возможность пе-редачи файлов между сервером и кли-ентом, но только в том случае, если и сервером и клиентом являются про-граммы UltraVNC (поскольку все реа-лизации VNC совместимы между со-бой, сервер и клиент могут быть раз-ных версий). Также программа имеет возможность обмена текстовыми со-общениями.

Если значок не скрыт из системно-го лотка, то при подключении клиента он меняет цвет с синего на зеленый.

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

Дополнительно можно заметить, что последние версии Dr.Web рас-познают UltraVNC как Вирус:Program.Remoute.Admin.37. История повторя-ется...

Личное мнение: если необходим лицензионно чистый и бесплатный кли-ент VNC – то UltraVNC – это ваш выбор. Со своей зада-чей он справляет-ся вполне, имеет богатые возмож-ности по настрой-ке. Конечно, он не обладает всеми возможностями NetOp, но... зато бесплатный.

RealVNCRealVNC – это своего рода ком-м е рч е с к и й в а -риант UltraVNC, а потому он пре-

доставляет некоторые возможности, отсутствующие в свободных реализа-циях VNC.

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

Во вторую очередь, это шифро-вание контента. Для шифрования ис-пользуется алгоритм AES со 128-бит-ным ключом. Настраивается шифро-

Рисунок 11. Внешний вид окна настроек сервера RealVNC

Рисунок 12. Внешний вид программы RealVNC Viewer

Рисунок 13. Внешний вид окна настроек сервера TightVNC

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

24

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

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

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

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

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

Программа имеет возможность от-ключения обработки событий мыши и клавиатуры, обеспечивая тем самым переход в режим view-only. Работает программа на стандартном порту 5900. Из дополнительных сервисов присутс-твует только HTTP-сервер на стандар-тном же порту 5800, при заходе на ко-торый с помощью Java-апплета можно управлять компьютером.

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

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

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

При подключении клиента цвет значка в системном лотке меняется на инверсный и становится черным.

Программа не имеет русскоязыч-ного интерфейса и распространяется по коммерческой лицензии. Стоимость программы составляет 50 долларов. Существует также свободная версия программы, в которой все «лишние»

Рисунок 15. Внешний вид окна TightVNC Viewer, подключенного к удаленному узлуРисунок 14. Внешний вид программы TightVNC Viewer

Рисунок 16. Внешний вид программы Timbuktu Рисунок 17. Внешний вид программы Krdc

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

25№5, май 2007

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

функции типа передачи файлов между сервером и клиен-том обрезаны.

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

MetaVNC и TightVNCПрограммы объединены вместе по той простой причине, что они на самом деле похожи, как близнецы-братья. Точ-нее говоря, как отец и сын, поскольку MetaVNC создан на базе кода TightVNC. Не совсем понятно, почему TightVNC получил такое название (tight (англ.) – узкий, тесный), на-верное, разработчики старались подчеркнуть факт, что ком-пьютеры, связанные этой программой, связаны очень тес-но. На деле же эти программы – наиболее простые и огра-ниченные по возможностям.

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

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

Программы имеют возможности понижения настроек графики. Из дополнительных сервисов присутствует толь-ко стандартный для VNC сервера сервис – HTTP-сервер, заходя на который с помощью Java-апплета можно управ-лять компьютером. Программы имеют возможность пере-дачи файлов между клиентом и сервером. Причем они на-столько похожи друг на друга, что функция передачи фай-лов работает даже в том случае, когда сервер – MetaVNC, а клиент TightVNC и наоборот.

Программы используют стандартный для VNC порт 5900 (5800 для HTTP-сервера), кото-рый можно изменить в настройках сервера.

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

Программы не имеют русскоязыч-ного интерфейса. Распространяются свободно, по лицензии LGPL.

Скриншоты программы MetaVNC похожи на TightVNC как братья-близнецы.

По сути, единственное отличие, которое есть у MetaVNC от TightVNC – это умение делать прозрачный фон главно-го окна.

Личное мнение: несмотря на то что TightVNC был пер-вой программой VNC, с которой я имел дело, сказать о нем хорошего я могу только «он работает». Это совершенно за-урядная, весьма ограниченная по функциям программа, ко-торая, конечно, работает, но не умеет ничего такого, чего не умела бы UltraVNC.

Timbuktu ProЭта программа – единственная в нашем обзоре, с помощью которой можно из Windows управлять компьютером под уп-равлением MacOS или наоборот.

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

Рисунок 18. Внешний вид Krdc, подключенного к удаленному узлу

Рисунок 19. Внешний вид модуля KDE, выполняющего роль сервера VNC

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

26

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

Имеются и возможности отключения обработки собы-тий мыши и клавиатуры, что позволяет перейти в режим View-Only (в Timbuktru это называется Observe).

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

В программе отсутствует возможность шифрования кон-тента. Имеется только возможность шифрования с помо-щью SSH, при условии, что на целевом компьютере функ-ционирует SSH-сервер.

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

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

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

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

Программа не имеет русскоязычного интерфейса, хо-тя переведена на 5 языков. Распространяется по коммер-ческой лицензии, стоимость которой изменяется в зави-симости от числа купленных лицензий. Стоимость одной лицензии составляет $89. Внешний вид окна программы приведен на рис. 16. Внешний вид подключенного клиента не приводится, потому что его интерфейс похож на интер-фейс клиента RealVNC – все действия вызываются из ме-ню, которое появляется при нажатии правой кнопки на за-головке окна.

Личное мнение: совершенно заурядная, хоть и коммер-ческая программа, единственная существенная особен-ность которой – возможность работы с хостами под управ-лением MacOS. Если задачи удаленного управления ком-пьютером с MacOS не стоит, подумайте перед приобрете-нием лицензии на Timbuktu – может быть, лучше приобрес-ти лицензии на Radmin или NetOp?

Связь между Windows и UNIX с помощью VNCДо этого момента рассматривались только варианты под-ключения Windows к Windows. А как обстоят дела с воз-можностью подключения к Windows из UNIX или наоборот – к UNIX из Windows?

Разумеется здесь нет такого разнообразия клиентов, но по сути оно вовсе и не нужно. Подключение к Windows из UNIX реализуется консольной программой vncviewer или же программной для KDE Krdc – своего рода оболоч-кой оболочек, позволяющей подключаться к VNC и RDC серверам при наличии в системе соответственно vncviewer и rdesktop. Программа vncviewer входит в состав пакетов TightVNC, TridiaVNC и свободно распространяемого набо-ра базовых компонент (core libraries) от NoMachine, где он

Рисунок 20. Внешний вид клиента под Windows, подключенного к UNIX

Рисунок 21. Внешний вид «сервера» удаленного помощника в Windows XP

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

27№5, май 2007

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

называется nxviewer. Несмотря на то, что проект TridiaVNC больше не разрабатывается, о чем сказано на сайте про-екта, порт для FreeBSD существует, и его все еще можно скачать и собрать.

Внешний вид клиента Krdc приведен на рис. 17.Программа vncviewer обеспечивает понижение настро-

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

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

Внешний вид подключенного клиента приведен на рис. 18.

А что же до сессии «удаленного помощника» для UNIX? Думаете, такое невозможно? Ошибаетесь. Хоть оно, с мо-ей точки зрения, и не сильно востребовано, но возможно. А это значит, что кем-то оно используется. KDE содержит в своем составе сервер VNC, который называется «Shared Desktop». Он может быть включен, как и любой другой ком-понент KDE, через Control Center. Данный сервер поддержи-вает только упрощенную авторизацию с помощью одного пароля либо авторизацию, основанную на модели «пригла-шений» (Invitations), в которых указывается пароль на дан-ное приглашение.

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

Внешний вид модуля KDE, выполняющего роль серве-ра VNC, показан на рис. 19.

Внешний вид клиента, подключенного к UNIX-десктопу (UltraVNC Viewer), показан на рис. 20.

Ради справедливости должен заметить, что при работе в клиенте, подключенном к серверу VNC под UNIX (в режи-ме «удаленного помощника», а не в отдельной сессии), ощу-

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

Личное мнение: подключение к UNIX в графическом ре-жиме – задача весьма экзотическая, а подключение к раз-деляемой сессии – экзотическая вдвойне. Но для того, ко-му она может понадобиться – она есть, она работает. При-мерно на уровне TightVNC, но работает.

«Удаленный помощник» в Windows XPРазумеется, Microsoft не мог спокойно пройти мимо то-го, что посторонние фирмы зарабатывают деньги на про-граммном обеспечении, которое он не может предложить. И в Windows XP появился так называемый удаленный по-мощник. Что он представляет собой? По сути дела, это встроенный сервер, организовывающий подключение к разделяемой сессии, только с использованием протоко-ла RDC, лишенный дополнительных функций типа пере-дачи файлов и использующий для авторизации средства Windows. В «серверной» части можно только его включить

Рисунок 22. Внешний вид экрана настроек Terminal Server ConfigurationРисунок 23. Внешний вид клиента Remote Desktop Connection

Рисунок 24. Внешний вид клиента rdesktop, подключенного из KDE

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

28

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

и указать пользователей, которым будет разрешено под-ключаться к данному компьютеру. Внешний вид «серве-ра» приведен на рис. 21. Слово «сервер» здесь недаром взято в кавычки – в отличие от настоящего терминально-го сервера все настройки здесь либо жестко задаются в реестре Windows, либо задаются со стороны клиента. Ра-зумеется, здесь отсутствуют все дополнительные серви-сы вроде файлообмена. Зато входит в стоимость Windows, и устанавливать не надо. Для подключения к такому «сер-веру» можно использовать клиентов, поддерживающих протокол RDC – Remote Desktop Connection под Windows или rdesktop под UNIX.

Программы для организации терминальных сессийНазначение программ этой группы очень отличается от предыдущей. Если в программах группы «удаленный помощник» необходима была одновременность дейс-

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

Почему «в графическом режи-ме»? Потому что в текстовом режиме возможность одновременной работы на UNIX-серверах существует чуть ли не с самого дня их основания, а для пользователей Windows терминаль-ные сессии в текстовом режиме были невостребованы.

Но все меняется, и появились терминальные серверы – сначала Windows NT Terminal Server Edition, потом Windows 2000, потом Windows 2003. Терминальный сервер в них – это

обычный сервис, который стартует как сервис и настраи-вается как сервис – через MMC.

Как ни странно, но протокол RDC (Remote Desktop Connection) открытый, поэтому существует возможность организации терминальных сессий не только Windows → Windows, но и Windows → UNIX и UNIX → Windows.

Мы рассмотрим все варианты.

Организация терминальных сессий Windows → WindowsНе всем, наверное, известно, что протокол RDC, применя-емый Microsoft, и «гигант» терминальных серверов Citrix MetaFrame были изначально разработаны одним и тем же человеком, а именно Эдом Якобуччи, впоследствии осно-вавшим Citrix Systems. Было это еще в далеком 1989 году, во время совместной работы Microsoft и IBM над OS/2, где Якобуччи возглавлял группу разработчиков. Впоследствии Microsoft приобрела у Citrix лицензию на разработанную ею технологию MultiWin с целью встроить ее в будущие вер-сии операционной системы. И в мир пришли терминаль-ные серверы от Microsoft.

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

Терминальный сервер Windows функционирует точ-но так же, как и любая другая служба – с возможностями настройки через Microsoft Management Console и управ-лением через специальную программу Terminal Services

Рисунок 25. Клиент UltraVNC, подключенный к VNC-серверу UNIX

Рисунок 26. Внешний вид окна Xbrowser

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

29№5, май 2007

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

Manager. Эта служба работает на всех серверных версиях Windows, начиная с Windows 2000 Server. Правда, здесь Microsoft пошла на хитрость. Сущест-вует также служба Terminal Server Licensing, в отсутствие которой служ-ба Terminal Server принимает макси-мум 2 одновременных удаленных со-единения, а также (для Windows 2003 Server) работает только 120 дней с мо-мента приема первого соединения. А служба Terminal Server Licensing тре-бует лицензии, стоящие отдельных де-нег. Так что желающим запустить сер-вер приложений, работающий через RDC, стоит подумать над весьма не-маленьким бюджетом такого реше-ния (пакет лицензий из 5 штук – $700, из 20 – $2800, информация взята с сай-та http://www.softline.ru).

Terminal Server имеет достаточ-ное количество настроек. Большинс-тво из них предназначены для на-стройки процесса регистрации поль-зователя в системе – возможно, на-пример, отключить выполнение про-грамм из секции автозапуска, настро-ить группы устройств, которые будут автоматически подключаться – дис-ки, принтеры и т. д., ограничить сес-сию пользователя по времени. Можно задать настройки шифрования, ука-зать группу (или группы) пользова-телей, которые смогут пользоваться данным сервисом и понизить качес-тво графики для ускорения работы. Внешний вид подключенного клиента ничем не отличается от обычного ра-бочего стола и напоминает «Windows внутри Windows».

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

Дистрибутив клиента находится в %SYSTEMROOT%/system32/clients/tsclient/win32.

Сервер RDC работает на TCP-порту 3389 и не предоставляет возможности его изменить.

Внешний вид программы для на-строек терминального сервера приве-ден на рис. 22.

Внешний вид клиента RDC приве-ден на рис. 23.

Организация терминальных сессий UNIX → WindowsОрганизация терминальных сессий UNIX → Windows практически ничем не отличается от терминальных сес-сий Windows → Windows. Меняется раз-ве что клиент – вместо Remote Desktop Connection используется rdesktop с ин-терфейсом из командной строки или «оболочка оболочек» Krdc, который тем не менее все равно требует нали-чия rdesktop.

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

Настроек у Krdc значительно мень-ше, чем у Remote Desktop Connection, можно указать разрешение экрана, на-стройки графики, тип протокола RDC и работу в режиме «view-only», при-чем большинство параметров придет-ся задавать из командной строки. Имя пользователя, пароль и домен берут-ся из настроек KDE. Для rdesktop эти значения указываются в командной строке. Если не указано ничего, соот-ветствующие строки при начале со-единения будут пустыми, если указа-ны – будут подставлены указанные значения.

Внешний вид клиента rdesktop, подключенного из KDE, приведен на рис. 24.

Личное мнение: rdesktop – основ-ной инструмент системного админис-тратора, а krdc – бесполезная игрушка. Список серверов, который она должна выдавать, строится только на основа-нии протокола SLP и в сетях Windows совершенно бесполезен. С моей точ-ки зрения, более удобно меню, в ко-тором вызывается непосредственно rdesktop со всеми необходимыми па-раметрами.

Терминальная сессия Windows → UNIX через XvncДа-да, вы не ошиблись. Это возмож-но. И даже не очень сложно. Для это-го достаточно на Windows иметь VNC-клиента, который умеет подключаться к произвольному порту VNC (UltraVNC, RealVNC), а на сервере – програм-му Xvnc и ее скрипт запуска vncserver. Обе эти программы входят в пакеты TightVNC или TridiaVNC.

Работает это все следующим обра-зом – пользователь запускает на UNIX сервер VNC с помощью скрипта vncserver. Vncserver запускает Xvnc, ко-торый создает новый X-сервер на за-данном порту плюс 1 и HTTP-сервер на заданном HTTP-порту плюс 1. Ес-ли в домашнем каталоге отсутствовал подкаталог .vnc, то он создается, в нем создается стартовый скрипт по умол-чанию xstartup, который вызывается при начале сессии на данном сервере. Здесь же записывается журнал, в ко-торый выводятся все сообщения (ана-

Рисунок 27. Внешний вид Xmanager, подключенного к клиенту

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

30

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

лог .xsession-errors) и статистика работы по окончании сес-сии (см. вывод журнала).

При запуске другого VNC-сервера от другого пользова-теля он будет размещен на другом порту. Таким образом од-новременно может функционировать фактически неогра-ниченное количество серверов.

Теперь понятно, зачем нужен был клиент, в котором можно было бы задавать произвольный порт – VNC-серве-ры размещаются, начиная с порта 5901, при этом при под-ключении образуется новая сессия, совершенно независя-щая от той сессии, которая в данный момент открыта ло-

кально и, возможно, управляется удаленно через Shared Desktop сервис KDE.

Внешний вид Windows-клиента (в данном случае UltraVNC), подключенного таким образом к VNC-серверу, приведен на рис. 25.

Личное мнение: наиболее простой и экономичный спо-соб работы в терминальной сессии. Настройки скорости ра-боты будут определяться в большей степени клиентом. В не-которых дистрибутивах Linux (например, SuSE) vnc включа-ется на этапе установки как встроенный сервис.

Терминальная сессия Windows → UNIX через XDMCPВ этом мире возможна даже такая вещь, какой бы невоз-можной она ни казалась. Фирма NetSarang Computers для этой цели выпускает специальную программу Xmanager, последнюю версию которой 2.0 мы и рассмотрим.

Правда, для начала нам придется привыкнуть к одной на первый взгляд невероятной вещи – в Х Windows System сервер – это то место, где экран, а то место, где запускают-ся программы, – клиент, то есть все с точностью до наобо-рот по отношению к тому, как это воспринимается обычно. Таким образом, в Windows запускается X-сервер, в котором работают клиентские приложения на UNIX. Итак, что собой представляет Xmanager? Это довольно неплохо выполнен-ная по дизайну программа, которая является X-сервером, позволяющим с помощью xdm/kdm авторизоваться в кли-ентской системе и запустить там программы. Xmanager за-поминает созданные сессии, может отображать клиентов, с которых были обнаружены широковещательные пакеты, позволяет выбирать метод подключения и т. д. Внешний

вид подобен Radmin и Timbuktu – ра-бочая область, в которой размещают-ся значки, каждый из которых обозна-чает сессию определенного типа – ста-тическую, динамическую или сессию, созданную через Xstart. Внешний вид окна Xbrowser приведен на рис. 26.

После подключения в окне запус-кается новая X-сессия через xdm/kdm, который соединяется с Xmanager. Ис-пользуется стандартный TCP-порт 177. В окне, создаваемом сервером, не со-здается панелей инструментов, вместо этого, так же как Timbuktu и RealVNC при нажатии правой кнопки на заго-ловке окна, появляется меню, в кото-ром можно настроить свойства под-ключения, сбросить его и т. д. Здесь важно помнить, что в XDMCP, точно так же как в Radmin, отсутствуют ка-кие бы то ни было средства для со-кращения трафика между клиентом и сервером типа отключения фоновой картинки, упрощения настроек графи-ки, то есть вся разница между локаль-ным и удаленным пользователем бу-дет только в месте расположения кла-виатуры и мыши, все остальное будет

Рисунок 28. Внешний вид клиента NX Client для Windows

24/03/07 01:29:36 Xvnc version TightVNC-1.3.824/03/07 01:29:36 Copyright (C) 2000-2006 Constantin Kaplinsky24/03/07 01:29:36 Copyright (C) 1999 AT&T Laboratories Cambridge24/03/07 01:29:36 All Rights Reserved.24/03/07 01:29:36 See http://www.tightvnc.com/ for information on TightVNC24/03/07 01:29:36 Desktop name 'X' (vmfree.shelton.net:2)24/03/07 01:29:36 Protocol versions supported: 3.7t, 3.7, 3.324/03/07 01:29:36 Listening for VNC connections on TCP port 590224/03/07 01:29:36 Listening for HTTP connections on TCP port 580224/03/07 01:29:36 URL http://vmfree.shelton.net:5802xrdb: No such file or directoryxrdb: can't open file '/root/.Xresources'Warning: kbuildsycoca is unable to register with DCOP.kbuildsycoca running.......................24/03/07 01:32:42 Got connection from client 192.168.203.124/03/07 01:32:42 Using protocol version 3.724/03/07 01:32:45 Full-control authentication passed by 192.168.203.124/03/07 01:32:45 Using hextile encoding for client 192.168.203.124/03/07 01:32:45 Pixel format for client 192.168.203.1:24/03/07 01:32:45 16 bpp, depth 16, little endian24/03/07 01:32:45 true colour: max r 31 g 63 b 31, shift r 11 g 5 b 024/03/07 01:32:45 no translation needed24/03/07 01:32:45 Enabling full-color cursor updates for client 192.168.203.124/03/07 01:32:45 rfbProcessClientNormalMessage: ignoring unknown encoding -22324/03/07 01:32:45 Using hextile encoding for client 192.168.203.124/03/07 01:32:45 rfbProcessClientNormalMessage: ignoring unknown encoding 1624/03/07 01:32:45 rfbProcessClientNormalMessage: ignoring unknown encoding 15xterm: unable to open font "9x18", trying "fixed"....24/03/07 01:33:28 Client 192.168.203.1 gone24/03/07 01:33:28 Statistics:24/03/07 01:33:28 key events received 24, pointer events 64624/03/07 01:33:28 framebuffer updates 246, rectangles 724, bytes 242321624/03/07 01:33:28 cursor shape updates 55, bytes 2307624/03/07 01:33:28 copyRect rectangles 77, bytes 123224/03/07 01:33:28 hextile rectangles 592, bytes 239890824/03/07 01:33:28 raw bytes equivalent 5258382, compression ratio 2.191990

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

31№5, май 2007

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

точно таким же, как при локальной ре-гистрации.

Планировка устройств выполняет-ся самим Xmanager. Также здесь обяза-тельно нужно заметить, что Xmanager – это только X-сервер, создающий сес-сии путем подключения к клиентам. Он не способен сам принимать кли-ентские подключения. Внешний вид Xbrowser, подключившегося к клиен-ту UNIX, приведен на рис. 27.

Личное мнение: Все, что мне по-надобилось сделать для того, чтобы этот метод заработал, – это разрешить kdm рассылать широковещательные сообщения XDMCP. Фактически это и есть терминальная сессия, в том ви-де, как мы привыкли ее воспринимать при работе по RDC.

Терминальная сессия Windows → UNIX через NXServerЕще одним вариантом запуска тер-минальной сессии с Windows на UNIX является использование програм-мы NX Client для Windows, разрабо-танный фирмой NoMachine. Програм-мные продукты NoMachine предна-значены для создания терминального сервера на базе Linux- и Solaris-плат-форм, открытого аналога не имеют, но поскольку их базовая часть (core libraries) лицензирована по GPL, су-ществует свободно распространяемая версия FreeNX, которая организовыва-ет терминальный сервер, например на FreeBSD, который мы и рассмотрим.

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

К сожалению, в жизни все оказа-лось более грустно. Может быть, пре-словутая «свобода», а может быть, просто недоработки привели к тому, что, во-первых, я очень долго возился с настройкой nxserver – в nxserver про-писаны жесткие пути к каталогу /home, которого у меня никогда не было, ис-пользует он исключительно OpenSSH, который я, в свою очередь, никогда не использую... Но как бы то ни было, мне удалось его настроить и запустить.

Правда, из всех вариантов сессий клиента заработала только unix-default, обозначаемая в списке как Custom. Окна UNIX-сессии, произвольно рас-

полагающиеся на Windows-дескто-пе, смотрятся довольно необычно (см. рис. 29).

Авторизация целиком зависит от настроек сервера, поскольку вся работа фактически выполняется че-рез сессию SSH – первоначально кли-ент подключается как пользователь nx, стартовой оболочкой у него запускает-ся nxserver, который выполняет поль-зовательскую авторизацию, управляет сессиями и т. д. Если UNIX-сервер спо-собен использовать пользовательские бюджеты Windows, то возможна авто-ризация с их применением.

Шифрование контента выполняет-ся точно так же, как это делает SSH, со всеми его возможностями по нас-тройке.

На стороне клиента возможна на-стройка работы с графикой. При ис-

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

Сервер может работать на любом доступном порту. У клиента сущест-вует одна, не очень очевидная про-блема – он написан с использованием Cygwin и поэтому может оказаться не-совместимым с другими программами, также использующими Cygwin.

Программы для удаленного выполнения задачТакой вот довольно корявый перевод термина Remote Management. Друго-го мне придумать не удалось, пото-му что это программы, на самом деле предназначенные для выполнения не-

Рисунок 29. Внешний вид сессии с NX-сервером

Рисунок 30. Главное окно программы IDEAL Administration

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

32

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

которого фиксированного набора за-дач на целевом компьютере. Мы крат-ко рассмотрим один вариант – IDEAL Administration под Windows.

IDEAL AdministrationС первого взгляда на программу IDEAL Administration от Pointdev сразу понима-ешь, что это не просто амбициозное название. В программе действительно есть все или почти все, что может пона-добиться системному администратору Windows в его работе, чтобы, не вста-вая с места, обслуживать десятки ком-пьютеров. Для этой программы пре-доставить доступ к клавиатуре и мы-

ши – не главное (хотя возможное, если на той стороне настроен TightVNC или совместимый сервис). Главное – полу-чить информацию и/или выполнить за-данную задачу. Любую. От получения информации о свойствах компьютера, до его удаленного выключения. От мо-ниторинга открытых файлов до низко-уровневого редактирования объектов Active Directory.

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

ленный домен, тип компьютера (сер-вер, рабочая станция) или операци-онную систему (правда, здесь список исчерпывается Windows, Novell, Apple и пр.). Внешний вид главного окна при-веден на рис. 30.

Как и положено, нажатие правой кнопки мыши вызывает появление кон-текстного меню, которое поражает сво-ими размерами (рис. 31).

Здесь представлены все возмож-ные операции, которые можно про-вести с данным компьютером. Я не бу-ду их перечислять – их названия гово-рят сами за себя, и их прекрасно зна-ет любой Windows-администратор. Но это еще не все – контекстное меню, вы-падающее при нажатии на компьютер в «обозревателе», отличается от кон-текстного меню в списке слева – оно меньше на пункты с операциями син-хронизации с DC, частичной или пол-ной. А возможность удаленного уп-равления процессами! А возможность удаленного просмотра свойств фай-лов (дата создания, дата модифика-ции, атрибуты, владелец, права на файл, см. рис. 32)! Заметьте, что я пе-речисляю только те задачи, которые невозможно решить через «Управле-ние компьютером».

Но это еще не все, чем богат IDEAL Administration. Не секрет, что основным инструментом для Windows-админист-ратора является MMC. А для управле-ния учетными записями пользоваете-лей – оснастки «Пользователи и ком-пьютеры», «Домены и доверительные

Рисунок 31. Контекстное меню объекта «Компьютер»

Рисунок 33. Редактор для создания и управления объектами «Пользователь», «Группа», «Компьютер» в IDEAL Administration

Рисунок 32. Просмотр свойств файла и прав на файл

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

33№5, май 2007

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

Программа Radmin NetOp UltraVNC MetaVNC TightVNC RealVNC Timbuktu

Используемый порт 4899 6502 5900 5900 5900 5900 407

Стоимость ($), за одну ли-цензию

49 40-2752 бесплатно бесплатно бесплатно 50 89

Клиенты Windows Windows, Linux, DOS, Solaris, Mac OS, Windows Mobile

Windows Windows Windows, Linux, FreeBSD

Windows Windows, Mac OS

Нас

трой

ки г

раф

ики

Отключение фона

нет да да да да да да

Отключение визуальных эффектов

нет да нет нет нет да да

Понижение цветности

нет да да да да да да

Нас

трой

ки у

прав

лени

я вв

одом

дан

ных

Отключение удаленной мыши

да да да да да да да

Отключение удаленной клавиатуры

да да да да да да да

View-only да да да да да да да

Авторизация Local (multi), Windows

Local (multi), Windows Local (single), Windows

Local (single) Local (single) Local (multi), Windows

Local (multi), Windows

Наличие русского интерфейса

да нет нет нет нет нет нет

Удобство использования1 высокое высокое среднее низкое низкое среднее среднее

Шифрование да да да нет нет да нет

Скрытие значка нет3 да да нет нет нет нет

Файлообмен да да да да да нет да

Обмен сообщениями да да да нет нет нет да

Дополнительные сервисы да да нет нет нет нет нет

1 Удобство использования – категория субьективная, она отражает оценку автора обзора и не более. 2 В зависимости от числа покупаемых лицензий цена меняется от 275 (1 Host + 1 Guest) до 40 за 1 Host при покупке более 500 Host-лицензий. 3 По специальному запросу под дополнительное соглашение представляется версия, которая может работать в stealth-режиме.

Сводная таблица по продуктам

отношения» и «Сети и сервисы». Кроме того, многие системные администра-торы используют программы для низ-коуровневого редактирования Active Directory, например ADSI Edit. Так вот, IDEAL Administration содержит собс-твенный вариант оснастки «Пользо-ватели и компьютеры», который, с мо-ей точки зрения, ничуть не хуже, чем от Microsoft (см. рис. 33). Единственный его минус – невозможность тут же пе-рейти в редактор групповой политики.

Но и это еще не все.IDEAL Administration содержит так-

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

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

от количества приобретаемых лицен-зий. Одна лицензия стоит 399 евро.

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

те подобрать программу, которая соот-ветствует вашим требованиям.

1. Remote Administrator (Radmin) – http://www.radmin.com.

2. Danware NetOp – http://www.netop.com.3. MetaVNC – http://metavnc.sourceforge.net.4. TightVNC – http://www.tightvnc.com.5. UltraVNC – http://ultravnc.sourceforge.net.6. RealVNC – http://www.realvnc.com.7. Pointdev IDEAL Administration –http://

www.pointdev.com.8. Remote Desktop Connection (RDC) –

http://www.microsoft.com.9. Timbuktu Pro версии 8.6.3 – http://www.

netopia.com.10. Xmanager версии 2.0 – http://www.

netsarang.com.11. NX Client для Windows – http://www.

nomachine.com.12. TridiaVNC версии 1.4 – ht tp://www.

tridiavnc.com.13. Rdesktop – http://www.rdesktop.org.14. Free NX server – http://www.nomachine.

com.

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

34

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

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

ще всего термин «VPN» ассоциирует-ся с передачей данных именно через Интернет.

Одним из промышленных стандар-тов для VPN является семейство про-токолов IPSec, о нем и пойдет речь се-годня.

В качестве сервера, принимающе-го VPN-подключения удаленных поль-зователей, используется распростра-ненный межсетевой экран Cisco PIX модель 501 (см. рис .1).

Этот младший представитель се-мейства PIX 500 позиционируется как устройство для использования в малых и домашних офисах. Несмотря на это, его быстродействия достаточ-но для работы в качестве firewall в по-токе данных со скоростью до 60 Мбит/с. Применительно к VPN быстродействия PIX 501 хватает для обеспечения шифрования данных по алгоритму 3DES на скорости до 3 Мбит/с, а при использовании более современно-

Используем Cisco PIX для обеспечения VPN-подключений к локальной сети

Ильяс Кулиев

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

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

35№5, май 2007

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

го алгоритма шифрования AES-128 – до 4.5 Мбит/с. Аутентификация уда-ленных пользователей может произво-диться как с помощью логина и паро-ля, так и по цифровым сертификатам X.509. Мы остановимся только на пер-вом способе аутентификации.

Для простоты допустим, что этот же firewall PIX будет использовать-ся для предоставления внутренним рабочим станциям доступа в Интер-нет (NAT).

В качестве сервера аутентифи-кации будет использоваться сервер Microsoft Windows 2003. Наличие тако-го или подобного сервера типично для сети небольшого предприятия. На нем же зачастую работают сервисы DHCP, DNS, WINS – все это пригодится нам в дальнейшем (см. рис. 2).

Для VPN-подключения на компью-терах удаленных пользователей ис-пользуется штатный VPN-клиент Cisco. Его можно приобрести у поставщи-ков оборудования Cisco (Part Number CVPN-CLIENT-K9=). Почитать о нем вы можете на странице поддержки Cisco Systems: http://www.cisco.com/application/pdf/en/us/guest/products/ps2308/c1650/cdccont_0900aecd801a9de9.pdf.

Настройка Cisco PIXСначала выполним обычную процеду-ру, подключившись к PIX через кон-сольный порт:

Давайте посмотрим, что он из себя представляет. Нас особенно интересу-ет раздел Licensed Features:

Войдя в режим конфигурирования, начнем настройку:

Определим внешний и внутренний интерфейсы и присвоим им IP-адреса:

Рисунок 1. Внешний вид межсетевого экрана Cisco PIX 501

Рисунок 2. Схема сети

pixfirewall> enable

Username: pixPassword: *****pixfirewall#

Как видите, на нашем firewall уста-новлены лицензии, позволяющие ис-пользовать его для работы с VPN, алго-ритмы шифрования DES, 3DES и AES. Количество одновременных VPN-под-ключений ограничено 10 пользовате-лями (строчка IKE peers).

В случае если на PIX не установле-ны лицензии VPN, их можно бесплат-но получить на веб-сайте Cisco: http://www.cisco.com/go/license. Предвари-тельным условием для этого является регистрация: http://tools.cisco.com/RPF/register/register.do.

Мы будем использовать для на-шей VPN алгоритм шифрования 3DES, как наиболее защищенный. Как уже го-ворилось, PIX 501 имеет известное ог-раничение производительности в этом режиме – не более 3 Мбит/с – но учиты-вая, что у нас в любом случае не может быть одновременно подключено более 10 пользователей, это не столь важно.

# show version

Cisco PIX Firewall Version 6.3(3)Cisco PIX Device Manager Version 3.0(1)

(часть вывода удалена)

Licensed Features:Failover: DisabledVPN-DES: EnabledVPN-3DES-AES: EnabledMaximum Physical Interfaces: 2Maximum Interfaces: 2Cut-through Proxy: EnabledGuards: EnabledURL-filtering: EnabledInside Hosts: 50Throughput: UnlimitedIKE peers: 10

# conf t

pixfirewall(config)#

# interface ethernet0 auto# interface ethernet1 auto# nameif ethernet0 outside ↵ security0# nameif ethernet1 inside ↵ security100

Рисунок 3. Создание нового RADIUS-клиента в IAS

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

36

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

Добавляем маршрут по умолчанию:

Мы будем выдавать подключающимся VPN-клиентам адреса из диапазона 192.168.250.1–192.168.250.14. Созда-дим пул этих адресов под названием vpnclient:

Включим NAT, и учтем при этом, что пакеты, направляю-щиеся из локальной сети к клиентам VPN, подвергать NAT не нужно. Для того чтобы исключить эти пакеты из процес-са NAT, напишем простой access-лист:

Будем использовать имеющийся в сети сервер Windows 2003 как сервер аутентификации. Чуть позднее расскажу об этом поподробнее, а пока что включим на PIX использование протокола RADIUS для этого сервера:

Поскольку на firewall PIX по умолчанию запрещены вхо-дящие IP-пакеты, нужно в явном виде дать ему разреше-ние принимать входящие VPN-подключения:

Подготовительные шаги завершены, теперь начина-ем настраивать VPN. Сначала определим, какой алгоритм шифрования и подписывания пакетов будет использовать-ся. Мы уже решили, что шифрование данных будет осущест-вляться по алгоритму 3DES. Описываем это в трансформе с условным именем mytrans1:

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

Создадим такую карту с условным именем dynmap и ука-жем в ней использование только что созданного трансфор-ма mytrans1:

и уже эту динамическую карту добавляем в криптокарту, назовем ее mymap:

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

Привяжем криптокарту к внешнему интерфейсу PIX, что-бы определить, откуда следует ожидать входящих VPN-со-единений:

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

# access−list 101 permit ip 192.168.224.0 255.255.255.0 ↵ 192.168.250.0 255.255.255.240

# aaa−server RADIUS protocol radius# aaa−server partnerauth protocol radius# aaa-server partnerauth (inside) host 192.168.224.127 ↵ radiuspassword timeout 10

# sysopt connection permit−ipsec

# crypto ipsec transform-set mytrans1 esp-3des esp-md5-hmac

# crypto dynamic-map dynmap 10 set transform-set mytrans1

# crypto map mymap 10 ipsec-isakmp dynamic dynmap

# crypto map mymap client authentication partnerauth

# crypto map mymap interface outside

Рисунок 4. Присвоение новому RADIUS-клиенту IP-адреса и имени

Рисунок 5. Ввод пароля для RADIUS-клиента

Рисунок 6. Создание новой политики удаленного доступа

# ip address outside ↵ 1.1.1.1 255.255.255.252# ip address inside ↵ 192.168.224.1 255.255.255.0

# route outside 0.0.0.0 0.0.0.0 1.1.1.2

# ip local pool vpnclient 192.168.250.1-192.168.250.14

# global (outside) 1 1.1.1.1# nat (inside) 0 access−list 101# nat (inside) 1 0.0.0.0 0.0.0.0 0 0

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

37№5, май 2007

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

Настроим его:

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

Мы можем разделить подключающихся пользователей на несколько групп, в зависимости от того, например, к ка-ким ресурсам им следует предоставить доступ. Пользова-телям, входящим в разные группы, могут выделяться IP-ад-реса из разных пулов, так чтобы в дальнейшем системный администратор смог, основываясь на адресе клиента, раз-граничивать ему доступ к сетевым ресурсам. В нашем при-мере такая группа одна, под названием pixvpn, групповой пароль – myVPNgrouppassword.

Аутентификация каждого пользователя происходит в два приема, и идея здесь такова. Сначала мы проверяем принадлежность пользователя VPN к той или иной группе и на этом основании выдаем ему IP-адрес, сообщаем адреса серверов DNS и WINS и имя домена. Затем мы запрашиваем у пользователя его личные логин и пароль, под которыми он известен в домене нашей локальной сети. Эти данные пе-редаются на сервер RADIUS, который проверяет их, а также проверяет, есть ли у пользователя право на удаленный до-ступ к сети. Если логин и пароль домена введены правиль-но, и если у пользователя есть право на удаленный доступ, сервер RADIUS возвращает подтверждающий ответ, и поль-зователю предоставляется доступ. Достоинство этой схе-мы – гибкость. У любого пользователя в любой момент мож-но отобрать право подключаться к VPN, и наоборот – любо-му пользователю можно такое право дать, с минимумом за-траченного времени системного администратора. Ещё бо-лее удобной и безопасной схемой является схема с аутенти-фикацией по сертификатам X.509, но она требует несколько больше усилий для настройки (развертывание PKI, созда-ние и поддержка центра сертификации, и т. п.).

Итак, мы конфигурируем групповые настройки для груп-пы pixvpn, и на этом настройка PIX заканчивается:

О строчке «vpngroup pixvpn split-tunnel 101» следует ска-зать особо. В ней VPN-клиенту дается указание шифровать исключительно сетевой трафик, передаваемый по VPN и предназначенный для локальной сети (ACL 101), весь. В противном случае после подключения к VPN у удален-ного пользователя пропал бы доступ в Интернет, и остал-ся лишь доступ через VPN к локальной сети.

Выходим из режима настройки:

# isakmp enable outside# isakmp policy 10 authentication pre-share# isakmp policy 10 encryption 3des# isakmp policy 10 hash md5# isakmp policy 10 group 2# isakmp policy 10 lifetime 3600

# vpngroup pixvpn address−pool vpnclient# vpngroup pixvpn dns−server 192.168.224.127# vpngroup pixvpn wins−server 192.168.224.127# vpngroup pixvpn default−domain peanuts-unlimited.local# vpngroup pixvpn split-tunnel 101# vpngroup pixvpn idle−time 1800# vpngroup pixvpn password myVPNgrouppassword

# exit

Рисунок 7. Присвоение имени новой политике удаленного доступа

Рисунок 8. Выбор способа удаленного доступа (VPN)

Рисунок 9. Добавление группы в создаваемую политику удаленного доступа

Рисунок 10. Новая политика создана

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

38

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

с паролем «radiuspassword» (поле «Shared secret») (см. рис. 5).

После этого нам нужно настроить политику доступа. Следует иметь в ви-ду, что при использовании политики для разграничения доступа на уров-не групп домен Windows должен рабо-тать в режиме Native mode. Если до-мен работает в смешанном режиме (Mixed mode), опция «Control access through Remote Access Policy» на за-кладке «Dial-In» в свойствах пользо-вателей будет недоступна.

Создадим в домене новую группу под названием, например, «VPN users», а затем в настройках сервера IAS со-здадим новую политику удаленного до-ступа, выбрав для простоты использо-вание мастера создания новой поли-тики. Ее настройки пока оставим та-кими, какими их предлагает мастер – откорректировать их можно позднее (см. рис. 6-9).

В результате после завершения ра-боты мастера создания новой полити-ки в Remote Access Policies сервера IAS появилась наша новая политика по имени VPN (см. рис. 10).

Как можно видеть на рис. 11, ус-ловием применения данной политики является принадлежность подключа-ющегося пользователя к группе «VPN users». При выполнении этого условия доступ пользователю будет открыт.

В завершение нужно отредактиро-вать профиль политики (кнопка «Edit Profile»). Следует разрешить переда-чу паролей PAP и CHAP, которые по умолчанию отключены. В данном слу-чае нет ничего страшного в том, что протокол PAP передает пароль без

и записываем изменения в память PIX, для сохранения конфигурации между перезагрузками:

Настройка Windows Server 2003Как уже говорилось, мы используем сервер Windows 2003. Для сервера Windows 2000 описание настройки бу-дет незначительно отличаться.

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

pixfirewall# wr mem

Building configuration...Cryptochecksum: 44b22e1d b86f29d9 c40e403f bd7098f6 [OK]pixfirewall#

Рисунок 11. Свойства созданной политики

Рисунок 12. Выбор метода аутентификации для удаленных соединений

Рисунок 13. Выбор метода шифрования данных для удаленных соединений

Маршутизаторы, коммутаторы и межсетевые экраны Cisco могут ис-пользовать два протокола аутенти-фикации и авторизации: TACACS+ (Terminal Access Controller Access-Control System) и RADIUS (Remote Authentication Dial-In User Service). Пер-вый из них был разработан компанией Cisco Systems и используется почти ис-ключительно в её продуктах. Второй – открытый протокол, и существует мно-жество его реализаций под различные операционные системы. В том числе – и под Windows. Компания Microsoft раз-работала собственную версию серве-ра RADIUS и назвала её IAS – Internet Authentication Service.

Надо сказать, что с таким же ус-пехом в качестве сервера аутенти-фикации можно было бы использо-вать, например, Cisco Secure ACS (Access Control Server), установленный на тот же сервер Windows 2003, или ка-кой-нибудь из многочисленных Open Source-серверов RADIUS. Реализация от Microsoft выбрана ввиду ее большей распространенности, а также потому, что нам, в сущности, требуется от не-го лишь базовая функциональность – проверка логина и пароля пользовате-ля в домене Windows.

В панели управления сервисом IAS создадим нового клиента RADIUS – наш PIX (cм. рис. 3).

В поле «Friendly name:» введем любое имя, например pix501, а в по-ле «Client address» – IP-адрес нашего VPN-шлюза (192.168.224.1) (см. рис. 4).

В следующем окне указываем сер-веру, что клиент будет работать с ним по стандартному протоколу RADIUS,

Рисунок 14. Создание нового соединения в Cisco VPN Client

Рисунок 15. Аутентификация пользователя сервером RADIUS

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

39№5, май 2007

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

шифрования, поскольку канал передачи уже и так зашиф-рован IPSec. Для этого выберите закладку «Authentication» (см. рис. 12).

По этой же причине нужно разрешить нешифрованную передачу данных (закладка «Encryption», см. рис. 13).

Дело сделано. Осталось добавить выбранных пользова-телей домена в группу «VPN users» и перейти к настройке клиентского программного обеспечения Cisco VPN.

Настройка Cisco VPN Client и проверка работыУстановка Cisco VPN Client тривиальна. После его установки в системе появляется виртуальный сетевой адаптер, не тре-бующий настройки. Запустив приложение, перейдем на за-кладку «Connection entries» и нажмем кнопку «New». В по-явившемся окне заполним данные группового VPN-досту-па и нажмем кнопку «Save» (см. рис. 14).

Настало время подключиться к удаленной сети через VPN. Нажимаем кнопку «Connect». Если первая ступень ау-тентификации прошла нормально, мы увидим появившее-ся окошко (cм. рис. 15).

Это означает, что началась вторая ступень аутенти-фикации, и теперь нам нужно ввести наши логин и пароль в удаленном домене. После ввода логина и пароля и нажа-тия кнопки «OK» окошко должно исчезнуть, а еще через полсекунды окошко Cisco VPN Client будет автоматически свернуто и помещено в системный трей. Нам удалось ус-тановить VPN-соединение.

Для проверки щелкнем правой кнопкой мыши на иконку Cisco VPN Client в трее и выберем «Statistics» (см. рис. 16).

Как видно на рис. 16, VPN-клиенту присвоен IP-адрес 192.168.250.1 (как мы помним, это первый адрес из пула вы-деляемых VPN-клиентам адресов), и наше подключение за-шифровано по алгоритму 3DES – как и предполагалось.

Попробуем что-нибудь отправить по этому соединению (см. рис. 17). Пакеты ICMP успешно путешествуют по за-шифрованному туннелю между нашим компьютером и сер-вером локальной сети. Для верности посмотрим еще на вы-вод команды ipconfig командного shell (см. рис. 18).

Из вывода ipconfig видно, что наш компьютер получил от VPN-шлюза не только собственный IP-адрес, но и адре-са DNS и WINS локальной сети. Благодаря этому пользо-ватель может просматривать домен через «Сетевое окру-жение» и с большими удобствами подключаться к сетевым ресурсам домена.

Любопытства ради можно взглянуть в журнал событий на сервере Windows. Мы увидим там примерно такое:

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

ЗаключениеОписанный в статье метод настройки межсетевого экрана Cisco относится не только к модели 501, но и ко всей линей-ке PIX, при том, однако, условии, что межсетевой экран ра-ботает под управлением операционной системы версии 6.x. Как уже говорилось, серьезным ограничением PIX 501 явля-ется количество одновременных подключений VPN – не бо-лее десяти. Если нужно обеспечить возможность одновре-менной работы большего количества удаленных пользова-телей, следует подумать о модели 506 (до 25 пользовате-лей) или даже модели 515E (до 2000 пользователей).

Рисунок 16. Статистика VPN-подключения

Рисунок 17. Результат проверки VPN-подключения

Рисунок 18. Проверка параметров VPN-подключения командой ipconfig

Event Type: InformationEvent Source: IASEvent Category: NoneEvent ID: 1Date: 3/30/2007Time: 3:10:54 PMUser: N/AComputer: MAINDescription:User i.petrov was granted access. Fully-Qualified-User-Name = peanuts-unlimited.local/Users/Ivan Petrov NAS-IP-Address = 192.168.224.1 NAS-Identifier = <not present> Client-Friendly-Name = pix501 Client-IP-Address = 192.168.224.1 Calling-Station-Identifier = 2.2.2.2

NAS-Port-Type = <not present> NAS-Port = 4 Proxy-Policy-Name = Use Windows authentication for all users Authentication-Provider = Windows Authentication-Server = <undetermined> Policy-Name = VPN Authentication-Type = PAP EAP-Type = <undetermined>

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

40

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

Split DNS: заставим BIND работать на два фронта!

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

Вы системный администратор организации, которая использует много внешних адресов и свои DNS-серверы? У вас единое адресное пространство для внешних и внутренних серверов? Вы используете разные DNS-серверы для внутренней и внешней сети? Не стоит так усложнять себе жизнь. Есть способ заставить BIND работать на два фронта!

BIND – DNS-сервер для UNIX. Для воплощения в жизнь инфор-мации из этой статьи вам потре-

буются знания UNIX и BIND на уровне продвинутого пользования.

Что такое Split DNS-конфигурация? Конфигурация BIND, позволяющая использовать различные настройки DNS в зависимости от адреса источ-ника запроса.

Для чего это может быть полез-но? Допустим, ваша организация на-зывается «Horns And Hooves inc.» и соответственно доменное имя hornsandhooves.ru. Вероятно, систем-ному администратору покажется удоб-ным назвать логичными и понятными

именами все свои серверы и рабочие компьютеры.

Например, сервер разработ-ки dev.hornsandhooves.ru, почтовые серверы – mx1.hornsandhooves.ru и mx2.hornsandhooves.ru, компьюте-ры сотрудников тоже захочется на-звать понятными именами, например bender.hornsandhooves.ru, panikovsky.hornsandhooves.ru и так далее.

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

мы с безопасностью и дополнитель-ные финансовые затраты.

Я знаю несколько системных ад-министраторов, которые покупа-ли и настраивали совершенно отде-льные DNS-серверы, один для интер-нет-сервисов, другой для внутренних сервисов. Схема их сети была такой, как на рис. 1. Как видим – DNS раз-делен на внутренние серверы, кото-рые обеспечивают разрешение имен внутренних сервисов, кэшируют запро-сы, разрешают имена и делают прочую полезную работу.

За брандмауэром расположены DNS-серверы для обслуживания зо-ны hornsandhooves.ru.

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

41№5, май 2007

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

нета, а в другом – зону для внутренней сети. Назовем их external и internal.

Файл конфигурации named.conf для master-сервера:

Листинг 1. Файл ext.hornsandhooves.ru

$TTL 86400hornsandhooves.ru. IN SOA ns1.hornsandhooves.ru. noc.hornsandhooves.ru. ( 2007032900 ; serial 21600 ; refresh (6 hours) 1200 ; retry (20 minutes) 86400 ; expire (1 day) 432000 ; minimum (5 days) ) IN NS ns1.hornsandhooves.ru. IN NS ns2.hornsandhooves.ru.

IN MX 5 mx1.hornsandhooves.ru. IN MX 10 mx2.hornsandhooves.ru.

IN A 194.0.1.1www IN A 194.0.1.1

ns1 IN A 194.0.1.3ns2 IN A 194.0.1.4

mx1 IN A 194.0.1.3mx2 IN A 194.0.1.4

Листинг 2. Файл int.hornsandhooves.ru

$TTL 86400hornsandhooves.ru. IN SOA ns1.hornsandhooves.ru. noc.hornsandhooves.ru. ( 2007032900 ; serial 21600 ; refresh (6 hours) 1200 ; retry (20 minutes) 86400 ; expire (1 day) 432000 ; minimum (5 days) ) IN NS ns1.hornsandhooves.ru. IN NS ns2.hornsandhooves.ru.

IN MX 5 mx1.hornsandhooves.ru. IN MX 10 mx2.hornsandhooves.ru.

IN A 192.168.1.1www IN A 192.168.1.1

ns1 IN A 192.168.1.3ns2 IN A 192.168.1.4

mx1 IN A 192.168.1.3mx2 IN A 192.168.1.4

dev IN A 192.168.1.10gate IN A 192.168.1.11filesrv IN A 192.168.1.12dhcp IN A 192.168.1.13

bender IN A 192.168.1.20panikovsky IN A 192.168.1.21funt IN A 192.168.1.22shura IN A 192.168.1.23

В каждом сервере по два сетевых интерфейса. Один имеет внешний IP-адрес (194.0.1.3 для ns1 и 194.0.1.4 для ns2), второй интерфейс име-ет адрес из внутренней сети (192.168.1.3 и 192.168.1.4 соот-ветственно).

О конфигурации с одним интерфейсом с внутренним адресом (например, если у вас DMZ) будет сказано в конце статьи.

В BIND 9 есть замечатель-ная возможность создавать Views (виды). В одном View мы расположим зону для Интер-

Вполне логичная и безопасная схе-ма, но экономически не эффективна и усложнена для администрирования.

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

Расщепление пространства имен. ВидыНам потребуется создать 2 разных файла зоны hornsandhooves.ru: один из них будет содержать информацию для Интернета, второй будет содер-жать информацию для внутренних клиентов.

Примечание: все доменные име-на и IP-адреса вымышлены, совпаде-ния случайны.

В файле зоны ext.hornsandhooves.ru указан минимальный набор серверов, необходимых для того, чтобы компания нормально работала, разрешала свои интернет-имена и принимала почту. При условии, что у регистратора зоны прописаны ваши DNS-серверы как от-ветственные за зону (см листинг 1).

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

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

Конфигурирование named.confДля начала разберемся с конфигура-цией наших DNS-серверов.

У нас 2 сервера, master и slave. Ns1 и ns2 соответственно. Они по совмес-тительству являются почтовыми серве-рами, ничто им не мешает заниматься еще и почтой.

options { directory "/var/named"; notify yes; pid-file "/var/run/named/named.pid"; statistics-file "named.stats";

};

controls { inet 127.0.0.1 allow { localhost; } ↵ keys { rndckey; };};

// Создадим ACL, в котором укажем, // что внутренние адреса – подсеть 192.168.1

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

42

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

acl "internals" {192.168.1.0/24; 127.0.0.1/32;};

// Объявляем вид – internal зоны для внутренней сетиview "internal" {

// Этот вид разрешено просматривать только // внутренним клиентам match-clients { "internals"; };

// Обозначим slave-сервер. Только ему разрешим // скачивать зону allow-transfer {192.168.1.4;};

// Наш сервер рекурсивен для внутренних клиентов, // сам будет узнавать адрес для клиента recursion yes;

//ROOT zone zone "." IN { type hint; file "named.ca"; };

//Forward zones zone "hornsandhooves.ru" in { type master; file "forward/int.hornsandhooves.ru"; };

//Reverse zone zone "1.168.192.in-addr.arpa" in { type master; file "reverse/1.168.192"; };

zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; };

zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; };};

// Объявляем вид для внешних запросовview "external" {

// К этому виду имеют доступ все match-clients {"any"; };

// Наш сервер не рекурсивен для Интернета allow-recursion { localhost; };

// Укажем внешний адрес slave-сервера allow-transfer { 194.0.1.4;};

//ROOT zone zone "." IN { type hint; file "named.ca"; };

//Forward zones zone "hornsandhooves.ru" in { type master; file "forward/ext.hornsandhooves.ru"; };

//Reverse zone zone "1.0.194.in-addr.arpa" in { type master; file "reverse/1.0.194"; };};

include "/etc/rndc.key"; // Файл можно сгенерировать командой // rndc-confgen -a -c /etc/rndc.key

чим 194.0.1.1. Если из внутренней сети дать запрос на раз-решение имени bender.hornsandhooves.ru, то получим 192.168.1.20, а если из Интернета, то ничего не получим. Вот так наш сервер стал работать на два фронта.

Теперь давайте разберемся со slave-сервером.Я не буду рассказывать, зачем нужен slave-сервер,

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

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

Конфигурационный файл named.conf для slave-сервера:

options { directory "/var/named"; notify yes; pid-file "/var/run/named/named.pid"; statistics-file "named.stats"; };

controls { inet 127.0.0.1 allow { localhost; } ↵ keys { rndckey; }; };

//ACLsacl "internals" {192.168.1.0/24; 127.0.0.1/32; };

view "internal" {

match-clients { "internals"; };

query-source address 192.168.1.4 port 43303;

recursion yes; // Здесь мы как раз указываем, с какого // интерфейса запрашиваем передачу зоны // В данном случае – с внутреннего, так как // на внутреннем виде, на мастере, трансфер // разрешен для внутреннего интерфейса transfer-source 192.168.1.4;

//ROOT zone zone "." IN { type hint; file "named.ca"; };

zone "hornsandhooves.ru" in { type slave; file "slave/int.hornsandhooves.ru"; masters { 192.168.1.3; }; };

zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; };

zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; };

//Reverse zone zone "1.168.192.in-addr.arpa" in { type slave; file "reverse/1.168.192"; masters { 192.168.1.3; }; };};

view "external" { match-clients {"any"; };

query-source address 194.0.1.4 port 43303;

Теперь, если с компьютера из внутренней сети сде-лать запрос на разрешение имени www.hornsandhooves.ru, то в ответ получим 192.168.1.1, если из Интернета, то полу-

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

43№5, май 2007

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

Здесь 192.168.1.5 – дополнительный интерфейс, кото-рым мы будем скачивать external view. Ему не разреше-но скачивать internal view (перед адресом стоит восклица-тельный знак).

Вот такое решение.

ПослесловиеЕсли отбросить UNIX и BIND составляющую прочитанной вами статьи, кстати, спасибо, что дочитали, то информа-цию можно применить к любому DNS-серверу на любой платформе.

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

Удачи!

Рисунок 1. Модель обычной расстановки DNS-серверов без использования Split DNS

allow-recursion { localhost; }; // Здесь мы указываем, что забираем зону // с внешнего интерфейса – только для него // на мастере внешняя зона отдается transfer-source 194.0.1.4;

//ROOT zone zone "." IN { type hint; file "named.ca"; };

//Forward zones zone "hornsandhooves.ru" in { type slave; file "slave/ext.hornsandhooves.ru"; masters { 194.0.1.3; }; };

//Reverse zone zone "1.0.194.in-addr.arpa" in { type slave; file "reverse/1.0.194"; masters { 194.0.1.3; }; };};

include "/etc/rndc.key";

Что получилось в результате?На рис. 2 схематично представлено, что примерно долж-

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

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

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

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

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

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

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

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

Конфигурация с DMZЕсли ваши серверы находятся в DMZ, то у них используют-ся только внутренние DMZ-IP-адреса, которые DMZ-марш-рутизатором транслируются во внешние. Как решить про-блему скачивания зон на slave-сервере?

Очень просто – поднимите дополнительный интерфейс на slave-сервере (можно alias, например eth0:1) и укажите его как transfer-source для одного из видов. На master-сер-вере для выбранного вида поставьте разрешение на ска-чивание, а для второго вида поставьте отказ в доступе. Де-лается это через acl.

Например:

Рисунок 2. Модель расстановки DNS-серверов при использовании Split DNS

acl "internals" {!192.168.1.5; 192.168.1.0/24;};

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

44

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

Наиболее известным протоко-лом мгновенного обмена со-общениями (instant messaging,

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

Строим Jabber-сервер с OpenFire

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

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

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

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

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

45№5, май 2007

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

лее он предназначен исключительно для административных целей, а лю-бой админ так или иначе должен вла-деть базовым английским. В установке по умолчанию OpenFire имеет большое количество возможностей, среди кото-рых управление списком пользовате-лей и отображение списка пользова-телей на клиентах, отправление сооб-щений пользователям, которые на дан-ный момент отключены, поиск пользо-вателей, а остальное (Asterisk, широ-ковещательные сообщения, IM-шлюз, контент-фильтр и прочее) реализуется посредством плагинов. Поддерживает работу по протоколам SSL/TLS. Опци-онально сервер способен использо-

Рисунок 1. Настройка соединения с базой данных

не должно никого пугать. Но зато его можно установить в любой системе, для которой доступен Java Runtime Environment (AIX, *BSD, HP-UX, Linux, MacOS X, Solaris, Windows). Для сохра-нения различных настроек и профи-лей можно использовать как внутрен-нюю базу данных HSQLDB, так и вне-шнюю. В качестве последних подде-рживаются: MySQL, Postgres, Microsoft SQL Server, Oracle, IBM DB2. Для ра-боты с ними понадобится JDBC-драй-вер. OpenFire очень прост в настрой-ке, все операции осуществляются че-рез понятный веб-интерфейс, кото-рый хотя и не локализован, но разо-браться с ним будет просто. Тем бо-

Рисунок 2. Создание пользователя

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

Если просмотреть доступные бес-платные предложения, то можно об-наружить, что в качестве ICQ-сер-вера на всех ресурсах рекомендует-ся только один – IServerd (ICQ server daemon) [1], изначально работающий только под UNIX-совместимыми систе-мами и весьма простой в настройках. Список же Jabber-серверов [2] на по-рядок больше. Напомню, что в Jabber для обмена сообщениями используют открытый протокол XMPP (eXtensible Messaging and Presence Protocol), ба-зирующийся на XML. Последнее да-ет большую гибкость и возможность расширения. Так, в принципе любой Jabber-сервер вполне способен под-держивать множество других протоко-лов – ICQ, IRQ, MSN, RSS, Yahoo и др. В одних это заложено в базовой конс-трукции, а в других с использовани-ем дополнительных модулей. Также Jabber позволяет организовать и груп-повые чаты. Поэтому вместо двух сер-веров (ICQ и IRC) вполне возможно обойтись и одним, что гораздо удоб-нее для пользователей и админист-раторов. Сам Jabber отличает проду-манная система защиты информации, все реализации серверов поддержи-вают SSL, а клиенты – шифрование с помощью PGP/GPG, пароли переда-ются не в открытом виде, а использу-ются md5-хеши. Проблем с кодировкой тоже нет, так как изначально исполь-зуется Unicode.

Проект OpenFireПосле знакомства со списком, при-веденным по ссылке [1], особен-но со столбцами «Feature Score» и License=Gnu GPL, из всех присутству-ющих можно отобрать лишь несколь-ко. Особо выделяется проект OpenFire (ранее – Wildfire), который позицио-нируется как открытая альтернатива проприетарным серверам мгновен-ных сообщений масштаба предпри-ятия. Написан на Java, по-моему, се-годня использование этого языка уже

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

46

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

вать существующую систему автори-зации предприятия на основе LDAP. Как и большинство подобных решений, OpenFire легко интегрируется в сеть серверов Jabber. Сервер выходит под двойной лицензией – Open Source GPL и коммерческий вариант. Все плагины, кроме двух: Spark Fastpath Webchat (веб-чат) и Wildfire Enterprise (графики, контроль версий клиентов, архивиро-вание) доступны под лицензией GPL. Для тестирования коммерческих пла-гинов необходимо вначале получить тестовый ключ, который даст возмож-ность полноценно погонять его в тече-ние 30 дней.

Устанавливаем OpenFireПеред началом установки OpenFire следует инсталлировать пакеты sun-java6-jre. И если планируется использо-вать внешний сервер базы данных, то и его. Тестовая уста-новка производилась на Ubuntu 7.04 в качестве БД – MySQL. Для других дистрибутивов все сказанное, кроме особен-ностей работы менеджеров пакетов, будет действительно.

Теперь распаковываем полученный архив в каталог /opt:

В результате в каталоге /opt появился подкаталог openfire, в котором содержатся все библиотеки и исполня-емые файлы.

Создаем необходимую для работы базу данных:

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

Запускаем сервер (привилегий администратора не тре-буется):

Теперь набираем в браузере http://localhost:9090/ и пе-реходим к этапу настройки.

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

сервера. По умолчанию используется вывод hostname, хо-тя можно здесь использовать IP-адрес. Впоследствии имя можно изменить, после чего понадобится изменение и сер-тификатов. Здесь же указываем порт, который будет ис-пользоваться при администрировании сервера, обычный и с использованием защищенного соединения (по умолча-нию соответственно 9090 и 9091).

Следующий шаг позволяет определить, какую из баз данных мы будем использовать для работы. Самым прос-тым вариантом будет выбор встроенной базы (Embedded DataBase). В этом случае никаких дополнительных настроек далее делать не нужно. Для небольшого количества поль-зователей ее производительности вполне хватает. Мы же используем MySQL, поэтому отмечаем «Standard Database Connection» и жмем Continue. В следующем окне указываем параметры подключения к базе данных. Для этого в строке Database Driver Presets выбираем тип базы, с которой бу-дем работать, в строке Database URL все слова в квадрат-ных скобках подменяем своими значениями (то есть вмес-то [host-name] пишем адрес сервера, на котором располо-жена база MySQL, а вместо [database-name] пишем имя ба-зы, в нашем случае база называется jabber). То есть, если MySQL установлен на том же компьютере, в поле Database URL получается:

Далее вводим имя пользователя и пароли и пробуем соединиться с базой данных. Шаг «Profile Settings» позво-лит выбрать вариант сохранения информации о пользова-телях. Это может быть внутренняя база данных либо LDAP. В последнем случае настраиваем соединение с сервером, предоставляющим соответствующие услуги.

И последний шаг настройки – установка пароля адми-нистратора. Учетная запись в этом поле пишется с добав-лением домена – [email protected]. По окончании на-стройки система предложит нажатием на кнопку «Login to the admin console» зарегистрироваться в консоли админис-

Рисунок 3. Установленные плагины

$ sudo apt-get update$ sudp apt-get install sun-java6-jre mysql-server

$ cd /opt/$ sudo tar xzvf /home/source/openfire_3_3_0.tar.gz

$ sudo mysqladmin --user=root --password=db_passwd ↵ create jabber$ cat ./openfire/resources/database/openfire_mysql.sql | ↵ mysql --user=root --password=db_passwd --database=jabber

$ cd openfire/bin$ ./openfire

testing JVM in /usr ...Usage: ./openfire {start|stop|status}

$ ./openfire start

jdbc:mysql://localhost:3306/jabber

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

47№5, май 2007

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

тратора. Конфигурация сохраняется в файле /opt/openfire/conf/openfire.xml, если что-то не получилось можно заме-нить его, взяв версию из архива, либо удалить из него предпоследнюю стро-ку, начинающуюся с <setup>. После че-го повторить установку. Сервер теперь готов принимать клиентов, хотя стоит поначалу все-таки обратиться к неко-торым настройкам.

Настройки в консоли администратораНастроек в OpenFire предостаточно, все их описать невозможно, скажу только о некоторых. На главной стра-нице, которая будет выведена после регистрации в консоли, будет показа-на статистика сервера и текущие на-стройки. Чтобы отредактировать имя сервера, порт подключения сервер-сервер, клиент-сервер и консоли адми-нистратора, а также включить или вы-ключить поддержку SSL, следует на-жать кнопку Edit Properties в самом ни-зу страницы. Далее идем в «Language and Time Settings» в «Choose Time Zone», выбираем свой часовой пояс, если он выставлен неправильно (бе-рется из системных настроек). Пе-рейдя в «Email Settings», указываем SMTP-сервер и учетные данные, не-обходимые для отправки почтовых со-общений.

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

твие сервера, если новый пользова-тель попробует зайти с именем, кото-рое уже задействовано (протокол это допускает).

Теперь можно зазывать пользова-телей на новый ресурс, но если выбра-на политика, запрещающая самостоя-тельную регистрацию, сначала регис-трационные записи нужно будет со-здать. Для чего переходим в «Users/Groups», выбираем «Create New User» и вводим имя пользователя и пароль. Опционально можно ввести и имя с почтовым адресом. Если создает-ся сразу несколько учетных записей, удобнее после заполнения всех па-раметров нажимать кнопку «Create & Create Another». В этом случае пос-ле создания нового пользовательско-го бюджета появится снова окно на-строек, иначе будет показано окно со свойствами учетной записи. Ана-логично создаются и группы.

Параметров, как видите, немного, но если добавить плагин registration, появится новый пункт «Registration Properties», в котором можно активи-ровать соответствующие пункты и за-тем указать IM контакты и адреса элек-тронной почты, на которые будут от-сылаться сообщения о новых пользо-вателях, группу по умолчанию, в ко-торую будет включен пользователь и приветствие после успешной регис-трации.

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

зовать внутри организации, лучше запретить пользователям самосто-ятельно создавать учетные записи. Для этого переходим в «Registration & Login» и устанавливаем переключа-тель в Disabled в поле «Inband Account Registration». Используя переключа-тель в поле «Anonymous Login», мож-но разрешить или запретить аноним-ные подключения к серверу. И, нако-нец, можно ограничить соединения с сервером только диапазоном опреде-ленных адресов, указав их в «Restrict Login» в виде 192.168.1. Переключа-тель в поле «Change Password» лучше установить в Enabled, тем самым раз-решив пользователям самостоятельно изменять свои пароли. Меню «Conflict Policy» позволяет определить дейс-

Рисунок 4. Сертификаты сервера

eJabberdЕще одним популярным Jabber-серве-ром является eJabberd (http://www.process-one.net/en/ejabberd). Написан он на язы-ке Erlang (http://erlang.org), который пред-назначен для создания отказоустойчи-вых распределенных приложений. Поэто-му eJabberd изначально может работать в кластере, когда один домен физически обслуживает сразу несколько компьютеров, синхронизируя информацию через единую базу данных. Откомпилированные прило-жения выполняются в Erlang (JAM) emulator, в этом он несколько похож на Java. Подде-рживаются все популярные сегодня опера-ционные системы. Все настройки осущест-вляются путем внесения изменений в кон-фигурационный файл или через веб-интер-

фейс. Конфигурационный файл весьма по-нятен по структуре, хотя к его редактиро-ванию следует относиться весьма внима-тельно. Так как любая погрешность приве-дет к тому, что сервер будет работать не так, как надо. В настройках сервера есть свои особенности. Так, все изменения, произ-веденные через веб-интерфейс, заносятся сразу в базу данных, в конфигурационном файле они никак не отражаются. При нали-чии записей override_* они будут действи-тельны до первой перезагрузки. В качест-ве базы данных используется Mnesia, хо-тя поддерживаются и некоторые другие – MySQL, PostgreSQL. Большинство возмож-ностей реализовано из коробки. Для созда-ния транспорта ICQ <-> Jabber понадобится PyICQt (http://pyicq-t.blathersource.org).

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

48

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

су http://server:9090/plugins/registration/sign-up.jsp. Модуль userImpo=rtExport позволит экспортировать и импортиро-вать пользователей в XML-файл.

Установленные плагины можно найти во вкладке «Plugins», где их можно перезапускать, удалять и просмат-ривать информацию о назначении плагина. По умолчанию здесь только один обеспечивающий поиск пользователей, чтобы установить остальные, необходимо скачать их с сай-та проекта и скопировать в подкаталог plugins. После чего их список появится в одноименной вкладке.

Многие пользователи уже имеют ICQ UIN, в этом слу-чае необходимо будет настроить транспорт. Устанавлива-ем плагин gateway, после чего во вкладке Server появится новый пункт «Gateways». Выбираем «Setting» и устанавли-ваем флажок напротив ICQ. Нажав ссылку «Test» и кноп-ку «Test Connection», можно протестировать подключение к выбранному серверу ICQ. В «Options → Encoding» указы-ваем кодировку проходящих сообщений. По умолчанию ис-пользовать шлюз могут все, изменить такой порядок мож-но, выбрав «Permissions», где можно указать пользовате-лей или группы, которым разрешена работа с шлюзом, либо ручная регистрация в подменю «Registrations». Чтобы свя-заться с корреспондентом через шлюз, достаточно указать его UIN в виде uin@jabber_server.com.

Настройка SSLПосле установки сервера OpenFire самостоятельно со-здаст все необходимые (самоподписанные) сертификаты для используемого домена, их можно просмотреть в Server Certificates. Для организации SSL используется стандарт-ная реализация Java. Ключи и сертификаты сервера сохра-няются в стандартном хранилище сертификатов – keystore и используются для подтверждения полномочий. Возмож-но использование второй пары ключей truststore, с помо-щью которых проверяется подлинность клиентов. Если пла-нируется работа через SSL, этого мало, необходимо вклю-чить соответствующие механизмы сервера. Для чего пе-реходим во вкладку «System Properties» и, используя по-ле «Add new property», добавляем или включаем следую-щие параметры:n xmpp.socket.ssl.active – true;n xmpp.socket.ssl.port – порт для SSL обычно 5223;n xmpp.socket.ssl.storeType – необязательное поле, оз-

начающее формат, по умолчанию используется jks;n xmpp.socket.ssl.keystore – местонахождение файла

keystore, если оставить пустым, будет использовано зна-чение по умолчанию;

n xmpp.socket.ssl.keypass – пароль к keystore, по умол-чанию changeit;

n xmpp.socket.ssl.truststore – расположение файла truststore относительно корневого каталога, если не пла-нируется его использовать, оставьте пустым;

n xmpp.socket.ssl.trustpass – пароль к truststore.

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

Сначала меняем пароль к keystore:

Вводим пароль changeit и затем новый, повторив его два раза. Удаляем старые сертификаты:

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

Сначала вас спросят новый пароль keystore, а затем потребуется ввести некоторую информацию о серве-ре (организация, город, страна), как это обычно делает-ся при создании любого сертификата. Перейдя по ссыл-ке в «Signing Request» на странице «Server Certificates», можно занести всю информацию в файл, чтобы затем не вводить ее каждый раз. По окончании будет задан вопрос о пароле для доступа к ключу. Можно ввести дру-гой пароль, нажатием на <Ente> установить такой же па-роль, как и keystore.

Если планируется подпись сертификата сервера сторон-ней организацией, необходимо сгенерировать файл в стан-дартном формате CSR (Certificate Signing Request):

Этот запрос отсылается в любую выбранную службу сертификации. Подписанный сертификат импортирует-ся командой:

Клиентские сертификаты в truststore импортируют-ся также просто. Сначала меняем пароль (по умолчанию тот же changeit):

И теперь импортируем сертификат каждого клиента:

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

1. Домашняя страница проекта IServerd – http://iserverd.khstu.ru.2. Список Jabber-серверов – http://www.jabber.org/software/

servers.shtml.3. Д о м а ш н я я с т р а н и ц а п р о е к т а O p e n F i r e – h t t p : / /

www.igniterealtime.org/projects/openfire.

$ sudo keytool -storepasswd -keystore keystore

$ sudo keytool -delete -keystore keystore -alias rsa$ sudo keytool -delete -keystore keystore -alias dsa

$ sudo keytool -genkey -keystore keystore -alias grinder.com

$ sudo keytool -certreq -keystore keystore ↵ -alias grinder.com -file grinder_com.csr

$ sudo keytool -import -keystore keystore ↵ -alias grinder.com -file signed_ grinder_com.csr

$ sudo keytool -storepasswd -keystore truststore

$ sudo keytool -import -keystore truststore ↵ -alias user1 -file user1_certificate_file

$ cd /opt/openfire/resources/security/

Page 51: 054 Системный Администратор 05 2007
Page 52: 054 Системный Администратор 05 2007

50

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

Разворачиваем кластер на основе Windows Server 2003

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

Отказоустойчивые кластеры широко распространены в сетях средних и крупных компаний. Но у многих администраторов внедрение и обслуживание кластерных систем по-прежнему вызывает много вопросов. Рассмотрим реализацию отказоустойчивого кластера на основе Windows Server 2003.

Page 53: 054 Системный Администратор 05 2007

51№5, май 2007

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

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

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

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

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

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

В своей статье я рассмотрю про-граммную реализацию двухузлового кластера на основе службы Microsoft Clustering Service. Такое решение яв-ляется наиболее приемлемым для ор-ганизаций средних размеров с неболь-шим IT-бюджетом.

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

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

Необходимо объединить их в отка-зоустойчивый кластер. В качестве при-мера настройки отказоустойчивого ре-сурса я настрою службу File Share.

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

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

При построении кластера следу-ет запомнить, что наиболее распро-страненная редакция Windows Server 2003 Standard не поддерживает клас-теризацию.

Таким образом, при построении отказоустойчивой системы следует использовать Windows Server 2003 Enterprise Edition.

Кстати, редакцию Enterprise нуж-но использовать и при построении кластеров для Microsoft Exchange и Microsoft SQL Server 2000. В против-ном случае вы не сможете кластери-зовать почту и базы данных.

Что касается вопросов лицензи-рования, то необходимо приобретать

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

Поясню на примере. Если у вас в организации 250 пользователей и вы разворачиваете двухузловой клас-тер, то вам необходимо приобрести две серверные лицензии на Windows Server 2003 и 250 лицензий клиент-ского доступа.

Таким образом, количество узлов в кластере не влияет на число клиент-ских лицензий.

Новые понятияДля лучшего понимания концепции кластеризации мы рассмотрим не-сколько основных понятий.

Отказоустойчивый кластер, как правило, состоит из четырех узлов, использующих общий дисковый ре-сурс для обмена данными. Этот ре-сурс также именуется кворум-устройс-твом (quorum).

В идеале это кворум-устройство должно представлять из себя отде-льное аппаратное хранилище данных с собственной поддержкой отказо-устойчивости (диски RAID 1, RAID 5), подключающееся ко всем узлам клас-тера.

Подобные решения предоставляют IBM, EMC и другие производители.

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

Рисунок 1. Имя кластера и домен Рисунок 2. Результат проверки конфигурации

Page 54: 054 Системный Администратор 05 2007

52

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

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

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

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

Следующим важным понятием кластеризации являются группы.

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

В любой момент времени группа может принадлежать только одному узлу. При отказе какого-либо ресурса внутри группы он должен быть пере-мещен в альтернативный узел вмес-те со всеми остальными ресурсами этой группы.

При устранении причины отказа исходного узла вся группа передается назад в исходный узел в соответствии с политикой возврата после восстанов-ления (failback) для данной группы.

Ресурсы – наше всеСледующим понятием являются ресур-сы – логические или физические эле-менты, которые можно подсоединять или отсоединять от сети.

В систему Windows Server 2003 Enterprise Edition включено несколько различных типов ресурсов:n Physical Disk;n DHCP;n WINS;n Print Spooler;n File Share;n Internet Protocol Address;n Local Quorum;n Majority Node Set;n Network Name;n Generic Application;n Generic Script;n Generic Service.

Несколько слов по каждому из ви-дов ресурсов.

Physical Disk используется для кво-рум-ресурса. Требуется для всех сер-веров кластера.

DHCP и WINS используются в ка-честве ресурса кластера для обес-печения отказоустойчивости данных служб.

Print Spooler позволяет кластери-зовать службы печати.

Тип ресурса File Share позволя-ет управлять разделяемыми файло-выми системами тремя различными способами:

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

n С разделяемыми подпапками, когда папка верхнего уровня и каж-дая из ее непосредственных подпа-пок предоставляются для разделя-емого доступа с различными име-нами.

n Автономный корень распреде-ленной файловой системы Dfs (Distributed File System). Но вы не можете использовать ресурс File Share кластерного сервера как часть отказоустойчивого кор-ня Dfs.

Internet Protocol Address и Network Name используется для создания вир-туального сервера, который позволя-ет клиентам использовать то же имя для доступа к кластеру даже после пе-рехода по отключению failover.

Ресурс Local Quorum использует-ся для управления системным диском в локальном узле кластера.

Majority Node Set применяется для управления конфигурацией дан-ных кластера, которые могут распо-лагаться на ЗУ кластера или вне этого устройства. Используется для согла-сования данных между географически разбросанными устройствами.

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

Generic Script – управление сце-нариями операционной системы как кластерным ресурсом.

Рисунок 3. Страница с предлагаемыми настройками Рисунок 4. Обнаружение ошибок в конфигурации

Page 55: 054 Системный Администратор 05 2007

53№5, май 2007

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

Generic Service – позволяет управ-лять службами Windows Server 2003 как ресурсами кластера.

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

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

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

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

Далее определите зависимость этих приложений и ресурсы, которые им требуются для работы. Зависимые приложения нужно объединить в од-ну группу.

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

Приведу небольшой пример пост-роения дерева зависимостей для ре-сурса File Share.

Очевидно, что этот ресурс зави-сит от Physical Disk, так как это ос-новной ресурс, используемый всеми узлами кластера. Далее для ресур-сов общего доступа важно сетевое имя Network Name. Но в свою очередь Network Name не может использовать-ся без IP Address.

Таким образом, получаем следу-ющие зависимости: ресурс File Share явно зависит от Physical Disk и Network Name и неявно – от IP Address.

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

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

УстановкаОбсудив особенности реализации Microsoft Cluster Service, приступим не-посредственно к развертыванию.

Первым делом на каждый из узлов устанавливаем Windows Server 2003 Enterprise Edition.

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

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

После успешной установки необ-ходимо дать имена каждому из узлов кластера. Для простоты назовем узлы Node1 и Node2.

Далее на сервере Node 1 захо-дим в «Administrative Tools → Cluster Administrator». В окне «Open Connection to Cluster» выбираем «Create new cluster». Запустится мастер создания нового кластера.

В следующем окне необходимо указать имя домена, в котором на-ходятся узлы, а также имя кластера (см. рис. 1).

Далее в поле Computer Name ука-зываем имя первого узла в кластере. На следующем этапе мастер автома-тически анализирует конфигурацию (см. рис. 2).

Если проверка по всем пунктам за-кончилась успешно, то в следующем окне вам необходимо указать IP-ад-рес кластера.

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

Наконец, переходим к последней странице, в которой выводятся дан-ные для подтверждения. Здесь можно указать кворум-устройство, как пока-зано на рис. 3.

При нажатии «Next» запускается процесс установки кластера, внешне схожий с уже описанным анализом конфигурации.

После успешной установки долж-но открыться окно администрирова-

Рисунок 5. Настройки сети для кластера Рисунок 6. Двухузловой кластер

Page 56: 054 Системный Администратор 05 2007

54

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

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

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

Как видно, при анализе были обна-ружены две ошибки, вернее, пробле-мы. Так как полоска Task Completed зе-леного цвета, можно продолжать ус-тановку, но лучше сначала разрешить проблемы.

Итак, что же было найдено в про-цессе анализа системы:n Не найдено кворум-устройство.

Как уже обсуждалось ранее, оно представляет собой SCSI-диск, ис-пользуемый всеми узлами клас-тера. Если вы получили такое со-общение, проверьте правиль-ность подключения к SCSI-ши-не серверов. Также проверьте на-личие данного диска в разделе «Administrative Tools → Computer Management → Disk Management».

n На сервере найден только один сетевой адаптер. Большинство промышленных серверов име-ют две сетевые карты, так что это довольно редкая ошибка. Но если она появилась, то необходимо про-верить работоспособность второ-го адаптера. В случае, если вы хо-тите использовать только один ин-терфейс, воспользуйтесь описани-ем из раздела «Добавляем узлы».

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

нал, в процессе установки необходи-мо присвоить статические адреса се-тевым адаптерам.

Для идентификации более слож-ных ошибок можно воспользоваться кнопкой «View Log» для просмотра де-тального журнала событий.

Добавляем узлыТеперь необходимо добавить узел в кластер. Но прежде сделаем не-сколько дополнительных настроек. В консоли Cluster Administration вы-бираем «Cluster Configuration», далее «Networks» (см. рис. 5).

У каждого узла кластера два сете-вых интерфейса, при этом один под-ключен к локальной сети (LAN), а вто-рой используется для взаимодействия между узлами кластера (Heartbeat).

Поочередно откройте закладку «Properties» для каждого из этих сете-вых интерфейсов.

Для LAN в свойствах необходи-мо указать «Client Access Only (public only)», а для Hear tbeat выбираем «Internal Cluster Communications Only (private network)».

Таким образом, теперь у нас ин-терфейс LAN будет использоваться только для внешнего взаимодействия, а Heartbeat – только для обмена ин-формацией между узлами кластера. Это позволяет увеличить быстродейс-твие системы вцелом.

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

В данном случае использование концентратора может оказаться даже предпочтительнее, так как он не содер-жит кэш MAC-адресов, а сеть Heartbeat в данном случае используется только для проверки доступности узлов и вы-бора нового в случае отказа.

Если вы хотите использовать толь-ко один интерфейс, то укажите Internal and Client Access в свойствах LAN и Heartbeat. При этом и LAN и Heartbeat будут содержать один физический ин-терфейс.

Итак, мы оптимизировали настрой-ки сетевых интерфейсов узла класте-ра и теперь переходим к следующе-

му этапу – добавлению второго узла. Для этого на втором сервере также за-пускаем «Administrative Tools → Cluster Administrator».

Только теперь выбираем «Add nodes to cluster» и указываем имя кластера.

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

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

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

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

Как упоминалось в начале статьи, мы будем настраивать ресурсы для службы File Share.

Для этого мы сначала создадим новую группу на виртуальном серве-ре HOME.

Перед созданием группы необхо-димо определиться с её расположени-ем. Можно, конечно, поместить ресур-сы в главную группу Clusters, но луч-ше сразу группировать в соответствии с их предназначением. Тем более по-тому, что управление политиками пе-рехода по отключению осуществляет-ся на уровне групп.

Поэтому для создания нашего ре-сурса типа File Share нужно сделать следующее:n создать группу, которая будет со-

держать нужные ресурсы;n создать ресурс типа Physical Disk;n создать ресурс типа IP Address;n создать ресурс типа Network

Name;n создать ресурс типа File Share.

Начнем с создания кластерной группы.

Для этого в консоли «Cluster Administrator» щелкните на папке

Рисунок 7. Новая группа

Page 57: 054 Системный Администратор 05 2007

55№5, май 2007

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

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

К примеру, для того чтобы развер-нуть двухузловой кластер на основе VMware, мне достаточно было рабо-чей станции с 1 Гб оперативной па-мяти. И никаких внешних SCSI-дис-ков, шумных серверов и прочей ап-паратуры.

Так что, если вас интересует реали-зация кластеров на базе виртуальной машины VMware, то рекомендую обра-титься к статье [3].

ЗаключениеИтак, мы развернули отказоустойчи-вый двухузловой кластер и установили разделяемый ресурс File Share.

Однако одним из наиболее рас-пространенных применений службы Microsoft Cluster Services является ор-ганизация кластеров почтовых серве-ров MS Exchange.

В следующей статье я подробно рассмотрю процесс установки и на-стройки отказоустойчивой почтовой системы Microsoft Exchange.

1. Рассел Ч. Microsoft Windows Server 2003. Справочник администратора.

2. Бережной А. Строим сетевую инфра-структуру на основе VMware Server. //Системный администратор, №3, 2007 г. – С. 14-18.

3. Статья о развертывании кластера на VMware – http://www.rootpermissions.net/Files/MS_Windows_2003_Cluster_on_VMware_GFX_3.rar.

«Active Groups» для сервера, на ко-тором будет находиться ресурс типа File Share, и выберите пункт «Group» в меню «New». Появится окно мастера создания группы «New Group Wizard» (см. рис. 7).

Далее введите имя группы (File Share) и описание (User’s folders).

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

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

В нашем случае необходимо вы-брать узел и нажать «Add», затем ана-логично добавить Node 2. После на-жатия кнопки «Finish» группа будет создана.

Но обратите внимание на то, что сейчас она находится в автономном состоянии, так как с ней не связаны никакие активные ресурсы.

Теперь пришло время создать ре-сурс типа Physical Disk. Для этого щел-кните правой кнопкой мыши на толь-ко что созданной группе и выберите пункт «Resource».

Заполните поля Name и Description и выберите в раскрывающемся спис-ке «Resource Type» вариант «Physical Disk».

На следующем шаге укажите воз-можных владельцев ресурса Possible Owners. Тут нужно указать те машины, которые могут содержать этот ресурс (Node1, Node2).

Далее необходимо указать Depend-encies (зависимости). Сейчас страница должна быть пустой, так как это пер-вый ресурс в группе.

На следующем этапе указываем параметры диска (Disk Parameters). В раскрывшемся списке будут пред-ставлены все ресурсы типа Physical Disk, которыми может управлять служ-ба кластера.

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

После указания диска нажмите на кнопку «Finish», чтобы создать этот ресурс.

Третьим по списку мы должны со-здать ресурс типа IP Address.

По аналогии с предыдущим разде-лом выбираем пункт «Resources» в на-шей группе, далее – «New». Указываем тип ресурса – IP Address, затем – воз-можные владельцы.

В следующем окне, Dependencies, должен появиться уже созданный на-ми ресурс Physical Disk. Но выбирать его не нужно, так как в данном случае никакой зависимости нет.

На следующей странице необхо-димо указать настройки для IP-адре-са. Затем нажимаем «Finish».

Создадим ресурс типа Network Name. Для этого необходимо еще раз проделать все те действия, которые мы выполняли ранее для других ти-пов ресурсов.

Но в разделе Dependencies теперь необходимо указать зависимость от ресурса IP Address.

Приступаем к завершающему эта-пу в создании кластерного ресурса File Share.

Повторим все те же действия, но при указании зависимостей Dependencies необходимо выбрать все три элемен-та списка.

Далее нажимаем «Next» и в окне File Share Parameters указываем имя разделяемого ресурса и путь.

В разделе Advanced можно ука-зать скрывать ли разделяемые ресур-сы-поддиректории.

Разделяемый ресурс создан.Обратите внимание на то, что

по умолчанию для ресурса File Share будут заданы полномочия Read Only. Изменить эту установку можно в окне File Share Parameters.

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

Кластеры в виртуальной реальностиПоследнее время все более широкое распространение получают виртуаль-ные машины [2].

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

Эти свойства особенно полезны при работе с кластерными системами,

Page 58: 054 Системный Администратор 05 2007

56

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

Резервное копирование и восстановление базы данных Oracle средствами ОС

Сергей Косько

Мы установили какое-либо приложение, хранилищем данных в котором служит СУБД Oracle. Но вводить систему в производственную эксплуатацию ещё рано. Предварительно необходимо создать надёжную методику резервного копирования и восстановления базы данных.

Page 59: 054 Системный Администратор 05 2007

57№5, май 2007

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

Одним из самых функциональных средств резервного копирова-ния от Oracle является утили-

та RMAN. Однако использовать столь сложную систему для резервного ко-пирования зачастую избыточно (если эксплуатируется одна-две базы дан-ных). Кроме того, RMAN, как правило, использует отдельную базу в качест-ве хранилища своей собственной ин-формации. Чтобы избежать ситуации, когда данные, необходимые для вос-становления базы, хранятся в этой же базе, для резервного копирования собственно каталога RMAN необходи-мо использовать другие средства. Раз-личные универсальные программы ре-зервного копирования, которые могут работать с базами данных Oracle, тоже избыточны или небесплатны. Что же выбрать? Самый простой и эконом-ный способ – решить эту задачу с по-мощью обычных скриптов и стандарт-ных системных утилит.

Основным критерием качества методов восстановления данных яв-ляется их адекватность, способность восстановить необходимые данные при любом возможном сбое. Предла-гаю вам свой способ решения этой за-дачи для СУБД Oracle.

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

/ora/oracle/oradata/Redo-Ctrl/replica1 – вторая копия управля-ющих и журнальных файлов;

/ora/oracle/oradata/log – файлы архивных журналов.

Сделаем полную копию БД двумя вышеуказанными способами:1. Холодная копия (cм. листинг 1).

Это самый простой пример, он применяется редко. Мы рассмот-рим его в целях сравнения с более сложными примерами.

2. Горячая копия (см. листинг 2). Со-здаёт практически аналогичный набор файлов данных, за исключе-нием того, что копии активных жур-налов redo делать не нужно. Сохра-ним в архиве одну копию управля-ющего файла и скрипт control.sql для его пересоздания.

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

Листинг 1. Холодная копия БД (файл backup.sh)

#!/bin/sh#if [ $# -ne 2 ]then echo "script needs two parameters: \${ORACLE_SID} ↵ <dest dir>"exit;fi#ORACLE_SID=${1};export ORACLE_SIDcopydir=${2};export copydir#Create lists of files. #Regular database filesdatalist=`sqlplus -s "/ as sysdba" <<EOFset heading offset pagesize 0set linesize 300set feed offselect file_name from dba_data_files ;exit ;EOF`#Temporary filestemplist=`sqlplus -s "/ as sysdba" <<EOFset heading offset pagesize 0set linesize 300set feed offselect file_name from dba_temp_files;exit;EOF`#Control files ( copy all )controlist=`sqlplus -s "/ as sysdba" <<EOF

$backup.sh ORCL /backup/cold

$backuponl.sh ORCL /backup/hot

set heading offset pagesize 0set linesize 300set feed offselect name from v\\$controlfile ;exit ;EOF`#Online Redo logs.redolist=`sqlplus -s "/ as sysdba" <<EOFset heading offset pagesize 0set linesize 300set feed offselect member from v\\$logfile ;exit ;EOF`#sqlplus "/ as sysdba" <<EOF shutdown immediateexit;EOFcd ${copydir} tar cvf data.tar ${datalist} ${templist}tar cvf control.tar ${controlist}tar cvf redo.tar ${redolist}tar cvf dbs.tar ${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora \${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora \${ORACLE_HOME}/dbs/orapw${ORACLE_SID}sqlplus "/ as sysdba" <<EOF startupexit;EOF#

Возьмём в качестве исходной сле-дующую информацию:n В тестах будем использовать СУБД

Oracle версии 10.2. для ОС Solaris.n СУБД настроена на работу в режи-

ме АRCHIVELOG.n Рассмотрим 2 сценария восстанов-

ления: полного и неполного.n Будем исходить из того предпо-

ложения, что мы восстанавлива-ем данные на тот же самый сер-вер (или точную копию рабочего сервера БД, на котором уже уста-новлена ОС, ПО СУБД Oracle, все необходимые исправления и со-здана необходимая структура ка-талогов).

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

n Выполним полную копию базы дан-ных двумя способами: с остановкой экземпляра (хо-

лодная копия); без остановки работы экземп-

ляра (горячая копия).n Расположение файлов базы дан-

ных имеет следующую структуру:/ora /oracle/oradata /ORCL –

файлы данных;/ora/oracle/oradata/Redo-Ctrl/

replica0 – первая копия управ-ляющих и журнальных фай-лов;

Page 60: 054 Системный Администратор 05 2007

58

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

Затем будем стирать и восстанавливать из архива файлы, принадлежащие БД. Предполагаем, что архивные журналы имеются и доступны для восстановления в каталоге, указан-ном в параметрах db_recovery_file_dest/log_archive_dest.

Сценарий 1. Клонирование БД из холодной копииДопустим, нам необходимо запустить базу данных на ком-пьютере с аналогичным программным обеспечением и дис-ками. Сделаем это с помощью холодной копии. Удалим все файлы базы данных:

Проведём восстановление:

Это практически единственный случай, когда могут при-годиться копии активных (не путать с архивными) журна-лов базы данных. Во всех остальных случаях необходимо восстановление БД, и устаревшие копии уже не содержат актуальной информации. Гораздо важнее иметь полный (без пропусков) набор архивных журналов. На самом деле в данном случае активные журналы тоже не обязательны.

Часто при создании копии рабочей базы нет необхо-димости запускать базу именно с опцией NORESETLOGS. Если есть холодная копия, но без копии журналов (файл redo.tar), после восстановления файлов из архива нужно сделать следующее:

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

Сценарий 2. Полное восстановление из горячей резервной копииСмоделируем потерю файлов данных БД. Удалим файлы данных, но не управляющие и журнальные файлы:

Проведём восстановление только файлов данных из го-рячей резервной копии (см. листинг 3):

В зависимости от версии базы данных и операцион-ной системы может понадобиться пересоздать временный файл – это можно сделать, например, скриптом (см. лис-тинг 4):

testcase$tmprecov.sh ORCL

SQL> alter system switch logfile;

testcase$cd /ora/oracle/oradata/ORCL;find . -type f ↵ -exec rm -f {} \;testcase$cd /ora/oracle/oradata/Redo-Ctrl;find . -type f ↵ -exec rm -f {} \;

testcase$cd /backup/coldtestcase$tar xvf control.tartestcase$tar xvf data.tartestcase$tar xvf dbs.tartestcase$tar xvf redo.tartestcase$dbstart

testcase$sqlplus "/ as sysdba"SQL>startup mount

…Database mounted.SQL> recover database using backup controlfile until cancel;ORA-00279: change 817959 generated at 05/04/2007 09:15:19 needed for thread 1ORA-00289: suggestion :…Specify log: {<RET>=suggested | filename | AUTO | CANCEL}cancelMedia recovery cancelled.

SQL>alter database open resetlogs;

Database altered.

testcase$cd /ora/oracle/oradata/ORCL;find . -type f ↵ -exec rm -f {} \;

testcase$cd /backup/hottestcase$tar xvf data.tartestcase$recover.sh ORCL

Листинг 2. Горячая копия БД (файл backuponl.sh)

#!/bin/sh#if [ $# -ne 2 ]then echo "script needs two parameters: \${ORACLE_SID} ↵ <dest dir>"exit;fi#ORACLE_SID=${1};export ORACLE_SIDcopydir=${2};export copydir#Make lists of files for backup. #data filesdatalist=`sqlplus -s "/ as sysdba" <<EOFset heading offset pagesize 0set linesize 300set feed offselect file_name from dba_data_files ;exit ;EOF`#Controlfile make one copy and one tracecontrolist=`sqlplus -s "/ as sysdba" <<EOFset heading offset pagesize 0set linesize 300set feed offselect name from v\\$controlfile where rownum=1;exit ;EOF`

controldir=`dirname $controlist`#sqlplus "/ as sysdba" <<EOF alter database begin backup;exit;EOFcd ${copydir} tar cvf data.tar ${datalist}# Init & passwd filestar cvf dbs.tar ${ORACLE_HOME}/dbs/init${ORACLE_SID}.ora \${ORACLE_HOME}/dbs/spfile${ORACLE_SID}.ora \${ORACLE_HOME}/dbs/orapw${ORACLE_SID}sqlplus "/ as sysdba" <<EOF alter database end backup;alter database backup controlfile to ↵ '$controldir/conbackup.ctl' reuse ;alter database backup controlfile to trace as ↵ '$controldir/control.sql'; alter system archive log current ;exit;EOF#for i in ${controlist} do# cp /tmp/conbackup.ctl ${copydir}/`basename ${i}` tar cvf control.tar $controldir/conbackup.ctl ↵ $controldir/control.sql rm -f $controldir/conbackup.ctl rm -f $controldir/control.sql done#

Page 61: 054 Системный Администратор 05 2007

59№5, май 2007

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

Сценарий 3. Восстановление файлов управленияЕсли мы потеряли часть наших управляющих файлов, но со-хранилась хотя бы одна копия из указанных в файле init.ora/spfile.ora, нужно скопировать эту копию во все указанные местоположения (например, если пропали файлы в катало-ге replica0, нужно скопировать их из каталога replica1). Ес-ли пропали все копии управляющих файлов, и только они, необходимо отредактировать файл control.sql (полученный при выполнении горячей копии БД, листинг 2) и выполнить пересоздание управляющего файла. Если такого скрипта мы заранее не создали, тогда нам остаётся только воспользо-ваться сделанными ранее копиями управляющих файлов:

Затем отредактировать и выполнить скрипт. Сущест-вует ещё один способ: скопировать текущий активный журнал в местоположение log_archive_dest в формате

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

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

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

Сценарий 5. Восстановление при потере активных журналов БДЕсли потеряны не все группы REDO, а только какая-то од-на реплика REDO файлов БД, то остановки базы при этом не происходит. В этом случае журналы можно пересоздать или при перезагрузке скопировать файлы из одного катало-га в другой. Если же мы потеряли все файлы REDO (или хо-тя бы как минимум активную группу), полное восстановле-ние невозможно. Остаётся вариант неполного восстанов-ления и последующий запуск БД с опцией RESETLOGS. В этом случае возможна потеря зафиксированных тран-закций, и произойдёт сброс последовательности архи-вных журналов.

Смоделируем ситуацию:

Из этого примера видно, как важно иметь хотя бы две реплики активных журналов базы данных (redo log). В слу-чае их уничтожения – потеря информации (пусть иногда и

Листинг 3. Полное восстановление БД (файл recover.sh)

#!/bin/sh#if [ $# -ne 1 ]then echo "script needs one parameter: \${ORACLE_SID}"exit;fi#ORACLE_SID=${1};export ORACLE_SIDsqlplus "/ as sysdba" <<EOFstartup mount;alter database recover automatic ;alter database open;exit;EOF

Листинг 4. Добавление к БД нового временного файла (файл tmprecov.sh)

#!/bin/sh#if [ $# -ne 1 ] then echo "script needs one parameter: \${ORACLE_SID}" exit;fi#ORACLE_SID=${1};export ORACLE_SID##Temporary filestemplist=`sqlplus -s "/ as sysdba" <<EOFset heading offset pagesize 0set linesize 300set feed offselect file_name from dba_temp_files;exit;EOF`for i in ${templist} dosqlplus "/ as sysdba" <<EOFalter database tempfile '$i' drop INCLUDING DATAFILES;ALTER TABLESPACE "TEMP" ADD TEMPFILE '$i' size 25M ↵ autoextend on;exit;EOFdone

testcase$tar xvf control.tartestcase$cp control01.ctl ↵ /ora/oracle/oradata/Redo-Ctrl/replica0/control01.ctl…testcase$cp control01.ctl ↵ /ora/oracle/oradata/Redo-Ctrl/replica1/control03.ctltestcase$sqlplus "/ as sysdba"SQL>startup mountSQL> alter database backup controlfile to trace as ↵ 'control.sql' ;SQL>shutdownSQL>exit

SQL> alter database recover automatic using backup ↵ controlfile;

alter database recover automatic using backup controlfile*ERROR at line 1:ORA-00283: recovery session canceled due to errorsORA-01244: unnamed datafile(s) added to control file by media recovery

testcase$dbshuttestcase$cd /ora/oracle/oradata/Redo-Ctrltestcase$find . –type f -name \*.log –exec rm –f {} \;testcase$sqlpplus "/ as sysdba"SQL>startup mountSQL>recover database until cancel

...cancel

SQL> alter database open resetlogs;SQL>exit

Page 62: 054 Системный Администратор 05 2007

60

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

допустимая) неизбежна. Её можно лишь минимизировать, например установив параметр archive_lag_target (его мини-мальное значение – 60 секунд).

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

Потом, поскольку активные журналы потеряны, произ-

водится неполное восстановление (см. листинг 7). БД от-крывается с опцией RESTLOGS.

ИтогиПодводя итоги рассмотренных сценариев, хотелось бы от-метить основные моменты:n Резервная копия должна быть обязательно полной

(все файлы данных, все архивные журналы, файлы уп-равления, инициализации и пароли).

n При восстановлении производственной базы нужно ста-раться не допустить случая неполного восстановления (с опцией RESETLOGS), поскольку это изменяет после-довательную нумерацию журналов и есть риск потери данных. Вариант восстановления БД с переходом через точку RESETLOGS вообще-то существует, но он доволь-но громоздкий. Не стоит усложнять самому себе жизнь. Описание этого метода приводится, например, в книге «Oracle Backup & Recovery Handbook» [2, глава 10].

n Чтобы избежать случая неполного восстановления, сле-дует беречь активные журналы. В большинстве случа-ев их резервная копия невозможна, необходимо иметь несколько реплик, размещать их на RAID1 и т. п.

n Копировать активные журналы REDO, можно только при холодной копии, и нужны они только для создания клона БД.

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

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

n Холодная и горячая резервные копии БД для восстанов-ления пригодны одинаково, нельзя сказать, что горячая копия не позволяет сделать то, что позволяет холодная. За исключением случая клонирования. Горячая копия всегда нуждается в применении впоследствии коман-ды «recover». Для этого не обязательно, но полезно пос-ле завершения копии принудительно переключить ак-тивный журнал, чтобы не ждать, когда он переключится сам, а сразу приступать к клонированию базы данных.

n Ну и напоследок, моё трепетное отношение к полному восстановлению относится в основном к производствен-ным базам. Если необходимо восстаноить БД на какой-то момент времени в прошлом, то такой сценарий предус-матривает именно неполное восстановление.

1. Oracle Database Backup and Recovery Advanced User's Guide 10g Release 2 (10.2) Part Number B14191-02 – http://download-uk.oracle.com/docs/cd/B19306_01/backup.102/b14191/toc.htm.

2. Oracle8i Backup & Recovery Handbook, Rama Velpuri and Anand Adkoli.McGraw-Hill/OsborneMedia; 4Rev Ed edition (November 14, 2000).

Листинг 5. Восстановление БД при утере копии вновь добавленного файла и файлов управления (файл addfile.sh)

#!/bin/sh##Script for adding new dstsfile sqlplus "/ as sysdba" <<EOFalter tablespace users add datafile'/ora/oracle/oradata/ORCL/users02.dbf' size 20M;exitEOF

Листинг 6. Неполное восстановление при потере активных журналов (файл nofile.sql)

connect / as sysdbastartup mountalter database recover automatic using backup controlfile----ERROR at line 1:--ORA-00283: recovery session canceled due to errors--ORA-01244: unnamed datafile(s) added to control file by media recovery--ORA-01110: data file 5: '/ora/oracle/oradata/ORCL/users02.dbf'--alter database backup controlfile to trace as'dmpctl.sql';select name from v$datafile where file#=5;--NAME--------------------------------------------------/ora/oracle/dbs/UNNAMED00005--alter database create datafile'/ora/oracle/dbs/UNNAMED00005'as '/ora/oracle/oradata/ORCL/users02.dbf'; -- Make changes in scripts for recreate controlfile.host vi dmpctl.sql--shutdown @dmpctl.sq

Листинг 7. Неполное восстановление при потере активных журналов (файл recovincomplett.sh)

#!/bin/sh#if [ $# -ne 1 ]then echo "script needs one parameter: \${ORACLE_SID}"exit;fisqlplus "/ as sysdba" <<EOFstartup mount;alter database recover automatic using backup controlfile;alter database open resetlogs;exit;EOF

testcase$tar xvf data.tartestcase$tar xvf control.tartestcase$tar xvf dbs.tar

testcase$recovincomplett.sh ORCL

Page 63: 054 Системный Администратор 05 2007

61№5, май 2007

bugtraq

Переполнение буфера в службе DNS в Microsoft WindowsПрограмма: Microsoft Windows 2000 Server, Microsoft Windows 2003 Server.Опасность: Критическая.Описание: Уязвимость существует из-за ошибки проверки границ данных в RPC-интерфейсе DNS-службы, используе-мого для удаленного управления. Удаленный пользователь может с помощью специально сформированного RPC-за-проса вызвать переполнение буфера и выполнить произ-вольный код на целевой системе с привилегиями учетной записи SYSTEM.URL производителя: www.microsoft.com.Решение: В настоящее время способов устранения уяз-вимости не существует. В качестве временного решения рекомендуется отключить удаленное администрирование DNS-службы через RPC.

Несколько уязвимостей в Microsoft Content Management ServerПрограмма: Microsoft Content Management Server 2001, Microsoft Content Management Server 2002.Опасность: Высокая.Описание: 1. Уязвимость существует из-за ошибки при об-работке определенных символов в HTTP-запросе. Удален-ный пользователь может с помощью специально сформи-рованного URL в HTTP GET-запросе выполнить произволь-ный код на целевой системе.

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

Уязвимость при обработке команд в eIQNetworks Enterprise Security AnalyzerПрограмма: eIQNetworks Enterprise Security Analyzer 2.5.6 и более ранние версии.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки при обра-ботке команд в процессе MainEngine.exe. Удаленный пользо-ватель может послать слишком длинный аргумент на порт 10616/TCP, вызвать переполнение буфера и выполнить про-извольный код на целевой системе.URL производителя: www.eiqnetworks.com/products/EnterpriseSecurityAnalyzer.shtmlРешение: Установите последнюю версию (2.5.9) с сайта производителя.

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

Переполнение буфера в 3proxyПрограмма: 3proxy версии до 0.5.3h.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки проверки границ данных при обработке прозрачных запросов. Уда-ленный пользователь может послать уязвимому серверу специально сформированный запрос и выполнить произ-вольный код на целевой системе.URL производителя: www.3proxy.ru.Решение: Установите последнюю версию (0.5.3h) с сайта производителя.

Несколько уязвимостей в TrillianПрограмма: Trillian Pro 3.1, возможно, более ранние версии; Trillian Basic 3.1, возможно, более ранние версии.Опасность: Высокая.Описание: 1. Уязвимость существует из-за ошибки в опе-рации копирования в окне IRC-сообщения (при выделении текста). Удаленный пользователь может с помощью слиш-ком длинного URL, состоящего из UTF-8-символов, вызвать переполнение динамической памяти и выполнить произ-вольный код на целевой системе.

2. Уязвимость существует из-за ошибки в IRC-мо-дуле при обработке сообщений, содержащих font face HTML-тег с слишком длинным атрибутом face, состоящем из UTF-8-строки. Удаленный пользователь может с помо-щью специально сформированного сообщения вызвать пе-реполнение динамической памяти и выполнить произволь-ный код на целевой системе.

3. Уязвимость существует из-за ошибки при обработке CTCP PING-сообщений, содержащих UTF-8-символы. Зло-умышленник может заставить клиента вернуть специально сформированный ответ с отсутствующим символом терми-нирования новой строки, что позволит отправить текст со-общения атакующему вместо сервера.

4. Уязвимость существует из-за ошибки в системе сооб-щений Rendezvous/XMPP (Extensible Messaging and Presence Protocol). Удаленный пользователь может послать специ-ально сформированное сообщение на порт 5298/TCP, вы-звать переполнение динамической памяти и выполнить про-извольный код на целевой системе.URL производителя: www.ceruleanstudios.com.Решение: Установите последнюю версию (3.5.1.0) с сай-та производителя.

Уязвимость при обработке IPv6-пакетов в ядре LinuxПрограмма: Linux Kernel, версии до 2.6.20.9 и 2.6.21.Опасность: Средняя.Описание: Уязвимость существует из-за ошибки при об-работке IPv6-пакетов, содержащих type 0 route-заголов-ки. Удаленный пользователь может с помощью специаль-но сформированного IPv6-пакета вызвать отказ в обслу-живании системы.URL производителя: www.kernel.org.Решение: Установите последнюю версию ядра (2.6.20.9 или 2.6.21) с сайта производителя.

Page 64: 054 Системный Администратор 05 2007

62

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

Всем известен сюжет преслову-той «американской мечты»: бед-ный юноша просыпается бога-

тым и знаменитым после энного ко-личества перипетий, бедная и гордая девушка выходит замуж за принца… И так далее и тому подобное. Является ли судьба миллиардера Майкла Делла, владельца одноименной компании, но-вой историей воплощения американс-кой мечты? И да, и нет. В марте этого года на вручении мистеру Деллу награ-ды с претенциозным названием «Пат-риот цифровых технологий» его колле-га по сфере IT, президент Google, Inc. Эрик Шмидт сказал: «Майкл одновре-менно мечтатель и живой человек. В роли мечтателя он перестраивает промышленность. Как живой человек,

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

8 летХочу заниматься деломВ любом другом обществе над малень-ким мальчиком, который решил закон-

чить школу экстерном как Майкл, прос-то бы посмеялись. Это что значит – «не желаю учиться в старших классах, в жизни хватает важных дел»? Но толь-ко не в Америке. В этой стране дело-вой подход приветствуется, и неваж-но, сколько тебе лет… У юного Делла, правда, не вышло сразу обойти такую глыбу, как государственное образо-вание, но только потому, что родите-ли были достаточно консервативными людьми. Сами они учились как положе-но – в школе, в вузе, получили уважа-емые профессии ортодонта и брокера, и представляли, что сын пойдет по сто-пам отцам, тоже станет медиком. Од-нако Майкл оказался не просто упря-мым мальчиком, но и целеустремлен-ным. Параллельно с учебой он стал го-товить себя к взрослой жизни. Торго-вал марками (заработал две тысячи долларов), продавал подписку на го-родскую газету Houston Post (зарабо-тал 18 тысяч долларов). Но главным событием его школьной жизни стало знакомство с персональным компью-тером. Майкл Делл был семиклассни-ком, когда в своей школе в Хьюстоне, штат Техас, он впервые попал к экрану монитора, и, по его словам, «был весь-ма восхищен тем, что мог дать новый инструмент». В пятнадцать лет Делл купил свой собственный комп фир-мы IBM и «тут же разобрал его, пото-му что хотел узнать, как он работает». Итак, дело, о котором американец меч-тал еще в раннем детстве, нашло свое-го героя! Как и в случае со школой, ко-торая встала поперек славной биогра-фии Делла, Майкл-пользователь ком-пьютера, потребитель продукции ком-пьютерной фирмы, а также клиент ди-лера, который продал ему машину, за-метил несколько серьезных недостат-ков: «Первое – путь от производителя до потребителя очень долог, часто год и более. Второе – розничные компании неэффективны, продают компьютеры с весьма солидной наценкой. Третье – люди, продававшие компьютеры, за-частую почти ничего о них не знают, и, хуже того, не могут предоставить поддержки и сервиса. Может, у кого-то другой опыт, но это то, что я видел». Цитата современная, но юный Делл думал точно так же, иначе не стал бы разбирать сложную технику, куплен-ную за свои кровные. Он просто знал, что благодаря множеству умных спра-

Мечты сбываются

Глава одноименной фирмы Майкл Делл не боится ставить нереальные задачи и планомерно воплощать их в жизнь.

Page 65: 054 Системный Администратор 05 2007

63№5, май 2007

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

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

19 летХочу быть знаменитым и богатымДелл вспоминает: «В 1984 году, в кон-це моего первого курса в университете Техаса я основал нашу компанию. Идея была простой: продавать компьютеры непосредственно потребителям. И мне повезло, что я жил в Америке, где но-вые идеи могут пробиться, даже если они исходят от 19-летнего юнца, поки-нувшего колледж». Реверанс в сторо-ну системы ценностей родной страны вполне искренний: свобода предпри-нимательства позволила Майклу со-здать фирму Dell Computer, выбиться в люди и очень скоро доказать родите-лям, что он не зря покинул первый курс биологического факультета Техасского государственного университета. Через много лет корреспондент спросил Дел-ла: «Нет ли у вас чувства, что вы что-то упустили, бросив колледж? Например, курс истории искусств?» – «Нет, не ис-торию искусств! Я был в колледже це-лый год, так что успел получить многое из того, ради чего люди поступают в вуз. Я полагаю, что, занимаясь тем, чем я за-нимался, я научился гораздо большему, чем если бы оставался студентом».

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

Пол Отеллини, президент Intel Corporation: «Если бы Майкл не изоб-рел свою первую модель, бизнес был бы намного меньше, персональные компьютеры – намного дороже и до-ступны гораздо меньшему количест-ву людей в мире. «Форд» модели «Т» сделал автомобиль доступным массам, Делл сделал то же с компьютерами».

Мег Уитмэн, президент eBay Inc.: «Компьютеры и Интернет стали потря-сением для нашего поколения. Это яв-ление столь же важное, как и промыш-ленная революция на рубеже веков в смысле влияния на общество, обра-зование, здравоохранение, на все важ-ные аспекты жизни общества. Компа-ния Dell, сам Майкл были на переднем крае этой революции. Сколько людей вы знаете, у которых есть персональ-ные компьютеры или ноутбуки компа-нии Dell? Практически у всех».

Гэри Шапиро, президент CEA: «Он корпоративный лидер, деловой лидер, лидер в области защиты окружающей среды, но одновременно – жесткий конкурент. Он настоящий новатор».

Знаменитым – стал, богатым – не-сомненно. Он миллиардер и крупней-ший держатель акций собственной компании. А ведь в такое сказочное бу-дущее не верили ни родители, ни пер-вые партнеры по бизнесу…

36 летХочу красавицу-жену, детей, дом…В 2001 году, в зените славы, ког-да продажи компании Dell взлетели до 32 миллиардов долларов (срав-

ните с цифрой 1991 финансового го-да – 546 миллионов), корреспондент популярного делового издания «Fast Company» Чарльз Фишман букваль-но прорвался на интервью со звез-дой сферы IT.

Штаб-квартира компании Dell в Ра-унд Роке была как непреступный фор-пост для «акул пера» с личными воп-росами. Но журналист как-то сумел упросить уделить ему немного време-ни, и узнал кое-что о семье и привыч-ках Майкла.

Опишите ваш рабочий день.Встаю в 5.45 или 6. Зарядка. Бег. Или штанга. Или плавание. В 7.15-7.30 отво-жу детей в школу и еду на работу.

Вы готовите детям завтрак?(Выглядит озадаченным.) Не совсем. Они знают, что им делать. Один раз я испек им оладьи (смеется). Первая порция была не очень, зато вторая уже лучше.

В этом вся система Делла! Я всег-да учусь на своих ошибках.

Приезжаю домой около 6.30 и про-вожу время с семьей, ужинаю с детьми. Я с этим хорошо справляюсь.

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

А чем в это время занимается ва-ша жена?

Форд» модели «Т» сделал автомобиль доступным массам, Майкл Делл сделал то же с компьютерами

Page 66: 054 Системный Администратор 05 2007

64

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

Своей почтой. А я стараюсь лечь спать в 10.30.

Вы не любитель телешоу?(Выглядит озадаченным.) Нет.

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

На мой взгляд, такой стиль поведе-ния доказывает, что Майкл – счастли-вый муж и отец. Его супруга Сьюзен – симпатичная женщина, которая одно-временно воспитывает четверых де-тей, старшему из которых всего 14 лет, производит женскую одежду, владе-ет бутиком в Остине и вместе с му-жем занимается благотворительнос-тью в Фонде Майкла и Сьюзен Делл, созданном для помощи детям из ма-лоимущих семей по всему миру.

Известно также, что Делл воспиты-вает своих отпрысков, во многом опи-раясь на свой деловой опыт, который изобилует не только розами, но и тер-ниями. Они не ждут, что папа вручит каждому по паре миллионов долла-ров и позволит наслаждаться жизнью, наследники Делла понимают уже сей-час, что придется трудится, и серьез-но. Майкл строг: «Когда я был ребен-ком, мои родители говорили, что я дол-жен съедать все, что мне дают, так как в мире множество детей, которые го-лодают… Теперь я говорю своим де-тям, что они должны выполнять до-машние задания, потому что в мире много детей, желающих занять их ра-бочее место!»

42 годаХочу быть «впереди планеты всей»Сегодня «Делл» снова на пике попу-лярности. Но повод скорее печаль-ный – в фирме большие неприятнос-ти. Объемы реализации продукции со-кратились на 9%. Компания уступила место на компьютерном рынке основ-ному конкуренту – Hewlett-Packard, ко-торая на данный момент контролирует 17-18% рынка, а «Делл» – всего 14-15%. Фирма понесла большие убытки в свя-зи с отзывом 4,1 миллиона дефектных аккумуляторных батарей Sony, которы-ми комплектовались ноутбуки. Да еще

и прокуратура штата Нью-Йорк заня-лась проверкой финансовой докумен-тации за последние пять лет…

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

В частности, ее имиджем. Похоже, что времена, когда Майкла Делла счи-тали застенчивым и неразговорчивым, канули в Лету. Теперь он говорит охот-но, в том числе и с журналистами. Он объясняет новые принципы работы Dell и свои личные планы.

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

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

Делл ждет, когда население Сети достигнет двух миллиардов. Произой-дет это, считает американский бизнес-мен, за счет стран с быстро растущи-ми и развивающимися рыночными эко-номиками. В этот список входит и Рос-сия, и бывшие советские республики. И, конечно, Китай, где Майкл Делл не-давно представил новинку своей ком-пании – новый настольный компьютер для тех, кто впервые приобретает ПК. Стоимость этой машины – всего 335 долларов. Так что вклад в уничтоже-ние цифрового неравенства Деллом сделан серьезный.

Вторая крупная идея вернувшего-ся к практической деятельности Дел-ла – охрана окружающей среды. Делл заявляет: «Мы знаем, что каждый про-данный нами компьютер имеет четко определенный срок жизни. Что проис-ходит с ним после того, как его пере-стают использовать? Если мы как от-расль промышленности производим около 250 миллионов компьютеров в год и, предположим, 125 миллионов из них идет на замену, то что происхо-дит с теми ПК, которые перестают ра-ботать? Ответ на этот вопрос неверо-ятно важен для нашей окружающей среды. Мы взяли курс на экологичес-кую ответственность нашей отрасли. Мы – первая компания в нашей отрас-ли, рециркулирующая нашу продукцию и продукцию наших конкурентов без-возмездно и во всем мире».

«Рециркуляция» – переработка де-талей, так, чтобы отходы не загрязня-ли окружающую среду, а шли в дело. Этакий пионерский порыв к сбору ма-кулатуры, вернее, металлолома. По-рыв серьезный, который волей-нево-лей обязательно подхватят конкурен-ты Делла, как когда-то были вынуж-дены скопировать его прямую модель продаж. Это сейчас они сопротивля-ются… «В январе я предложил всем производителям компьютеров в мире присоединиться к нам в бесплатной рециркуляции ПК. Ну, мое предложе-ние не нашло пока поддержки, но вре-мя еще есть, и сегодня я снова обра-щаюсь ко всем коллегам в нашей от-расли. Я уверен, что это нужно нашим потребителям и, что еще важнее, на-шей планете».

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

1. http://www.dell.com.2. h t t p : / / w w w . a s k m e n . c o m / m e n /

january00/8_michael_dell.html.3. h t t p : / / w w w . m s d f . o r g / a b o u t /

bio.aspx?id=39.4. http://news.com.com/Michael+Dell+back

+as+CEO+Rollins+resigns/2100-1014_3-6155185.html.

Оксана Родионова

Page 67: 054 Системный Администратор 05 2007
Page 68: 054 Системный Администратор 05 2007

66

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

Технологии защиты ядра NT

Артем Баранов

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

Page 69: 054 Системный Администратор 05 2007

67№5, май 2007

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

Ядро операционной системы – это тот программный модуль или набор модулей, который

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

На Intel x386 NT может работать в пользовательском режиме и режи-ме ядра. Соответственно потоки са-мой ОС работают в привилегирован-ном режиме, а потоки приложений – в пользовательском режиме. Таким образом, из четырех уровней защи-ты процессора NT пользуется толь-ко двумя. В x386 режим работы про-цессора характеризуется селектором в регистре CS, а точнее, его первыми двумя битами, которые и определяют CPL кода. Пользовательские прило-жения для перехода в нулевое кольцо используют либо инструкцию int 0x2e, либо оптимизированную sysenter. Сам код, который эти инструкции и вызы-вает, расположен на Native-уровне, т.е. между ядром и подсистемой Win32 (см. рис. 1).

Так было сделано с расчетом на то, чтобы можно было подключать другие подсистемы, например POSIX. И вы-зов, специфичный для конкретной ОС (подсистемы), а точнее, его семантика, должны полностью совпадать с анало-гичным вызовом в самой ОС (напри-мер, семантика fork должна быть такой, какой она регламентирована в самом стандарте POSIX для UNIX).

В момент запуска приложения под-система Win32 формирует для контекс-та первичного потока необходимые се-лекторы (с RPL равным 3) и передает эту информацию ntdll.dll.

Структурно ядро разделяется на исполнительную систему Executive и ядро. Так было сделано специаль-но для изоляции кода, работающе-го с конкретной аппаратно-зависи-мой конфигурацией. Этот код и выне-сен в ядро.

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

Для изоляции самого ядра от спе-цифики конкретного оборудования каждая версия NT для конкретной платформы располагает своим уров-нем абстрагирования от оборудова-ния (Hardware Abstraction Layer), кото-рый реализует специфичные функции по поддержке, например ввода/выво-да для портов.

В современном мире ядро долж-но рассматривать окружающую сре-ду как опасную и готовую к вторжени-

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

С момента выхода Windows 2000 Microsoft решила адаптировать сис-темы защиты ядра на новый уровень и попытаться защищать не только код NT, но и критические процессорно-за-висимые данные.

Действительно, на момент выхода Windows 2000 достаточно было систе-мы защиты, которая обнаруживала бы перезапись кода ядра или кода драй-веров устройств в отличие от NT 4.0, в которой этого не было.

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

Native layer (ntdll)

Executive layer (ntoskrnl,Win32k)

int 0x2esysenter

Win32 layer (kernel32, user32,gdi32, advapi32)Nt call

Hal call

Thread execution

Nt call

Thread execution

int 0x2esysenter

HAL layer (hal)

Рисунок 1. Обработка системного сервиса NT

0xC0000000PDE0

0xC0300000

0xC0001000PDE1

0xC0300004

0xC0002000PDE2

0xC0300008

0xC0003000PDE3

0xC030000C

0xC01FF000PDE511

0xC03007FC

0xC0200000PDE512

0xC0300800

0xC0201000PDE513

0xC0300804

0xC0202000PDE514

0xC0300808

Page Table 0, VPN: 0x0 – 0x3FF

Page Table 1, VPN: 0x400 – 0x7FF

Page Table 2, VPN: 0x800 – 0xBFF

Page Table 3, VPN: 0xC00 – 0xFFF

Page Table 511, VPN: 0x7FC00 – 0x7FFFF

Page Table 512, VPN: 0x80000 – 0x803FF

Large Page ( Ntoskrnl)

Page Table 514, VPN: 0x80800 – 0x80BFF

Рисунок 2. Каталог и таблицы страниц в Windows XP SP2 в системе с ОЗУ 256 Мб

Page 70: 054 Системный Администратор 05 2007

68

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

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

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

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

Нужно также понимать, что с выходами новых Service Pack ситуация все равно не изменится. Это обусловлено тем, что в NT изначально не было интегрированной систе-мы защиты ядра.

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

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

Write-Protected System CodeНачиная с Windows 2000 код ядра может быть защищен от записи. Соответствующие страницы кода Ntoskrnl до-ступны только для чтения (бит Write в PTE обнулен). Но так происходит не на всех системах. Защита может быть акти-вирована только в системе с ОЗУ меньше 128 Мб памяти, а для Windows XP ОЗУ меньше 256 Мб. В противном слу-чае ядро для оптимизации TLB (буфер быстрого преобра-зования адресов, который содержит скэшированные про-екции виртуальных страниц на физические, а также статус того, находятся ли они в физической памяти или нет), бу-дет проецироваться 4 Мб-страницами. Точнее, для этого бу-дет использоваться TLB, кэширующий проекции 4 Мб-стра-ниц. В таком случае код и данные ядра окажутся на одном фрейме страницы и ей уже не может быть присвоен атри-бут Read-Only. На уровне каталога страниц, это означает, что он адресует не таблицу страниц, описывающую данный 4 Мб-диапазон, а самую большую страницу. В итоге код ре-жима ядра может свободно модифицировать не только дан-ные ядра, но и его код!

Недостаток такого метода защиты в том, что в режи-ме ядра он может быть отключен. В управляющем регис-тре x386 (cr0) существует бит WP (Write Protection), кото-рый управляет всей защитой на уровне страниц. По умол-чанию этот бит установлен ядром в единицу, но установка этого бита в ноль полностью отключает защиту на уровне страниц. Как следствие, процессор может писать данные даже на фреймы страниц, в PTE которых бит W равен 0. Код, отключающий Write-Protected System Code, применя-ется в руткитах режима ядра при модификации ntoskrnl. Также он был представлен в книге Hoglund, Butler «Rootkits. Subverting windows kernel».

Для наглядного представления техники Write-Protected System Code на рис. 2 изображены каталог и таблицы стра-ниц Windows XP SP2 с выключенной защитой.

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

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

Patch GuardВ Microsoft прекрасно понимали, что подобная незащищен-ность ядра пагубно сказывается на работе системы в це-лом. Нужен был механизм защиты, не зависящий от аппа-ратуры и увязанный в системных компонентах ядра. Зави-симость от процессора также не самым лучшим образом сказывается на защите, так как код режима ядра ее может просто отключить, как это было с Write-Protected System

Рисунок 3. Главное окно Driver Verifier

Рисунок 4. Окно выбора драйвера, подлежащего проверке

Page 71: 054 Системный Администратор 05 2007

69№5, май 2007

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

Code. Но ввести программную защиту ядра значило нару-шить совместимость с существующими драйверами, ко-торые могли использовать на тот момент вполне «закон-ную» модификацию ядра. При этом обычно подвергалась модификации таблица диспетчеризации системных серви-сов (System Service Descriptor Table, SSDT) – KiServiceTable и таблица дескрипторов прерываний (IDT).

С выпуском 64-разрядных версий NT – Windows Server 2003 64-bit и Windows XP 64-bit ситуация изменилась. Microsoft «наложила запрет» на модификацию структур данных ядра, аргументируя это тем фактом, что код яд-ра для 64-разрядных версий перекомпилировать, а отчас-ти и переписывать все равно придется, поэтому разработ-чики могут внести в драйверы изменения и не опираться на модификацию ядра. Новая защита получила название Patch Guard. И представляет собой программную техноло-гию защиты ядра от записи. Технология защищает следу-ющие критические структуры:n SSDT.n Таблицу глобальных дескрипторов (GDT).n IDT.n Спроецированные образы ядра, включая ntoskrnl.exe,

ndis.sys, hal.dll.n MSR-регистры, предназначенные для активации дис-

петчера системных сервисов по sysenter.

Защита инициализируется при загрузке системы, при-чем чрезвычайно неявно, это является следствием того, что разработчики защиты старались максимально услож-нить отладку системы защиты. В результате функции, отве-чающие за инициализацию защиты, имеют названия, не вы-дающие их истинного назначения. Например, защита ини-циализируется обычной функцией деления со специальным значением, которое приводит к переполнению (переполне-ние генерируется, если при делении 64-разрядного операн-да на 32-разрядный результат не является 32-разрядным, процессоры AMD64), в результате чего генерируется исклю-чение, а обработчик исключения – KiDivideErrorFault – уже вызывает функцию инициализации защиты.

Patch Guard создает служебные структуры данных, в ко-торых хранит контрольные суммы проверяемых компонен-тов, причем структуры создаются не для всего проверяе-мого объекта, а только для отдельной его части. Например, в случае с проверкой на валидность образов ядра созда-ются отдельные структуры для IAT, самих разделов и ди-ректории импорта.

Сердцем защиты является функция, создающая кон-трольные суммы структур, подлежащих верификации – PgCreateBlockChecksumSubContext. Эта функция вызыва-ется как для создания таких контрольных сумм, как GDT, IDT, так и для IAT ntoskrnl.

Так как Windows XP поддерживает и многопроцес-сорные системы, то ядро способно хранить контроль-ные суммы IDT, GDT для каждого процессора отде-льно. Для получения адресов IDT, GDT ядро использу-ет функцию KeSetAffinityThread, привязывая таким обра-зом поток к конкретному процессору. После того как ад-реса таблиц получены, ядро вызывает для инициали-зации защиты GDT функцию PgCreateGdtSubContext,

а для IDT – PgCreateIdtSubContext, в которых и вызывает-ся PgCreateBlockChecksumSubContext.

Аналогичная ситуация и с SSDT. Ее контрольную сум-му создает та же PgCreateBlockChecksumSubContext. Кро-ме того, эта функция вызывается и для создания защиты таблицы дескрипторов – KeServiceDescriptorTable. В 64-раз-рядной системе эта таблица хранит не настоящие смеще-ния функций в линейном адресном пространстве, а их сме-щения относительно самой KiServiceTable. Таким образом, чтобы получить адрес функции, на которую есть указатель в SSDT, нужно сложить адрес KiServiceTable со значением индекса в этой таблице.

Технологии интеграции защиты на примере Driver VerifierЯдро NT поддерживает верификацию (проверку) драйве-ров на предмет ошибок работы с памятью, IRQL и пр. Та-кая технология получила название Driver Verifier. Для раз-работчиков драйверов она более известна не как техно-логия, а как программа, позволяющая своевременно об-наруживать ошибки в драйверах. Между тем хотя пользо-вательская часть Driver Verifier и функционирует в поль-зовательском режиме, свои возможности она реализует в режиме ядра. Кроме того, в тесной интеграции с Driver Verifier работают: диспетчер памяти, диспетчер ввода-вы-вода, Win32k и HAL. Таким образом, проверка драйверов напрямую интегрирована в ядро. Пользовательская ее часть лишь записывает в реестр значения нужных пара-метров, которые считываются ядром при загрузке систе-

Рисунок 5. Окно выбора настроек для проверяемого драйвера

Рисунок 6. Уже существующие настройки Driver Verifier

Page 72: 054 Системный Администратор 05 2007

70

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

мы. Поэтому при изменении настроек верификации необ-ходима перезагрузка.

Ядро хранит настройки Verifier в разделе реестра, ко-торый ответственен за хранение настроек диспетчера па-мяти – HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. Поэтому пер-вое, что делает Driver Verifier при вызове функции отоб-ражения существующих настроек, открывает этот раз-дел и сканирует ключевые параметры, среди которых: VerifyDriverLevel и VerifyDrivers. Первый параметр содержит битовую маску включенных проверок для драйверов, а вто-рой содержит список драйверов для верификации. Проана-лизировав эти поля, программа выводит в окне статисти-ку (см. рис. 6).

Сам же Driver Verifier рассредоточен по ядру и всегда начинается с префикса Verifier. Например, VerifierAllocate PoolWithTag. Активация Driver Verifier происходит следую-щим образом: на ранних этапах загрузки, когда диспетчер памяти считывает свои настройки из реестра, он также про-сматривает параметры Driver Verifier, если в списке есть про-веряемые драйверы, то он сравнивает имена загружаемых драйверов с драйверами из этого списка: проходя по образу драйвера, заменяет ссылки на функции ядра на свои функ-ции. Так, ExAllocatePool заменяется на VerifierAllocatePool, KeRaiseIrqlToDpcLevel на VerifierKeRaiseIrqlToDpcLevel, KeAcquireSpinLockAtDpcLevel на VerifierKeAcquireSpinLock AtDpcLevel. Перехватывая функции ядра, Driver Verifier спо-собен проводить проверки на корректность действий драй-веров. Например, для обнаружения одной из самых распро-страненных ошибок: buffer overrun/underrun, когда драйвер содержит в себе «жучок», вылетающий за границы буфера. Driver Verifier служит для обнаружения ошибок, которые до-пускают программисты при индексации буферов. Для этого Driver Verifier выделяет себе из пула регион, в который пере-направляет все запросы на выделение памяти. Для запус-ка Driver Verifier наберите в «Пуск → Выполнить» команду verifier. При этом вы увидите окно, подобное рис. 3.

При этом вам необходимо выбрать из списка задачу для Driver Verifier. Доступны следующие задачи:n Create  standart  settings  (создать  стандартные на-

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

n Create custom settings (создать выборочные настрой-ки) – при этом Driver Verifier позволяет вам задать необ-ходимые настройки (см. рис. 5).

n Delete existing settings  (удалить существующие на-стройки) – удаляет все настройки Driver Verifier и выхо-дит из программы.

n Display existing settings (отобразить существующие настройки) – выводит окно с драйверами, подлежащими проверке, и настройки, применимые к ним (см. рис. 6).

n Display information about the currently verified drivers (отобразить информацию о проверяемых драйве-рах) – выводит статистику по результатам мониторин-га для конкретного драйвера (например, сколько байт выделено в пуле), а также отображает глобальные счет-чики использования ресурсов.

Настройки Driver Verifier, используемые чаще всего:

Special Pool (особый пул)Позволяет контролировать ошибки buffer overrun/underrun. При резервировании драйвером буфера в пуле управле-ние передается Driver Verifier, который перенаправляет этот запрос на резервирование в выделенный регион (особый пул), далее размер буфера округляется до размера, крат-ного размеру страницы, и «прижимается» к верхним адре-сам страницы таким образом, чтобы последний байт буфе-ра был последним байтом страницы. Это сделано для то-го, чтобы можно было обнаруживать ошибки buffer overrun, при которых драйвер пишет по неуправляемому указате-лю за границу выделенного буфера, т.е. по старшим адре-сам. Страницы, находящиеся выше буфера (т.е. по более старшим адресам), Driver Verifier делает недействительны-ми, чтобы «жучок» драйвера сразу же привел к возникно-вению нарушения доступа. Таким образом, сразу же можно будет указать на драйвер, который сгенерировал ошибку. В противном случае драйвер перезаписал бы служебную структуру данных, а ее некорректность обнаружилась бы в контексте совершенно другого потока (см. рис. 7).

Force IRQL Checking (обязательная проверка IRQL)Самая распространенная ошибка в коде режима ядра – это когда драйвер пытается перераспределить процессор-ное время на высоких IRQL (т.е. DPC/Dispatch или одном из DIRQL). Если такая ситуация происходит, то в очередь DPC ставится запрос к диспетчеру, чтобы тот переключил контекст. При этом так как DPC обрабатываются на том же уровне (в случае с текущим IRQL==DISPATCH_LEVEL) или, тем более, при DIRQL, то переключение контекста будет маскироваться до тех пор, пока DPC к диспетчеру не будет изъято из очереди. Суть ошибки заключается в том, что ес-ли драйвер инициирует перераспределение процессорного времени на таком высоком уровне IRQL, то возникнет про-тиворечивая с точки зрения ядра ситуация, при которой по-ток должен ждать, но планировщик не может вытеснить его с процессора, так как сам при таких высоких IRQL маски-руется. Инициирование перераспределения процессорного времени может быть как явное, так и неявное. Явное, напри-мер, когда драйвер сам вызовет KeWaitForSingleObject при высоком IRQL. Неявное – это попытка обращения к вирту-альной странице, не спроецированной на физическую (на-пример, в нерезидентном пуле). Как только поток сгенериру-ет ошибку страницы, это повлечет за собой операцию ввода-вывода для подкачки страницы с диска, а это в свою очередь повлечет к блокированию потока и вытеснению его с про-цессора (поток попадает в очередь ждущих), при этом про-исходит переключение контекста на другой поток. Во всех случаях вызов диспетчера на высоких IRQL повлечет за со-бой STOP-ошибку: IRQL_NOT_LESS_OR_EQUAL. В случае

invalid page rand driver buffer invalid page

VPN 0 VPN 3

Рисунок 7. Таким образом Driver Verifier предотвращает ошибки переполнения

Page 73: 054 Системный Администратор 05 2007

71№5, май 2007

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

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

DEPНе секрет, что самомодификация в NT является простым делом. Доста-точно поменять атрибуты страницы на PAGE_WRITE, как код сразу же мож-но править. Хотя в макросах, предна-значенных для защиты страниц, и пре-дусмотрены специальные атрибуты ти-па PAGE_EXECUTE, но все зависит от аппаратной платформы и тех атрибу-тов защиты страниц, которые она пре-доставляет. В x386 в PTE существует один бит, предназначенный для конт-роля вида доступа. Сброс или установ-ка этого бита не влияет на то, будет вы-полняться код на странице или нет.

С Windows XP SP2 и Windows Server 2003 SP1 Microsoft стала продвигать технологию Data Execution Prevention (DEP), которая, разумеется, базируется на аппаратной поддержке. Intel и AMD ввели для своих процессоров новые би-ты защиты страниц. Для AMD функция называется no-execute page-protection (NX), а для Intel – Execute Disable Bit (XD). Попытка выполнить код на стра-нице с таким атрибутом приведет к ге-нерации исключения процессором. NT также применяет эту защиту к сте-кам потоков, что блокирует действия многих червей и Shell-кода, которые по-лучают управление через стек.

DEP работает по-разному на раз-ных машинах. Это зависит не толь-ко от платформы, но и от версии NT (32-или 64-разрядная). При этом сле-дует учитывать некоторые особеннос-

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

Структуры данных, создающиеся и уничтожающиеся в пулах, вообще не-льзя контролировать на запись, чтение, так как пул управляется не страницами, а из него возможно выделение данных произвольного размера. Хотя и здесь ядру можно привить некоторую интел-лектуальность. Если бы ядро изначаль-но было построено как защищенное и контролировало бы доступ к своим структурам данных, то ничего не меша-ло бы системе выделять себе структу-ры данных на отдельной странице пу-ла и контролировать обращения к ней. Контроль обращения в нерезидентном пуле можно организовать, специаль-но выводя из системного рабочего на-бора фреймы страниц со структурами. Затем, когда происходит #PF на стра-нице, то сравнить содержимое в стеке, сохраненного регистра EIP, на диапа-зон принадлежности ntoskrnl; если он входит в диапазон, то само ядро обра-щается к структурам данных.

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

Рисунок 8. Диалоговое окно, управляющее некоторыми настройками DEP

ти. При включенном DEP для 32-раз-рядной Windows XP последняя будет работать в PAE-режиме (т.е. параметр /PAE в boot.ini будет установлен). Соот-ветственно, будет использована PAE-версия ядра и процессор также будет работать в PAE-режиме. В 64-разряд-ной версии (с соответствующей подде-ржкой со стороны процессора) DEP при-меняется ко всем 64-разрядным про-граммам и драйверам, а также к стра-ницам стеков потоков. Однако в 32-раз-рядной версии защита применяется только к страницам с данными в поль-зовательском режиме (включая стеки потоков). При активации DEP в boot.ini заносится параметр /NOEXECUTE. Та-ким образом, когда ntldr передаст уп-равление ядру, последняя будет знать, что DEP включена.

Защитой можно управлять и из са-мой Windows. Для этого нужно перей-ти: «Пуск → Панель управления → Сис-тема → Дополнительно → Параметры быстродействия → Предотвращение выполнения данных». При этом вы уви-дите окно как на рис. 8.

Эти два параметра влияют на по-ведение DEP для 32-разрядных про-грамм. Верхний параметр говорит о том, что DEP будет применяться толь-ко к программам самой Windows. Ниж-ний параметр говорит о включении DEP для всех 32-разрядных программ, кроме тех, что добавлены в список. Об-ратитесь к документации по своему процессору, чтобы определить, под-держивает он DEP или нет.

Кроме редактирования DEP че-рез Панель управления, вы также мо-жете вручную отредактировать файл boot.ini, задав необходимые значения в форме /noexecute=value, где value может принимать значения указан-ные в таблице.

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

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

OptIn Используется по умолчанию. Включает DEP для системных программ на компьютерах с аппаратной поддержкой DEP

OptOut DEP включена для всех процессов, кроме тех, что указаны в списке (см. рис. 8)

AlwaysOn DEP включена для всей системы (в том числе и для всех процессов)

AlwaysOff DEP отключена для всей системы, независимо от аппаратной поддержки

Значение value в файле boot.ini

Page 74: 054 Системный Администратор 05 2007

72

bugtraq

Выполнение произвольного кода в JustSystems IchitaroПрограмма: Ichitaro 2005, Ichitaro 2006, Ichitaro 2007, Ichitaro viewer 4.x.Опасность: Критическая.Описание: Уязвимость существует из-за неизвестной ошибки при обработке документов. Удаленный пользова-тель может с помощью специально сформированного доку-мента выполнить произвольный код на целевой системе.URL производителя: www.justsystem.com.Решение: В настоящее время способов устранения уязви-мости не существует.

Уязвимость при обработке URL в Microsoft AgentПрограмма: Microsoft Windows 2000, Microsoft Windows XP, Microsoft Windows 2003.Опасность: Высокая.Описание: Уязвимость существует из-за ошибки в Microsoft Agent (agentsvr.exe) при обработке URL, передаваемого в качестве аргумента определенным методам. Удален-ный пользователь может с помощью специально сформи-рованного веб-сайта выполнить произвольный код на це-левой системе.URL производителя: www.microsoft.com.Решение: Установите исправление с сайта производите-ля.

Межсайтовый скриптинг в Mozilla Firefox Wizz RSS News ReaderПрограмма: Wizz RSS News Reader (расширение к Mozilla Firefox) версии до 2.1.9.Опасность: Высокая.Описание: Уязвимость существует из-за недостаточной об-работки входных данных. Удаленный пользователь может с помощью специально сформированного запроса выпол-нить произвольный код сценария в браузере жертвы в кон-тексте безопасности зоны «chrome:».URL производителя: https://addons.mozilla.org/en-US/firefox/addon/424.Решение: Установите последнюю версию (2.1.9) с сайта производителя.

Уязвимость форматной строки в Sun Solaris и Java Web ConsoleПрограмма: Sun Solaris 10, Java Web Console 2.2.2 по 2.2.5.Опасность: Высокая.Описание: Уязвимость форматной строки существует из-за ошибки проверки данных при вызове функции syslog() для записи в журнал неудачных попыток входа в систему. Уда-ленный пользователь может с помощью специально сфор-мированных данных выполнить произвольный код на це-левой системе.URL производителя: www.sun.com.Решение: Установите последнюю версию с сайта произ-водителя.

Множественные уязвимости в OracleПрограмма: JD Edwards EnterpriseOne Tools 8.x, JD Edwards OneWorld Tools 8.x, Oracle Application Server 10g, Oracle Collaboration Suite 10.x, Oracle Database 10.x, Oracle E-Business Suite 11i, Oracle E-Business Suite 12.x, Oracle Enterprise Manager 9.x, Oracle PeopleSoft Enterprise Human Capital Management 8.x, Oracle PeopleSoft Enterprise Tools 8.x, Oracle Secure Enterprise Search 10.x, Oracle9i Database Enterprise Edition, Oracle9i Database Standard Edition.Опасность: Высокая.Описание: 1. Oracle TNS Listener может быть остановлен путем отправки команды «TNS STOP» на Oracle Discoverer Servlet.

2. Уязвимость существует из-за недостаточной об-работки входных данных в «expType» в сценарии search/admin/sources/boundary_rules.jsp в Oracle Secure Enterprise Search. Удаленный пользователь может с помощью специ-ально сформированного запроса выполнить произвольный код сценария в браузере жертвы в контексте безопаснос-ти уязвимого сайта.

3. Уязвимость существует из-за недостаточной обра-ботки входных данных в пакетах DBMS_APPLY_USER_AGENT, DBMS_AQADM_SYS, DBMS_CDC_PUBLISH и DBMS_UPGRADE_INTERNAL. Удаленный пользователь может выполнить произвольные SQL-команды в базе дан-ных приложения.

4. Злоумышленник может обойти триггер на вход в ба-зу данных Oracle.

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

6. Уязвимость существует из-за ошибки в компоненте ADI_BINARY в E-Business Suite. Злоумышленник может ска-чать документы в таблице APPS.FND_DOCUMENTS.

7. Уязвимость существует из-за ошибки в пакете APPLSYS.FND_DM_NODES. Злоумышленник может уда-лить произвольные Document Management-ноды.

8. Злоумышленник может повысить свои привилегии на системе, если на Windows XP включено Simple File Sharing.

9. Уязвимость состояния операции существует в триг-гере RLMGR_TRUNCATE_MAINT. Локальный пользователь может повысить свои привилегии на системе.

10. Некорректное использование функции «SetSecurityDescriptorDacl()» может позволить удаленному пользователю выполнить произвольный код на целевой системе.

11. Уязвимость существует из-за отсутствия проверки аутентификации в Oracle Intelligent Agent. Удаленный поль-зователь может выключить уязвимый агент.

12. Уязвимость существует из-за ошибки проверки гра-ниц данных в пакете DBMS_CDC_IPUBLISH. Удаленный пользователь может с помощью слишком длинного пара-метра CHANGE_TABLE_NAME вызвать переполнение стека и выполнить произвольный код на целевой системе.URL производителя: www.oracle.com.Решение: Установите исправление с сайта производите-ля.

Page 75: 054 Системный Администратор 05 2007

73№5, май 2007

bugtraq

Множественные уязвимости в PHPПрограмма: PHP, версии до 4.4.7, PHP, версии до 5.2.2.Опасность: Средняя.Описание: 1. Уязвимость существует из-за ошибки в функ-ции ftp_putcmd(). Злоумышленник может внедрить симво-лы новой строки.

2. Уязвимость существует из-за ошибки в функции import_request_variables(). Злоумышленник может перепи-сать глобальные привилегии.

3. Уязвимость существует из-за ошибки проверки гра-ниц данных в функции make_http_soap_request() (PHP 5). Злоумышленник может вызвать переполнение буфера.

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

5. Переполнение буфера обнаружено в библиотеке libxmlrpc.

6. Уязвимость существует из-за ошибки проверки вход-ных данных в функции mail(). Злоумышленник может внед-рить произвольные заголовки в сообщение через парамет-ры To и Subject.

7. Уязвимость существует из-за ошибки в функции mail(). Злоумышленник может с помощью ASCIIZ-байтов урезать отправляемые сообщения.

8. Злоумышленник может обойти защитные механизмы safe_mode и open_basedir посредством «zip://» и «bzip://»-врапперов.

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

10. Уязвимость существует из-за ошибки в функции mb_parse_str(), которая позволяет злоумышленнику акти-вировать register_globals.

11. Уязвимость существует из-за ошибки в Zend при об-работке разветвленных массивов переменных. Злоумыш-ленник может вызвать отказ в обслуживании системы.URL производителя: www.php.net.Решение: Установите последнюю версию (5.2.2 или 4.4.7.) с сайта производителя.

Уязвимость при обработке запросов в ISC BINDПрограмма: ISC BIND 9.4.0, ISC BIND 9.5.0a1, 9.5.0a2 и 9.5.0a3.Опасность: Средняя.Описание: Уязвимость существует из-за ошибки при вы-зове функции query_addsoa(). Удаленный пользователь мо-жет послать специально сформированную последователь-ность запросов и аварийно завершить работу DNS-серве-ра. Для успешной эксплуатации уязвимости рекурсия долж-на быть включена.URL производителя: www.isc.org.Решение: Установите последнюю версию (9.4.1) с сайта производителя.

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

Несколько уязвимостей в AsteriskПрограмма: Asterisk, версии до 1.4.3.Опасность: Высокая.Описание: 1. Уязвимость существует из-за ошибки провер-ки границ данных в T.38 SDP-парсере SIP-каналов при об-работке T38FaxRateManagement или T38FaxUdpEC SDP-па-раметров в функции process_sdp() файла chan_sip.c. Уда-ленный пользователь может послать специально сформи-рованный SIP-пакет, содержащий слишком длинные SDP-параметры, вызвать переполнение стека и выполнить про-извольный код на целевой системе. Для удачной эксплуата-ции уязвимости опция t38_udptl должна быть включена.

2. Ошибка разыменования нулевого указателя су-ществует в механизме аутентификации в Asterisk Remote Management Interface. Удаленный пользователь может ава-рийно завершить работу службы. Для успешной эксплуа-тации уязвимости Management Interface должен быть вклю-чен и в файле manager.conf должен быть сконфигурирован пользователь без пароля.URL производителя: www.asterisk.org.Решение: Установите последнюю версию (1.4.3) с сайта производителя.

Множественные уязвимости в VMware WorkstationПрограмма: VMware Workstation версии до 5.5.4, Build 44386.Опасность: Средняя.Описание: 1. Уязвимость существует из-за ошибки в реали-зации ACPI-процесса виртуальной машины (VMX) во время сбора информации о состоянии работающих виртуальных машин. Злоумышленник может заставить процесс прочи-тать данные из некорректных адресов памяти.

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

3. Уязвимость существует из-за ошибки при обработке механизма защиты от общих ошибок (GPFs) на гостевой ОС Windows. Злоумышленник может аварийно завершить ра-боту гостевых систем под управлением Windows.

4. Уязвимость существует из-за неизвестных оши-бок во время отладки приложений на 64-bit гостевой ОС под управлением Windows на 64-bit хостовой системе. Зло-умышленник может вызвать повреждение указателей сте-ка или ядра.

5. Ошибка дизайна обнаружена в функционале «Shared Folders». Злоумышленник может через гостевую систе-му получить доступ на чтение и запись файлов на хосто-вой системе. Для успешной эксплуатации уязвимости тре-буется, чтобы хотя бы один каталог был открыт для обще-го доступа.URL производителя: www.vmware.com/products/desktop/ws_features.html.Решение: Установите последнюю версию VMware Workstation 5.5.4, Build 44386 с сайта производителя.

Page 76: 054 Системный Администратор 05 2007

74

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

Возможности m0n0wallЗадачу, которую поставил перед со-бой автор m0n0wall Маньюэл Каспер (Manuel Kasper), кратко можно сфор-мулировать так – создание полноцен-ного межсетевого экрана, по функци-ональности не уступающего коммер-ческим решениям, легкого в настрой-ке и простого в использовании, но при этом бесплатного.

В качестве основы послужила FreeBSD. Поначалу m0n0wall пред-ставлял собой простой веб-интер-фейс для фильтра пакетов, первая бе-та-версия которого появилась в 2003 году. Полноценный анонс состоял-ся в начале 2004 года после более 20 предрелизов.

Сейчас архитектура m0n0wall зна-чительно переработана. Для большей гибкости интерфейса все системные настройки сохраняются в файле фор-мата XML, во время загрузки вместо привычных сценариев оболочки ис-пользуется PHP.

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

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

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

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

В журнале уже шла речь о неко-торых реализациях [1, 2, 3], проект m0n0wall [4] предлагает решение, с ко-торым стоит познакомиться.

Актуальной на момент написания статьи версия m0n0wall была 1.23. Ее размер составляет менее 6 Мб. И это при том, что в его состав помимо необ-ходимых для работы ядра и пользова-тельских утилит включены: легкий веб-сервер, поддерживающий PHP, сер-вер DHCP, кэширующий DNS Dnsmasq и для обновления DNS-таблиц ez-ipupdate, racoon (IPsec IKE), UCD-SNMP, BPALogin, MPD, сервер ISC и choparp. Обеспечиваются NAT/PAT, PPPoE, тун-нели IPsec VPN и PPTP, поддержка беспроводных устройств, статичес-кая маршрутизация, режим фильтру-ющего моста, обновление через веб-интерфейс и многое другое.

Начиная с версии 1.1 появилась возможность посылки сигнала с ад-министративного интерфейса «Wake on Lan» для включения клиентов, на-стройка максимальной полосы пропус-кания для клиентских машин «Magic Shaper» поддержка 802.1Q VLAN.

Для работы m0n0wall можно ис-

m0n0wall – дистрибутив для создания межсетевого экрана

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

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

Page 77: 054 Системный Администратор 05 2007

75№5, май 2007

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

Рисунок 1. Статус работы m0n0wall

пользовать Flash-карту, жесткий диск или привод компакт-дисков. В пос-леднем случае все настройки авто-матически сохраняются на вставлен-ной дискете, и при перезагрузке кон-фигурация восстанавливается. Кро-ме стандартной x86 PC-платформы, m0n0wall поддерживает встроенные системы: net45xx/net48xx от Soekris Engineering (www.soekris.com) и WRAP (Wireless Router Application Platform) от PC Engines (www.pcengines.ch). Пос-ледние две платформы весьма ин-тересны, занимают мало места, ма-лошумны, экономичны и надежны, так как большинство из них не имеет жесткого диска (движущихся частей). Распространяется m0n0wall под собс-твенной лицензией, разрешающей ис-пользование и модификацию исходно-го текста, без какого-либо ограниче-ния, но при условии, что будет остав-лено авторское соглашение.

Записываем образМинимальные требования m0n0wall – это компьютер с процессором i486-100, ОЗУ 64 Мб, 2 и более сетевых карты, поддерживаемые FreeBSD 4.11, жес-ткий диск или карта Flash с IDE-ин-терфейсом размером не менее 8 Мб. Если BIOS поддерживает загрузку с CD-ROM, то можно выбрать и этот ва-риант. Сравнив системные требования с подобными дистрибутивами, можно увидеть, что m0n0wall очень требова-телен к объему ОЗУ. Объясняется это просто: m0n0wall ориентирован на ра-боту с Flash, которые критичны к коли-честву циклов записи/перезаписи. По-этому обращение к носителю сокраще-но до минимума. После загрузки образ помещается в ОЗУ, обращение к носи-телю идет только во время сохранения конфигурации и обновления системы или программного обеспечения, вхо-дящего в его состав.

При загрузке дистрибутива сле-дует выбрать образ под используе-мую систему или вариант использо-вания. В случае с ПК это generic-pc (жесткий диск, Flash) или CD-ROM. В первом случае для переноса обра-за на диск при работе в Windows ис-пользуем утилиту physdiskwrite.exe, которая доступна на сайте. Для чего в командной строке необходимо ввес-ти «physdiskwrite generic-pc-1.23.img» и затем указать, на какой диск уста-

навливать образ. Под Linux вводим та-кую команду:

Аналогично устанавливаются об-разы для Soekris и WRAP. В случае с CD-ROM просто записываем образ и загружаемся.

Установки из консолиТеоретически к системному блоку мож-но не подключаться вообще, а зай-ти сразу удаленно через webGUI, от-куда и произвести все необходимые действия. Установки по умолчанию весьма рациональны, и m0n0wall вы-полняет основную свою задачу из ко-робки, без какого либо дополнитель-ного вмешательства. Так LAN-интер-фейс будет использовать IP-адрес 192.168.1.1/24, на нем будет запуще-на служба DHCP, раздающая адре-са в диапазоне 192.168.1.100–199. Ис-пользуется перенаправление DNS-за-просов (адреса DNS-серверов берутся при DHCP-подключении WAN), поэто-му внутренние системы могут исполь-зовать m0n0wall в качестве DNS-сер-вера. Интерфейс WAN получает адрес по DHCP. Внешний трафик блокирует-ся, весь поступающий из LAN, наобо-рот, разрешен. Для внутренней сети включен NAT. Доступ к webGUI разре-шен только из LAN. Часовой пояс уста-новлен в Etc/UTC, периодически произ-водится синхронизация времени с сер-вером pool.ntp.org.

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

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

# gunzip -c generic-pc-1.23.img | ↵ dd of=/dev/hdb bs=16k

LAN IP address: 192.168.1.1 Port configuration: LAN -> sis0 WAN -> sis1

m0n0wall console setup**********************1) Interfaces: assign network ports2) Set up LAN IP address3) Reset webGUI password4) Reset to factory defaults5) Reboot system6) Ping system

Page 78: 054 Системный Администратор 05 2007

76

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

Вот и все. Если с внешнего ком-пьютера активированный интерфейс не пингуется, следует переключить кабель или переназначить интерфейс. Будут заданы вопросы о том, будем ли использовать VLAN, какой интерфейс ему назначить:

Затем LAN и WAN:

Следует ввести название ин-терфейса либо нажатием «a» поп-робовать найти его автоматически (без проблем работает только когда остался один не занятый). Это обяза-тельно. Также m0n0wall позволяет ис-пользовать интерфейсы, обозначен-ные как Optional с номером. Впоследс-твии ему можно дать любое другое название (например, DMZ). По окон-чании настройки последует перезаг-рузка; если для работы использует-ся CD-ROM, вставьте дискету, ина-че все придется повторять сначала. После перезагрузки в пункте 2 можно указать другой сетевой адрес и сете-вую маску (в CIDR) для LAN, а также включить или отключить DHCP. Про-верить правильность установок мож-но, выбрав пункт 6 и пропинговав лю-бую систему в сети. Назначение пун-ктов 3, 4 и 5, я думаю, понятно.

Настройки webGUIДля вызова веб-интерфейса следу-ет набрать в браузере http://192.168.1.1 или другой адрес, назначенный при на-стройке интерфейсу LAN, для аутен-тификации используем пользователя admin с паролем mono. После регист-рации попадаем на страницу, выводя-щую статус работы системы (рис. 1). Веб-интерфейс очень прост и понятен, хотя и не локализован. Все настройки сгруппированы по назначению (System, Interfaces,Firewall, Services, VPN, Status и Diagnostics) и прозрачны, запутаться в чем-либо очень сложно. Единствен-ное, что следует помнить: используй-те в описаниях настроек только латин-ские символы.

Для начала следует в «Status → Interfaces» проверить, правильно ли настроены интерфейсы. Для измене-ния настроек выбираем «Interfaces → Assign» и, используя выпадающий список, указываем, какой из них при-надлежит WAN или LAN. После это-го нажимаем «Save» и перегружаем m0n0wall. Далее, выбрав соответству-ющую вкладку, настраиваем парамет-ры выбранного интерфейса. Так, LAN может использовать только статичес-кий адрес, здесь доступны для изме-нения лишь IP-адрес и сетевая мас-ка. Для других интерфейсов настроек больше. В поле Type интерфейса WAN (рис. 2) можно выбрать один из ва-риантов: static, DHCP, PPPoE, PPTP и BigPond (крупнейший австралийский интернет-провайдер). После выбора

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

Также обязательно следует зай-ти «System → General setup», где на-страивается имя узла, адреса серве-ров DNS (если они не получаются ав-томатически), указывается имя поль-зователя и пароль для администри-рования m0n0wall, использование за-щищенного протокола при подключе-нии через webGUI, порт для соедине-ния. Здесь же выбирается часовой по-яс и сервер NTP.

Для настройки статической мар-шрутизации следует перейти в Static Routes, нажать «+». В появившем-ся меню выбрать интерфейс, ввес-ти адрес сети, шлюз и краткое описа-ние. Как уже говорилось, в межсете-вом экране по умолчанию два прави-ла: разрешающее все соединения на-ружу и запрещающее извне. Такой ва-риант подходит только для очень без-ответственных администраторов. На-стройка правил фильтрации произво-дится в «Firewall → Rules». Количес-тво вкладок здесь равно числу ис-пользуемых интерфейсов. Сначала создаем разрешающее правило, поз-воляющее соединяться удаленно че-рез webGUI. Выбираем «Add new rule» и указываем в Action – Pass, Interface – LAN, Protocol – TCP. Поля Source и Destination, в том случае, когда ис-пользуется 80 порт, можно установить в Any, так как в этом случае пользова-тели не смогут получить доступ к веб-ресурсам Интернета. В «Destination port» устанавливаем HTTP. Анало-гично настраивается доступ к осталь-ным сервисам Интернета. Затем сле-дует отметить разрешающее правило в интерфейсе LAN, установив флажок. Выбрать кнопку «Edit rule» и изменить в выпадающем списке Action параметр Pass на Block или Reject. Следует пом-нить, что правила работают до перво-го совпадения, поэтому запрещающее правило следует разместить послед-ним, используя кнопки «Move selected rule» (рис. 3). (можно разрешающее правило удалить, межсетевой экран и так будет блокировать все не раз-решенные пакеты). Когда все изме-нения сделаны, следует нажать кноп-ку «Apply Changes», чтобы они всту-пили в силу.

Для того чтобы сделать прави-ла более читабельными, следует ис-Рисунок 2. Настройка WAN

ed0 00:30:4f:2a:6b:16 (up)vr0 00:30:4f:2a:6b:16

Do you want to set up VLANs now? (y/n) n

Enter the LAN interface name or 'a' for auto-detection: ed0

Page 79: 054 Системный Администратор 05 2007

77№5, май 2007

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

пользовать псевдонимы (aliases), кото-рые можно использовать для назначе-ния понятных имен IP-адресам и под-сетям и затем использовать в прави-лах межсетевого экрана и других на-стройках m0n0wall. Настроить псев-донимы просто: заходим в «Firewall → Aliases», нажимаем кнопку «+» и вво-дим имя (псевдоним), тип псевдонима (узел или сеть), вводим адрес и в поле Description краткое описание. Теперь в случае изменения сетевых настроек, например IP-адреса, достаточно ука-зать эти изменения в Alias, после чего правила брандмауэра будут работать, как обычно. Очень удобно.

Ограничение полосы пропускания устанавливается во вкладке «Firewall → Traffic shaper». Для начала следует ука-зать максимальную полосу на вне-шнем интерфейсе для входящего и ис-ходящего трафика. Для этого перехо-дим в вкладку «Magic shaper wizard» и указываем необходимые значения в «Downstream speed» и «Upstream speed». Чтобы трафик распределял-ся равномерно между всеми подклю-ченными компьютерами, устанавлива-ем флажок в «Share bandwidth evenly on LAN». А чтобы понизить приоритет для пользователей P2P-сетей, включа-ем «Set P2P traffic to lowest priority». На-жимаем кнопку «Install/Update». После внесения изменений в трех остальных вкладках (Rules, Pipes и Queues) поя-вились правила. Они действительны для всех пользователей. Теперь созда-дим правило для конкретного IP-адре-

са. Сначала заходим в Pipes, нажима-ем «+» и создаем новое правило. Вво-дим в Bandwidth значение максималь-ной полосы, параметры Delay и Packet loss rate в большинстве случаев стоит установить в 0, а поле Queue size оста-вить пустым. Поле Mask устанавлива-ем в source или destination (входящий или исходящий). Нажимаем «Save», в Pipes появится новое правило. Те-перь в Rules, в котором необходимо привязать созданное правило к источ-нику. Нажимаем «+» и попадаем в ок-но «Edit Rule». Выбираем в раскрываю-щемся списке Target созданное в Pipes правило, затем указываем интерфейс, протокол, источник, порт, направление,

TOS, флаги ТСР и другие параметры (большинство которых не являются обязательными). Обратите внимание на наличие флажка «not» в некоторых позициях. С его помощью можно со-здавать исключения, например, огра-ничив канал для всех, кроме шефа, ус-тановив IP-адрес его компьютера в по-ле Source и активировав not.

Для разрешения просмотра статис-тики и изменения некоторых парамет-ров самими пользователями в «User manager», можно создать группы и включить в них пользователей. Ана-логично производятся и остальные на-стройки. Как видите, это несложно.

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

1. Яремчук С. Роутер без диска. //«Сис-темный администратор», № 9, 2004 г. – С. 8-9.

2. Яремчук С. Маленький линукс в качес-тве firewall. //«Системный администра-тор», № 9, 2003 г. – С. 24-32.

3. Яремчук С. Сетевой полицейский. //«Системный администратор», № 1, 2005 г. – С. 42-45.

4. Сайт проекта m0n0wall – http://m0n0.ch/wall.

Рисунок 3. Правила брандмауэра

Рисунок 4. Сайт проекта m0n0wall – http://m0n0.ch/wall

Page 80: 054 Системный Администратор 05 2007

78

IP-телефония

Андрей Погребенник

Всё, что вы хотели знать о протоколе SIP

Что общего у Microsoft Exchange 2007, Asterisk и Google Talk? А общим здесь является использование протокола SIP, который обещает единое решение задач как реализации мультимедийных функций в веб-приложениях, так и переноса сигнального трафика в сетях операторов связи.

Page 81: 054 Системный Администратор 05 2007

79№5, май 2007

IP-телефония

В одном из писем своим компа-ньонам Александер Грэм Белл впервые в истории и при этом

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

Путь будущего развития комму-никаций лежит через разделение ло-гики работы сетей и предоставления услуг. Новые услуги будут предостав-ляться опорной сетью, т.е. независимо от сети доступа. Таким образом, в лю-бом месте, при использовании любо-го метода доступа к сети и с любого оконечного устройства пользователь может обращаться к одним и тем же услугам. В опорных сетях уже сейчас происходит переход от сетей с комму-тацией каналов и мультиплексирова-нием с разделением по времени (Time-division Multiplexing, TDM), на которых реализована вся традиционная теле-фония, к пакетным сетям. Дополня-ет картину Fixed Mobile Convergence – идея интеграции функционала мо-бильных и фиксированных сетей.

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

ции; его задачи аналогичны тем, кото-рые выполняет протокол общеканаль-ной сигнализации №7 (ОКС7 или SS7) в обычной телефонии, а протоколы H.323 и MGCP (Media Gateway Control Protocol) – в IP-телефонии. Основны-ми функциями SIP являются:n Определение местонахождения

адресата.n Определение готовности адреса-

та установить контакт.n Обмен данными о функциональ-

ных возможностях участников се-анса.

n Изменение параметров медиапо-тока уже установленного сеанса.

n Управление сеансом связи.

Непосредственным носителем голосовых или видеоданных являет-ся протокол RTP (Real-time Transport Protocol), SIP-сообщение же выпол-няет роль контейнера для сообще-ний протокола описания сеансов свя-зи SDP (Session Description Protocol). Сообщение SDP описывает медиа-данные в рамках сессии: тип меди-аданных, транспортный протокол, формат данных и пр. RTP и SDP бу-дут рассмотрены в следующей ста-тье цикла, сейчас же сделаем акцент

История разработки SIPПроект, который со временем стал стан-дартом SIP, был начат в 1996 году Хенин-гом Шулзри (Колумбийский университет) и Марком Хэндли (UCL), участниками рабо-чей группы MMUSIC (Multi-Party Multimedia Session Control) ассоциации IETF. Черновик IETF, описывающий SIP версии 1.0, увидел свет в 1997 году. В следующем году был из-дан уже черновик версии 2.0. Статус пред-ложенного стандарта SIP получил в марте 1999 года, а в апреле того же года был опуб-ликован RFC первой предложенной версии стандарта – RFC 2543. В сентябре 1999 го-да была образована SIP Working Group, ра-ботающая с тех пор над самим протоколом и его расширениями. В июле 2000 года был опубликован RFC 2543 «bis», содержащий множественные поправки и улучшения к оригинальной спецификации. Этот доку-мент лёг в основу RFC 3261 (2002 года), яв-ляющегося и на сегодняшний день основ-ным SIP RFC. Заметьте, что номер версии всё ещё равен 2.0.

Постепенно были образованы и другие рабочие группы IETF, работа которых так

Protocol/Multiprotocol Label Switching), подключения корпоративных клиен-тов, управления вызовами и обслу-живания клиентских устройств – и всё это, как правило, с меньшими затрата-ми в сравнении с сетями TDM.

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

Назначение SIPSession Initiation Protocol (SIP) – это клиент-серверный протокол приклад-ного уровня, предназначенный для ус-тановления, изменения и окончания сеансов связи с одним или несколь-кими участниками для обмена интер-активным трафиком: голосом, видео, мгновенными сообщениями. SIP отно-сится к классу протоколов сигнализа-

или иначе касается SIP. Так, рабочая груп-па SIPPING (SIP Investigation) была сфор-мирована для исследования новых облас-тей применения SIP, выработки требова-ний к расширениям SIP и документов ре-комендательного характера касательно применения SIP в приложениях. Рабочая группа SIMPLE (SIP for Instant Messaging and Presence Leveraging Extensions) была сформирована для стандартизации расши-рений SIP для обмена мгновенными сооб-щениями и информацией о статусе состо-яния абонента.

Другие рабочие группы по SIP – ENUM (работающая над интеграцией SIP-адре-сации и принятых в ТфОП номерных пла-нов), SIGTRAN (Signaling Transport, пере-нос сигнализации SS7 поверх IP) и AVT (Audio/Video Transport (RTP), отвечающая за поддержку и расширение протокола RTP). MMUSIC же ответственна за SDP (Session Description Protocol), SAP (Session Announcement Protocol), RTSP (Real Time Streaming Protocol) и исследование воз-можностей применения SIP для мультиме-диа-конференций.

Page 82: 054 Системный Администратор 05 2007

80

IP-телефония

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

Так что, хотя о протоколе SIP чаще всего говорят в кон-тексте IP-телефонии, на самом деле он может применять-ся для установки поверх IP самых разнообразных сеан-сов связи, порой не имеющих ничего общего с телефон-ным звонком (что неудивительно для протокола, разра-ботанного IETF, а не телекоммуникационной индустри-ей, как H.323). Впрочем, H.323 сегодня также не ограни-чен голосовой связью и может обслуживать любой се-анс связи.

Традиционно H.323 называли более зрелым протоко-лом, а SIP – более динамичным, расширяемым, масшта-бируемым и, главное, простым в сравнении с H.323. Впро-

чем, эти границы постепенно размываются: в своём сегод-няшнем виде SIP так же сложен, как и H.323.

Так или иначе, кажется, что отрасль уже сделала свой выбор в пользу SIP (хотя позиции H.323 в операторс-кой среде по-прежнему прочны). Выбор SIP консорциу-мом 3GPP (3G Partnership Project) в качестве фундамен-та для строительства сетей мобильной связи следующе-го поколения в ноябре 2000 года способствовал появле-нию сервисной архитектуры подсистемы IP-мультиме-диа (IP Multimedia Subsystem, IMS). Протоколу SIP, кото-рый уже сегодня получил распространение в корпоратив-ных и операторских сетях, уготовано центральное место в унифицированной модульной архитектуре сетей нового поколения (Next Generation Networks, NGN) – фактически то место, которое cистема сигнализации SS7 сегодня за-нимает в сетях TDM.

SIP предполагает простую (и, следовательно, хорошо масштабируемую) сеть с интеллектом, встроенным в ко-нечные элементы (пользовательские агенты). Другими словами, функции SIP реализованы в конечных устройс-твах, в отличие от традиционных возможностей SS7, кото-рые поддерживаются самой сетью. Протокол SIP по струк-туре напоминает протоколы HTTP и SMTP. Из HTTP он взял клиент-серверную архитектуру и использование URL и URI, а из SMTP – способ кодировки текста и стиль за-головков.

SIP ориентирован в первую очередь на взаимосвязи точка-точка, но поддерживает и режим многоадресной рас-сылки (multicast). Последний может использоваться для организации конференций, когда информация передает-ся на один multicast-адрес, а затем доставляется сетью ко-нечным адресатам. Другие два варианта организации кон-ференций – соединение каждого пользователя с каждым в режиме точка-точка и соединение каждого пользовате-ля с устройством управления конференцией.

Впрочем, «точка-точка» – это слегка идеализирован-ный сценарий, возможный лишь в рамках одного домена. Типичная сеть SIP содержит и другие элементы: сервер ре-гистрации, прокси-серверы, а иногда и сервер переадре-сации. SIP работает в среде IPv4 и IPv6 с использовани-ем транспорта протоколов UDP, TCP, TLS или SCTP. Таб-лицы 1, 2 помогут читателю оценить различия архитек-тур SIP, H.323 и MGCP.

Структура сообщенийТеперь пора перейти к рассмотрению «строительных бло-ков» протокола SIP: методов, запросов и ответов, заго-ловков и т. д.

SIP использует набор символов ISO 10646 в кодиров-ке UTF-8. Запросы и ответы SIP имеют одинаковый базо-вый формат сообщения и различаются наборами симво-лов и синтаксисом. Сообщение состоит из:n стартовой строки;n одного или нескольких полей заголовков;n пустой строки, обозначающей конец полей заголов-

ков;n тела сообщения (необязательно).

Возьмём небольшой пример в виде запроса INVITE:

Протокол H.323 SIP MGCP

Назначение Для IP-телефонии Для IP-коммуникаций

Для управления транспортными шлюзами

Комитет стандартов ITU-T IETF IETF

Текущая версия H.323v4 SIP 2.0 (RFC 3261) MGCP 1.0 (RCF 3435)

Тип архитектуры Распределённая Распределённая Централизованная

Интеллект Рассредоточен по элементам сети В ядре сети В ядре сети

Используемый транспорт

TCP (H.225, H.245) и UDP (RAS)

UDP, TCP, TLS или SCTP UDP

Поддержка мультимедиа Да Да Да

Тип кодирования сообщений ASN.1 BER Текстовый Текстовый

Описание сеанса Протокол SDP Протокол H.245 Протокол SDP

Дополнительные услуги

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

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

Предоставляются конечными устройствами

Таблица 2. Сравнительные характеристики протоколов сигнализации

Протокол H.323 SIP MGCP

Управляющие компоненты сети Привратник

Прокси-сервер, сервер перенаправления, сервер регистрации

Call Agent

Конечные точки Шлюз, терминал Пользовательский агент Шлюз или

медиашлюз

Управление звонками и функции учёта

Шлюз, привратник Шлюз Call Agent

Статус звонка Шлюз, привратник Шлюз Call Agent

Обработка адресной информации Привратник Сервер регистрации Call Agent

Контроль доступа (admission control) Привратник Не поддерживается Call Agent

Таблица 1. Компоненты и сервисы протоколов сигнализации

Page 83: 054 Системный Администратор 05 2007

81№5, май 2007

IP-телефония

Теперь детально рассмотрим каждую строку запроса.Первая, или стартовая, строка запроса имеет следу-

ющий формат:

Заметим, что имя метода указывает на назначение дан-ного сообщения. Под этим термином понимают как запро-сы, так и ответы. Все последующие строки запроса несут дополнительную информацию о сообщении.

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

Заголовок Max-Forwards указывает максимальное ко-личество серверов SIP, разрешённое на сигнальном пути. Он обязателен во всех запросах SIP, кроме INFO.

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

Call-ID – это идентификатор вызова, глобально уни-кальный в рамках домена.

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

Contact содержит прямой путь к отправителю сообще-ния – FQDN или IP-адрес. Заголовков Contact может быть несколько.

Наконец, поле заголовка Content-Type содержит опи-сание тела сообщения, а Content-Length – длину содержи-мого тела сообщения в октетах.

После пробела следует тело сообщения. Тело сообще-ния несёт описание сеанса либо текстовые или двоичные данные, относящиеся определённым образом к нему. Те-ло сообщения может присутствовать как в запросе, так и в отклике. Обычно телом сообщения выступает SDP- или MIME-часть. Выше показано тело сообщения SDP. Пока мы пропустим его разбор; SDP будет рассмотрен в сле-дующей части статьи.

В таблице  3 сведены основные методы SIP вместе с их описаниями. По своему типу заголовки SIP можно раз-делить на несколько категорий, см. таблицу 4.

На каждый запрос отправителю направляется ответ, содержащий код результата выполнения запроса. Напри-мер, положительный ответ на приведённый выше INVITE может быть таким:

INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP pc33.example.com;branch=z9hG4bK776asdhdsMax-Forwards: 70To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected]: 101 INVITEContact: sip:[email protected]: application/sdpContent-Length: 142

v=0o=alice 2890844526 2890844526 IN IP4 example.comc=IN IP4 10.1.3.33t=0 0m=audio 49172 RTP/AVP 0a=rtpmap:0 PCMU/8000

<Имя метода> <Request-URI (адресат)> <Номер версии SIP>

Метод Описание Спецификация

INVITE Абонент или услуга приглашаются для установления связи RFC 3261

ACK Подтверждение получения финального ответа на INVITE RFC 3261

OPTIONS Запрос информации о функциональных возможностях терминала адресата RFC 3261

BYE Запрос завершения сеанса RFC 3261

CANCEL Отмена вызова в стадии установления RFC 3261

REGISTER Запрос регистрации пользовательского агента на сервере регистрации RFC 3261

INFOЗапрос, предназначенный для обмена сигнальной информацией в процессе установления и поддержания соединения

RFC 2976

MESSAGE Переносит мгновенное сообщение в теле запроса RFC 3428

NOTIFYПередаёт информацию о изменении состоянии ресурса, на уведомления о котором была открыта подписка

RFC 3428

PRACK Промежуточный ответ, сообщающий о статусе обработки запроса RFC 3262

REFER

Указывает на то, что получатель должен отправить вызов третьей стороне, используя контактную информацию, предоставленную в запросе

RFC 3515

SUBSCRIBE Запрашивает текущее состояние и информацию об обновлениях состояния удалённого ресурса RFC 3265

UPDATE Запрос изменения параметров сеанса RFC 3311

Таблица 3. Методы SIP

Тип заголовка SIP Примеры

Общие заголовки

AcceptAccept-EncodingAccept-LanguageAlert-InfoCall-IDCall-InfoCSeqContact

DateExpiresFromToRecord-RouteRouteTimestampVia

Заголовки с информацией о теле сообщения

Content-DispositionContent-EncodingContent-Language

Content-LengthContent-Type

Заголовки запросов

AuthorizationMax-ForwardsOrganization PriorityProxy-Authorization

Proxy-RequireRoute RequireSubjectUser-Agent

Заголовки ответов

AllowError-InfoProxy-AuthenticateRetry-After

UnsupportedServerWarningWWW-Authenticate

Таблица 4. Заголовки SIP

SIP/2.0 200 OKVia: SIP/2.0/TCP pc33.example.com;branch=z9hG4bKnashds8;received=10.1.3.33To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: [email protected]: 102 INVITEContact: <sip:[email protected]> Content-Length: 255Content-Type: application/sdp

Page 84: 054 Системный Администратор 05 2007

82

IP-телефония

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

Код статуса – это 3-значное число, первая цифра кото-рого указывает на класс ответа, а остальные две – иденти-фицируют конкретный ответ в каждом классе. Устройство может не знать, что означает код ответа, но должно обя-зательно знать класс ответа. Всего существует 6 классов ответов (таблица 5). Информационные ответы сообщают о стадии выполнения запроса, они не являются заверше-нием транзакции. Остальные же классы ответов завер-шают транзакцию.

Адресация в SIPДля идентификации абонентов и ресурсов в протоколе SIP используются SIP URI-идентификаторы, описанные в RCF 2396. SIP URI состоит из двух частей: первая часть –

это имя пользователя, зарегистрировавшегося в домене или на рабочей станции. Во второй части указывается имя домена, рабочей станции или шлюза. Если вторая часть адреса идентифицирует какой-либо шлюз, то в первой указывается телефонный номер абонента. В начале ад-реса ставится слово «sip:», указывающее, что это именно SIP URI (бывают и другие, например «sips:» для SIPS URI или «tel:» для номеров в формате E.164).

Таким образом, возможны SIP URI следующего вида:n имя@домен (где домен – полностью квалифицирован-

ное доменное имя, FQDN) – [email protected];n имя@хост – [email protected];n имя@IP_адрес – [email protected];n №_телефона@шлюз – sip:[email protected];

user=phone (user=phone означает, что это шлюз; gateway.com – FQDN терминирующего шлюза).

Если во второй части указывается доменное имя, для определения IP-адреса устройства необходимо обра-титься к службе DNS. RFC 3263 описывает процедуры DNS, с помощью которых можно транслировать SIP URI в IP-ад-рес, порт и транспортный протокол, необходимые для свя-зи с абонентом. RFC также специфицирует использование для этой цели ресурсных записей DNS SRV и NAPTR.

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

Таблица 5. Ответы SIP

Описание Примеры

1xx Информационные – запрос получен, продолжаю его обрабатывать

100 Trying180 Ringing183 Session Progressing

2xx Успех – действие было успешно получено, понято и выполнено

200 OK202 Accepted

3xxПеревод вызова – для завершения выполнения запроса необходимо обратиться к другому элементу SIP

300 Multiple Choices301 Moved Permanently302 Moved Temporarily

4xxОшибка клиента – запрос содержит ошибки или не может быть обслужен на этом сервере

400 Bad Request401 Unauthorized403 Forbidden404 Not Found407 Proxy Authentication Required408 Request Timeout480 Temporary Unavailable481 Call or Transaction Does Not Exist486 Busy Here487 Request Terminated

5xxОшибка сервера – сервер не смог обслужить правильно построенный запрос

502 Bad Gateway503 Service Unavailable

6xx Глобальная ошибка – запрос не может быть обслужен ни на одном сервере

600 Busy Everywhere603 Decline

Рисунок 1. Многоуровневая структура протокола SIP Рисунок 2. Понятия транзакции и диалога

<Номер версии SIP> <Код статуса> <Текст причины>

Page 85: 054 Системный Администратор 05 2007

83№5, май 2007

IP-телефония

Следующий уровень – это уровень транзакций. О SIP говорят как о тран-закционном протоколе. Транзакцией называют совокупность соообщений, состоящую из запроса, отправленно-го клиентом серверу, и всех ответов сервера на этот запрос (см. рис. 2). Уровень транзакций содержит кли-ентскую часть, называемую клиент-ской транзакцией, и серверную часть, называемую серверной транзакцией. Уровень транзакций предпринимает повторную передачу сообщений, оп-ределяет соответствие ответов за-просу и уведомляет верхний уровень протокола о срабатывании таймеров. И на самом верху находится уровень пользователя транзакций (Transaction User, TU), который управляет созда-нием транзакций. Все элементы сети SIP, за исключением прокси-сервера без хранения состояния, обязательно содержат уровни транзакций и поль-зователя транзакций.

Правила проверки соответствия запроса серверной транзакции тако-вы: сервер анализирует верхний за-головок Via на предмет наличия па-раметра branch. Если он присутству-ет и в начале его значения стоит на-бор символов «z9hG4bK», как в рас-смотренном выше примере:

следовательно запрос был сгенери-рован клиентом, поддерживающим RFC 3261 в полной мере, и параметр branch уникален в каждой транзак-ции данного клиента. Запрос прина-длежит транзакции в том случае, если значение параметра branch запроса совпадает с таковым из запроса, об-разовавшего транзакцию, а имя мето-да из поля заголовка CSeq совпадает с таковым из запроса, образовавше-го транзакцию.

Если же параметр branch отсутс-твует, как показано ниже:

сервер руководствуется следующи-ми правилами. Запрос принадле-жит транзакции в том случае, если Request-URI (часть стартовой строки, указывающая на адресата данного за-проса), теги заголовков From и To, за-головки Call-ID и Cseq (включая на-звание метода) и верхний заголовок

вающего абонента и недвусмыс-ленно идентифицирует диалог на уровне данного пользователь-ского агента.

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

Компоненты SIP. Пользовательские агенты (User Agent – UA)Этим термином называют конечное устройство сети SIP или приложение, способное установить сеанс, управ-лять им и разорвать его, а также про-изводить обмен медиаданными с дру-гими пользовательскими агентами.

Поскольку SIP – это одновременно и протокол типа «точка-точка», и кли-ент-серверный протокол, конечная точка SIP должна быть способна от-вечать на запросы сессии SIP и ини-циировать их. Следовательно, конеч-ная точка должна содержать два SIP-стека одновременно:n User Agent Client (UAC) – инициа-

тор запросов.

Via: SIP/2.0/UDP pc33.example.com;branch=z9hG4bK776asdhds,

Via: SIP/2.0/UDP pc33.example.com,

Via совпадают с соответствующими полями запроса, образовавшего тран-закцию. В случае проверки соответс-твия запроса ACK серверной тран-закции, Request-URI, теги заголовков From и To, заголовки Call-ID, Cseq и Via запроса ACK сравниваются с таковы-ми в изначальном INVITE, а To-тег – с тегом первого ответа серверной тран-закции на INVITE. Аналогично выпол-няется проверка соответствия ответа клиентской транзакции.

Наконец, диалог – это равноправ-ное взаимодействие двух элементов сети SIP в виде последовательности SIP-сообщений между ними. Диалог всегда инициируется пользователь-ским агентом, но другие элементы се-ти также в нём участвуют. Сообщения в рамках одного диалога отличают-ся одинаковыми Call-ID и тегами за-головков From и To, а порядковый но-мер в поле CSeq монотонно возраста-ет. Фактически CSeq идентифицирует транзакцию в рамках диалога, а диа-лог является последовательностью транзакций, из которых только одна может быть активна в каждый момент времени. Однако, кроме диалогообра-зующих запросов, существуют и за-просы, не образующие диалогов.

Здесь также уместно разъяснить значение заголовка Call-ID и From- и To-тегов:n Call-ID – это некая уникальная

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

n Тег заголовка From генерируется пользовательским агентом вызы-

Рисунок 3. Работа сервера регистрации

Рисунок 4. Переадресация вызова

Page 86: 054 Системный Администратор 05 2007

84

IP-телефония

n User Agent Server (UAS) – иници-атор ответов на запросы. UAS мо-жет взаимодействовать с пользо-вателем, поэтому вместе с запро-сом SIP пользователь иногда в той или иной форме получает уведом-ление от UAS.

Для UA существует также другое название – SIP-клиент.

Сообщение SIP – это или запрос от UAC к UAS, или ответ UAS компо-ненту UAC. В оригинальной специфи-кации SIP описано шесть возможных типов запросов (или методов), кото-рые может выдать UAC: INVITE, ACK, OPTIONS, BYE, CANCEL и REGISTER. Расширения SIP, описанные в RFC, оп-ределяют дополнительные методы – такие, как MESSAGE, INFO и NOTIFY.

Когда UAC инициирует SIP-сессию, он определяет протокол, порт и IP-ад-рес UAS, которому посылается запрос. При отсутствии любой информации о локально настроенном прокси-сер-вере, UAC использует данные в URI запроса для определения маршру-

ный номера CSeq, Call-ID, маршрут-ные заголовки и характеристики ме-диапотоков.

Шлюзы, выполняющие преобразо-вание H.323 в SIP, ISDN в SIP или SS7 в SIP, с точки зрения SIP функциональ-но ничем не отличаются от пользова-тельских агентов (ведь другие элемен-ты сети SIP не «знают», действует ли UA, руководствуясь командами поль-зователя или сообщениями/события-ми других протоколов).

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

ENUMКак быть, когда при развёртывании SIP-сети необходимо предус-мотреть возможность приёма входящих вызовов от абонентов ТфОП, но использование DID-номеров (Direct Inward Dial) по тем или иным причинам невозможно? Адреса E.164 могут хранить-ся в особой зоне, e164.arpa, службы DNS с помощью протокола ENUM (TElephone NUmber Mapping). Любой телефонный номер, например +878102233350332, может быть преобразован в домен-ное имя записью цифр в обратном порядке, разделением их точ-ками и добавлением суффикса e164.arpa, для нашего примера: +878102233350332 -> 2.3.3.0.5.3.3.3.2.2.0.1.8.7.8.e164.arpa.

Это преобразование выполняется на так называемом ENUM-шлюзе (физически им может являться шлюз, UA или даже веб-браузер). Полученное доменное имя можно использовать в запро-се к DNS-серверу для получения ресурсной записи типа NAPTR (Naming Authority Pointer DNS Resource Records, RFC 3403), кото-рая содержит предпочтения пользователя касательно того, как и куда следует терминировать вызов. Сама запись типа NAPTR поддерживает регулярные выражения, а алгоритм DDDS (Dynamic Delegation Discovery System, RFC 3401 – RFC 3405) используется для преобразования доменного имени в адрес того или иного сер-виса с использованием данных регулярных выражений.

Например, возьмём NAPTR-запись такого вида:

Числа 100, 101, 102 указывают порядок, в котором записи долж-ны быть обработаны для образования упорядоченного списка правил, поэтому мы сначала выбираем первую запись. Число 10 (Preference) для нас не имеет значения, поскольку других записей

$ORIGIN 2.3.3.0.5.3.3.3.2.2.0.1.8.7.8.e164.arpa. IN NAPTR 100 10 "u" "E2U+sip" "!^.*$!sip:[email protected]!i" . IN NAPTR 101 10 "u" "E2U+h323" "!^.*$!h323:[email protected]!i" . IN NAPTR 102 10 "u" "E2U+msg" "!^.*$!mailto:[email protected]!i" .

с порядковым номером 100 нет. Если бы записей с порядковым номером 100 было несколько, более приоритетной стала бы за-пись с меньшим значением Preference. Затем «u» – это флаг, кото-рый контролирует интерпретацию последующих полей; «u» пред-писывает выполнить преобразование и не анализировать после-дующие правила записи. Соответственно, если мы поддержива-ем сервис, на который указывает поле «E2U+sip», правила с бо-лее высокими порядковыми номерами анализироваться не бу-дут. Если приложение не поддерживает SIP, протокол mailto: под-держивается наверняка (как видите, ENUM не является протоко-лом, специфичным исключительно для VoIP). Заметим, что набор сервисов не ограничен только этими тремя. Наконец, последнее поле задаёт регулярное выражение (синтаксиса регулярных вы-ражений Perl, только вместо прямого слэша используется знак восклицания), которое нужно применить к указанному в запросе доменному имени, чтобы получить результат запроса. Как толь-ко результат получен, дальнейшая маршрутизация выполняется обычными для данного протокола методами, а всё, о чём мы го-ворили до сих пор, абсолютно прозрачно для конечного пользова-теля. К тому же подписчик ENUM имеет возможность задать под одним E.164-номером множество протоколов и адресов, запрог-раммировать перенаправление вызовов и т. д.

За работу зоны e164.arpa отвечает RIPE NCC: http://www.ripe.net/enum/, но ответственность за отдельные страны поручена локаль-ным NIC (nic.at, nic.cz, …) или компаниям, работающим с ENUM (Neustar, Verisign). Владелец ENUM-номера обычно имеет воз-можность изменять связанный с номером SIP URI через веб-ин-терфейс.

Кроме уже упомянутых RFC, данной теме посвящён RFC 3761.

та SIP-запроса. Данный URI запроса всегда определяет хост, но не всегда – порт и протокол. Если хост через ад-рес IP указан явным образом, UAC пы-тается связаться с UAS по этому ад-ресу. Если URI запроса специфици-рует полностью определенное домен-ное имя Fully Qualified Domain Name (FQDN), UAC опрашивает службы DNS для разрешения имен, используя для этого ADDRESS, CNAME или дру-гие данные в ресурсной записи. Если URI запроса содержит номер порта, UAC пытается установить соединение с UAS, используя данный номер; если же URI запроса не указывает номер порта, UAC по умолчанию использует в качестве порта назначения 5060. Ес-ли URI запроса указывает транспорт-ный протокол (TCP или UDP), UAC ис-пользует его. В противном случае UAC предпринимает попытку связи по UDP, а в случае ошибки UAC пытается за-действовать TCP.

Каждый UA должен хранить со-стояние диалога, а именно: помнить теги From и To, локальный и удалён-

Page 87: 054 Системный Администратор 05 2007

85№5, май 2007

IP-телефония

для установления сеанса связи. Обработкой этой инфор-мации и занимается сервер регистрации: получая от поль-зовательского агента запрос REGISTER, он создаёт вре-менную связку из присвоенного пользователю SIP URI (на-зываемого также Address of Record – AOR) и URI заголов-ка Contact, который указывает на адрес, куда следует на-правлять запросы (см. рис. 3). База данных с информацией о местоположении пользователей доступна для всех сер-веров в рамках данного административного домена (для прокси-серверов и серверов перенаправления), что делает возможной маршрутизацию входящих вызовов. Сам запрос REGISTER может использоваться для получения списка те-кущих привязок, удаления всех привязок или добавления новой. Отклик 200 OK на запрос REGISTER содержит заго-ловок Expires, указывающий, через сколько секунд нужно обновлять регистрацию, а также один или несколько заго-ловков Contact со всеми текущими привязками.

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

Прокси-серверыНаличие прокси-сервера является обязательным атрибу-том каждой корпоративной или операторской сети. Прок-си-сервер действует как посредник, который обслуживает запросы пользовательских агентов и пересылает их даль-ше, выполняя маршрутизацию сообщений. Прокси-серве-ры играют ключевую роль в сетях SIP, поскольку связыва-ют вместе пользовательские агенты и другие элементы SIP-сети в одном или множественных доменах, реализуя логи-ку маршрутизации. Прокси-сервер не генерирует запросы самостоятельно (за исключением CANCEL), а лишь отве-чает или пересылает запросы, полученные от UAC. Также он выполняет интерпретацию, удаление, добавление или модификацию заголовков, касающихся прямых функций прокси-сервера (таких, как Record-Route или Via), но ни-чего не «знает» о SDP-части. А основные функции прокси-сервера следующие:n Маршрутизация – определение получателя вызова, по-

иск маршрута для отправки сообщения и собственно от-правка.

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

n Дополнительные услуги – прокси-серверы могут пре-доставлять набор дополнительных услуг, такик как: пе-ренаправление вызова, уведомление о пропущенных вызовах, обеспечение приватности и т. д.

Алгоритм маршрутизации не поддаётся формализа-ции, поскольку определяется архитектурой и политикой

конкретной сети, но мы рассмотрим некий усреднённый пример. Итак,n Запросы к абонентам, принадлежащим к тому же ад-

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

вызовов по номеру 911).n Запросы к абонентам, принадлежащим к другому доме-

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

n Запросы, адресованные по некоторым предопределён-ным номерам, маршрутизируются к специализирован-ным серверам приложений (например, *98 для доступа к серверу голосовой почты).

n Запросы, адресованные на номер в формате E.164, мар-шрутизируются, основываясь на: Заранее заданных таблицах маршрутизации; Динамически получаемых (например, от биллинго-

вой системы) маршрутов; ENUM (см. врезку «ENUM» на стр. 84).

Запись типа SRV предоставляет механизм для полу-чения списка хостов, предоставляющих некоторую служ-бу посредством разных транспортных протоколов, с упо-рядочиванием по предпочтению. Для примера, пусть кли-ент пытается разрешить URI sip:[email protected]. Клиент производит DNS-запрос и выбирает ресурсные записи ти-па NAPTR для данного домена:

В примере видно, что сервер поддерживает TCP, UDP и TCP через ТLS. Затем, обрабатывая записи SRV, кли-ент определяет сервер назначения (или список серверов) для предпочитаемого им типа транспортного протокола:

Дальнейшее разрешение имён производится с помощью привычных ресурсных записей адреса узла (A).

Когда proxy-сервер пересылает SIP-запрос, он до-бавляет своё имя (имя сервера) в начало списка в поле Via в заголовке SIP-сообщения. Это поле позволяет воз-вращать ответы по тому же маршруту, по которому про-ходил запрос. На «обратном» пути каждый proxy-сервер удаляет своё имя из поля Via после обработки SIP-отве-та (см. рис. 5).

Обобщённый же алгоритм работы прокси-сервера мож-но представить следующим образом:1) Проверка корректности составления входящего запро-

са.

;;;; Записи NAPTR для различных услуг SIP сети ; order pref flags service regexp replacement IN NAPTR 50 50 "s" "SIPS+D2T" "" _sips._tcp.example.com. IN NAPTR 90 50 "s" "SIP+D2T" "" _sip._tcp.example.com. IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.example.com.

;;;; Записи SRV для каждой SIP услуги ;; Служба.протокол.имя Приоритет Вес Порт Цель _sips._tcp.example.com SRV 10 1 5061 proxy1.example.com. SRV 20 1 5061 proxy2.example.com. _sip._tcp. example.com SRV 10 1 5060 proxy1.example.com. SRV 20 1 5060 proxy2.example.com. _sip._udp.example.com SRV 10 1 5060 proxy1.example.com. SRV 20 1 5060 proxy2.example.com.

Page 88: 054 Системный Администратор 05 2007

86

IP-телефония

2) Приведение номера вызываемой стороны к формату E.164.

3) Аутентификация отправителя за-проса.

4) Выполнение запрошенных вызы-вающей стороной процедур, таких как удаление из запроса или изме-нение идентифицирующих вызыва-ющую сторону заголовков.

5) Авторизация вызова.6) Обращение к серверу регистрации

для поиска подходящего получате-ля запроса.

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

8) Если получатель не найден – отпра-вить звонок в ТфОП.

Различные типы прокси-серверовПрокси-сервер без хранения состо-яния (Transaction Stateless) – прокси-сервер, который не хранит состояние сеанса и руководствуется лишь внут-ренней логикой маршрутизации сооб-щения, применяя её к каждому отде-льно взятому запросу. Такой прокси-сервер не выполняет повторную пере-дачу сообщений (а следовательно, не-применим в рамках модели SIP/TCP). Целесообразным применение тако-го прокси-сервера является при очень высокой нагрузке или в балансиров-щиках нагрузки прикладного уровня.

Прокси-сервер с хранением состо-яния транзакции (Transaction Stateful) – прокси-сервер, который запомина-ет входящие и исходящие сообщения в рамках данной транзакции до полу-чения (или отправки) финального от-

турно представляет собой не что иное, как B2BUA). Также B2BUA делает воз-можным реализацию перекодирования медиапотока, его перехвата и т. д.

Пользуясь лишь критерием хра-нения состояния, B2BUA можно было бы отнести к классу прокси-серверов с хранением состояния диалога. На са-мом деле это не прокси-сервер в при-вычном смысле этого слова: он выпол-няет несвойственные для прокси-сер-вера операции по удалению и модифи-кации заголовков (а иногда и модифи-кацию SDP-части). Есть и другая харак-терная черта: B2BUA фактически ни-когда не бывает реальным адресатом запроса, а лишь пересылает его дру-гой стороне. Такая функциональность выходит за рамки RFC 3261: RFC спе-цифицирует лишь то, что SIP-прокси маршрутизирует один диалог, т.е. сооб-щения с одинаковыми Call-ID и тегами заголовков From и To, между конечны-ми устройствами, не изменяя их (кро-ме заголовков, используемых для мар-шрутизации, включая неизвестные за-головки), а B2BUA же создаёт новый диалог и может модифицировать лю-бую содержающуюся в запросе ин-формацию перед отправкой сообще-ния адресату. Разработчики могли бы для реализации каждого подмножес-тва набора расширенных услуг пред-лагать некий «расширенный» прокси-сервер, нарушающий отдельные ас-пекты RFC 3261, но такой подход вряд ли можно счесть практичным и расши-ряемым. Объединение же стеков UAC и UAS в одном устройстве позволяет в точности придерживаться требова-ний спецификаций, а тщательный под-ход к реализации самих стеков – сде-лать B2BUA максимально прозрачным для конечных абонентов.

В следующий раз мы рассмотрим реальный пример вызовов в сети SIP, поговорим о предоставлении спект-ра расширенных услуг на базе прото-кола, протокол описания сеанса SDP и транспортный протокол реального времени RTP.

1. http://www.cs.columbia.edu/sip – сайт Хе-нинга Шулзри, Колумбийский универ-ситет.

2. http://www.sipcenter.org – SIP Center, портал на тему SIP.

3. http://www.tech-invite.com – Tech Invite – портал, посвящённый SIP и IMS.

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

Прокси-сервер с хранением состо-яния диалога (Dialog Stateful) – прок-си-сервер, который вставляет заголо-вок Record-Route в самый первый за-прос SIP для того, чтобы все последу-ющие сообщения в рамках данного диалога проходили через этот же сер-вер; это относится к каждому прокси-серверу на пути между пользователь-скими агентами. Такой прокси-сервер способен предоставить полный набор функций программного коммутатора классов 4 и 5.

Back-to-Back UA (B2BUA)«Back-to-back user agent» – это компо-нент, состоящий из двух SIP UA, ко-торые общаются между собой стро-го на прикладном уровне (с помощью SIP-сообщений). B2BUA образует свое-го рода периметр безопасности между SIP UA, находящимися по обе стороны от B2BUA: он скрывает детали реали-зации SIP на каждом из конечных уст-ройств. В типичном случае B2BUA ис-пользуется для форсирования обры-ва звонков в сетях операторов связи по истечении предоплаченного объема услуг и вообще какого-либа контро-ля диалога третьей стороной, а также скрытия топологии сети и обеспечения определённых функций безопасности (кстати говоря, шлюз уровня приложе-ний, ALG, с поддержкой SIP, архитек-

Рисунок 5. Маршрутизация вызова между доменами при посредничестве прокси-серверов

Page 89: 054 Системный Администратор 05 2007
Page 90: 054 Системный Администратор 05 2007

88

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

Чем громче имя компании, тем боль-ше конкурентов старается раз-личными способами «насолить»

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

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

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

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

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

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

Судебные тяжбы двух гигантовIntel против AMD. Ещё со времён их основания (Intel – в 1968 году, AMD –

Патентные войны: оберегай своё, не посягай на чужое

Дмитрий Мороз

Термин «патентный терроризм» был придуман в 2001 году ассистентом Intel Питером Диткином неспроста. Ведь сегодня, в мире высоких технологий, отстаивание компаниями своей интеллектуальной собственности является одной из наиболее насущных тем.

Page 91: 054 Системный Администратор 05 2007

89№5, май 2007

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

в 1969 году) эти компании неустанно враждовали между собой.

Начало многолетним распрям бы-ло положено в феврале 1982 года, ког-да по требованию IBM между обеими компаниями был подписан договор о кросс-лицензировании их разрабо-ток, согласно которому Intel получала доступ к разработкам AMD, а послед-няя – возможность производить клоны процессоров 8086 и 8088.

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

Однако AMD не просто копирова-ла процессоры Intel, а выпускала чипы с большим быстродействием, к тому же продававшиеся по более низкой це-не. Например, максимальная частота, на которой работал чип 80286 произ-водства Intel, равнялась 12,5 МГц, тог-да как у AMD она составляла 16 МГц. Понятное дело, что в клиенты пред-почитали «платить меньше, получая больше».

Intel с подобным положением дел мириться не собиралась, и в 1986 го-ду, когда AMD в соотвествии с согла-шением, потребовала выдать ей доку-ментацию по дизайну архитектуры но-вого процессора 80386 (i386), ответила отказом, попутно расторгнув договор четырёхлетней давности. Своё реше-ние Intel мотивировала тем, что при на-личии нескольких фабрик, располо-женных в различных регионах, необ-ходимость во втором подрядчике уже не была существенной. К тому же она рекламировала себя в качестве разра-ботчика передовых технологий, на ко-торого равняются остальные.

AMD ничего не оставалось, как об-ратиться в суд. Иск против Intel был подан в верховный суд Калифорнии в 1987 году. Процесс длился вплоть до 1991 года, когда Intel, признанная виновной, была вынуждена выплатить истцу 10 млн. долларов.

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

не имела права доступа к разработ-кам Intel. В результате инженерам ком-пании пришлось путём обратной инже-нерии (reverse-engineering) разобрать процессор i386, дабы изучить его архи-тектуру, принципы работы и быть спо-собным в дальнейшем производить его клоны (если быть более точным, обратная инженерия была использо-вана AMD ещё на этапе проектирова-ния клона сопроцессора 80287).

Процесс закончился успешно, и в том же 1991 году на свет появил-ся чип Am386. Несмотря на то что про-цессор имел другую архитектуру, от-личную от 386, по части микрокода (т.н. код элементарных команд ЦПУ) они полностью совпадали. К тому же по частоте работы процессора Am386 был опять вне конкуренции – 40 МГц против 33 МГц у i386.

Теперь уже настал черед Intel по-давать в суд на AMD, обвиняя её в на-рушении своей патентной базы. Ком-пания требовала прекращения выпус-ка Am386, объёмы продаж которых за один только 1991 год достигли милли-она единиц. AMD, в свою очередь, за-щищалась договором 1982 года, со-гласно которому Intel сама выдала ей лицензию на производство клона i386. Как и следовало ожидать, приговор был вынесен в пользу ответчика.

Ну а пока Intel апеллировала реше-ние суда, опять-таки благодаря искус-ству обратной инженерии AMD произ-вела на свет клон уже 486-го процес-сора. Последовавшая за этим череда взаимных судебных исков и апелляций закончилась победой AMD. Однако бы-ла ли она довольна этим?

Затяжные судебные тяжбы меж-ду двумя гигантами процессоростро-ения – причина нестабильности всего рынка, в которой не была заинтересо-вана ни одна из компаний. Дабы ис-править ситуацию, 30 декабря 1994 го-да между враждующими сторонами был подписан договор, согласно ко-торому AMD, выплатив 58 млн. долла-ров за убытки, нанесённые Intel во вре-мя судебных разбирательств, получа-ла доступ к архитектурам процессо-ров 386 и 486 и имела полное право выпускать их клоны. Также компания могла производить процессоры, сов-местимые с Pentium по части микро-кода и системного разъёма. При этом AMD возбранялось выпускать чипы,

разъёмы которых были бы физичес-ки совместимы с процессорами Intel следующей за Pentium архитектуры. В свою очередь, Intel также решила «расстаться» с 18 миллионами, ушед-шими на счёт AMD. С тех пор обе ком-пании идут каждая своим курсом.

И снова в судеОтносительное перемирие между Intel и AMD длилось на протяжении поч-ти десяти лет. Исключение составил лишь судебный иск 1997 года, выдви-нутый Intel против AMD и Cyrix. В нём обе компании обвинялись в непра-вильной трактовке аббревиатуры MMX (MultiMedia eXtension), которой Intel рек-ламировала набор расширенных инс-трукций для работы с мультимедийны-ми данными, встроенный в её новые процессоры. Ответчики признали MMX торговой маркой Intel и её собственнос-тью, после чего иск был отклонён.

Гром разразился 7 февраля 2005 го-да, когда AMD Japan подала иск про-тив японского представительства Intel, обвиняя её в злоупотреблении своим монопольным положением на рынке, а также оказании давления на другие компании: Fujitsu, Hitachi, NEC, Sony и Toshiba. В документе указывалось, что Intel посредством угроз, а также денежных выплат заставляла их от-казываться от покупок процессоров AMD либо же ограничить подобные закупки.

Согласно решению Торговой ко-миссии Японии (Japanese Fair Trade Commission), вынесенному 26 июня 2005 года, Intel отныне возбраняет-ся предоставлять японским компани-ям скидки на свои процессоры в об-мен на условие, что они не будут ис-пользовать в своей продукции чипы конкурента.

На следующий день, 27 июня, AMD подала подобный иск в окружной суд округа Дэлавер, США. Обвинения против Intel выдвигаются те же, одна-ко на этот раз в список было занесе-но 38 компаний, подвергшихся давле-нию со стороны ответчика.

Если решение судьи будет в поль-зу AMD, перед ней откроются новые рынки сбыта собственной продукции. Например, компании Dell и Apple, под-писавшие эксклюзивные соглашения с Intel, отныне не будут «связаны» рам-ками своих договоров и смогут исполь-

Page 92: 054 Системный Администратор 05 2007

90

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

зовать в своих компьютерах процессо-ры обоих производителей.

AMD была не единственной компа-нией, чьи представители встречались с юристами Intel в суде. Среди всего списка «пострадавших» наиболее ярко заявила о себе компания Intergraph.

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

На протяжении первых лет Intergraph, основанная в 1969 году бывшими со-трудниками из IBM, занималась кон-сультированием правительственных организаций относительно компьюте-ризации их учреждений, а также раз-работкой и производством навигаци-онных систем для ракет. Спустя два десятка лет она приобрела компанию Fairchild Semiconductor, в то время раз-рабатывавшую процессор Clipper. Он и стал сердцем новых графических стан-ций Intergraph. В 1993 году вследствие высокой конкуренции компания приня-ла решение приостановить разработ-ку собственного процессора, переве-дя свои рабочие станции на платфор-му Pentium. Казалось бы, Clipper стал достоянием истории…

Судебные тяготы начались 17 нояб-ря 1997 года. Именно тогда Intergraph подала свой первый иск против Intel, обвинив её в нарушении пяти патентов во время производства чипов Pentium. Intergraph требовала от Intel выплаты 2,2 миллиардов долларов в качестве компенсации за нанесённый мораль-ный ущерб.

Ну а в то время, пока шло судебное разбирательство по поводу Pentium, ещё один процессор Intel стал «жерт-вой» очередного иска, поданного про-тив компании 31 июля 2001 года. Архи-тектура чипа Itanium была разработана с нарушением двух патентов Intergraph, описывающих технологию «Парал-лельной обработки команд» (Parallel Instruction Computing), разработанную во время проектирования чипа Clipper C5 в 1992 году. И опять Intel должна бы-ла выплатить большую сумму в качес-тве компенсации.

Судебный процесс по поводу чипов Pentium к тому времени длился на про-

тяжении пяти лет. Наконец, 17 ап-реля 2002 года Intel решила уладить спор мирным путём, выплатив истцу 300 млн. долларов. Взамен этого ком-пания выкупила у Intergraph ряд патен-тов, а также получала непереводимую лицензию на часть интеллектуальной собственности, касающейся процес-сора Clipper.

11 октября 2002 г. Intel также согла-силась выплатить Intergraph 150 млн. долларов, дабы уладить часть вопро-сов по иску, касавшемуся чипа Itanium. 30 марта 2004 года, после дополни-тельной выплаты 225 млн. долларов, Intergraph успокоилась и приостано-вила судебный процесс.

Впрочем, юристы компании не си-дели, сложа руки. За это время они успели побывать «в гостях» у Dell, Gateway и Hewlett-Packard. Опять все-му виной стал «несчастный» Clipper. Лицензия Intel на патенты, касавшие-ся процессора, не распространялась на её клиентов, поэтому Intergraph мог-ла вызвать в суд любого производите-ля компьютеров на базе чипов семейс-тва Pentium. Поскольку Dell, Gateway и HP входили в тройку наибольших поставщиков компьютерной техники в мире, они-то и стали первой целью для очередного разбирательства.

Dell повезло больше всех: в 2004 го-ду во время пересмотра патентного со-глашения между Intel и Intergraph она «вышла сухой из воды». Однако осталь-ным компаниям пришлось хуже. В мае 2004 года Gateway разошлась с истцом мирным путём, выплатив Intergraph 10 млн. долларов, а также пообещав оплачивать лицензионные отчисле-ния в размере 1,25 доллара с каждого проданного компьютера. Спустя неко-торое время HP также была вычерк-нута из списка обвиняемых, выплатив компании 141 млн. долларов.

29 июня 2006 года старые патен-ты по процессору Clipper в очеред-ной раз стали причиной нового иска. На этот раз Intergraph обратила свой взор на Восток, обвинив в нарушении своей интеллектуальной собствен-ности Fujitsu, NEC и Toshiba. Причём для большей уверенности судебные процессы были начаты сразу в двух су-дах – в Калифорнии (США) и Гамбурге (Германия). Как и в случае с американ-скими компаниями, Intergraph требу-ет возмещения материального ущер-

ба, а также получение лицензионных отчислений.

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

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

Компания OPTi, ранее занимав-шаяся разработкой и продажей полу-проводниковых устройств для персо-нальных компьютеров, а ныне лицен-зирующая свои технологии, 20 октяб-ря 2004 года подала иск против про-изводителя графических чипов Nvidia, обвинив её в нарушении пяти своих патентов. Три из них касались тех-нологии под названием «Предиктив-ная выборка адресов из кэш-памяти» (Predictive Snooping of Cashe Memory), которая предназначается для умень-шения задержек при работе устройс-тва с шиной PCI. Ещё два патента опи-сывали разработанную OPTi специ-фикацию интерфейса ввода/вывода, предназначенного для портативных устройств.

Судебный спор был временно улажен путём подписания 2 августа 2006 года договора, согласно кото-рому Nvidia лицензирует технологию «Предиктивной выборки», взамен чего на протяжении трёх лет будет выпла-чивать истцу ежеквартально 750 ты-сяч долларов. Стороны остались до-вольны, о конфликте позабыли вплоть до 8 февраля сего года, когда Nvidia объявила о своём прекращении ис-пользования технологии OPTi, а так-же отказе от ежеквартальных выплат лицензионных отчислений. Судебный иск, пролежавший на полках полтора года, вновь всплыл на свет.

Ну а пока «ничто не предвеща-ло бури», OPTi, подписав договор с Nvidia, переключилась на других иг-роков рынка.

Второй «под раздачу» попала ком-пания AMD, 21 ноября 2006 года об-винённая в нарушении всё тех же трёх патентов, описывающих «Предиктив-ную выборку», путём производства своих процессоров семейства Opteron,

Page 93: 054 Системный Администратор 05 2007

91№5, май 2007

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

а также наборов системной логики к ним. OPTi потребовала прекраще-ния производства и продаж продук-ции, а также выплаты компенсации за нанесённый ущерб. Кроме данно-го иска, на счету AMD как ответчика уже висит несколько неразрешённых судебных процессов, инициатор одно-го из которых – компания MicroUnity, о которой я рассказывал в прошлом номере журнала.

Последней на данный момент ком-панией, на которую «обиделась» OPTi, стала Apple. Произошло событие 19 ян-варя 2007 года. Согласно иску, Apple производит и продаёт устройства, в ко-торых используется технология «Пре-диктивной выборки».

В то время как Apple встраивала процессоры производства AMD в свои базовые станции беспроводного до-ступа AirPort Base Station, все её ком-пьютеры, как настольные, так и порта-тивные, оснащены чипами Intel. Так что нельзя отрицать, что вслед за AMD и Apple в числе обвиняемых окажет-ся и она.

Bluetooth в центре вниманияГиганты компьютерного рынка – не единственные, «на чьи головы сыплют-ся» судебные иски. К компаниям, зани-мающимся выпуском потребительской электроники, также часто наведывают-ся чужие юристы. Одним из последних стал иск некоммерческой организации Washington Research Foundation (WRF), поданный ею против одиннадцати ве-дущих игроков рынка электронной про-дукции. Причина – беспроводной ин-терфейс Bluetooth, которым оснащены выпускаемые ими устройства.

В декабре 2006 года WRF подала иск против Matsushita Electric, Samsung Electronics и Nokia. Согласно нему, ком-пании нарушили четыре патента орга-низации, которые описывают техноло-гию, позволяющую пользователям об-мениваться информацией между мо-бильными телефонами, компьютера-ми и другими устройствами без ис-пользования проводных интерфейсов. Совсем недавно, 27 марта этого года, к списку обвиняемых были добавле-ны ещё восемь компаний: Apple, Dell, Sony, Logitech, Motorola, Sony Ericsson, Toshiba и Plantronics. В организации Bluetooth Special Interest Group, кури-

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

Дело в том, что иск WRF направлен против электронных продуктов, кото-рые оснащены чипами компании CSR Plc. По словам представителей орга-низации, микросхемы CSR использу-ют Bluetooth-технологию без данно-го ею разрешения. WRF лицензиро-вала права на свои разработки дру-гому производителю Bluetooth-чипов – Broadcom. Поэтому к компаниям, вы-пускающим устройства на их основе, претензий нет.

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

MP3-плееры под прицеломЕщё более громким стал иск, подан-ный компаний Texas MP3 Technologies против Apple, Samsung и SanDisk. Со-гласно патенту, Texas MP3 обладает правами на технологию «портативного аудиоустройства, пригодного для вос-произведения данных, закодирован-ных в формате MPEG, оснащённого набором входов, памятью для хране-ния данных, дисплеем, аудиовыходом, как минимум одним процессором и ба-тареей». То есть само название доку-мента – это краткая характеристика MP3-плеера.

Texas MP3 приобрела патент 15 февраля этого года у SigmaTel (про-изводитель чипов для MP3-плееров) и уже на следующий день подала иск в суд. «Мы приняли решение избавить-ся от патента, поскольку для обеспе-чения его большой коммерческой цен-ности необходимы миллионы долла-ров, которые пришлось бы потратить на гонорары юристам», – мотивиро-вал решение о продаже исполнитель-ный директор SigmaTel Рон Иджиртон (Ron Edgerton).

Сам патент был зарегистриро-ван двумя корейскими изобретате-лями ещё в 1997 года, тогда как пер-вые МР3-плееры появились на рынке

лишь год спустя. По прогнозам ана-литиков, в 2007 году продажи пор-тативных проигрывателей перева-лят за 200 млн. единиц. К 2010 го-ду эта цифра перевалит за 250 млн. штук, а сам рынок будет оцениваться в 21,5 млд. долларов. Сумма, а так-же оперативность Texas MP3 в пода-че иска говорят лишь об одном – же-лании в кратчайшие сроки, да к тому же «малой кровью» оторвать как мож-но больший кусок этого пирога. «Па-тентный терроризм» налицо.

И снова о «Яблоке»О компании Apple и её семействе сверхпопулярных плееров iPod я уже говорил. Однако это не единствен-ные судебные разбирательства, пос-тоянным объектом которых являет-ся iPod. Например, в декабре 2006 го-да компания Quantum Research Group (QRG) подала иск против Apple, обви-няя её в нарушении патента, описы-вавшего «Технологию передачи заря-да» (Charge-transfer Technology). Широ-ко разрекламированное навигацион-ное колесо Click Wheel в старых пле-ерах iPod изготовлялось на основе тактильного сенсора, который Apple лицензировала у компании Synaptics. Однако, согласно данным QRG, новые модели портативных проигрывателей, в список которых вошли оба поколения Nano, а также iPod Video пятого поко-ления, используют в своём составе но-вый сенсор, построенный на базе чи-пов компании под названием Cypress PSoC. Их использование и нарушает патент QRG.

Данные судебные разбирательс-тва – одни из доброго десятка исков, которые выдвигаются против Apple сегодня. Правда, в основном они ка-саются программного обеспечения, разрабатываемого компанией (iTunes Music Store), а также торговых марок (иск Cisco по поводу торговой мар-ки «iPhone»). Этому, а также много-му другому и будет посвящена следу-ющая статья.

1. http://www.theregister.co.uk.2. http://www.zdnet.com.3. http://www.cnet.com.4. http://blog.wired.com.5. http://www.usatoday.com.6. http://www.wikipedia.org.7. http://www.hmcourts-service.gov.uk.

Page 94: 054 Системный Администратор 05 2007

92

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

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

Первое, что бросилось в глаза в этой книге (не считая, конечно, обложки), – странная терминология (или таков уровень ее перевода?). Так, например, HTML здесь настойчиво называется «протоколом», а вторая часть книги сме-ло озаглавлена «Основы программиро-вания в HTML/XHTML», когда речь в ней идет, разумеется, о разметке страниц.

HTML, XHTML и CSS. Библия пользователя, 3-е изданиеБрайан Пфаффенбергер, Стивен Шафер, Чак Уайт, Билл КароуНе самое благоприятное впечатление произвели примеры JavaScript-кода в четвертой части книги, которая при этом носит солидное название: «Разра-ботка веб-страниц на профессиональ-ном уровне». Тем не менее авторам удалось широко осветить основы соз-дания простых статичных веб-сайтов. Подробно разобраны все базовые ве-щи, используемые в (X)HTML: элемен-тарное форматирование (абзацы, пе-реносы строк, заголовки, списки и т. п.) и ссылки, изображения, таблицы, фор-мы, фреймы и объекты. По CSS пред-ставлены общие понятия и свойства, описана работа со шрифтами, форма-тирование текста, в том числе и разно-образные отступы, цвета, таблицы. Две главы посвящены языку разметки XML. Не забыты и такие аспекты, как тести-рование созданных страниц в разных разрешениях и браузерах, а также про-

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

Программирование баз данных Microsoft SQL Server 2005. Базовый курсРоберт Виейра

нию) должен знать профессиональный разработчик. Так что этот курс пред-назначен для тех, кто начинает знако-миться с SQL Server и обладает навы-ками программирования.

Налицо хорошая структура книги: построена она логично и последова-тельно, что позволяет с легкостью на-ходить любые интересующие детали. Начинается «базовый курс» со зна-комства с базами данных SQL Server и краткого обзора компонентов рас-сматриваемого ПО (дабы разработ-чик сразу знал, чем он сможет восполь-зоваться в дальнейшем). После этого приводится описание языка Transact-SQL, используемого в SQL Server. За-тем рассказывается о существующих ограничениях различных типов и поня-тии подзапросов.

Когда «основы основ» пройдены, читателя знакомят с проблемами про-ектирования БД, после чего – со струк-

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

Оставшиеся же главы, очевидно, придутся по душе не только новичкам – это краткое введение в язык XML и пре-образования XSL, а также описание Reporting Services (для создания отче-тов) и Integration Services (для экспор-тирования в БД данных из внешних ис-точников). Последняя глава посвяще-на некоторым тонкостям администри-рования СУБД.

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством

«Вильямс».

«Вильямс»

2007

752

978-5-8459-1154-4

≈ 451 руб.

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством

«Вильямс».

«Диалектика»

2007

768

5-8459-1125-7

≈ 550 руб.

Page 95: 054 Системный Администратор 05 2007

93№5, май 2007

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

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

Этот карманный справочник логичнее рассматривать как «мини-сборник ре-цептов для решения типичных задач средствами JavaScript». Потому что ос-новное содержимое книги – примеры кусков кода на JavaScript и HTML с по-яснениями, для реализации чего они предназначены и как автору эта реа-лизация видится.

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

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

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

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

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

JavaScript. Карманный справочникКристиан Уэнц

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

Достаточно подробно, с поправкой на размеры книги, освещено примене-ние JavaScript в контексте объектной модели документа (DOM). Не забыты возможности объектно-ориентирован-ного программирования и обработка событий. Также затронуты и более сов-ременные технологии, такие как веб-службы (на примере PHP и ASP.NET)

и AJAX. Последней теме ввиду ее по-пулярности в наши дни автор разумно (умалить востребованность AJAX за-труднительно) придает особую значи-мость, раскрывает такие моменты, как отправка синхронных/асинхронных за-просов POST/GET, получение различ-ных данных от сервера, в том числе XML, использование преобразования XSLT, решение типовых проблем (за-кладки, возврат на предыдущую стра-ницу). В последней главе рассмотрено взаимодействие JavaScript со встраи-ваемыми в HTML объектами (мульти-медиа, Java, Flash).

Обзор книжных новинок подготовил Дмитрий Шурупов

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством

«Вильямс».

«Вильямс»

2007

272

978-5-8459-1186-5

≈ 88 руб.

nИздательство:

nГод издания:

nКоличество страниц:

nISBN:

nЦена:

Книга предоставлена издательством

«Горячая Линия-Телеком».

«Горячая Линия-Телеком»

2007

320

978-5-93517-318-2

≈ 254 руб.

Page 96: 054 Системный Администратор 05 2007

94

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

n Вы можете оформить подпискуналюбойроссийскийадрес.

n При заполнении квитанцииобя‑зательно РАЗБОРЧИВО укажи‑те фамилию, имя, отчество пол‑ностью, почтовый индекс и ад‑рес получателя (область, город, улица, номер дома, номер квар‑тиры), контактный телефон.

Редакционная подписка для физических лиц

n Вы можете оформить подпискуслюбогомесяцаналюбойсрок.

n Вграфе«Сумма»проставьтесуммузавыбранноеколичествономеров.Стоимостьодногономеражурна-ла150 руб.За10месяцев(смартаподекабрь)–1500 руб.НДСипоч-товые расходывключенывстои-мость.

nЖурналвысылаетсяпочтойпрос-тойбандерольютолькопослепос-тупленияденегнарасчетныйсчетикопии заполненного и оплачен‑ного бланка, отправленной в ре‑дакцию по факсу:(495) 628‑82‑53или на электронный адрес: [email protected].

Page 97: 054 Системный Администратор 05 2007

95№5, май 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: 054 Системный Администратор 05 2007

96

СИСТЕМНЫЙ АДМИНИСТРАТОР№5(54), Май, 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 г.).

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

Читайтев следующемномере:

уважаемые читатели!

Продолжается подписка на 2-ое полугодие 2007 года.

Приобрести новые и старые номера журналавы можете через интернет-магазин LinuxCenter.ru.

Доставка почтой в любую точку России.

Корпоративная телефонная сеть на базе атс SamsungОднажды руководитель вызывает вас, и указывая на непонятную груду коробок на полу, говорит: «Это АТС. Она будет установлена в нашем фи-лиале в другом городе. Разберитесь, как настроить ее так, чтобы звонить не по межгороду, а через Интернет и при этом использовать короткие но-мера, также как в офисе». Продолже-ние истории читайте в следующем но-мере журнала.

Патентные войны: оберегай своё, не посягай на чужое. Часть вторая – программная«Патентный терроризм» в сфере ин-формационных технологий затраги-вает не только аппаратные разработ-ки. Сегодня средства массовой инфор-мации пестрят сообщениями о различ-ных исках по патентам и на програм-мное обеспечение. Кто? Когда? Как? Ответы на эти вопросы – в следую-щем выпуске.

ALT Linux 4.0 Server: что день грядущий нам готовит?Пусть финальная версия нового сер-верного решения от ALT Linux еще и не увидела свет, эта долгожданная оте-чественная разработка уже на финиш-ной прямой и готова для работы. Пре-

красное время познакомиться с ALT Linux 4.0 Server и узнать об особен-ностях дистрибутива! Обзор в июнь-ском номере поможет вам сформи-ровать и свои «первые впечатления» о грядущей новинке.

разворачиваем кластер Microsoft ExchangeСлужба электронной почты – неотъ-емлемый элемент бизнес-процессов и для надежной работы данной службе необходимо обеспечить отказоустой-чивость. В статье рассмотрим вопро-сы, связанные с установкой и настрой-кой отказоустойчивого кластера почто-вой системы. В качестве примера возь-мем создание двухузлового кластера на основе Microsoft Exchange.

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