058 Системный Администратор 09 2007

Page 1

№9(58) сентябрь 2007

№9(58) сентябрь 2007 подписной индекс 20780 www.samag.ru

Строим бюджетный сервер для небольших компаний Как грамотно использовать средства шифрования данных Хранение ключей OpenSSH в центральном сервере OpenLDAP fsbackup: удобная утилита для резервного копирования Сервис телерадиовещания в интранет-сети Проектируем систему обмена данными Документооборот для OpenOffice.org Три способа миграции с SPS 2003 на MOSS 2007



в номере 3 ТЕНДЕНЦИИ АДМИНИСТРИРОВАНИЕ 4 O3Spaces – расширение к OpenOffice.org для совместной работы

OpenOffice.org и StarOffice не имеют средств, позволяющих организовать совместную работу с документами, как это реализовано в Microsoft Windows SharePoint Services, O3Spaces превращает их в решение уровня предприятия. Сергей Яремчук

7 Есть проблема? Есть решение!

Преимущества обучения в Центрах карьерного роста ТЕКАМА. Иван Коломацкий

8 Три способа миграции с SPS 2003 на MOSS 2007

Переход к новым версиям продуктов Sharepoint потребует от системного администратора не только времени, но и предварительной теоретической подготовки. Нелли Садретдинова

18 Система управления запросами OTRS

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

23 Дела системные

На что расходуется интернет-трафик вашей компании? Кто является самым большим любителем интернет-серфинга? Как ограничить доступ к нежелательным ресурсам и защитить свою сеть от вирусов? Эти и многие другие задачи можно решить с помощью программы UserGate. Михаил Брод

24 Проектируем систему обмена данными

В любой организации помимо документооборота присутствует файлооборот. Как сделать его удобным и функциональным? Иван Коробко

28 Используем Windows Messenger в корпоративной среде

Хотите повысить эффективность работы службы поддержки в вашей фирме? Для достижения этой цели подойдет Windows Messenger. Иван Коробко

32 Мониторинг сети с BixData

Обзор простой в установке и настройке системы мониторинга. Сергей Яремчук

38 Один из вариантов настройки спутникового Интернета в Mandriva Linux 2007

Ядро версии 2.6.17 ОС Mandriva Linux 2007 не поддерживает DVB-карту SkyStar 3, поэтому с ее настройкой в данной ОС у многих возникают проблемы. Есть способ их решить. Александр Пчелинцев

№9, сентябрь 2007

42 Строим бюджетный сервер для малых или средних компаний. Часть 1

Процесс настройки комплекса «с нуля». Павел Семенец

50 fsbackup: удобная и компактная утилита для резервного копирования Обзор утилиты.

Максим Тимофеев

52 Как организовать сервис телерадиовещания в интранет-сети

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

ЧЕЛОВЕК НОМЕРА 58 Солнечный мальчик

Скотт Макнили хочет оставить сисадминов без работы. Оксана Родионова

БЕЗОПАСНОСТЬ 62 Организуем хранение ключей OpenSSH в центральном сервере OpenLDAP

Снаружи наша система – неприступный бастион. А изнутри? Редко меняющиеся пароли, приходящие и уходящие пользователи, пересылка паролей по незащищеным каналам... Знакомо? Тогда эта статья для вас. Виталий Банковский

70 Защищаем локальные ресурсы сети

Какие средства шифрования данных существуют, как их лучше использовать? Андрей Бирюков

АДМИНИСТРИРОВАНИЕ «1С» 76 Средства администрирования «1С:Предприятие 8»

Рассмотрим самое первое, а с точки зрения безопасности еще и самое главное направление администрирования – разделение доступа к данным отдельных пользователей и групп пользователей. Андрей Луконькин

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

В заключительной части статьи читайте о практических вопросах: обходе NAT и обеспечении безопасности в сетях на основе протокола SIP. Андрей Погребенник

РЕТРОСПЕКТИВА 88 Микропроцессорные войны: хроника борьбы компаний Intel и AMD

История противоборства двух главных конкурентов процессорного рынка – Intel и AMD. Илья Александров

92 КНИЖНАЯ ПОЛКА 49, 87

BUGTRAQ


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

Акция «Надежность и Мобильность» В самый разгар компьютерного сезона компания «Доктор Веб» объявляет о начале акции «Надежность и Мобильность». Начиная с 10 сентября 2007 года по 10 февраля 2008 года, все поль‑ зователи, купившие продукты Dr.Web для UNIX‑систем, принимают учас‑ тие в акции «Надежность и Мобиль‑ ность». Пользователи, купившие решения Dr.Web для UNIX на сумму: n от 50 000 до 150 000 рублей полу‑ чают в подарок cмартфон; n от 150 000 до 250 000 рублей полу‑ чают в подарок КПК; n от 250 000 до 600 000 рублей полу‑ чают в подарок ноутбук и фирмен‑ ную сумку «Доктор Веб». Решения Dr.Web для UNIX‑систем – во многом уникальные антивирусные продукты. Они снискали заслуженное

признание пользователей во всем ми‑ ре прежде всего благодаря своей спо‑ собности обрабатывать гигантские массивы информации в режиме ре‑ ального времени, надежности и гиб‑ кости настроек. Решения Dr.Web для UNIX сущест‑ вуют практически для всех использу‑ емых в настоящее время операцион‑ ных систем на базе UNIX. Продукты для UNIX-систем компа‑ нии «Доктор Веб» превосходят конку‑ рентов по функционалу, отличаются высокой производительностью, про‑ стотой администрирования, высоким качеством и низкой ценой. Летом 2007 года компания «Доктор Веб» расширила свою линейку продук‑ тов под UNIX новым решением для за‑

щиты почтовых серверов. Теперь в нее входят комплексные решения для за‑ щиты почтовых серверов, рабочих станций, файловых серверов и интер‑ нет-шлюзов. На нашем сайте вы можете ознако‑ миться с продуктами Dr.Web для UNIX‑ систем – http://solutions.drweb.com. Для получения демонстрацион‑ ного ключа заполните, пожалуйс‑ та, веб-форму на странице http:// download.drweb.com/demo. Демонстрационный ключ предо‑ ставляется только организациям! Описание продуктов и подроб‑ ности акции на сайте www.drweb.com, а также у партнеров компании «Док‑ тор Веб».


тенденции BSD-сообщество выразило недовольство Linux-коллегами Неблагоприятная ситуация в лагере Open Source сложилась в последние дни августа. Причем главными причинами произошедшего стали не технологические проблемы, а человеческий фактор – невнимательность и непонимание. Сторонники операционной системы OpenBSD давно призывали другие свободные проекты использовать их наработки для поддержки беспроводных устройств Atheros. Linux-разработчики наконец-то прислушались к ним и приняли решение включить в состав ядра свободной операционной системы драйвер ath5k. Но ставшая достоянием общественности попытка одного из участников рассылки LKML (Linux kernel mailing list) Йири Слабы (Jiri Slaby) реализовать это на практике привела к негодованию представителей BSD-сообщества. Дело в том, что Слабы в предлагавшемся для включения в Linux-ядро патче изменил лицензию драйвера ath5k на GNU GPLv2, убрав копирайт оригинального автора – Рейка Флоэтера (Reyk Floeter). Событие породило массу всесторонних разговоров, участники которых высказывали свои противоположные позиции относительно произошедшего и защищали свой «лагерь». Среди подключившихся к обсуждениям стоит выделить и Тео де Раадта (Theo de Raadt), основателя проекта OpenBSD, раскритиковавшего подобные действия со стороны Linux-разработчиков.

Microsoft продолжает свои игры с Open Source В середине августа корпорация Microsoft подала на одобрение организации Open Source Initiative (OSI) две лицензии на «программное обеспечение с открытым кодом». Предложенные к рассмотрению лицензии относятся к Shared Source и носят названия Microsoft Permissive и Microsoft Community. Билл Хилф (Bill Hilf), генеральный менеджер Microsoft по стратегии в области платформ, объяснил эту инициативу потребностью корпорации в подобной лицензии и безрезультатными попытками найти что-либо подходящее среди уже существующих (среди последних в качестве примеров приводились Mozilla Public License и Apache License). Наряду с этим Microsoft убрала со своего веб-сайта рекламную кампанию «Get the Facts». Однако не стоит на этот счет строить иллюзий: пользователь, заходящий по адресу бывшей акции «GtF», теперь попадает на аналогичный по своему замыслу сайт – разве что менее вызывающе озаглавленный... На страницах «Compare», пришедших на смену «GtF», приведены сравнительные сведения о различных преимуществах ОС корпорации Microsoft (Windows Server) над альтернативными решениями. Если раньше к последним относились только Linux-системы (в данном случае рассматривается конкретно Red Hat Enterprise Linux), то теперь отдельно представлены и мэйнфреймы IBM под управлением ОС UNIX. Многие конкретные пункты/выводы сопровождаются ссылками на исследования и другие документы.

кой, поддержкой и продвижением ПО виртуализации с открытым кодом Xen. Сумма сделки составила 500 млн. долларов США, а завершение процесса приобретения намечено на четвертый квартал этого года. По словам Вэса Вэссона (Wes Wasson), главного стратега Citrix, в его компании почти на протяжении года были заинтересованы в расширении своего бизнеса в сфере технологий виртуализации, причем применительно как к настольным ПК, так и к датацентрам. Примечательно, что сообщение о сделке между XenSource и Citrix Systems появилось на следующий день после анонса компанией VMware своего первичного размещения акций на фондовом рынке (IPO). А вскоре стало известно о поглощении другого известного Open Source-проекта: компания Sourcefire, которой принадлежит авторство системы обнаружения сетевых вторжений Snort, объявила о покупке антивируса ClamAV. К Sourcefire перешли не только авторские права на весь код и ресурсы ClamAV, но и разработчики проекта вошли в штат сотрудников компании. Уже в конце месяца на коммерческом поприще проявился еще один Open Source-проект, правда, и до того не только не скрывавший свои заметные интересы в этой сфере, но и активно развивавшийся в соответствующем направлении. Исполнительный директор SugarCRM, поставщик одноименной CRM-системы с открытым кодом, сообщил, что его бизнес в ближайшие два года станет открытой акционерной компанией с ежегодным доходом в 100 млн. долларов США.

Подготовил Дмитрий Шурупов по материалам www.nixp.ru

Коммерциализация Open Source не стоит на месте В середине августа Citrix Systems объявила о покупке компании XenSource, основатели которой занимаются разработ-

№9, сентябрь 2007


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

O3Spaces – расширение к OpenOffice.org для совместной работы

Сергей Яремчук Офисные пакеты OpenOffice.org и StarOffice не имеют средств, позволяющих организовать совместную работу с документами, как это реализовано в Microsoft Windows SharePoint Services. O3Spaces превращает OpenOffice.org и StarOffice в решение уровня предприятия.


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

С

прос на системы для решения корпоративных задач постоянно растет, хотя в последние годы явно наметилась тенденция к слиянию основных компонентов, обеспечивающих инфраструктурные решения, ERP (Enterprise Resource Planning System – система планирования ресурсов предприятия) и систем управления документами. Но появление продукта, подобного O3Spaces [1], не вызывает удивления, хотя его можно отнести к последней группе. Ориентирован O3Spaces в первую очередь на небольшие компании, желающие сэкономить при покупке ПО, и которым часто не нужна функциональность SPS (SharePoint Services). К тому же по сравнению с продуктом от Microsoft O3Spaces обладает рядом преимуществ. В первую очередь это кроссплатформенность, благодаря использованию Java (Tomcat)-сервер может работать на компьютере под управлением: n Linux (Mandriva, RedHat, SUSE, Ubuntu, Xandros); n Solaris; n Windows XP/2003. В качестве хранилища информации использован PostgreSQL. Доступны плагины не только для OpenOffice.org/StarOffice, но и для Microsoft Office, поэтому нет необходимости изменять существующее программное обеспечение, после его установки публиковать документы можно прямо из окна приложения. Кроме этого, доступен веб-интерфейс, построенный с использованием технологии AJAX, обеспечивающий пользователя рабочей средой, доступной в любом месте Сети, с возможностью организации рабочих областей для групп пользователей. Информация о пользователях и группах может браться с сервисов LDAP. Имеется возможность поиска информации в документах ODF, PDF и MS Office. Чтобы не держать веб-браузер открытым, на компьютере дополнительно может быть запущен O3Spaces Workplace Assitant, отслеживающий

№9, сентябрь 2007

Рисунок 1. Рабочее окружение пользователя

все изменения в документах и при наличии уведомляющий о них пользователя, выбрав пункт в меню ассистента, можно сразу же перейти на выбранную страницу с документами. С его помощью также устанавливается и удаляется плагин для офисных пакетов. В настоящее время интерфейс O3Spaces переведен на датский, голландский, английский, французский, немецкий, норвежский и польский языки, при необходимости легко может быть добавлена поддержка любого другого языка. Распространяется O3Spaces в трех редакциях: On Demand, Professional и Open. Первые две платные и отличаются поддержкой LDAP, возможностью работы в кластере и другими функциями [2]. O3Spaces можно уже встретить в комплекте некоторых дистрибутивов Linux вроде Mandriva Corporate Server. Версию Open обещают представить общественности в конце 2007 года.

Тестируем Полная версия O3Spaces приходит в виде Workspace Deployment Kit, в котором содержатся все необходимые компоненты и скрипты, обеспечивающие его развертывание.

Для того чтобы скачать демонстрационный вариант, необходимо зарегистрироваться на сайте, после чего на указанный при регистрации почтовый ящик придет сообщение, содержащее логин и пароль для доступа к серверу. Доступны два варианта демо-версии: установочный пакет для Windows и образ для виртуальной машины VMware. Рекомендую остановить свой выбор на последнем, который представляет собой операционную систему Ubuntu 6.10 с полностью настроенным O3Spaces. Пакет для Windows хоть и содержит все необходимые компоненты, но его, возможно, придется донастраивать, так как не во всех случаях сервер O3Spaces работает корректно. Для доступа используем ссылку на рабочем столе или вызываем браузер со страницей http://localhost/ Spaces. Для регистрации следует использовать одну из учетных записей Ron, Amy, George и Martin (пароль для всех один tester). Эти пользователи имеют различные роли и соответственно разные рабочие окружения. Ч то бы с р а зу же с тар то в а л и Workplace Assistant, следует установить флажок «Start Workplace Assistant».


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

Рисунок 2. Публикация документа

Ключевым понятием O3Spaces является рабочая область, которая создается для конкретного проекта или задачи. Пользователь может самостоятельно создавать любое количество областей. Кроме хранения документов, рабочая область содержит и другие инструменты, обеспечивающие совместную работу – календарь и форум. После регистрации пользователя в появившемся окне ему будут показаны новые сообщения и выведен список документов, в которых производились изменения и вновь созданных. В отдельном окне будут показаны пользователи, находящиеся в это время в он-лайн. Интерфейс очень прост и понятен, пользователь быстро его освоит, несмотря на отсутствие локализации. Поддерживаются все стандартные операции вроде копирования, перемещения, создания файлов и каталогов и прочее. Добавить новый док умент из OpenOffice.org очень просто, выбираем в меню «Опубликовать документ» (Publish Document) и указываем рабочую область. Есть и возможность экспорта файла, в этом случае он будет сохранен в формате PDF.

Открыть опубликованный документ можно, как в OpenOffice.org, где следует использовать пункт «Открыть в рабочей области» (Open from Workplaces), или непосредственно во вкладке «Files O3Spaces». Когда документ открыт, O3Spaces автоматически заблокирует его от редактирования для остальных пользователей. После того как документ будет сохранен и закрыт, O3Spaces отметит его как новую версию. Если вносить изменения в документ не планируется, можно открыть его в режиме для чтения «Open File Read-Only», в этом случае документ блокироваться не будет. Есть отдельные пункты «Lock» и «Unlock», с помощью которых можно заблокировать и разблокировать документ. Если выбрать документ, в окне слева будут показаны его версия, создатель, кто и когда внес последние изменения. В двух полях внизу показываются версии документа и комментарии. Список пользователей, которые могут работать с документом, находится в Members, чтобы пригласить нового участника, необходимо ввести его имя или почтовый адрес в поле Invite.

Следует отметить большие возможности по настройке рабочей области. Рабочая область в O3Spaces состоит из множества контейнеров, которые называются spacelet. Пользователь может самостоятельно добавлять и удалять spacelet, выбрав в меню «Edit workspace». Быстро переключаться между инструментами и документами позволяет система вкладок. Чтобы было легче редактировать документ, можно открыть разные его версии в нескольких вкладках, при работе с документом возможно добавление комментариев, поясняющих изменения. Пользователь может самостоятельно создавать новые вкладки, устанавливая в них spacelet. Делается это очень просто, сначала создаем новую вкладку, выбрав «Actions → Add page» и вариант «New tab» или «New sub page». В поле «Unused spacelet» будут показаны доступные, но неиспользуемые spacelet, выбираем нужный и в контекстном меню пункт «Place on page». Если какого-то spacelet в списке нет, то добавляем его, используя пункт «Add spacelet». Выбирая нужные пункты меню, компоненты можно разместить в один, два или три ряда и изменить его некоторые свойства. Для удобства администратор создает различные шаблоны рабочей области, на которые добавляет нужные spacelet и вкладки, а пользователи просто выбирают подходящий. Как видите, O3Spaces простой в использовании продукт с понятным и легко настраивамым интерфейсом. Хотя он и уступает по функциональности Microsoft Windows SharePoint Services, но не это главное. Его появление выводит бесплатный пакет OpenOffice.org на совершенно другой уровень, позволяя конкурировать с офисным пакетом от Microsoft. Особенно он будет полезен для организаций с небольшим бюджетом. 1. Официальный сайт проекта – http:// www.o3spaces.com. 2. С р а в н и т е л ь н а я т а бл и ц а в е р с и й On Demand и Professional – http:// o3spaces.com/Page/sp39/ml2/nctrue/ index.html.


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

Есть проблема? Есть решение! Хотите знать больше? Хотите стоить дороже? Хотите перспектив? Обучение в Центрах карьерного роста ТЕКАМА позволит значительно увеличить вашу стоимость на рынке, а знание технического английского языка оставит ваших конкурентов далеко позади.

Рынок фицированных разработчиков програм- ке существующих или потенциальных В последние годы в России наблюда- много обеспечения, обладающих до- сотрудников компаний. ется прогрессирующий дефицит спе- статочными теоретическими знаниями циалистов в IT-отрасли, способствую- и практическими навыками. Основными Перспективы щий агрессивному росту заработных преимуществами программы iCarnegie О с в о е й п од д е рж ке п р о г р а м м ы плат. Как показали результаты иссле- являются оптимальное сочетание тео- iCarnegie заявили многие российские дования, проведенного специалистами рии и практики с точки зрения реаль- и украинские компании, в числе кокомпании ТЕКАМА, в целом по стра- ной работы и бизнеса, качество, гаран- торых объединение компаний-разране уже сейчас наблюдается нехватка тируемое брендом и процедурами под- ботчиков Некоммерческое Партнерсквалифицированных кадров в облас- готовки и оценки студентов, привязка тво РУССОФТ. Компания ТЕКАМА ти разработки программного обеспе- учебных программ к конкретным обя- предлагает целый перечень меропричения порядка 35 тысяч человек. Лишь занностям и позициям, использование ятий, которые позволят молодым спеу 14% крупных и 5% средних компаний, передовых технологий, инструментария, циалистам найти своего работодатеработающих в данной сфере, обеспе- best practices, стандартов, приоритет не- ля: есть возможность отслеживать ваченность кадрами не вызывает особых зависимым решениям (и как следствие – кансии работодателей на внутреннем проблем. Особенно заметно осложни- экономия и универсальность). сайте iCarnegie, проверить свои навылась ситуация в последние годы в реПрограмма iCarnegie – это прекрас- ки и умения on-line, принять участие зультате открытия в России собствен- ная возможность стать настоящими в закрытых встречах с представителяных центров разработки крупными профессионалами по программной ми работодателей, получать рассылки международными компаниями. инженерии, создать задел для даль- с новостями и информацией о стартуюПо словам министра информаци- нейшего карьерного роста и уверенно щих проектах, а также о новых ваканонных технологий и связи России Ле- смотреть в будущее. Уже более 100 ты- сиях. В свою очередь ведущие компаонида Реймана, уже в 2010 году объ- сяч специалистов в мире прошли обу- нии индустрии отслеживают успеваеем отечественного рынка IT с нынеш- чение по программе iCarnegie и свы- мость студентов с самого начала обуних 12 млрд. долларов вырастет бо- ше 1000 компаний привлекли к рабо- чения, предлагают решить определенлее чем в три раза, достигнув показа- те ее выпускников. Сеть центров обу- ные тестовые кейсы, участвовать в сотелей в 40 млрд. долларов. Как отме- чения iCarnegie охватывает 18 стран ревнованиях, тестированиях и провотил министр, объемы экспорта IT-про- мира, в числе которых и Россия. Вы- дят гостевые лекции. дукции также вырастут с нынешних бор ТЕКАМА подкреплен опытом комЗадача подготовки высококвали1,8 млрд. до 10 млрд. долларов. Подоб- пании в сфере консалтинговых и об- фицированных разработчиков ПО, коные прогнозы основаны на таком фак- разовательных услуг, ее партнерством торую решает компания ТЕКАМА, трете, что с 2000 года, объемы российско- с лидерами индустрии, наличием собс- бует достаточного числа подготовленго сектора информационных техноло- твенной базы знаний, контактами с из- ных инструкторов, опыта в обучении гий ежегодно увеличиваются в сред- вестными университетами и профес- такого рода специалистов, подготовнем на 20%, а в скором времени, с от- сиональными сообществами. ленных классов и, главное, сбалансикрытием технопарков, темпы роста Учебный план программы iCarnegie рованной программы обучения. Куротрасли еще возрастут. Деятельность по разработке систем программно- сы iCarnegie, преподаваемые в Центв сфере информационных технологий го обеспечения (Software Systems рах карьерного роста ТЕКАМА, разсегодня ведут несколько десятков ты- Development SSD) состоит из 10 кур- работаны таким образом, что обучесяч компаний, большая часть из кото- сов, объединенных в 2 уровня серти- ние на них может пройти как уже слорых испытывает дефицит квалифици- фикации: «Компьютерное программи- жившийся специалист-разработчик, рованных кадров, планка требований рование» и «Разработка программных так и человек, лишь отдалено знакок которым постоянно поднимается. комплексов». Каждый курс программы мый с понятием программирования. iCarnegie – это возможность получить Гибкость и эффективность програмПодготовка кадров не только фундаментальные профес- мы обучения, технический английсРешить проблему нехватки квалифи- сиональные знания, но и практичес- кий язык, трудоустройство обученных цированных специалистов призвана кие навыки, благодаря участию в ре- специалистов, поддержка ведущих игнедавно стартовавшая в России меж- альных проектах по разработке про- роков рынка разработки ПО – все это дународная образовательная програм- граммного обеспечения. Сегодня на- компоненты успеха ТЕКАМА. ма iCarnegie. Центры карьерного роста личие сертификата iCarnegie является Иван Коломацкий ТЕКАМА готовят высококлассных серти- серьезным преимуществом при оцен№9, сентябрь 2007


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

Три способа миграции с SPS 2003 на MOSS 2007

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


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

В

Преимущества и недостатки способов миграции июльском номере вы познакомились с особенностями ноСпособ миграции Плюсы Минусы вой версии портала Microsoft In-place Это самый быстрый и простой способ. Во время миграции весь портал полностью Сохраняются без изменений URL-адреса недоступен. Этот способ применим только Sharepoint [6]. Если ранее вы акузлов в том случае, если базы данных портала тивно использовали его предыдузанимают менее 30 Гб. Нельзя осуществить обратный переход на предыдущую версию щую версию, то обновление портала потребует от вас немало времеGradual Узлы портала можно переводить Требуется двойной объем дискового постепенно. Сохраняются без изменений пространства (т.к. параллельно существуют ни и усилий. Миграция с Sharepoint URL-адреса узлов. Старые версии по две версии каждого узла). Этот способ Portal Server 2003 на Microsoft Office узлов остаются доступными (по другому нельзя использовать, если в ферме несколько адресу). Можно осуществить обратный фронт‑энд-серверов. Этот способ нельзя Sharepoint Server 2007– задача трупереход на предыдущую версию применять, если вместо полноценного доемкая, особенно если портал подSQL‑сервера используется MSDE вергался кастомизации и редизайну, Database migration Можно параллельно осуществить переход Это наиболее трудоемкий способ. Требуется на новый сервер/ферму серверов. двойной объем дискового пространства. в частности: Редирект со старых URL-адресов необходимо Можно параллельно поддерживать n создавались собственные опреденастраивать вручную старую и новую версии портала ления узлов (site definitions); Миграция баз данных особенно удобна, когда нужно n страницы редактировались внешними средствами (нане просто перейти на новую версию продукта, но и перепример, Microsoft Frontpage или Visual Studio); n установлены веб-части сторонних производителей или нести всю систему на другое аппаратное обеспечение. Впрочем, имеется еще один нюанс выбора способа обсобственной разработки; новления. В процессе миграции тем или иным способом n написаны свои aspx-страницы для портала; иногда возникают неизвестные ошибки, не описанные в руn изменены стилевые таблицы; n в собственном программном обеспечении используют- ководствах. Некоторые возможные проблемы и способы их решения приведены в разделе «Возможные ошибки». ся веб-сервисы Sharepoint. В отдельных случаях журналы обновления и сообЕсли же в SPS 2003 использовались только стандарт- щения об ошибке не содержат достаточно информации ные средства создания и редактирования страниц с помо- для ее идентификации и исправления. В таких случаях иногщью встроенного веб-интерфейса, то вероятность возник- да проще попробовать альтернативный способ миграции. новения проблем в ходе перехода на новую версию значиПодготовка к миграции тельно ниже. Настоятельно рекомендуется сделать полную копию рабочей системы и опробовать миграцию сначала на тестоВыбор способа миграции Microsoft предлагает три способа миграции на новую вер- вой копии. Правильный путь – тестовую копию разворачивать сию продукта: n in-place upgrade (автоматическое обновление) – пол- на виртуальной машине. Сначала восстановите полную коное обновление всего портала, все узлы переносятся пию рабочего портала SPS 2003, затем сохраните состояние виртуальной машины. одновременно; Это сэкономит вам время – если один из способов мигn gradual upgrade (постепенное обновление) – параллельно установлены две версии портала, узлы перено- рации не подойдет и понадобится попробовать другой, вам не нужно будет снова восстанавливать копию SPS 2003, сятся поочередно; n database migration (миграция баз данных) – подклю- достаточно вернуться к нужному состоянию виртуальной чение баз данных содержимого портала SPS 2003 к ус- машины. Если вы собираетесь применить способы gradual upgrade или database migration, то сохраните состояние виртановленному «с нуля» MOSS 2007. туальной машины и сразу же после установки MOSS 2007, Эти три версии используются как для миграции также с целью создания точки возврата. Перед началом миграции убедитесь, что у вас установлен Sharepoint Portal, так и для перехода с WSS 2.0 на WSS 3.0. Плюсы и минусы использования каждого варианта мигра- Service Pack 2 для SPS 2003. Для обновления также понадобится WSS 3.0 Language Pack для русского языка, который ции приведены в таблице. Миграция in-place рекомендуется в случаях, когда все можно скачать на сайте Microsoft: http://www.microsoft.com/ компоненты Sharepoint установлены на одном сервере и downloads/details.aspx?displaylang=ru&FamilyID=36ee1bf0652c-4e38-b247-f29b3eefa048. портал не подвергался серьезной кастомизации. Постепенное обновление рекоПереход на новую версию водить на новую версию SQL Server. Если мендуется для фермы серверов в и SQL‑сервер портал предполагается установить на нослучаях, когда важен минимальный перерыв в работе портала, или в слу- Как известно, для работы Sharepoint пор- вом программном обеспечении, удобно тала необходим Microsoft SQL Server. совместить миграцию портала и миграцию чаях, когда удобнее переносить узлы по очереди (например, миграция от- MOSS 2007 работает как с версией MS SQL сервера SQL. Версия 2005 SQL Server поздельных узлов потребует много вре- Server 2005, так и с предыдущей версией волит использовать дополнительные возмени в результате значительной кас- MS SQL Server 2003. Поэтому перед миг- можности инструментов Reporting Services рацией портала нет необходимости пере- при построении бизнес-отчетов. томизации).

№9, сентябрь 2007


администрирование Само собой разумеется, перед окончательной миграцией рабочего портала необходимо сделать полную резервную копию: n всех баз данных, их как минимум четыре:  база данных конфигурации (по умолчанию «SPS_01_ Config»);  база данных параметров компонентов (по умолчанию «Первые_8_Букв_Названия_Портала1_SERV»);  база данных профилей (по умолчанию «Первые_8_ Букв_Названия_Портала1_PROF»);  база данных содержимого (их может быть несколько, по умолчанию это база «Первые_8_Букв_Названия_Портала1_SITE»). n директории «%PROGRAMFILES%\Common Files\Microsoft Shared\web server extensions\60». Перед началом установки новой версии портала необходимо установить .NET Framework 3.0 и в настройках IIS разрешить ASP.NET 2.0 (см. рис. 1). Первым делом перед началом миграции необходимо запустить утилиту prescan.exe. Ее можно скачать по адресу http://go.microsoft.com/fwlink/?LinkId=92383 или найти по адресу «%PROGRAMFILES%\Common Files\Microsoft Shared\web server extensions\12\BIN», после установки новой версии портала. Для первых двух способов обновления выполнить предварительное сканирование нужно до запуска мастера конфигурации и настройки. Для сканирования всего портала запустите команду: prescan.exe /c preupgradescanconfig.xml /all

Для сканирования отдельного узла: prescan.exe /c preupgradescanconfig.xml /v URL

Результаты работы утилиты сохраняются в файлах PreupgradeReport_uniqueID_Log.txt и PreupgradeReport_ uniqueID_Summary.xml во временной папке пользователя, который запускал сканирование, например, «%SYSTEMDRIVE%:\ Documents and Settings\admin\Local Settings\Temp».

Рисунок 1. Настройка .NET 2.0 для IIS

10

По файлам нужно запустить поиск по слову «error» и найти сообщения об ошибках. Кроме того, в этих файлах можно найти предупреждения о том, какие узлы и страницы были модифицированы, вследствие чего при их миграции могут возникнуть проблемы, и статистику по их числу. В частности, обратите внимание на записи: n Number of broken sites, number of broken webs – количество проблемных узлов. n Number of webs using custom template – количество узлов, где используются собственные шаблоны (определения). n Number of unghosted pages – количество узлов с отсоединенными страницами. Руководства по миграции портала не содержат описаний всех возможных ошибок и способов их решения. Однако запустить эту утилиту все же необходимо. Во-первых, без запуска этой утилиты процесс миграции просто-напросто не запустится. Во-вторых, если в ходе миграции возникнут проблемы, вы будете знать их возможный источник. Наконец, в-третьих, вы будете иметь под рукой список потенциально проблемных узлов, страниц и веб-частей. Несколько распространенных ошибок, на которые указывает утилита prescan, описаны в разделе «Возможные ошибки». Перед началом миграции необходимо определиться, каким образом поступить с кастомизированными определениями узлов (customized site definitions), если они имеются на портале. Один из вариантов – создать специальные файлы апгрейда определений (uprgade definitions). Подробную информацию о структуре этих файлов можно найти в Office 2007 SDK [3]. Разместить файлы апгрейда определения узлов (upgrade definition files) необходимо до начала миграции в папке «%PROGRAMFILES%/Common Files/Microsoft Shared/Web server extensions/12/CONFIG/UPGRADE». Другие варианты адаптации определений узлов будут рассмотрены дальше (см. раздел «Действия после миграции»). Если выбраны способы gradual upgrade или database migration, проверьте, достаточно ли на сервере баз данных дискового пространства, чтобы поддерживать по две копии содержимого портала. После завершения тестовой миграции просмотрите все узлы или хотя бы наиболее важные. Особое внимание уделите кастомизированным узлам и страницам, а также тем, которые упоминались в отчете программы prescan. Рекомендуется провести тестовую миграцию до конца, включая postupgrade шаги (см. раздел «Действия после миграции») и довести тестовую


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

Рисунок 2. Установка портала с автоматическим обновлением

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

In-place-миграция Это самый простой и быстрый способ миграции. Запустите программу установки Microsoft Office Sharepoint Server. Выберите способ «Автоматическое обновление» (см. рис. 2).

Рисунок 3. Настройка нового портала с помощью мастера

Когда программа установки завершит свою работу, запустится «Мастер настройки продуктов и технологий Microsoft». По запросу мастера или до его запуска установите WSS 3.0 Language Pack для русского языка. В ходе работы мастера введите необходимые параметры: номер порта для узла центрального администрирования и способ аутентификации (этот шаг может быть пропущен при установке на standalone-сервер) (см. рис. 3). После завершения настройки откроется страница с информацией о ходе обновления портала. Остается лишь дождаться его окончания (см. рис. 4). Теперь можно переходить к главной странице центра администрирования со списком первоочередных задач по настройке новой версии портала (см. рис. 5). Если миграция проводится для фермы серверов, то необходимо сначала установить новую версию продукта на всех серверах фермы, затем поочередно на каждом сервере запустить «Мастер настройки», начиная с того сервера, где будет располагаться узел центрального администрирования.

Gradual-миграция

Рисунок 4. Выполнение автоматического обновления

№9, сентябрь 2007

Запус тите программу ус тановки Microsoft Office Sharepoint Server. Выберите постепенный способ обновления. Проведите установку и настройку с помощью «Мастера настройки продуктов и технологий Microsoft». По запросу выберите «Создать новую базу данных конфигурации» и укажите необходимые параметры (см. рис. 6). Далее укажите по запросу номер порта для узла центрального администрирования и способ аутентификации (NTLM или Kerberos). Когда работа мастера завершится и откроется страница центрального администрирования, в списке задач администратора можно найти все не-

11


администрирование новление и перенос». Затем Sharepoint Portal 2003 можно удалить. Как показывает опыт, этот способ миграции – самый проблемный. В ходе обновления могут возникать неизвестные ошибки, которые достаточно трудно определить и устранить. Чтобы не тратить на это слишком много времени, если ошибка возникла еще до начала обновления узлов, можно попробовать использовать на уже установленном портале третий вариант миграции – с присоединением баз данных.

Database migration

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

обходимые действия для миграции узлов на новую версию со ссылками на русскоязычную справку (см. рис. 7). Для начала миграции нужно перейти на вкладку «Операции» центра администрирования и выбрать раздел «Обновление и перенос → Состояние обновления содержимого узла». Откроется список веб-приложений старой версии портала. Нажмите кнопку «Начать обновление» рядом с желаемым приложением (см. рис. 8). Теперь нужно задать адрес для старой версии веб-приложения и указать параметры для новой версии: пул приложений, способ аутентификации, имена баз данных и сервер индексирования. Некоторое время придется подождать завершения изменений. После этого можно продолжить обновление – перейти к поочередной миграции узлов. Начинать обновление семейства узлов нужно всегда с корневого узла «/» (см. рис. 9, 10). Помимо веб-интерфейса, узлы можно обновлять с помощью утилиты командной строки stsadm. Утилита находится по адресу: «%PROGRAMFILES%\ Common Files\Microsoft Shared\web server extensions\12». Чтобы получить список всех узлов, которые необходимо обновить, выполните команду: stsadm -o enumsites -url http://server_name –redirectedsites

Чтобы обновить отдельный узел, нужно выполнить команду: stsadm.exe -o upgrade -sidebyside ↵ -url http://server_name/sites/site_name

Подробный список параметров утилиты stsadm с описаниями можно найти в 2007 Office Resource Kit [2]. После завершения миграции всех узлов нужно воспользоваться опцией «Завершить обновление» в разделе «Об-

12

Этот способ наиболее трудоемкий, однако при этом обновление портала удобно сочетать с переносом на другой сервер. Сначала необходимо установить с нуля MOSS 2007 либо на новом сервере, либо на том же самом с выбором опции «Не выполнять обновление». Затем необходимо выполнить настройку с помощью мастера, как это описано для постепенного обновления. После завершения работы мастера откроется сайт центрального администрирования. Необходимо создать по веб-приложению и соответствующему семейству узлов для каждого виртуального сервера предыдущей версии портала. Для фермы серверов и веб-приложений необходимо вручную выполнить настройку различных параметров: исходящий почтовый сервер, параметры безопасности, часовой пояс, квоты на размер файлов, управляемые пути и другие параметры [6]. Рекомендуется также подготовить заранее необходимую среду: установить сторонние и собственные вебчасти, подобрать подходящую тему, настроить оформление, разработать новые определения узлов и стилевые таблицы. Перед началом миграции на старом портале необходимо сделать базы данных содержимого старого портала доступными только для чтения, чтобы пользователи не смогли внести никаких изменений после начала перехода. Не забудьте выполнить резервное копирование баз данных перед началом миграции. Затем необходимо выполнить присоединение баз данных содержимого с помощью утилиты stsadm. Начинать нужно обязательно с базы данных содержимого, в которой находится главный узел портала. Для присоединения выполните команду: stsadm -o addcontentdb -url <http://newportalname> ↵ -databaseserver <dbservername> ↵ –databasename <portalname_SITE> ↵ -databaseuser <username> ↵ -databasepassword <password>

