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

Page 1

БЫ СТ РО ТИ РАС РА КУ Ж ПИ

НИ НО К У ВО ЛЫ ГО ЗА ДНИ ТЯ Е НУ ЛИ

ЛИ

СЬ

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

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

№5(54) май 2007

КО НЕО НЧ ЖИ ИЛ ДА ИС НН ЬД О ЕН ЬГ И ЗА

ПО АВ СЛ РА Е О Л НА ТПУ РА СКА БО ТЕ

УЕ ХА Л

ВО

ТП УС К

КА

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

Программы удаленного доступа: выбирайте подходящую! Разворачиваем кластер на основе Windows Server 2003 Используем Cisco PIX для обеспечения VPN‑подключений к локальной сети Split DNS: заставим BIND работать на два фронта! UserGate – безопасный прокси‑сервер Резервное копирование и восстановление СУБД Oracle средствами ОС

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

Технологии защиты ядра NT Всё, что вы хотели знать о протоколе SIP



в номере 3 ТЕНДЕНЦИИ РЕПОРТАЖ 4 Sun Tech Days в Санкт-Петербурге

Итоги конференции Sun Tech Days, ежегодно проводимой корпорацией Sun Microsystems. Иван Максимов ivan_maksimov@inbox.ru

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

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

АДМИНИСТРИРОВАНИЕ 12 Обзор новой версии дистрибутива Debian GNU/Linux 4.0

Говоря о Debian, поневоле приходится использовать превосходную степень: самый всеобъемлющий, самый свободный, самый плодовитый дистрибутив Linux. В апреле была объявлена стабильной четвёртая версия Debian. Что же в этом особенного? Евгений Балдин E.M.Baldin@inp.nsk.su

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

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

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

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

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

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

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

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

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

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

№5, май 2007

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

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

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

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

ЧЕЛОВЕК НОМЕРА 62 Мечты сбываются

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

БЕЗОПАСНОСТЬ 66 Технологии защиты ядра NT

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

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

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

IP-ТЕЛЕФОНИЯ 78 Всё, что вы хотели знать о протоколе SIP

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

РЕТРОСПЕКТИВА 88 Патентные войны: оберегай своё, не посягай на чужое

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

92 КНИЖНАЯ ПОЛКА 61, 72, 73 BUGTRAQ



тенденции Palm представила свою Linux‑платформу Исполнительный директор Palm Эд Коллиган (Ed Colligan) объявил о намерении его компании позже в этом году выпустить новую платформу на базе Linux и Open Source. Не стоит путать этот проект с платформой ACCESS Linux Platform, которую разрабатывает компания ACCESS, ранее известная как PalmSource. Над новой Linux-системой в Palm работают уже не один год, и ожидается, что она станет «новым фундаментом для Palm». Для этого функционал Palm OS Garnet будет связан с ядром Linux. Таким образом, интерес к продукту должны проявить разработчики и сторонники обеих этих платформ. Коллиган обозначил такие особенности готовящейся системы, как экономичное потребление питания, высокая гибкость в поддержке аппаратного оборудования, возможность одновременной работы с голосом и данными.

Состоялся релиз Ubuntu Linux 7.04 19 апреля разработчики представили долгожданный для многих релиз новой версии не перестающего набирать популярность 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 как попытку удержать лидерство в своей нише с технологией 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

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

№5, май 2007


репортаж

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

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

М

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

было разделено на 4 потока: Java EE, скучно посетителям не будет, все поJava SE, Solaris и мастер-класс, 12 ап- лучат подарки и будут разыграны фирреля на: Java ME, Java, Solaris и опять менные рабочие станций Sun. Итак, конференция открылась и наже мастер-класс, а 13 апреля на 3 секции: NetBeans, OpenSolaris и Java-уни- чалась с награждения победителей верситет. в конкурсах JavaKonkurs и Electronic Jungle, к сожалению, не все победитеДень первый ли конкурсов смогли прибыть на конРанним пасмурным утром, пройдя ференцию, но приехавших наградили к большому комплексу и зайдя в 7-й грамотами, вручили футболки и випавильон посетители увидели пре- деокарты. красных блондинок, одинаково одетых Далее на сцену вышел Джефф в фирменные белые футболки и чер- Джексон (Jeff Jackson) – старший виценые бейсболки компании Sun, встреча- президент группы разработки Solaris ющих всех входящих посетителей. в компании Sun Microsystems. Он расПройдя регистрацию, все направ- сказал о больших достижениях комлялись в конференц-зал слушать всту- пании на рынке серверного и клиентпительное слово организаторов. Пер- ского программного обеспечения, бывое, что пообещали организаторы, – ли упомянуты успехи сотрудничест-