Напомню, что по умолчанию в портале создается одна база данных содержимого – «Первые_8_Букв_Названия_Портала1_SITE».


администрирование Однако личные узлы пользователей (My sites), если они имеются на портале, содержатся в другой базе данных – «Первые_8_Букв_Названия_Портала1_PROF». Для миграции этой базы данных операция «addcontentdb» не используется. Восстановить личные узлы можно при восстановлении общих служб, после присоединения основной базы данных содержимого. Сначала создайте веб-приложение для поставщика общих служб и семейство узлов, где будут располагаться личные узлы, например: stsadm -o createweb -url <mysiteurl> ↵ -sitetemplate SPSMSITEHOST -title "Личные узлы"

Затем выполните команду: stsadm -o restoressp -title <Restored_SSP> ↵ -url <ssp_url> -ssplogin <domain\ssp_login> ↵ -mysiteurl <mysiteurl> ↵ -indexserver <indexservername> ↵ -indexlocation <pathtoindex> -keepindex ↵ -sspdatabaseserver <dbservername> ↵ -sspdatabasename <portalname_PROF> ↵ -ssppassword <password>

По умолчанию индексы (параметр indexlocation) располагаются по адресу: «%PROGRAMFILES%\Microsoft Office Servers\12.0\Data\Office Server\Applications». После этого перезагрузите IIS и проверьте настройки личных сайтов на странице администрирования поставщика общих служб. Обновленные личные узлы будут доступны как по адресу mysiteurl, так и по ссылке «Мой узел» с главной страницы портала. После завершения миграции не забудьте сделать редирект со старого сервера Sharepoint на новый. Сделать это можно средствами самого IIS (см. рис. 11). Если вы хотите сохранить SPS 2003 для других целей, лучше переместить его на другой порт или другое доменное имя, чтобы по старым, привычным пользователям адресам происходило автоматическое перенаправление на новый портал.

Рисунок 6. Параметры базы данных конфигурации

n на рабочем сервере устанавливается и настраивается «с нуля» MOSS 2007;

n на временном, промежуточном сервере создается полная копия рабочей системы SPS 2003;

n на промежуточном сервере выполняется миграция; n на промежуточном сервере выполняется кастомизация узлов после обновления;

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

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

№9, сентябрь 2007

Рисунок 7. Задание для администратора по обновлению портала

13


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

Рисунок 8. Начать обновление веб-приложения

Полное описание опций копирования/восстановления можно найти в 2007 Office Resource Kit [2]. В общем и целом «продвинутый» способ значительно снижает вероятность возникновения критичных ошибок на «боевой» системе, позволяет администратору проявить фантазию и подобрать вариант миграции, наиболее подходящий к конкретной системе. Однако при этом необходимо тщательно следить за адресами узлов и в нужный момент настраивать редирект и/или оповещать пользователей о новом адресе узла. Кроме того, некоторые настройки (развертывание веб-частей, например) выполняются на уровне сервера, а не на уровне узла, и их придется выполнить на двух серверах.

Возможные ошибки в ходе миграции

Рисунок 9. Выбираем узлы для обновления

Однако при этом требуются дополнительные аппаратные ресурсы. Промежуточный сервер рекомендуется установить на виртуальной машине. Во-первых, чтобы иметь несколько возможных точек возврата (в виде сохраненных состояний виртуальной машины), во-вторых, чтобы иметь возможность переносить семейства узлов поэтапно. Копирование узла осуществляется с помощью утилиты stsadm. Для SPS 2003 она располагается по адресу «%PROGRAMFILES%\Common Files\Microsoft Shared\ web server extensions\60», а для MOSS 2007 – по адресу «%PROGRAMFILES%\Common Files\Microsoft Shared\web server extensions\12». Для копирования семейства узлов необходимо выполнить команду: stsadm.exe –o backup ↵ –url http://servername/sitecollectionname ↵ -filename SiteCollectionBackup.dat

Для восстановления семейства узлов из копии: stsadm.exe –o restore ↵ –url http://servername/sitecollectionname ↵ -filename SiteCollectionBackup.dat

14

Какие ошибки возникают во время миграции, в большей степени зависит от конкретного портала, его настроек и модификаций. Ряд ошибок и способы их устранения описаны в базе знаний Microsoft: http://support.microsoft.com/kb/937291. Здесь я перечислю некоторые достаточно часто возникающие проблемы. При восстановлении SPS 2003 из резервной копии возникает ошибка: «Illegal character path». В названии вашего портала встречаются кавычки, например, Портал ООО «Рога и копыта», или другой специальный символ. Для исправления перейдите к новой (восстановленной) базе содержимого и запустите скрипт (пример для кавычек): begin tran declare @s as nvarchar(4000) SELECT @s=replace ↵ (cast(PortalRecoveryBackup as nvarchar(4000)), ↵ '"', '') FROM PortalProperties print @s update PortalProperties set PortalRecoveryBackup = @s select PortalRecoveryBackup from PortalProperties -- ок? commit

При восстановлении SPS 2003 из резервной копии или попытке миграции баз данных возникает ошибка: «Схема базы данных устарела», или в журнале утилиты prescan указана ошибка: «Exception while looping through virtual servers». Проверьте, установлен ли для SPS 2003 второй сервиспак и все вышедшие патчи.


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

Действия после миграции

Рисунок 10. Дожидаемся завершения обновления узлов

Миграция прерывается с ошибкой, а в журнале утилиты prescan можно найти ошибки: « The following site has not been scanned…» или «There is no Web named…» или «FAILED to persist field schema of lists in web». Эта ошибка возникает, если в базе данных содержимого имеются «осиротевшие», т.е. оставшиеся без родителей объекты. Например, остался документ из удаленной библиотеки или сайт пользователя, профиль которого был удален. Для исправления ошибки нужно скачать hotfix с сайта Microsoft и выполнить команду: stsadm -o databaserepair -url http://siteurl ↵ -databasename databasename -deletecorruption

Подробная информация и ссылка на hotfix здесь: http:// support.microsoft.com/kb/918744. В процессе миграции возникает ошибка: «Violation of UNIQUE KEY constraint 'AllUserData_Url'. Cannot insert duplicate key in object 'dbo.AllUserData'». Эта ошибка возникает, если на портале есть несколько обсуждений (Discussion boards) с одинаковыми названиями. Для ее исправления необходимо дать каждому обсуждению уникальное имя, например, с помощью Front Page (подробности здесь: http://support.microsoft.com/kb/937290/ en-us). Если таких объектов много, можно написать небольшой скрипт. Мастер настройки завершает работу с ошибкой, а в логе содержится ошибка «The pre-upgrade scan tool has not yet been run on this database…». По всей видимости, вы забыли запустить утилиту prescan перед началом работы мастера. Страница администрирования или главный узел портала после миграции не открываются или выдается ошибка «Service unavailable». Чаще всего это связано с неправильной регистрацией ASP .NET 2.0. Чтобы исправить ошибку, нужно заново зарегистрировать .NET 2.0 (выполнить команду «aspnet_regiis –ir» из директории «%windir%\Microsoft.NET\ Framework\v2.0.xxxx»), проверить, правильно ли указана версия .NET в настройках сайта IIS «Центр администрирования Sharepoint» (или другого веб-приложения, с которым возникли проблемы), и перезапустить IIS.

№9, сентябрь 2007

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

Протокол обновления После завершения миграции рекомендуется просмотреть протокол обновления на предмет возможных ошибок. Файл называется Upgrade.log и располагается по адресу «%PROGRAMFILES%\Common Files\Microsoft Shared\ web server extensions\12\LOGS».

Настраиваем редирект Если использовался способ database migration или «продвинутый» способ миграции, не забудьте настроить перенаправление со старых адресов портала на новые.

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

Рисунок 11. Настройка перенаправления с помощью IIS

15


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

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

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

Резервное копирование

Рисунок 12. Определение прав доступа с помощью политики веб-приложения

MOSS 2007 не ограничивается тремя базами данных для хранения информации, поэтому не забудьте перенастроить резервное копирование с учетом всех используемых баз. Подробнее об этом рассказано в статье [6].

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

Unghosted pages Рисунок 13. Возврат к определению узла

доступа для всех узлов приложения (см. рис. 12).

Веб-части Если у вас есть веб-части собственной разработки, в большинстве случаев их необходимо перекомпилировать под .NET 2.0 и заново развернуть на портале. Если вы использовали веб-части сторонних разработчиков,

16

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

Больше всего проблем после миграции возникает с кастомизированными определениями сайтов и так называемыми «отсоединенными страницами» (unghosted pages). Если страница SPS 2003 хотя бы один раз открывалась в Microsoft Frontpage, даже без сохранения изменений, то она становилась unghosted, т.е. отсоединенной от определения узла. Такие страницы после миграции портала остаются без изменений. Обратного их присоединения автоматически не происходит, а внешний вид


администрирование остается такой же, как на старом портале. Если вы хотите использовать возможности нового портала на таких страницах или привести их внешний вид в соответствие с основным новым порталом, то можно выполнить «Возврат к определению узла». Для этого нужно открыть узел, перейти к его параметрам и выбрать соответствующий пункт меню в разделе «Внешний вид и функции». Здесь можно «вернуть» как отдельную страницу, так и узел целиком. Это же действие можно выполнить в Sharepoint Designer (см. рис. 13). Однако с этим инструментом нужно быть очень осторожным! Если страница была создана с нуля и в определении узла не может быть найдено подходящее соответствие, такой возврат, как показывает практика, может привести к полной неработоспособности страницы. Поэтому возврат нужно обязательно проверять на тестовой системе. Если вы на 100% уверены, что возврат пройдет нормально, то можно при выполнении миграции с помощью утилиты psconfig указать ключ для автоматического возврата всех страниц к определению узла: psconfig.exe -cmd upgrade ↵ -reghostonupgrade

Определения узлов

Отличия операций копирования/восстановления и экспорта/импорта Обратите внимание, что выполнять копирование и восстановление можно только для всего семейства узлов! В MOSS 2007 можно выполнять также экспорт/импорт содержимого отдельных узлов с помощью операций export/import утилиты stsadm или средствами Sharepoint Designer. Однако при этом узел, на который выполняется импорт, должен быть уже создан, а узлы, кастомизированные в SPS 2003, могут быть импортированы с ошибками.

Возобновление миграции после исправления ошибок Если автоматичес кое или пос тепен ное обновление завершается с ошибкой, после ее исправления для возобнов-

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

Веб-сервисы и собственные aspx-страницы В новой версии Sharepoint API также появились изменения. Поэтому вебсервисы и собственные aspx-страницы, использующие API и объектную модель Sharepoint, необходимо проверить на наличие ошибок. Описание изменений в API можно найти в Sharepoint Server 2007 SDK [3] или по адресу: http://msdn2.microsoft.com/en-us/library/ ms581339.aspx. Кроме того, aspx-страницы, работающие в рамках портала, необходимо перекомпилировать под .NET 2.0. Если вы использовали на собственных страницах ссылки на стандартные представления списков или библиотек, проверьте корректность их работы – принципы формирования URL для некоторых из них изменились.

Что касается кастомизированных определений узлов, то их, по всей видимости, придется переделывать заново. Если, конечно, вы не использовали файлы обновления определений. Рекомендуемый способ – выполнить возврат к определению узла, а затем внести необходимые изменения в шаблоны страниц (master pages) и раскладки страниц (page layouts). При этом желательно иметь под рукой старую версию узла, чтобы не забыть Заключение Миграция Sharepoint Portal Server или внести все необходимые детали. Механизм использования master Windows Sharepoint Services иногда pages появился только в новой вер- превращается в занимательную госии портала, и вносить изменения ловоломку, отнимающую немало сил в страницы с его помощью значитель- и времени. Хорошо по крайней мере, что зано удобнее. Можно поступить и по-другому – дача эта однократная, хотя отдельсначала внести изменения в шабло- ные ошибки могут время от времени ны страниц, так, чтобы они соответс- «всплывать» и после завершения протвовали старому виду узла, затем вы- цесса миграции.

№9, сентябрь 2007

ления миграции можно воспользоваться утилитой psconfig, которая также располагается в папке «%PROGRAMFILES%\ Common Files\Microsoft Shared\web server extensions\12». Для возобновления автоматического обновления используется команда: psconfig -cmd upgrade ↵ -inplace v2v -wait -force

Для постепенного обновления вместо «inplace» необходимо указать «sidebyside». Подробное описание параметров можно получить по команде: «psconfig –help upgrade». Если ошибка возникла на стадии обновления узлов, то достаточно возобновить задание по обновлению в разделе «Обновление и перенос» центра администрирования или запустить обновление узлов заново.

В основном это некорректное отображение отдельных страниц и веб-частей или же неверные ссылки, поэтому после обновления важно просмотреть все узлы как можно подробнее и попросить пользователей сразу же сообщать обо всех замеченных неисправностях. Однако преимущества новой версии с лихвой окупят страдания администратора. И чем раньше провести обновление – тем лучше, ведь сложность системы и объем содержимого портала растут с каждым днем. 1. Официальные рекомендации Microsoft по миграции – http://technet2.microsoft. com/Office/en-us/library/396c85d9-4b86484e-9cc5-f6c4d725c5781033.mspx. 2. 20 07 Of fice Resource Kit – ht tp:// technet2.microsoft.com/Office/en-us/ l i b r a r y/ 9 d f1c7d 2- 3 0 a 9 - 47 b b - a 3 b 25166b394fbf51033.mspx?mfr=true. 3. Sharepoint Server 2007 SDK – http:// www.microsoft.com/downloads/details. aspx?FamilyID=6d94e307-67d9-41acb2d6-0074d6286fa9&DisplayLang=en. 4. Noel, Spense. «Microsoft Sharepoint Unleashed». Indianapolis, Sams Publishing, 2007. 5. Upgrading to Office Sharepoint Server (downloadable book) – http://go.microsoft. com/fwlink/?LinkId=85556. 6. Садретдинова Н. MOSS 2007: быстрая настройка и самые интересные возможности. //Системный администратор, №7, 2007 г. – С. 18-30.

17


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

Система управления запросами OTRS

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

З

адача системы управления запросами (ticket request system или trouble ticket system) состоит в учете запросов, поступающих от клиентов, назначения исполнителя, который будет разбираться с проблемой, и контроля за выполнением. Для организаций, получающих много писем и звонков (например, ISP), это позволяет быстрее среагировать на запрос, не дублировать ответ в том случае, если клиент отослал вопрос разными способами или несколько раз, тем самым система управления запро-

18

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

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


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

Возможности OTRS Одним из самых популярных решений, распространяемых по лицензии GNU GPL, является OTRS (Open Ticket Request System, [1]), разработку которого в 2001 году начал Мартин Еденхофер (Martin Edenhofer). OTRS является веб-приложением, все функции по администрированию, ответы на запросы и их создание пользователями осуществляются через обычный веб-браузер. В отличие от некоторых подобных решений, активное содержимое, вроде Flash или Java, не используется, в качестве языка разработки применен Perl. Интерфейс OTRS переведен на несколько языков, среди которых есть и русский. Внешний вид можно изменить, используя темы. Состоит OTRS из нескольких модулей.

№9, сентябрь 2007

Рисунок 1. Постинсталляционная настройка OTRS в Ubuntu Linux

Основной модуль содержит все функции, необходимые для работы с заявками клиентов. При необходимости администратор через веб-интерфейс может установить дополнительные модули, которые повышают удобство работы с системой. Среди них веб-почта, контент и файловый менеджер, модуль, позволяющий отслеживать статус работы системы. В почтовых сообщениях можно использовать вложения, сообщения, содержащие вставки HTML-кода, автоматически преобразовываются в обычный текст. Поддерживаются PGP и SMIME. Реализована фильтрация почты по заголовкам и почтовым адресам (например, спам). Можно самостоятельно создавать шаблоны автоответов и ответов пользователям. Например, в ответ пользователю можно автоматически добавлять список часто задаваемых вопросов. Для очереди запросов можно указать нужную конфигурацию, поддерживаются вложенные очереди и перемещение сообщений из одной очереди в другую. Сотрудникам могут быть определены разные права для доступа к элементам системы, поддерживаются группы и роли. Роли позволяют задать политики сразу для группы. Имеется возможность аутентифи-

кации средствами внешних систем (базы данных, LDAP, Radius, HTTPAuth). Система предоставляет самые разнообразные отчеты, которые могут быть представлены в том числе и в формате PDF. В качестве базы данных подойдет MySQL, PostgreSQL, MaxDB/SAPDB, DB2, Oracle, MS SQL Server (первые две рекомендуемые, последняя появилась в списке совсем недавно). И еще много чего, полный список возможностей приведен в документации. Для работы OTRS потребуется компьютер под управлением Linux, Solaris, AIX, FreeBSD, OpenBSD, Mac OS 10.x или Windows. По уверениям разработчиков особых требований к аппаратному обеспечению нет, но в документации рекомендуемым является компьютер с процессором класса 2 Гц Xeon, 2 Гб ОЗУ и с жестким диском в 160 Гб.

Установка OTRS Перед установкой OTRS советую ознакомиться с демоверсией на сайте проекта [2]. На странице закачки сайта проекта OTRS можно найти как исходные тексты, так и пакеты для указанных выше операционных систем. Для Linux есть прекомпилированные пакеты для SUSE/OpenSUSE и RedHat/Fedora.

19


администрирование талоге bin архива с исходными текстами. Например, при установке OTRS из репозитария в Ubuntu в систему будут установлены далеко не все модули (см. рис. 2). Распаковываем архив и переименовываем каталог: $ $ $ $

cd /opt tar -xjvf otrs-2.2.2.tar.bz2 mv otrs-2.2.2 otrs cd otrs

Создаем новую учетную запись для работы OTRS: $ sudo useradd -d /opt/otrs/ -c 'OTRS user' otrs

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

Пакеты с исходными текстами (SRPM) можно найти на FTP‑сервере. Кроме этого, пакеты OTRS можно найти в репозитарии своего дистрибутива. Так, для установки в Debian/Ubuntu достаточно ввести: «apt-get install otrs2» (есть в репозитарии и первая версия OTRS), после этого будут закачаны и установлены все необходимые пакеты. Далее dbconfig-common запросит некоторые параметры настройки (см. рис. 1), среди которых следует выбрать используемую СУБД, указать пароль администратора базы данных и пользователя для работы OTRS. Для установки в Gentoo используйте следующую команду: «emerge otrs». В файл для Windows включены все необходимые компоненты, поэтому достаточно его установить обычным образом, при этом язык интерфейса также будет подобран автоматически, исходя из системных настроек. В репозитарии версия пакета, как правило, запаздывает, поэтому вы, вероятно, захотите воспользоваться вариантом установки из исходных текстов. В этом случае потребуется: n интерпретатор Perl5; n веб-сервер Apache2 (весьма желателен mod_perl); n СУБД (MySQL, PostgreSQL); n LDAPv2-совместимый сервер, например OpenLDAP; n дополнительные модули Perl, которые можно взять на CPAN – DBI, DBD::mysql, Digest::MD5, Crypt::PasswdMD5, MIME::Base64, Net::DNS, LWP::UserAgent, Net::SMTP, Authen::SASL; n дополнительный модуль для LDAP – Net::LDAP; n модули для статистики – GD, GD::Text, GD::Graph, GD::Graph::lines, GD::Text::Align; n модули для вывода в PDF – PDF::API2, Compress::Zlib.

Один из вариантов запустить веб-сервер от имени этого пользователя, мы же просто добавим его в группу, под которой работает веб-сервер: $ cat /etc/apache2/apache2.conf | grep Group Group www-data

В SUSE это будет nogroup, в Red Hat – apache и т. д. $ sudo usermod -G www-data otrs

Конфигурационные файлы и права доступа В подкаталоге Kernel размещено несколько демонстрационных конфигурационных файлов, следует убрать у каждого префикс dist или example: $ sudo cp Kernel/Config.pm.dist Kernel/Config.pm $ sudo cp Kernel/Config/GenericAgent.pm.dist ↵ Kernel/Config/GenericAgent.pm

В файле Config.pm OTRS хранится информация о доступе к базе данных: # Адрес сервера $Self->{DatabaseHost} = 'localhost'; # Название базы данных $Self->{Database} = 'otrs'; # Пользователь и пароль для доступа, для зашифровки пароля # можно использовать bin/CryptPassword.pl $Self->{DatabaseUser} = 'otrs'; $Self->{DatabasePw} = 'пароль';

Чуть ниже следует строка, описывающая тип СУБД, и указывается местонахождение корневого каталога (по умолчанию /opt/otrs). В файле Kernel/Config/Defaults.pm редактируется имя узла, цифра SystemID, с которой будут начинаться все билеты, адрес электронной почты администратора, название организации, язык по умолчанию, кодировка и прочие параметры. Активация в этом файле параметра Эти модули легко установить с помощью CPAN: $Self‑>{SecureMode} отключит настройки через веб-интерфейс, а установка $Self‑>{HttpType} в https разрешит $ perl -MCPAN -e shell подключения только с использованием защищенного соединения. В большинстве случаев вручную их редактироinstall Digest::MD5 вать нет необходимости, все настройки производятся чеИли используйте репозитарий своего дистрибутива. рез веб-интерфейс. Проверить наличие необходимых модулей можно с поТеперь можно проверить работоспособность имеющихмощью скрипта otrs.checkModules, находящегося в подка- ся модулей:

20


администрирование $ sudo perl -cw /opt/otrs/bin/cgi-bin/index.pl /opt/otrs/bin/cgi-bin/index.pl syntax OK

$ sudo perl -cw /opt/otrs/bin/PostMaster.pl /opt/otrs/bin/PostMaster.pl syntax OK

Используя скрипт bin/SetPermissions.sh, устанавливаем права доступа на каталог otrs. Формат вызова такой: bin/SetPermissions.sh <OTRS_HOME> <OTRS_USER> <WEBSERVER_USER> [OTRS_GROUP] [WEB_GROUP]: $ sudo bin/SetPermissions.sh /opt/otrs otrs www-data ↵ www-data www-data SetPermissions.sh <$Revision: 1.31 $> - set OTRS file permissions Copyright (C) 2001-2006 OTRS GmbH, http://otrs.org/ Setting file permissions... chown -R www-data:www-data /opt/otrs chmod -R og+rw /opt/otrs chown otrs:www-data /opt/otrs chown -R otrs:www-data /opt/otrs/var/ chown -R www-data:www-data /opt/otrs/var/sessions/ touch && chown otrs:www-data /opt/otrs/var/log/TicketCounter.log chmod -R 775 /opt/otrs/bin/ (chown && chmod 700) otrs:0 /opt/otrs/bin/DeleteSessionIDs.pl (chown && chmod 700) otrs:0 /opt/otrs/bin/UnlockTickets.pl (chown && chmod 700) otrs:0 /opt/otrs/bin/otrs.getConfig

В подкаталоге var/cron расположены несколько заданий для cron. Здесь действуем аналогично, то есть убираем из имени префикс dist, а для запуска следует использовать свой скрипт bin/Cron.sh. Для того чтобы веб-сервер «видел» новые каталоги, добавляем в конфигурационный файл /etc/apache2/ apache2.conf: Alias /otrs-web/ "/opt/otrs/var/httpd/htdocs/" ScriptAlias /otrs/ "/opt/otrs/bin/cgi-bin/"

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

№9, сентябрь 2007

Как вариант можно использовать один из готовых шаблонов, расположенных в подкаталоге scripts: $ sudo cp scripts/apache2-httpd-new.include.conf ↵ /etc/apache2/sites-enabled/otrs.conf

И перезапускаем веб-сервер: $ sudo /etc/init.d/apache2 restart

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

Настройки через веб-интерфейс Для последующей настройки заходим на страницу http:// host/otrs/installer.pl. Теперь осталось пройти четыре шага. Сначала следует принять условия GNU GPL, далее указываем параметры доступа к используемой базе, пароль администратора и учетную запись для OTRS (см. рис. 3). Если все нормально, то после нажатия кнопки «Next» будут созданы необходимые таблицы. В следующем окне указываем System ID, FQDN-имя системы и e-mail администратора, название организации, месторасположение файлов журнала, кодировку (лучше использовать UTF-8), язык по умолчанию и проверку MX‑записи домена. Теперь по ссылке заходим на страницу http://localhost/ otrs/index.pl, для регистрации используем учетную запись root@localhost и пароль root, не забыв выставить русский язык интерфейса. На освоение интерфейса придется потратить некоторое время, но особых трудностей здесь быть не должно. После входа первым шагом следует зайти во вкладку «Администрирование» и настроить основные параметры OTRS. Здесь четыре пункта. Зайдя в «Пользователи & Группы & Роли» добавляем пользователей, которые будут обрабатывать заявки, группы и соответствующие роли, а также клиентов. По умолчанию в системе присутствует три группы – admin, stats и user, назначение которых очевидно, но для контроля доступа различных групп агентов (например, отдел закупок, техподдержка и т. п.) можно создать свои группы. Для изменения и добавления очередей, закрепления за ними групп, которые будут обрабатывать заявки, следует перейти в пункт «Очередь & Ответы». Здесь же настраиваются автоответы на заявки и прикрепленные файлы. Колонка «Система» позволяет настроить подписи, приветствия, список системных электронных адресов,

21


администрирование здесь же настраиваются PGP, SMIME и распределение сообщений по очередям. И наконец последняя, но не менее важная вкладка «Дополнительно». Здесь настраиваются почтовые адреса, на которые будут приходить сообщения, управление фильтром postmaster, планировщик задач, сообщения администратора и прочее. После этого можно протестировать систему, отправив сообщение на указанный адрес. В OTRS должна появиться новая заявка. Работу PostMaster можно проверить прямо из командной строки: $ cat /opt/otrs/doc/test-email-1.box | ↵ /opt/otrs/bin/PostMaster.pl

Sendmail, а в SendmailModule::CMD команда для отправки сообщения. Если в качестве SMTP-сервера используется Sendmail, просто указываем в SendmailModule::Host название узла, и можно тестировать отправку сообщения. Иначе в SendmailModule выбираем SMTP и в строке ниже указываем логин и пароль для аутентификации. В файле Kernel/Config.pm последний вариант выглядит так: # SendmailModule $Self->{"SendmailModule"} = "Kernel::System::Email::SMTP"; $Self->{"SendmailModule::Host"} = "mail.example.com"; $Self->{"SendmailModule::AuthUser"} = "user"; $Self->{"SendmailModule::AuthPassword"} = "password";

Советую пройтись по модулям, доступным во вкладке «Конфигурация системы», здесь спрятано большое количество всевозможных параметров и настроек. Итак, система управления запросами OTRS готова к выНастройка отправки сообщений Сейчас OTRS принимает сообщения от клиентов, но отпра- полнению своих функций. вить с его помощью нет возможности. Дополнительно хочется отметить подробную докуменПоэтому следующим шагом настраиваем связку с SMTP- тацию в виде 500-страничного руководства «OTRS Admin сервером, в качестве которого могут выступать Sendmail, Book», которая поможет разобраться со всеми вопросами Postfix, Qmail, Exim или любой другой. по администрированию OTRS. Настройка связки с SMTP-сервером производятся в «Администрирование → Дополнительно → Конфигура- 1. Сайт проекта OTRS – http://www.otrs.org. ция системы», затем в раскрывающемся списке «Выбор 2. Демоверсия OTRS – http://otrs.org/demo. группы» указываем Framework и в появившемся списке под- 3. Сравнение ticket tracking systems – http://en.wikipedia.org/wiki/ групп нажимаем на Core::Sendmail (см. рис. 4). Comparison_of_ticket-tracking_systems. По умолчанию в списке SendmailModule установлен 4. Репозитарий модулей Perl CPAN – http://www.cpan.org.

Рисунок 4. Настройка связки с SMTP-сервером

22


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

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

В