репортаж ва Sun и AMD в области высоких технологий. Пленарный доклад включал в себя много вводных понятий о преимуществе открытого программного обеспечения, о продукции компании Sun, такой как среды разработки Sun Studio 12 и NetBeans 5.5. Наибольший интерес у посетителей вызвал показ демоверсии нового объектно ориентированного языка программирования под кодовым названием «F3». Как и следовало ожидать, язык очень похож на Java. Как заявили докладчики, с помощью этого языка и средств разработки от Sun создавать ПО станет проще. Во время презентации была показана игра lines, написанная на «F3», состоящая всего из 360 строчек кода. При этом в процессе добавления новых функций в игру на презентации произошел небольшой курьез: выполнив операцию <Ctrl + Insert> Место проведения конференции, 7 павильон выставочного комплекса ЛенЭкспо и <Shift + Insert>, содержимое буфера обмена «вставилось» 5 раз в различ- зирована работа ОС Solaris с процес- вопросов. Сложно объяснить, с чем было связано такое оживление, возможных местах кода программы, поиск сорами Intel. Далее было рассказано об улуч- но, с тем, что конференция все же быошибок сопровождался бурными апшении работы PostgreSQL в ОС Solaris ла нацелена на разработчиков и телодисментами посетителей. После перерыва аудитория разде- и богатых возможностях Ser vice ма оптимизации компиляторов «заделилась, каждый выбирал то направ- Management Facility, о том, что эта ОС ла за живое» аудиторию, но, возможление, которое было ему интереснее; одна из самых быстрых UNIX-подобных но, это было связано и с тем, что выне являясь Java-разработчиком, я вы- ОС, о многоплатформенности, в кон- ступал первый русскоговорящий доце Крис похвастался тем, что у Sun кладчик в этот день. Только по однобрал поток, посвященный ОС Solaris. Технический обзор о Solaris на- Microsystems крупные партнеры, такие му этому поистине кульминационному моменту, когда возникли шумные чал Крис Армс (Chris Armes) – дирек- как AMD, Intel, HP, Dell и другие. Передали слово нашему соотечес- споры и было задано множество воптор подразделения Solaris Revenue Products Engineering. Нужно сразу за- твеннику, и был начат доклад на тему росов, можно с уверенностью сказать, метить, что весь поток Solaris в первый Sun Studio 11. Аудитории рассказыва- что Sun Tech Day ждали! После обеда посетители разодень конференции не совсем был пос- ли, что данный пакет – среда разработвящен операционной системе, скорее ки, набор инструментов и компилято- шлись рассматривать установленные он был о программном обеспечении ров для разработчиков, распростра- на конференции стенды. Один из них няемый бесплатно, но только в бинар- с сервером Sun Fire T2000. Рассматкомпании Sun Microsystems. Крис Армс рассказывал о том, никах. Отличие от платной версии со- ривая дорогую «игрушку», попросичто Sun – единственная компания, ко- стоит в том, что нет технической под- ли сотрудников Sun продемонстрироторая гарантирует совместимость би- держки и некоторых модулей. Нужно вать возможность горячего отключенарных пакетов во всех ОС Solaris от 2 заметить, что, как только зашла речь ния блоков сервера; ответом на дандо 10 версий, также говорил о плюсах о компиляторах Sun, о том, что мно- ную просьбу было легкое движение открытого и свободного программно- гоядерность/многопоточность всегда руки и изъятие блока питания из раго обеспечения. Далее Крис демонс- была «коньком» компании, зал резко бочей машины. На просьбу повторить трировал достоинства пакета Sun оживился и, не дав завершить обзор, то же самое с процессором ответили Studio 11, вкратце рассказав о плюсах засыпал докладчика вопросами: «По- отказом, мотивируя это тем, что прооптимизации и компиляторах С, С++, чему и за счет чего достигается опти- цессор установлен в одном экземпмизация?», «Совместима ли Студия ляре. В ходе дальнейшего разговора Fortran, входящих в пакет. Отдельно было упомянуто о со- с GCC?», «Возможна ли установка под с сотрудниками Sun выяснились интрудничестве Sun и Intel. Крис объ- Linux?», «Как компилятор работает тересные факты об аппаратной части явил, что отныне два гиганта будут бо- с потоками?» и многие, многие другие. сервера, о том, что используемая арлее плотно сотрудничать между собой, В итоге из зала на сцену вышел один из хитектура sparc в Sun открыта (http:// были заключены определенные дого- российских разработчиков Sun Studio www.opensparc.net), и другие моменты, вора о сотрудничестве, будет оптими- и попытался ответить на большинство но наиболее интересным оказалось то,

№5, май 2007


репортаж

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

зданы только на базе 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 г.

что один из представителей Sun в не- и новостями, возможно, это предвидалеком прошлом работал над оте- дели и посетители, которых было зачественным процессором Эльбрус 3. метно меньше. Многие знают, сколько тайн и интриг В этот день из выступлений стоит было вокруг этого процессора, поэ- выделить доклад о контейнерах и зотому не упущу шанса приоткрыть за- нах в ОС Solaris. весу тьмы. Зоны – это полностью изолироГлавное достоинство отечествен- ванные программные копии машины ного процессора в том, что в нем ре- ОС Solaris. Многие посетители путали ализована программируемая систе- зоны с виртуальными машинами, полма команд (как в Sun sparc), архитек- ностью эмулирующими операционные Итог тура, аналогичная IA64, тактовая час- системы и оборудование (наподобие В целом конференция прошла велитота 900-1200 МГц. По общей произ- VMware), из-за чего возникала пута- колепно. Постоянно проводились конводительности процессор был при- ница и неправильные вопросы к до- курсы по Java и всем ее направленимерно равен 1,7 МГц Атлону. Два года кладчику. Поэтому специалист Sun ям (EE, SE, ME, ...), отдельные розыгназад были изготовлены опытные об- был вынужден отдельно уточнить по- рыши от Sun и спонсоров. Каждый разцы, которые успешно функциони- нятие: зона – это что-то между chroot день посетителям раздавали подарровали, но на запуск в массовое про- и VMware, но не то и не другое. Ос- ки: рюкзаки, майки, бейсболки, игрушизводство не было денег, на этом все новное предназначение зон – созда- ки и многое другое. Sun явно не скупии завершилось. ние безопасных контейнеров и сис- лась на подарки, в чем и призналась: Итак, первый день конференции тем управления ресурсами в ограни- «Мы ничего не повезем обратно, это подходил к концу, наиболее интерес- ченной среде. все для вас». ные доклады прошли, наступал вечер, Далее были представлены некотоТакже нужно заметить, что мероппогода за окнами испортилась, пошел рые методы организации зон и проде- риятие было крайне информативным, снег, но Sun Microsystems обещала ус- монстрирована их работа. Наиболь- посетители, желающие знать больше, троить яркий вечер и сдержала сло- ший интерес аудитории вызвала воз- с легкостью общались с разработчиво. К 19.00 еще не утихали професси- можность организации Linux-зон ками систем предлагали им свои идеи, ональные споры, а на первом этаже в Solaris. Данная возможность была критиковали, обсуждали, заключали комплекса начала выступать рок-груп- предусмотрена для безопасной сов- договора и просто общались в «свопа и был открыт великолепный пивной местимости двух операционных сис- ем кругу». За все эти предоставленфуршет с шашлыками и многочислен- тем. В качестве примера было предло- ные возможности и хочется поблагоной закуской. жено запустить СУБД Oracle, свободно дарить организаторов, конференция распространяемую для Linux, но не до- удалась! День второй и третий ступную для пользователей Solaris, Иван Максимов, К сожалению, второй день конферен- в специально созданной зоне. К софото автора ции был менее насыщен событиями жалению, Linux-зоны могут быть со-



репортаж

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

Открытие

рование центра веб-разработок в Рос- ти мероприятия, заявив, что конференВ 10.00 первого дня в зале №1 состо- сии – ведь есть чем гордиться Отечес- ция должна быть максимально пракялось открытие конференции. С при- тву и в этой области. Завершил свое тичной. Ведь обмен опытом и новые ветственным словом выступили орга- небольшое выступление Бунин коло- знания – это, безусловно, в интересах низаторы и присоединившиеся к ним ритным заявлением: «Надо учиться самих участников. заметные фигуры рунета. Всего бы- думать!». Завершил церемонию открытия ло задействовано 4 зала, но почти Перехвативший эстафету Яндекс- Игорь Ашманов, повеселивший пубвсе свое время на РИТ-2007 я провел гуру Илья Сегалович подтвердил сло- лику выражением своей надежды, в первом зале. Бывали, конечно, мо- ва своего предшественника конкрет- что «еще не все из вас работают менты, когда хотелось «разорваться ными примерами отечественных до- в SUP». Однако быстро закончив на части», однако наибольший инте- стижений, используемых всем миром с шутками, он высказался о светлом рес вызывали доклады, представлен- в IT вообще и в веб-разработках в час- будущем отечественного рынка вебные в первом зале. тности. К ним он причислил марковс- разработок. Олег Бунин, председатель про- кие цепи, давно ставшие неотъемлеграммного комитета, хорошо извест- мой составляющей в обработке текс- Первые доклады: ный сообществу многолетним опытом та, и расстояние Левенштейна – ана- Игорь Сысоев работе в Рамблере, рассказал о про- логично, но уже для сравнения строк. После открытия в зале №1 началась исхождении мероприятия. Первая не- Кроме того, упомянул и преуспеваю- секция «Разработка больших интерформальная встреча веб-разработчи- щего в Google Сергея Брина. После нет-сайтов». И первым докладчиков, с которой можно начинать отсчет чего призвал собравшихся стремить- ком в ней стал Игорь Сысоев, автор времени подготовки РИТ‑2007, про- ся к созданию «качественных продук- nginx, скромно охарактеризованный шла в августе прошлого года. И вот тов, которые заразят весь мир виру- Буниным как «звезда» – впрочем, он к середине весны инициатива сни- сом», как это получилось у эстонцев без преувеличений значимая фигура для рунета последних лет. зу, желание веб-разработчиков по- со Skype. делиться опытом с коллегами, была Павел Рогожин, председатель орПервое выступление Сысоева бывоплощена в жизнь. В качестве глав- ганизационного комитета, сделал ак- ло посвящено его проекту – 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 – Олег Бунин


репортаж ми являются раздача статики, поддержка режима 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 предстал Александр Горный, продюсер Почта.ру, с общим докладом по «разработке архитектур больших

№5, май 2007

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

систем». В качестве примера для рас- о популярности языков программиросмотрения был по очевидным причи- вания, на которых написано использунам взят проект веб-почты, где все емое в Яндексе ПО, Оболенский отвеглобальные задачи разделены между тил, что 80% на C++, 15% на Java, осbackend (приложения для которого на- тальное – на Perl и других языках. писаны на C/C++ – для скорости работы) и frontend (на скриптовом языке для Хостинг, AdRiver лучшей и более быстрой адаптации в Дмитрий Даниленко из .masterhost случае появления новых требований выступил с докладом о том, как в его у заказчика). Сама структура храни- компании пришли к предоставлению мой почты устроена по следующему виртуальных серверов и какие препринципу: пользователь представля- имущества это дает клиентам. В кает собой каталог в файловой систе- честве базы для виртуальных серме, письмо – файл (в том виде, в ка- веров была выбрана ОС GNU/Linux ком письмо было принято). Кроме то- с Virtuozzo [5]. Однако на мой вопрос, го, для каждого каталога должен гене- почему, например, не Linux-VServer, рироваться индексный файл с уже от- адекватного ответа так и не послесортированным списком и обработан- довало, если, конечно, не восприниными полями MIME, чтобы не обраба- мать за таковой фразы в стиле «Ведь тывать письма при каждом запросе на всегда нужно что-то выбирать!»... Испросмотр их списка. ходя из этого (VZ) уже была опредеОлегу Оболенскому своим ярким лена и панель управления – Plesk: выступлением по архитектуре Яндекса от того же производителя (компании удалось развлечь слушателей перед SWsoft), обладающая хорошей интегобедом. Привнеся в зал веселую и не- рацией с Virtuozzo. «Главным в VPS» принужденную атмосферу (возмож- была названа оптимизация, к которой но, не самую подходящую для уровня причислены жесткие и мягкие огранидоклада), он сохранял ее до победно- чения по ресурсам. Также Даниленко го конца, при этом рассказывая об ис- особо выделил vzmigrate, что обеспепользуемой в Яндексе с 2001 года ар- чивает переход на другой тарифный хитектуре CORBA (Common Object план хостинга, как правило, без остаRequest Broker Architecture). Особый новки сервера. акцент был поставлен на модульность: Позже Сергей Бакунин рассказал в случае «падения» какого-либо ком- о более простом (по сравнению с перпонента на его месте на сайтах выво- вым докладчиком этой части секдится либо кэш, если он еще актуа- ции) решении RU-CENTER, где до сих лен (в таком случае пользователь ни- пор используют виртуальный хостинг. чего и не замечает), либо какая-то дру- А между двумя докладами по хостингу гая доступная информация. На вопрос Всеволод Потапов со своим коллегой


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

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

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

10

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

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


репортаж 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, минимизация количества таблиц, разделение таблиц, кэширование. После чего бы-

№5, май 2007

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

ло вкратце освещено будущее (в час- ными. Разумеется, до совершенства тности, сказано, что текущее поло- далеко (как, впрочем, и всему в этом жение готово к росту в 3‑5 раз). Од- мире), однако она действительно понако публике представленные дан- лучилась намного более практической, ные явно не пришлись по душе, и один полезной и просто приятной, чем это за другим посыпались комментарии «обычно» бывает на подобных меропс претензиями к такой организации, риятиях. на что докладчики отвечали не очень Появились основания полагаться уверенно. на то, что в будущем организаторам Иван Золотухин выступил с со- удастся повышать уровень конференобщением про другую Open Source- ции и не только сделать его «замечаСУБД – PostgreSQL. После краткого тельным» поводом для веб-разработвведения докладчик перешел к бо- чиков, чтобы встретиться, но и помолее детальному описанию таких до- гать в формировании, укреплении тастоинств этой СУБД, как отказоустой- кого сообщества в России. чивость, балансировка нагрузки, масштабирование, репликация, а также P.S. некоторых решений: pgpool‑II, Slony‑I, Отмечу, что в обзоре кратко освещена PgCluster, проекты Skype (PL/Proxy лишь малая часть конференции, и надля проксирования запросов, лег- помню, что выступления/обсуждения кий менеджер соединений PgBounce, проходили одновременно в 4 залах. SkyTools для управления кластером). Позже его дополнил Олег Барту- P.P.S. нов с докладом о реализации про- Архив презентаций, которые были двинутого полнотекстового поиска представлены на конференции, вы в PostgreSQL, которая сейчас исполь- можете найти на сайте конферензуется на официальном сайте этой ции [1]. СУБД. С аналогичным сообщением (по полнотекстовому поиску) примени- 1. http://www.rit2007.ru. тельно к MySQL вновь выступил Зай- 2. http://sysoev.ru/nginx. цев, который сфокусировался на про- 3. http://www.nixp.ru/news/8248. екте Sphinx [8]. 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.

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

11


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

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

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

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

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

12

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

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


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

Структура Debian Debian состоит из трёх различных дистрибутивов или веток: 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 – дистрибутив для тестирования новых программ. Это выбор разработчиков и экспериментаторов.

№5, май 2007

Что нового С момента выхода предыдущего релиза 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. Выбор языка

13


администрирование 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, что значительно расширяет список поддерживаемых

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

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

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

14

В релиз включён последний стабильный 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 официально представлен сервис debianvolatile (http://volatile.debian.org) – быстрые обновления для пакетов, которые по своему предназначению быстро устаревают. К таким пакетам относятся антивирусы, спам-фильтры и т. п.


администрирование Чуть-чуть об установке Сам процесс можно разбить на следующие основные этапы, которые требуют вмешательства человека: Перед установкой в обязательном порядке следует сделать копию уже имеющихся на жёстком диске пользовательских данных. Далее нужно загрузиться с установочного DVD/CD/USB-брелка или даже флоппи-диска. Если после загрузки на первый вопрос «Press F1 for help, or Enter to Boot:» нажать <Enter>, то далее предлагается выбрать язык установки. Стандартный инсталлятор Etch переведён на 58 языков. В дальнейшем текст подсказки будет идти на этом языке. Также предлагается выбрать страну проживания, локаль и раскладку клавиатуры. После загрузки базовой системы предполагается настройка сеПервый вход под пользователем ти. Это необходимо, если установка идёт не с CD/DVD, а по сети. По воз- При желании можно выбрать графи- читать примечания к выпуску Etch: можности всё определяется автома- ческую версию установщика (надо на- http://www.debian.org/releases/etch/ тически с помощью DHCP, но можно брать installgui при первом запросе), хо- releasenotes. Определённо полезным для знаэто сделать и вручную. Спрашивается тя она ничем не лучше стандартной. Установочный диск также можно комства с системой является официимя компьютера и домен, к которому использовать в качестве инструмента альный сайт проекта http://www.debian. он принадлежит. Программа установки предлагает спасения (Rescue). Для этого в качест- org/. Этот сайт многоязычный, и русавтоматически разметить и отформа- ве загрузочных параметров достаточ- ский является одним из основных языков. Новички также могут почерпнуть тировать имеющийся диск. При жела- но добавить «rescue/enable=true». После установки имеет смысл под- интересную информацию на Debianнии можно вмешаться в этот процесс. После выбора часового пояса нуж- писаться на список рассылки команды Wiki http://wiki.debian.org. но ввести пароль суперпользователя безопасности (подробности на http:// Куда идёт Debian и завести непривилегированного поль- security.debian.org). В качестве одного из источников В результате голосования в апреле зователя/пользователей. Когда установка базовой системы пакетов полезно указать сервер этой 2007 года новым лидером Debian стал закончится, будет дана возможность команды, добавив в /etc/apt/sources.list Самуэль Хокевар (Samuel Hocevar) из Франции. В своём предвыборном выбрать из нескольких стандартных строку вида: манифесте будущий лидер отказалнаборов программного обеспечения. deb http://security.debian.org/ ↵ ся мириться с необходимостью выбиВ процессе настройки устанавливае stable/updates main contrib ↵ рать две из трёх опций: большой, совмых программных пакетов может пот non-free ременный и качественный. Несмотря ребоваться ответить на несколько вопВозможно, на ближайшем зеркале на крен в сторону размера и качества, росов уже по программам. Несмотря на свою славу как сер- Debian есть копия этого архива, тогда, Debian развивается всё более и более верного дистрибутива, Debian удиви- если это зеркало является безопасным, динамично. Хоть и с большим «скрипом», но Etch вышел почти в два рательно прост в настройке. Надо толь- можно указать и его. При обновлении с предыдущего за быстрее, чем предыдущий релиз ко уметь читать, так как простых подсказок и подробной документации стабильного релиза Debian 3.1 (Sarge) Sarge без ущерба качеству. Только здесь в избытке. На любом этапе ус- никаких особых сложностей произойти большое и сплочённое сообщество тановки всегда можно вернуться к на- не должно. Достаточно после указания позволит вобрать все современные чалу. При желании для большего кон- источника пакетов в /etc/apt/sources.list идеи, не жертвуя при этом интересами пользователей. троля процесса установки можно вой- выполнить стандартные команды: Сообщество у Debian большое. ти в режим эксперта (на первый воп> aptitude update Останется ли оно сплочённым, порос сразу после загрузки надо набрать > aptitude upgrade кажет время – главный судья всех слово expert). Естественно, до прохож дения проектов. Больше решений хороших Инсталлятор поддерживает в том числе и зашифрованные разделы. этой процедуры необходимо про- и разных!

№5, май 2007

15



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

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

Ч

тобы подключить локальных польТакже в прокси-сервезователей к сети Интернет, приме- ре имеются гибкие сетеняются различные технологии. На- вые правила, позволяющие иболее распространенний способ – ор- настраивать доступ польганизация доступа с помощью прокси- зователям, предоставляя серверов. Среди множества подобных им только необходимые сепрограмм стоит выделить одну, обла- тевые службы, например, дающую мощными средствами адми- применяя строгую политику нистрирования, гибкими политиками «Запрещено все, кроме того, доступа, средствами защиты и в то же что явно разрешено». Затравремя простую в эксплуатации, разра- гивая тему управления польботанную отечественными специалис- зователями, стоит заметить, тами – прокси-сервер UserGate. что в прокси-сервер встроЧем выгодно отличается российс- ены все распространенные кая разработка от разработок конку- и необходимые средства аврентов? Прокси-сервер поддерживает торизации клиентов. технологию NAT, осуществляет антивиВо-первых, классический русную проверку проходящего трафи- механизм идентификации, по IP‑адре- тью и стабильностью работы основных ка, имеет встроенный межсетевой эк- су и/или MAC-адресу машины. Во‑вто- сетевых служб. ран, информативную систему статис- рых, по имени пользователя и паротики, журнал событий, средства управ- лю. В-третьих, экзотическая авториза- Вместо итогов ления трафиком (создания тарифных ция, но не менее удобная по Windows Прокси-сервер UserGate обладает мноправил), различные механизмы авто- login. В-четвертых, используя поль- жеством других полезных свойств. Port ризации и многое другое. Но не буду зователей Active Directory, что очень mapping – функция, позволяющая перезаострять ваше внимание на простых удобно при работе в сети контролле- направлять соединения с одного порта и распространенных функциях, а пе- ра домена. на другой. Функция автодозвона при рейдем к изюминкам UserGate. Что ж, подходим к главной изюмин- использовании модемного соединения ке прокси-сервера UserGate – двойной и инициализируемая, если это необхоБезопасность офиса проверке трафика на вредоносный код. димо, при запросе со стороны клиента. Организация безопасного совместного В чем она заключается? В UserGate Гибкие настройки кэш-хранилища, регдоступа в сеть Интернет весьма не про- встроены две антивирусные програм- ламентирующие время жизни, размер стая задача. Для эффективной защиты мы – от «Лаборатории Касперского» и тип хранимых данных. Возможность периметра сети в первую очередь не- и Panda Software, что позволяет гаран- использовать прокси в каскаде (списобходимо защитить сам шлюз, для че- тировать «чистоту» информации, пос- ки). Мощные средства ограничения конго в прокси-сервер UserGate встроен тупающей в офис, и безопасность ра- тента трафика для повышения инфорэффективный межсетевой экран, поз- боты клиентов. Дополнительно име- мационной безопасности офиса. воляющий контролировать все входя- ются гибкие возможности настройки Рассматривая богатые возможносщие и исходящие соединения, при этом антивирусов: можно выбирать, какой ти UserGate, можно уверенно сказать, имеется функция журналирования всех трафик (http, ftp, почтовый), какой про- что он прекрасно подходит для оргапроисходящих событий, будь то раз- граммой будет проверяться. Допустим, низации совместного доступа в сеть решенное или неразрешенное дейс- необходимо, чтобы поступающая кор- Интернет, обладая всей необходимой твие. Так как современное серверное поративная почта была чиста от вредо- функциональностью. При всем этом, программное обеспечение немысли- носного кода, будем проверять ее дву- описываемый прокси-сервер выгомо без возможности удаленного адми- мя антивирусами. В то же время необ- ден по экономическим параметрам – нистрирования, в описываемом прокси- ходимо проверять http-трафик, где ско- нет переплаты за бренд и в то же вресервере такая функция присутствует, рость работы является главным крите- мя простой в настройке и эксплуататак же как и необходимые средства ав- рием, здесь подойдет Panda. ции, что избавляет от сложных техниторизации. Для повышения общей беПо совокупности всех функций ческих решений. Как ни крути – золозопасности системы в UserGate имеет- можно заметить, что UserGate позво- тая середина. ся опция запрета одновременной рабо- ляет достичь высокого уровня защиты, Иван Максимов ты нескольких администраторов. не жертвуя при этом функциональнос-

№5, май 2007

17


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

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

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


администрирование Такие разные клиенты Появлению большого количества средств удаленного доступа способствовали как объективные, так и субъективные причины, среди которых не последнее место занимает банальная человеческая лень – если можно задачу сделать не сходя со своего рабочего места, то зачем куда-то идти? Здесь надо сразу заметить, что рассматривать мы будем в основном процедуры удаленного доступа в гетерогенной сети, а также в сети, состоящей исключительно из компьютеров под управлением 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 Desk top Connection (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.

№5, май 2007

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

Все VNC-средства под Windows, Как правило, решение вопро са о том, каким же клиентом пользо- Timbuktu Pro, а также такие «гиганты», ваться, начинается с вопроса «А ка- как Radmin и NetOp, относятся ко втокие задачи из числа тех, что нужны рой группе. мне, он умеет решать?» Для этого мы Все средства под UNIX, а также разобьем все перечисленные клиен- RDC и Xmanager относятся к первой ты на несколько групп по типу решае- группе. мых ими задач: IDEAL Administration относится к саn Группа 1: средства организации мой малочисленной – третьей группе. терминальных сессий (терминальные сервера). Предназначена для Программы группы имитации сети «майнфрейм – тон- «удаленный помощник» кие клиенты», когда несколько Начнем мы со второй группы, и как пользователей одновременно ра- с самой многочисленной, и как наботают за одним компьютером. Не- иболее ярко соответствующей назвасмотря на то что в мире UNIX это су- нию «средства удаленного управлеществовало изначально, в Windows ния». Основной причиной их появлеэто появилось только с Windows NT ния стало то, что лучше один раз увидеть, чем сто раз услышать, и лучше Server Terminal Service Edition n Группа 2: средства «удаленной по- один раз показать, чем сто раз объясмощи», когда локальный и удален- нять по телефону. Все программы этой ный пользователь используют од- группы основаны в той или иной мере ну и ту же сессию – перемещение на некогда изобретенном в AT&T принкурсора мыши локальным пользо- ципе удаленного кадрового буфера вателем видно удаленному и на- (remote frame buffer), при использоваоборот. нии которого по сети передается тольn Группа 3: средства «удаленного вы- ко копия экрана пользователя. полнения задач», не предоставляОсновной задачей программ групющие непосредственного доступа пы является любой ценой показать к локальному указателю мыши и экрану, но имеющие возможность удаленного выполнения определенного набора команд. Рисунок 2. Внешний вид программы Radmin Viewer

19


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

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

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

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

20

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

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

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


администрирование При запуске поначалу кажется, что модули, программы дозвона до порнонастроек меньше, чем у других про- сайтов и пр. Некогда в эхоконференграмм. Присмотревшись, обнаружива- ции AVP.SUPPORT развернулась обешь, что почти все настройки «на мес- ширная полемика на тему «Права ли те», просто размещены они несколь- Kapsersky Lab, что включает Radmin ко непривычно – на манер настро- в список программ, обнаруживаеек SSH-клиента PuTTY – слева дере- мых системой защиты». В настоящий во настроек, справа – значения теку- момент по заявлению разработчиков Radmin из программа полностью щей ветви. Полностью отсутствуют настрой- удалена изо всех баз. ки оптимизации контента (отключения Программа имеет русскоязычный фоновой картинки, отключения визу- интерфейс, а также переведена еще альных эффектов), настройки шиф- на 8 языков. Распространяется по комрования потока и настройки оповеще- мерческой лицензии. Стоимость прония о входящем соединении (впрочем, граммы составляет 49 долларов. Отэто реализовано только в NetOp). Зато мечу также, что клиента для платформ, Рисунок 6. Внешний вид окна настроек есть очень интересная настройка (ко- отличных от Windows, для данной просервера Danware NetOp Host торая есть также и в NetOp) – можно граммы не существует. настроить Radmin так, что перед подЛичное мнение: программа силь- граммах других производителей) ты ключением будет спрашиваться разре- но уступает по возможностям NetOp, можешь изменить, а какие нет. шение локального пользователя, и ес- но и для двух компьютеров она обойли он откажет (или настроен автома- дется значительно дешевле, а бес- Danware NetOp тический отказ), соединения не про- платную UltraVNC превосходит только В программе NetOp чувствуется сисизойдет. красивым интерфейсом и возможнос- темный подход. Разработчики проЗдесь еще необходимо заметить, тью второй консольной сессии (правда, граммы не ограничились простым что Radmin в отличие от NetOp не раз- надо сказать, довольно полезная воз- «удаленным помощником», а выстроличает ситуацию, компьютер заблоки- можность). Профессионалу, который или целую систему функций, в которован или не открыта локальная сес- привык сам выбирать, каким шифром рой режим «удаленного помощника» – сия – если настроить автоматический какой длины шифровать поток и что только одна их них. Программа имеет отказ и компьютер будет заблокирован, в этом потоке передавать, эта про- набор так называемых коммуникациRadmin не сможет предоставить доступ грамма вряд ли подойдет – здесь есть онных профилей – набор заранее зак удаленному компьютеру, потому что определенный психологический мо- данных настроек для получения достувыдает запрос на подтверждение до- мент, когда возникает предубеждение па с использованием тех или иных проступа на консоль, за которой никого против того, что нельзя самому решить, токолов. Набор профилей потрясает – нет. Настроек, связанных с отключе- какие настройки в программе (из тех, здесь и IPX, и NetBIOS и HTTP, и, конием компонент программы – переда- что присутствуют в аналогичных про- нечно же, LAN. Программа позволяет чи файлов, обмена сообщениями, текстовой консоли, – достаточно. К дополнительным сервисам, предоставляемым программой, относятся открытие дополнительной текстовой консоли на целевом сервере и перезагрузка целевого сервера. Программа использует порт 4899, который можно переопределить как на сервере, так и на клиенте. Программа имеет возможность передачи файлов между клиентом и сервером, а также возможность текстового или аудиовизуального обмена сообщениями. Программа не совместима с другими средствами удаленного доступа. Дополнительно можно сказать, что одно время программа пользовалась стойкой нелюбовью у Kaspersky Antivirus – даже Radmin Viewer периодически оказывался в так называемых расширенных базах, в которых перечислены рекламные и шпионские Рисунок 7. Внешний вид программы Danware NetOp Guest

№5, май 2007

21


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

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

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

в широком диапазоне настроить оптимизацию передавае- все отключены. В этом случае с использованием режима мого контента – отключить можно не только фоновую кар- «только просмотр» программа может быть использована тинку, но и визуальные эффекты и даже Active Desktop. как средство удаленного мониторинга. Программа имеет широкий диапазон настроек аутентиРазумеется, не забыты и такие вещи, как передача файфикации доступа – на основе Windows Security, а также на лов, обмен сообщениями, текстовыми и аудиовизуальными. основе внутренних списков пользователей. Каждому поль- Но настоящей «изюминкой» NetOp является так называезователю могут быть предоставлены некоторые права, ко- мый remote management (я не перевожу этот термин, пототорых достаточно много, почти два десятка действий, – пра- му что для обозначения обычной сессии NetOp использует ва на использование удаленной клавиатуры и мыши, права термин «remote control», что переводится практически точна передачу файлов, на выполнение команд, на обмен сооб- но так же). Remote management реализует некоторый набор щениями и т. д. Дополнительно можно задать пару MAC-IP задач, схожий с «Управлением компьютером» из стандартдля ограничения доступа только с определенных MAC‑адре- ной оснастки Windows-домена позволяет просмотреть сосов. Настройки шифрования контента могут быть выбраны стояние дисков, системные журналы, реестр, списки польв широких пределах – от минимальных, при которых про- зователей и групп, открыть сессию текстовой консоли и проводится только проверка целостности данных, до полной смотреть отчет об аппаратном и программном обеспечении шифровки 256-битным ключом. сервера. Это действительно уникальная возможность, коПрограмма имеет возможность скрыть факт своего торая делает NetOp незаменимым помощником системноприсутствия. Если программа запущена в так называемом го администратора сетей Windows. Вы, конечно, спросите – stealth-режиме, ее можно «проявить», запустив специаль- а чем же она уникальна, когда все это есть в стандартных средствах? А тем, что компьютер, на котором установлен ную программку showhost.exe. Программа имеет режим настраиваемых оповещений модуль 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 Рисунок 9. Внешний вид окна UltraVNC Viewer, подключенного при покупке более 500 лицензий Host. к удаленному узлу

22


администрирование Личное мнение: программа неза- чения обработки событий мыши и класлуженно непопулярна, в то время как виатуры. Работает программа на станона обеспечивает значительно боль- дартном порту 5900. Из дополнительшую гибкость в настройках и значи- ных сервисов присутствует только тельно более функционально насыще- HTTP-сервер на стандартном же порна, нежели Radmin. Программа идеаль- ту 5800, при заходе на который с пона для Windows-администратора. Сво- мощью Java-апплета можно управлять их денег она стоит – если уж покупать удаленным компьютером, так же как программу – то хорошую. Программа из запущенного клиента. рассчитана на объемные корпоративUltraVNC Viewer позволяет подклюные сети. читься к произвольному порту VNC, а не только к стандартному (это будет UltraVNC актуально при рассмотрении способов Следующие программы представляют подключения к не Windows-компьютесобой развитие протокола VNC, разра- рам). Порт задается стандартным обботанного AT&T, в отличие от двух пре- разом через двоеточие после IP-адредыдущих, в основе работы которых ле- са. Программа имеет возможность пежат закрытые коммерческие реализа- редачи файлов между сервером и клиРисунок 11. Внешний вид окна настроек сервера RealVNC ции протоколов. Протокол VNC име- ентом, но только в том случае, если ет открытую реализацию и на основе и сервером и клиентом являются проэтой реализации разработано несколь- граммы UltraVNC (поскольку все реако клиентов, как свободно распростра- лизации VNC совместимы между соняемых, так и коммерческих. бой, сервер и клиент могут быть разUltraVNC – одна из наиболее удач- ных версий). Также программа имеет ных открытых реализаций протокола возможность обмена текстовыми соРисунок 12. Внешний вид программы VNC. Хотя по функциональной насы- общениями. RealVNC Viewer щенности она и не может сравнитьЕсли значок не скрыт из системнося с NetOp, но задачу предоставления го лотка, то при подключении клиента доставляет некоторые возможности, отсутствующие в свободных реализадоступа к удаленному компьютеру она он меняет цвет с синего на зеленый. решает. Программа позволяет испольПрограмма не имеет русскоязыч- циях VNC. В первую очередь, это авторизазовать аутентификацию Windows или ного интерфейса. Распространяется собственную. Собственная аутенти- бесплатно, в виде исходных текстов ция. Программа может использовать фикация реализуется одним паролем, или готовых к установке пакетов по ли- авторизацию Windows или свою собственную. При собственной авторизапредоставляющим полный доступ. цензии LGPL. Программа имеет возможность Дополнительно можно заметить, ции имеется ограниченный набор лошифровки контента с помощью под- что последние версии Dr.Web рас- кальных пользователей с фиксированключаемого плагина MSRC4Plugin.dsm. познают UltraVNC как Вирус:Program. ными именами – «Admin», «ViewOnly», Правда, возможность его использова- Remoute.Admin.37. История повторя- «InputOnly» или же один пользователь. Во вторую очередь, это шифрония есть только тогда, когда с другой ется... стороны работает тоже UltraVNC. НаЛичное мнение: если необходим вание контента. Для шифрования исстроить шифрование автоматически лицензионно чистый и бесплатный кли- пользуется алгоритм AES со 128-биттоже не получится – необходимо сна- ент VNC – то UltraVNC – это ваш выбор. ным ключом. Настраивается шифрочала скопировать файл MSRC4Plugin. Со своей за даdsm из подкаталога plugin в основной чей он справляеткаталог, потом сгенерировать ключ ся вполне, имеет в файл new_rc4.key, переименовать богатые возможего в rc4.key, и только потом можно ис- ности по настройпользовать. ке. Конечно, он не Программа имеет возможность ра- обладает всеми боты в stealth-режиме и даже возмож- возможностями ность запретить пользователю закрыть NetOp, но... зато процесс WinVNC (для пользователя, бесплатный. не являющегося администратором удаленного компьютера), что делает RealVNC ее идеальным инструментом для на- RealVN C – э то блюдения в режиме view-only. своего рода комПрограмма имеет возможность от- м е р ч е с к и й в а ключения фоновой картинки, пониже- риант UltraVNC, ния настроек графики, а также отклю- а потому он преРисунок 13. Внешний вид окна настроек сервера TightVNC

№5, май 2007

23


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

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

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

вание автоматически, стоит его вклю- что на его компьютере установлен кличить. Правда, работает только в том ент удаленного доступа, а во-вторых, случае, если с обеих сторон запущен видит, когда к нему подключается удаRealVNC, в противном случае шиф- ленный клиент. рование автоматически отключаетПрограмма имеет возможность отся. (Это большой камень в огород ключения обработки событий мыши UltraVNC, в котором нужно вручную и клавиатуры, обеспечивая тем самым включать и выключать шифрование, переход в режим view-only. Работает программа на стандартном порту 5900. да и то оно работает нестабильно.) Программа имеет возможность от- Из дополнительных сервисов присутсключения фоновой картинки, отклю- твует только HTTP-сервер на стандарчения визуальных эффектов и пони- тном же порту 5800, при заходе на кожения настроек графики вплоть до торый с помощью Java-апплета можно 2‑битного цвета. В качестве дополни- управлять компьютером. тельных мер безопасности программа Клиентская часть программы очень имеет возможность задавать перечень бедна функциями. Такое впечатление, IP-адресов или сетей, соединения с ко- что все силы ушли на разработку шифторых принимаются или запрещаются. рования контента, и на функцию переПо умолчанию разрешено все. дачи файлов ничего не осталось. Программа не имеет возможносПрограмма не имеет ни возможти скрытия факта своего присутствия ности передачи файлов, ни обмена сов системе, так что локальный поль- общениями между компьютерами, дазователь, во-первых, всегда видит, же текстового. Да и реализация кли-

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

24

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

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


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

MetaVNC и TightVNC Программы объединены вместе по той простой причине, что они на самом деле похожи, как близнецы-братья. Точнее говоря, как отец и сын, поскольку MetaVNC создан на базе кода TightVNC. Не совсем понятно, почему TightVNC получил такое название (tight (англ.) – узкий, тесный), наверное, разработчики старались подчеркнуть факт, что комРисунок 18. Внешний вид Krdc, подключенного пьютеры, связанные этой программой, связаны очень теск удаленному узлу но. На деле же эти программы – наиболее простые и ограСкриншоты программы MetaVNC похожи на TightVNC ниченные по возможностям. Это единственные программы, в которых отсутствует как братья-близнецы. По сути, единственное отличие, которое есть у MetaVNC поддержка авторизации Windows, возможна только локальная авторизация с одним-единственным паролем, предо- от TightVNC – это умение делать прозрачный фон главного окна. ставляющим полный доступ. Личное мнение: несмотря на то что TightVNC был перШифрование контента в программах отсутствует как класс. Из всех настроек для упрощения передачи изобра- вой программой VNC, с которой я имел дело, сказать о нем жения по сети присутствует только возможность отключе- хорошего я могу только «он работает». Это совершенно зания фоновой картинки.Программы также не имеют возмож- урядная, весьма ограниченная по функциям программа, коности ни скрытия факта своего присутствия в системе, ни торая, конечно, работает, но не умеет ничего такого, чего защиты от завершения процесса пользователем. Хотя воз- не умела бы UltraVNC. можность отключения обработки событий удаленной мыTimbuktu Pro ши и клавиатуры все-таки присутствует. Программы имеют возможности понижения настроек Эта программа – единственная в нашем обзоре, с помощью графики. Из дополнительных сервисов присутствует толь- которой можно из Windows управлять компьютером под упко стандартный для VNC сервера сервис – HTTP-сервер, равлением MacOS или наоборот. К сожалению, на этом какие-либо замечательные сторозаходя на который с помощью Java-апплета можно управлять компьютером. Программы имеют возможность пере- ны этой программы заканчиваются. Да, она не самая беддачи файлов между клиентом и сервером. Причем они на- ная по возможностям – имеется и возможность отключестолько похожи друг на друга, что функция передачи фай- ния фоновой картинки, и возможность отключения визуальлов работает даже в том случае, когда сервер – MetaVNC, ных эффектов и понижение цветности, причем это единственная программа, в которой можно цветной экран сервеа клиент TightVNC и наоборот. Программы используют стандартный для VNC порт ра превратить в черно-белый экран клиента. 5900 (5800 для HTTP-сервера), который можно изменить в настройках сервера. Клиентская часть программ не позволяет подключаться к произвольному порту сервера – при использовании стандартной формы адрес:порт из‑за ошибок в обработке строки программа пытается использовать совершенно другой порт, нежели заданный. При подключении клиента значок MetaVNC меняет цвет букв с синего на белый, а значок TightVNC меняет цвет фона на инверсный. Программы не имеют русскоязычного интерфейса. Распространяются свободно, по лицензии LGPL. Рисунок 19. Внешний вид модуля KDE, выполняющего роль сервера VNC

№5, май 2007

25


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

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

Имеются и возможности отключения обработки событий мыши и клавиатуры, что позволяет перейти в режим View-Only (в Timbuktru это называется Observe). Имеется возможность авторизации с помощью создания локальных пользователей, которым может быть приписано разрешение/запрещение выполнять те или иные действия, или с помощью пользователей Windows, для которых можно настроить разрешение/запрещение аналогичным образом. В программе отсутствует возможность шифрования контента. Имеется только возможность шифрования с помощью SSH, при условии, что на целевом компьютере функционирует SSH-сервер.

Программа не имеет возможности скрыть факт своего присутствия на компьютере. Дополнительные сервисы также полностью отсутствуют. Из положительных моментов хотелось бы отметить удобную, на манер NetOp адресную книгу, в которую можно заносить адреса клиентов, при этом в зависимости от представленного там режима доступа (управление, наблюдение, файлообмен) запись будет иметь соответствующий значок. Программа использует TCP-порт 407, который невозможно изменить никаким образом. При подключении на компьютере клиента значок терминала меняется на изображения, соответствующие режиму доступа к компьютеру, – рука в режиме управления, две папки в режиме файлообмена и т. д. Это единственная программа, в которой нет разделения между клиентUNIX ской и серверной частью, поэтому, установив программу только для подключения к удаленным клиентам, все равно получаешь серверную часть. Правда, запуск сервиса можно отключить. Программа не имеет русскоязычного интерфейса, хотя переведена на 5 языков. Распространяется по коммерческой лицензии, стоимость которой изменяется в зависимости от числа купленных лицензий. Стоимость одной лицензии составляет $89. Внешний вид окна программы приведен на рис. 16. Внешний вид подключенного клиента не приводится, потому что его интерфейс похож на интерфейс клиента RealVNC – все действия вызываются из меню, которое появляется при нажатии правой кнопки на заголовке окна. Личное мнение: совершенно заурядная, хоть и коммерческая программа, единственная существенная особенность которой – возможность работы с хостами под управлением MacOS. Если задачи удаленного управления компьютером с MacOS не стоит, подумайте перед приобретением лицензии на Timbuktu – может быть, лучше приобрести лицензии на Radmin или NetOp?

Связь между Windows и UNIX с помощью VNC

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

26

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


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

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

называется 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 (в режиме «удаленного помощника», а не в отдельной сессии), ощу-

№5, май 2007

Рисунок 23. Внешний вид клиента Remote Desktop Connection

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

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

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

27


администрирование твий локального и удаленного пользователей, которые вместе использовали один и тот же экран, клавиатуру и мышь, то для программ данной группы, наоборот, главным является их разделение. Программы предназначены для организации терминальных сессий, то есть одновременных сеансов работы многих пользователей за одним компьютером в графическом режиме. Почему «в графическом режиме»? Потому что в текстовом режиме возможность одновременной работы на UNIX-серверах существует чуть ли не с самого дня их основания, а для пользователей Windows терминальные сессии в текстовом режиме были невостребованы. Но все меняется, и появились терминальные серверы – сначала Windows NT Terminal Server Edition, потом Windows 2000, потом Windows Рисунок 25. Клиент UltraVNC, подключенный к VNC-серверу UNIX 2003. Терминальный сервер в них – это и указать пользователей, которым будет разрешено под- обычный сервис, который стартует как сервис и настраиключаться к данному компьютеру. Внешний вид «серве- вается как сервис – через MMC. ра» приведен на рис. 21. Слово «сервер» здесь недаром Как ни странно, но протокол RDC (Remote Desktop взято в кавычки – в отличие от настоящего терминально- Connection) открытый, поэтому существует возможность го сервера все настройки здесь либо жестко задаются в организации терминальных сессий не только Windows → реестре Windows, либо задаются со стороны клиента. Ра- Windows, но и Windows → UNIX и UNIX → Windows. зумеется, здесь отсутствуют все дополнительные сервиМы рассмотрим все варианты. сы вроде файлообмена. Зато входит в стоимость Windows, и устанавливать не надо. Для подключения к такому «сер- Организация терминальных сессий веру» можно использовать клиентов, поддерживающих Windows → Windows протокол RDC – Remote Desktop Connection под Windows Не всем, наверное, известно, что протокол RDC, применяили rdesktop под UNIX. емый Microsoft, и «гигант» терминальных серверов Citrix MetaFrame были изначально разработаны одним и тем же Программы для организации человеком, а именно Эдом Якобуччи, впоследствии оснотерминальных сессий вавшим Citrix Systems. Было это еще в далеком 1989 году, Назначение программ этой группы очень отличается во время совместной работы Microsoft и IBM над OS/2, где от предыдущей. Если в программах группы «удаленный Якобуччи возглавлял группу разработчиков. Впоследствии помощник» необходима была одновременность дейс- Microsoft приобрела у Citrix лицензию на разработанную ею технологию MultiWin с целью встроить ее в будущие версии операционной системы. И в мир пришли терминальные серверы от Microsoft. Достоинство терминальных серверов и их недостатки перечислялись множество раз – возможность использования слабого оборудования для подключения к серверу, возможность использования локальных версий программ вместо сетевых, возможность не оснащать все рабочие места программным обеспечением, а оснастить им только сервер компенсируется аппаратными запросами как к самому серверу, так и к сетевой инфраструктуре, на которую в таком случае ложится значительно большая нагрузка, и т. д. Терминальный сервер Windows функционирует точно так же, как и любая другая служба – с возможностями настройки через Microsoft Management Console и управлением через специальную программу Terminal Services Рисунок 26. Внешний вид окна Xbrowser

28


администрирование 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 имеет достаточРисунок 27. Внешний вид Xmanager, подключенного к клиенту ное количество настроек. БольшинсВнешний вид клиента RDC привеЛичное мнение: rdesktop – основтво из них предназначены для наной инструмент системного админисстройки процесса регистрации поль- ден на рис. 23. тратора, а krdc – бесполезная игрушка. зователя в системе – возможно, наСписок серверов, который она должна пример, отключить выполнение про- Организация терминальных выдавать, строится только на основаграмм из секции автозапуска, настро- сессий UNIX → Windows ить группы устройств, которые будут Организация терминальных сессий нии протокола SLP и в сетях Windows автоматически подключаться – дис- UNIX → Windows практически ничем совершенно бесполезен. С моей точки, принтеры и т. д., ограничить сес- не отличается от терминальных сес- ки зрения, более удобно меню, в косию пользователя по времени. Можно сий Windows → Windows. Меняется раз- тором вызывается непосредственно задать настройки шифрования, ука- ве что клиент – вместо Remote Desktop rdesktop со всеми необходимыми пазать группу (или группы) пользова- Connection используется rdesktop с ин- раметрами. телей, которые смогут пользоваться терфейсом из командной строки или данным сервисом и понизить качес- «оболочка оболочек» Krdc, который Терминальная сессия тво графики для ускорения работы. тем не менее все равно требует нали- Windows → UNIX через Xvnc Да-да, вы не ошиблись. Это возможВнешний вид подключенного клиента чия rdesktop. Если используется Krdc, то при под- но. И даже не очень сложно. Для этоничем не отличается от обычного рабочего стола и напоминает «Windows ключении клиента сверху появляется го достаточно на Windows иметь VNCнебольшая панель инструментов, кото- клиента, который умеет подключаться внутри Windows». к произвольному порту VNC (UltraVNC, С клиентской стороны в свою оче- рая практически бесполезна. Настроек у Krdc значительно мень- RealVNC), а на сервере – програмредь можно указать имя пользователя, домен и пароль, понизить настрой- ше, чем у Remote Desktop Connection, му Xvnc и ее скрипт запуска vncserver. ки графики и задать разрешение экра- можно указать разрешение экрана, на- Обе эти программы входят в пакеты на, указать, какие локальные ресур- стройки графики, тип протокола RDC TightVNC или TridiaVNC. Работает это все следующим обрасы будут подключаться к соответству- и работу в режиме «view-only», приющим удаленным (диски, принтеры, чем большинство параметров придет- зом – пользователь запускает на UNIX COM-порты), отключить лишние визу- ся задавать из командной строки. Имя сервер VNC с помощью скрипта альные эффекты, фоновую картинку, пользователя, пароль и домен берут- vncserver. Vncserver запускает Xvnc, кося из настроек KDE. Для rdesktop эти торый создает новый X-сервер на затемы, анимацию. Дистрибутив клиента находится значения указываются в командной данном порту плюс 1 и HTTP-сервер в %SYSTEMROOT%/system32/clients/ строке. Если не указано ничего, соот- на заданном HTTP-порту плюс 1. Есветствующие строки при начале со- ли в домашнем каталоге отсутствовал tsclient/win32. Сервер RDC работает на TCP-порту единения будут пустыми, если указа- подкаталог .vnc, то он создается, в нем 3389 и не предоставляет возможности ны – будут подставлены указанные создается стартовый скрипт по умолзначения. чанию xstartup, который вызывается его изменить. Внешний вид клиента rdesktop, при начале сессии на данном сервере. Внешний вид программы для настроек терминального сервера приве- подключенного из KDE, приведен Здесь же записывается журнал, в кона рис. 24. торый выводятся все сообщения (анаден на рис. 22.

№5, май 2007

29


администрирование кально и, возможно, управляется удаленно через Shared Desktop сервис KDE. Внешний вид Windows-клиента (в данном случае UltraVNC), подключенного таким образом к VNC-серверу, приведен на рис. 25. Личное мнение: наиболее простой и экономичный способ работы в терминальной сессии. Настройки скорости работы будут определяться в большей степени клиентом. В некоторых дистрибутивах Linux (например, SuSE) vnc включается на этапе установки как встроенный сервис.

Терминальная сессия Windows → UNIX через XDMCP В этом мире возможна даже такая вещь, какой бы невозможной она ни казалась. Фирма NetSarang Computers для этой цели выпускает специальную программу Xmanager, последнюю версию которой 2.0 мы и рассмотрим. Правда, для начала нам придется привыкнуть к одной на первый взгляд невероятной вещи – в Х Windows System Рисунок 28. Внешний вид клиента NX Client для Windows сервер – это то место, где экран, а то место, где запускаютлог .xsession-errors) и статистика работы по окончании сес- ся программы, – клиент, то есть все с точностью до наобосии (см. вывод журнала). рот по отношению к тому, как это воспринимается обычно. При запуске другого VNC-сервера от другого пользова- Таким образом, в Windows запускается X-сервер, в котором теля он будет размещен на другом порту. Таким образом од- работают клиентские приложения на UNIX. Итак, что собой новременно может функционировать фактически неогра- представляет Xmanager? Это довольно неплохо выполненниченное количество серверов. ная по дизайну программа, которая является X-сервером, Теперь понятно, зачем нужен был клиент, в котором позволяющим с помощью xdm/kdm авторизоваться в климожно было бы задавать произвольный порт – VNC-серве- ентской системе и запустить там программы. Xmanager зары размещаются, начиная с порта 5901, при этом при под- поминает созданные сессии, может отображать клиентов, ключении образуется новая сессия, совершенно независя- с которых были обнаружены широковещательные пакеты, щая от той сессии, которая в данный момент открыта ло- позволяет выбирать метод подключения и т. д. Внешний вид подобен Radmin и Timbuktu – рабочая область, в которой размещают24/03/07 01:29:36 Xvnc version TightVNC-1.3.8 24/03/07 01:29:36 Copyright (C) 2000-2006 Constantin Kaplinsky ся значки, каждый из которых обозна24/03/07 01:29:36 Copyright (C) 1999 AT&T Laboratories Cambridge чает сессию определенного типа – ста24/03/07 01:29:36 All Rights Reserved. 24/03/07 01:29:36 See http://www.tightvnc.com/ for information on TightVNC тическую, динамическую или сессию, 24/03/07 01:29:36 Desktop name 'X' (vmfree.shelton.net:2) созданную через Xstart. Внешний вид 24/03/07 01:29:36 Protocol versions supported: 3.7t, 3.7, 3.3 окна Xbrowser приведен на рис. 26. 24/03/07 01:29:36 Listening for VNC connections on TCP port 5902 24/03/07 01:29:36 Listening for HTTP connections on TCP port 5802 После подключения в окне запус24/03/07 01:29:36 URL http://vmfree.shelton.net:5802 кается новая X-сессия через xdm/kdm, xrdb: No such file or directory xrdb: can't open file '/root/.Xresources' который соединяется с Xmanager. ИсWarning: kbuildsycoca is unable to register with DCOP. пользуется стандартный TCP-порт 177. kbuildsycoca running... В окне, создаваемом сервером, не со.................... 24/03/07 01:32:42 Got connection from client 192.168.203.1 здается панелей инструментов, вместо 24/03/07 01:32:42 Using protocol version 3.7 этого, так же как Timbuktu и RealVNC 24/03/07 01:32:45 Full-control authentication passed by 192.168.203.1 24/03/07 01:32:45 Using hextile encoding for client 192.168.203.1 при нажатии правой кнопки на заго24/03/07 01:32:45 Pixel format for client 192.168.203.1: ловке окна, появляется меню, в кото24/03/07 01:32:45 16 bpp, depth 16, little endian ром можно настроить свойства под24/03/07 01:32:45 true colour: max r 31 g 63 b 31, shift r 11 g 5 b 0 24/03/07 01:32:45 no translation needed ключения, сбросить его и т. д. Здесь 24/03/07 01:32:45 Enabling full-color cursor updates for client 192.168.203.1 важно помнить, что в XDMCP, точно 24/03/07 01:32:45 rfbProcessClientNormalMessage: ignoring unknown encoding -223 так же как в Radmin, отсутствуют ка24/03/07 01:32:45 Using hextile encoding for client 192.168.203.1 24/03/07 01:32:45 rfbProcessClientNormalMessage: ignoring unknown encoding 16 кие бы то ни было средства для со24/03/07 01:32:45 rfbProcessClientNormalMessage: ignoring unknown encoding 15 кращения трафика между клиентом xterm: unable to open font "9x18", trying "fixed".... 24/03/07 01:33:28 Client 192.168.203.1 gone и сервером типа отключения фоновой 24/03/07 01:33:28 Statistics: картинки, упрощения настроек графи24/03/07 01:33:28 key events received 24, pointer events 646 ки, то есть вся разница между локаль24/03/07 01:33:28 framebuffer updates 246, rectangles 724, bytes 2423216 24/03/07 01:33:28 cursor shape updates 55, bytes 23076 ным и удаленным пользователем бу24/03/07 01:33:28 copyRect rectangles 77, bytes 1232 дет только в месте расположения кла24/03/07 01:33:28 hextile rectangles 592, bytes 2398908 24/03/07 01:33:28 raw bytes equivalent 5258382, compression ratio 2.191990 виатуры и мыши, все остальное будет

30


администрирование точно таким же, как при локальной регистрации. Планировка устройств выполняется самим 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-сессии, произвольно рас-

№5, май 2007

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

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

полагающиеся на Windows-дескто- пользовании режима Floating Windows пе, смотрятся довольно необычно пространство рабочего стола сервера (см. рис. 29). вообще не отображается, только отАвторизация целиком зависит крытые окна, что упрощает передачу от настроек сервера, поскольку вся изображения. работа фактически выполняется чеСервер может работать на любом рез сессию SSH – первоначально кли- доступном порту. У клиента сущестент подключается как пользователь nx, вует одна, не очень очевидная простартовой оболочкой у него запускает- блема – он написан с использованием ся nxserver, который выполняет поль- Cygwin и поэтому может оказаться незовательскую авторизацию, управляет совместимым с другими программами, сессиями и т. д. Если UNIX-сервер спо- также использующими Cygwin. собен использовать пользовательские бюджеты Windows, то возможна авто- Программы для удаленного ризация с их применением. Шифрование контента выполняет- выполнения задач ся точно так же, как это делает SSH, Такой вот довольно корявый перевод со всеми его возможностями по нас- термина Remote Management. Друготройке. го мне придумать не удалось, потоНа стороне клиента возможна на- му что это программы, на самом деле стройка работы с графикой. При ис- предназначенные для выполнения не-

31


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

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

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

которого фиксированного набора за- ши – не главное (хотя возможное, если дач на целевом компьютере. Мы крат- на той стороне настроен TightVNC или ко рассмотрим один вариант – IDEAL совместимый сервис). Главное – полуAdministration под Windows. чить информацию и/или выполнить заданную задачу. Любую. От получения IDEAL Administration информации о свойствах компьютера, С первого взгляда на программу IDEAL до его удаленного выключения. От моAdministration от Pointdev сразу понима- ниторинга открытых файлов до низкоешь, что это не просто амбициозное уровневого редактирования объектов название. В программе действительно Active Directory. есть все или почти все, что может понаПостроена программа в привычном добиться системному администратору для администраторов Windows-стиле – Windows в его работе, чтобы, не вста- слева список объектов – сетей, домевая с места, обслуживать десятки ком- нов, групп компьютеров и т. д., справа – пьютеров. Для этой программы пре- «обозреватель сети», в котором мождоставить доступ к клавиатуре и мы- но выбрать все компьютеры, опреде-

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

32

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


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

NetOp

UltraVNC

MetaVNC

TightVNC

RealVNC

Timbuktu

Используемый порт

4899

6502

5900

5900

5900

5900

407

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

49

40-275

бесплатно

бесплатно

бесплатно

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

высокое

высокое

среднее

низкое

низкое

среднее

среднее

Шифрование

да

да

да

нет

нет

да

нет

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

нет

да

да

нет

нет

нет

нет

Файлообмен

да

да

да

да

да

нет

да

Обмен сообщениями

да

да

да

нет

нет

нет

да

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

да

да

нет

нет

нет

нет

нет

Настройки управления вводом данных

Настройки графики

Программа

1 2 3

3

2

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

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

№5, май 2007

те подобрать программу, которая соответствует вашим требованиям. 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 – http://www. tridiavnc.com. 13. Rdesktop – http://www.rdesktop.org. 14. Free NX server – http://www.nomachine. com.

33


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

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

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

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

34

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

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


администрирование го алгоритма шифрования AES-128 – Как видите, на нашем firewall устадо 4.5 Мбит/с. Аутентификация уда- новлены лицензии, позволяющие исленных пользователей может произво- пользовать его для работы с VPN, алгодиться как с помощью логина и паро- ритмы шифрования DES, 3DES и AES. ля, так и по цифровым сертификатам Количество одновременных VPN-подX.509. Мы остановимся только на пер- ключений ограничено 10 пользоватевом способе аутентификации. лями (строчка IKE peers). Для простоты допустим, что этот В случае если на PIX не установлеже firewall PIX будет использовать- ны лицензии VPN, их можно бесплатся для предоставления внутренним но получить на веб-сайте Cisco: http:// рабочим станциям доступа в Интер- www.cisco.com/go/license. Предварительным условием для этого является нет (NAT). В качестве сервера аутентифи- регистрация: http://tools.cisco.com/RPF/ кации будет использоваться сервер register/register.do. Microsoft Windows 2003. Наличие такоМы будем использовать для наго или подобного сервера типично для шей VPN алгоритм шифрования 3DES, сети небольшого предприятия. На нем как наиболее защищенный. Как уже гоже зачастую работают сервисы DHCP, ворилось, PIX 501 имеет известное огDNS, WINS – все это пригодится нам раничение производительности в этом режиме – не более 3 Мбит/с – но учитыв дальнейшем (см. рис. 2). Для VPN-подключения на компью- вая, что у нас в любом случае не может терах удаленных пользователей ис- быть одновременно подключено более пользуется штатный VPN-клиент Cisco. 10 пользователей, это не столь важно. Его можно приобрести у поставщиков оборудования Cisco (Part Number CVPN‑CLIENT-K9=). Почитать о нем вы можете на странице поддержки Cisco Systems: http://www.cisco.com/application/ pdf/en/us/guest/products/ps2308/c1650/ cdccont_0900aecd801a9de9.pdf.

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

Войдя в режим конфигурирования, начнем настройку: # conf t pixfirewall(config)#

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

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

Настройка Cisco PIX Сначала выполним обычную процедуру, подключившись к PIX через консольный порт: pixfirewall> enable Username: pix Password: ***** pixfirewall#

Давайте посмотрим, что он из себя представляет. Нас особенно интересует раздел Licensed Features: # show version Cisco PIX Firewall Version 6.3(3) Cisco PIX Device Manager Version 3.0(1) (часть вывода удалена) Licensed Features: Failover: VPN-DES: VPN-3DES-AES: Maximum Physical Interfaces: Maximum Interfaces: Cut-through Proxy: Guards: URL-filtering: Inside Hosts: Throughput: IKE peers:

№5, май 2007

Disabled Enabled Enabled 2 2 Enabled Enabled Enabled 50 Unlimited 10

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

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

35


администрирование # 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

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

Включим NAT, и учтем при этом, что пакеты, направляющиеся из локальной сети к клиентам VPN, подвергать NAT не нужно. Для того чтобы исключить эти пакеты из процесса NAT, напишем простой access-лист: # access−list 101 permit ip 192.168.224.0 255.255.255.0 ↵ 192.168.250.0 255.255.255.240

# 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

Будем использовать имеющийся в сети сервер Windows 2003 как сервер аутентификации. Чуть позднее расскажу об этом поподробнее, а пока что включим на PIX использование протокола RADIUS для этого сервера: # aaa−server RADIUS protocol radius # aaa−server partnerauth protocol radius # aaa-server partnerauth (inside) host 192.168.224.127 ↵ radiuspassword timeout 10

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

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

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

Поскольку удаленные пользователи в общем случае не имеют статических IP-адресов, нам придется использовать динамические карты. Создадим такую карту с условным именем dynmap и укажем в ней использование только что созданного трансформа mytrans1: # crypto dynamic-map dynmap 10 set transform-set mytrans1

и уже эту динамическую карту добавляем в криптокарту, назовем ее mymap: # crypto map mymap 10 ipsec-isakmp dynamic dynmap

Отметим в карте, что мы требуем от подключающихся пользователей, чтобы они прошли аутентификацию на сервере RADIUS: # crypto map mymap client authentication partnerauth Рисунок 5. Ввод пароля для RADIUS-клиента

Привяжем криптокарту к внешнему интерфейсу PIX, чтобы определить, откуда следует ожидать входящих VPN‑соединений: # crypto map mymap interface outside

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

36

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


администрирование Настроим его: # # # # # #

isakmp isakmp isakmp isakmp isakmp isakmp

enable policy policy policy policy policy

outside 10 authentication pre-share 10 encryption 3des 10 hash md5 10 group 2 10 lifetime 3600

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

vpngroup vpngroup vpngroup vpngroup vpngroup vpngroup vpngroup

pixvpn pixvpn pixvpn pixvpn pixvpn pixvpn pixvpn

№5, май 2007

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

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

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

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

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

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

37


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

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

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

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

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

Маршутизаторы, коммутаторы с паролем «radiuspassword» (поле и межсетевые экраны Cisco могут ис- «Shared secret») (см. рис. 5). пользовать два протокола аутентиПосле этого нам нужно настроить фикации и авторизации: TACACS+ политику доступа. Следует иметь в виpixfirewall# wr mem (Terminal Access Controller Access- ду, что при использовании политики Control System) и RADIUS (Remote для разграничения доступа на уровBuilding configuration... Cryptochecksum: 44b22e1d b86f29d9 Authentication Dial-In User Service). Пер- не групп домен Windows должен рабоc40e403f bd7098f6 вый из них был разработан компанией тать в режиме Native mode. Если до[OK] pixfirewall# Cisco Systems и используется почти ис- мен работает в смешанном режиме ключительно в её продуктах. Второй – (Mixed mode), опция «Control access Настройка Windows Server открытый протокол, и существует мно- through Remote Access Policy» на зажество его реализаций под различные кладке «Dial-In» в свойствах пользо2003 Как уже говорилось, мы используем операционные системы. В том числе – вателей будет недоступна. сервер Windows 2003. Для сервера и под Windows. Компания Microsoft разСоздадим в домене новую группу Windows 2000 описание настройки бу- работала собственную версию серве- под названием, например, «VPN users», дет незначительно отличаться. ра RADIUS и назвала её IAS – Internet а затем в настройках сервера IAS соИтак, мы будем использовать Authentication Service. здадим новую политику удаленного додля второй ступени аутентификации Надо сказать, что с таким же ус- ступа, выбрав для простоты использосервер RADIUS. пехом в качестве сервера аутенти- вание мастера создания новой полификации можно было бы использо- тики. Ее настройки пока оставим тавать, например, Cisco Secure ACS кими, какими их предлагает мастер – (Access Control Server), установленный откорректировать их можно позднее на тот же сервер Windows 2003, или ка- (см. рис. 6-9). кой-нибудь из многочисленных Open В результате после завершения раSource-серверов RADIUS. Реализация боты мастера создания новой политиот Microsoft выбрана ввиду ее большей ки в Remote Access Policies сервера распространенности, а также потому, IAS появилась наша новая политика что нам, в сущности, требуется от не- по имени VPN (см. рис. 10). го лишь базовая функциональность – Как можно видеть на рис. 11, успроверка логина и пароля пользовате- ловием применения данной политики ля в домене Windows. является принадлежность подключаВ панели управления сервисом IAS ющегося пользователя к группе «VPN Рисунок 14. Создание нового соединения создадим нового клиента RADIUS – users». При выполнении этого условия в Cisco VPN Client наш PIX (cм. рис. 3). доступ пользователю будет открыт. В поле «Friendly name:» введем В завершение нужно отредактиролюбое имя, например pix501, а в по- вать профиль политики (кнопка «Edit ле «Client address» – IP-адрес нашего Profile»). Следует разрешить передаVPN‑шлюза (192.168.224.1) (см. рис. 4). чу паролей PAP и CHAP, которые по В следующем окне указываем сер- умолчанию отключены. В данном слуверу, что клиент будет работать с ним чае нет ничего страшного в том, что Рисунок 15. Аутентификация пользователя по стандартному протоколу RADIUS, протокол PAP передает пароль без сервером RADIUS

38


администрирование шифрования, поскольку канал передачи уже и так зашифрован 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. Мы увидим там примерно такое: Event Type: Information Event Source: IAS Event Category: None Event ID: 1 Date: 3/30/2007 Time: 3:10:54 PM User: N/A Computer: MAIN Description: 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

№5, май 2007

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

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

Рисунок 18. Проверка параметров VPN-подключения командой ipconfig 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>

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

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

39


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

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

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

B

IND – DNS-сервер для UNIX. Для воплощения в жизнь информации из этой статьи вам потребуются знания UNIX и BIND на уровне продвинутого пользования. Что такое Split DNS-конфигурация? Конфигурация BIND, позволяющая использовать различные настройки DNS в зависимости от адреса источника запроса. Для чего это может быть полезно? Допустим, ваша организация называется «Horns And Hooves inc.» и соответс твенно доменное имя hornsandhooves.ru. Вероятно, системному администратору покажется удобным назвать логичными и понятными

40

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

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


администрирование Вполне логичная и безопасная схема, но экономически не эффективна и усложнена для администрирования. Давайте попробуем разобраться, каким образом, используя всего одну пару 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 соответственно. Они по совместительству являются почтовыми серверами, ничто им не мешает заниматься еще и почтой.

№5, май 2007

Листинг 1. Файл ext.hornsandhooves.ru $TTL 86400 hornsandhooves.ru. IN IN 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) ) NS ns1.hornsandhooves.ru. NS ns2.hornsandhooves.ru.

IN IN

MX MX

www

IN IN

A A

194.0.1.1 194.0.1.1

ns1 ns2

IN IN

A A

194.0.1.3 194.0.1.4

mx1 mx2

IN IN

A A

194.0.1.3 194.0.1.4

5 10

mx1.hornsandhooves.ru. mx2.hornsandhooves.ru.

Листинг 2. Файл int.hornsandhooves.ru $TTL 86400 hornsandhooves.ru. IN IN 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) ) NS ns1.hornsandhooves.ru. NS ns2.hornsandhooves.ru.