большинстве небольших комАдминистрирование UserGate выпаний локальные сети строят- полняется с помощью специального ся на основе операционных сис- модуля – UserGate Administrator. С его тем Windows, в том числе и сервер- помощью осуществляется вся наные решения. Одной из задач, решае- стройка сервера в соответствии с немых в рамках локальных сетей, явля- обходимыми требованиями. На комется обеспечение доступа сотрудни- пьютере пользователя может быть усков к Интернету. При этом необходимо тановлен клиентский агент, используобеспечить не только доступ, но и за- емый для авторизации. щиту от несанкционированного проВ программе реализованы различникновения в локальную сеть извне лю- ные способы авторизации пользоватебых вредоносных программ, могущих лей на сервере UserGate. Без установнанести какой-либо ущерб. ки клиента авторизации пользоватеОдним из решений, позволяю- ли могут регистрироваться по: IP-адщим реализовать перечисленные за- ресу, по IP-адресу вместе с MAC-аддачи, является программа UserGate ресом, через браузер по логину/паро(http://www.usergate.ru). Это прокси- лю – HTTP-авторизация. При установсервер, обеспечивающий подключе- ленном клиенте UserGate Authentication ние сотрудников компании к Интер- Client становится доступной авторинету через единый канал доступа. зация и с помощью учетных записей При подключении к Глобальной сети Active Directory. через модем можно регулировать скорость доступа для каждого подклю- Управление доступом чения индивидуально. При подклю- Управление доступом производитчении по выделенным линиям, ADSL ся на основе правил. С их помощью или иным высокоскоростным кана- можно настраивать параметры достулам такая возможность уже не явля- па как для отдельных пользователей, ется существенной. так и для групп (например, одни правиПрокси-сервер UserGate с поддер- ла будут действовать для сотрудников жкой NAT (Network Address Translation) рекламного отдела, другие – для бухработает на операционных системах галтерии и т. д). Правилами можно огWindows 2000/2003/XP. Особых вы- раничить доступ к определенным тичислительных ресурсов для работы пам ресурсов, время доступа (наприпрограммы не требуется, но вот место мер, можно установить запрет достуна диске для размещения кэша и лог- па к Интернету во вне рабочее время). файлов необходимо большое. В связи Другими правилами можно запретить с этим рекомендуется устанавливать скачивание файлов как по типу, так и прокси-сервер на отдельном компью- по размеру. Для удобства системного тере с двумя сетевыми интерфейсами. администратора разработчики предПроцесс установки не вызывает каких- лагают подготовленные фильтры реклибо сложностей, а настройка прокси- ламы и адульт-сайтов. сервера сопровождается детальными Там, где есть контроль доступа, подсказками. обычно присутствует и учет времеДля удобства работы программа ни доступа и/или трафика. Есть такая разделена на несколько модулей. подсистема и в программе UserGate. Серверный модуль запускается Ее данные могут быть задействована компьютере, имеющем подключе- ны для ограничения доступа к Сети ние к Интернету, и обеспечивает вы- при превышении сотрудниками выдеполнение основных задач программы. ленного объема трафика.

№9, сентябрь 2007

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

Михаил Брод

23


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

Проектируем систему обмена данными

Иван Коробко В любой организации помимо документооборота присутствует файлооборот. Как сделать его удобным и функциональным?

С

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

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

24

n DFS (Distributed File System, рас- не значит, что на папку устанавливаетпределенная файловая систе- ся атрибут «скрытый». Для пользовама). Представляет собой иерар- теля, который не имеет прав, как михическую файловую систему, ко- нимум, на просмотр папки, она исчеторая организует папки, опублико- зает, хотя физически она присутствуванные в сети на различных серве- ет на сервере и видна другим пользорах, в иерархическую древовидную вателям. структуру. n ABE (Access-based Enumerator). Использование ABE совместно Эта технология впервые была с DFS позволит сформировать индииспользована в Windows 2003 видуальное окружение для каждого Server SP1. С ее помощью можно пользователя, назначая нужные праскрывать папки, к которым поль- ва доступа на объекты, тем самым зователь не имеет права досту- обеспечив сотрудникам быстрый попа. Обратите внимание, что это иск нужной информации в сети.


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

По сравнению с предшественДля этого необходимо сделать ником, который также присутствует активным реплицируемый корень. в Administrative Tools в Control Panel, Для этого в меню «Action» выбрать новая утилита позволяет удалять не- «New Root Target» или в контекстном сколько пользователей одновременно, меню корня (см. рис. 4). а также несколько выбранных ссылок После этого запустится мастер соз(links). Теперь список всех линков вы- дания DFS-корня в урезанном вариводится полностью, тем самым испы- анте: в нем предоставляется возможтываемые в предыдущей версии не- ность изменить только имя сервера; удобства ликвидированы. сетевое имя папки уже назначено – Также в новой утилите добавлена оно берется из первой ссылки. новая схема репликации DFS. После того как будет добавлена еще одна ссылка на доменный корень, Структура DFS в контекстном меню корня станет доДревовидная структура DFS-томов ступен подпункт Configure Replication, включает в себя корень и ссылки. который запускает мастер настройки На Windows-сервере можно скон- репликации (Replication Wizard). фигурировать два типа корней DFS Настройка репликации осущест(Root) – изолированный (stand alone) вляется в несколько этапов: и доменный (domain). n укажите сервер, который будет репПринципиальная разница между лицироваться в первую очередь; ними заключается в том, что с помо- n выберите одну из топологий реплищью доменного корня может быть рекации: кольцо (ring), узлы (hub), смеализована система отказоустойчивосшанная (mesh), настраиваемая схети, построенная на репликации между ма репликации серверов (custom). серверами. На практике чаще всего используПосле завершения работы мастеют доменный корень. ра напротив доменного корня появляется характерный значок (см. рис. 1), Репликация DFS указывающий на репликацию данных Рассмотрим механизм репликации для между серверами. обеих утилит: Distributed File System и DFS Management. Необходимо пом- Репликация с помощью нить, что реплицировать можно толь- DFS Replication ко доменные корни. В новой утилите был полностью пересмотрен механизм репликации. Для его реализации реплицируемые Утилита Distributed File System Репликация с помощью с графическим интерфейсом показа- Distributed File System серверы должны быть полностью иденна на рис. 1. Суть репликации заключается в том, тичны (одинаковые версии пакетов исВ Windows 2003 Server появилась что нужно создать еще одну ссылку правлений). еще одна утилита управления DFS: на доменный корень (root target) на разМеханизм репликации вынесен ные серверы (см. рис. 3). в отдельную сущность (см. рис. 2). ПоDFS Management (см. рис. 2).

Поскольку технология DFS не нова и продолжает развиваться, то остановимся более подробно на последних нововведениях в DFS. В б ы т н о с т ь W i n d ows N T 4 и Windows 2000 распределенная файловая система обладала ограниченными возможностями. На одном сервере мог существовать только один доменный корень. Поэтому максимальное количество корней было ограничено числом используемых серверов. Говорить о реализации отказоустойчивости и создании сложной системы обмена на базе DFS не приходилось. С появлением Windows 2003 Server ситуация изменилась. Теперь на одном сервере можно создать сколь угодно много доменных корней DFS. Это позволило для каждого сотрудника сформировать персональное сетевое окружение. Кроме того, была реализована система отказоустойчивости: появилась возможность реплицировать доменные корни по одной из выбранных схем. В Windows NT/2000 DFS можно было управлять с помощью двух утилит: n DFSUtil – служащей для управления доменными корнями; n DFSCmd – служащей для управления ссылками.

Рисунок 1. Внешний вид утилит Distributed File System

№9, сентябрь 2007

Рисунок 2. Внешний вид утилит DFS Management

25


администрирование ки, имеет принципиальные отличия: изменение подхода к репликации DFS.

ABE Рисунок 3. Идея репликации

Рисунок 4. Создание второй ссылки на корень

явилась дополнительная роль у реплицируемых объектов. Если в предыдущей утилите репликантами выступали только доменные корни, то теперь это могут быть серверы. В любом случае серверы объединяются в группу. Репликация осуществляется по одной из указанных топологий. На первом этапе работы мастера необходимо выбрать тип репликации: Multipurpose Replication Group (репликация корня между двумя и более серверами) или Repliction Group of Data Colletion (репликация DFS между серверами). Создается идентичная копия DFS между двумя серверами (mirror). На следующем шаге создается группа: задаются имя группы и ее описание. Затем мастер просит создать список серверов, которые будут участвовать в репликации. На четвертом этапе мастер запрашивает имя сервера, с которого будет начата репликация. На заключительном этапе выбирают топологию репликации. Необходимо сказать, что новая утилита, повторяя в себе функционал первой и исправляя существовавшие ошиб-

Рисунок 5. Установка ABE. Выбор папки для установки

26

Технология позволяет скрывать папки в сетевом окружении для тех, у кого к ним нет доступа. До появления этой технологии в Windows 2003 SP1 такая возможность была реализована только в Novell NetWare. Новая технология позволяет: n Повысить уровень защиты папок. Пользователь может увидеть только те ресурсы, на которые ему предоставлены права. Ведь зачастую название документа несет в себе очень важную информацию. n Обеспечить безболезненную миграцию сетевых ресурсов. n Упрощает поиск необходимых документов, поскольку сотрудник видит только доступные для него документы. ABE отображает папки в сетевом окружении, основываясь на индивидуальных правах доступа пользователя к этим папкам (ACL). Установка ABE на сервер проходит быстро и не представляет никаких трудностей. Во время процесса инсталляции можно указать способ интеграции технологии в ОС (см. рис. 8): для всех папок, или конкретные папки будут указаны позже.

Установка ABE На сайте компании Microsoft доступна для загрузки ABEUI.msi версии 1.0.424.5 для Windows 2003 SP1 [6], функционирующей на базе одного из трех типов систем: AMD64, I386, IA64. Выбрав необходимый тип платформы, и загрузив файл из сети Интернет, приступим к установке ABE. Работа мастера состоит из нескольких шагов. На первом шаге предстоит принять условия лицензионного соглашения. В противном случае, продолжение процесса установки будет невозможно. На следующем этапе необходимо указать каталог, в который будет установлена утилита (см. рис. 5). По умолчанию предлагается путь C:\Program Files\Microsoft Corporation\ Windows Server 2003 Access-based Enumeration.

Рисунок 6. Установка ABE. Настройка утилиты


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

Ограничения технологии ABE При ее использовании на практике были обнаружены следующие ограничения: n Нельзя скрыть папки верхнего уровня (см. рис. 7). Можно скрывать только папки второго и последующего уровней. n Ус т а н о в к а в о з м ож н а т о л ь ко на Windows Server 2003 SP1. Замечание: к сожалению, о существующих ограничениях технологии ABE на сайте Microsoft информация отсутствует.

Способы настройки ABE Существует два способа настроить ABE для папки: n графический интерфейс; n утилита командной строки.

Рисунок 7. Папки верхнего уровня

n /server – позволяет осуществлять управление ABE на удаленном сервере. Для того чтобы эта команда работала, необходима предустановка ABE на удаленном сервере под управлением Windows Server 2003 SP1. n /all – осуществляется управление всем сетевыми ресурсами на сервере. n <ShareName> – имя папки, предоставленной в сетевое использование, для которой осуществляется настройка ABE. Пример командной строки, которая включает ABE на удаленном сервере MOON для сетевой папки TEST, расположенной на нем: AbeCmd /enable /server MOON "TEST"

Недостаток

Замечание: помните, что при уда- технологии ABE лении ABE все настройки сохраняют- Технология работает очень хорошо. ся, поскольку ABE – лишь средство Единственным ее недостатком являетадминистрирования, а не сам функ- ся небольшая потеря производительности. Чем больше объектов в анационал. Настройка ABE с помощью гра- лизируемой папке, тем меньше скофического интерфейса заключается рость чтения данных. Microsoft заявво включении или отключении дан- ляет, что при наличии 15000 файлов ного режима в свойствах папки, кото- осуществляется падение скорости отрая предоставлена в сетевой доступ крытия папки на 1-3 секунды. Чтобы избежать этого, рекомендуется соз(см. рис. 8). Настройка ABE с помощью коман- давать больше папок, делая файлодной строки осуществляется с исполь- вую структуру анализируемой папки зованием утилиты abecmd, которая иерархичной. При таком поведении находится в каталоге C:\WINDOWS\ падение скорости при открытии папки незаметно. system32. Команда имеет следующие аргуЗаключение менты: n /enable – включает ABE на сете- Совместное использование техноловом ресурсе. Если дополнительно гий ABE и DFS дает возможность созуказан ключ /all, то осуществляет- дать виртуальную систему предостався включение ABE на всех сетевых ления данных каждому пользователю и одновременно реализовать отказоресурсах данного сервера. n /disable – выключает ABE на сете- устойчивость.С другой стороны, предвом ресурсе. Если дополнительно лагаемая система обмена позволяет указан ключ /all, то осуществляет- повысить защиту хранилища, посколься выключение ABE на всех сете- ку пользователь не знает физического местоположения того или иного ревых ресурсах данного сервера.

№9, сентябрь 2007

сурса. В дополнение к этому, вы можете создать в DFS древовидную систему, в которой могут быть вложенные друг в друга DFS‑корни. Все эти преимущества позволят построить вам желаемую систему обмена. 1. Distributed File System Technology Center – http://www.microsoft.com/ windowsserver2003/technologies/storage/ dfs/default.mspx. 2. Step-by-Step Guide to Distributed File System (Dfs) – http://www.microsoft.com/ technet/prodtechnol/windows2000serv/ howto/dfsguide.mspx. 3. D i s t r i b u t e d F i l e S y s t e m – h t t p: // www.microsoft.com/technet/prodtechnol/ windows2000serv/reskit/default.mspx? mfr=true. 4. KB 812487 «Overview of DFS in Windows 2000» – http://support.microsoft.com/ kb/812487. 5. Windows Server 2003 Access-based Enumeration – http://www.microsoft.com/ windowsserver2003/techinfo/overview/ abe.mspx. 6. ABEUI utility – http://www.microsoft.com/ downloads /details.aspx ?FamilyI D = 04a563d9 -78d9 - 4342-a485 b030ac442084& DisplayLang=en. 7. Access-based Enumeration – http:// technet2.microsoft.com/windowsserver/ en/library/f04862a9-3e37-4f8c-ba87917f4fb5b42c1033.mspx?mfr=true. 8. KB907458 «How to implement Windows Server 2003 Access-based Enumeration in a DFS environment» – http://support. microsoft.com/kb/907458.

Рисунок 8. Интеграции ABE в ОС

27


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

Используем Windows Messenger в корпоративной среде

Иван Коробко Хотите повысить эффективность работы службы поддержки в вашей фирме? Используйте Windows Messenger для достижения этой цели. Это не потребует больших трудозатрат и принесет хорошие дивиденды.

В

крупных организациях для удобс- достатки и обеспечить больший фунтва общения прибегают к помо- кционал предполагалось в Real-Time щи Windows Messenger. В качес- Communications (RTC) Server. Окончатве сервера сообщений обычно ис- тельный продукт получил название Live пользуется Live Communication Server, Communications Server (LCS) 2003. Главдля работы которого необходим SQL- ные идеи, заложенные в LCS, – обеспесервер. В качестве клиента использу- чение шифрования передаваемых данется Windows Messenger или Microsoft ных, сокращение интернет-трафика, инOffice Communicator (MOC) 2005. теграция с Active Directory, поддержка всех видов связи в реальном времеLive Communication ни (мгновенных сообщений, телефоServer 2005 нии, видеоконференций, совместного Впервые система обмена мгновенными использования приложений), обеспесообщениями была встроена в Microsoft чение мощного API для интеграции со Exchange 2000. Обмен информацией сторонними решениями. происходил исключительно открытым В 2005 году Microsoft выпустила нотекстом, шифрование даже не пред- вую версию LCS. Существует два варилагалось. Исправить имеющиеся не- анта поставки – Standard и Enterprise.

28

В дистрибутив первого включен MSDE, второй предполагает наличие SQL Server. Единственным принципиальным отличием LCS 2005 Enterprise является возможность масштабирования и распределения нагрузки между пулом серверов. LCS 2005 Standard можно использовать в крупных организациях – он способен обслуживать до 15 тыс. пользователей и позволяет устанавливать «федеративные» отношения – связь сервер-сервер между отделами, филиалами или разными компаниями.

Windows Messenger Сегодня для LCS 2005 штатным клиентом является Windows Messenger 5.х.


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

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

Последняя вышедшая версия – 5.1.0701, которую можно загрузить с сайта Microsoft: http://www.microsoft.com/ downloads/details.aspx?FamilyID = a8d9eb73-5f8c-4b9a-940f-9157a3b3d774 &displaylang=en. Windows Messenger использует протокол Session Initiation Protocol (SIP), специально созданный для обеспечения связи между пользователями, различными способами, начиная от мгновенных сообщений, заканчивая видеоконференциями. Протокол SIP разработан организацией по стандартизации Internet Engineering Task Force. Windows Messenger также обеспечивает подключение к службам Microsoft .NET Messenger и Exchange 2000 и выше Server Instant Messaging Service.

Microsoft Office Communicator (MOC) 2005 К ру п н ы м о р г а н и з а ц и я м в м е с т о Windows Messenger Microsoft предложила альтернативу – пакет Microsoft Office Communicator (MOC) 2005, известный также под рабочим названием Istanbul. Фактически это клиент для LCS 2005 без возможности прямого подключения к публичным сетям – из современных протоколов в нем поддерживается исключительно SIP. МОС имеет расширенную поддержку голосовой связи: позволяет выполнять операции удержания или переадресации вызова автоматически на основе информации о доступности абонента. При этом все коммуникации максимально интегрированы между собой – в рамках одного сеанса можно опера-

№9, сентябрь 2007

Рисунок 2. Настройка LCS учетной записи пользователя HELP

Рисунок 3. Настройка LCS. Формирование allow list

тивно переключаться между любыми ко предполагаемое местонахождение их видами, поддерживать голосовую человека, но и примерное время, когсвязь во время совместного исполь- да он планирует освободиться. Есзования приложений и т. д. тественно, этот механизм включаетДругая особенность MOC – усовер- ся только по желанию пользователя. шенствованный механизм индикации Он функционирует только при налиприсутствия. Современные IM-клиен- чии Exchange 2003. ты предлагают традиционный набор возможностей вроде слежения за ак- Расширенные возможности тивностью пользователя. MOC автома- Windows Messenger тически устанавливает статус «Do not Служба поддержки крупных предприdisturb» не только при срабатывании ятий заинтересована в высокой скоэкранной заставки, но и любого полно- рости обработки поступивших заявок экранного приложения и даже при ин- от сотрудников, оперативном оповесталляции/удалении программного щении о предстоящих регламентных обеспечения. Он предоставляет ин- работах и т. д. формацию на основе календарной инЭтот круг актуальных задач стоформации из Microsoft Outlook – таким ит во всех крупных организациях. образом становится известно не толь- Чем крупнее организация, тем сложТаблица 1. Поля таблицы Resource, база RTC Поле

Тип данных

Длина

Пример

Описание

ResourceId

int

4

1245

Идентификационный номер, фигурирующий во всех остальных таблицах базы RTC

UserAtHost

nvarchar

450

SProkudin@firm.ru

Адрес электронной почты пользователя

Таблица 2. Поля таблицы Contact, база RTC Поле

Тип данных

Длина

Пример

Описание

OwnerId

int

4

1245

Идентификационный номер учетной записи, контакт‑лист которой необходимо считать

BuddyId

int

4

178

Идентификационный номер учетной записи – члена контакт-листа пользователя, которому соответствует идентификационный номер в поле OwnerId

SubscribePresence

bit

1

1

Принимает значение 0 или 1. Если 0 – пользователь ожидает согласия на добавление его учетной записи в контакт-лист адресата

DisplayName

varbinary

256

0x…..

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

ExternalUri

varbinary

1024

0x…..

SIP-адрес пользователя, в текстовом виде он выглядит как sip:help@firm.ru. Во всей таблице заданы нулевые значения

ContactExtansion

varbinary

1024

0x…..

Описание контакта. Во всей таблице заданы нулевые значения

29


администрирование нее справиться с этими задачами. Обычно для работы с заявками сотрудников используют электронную почту, в редких случаРисунок 4. Таблица Resource, ях систему HelpDesk, однабаза RTC ко скорость работы с помощью этих решений бывает не столь высокой, как хотелось бы. Использование Windows Messenger позволит пользователям быстро и просто взаимодействовать со службой поддержки. Идея состоит в том, чтобы создать специальную учетную запись, которая будет фигурировать в списке контактов всех сотрудников. Параллельно на выделенном сервере будет установлен клиент Windows Messenger, который будет настроен на учетную запись службы поддержки. Именно там все сотрудники службы поддержки смогут, подключившись через терминальную сессию, видеть пришедшие сообщения. В качестве альтернативы может быть создан специальный сервис, который будет при получении сообщений перенаправлять их на почтовый адрес службы поддержки. Это отдельная тема, которая выходит за рамки статьи.

Рисунок 5. Таблица Contact, база RTC

Решение задачи состоит из двух частей:

n создание учетной записи и настройка Windows Messenger; n создание приложения, которое с заданной периодичностью добавляет созданную учетную запись в контактлист сотрудника в случае ее отсутствия.

Создание учетной записи в Active Directory Прежде чем создавать учетную запись, определим задаваемое пространство имен. Необходимо указать имя пользователя, его SIP-имя и отображаемое имя (Display Name), выяснить имя LCS-сервера. Войдя в Active Directory c Exchange Server, создадим учетную запись со следующими параметрами (см. рис. 1, 2): n Имя пользователя – MSN. В списке контактов сотрудников фигурирует только SIP-имя. Имя пользователя произвольно. n Пароль можно задать любой. n SIP-имя – help@firm.ru. n Отображаемое имя – ** HELP **. Именно это имя фигурирует в списке контактов пользователя. n SIP-сервер. Определяется автоматически в домене. Для того чтобы новая учетная запись добавлялась в список контактов Windows Messenger без запроса на подтверждение, во вкладке «Live Communication» нужно сконфигурировать список разрешенных пользователей (allow list), нажав на кнопку «View/Edit» (cм. рис. 2), и добавить в появившемся диалоговом окне все учетные записи домена (см. рис. 3). После того, как учетная запись успешно создана и конфигурирована, необходимо установить Window Messenger на одном из серверов и войти в него от имени созданного пользователя. Для того чтобы он был все время в сети, нужно не закрывать удаленную терминальную сессию.

Создание JOB на SQL-сервере Ознакомимся с внутренним устройством LCS-базы, для успешного создания JOB на SQL-сервере. Интерес представляют две таблицы Resource и Contact.

Таблицы Resource и Contact базы SIP Рисунок 6. Создание задачи во вкладке «Steps» в MsnAddSupport

Вся информация, касающаяся MSN, хранится в SQL-базе RTC, которая автоматически создается при установке LCS на сервере и ее интеграции с Active Directory. В базе достаточно много таблиц, из которых будут использованы только две: Resource и Contact. В таблице Resource приводятся соответствия идентификационных номеров адресам почты пользователей (см. рис. 4). Типы данных и их описание см. в таблице 1. В таблице Contact (см. рис. 5) находятся все контактлисты всех пользователей. В ней присутствует 5 полей (см. таблицу 2).

Создание процедуры добавления пользователя в базу Рисунок 7. Создание расписания запуска во вкладке «Scheduled» в MsnAddSupport

30

Работу сценария можно разбить на несколько частей. Для добавления в таблицу записи необходимо использовать стандартную процедуру Insert Into. Поскольку за-


администрирование пись help@firm.ru надо добавить только тем пользователям, у которых ее еще нет в листе контактов, то формируется подзапрос с отрицанием. В нем определяется список пользователей, в котором присутствует такой адрес. Из‑за того, что таблица сделана так, что все поля в ней должны быть заполнены, то бинарные данные приходится заполнять пустыми/нулевыми значениями. Ради сокращения листинга в SQL-сценарии используется глобальная переменная, которой присваивается значение идентификационного номера help@firm.ru: declare @@support int select @@support=ResourceId from Resource where UserAtHost=‘help@firm.ru’ INSERT INTO [Contact] select ResourceId, @@support, 1, convert(varbinary,''), convert(varbinary,''), convert(varbinary,'') from Resource Where ResourceId Not In ( select c.OwnerId from Contact as c, Resource as r where c.BuddyId=r.ResourceId and ↵ r.UserAtHost=‘help@firm.ru’ )

После проверки работоспособности сценария в Query Analyzer необходимо создать для этой базы процедуру в Enterprise Manager. Назовем ее MSNAddSupport. Для этого необходимо войти в «Enterprise Manager → Enterprise Server Group → имя сервера → Databases → RTC → Stored Procedures» и выбрать в контекстном меню «New Stored Procedures». В появившемся диалоговом окне есть шаблон: CREATE PROCEDURE [OWNER].[PROCEDURE NAME] AS. Вместо [OWNER].[PROCEDURE NAME] необходимо написать имя процедуры, например MSNAddSupport. Имя процедуры произвольно. После назначения имени процедуры установите курсор на вторую строчку и скопируйте созданный текст SQL-сценария. Нажмите «Ok» и сохраните сделанные изменения. Процедура создана (см. рис. 8). Проверить работоспособность созданной процедуры можно с помощью

№9, сентябрь 2007

команды exec MSNAddSupport в Query Analyzer.

Создание JOB для регулярного исполнения процедуры После того как стало достоверно известно, что процедура работает корректно, необходимо добиться ее регулярного выполнения через установленный период времени, например через 20 минут. Для решения задачи необходимо в «Enterprise Manager → Enterprise Server Group → имя сервера → Management → SQL-server Agent → Jobs» создать ноРисунок 8. Процедура MSNAddSupport вую задачу, выбрав «New Job» в контекстном меню. В появившемся диалоговом окне 4 вкладки: n General. Основная вкладка, в которой указывается имя задачи (MsnAddSupport), задается категория, добавляется описание работы. n Steps. В вкладке перечислены шаги, из которых состоит работа. Шаги выполняются последовательно по порядку. В только что созданной задаче необходимо создать Рисунок 9. Настройка периодичности хотя бы один шаг, нажав на кнопку запуска задачи MsnAddSupport «New». Затем появится окно, в котоВыполнив все описанные действия ром указывают имя шага, тип, базу данных и команду. В данном случае последовательно, добиваются ежечасэто команда запуска процедуры: ной проверки списка контактов каждого сотрудника. exec MSNAddSupport (см. рис. 6). Если в нем отсутствует контакт n Schedules. Здесь формируется расписание запуска сформирован- help@firm.ru, то выполняется проценой задачи. Для этого необходимо дура добавления этого контакта в обнажать на кнопку «New Schedules» щий список. и в появившемся окне назначить имя и выбрать тип (см. рис. 7). Пос- Windows Messenger кольку необходимо добиться, что- у клиента бы задача запускалась каждый Итак, все необходимые операции час, необходимо выбрать Recuring и для тестирования созданного сервискорректировать настройки, нажав са проделаны. Соз д анный контак т появитс я на кнопку «Change». В диалоговом окне необходимо задать соответ- у пользователя только после перезагствующие параметры (см. рис. 9.). рузки его клиента. Это можно сделать двумя способаn Notification. Настройка уведомлений администратора о работе за- ми: перезагрузить рабочую станцию (клиент стартует автодачи. По умолчанию матически) или перезасообщение об отрапустить клиента вручботке задачи фиксиную. После перезапуска руется в журнале сов списке контактов появбытий сервера. Возляется долгожданная заможен вариант отпись (см. рис. 10). правки электронного Я надеюсь, что сописьма по указаннозданный сервис позвому адресу электронлит значительно ускорить ной почты, использоэффективность работы вания Net Send-сообРисунок 10. Window службы поддержки. щений. Messenger у клиента

31


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

Мониторинг сети с BixData

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

З

адачу мониторинга сетевых ресурсов можно решить с по‑ мощью разных инструментов, на страницах журнала уже рассмат‑ ривались такие системы, как Nagios [3] и Cacti [4]. Они имеют как достоинс‑ тва, так и недостатки. К достоинствам Nagios можно отнести функциональ‑ ность, но вот развертывание такой сис‑ темы потребует времени и некоторого опыта, новички, как правило, встре‑ чаются с трудностями. Cacti, несмот‑ ря на простоту в его установке и на‑ стройке, при большом количестве от‑ слеживаемых сервисов, потребует не‑ которого времени на доведение систе‑ мы мониторинга до нужной функцио‑ нальности. В гетерогенных сетях эта задача еще более усложняется.

Проект BixData Задачей компании BixData [1], образо‑ ванной в 2004 году, являлась разработ‑

32

ка нового поколения системы монито‑ ринга, которая одновременно должна быть легкой в использовании, работать в сетях любых размеров с самым раз‑ нообразным оборудованием и опера‑ ционными системами. Система мониторинга сети, пост‑ роенная на основе BixData, позволяет контролировать практически все па‑ раметры систем, приложений и обо‑ рудования на компьютерах, работаю‑ щих под управлением FreeBSD, Linux (протестирован CentOS 3/4, Debian 3, Fedora FC1‑FC5, Redhat 7.1, Redhat 9, SUSE Linux 9/10, Ubuntu 5/6), Windows 98/NT4/2000/XP/2003 и Mac OS X. Это может быть: проверка доступ‑ ности определенных портов (HTTP, POP3, SMTP) или URL, статус процес‑ са или сервиса, загрузка процессора (до 8 CPU) и системы, использование памяти, подкачки, работа диска и кон‑ троль SMART, информация о системе,

установленном ПО и оборудовании компьютера, контроль Xen и VMware, загрузка сети, WMI и некоторые дру‑ гие. Результат может быть представ‑ лен в виде графиков и отчетов, позво‑ ляющих определить складывающие‑ ся тенденции и спланировать ресур‑ сы для будущих модернизаций, так и выводящих информацию в реальном времени. В случае возникновения не‑ которых событий может отправляться сообщение на указанный почтовый ад‑ рес или с помощью сценариев выпол‑ няться некоторые действия, направ‑ ленные на их устранение. Чтобы легче было интегрировать BixData в любую среду и упросить на‑ стройку и сбор данных, вся система разделена на три компонента: n BixAgent – агент, устанавливаемый на компьютерах, которые требуют удаленного управления и сбора ин‑ формации;


администрирование n BixServer – многофункциональный компонент, так как в его задачи входит не только сбор информации с аген‑ тов и сохранение данных в базе данных SQL, но само‑ стоятельный мониторинг удаленных систем, на которых не установлен BixAgent, кроме этого, он предоставляет веб-интерфейс для просмотра статистики и отбора со‑ общений. n BixDesktop – интерфейс для настройки системы мони‑ торинга, просмотра данных в реальном времени и вы‑ вода отчетов. Для хранения информации может быть использована в принципе любая СУБД, официально поддерживаются MySQL, PostgreSQL, MS SQL Server, Firebird и ODBC. Все со‑ единения могут быть защищены посредством шифрован‑ ных SSL-туннелей. Таким образом, с помощью BixData мож‑ но легко создать систему мониторинга в сети с любой то‑ пологией. В настоящее время доступны две версии BixData: Professional и Community Edition. Последняя ориентирова‑ на на сети небольшого и среднего размера, предоставля‑ ется бесплатно, но имеет некоторые ограничения. Так, ко‑ личество систем и сервисов, контролируемых с помощью Community Edition, не может превышать 30, а информации, собранной в базу данных за день, – 2 Гб, отсутствует под‑ держка SNMP. Официальная поддержка продукта также не предоставляется, но ответы на возникшие вопросы мож‑ но получить на форуме проекта.

Установка BixData

зователь создается автоматически при установке любого компонента BixData. $ $ $ $

adduser bixdata cd bixdata su bixdata nohup ./runserver.sh &

И под текущим пользователем: $ ./rundesktop.sh Using data path: /home/grinder/source/BixData/bixdata/bixdesktop/data/ Warning, missing x509 or private key file. Generating new files Public Key Signature 9876356F0E71118602EF5F4097006A8FD8965ACC

При постоянном использовании придется самостоятель‑ но создать скрипты запуска. Появится окно ввода пароля, в котором будет указана учетная запись «Guest», пароля она не требует, поэтому для входа можно нажать кнопку «Login», но все настрой‑ ки после выхода будут утеряны. Поэтому выбрав знак «+», лучше сразу создать новую учетную запись. Одновремен‑ но запустится браузер, загружающий страницу для обнов‑ ления системы. В появившемся окне в строке server:// вво‑ дим IP-адрес или имя компьютера, на котором установлен сервер. Так как он у нас установлен на локальной системе, используем server://localhost и нажимаем кнопку, располо‑ женную правее. Клиент устанавливается аналогично, распаковываем и запускаем находящийся внутри скрипт: $ nohup ./bixagent > out &

В качестве тестовой системы сервер, графический ин‑ терфейс и агент были установлены на Linux Ubuntu 7.04 При использовании Windows следуем стандартной про‑ и Windows XP SP2. Каких-либо особенностей в работе в этих цедуре установки, в процессе можно выбрать вариант за‑ вариантах нет, все отличия связаны только с процессом ус‑ пуска, удобнее, когда выбранный компонент стартует в ка‑ тановки и запуска. Агенты выдают для контроля специфи‑ честве сервиса. Подключаются агенты в поле Agent. ческие для своей системы параметры. Скачиваем со стра‑ При установке варианта со встроенной БД при запуске ницы Downloads нужные файлы. Обратите внимание, что сервера автоматически стартует полностью настроенный пакет Server помечен как DB, так как по умолчанию содер‑ PostgreSQL. Иначе вначале следует подготовить базу дан‑ жит СУБД PostgresSQL, если на компьютере уже имеет‑ ных. Здесь ничего сложного. Создаем базу, затем устанав‑ ся установленная база данных, то следует выбирать файл ливаем привилегии на эту базу для выбранного пользова‑ с графы «Advanced Use», они не имеют базы данных, о ее теля, например для MySQL: подключении придется заботиться самому. Мы же будем $ mysqladmin --user=root create bixdata использовать первый вариант. Процесс установки в Linux $ mysql -u root bixdata выглядит так. mysql> GRANT ALL ON bixdata.* TO ' bixdata'@'localhost' ↵ IDENTIFIED BY 'password' Сначала устанавливаем сервер: $ wget -c http://www.bixdata.com/files/ ↵ BixServer-2.7-linux-1-DB.tar.gz $ sudo tar xzvf BixServer-2.7-linux-1-DB.tar.gz

А затем GUI: $ wget -c http://www.bixdata.com/files/ ↵ BixDesktop-2.7-linux-1.tar.gz $ sudo tar xzvf BixDesktop-2.7-linux-1.tar.gz

Теперь запускаем, права суперпользователя не требуют‑ ся, даже наоборот – скрипт завершает работу, если пробо‑ вать его выполнить как root. Рекомендуется создать для за‑ пуска сервера и агента специального пользователя и вы‑ полнять программы от его имени. В Windows такой поль‑

№9, сентябрь 2007

Query OK, 0 rows affected (0.05 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.03 sec)

mysql> quit

Теперь вызываем BixDesktop, подключаемся к серверу и заходим во вкладку Setup и в поле «Database Properties» заполняем параметры доступа к выбранной БД. Тип СУБД выбирается в раскрывающемся списке «Database type».

Работа с интерфейсом BixDesktop После регистрации всех серверов и агентов в GUI перехо‑ дим во вкладку «localhost → Situation Room«. Здесь собраны

33


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

Рисунок 1. Выбираем сервис для Notification

все известные системы. Чтобы доба‑ вить новый компьютер для мониторин‑ га, следует нажать кнопку «+» и ука‑ зать IP-адрес или доменное имя. Если узлов много, лучше воспользоваться встроенным сканером. Для этого пе‑ реходим во вкладку «Network» и в поле «Host to Scan» вводим отдельные IP‑ад‑ реса или диапазон адресов, которые

нужно просканировать. По окончании добавляем найденные узлы в Situation Room. Щелчком на найденном ком‑ пьютере в контекстном меню выбира‑ ем пункт «Send to → Network topology view», добавляем узел в окно просмот‑ ра топологии сети Topology. Для удобс‑ тва компьютерам можно присвоить этикетки Tags, в этом случае вместо

Рисунок 2. Указываем Action для разных состояний (GUI в Windows)

34

отдельных машин просто указывает‑ ся ассоциированный Tags. Теперь когда сервер «знает» обо всех системах, пора устанавливать предупреждения. Для того чтобы про‑ смотреть выставленные предупреж‑ дения и установить новые парамет‑ ры контроля, необходимо перейти в «Notifications». Во вкладке «Setup» несколько по‑ лей. В «Service Check» по умолчанию два параметра HTTP ServiceCheck и Ping ServiceCheck, отвечающие со‑ ответственно за контроль работы HTTP‑сервиса и доступности компью‑ тера. Чтобы посмотреть их установ‑ ки, следует отметить мышкой, и в ос‑ тальных окнах будут показаны его па‑ раметры. Нажимаем кнопку «+» и добавля‑ ем новый пункт, в появившемся меню, используя раскрывающийся список, выбираем сервис (см. рис. 1): HTTP, Mail POP3, Mail SMTP, Ping, Port Status, и для Remote Agent CPU, FileSystem, Memory и Custom. Вводим название в поле Name. В поле Actions указываем действие. Это может быть вывод всплывающего сообщения (Desktop Message), отправ‑ ка e‑mail (Email Action), выполнение


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

Рисунок 3. Выбираем новый график

Рисунок 4. Графики BixData

№9, сентябрь 2007

35


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

Рисунок 5. Шаблоны графиков

команд (Execute Command и Execute мер (Wait) на произвольное время, ле некоторых изменений вверху появ‑ Command Removely), отправка SMS-со‑ после которого будет выдано предуп‑ ляется незаметный запрос, предлага‑ общения (Send to Mobile Phone Action) и реждение. ющий сохранить настройки. Выбрав отправка команды на виртуальную ма‑ Само предупреждение для данно‑ «Undo», можно их отменить. го состояния выбираем в «Set Action», шину (Execute Virtual Machine Action). Это мы настроили только предуп‑ После выбора Action отмечаем его причем можно установить несколь‑ реждения. Теперь перейдем к мони‑ и в появившемся внизу поле, уточня‑ ко Actions, которые, например, будут торингу и отчетам. Если контролиру‑ ем его параметры: электронный ад‑ выполняться последовательно по ис‑ ется агент, то здесь все просто, так рес, команду, номер телефона, сооб‑ течении определенного промежутка как у него всего одно окно с тремя щение и прочее. времени. вкладками. Все выбранные действия будут по‑ При подстановке используются В «Overview» можно получить об‑ макросы, поэтому текст полученно‑ казаны на графике State Diagram. В не‑ щую информацию о системе, а если го сообщения, будет соответствовать большой полосе «Service Check» вни‑ подвести и задержать на время мыш‑ зу экрана, которую может быть не вид‑ ку около значков вверху, то будет вы‑ ситуации. Это мы определили только список но на мониторах с небольшим разре‑ дана более подробная информация возможных действий. Чтобы указать, шением, отмечаем флажком сервис, о загрузке процессора, занятости раз‑ в каком случае их использовать, не‑ а в Hosts указываем узлы или Tags, делов жесткого диска и использова‑ обходимо перейти в Notifications. Те‑ для которых будут действительны эти нии памяти. Во вкладке «Processes» выводит‑ перь для разных состояний: запуск установки. сервиса (While Up), отказ (Up->Down), В полях «Options» и «Properties» вы‑ ся список процессов, а в «Real Time появления (Down->Up), отказ в тече‑ ставляется интервал проверки, номер Graph» выбираем уже готовые графи‑ ние длительного времени (While Down), порта, время ожидания в случае неуда‑ ки или указываем свои. указываем свой тип предупреждений чи и прочее. Если контролируется пре‑ Принцип создания нового графи‑ (см. рис. 2). Здесь, используя контекс‑ вышение допустимого порога некоего ка аналогичен работе с предупрежде‑ тное меню, можно: игнорировать со‑ параметра, его значение указывается ниями. Сначала в «NameSpaces» вы‑ бытие (Do Nothing), установить тай‑ в поле «Notification Trigger». Да и пос‑ бираем параметр (например Smart),

36


администрирование <username>Admin</username> затем в «Instances» уточняем объект (выбираем жесткий <password>password</password> диск), в «Keys» выбираем значение (Temperature Celsius), а в «Fields», дважды щелкнув, выбираем поле (Raw Value Теперь при подключении через GUI к конкретному агенту string) (см. рис. 3). В результате в «Selected Patch» появит‑ или серверу будет появляться окно для ввода пароля. Для того чтобы сервер мог автоматически подклю‑ ся новый параметр, который в новой вкладке будет выво‑ дить текущее значение температуры жесткого диска. Зна‑ чаться к агентам, в его файле config-security.xml исполь‑ чения некоторых полей, вроде Color и Style, можно изме‑ зуется секция AgentLogin, в которой добавляются все ло‑ нить, дважды щелкнув по ним мышкой. Чтобы сохранить гины и пароли: настройки для дальнейшего использования, следует вы‑ <AgentLogin> брать «Save Template». <Login> Всевозможные отчеты в сервере настраиваются <username>Admin</username> <password>pass</password> в Reporting. Здесь также несколько вкладок. В Browse най‑ </Login> дете готовые отчеты, по умолчанию их немного и они соот‑ </AgentLogin> ветствуют Notifications (см. рис. 4). Чтобы создать новый гра‑ фик, выбираем «Setup Reports», нажимаем «+» и в появив‑ Чтобы включить SSL, достаточно указать: шейся строке дважды щелкаем на «Template» и выбираем <acceptonly>true</acceptonly> шаблон. Затем указываем Tag, временной интервал, кото‑ рый будет отображать на графике и интервал обновления. Все, график готов. Через некоторое время он наполнится Сертификаты и ключи, как уже говорилось, генериру‑ информацией и можно смотреть результат. Сами шаблоны ются при первом запуске и находятся в файлах privkey.pem доступны в «Setup Templates», где можно подкорректиро‑ и x509.pem. Как вариант для этих настроек можно исполь‑ вать некоторые параметры (см. рис. 5). Кстати, на страни‑ зовать вкладку «Setup → Security». це «Script Addons» сайта проекта можно найти несколько По умолчанию BixAgent и BixServer слушают соедине‑ обновленных шаблонов, предназначенных для сбора дан‑ ния на всех сетевых интерфейсах, при этом сервер исполь‑ ных и вывода информации. зует 7071 порт, а агенты 17070. При необходимости можно указать конкретный сетевой Повышаем защищенность BixData адрес и изменить порт по умолчанию, для этого нужно со‑ По умолчанию BixAgent и BixServer не используют аутенти‑ здать файл data/config-network.xml такого содержания: фикацию вообще, возможно, в закрытых сетях этого и до‑ <?xml version="1.0" encoding="utf-8" ?> статочно, но при работе через Интернет однозначно сле‑ <config> дует защитить соединение. Поддерживается аутентифика‑ <network> <connect-default> ция, основанная на логине и пароле. Кроме этого, соеди‑ <client>17070</client> нение можно защитить с помощью SSL. Оба варианта на‑ <server>7071</server> </connect-default> страиваются в файле data/config‑security.xml каталога, в ко‑ <bind> тором установлено приложение. По умолчанию он содер‑ <default-port>17071</default-port> <listener> жит такие поля: <?xml version="1.0" encoding="utf-8" ?> <Config> <SSL> <acceptonly>false</acceptonly> </SSL> <Authentication> <enable>false</enable> <Users> <User> <username>Admin</username> <password></password> </User> <User> <username>server</username> <password>serverpass</password> </User> </Users> </Authentication> </Config>

Как видите, это простой XML-файл с понятной струк‑ турой. Чтобы разрешить аутентификацию по паролю, ус‑ танавливаем: <enable>true</enable>

И для каждого разрешенного пользователя указыва‑ ем пароль:

№9, сентябрь 2007

<ipaddress>192.168.1.58</ipaddress> <port>17070</port> </listener> </bind> </network> </config>

Здесь для соединений с удаленными системами по умол‑ чанию будут использоваться порты 7071 и 17070, а ожидать соединения на порту 17070 с IP-адресом 192.168.1.58. Как видите BixData очень прост в установке и настройке, и главное, легко интегрируется в гетерогенную среду. Сис‑ тема предупреждений и отчетов очень удобна и позволяет получить информацию практически по большинству вопро‑ сов, которые могут заинтересовать администратора. Удачи! 1. Сайт проекта BixData – http://www.bixdata.com. 2. Сравнение версий Professional и Community – http://www.bixdata. com/professional_edition. 3. Бешков А. «Установка Nagios». //Системный администратор, №2, 2003 г. – С. 6-14. 4. Яремчук С. «Cacti – простой и удобный инструмент для мо‑ ниторинга и анализа сети». //Системный администратор, №4, 2007 г. – С. 22-27.

37


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

Один из вариантов настройки спутникового Интернета в Mandriva Linux 2007

Александр Пчелинцев Ядро версии 2.6.17 ОС Mandriva Linux 2007 не поддерживает DVB-карту SkyStar 3, поэтому с её настройкой в данной ОС у многих возникают проблемы. Есть способ их решить.

В

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

38

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

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


администрирование на к компьютеру, то система должна опознать его как модем. Как я считаю, для выхода в глобальную сеть через сотовый телефон не надо покупать самый новый аппарат. Дело в том, что могут возникнуть проблемы с настройкой модема (udev может «не опознать» идентификационные номера данного аппарата или в ядре могут отсутствовать модули для этого устройства). Я работал с Motorola C350. После подключения сотового телефона это устройство становится в систему как /dev/ttyACM0. Затем, чтобы настроить GPRS-соединение, я установил программу gprsec из дистрибутива Mandriva Linux 2007 Linux Center Edition на 3 DVD, приобретенного в интернет-магазине [1]. Для установки программы можно зайти в меню «Настройка компьюРисунок 1. Окно настроек программы gprsec тера», далее в строке поиска задать gprsec и отметить найденный rpm-пакет галочкой. Запус- и набираем пароль root в ответ на приглашение. Командой: тить ее в командной строке так: gprsec

Далее настроить соединение очень просто. После запуска надо щелкнуть на кнопку «Параметры» и в появившемся окне на вкладке «Обязательные параметры» ввести необходимые данные (см. рис. 1). Далее нажимаем кнопку «Сохранить», пробуем соединиться (при удачной попытке в трее появится сообщение «Сеть поднята») и проверяем работу в сети, например, командой: ping www.ya.ru

Если ping проходит успешно, то можно приступать к настройке DVB-карты, иначе рекомендуется проверить параметры программы gprsec. С помощью DVB-карты Phillips TechnoTrend-budget (SkyStar 3) будем принимать входящий трафик. Существующее ядро не поддерживает это устройство. Очевидный путь решения проблемы – обновить ядро до версии 2.6.19 или выше, которое можно загрузить с [2]. Но пойти таким путем у меня не получилось (обновление ядра может привести, например, к проблемам с устройством /dev/console). Предлагаю сделать иначе. Так как процесс сборки протекает значительное время (на моей машине около часа), то будем обновлять не все ядро, а только модули DVB-устройства. Для этого сначала устанавливаем в систему исходные тексты дистрибутивного ядра с первого установочного диска. Это и последующие действия осуществляются с правами учетной записи root. Поэтому в консоли выполняем команду: su -

№9, сентябрь 2007

rpm -ihv /mnt/cdrom/i586/media/main/ ↵ kernel-source-2.6.17.5mdv-1-1mdv2007.0.i586.rpm

устанавливаем тексты ядра 2.6.17. Теперь необходимо загрузить архив с обновлениями модулей DVB-устройств [3], рапаковать его, например, в /usr/ src/dvb, зайти в этот каталог и выполнить команду на конфигурирование новых возможностей ядра: make xconfig

Появится окно, показанное на рис. 2. Отмечаем «Enable drivers not supported by this kernel». Сохраняемся и выходим. Пробуем собрать командой: make

При компиляции драйверов выдается ошибка: /usr/src/dvb/v4l/dvb_net.c: In function 'wq_set_multicast_list': /usr/src/dvb/v4l/dvb_net.c:1141: error: 'struct net_device' has no member named 'xmit_lock'

Вариант исправления: ищем в файле /usr/src/dvb/v4l/ dvb_net.c (точнее, там находится ссылка на этот файл) функцию wq_set_multicast_list() и в ней меняем строку: #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)

на строку: #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)

Такую замену нужно сделать в этой функции в двух местах.

39


администрирование Потом еще раз: make

После этого сборка пройдет нормально. Далее настраиваем загрузку модулей для нашего DVB‑устройства. В редакторе создаем текстовый файлскрипт dvbstart следующего содержания: #!/bin/bash make -C /usr/src/dvb reload

Затем изменяем ему атрибуты (делаем его выполняемым): chmod +x dvbstart

Запускаем его командой: ./dvbstart

Рисунок 2. Окно конфигурирования новых возможностей ядра

Если в /dev появилась папка dvb, значит драйвер опознал и правильно установил устройство и можно ставить dvb‑apps. Заходим в «Система → Настройка → Настройка компьютера → Установка пакетов программ → Видео» и отмечаем пакет dvb-apps. Я пользуюсь услугами компании СТВ [4]. Поэтому таким пользователям, как я, рекомендую загрузить из личного кабинета прокси globax для Linux и конфигурационный файл globax.conf и для удобства использования положить их в один каталог (например, в /etc/sputn_inet) с файлом dvbstart. Также создаем в каталоге sputn_inet конфигурационный файл channels.conf с характеристиками интернет-канала, передаваемого со спутника: STV:11595:V:1:29270:0:0

Создаем в sputn_inet скрипт start_inet: #!/bin/bash dvbnet -p <pid_из_личного_кабинета> ifconfig dvb0_0 <IP_из_личного_кабинета> hw ether ↵ <MAC_из_личного_кабинета> ./globax globax.conf szap -n 1 -c channels.conf

Здесь MAC-адрес имеет формат 00:00:XX:XX:XX:XX, а pid я прописывал в десятичной системе счисления. Меняем ему атрибуты, как в предыдущем случае. Запускаем (и не закрываем консоль!): ./start_inet

В консоли мы увидим следующие строки, отображающие характеристики сигнала, принимаемого со спутника: status If | signal 3333 | snr 3737 | ber 00000000 | unc 00000000 | FE_HAS_LOCK status If | signal 3232 | snr 3737 | ber 00000006 | unc 00000000 | FE_HAS_LOCK status If | signal 3333 | snr 3737 | ber 00000000 | unc 00000000 | FE_HAS_LOCK

40

Флаг FE_HAS_LOCK означает, что можно приступать к приему данных через спутниковую антенну. Описание характеристик приводится в статье [5]. Они позволяют настроить антенну на спутник вашего провайдера. Для удобства папка sputn_inet у меня располагается в домашнем каталоге. Замечу, что у меня все работает без проблем, если запускать dvbstart и start_inet с правами учетной записи root (первый по-другому и не запустится) и при отключенном персональном брандмауэре (при установке системы я выставлял стандартный уровень безопасности). Таким образом, для старта спутникового интернета в Mandriva Linux необходимо запустить GPRS-соединение, войти в консоли (лучше по <Ctrl+Alt+F1>) с использованием учетной записи root и запустить два скрипта – dvbstart и start_inet. Последний, чтобы не занимать консоль, удобнее запускать в виртуальной консоли screen с имитацией демона так: screen -dmS my_cons ./start_inet

Теперь можно настроить прокси, например, в Mozilla Firefox. Заходим в «Правка → Настройки → Параметры соединения». В «HTTP-прокси» прописываем 127.0.0.1, порт 3128. Можно поставить галку в «Использовать этот прокси-сервер для всех протоколов». Можно считать, что спутниковый интернет у вас настроен. Если возникли какие-либо вопросы, пишите на форум журнала http://www.samag.ru/forum. 1. http://www.linuxcenter.ru. 2. http://kernel.org. 3. http://linuxtv.org/downloads/snapshots/v4l‑dvb-20061209.tar.gz. 4. http://www.stv.su. 5. Борисов А. Цифровое небо, или Организуем прием спутникового вещания. //Системный администратор, №10, 2005 г. – С. 79-81.



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

Строим бюджетный сервер для малых или средних компаний Часть 1

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

В

сети ведется очень много разго- менив его предлагаемым комплексом рационная система отказалась иниворов на тему Windows vs. Samba. программного обеспечения. Для того циализировать один из интерфейсов. Возможно, единственный оста- чтобы понять, почему это нужно делать, Попытки поднять интерфейс не увеннавливающий фактор для тех, кто расскажу маленькую историю. чались успехом. А переустановка опене решается использовать Samba, – В одно прекрасное у тро, при- рационной системы была не возможэто отсутствие стоящей документации дя на работу, я обнаружил, что «по- на из-за угрозы потерять большое копо настройке Samba как части инфор- вис» основной доменный контроллер личество информации, которая ко всена Windows 2003 Enterprise Server (до- му прочему находилась на программационного комплекса в целом. В статье я покажу вам, как исклю- ставшийся в наследство от предыду- мном Raid10. Вот тогда-то и появилась чить Windows из сети в качестве до- щих администраторов). После пере- идея реализовать все на Samba. Поменного контроллера «как класс», за- загрузки Windows оказалось, что опе- копавшись некоторое время в Интер-

42


администрирование нете, я понял, что большинство документации по настройке Samba либо составлена из фрагментов, работоспособность в целом которых не была проверена, либо представляют собой некую частную ситуацию, соответствующую исключительным особенностям авторской установки. Кроме того, многие статьи по данной теме противоречивы или даже не соответствуют действительности. Чтобы исправить эту досадную ситуацию, я решил описать процесс настройки комплекса «с нуля». Итак, в наличии имеем: n Установочный диск FreeBSD 6.2 RELEASE. n Cервер следующей конфигурации (допускаются варианты):  CPU – AMD Opteron 265.  RAM – 512 Мб.  HDD – 2x400 Гб Hitachi DeskStar7.  MB – Tyan Tomcat K8SD. Стоимость оборудования такой конфигурации легко укладывается в 30-35 тысяч рублей. n Подключение к Интернету. n Зарегистрированное доменное имя (предположим, example.com). n Берем произвольное имя сервера (предположим, srv.example.com). n Определяемся с внутренней подсетью (предположим, 172.16.0.0/24).

Используемое программное обеспечение

n Samba3 – CIFS-сервер, обеспечивающий функции доменного контроллера Windows NT 4.0. n Exim – один из самых гибких в настройке MTA-агентов. n DSPAM – быстрый и надежный антиспам-фильтр. n Courier-IMAP – один из лучших POP3/IMAP-сервер. n SquirrelMail – красивый веб-интерфейс для любителей Mail.ru и т. д. n Squid – мощный прокси-сервер с большим количеством настроек. n PowerDNS – маленький и удобный в настройке сервер имен DNS. n OpenLDAP – сетевой каталог для хранения учетной информации. n LigHTTPD – маленький и быстрый http-сервер с поддержкой cgi‑скриптов. n SNMP – сервер для получения статистической информации.

Приступаем к настройке комплекса Для начала надо установить операционную систему на сервер. Как это делать, очень хорошо описано в официальной документации на сайте www.freebsd.org, установить коллекцию портов и запастись терпением.

Собираем OpenLDAP Собирать OpenLDAP мы будем с некоторыми дополнительными ключами: # cd /usr/ports/net/openldap23-server # make all install clean

№9, сентябрь 2007

Выбираем опции, с которыми будем собирать OpenLDAP:

n SLAPI n TCP_WRAPPERS n DBD n DYNAMIC_BACKENDS n SLURPD

Конфигурируем сервер OpenLDAP Получаем зашифрованную hash-последовательность пароля, мною был выбран пароль «password» в качестве примера: # /usr/local/sbin/slapasswd New password: Re-enter new password: {SSHA}j8ztWZaAL/kSxPei4TT8+pxs6bmqHSdy

Любым удобным для вас текстовым редактором приводим файл /usr/local/etc/openldap/slapd.conf к следующему виду. Некоторые файлы схем изначально отсутствуют после сборки сервера. Мы их скопируем чуть позже: # Подключаем схемы include /usr/local/etc/openldap/schema/core.schema include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/ ↵ inetorgperson.schema include /usr/local/etc/openldap/schema/nis.schema include /usr/local/etc/openldap/schema/samba.schema include /usr/local/etc/openldap/schema/ ↵ dnsdomain2.schema pidfile argsfile

/var/run/openldap/slapd.pid /var/run/openldap/slapd.args

# Подключаем внешние модули хранилищ modulepath /usr/local/libexec/openldap moduleload back_ldbm # Распределяем права доступа к некоторым атрибутам хранилища access to attrs=userPassword by self write by anonymous auth by * none access to attrs=sambaLMPassword by self write by anonymous auth by * none access to attrs=sambaNTPassword by self write by anonymous auth by * none access to * by self write by anonymous read by * none # Описываем хранилище # Указываем, какой тип хранилища используем database ldbm # Задаем контейнер верхнего уровня suffix "dc=example,dc=com" # Задаем контейнер администратора сервера rootdn "cn=root,dc=example,dc=com" # Записываем полученную ранее hash-последовательность # для авторизации на сервере rootpw {SSHA}j8ztWZaAL/kSxPei4TT8+pxs6bmqHSdy # Указываем, где находится хранилище directory /var/db/openldap-data # Описываем важные для нас индексы поиска по дереву index objectClass,uidNumber,gidNumber eq

43


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

cn,sn,uid,displayName pres,sub,eq memberUid,mail,givenname eq,subinitial sambaSID,sambaPrimaryGroupSID,sambaDomainName eq aRecord pres,eq associatedDomain pres,eq,sub

За более подробной информацией можно обратиться к справочному руководству по пакету OpenLDAP (это минимальные настройки сервера для обеспечения работы нашего домен-контроллера).

Собираем Samba # cd /usr/ports/net/samba3 # make all install clean

Выбираем следующие ключи для компиляции Samba:

n LDAP n QUOTAS n UTMP n POPT

n ldap://127.0.0.1/ – предписываем серверу «слушать» локальный интерфейс;

n ldap://172.16.0.1/ – предписываем серверу «слушать» внутренний интерфейс. Указываем сокет для локальных подключений: slapd_sockets="/var/run/openldap/ldapi"

Переименовываем скрипты для запуска в требуемой последовательности: # # # # #

cd mv mv mv mv

/usr/local/etc/rc.d slapd.sh 010.slapd.sh pdns.sh 020.pdns.sh pdns-recursor 015.pdnsr.sh samba 025.samba.sh

Удаляем старую базу OpenLDAP (если она есть), чтобы избежать дальнейших возможных проблем:

Копируем схему для работы Samba с OpenLDAP:

# rm -rf /var/db/openldap-data/*

# cp /usr/local/share/examples/samba/LDAP/samba.schema ↵ /usr/local/etc/openldap/schema/

Запускаем cервер OpenLDAP: # /usr/local/etc/rc.d/010.slapd start

Собираем PowerDNS # cd /usr/ports/dns/powerdns # make all install clean

Выбираем ключи для компиляции:

n OPENLDAP # cd /usr/ports/dns/powerdns-recursor # make all install clean

Выбираем ключи для компиляции: n SETUID Для хранения записей DNS-сервера в директории LDAP, PowerDNS использует схему dnsdomain2.schema которую почему-то разработчики не потрудились вложить в дистрибутив. Поэтому ее придется скачать и положить в директорию /usr/local/etc/openldap/schema: # cd /usr/local/etc/openldap/schema # fetch http://www.linuxnetworks.de/pdnsldap/ ↵ dnsdomain2.schema

Конфигурируем Samba Добавляем записи в rc.conf для запуска Samba: samba_enable="YES" smbd_enable="YES" nmbd_enable="YES"

Запускаем Samba: # /usr/local/etc/rc.d/030.samba.sh start

Вычисляем локальный sid домена и записываем его в файл. Он нам в дальнейшем понадобится для формирования конфигурационного файла smbldap-tools: # net getlocalsid | awk ‘BEGIN{FS=”is: “}{print $2}’ ↵ >~/localsid # cat ~/localsid S-1-5-21-4089634979-3265135400-2542302168

Останавливаем Samba: # /usr/local/etc/rc.d/030.samba.sh stop

Запускаем OpenLDAP Добавляем строки в /etc/rc.conf для запуска OpenLDAP. Активируем запуск OpenLDAP при загрузке системы: slapd_enable="YES"

Указываем флаги для запуска OpenLDAP: slapd_flags='-h "ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ↵ ldap://127.0.0.1/ ldap://172.16.0.1/"'

n ldapi://%2fvar%2frun%2fopenldap%2fldapi/ – предписываем серверу «работать» через созданный сокет;

44

Приводим конфигурационный файл Samba /usr/local/etc/ smb.conf к следующему виду: [global] # Указываем Samba перекодировать имена файлов, # для того чтобы и на самом сервере, и у клиента # они отображались в правильной кодировке. Так как у меня # на сервере системная локаль ru_RU.KOI8-R, то следующие # 3 строчки будут выглядеть как показано ниже. Если у вас # другая системная локаль, обратитесь к документации # Samba для получения более подробной информации dos charset = 866 unix charset = KOI8-R display charset = KOI8-R


администрирование # Описываем наш сервер и домен workgroup = EXAMPLE server string = Samba PDC %v (Example.com) netbios name = SRV update encrypted = yes obey pam restrictions = yes # Указываем Samba использовать LDAP passdb backend = ldapsam:ldap://127.0.0.1/ pam password change = yes passwd chat debug = yes # Указываем Samba, где хранить логи log level = 1 log file = /var/log/samba/log.%m max log size = 1000 # Активируем сервер времени для клиентов Samba time server = yes # Указываем несколько параметров для увеличения # быстродействия сервера socket options = SO_KEEPALIVE IPTOS_LOWDELAY ↵ SO_SNDBUF=8192 SO_RCVBUF=8192 max xmit = 16644 use sendfile = no large readwrite = no # Указываем скрипты для работы с учетными записями #(cкрипты используются при выполнении команды net) add user script = /usr/local/sbin/smbldap-useradd ↵ -a -m "%u" delete user script = ↵ /usr/local/sbin/smbldap-userdel -r "%u" add group script = /usr/local/sbin/smbldap-groupadd ↵ -p "%g" delete group script = ↵ /usr/local/sbin/smbldap-groupdel "%g" add user to group script = ↵ /usr/local/sbin/smbldap-groupmod -m "%u" "%g" delete user from group script = ↵ /usr/local/sbin/smbldap-groupmod -x "%u" "%g" set primary group script = ↵ /usr/local/sbin/smbldap-usermod -g"%u" "%g" add machine script = ↵ /usr/local/sbin/smbldap-useradd -w "%u" # Указываем Samba, какой скрипт запускать при логине # пользователя logon script = logon.cmd # Указываем Samba, где хранить перемещаемые профили # пользователей logon path = \\%L\%U\profile logon drive = Z: logon home = \\%L\%U # Указываем Samba работать в качестве первичного # доменного контроллера и мастера браузера сети, domain logons = yes os level = 255 preferred master = yes domain master = yes local master = yes # Описываем, где Samba должна искать информацию # об учетных записях в OpenLDAP и как она там хранится ldap admin dn = cn=root,dc=example,dc=com ldap delete dn = yes ldap user suffix = ou=Users ldap group suffix = ou=Groups ldap machine suffix = ou=Computers ldap passwd sync = yes ldap suffix = dc=example,dc=com ldap ssl = no host msdfs = yes # Указываем логины пользователей, используемые # для администрирования сервера admin users = smbroot # Описываем права доступа к серверу hosts allow = 172.16.0. 127. profile acls = yes # Описываем общедоступные ресурсы [netlogon]

№9, сентябрь 2007

45


администрирование comment = Network Logon Service path = /home/samba/netlogon/ write list = root "@Domain Admins" browseable = no read only = no guest ok = yes #Описываем директории пользователей [homes] comment = Homefolder path = /home/samba/%U hide files = /.*/ valid users = %S "@Domain Admins" read only = No create mask = 0644 directory mask = 0775

Устанавливаем набор скриптов smbldap‑tools # cd /usr/ports/net/smbldap-tools/ # make all install clean

Конфигурируем smbldap-tools: # cd /usr/local/etc/smbldap-tools

Приводим файл smbldap.conf к следующему виду: # Указываем полученный ранее локальный sid, находящийся # в файле ~/localsid SID="S-1-5-21-4089634979-3265135400-2542302168" # Указываем имя нашего домена sambaDomain="EXAMPLE" # Указываем подключение к OpenLDAP-серверу (так как у нас # один сервер, то первичный и вторичный сервер # указываем одинаковые) slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" # Отключаем ssl tls-шифрование ldapTLS="0" verify="require" cafile="/etc/opt/IDEALX/smbldap-tools/ca.pem" clientcert="/etc/opt/IDEALX/smbldap-tools/ ↵ smbldap-tools.pem" clientkey="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.key" # Описываем, как хранятся записи в дереве LDAP suffix="dc=example,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=EXAMPLE,${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" # Описываем параметры по умолчанию userLoginShell="/usr/sbin/nologin" userHome="/home/samba/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="999" userSmbHome="\\SRV\%U" userProfile="\\SRV\%U\profile" userHomeDrive="Z:" userScript="logon.cmd" mailDomain="example.ru" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd"

46


администрирование with_slappasswd="0" slappasswd="/usr/sbin/slappasswd"

Инициализируем директории OpenLDAP:

Приводим smbldap_bind.conf к следующему виду:

# /usr/local/sbin/smbldap-populate -a smbroot -b guest

slaveDN="cn=root,dc=example,dc=ru" slavePw="password" masterDN="cn=root,dc=example,dc=ru" masterPw="password"

Устанавливаем пакет nss_ldap # cd /usr/ports/net/nss_ldap # make all install clean

Конфигурируем nss_ldap: # cd /usr/local/etc # touch nss_ldap.conf

Вписываем в созданный файл следующее: base dc=example,dc=com bind_policy soft bind_timelimit 10 host 127.0.0.1 idle_timelimit 3600 ldap_version 3 nss_base_group ou=Groups,dc=example,dc=com?one nss_base_passwd ou=Users,dc=example,dc=com?one nss_base_passwd ou=Computers,dc=example,dc=com?one nss_base_shadow ou=Users,dc=example,dc=com?one nss_connect_policy persist nss_paged_results yes pagesize 1000 port 389 scope one timelimit 30 pam_password md5 ssl no

Правим файл /etc/nsswitch.conf и приводим к следующему виду: group: files ldap group_compat: nis hosts: files dns networks: files passwd: files ldap passwd_compat: nis shells: files

Создаем файл для доступа остальных сервисов к OpenLDAP: # echo “password” > /etc/ldap.secret # chmod 0600 /etc/ldap.secret

Удаляем старую базу Samba во избежание дальнейших проблем: # rm -rf /usr/local/etc/samba/*

Создаем запись в secret.tdb для подключения Samba к OpenLDAP: # /usr/local/bin/smbpasswd -w password Setting stored password for "cn=root,dc=example,dc=com" in secrets.tdb

№9, сентябрь 2007

adding new entry "dc=example,dc=com" .......... ..........

После того как скрипт отработает, будет выведено приглашение ввести пароль для пользователя smbroot. Вводим наш пароль «password». Проверяем существование записей в OpenLDAP: # slapcat | grep dn .......................... ..........................

После ввода данной команды будет выведен довольно длинный список добавленных записей. Если этого не произошло, проверьте конфигурацию сервисов, проверьте, запущен ли сервис slapd, загляните в файл /var/log/messages, чтобы определить причину. На данном этапе оставляем конфигурацию Samba, вернемся к ней чуть-чуть позже, а пока сконфигурируем PowerDNS. Создаем файл zone.ldiff для добавления записей о DNSзонах в OpenLDAP. Предлагаю для этих целей выделить служебную директорию, дабы в последующем не набирать эти файлы снова. # cd /usr/local/etc && mkdir ldapfiles && cd ldapfiles # touch zone.ldiff # Создаем ветку для харнения записей DNS dn: ou=dns,dc=example,dc=com objectClass: top objectClass: organizationalUnit ou: dns description: domain zones # Создаем ветку для хранения корневой зоны. # Так как корневой зоной для нас является «com», то dn: dc=com,ou=dns,dc=example,dc=com objectClass: dNSDomain2 objectClass: domainRelatedObject dc: com associateddomain: com # Создаем SOA-запись для хранения зоны. # Так как FQDN имя нашего домена «example.com», то dn: dc=example,dc=com,ou=dns,dc=example,dc=com objectClass: dNSDomain2 objectClass: domainRelatedObject dc: example SOARecord: ns.example.com root@example.com 1 1800 3600 ↵ 86400 7200 NSRecord: ns.example.com MXRecord: 10 mail.example.com ARecord: 172.16.0.1 associatedDomain: example.com # Создаем запись вида ns IN A 172.16.0.1 dn: dc=ns,dc=example,dc=com,ou=dns,dc=example,dc=com objectClass: dNSDomain2 objectClass: domainRelatedObject dc: ns ARecord: 172.16.0.1 associatedDomain: ns.example.com # Создаем запись вида mail IN CNAME ns для Mail-сервера dn: dc=mail,dc=example,dc=com,ou=dns,dc=example,dc=com objectClass: dNSDomain2 objectClass: domainRelatedObject dc: mail CNAMERecord: ns.example.com

47


администрирование associatedDomain: mail.example.com # Создаем запись вида ldap IN CNAME ns # для OpenDLDAP‑сервера dn: dc=ldap,dc=example,dc=com,ou=dns,dc=example,dc=com objectClass: dNSDomain2 objectClass: domainRelatedObject dc: ldap CNAMERecord: ns.example.com associatedDomain: ldap.example.com # Создаем запись вида srv IN CNAME ns для нашего сервера dn: dc=srv,dc=example,dc=com,ou=dns,dc=example,dc=com objectClass: dNSDomain2 objectClass: domainRelatedObject dc: srv CNAMERecord: ns.example.com associatedDomain: srv.example.com

За более подробной информацией о записях LDAP обратитесь к официальной документации. Добавляем записи DNS в OpenLDAP: # /usr/local/bin/ldapadd -x -D "cn=root,dc=example, ↵ dc=com" -w password -f zone.ldiff

1.0.16.172.in-addr.arpa 1.0.16.172.in-addr.arpa

# nslookup example.com Server: Address:

Приводим файл pdns.conf к следующему виду: ldap-host=127.0.0.1 ldap-basedn=ou=dns,dc=example,dc=com ldap-method=strict allow-recursion=127.0.0.1,172.16.0.0/24 launch=ldap local-address=172.16.0.1 recursor=127.0.0.1 config-dir=/usr/local/etc/pdns daemon=yes guardian=yes disable-tcp=no disable-axfr=no module-dir=/usr/local/lib/ socket-dir=/var/run version-string=powerdns

Приводим файл recursor.conf к следующему виду:

172.16.0.1 172.16.0.1#53

Name: example.com Address: 172.16.0.1

Возвращаемся к конфигурации и проверке работы Samba. Запускаем Samba: # /usr/local/etc/rc.d/030.samba.sh start

Подключаем нашу машину к своему же домену. Данная операция требуется для корректной работы сервера: # net rpc join -U smbroot%password Joined domain EXAMPLE

Проверяем, все ли правильно мы сделали:

Конфигурируем PowerDNS # cd /usr/local/etc/pdns/

name = ns.example.com. name = example.com.

# net prc testjoin -U smbroot%password Join to 'EXAMPLE' is OK

# net prc info -U smbroot%password Domain Name: EXAMPLE Domain SID: S-1-5-21-4089634979-3265135400-2542302168 Sequence Number: 1185975879 Num users: 2 Num domain groups: 4 Num local groups: 0

# smbclient -L SRV -U smbroot%password Domain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.25a] Sharename Type Comment -------- ----- ------ IPC$ IPC IPC Service (Samba PDC 3.0.25a (Example.com)) smbroot Disk Homefolder Domain=[EXAMPLE] OS=[Unix] Server=[Samba 3.0.25a] Server Comment -------- ------------ SRV Samba PDC 3.0.25a (Example.сom)

Workgroups Master ---------------- EXAMPLE SRV

---------

daemon=yes local-address=127.0.0.1 local-port=53 quiet=yes

На этом этапе конфигурация Samba как основного PDC закончена. Теперь можно идти и подключать клиентские компьютеры к новому PDC.

Добавляем записи в rc.conf для запуска PowerDNS:

Заключение

pdns_enable="YES" pdns_recursor_enable="YES"

Запускаем PowerDNS: # /usr/local/etc/rc.d/015.pdnsr.sh start # /usr/local/etc/rc.d/020.pdns.sh start

Проверяем работу PowerDNS:

Итак, давайте подведем итог, что мы получили в результате наших действий. n Мы получили Primary Domain Controller, по функциональным возможностям не уступающий Windows NT 4.0 Server. n Мощный и быстрый сервер DNS. n Операционную систему, устойчивую к всевозможным сбоям, которым подвержены операционные системы семейства Windows.

# nslookup 172.16.0.1 Server: Address:

48

172.16.0.1 172.16.0.1#53

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


bugtraq Переполнение буфера в ActiveX‑компоненте в Microsoft Visual Database Tools Программа: Microsoft Visual Database Tools 7.0. Опасность: Высокая. Описание: Уязвимость существует из-за ошибки при обработке входных данных в ActiveX-компоненте в библиотеке VDT70.DLL. Удаленный пользователь может с помощью специально сформированной веб-страницы вызвать переполнение стека и выполнить произвольный код на целевой системе. URL производителя: www.microsoft.com. Решение: В настоящее время способов устранения уязвимости не существует.

Переполнение буфера в NavComUI ActiveX-компоненте в продуктах Symantec Программа: Symantec Norton AntiVirus 2006, Symantec Norton Internet Security 2005, Symantec Norton Internet Security 2006, Symantec Norton SystemWorks 2006. Опасность: Высокая. Описание: Уязвимос ть сущес твует из-за ошибок в AxSysListView32 и AxSysListView32OAA ActiveX-компонентах (NavComUI.dll) при обработке свойств AnomalyList и Anomaly. Удаленный пользователь может с помощью специально сформированной веб-страницы выполнить произвольный код на целевой системе. URL производителя: www.symantec.com. Решение: Установите исправление с помощью LiveUpdate.

Уязвимость форматной строки в Qbik WinGate

Переполнение буфера в Mercury Mail Transport System Программа: Mercury Mail Transport System 4.51, возможно, более ранние версии. Опасность: Критическая. Описание: Уязвимость существует из-за ошибки проверки границ данных в Mercury/32 SMTP Server Module (mercurys.dll) при обработке аргументов команды AUTH CRAM-MD5. Удаленный пользователь может с помощью слишком длинного аргумента к команде вызвать переполнение буфера и выполнить произвольный код на целевой системе. U R L п р о и з в о д и т е л я : w w w. p m a i l .c o m /ove r v i ew s / ovw_mercury.htm. Решение: В настоящее время способов устранения уязвимости не существует.

Уязвимость при обработке шрифтов в Sun JRE Программа: Sun JDK и JRE 5.0 Update 9 и более ранние версии, Sun SDK и JRE 1.4.2_14 и более ранние версии. Опасность: Высокая. Описание: Уязвимость существует из-за неизвестной ошибки при обработке шрифтов, содержащихся в Java-апплетах. Удаленный пользователь может с помощью специально сформированного апплета просмотреть и записать локальные файлы и выполнить локальные приложения. URL производителя: www.sun.com. Решение: Установите последнюю версию с сайта производителя.

Множественные уязвимости в ClamAV Программа: Qbik WinGate версии до 6.2.2. Программа: Clam AntiVirus (ClamAV) версии до 0.91.2. Опасность: Высокая. Описание: Уязвимость форматной строки обнаружена в ме- Опасность: Высокая. ханизме логирования SMTP-службы при обработке нереа- Описание: 1. Разыменование нулевого указателя обнарулизованных команд или команд в некорректной последова- жено в функции cli_scanrtf() в файле libclamav/rtf.c. Удалентельности. Удаленный пользователь может с помощью спе- ный пользователь может с помощью специально сформициально сформированных SMTP-команд выполнить произ- рованного RTF-файла вызвать отказ в обслуживании приложения. вольный код на целевой системе. 2. Разыменование нулевого указателя обнаружено URL производителя: www.wingate.com/product-wingate.php. Решение: Установите последнюю версию 6.2.2 с сайта в функции cli_html_normalise() файла libclamav/htmlnorm.c. Удаленный пользователь может с помощью специально производителя. сформированного HTML-файла, содержащего data URL‑схеУязвимость при обработке му, аварийно завершить работу приложения. JavaScript‑кода в браузере Opera 3. Уязвимость существует из-за недостаточной обраПрограмма: Opera версии до 9.23. ботки адреса получателя перед вызовом функции popen() при запуске Sendmail. Злоумышленник может с помоОпасность: Высокая. Описание: Уязвимость существует из-за ошибки при обра- щью специально сформированного сообщения выполботке JavaScript-кода, которая приводит к использованию нить произвольный код на целевой системе с привилегивиртуальной функцией некорректного указателя. Удален- ями clamav‑milter. Для успешной эксплуатации уязвимости ный пользователь может с помощью специально сформи- clamav-milter должен быть запущен в режиме «black hole». рованного веб-сайта выполнить произвольный код на це- URL производителя: www.clamav.net. левой системе. Решение: Установите последнюю версию 0.91.2 с сайта URL производителя: www.opera.com. производителя. Решение: Установите последнюю версию 9.23 с сайта проСоставил Александр Антипов изводителя. №9, сентябрь 2007

49


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

fsbackup: удобная и компактная утилита для резервного копирования

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

В

настоящее время нет дефицита пала программа fsbackup, написанная в программах резервного копи- нашим соотечественником Максимом рования и восстановления дан- Чирковым и предоставляющая хороных. Начиная от стандартных, входя- шие возможности вкупе с небольшим щих в состав операционной системы размером. (dump/restore, tar, cpio), и заканчивая сложными (amanda, bacula), они поз- Функциональность воляют создавать архивы, удовлетво- Fsbackup – небольшая бесплатная утиряющие любым капризам пользова- лита для создания резервных копий, теля. В журнале №9 за 2006 год была представляет собой набор скриптов, опубликована статья Сергея Яремчу- позволяющих без усилий получить зака, кратко описывающая эти системы. архивированную копию необходимых При этом в поле зрения автора не по- файлов. Помимо файлов, fsbackup под-

50

держивает бэкап баз данных MySQL, PostgreSQL и SQLite. Есть возможность шифрования создаваемых архивов программой gpg. Языки, на которых она написана (perl и sh), позволяют без изменений переносить эту программу между платформами, все необходимые для работы fsbackup библиотеки поставляются в одном архиве со скриптами. Для создания архивов используются средства системы, а результат сохраняется в формате .tar.gz, что да-


администрирование ет возможность впоследствии восстановить данные, не прибегая к помощи сторонних программ, пользуясь штатными средствами операционной системы. Fsbackup поддерживает инкрементное копирование, похожее на то, что есть в программе dump, за тем лишь исключением, что возможно создание только двух уровней архива. При первом архивировании производится копирование всех файлов, после чего помещению в архив подлежат только файлы, претерпевшие изменения. После определенного в конфигурационном файле количества таких «мелких» резервных копий вновь создается полный архив, но уже с учетом произведенных изменений. Возможность синхронизации дерева может быть полезной в случае, когда нужно иметь копию области файловой системы в несжатом виде, например для хранения документов одновременно на нескольких компьютерах. Этот режим позволяет воспроизвести в месте хранения архива ту же структуру файлов и каталогов, что и на источнике. Еще один вид копирования – hash. На самом деле при работе с этим параметром никакого копирования не происходит, а генерируется лишь хэш-сумма файла, которая в дальнейшем может использоваться для отслеживания изменений в нем. Помимо локальной машины fsbackup умеет делать архивы и на удаленной, передавая данные либо по протоколу SSH, либо по FTP, не используя специального сервера. Для передачи по FTP нужно указать данные сервера, логин и пароль в конфигурационном файле, что представляется не совсем безопасным, поэтому более предпочтительно использовать SSH со сгенерированными ранее ключами, чтобы программа не запрашивала пароль при каждом входе на сервер. Кроме этого, по FTP невозможна работа в режиме синхронизации. Этот вид хранилища может быть востребован в случае нехватки ресурсов, потому как является менее «прожорливым», чем SSH. Архивирование производится на стороне клиента, это удобно, если объем сжимаемых данных велик, а в качестве сервера выступает обычная рабочая станция и даже несколько сжимающих процессов способны занять все ресурсы системы.

№9, сентябрь 2007

Реализация Работа fsbackup зависит от мноОснову fsbackup составляет perl-скрипт, жества параметров (аппаратное обескоторый так и называется: fsbackup.pl. печение, пропускная способность сеЕдинственным и обязательным его па- ти (если вид хранилища не local), тип раметром является название конфи- и объем архивируемых данных, налигурационного файла. Формат файла чие или отсутствие шифрования), поэнастроек очень прост – это обычные тому нагрузка на систему и время, заperl-переменные, которым присваива- траченное на создание резервной коются необходимые значения. Еще од- пии, варьируется от компьютера к комним плюсом утилиты является возмож- пьютеру. ность организовать выборочное архивирование, помещая в архив лишь ука- Недочеты занные файлы или каталоги, либо ис- Как обычно, в программе присутствуключая ненужные. Секция с указанием ют и минусы. В первую очередь, это раэтих правил называется «__DATA__» бота с многотомными архивами. Прои располагается в конфигурационном грамма tar, используемая в fsbackup, файле сразу за списком переменных. не умеет разбивать файлы на нескольСами правила имеют вид простых ре- ко частей, поэтому при архивировагулярных выражений. Конфигурацион- нии больших по объему файлов параный файл очень хорошо документиро- метр максимального размера архива ван автором на русском и английском не работает. Вероятно, ситуацию можязыках, подробно объяснен каждый но исправить использованием утилипункт настроек. ты split. При копировании в каталоге-приНе реализована возможность восемнике создается несколько файлов: становления из резервной копии отсам архив (*.tar.gz); список файлов, уда- дельных файлов, хотя не представленных с момента предыдущего копи- ляет никакой сложности сделать рования (*.del); shell-скрипт для созда- это при помощи утилиты tar. Наприния пустых каталогов и установки не- мер, для того чтобы извлечь файл обходимых атрибутов на файлы: вре- /home/user/.bash_history из архива мя создания, владелец, права досту- archive.tar.gz, нужно запустить архивапа (*.dir); контрольная сумма файлов тор со следующими параметрами: (*.hash); список файлов, помещенных tar xzf arch.tar.gz ↵ в архив (*.list). home/user/.bash_history Помимо основного скрипта в состав утилиты входят скрипты вспомоТаким же способом восстанавливагательные: ются целые каталоги. n create_backup.sh – скрипт, котоВ OpenBSD используется иная, рый следует поместить в crontab чем в Linux и FreeBSD, версия tar, для регулярного запуска резерв- и для того чтобы заставить fsbackup ного копирования; работать в этой системе, необходиn fsrestore.sh – восстанавливает мо отредактировать скрипт fsbackup. данные из инкрементного архива. pl, заменяя параметр «-T» в вызовах Поочередно просматривает все программы tar на «-I». архивы, извлекает нужные файлы С натяжкой к минусам можно оти удаляет те, которые перечисле- нести отсутствие графической оболочны в файле *.del; ки для конфигурирования и управлеn sysbackup.sh – создает список паке- ния утилитой, ведь многие пользоватов, имеющихся в системе. Автома- тели предпочитают голой консоли ботически установить пакеты из этого лее понятный и удобный вид. Но, с друсписка поможет sysrestore.sh; гой стороны, на сервере графическая n mysql_backup.sh, pgsql_backup.sh, часть совершенно ни к чему, поэтому sqlite_backup.sh – эти скрипты утверждать, что данный пункт являетпредназначены для бэкапа соот- ся минусом, некорректно. ветствующих баз данных. ПоддеВ целом, fsbackup – это компакрживаются режимы полного ко- тная, удобная и очень простая для пирования всех баз; копирования понимания программа, которая истолько указанных баз; копирова- правно исполняет то, для чего предния всех баз, кроме указанных. назначена. 51


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

Как организовать сервис телерадиовещания в интранет-сети

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

В

сетях Интранет уже давно внедрен и успешно применяется сервис VoIP, позволивший организовать голосовую связь без значительных материальных затрат. В свою очередь увеличение пропускной способности канала влечет за собой появление новых сервисов, способных существенно изменить представление о современной IP-сети. Сейчас есть возможность получать сервисы файлообмена (подразумевается внутри сети), Интернет, телефонию и телевидение по одному кабелю. В итоге, подобные решения позволяют сэкономить на кабельной инфраструктуре и ее обслуживании, позволяют повысить качество предлагаемых услуг. Что может уже сейчас предоставить современная IP-сеть? n доступ в сеть Интернет; n обмен файлами (p2p); n услуга IP0телефонии; n телеконференции; n теле и радиовещание; n видеонаблюдение.

52

Сегодня подробнее рассмотрим сервис телерадиовещания (ТРВ) и затронем тему видеонаблюдения. Эволюция традиционных сетей привела к появлению так называемых «мультисервисных сетей». В нынешних корпоративных сетях разного масштаба присутствует трафик, который условно можно разделить на четыре категории: n потоковое видео, аудио; n видеоконференции и голосовая связь; n обычные данные; n служебные данные необходимых сервисов (DHCP, DNS и т. д.). Каждая категория трафика весьма специфична и имеет свою степень устойчивости относительно уровня потерь пакетов, задержки, джиттера. Значения этих характеристик необходимо нормировать с помощью технологии качества обслуживания (Quality of Service, QoS), поэтому необходимо обеспечивать не только широкую по-

лосу пропускания, но и приоритезацию трафика. Существует три способа доставки потокового видео: n Unicast – передача данных от одного источника к одному потребителю; n Broadcast – передача данных всей сети, пакеты будут передаваться каждому клиенту; n Multicast – передача данных от одного источника группе получателей, клиент может принять решение об участии в получении данных или об отказе. Прежде чем внедрять новый сервис, тем более такой ресурсоемкий как ТРВ, необходимо: n Выявить и изолировать или ограничить уровень мультикаст-трафика в сегменты с низкой пропускной способностью, если таковые имеются. n Постараться максимально оптимизировать маршруты движения мультикаст-трафика.


администрирование n Настроить оборудование с поддержкой IGMP, IGMP-snooping, PIM (для маршрутизации мультикасттрафика). Хорошо, если все оборудование в сети поддерживает IGMP (IGMP‑snooping). Для большой сети желательно иметь централизованную систему мониторинга сетевого оборудования для быстрого обнаружения возникающих проблем. Проектирование мультисервисной сети обычно начинается с задания сервисов, для которых она создается. В нашем же случае имеем дело с «наследуемой системой», поэтому необходимо определить ограничения, связанные с уже имеющейся в наличии конфигурацией сети и установленным оборудованием. В нашей сети сервис видео не является приоритетным, а является дополнением к традиционным сервисам. На этапе настройки сервиса ТРВ необходимо контролировать параметры загрузки сети, чтобы впоследствии Рисунок 1. Схема сети не допустить заметного ухудшения раКак видно из схемы, конечные узлы боты традиционных сервисов. При уже работающем сервисе не- подключены к коммутаторам лабораобходимо измерить характеристики торий по технологии 100Base-T, котопроизводительности. Методология из- рые в свою очередь соединены с кормерений и сами характеристики про- невым коммутатором 100/1000Base‑T. изводительности сетей и сетевых уст- Серверы, в том числе и сервер веройств подробно описаны в докумен- щания (Srv7), подключены к корневому комму татору по технологии тах IETF [1, 2, 3]. Для сетевого уровня, например, 1000Base‑T. Таким образом корневой коммутаэто серия документов группы IETF «IP Performance Metrics Working Group» тор образует скоростную «сжатую» ма(IPPM). Определены методики измере- гистраль между лабораториями и серний и для канального уровня (RFC2544), верами. Протокол IGMP поддерживаа также для более высоких уровней ется корневым коммутатором и одним группы SG12 ITU-T, отвечающей за ре- из коммутаторов лабораторий. Используется три вида коммутатокомендации в области субъективной ров уровня доступа (лабораторий): и объективной оценки аудио и видео. Практика показывает, что результа- n управляемые 100Baset-T с поддержкой IGMP; ты измерений второго и третьего уровня по методикам IETF часто не объяс- n неуправляемые 100Baset-T; няют низкого качества конечного ре- n неуправляемые 100Baset-T с uplinkпортом 1000Baset-T. зультата, а могут лишь использоваться для поиска неисправностей и проЭти три вида коммутаторов предверки части гипотез о причинах низкого качества сервиса. Соответствующие ставлены, соответственно, коммутадействительности результаты можно торами L1, L2 и LN. получить лишь экспериментально.

Схема сети Сервис ТРВ создавался на базе сети, упрощенная схема которой представлена на рис. 1.

№9, сентябрь 2007

Серверная часть

Сервер вещания генерирует около 10 мультикаст-потоков 3-4 Мбит/с каждый. Вещание происходит по протоколу UDP. Потоки представляют со-

бой телеканалы MPEG-2, принимаемые со спутника. Оговорюсь сразу, что наш сервер видеовещания не был и не будет предназначен для промышленного (коммерческого) использования, для которого существует множество аппаратных, масштабируемых и надежных решений. В таких решениях используются профессиональные аппаратные ресиверы, кодеры, декодеры, мультиплексоры, платформы для вещания. Наш же сервер реализован с использованием программного решения. Мы остановились на небезызвестном Open Source продукте – Video Lan Client (VLC) [4]. В качестве операционной системы выбрана Debian/GNU Linux. VLC и Linux – это отличная платформа для тестирования и настройки всей сети перед внедрением коммерческого вещания. Данную платформу можно использовать как недорогое решение для локальных сетей. Цена решения складывается из стоимости тюнеров DVB-S и сервера видеовещания, в который тюнеры будут установлены. В качестве DVB-S-тюнера было принято решение установить 3 карты SkyStar2 [5]. Причина, по которой бы-

53


администрирование ла выбрана именно эта карта, – большое количество различных программных решений под нее, как под Linux, так и под Windows. Так выглядит запуск VLC с необходимыми нам параметрами: vlc --ts-es-id-pid --programs=16,17,18,65,75 dvb: \ --dvb-adapter=0 --dvb-frequency=12207000 --dvb-s\ rate=27500000 --dvb-voltage=18 –sout-standard-access=udp\ --udp-caching=600 --sout-standard-mux=ts –sout\ '#duplicate{dst=std{dst=230.1.1.1}, select="program=8201",\ dst=std{dst=230.1.1.2},select="program=8204",\ dst=std{dst=230.1.1.3},select="program=8208",\ dst=std{dst=230.1.1.4},select="program=8211",\ dst=std{dst=230.1.1.6},select="program=8202",\ dst=std{dst=230.1.1.7},select="program=8203",\ scodes=dvbs}' -d

В данной строке мы указываем номера каналов (programs), номер тюнера (dvb-adapter), параметры транспондера (dvb-frequency, dvb-srate) и указываем адрес назначения (dst). В качестве адреса назначения используются мультикаст-адреса, выбираемые из диапазона 224.0.0.0239.255.255.255. Исключение при выборе составляют следующие адреса: n 224.0.0.1 – все узлы в данной сети; n 224.0.0.2 – все маршрутизаторы в данной сети; n 224.0.0.5 – все OSPF-маршрутизаторы; n 224.0.0.6 – выделенные OSPF-маршрутизаторы; n 224.0.0.9 – маршрутизаторы RIP-2; n 224.0.0.10 – IGRP-маршрутизаторы; n 224.0.1.1 – получатели информации по протоколу точного времени NTP. Так выглядит скрипт в /etc/init.d/ для автоматической загрузки модулей карты с параметром DVB-ядра: dvb_shutdown_timeout=0, который не позволяет «уснуть» карте, если она длительное время не задействована: #! /bin/sh set -e case "$1" in start) /sbin/modprobe dvb-core dvb_shutdown_timeout=0 /sbin/modprobe skystar2 /sbin/modprobe stv0299

;; stop) /sbin/modprobe -r skystar2 /sbin/modprobe -r stv0299 /sbin/modprobe -r dvb-core ;; *) echo "Usage: /etc/init.d/dvb {start|stop}" exit 1 esac exit 0

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

54

Алгоритм решения проблемы следующий:

n Завершение приложений, использующих DVB-S-карту SkyStar2.

n Перезапуск драйвера DVB-S карты SkyStar2 (в этот момент карта инициализируется).

n Повторный запуск приложений (конкретно VLC). Был написан простой скрипт watchdog, который постоянно следит за потоком с сетевого интерфейса сервера и перезагружает сервис. Ниже представлена одна из первых версий скрипта, так как на данный момент, в связи с еще несколькими сервисами на основе VLC на этом сервере, скрипт существенно изменен. Значение исходящего потока (переменная thread) получено экспериментально на основе мониторинга сетевого интерфейса. Как только значение потока становится ниже заданного порога, выполняются действия, описанные выше: #! /bin/sh while [ 0 ]; do thread=$(tcpstat -o '%B' -F -s 7 | awk -F. '{print($1)}') sig0=$(dvbsnoop -n 1 -timeout 10 -s signal -adapter 0\ | tail -n 1 | awk -F\ '{printf $7}') sig1=$(dvbsnoop -n 1 -timeout 10 -s signal -adapter 1\ | tail -n 1 | awk -F\ '{printf $7}') sig2=$(dvbsnoop -n 1 -timeout 10 -s signal -adapter 2\ | tail -n 1 | awk -F\ '{printf $7}') echo $sig0 $sig1 $sig2 $thread >> /usr/dvb/log