IN IN

MX MX

www

IN IN

A A

192.168.1.1 192.168.1.1

ns1 ns2

IN IN

A A

192.168.1.3 192.168.1.4

mx1 mx2

IN IN

A A

192.168.1.3 192.168.1.4

dev gate filesrv dhcp

IN IN IN IN

A A A A

192.168.1.10 192.168.1.11 192.168.1.12 192.168.1.13

bender panikovsky funt shura

IN IN IN IN

A A A A

192.168.1.20 192.168.1.21 192.168.1.22 192.168.1.23

5 10

mx1.hornsandhooves.ru. mx2.hornsandhooves.ru.

В каждом сервере по два сетевых нета, а в другом – зону для внутренней интерфейса. Один имеет внешний сети. Назовем их external и internal. IP-адрес (194.0.1.3 для ns1 и 194.0.1.4 Файл конфигурации named.conf д ля ns2), второй интерфейс име - для master-сервера: ет адрес из внутренней сети options { (192.168.1.3 и 192.168.1.4 соотdirectory "/var/named"; ветственно). notify yes; pid-file "/var/run/named/named.pid"; О конфигурации с одним statistics-file "named.stats"; интерфейсом с внутренним }; адресом (например, если у вас DMZ) будет сказано в конце controls { статьи. inet 127.0.0.1 allow { localhost; } ↵ В BIND 9 есть замечатель keys { rndckey; }; }; ная возможность создавать Views (виды). В одном View мы // Создадим ACL, в котором укажем, // что внутренние адреса – подсеть 192.168.1 расположим зону для Интер-