if [ $thread -lt 3300000 ] ; then echo $thread echo "Завершаем все процессы VLC" killall -9 vlc echo "Выгружаем DVB-S модули" /etc/init.d/dvb stop echo "Запускам DVB-S модули" /sbin/modprobe dvb-core dvb_shutdown_timeout=0 /sbin/modprobe skystar2 /sbin/modprobe stv0299 echo "Запускаем VLC с новыми DVB-S модулями"

vlc --ts-es-id-pid --programs=16,17,18,65,75 dvb:\ --dvb-adapter=0 --dvb-frequency=12207000 –dvb-s\ rate=27500000 --dvb-voltage=18 ↵ --sout-standard-access=udp \ --udp-caching=600 --sout-standard-mux=ts\ –sout '#duplicate{dst=std{dst=230.1.3.1},\ select="program=16",dst=std{dst=230.1.3.2},\ select="program=17",dst=std{dst=230.1.3.3},\ select="program=18",dst=std{dst=230.1.3.4},\ select="program=65",dst=std{dst=230.1.3.5},\ select="program=75", sap,name="Radio_Music_Box",\ scodec=dvbs}' -d pidof vlc > vlcpid0

vlc --ts-es-id-pid –programs=8201,8204,8208, ↵ 8211,8202,8203\ dvb: --dvb-adapter=1 --dvb-frequency=12597000 \ --dvb-srate=27500000 --dvb-voltage=13 \ --sout-standard-access=udp --udp-caching=600 \ --sout-standard-mux=ts –sout '#duplicate{\ dst=std{dst=230.1.1.1},select="program=8201",\ dst=std{dst=230.1.1.2},select="program=8204",\ dst=std{dst=230.1.1.3},select="program=8208",\ dst=std{dst=230.1.1.4},select="program=8211",\ dst=std{dst=230.1.1.6},select="program=8202",\ dst=std{dst=230.1.1.7},select="program=8203",\ scodes=dvbs}' -d pidof vlc > vlcpid1

vlc --ts-es-id-pid --programs=525 dvb: ↵ --dvb-adapter=2\ --dvb-frequency=12692000 –dvb-srate=27500000 ↵ –dvb-voltage=13\ --sout-standard-access=udp --udp-caching=600 \ --sout-standard-mux=ts --sout '#duplicate{dst=std{\ dst={230.1.2.1},select="program=525"}' -d pidof vlc > vlcpid2


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

sleep 14 echo `date +%d.%m.%Y"-"%k:%M:%S` SignalLevel[0,1,2,eth1]: $sig0 $sig1 $sig2 ↵ $thread\ >> /var/log/dvb/restartlog0 echo $thread – "Значение потока в норме"

Как видно из кода скрипта, информация о перезапусках сервиса пишется в файл /var/log/dvb/restartlog0, где можно точно посмотреть, когда происходил перезапуск сервиса, и составить диаграмму стабильности (нестабильности) работы сервиса. По диаграмме можно легко выяснить причину падения уровня сигнала. Причиной может послужить, например, загораживание вашей антенны каким-либо объектом или же неблагоприятные для приема атмосферные условия. Для повышения стабильности сервиса нужно повысить уровень принимаемого сигнала, чтобы даже при значительных изменениях в атмосфере уровень сигнала оставался в норме. Решение сводится к выбору большей по диаметру спутниковой антенны, качественного конвертера и кабеля от конвертера к картам SkyStar2. Другое решение – использовать другой, возможно, более дорогой, спутниковый тюнер. Характеристики самого сервера следующие: P-IV 1.6 ГГц, RAM DDR 1 Гб, HDD – 40 Гб. Так как в нашем случае VLC не перекодирует принимаемый поток, то соответственно загрузка процессора не должна быть высокой. Значение не превышает 30%, а в среднем составляет 15-20%. На этом реализация серверной части заканчивается.

Клиентская часть Смотреть телеканалы можно как с помощью компьютера, так и на обычном телевизоре через STB (Set Top Box). Рассмотрим первый вариант – просмотр видео на компьютере. Здесь можно выбрать один из трех способов. 1 способ. Для просмотра телеканалов можно воспользоваться все тем же самым VLС-плеером (см. рис. 2). Составляем плейлист из мультикаст-адресов потоков с названиями каналов и, выбирая элементы плейлиста, смотрим. Тут никаких хитростей. Не забываем выбрать Deinterlace, чтобы убрать эффект «гребенки». Так выглядит плейлист VLC в текстовом виде:

Media Player (WMP). Но как всегда с продуктами компании Microsoft возникают сложности. Для начала нужно установить Elecard-кодек [6], он коммерческий, и в качестве триал-версии его можно использовать 21 день. Далее установить программу UdpFilters [7], которая собственно и заставляет WMP смотреть наши каналы. Ссылка на канал по адресу: udp://230.1.1.1:1234 выглядит в WMP таким образом: «elecard://230.1.1.1:1234/udp». Составляем плейлист и смотрим. <?wpl version="1.0"?> <smil> <head> <meta name="Generator" content= "Microsoft Windows Media Player --10.0.0.4036"/> <title>Playlist5</title> </head> <body> <seq> <media src="elecard://230.1.1.1:1234/udp >> Sport Planeta"/> <media src="elecard://230.1.1.2:1234/udp >> BBC"/> <media src="elecard://230.1.1.3:1234/udp >> 1 Kanal"/> <media src="elecard://230.1.1.4:1234/udp >> EuroNews"/> ... ... ... </seq> </body> </smil>

3 способ. Можно смотреть и при помощи браузера. Для этого, устанавливая VLC, необходимо установить ActiveX и Mozilla‑плагин. Поднимаем веб-сервер, а если он имеется, то размещаем на нем php-скрипт, находящийся по адресу [8]. Скрипт был немного изменен: добавлены ссылки на каналы (справа от видеоэкрана), установлен по умолчанию режим деинтерлейсинга blend, удалена излишняя для просмотра вещаемых каналов функциональность. Скрипт автоматически определяет браузер и поэтому в Internet Explorer будет использоваться ActiveX, а в Mozilla Firefox – Mozilla‑плагин.

#EXTINF:0,EuroNews udp://@230.1.1.4 #EXTINF:0,BBC udp://@230.1.1.2 #EXTINF:0,1Kanal udp://@230.1.1.3 .........

2 способ. Так же для просмотра можно использовать и Windows

№9, сентябрь 2007

Рисунок 2. Интерфейс плеера

55


администрирование ются видеозаписи интересных и важных наших событий.

Заключение

Рисунок 3. Веб-интерфейс для просмотра

Оба плагина поддерживают регулировку громкости и полноэкранный режим (веб-интерфейс представлен ниже). Данное решение является не только межпрограммным, но и межплатформенным, так как установить Mozilla и VLC с плагином можно на большинстве современных операционных систем (см. рис. 3). К сожалению, при просмотре через WMP + Elecard, обнаружилось, что некоторые каналы начинают «тормозить» при частом переключении с канала на канал, по той же причине WMP часто зависает. Разницы в качестве картинки между использованием коммерческого кодека Elecard и кодека VLC не заметно, что весьма удивительно (возможно, что-то не так в настройках). На некоторых каналах VLC выигрывает в качестве. По функциональности, если нет задачи записывать видео или «играться» с деинтерлейсингом, то, без сомнений, веб-интерфейс гораздо удобнее. Подавляющее большинство пользователей в нашей сети использует именно веб-интерфейс. А теперь можно перейти и ко второму варианту просмотра телеканалов. Вариант второй заключается в просмотре телеканалов на телевизионном приемнике с использованием STB-приставки. STB представляет собой небольшое устройство с сетевым

56

Сервис ТРВ добавил функциональность в существующую инфраструктуру нашей сети, а также помог определить процент пользователей, интересующихся данным видом сервиса, что может быть важно перед внедрением коммерческого вещания. На данный момент он существенно не повлиял на ухудшение работы других сервисов сети. Не стоит забывать о необходимости проводить контроль задержки, уровней ошибки и потери пакетов, джиттера, в условиях мультикаст-трафика разной интенсивности и при выполнении на конечных узлах реально используемых сетевых приложений в рамках обычных (нескольтелеканалов ких типовых) сценариев работы польинтерфейсом и обычно с несколькими зователей. видеовыходами. Отмечу, что за рамками данной стаВ качестве образца была взята тьи осталась информация о применеSTB-приставка AmiNet [9]. нии технологии имитационного модеИзображение, получаемое с при- лирования для проектирования сеставки, не уступает по качеству тому, тей и выявления потенциальных узчто выдает DVD-проигрыватель. Про- ких мест в них, настройке на оборудосмотр телеканалов на телевизоре счи- вании протоколов IGMP и PIM, реалитаю самым удобным. зации сервиса VoD. Намного удобнее щелкать кнопки Внедрив сервис ТРВ, вы получите пульта, сидя в кресле или на диване, массу удовольствия! нежели щелкать мышкой, сидя перед экраном компьютера. 1. IETF Network Working Group, IP Performance Metrics (IPPM) for Развитие сервиса spatial and multicast, 2006 – http:// Сервис может получить развитие в виwww.ietf.org/internet-drafts/draft-ietfде новых источников: ippm-multimetrics-02.txt. n каналы традиционного аналогово- 2. I E T F N et wo r k Wo r k in g G roup, го вещания; Benchmarking Methodology for n веб-камеры; Network Interconnect Devices, 1999 – n создание своего видеоканала (наhttp://www.ietf.org/rfc/rfc2544.txt. пример вещание видеозаписей 3. I E T F N et wo r k Wo r k in g G roup, или частной фильмотеки); Framework for IP Per formance n реализация сервиса VoD (Video on Metrics, 1998 – http://www.ietf.org/ Demand). rfc/rfc2330.txt. 4. http://www.videolan.org/vlc. В нашей сети к нескольким ком- 5. http://www.technisat.de. пьютерам подключены вебкамеры 6. h t t p : / / w w w . e l e c a r d . c o m / Logitech QuickCam. На данных комproducts/products-pc/consumer/ пьютерах установлена программа VLC mpeg2‑decoder-plugin. в качестве службы. Принятый с ка- 7. http://borpas.info/download/add/ мер поток принимается, декодируетUdpFilters.exe. ся и раздается по мультикаст-адре- 8. http://people.videolan.org/~dionoea/ сам в сеть. Таким образом организоvlc-plugin-demo/plugin.php. ван простой сервис видеонаблюдения. 9. http://www.aminocom.com/products/ Организован свой канал – транслируipstb/aminet110.html.



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

Солнечный мальчик

Скотт Макнили хочет оставить сисадминов без работы.

Я

верю в эту теорию: все, что заложено в нас с детства, даже до рождения, рано или поздно аукнется, даст всходы, вылезет наружу. Судьба Скотта Макнили – яркий тому пример. Возьмем такую мелочь, как имена, которые он дал своим четырем сыновьям: Маверик, Скаут, Кольт и Дакота. Вы думаете, так обычно зовут американцев? Нет, это модели автомобилей... Откуда у Скотта вспыли ассоциации? Да просто отец, старший Макнили, много лет работал в автомобильном бизнесе. Неудивительно, что председатель Совета директоров Sun Microsystems

58

создает убедительные образы для опи- ся спортом, отдыхать… Нет, он никогсания своих деловых принципов, опи- да не был лентяем, просто не хотел раясь на ту же автомобильную терми- тратить свою энергию на скучные, ненологию. Например, он говорит, что нужные вещи. клиент интересуется продуктом цеНаверное, это главное качество холиком, а не его отдельными частя- рошего бизнесмена – умение сосредоми. Ведь, покупая автомобиль, чело- точиться на главном и гнуть свою ливек оценивает всю машину, а не смот- нию, несмотря ни на что. Выходит, зря рит, как сделан карбюратор или пок- детям говорят строгие мамы и папы: рышки. «Упрямишься, как маленький… Слушайся родителей!». Свобода Первая операционная система, Дети не только безгрешны, но и сво- созданная господином Макнили, быбодны. В детстве, будучи учеником ла основана на технологии открыпривилегированной частной школы, того источника UNIX. Результат? Скотт учился так, чтобы среднее об- Sun Microsystems – успешная компаразование не мешало жить, занимать- ния, а очень многие ее конкуренты


человек номера прекратили существование еще в прошлом веке. Скотт Макнили размышляет так: «Океан бизнес а полон лежащих на дне скелетов, которые оказались неконкурентоспособными. Слишком много людей думают, что станут следующим Microsoft, будут владеть новым патентом и контролировать его. По мне же, стратегия общего использования разработок, открытости и множественности связей более устойчива, потому что мы стоим на плечах инвестиций от кого угодно и партнерства с кем угодно. Почти две тысячи компаний общаются между собой по поводу Java, помогают улучшать эту технологию». Java, которая сегодня используется в шести миллиардах мобильников, как известно, основана на модели Open Source. «Что есть Open Source? Это значит – делиться. Это значит, кто угодно и откуда угодно может войти в Сеть и добавить свое», – объясняет Макнили. Открытость и выбор – еще два основополагающих принципа, в соответствии с которыми Макнили и его коллеги, создавшие 25 лет назад компанию Sun, живут и работают. Даже название компании – результат выбора. Оказывается, группа студентов Стэнфорда и Беркли обсуждала, как назвать будущий техногигант: Stanford University Network или Berkeley University Network, и Sun победило Bun. Макнили уверен: «Без выбора у нас нет инноваций. Без инноваций у нас нет ничего». Немного наивная, детская логика? Но когда человек верит в то, что говорит, когда созданная с его помощью компания превращается с годами в ведущего мирового поставщика сетевых решений, когда в отделениях этой фирмы по всему миру работают 38 тысяч человек, о какой наивности может идти речь? Впрочем, я не буду о фирме, я о Макнили – человеке, в котором живо детство. А значит, дальше речь пойдет о среднем образовании. Ведь детство – это в первую очередь школа…

Образование Скотт Макнили прекрасно образован. После частной школы он получил степень бакалавра по экономике в Гарвар-

№9, сентябрь 2007