41


администрирование 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; }; };

чим 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; }; }; //ACLs acl "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;

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

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

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

// Укажем внешний адрес slave-сервера allow-transfer { 194.0.1.4;}; //ROOT zone zone "." IN { type hint; file "named.ca"; };

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

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

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

42

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

//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

// Здесь мы как раз указываем, с какого // интерфейса запрашиваем передачу зоны // В данном случае – с внутреннего, так как // на внутреннем виде, на мастере, трансфер // разрешен для внутреннего интерфейса transfer-source 192.168.1.4; //ROOT zone zone "." IN { type hint; file "named.ca"; };

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

};

recursion yes;

};

//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;


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

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. Например: acl "internals" {!192.168.1.5; 192.168.1.0/24;};

№5, май 2007

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

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

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

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

43


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

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

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

Н

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

44

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


администрирование быть атакован через ошибки в клиентских программах, ссылка, вставленная в сообщение, может привести на вредоносный ресурс. Не стоит забывать, что 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, по-моему, сегодня использование этого языка уже

№5, май 2007

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

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

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

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

45


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

Устанавливаем OpenFire Перед началом установки OpenFire следует инсталлировать пакеты sunРисунок 3. Установленные плагины java6-jre. И если планируется использовать внешний сервер базы данных, то и его. Тестовая уста- сервера. По умолчанию используется вывод hostname, хоновка производилась на Ubuntu 7.04 в качестве БД – MySQL. тя можно здесь использовать IP-адрес. Впоследствии имя Для других дистрибутивов все сказанное, кроме особен- можно изменить, после чего понадобится изменение и серностей работы менеджеров пакетов, будет действительно. тификатов. Здесь же указываем порт, который будет использоваться при администрировании сервера, обычный $ sudo apt-get update и с использованием защищенного соединения (по умолча$ sudp apt-get install sun-java6-jre mysql-server нию соответственно 9090 и 9091). Следующий шаг позволяет определить, какую из баз Теперь распаковываем полученный архив в каталог /opt: данных мы будем использовать для работы. Самым прос$ cd /opt/ тым вариантом будет выбор встроенной базы (Embedded $ sudo tar xzvf /home/source/openfire_3_3_0.tar.gz DataBase). В этом случае никаких дополнительных настроек В результате в каталоге /opt появился подкаталог далее делать не нужно. Для небольшого количества польopenfire, в котором содержатся все библиотеки и исполня- зователей ее производительности вполне хватает. Мы же используем MySQL, поэтому отмечаем «Standard Database емые файлы. Connection» и жмем Continue. В следующем окне указываем Создаем необходимую для работы базу данных: параметры подключения к базе данных. Для этого в строке $ sudo mysqladmin --user=root --password=db_passwd ↵ Database Driver Presets выбираем тип базы, с которой бу create jabber дем работать, в строке Database URL все слова в квадрат$ cat ./openfire/resources/database/openfire_mysql.sql | ↵ mysql --user=root --password=db_passwd --database=jabber ных скобках подменяем своими значениями (то есть вместо [host-name] пишем адрес сервера, на котором располоВ указанном каталоге находятся файлы и для осталь- жена база MySQL, а вместо [database-name] пишем имя базы, в нашем случае база называется jabber). То есть, если ных баз данных, поддерживаемых OpenFire. Запускаем сервер (привилегий администратора не тре- MySQL установлен на том же компьютере, в поле Database URL получается: буется): $ cd openfire/bin $ ./openfire testing JVM in /usr ... Usage: ./openfire {start|stop|status}

$ ./openfire start

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

46

jdbc:mysql://localhost:3306/jabber

Далее вводим имя пользователя и пароли и пробуем соединиться с базой данных. Шаг «Profile Settings» позволит выбрать вариант сохранения информации о пользователях. Это может быть внутренняя база данных либо LDAP. В последнем случае настраиваем соединение с сервером, предоставляющим соответствующие услуги. И последний шаг настройки – установка пароля администратора. Учетная запись в этом поле пишется с добавлением домена – admin@example.com. По окончании настройки система предложит нажатием на кнопку «Login to the admin console» зарегистрироваться в консоли админис-


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

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

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

№5, май 2007

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

зовать внутри организации, лучше запретить пользователям самостоятельно создавать учетные записи. Для этого переходим в «Registration & Login» и устанавливаем переключатель в Disabled в поле «Inband Account Registration». Используя переключатель в поле «Anonymous Login», можно разрешить или запретить анонимные подключения к серверу. И, наконец, можно ограничить соединения с сервером только диапазоном определенных адресов, указав их в «Restrict Login» в виде 192.168.1. Переключатель в поле «Change Password» лучше установить в Enabled, тем самым разрешив пользователям самостоятельно изменять свои пароли. Меню «Conflict Policy» позволяет определить дейсфейс. Конфигурационный файл весьма понятен по структуре, хотя к его редактированию следует относиться весьма внимательно. Так как любая погрешность приведет к тому, что сервер будет работать не так, как надо. В настройках сервера есть свои особенности. Так, все изменения, произведенные через веб-интерфейс, заносятся сразу в базу данных, в конфигурационном файле они никак не отражаются. При наличии записей override_* они будут действительны до первой перезагрузки. В качестве базы данных используется Mnesia, хотя поддерживаются и некоторые другие – MySQL, PostgreSQL. Большинство возможностей реализовано из коробки. Для создания транспорта ICQ <-> Jabber понадобится PyICQt (http://pyicq-t.blathersource.org).

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

47


администрирование $ cd /opt/openfire/resources/security/ су http://server:9090/plugins/registration/sign-up.jsp. Модуль userImpo=rtExport позволит экспортировать и импортировать пользователей в XML-файл. Сначала меняем пароль к keystore: Установленные плагины можно найти во вкладке $ sudo keytool -storepasswd -keystore keystore «Plugins», где их можно перезапускать, удалять и просматривать информацию о назначении плагина. По умолчанию здесь только один обеспечивающий поиск пользователей, Вводим пароль changeit и затем новый, повторив его чтобы установить остальные, необходимо скачать их с сай- два раза. Удаляем старые сертификаты: та проекта и скопировать в подкаталог plugins. После чего $ sudo keytool -delete -keystore keystore -alias rsa их список появится в одноименной вкладке. $ sudo keytool -delete -keystore keystore -alias dsa Многие пользователи уже имеют ICQ UIN, в этом случае необходимо будет настроить транспорт. УстанавливаПри желании это можно сделать и через веб-интерфейс. ем плагин gateway, после чего во вкладке Server появится Теперь создаем новый сертификат: новый пункт «Gateways». Выбираем «Setting» и устанавли$ sudo keytool -genkey -keystore keystore -alias grinder.com ваем флажок напротив ICQ. Нажав ссылку «Test» и кнопку «Test Connection», можно протестировать подключение к выбранному серверу ICQ. В «Options → Encoding» указыСначала вас спросят новый пароль keystore, а затем ваем кодировку проходящих сообщений. По умолчанию ис- потребуется ввести некоторую информацию о сервепользовать шлюз могут все, изменить такой порядок мож- ре (организация, город, страна), как это обычно делаетно, выбрав «Permissions», где можно указать пользовате- ся при создании любого сертификата. Перейдя по ссыллей или группы, которым разрешена работа с шлюзом, либо ке в «Signing Request» на странице «Server Certificates», ручная регистрация в подменю «Registrations». Чтобы свя- можно занести всю информацию в файл, чтобы затем заться с корреспондентом через шлюз, достаточно указать не вводить ее каждый раз. По окончании будет задан вопрос о пароле для доступа к ключу. Можно ввести друего UIN в виде uin@jabber_server.com. гой пароль, нажатием на <Ente> установить такой же паНастройка SSL роль, как и keystore. После установки сервера OpenFire самостоятельно соЕсли планируется подпись сертификата сервера сторонздаст все необходимые (самоподписанные) сертификаты ней организацией, необходимо сгенерировать файл в стандля используемого домена, их можно просмотреть в Server дартном формате CSR (Certificate Signing Request): Certificates. Для организации SSL используется стандарт$ sudo keytool -certreq -keystore keystore ↵ ная реализация Java. Ключи и сертификаты сервера сохра -alias grinder.com -file grinder_com.csr няются в стандартном хранилище сертификатов – keystore и используются для подтверждения полномочий. ВозможЭтот запрос отсылается в любую выбранную службу но использование второй пары ключей truststore, с помо- сертификации. Подписанный сертификат импортируетщью которых проверяется подлинность клиентов. Если пла- ся командой: нируется работа через SSL, этого мало, необходимо вклю$ sudo keytool -import -keystore keystore ↵ чить соответствующие механизмы сервера. Для чего пе -alias grinder.com -file signed_ grinder_com.csr реходим во вкладку «System Properties» и, используя поле «Add new property», добавляем или включаем следуюКлиентские сертификаты в truststore импортируютщие параметры: ся также просто. Сначала меняем пароль (по умолчанию тот же changeit): n xmpp.socket.ssl.active – true; n xmpp.socket.ssl.port – порт для SSL обычно 5223; $ sudo keytool -storepasswd -keystore truststore n xmpp.socket.ssl.storeType – необязательное поле, означающее формат, по умолчанию используется jks; n xmpp.socket.ssl.keystore – местонахождение файла И теперь импортируем сертификат каждого клиента: keystore, если оставить пустым, будет использовано зна$ sudo keytool -import -keystore truststore ↵ чение по умолчанию; -alias user1 -file user1_certificate_file n xmpp.socket.ssl.keypass – пароль к keystore, по умолчанию changeit; Как видите, OpenFire очень прост в установке и настройn xmpp.socket.ssl.truststore – расположение файла ке. Привести его в рабочее состояние можно всего за паtruststore относительно корневого каталога, если не пла- ру часов, после чего вы забудите о многих проблемах, свянируется его использовать, оставьте пустым; занных с использованием ICQ или других внешних сервиn xmpp.socket.ssl.trustpass – пароль к truststore. сов мгновенного обмена сообщениями.

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

48

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.



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

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

Андрей Бирюков Отказоустойчивые кластеры широко распространены в сетях средних и крупных компаний. Но у многих администраторов внедрение и обслуживание кластерных систем по-прежнему вызывает много вопросов. Рассмотрим реализацию отказоустойчивого кластера на основе Windows Server 2003. 50


администрирование Приступая к работе Прежде всего я поставлю задаОдним из необходимых условий ста- чу, решению которой будет посвящебильного функционирования сети на эта статья. крупной организации является откаУ нас имеется два сервера с идензоустойчивость. Даже минутный сбой тичной аппаратной частью. Требоваможет привести к весьма неприятным ние идентичности не является обязапоследствиям. тельным, но желательно, чтобы мощТак, например, во время перезаг- ность серверов была сходной. рузки почтового сервера в разгар раНеобходимо объединить их в откабочего дня сотрудники компании бу- зоустойчивый кластер. В качестве придут получать сообщения об ошибке мера настройки отказоустойчивого реи, как правило, звонить в службу тех- сурса я настрою службу File Share. нической поддержки компании, приПодробнее о типах кластеризубавляя работы системным админис- емых ресурсов мы поговорим чуть траторам. позже. Это особенно неприятно, когда о недоступности почты или любого дру- О редакциях и лицензиях гого сервиса сообщает руководство. Перед тем как начать описание проИзбежать подобных проблем можно цесса установки и настройки класс помощью отказоустойчивых клас- тера, нам необходимо определиться с редакциями операционной систеров. Кластер серверов – это группа не- темы, которая будет использоваться, зависимых узлов, которые взаимо- а также рассмотреть вопросы лицендействуют как одна система. Они ис- зирования. пользуют общую базу данных кластеПри построении кластера следура, которая позволяет выполнять вос- ет запомнить, что наиболее распростановление в случае отказа любо- страненная редакция Windows Server го узла. 2003 Standard не поддерживает класДанные решения могут быть как теризацию. аппаратными, так и программными. Таким образом, при построении Выбор зависит от размера вашей орга- отказоустойчивой системы следует низации, критичных для бизнеса при- использовать Windows Server 2003 ложений и, естественно, бюджета, вы- Enterprise Edition. деляемого на IT-инфраструктуру. Кстати, редакцию Enterprise нужВ своей статье я рассмотрю про- но использовать и при построении граммную реализацию двухузлового кластеров для Microsoft Exchange кластера на основе службы Microsoft и Microsoft SQL Server 2000. В противClustering Service. Такое решение яв- ном случае вы не сможете кластериляется наиболее приемлемым для ор- зовать почту и базы данных. ганизаций средних размеров с небольЧто касается вопросов лицензишим IT-бюджетом. рования, то необходимо приобретать

Рисунок 1. Имя кластера и домен

№5, май 2007

серверную лицензию на операционную систему на каждый узел кластера. Плюс лицензии клиентского доступа (CAL) в том же количестве, что и для одного сервера. Поясню на примере. Если у вас в организации 250 пользователей и вы разворачиваете двухузловой кластер, то вам необходимо приобрести две серверные лицензии на Windows Server 2003 и 250 лицензий клиентского доступа. Таким образом, количество узлов в кластере не влияет на число клиентских лицензий.

Новые понятия Для лучшего понимания концепции кластеризации мы рассмотрим несколько основных понятий. Отказоустойчивый кластер, как правило, состоит из четырех узлов, использующих общий дисковый ресурс для обмена данными. Этот ресурс также именуется кворум-устройством (quorum). В идеале это кворум-устройство должно представлять из себя отдельное аппаратное хранилище данных с собственной поддержкой отказоустойчивости (диски RAID 1, RAID 5), подключающееся ко всем узлам кластера. Подобные решения предоставляют IBM, EMC и другие производители. Но в случае ограниченных финансовых возможностей компании для создания кворум-устройства можно использовать диск на разделяемой SCSIшине, подключенный ко всем узлам кластера.

Рисунок 2. Результат проверки конфигурации

51


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

Рисунок 3. Страница с предлагаемыми настройками

Рисунок 4. Обнаружение ошибок в конфигурации

Кластер содержит два различных При устранении причины отказа типа сетей: частная сеть, которая ис- исходного узла вся группа передается пользуется для поддержки соединений назад в исходный узел в соответствии между узлами кластера, и сеть общего с политикой возврата после восстановпользования (локальная сеть), которая ления (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. Группы – это блоки для перехода по отключению (failover). Каждая Несколько слов по каждому из вигруппа содержит один или несколько дов ресурсов. ресурсов. При отказе любого из реPhysical Disk используется для квосурсов внутри группы для всей груп- рум-ресурса. Требуется для всех серпы выполняется совместный переход веров кластера. DHCP и WINS используются в капо отключению согласно политике перехода по отключению, определенной честве ресурса кластера для обесдля данной группы. печения отказоустойчивости данных В любой момент времени группа служб. может принадлежать только одному Print Spooler позволяет кластериузлу. При отказе какого-либо ресурса зовать службы печати. внутри группы он должен быть переТип ресурса File Share позволямещен в альтернативный узел вмес- ет управлять разделяемыми файлоте со всеми остальными ресурсами выми системами тремя различными этой группы. способами:

52

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 – управление сценариями операционной системы как кластерным ресурсом.


администрирование Generic Service – позволяет управлять службами Windows Server 2003 как ресурсами кластера.

Важность планирования Для стабильной работы кластера необходимо заранее спланировать, какие приложения будут выполняться, а также точно выбрать, без каких приложений вы можете обойтись и какие приложения должны поддерживаться при любых обстоятельствах. Вначале необходимо определить количество групп или виртуальных серверов. Приложения и ресурсы, находящиеся в одной группе, будут передаваться по отключению все вместе одному серверу. То есть вам необходимо определить, какие приложения зависят друг от друга, и им требуется совместная работа. Таким образом, перед началом развертывания кластера вам необходимо составить список всех приложений в вашей среде, четко определить, для каких из них допускается отказ, а для каких требуется переход по отключению. Далее определите зависимость этих приложений и ресурсы, которые им требуются для работы. Зависимые приложения нужно объединить в одну группу. Обратите внимание на то, что ресурс не может охватывать группы, поэтому если несколько приложений зависят от ресурса, они должны содержаться в одной группе или в одном виртуальном сервере, тогда будут использоваться одни и те же политики перехода по отключению и после восстановления.

Рисунок 5. Настройки сети для кластера

№5, май 2007

Приведу небольшой пример построения дерева зависимостей для ресурса 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» запускается процесс установки кластера, внешне схожий с уже описанным анализом конфигурации. После успешной установки должно открыться окно администрирова-

Рисунок 6. Двухузловой кластер

53


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

Добавляем узлы Рисунок 7. Новая группа

ния созданного нами нового кластера для дальнейшей работы.

Работа над ошибками При установке кластера могут возникнуть различные проблемы. Я опишу решение некоторых из них. Как правило, большинство проблем выявляются на этапе анализа конфигурации кластера. На рис. 4 показано, как это может выглядеть. Как видно, при анализе были обнаружены две ошибки, вернее, проблемы. Так как полоска Task Completed зеленого цвета, можно продолжать установку, но лучше сначала разрешить проблемы. Итак, что же было найдено в процессе анализа системы: n Не найдено кворум-устройство. Как уже обсуждалось ранее, оно представляет собой SCSI‑диск, используемый всеми узлами кластера. Если вы получили такое сообщение, проверьте правильность подключения к SCSI-шине серверов. Также проверьте наличие данного диска в разделе «Administrative Tools → Computer Management → Disk Management». n На сервере найден только один сетевой адаптер. Большинство промышленных серверов имеют две сетевые карты, так что это довольно редкая ошибка. Но если она появилась, то необходимо проверить работоспособность второго адаптера. В случае, если вы хотите использовать только один интерфейс, воспользуйтесь описанием из раздела «Добавляем узлы». Еще одной ошибкой, проявляющейся в процессе анализа, является динамическое присвоение IP-адресов сетевым адаптерам. Как я уже упоми-

54

му этапу – добавлению второго узла. Для этого на втором сервере также запускаем «Administrative Tools → Cluster Administrator». Только теперь выбираем «Add nodes to cluster» и указываем имя кластера. На следующем шаге прописываем имя сервера, который будет использоваться в кластере. Затем запускается анализ конфигурации. В случае завершения анализа без серьезных ошибок на следующем шаге указываем учетную запись, которая использовалась при создании кластера. Далее производится установка служб кластера на второй сервер. Полученный результат смотрите на рис. 6. На этом, собственно, сам процесс установки кластера заканчивается. В случае, если необходимо добавить еще узлы, достаточно проделать вышеописанные операции по добавлению сервера.

Теперь необходимо добавить узел в кластер. Но прежде сделаем несколько дополнительных настроек. В консоли Cluster Administration выбираем «Cluster Configuration», далее «Networks» (см. рис. 5). У каждого узла кластера два сетевых интерфейса, при этом один подключен к локальной сети (LAN), а второй используется для взаимодействия между узлами кластера (Heartbeat). Поочередно откройте закладку «Properties» для каждого из этих сетевых интерфейсов. Для LAN в свойствах необходимо указать «Client Access Only (public only)», а д ля Heartbeat выбираем Настраиваем ресурсы «Internal Cluster Communications Only Теперь необходимо подключить ресур(private network)». сы, которые будут использоваться в наТаким образом, теперь у нас ин- шем кластере. Как упоминалось в начале статьи, терфейс LAN будет использоваться только для внешнего взаимодействия, мы будем настраивать ресурсы для а Heartbeat – только для обмена ин- службы File Share. формацией между узлами кластера. Для этого мы сначала создадим Это позволяет увеличить быстродейс- новую группу на виртуальном серветвие системы вцелом. ре HOME. Только не забудьте также разграПеред созданием группы необхоничить сегменты на сетевом уровне. димо определиться с её расположениТо есть сегмент, содержащий соеди- ем. Можно, конечно, поместить ресурнения Heartbeat, должен быть подклю- сы в главную группу Clusters, но луччен в отдельный коммутатор или кон- ше сразу группировать в соответствии центратор (не в ту же физическую сеть с их предназначением. Тем более почто и LAN!) из соображений безопас- тому, что управление политиками пености и надежности. рехода по отключению осуществляетВ данном случае использование ся на уровне групп. концентратора может оказаться даже Поэтому для создания нашего репредпочтительнее, так как он не содер- сурса типа File Share нужно сделать жит кэш MAC-адресов, а сеть Heartbeat следующее: в данном случае используется только n создать группу, которая будет содля проверки доступности узлов и выдержать нужные ресурсы; бора нового в случае отказа. n создать ресурс типа Physical Disk; Если вы хотите использовать толь- n создать ресурс типа IP Address; ко один интерфейс, то укажите Internal n с оз д ать ресурс типа Net work and Client Access в свойствах LAN Name; и Heartbeat. При этом и LAN и Heartbeat n создать ресурс типа File Share. будут содержать один физический интерфейс. Начнем с создания кластерной Итак, мы оптимизировали настрой- группы. ки сетевых интерфейсов узла кластеД ля этого в консоли «Cluster ра и теперь переходим к следующе- Administrator» щелкните на папке


администрирование Третьим по списку мы должны со- так как полноценная аппаратная ре«Active Groups» для сервера, на котором будет находиться ресурс типа здать ресурс типа IP Address. ализация требует определенных, заПо аналогии с предыдущим разде- частую немалых, финансовых затрат. File Share, и выберите пункт «Group» в меню «New». Появится окно мастера лом выбираем пункт «Resources» в на- А с помощью виртуального кластера создания группы «New Group Wizard» шей группе, далее – «New». Указываем протестировать систему или подгото(см. рис. 7). тип ресурса – IP Address, затем – воз- виться к сертификационному экзамеДалее введите имя группы (File можные владельцы. ну можно без каких-либо дополнительВ следующем окне, Dependencies, ных расходов. Share) и описание (User’s folders). В следующем окне необходимо должен появиться уже созданный наК примеру, для того чтобы разверуказать предпочтительных владельцев ми ресурс Physical Disk. Но выбирать нуть двухузловой кластер на основе ресурса Preffered Owners. Здесь можно его не нужно, так как в данном случае VMware, мне достаточно было рабоуказать несколько узлов в зависимос- никакой зависимости нет. чей станции с 1 Гб оперативной паНа следующей странице необхо- мяти. И никаких внешних SCSI-дисти от их предпочтительности. К примеру, вполне логично в нача- димо указать настройки для IP-адре- ков, шумных серверов и прочей апле списка указать наиболее мощные са. Затем нажимаем «Finish». паратуры. и менее загруженные узлы кластера. Создадим ресурс типа Network Так что, если вас интересует реалиВ нашем случае необходимо вы- Name. Для этого необходимо еще раз зация кластеров на базе виртуальной брать узел и нажать «Add», затем ана- проделать все те действия, которые машины VMware, то рекомендую обралогично добавить Node 2. После на- мы выполняли ранее для других ти- титься к статье [3]. жатия кнопки «Finish» группа будет пов ресурсов. Но в разделе Dependencies теперь Заключение создана. Но обратите внимание на то, что необходимо указать зависимость от Итак, мы развернули отказоустойчисейчас она находится в автономном ресурса IP Address. вый двухузловой кластер и установили состоянии, так как с ней не связаны Приступаем к завершающему эта- разделяемый ресурс File Share. пу в создании кластерного ресурса никакие активные ресурсы. Однако одним из наиболее расТеперь пришло время создать ре- File Share. пространенных применений службы Повторим все те же действия, но при Microsoft Cluster Services является орсурс типа Physical Disk. Для этого щелкните правой кнопкой мыши на толь- указании зависимостей Dependencies ганизация кластеров почтовых сервеко что созданной группе и выберите необходимо выбрать все три элемен- ров MS Exchange. В следующей статье я подробно та списка. пункт «Resource». Заполните поля Name и Description Далее нажимаем «Next» и в окне рассмотрю процесс установки и наи выберите в раскрывающемся спис- File Share Parameters указываем имя стройки отказоустойчивой почтовой ке «Resource Type» вариант «Physical разделяемого ресурса и путь. системы Microsoft Exchange. В разделе Advanced можно укаDisk». На следующем шаге укажите воз- зать скрывать ли разделяемые ресур- 1. Рассел Ч. Microsoft Windows Server 2003. можных владельцев ресурса Possible сы-поддиректории. Справочник администратора. Разделяемый ресурс создан. Owners. Тут нужно указать те машины, 2. Бережной А. Строим сетевую инфраОбратите внимание на то, что которые могут содержать этот ресурс структуру на основе VMware Server. по умолчанию для ресурса File Share (Node1, Node2). //Системный а дминистратор, №3, Далее необходимо указать Depend- будут заданы полномочия Read Only. 2007 г. – С. 14-18. encies (зависимости). Сейчас страница Изменить эту установку можно в окне 3. Статья о развертывании кластера должна быть пустой, так как это пер- File Share Parameters. на VMware – http://www.rootpermissions. Итак, мы получили отказоустойвый ресурс в группе. net/Files/MS_Windows_2003_Cluster_ На следующем этапе указываем чивый ресурс в кластере и тем саon_VMware_GFX_3.rar. параметры диска (Disk Parameters). мым повысили доступность файлоВ раскрывшемся списке будут пред- вых ресурсов с помощью кластеров ставлены все ресурсы типа Physical Microsoft. Disk, которыми может управлять служКластеры в виртуальной ба кластера. Следует обратить внимание на тот реальности факт, что эта служба может управлять Последнее время все более широкое только базовыми дисками, но не ди- распространение получают виртуальнамическими, и все используемые ные машины [2]. Виртуальные машины помимо прослужбой кластера разделы этого диска должны быть отформатированы, чего чрезвычайно удобны при разракак NTFS. ботке и тестировании различных сисПосле указания диска нажмите тем, обучении и демонстрации. на кнопку «Finish», чтобы создать этот Эти свойства особенно полезны при работе с кластерными системами, ресурс.

№5, май 2007

55


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

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

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


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

О

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

Возьмём в качестве исходной следующую информацию: n В тестах будем использовать СУБД Oracle версии 10.2. для ОС Solaris. n СУБД настроена на работу в режиме АRCHIVELOG. n Рассмотрим 2 сценария восстановления: полного и неполного. n Будем исходить из того предположения, что мы восстанавливаем данные на тот же самый сервер (или точную копию рабочего сервера БД, на котором уже установлена ОС, ПО СУБД Oracle, все необходимые исправления и создана необходимая структура каталогов). n Для наглядности создадим отдельные архивы для файлов данных, управляющих файлов, файлов инициализации и паролей. n Выполним полную копию базы данных двумя способами:  с остановкой экземпляра (холодная копия);  без остановки работы экземпляра (горячая копия). n Расположение файлов базы данных имеет следующую структуру:  /ora /oracle/oradata /ORCL – файлы данных;  /ora/oracle/oradata/Redo-Ctrl/ replica0 – первая копия управляющих и журнальных файлов;

Листинг 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_SID copydir=${2};export copydir #Create lists of files. #Regular database files datalist=`sqlplus -s "/ as sysdba" <<EOF set heading off set pagesize 0 set linesize 300 set feed off select file_name from dba_data_files ; exit ; EOF` #Temporary files templist=`sqlplus -s "/ as sysdba" <<EOF set heading off set pagesize 0 set linesize 300 set feed off select file_name from dba_temp_files; exit; EOF` #Control files ( copy all ) controlist=`sqlplus -s "/ as sysdba" <<EOF

№5, май 2007

 /ora/oracle/oradata/Redo-Ctrl/ replica1 – вторая копия управляющих и журнальных файлов;  /ora/oracle/oradata/log – файлы архивных журналов. Сделаем полную копию БД двумя вышеуказанными способами: 1. Холодная копия (cм. листинг 1). Это самый простой пример, он применяется редко. Мы рассмотрим его в целях сравнения с более сложными примерами. $backuponl.sh ORCL /backup/hot

2. Горячая копия (см. листинг 2). Создаёт практически аналогичный набор файлов данных, за исключением того, что копии активных журналов redo делать не нужно. Сохраним в архиве одну копию управляющего файла и скрипт control.sql для его пересоздания. $backup.sh ORCL /backup/cold

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

set heading off set pagesize 0 set linesize 300 set feed off select name from v\\$controlfile ; exit ; EOF` #Online Redo logs. redolist=`sqlplus -s "/ as sysdba" <<EOF set heading off set pagesize 0 set linesize 300 set feed off select member from v\\$logfile ; exit ; EOF` # sqlplus "/ as sysdba" <<EOF shutdown immediate exit; EOF cd ${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 startup exit; EOF #

57


администрирование SQL> alter system switch logfile;

Затем будем стирать и восстанавливать из архива файлы, принадлежащие БД. Предполагаем, что архивные журналы имеются и доступны для восстановления в каталоге, указанном в параметрах db_recovery_file_dest/log_archive_dest.

Сценарий 1. Клонирование БД из холодной копии Допустим, нам необходимо запустить базу данных на компьютере с аналогичным программным обеспечением и дисками. Сделаем это с помощью холодной копии. Удалим все файлы базы данных: testcase$cd -exec testcase$cd -exec

/ora/oracle/oradata/ORCL;find . -type f ↵ rm -f {} \; /ora/oracle/oradata/Redo-Ctrl;find . -type f ↵ rm -f {} \;

Проведём восстановление: testcase$cd /backup/cold testcase$tar xvf control.tar testcase$tar xvf data.tar testcase$tar xvf dbs.tar testcase$tar xvf redo.tar testcase$dbstart

Это практически единственный случай, когда могут пригодиться копии активных (не путать с архивными) журналов базы данных. Во всех остальных случаях необходимо восстановление БД, и устаревшие копии уже не содержат актуальной информации. Гораздо важнее иметь полный (без пропусков) набор архивных журналов. На самом деле в данном случае активные журналы тоже не обязательны. Часто при создании копии рабочей базы нет необходимости запускать базу именно с опцией NORESETLOGS. Если есть холодная копия, но без копии журналов (файл redo.tar), после восстановления файлов из архива нужно сделать следующее: Листинг 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_SID copydir=${2};export copydir #Make lists of files for backup. #data files datalist=`sqlplus -s "/ as sysdba" <<EOF set heading off set pagesize 0 set linesize 300 set feed off select file_name from dba_data_files ; exit ; EOF` #Controlfile make one copy and one trace controlist=`sqlplus -s "/ as sysdba" <<EOF set heading off set pagesize 0 set linesize 300 set feed off select name from v\\$controlfile where rownum=1; exit ; EOF`

58

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 1 ORA-00289: suggestion : … Specify log: {<RET>=suggested | filename | AUTO | CANCEL} cancel Media recovery cancelled.

SQL>alter database open resetlogs; Database altered.

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

Сценарий 2. Полное восстановление из горячей резервной копии Смоделируем потерю файлов данных БД. Удалим файлы данных, но не управляющие и журнальные файлы: testcase$cd /ora/oracle/oradata/ORCL;find . -type f ↵ -exec rm -f {} \;

Проведём восстановление только файлов данных из горячей резервной копии (см. листинг 3): testcase$cd /backup/hot testcase$tar xvf data.tar testcase$recover.sh ORCL

В зависимости от версии базы данных и операционной системы может понадобиться пересоздать временный файл – это можно сделать, например, скриптом (см. листинг 4): testcase$tmprecov.sh ORCL controldir=`dirname $controlist` # sqlplus "/ as sysdba" <<EOF alter database begin backup; exit; EOF cd ${copydir} tar cvf data.tar ${datalist} # Init & passwd files 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 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 #


администрирование Сценарий 3. Восстановление файлов управления Если мы потеряли часть наших управляющих файлов, но сохранилась хотя бы одна копия из указанных в файле init.ora/ spfile.ora, нужно скопировать эту копию во все указанные местоположения (например, если пропали файлы в каталоге replica0, нужно скопировать их из каталога replica1). Если пропали все копии управляющих файлов, и только они, необходимо отредактировать файл control.sql (полученный при выполнении горячей копии БД, листинг 2) и выполнить пересоздание управляющего файла. Если такого скрипта мы заранее не создали, тогда нам остаётся только воспользоваться сделанными ранее копиями управляющих файлов: testcase$tar xvf control.tar testcase$cp control01.ctl ↵ /ora/oracle/oradata/Redo-Ctrl/replica0/control01.ctl … testcase$cp control01.ctl ↵ /ora/oracle/oradata/Redo-Ctrl/replica1/control03.ctl testcase$sqlplus "/ as sysdba" SQL>startup mount SQL> alter database backup controlfile to trace as ↵ 'control.sql' ; SQL>shutdown SQL>exit

Затем отредактировать и выполнить скрипт. Существует ещё один способ: скопировать текущий активный журнал в местоположение log_archive_dest в формате Листинг 3. Полное восстановление БД (файл recover.sh) #!/bin/sh # if [ $# -ne 1 ] then echo "script needs one parameter: \${ORACLE_SID}" exit; fi # ORACLE_SID=${1};export ORACLE_SID sqlplus "/ as sysdba" <<EOF startup 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 files templist=`sqlplus -s "/ as sysdba" <<EOF set heading off set pagesize 0 set linesize 300 set feed off select file_name from dba_temp_files; exit; EOF` for i in ${templist} do sqlplus "/ as sysdba" <<EOF alter database tempfile '$i' drop INCLUDING DATAFILES; ALTER TABLESPACE "TEMP" ADD TEMPFILE '$i' size 25M ↵ autoextend on; exit; EOF done

№5, май 2007

log_archive_format, выполнить неполное восстановление и открыть базу с опцией RESETLOGS (потери зафиксированных транзакций при этом не произойдёт, но нумерация архивных журналов начнётся сначала).

Сценарий 4. Восстановление БД при утере копии добавленного файла После выполнения резервного копирования был добавлен один файл базы данных (см. листинг 5), и впоследствии произошла поломка жесткого диска. А копии управляющего файла и нового файла данных мы сделать не успели. Если попытаться провести восстановление базы из существующих резервных копий, восстановление будет идти только до момента создания нового файла, после чего возникнет ошибка: 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 errors ORA-01244: unnamed datafile(s) added to control file by media recovery

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

Сценарий 5. Восстановление при потере активных журналов БД Если потеряны не все группы REDO, а только какая-то одна реплика REDO файлов БД, то остановки базы при этом не происходит. В этом случае журналы можно пересоздать или при перезагрузке скопировать файлы из одного каталога в другой. Если же мы потеряли все файлы REDO (или хотя бы как минимум активную группу), полное восстановление невозможно. Остаётся вариант неполного восстановления и последующий запуск БД с опцией RESETLOGS. В этом случае возможна потеря зафиксированных транзакций, и произойдёт сброс последовательности архивных журналов. Смоделируем ситуацию: testcase$dbshut testcase$cd /ora/oracle/oradata/Redo-Ctrl testcase$find . –type f -name \*.log –exec rm –f {} \; testcase$sqlpplus "/ as sysdba" SQL>startup mount SQL>recover database until cancel ... cancel

SQL> alter database open resetlogs; SQL>exit

Из этого примера видно, как важно иметь хотя бы две реплики активных журналов базы данных (redo log). В случае их уничтожения – потеря информации (пусть иногда и

59


администрирование Листинг 5. Восстановление БД при утере копии вновь добавленного файла и файлов управления (файл addfile.sh) #!/bin/sh # #Script for adding new dstsfile sqlplus "/ as sysdba" <<EOF alter tablespace users add datafile '/ora/oracle/oradata/ORCL/users02.dbf' size 20M; exit EOF Листинг 6. Неполное восстановление при потере активных журналов (файл nofile.sql) connect / as sysdba startup mount alter 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; fi sqlplus "/ as sysdba" <<EOF startup mount; alter database recover automatic using backup controlfile; alter database open resetlogs; exit; EOF

допустимая) неизбежна. Её можно лишь минимизировать, например установив параметр archive_lag_target (его минимальное значение – 60 секунд).

Сценарий 6. Восстановление только по резервной копии и архивным журналам Исходная БД погибла, остались резервная копия и архивные журналы. В данном случае, если нет специальных систем аппаратного зеркалирования управляющих файлов и журналов, возможно только неполное восстановление и последующий запуск с опцией RESETLOGS. Последовательность шагов во многом аналогична сценарию 2, но есть отличия: восстанавливаются не только файлы данных, но и управляющие файлы, файлы инициализации и паролей. testcase$tar xvf data.tar testcase$tar xvf control.tar testcase$tar xvf dbs.tar

Потом, поскольку активные журналы потеряны, произ-

60

водится неполное восстановление (см. листинг 7). БД открывается с опцией RESTLOGS. testcase$recovincomplett.sh ORCL

Итоги Подводя итоги рассмотренных сценариев, хотелось бы отметить основные моменты: 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://downloaduk.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).


bugtraq Переполнение буфера в 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) с сайта производителя.

№5, май 2007

Переполнение буфера в службе 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) с сайта производителя.

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

61


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

Мечты сбываются

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

В

сем известен сюжет пресловутой «американской мечты»: бедный юноша просыпается богатым и знаменитым после энного количества перипетий, бедная и гордая девушка выходит замуж за принца… И так далее и тому подобное. Является ли судьба миллиардера Майкла Делла, владельца одноименной компании, новой историей воплощения американской мечты? И да, и нет. В марте этого года на вручении мистеру Деллу награды с претенциозным названием «Патриот цифровых технологий» его коллега по сфере IT, президент Google, Inc. Эрик Шмидт сказал: «Майкл одновременно мечтатель и живой человек. В роли мечтателя он перестраивает промышленность. Как живой человек,

62

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

8 лет

Хочу заниматься делом В любом другом обществе над маленьким мальчиком, который решил закон-

чить школу экстерном как Майкл, просто бы посмеялись. Это что значит – «не желаю учиться в старших классах, в жизни хватает важных дел»? Но только не в Америке. В этой стране деловой подход приветствуется, и неважно, сколько тебе лет… У юного Делла, правда, не вышло сразу обойти такую глыбу, как государственное образование, но только потому, что родители были достаточно консервативными людьми. Сами они учились как положено – в школе, в вузе, получили уважаемые профессии ортодонта и брокера, и представляли, что сын пойдет по стопам отцам, тоже станет медиком. Однако Майкл оказался не просто упрямым мальчиком, но и целеустремленным. Параллельно с учебой он стал готовить себя к взрослой жизни. Торговал марками (заработал две тысячи долларов), продавал подписку на городскую газету Houston Post (заработал 18 тысяч долларов). Но главным событием его школьной жизни стало знакомство с персональным компьютером. Майкл Делл был семиклассником, когда в своей школе в Хьюстоне, штат Техас, он впервые попал к экрану монитора, и, по его словам, «был весьма восхищен тем, что мог дать новый инструмент». В пятнадцать лет Делл купил свой собственный комп фирмы IBM и «тут же разобрал его, потому что хотел узнать, как он работает». Итак, дело, о котором американец мечтал еще в раннем детстве, нашло своего героя! Как и в случае со школой, которая встала поперек славной биографии Делла, Майкл-пользователь компьютера, потребитель продукции компьютерной фирмы, а также клиент дилера, который продал ему машину, заметил несколько серьезных недостатков: «Первое – путь от производителя до потребителя очень долог, часто год и более. Второе – розничные компании неэффективны, продают компьютеры с весьма солидной наценкой. Третье – люди, продававшие компьютеры, зачастую почти ничего о них не знают, и, хуже того, не могут предоставить поддержки и сервиса. Может, у когото другой опыт, но это то, что я видел». Цитата современная, но юный Делл думал точно так же, иначе не стал бы разбирать сложную технику, купленную за свои кровные. Он просто знал, что благодаря множеству умных спра-


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

19 лет

Хочу быть знаменитым и богатым

Форд» модели «Т» сделал автомобиль доступным массам, Майкл Делл сделал то же с компьютерами

Пол Отеллини, президент Intel ните с цифрой 1991 финансового гоДелл вспоминает: «В 1984 году, в конце моего первого курса в университете Corporation: «Если бы Майкл не изоб- да – 546 миллионов), корреспондент Техаса я основал нашу компанию. Идея рел свою первую модель, бизнес был популярного делового издания «Fast была простой: продавать компьютеры бы намного меньше, персональные Company» Чарльз Фишман буквальнепосредственно потребителям. И мне компьютеры – намного дороже и до- но прорвался на интервью со звезповезло, что я жил в Америке, где но- ступны гораздо меньшему количест- дой сферы IT. Штаб-квартира компании Dell в Равые идеи могут пробиться, даже если ву людей в мире. «Форд» модели «Т» они исходят от 19-летнего юнца, поки- сделал автомобиль доступным массам, унд Роке была как непреступный форпост для «акул пера» с личными вопнувшего колледж». Реверанс в сторо- Делл сделал то же с компьютерами». Мег Уитмэн, президент eBay Inc.: росами. Но журналист как-то сумел ну системы ценностей родной страны вполне искренний: свобода предпри- «Компьютеры и Интернет стали потря- упросить уделить ему немного временимательства позволила Майклу со- сением для нашего поколения. Это яв- ни, и узнал кое-что о семье и привычздать фирму Dell Computer, выбиться ление столь же важное, как и промыш- ках Майкла. в люди и очень скоро доказать родите- ленная революция на рубеже веков лям, что он не зря покинул первый курс в смысле влияния на общество, обра- Опишите ваш рабочий день. биологического факультета Техасского зование, здравоохранение, на все важ- Встаю в 5.45 или 6. Зарядка. Бег. Или государственного университета. Через ные аспекты жизни общества. Компа- штанга. Или плавание. В 7.15-7.30 отвомного лет корреспондент спросил Дел- ния Dell, сам Майкл были на переднем жу детей в школу и еду на работу. ла: «Нет ли у вас чувства, что вы что-то крае этой революции. Сколько людей упустили, бросив колледж? Например, вы знаете, у которых есть персональ- Вы готовите детям завтрак? курс истории искусств?» – «Нет, не ис- ные компьютеры или ноутбуки компа- (Выглядит озадаченным.) Не совсем. Они знают, что им делать. Один раз торию искусств! Я был в колледже це- нии Dell? Практически у всех». Гэри Шапиро, президент CEA: «Он я испек им оладьи (смеется). Первая лый год, так что успел получить многое из того, ради чего люди поступают в вуз. корпоративный лидер, деловой лидер, порция была не очень, зато вторая Я полагаю, что, занимаясь тем, чем я за- лидер в области защиты окружающей уже лучше. В этом вся система Делла! Я всегнимался, я научился гораздо большему, среды, но одновременно – жесткий конкурент. Он настоящий новатор». да учусь на своих ошибках. чем если бы оставался студентом». Знаменитым – стал, богатым – неПриезжаю домой около 6.30 и проВ чем состоит революция, которую совершил техасский паренек Майкл сомненно. Он миллиардер и крупней- вожу время с семьей, ужинаю с детьми. Делл, хорошо известно: он предло- ший держатель акций собственной Я с этим хорошо справляюсь. Немного работаю с электронной жил своим клиентам, частным лицам компании. А ведь в такое сказочное буи организациям, компьютеры на заказ, дущее не верили ни родители, ни пер- почтой, пока дети готовятся ко сну. Читаю им что-нибудь на ночь и уклапод нужды каждого конкретного поку- вые партнеры по бизнесу… дываю их. Когда они ложатся, возврапателя, он значительно снизил цены, щаюсь к почте. Это прекрасное время убрав из системы продаж посредников, 36 лет для работы. Тихо. И все остальные тоон организовал систему мгновенного Хочу красавицу-жену, детей, же работают. сервиса. И теперь его партнеры дела- дом… ют ему комплименты, сильно смахива- В 2001 году, в зените славы, когющие на фрагменты учебника «Успеш- да продажи компании Dell взлетели А чем в это время занимается вадо 32 миллиардов долларов (срав- ша жена? ный бизнес, как его организовать».

№5, май 2007

63


человек номера Своей почтой. А я стараюсь лечь спать в 10.30. Вы не любитель телешоу? (Выглядит озадаченным.) Нет. Согласитесь, трудный собеседник. Ответы Делла лаконичны, а чувство юмора, замечает корреспондент, у него «пересохло». Майкл сбежал с интервью, обидевшись на какой-то шуточный вопрос. На мой взгляд, такой стиль поведения доказывает, что Майкл – счастливый муж и отец. Его супруга Сьюзен – симпатичная женщина, которая одновременно воспитывает четверых детей, старшему из которых всего 14 лет, производит женскую одежду, владеет бутиком в Остине и вместе с мужем занимается благотворительностью в Фонде Майкла и Сьюзен Делл, созданном для помощи детям из малоимущих семей по всему миру. Известно также, что Делл воспитывает своих отпрысков, во многом опираясь на свой деловой опыт, который изобилует не только розами, но и терниями. Они не ждут, что папа вручит каждому по паре миллионов долларов и позволит наслаждаться жизнью, наследники Делла понимают уже сейчас, что придется трудится, и серьезно. Майкл строг: «Когда я был ребенком, мои родители говорили, что я должен съедать все, что мне дают, так как в мире множество детей, которые голодают… Теперь я говорю своим детям, что они должны выполнять домашние задания, потому что в мире много детей, желающих занять их рабочее место!»

42 года

Хочу быть «впереди планеты всей» Сегодня «Делл» снова на пике популярности. Но повод скорее печальный – в фирме большие неприятности. Объемы реализации продукции сократились на 9%. Компания уступила место на компьютерном рынке основному конкуренту – Hewlett-Packard, которая на данный момент контролирует 17-18% рынка, а «Делл» – всего 14-15%. Фирма понесла большие убытки в связи с отзывом 4,1 миллиона дефектных аккумуляторных батарей Sony, которыми комплектовались ноутбуки. Да еще

64

и прокуратура штата Нью-Йорк заняВторая крупная идея вернувшеголась проверкой финансовой докумен- ся к практической деятельности Делтации за последние пять лет… ла – охрана окружающей среды. Делл В общем, Делл вернулся на пост заявляет: «Мы знаем, что каждый проглавы компании, поувольнял топ-ме- данный нами компьютер имеет четко неджеров, а оставшимся увеличил на- определенный срок жизни. Что происгрузки, отменил премии и намерен за- ходит с ним после того, как его переняться серьезными реформами внут- стают использовать? Если мы как отри отдельно взятой фирмы. расль промышленности производим В частности, ее имиджем. Похоже, около 250 миллионов компьютеров что времена, когда Майкла Делла счи- в год и, предположим, 125 миллионов тали застенчивым и неразговорчивым, из них идет на замену, то что происхоканули в Лету. Теперь он говорит охот- дит с теми ПК, которые перестают рано, в том числе и с журналистами. Он ботать? Ответ на этот вопрос неверообъясняет новые принципы работы Dell ятно важен для нашей окружающей и свои личные планы. среды. Мы взяли курс на экологичесИ эти самые планы, как всегда, кую ответственность нашей отрасли. грандиозные. Например, Делл наме- Мы – первая компания в нашей отрасрен возглавить, по крайней мере, на ли, рециркулирующая нашу продукцию идеологическом уровне, борьбу с так и продукцию наших конкурентов безназываемым «цифровым неравенс- возмездно и во всем мире». твом». Перед новым 2007 годом он «Рециркуляция» – переработка дезаявил: «Сегодня в мире около одно- талей, так, чтобы отходы не загрязняго миллиарда людей, использующих ли окружающую среду, а шли в дело. компьютер и подключенных к Интер- Этакий пионерский порыв к сбору манету. Это огромный прогресс. Но так- кулатуры, вернее, металлолома. Поже в мире живет шесть миллиардов, рыв серьезный, который волей-невокоторые не имеют возможности выхо- лей обязательно подхватят конкурендить во Всемирную сеть. Наш мир ста- ты Делла, как когда-то были вынужновится все теснее, и плата за отста- дены скопировать его прямую модель продаж. Это сейчас они сопротивлялость становится все выше. В то время как технологии помога- ются… «В январе я предложил всем ют делать мир богаче и комфортнее, производителям компьютеров в мире мы должны больше думать о тех шести присоединиться к нам в бесплатной миллиардах людей, которых надо под- рециркуляции ПК. Ну, мое предложеключить к Интернету. Бизнес и просто ние не нашло пока поддержки, но вреграждане играют важную роль в рас- мя еще есть, и сегодня я снова обраширении доступа к цифровым услугам. щаюсь ко всем коллегам в нашей отЭто не бремя и не социальная обязан- расли. Я уверен, что это нужно нашим ность. Это две возможности: улучшить потребителям и, что еще важнее, накачество жизни, делая технологии бо- шей планете». лее доступными, и, второе, расширить Майкл Делл еще себя покажет. Еснаш рынок. В этом может принять учас- ли по-прежнему его мечты будут глотие каждый». бальны и на, первый взгляд, нереальДелл ждет, когда население Сети ны и если не перестанет быть смельдостигнет двух миллиардов. Произой- чаком, которому по плечу любые зададет это, считает американский бизнес- чи. В том числе работа над ошибками мен, за счет стран с быстро растущи- своих сотрудников. ми и развивающимися рыночными экономиками. В этот список входит и Рос- 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 Стоимость этой машины – всего 335 +as+CEO+Rollins+resigns/2100-1014_3долларов. Так что вклад в уничтоже6155185.html. ние цифрового неравенства Деллом Оксана Родионова сделан серьезный.



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

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

Артем Баранов За всю историю своей эволюции ядро NT постоянно развивалось. Ему прививались различные технологии защиты. О внутреннем устройстве этих технологий известно немного. А между тем они серьезно различаются как от версии к версии NT, так и на разных машинах. К тому же они далеко не совершенны, что и подтверждается растущим числом атак на ядро.

66


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

Я

дро операционной системы – это тот программный модуль или набор модулей, который предоставляет минимум базовых возможностей операционной системы, без которых она работать не может. Также ядро ответственно за распределение ресурсов, что является одной из важнейших функций операционной системы. Поэтому если целостность ядра нарушается, нарушается работа всей системы. Соответственно ядру нужно предоставить какой-то уровень защиты, чтобы драйверы, содержащие в себе «жучки», не смогли бы повредить код или данные ядра операционной системы. На Intel x386 NT может работать в пользовательском режиме и режиме ядра. Соответственно потоки самой ОС работают в привилегированном режиме, а потоки приложений – в пользовательском режиме. Таким образом, из четырех уровней защиты процессора NT пользуется только двумя. В x386 режим работы процессора характеризуется селектором в регистре CS, а точнее, его первыми двумя битами, которые и определяют CPL кода. Пользовательские приложения для перехода в нулевое кольцо используют либо инструкцию int 0x2e, либо оптимизированную sysenter. Сам код, который эти инструкции и вызывает, расположен на Native-уровне, т.е. между ядром и подсистемой Win32 (см. рис. 1). Так было сделано с расчетом на то, чтобы можно было подключать другие подсистемы, например POSIX. И вызов, специфичный для конкретной ОС (подсистемы), а точнее, его семантика, должны полностью совпадать с аналогичным вызовом в самой ОС (например, семантика fork должна быть такой, какой она регламентирована в самом стандарте POSIX для UNIX). В момент запуска приложения подсистема Win32 формирует для контекста первичного потока необходимые селекторы (с RPL равным 3) и передает эту информацию ntdll.dll. Структурно ядро разделяется на исполнительную систему Executive и ядро. Так было сделано специально для изоляции кода, работающего с конкретной аппаратно-зависимой конфигурацией. Этот код и вынесен в ядро.

№5, май 2007

Thread execution

Thread execution

Nt call

Nt call

int 0x2e sysenter

int 0x2e sysenter

Win32 layer (kernel32, user32, gdi32, advapi32)

Native layer (ntdll)

Executive layer (ntoskrnl, Win32k)

Hal call

HAL layer (hal)

Рисунок 1. Обработка системного сервиса NT 0xC0300000 PDE0

0xC0000000

PDE1

0xC0001000

PDE2

0xC0002000

PDE3

0xC0003000

… PDE511

0xC01FF000

PDE512

0xC0200000

PDE513

0xC0201000

PDE514

0xC0202000

0xC0300004 0xC0300008 0xC030000C

Page Table 0, VPN: 0x0 – 0x3FF Page Table 1, VPN: 0x400 – 0x7FF Page Table 2, VPN: 0x800 – 0xBFF Page Table 3, VPN: 0xC00 – 0xFFF

0xC03007FC 0xC0300800 0xC0300804 0xC0300808

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 Мб

Executive и ядро располагаются в одном файле – ntoskrnl.exe. Идентификация же функций ядра от функций Executive может осуществляться по префиксам функций, например, префикс названий функций ядра – Ke, а экспортируемых сервисов Executive – Nt. Нужно понимать, что в ядро вынесен код, работающий с конкретным процессором, но не с оборудованием. Для изоляции самого ядра от специфики конкретного оборудования каждая версия NT для конкретной платформы располагает своим уровнем абстрагирования от оборудования (Hardware Abstraction Layer), который реализует специфичные функции по поддержке, например ввода/вывода для портов. В современном мире ядро должно рассматривать окружающую среду как опасную и готовую к вторжени-

ям. Загруженный драйвер может делать с ядром что угодно, в том числе модифицировать код, важные структуры данных. С момента выхода Windows 2000 Microsoft решила адаптировать системы защиты ядра на новый уровень и попытаться защищать не только код NT, но и критические процессорно-зависимые данные. Действительно, на момент выхода Windows 2000 достаточно было системы защиты, которая обнаруживала бы перезапись кода ядра или кода драйверов устройств в отличие от NT 4.0, в которой этого не было. Но сегодня этого уже недостаточно. Растет процент вирусов, которые реализуют LKM-атаки на ядро (т.е. модифицируют системные таблицы, списки). Соответственно нужно выходить на новый уровень защиты.

67


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

Write-Protected System Code

Рисунок 3. Главное окно Driver Verifier

Рисунок 4. Окно выбора драйвера, подлежащего проверке

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

Как и что нужно защищать Защита структур данных ОС не может быть обеспечена только программно. Соответствующая поддержка должна быть и со стороны процессора. ОС должна защищать свои структуры данных и программный код ядра. Ядром NT является файл Ntoskrnl, который и содержит важнейшие для работы ядра структуры данных и его код. Собственно, такие структуры и должны быть защищены. В x386 с линейной моделью памяти NT это может быть сделано на уровне страниц. Однако нужно понимать, что не все структуры данных могут быть защищены, а лишь данные образа.

68

Начиная с 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


безопасность 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.

Рисунок 5. Окно выбора настроек для проверяемого драйвера

Защита инициализируется при загрузке системы, причем чрезвычайно неявно, это является следствием того, что разработчики защиты старались максимально усложРисунок 6. Уже существующие настройки Driver Verifier нить отладку системы защиты. В результате функции, отвечающие за инициализацию защиты, имеют названия, не вы- а для IDT – PgCreateIdtSubContext, в которых и вызываетдающие их истинного назначения. Например, защита ини- ся PgCreateBlockChecksumSubContext. Аналогичная ситуация и с SSDT. Ее контрольную сумциализируется обычной функцией деления со специальным значением, которое приводит к переполнению (переполне- му создает та же PgCreateBlockChecksumSubContext. Кроние генерируется, если при делении 64-разрядного операн- ме того, эта функция вызывается и для создания защиты да на 32-разрядный результат не является 32-разрядным, таблицы дескрипторов – KeServiceDescriptorTable. В 64-разпроцессоры AMD64), в результате чего генерируется исклю- рядной системе эта таблица хранит не настоящие смещечение, а обработчик исключения – KiDivideErrorFault – уже ния функций в линейном адресном пространстве, а их смещения относительно самой KiServiceTable. Таким образом, вызывает функцию инициализации защиты. Patch Guard создает служебные структуры данных, в ко- чтобы получить адрес функции, на которую есть указатель торых хранит контрольные суммы проверяемых компонен- в SSDT, нужно сложить адрес KiServiceTable со значением тов, причем структуры создаются не для всего проверяе- индекса в этой таблице. мого объекта, а только для отдельной его части. Например, в случае с проверкой на валидность образов ядра созда- Технологии интеграции защиты ются отдельные структуры для IAT, самих разделов и ди- на примере Driver Verifier Ядро NT поддерживает верификацию (проверку) драйверектории импорта. Сердцем защиты является функция, создающая кон- ров на предмет ошибок работы с памятью, IRQL и пр. Татрольные суммы структур, подлежащих верификации – кая технология получила название Driver Verifier. Для разPgCreateBlockChecksumSubContext. Эта функция вызыва- работчиков драйверов она более известна не как техноется как для создания таких контрольных сумм, как GDT, логия, а как программа, позволяющая своевременно обнаруживать ошибки в драйверах. Между тем хотя пользоIDT, так и для IAT ntoskrnl. Так как Windows XP поддерживает и многопроцес- вательская часть Driver Verifier и функционирует в польсорные системы, то ядро способно хранить контроль- зовательском режиме, свои возможности она реализует ные суммы IDT, GDT для каждого процессора отде- в режиме ядра. Кроме того, в тесной интеграции с Driver льно. Для получения адресов IDT, GDT ядро использу- Verifier работают: диспетчер памяти, диспетчер ввода-выет функцию KeSetAffinityThread, привязывая таким обра- вода, Win32k и HAL. Таким образом, проверка драйверов зом поток к конкретному процессору. После того как ад- напрямую интегрирована в ядро. Пользовательская ее реса таблиц получены, ядро вызывает для инициали- часть лишь записывает в реестр значения нужных паразации защиты GDT функцию PgCreateGdtSubContext, метров, которые считываются ядром при загрузке систе-

№5, май 2007

69


безопасность мы. Поэтому при изменении настроек верификации необ- n Display information about the currently verified drivers (отобразить информацию о проверяемых драйвеходима перезагрузка. рах) – выводит статистику по результатам мониторинЯдро хранит настройки Verifier в разделе реестра, кога для конкретного драйвера (например, сколько байт торый ответственен за хранение настроек диспетчера павыделено в пуле), а также отображает глобальные счетмяти – HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ чики использования ресурсов. Control\Session Manager\Memory Management. Поэтому первое, что делает Driver Verifier при вызове функции отобНастройки Driver Verifier, используемые чаще всего: ражения существующих настроек, открывает этот раздел и сканирует ключевые параметры, среди которых: VerifyDriverLevel и VerifyDrivers. Первый параметр содержит Special Pool (особый пул) битовую маску включенных проверок для драйверов, а вто- Позволяет контролировать ошибки buffer overrun/underrun. рой содержит список драйверов для верификации. Проана- При резервировании драйвером буфера в пуле управлелизировав эти поля, программа выводит в окне статисти- ние передается Driver Verifier, который перенаправляет этот запрос на резервирование в выделенный регион (особый ку (см. рис. 6). Сам же Driver Verifier рассредоточен по ядру и всегда пул), далее размер буфера округляется до размера, кратначинается с префикса Verifier. Например, VerifierAllocate ного размеру страницы, и «прижимается» к верхним адреPoolWithTag. Активация Driver Verifier происходит следую- сам страницы таким образом, чтобы последний байт буфещим образом: на ранних этапах загрузки, когда диспетчер ра был последним байтом страницы. Это сделано для топамяти считывает свои настройки из реестра, он также про- го, чтобы можно было обнаруживать ошибки buffer overrun, сматривает параметры Driver Verifier, если в списке есть про- при которых драйвер пишет по неуправляемому указатеверяемые драйверы, то он сравнивает имена загружаемых лю за границу выделенного буфера, т.е. по старшим адредрайверов с драйверами из этого списка: проходя по образу сам. Страницы, находящиеся выше буфера (т.е. по более драйвера, заменяет ссылки на функции ядра на свои функ- старшим адресам), Driver Verifier делает недействительныции. Так, ExAllocatePool заменяется на VerifierAllocatePool, ми, чтобы «жучок» драйвера сразу же привел к возникноKeRaiseIrqlToDpcLevel на VerifierKeRaiseIrqlToDpcLevel, вению нарушения доступа. Таким образом, сразу же можно KeAcquireSpinLockAtDpcLevel на VerifierKeAcquireSpinLock будет указать на драйвер, который сгенерировал ошибку. AtDpcLevel. Перехватывая функции ядра, Driver Verifier спо- В противном случае драйвер перезаписал бы служебную собен проводить проверки на корректность действий драй- структуру данных, а ее некорректность обнаружилась бы веров. Например, для обнаружения одной из самых распро- в контексте совершенно другого потока (см. рис. 7). страненных ошибок: buffer overrun/underrun, когда драйвер содержит в себе «жучок», вылетающий за границы буфера. Force IRQL Checking (обязательная проверка IRQL) Driver Verifier служит для обнаружения ошибок, которые до- Самая распространенная ошибка в коде режима ядра – пускают программисты при индексации буферов. Для этого это когда драйвер пытается перераспределить процессорDriver Verifier выделяет себе из пула регион, в который пере- ное время на высоких IRQL (т.е. DPC/Dispatch или одном направляет все запросы на выделение памяти. Для запус- из DIRQL). Если такая ситуация происходит, то в очередь ка Driver Verifier наберите в «Пуск → Выполнить» команду DPC ставится запрос к диспетчеру, чтобы тот переключил контекст. При этом так как DPC обрабатываются на том же verifier. При этом вы увидите окно, подобное рис. 3. При этом вам необходимо выбрать из списка задачу уровне (в случае с текущим IRQL==DISPATCH_LEVEL) или, тем более, при DIRQL, то переключение контекста будет для Driver Verifier. Доступны следующие задачи: n Create standart settings (создать стандартные на- маскироваться до тех пор, пока DPC к диспетчеру не будет стройки) – при этом Driver Verifier автоматически за- изъято из очереди. Суть ошибки заключается в том, что есдаст часто используемые настройки для проверки, а вам ли драйвер инициирует перераспределение процессорного необходимо выбрать только драйвер(ы) для проверки времени на таком высоком уровне IRQL, то возникнет противоречивая с точки зрения ядра ситуация, при которой по(см. рис. 4). n Create custom settings (создать выборочные настрой- ток должен ждать, но планировщик не может вытеснить его ки) – при этом Driver Verifier позволяет вам задать необ- с процессора, так как сам при таких высоких IRQL маскируется. Инициирование перераспределения процессорного ходимые настройки (см. рис. 5). n Delete existing settings (удалить существующие на- времени может быть как явное, так и неявное. Явное, напристройки) – удаляет все настройки Driver Verifier и выхо- мер, когда драйвер сам вызовет KeWaitForSingleObject при высоком IRQL. Неявное – это попытка обращения к виртудит из программы. n Display existing settings (отобразить существующие альной странице, не спроецированной на физическую (нанастройки) – выводит окно с драйверами, подлежащими пример, в нерезидентном пуле). Как только поток сгенерирупроверке, и настройки, применимые к ним (см. рис. 6). ет ошибку страницы, это повлечет за собой операцию вводавывода для подкачки страницы с диска, а это в свою очередь повлечет к блокированию потока и вытеснению его с проinvalid page invalid page rand driver buffer цессора (поток попадает в очередь ждущих), при этом проVPN 0 VPN 3 исходит переключение контекста на другой поток. Во всех случаях вызов диспетчера на высоких IRQL повлечет за соРисунок 7. Таким образом Driver Verifier предотвращает бой STOP-ошибку: IRQL_NOT_LESS_OR_EQUAL. В случае ошибки переполнения

70


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

ти. При включенном DEP для 32‑разрядной Windows XP последняя будет работать в PAE-режиме (т.е. параметр /PAE в boot.ini будет установлен). Соответственно, будет использована PAEверсия ядра и процессор также будет работать в PAE-режиме. В 64-разрядной версии (с соответствующей поддержкой со стороны процессора) DEP применяется ко всем 64-разрядным программам и драйверам, а также к страницам стеков потоков. Однако в 32-разрядной версии защита применяется только к страницам с данными в польDEP зовательском режиме (включая стеки Не секрет, что самомодификация в потоков). При активации DEP в boot.ini NT является простым делом. Доста- заносится параметр /NOEXECUTE. Таточно поменять атрибуты страницы ким образом, когда ntldr передаст упна PAGE_WRITE, как код сразу же мож- равление ядру, последняя будет знать, но править. Хотя в макросах, предна- что DEP включена. Рисунок 8. Диалоговое окно, управляющее значенных для защиты страниц, и преЗащитой можно управлять и из санекоторыми настройками DEP дусмотрены специальные атрибуты ти- мой Windows. Для этого нужно перейпа PAGE_EXECUTE, но все зависит от ти: «Пуск → Панель управления → Сис- ром, и следы его деятельности ниаппаратной платформы и тех атрибу- тема → Дополнительно → Параметры как не проверяются. Возможно даже, тов защиты страниц, которые она пре- быстродействия → Предотвращение что сам руткит пройдется по PTE, кодоставляет. В x386 в PTE существует выполнения данных». При этом вы уви- торые адресуют фреймы страниц кода ntoskrnl, и установит у них бит Write, один бит, предназначенный для конт- дите окно как на рис. 8. роля вида доступа. Сброс или установЭти два параметра влияют на по- отключая таким образом защиту сиска этого бита не влияет на то, будет вы- ведение DEP для 32‑разрядных про- темного кода от записи. Структуры данных, создающиеся полняться код на странице или нет. грамм. Верхний параметр говорит С Windows XP SP2 и Windows Server о том, что DEP будет применяться толь- и уничтожающиеся в пулах, вообще не2003 SP1 Microsoft стала продвигать ко к программам самой Windows. Ниж- льзя контролировать на запись, чтение, технологию Data Execution Prevention ний параметр говорит о включении так как пул управляется не страницами, (DEP), которая, разумеется, базируется DEP для всех 32‑разрядных программ, а из него возможно выделение данных на аппаратной поддержке. Intel и AMD кроме тех, что добавлены в список. Об- произвольного размера. Хотя и здесь ввели для своих процессоров новые би- ратитесь к документации по своему ядру можно привить некоторую интелты защиты страниц. Для AMD функция процессору, чтобы определить, под- лектуальность. Если бы ядро изначально было построено как защищенное называется no-execute page-protection держивает он DEP или нет. (NX), а для Intel – Execute Disable Bit Кроме редактирования DEP че- и контролировало бы доступ к своим (XD). Попытка выполнить код на стра- рез Панель управления, вы также мо- структурам данных, то ничего не мешанице с таким атрибутом приведет к ге- жете вручную отредактировать файл ло бы системе выделять себе структунерации исключения процессором. boot.ini, задав необходимые значения ры данных на отдельной странице пуNT также применяет эту защиту к сте- в форме /noexecute=value, где value ла и контролировать обращения к ней. кам потоков, что блокирует действия может принимать значения указан- Контроль обращения в нерезидентном пуле можно организовать, специальмногих червей и Shell-кода, которые по- ные в таблице. но выводя из системного рабочего налучают управление через стек. бора фреймы страниц со структурами. DEP работает по-разному на раз- Заключение ных машинах. Это зависит не толь- Ограничение существующих методов Затем, когда происходит #PF на страко от платформы, но и от версии NT очевидно в том, что, как только в ре- нице, то сравнить содержимое в стеке, (32‑или 64-разрядная). При этом сле- жиме ядра запускается вредоносный сохраненного регистра EIP, на диападует учитывать некоторые особеннос- код, он также по сути становится яд- зон принадлежности ntoskrnl; если он входит в диапазон, то само ядро обраЗначение value в файле boot.ini щается к структурам данных. Значение Описание Несмотря на все эти методы защиИспользуется по умолчанию. Включает DEP для системных программ на компьютерах с аппаратной ты, здесь скорее нужен другой приOptIn поддержкой DEP нципиальный подход. Например, заOptOut DEP включена для всех процессов, кроме тех, что указаны в списке (см. рис. 8) пуск только проверенного (подписанAlwaysOn DEP включена для всей системы (в том числе и для всех процессов) ного) кода режима ядра, как это сдеAlwaysOff DEP отключена для всей системы, независимо от аппаратной поддержки лано в Vista.

№5, май 2007

71


bugtraq Множественные уязвимости в 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. Некорректное использование функции «SetSecurityD escriptorDacl()» может позволить удаленному пользователю выполнить произвольный код на целевой системе. 11. Уязвимость существует из-за отсутствия проверки аутентификации в Oracle Intelligent Agent. Удаленный пользователь может выключить уязвимый агент. 12. Уязвимость существует из-за ошибки проверки границ данных в пакете DBMS_CDC_IPUBLISH. Удаленный пользователь может с помощью слишком длинного параметра CHANGE_TABLE_NAME вызвать переполнение стека и выполнить произвольный код на целевой системе. URL производителя: www.oracle.com. Решение: Установите исправление с сайта производителя.

72

Выполнение произвольного кода в 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. Решение: Установите последнюю версию с сайта производителя.


bugtraq Множественные уязвимости в 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 с сайта производителя.

Несколько уязвимостей в 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) с сайта производителя.

№5, май 2007

Множественные уязвимости в 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) с сайта производителя.

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

73


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

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

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

С

егодня существует большое Возможности m0n0wall количество решений, как ап- Задачу, которую поставил перед сопаратных, так и программных, бой автор m0n0wall Маньюэл Каспер позволяющих превратить обычный (Manuel Kasper), кратко можно сфорПК в межсетевой экран, работающих мулировать так – создание полноценпод разными операционными систе- ного межсетевого экрана, по функцимами, отличающимися стоимостью ональности не уступающего коммери лицензией. ческим решениям, легкого в настройКрупные организации могут себе ке и простого в использовании, но при позволить использовать такие продук- этом бесплатного. ты, как ISA 2006 Server. Но стоимость В качестве основы послужила последнего вместе с операционной FreeBSD. Поначалу m0n0wall предсистемой для средних и тем более не- ставлял собой простой веб-интербольших компаний будет значительной фейс для фильтра пакетов, первая бета-версия которого появилась в 2003 расходной статьей в бюджете. В этом случае на помощь могут году. Полноценный анонс состоялприйти специализированные реше- ся в начале 2004 года после более 20 ния на базе свободных операционных предрелизов. систем. Они просты в настройке, неСейчас архитектура m0n0wall знатребовательны к системным ресурсам чительно переработана. Для большей и в большинстве случаев бесплатны. гибкости интерфейса все системные В журнале уже шла речь о неко- настройки сохраняются в файле форторых реализациях [1, 2, 3], проект мата XML, во время загрузки вместо m0n0wall [4] предлагает решение, с ко- привычных сценариев оболочки исторым стоит познакомиться. пользуется PHP.

74

Актуальной на момент написания статьи версия m0n0wall была 1.23. Ее размер составляет менее 6 Мб. И это при том, что в его состав помимо необходимых для работы ядра и пользовательских утилит включены: легкий вебсервер, поддерживающий PHP, сервер DHCP, кэширующий DNS Dnsmasq и для обновления DNS-таблиц ezipupdate, 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 можно ис-


безопасность пользовать Flash-карту, жесткий диск или привод компакт-дисков. В последнем случае все настройки автоматически сохраняются на вставленной дискете, и при перезагрузке конфигурация восстанавливается. Кроме стандартной x86 PC-платформы, m0n0wall поддерживает встроенные системы: net45xx/net48xx от Soekris Engineering (www.soekris.com) и WRAP (Wireless Router Application Platform) от PC Engines (www.pcengines.ch). Последние две платформы весьма интересны, занимают мало места, малошумны, экономичны и надежны, так как большинство из них не имеет жесткого диска (движущихся частей). Распространяется m0n0wall под собственной лицензией, разрешающей использование и модификацию исходного текста, без какого-либо ограничения, но при условии, что будет оставлено авторское соглашение.

Записываем образ

Рисунок 1. Статус работы m0n0wall

навливать образ. Под Linux вводим такую команду: # gunzip -c generic-pc-1.23.img | ↵ dd of=/dev/hdb bs=16k

Минимальные требования m0n0wall – Аналогично устанавливаются обэто компьютер с процессором i486-100, ОЗУ 64 Мб, 2 и более сетевых карты, разы для Soekris и WRAP. В случае поддерживаемые FreeBSD 4.11, жес- с CD‑ROM просто записываем образ ткий диск или карта Flash с IDE-ин- и загружаемся. терфейсом размером не менее 8 Мб. Если BIOS поддерживает загрузку Установки из консоли с CD‑ROM, то можно выбрать и этот ва- Теоретически к системному блоку можриант. Сравнив системные требования но не подключаться вообще, а зайс подобными дистрибутивами, можно ти сразу удаленно через webGUI, отувидеть, что m0n0wall очень требова- куда и произвести все необходимые телен к объему ОЗУ. Объясняется это действия. Установки по умолчанию просто: m0n0wall ориентирован на ра- весьма рациональны, и m0n0wall выботу с Flash, которые критичны к коли- полняет основную свою задачу из кочеству циклов записи/перезаписи. По- робки, без какого либо дополнительэтому обращение к носителю сокраще- ного вмешательства. Так LAN‑интерно до минимума. После загрузки образ фейс будет использовать IP‑адрес помещается в ОЗУ, обращение к носи- 192.168.1.1/24, на нем будет запущетелю идет только во время сохранения на служба DHCP, раздающая адреконфигурации и обновления системы са в диапазоне 192.168.1.100–199. Исили программного обеспечения, вхо- пользуется перенаправление DNS-запросов (адреса DNS-серверов берутся дящего в его состав. При загрузке дистрибутива сле- при DHCP‑подключении WAN), поэтодует выбрать образ под используе- му внутренние системы могут испольмую систему или вариант использо- зовать m0n0wall в качестве DNS-сервания. В случае с ПК это generic-pc вера. Интерфейс WAN получает адрес (жесткий диск, Flash) или CD‑ROM. по DHCP. Внешний трафик блокируетВ первом случае для переноса обра- ся, весь поступающий из LAN, наобоза на диск при работе в Windows ис- рот, разрешен. Для внутренней сети пользуем утилиту physdiskwrite.exe, включен NAT. Доступ к webGUI разрекоторая доступна на сайте. Для чего шен только из LAN. Часовой пояс устав командной строке необходимо ввес- новлен в Etc/UTC, периодически произти «physdiskwrite generic-pc-1.23.img» водится синхронизация времени с сери затем указать, на какой диск уста- вером pool.ntp.org.

№5, май 2007

Проблема здесь одна, часто весьма проблематично определить, какой из интерфейсов m0n0wall посчитал за LAN. Особенно если на компьютере установлено несколько однотипных сетевых карт, отличающихся только сетевыми адресами. Загрузка происходит очень быстро (около 40 секунд), за выводимой информацией уследить трудно. В этом случае можно подобрать имя сетевой карты экспериментально. Обычно номера картам присваиваются, начиная от процессора, хотя мне встречался вариант, когда m0n0wall поступил с точностью наоборот. После загрузки в консоли будет выведено следующее меню: LAN IP address: 192.168.1.1 Port configuration: LAN -> sis0 WAN -> sis1 m0n0wall console setup ********************** 1) Interfaces: assign network ports 2) Set up LAN IP address 3) Reset webGUI password 4) Reset to factory defaults 5) Reboot system 6) Ping system

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

75


безопасность ed0 00:30:4f:2a:6b:16 (up) vr0 00:30:4f:2a:6b:16

Вот и все. Если с внешнего компьютера активированный интерфейс не пингуется, следует переключить кабель или переназначить интерфейс. Будут заданы вопросы о том, будем ли использовать VLAN, какой интерфейс ему назначить: Do you want to set up VLANs now? (y/n) n

Затем LAN и WAN: Enter the LAN interface name or 'a' for auto-detection: ed0

Следует ввес ти название ин терфейса либо нажатием «a» попробовать найти его автоматически (без проблем работает только когда остался один не занятый). Это обязательно. Также m0n0wall позволяет использовать интерфейсы, обозначенные как Optional с номером. Впоследствии ему можно дать любое другое название (например, DMZ). По окончании настройки последует перезагрузка; если для работы используется CD‑ROM, вставьте дискету, иначе все придется повторять сначала. После перезагрузки в пункте 2 можно указать другой сетевой адрес и сетевую маску (в CIDR) для LAN, а также включить или отключить DHCP. Проверить правильность установок можно, выбрав пункт 6 и пропинговав любую систему в сети. Назначение пунктов 3, 4 и 5, я думаю, понятно.

Рисунок 2. Настройка WAN

76

Настройки 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», чтобы они вступили в силу. Для того чтобы сделать правила более читабельными, следует ис-


безопасность пользовать псевдонимы (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-адре-

Рисунок 3. Правила брандмауэра

са. Сначала заходим в Pipes, нажима- TOS, флаги ТСР и другие параметры ем «+» и создаем новое правило. Вво- (большинство которых не являются дим в Bandwidth значение максималь- обязательными). Обратите внимание ной полосы, параметры Delay и Packet на наличие флажка «not» в некоторых loss rate в большинстве случаев стоит позициях. С его помощью можно соустановить в 0, а поле Queue size оста- здавать исключения, например, огравить пустым. Поле Mask устанавлива- ничив канал для всех, кроме шефа, усем в source или destination (входящий тановив IP-адрес его компьютера в поили исходящий). Нажимаем «Save», ле Source и активировав not. в Pipes появится новое правило. ТеДля разрешения просмотра статисперь в Rules, в котором необходимо тики и изменения некоторых параметпривязать созданное правило к источ- ров самими пользователями в «User нику. Нажимаем «+» и попадаем в ок- manager», можно создать группы но «Edit Rule». Выбираем в раскрываю- и включить в них пользователей. Анащемся списке Target созданное в Pipes логично производятся и остальные направило, затем указываем интерфейс, стройки. Как видите, это несложно. протокол, источник, порт, направление, Дистрибутив m0n0wall представляет собой мощный и удобный в использовании продукт, позволяющий организовать совместный доступ в Интернет пользователям нескольких сетей и защитить их от нападения извне. Настроить его сможет любой администратор, понимающий конечную цель и необязательно разбирающийся в особенностях UNIX-систем.

Рисунок 4. Сайт проекта m0n0wall – http://m0n0.ch/wall

№5, май 2007

1. Яремчук С. Роутер без диска. //«Системный администратор», № 9, 2004 г. – С. 8-9. 2. Яремчук С. Маленький линукс в качестве firewall. //«Системный администратор», № 9, 2003 г. – С. 24-32. 3. Яремчук С. Сетевой полицейский. //«Системный администратор», № 1, 2005 г. – С. 42-45. 4. Сайт проекта m0n0wall – http://m0n0.ch/ wall.

77


IP-телефония

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

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


IP-телефония

В

одном из писем своим компаньонам Александер Грэм Белл История разработки 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, раболее чем 100 лет все значимые из- ботающая с тех пор над самим протоколом менения, происходившие с телефон- и его расширениями. В июле 2000 года был ной станцией, касались именно теле- опубликован RFC 2543 «bis», содержащий фонной станции. И лишь в эпоху Ин- множественные поправки и улучшения тернета стало возможным говорить к оригинальной спецификации. Этот докуо действительно новом направлении мент лёг в основу RFC 3261 (2002 года), являющегося и на сегодняшний день основкоммуникаций. Путь будущего развития комму- ным SIP RFC. Заметьте, что номер версии никаций лежит через разделение ло- всё ещё равен 2.0. Постепенно были образованы и другие гики работы сетей и предоставления услуг. Новые услуги будут предостав- рабочие группы IETF, работа которых так ляться опорной сетью, т.е. независимо от сети доступа. Таким образом, в лю- Protocol/Multiprotocol Label Switching), бом месте, при использовании любо- подключения корпоративных клиенго метода доступа к сети и с любого тов, управления вызовами и обслуоконечного устройства пользователь живания клиентских устройств – и всё может обращаться к одним и тем же это, как правило, с меньшими затратауслугам. В опорных сетях уже сейчас ми в сравнении с сетями TDM. Происходящие в последние годы происходит переход от сетей с коммутацией каналов и мультиплексирова- изменения на мировом рынке услуг нием с разделением по времени (Time- телефонной связи сравнимы по своdivision Multiplexing, TDM), на которых ей значимости с переходом телефореализована вся традиционная теле- нии на автоматическую коммутацию. фония, к пакетным сетям. Дополня- Эти изменения не в последнюю очеет картину Fixed Mobile Convergence – редь связаны с появлением так назыидея интеграции функционала мо- ваемых услуг SIP-телефонии, активно обсуждаемых в телекоммуникационбильных и фиксированных сетей. Операторы готовят инфраструк- ном сообществе. Протокол SIP был туру к предоставлению услуг следу- стандартизирован в апреле 1999 гоющего поколения путем применения да, а актуальная спецификация (верпрограммных коммутаторов, отлича- сия 2.0 протокола SIP) датирована ющихся большой гибкостью. Програм- 2002 годом. мные коммутаторы реализуют функции сопряжения с телефонной сетью Назначение SIP общего пользования (ТфОП), обеспе- Session Initiation Protocol (SIP) – это чивают централизованный биллинг, клиент-серверный протокол прикладуправление и интеллектуальную ди- ного уровня, предназначенный для уснамическую маршрутизацию звон- тановления, изменения и окончания ков. Их применение означает для опе- сеансов связи с одним или нескольраторов фиксированной и мобильной кими участниками для обмена интерсвязи возможность предоставления активным трафиком: голосом, видео, услуг транзита голосового трафика мгновенными сообщениями. SIP отночерез опорную сеть IP/MPLS (Internet сится к классу протоколов сигнализа-

№5, май 2007

или иначе касается 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 для мультимедиа-конференций.

ции; его задачи аналогичны тем, которые выполняет протокол общеканальной сигнализации №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 будут рассмотрены в следующей статье цикла, сейчас же сделаем акцент

79


IP-телефония Таблица 1. Компоненты и сервисы протоколов сигнализации H.323

SIP

MGCP

Управляющие компоненты сети

Привратник

Прокси‑сервер, сервер перенаправления, сервер регистрации

Call Agent

Конечные точки

Шлюз, терминал

Пользовательский агент

Шлюз или медиашлюз

Управление звонками и функции учёта

Шлюз, привратник

Шлюз

Call Agent

Статус звонка

Шлюз, привратник

Шлюз

Call Agent

Обработка адресной информации

Привратник

Сервер регистрации

Call Agent

Контроль доступа (admission control)

Привратник

Не поддерживается

Call Agent

Протокол

Таблица 2. Сравнительные характеристики протоколов сигнализации Протокол

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

Дополнительные услуги

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

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

Предоставляются конечными устройствами

чем, эти границы постепенно размываются: в своём сегодняшнем виде 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 поддерживает также приглашение участников к текущим сеансам наподобие многоточечных конференций, добавление к текущему сеансу или удаление из него мультимедийных данных, прозрачное распределение имён Структура сообщений и перенаправление услуг, включая персональную мобиль- Теперь пора перейти к рассмотрению «строительных блоность пользователя. ков» протокола SIP: методов, запросов и ответов, загоТак что, хотя о протоколе SIP чаще всего говорят в кон- ловков и т. д. тексте IP-телефонии, на самом деле он может применятьSIP использует набор символов ISO 10646 в кодировся для установки поверх IP самых разнообразных сеан- ке UTF-8. Запросы и ответы SIP имеют одинаковый базосов связи, порой не имеющих ничего общего с телефон- вый формат сообщения и различаются наборами симвоным звонком (что неудивительно для протокола, разра- лов и синтаксисом. Сообщение состоит из: ботанного IETF, а не телекоммуникационной индустри- n стартовой строки; ей, как H.323). Впрочем, H.323 сегодня также не ограни- n одного или нескольких полей заголовков; чен голосовой связью и может обслуживать любой се- n пустой строки, обозначающей конец полей заголованс связи. ков; Традиционно H.323 называли более зрелым протоко- n тела сообщения (необязательно). лом, а SIP – более динамичным, расширяемым, масштабируемым и, главное, простым в сравнении с H.323. ВпроВозьмём небольшой пример в виде запроса INVITE:

80


IP-телефония INVITE sip:bob@bigisp.com SIP/2.0 Via: SIP/2.0/UDP pc33.example.com;branch=z9hG4bK776asdhds Max-Forwards: 70 To: Bob <sip:bob@bigisp.com> From: Alice <sip:alice@example.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.example.com CSeq: 101 INVITE Contact: sip:alice@pc33.example.com Content-Type: application/sdp Content-Length: 142 v=0 o=alice 2890844526 2890844526 IN IP4 example.com c=IN IP4 10.1.3.33 t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000

Теперь детально рассмотрим каждую строку запроса. Первая, или стартовая, строка запроса имеет следующий формат: <Имя метода> <Request-URI (адресат)> <Номер версии SIP>

Заметим, что имя метода указывает на назначение данного сообщения. Под этим термином понимают как запросы, так и ответы. Все последующие строки запроса несут дополнительную информацию о сообщении. Обязательный заголовок(ки) 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 будет рассмотрен в следующей части статьи.

№5, май 2007

Таблица 3. Методы 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

Таблица 4. Заголовки SIP Тип заголовка SIP

Примеры

Общие заголовки

Accept Accept-Encoding Accept-Language Alert-Info Call-ID Call-Info CSeq Contact

Date Expires From To Record-Route Route Timestamp Via

Заголовки с информацией о теле сообщения

Content-Disposition Content-Encoding Content-Language

Content-Length Content-Type

Заголовки запросов

Authorization Max-Forwards Organization Priority Proxy-Authorization

Proxy-Require Route Require Subject User-Agent

Заголовки ответов

Allow Error-Info Proxy-Authenticate Retry-After

Unsupported Server Warning WWW-Authenticate

В таблице 3 сведены основные методы SIP вместе с их описаниями. По своему типу заголовки SIP можно разделить на несколько категорий, см. таблицу 4. На каждый запрос отправителю направляется ответ, содержащий код результата выполнения запроса. Например, положительный ответ на приведённый выше INVITE может быть таким: SIP/2.0 200 OK Via: SIP/2.0/TCP pc33.example.com;branch=z9hG4bKnashds8; received=10.1.3.33 To: Bob <sip:bob@bigisp.com>;tag=a6c85cf From: Alice <sip:alice@example.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.example.com CSeq: 102 INVITE Contact: <sip:bob@192.168.10.20> Content-Length: 255 Content-Type: application/sdp

81


IP-телефония Таблица 5. Ответы SIP Описание

Примеры

1xx

Информационные – запрос получен, продолжаю его обрабатывать

100 Trying 180 Ringing 183 Session Progressing

2xx

Успех – действие было успешно получено, понято и выполнено

200 OK 202 Accepted

3xx

Перевод вызова – для завершения выполнения запроса необходимо обратиться к другому элементу SIP

300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily

4xx

Ошибка клиента – запрос содержит ошибки или не может быть обслужен на этом сервере

400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found 407 Proxy Authentication Required 408 Request Timeout 480 Temporary Unavailable 481 Call or Transaction Does Not Exist 486 Busy Here 487 Request Terminated

5xx

Ошибка сервера – сервер не смог обслужить правильно построенный запрос

502 Bad Gateway 503 Service Unavailable

6xx

Глобальная ошибка – запрос не может быть обслужен ни на одном сервере

600 Busy Everywhere 603 Decline

SDP-часть не показана для экономии пространства. Все заголовки кроме стартовой строки вам уже знакомы, а стартовая строка ответа имеет следующий формат: <Номер версии SIP> <Код статуса> <Текст причины>

Код статуса – это 3-значное число, первая цифра которого указывает на класс ответа, а остальные две – идентифицируют конкретный ответ в каждом классе. Устройство может не знать, что означает код ответа, но должно обязательно знать класс ответа. Всего существует 6 классов ответов (таблица 5). Информационные ответы сообщают о стадии выполнения запроса, они не являются завершением транзакции. Остальные же классы ответов завершают транзакцию.

Адресация в SIP Для идентификации абонентов и ресурсов в протоколе SIP используются SIP URI-идентификаторы, описанные в RCF 2396. SIP URI состоит из двух частей: первая часть –

Рисунок 1. Многоуровневая структура протокола SIP

82

это имя пользователя, зарегистрировавшегося в домене или на рабочей станции. Во второй части указывается имя домена, рабочей станции или шлюза. Если вторая часть адреса идентифицирует какой-либо шлюз, то в первой указывается телефонный номер абонента. В начале адреса ставится слово «sip:», указывающее, что это именно SIP URI (бывают и другие, например «sips:» для SIPS URI или «tel:» для номеров в формате E.164). Таким образом, возможны SIP URI следующего вида: n имя@домен (где домен – полностью квалифицированное доменное имя, FQDN) – bob@example.com; n имя@хост – bob@proxy10.bigisp.com; n имя@IP_адрес – bob@10.1.1.1; n №_телефона@шлюз – sip:18665551234@gateway.com; 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. Самый нижний уровень отвечает за синтаксис и кодирование сообщений. Вторым уровнем протокола является транспортный уровень – он определяет, как клиент передаёт запросы и получает ответы от сервера и как сервер получает запросы и передаёт ответы клиенту; эти функции свойственны всем элементам сети, следовательно, все они содержат транспортный уровень.

Рисунок 2. Понятия транзакции и диалога


IP-телефония Следующий уровень – это уровень транзакций. О SIP говорят как о транзакционном протоколе. Транзакцией называют совокупность соообщений, состоящую из запроса, отправленного клиентом серверу, и всех ответов сервера на этот запрос (см. рис. 2). Уровень транзакций содержит клиентскую часть, называемую клиентской транзакцией, и серверную часть, называемую серверной транзакцией. Уровень транзакций предпринимает повторную передачу сообщений, определяет соответствие ответов запросу и уведомляет верхний уровень протокола о срабатывании таймеров. И на самом верху находится уровень пользователя транзакций (Transaction User, TU), который управляет созданием транзакций. Все элементы сети SIP, за исключением прокси-сервера без хранения состояния, обязательно содержат уровни транзакций и пользователя транзакций. Правила проверки соответствия запроса серверной транзакции таковы: сервер анализирует верхний заголовок Via на предмет наличия параметра branch. Если он присутствует и в начале его значения стоит набор символов «z9hG4bK», как в рассмотренном выше примере:

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- и Via: SIP/2.0/UDP pc33.example.com; To-тегов: branch=z9hG4bK776asdhds, n Call-ID – это некая уникальная следовательно запрос был сгенеристрока, идентифицирующая вырован клиентом, поддерживающим зов. Call-ID, как правило, не меняRFC 3261 в полной мере, и параметр ется на протяжении всех диалогов, branch уникален в каждой транзаксоставляющих один вызов. ции данного клиента. Запрос прина- n Тег заголовка From генерируется длежит транзакции в том случае, если пользовательским агентом вызызначение параметра branch запроса совпадает с таковым из запроса, образовавшего транзакцию, а имя метода из поля заголовка CSeq совпадает с таковым из запроса, образовавшего транзакцию. Если же параметр branch отсутствует, как показано ниже:

Рисунок 3. Работа сервера регистрации

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

Компоненты SIP. Пользовательские агенты (User Agent – UA) Этим термином называют конечное устройство сети SIP или приложение, способное установить сеанс, управлять им и разорвать его, а также производить обмен медиаданными с другими пользовательскими агентами. Поскольку SIP – это одновременно и протокол типа «точка-точка», и клиент-серверный протокол, конечная точка SIP должна быть способна отвечать на запросы сессии SIP и инициировать их. Следовательно, конечная точка должна содержать два SIPстека одновременно: n User Agent Client (UAC) – инициатор запросов.

Via: SIP/2.0/UDP pc33.example.com,

сервер руководствуется следующими правилами. Запрос принадлежит транзакции в том случае, если Request-URI (часть стартовой строки, указывающая на адресата данного запроса), теги заголовков From и To, заголовки Call-ID и Cseq (включая название метода) и верхний заголовок

№5, май 2007

Рисунок 4. Переадресация вызова

83


IP-телефония 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-запись такого вида: $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:andrew.pogrebennyk@sip2sip.info!i" . IN NAPTR 101 10 "u" "E2U+h323" "!^.*$!h323:andrew.pogrebennyk@sip2sip.info!i" . IN NAPTR 102 10 "u" "E2U+msg" "!^.*$!mailto:andrew.pogrebennyk@sip2sip.info!i" .

Числа 100, 101, 102 указывают порядок, в котором записи должны быть обработаны для образования упорядоченного списка правил, поэтому мы сначала выбираем первую запись. Число 10 (Preference) для нас не имеет значения, поскольку других записей

с порядковым номером 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.

n User Agent Server (UAS) – иници- та SIP-запроса. Данный URI запроса атор ответов на запросы. 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 запроса для определения маршру-

84

всегда определяет хост, но не всегда – порт и протокол. Если хост через адрес 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, локальный и удалён-

ный номера CSeq, Call-ID, маршрутные заголовки и характеристики медиапотоков. Шлюзы, выполняющие преобразование H.323 в SIP, ISDN в SIP или SS7 в SIP, с точки зрения SIP функционально ничем не отличаются от пользовательских агентов (ведь другие элементы сети SIP не «знают», действует ли UA, руководствуясь командами пользователя или сообщениями/событиями других протоколов).

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


IP-телефония для установления сеанса связи. Обработкой этой информации и занимается сервер регистрации: получая от пользовательского агента запрос REGISTER, он создаёт временную связку из присвоенного пользователю SIP URI (называемого также Address of Record – AOR) и URI заголовка Contact, который указывает на адрес, куда следует направлять запросы (см. рис. 3). База данных с информацией о местоположении пользователей доступна для всех серверов в рамках данного административного домена (для прокси-серверов и серверов перенаправления), что делает возможной маршрутизацию входящих вызовов. Сам запрос REGISTER может использоваться для получения списка текущих привязок, удаления всех привязок или добавления новой. Отклик 200 OK на запрос REGISTER содержит заголовок Expires, указывающий, через сколько секунд нужно обновлять регистрацию, а также один или несколько заголовков Contact со всеми текущими привязками.

Сервер переадресации

конкретной сети, но мы рассмотрим некий усреднённый пример. Итак, n Запросы к абонентам, принадлежащим к тому же административному домену, что и прокси-сервер, маршрутизируются на основе:  базы данных сервера регистрации;  статистически заданных маршрутов (например, для вызовов по номеру 911). n Запросы к абонентам, принадлежащим к другому домену, маршрутизируются исходя из результатов DNS-запроса ресурсной записи SRV (указывающей на расположение службы). n Запросы, адресованные по некоторым предопределённым номерам, маршрутизируются к специализированным серверам приложений (например, *98 для доступа к серверу голосовой почты). n Запросы, адресованные на номер в формате E.164, маршрутизируются, основываясь на:  Заранее заданных таблицах маршрутизации;  Динамически получаемых (например, от биллинговой системы) маршрутов;  ENUM (см. врезку «ENUM» на стр. 84).

Сервер переадресации возвращает пользовательскому агенту новый адрес для прямой маршрутизации вызова по этому адресу, иными словами – производит перенаправление вызывающей стороны к другому серверу (см. рис. 4). Сервер переадресации отвечает на запрос, но никогда не Запись типа SRV предоставляет механизм для полупересылает запрос дальше и не хранит состояние. Впрочем, чения списка хостов, предоставляющих некоторую служнельзя сказать, что он применяется часто: каждый оператор бу посредством разных транспортных протоколов, с упопредпочитает полностью контролировать сеанс связи. рядочиванием по предпочтению. Для примера, пусть клиент пытается разрешить URI sip:user@example.com. Клиент Прокси-серверы производит DNS-запрос и выбирает ресурсные записи тиНаличие прокси-сервера является обязательным атрибу- па NAPTR для данного домена: том каждой корпоративной или операторской сети. Прок;;;; Записи 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. ры играют ключевую роль в сетях SIP, поскольку связывают вместе пользовательские агенты и другие элементы SIPВ примере видно, что сервер поддерживает TCP, UDP сети в одном или множественных доменах, реализуя логи- и TCP через ТLS. Затем, обрабатывая записи SRV, клику маршрутизации. Прокси-сервер не генерирует запросы ент определяет сервер назначения (или список серверов) самостоятельно (за исключением CANCEL), а лишь отве- для предпочитаемого им типа транспортного протокола: чает или пересылает запросы, полученные от UAC. Также ;;;; Записи SRV для каждой SIP услуги он выполняет интерпретацию, удаление, добавление или ;; Служба.протокол.имя Приоритет Вес Порт Цель _sips._tcp.example.com SRV 10 1 5061 proxy1.example.com. модификацию заголовков, касающихся прямых функций SRV 20 1 5061 proxy2.example.com. прокси-сервера (таких, как Record-Route или Via), но ни_sip._tcp. example.com SRV 10 1 5060 proxy1.example.com. чего не «знает» о SDP-части. А основные функции прокси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. n Маршрутизация – определение получателя вызова, поиск маршрута для отправки сообщения и собственно отДальнейшее разрешение имён производится с помощью правка. привычных ресурсных записей адреса узла (A). n Безопасность – с помощью функций контроля доступа Когда proxy-сервер пересылает SIP-запрос, он допрокси-сервер авторизирует доступ к той или иной ус- бавляет своё имя (имя сервера) в начало списка в поле луге или ресурсу со стороны конечных абонентов или Via в заголовке SIP-сообщения. Это поле позволяет воздругих прокси-серверов. вращать ответы по тому же маршруту, по которому проn Дополнительные услуги – прокси-серверы могут пре- ходил запрос. На «обратном» пути каждый proxy-сервер доставлять набор дополнительных услуг, такик как: пе- удаляет своё имя из поля Via после обработки SIP-отверенаправление вызова, уведомление о пропущенных та (см. рис. 5). вызовах, обеспечение приватности и т. д. Обобщённый же алгоритм работы прокси-сервера можно представить следующим образом: Алгоритм маршрутизации не поддаётся формализа- 1) Проверка корректности составления входящего запроции, поскольку определяется архитектурой и политикой са.

№5, май 2007

85


IP-телефония

Рисунок 5. Маршрутизация вызова между доменами при посредничестве прокси-серверов

2) Приведение номера вызываемой стороны к формату E.164. 3) Аутентификация отправителя запроса. 4) Выполнение запрошенных вызывающей стороной процедур, таких как удаление из запроса или изменение идентифицирующих вызывающую сторону заголовков. 5) Авторизация вызова. 6) Обращение к серверу регистрации для поиска подходящего получателя запроса. 7) Если получатель найден – направить запрос ему (и при необходимости – выполнить такие действия, как перенаправление вызова). 8) Если получатель не найден – отправить звонок в ТфОП.

Различные типы прокси‑серверов

вета. Прокси-сервер с хранением состояния транзакции ничего не «знает» о запросах UPDATE, REFER и BYE, но уже способен эффективно выполнять отправку учётной информации, разветвление, перенаправление вызова и некоторые другие расширенные функции. Прокси-сервер с хранением состояния диалога (Dialog Stateful) – прокси-сервер, который вставляет заголовок Record-Route в самый первый запрос SIP для того, чтобы все последующие сообщения в рамках данного диалога проходили через этот же сервер; это относится к каждому проксисерверу на пути между пользовательскими агентами. Такой прокси-сервер способен предоставить полный набор функций программного коммутатора классов 4 и 5.

Прокси-сервер без хранения состо- Back-to-Back UA (B2BUA) яния (Transaction Stateless) – прокси- «Back-to-back user agent» – это компосервер, который не хранит состояние нент, состоящий из двух SIP UA, косеанса и руководствуется лишь внут- торые общаются между собой строренней логикой маршрутизации сооб- го на прикладном уровне (с помощью щения, применяя её к каждому отде- SIP-сообщений). B2BUA образует своельно взятому запросу. Такой прокси- го рода периметр безопасности между сервер не выполняет повторную пере- SIP UA, находящимися по обе стороны дачу сообщений (а следовательно, не- от B2BUA: он скрывает детали реалиприменим в рамках модели SIP/TCP). зации SIP на каждом из конечных устЦелесообразным применение тако- ройств. В типичном случае B2BUA исго прокси-сервера является при очень пользуется для форсирования обрывысокой нагрузке или в балансиров- ва звонков в сетях операторов связи щиках нагрузки прикладного уровня. по истечении предоплаченного объема Прокси-сервер с хранением состо- услуг и вообще какого-либа контрояния транзакции (Transaction Stateful) – ля диалога третьей стороной, а также прокси-сервер, который запомина- скрытия топологии сети и обеспечения ет входящие и исходящие сообщения определённых функций безопасности в рамках данной транзакции до полу- (кстати говоря, шлюз уровня приложечения (или отправки) финального от- ний, ALG, с поддержкой SIP, архитек-

86

турно представляет собой не что иное, как 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.



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

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

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

Ч

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

88

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

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

Судебные тяжбы двух гигантов Intel против AMD. Ещё со времён их основания (Intel – в 1968 году, AMD –


ретроспектива в 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 осталась в выигрыше. Однако получив материальную компенсацию, она отныне

№5, май 2007

не имела права доступа к разработ- разъёмы которых были бы физическам Intel. В результате инженерам ком- ки совместимы с процессорами Intel пании пришлось путём обратной инже- следующей за Pentium архитектуры. нерии (reverse-engineering) разобрать В свою очередь, Intel также решила процессор i386, дабы изучить его архи- «расстаться» с 18 миллионами, ушедтектуру, принципы работы и быть спо- шими на счёт AMD. С тех пор обе комсобным в дальнейшем производить пании идут каждая своим курсом. его клоны (если быть более точным, обратная инженерия была использо- И снова в суде вана AMD ещё на этапе проектирова- Относительное перемирие между Intel ния клона сопроцессора 80287). и AMD длилось на протяжении почПроцесс закончился успешно, ти десяти лет. Исключение составил и в том же 1991 году на свет появил- лишь судебный иск 1997 года, выдвися чип Am386. Несмотря на то что про- нутый Intel против AMD и Cyrix. В нём цессор имел другую архитектуру, от- обе компании обвинялись в непраличную от 386, по части микрокода вильной трактовке аббревиатуры MMX (т.н. код элементарных команд ЦПУ) (MultiMedia eXtension), которой Intel рекони полностью совпадали. К тому же ламировала набор расширенных инспо частоте работы процессора Am386 трукций для работы с мультимедийныбыл опять вне конкуренции – 40 МГц ми данными, встроенный в её новые против 33 МГц у i386. процессоры. Ответчики признали MMX Теперь уже настал черед Intel по- торговой маркой Intel и её собственносдавать в суд на AMD, обвиняя её в на- тью, после чего иск был отклонён. Гром разразился 7 февраля 2005 горушении своей патентной базы. Компания требовала прекращения выпус- да, когда AMD Japan подала иск прока Am386, объёмы продаж которых за тив японского представительства Intel, один только 1991 год достигли милли- обвиняя её в злоупотреблении своим она единиц. AMD, в свою очередь, за- монопольным положением на рынке, щищалась договором 1982 года, со- а также оказании давления на другие гласно которому Intel сама выдала ей компании: Fujitsu, Hitachi, NEC, Sony лицензию на производство клона i386. и Toshiba. В документе указывалось, Как и следовало ожидать, приговор что Intel посредством угроз, а также был вынесен в пользу ответчика. денежных выплат заставляла их отНу а пока Intel апеллировала реше- казываться от покупок процессоров ние суда, опять-таки благодаря искус- AMD либо же ограничить подобные ству обратной инженерии AMD произ- закупки. вела на свет клон уже 486-го процесСогласно решению Торговой косора. Последовавшая за этим череда миссии Японии (Japanese Fair Trade взаимных судебных исков и апелляций Commission), вынесенному 26 июня закончилась победой AMD. Однако бы- 2005 года, Intel отныне возбраняетла ли она довольна этим? ся предоставлять японским компаниЗатяжные судебные тяжбы меж- ям скидки на свои процессоры в обду двумя гигантами процессоростро- мен на условие, что они не будут исения – причина нестабильности всего пользовать в своей продукции чипы рынка, в которой не была заинтересо- конкурента. вана ни одна из компаний. Дабы исНа следующий день, 27 июня, AMD править ситуацию, 30 декабря 1994 го- подала подобный иск в окружной суд да между враждующими сторонами округа Дэлавер, США. Обвинения был подписан договор, согласно ко- против Intel выдвигаются те же, однаторому AMD, выплатив 58 млн. долла- ко на этот раз в список было занесеров за убытки, нанесённые Intel во вре- но 38 компаний, подвергшихся давлемя судебных разбирательств, получа- нию со стороны ответчика. ла доступ к архитектурам процессоЕсли решение судьи будет в польров 386 и 486 и имела полное право зу AMD, перед ней откроются новые выпускать их клоны. Также компания рынки сбыта собственной продукции. могла производить процессоры, сов- Например, компании Dell и Apple, подместимые с Pentium по части микро- писавшие эксклюзивные соглашения кода и системного разъёма. При этом с Intel, отныне не будут «связаны» рамAMD возбранялось выпускать чипы, ками своих договоров и смогут исполь-

89


ретроспектива зовать в своих компьютерах процессоры обоих производителей. 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 к тому времени длился на про-

90

тяжении пяти лет. Наконец, 17 ап- ба, а также получение лицензионных реля 2002 года Intel решила уладить отчислений. спор мирным путём, выплатив истцу В результате всех судебных тяжб 300 млн. долларов. Взамен этого ком- Intergraph заполучила в общей сложпания выкупила у Intergraph ряд патен- ности около 900 млн. долларов. В дальтов, а также получала непереводимую нейшем, судя по всему, эта цифра булицензию на часть интеллектуальной дет только увеличиваться. собственности, касающейся процессора Clipper. Одна против всех 11 октября 2002 г. Intel также согла- В мире нередки случаи, когда нескольсилась выплатить Intergraph 150 млн. ко компаний, одна за другой, либо же долларов, дабы уладить часть вопро- одновременно, становятся мишенями сов по иску, касавшемуся чипа Itanium. для судебных разбирательств. За при30 марта 2004 года, после дополни- мерами далеко ходить не надо. тельной выплаты 225 млн. долларов, Компания OPTi, ранее занимавIntergraph успокоилась и приостано- шаяся разработкой и продажей полувила судебный процесс. проводниковых устройств для персоВпрочем, юристы компании не си- нальных компьютеров, а ныне лицендели, сложа руки. За это время они зирующая свои технологии, 20 октябуспели побывать «в гостях» у Dell, ря 2004 года подала иск против проGateway и Hewlett-Packard. Опять все- изводителя графических чипов Nvidia, му виной стал «несчастный» Clipper. обвинив её в нарушении пяти своих Лицензия Intel на патенты, касавшие- патентов. Три из них касались техся процессора, не распространялась нологии под названием «Предиктивна её клиентов, поэтому Intergraph мог- ная выборка адресов из кэш-памяти» ла вызвать в суд любого производите- (Predictive Snooping of Cashe Memory), ля компьютеров на базе чипов семейс- которая предназначается для уменьтва Pentium. Поскольку Dell, Gateway шения задержек при работе устройси HP входили в тройку наибольших тва с шиной PCI. Ещё два патента опипоставщиков компьютерной техники сывали разработанную OPTi специв мире, они-то и стали первой целью фикацию интерфейса ввода/вывода, для очередного разбирательства. предназначенного для портативных Dell повезло больше всех: в 2004 го- устройств. ду во время пересмотра патентного соСудебный спор был временно глашения между Intel и Intergraph она улажен путём подписания 2 августа «вышла сухой из воды». Однако осталь- 2006 года договора, согласно котоным компаниям пришлось хуже. В мае рому Nvidia лицензирует технологию 2004 года Gateway разошлась с истцом «Предиктивной выборки», взамен чего мирным путём, выплатив Intergraph на протяжении трёх лет будет выпла10 млн. долларов, а также пообещав чивать истцу ежеквартально 750 тыоплачивать лицензионные отчисле- сяч долларов. Стороны остались дония в размере 1,25 доллара с каждого вольны, о конфликте позабыли вплоть проданного компьютера. Спустя неко- до 8 февраля сего года, когда Nvidia торое время HP также была вычерк- объявила о своём прекращении иснута из списка обвиняемых, выплатив пользования технологии OPTi, а таккомпании 141 млн. долларов. же отказе от ежеквартальных выплат 29 июня 2006 года старые патен- лицензионных отчислений. Судебный ты по процессору Clipper в очеред- иск, пролежавший на полках полтора ной раз стали причиной нового иска. года, вновь всплыл на свет. На этот раз Intergraph обратила свой Ну а пока «ничто не предвещавзор на Восток, обвинив в нарушении ло бури», OPTi, подписав договор своей интеллектуальной собствен- с Nvidia, переключилась на других игности Fujitsu, NEC и Toshiba. Причём роков рынка. для большей уверенности судебные Второй «под раздачу» попала компроцессы были начаты сразу в двух су- пания AMD, 21 ноября 2006 года обдах – в Калифорнии (США) и Гамбурге винённая в нарушении всё тех же трёх (Германия). Как и в случае с американ- патентов, описывающих «Предиктивскими компаниями, Intergraph требу- ную выборку», путём производства ет возмещения материального ущер- своих процессоров семейства Opteron,


ретроспектива а также наборов системной логики к ним. 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, кури-

№5, май 2007

рующей разработку и продвижение лишь год спустя. По прогнозам анабеспроводного стандарта, насчиты- литиков, в 2007 году продажи порвается свыше шести тысяч компаний. тативных проигрывателей переваПочему же были выбраны лишь один- лят за 200 млн. единиц. К 2010 гонадцать из них? ду эта цифра перевалит за 250 млн. Дело в том, что иск WRF направлен штук, а сам рынок будет оцениваться против электронных продуктов, кото- в 21,5 млд. долларов. Сумма, а такрые оснащены чипами компании CSR же оперативность Texas MP3 в подаPlc. По словам представителей орга- че иска говорят лишь об одном – женизации, микросхемы CSR использу- лании в кратчайшие сроки, да к тому ют Bluetooth-технологию без данно- же «малой кровью» оторвать как можго ею разрешения. WRF лицензиро- но больший кусок этого пирога. «Павала права на свои разработки дру- тентный терроризм» налицо. гому производителю Bluetooth-чипов – Broadcom. Поэтому к компаниям, вы- И снова о «Яблоке» пускающим устройства на их основе, О компании Apple и её семействе претензий нет. сверхпопулярных плееров iPod я уже Если учесть, что на сегодняшний говорил. Однако это не единствендень в мире насчитывается более од- ные судебные разбирательства, посного миллиарда устройств, оснащён- тоянным объектом которых являетных интерфейсом Bluetooth, сумма ся iPod. Например, в декабре 2006 гоматериального ущерба, который бу- да компания Quantum Research Group дет выплачен WRF в случае выигрыша (QRG) подала иск против Apple, обвипроцесса, может исчисляться девяти- няя её в нарушении патента, описыили даже десятизначной цифрой. вавшего «Технологию передачи заряда» (Charge-transfer Technology). ШироMP3-плееры ко разрекламированное навигационпод прицелом ное колесо Click Wheel в старых плеЕщё более громким стал иск, подан- ерах iPod изготовлялось на основе ный компаний Texas MP3 Technologies тактильного сенсора, который Apple против Apple, Samsung и SanDisk. Со- лицензировала у компании Synaptics. гласно патенту, Texas MP3 обладает Однако, согласно данным QRG, новые правами на технологию «портативного модели портативных проигрывателей, аудиоустройства, пригодного для вос- в список которых вошли оба поколения произведения данных, закодирован- Nano, а также iPod Video пятого поконых в формате MPEG, оснащённого ления, используют в своём составе нонабором входов, памятью для хране- вый сенсор, построенный на базе чиния данных, дисплеем, аудиовыходом, пов компании под названием Cypress как минимум одним процессором и ба- PSoC. Их использование и нарушает тареей». То есть само название доку- патент QRG. мента – это краткая характеристика Данные судебные разбирательства – одни из доброго десятка исков, MP3-плеера. Texas M P3 пр и о бр ел а п ате н т которые выдвигаются против Apple 15 февраля этого года у SigmaTel (про- сегодня. Правда, в основном они каизводитель чипов для MP3-плееров) саются программного обеспечения, и уже на следующий день подала иск разрабатываемого компанией (iTunes в суд. «Мы приняли решение избавить- Music Store), а также торговых марок ся от патента, поскольку для обеспе- (иск Cisco по поводу торговой марчения его большой коммерческой цен- ки «iPhone»). Этому, а также многоности необходимы миллионы долла- му другому и будет посвящена следуров, которые пришлось бы потратить ющая статья. на гонорары юристам», – мотивировал решение о продаже исполнитель- 1. http://www.theregister.co.uk. ный директор SigmaTel Рон Иджиртон 2. http://www.zdnet.com. (Ron Edgerton). 3. http://www.cnet.com. Сам патент был зарегистриро- 4. http://blog.wired.com. ван двумя корейскими изобретате- 5. http://www.usatoday.com. лями ещё в 1997 года, тогда как пер- 6. http://www.wikipedia.org. вые МР3­‑плееры появились на рынке 7. http://www.hmcourts-service.gov.uk.

91


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

Программирование баз данных Microsoft SQL Server 2005. Базовый курс Роберт Виейра

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

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

турой памяти и индексами. Затем начинаются вещи поинтереснее: представления, хранимые процедуры и пользовательские функции, транзакции и триггеры. Оставшиеся же главы, очевидно, придутся по душе не только новичкам – это краткое введение в язык XML и преобразования XSL, а также описание Reporting Services (для создания отчетов) и Integration Services (для экспортирования в БД данных из внешних источников). Последняя глава посвящена некоторым тонкостям администрирования СУБД.

n Издательство: n Год издания: n Количество страниц: n ISBN: n Цена:

«Диалектика» 2007 768 5-8459-1125-7 ≈ 550 руб. К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м «Вильямс».

HTML, XHTML и CSS. Библия пользователя, 3-е издание Брайан Пфаффенбергер, Стивен Шафер, Чак Уайт, Билл Кароу

Первое, что бросилось в глаза в этой книге (не считая, конечно, обложки), – странная терминология (или таков уровень ее перевода?). Так, например, HTML здесь настойчиво называется «протоколом», а вторая часть книги смело озаглавлена «Основы программирования в HTML/XHTML», когда речь в ней идет, разумеется, о разметке страниц.

92

Не самое благоприятное впечатление верка кода на соответствие стандарпроизвели примеры JavaScript-кода там, сопровождение сайта. Кроме тов четвертой части книги, которая при го, многие отвлеченные вопросы, каэтом носит солидное название: «Разра- сающиеся веб-мастеров, разумно выботка веб-страниц на профессиональ- несены в отдельную часть – «Принцином уровне». Тем не менее авторам пы профессионального веб-дизайна». удалось широко осветить основы соз- В ней собрана информация по грамотдания простых статичных веб-сайтов. ному структурированию сайта и оргаПодробно разобраны все базовые ве- низации его содержимого, по обеспещи, используемые в (X)HTML: элемен- чению безопасности и интернационатарное форматирование (абзацы, пе- лизации. Стоит также выделить полезреносы строк, заголовки, списки и т. п.) ные справочные данные по спецификаи ссылки, изображения, таблицы, фор- ции XHTML и свойствам CSS, представмы, фреймы и объекты. По CSS пред- ленные в приложениях. ставлены общие понятия и свойства, Издательство: «Вильямс» описана работа со шрифтами, форма- n Год издания: 2007 тирование текста, в том числе и разно- n n Количество страниц: 752 образные отступы, цвета, таблицы. Две ISBN: 978-5-8459-1154-4 главы посвящены языку разметки XML. n Цена: ≈ 451 руб. Не забыты и такие аспекты, как тести- n рование созданных страниц в разных К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м разрешениях и браузерах, а также про- «Вильямс».


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

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

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

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

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

n Издательство: «Горячая Линия-Телеком» n Год издания: 2007 n Количество страниц: 320 n ISBN: 978-5-93517-318-2 n Цена: ≈ 254 руб. К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м «Горячая Линия-Телеком».

JavaScript. Карманный справочник Кристиан Уэнц

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

№5, май 2007

Но главное достоинство книги и заслуга автора – это, несомненно, актуальность предлагаемой информации и её компактное изложение. Среди тем, которые затрагиваются на страницах справочника, например, решение простых типичных задач вроде определения браузера и поиска с привлечением регулярных выражений, работа со стилями CSS, графикой, cookies. Наибольшее внимание уделено формам – для них приведено множество часто используемых приемов, что значительно упрощает рутинные процедуры. Достаточно подробно, с поправкой на размеры книги, освещено применение JavaScript в контексте объектной модели документа (DOM). Не забыты возможности объектно-ориентированного программирования и обработка событий. Также затронуты и более современные технологии, такие как вебслужбы (на примере PHP и ASP.NET)

и AJAX. Последней теме ввиду ее популярности в наши дни автор разумно (умалить востребованность AJAX затруднительно) придает особую значимость, раскрывает такие моменты, как отправка синхронных/асинхронных запросов POST/GET, получение различных данных от сервера, в том числе XML, использование преобразования XSLT, решение типовых проблем (закладки, возврат на предыдущую страницу). В последней главе рассмотрено взаимодействие JavaScript со встраиваемыми в HTML объектами (мультимедиа, Java, Flash).

n Издательство: n Год издания: n Количество страниц: n ISBN: n Цена:

«Вильямс» 2007 272 978-5-8459-1186-5 ≈ 88 руб. К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м «Вильямс».

Обзор книжных новинок подготовил Дмитрий Шурупов

93


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

Редакционная подписка для физических лиц n Вы можете оформить подписку

n Вы можете оформить подписку

n Журнал высылается почтой прос-

на любой российский адрес. n При заполнении квитанции обя‑ зательно РАЗБОРЧИВО укажи‑ те фамилию, имя, отчество пол‑ ностью, почтовый индекс и ад‑ рес получателя (область, город, улица, номер дома, номер квар‑ тиры), контактный телефон.

с любого месяца на любой срок. n В графе «Сумма» проставьте сумму за выбранное количество номеров. Стоимость одного номера журнала 150 руб. За 10 месяцев (с марта по декабрь) – 1500 руб. НДС и почтовые расходы включены в стоимость.

той бандеролью только после поступления денег на расчетный счет и копии заполненного и оплачен‑ ного бланка, отправленной в ре‑ дакцию по факсу: (495) 628‑82‑53 или на элек тронный а д рес: info@samag.ru.

94


подписка на 2007 год Российская Федерация

n Подписной индекс: годовой – 20780, полугодовой – 81655

Каталог агентства «Роспечать» n Подписной индекс: 87836 Объединенный каталог «Пресса России» Адресный каталог «Подписка за рабочим столом» Адресный каталог «Библиотечный каталог» n Альтернативные подписные агентства: Агентство «Интер-Почта» (495) 500-00-60, курьерская доставка по Москве Агентство «Вся Пресса» (495) 787-34-47 Агентство «Курьер-Прессервис» Агентство «ООО Урал-Пресс» (343) 375-62-74 ЛинуксЦентр www.linuxcenter.ru n Подписка 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 по каталогу агентства «Пресса России» *

годовой полугодовой

**

№5, май 2007

95


СИСТЕМНЫЙ АДМИНИСТРАТОР №5(54), Май, 2007 год УЧРЕДИТЕЛИ Владимир Положевец Александр Михалев РУКОВОДИТЕЛЬ ПРОЕКТА Петр Положевец РЕДАКЦИЯ Исполнительный директор Владимир Положевец Ответственный секретарь Наталья Хвостова sekretar@samag.ru Технический редактор Владимир Лукин Главный редактор электронного приложения «Open Source» Дмитрий Шурупов Внештатные редакторы Алексей Барабанов Алексей Алексеев Андрей Бирюков РЕКЛАМНАЯ СЛУЖБА тел./факс: (495) 628-8253 Евгения Тарабрина reсlama@samag.ru Верстка и оформление maker_up@samag.ru Дизайн обложки Николай Петрочук По вопросам распространения обращайтесь по телефону: (495) 628-8253 (доб. 120) 107045, г. Москва, Ананьевский переулок, дом 4/2, стр. 1 тел./факс: (495) 628-8253 Сайт журнала: www.samag.ru ИЗДАТЕЛЬ ЗАО «Издательский дом «Учительская газета» Отпечатано типографией ГП «Московская Типография №13» Тираж 15000 экз. Журнал зарегистрирован в Министерстве РФ по делам печати, телерадиовещания и средств массовых коммуникаций (свидетельство ПИ № 77-12542 от 24 апреля 2002 г.). За содержание статьи ответственность несет автор. За содержание рекламных материалов ответственность несет рекламодатель. Все права на опубликованные материалы защищены.

96

Читайте в следующем номере: Корпоративная телефонная сеть на базе АТС Samsung

красное время познакомиться с ALT Linux 4.0 Server и узнать об особенностях дистрибутива! Обзор в июньском номере поможет вам сформировать и свои «первые впечатления» о грядущей новинке.

Однажды руководитель вызывает вас, и указывая на непонятную груду коробок на полу, говорит: «Это АТС. Она будет установлена в нашем филиале в другом городе. Разберитесь, Разворачиваем кластер как настроить ее так, чтобы звонить Microsoft Exchange не по межгороду, а через Интернет Служба электронной почты – неотъи при этом использовать короткие но- емлемый элемент бизнес-процессов мера, также как в офисе». Продолже- и для надежной работы данной службе ние истории читайте в следующем но- необходимо обеспечить отказоустоймере журнала. чивость. В статье рассмотрим вопросы, связанные с установкой и настройПатентные войны: кой отказоустойчивого кластера почтооберегай своё, не посягай вой системы. В качестве примера возьна чужое. Часть вторая – мем создание двухузлового кластера программная на основе Microsoft Exchange. «Патентный терроризм» в сфере информационных технологий затраги- Борьба со спамом, вает не только аппаратные разработ- как фактор, снижающий ки. Сегодня средства массовой инфор- надежность почтовой мации пестрят сообщениями о различ- доставки ных исках по патентам и на програм- Внедрение систем фильтрации почтомное обеспечение. Кто? Когда? Как? вых сообщений очень часто оборачиОтветы на эти вопросы – в следую- вается непредсказуемыми задержкащем выпуске. ми или даже потерями важной деловой корреспонденции. В этом случае, ALT Linux 4.0 Server: как правило, вся ответственность лочто день грядущий жится на системного администратонам готовит? ра. А те, кто в начале требовал избаПусть финальная версия нового сер- вить их от спама, мешающего работе, верного решения от ALT Linux еще и в полном соответствии с известными не увидела свет, эта долгожданная оте- законами Мерфи, начинают считать исчественная разработка уже на финиш- точником всех своих проблем деятельной прямой и готова для работы. Пре- ность сисадмина.

Уважаемые читатели! Продолжается подписка на 2-ое полугодие 2007 года. Приобрести новые и старые номера журнала вы можете через интернет-магазин LinuxCenter.ru.

Доставка почтой в любую точку России.


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.