де и степень магистра делового адми- приводит сам руководитель Sun). Канистрирования в Стэнфорде. ким образом? К счастью, учеба в элитных заведеМакнили объяснил: «Дайте кажниях не сделала его снобом. Макнили дому доступ к новейшим и наилучне просто «демократ по натуре», он ак- шим программам обучения, и пусть тивно призывает к всеобщему равенс- они учатся в таком темпе, который им тву. Информационному. удобен. Суть в том, чтобы открыть ис«Знания не должны быть частной точники образования начиная с прособственностью. Живя в Южном Бос- граммы средней школы. Вместо того тоне или Южной Индии, каждый дол- чтобы покупать ребенку 130-доллажен иметь доступ к высшему образо- ровый учебник математики, покаживанию. Это нужно для личностного рос- те ему, как найти в Интернете сведета. Мы должны сломать барьеры на пу- ния об этом предмете, который не изти прогресса». менился со времен Ньютона. ВообраНе думаю, что все это сказано зите, штат Калифорния ежегодно традля «красного словца» или ради пиа- тит 400 миллионов долларов на модерра (хотя и это наверняка присутствует!), низацию учебников. А что, если потрапросто образование пробудило в Мак- тить эти деньги на всеобщий доступ нили лучшие человеческие чувства к среднему образованию?» и желание помочь «ближнему своему» Предложение искать знания в Инстать образованным. Это в духе тео- тернете вызывают понятные сомнерии энциклопедиста Жан Жака Руссо, ния. Интернет – это такая сборная соно встречается и в XXI веке… лянка, в которой непросто найти нужА может быть, демократический ную информацию. Чтобы решить эту дух проник в молодого Макнили пос- проблему, Скотт Макнили создал вебле Гарварда, когда он трудился на за- сайт Curriki с образовательными матеводе в качестве мастера, затем инже- риалами, которые можно не только иснера и не мечтал еще о карьере топ- пользовать, но и критиковать, редакменеджера IT-компании? тировать, дополнять. Между прочим, в Стэнфордскую Идея, конечно, не нова. Напришколу бизнеса он поступил лишь с тре- мер, существует сайт Multimedia тьего захода, набрав трудовой стаж. Educational Resource for Learning and Путь к знаниям у Скотта был не та- Online Teaching (Merlot), который предким простым, как кажется. А теперь он лагает учебные материалы для студенхочет облегчить эту дорогу 100 милли- тов колледжа. Преподаватели выклаонам людей, которые лишены доступа дывают здесь же свои комментарии к качественному образованию по фи- и предложения. нансовым или географическим причиОбразовательные материалы, конам (эти цифры в своих публикациях торые можно корректировать, пре-

59


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

доставляет посетителям Сети и сайт Connexions. И вот теперь есть Curriki. Он пока не так популярен, как его предшественники, но все-таки уже имеет 25 тысяч зарегистрированных пользователей и около ста тысяч посетителей со всего света ежедневно. Материалы эти не публикуются «самотеком», их читают, рецензируют, правят эксперты. А свобода использования состоит в том, что во-первых, их скачивают бесплатно, во-вторых, сценарий урока обществоведения, к примеру, можно отредактировать, убрать то, что противоречит политическим, религиозным или культурологическим взглядам учителя и школьников. «Если вам не нравится упоминание о креационизме (религиозное учение о божественном сотворении мира), выбросьте его», – говорит Макнили. – «Если вы не согласны с Дарвиным, не говорите о его учении на занятии. Мы не собираемся указывать вам, чему учить. Мы просто хотим снабдить вас материалами, которые были изучены и проверены. Все добровольно и открыто». Издатели учебников пока не рассматривают Скотта Макнили как серьезного конкурента, да и чиновники органов управления образовани-

60

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

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

рется достаточного количество системных администраторов, чтобы нажать <Ctrl+Alt+Del>. И второе – у нас резко обострится проблема глобального потепления. Другой путь, – шутки в сторону, Скотт серьезен, – преодолевать цифровое неравенство с помощью компьютерных сетей». Выглядит это так: интернет-компании не имеют собственного компьютерного парка, они арендуют только память и мощности, на планете есть только шесть компьютеров, объединенных в мировые крупнейшие сети, которыми владеют гигантские телекоммуникационные компании. Поставщик для этих сетей – естественно, Sun Microsystems. Что будут делать пользователи? Скотт считает, что люди получат полную свободу, им не будут нужны ни мониторы с процессорами, ни компьютерные столы. Выходишь в сеть через специальное устройство, миниатюрное, как мобильный телефон, или находишь на улице специальный киоск. Любопытно, чем в этой структуре будут заниматься системные администраторы и сколько их вообще останется? Ясно только одно – «Майкрософту» шансов выжить не дается вообще. А Sun ожидает благоденствие и процветание. Ну скажите на милость, на что похожи эти мечты? На планы мальчишки, который строит крепость из песка и собирается сразиться с драконом. «Как ни забавно это звучит, мы смертельно серьезны», – настаивает Макнили. В свои 52 года он не стесняется быть мальчишкой. Скотт вынашивает планы глобальной революции, а создание мемуаров откладывает на потом: «У меня четыре сына, и я не хочу, чтобы в один прекрасный день я оказался в старом кресле с чипсами в руках и сказал своим детям: «Посмотрите на папочку на обложках старых журналов». Пока единственное кресло, в котором Макнили вынужден проводить порой десять часов кряду, – то, что стоит в салоне самолета…

Текст: Оксана Родионова, фотографии взяты с сайта www.sun.com



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

Организуем хранение ключей OpenSSH в центральном сервере OpenLDAP

Виталий Банковский Последние обновления операционных систем, брандмауэры... Снаружи наша система – неприступный бастион. А изнутри? Редко меняющиеся и «расползающиеся» пароли, приходящие и уходящие пользователи, пересылка паролей по незащищеным каналам... Знакомо? Тогда эта статья для вас. 62


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

М

ногие системные администраПосле некоторого исследования ляет создавать шифрованные канаторы, которые назначают па- был обнаружен патч для OpenSSH, лы между демоном OpenLDAP и клироли системным учетным за- который позволяет последнему обра- ентами. И хотя в нашей базе данных не храписям на серверах, а затем раздают щаться к службе каталогов LDAP. их пользователям (например, програмКаждая запись в каталоге состоит нится потенциально небезопасная инмистам и дизайнерам), сталкиваются из одного или нескольких атрибутов формация (например, пароли), но если с проблемой «расползания» паролей и определяется уникальным именем OpenLDAP-сервер расположен на удасреди пользователей. И в результате (DN – Distinguished Name), например, ленной площадке, то при прохожденевозможно определить, какие поль- «cn=John Smith, ou=People, dc=example, нии через транзитные узлы сущестзователи к какому ресурсу имеют до- dc=com». вует вероятность утечки имен польУникальное имя состоит из не- зователей и их адресов электронной ступ. К тому же, если используются пароли, то их необходимо менять каждые скольких относительных уникальных почты. И эта информация может слунесколько месяцев, и при рассылке об- имен (RDN – Relative Distinguished жить хорошим подспорьем для взлоновленных паролей существует опас- Name), разделённых запятой, которые ма с использованием социальной ини определяют положение записи в ие- женерии. ность их «утечки». Поэтому я полностью отказался рархии каталогов LDAP, где на верхнем Также есть опасность подделки от использования паролей и пере- уровне, например, находится имя стра- IP‑адреса сервера OpenLDAP, захвашел к системе аккредитации пользо- ны, где расположена компания, затем та IP-адреса сервера OpenLDAP хакевателей. Каждый пользователь име- название компании, подразделение ром, изменения таблицы ARP на комет свой публичный ключ SSH, который и, наконец, список работников. мутаторе и запуска поддельного сероднозначно его идентифицирует, и таДля простоты службу каталогов вера OpenLDAP на подконтрольном хаким образом, создавая список публич- с демоном OpenLDAP будем называть керу сервере, например, на соседнем ных ключей для какого-нибудь ресур- сервер LDAP, что включает в себя: сервере с вашим. Тогда в этом случае са, можно управлять списком аккреди- n сервер с операционной системой; хакер может внести его собственный тованных пользователей. n базу данных каталога; ключ в директорию для получения доЗатем я некоторое время исполь- n демон, который обрабатывает за- ступа к серверу-клиенту. зовал инструмент для централизованпросы по протоколу LDAP. Исходя из этого необходимо вклюного управления серверами cfengine чить поддержку SSL/TLS в сервере для копирования ключей пользоваСтатья была написана исходя OpenLDAP, сгенерировать сертификателей на сервера. Но при этом воз- из опыта ус тановки и экс плуата- ты и настроить клиентов таким обраникла проблема, что из-за сложности ции системы на Linux-дистрибутивах зом, чтобы они обрывали соединение cfengine системные администраторы CentOS 4.1, CentOS 4.4, RedHat 7.3, с сервером OpenLDAP в случае полу3‑го и 4-го уровней не могли управлять Redhat 8. чения поддельного сертификата. В качестве сервера OpenLDAP аккредитацией пользователей. Здесь стоит пояснить, как работает К тому же из-за хранения ключей использовался программный пакет проверка. При проверке сертификата во множественных файлах на множес- OpenLDAP, полученный по адресу одно- клиент проверяет организацию, кототвенных серверах бывает проблема- именного проекта: http://openldap.org. рая подписала сертификат. Если центр тично определить, к каким ресурсам На серверах-клиентах использо- сертификации (certificate authority, CA) имеет доступ тот или иной пользова- вался пакет OpenSSH, доступ к кото- неизвестен клиенту (отсутствует сертель, и, например, в случае ухода поль- рому можно получить по адресу про- тификат самого CA), то клиент не дозователя или утери приватного ключа екта: http://openssh.org. веряет этому центру и, как следствие, есть вероятность «прозевать» какойТак как в такие дистрибутивы, не доверяет сертификату. как RedHat 7.3, RedHat 8.0, входят услибо файл с этим ключом. На данный момент существует окоКонечно, можно было бы напи- таревшие версии пакетов, то мне при- ло 10‑12 доверенных центров сертифисать несколько простейших скрип- шлось устанавливать их из исходных кации (Equifax, Verisign и т. д). Стоитов, которые раскладывали бы ключи кодов. мость подписания сертификатов в этих по серверам и уничтожали бы неизК тому же использование пакетов центрах составляет от 50 до 500 долвестные ключи. Но такие «самопаль- с «родных» сайтов позволяет опера- ларов США. ные» скрипты, как показывает практи- тивно обновлять серверы, не ожидая Но есть возможность создать ка, требуют немало времени на сопро- обновлений от производителей дист- собственный CA, для которого мы совождение при расширении систем, тес- рибутивов, что, на мой взгляд, явля- здадим самоподписанный сертификат, тирование, документирование и обуче- ется очень важным преимуществом который мы и распространим по клиние коллег системных администрато- при использовании таких критических ентам. Таким образом, клиенты будут ров, которые должны обеспечить ра- приложений, как openLDAP. доверять сертификатам, подписанным боту этих скриптов в случае отсутснашим CA. твия разработчика. Настройка сертификатов Далее приведены шаги, которые Поэтому возникла идея по хране- и TLS необходимо предпринять для созданию ключей в централизированной Сервер OpenLDAP при условии ком- ния собственного CA и подписать сербазе данных. пиляции поддержки TLS/SSL позво- тификаты.

№9, сентябрь 2007

63


безопасность Таблица 1. Файлы сертификации Имя файла

Назначение

Newcert.pem

Сертификат, который будет передаваться клиентам с сервера OpenLDAP

Newreq.pem

Содержит ключ сертфиката и запрос на сертфикат. Используется исключительно только на стороне сервера OpenLDAP

demoCA/cacert.pem

Сертификат нашего CA. Этот файл нужно распространить по всем клиентам

В состав программного пакета openSSL входит скрипт CA.sh, который значительно упрощает создание сертификатов. Создать директорию, где будут хранится рабочие файлы сертификатов: mkdir certs; cd certs

Создать файлы, необходимые для нашего собственного CA: CA.sh -newca

cp newreq.pem /usr/local/etc/openldap/certs/slapd.key cp newcert.pem /usr/local/etc/openldap/certs/slapd.cert

Копируем файл (DemoCA/cacert.pem) сертификата нашего CA на все серверы-клиенты в каталог, содержащий все сертификаты центров сертификации. Текущее расположение каталога можно посмотреть, открыв системный файл ldap.conf и найдя в нем параметр «TLS_CACERTDIR». Если такого параметра еще нет, то его необходимо добавить, как показано ниже: TLS_CACERTDIR /etc/cacerts/

После копирования сертификата нашего CA следует указать библиотеке OpenSSL на необходимость создания/ обновления хэшей сертификатов, находящихся в данном каталоге. Для этого воспользуемся утилитой c_rehash, входящей в состав пакета OpenSSL: c_rehash /etc/cacets/

Обращаю внимание, что если уже используется параметр В результате будет создан каталог demoCA, где будет ле- TLS_CACERT с указанием корневого сертификата CA, отжать сертификат cacert.pem нашего CA. личного от нашего, то его нужно расположить до параметСгенерировать запрос на сертификат: ра TLS_CACERTDIR. Далее создаем файл openssh-ldap.conf, содержащий наopenssl req -new -nodes -keyout newreq.pem -out newreq.pem стройки LDAP для демона OpenSSH. Ниже приведена базовая конфигурация такого файла, который я использую В результате получим файл newreq.pem, состоящий из двух на своих серверах-клиентах. частей: приватный ключ сертификата и запрос (request) # Корневая структура каталога на сертификат. BASE dc=example,dc=com При подписании (следующий шаг) OpenSSL использу# Адреса LDAP-серверов. Указывается главный и запасной ет часть файла, который содержит запрос (request) на сер# OpenLDAP-серверы. Подробности установки и использования тификат. # такой схемы описываются в разделе «Репликация и вторичный # сервер OpenLDAP» Обращаю внимание, что если запрос на сертификат пеURI ldap://ldap.example.com ldap://ldap2.example.com ресылается в стороннюю организацию для получения сер# Переходить в режим шифрования после подсоединения тификата, то нужно выделить запрос из текстового фай# к серверу openLDAP ла newreq.pem и передать только эту часть. Ключ никогда ssl start_tls не должен быть доступен третьим лицам и должен быть сохранен в безопасном месте. Эта опция указывает клиентским приложениям сервеПодписываем сертификат с помощью нашего CA. ра OpenLDAP обрывать сессию, если с последнего полуВ процессе создания сертификата будет предложено чен сертификат, не подписанный ни одним CA, которым ввести «Common name». Введенное имя должно совпа- мы доверяем. дать с адресом сервера OpenLDAP, указанного в ldap.conf, Обращаю внимание, что включение этой опции может иначе клиент OpenLDAP откажется работать с этим сер- вызвать неработоспособность уже настроенного локальтификатом: ного клиента OpenLDAP, если система обращается к серверам OpenLDAP с поддержкой шифрования, но при этом CA.sh -newca CA, который подписал сертификаты серверов OpenLDAP, нам неизвестен. В результате будет создан файл newcert.pem, который соЕсть три варианта решения этой проблемы – добавить держит сертификат нашего сервера OpenLDAP. Здесь об- этот неизвестный CA в /etc/cacerts, переподписать сертифиращу ваше внимание на то, что, хотя оба файла располо- каты нашим CA или скомпилировать библиотеку OpenLDAP жены на сервере OpenLDAP, при подключении к серверу для OpenSSH с использованием файла ldap.conf, отличноOpenLDAP клиентам отдается содержимое только файла го от системного. newcert.pem. Небольшой совет. При установке клиентских приложеРезультирующие файлы и их описания приведены в таб- ний (pam_ldap, Apache, ftp-серверов) зачастую возникает лице 1. неразбериха с расположением файла ldap.conf. Одни проДалее копируем сертификат и его ключ на сервер граммы пытаются найти его в каталоге /etc, другие – в каOpenLDAP: талогах /etc/openldap, /usr/local/etc/, /usr/local/etc/openldap

64


безопасность и т. д. Для устранения этого недостатка я создал файл в /usr/local/etc/openldap/ и ссылки на него в каталог, в упомянутых выше клиентских приложениях.

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

Компиляция и установка OpenLDAP Получаем исходный код OpenLDAP с сервера http:// openldap.org. После этого раскрываем архив, компилируем и устанавливаем: tar -xzvf openldap-xxx.tgz ./configure --enable-bdb --with-tls –with-threads \ --disable-ipv6 make depend make make install

Конфигурация сервера OpenLDAP хранится в текстовом файле slapd.conf и состоит из двух или более частей: общие настройки и параметры определения баз данных OpenLDAP. Далее приведены основные параметры этого файла, на которые необходимо обратить внимание: Подключение схем, описывающих форматы и структуры данных, хранимых в каталоге OpenLDAP: include /usr/local/etc/openldap/schema/cosine.schema include /usr/local/etc/openldap/schema/nis.schema

Подключить схему, описывающую атрибут «OpenSSH public key»: include /usr/local/etc/openldap/schema/ ↵ openssh-lpk_openldap.schema

Далее идут настройки TLS для предоставления шифрованного канала между серверами-клиентами и сервером OpenLDAP. Этот вопрос будет подробнее освещен в разделе «Настройка сертификатов и TLS». Запрещаем требовать от клиента предоставления сертификата:

TLSVerifyClient never Необходимо включить шифрование TLS (Transport Layer Security, криптографический протокол) с помощью опции ‑‑with-tls для возможности установления безопасных Уровень шифрования. Определяет список алгоритсоединений с серверов-клиентов к серверам OpenLDAP. мов шифрования по критерию шифростойкости. Значение Перед установкой необходимо убедиться, что в системе «HIGH» указывает на необходимость использования алгоустановлены пакеты Berkeley Database и OpenSSL, вклю- ритмов, у которых длина ключа не менее 128 бит. Подробчая библиотеки для разработки. Оба пакета можно полу- ности о способах указания алгоритмов можно найти по адчить по адресу: http://freshmeat.net или воспользоваться па- ресу: http://www.openssl.org/docs/apps/ciphers.html. кетным менеджером операционной системы.

Описание атрибутов записей в OpenLDAP Служба OpenLDAP позволяет хранить в каталоге данные в различных форматах. Формат каждого типа записи определяется с помощью так называемой «схемы» (Schema). Например, файл nis.schema, входящий в пакет OpenLDAP, описывает такие атрибуты записей, как имя пользователя, пароль, его uid, gid и путь к домашнему каталогу. Для хранения публичного ключа OpenSSH в записях пользователя необходимо расширить список атрибутов с помощью файла, описывающего атрибут sshPublicKey. Этот файл можно получить с родного сайта проекта по адресу http://dev.inversepath.com/openssh-lpk/ openssh‑lpk_openldap.schema. Этот файл нужно включить в конфигурационный файл сервера OpenLDAP, как описано в следующем разделе.

Настройка сервера OpenLDAP По умолчанию, если OpenLDAP собран из исходников, то все настройки будут скопированы в папку /usr/local/etc/openldap. В дальнейшем при упоминании конфигурационных файлов, относящихся к openLDAP, будет подразумеваться, что они расположены в этой папке. Сперва нужно определить путь к базе данных, суперпользователя и иерархию каталогов, в которую входят три уровня – название компании, группа пользователей как структура и список пользователей, входящих в эту группу.

№9, сентябрь 2007

TLSCipherSuite

HIGH

Пути к сертификату и его ключу: TLSCertificateFile /usr/local/etc/openldap/certs/slapd.cert TLSCertificateKeyFile /usr/local/etc/openldap/certs/slapd.key TLSCACertificateFile /etc/cacert.pem

Далее идут персональные настройки для базы данных. Тип базы данных. В данном случае я использовал Berkeley DB, хотя OpenLDAP поддерживает различные базы данных (MySQL, Oracle) через интерфейс ODBC: database

bdb

Корневой уровень нашей иерархической базы данных OpenLDAP: suffix

"dc=example,dc=com"

Имя суперпользователя, который имеет все права для управления базой: rootdn

"cn=manager,dc=example,dc=com"

Пароль суперпользователя: rootpw

super-user-pass

65


безопасность Таблица 2. Параметры утилиты ldapsearch Параметр

Назначение

-x

Использовать встроенную систему идентификации OpenLDAP (не SASL). Так как сервер OpenLDAP был собран с поддержкой TLS, то по умолчанию ldapsearch будет пытаться провести аутентификацию через протокол SASL

-b

Базовый уровень иерархии

-ZZ

Использовать StartTLS для перехода в режим шифрования

-H

URL LDAP-сервера

Путь к директории, где будет храниться база данных учетных записей: directory

/var/openldap/unix-accounts

Индексация базы данных для ускорения поиска: index uidNumber,gidNumber,uid,cn,objectClass, ↵ memberUid eq

Для повышения производительности также необходимо создать файл DB_CONFIG в том же каталоге, где расположены файлы базы данных Berkley DB (в нашем варианте файл должен быть расположен в /var/openldap/unix-accounts). Этот файл содержит параметры кэширования базы данных. Ниже приведен пример такого файла: # Обьем памяти, выделяемой для кэша: # первое число – объем в гигабайтах; # второе число – объем в мегабайтах; # третье число – количество сегментов кэша. # Если это число – больше единицы, то кэш будет разбит # на указанное количество сегментов set_cachesize 0 52428800 0 # Следующая секция - параметры для лог-файлов. # Все значения указываются в байтах. # Объем кэша для кэширования имен файлов, в байтах set_lg_regionmax 1048576 # Максимальный размер лог-файлов. При превышении # этого параметра произойдет ротация лог-файлов set_lg_max 10485760 # Объем кэша для лог-файлов: set_lg_bsize 2097152 # Путь к директории, где будут хранится лог-файлы set_lg_dir /var/log/openldap/

Далее вам необходимо создать каталог /var/log/openldap и поменять владельца этого каталога на пользователя, под которым запущен демон OpenLDAP.

Создание записей в базе OpenLDAP Перед запуском сервера OpenLDAP необходимо создать запись, описывающую корневую структуру базы данных OpenLDAP. Для этого создадим текстовый файл в формате LDIF (OpenLDAP Data Interchange Format, формат обмена данными директорий OpenLDAP), описывающий корневую структуру нашего каталога. На верхнем уровне будет располагаться описание нашей компании, на втором – описание группы пользователей. # Описание компании dn: dc=example, dc=com dc: example

66

objectclass: dcObject objectclass: organizationalUnit ou: Our company name # Описание группы пользователей, находящихся на третьем # уровне иерархии dn: ou=people, dc=example, dc=com ou: people objectclass: organizationalUnit

Далее нужно проинициализировать базу данных, используя эти первоначальные записи: slapadd -l startup.ldif -v ↵ -f /usr/local/etc/openldap/slapd.conf

Запуск и проверка сервера OpenLDAP На этом этапе нужно запустить демон службы OpenLDAP и проверить его работу, а также содержимое базы данных: /usr/local/libexec/slapd

Для поиска записей в сервисе OpenLDAP служит утилита ldapsearch, пример использования которой приведен ниже: ldapsearch -x -b 'dc=example,dc=com' -ZZ -H ldap://127.0.0.1

Параметры утилиты описаны в таблице 2. Если все предыдущие шаги выполнены успешно, то в результате запуска утилиты мы должны увидеть описание нашей компании (уровень I) и описание группы пользователей: # example dn: dc=example,dc=com dc: example objectClass: dcObject objectClass: organizationalUnit ou: PlainJoe example com # people, example.com dn: ou=people,dc=example,dc=com ou: people objectClass: organizationalUnit # search result search: 2 result: 0 Success

Создание учетных записей Как и в предыдущем случае, для введения новых записей нужно создать текстовый файл в формате LDIF. Файл учетной записи chat-example-com: dn: uid=chat-domain-com,ou=People,dc=example,dc=com objectclass: top objectclass: person objectclass: organizationalPerson objectclass: posixAccount objectclass: ldapPublicKey description: John Doe Account userPassword: x cn: John sn: Doe uid: chat-domain-com uidNumber: 65535 gidNumber: 65535


безопасность homeDirectory: /home/chat-domain-com sshPublicKey: ssh-rsa AAA... sshPublicKey: ssh-rsa BBB...

В полях sshPublicKey нужно прописать публичные ключи пользователей, имеющих аккредитацию для данного ресурса, как в примере ниже: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDxZpHyn4DqM5T6lxI/ ↵ p4caUvf84cAXcqFkedbptW TBpK4ADSMrCXNpiivZ5f5ZRDP6WcFmWfvnIPgfC/860xgXhU9I2n/ ↵ fA+epxc6RqYOXZN3J kBn0JhYWEt6GYpcBPVwV1ShoyA6oqKwx2PAzYaGwRpTTf7I3Ndxlk ↵ z2p4gBDwpN61V759O /kWgrRg2kDwPxEDhmkKbMHTSZS3pt10U86bSVWMfr4Q9WqVc ↵ 4AxrkaAiTZB6GCm2TUvYiM MWQybnhTM2sx7KdihWiY31bIROcPiT+z5+oS ↵ /kCoy40gIlaHdGW7W2RPApeTzZxOZcflaN d1myjHHkooDDByVbktPxfP info@example.com

Сгенерировать такой ключ можно с использованием утилиты ssh-keygen, входящей в состав пакета OpenSSH: ssh-keygen -t rsa|dsa

В результате генерации ключа будет создан файл id_rsa.pub или id_dsa.pub, в котором будет находиться публичный ключ, который и заносится в файл LDIF. Пояснения к наиболее значимым параметрам записи приведены в таблице 3. После создания этого файла LDIF нужно добавить эту запись с помощью утилиты ldapadd, входящей в состав пакета OpenSSH: ldapadd -f user1.ldif -x -D "cn=Manager,dc=example,dc=com" \ -H ldap://127.0.0.1 -w 'super-user-pass'

Параметр -D содержит описание суперпользователя, как он был определен в файле ldap.conf. Параметр -w содержит пароль суперпользователя. После запуска, если файл создан верно, мы должны увидеть следующее сообщение: adding new entry "uid=chat-domain-com,ou=People,dc=example,dc=com" modify complete

Установка и настройка демона OpenSSH По умолчанию демон OpenSSH работает с ключами, расположенными в текстовых файлах на локальном сервере. Для того чтобы демон OpenSSH обращался к серверу OpenLDAP, нужно применить специальный патч, который расположен по домашнему адресу проекта: http:// dev.inversepath.com/trac/openssh-lpk. Если в состав дистрибутива уже входит пакет OpenSSH с поддержкой OpenLDAP, то можно его и использовать. Итак, получаем исходный код openssh с адреса http:// openssh.org и раскрываем архив. Далее необходимо скачать версию патча, которая совпадает с вашей версией openSSH, в каталог с исходными кодами OpenSSH и наложить патч: tar -xzvf openssh-xxx.tgz cp openssh-lpk-xxx.patch cd openssh-xxx patch -p 2 < openssh-lpk-xxx.patch

№9, сентябрь 2007

Таблица 3. Поля учетной записи в формате LDIF Имя поля

Описание

dn: uid=chat-domain-com, ou=people,dc=example,dc=com

Описание учетной записи в иерархии каталога OpenLDAP

userpassword: x

Пароль пользователя. Так как изначально мы не планировали хранить в базе OpenLDAP пароли, то нужно поставить x как символ неактивного пароля

cn: john

Common name. Имя пользователя

sn: john

Surname. Фамилия пользователя

uid: chat-domain-com

Имя пользователя в системе

uidnumber

Uid учетной записи. Достаточно поставить 65535, так как openSSH будет использовать uid из файла /etc/passwd

GidNumber

Gid учетной записи. Как и в предыдущем случае, демон openSSH использует /etc/group для получения gid пользователя

HomeDirectory

Путь к домашнему каталогу пользователя

SshPublicKey

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

./configure --sysconfdir=/usr/local/etc/openssh-ldap \ –prefix=/usr/local/openssh-ldap –with-ldap make make install

Параметр -ldap включает поддержку OpenLDAP для демона OpenSSH. Весь пакет за исключением конфигурационных файлов будет установлен в /usr/local/openssh‑ldap. Рекомендуется прописать запуск OpenSSH с поддержкой OpenLDAP в отдельном файле /etc/init.d/openssh‑ldap. Эти две особенности установки рекомендуется применить для исключения замены стандартным демоном OpenSSH в случае обновления системы. Далее нужно изменить конфигурационный файл /usr/ local/etc/openssh-ldap/sshd_config и добавить строки, описывающие взаимодействие демона OpenSSH со службой OpenLDAP: # Использовать LPK UseLPK yes # Взять параметры работы с сервером OpenLDAP # из внешнего файла LpkLdapConf /etc/openssh-ldap.conf

Репликация и вторичный сервер OpenLDAP Как упоминалось в разделе «Установка и настройка демона OpenSSH», демон OpenSSH поддерживает обращение ко вторичным серверам OpenLDAP, если главный сервер недоступен. Для поддержки этой технологии необходимо установить вторичный сервер(ы) OpenLDAP. Для синхронизации данных вторичного сервера с главным сервером пакет OpenLDAP имеет встроенные средства репликации. Процесс настройки репликации и будет описан в этом разделе. Перед настройкой репликации необходимо предпринять следующие шаги: n Установить пакет OpenLDAP на вторичные серверы.

67


безопасность Вторичный демон OpenSSH При использовании технологии хранения ключей в центральном сервере OpenLDAP есть опасность, что вход на сервер по протоколу SSH будет невозможен, если все серверы OpenLDAP недоступны (неправильная конфигурация межсетевого экрана, падение серверов OpenLDAP, окончание срока действия сертификатов и т. д). Поэтому я рекомендую скопировать ключи суперпользователей на каждый сервер и запустить запасной демон OpenSSH на другом порту. Я использую параметр: PermitRootLogin without-password

в ко н ф и г у р а ц и н н о м ф а й л е д е м о н а OpenSSH. Эта опция позволяет входить

пользователю «root» только с использованием ключей OpenSSH.

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

n Создать ключи с Common Name, совпадающим с адресом вторичного сервера OpenLDAP (например, ldap2.example.com). Эти шаги уже были описаны, что дает нам возможность сосредоточиться на самом процессе настройки репликации. Сам процесс включает в себя 4 шага: n Копирование текущей базы. n Описание вторичного сервера на главном сервере OpenLDAP. n Запуск демона репликации. n Тестирование. Копирование заключается в копировании каталога /var/ openldap/unix-accounts с главного сервера в такой же каталог на вторичном сервере. Убедитесь что владелец каталога совпадает с именем пользователя, под которым запущен демон OpenLDAP. Перед нача лом необходимо ос тановить демон OpenLDAP на главном сервере, чтобы гарантировать целостность базы. Для того чтобы описать вторичный сервер на главном сервере, необходимо добавить следующие строчки в конфигурационный файл slapd.conf на главном сервере: replica host=ldap2.example.com starttls=yes ↵ binddn="cn=Manager,dc=example,dc=com" ↵ bindmethod=simple credentials='super-user-pass' replogfile /var/log/openldap/ldap_replica.log

Параметр binddn должен содержать имя суперпользователя, как указано в определении базы данных в файле slapd.conf. Параметр credentials содержит пароль суперпользователя. Параметр replogfile содержит путь к лог-файлу, в котором демон OpenLDAP будет сохранять изменения в базе данных. Очень важно, чтобы этот файл не попадал под периодическую очистку (например, ротация лог-файлов).

68

шить количество репликаций (только MySQL вместо MySQL и OpenLDAP). К тому же, как показывает практика, отношение системных администраторов к данным репликации MySQL значительно более аккуратное, чем к лог-файлам репликаций в /var/log/openldap/.

Использование схемы «один центральный и два вторичных OpenLDAP-сервера» При использовании такой схемы появляется возможность балансировки загрузки вторичных серверов с помощью Cisco Content Switch. Об использовании данного устройства для балансировки и построения отказоустойчивых систем будет рассказано в одной из моих следующих статей.

Далее нам необходимо разрешить вторичному серверу OpenLDAP принимать обновления базы данных OpenLDAP. Для этого нужно добавить следующую строку в конфигурационный файл slapd.conf на вторичном сервере: updatedn

cn=manager,dc=example,dc=com

Для синхронизации данных между главным и вторичным серверами служит демон slurpd, который вычитывает изменения файла ldap_replica.log и передает изменения демону OpenLDAP на вторичном сервере. Необходимо запустить демон slurpd: /usr/local/libexec/slurpd

Тестирование включает в себя занесение новой учетной записи в главный сервер OpenLDAP и дальнейшее обращение к вторичному серверу для проверки: ldapsearch -x -b 'dc=example,dc=com' -v -H ldaps://ldap2.example.com

Если процесс настройки репликации прошел удачно, то этот запрос покажет наличие только что добавленной учетной записи на вторичном сервере. И, конечно, необходимо добавить запуск демонов slapd и slurpd на главном сервере и демонов slapd на вторичных серверах в процесс запуска служб при загрузке серверов.

Управление учетными записями OpenLDAP из приложений Многие языки программирования содержат инструменты для работы с демоном OpenLDAP. В разделе мы рассмотрим, как управлять записями в каталоге OpenLDAP из программ, написанных на языке программирования Perl. Для этого нам понадобится пакет perl-ldap, который можно установить из исходного кода, предварительно получив по адресу: http://search.cpan.org, или обратиться к пакету CPAN:


безопасность perl -MCPAN -e 'install Net::LDAP'

Далее приведен пример скрипта на языке Perl, который добавляет нового пользователя, параметры которого определены в начале файла: #!/usr/bin/perl use strict; use Net::LDAP; # Адрес сервера OpenLDAP. Адрес указывается в качестве # параметра при запуске этого скрипта my $ldaphost = $ARGV[0]; # Имя учетной записи my $uid = 'chat-example-com; # Имя пользователя и фамилия пользователя my $cn = 'John'; my $sn = 'Smith'; # Расположение учетной записи в иерархии базы LDAP my $dn = 'ou=People,dc=example,dc=com'; # Путь к домашнему каталогу my $homedir = '/home/chat-domain-com'; # Получаем из файла public_keys.txt ключи пользователей, # имеющих аккредитацию для данного ресурса open(F, “public_keys.txt”); my @ssh_keys=<F>; close(F); # Параметры суперпользователя и адрес главного # сервера OpenLDAP my $suser_name = 'cn=manager, dc=example, dc=com'; my $suser_pass = 'super_user_passw'; # Подключение к серверу OpenLDAP с аккредитацией # суперпользователя my $ldap = Net::LDAP->new( $ldaphost ); my $mesg = $ldap->bind( $suser_name, password => $suser_pass); # Добавить учетную запись my $result = $ldap->add( "uid=$uid,$dn", attr => [ 'cn' => $cn, 'sn' => $sn, 'uid' => $uid, 'userPassword' => "x", 'uidNumber' => 65535, 'gidNumber' => 65535, 'homeDirectory' => $homedir, 'sshPublicKey' => @ssh_keys, 'objectclass' => ['top', 'person', ↵ 'posixAccount', 'ldapPublicKey' ], ] ) || die "error in installing new account\n";

# # Пример для удаления учетной записи # my $result= $ldap->delete( "uid=$uid,$dn"); print "error: in ldap trying to delete ↵ $uid $result->error" if($result->code);

Управление аккредитациями В этой части я расскажу о процедуре управления аккредитациями пользователей конкретными ресурсами и как она используется в нашей компании. Каждый проект у нас имеет уникальное имя пользователя на серверах. Например, проект chat.example.com имеет имя пользователя chat-example-com на сервере, обслуживающем данный ресурс (или на всех серверах в случае кластерного решения). Также в базе данных MySQL хранится список пользователей (программистов и дизайнеров) нашей компании. Каждая такая запись содержит в себе такие поля, как полное имя, контактная информация и публичный ключ. Также существует таблица проектов. Каждая запись о проекте включает в себя несколько параметров, включая имя пользователя (username, напиример chat-example‑com) на сервере. И наконец, есть таблица MySQL, которая содержит записи в виде: (project_id, member_id)

Эта таблица управляется из простейшей веб-панели системными администраторами. При обновлении таблицы (добавление или удаление пользователя) запускается скрипт на языке Perl, который обновляет базу данных OpenLDAP по протоколу OpenLDAP. 1. http://google.com. 2. http://openldap.org. 3. http://openssh.org. 4. http://dev.inversepath.com/trac/openssh-lpk. 5. http://wikipedia.org. 6. http://www.openssl.org/docs/apps/ciphers.html.

$result->code && warn "failed to add entry: ", ↵ $result->error ;

Аналогичны примеры для модификации и удаления учетных записей: # # Пример для модификации учетной записи # # Поиск записи и получение дескриптора $mesg = $ldap->search(filter => ↵ "(uid=$user->{username})", base=>$dn); $mesg->code && die $mesg->error; my $entry = $mesg->entry(0); # Замена параметров учетной записи $entry->replace(sn=>$sn); # Занесение обновленных данных обратно в сервер OpenLDAP my $result = $entry->update($ldap);

№9, сентябрь 2007

69


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

Защищаем локальные ресурсы сети

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


безопасность Приступая к работе

Характеристики алгоритмов

Проблемы, связанные с защитой инАлгоритм Размер ключа, Длина блока, Число Основные операции шифрования бит бит циклов формации, на сегодняшний день приобретают все более важное значеDES 56 64 16 Подстановка, перестановка, кольцевая сумма ние. IDEA 128 64 8 Умножение по модулю 216+1, сложение по модулю 216, кольцевая сумма Различные методики шифрования и аутентификации позволяют защиBlowfish 32-448 64 16 Сложение по модулю 232 , подстановка, кольцевая сумма тить передаваемые по сети данные от несанкционированного доступа. ГОСТ 28147-89 256 64 32 Сложение по модулю 232 , перестановка, кольцевая сумма, циклический сдвиг Но и локальные ресурсы тоже нужRijndael 256 128 10, 12, 14 Более сложные операции даются в защите. Файлы и папки, хранящиеся на жестких дисках серверов, рабочих станций и, что особенно важ- торых имеются файловые серверы го ключа в случаях, когда необходимо но, ноутбуков пользователей, зачас- (возможно, не под Windows), почто- передать данный ключ по незащищентую представляют интерес для недоб- вые серверы, базы данных, сотрудники ному каналу, например, для расшифрегулярно ездят в командировки с кор- ровки данных получателем при перожелателей. Если защиту серверов и стацио- поративными ноутбуками, а также ис- реписке. Шифрование с открытым ключом нарных рабочих мест пользователей пользуют сменные носители для пере(асимметричное шифрование) возникможно обеспечить физически, пос- носа информации. Наивно полагать, что в компани- ло при решении задачи предоставлередством охраны, камер слежения, сигнализации и т. д., то физическую ях такого типа нет информации, ко- ния шифрованных данных другим любезопасность ноутбуков обеспечить торая могла бы заинтересовать кого- дям, когда не существует защищенното, кроме самих сотрудников этой ор- го маршрута, по которому можно перене всегда возможно. дать ключ шифрования. В последнее время в новостях ре- ганизации. Раз личные с пис ки пос тавщи Для шифрования с открытым клюгулярно можно встретить сообщения о том, что в той или иной компа- ков и клиентов, бухгалтерская отчет- чом используется пара ключей: открынии потеряны ноутбуки, содержав- ность, контакты, переписка – все это тый ключ, который можно распрострашие конфиденциальную информа- может представлять интерес для кон- нять, и личный ключ, который остается секретным. цию. Так что проблема защиты мо- курентов. Чтобы зашифровать сообщение, бильных данных является весьма акАлгоритмы отправляемое какому-либо пользотуальной. вателю, в алгоритме шифрования исОдним из способов защиты, кото- и их характеристики рый я буду описывать, является шиф- Однако прежде чем приступить к опи- пользуется открытый ключ получателя. санию приложений и технологий, осу- Но зашифрованное сообщение можно рование. В статье я не буду касаться требо- ществляющих шифрование, необхо- дешифровать только с помощью личваний, предъявляемым к госструкту- димо рассмотреть ряд технических ного ключа получателя. Этот метод аналогичен сейфу рам и компаниям, работающим с сек- вопросов, которые нужны для пониретными документами (требования 1Д, мания основ криптографии, исполь- с прорезью. Через эту прорезь можно зуемой во всех системах защиты ре- поместить в сейф документ, но только 1Г и другие [4]). Также я не буду касаться аспектов сурсов, которые описаны в статье. человек с подходящим личным ключом использования шифрования в банках Прежде всего это технология откры- может извлечь этот документ. К сожалению, алгоритмы шифро(их стандарты определены в соответс- тых ключей. Всем известно шифрование с сим- вания с открытым ключом работают твующих документах ЦБ РФ). Задачи обеспечения шифрования во всех метричными ключами. Оно предусмат- медленнее симметричных, что соотэтих организациях должны обеспе- ривает использование одного клю- ветственно накладывает определенчивать специалисты из «первых от- ча как для шифрования, так и для де- ные требования к производительносшифрования данных. ти серверов. делов». Такой способ шифрования аналоДля лучшего понимания упоминаЯ не буду рассматривать коммерческие решения Enterprise-уровня, гичен хранению документа в сейфе. ющихся в статье алгоритмов шифрокак аппаратные, так и программные, Документ помещают в сейф и запи- вания я привожу таблицу, содержатак как внедрение таких систем тре- рают с помощью определенного клю- щую сравнительные характеристики бует серьезных финансовых затрат ча. Чтобы открыть сейф, использует- различных симметричных алгорити высокой квалификации специалис- ся тот же ключ. Это надежный и быс- мов шифрования. Поясню содержитрый метод, однако он не совсем под- мое таблицы: тов, работающих с ними. Таким образом, я буду описывать ходит для шифрования данных поль- n Размер ключа – определяет длину использованного при шифровании обеспечение защиты локальных ре- зователя. Поскольку ключ шифрования долключа. сурсов посредством шифрования для компании небольших и средних жен оставаться конфиденциальным, n Блоки данных – используются при осуществлении операций замены. размеров (50‑250 рабочих мест), в ко- возникают трудности в передаче это-

№9, сентябрь 2007

71


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

EFS на практике

Рисунок 1. Настройки EFS в групповой политике

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

Что предлагает Windows Один из самых распространенных способов шифрования, с которым мне приходилось сталкиваться, это архивация файлов с использованием пароля. Я не буду рассуждать о криптографической надежности такого метода защиты, но хотелось бы отметить, что это не самый быстрый способ хранения, ведь для извлечения какого-либо файла из большого архива требуется довольно много времени. К тому же при архивации теряются разрешения на доступ к данному файлу на уровне файловой системы (NTFS permissions). Так что более удобным решением является использование штатно-

72

го средства операционной системы Windows – EFS (Encrypted File System). EFS шифрует все данные с помощью симметричного ключа. Затем данный ключ шифруется с помощью асиметричного шифрования. При этом файловая система производит доступ к открытому и личному EFS-ключам пользователя. Поэтому файлы, шифруемые с помощью EFS, не могут предоставляться для разделяемого использования другими пользователями. Для защищенного разделения файлов с другими пользователями должен использоваться другой метод шифрования (например, S/MIME). Кроме того, если файлы, шифруемые с помощью EFS, сохраняются на другой машине, то для дешифрования на эту машину должна быть импортирована информация о ключах данного пользователя. Все это замечательно работает, пока нормально функционирует операционная система. В случае сбоя и потери ключей шифрования вам потребуется агент восстановления, который позволяет восстановить потерянные файлы. Делается это следующим образом: как уже упоминалось, EFS шифрует все данные с помощью одного симметричного ключа. Этот симметричный ключ затем шифруется дважды: один раз с помощью открытого ключа EFS данного пользователя, чтобы можно было выполнить дешифрование, и еще один раз с помощью открытого ключа агента восстановления, чтобы можно было восстановить данные.

Приступим к реализации шифрования в нашей Windows-сети. Прежде всего необходимо определиться с политикой восстановления в случае потери ключа. Так как шифруемые данные по определению представляют особую важность (иначе мы их не шифровали), нужно хорошо продумать политику восстановления. Чтобы восстановить файл, используется сертификат для агента восстановления. В домене Active Directory для агента восстановления автоматически указывается учетная запись Administrator на первом контроллере данного домена. Но вы можете самостоятельно переназначить агентов восстановления. Только не забывайте о безопасности, так как агент восстановления может расшифровать любой файл в домене. Лучше всего создавать специальные учетные записи, которые будут использоваться только в качестве агентов восстановления и не для чего-либо еще. Также «хорошим тоном» является снятие роли агента восстановления с учетной записи Administrator. Итак, для добавления агента восстановления необходимо произвести следующие действия. В оснастке «Active Directory Users and Computers» выберите нужный домен или «Organization Unit (OU)», затем «Properties». Выбираем нужную политику, далее «Edit». После этого выбираем «Computer Configuration → Windows Settings → Security Settings → Public Key Policies». Под узлом «Public Key Policies» выбираем «Encrypting File System», нажимаем правую кнопку мыши – «Add Data Recovery Agents» (см. рис. 1). С помощью мастера добавляем агентов. После этого щелкните правой кнопкой мыши на каком-либо агенте восстановления и укажите «All Tasks», далее «Export».


безопасность С помощью мастера Certificate Export Wizard экспортируйте ключ восстановления. Ключ лучше всего экспортировать на переносимый носитель, например на дискету, которую необходимо хранить в безопасном месте. Ни в коем случае не храните этот ключ на жестком диске, так как это сведет на нет все усилия по защите данных. Далее выполните вход с помощью учетной записи этого агента восстановления и затем откройте оснастку «Certificates». В дереве консоли выберите «Personal» и затем «Certificates». После этого выбираем сертификат, соответствующий ключу восстановления, и нажимаем «Delete». Все, теперь у вас остался только один ключ для расшифровки – тот, который вы сохранили на дискете. Теперь даже в случае хищения ноутбука или жесткого диска злоумышленники не смогут прочитать данные. Таким образом, с помощью штатных средств операционной системы Windows можно осуществить защиту хранящихся локально данных. Однако не стоит забывать о различных съемных носителях, таких как компакт-диски, флэш-карты и другие. Опять-таки многие используют запароленные архивы, но, на мой взгляд, специализированные программы справляются с задачей защиты информации гораздо лучше. Например, специализированные программы позволяют подключать зашифрованные данные в качестве отдельного диска, тем самым облегчая жизнь пользователям, которые не слишком хорошо владеют компьютером. Кроме того, специализированные программы позволяют использовать различные алгоритмы шифрования, что также является преимуществом.

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

Утилита Cryptainer LE Данная утилита позволяет создавать зашифрованные диски-контейнеры, размещаемые в файлах, представленных в системе как хранилища защищаемой информации. Для примера, создадим небольшой контейнер размером 1 Мб. К слову, бесплатная версия программы позволяет создавать контейнеры объемом до 25 Мб. Для карт памяти и различных мобильных носителей этого вполне достаточно. Итак, получить дистрибутив можно по адресу [1]. Устанавливаем программу, далее выбираем «New Volume». В открывшемся окне мастера указываем, где должен находиться зашифрованный файл-контейнер. Enter Volume Label – метка тома, которая будет записана при инициализации или разметке диска. Нужно быть внимательными при указании имени раздела, так как может возникнуть конфликт при подключении диска, в случае если диск с таким именем уже используется в системе. Затем указываем размер диска (не более 25 Мб). Указываем пароль и, наконец, выбираем алгоритм шифрова-

№9, сентябрь 2007

Рисунок 2. Мастер создания нового контейнера

ния. Из предлагаемого (не слишком богатого) списка более предпочтительным является алгоритм Blowfish. В случае если вам не требуется форматировать новый раздел (например, если вам нужна файловая система NTFS), выделяете соответствующую метку. Нажимаете «Proceed to Create New Volume» и получаете новый контейнер (см. рис. 2). Теперь можете открыть «Мой компьютер» и увидеть новый подключенный диск. С этим диском вы можете работать так же, как и с обычным. По завершении работы нажимаете «Unload» и получаете зашифрованный контейнер. Файл контейнера (путь к которому можно посмотреть в разделе «Tools → Show the Primary Volume File Name») вы можете скопировать на любой съемный носитель и подключить уже на другой машине, на которой установлен Cryptainer. Из интересных особенностей данной утилиты можно также отметить наличие мастера, позволяющего создавать отдельные файлы для их отправки по электронной почте, а также зашифрованные файлы в формате EXE, то есть выполнимые файлы, которым не требуется наличие установленного дистрибутива Cryptainer.

Отечественная разработка VDFCrypt Еще одно интересное, свободно распространяемое решение. Позволяет создавать зашифрованные диски, аналогично Cryptainer, однако алгоритмов шифрования здесь намного больше, в том числе ГОСТ 28147 – российский стандарт шифрования. Также VDFCrypt позволяет работать с шифрованными контейнерами через командную строку. Это удобно при использовании WSH сценариев и командных файлов. Программа проста в работе. Получив дистрибутив по адресу [2], устанавливаем VDFCrypt. После установки нам доступна GUI-версия программы, консольная версия, а также конвертер, позволяющий преобразовывать данные, зашифрованные с помощью одного

73


безопасность мом Blowfish, но стандартом шифрования данных в вашей компании является ГОСТ, то вы можете без труда конвертировать данный файл в нужный формат (естественно, при наличии пароля на расшифровку исходной версии).

Microsoft Private Folder 1.0

Рисунок 3. Список дисковых устройств

алгоритма шифрования, в данные, зашифрованные другими алгоритмами. Открываем VDFCrypt, в разделе Диски приводится список всех дисковых устройств, а также свободных букв для наименования (см. рис. 3). Далее выбираем свободную букву, нажимаем правую кнопку мыши «Создать диск…». Затем указываем имя файла-контейнера, объем диска, алгоритм шифрования (к примеру ГОСТ) и пароль. Шифрованный диск создан. Теперь с ним можно работать так же, как с обычным устройством. Также вы можете назначить горячие клавиши для работы с контейнерами. Удобство работы с консольной версией VDFCrypt можно ощутить при использовании программы на большом числе рабочих станций. Например, вот так можно подключить шифрованный контейнер local.vdf, размером 10 Мб, с именем диска W и автоматическим выполнением файла x:\start.bat, после подключения диска: vdfcryptc -M c:\local.vdf -S 10M -G -r x:\start.bat -D W

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

74

Завершая обсуждение утилит для шифрования файлов под Windows, я опишу утилиту от Microsoft, позволяющую создать специальную зашифрованную папку «My Private Folder». Утилита является бесплатной, хотя есть и расширенная, платная версия. Дистрибутив утилиты представляет собой MSI-пакет, что позволяет развертывать ее с помощью групповых политик. После установки необходимо первым делом задать пароль, и затем пользователь может работать со своей частной папкой. Для отключения Private Folder достаточно нажать на значок программы в трее (правом нижнем экрана). Данная утилита обладает куда более скромным функционалом, но зато проста в обращении, что существенно облегчает жизнь пользователям. Получить данную утилиту можно по адресу [3].

Завершая разговор Вот мы и рассмотрели основные средства для защиты различных локальных ресурсов корпоративной сети. Завершая статью, хотелось бы отметить, что все описанные средства будут надежно защищать ваши ресурсы только в случае соблюдения администраторами и пользователями политики безопасности. То есть пользователи не должны приклеивать на монитор бумажки со списком паролей, администраторы не должны хранить ключи к шифрам на том же диске (на той же машине), что и зашифрованные данные, и так далее. Но следует обратить внимание на то, что средства шифрования, как, впрочем, и другие средства защиты, не должны создавать помех в работе пользователей, в противном случае нарушения корпоративной политики безопасности неизбежны. Таким образом, необходимо соблюдать разумный баланс между безопасностью и производственным процессом. 1. http://w w w.cypherix.com/downloads.htm – информация по Cryptainer LE. 2. http://vdfcrypt.narod.ru – информация по VDFCrypt. 3. http://www.securitylab.ru/software/271436.php – информация по My Private Folder. 4. ГОСТ Р 51241-98. Средства и системы контроля и управления доступом.



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

Средства администрирования «1С:Предприятие 8»

Андрей Луконькин Довольно часто системному администратору приходится брать на себя функции администратора баз данных, в частности «1С». Какие основные задачи ставятся руководством, без каких минимальных знаний невозможно поддержание работоспособности информационной системы в организации?

Р

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

Роли и интерфейсы В процессе написания конфигурации разработчиками создаются роли и интерфейсы. Роли описывают полномочия доступа к информации системы. Как правило, для каждого вида деятельности или должности сотрудника создаётся своя роль. Пользователю может быть назначена одна или несколько ролей. Причем в случае назначения нескольких ролей пользователю права доступа будут работать таким образом, что если хотя бы в одной роли есть разрешение, то доступ будет открыт. Например: n Роль1: нет права на удаление документа «Авансовый отчет». n Роль2: есть право на удаление документа «Авансовый отчет». n Роль3: нет права на удаление документа «Авансовый отчет».

76

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

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

Рисунок 1. Окно настройки роли Бухгалтер. Для каждого объекта устанавливаются нужные права и при необходимости задаются ограничения доступа


администрирование «1С» у него имеются права. Всё лишнее рекомендуется убрать для улучшения эргономики интерфейса.

Список пользователей Для авторизации в системе используется список пользователей. Этот список не является частью конфигурации, он уникален для каждой организации, использующей систему. Рекомендуется задавать пользовательским учетным записям осмысленные названия, близкие к предметной области, имеющие смысловую нагрузку. Например, вместо названия учетной записи «Новый1» указать «Сидоров А.А.» или «Начальник ПЭО». Это позволит облегчить дальнейшее администрирование системы. Особенностью «1С:Предприятие 8» является возможность указания способа аутентификации пользователя. Это может быть и стандартный способ, когда появляется диалоговое окно для выбора учетной записи и ввода пароля, а может быть аутентификация средствами Windows. В этом случае учетной записи из «1С» должна быть сопоставлена учетная запись Windows. Такой способ аутентификации позволяет не задумываться при входе в систему, таким образом ускоряет запуск, так как диалог аутентификации «1С:Предприятие» не отображается. Создав все необходимые учетные записи, присвоив им нужные роли, сконфигурировав необходимые интерфейсы, можно начинать работу. В процессе работы можно увидеть, кто именно в данный момент работает с базой данных. Для этого используется инструмент «Список активных пользователей», вызываемый через меню «Сервис/Активные пользователи». В этом окне отображается кто, в каком режиме, с какого компьютера и во сколько начал работу в системе и продолжает её по настоящий момент. Эти данные бывают очень полезны в случае, если необходимо получить монопольный доступ к базе данных, чтобы обновить конфигурацию, перезагрузить сервер и т. д.

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

Функция Перек лючитьИнтерфейс (<Имена интерфейсов>) управляет видимостью командных интерфейсов. Например, вы можете указать несколько интерфейсов через запятую: Интерфейсы.ПереключитьИнтерфейс("Основной, БухУчет,Налоги"); С помощью этой функции появляется возможность создать свой интерфейс на каждый пункт (или группу) меню, а затем в процессе работы управлять видимостью доступной пользователю информации.

Иногда бывает необходимо посмотреть, кто, когда что натворил в программе, например, отменил проведение документа или изменил элемент справочника. Администратор базы данных может настроить уровень отображаемых событий в журнале в зависимости от того, что он хочет увидеть, будь то только ошибки или все предупреждения и информационные сообщения. Журнал регистрации имеет удобный инструмент – фильтр, с помощью которого можно отбирать информацию по большому количеству критериев. Например, действия только одного пользователя или действия за интервал времени, действия над одним определенным объектом базы и т. д. Журнал регистрации может быть открыт как в режиме конфигуратора, так и в режиме »1С:Предприятие». Журнал может быть выгружен в формате XML для дальнейшего про-

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

Журнал регистрации Все действия пользователей, приводящие к изменению данных в базе, регистрируются в специальном хранилище – «Журнале регистрации».

№9, сентябрь 2007

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

77


IP-телефония

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

Андрей Погребенник Мир IP, возможно, и родственен классической телефонии, однако стоящие перед ним проблемы носят особый характер. Сервер трансляции сетевых адресов (NAT) создаёт серьёзные препятствия нормальной работе с VoIP. Как решается проблема NAT в сетях IP-телефонии на базе протокола SIP? Как бороться с угрозами безопасности в таких сетях? Ответы на эти вопросы вы узнаете из заключительной части статьи. 78


IP-телефония Проблема обхода NAT Вряд ли стоит долго объяснять, почему NAT является проблемой для голосового трафика. Достаточно уже то‑ го факта, что голосовой трафик обособлен от сигнализа‑ ции и использует динамически назначенные номера пор‑ тов. А IP‑адреса и номера портов, помещаемые находя‑ щимся за NAT‑пользовательским агентом в поля заголов‑ ков Contact и Via, а также в SDP-сообщение, не маршру‑ Рисунок 1. Маршрутизация входящих запросов тизируемы. Маршрутизатор с поддержкой NAT-транспорт‑ ного уровня модели OSI, а SIP-заголовки формируются на уровне приложения. Следовательно такое устройство не может проанализировать заголовки и SDP-сообщение и переопределить анонсированные там IP-адреса и номе‑ ра портов (а также открыть обратный канал для маршру‑ тизации входящего трафика к пользовательскому агенту), равно как и не может знать, к какому SIP-диалогу относит‑ ся тот или иной медиапоток. Как результат, каждый не понаслышке знакомый с IP‑те‑ лефонией человек сталкивался с явлениями односторон‑ ней слышимости или вовсе отсутствия звукового потока. Сразу следует заметить, что «серебряной пули» здесь нет: все решения этой проблемы в большей или меньшей сте‑ пени частные. Рисунок 2. Обход NAT SIP-сигнализацией Впрочем, проблема обхода NAT медиатрафиком – это лишь одна сторона медали. Вначале мы рассмотрим, за NAT, записи в таблице трансляции NAT надо периоди‑ какие препятствия создаёт NAT для сигнальных сообще‑ чески обновлять. Это касается как протоколов без уста‑ ний и какие расширения SIP были разработаны для их пре‑ новления соединения, так и протоколов с установлени‑ ем соединения. одоления. На рис. 1 запрос REGISTER был отправлен клиентом с порта 8023 и получен прокси-сервером на порту 5060, со‑ Обход NAT SIP‑сигнализацией При использовании протоколов транспортного уровня здав при этом запись в таблице трансляции NAT и (в случае без гарантии доставки отправка ответа на SIP-запрос про‑ использования транспортного протокола с установлением изводится на тот IP-адрес, с которого запрос был получен. соединения) соединение транспортного уровня. При необхо‑ Этот IP-адрес транспортный уровень протокола SIP зано‑ димости отправки запроса данному UA, прокси-сервер от‑ сит в параметр received заголовка Via перед передачей со‑ правляет сформированный запрос на IP-адрес и порт, взя‑ общения вышележащим уровням. Номер же порта для от‑ тые из заголовка Contact при регистрации. Этот же IP‑ад‑ правки извлекается из заголовка Via. В случае применения рес не маршрутизируем; следовательно, для корректной NAT – это порт, на котором ожидает ответа находящийся маршрутизации входящих запросов сервер регистрации за NAT пользовательский агент, а не тот порт, через кото‑ должен сохранить в базе данных с информацией о место‑ рый происходит NAT-трансляция и на котором NAT ожида‑ положении пользователей IP‑адрес и номер порта, с кото‑ ет поступления ответа; следовательно, ответ не может до‑ рых запрос был на самом деле получен, в качестве контак‑ та пользователя. стичь адресата. Но запись в таблице трансляции NAT удаляется после Решение этой проблемы было предложено в RFC 3581 [1] и заключается в отправке ответа на порт, с которого за‑ истечения определенного промежутка времени (чаще все‑ прос был получен, вместо порта, взятого из заголовка Via. го – несколько минут). Проблема актуальна не только в пе‑ При этом сам порт заносится в специальный параметр rport- риод после регистрации пользователя: во время SIP-диало‑ заголовка Via. Таким образом, прокси-сервер отсылает от‑ гов новые сообщения также могут не поступать в течение ветное сообщение на порт и IP-адрес, с которых пришёл за‑ длительного промежутка времени, чего достаточно для то‑ прос. Это позволяет ответу найти соответствие в таблице го, чтобы запись из таблицы трансляции была удалена. трансляции NAT и достичь целевого узла. Этот метод назы‑ Имеющиеся SIP-стеки решают эту проблему путём перио‑ дической посылки SIP-запросов re-INVITE, OPTIONS, INFO, вается симметричной маршрутизацией ответов. Вторая проблема заключается в необходимости коррек‑ NOTIFY или (при использовании UDP) дейтаграмм, не со‑ тной маршрутизации входящих SIP-запросов. SIP не обес‑ держащих полезной нагрузки. Более полная и совершенная техника описана в про‑ печивает механизма, который бы позволял отправлять но‑ вые запросы по тому соединению транспортного уровня, екте Managing Client Initiated Connections in SIP Инженер‑ которое было образовано при регистрации пользовате‑ ной проблемной группы Интернет (IETF) [2]. Остановимся ля. Записи в таблице трансляции NAT имеют ограничен‑ на ней подробнее. При регистрации пользователя регистратор сохраняет ное время жизни (чтобы таблица не переполнялась в том числе) и, чтобы входящие SIP-запросы могли достичь UA данные о транспортном соединении, через которое был по‑

№9, сентябрь 2007

79


IP-телефония заголовка Via. На них же и произво‑ дится отправка ответа в соответствии с RFC 3261 и RFC 3581. Причём ответ должен быть отправлен прокси-серве‑ ром с того же IP-адреса и порта, на ко‑ тором был получен запрос, чтобы от‑ вет был опознан NAT-транслятором, как принадлежащий к установленно‑ му соединению.

Обход NAT медиатрафиком Рисунок 3. Обход NAT медиатрафиком

Решение проблемы обхода NAT меди‑ атрафиком требует более сложных из‑ менений, поскольку необходимо заменить IP-адрес и но‑ мер порта, анонсированные в SDP-сообщении, таковы‑ ми, что обеспечат доставку потоков нужному адресату за NAT (см. рис. 3).

лучен запрос. Два специальных параметра instance-id и regid заголовка Contact позволяют найти в базе данных серве‑ ра регистрации данные о соединении и направить входя‑ щий запрос к UA по тому соединению транспортного уров‑ ня, через которое был получен запрос регистрации. Также в черновике описаны механизмы для постоянного обнов‑ Simple Traversal of UDP through NAT (STUN) ления записей таблицы трансляции NAT. Терминология NAT и сведения о разных типах NAT были Подытожим сказанное небольшим примером регистра‑ изложены в [3]. Там же был рассмотрен протокол STUN ции пользователя, находящегося за NAT и использующе‑ (Simple Traversal of UDP through NAT, RFC 3489 [4]), позво‑ го UDP (см. рис. 2). ляющий определить факт наличия NAT и его тип путем от‑ Запрос REGISTER содержит параметр заголовка правки на STUN-сервер последовательности зондирующих Via rport, информирующий UAS о поддержке RFC 3581, а так‑ запросов. В контексте SIP нас интересует возможность оп‑ же параметры reg-id и +sip.instance в заголовке Contact: ределения пользовательским агентом публичного IP-адре‑ са NAT и записей в таблице трансляции с помощью STUN. REGISTER sip:proxy.example.com SIP/2.0 Но вначале напомню специфику разных типов NAT. Via: SIP/2.0/UDP client.example.com:5060;rport;branch=z9hG4bK Max-Forwards: 70 n Full Cone NAT – такой NAT транслирует все запро‑ Supported: path,gruu сы от одного и того же внутреннего IP-адреса в один From: Client <sip:client@example.com>;tag=djks8732 To: Client <sip:client@example.com> и тот же внешний IP-адрес и один и тот же номер порта. Call-ID: 763hdc73y7dkb37@example.com Отправка пакетов хосту, находящемуся за NAT такого CSeq: 1 REGISTER Contact: <sip:client@client.example.com>;reg-id=1 типа, извне, легко осуществима – проверяются только ;+sip.instance="<urn:uuid:00000000-0000-0000-0000-00A95A0E120>" транспортный протокол, адрес назначения и порт на‑ Content-Length: 0 значения, а адрес и порт источника значения не имеют. Ответ прокси-сервера выглядит так: Приложению нужно лишь слушать на том же IP-адресе и порту, с которых оно отправляет запросы. SIP/2.0 401 Unauthorized n Restricted Cone NAT – от предыдущего типа он отлича‑ Via: SIP/2.0/UDP client.example.com:5060 ется тем, что выполняется проверка адреса источника. ;rport=8050;branch=z9hG4bK;received=192.0.1.2 From: Client <sip:client@example.com>;tag=djks8732 Иными словами, хосту, находящемуся за NAT такого ти‑ To: Client <sip:client@example.com>;tag=876877 па, хост с IP-адресом X сможет отправить пакет только Call-ID: 763hdc73y7dkb37@example.com CSeq: 1 REGISTER в том случае, если перед этим внутренний хост уже от‑ WWW-Authenticate: [не показан] правлял пакеты на IP-адрес X. Content-Length: 0 n Port Restricted Cone NAT – в дополнение к проверке Параметры reg-id и +sip.instance делают возможным пов‑ адреса источника здесь также выполняется провер‑ торное использование соединения транспортного уровня, ка порта источника. Хост с IP‑адресом X, отправляю‑ по которому был получен REGISTER, в соответствии с [2]. щий пакеты с порта P, сможет «достучаться» до хос‑ Заметьте, что IP-адрес и порт, с которых был получен за‑ та за NAT такого типа только в том случае, если перед прос, прокси-сервер заносит в параметры received и rport этим внутренний хост уже отправлял пакеты на IP‑ад‑ рес X и порт P. n Symmetric NAT – все запросы от одного и того же внут‑ реннего IP‑адреса и направленные на один и тот же IP‑адрес и порт транслируются в один и тот же внешний IP-адрес и один и тот же порт. При изменении IP-адреса или порта назначения создается новая запись в таблице трансляции. При отправке пакетов хосту, находящему‑ ся за NAT такого типа, проверяется транспортный про‑ токол, адрес и порт назначения, а также адрес и порт источника. Рисунок 4. STUN

80


IP-телефония Алгоритм работы STUN следую‑ щий. Клиент STUN (встроенный в UA) отправляет на расположенный сна‑ ружи NAT STUN-сервер зондирую‑ щие сообщения. STUN-сервер ана‑ лизирует это сообщение и инфор‑ мирует клиента о том, какие IP-ад‑ рес и порт были использованы NAT (cм. рис. 4). Эти IP‑адрес и порт кли‑ ент и помещает в SDP‑часть SIP‑за‑ проса (а также поля заголовков Via Рисунок 5. Обход и Contact). Путём отправки специаль‑ ной последовательности запросов клиент может точно оп‑ ределить тип NAT. Наконец, мы подошли к главному. STUN не решает проблему обхода NAT в SIP в общем случае. Да, он ра‑ ботает в сценариях Port Restricted Cone NAT, а иногда – и в Restricted Cone NAT, но наиболее распространенным типом NAT был и остается симметричный, и здесь STUN бесполезен. К тому же не все UA даже в случае более дру‑ жественных типов NAT хорошо «дружат» с STUN, а в бо‑ лее старых устройствах поддержка STUN не была широ‑ ко распространена. Ещё одна «ложка дёгтя» – в существующих реализациях STUN не работает с SIP поверх TCP, поскольку не отслежи‑ вает должным образом состояние открытых TCP‑сессий.

Traversal Using Relay NAT (TURN) Дальнейшим развитием STUN является протокол TURN (Traversal Using Relay NAT). TURN позволяет клиенту по‑ лучить маршрутизируемый IP-адрес для общения с од‑ ним внешним узлом (и не пригодный для чего либо еще). TURN-сервер, обычно располагаемый DMZ абонентской сети или в сети сервис-провайдера, имитирует поведе‑ ние Restricted Cone NAT: он транслирует пакеты с вне‑ шнего IP‑адреса к клиенту только в том случае, если кли‑ ент ранее уже отправлял пакеты на внешний узел через TURN-сервер. Таким образом, TURN-сервер служит транзитным узлом (прокси-сервером) для всего последующего сигнального и медиатрафика (см. рис. 5). При этом он приемлемо рабо‑ тает даже с клиентами за симметричным NAT. Для выделе‑ ния IP-адреса и отправки пакетов в спецификации протоко‑ ла определены специальные запросы Allocate и Send; в ос‑ тальном же структура протокола аналогична STUN. В ка‑ честве транспортных протоколов для сигнального и меди‑ атрафика TURN поддерживает TCP и UDP. Недостаток данного метода очевиден: вследствие прок‑ сирования всего трафика увеличивается односторонняя за‑ держка и повышается вероятность потери пакетов. По этой причине TURN рекомендуется использовать лишь в тех слу‑ чаях, когда менее «дорогие» методы обхода NAT бессильны. Заметим, что с недавнего времени TURN больше не счита‑ ется самостоятельным протоколом: сейчас он описан как расширение к STUN в [5].

Interactive Connectivity Establishment (ICE) TURN-сервер проксирует весь RTP-трафик даже тогда, ког‑ да простого STUN было бы достаточно для обхода NAT. С це‑

№9, сентябрь 2007

NAT SIP-сигнализацией

лью выбора наименее «дорогого» метода обхода NAT путем проведения согласования возможных опций между конеч‑ ными точками ассоциация IETF предложила инфраструк‑ туру ICE (Interactive Connectivity Establishment). Это не про‑ токол в привычном смысле этого слова; ICE называют ин‑ фраструктурой (framework), и базируется он на существую‑ щих протоколах STUN и TURN и расширениях SIP. Механизм работы ICE следующий. Пользовательские агенты производят поиск возможных маршрутов между со‑ бой. Каждый UA для начала диалога может использовать либо IP-адрес одного из локальных сетевых интерфейса, либо определённый с помощью STUN (или UPnP, Universal Plug and Play) маршрутизируемый IP-адрес, либо же IP-ад‑ рес TURN-сервера. Список маршрутов-кандидатов образу‑ ют пары – все возможные комбинации транспортных адре‑ сов одного пользовательского агента с транспортными ад‑ ресами другого. В списке маршрутов-кандидатов наивысший приори‑ тет получают маршруты без задействования STUN, более низкий – маршруты с задействованием STUN, и наиболее низкий – маршруты с проксированием медиатрафика че‑ рез TURN-сервер. Изложение здесь намеренно усложнено: на самом деле гибкая система приоритетов позволяет учи‑ тывать топологию сети, данные о задержке и вариации за‑ держки, требования к безопасности и т. д. В итоге каждый маршрут получает уникальное значение приоритета. Затем проверяется их работоспособность (достижимость проти‑ воположной стороны). Из маршрутов, прошедших провер‑ ку, выбирается один с наивысшим приоритетом. Если в роли транспортного протокола выступают RTP/RTCP, для которых назначаются порты со смежны‑ ми номерами, с целью оптимизации выполняется согла‑ сование маршрутов только для одного порта. К слову, ес‑ ли в результате использования STUN или TURN, назначе‑ ние для RTCP-порта с номером на единицу большим, чем у порта, выделенного для RTP-трафика, невозможно, спе‑ циальный атрибут rtcp в SDP-части (RFC 3605) может со‑ держать произвольный номер порта и IP-адрес, на котором UA готов принимать RTCP-сообщения. Словом, спецификация ICE выглядит весьма многообе‑ щающе, и это решение находит поддержку VoIP-индустрии. Описание ICE дано в [6].

Проксирование медиатрафика Один пример с проксированием как SIP-сигнализации, так и медиатрафика, мы уже видели – это TURN. Рассмотрим, каким образом можно реализовать проксирование одно‑

81


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

Расширения Cisco COMEDIA

Рисунок 6. Дайджест-аутентификация

Если быть кратким, эти расширения [7] позволяют маршрутизатору обновить IP-адрес и порт источника, сохранён‑ ные для RTP-потока на этапе установ‑ ления сессии, IP-адресом и портом, с которых был получен первый (про‑ шедший через NAT) RTP-пакет. Ведь пользовательский агент, на‑ ходящийся за любым видом NAT, мо‑ жет успешно слать RTP-пакеты друго‑ му агенту с маршрутизируемым IP‑ад‑ ресом, а тот, в свою очередь, может до‑ стичь инициатора этого трафика по IPадресу и номеру порта, с которых был получен первый RTP-пакет (при ус‑ ловии, что первый пользовательский агент симметричен). Такой подход на‑ поминает симметричную маршрутиза‑ цию ответов, описанную в RFC 3581 [1], но для медиатрафика. Рассмотрим, как это работает в случае обоюдной поддержки COMEDIA сторонами. Пусть в INVITE было получено SDP-описание следующего содержания:

го лишь медиатрафика при помощи RTP-прокси-сервера и B2BUA («Back-to-back user agent» – SIP-узел, состоящий из двух SIP UA, которые общаются между собой строго на прикладном уровне). Критерием для определения фак‑ v=0 та присутствия NAT чаще всего служит наличие немаршру‑ o=client 28908445312 28908445312 IN IP4 10.1.2.23 s=тизируемого IP-адреса в поле заголовка Contact. t=0 0 Далее, нам известно, что для того, чтобы RTP-трафик c=IN IP4 10.1.2.23 достиг UA за NAT, в качестве адреса и порта назначения m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000 следует использовать IP-адрес NAT-устройства и порт, a=direction:active IN IP4 анонсированный в определении медиапотока в SDP час‑ ти. Следовательно, когда факт присутствия NAT установ‑ Наличие атрибута direction говорит о поддержке COMEDIA. лен, B2BUA «запоминает» IP-адрес, с которого был полу‑ Ответный SDP от UAS имеет такой вид: чен запрос, и сообщает пару «IP-адрес : номер порта» ус‑ v=0 тройству RTP-прокси, чтобы тот использовал эти данные o=client 28908445214 28908445214 IN IP4 client.public.org s=для отправки трафика инициатору вызова в дальнейшем. t=0 0 RTP-прокси создаёт новый сеанс, выделяет новую пару c=IN IP4 client.public.org IP‑адрес: порт для медиа-потока и сообщает её B2BUA. m=audio 54332 RTP/AVP 0 a=rtpmap:0 PCMU/8000 Тот подставляет полученные (маршрутизируемый) IP-адрес a=direction:passive IN IP4 и порт в SDP-сообщение перед пересылкой запроса адре‑ сату. Аналогичные манипуляции выполняются c SDP‑сооб‑ UAS обязан дождаться первого пакета от UAC, преж‑ щением адресата. В результате весь медиатрафик проте‑ де чем начать отправлять медиапакеты. Затем UAS дол‑ кает через RTP-прокси. жен слать RTP-трафик на IP-адрес и порт, с которых при‑ Для функционирования этого механизма принципиально шёл первый медиапакет, вместо анонсированных в первом важным является свойство симметричности пользователь‑ SDP‑предложении 10.1.2.23:49172. ского агента: использование для передачи и приёма одного При реализации COMEDIA Cisco руководствовалась и того же порта (UA должен отправлять медиа-поток с то‑ сильно устаревшим на сегодняшний день проектом IETF [8] го порта, который он анонсировал в SDP). Но такой под‑ четвёртой версии. ход идеален в смысле точности данных: не требуется ни‑ После десятой версии данного документа он был при‑ чего, кроме собственно пакета, и поскольку пакет приходит нят как RFC 4145 – TCP‑Based Media Transport in SDP и ка‑ на тот порт, с которого будет посылаться встречный поток – сается теперь лишь передачи медиатрафика поверх TCP. решаются проблемы со всеми видами NAT. В таком прокси- На моей памяти множество случаев, когда применение сервере можно реализовать любую дополнительную функ‑ COMEDIA вызывало потерю аудио при сопровождаемом

82


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

Другие технологии Нередко в качестве решения предлагается применять шлю‑ зы уровня приложений (Application Layer Gateway, ALG), об‑ рабатывающие как заголовки пакета IP, так и его информа‑ ционное наполнение. Функции ALG могут выполнять погра‑ ничные контроллеры соединений (Session Border Controller, SBC) или маршрутизаторы, транслирующие управляющие сообщения SIP. К сожалению, обработка каждого пакета требует высокой производительности и повышает стои‑ мость решения. К тому же новые модификации протокола требуют, чтобы ПО SIP ALG постоянно обновлялось, а его производитель следил за всеми изменениями, реализуе‑ мыми поставщиками устройств SIP. «Нечестный» SIP ALG может повлиять на нормальное функционирование нахо‑ дящихся за ним устройств. Технология UPnP (Universal Plug and Play) чаще применяется в сегменте SOHO и малых ин‑ сталляциях. Впрочем, она не является специфичной для VoIP и к тому же и так неплохо освещена в Сети. Напосле‑ док, ценным сводным документом по описанным здесь ре‑ шениям проблемы NAT является [9].

Безопасность SIP Члены рабочей группы IETF SIP Working Group разработа‑ ли исчерпывающий набор базисных элементов защиты, предотвращающих прослушивание, перехват сессий и ак‑ тивные атаки SIP-систем, а также позволяющих убедиться в подлинности собеседника. Оставшаяся часть статьи пос‑ вящена рассмотрению этих элементов.

Аутентификация

Рисунок 7. TLS

тентификация с использованием сертификатов (для SIP поверх TLS).

Дайджест-аутентификация При использовании дайджест-аутентификации в сти‑ ле HTTP прокси-сервер отвечает на INVITE ответом 407 Proxy Authorization Required, в котором присутствует по‑ ле заголовка Proxy-Authenticate, с данными для вычисле‑ ния отклика аутентификации. После отправки сообщения ACK на 407 Proxy Authorization Required пользовательский агент может переслать INVITE, но на этот раз – с заголов‑ ком Proxy-Authorization, содержащим удостоверение поль‑ зователя (см. рис. 6). Рассмотрим выполнение дайджест-аутентификации на примере. На рис. 6 показано содержимое начально‑ го INVITE, ответа 407 Proxy Authorization Required и INVITE с удостоверением пользователя. Нужно отметить, что поль‑ зовательские агенты, серверы регистрации и переадреса‑ ции вместо 407 Proxy Authorization Required используют от‑ вет 401 Unauthorized, а заголовок с данными для вычис‑ ления отклика аутентификации в нём называется просто Authenticate. В ответ на него UA должен прислать INVITE с заголовком Authorization. Дайджест сообщения – это уникальная символьная строка фиксированного размера, она является результа‑ том обработки данных (зашифрованных имени пользовате‑ ля и пароля) с помощью односторонней хэш-функции MD5. Сервер SIP сравнивает данные заголовка Authorization с ре‑ зультатом применения той же хэш-функции к данным, хра‑ нящимся в базе. Заголовок Authentication-Info позволяет пользователь‑ скому агенту аутентифицировать прокси-сервер, исполь‑ зуя тот же механизм дайджест-аутентификации. К сожа‑ лению, схема дайджест-аутентификации не обеспечивает аутентификацию тела сообщения и механизм проверки це‑ лостности сообщения – для этого следует использовать TLS или S/MIME. Возможно, в будущем дайджест-аутентифика‑ цию в SIP заменит более безопасный стандарт EAP-AKA (RFC 4178 [11]) базирующийся на протоколе EAP (Extensible Authentication Protocol, RFC 3478) и AKA (Authentication and Key Agreement, наработка мобильных сетей третьего поко‑ ления UMTS и CDMA2000).

Аутентификация в SIP принимает две формы. Первая – это аутентификация прокси-сервером, сервером переадре‑ сации или сервером регистрации пользовательского аген‑ та. Вторая – это аутентификация одним пользовательским агентом другого. Аутентификация пользовательского агента прокси-сер‑ вером нужна для проверки законности доступа к определён‑ ной услуге или функции. К примеру, прокси-сервер может потребовать аутентификацию перед пересылкой получен‑ ного INVITE адресату или предоставлением любой другой услуги. Сервер регистрации может потребовать аутенти‑ фикацию для предотвращения регистрации не легитимно‑ го клиента и перехвата им входящих вызовов. Взаимная ау‑ тентификация пользовательских агентов имеет смысл для проверки того, что каждый из них на самом деле тот, за ко‑ Transport Layer Security (TLS) го он себя выдаёт, ведь заголовок From (содержимое кото‑ Как и в случае с HTTP, передача SIP-данных может осу‑ рого отображается пользовательскими агентами в качес‑ ществляться с помощью протокола защищённого канала тве номера и имени вызывающего абонента) может быть Transport Layer Security (TLS). SIP over TLS обеспечивает кон‑ фиденциальность и целостность информации в канале, осу‑ сфальсифицирован. В SIP предусмотрено две схемы аутентификации: дай‑ ществляет аутентификацию прокси-серверов с использо‑ джест-аутентификация в стиле HTTP (RFC 2617 [10]), и ау‑ ванием сертификатов (которыми, согласно RFC 3261, долж‑

№9, сентябрь 2007

83


IP-телефония протокола SIP настолько, чтобы при‑ менить достаточно жёсткую политику безопасности. Наконец, формирование довери‑ тельных отношений в рамках TLS и даже установка TCP-соединений мо‑ жет стать настоящей проблемой для сервис-провайдера, обслуживающе‑ го уже несколько сотен тысяч абонент‑ ских устройств. Не нужно обладать бо‑ гатой фантазией, чтобы представить, на что будет похож поток SYN-паке‑ тов во время формирования TLS-со‑ единений. Интересующиеся перспективны‑ ми разработками могут обратиться к RFC 4347 [12], описывающему прото‑ кол DTLS, работающий поверх UDP. А текущая версия протокола TLS описа‑ на в RFC 4346 [13]. Рисунок 8. S/MIME

Secure MIME (S/MIME)

ны обладать прокси-серверы, серве‑ личие безопасного канала между брау‑ Давайте посмотрим, что может стать ры регистрации и серверы переадре‑ зером и веб-сервером. SIP же гораздо известным злоумышленнику, перехва‑ сации). В рамках модели SIP over TLS более сложен. Представьте, например, тившему SIP-сообщения, относящиеся безопасность достигается на каждом TLS-соединение между двумя прокси- к этапу установки сессии: участке по пути следования сигналь‑ серверами: через него может переда‑ n SIP URI и IP-адреса обеих участни‑ ных сообщений (см. рис. 7). ваться трафик, принадлежащий раз‑ ков диалога. На пути от пользовательского аген‑ ным транзакциям или диалогам. Сле‑ n Факт, что две стороны установили та до прокси-сервера применяется довательно, злоумышленник из одного диалог. TLS, а сигнализация между сервера‑ домена может провести атаку с инжек‑ n IP-адреса и номера портов, отно‑ ми может быть защищена с помощью цией трафика в другой домен, и это не сящиеся к медиа-потоку, что дела‑ TLS или IPSec (который считается оп‑ будет обнаружено или предотвраще‑ ет возможным перехват медиадан‑ циональным, но более стойким). Пос‑ но TLS-соединением. Корень пробле‑ ных. ле успешной аутентификации прокси- мы в том, что конечные точки TLS‑со‑ n Presence-информация: сведения о серверы SIP дешифруют каждое сооб‑ единения не «знакомы» со структурой географическом положении сторон, щение (на каждом участке пути приме‑ передаваемых через них сообщений их статусе, активности и т. д. няется отдельный ключ), что даёт им возможность «видеть» все заголовки и корректно выполнять маршрутизацию сообщений. Однако конечные абонен‑ ты должны безоговорочно «доверять» прокси-серверам. Среди слабых мест протокола TLS традиционно упоминают подвержен‑ ность атакам «человек посередине» (Man-in-the-Middle). Есть и специфи‑ ческие для SIP проблемы: хотя TLS-со‑ единение служит свидетельством ау‑ тентичности обеих сторон, этого мало для того, чтобы быть уверенным в ау‑ тентичности (или обеспечить невоз‑ можность отречения) от произвольно‑ го SIP-сообщения, передаваемого по этому каналу. TLS способен обеспечить эти цели в рамках протокола HTTPS, где появ‑ ление иконки с изображением замка в браузере автоматически означает на‑ Рисунок 9. Механизм обеспечения приватности в рамках одного домена

84


IP-телефония Сквозное (в отличие от протоко‑ ла TLS, действующего от узла к узлу) обеспечение целостности, конфиден‑ циальности и аутентификации SIP-со‑ общений возможно при помощи техно‑ логии S/MIME (RFC 3851 [14]). Замечу, что в предыдущих редакциях SIP RFC в качестве метода обеспечения аутен‑ тификации и секретности предлагал‑ ся PGP, но сейчас его использование признано устаревшим. 23-я глава RFC 3261 описывает применение схемы S/ MIME. Рассмотрим, как она интегриру‑ ется в модель использования SIP. Сертификат S/MIME удостоверяет то, что его обладатель идентифициру‑ ется в сети SIP определённым списоч‑ ным адресом. Эти сертификаты так‑ же ассоциируются с ключами шиф‑ рования. Тело сообщения подписыва‑ Рисунок 10. Механизм обеспечения приватности вне домена доверия ется личным ключом и шифруется от‑ Такой механизм идентификации крытым ключом предполагаемого по‑ Route, Route, Max-Forwards, и Proxyлучателя сообщения. Открытый ключ Authorization не должны учитываться работает в рамках одного домена. может быть вложен в само сообщение. при подсчёте контрольных сумм, пос‑ Для его реализации были представ‑ Предполагается, что отправитель со‑ кольку они могут (или должны) изме‑ лены новые заголовки P-Preferredобщения уже установил подлинность няться при прохождении через проме‑ Identity и P-Asserted-Identity. Заголовок P-Preferred-Identity используется UA открытого ключа получателя. Сами же жуточные прокси-серверы. в транзакциях с доверенным проксиоткрытые ключи хранятся в UA на не‑ сервером. Клиент конструирует запрос кой связке ключей в виде пар «списоч‑ Расширения SIP INVITE, не содержащий данных о лич‑ ный адрес – ключ». Как и любой другой, для обеспечения приватности ности абонента в поле From, но с ре‑ основанный на инфраструктуре откры‑ имени и номера абонента тых ключей протокол, S/MIME полага‑ Набор расширений RFC 3323 [15] альным SIP URI и (опционально) отоб‑ ется на надёжную схему распределе‑ и RFC 3325 [16] обеспечивает поддерж‑ ражаемым именем в поле P-Preferredния ключей, а значит, каждый пользо‑ ку функций приватности абонента: со‑ Identity. Также добавляется заголовок ватель должен иметь сертификат под‑ крытия и верификации сетью отобра‑ Privacy, принимающий одно из следу‑ линности, а также безопасный способ жаемого имени и номера участвующе‑ ющий значений: го в диалоге абонента (сеть удостове‑ n «none» – приватность не требует‑ его передачи собеседнику. ся; прокси-сервер обязан не уда‑ Рассмотрим пример сообщения ряет личность вызывающего абонента, лять заголовок P-Asserted-Identity; тот ли он, за кого он себя выдаёт). с телом S/MIME (см. рис. 8). Поддержка приватности в сети SIP n «user» – приватность требуется; На рис. 8 показана методика за‑ прокси-сервер обязан удалить за‑ щиты тела SIP-сообщения с помо‑ является сложной задачей уже потому, головок P-Asserted-Identity; щью S/MIME. Для защиты SIP-заго‑ что протокол имеет текстовую приро‑ ловков сообщение может быть поме‑ ду, и участники диалога могут обме‑ n «id» – приватность требуется толь‑ ко в рамках данного домена. щено в MIME-тело с типом «message/ ниваться сообщениями без привле‑ sip», и инкапсулировано в новое SIP- чения какого-либо сервис-провайде‑ Прокси-сервер обязан выполнить сообщение с дублированными из ори‑ ра. В то же время от SIP UA требуется гинального сообщения заголовками как минимум функции скрытия отоб‑ дайджест-аутентификацию для узла, с маршрутной информацией. В свою ражаемого имени и номера абонента, с которым не установлены довери‑ тельные отношения. После этого прок‑ очередь, к сообщению-контейнеру мо‑ ставшие привычными в ТфОП. Наиболее прямолинейный подход – си-сервер должен добавить заголовок жет применяться S/MIME-подпись. На‑ конец, может выполняться и шифро‑ предоставление ограниченной инфор‑ P-Asserted-Identity с идентификатором вание SIP-заголовков: в таком случае мации в заголовке From – может вы‑ личности абонента, который был ау‑ в сообщение-контейнер инкапсулиру‑ звать проблемы при терминации звон‑ тентифицирован. Если прокси-сервер ется шифрованный объект S/MIME. Та‑ ка в сеть другого оператора или ТфОП получает запрос от узла, с которым до‑ кие сообщения не воспринимаются как или сделать невозможным предостав‑ верительные отношения уже установ‑ новый диалог или транзакция, но поль‑ ление ряда услуг. В RFC 3325 описыва‑ лены, используется уже имеющийся зуются всеми преимуществами сквоз‑ ет функции обеспечения приватности там заголовок P‑Asserted-Identity. Процедура отправки сообщения ного шифрования и аутентификации. личных данных абонента с сохранени‑ следующая. Если вызываемый або‑ Заголовки Request-URI, Via, Record- ем возможности его идентификации.

№9, сентябрь 2007

85


IP-телефония Cводка основных SIP RFC Номер и название спецификации

Что она определяет

RFC 3261, SIP: Session Initiation Protocol

Ядро протокола SIP

RFC 3262, Reliability of Provisional Responses in SIP

Метод PRACK для подтверждения получения промежуточного отклика

RFC 3263, Locating SIP Servers

DNS-процедуры, позволяющие установить SIP прокси-сервер, связанный с данным SIP URI (при помощи записей SRV и NAPTR)

RFC 3264, An Offer/Answer Model with the Session Description Protocol (SDP)

Использование протокола SDP для согласования параметров сеанса

RFC 3265, SIP-Specific Event Notification

Методы SUBSCRIBE и NOTIFY

RFC 3428, SIP Extension for Instant Messaging

Метод MESSAGE

RFC 3903, SIP Extensions for Event State Publications

Метод PUBLISH

RFC 4028, Session Timers in SIP

Таймеры сеанса SIP

RFC 4566, SDP: Session Description Protocol

Формат представления сеансов и модель предложения и ответа (offer/answer model)

RFC 3388, Grouping of Media Lines in the Session Description Protocol

Механизм группировки медиапотоков в SDP-описании

RFC 3311, SIP UPDATE Method

Метод UPDATE для обновления информации о сеансе до завершения INVITE-транзакции

RFC 2976, SIP INFO Method

Метод INFO для передачи диалогонезависимой информации

RFC 3515, The REFER Method

Метод REFER

RFC 3891, The SIP Replaces Header

Механизм, позволяющий одному диалогу заместить другой

RFC 3892, The SIP Referred-By Mechanism

Заголовок Referred-By, сообщающий целевому абоненту запроса REFER личность абонента, пославшего REFER

RFC 3911, The SIP Join Header Field

Заголовок Join, позволяющий объединить два диалога в конференцию

RFC 4168, SCTP as a Transport for SIP

Применение протокола SCTP(Stream Control Transmission Protocol) в качестве транспорта для SIP-сообщений

нент расположен в домене доверия (см. рис. 9), прокси-сервер передаёт абоненту запрос без удаления заго‑ ловка P-Asserted-Identity. Если же абонент находится за пре‑ делами домена доверия (см. рис. 10), при выходе сообщения за пределы до‑ мена доверия прокси-сервер выполня‑ ет удаление или изменение всех заго‑ ловков с информацией о личности от‑ правителя (From, Contact, Reply-To, CallID, Call-Info, Via, User-Agent, Organization, Server, Subject, In-Reply‑To, RecordRoute и Warning). P-Asserted-Identity об‑ рабатывается в соответствии со значе‑ нием заголовка Privacy, а сам заголо‑ вок Privacy должен быть удалён. Разумеется, картина защиты бу‑ дет неполной без обеспечения целос‑ тности и конфиденциальности данных в рамках одного домена доверия на сетевом уровне. Узлы домена долж‑ ны быть взаимно аутентифицированы, а транзакции между узлами (и между UA и узлами домена) должны быть за‑ щищены с помощью TLS или IPSec.

Заключение Есть и альтернативные методы, удос‑ товеряющие личность вызывающе‑

86

го или вызываемого абонента: так, RFC 4474 [17] предписывает использо‑ вание специальных заголовков Identity и Identity-Info для сквозной аутентифи‑ кации личности инициатора запроса, а RFC 4916 [18] – средства аутенти‑ фикации получателя диалогообразу‑ ющего запроса с помощью дополни‑ тельного запроса UPDATE в обратном направлении. Остаётся сказать несколько слов об обеспечении защиты медиа-потока. В RFC 3711 [19] описан протокол SRTP (Secure Real-time Transport Protocol), который дополняет RTP функциями обеспечения конфиденциальности, аутентификации сообщений и защи‑ ты от атак с воспроизведением. Сле‑ дует упомянуть и детище автора PGP Фила Циммермана – привлекающий внимание простотой и эффективнос‑ тью протокол ZRTP. Он использует ал‑ горитм Diffie-Hellman для формирова‑ ния сеансового ключа и SRTP в качес‑ тве транспорта. Интересующиеся мо‑ гут обратиться к [20]. Принимая во внимание всё раз‑ нообразие протоколов, заботящимся о сохранности своих секретов, пользо‑ вателям следует уделять особое вни‑

мание выбору клиентского ПО или ус‑ тройств. 1. RFC 3581 – An Extension to SIP for Symmetric Response Routing. 2. Managing Client Initiated Connections in SIP – http://www.ietf.org/internet-drafts/ draft-ietf-sip-outbound-10.txt. 3. Кулиев И. Малоизвестные подробнос‑ ти работы NAT. //Системный админист‑ ратор, №1, 2006г. – С. 48-52. 4. RFC 3489 – Simple Traversal of UDP through NAT (STUN). 5. Traversal Using Relays around NAT (TURN): Relay Extensions to STUN – ht t p: // w w w.i et f.o rg / inte rnet- draf t s / draft-ietf-behave-turn-04.txt. 6. Interactive Connectivity Establishment (ICE): A Protocol for NAT Traversal for Offer/ Answer Protocols – http://www.ietf.org/ internet-drafts/draft-ietf-mmusic-ice-17.txt. 7. S I P : C o n n e c t i o n - O r i e n t e d M e d i a Enhancements for S I P – ht tp: // w w w.cisco.com /univercd /cc/td /doc/ product/software/ios122/122newft/122t/ 122t13/ftsymnat.htm. 8. Connection-Oriented Media Transport in SDP – http://tools.ietf.org/id/draft-ietfmmusic-sdp-comedia-04.txt. 9. Best Current Practices for NAT Traversal for SIP – http://www.ietf.org/internet-drafts/ draft-ietf-sipping-nat-scenarios-06.txt. 10. RFC 2617 – HTTP Authentication: Basic and Digest Access Authentication. 11. RFC 4178 – Extensible Authentication Protocol Method for 3rd Generation Authentication and Key Agreement (EAP‑AKA). 12. RFC 4347 – Datagram Transport Layer Security (DTLS). 13. RFC 4346 – The Transport Layer Security (TLS) Protocol Version 1.1. 14. RFC 3851 – Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification. 15. RFC 3323 – A Privacy Mechanism for SIP. 16. RFC 3325 – Private Extensions to the SIP for Asserted Identity within Trusted Networks. 17. R F C 4 4 74 – E n h a n c e m e n t s f o r Authenticated Identity Management in SIP. 18. RFC 4916 – Connected Identity in SIP. 19. RFC 3711 – The Secure Real-time Transport Protocol (SRTP). 20. ZRTP: Media Path Key Agreement for Secure RTP – http://www.ietf.org/internetdrafts/draft-zimmermann-avt-zrtp-04.txt.


bugtraq Выполнение произвольного кода в Microsoft Windows Vista Gadgets

Уязвимость при обработке IOCTL в Sun Solaris

Программа: Microsoft Windows Vista. Опасность: Средняя. Описание: 1. Уязвимость существует из-за ошибки в Feed Headlines-гаджете при обработке HTML-атрибутов. Удаленный пользователь может с помощью специально сформированного RSS-поста выполнить произвольный код на целевой системе. 2. Уязвимость существует в Contacts Gadget при обработке контактов. Удаленный пользователь может с помощью специального контакта выполнить произвольный код на системе, когда пользователь выберет контакт, или если это контакт первый в списке. 3. Уязвимость существует из-за ошибки в Weather Gadget при обработке HTML-атрибутов. Удаленный пользователь может с помощью специально сформированного вебсайта выполнить произвольный код на целевой системе. URL производителя: www.microsoft.com. Решение: Установите исправление с сайта производителя.

Программа: Sun Solaris 8, 9, 10. Опасность: Низкая. Описание: Уязвимость существует из-за ошибки при обработке некоторых IOCTL, отправленных драйверу диска ATA. Локальный пользователь может вызвать панику ядра системы. URL производителя: www.sun.com. Решение: Установите исправление с сайта производителя.

Переполнение буфера в Microsoft DirectX Media SDK FlashPix ActiveX‑компоненте Программа: Microsoft DirectX Media SDK FlashPix ActiveX 6.0, возможно, более ранние версии. Опасность: Высокая. Описание: Уязвимость существует из-за ошибки проверки границ данных в Picture Corporation's DXSurface.LivePicture. FLashPix.1 (DXTLIPI.DLL v6.0.2.827) ActiveX-компоненте при обработке свойства «SourceUrl». Удаленный пользователь может с помощью специально сформированной вебстраницы передать слишком длинную строку (более 1044 байт) уязвимому свойству, вызвать переполнение буфера и выполнить произвольный код на целевой системе. URL производителя: www.microsoft.com. Решение: В настоящее время способов устранения уязвимости не существует.

Подмена строки состояния в Mozilla Firefox Программа: Mozilla Firefox 2.0.0.6, возможно, более ранние версии. Опасность: Низкая. Описание: Уязвимость существует из-за недостаточной обработки «data:text» URL и большого количества пробелов в ссылке. Удаленный пользователь может с помощью специально сформированной ссылки отобразить произвольный адрес в строке состояния и перенаправить пользователя на потенциально опасный сайт. Пример: <a href="data:text/html;windows-1251, http:%2f%2fwww.google. com [большое количество пробелов ...] <script>document. location.href='http://www.securitylab.ru'</script>">сайт Google.com</a>

URL производителя: www.mozilla.org. Решение: В настоящее время способов устранения уязвимости не существует.

№9, сентябрь 2007

Переполнение буфера в MSN Messenger Программа: Microsoft MSN Messenger 6.x, 7.x. Опасность: Высокая. Описание: Уязвимость существует из-за ошибки при обработке видеоразговоров. Злоумышленник может послать целевому пользователю специально сформированные данные, вызвать переполнение динамической памяти и выполнить произвольный код на целевой системе. Для успешной эксплуатации уязвимости целевой пользователь должен принять Web Cam-приглашение. URL производителя: messenger.msn.com. Решение: В настоящее время способов устранения уязвимости не существует. Рекомендуется пользоваться версией Windows Live Messenger 8.1 или выше.

Переполнение буфера в Yahoo! Messenger Программа: Yahoo! Messenger 8.1.0.413, возможно, более ранние версии. Опасность: Средняя. Описание: Уязвимость существует из-за недостаточной обработки входных данных в JPEG 2000-потоках, отправленных с помощью веб-камеры. Злоумышленник может с помощью специально сформированного потока вызвать переполнение динамической памяти и выполнить произвольный код на целевой системе. URL производителя: messenger.yahoo.com. Решение: В настоящее время способов устранения уязвимости не существует.

Раскрытие данных в Symantec Enterprise Firewall Программа: Symantec Enterprise Firewall 6.x. Опасность: Низкая. Описание: Уязвимость существует из-за того, что приложение отправляет различные ответы в зависимости от корректности имени пользователя. Злоумышленник может определить валидные имена пользователей. Для успешной эксплуатации уязвимости приложение должно быть сконфигурировано для удаленного доступа по VPN и использованием PSK-аутентификации. URL производителя: www.symantec.com. Решение: Для устранения уязвимости следуйте инструкциям производителя.

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

87


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

Микропроцессорные войны: хроника борьбы компаний Intel и AMD

Илья Александров В рубрике «Ретроспектива» мы часто пишем об истории успеха компьютерных корпораций. Но есть в мире информационных технологий две компании, развитие которых тесно зависит друг от друга. Сегодня я расскажу об истории противоборства двух главных конкурентов процессорного рынка – Intel и AMD.

Помнишь, как все начиналось В 60-е годы прошлого века в США существовала компания Fairchild Semiconductor, главной заслугой которой является создание первой в мире интегральной микросхемы. В этой компании трудились многие личности, чьи имена сегодня широко известны, и именно она во многом сформировала тот технологический рай, известный как «Кремниевая Долина» (Silicon Valley). В числе сотрудников Fairchild Semiconductor были трое ученых, родоначальников «империи» Intel: физики Гордон Мур (Gordon E. Moore), Эндрю Гроув (Andrew Grove) и Роберт Нойс (Robert Noyc). В 1968 году они и стали учредителями INTegrated ELectronics Corporation, более известной как INTEL. С первых же дней в ком-

88

пании работали лучшие специалисты, и ставка была сделана на технологические инновации и уникальные чипы. Технический гений специалистов был залогом технического прогресса. В то время Гордон Мур и вывел свой знаменитый закон: емкость каждого нового чипа памяти в два раза больше, чем в предыдущем. А новые чипы появлялись каждые полтора года. Впоследствии этот закон применительно к процессорам был широко растиражирован и получил широкую известность. Продолжает работать закон Мура и в наши дни. Изначально на заводах Intel никаких микропроцессоров не создавалось. Компания производила статическую оперативную память (Static Random Access Memory – SRAM), в то время востребованную главным образом в калькуляторах. Разработкой чипов

памяти Мур и Ко занимались вплоть до 1971 года. С р е д и с о т р уд н и ко в Fa i rc h i l d Semiconductor был и Джерри Сандерс (Jerry Sanders), занимавший пост менеджера по продажам. В детстве Джерри мечтал о карьере киноактера, но получил образование инженера-электронщика. Разработка техники как таковая была ему не интересна, и он занялся маркетингом. Вместе с шестью инженерами, среди которых был Эд Терни (Ed Turney), он основал свою компанию – AMD (Advanced Micro Devices). В AMD Сандерс видел ту площадку, где он, наконец, сможет реализовать себя как маркетолога, специалиста по работе с потребительским рынком. Определённый опыт у него имелся ещё со времён Fairchild. Компания тогда пыталась ухватить свою долю


ретроспектива от продаж телевизоров, разрабатывая специальные тюнеры. Сандерс пошел на колоссальное снижение цен, фактически сделав компанию временно убыточной. Но за два года такой расчет привел к тому, что почти все тюнеры для ТВ производила Fairchild, вытеснив всех конкурентов. Риск окупился миллионами последовавшей прибыли. Первоначально AMD, как и Intel, также начинала с выпуска чипов памяти.

Семидесятые: начало противостояния Инвестиционная компания, которая занималась финансовой поддержкой еще Fairchild Semiconductor, выделила на развитие Intel около двух с половиной миллионов долларов. Впоследствии Роберт Нойс со смехом вспоминал об этом, удивляясь, как им дали такую сумму. Весь бизнес-план молодой компании помещался на страницу и был полон опечаток. За первый год работы чистая прибыль Intel составила смешные три тысячи долларов. Все деньги приносила продажа микросхем с памятью. В 1971 году от японской фир мы Busicom Гордону Муру поступило предложение изготовить микросхемы для калькуляторов. В то время у Intel тогда не было возможностей для столь обширного производства. Компания приняла решение изготовить лишь одну микросхему, но универсальную, сочетающую в себе функциональные возможности целого ряда чипов. Так, группа Федерико Феджина (Federico Faggin) создала первый микропроцессор – 4004. Его характеристики были следующими: разрядность шин адреса и данных 4 бита, 2300 транзисторов, тактовая частота – 108 кГц. Сейчас эти параметры кажутся смешными, но по производительности данный чип не уступал суперкомпьютерам 50-х годов прошлого века, занимавшим площади в десятки квадратных метров. Бизнес с калькуляторами у Busicom так и не увенчался успехом, и фирма обанкротилась. Intel же выкупила права на 4004, дабы самостоятельно реализовать данный процессор. До 1971 года львиную часть доходов Intel по-прежнему составляла опе-

№9, сентябрь 2007

ративная память. Но в 1972 году в продажу поступил новый 8-разрядный микропроцессор – 8008. Тактовая частота уже 2 МГц, количество транзисторов выросло втрое. Работал процессор значительно быстрее своего предшественника. Популярность к 8008 пришла с выпуском первого в мире персонального компьютера под названием Altair. Altair разрабатывался американской фирмой MITS, отличался дешевой (около пятисот долларов) ценой и собственной операционной системой – CP/M. Впоследствии молодая компания Microsoft разработает свой вариант этой ОС – MS-DOS. Несмотря на низкую производительность Altair пользовался большой популярностью – до «компьютерного буДжерри Сандерс ма» было ещё далеко, но приобщитьВ 1981 году IBM выпустила свой ся к высоким технологиям люди хотеновый компьютер PC, базировавшийли уже тогда. В 1976 году Intel выпустила усовер- ся на процессоре 8088 – упрощенной шенствованную версию 8008 – 8085. версии 8086. На ПК была предустановОн нашёл своё применение в элект- лена операционная система MS DOS, ронных весах, но опробованные на нем что во многом определило дальнейшее технологии (в частности, улучшенная сотрудничество Intel и Microsoft. Попуработа с источниками питания) были лярность нового компьютера превравпоследствии реализованы в других тила Intel из мелкого производителя микросхем для калькуляторов в лидиразработках. Наконец в 1978 году с конвейера рующего поставщика микропроцессошёл легендарный 8086. Архитекту- соров. Сама компания вошла в число ра, на которой он основан, до сих пор пятисот самых успешных американсявляется стандартом для всех про- ких IT-фирм. Развитие AMD шло гораздо тяжецессоров, включая последние модели Core, а программы, написанные лее. Компания начинала с бюджета под 8086, можно использовать и се- в сто тысяч долларов, и вести собсгодня. Новый чип работал на часто- твенные разработки ей было простоте 4,77 МГц, имел 20-разрядную ши- напросто не на что. Первоначально ну адреса, что позволяло ему рабо- офис компании располагался в квартать с оперативной памятью объемом тире одного из сотрудников. AMD зав один мегабайт, и 16‑разрядную ши- нималась тем, что усовершенствовану данных. По производительности но- ла продукты других компаний – микровый процессор в десять раз превосхо- схемы, блоки питания и прочее. Придил своего предшественника. За год чем тестирование проводилось по 8086 был удостоен около двух тысяч стандартам армии США, которые быразличных наград как прорыв в облас- ли несравненно выше обычных. Такое трепетное отношение к высокоти процессоростроения.

Семейство Intel 486 Самая первая версия данного процессора – 486 DX. Он производился по технологии 1 мкм с тактовой частотой до 50 МГц. У чипа существовал «младший брат», 486 SX, по аналогии с 386 чипом. Наследник, 486 DX2, обладал встроенным сопроцессором и увеличенной тактовой частотой – до 66 МГц. Модель 486 SL являла собой то же, что и DX2, но обладала мень-

шим энергопотреблением (и соответственно меньшей производительностью), благодаря чему нашла применение у производителей ноутбуков. Наиболее производительным в линейке был 486 DX4: благодаря использованию технологического процесса 0,6 мкм был увеличен объём кэш-памяти первого уровня, а тактовая частота поднята до 100 МГц.

89


ретроспектива му качеству не могло не привлечь по- Восьмидесятые: купателей. конфликт В 1972 году компания вышла Следующим микропроцессором Intel на биржу через выпуск собственных стал не добившийся широкой популяракций. Благодаря полученным средс- ности 80186. Процессор был представтвам она открыла еще один завод лен в 1982 году. Он базировался на арв Малайзии. В 1975 году объем про- хитектуре 8086, но был заметно усодаж достиг 26 млн. долларов. AMD за- вершенствован. Так, в него были инрабатывала главным образом на про- тегрированы: контроллер прямого доизводстве чипов памяти, где у нее, на- ступа к памяти (Direct Memory Access – конец, появились и собственные раз- DMA), таймеры-счётчики и контроллер Гордон Мур работки. прерываний. Тактовая частота 80186 Компания выпустила свою версию составляла 6 МГц, однако некоторые цессора Intel, но технология производспроцессора 8080 – i8080A. В 1976 году индивидуальные инструкции выполня- тва была более надежной. К тому же между Intel и AMD был заключен кон- лись в 10-20 раз быстрее, чем на 8086. инженерам AMD удалось поднять частракт о двустороннем лицензирова- Кроме того, впервые Intel выпустила тоту процессора до 20 МГц, сделав его нии. Согласно подписанному согла- к своему чипу отдельный математи- более производительным. 1985 год ознаменовался выпусшению AMD предоставляла свои тех- ческий сопроцессор для работы с чиснологические наработки, а Intel – до- лами с плавающей точкой, что позво- ком нового поколения процессо кументацию относительно своих про- лило ещё больше повысить произ- ров – 32‑разрядного 80386. Несмотцессоров. водительность. 80186 использовал- ря на то что тактовая частота процесК концу семидесятых AMD являлась ся в основном как микроконтроллер сора не превосходила таковую у 286, успешной компанией, хотя ее возмож- для встраиваемых систем. Среди не- он работал почти в два раза быстрее. ности были еще очень далеки от уров- многих производителей компьютеров, Выход 80386 был во многом ориентиня Intel. Вполне возможно, что имен- принявших новый чип на вооружение, рован на Windows, а посему имел стопно поэтому Гордон Мур и его коман- были Siemens, Compis, Tandy и Hewlett- роцентную поддержку многозадачносда недооценили конкурента, дав AMD Packard. Кроме того, он устанавливал- ти, доведенную инженерами Intel до самого высокого уровня. в пользование немало важной инфор- ся в ноутбуки Toshiba. Единственное, что могло огорчить мации. Здесь также сыграло свою роль В 1982 году свет увидел процесжесткое антимонопольное законода- сор 80286. Тактовая частота возросла владельцев ПК, – под новый процестельство США, а также тот факт, что до 12,5 МГц, причем количество опе- сор им пришлось покупать новую маоба производителя процессоров пос- раций, выполняемых за такт, по срав- теринскую плату, поскольку 386 шел тавляли свою продукцию армии США. нению с предыдущими моделями уве- уже с другим разъемом. После выхоВоенным, естественно, было надежнее личилось в несколько раз. Чип подде- да Windows 95 – первой 32-разрядной иметь двух поставщиков, а не одного. рживал до 16 Мб оперативной памяти операционной системы Microsoft – оби мог выполнять несколько приложе- наружилась серьезная аппаратная ний одновременно (многозадачность) проблема. Впоследствии в микропропутём выделения каждой выполняе- цессорах новой серии ошибка была усмой программе своего раздела в па- транена, тогда как на старых была усмяти. Но программное обеспечение тановлена пометка «только для 16-разтого времени еще было ориентирова- рядных ОС». 386 существовал в двух но на выполнение только одной задачи, видах – DX и SX. SX представлял соа потому инновационная находка Intel бой упрощенную версию, имел 16-битоказалась невостребованной. Компа- ную шину данных и 24-битную шину адIntel. Самый первый процессор 8080 ния училась на своих ошибках, и но- реса, а посему мог адресовать лишь вый процессор создавался специаль- 16 Мб оперативной памяти. Произвоно для компьютера IBM PC AT, ставше- дительность его была на треть ниже, го наиболее популярным компьютером нежели у DX. AMD хоть и приносила ежегодно не80-х (хотя и стоившего с небольшую квартиру). В это время начинался бум малую прибыль, продолжала оставатьинтереса к компьютерам, появлялись ся бледной тенью Intel. Инженеры комспециализированные журналы, рас- пании продолжали совершенствовать ширялись сети магазинов. Компьюте- систему команд в своих микропроцесры перестали быть просто электрон- сорах, производили чипы для коммуниной диковинкой и начали стремитель- кационного оборудования и т. д. Но основным их доходом была оперативная ное шествие по миру. AMD выпустила свой аналог микро- память. Большая неприятность ждала процессора – Am286. Его система ко- Джерри Сандерса в 1987 году. На рыманд была точно такой же, как у про- нок памяти начали стремительно выIntel 486 DX

90


ретроспектива ходить японские и корейские компании, благодаря дешёвой рабочей силе в своих странах предлагавшие свою продукцию по более низким ценам. Соперничать с ними AMD не могла, а посему начала нести огромные убытки, повлёкшие за собой сокращение штата сотрудников. Нужно было срочно что-то предпринимать. Сандерс принял решение сконцентрировать все усилия компании на производстве микропроцессоров. Другого выхода для выживания компании он не видел. В том же году руководство Intel осознало свою ошибку, допущенную в заключении контракта с AMD. Компания отказалась предоставить документацию на процессор 80386. Сандерс обвинил конкурентов в нарушении антимонопольных законов. В итоге соглашение 1976 года было расторгнуто Intel в одностороннем порядке. AMD решила обратиться в суд. Разбирательство длилось до 1991 года. Вначале присяжные приняли сторону AMD, однако затем отменили собственное решение. В итоге Intel была признана нарушителем, и суд обязал компанию выплатить компенсацию своим основным конкурентам. Сумма штрафа составила почти миллиард долларов США.

Официальный сайт компании Intel

Начало девяностых: тот самый 486 Для специалиста по компьютерам словосочетание «четыреста восемьдеОфис AMD сят шестой» обозначает целую эпоху. Учитывая то, что все материнсЭто, наверное, самый известный микропроцессор и одна из самых ярких кие платы разрабатывались согласно стандарту форм-фактора AT (разрастраниц в истории компании Intel. 486 был выпущен в 1989 году. ботанного IBM), апгрейд компьютера Он кардинально отличался от пред- значительно упрощался. Никто не мешественников. Обработка команд шал выкинуть свой старый процессор, в нем происходила куда более разви- и поставить на его место новенький то: вместо единого монолитного бло- 486, не заменяя никаких других детака в новом процессоре находились лей ПК. Возросшие мощности заставпять устройств. Каждый модуль отве- ляли процессор сильно нагреваться, чал за выполнение определенной ра- именно с 486 получили широкое расботы, и такое разделение задач спо- пространение охлаждающие вентилясобствовало весьма значительному торы – кулеры. Чем ответила AMD? Надо заметить, росту производительности. На оригинальном 486 не было сопроцессора, что все ее процессоры вплоть до Am386 однако в последующих модификаци- были полными аналогами изделий Intel. ях он стал частью чипа. В 486 исполь- Производительность и качество были зовалась двухуровнёвая архитекту- на том же уровне, но при более демокра кэш-памяти – 8 Кб первого уровня ратичной цене. Выпуск Am486 показал, что AMD тоже на кое-что способна. Её и 512 Кб – второго.

№9, сентябрь 2007

процессоры DX2-80 и DX4-120 работали на тактовых частотах 80 и 120 МГц соответственно. Противопоставить им Intel ничего не могла. Впрочем, компания в то время уже не пыталась развивать семейство 486, сосредоточившись на выходе Pentium. Тем не менее сам факт, что AMD впервые сумела разработать более производительный процессор, чем Intel, говорит о многом... Продолжение следует. 1. http://en.wikipedia.org/wiki/Intel. 2. http://en.wikipedia.org/wiki/AMD. 3. http://www.intel.com/cd/corporate/europe/ emea/rus/366169.htm.

Рубрику ведет Дмитрий Мороз

91


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

Освоение Microsoft SQL Server 2005 Майк Гандерлой, Джозеф Джорден, Дейвид Чанц

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

тов. Как заявляют сами авторы – отличительная особенность издания – его практическая направленность. Все рассматриваемые темы содержат множество примеров, и поэтому лучше всего прорабатывать книгу сидя за клавиатурой тестового сервера. Издание состоит из шести частей: Первая часть – небольшое «Знакомство с SQL Server 2005», где кратко рассматриваются теоретические основы баз данных, проектирование и нормализация баз данных, также в этой части читателя знакомят с самим продуктом Microsoft SQL Server и его составными частями. Вторая часть – «Язык программирования Transact‑SQL» – то, без чего не обойтись ни администратору, ни тем более программисту, в этой части читатель с головой погружается в диалект языка SQL от Microsoft – Transact-SQL. Автор начинает описание с простейших примеров запросов SELECT и заканчивает изучением таких углублен-

ных тем, как функции наборов данных, системные таблицы и оптимизатор. Третья часть под названием «Управление данными» знакомит читателя с SQL Server Managment Studio и с такими структурами СУБД, как индексы, представления, хранимые процедуры и триггеры. Четвертая часть посвящена исключительно администрированию SQL Server. В пятой части авторы знакомят нас со средой разработки SQL Server и интеграцией с .NET. Шестая часть затрагивает более сложные темы, такие как репликация, анализ, служба отчетности, служба уведомлений и блокировки.

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

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

Программирование баз данных Oracle для профессионалов Рик Гринвальд, Роберт Стаковьяк, Гэри Додж, Дэвид Кляйн, Бен Шапиро, Кристофер Дж. Челья

Данное издание будет интересно в первую очередь программистам-профессионалам (как и следует из названия), работающим с Oracle и использующим в разработке языки SQL или Java. Оригинал на английском языке вышел в популярной серии Programmer to Programmer издательства Wrox, что само по себе является хорошей рекомен-

92

дацией. Авторы – настоящие эксперты ке Java. Из средств разработки также с огромным опытом разработки. И весь рассмотрен относительно новый инсэтот опыт в концентрированном виде трумент HTML-DB, позволяющий сознам попытались подать на восьмистах давать приложения при помощи многостраницах, в двух с половиной десят- численных мастеров, «сидя» в браузеках глав. Широкий диапазон рассмат- ре и без использования каких-либо дориваемых тем гарантирует, что каждый полнительных средств разработки. из разработчиков может найти для сеНужно отметить, что весь материбя что-то интересное. Перед началом ал книги ориентирован на актуальную знакомства с книгой рекомендуется в данный момент версию Oracle 10g, уже обладать начальными навыками но, безусловно, книга может быть попрограммирования баз данных Oracle. лезна и разработчикам, используюВ круг обсуждаемых проблем попали щим предыдущие релизы СУБД. вопросы от основ проектирования баз n Издательство: «Диалектика» данных до безопасности, оптимизации n Год издания: 2007 и бизнес-аналитики. n Количество страниц: 784 Много внимания уделено языку ISBN: 978-5-8459-1138-4 SQL и его диалекту PL/SQL – от ос- n Цена: ≈ 536 руб. нов до довольно сложных тем. Не- n сколько меньший объем уделен про- К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м граммированию баз данных на язы- «Вильямс».


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

Visual C++ 2005. Базовый курс Айвор Хортон

В активе Айвора Хортона за более чем десять лет писательской карьеры накопилось много успешно продаваемых книг по реализациям C/C++ от компании Microsoft. Одна из его новых книг, которую мы включили в обзор, посвящена интегрированной среде разработки и диалекту языка программирования Microsoft

Visual C++ 2005. В книге разбирается не только стандартный вариант языка C++, но и, безусловно, как следует из названия книги, его версия C++/CLI для .NET. Данное издание задумывалось автором как учебное пособие для начинающих программистов. При описании концепций и структур языка программирования автор старался придерживаться простого и доступного стиля изложения, а предварительных навыков программирования для начала работы с книгой не требуется. Текст сопровождается большим числом примеров и иллюстраций, а большинство глав завершаются упражнениями, призванными закрепить изученный материал и добиться его более эффективного усвоения. Читатель начинает со знакомства с интегрированной средой разработки и написания простейшей программы «Hello world!». Далее автор рассказывает о стан-

дартных конструкциях языка C++. Однако большую часть книги занимает описание специфики Visual C++ и программирования в среде Microsoft Windows. Раскрыты такие темы, как программирование с использованием MFC, работа с диалогами и окнами, печать и создание документов, написание собственных DLL-библиотек, работа с источниками данных и Windows Forms. Книга будет интересна тем, кто еще не имел опыта программирования на C++, но по тем или иным причинам решил начать знакомство с этим языком на примере средств разработки от компании Microsoft.

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

«Диалектика» 2007 1152 978-5-8459-1016-5 ≈ 557 руб. К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м «Вильямс».

MySQL. Базовый курс Роберт Шелдон, Джоффрей Мойе издание является именно введением и резервного копирования. Что касав рассматриваемую СУБД с открытым ется подключения к MySQL при работе исходным кодом MySQL, книга впол- с различными языками программироне сохраняет свою актуальность и се- вания, авторы рассматривают соответгодня. Упражнения и примеры, при- ствующие возможности таких языков, веденные в тексте, будут работать как PHP, Java/J2EE и ASP.NET/C#. как в версии MySQL 4.1, так и в верОправдывая свое назначения, книсии MySQL 5.0. га написана простым и доступным языКак и в любой другой книге для на- ком и снабжена большим числом илчинающих, в данном учебнике рас- люстраций, примеров и упражнений, сматриваются общие концепции и по- призванных закрепить изучаемый манятия обсуждаемого предмета, а за- териал. Для удобства читателей тектем – специфика конкретного продук- сты примеров, приведенных в книге, та. В данном случае нас знакомят с ос- доступны для загрузки на сайте изновами СУБД, использованием язы- дательства. ка SQL и основами проектирования Эта внушительных размеров книж- реляционной базы данных. Переходя n Издательство: «Диалектика» ка вполне подойдет для начинающих к конкретике MySQL, авторы обсуж- n Год издания: 2007 гурманов, решивших попробовать дают установку MySQL (в том числе n Количество страниц: 880 четвертинку пирога под названием и под Windows), вопросы администри- n ISBN: 978-5-8459-1167-4 LAMP. Хотя на обложке данного изда- рования, запросы к БД, модификации n Цена: ≈ 536 руб. ния стоит 2007 год, эта книга являет- и добавления данных, оптимизации К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м ся переводом оригинального издания производительности, безопасности «Вильямс». «Beginning MySQL» более чем двухлетней давности. Тем не менее, поскольку Обзор книжных новинок подготовил Андрей Маркелов

№9, сентябрь 2007

93


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

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

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

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

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

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

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

94


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

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 по каталогу агентства «Пресса России» *

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

**

№9, сентябрь 2007

95


СИСТЕМНЫЙ АДМИНИСТРАТОР №9(58), Сентябрь, 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

Читайте в следующем номере: Создание и балансировка отказоустойчивых служб с помощью Cisco Content Switch

ностей самых популярных фрэймворков для языка PHP.

Bugzilla в качестве

Как построить отказоустойчивый сер- ServiceDesk вис? Можно вбух... вложить крупную Bugzilla, конечно же, предназначена сумму в супер-сервер с функцией «го- для регистрации ошибок в програмрячей» замены процессоров, памяти, мах, то есть должна использоваться блоков питания и т. д., а затем молить- программистами, людьми квалифися на этот сервер. И когда молитва все- цированными. Но несколько пассов таки не помогла, перейти кластерному над шаблонами и исходными текстарешению из недорогих компонентов. ми – и Bugzilla превращается в бесМы предлагаем начать сразу со вто- платный ServiceDesk! Налицо все прирого варианта и построить недорогой знаки – регистрация ситуации, ее ототказоустойчивый сервис с исполь- слеживание, назначение исполнитезованием Cisco Content Switch (CCS). лю... Разве что аппаратную конфигуТакже в следующем выпуске рассмот- рацию не отслеживает. Подробности рим процесс создания виртуального читайте в октябрьском выпуске журотказоустойчивого маршрутизатора нала. из двух и более CCS.

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

Конфигурирование и тестирование HPC MPI‑кластера

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

Уважаемые читатели! Открыта подписка на 2008 год! Приобрести новые и старые номера журнала вы можете через интернет-магазин 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.