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

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

№5(30) май 2005


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

СЬ
www.samag.ru

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

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

WPA-Enterprise, 802.1x EAP-TLS


НУ

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

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

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

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

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

СТ
№12(49) декабрь 2006
Эффективно управляем
полями пользователей в AD

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

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


КА

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


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

www.samag.ru

Подробное руководство

№12(49) декабрь 2006


И
ЬГ
по настройке тонких клиентов

ЬД О
РА СКА
ТЕ
К

ИС НН
ЕН
УС

БО
НА ТПУ

ИЛ ДА
ТП

НЧ ЖИ
на основе Thinstation и NX
ВО

РА Е О

КО ЕО
АВ СЛ
Л

Л
ХА

ЗА Н
ПО
УЕ

Как купить ПО от Microsoft?


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

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


Ищем причины
Устанавливаем
MS ISA Server 2004
Строим защищенную беспроводную сеть:
WPA-Enterprise, 802.1x EAP-TLS
Настраиваем UPS под Linux
Как восстановить
удаленные файлы под BSD
Что важно знать об IP-телефонии
танавливаем Symantec Antivirus 9.0
в корпоративной сети

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

ваш веб-сервер?
Программы для стресс-тестов
Организуем работу
офисного почтового сервера
на платформе Windows
В поисках анонимного
ПОДПИШИТЕСЬ И ЧИТАЙТЕ! прокси-сервера
Роспечать – 20780, 81655 Как надо и как не надо
Пресса России – 87836 защищать веб-контент
Интер-почта – тел. (095) 500-00-60 от кражи
в номере
2 ТЕНДЕНЦИИ 48 Делимся впечатлениями о дистрибутиве
Linux XP Desktop
АДМИНИСТРИРОВАНИЕ Российская компания LINUX-ONLINE выпустила об-
новление к своему дистрибутиву Linux XP Desktop, на-
4 Устанавливаем межсетевой экран помнив сообществу о своих оригинальных подходах
MS ISA Server 2004 к Linux-бизнесу. Дмитрий Шурупов
Какова архитектура этого распространенного межсе- osa@samag.ru
тевого экрана, на что обратить внимание при его уста-
новке и как настроить основные службы? 54 Интеграция BIND + PostgreSQL
Андрей Бирюков Подробное описание метода хранения зон BIND
mex_inet@rambler.ru в PostgreSQL. Сергей Алаев
alaev777@mail.ru
10 Как купить ПО от Microsoft?
Разбираемся в особенностях приобретения и исполь- БЕЗОПАСНОСТЬ
зования OEM-версий. Дмитрий Бутянов
for.mail.only@gmail.com 61 Какие возможности появились в новой
версии DeviceLock
16 Подробное руководство по настройке Компания «Смарт Лайн Инк» отметила свое 10-летие
тонких клиентов на основе дистрибутива выпуском новой версии DeviceLock 6.0, которая подде-
Thinstation и протокола NX рживает функцию теневого копирования данных.
Технология NX дает новые возможности для связи Михаил Брод
и способна оживить старые компьютеры в роли тон- sales@smartline.ru
ких клиентов. Евгений Бушков
protectorat@mail.ru ЧЕЛОВЕК НОМЕРА
24 Кластеризация + виртуализация: 62 Романтичный хакер Крис Касперски
Linux HA + OpenVZ Компьютер – это тайна, считает популярный российс-
Часть 2: Виртуализация на практике кий специалист по системам безопасности.
Строим систему виртуализации с виртуальными сер- Оксана Родионова
верами, мигрирующими с одного узла на второй в слу- rodion@dol.ru
чае отказа первого. Евгений Прокопьев
eugene.prokopiev@gmail.com WEB
30 Настраиваем шлюз в Интернет 66 Выдержит ли нагрузку ваш веб-сервер?
на базе FreeBSD Обзор программ для проведения стресс-тестирова-
Простая в применении, нетребовательная к ресурсам ния. Сергей Яремчук
FreeBSD почти идеально подходит для использования grinder@ua.fm
на небольших роутерах для связи с внешним миром.
Алексей Бережной 74 Как надо и как не надо
beralex2@mail.ru защищать веб-контент от кражи
Что использовать для охраны веб-контента – одну
36 В поисках анонимного прокси-сервера из многих защитных систем, имеющихся на рынке,
Вопрос о безопасном серфинге по Интернету подни- или попытаться смастерить что-то свое?
мался не раз. При использовании для этой цели прок- Крис Касперски
си-сервера возникает вопрос, что лучше: искать прок- kk@sendmail.ru
си или создать свой? Иван Максимов
ivan_maksimov@inbox.ru РЕТРОСПЕКТИВА
40 Организуем работу офисного почтового 82 Предвестник бури, или История первого
сервера на платформе Windows персонального компьютера
Если бесплатные сервисы не устраивают вас скоростью Кремниевая долина превратилась в кузницу передо-
и качеством доставки писем, а на эффективные доро- вых идей в области информационных технологий. Яр-
гостоящие решения не выделяется средств, восполь- кий тому пример – исследовательский центр Xerox
зуйтесь предложенной в статье альтернативой. PARC, в котором был создан первый в мире персо-
Александр Емельянов нальный компьютер. Дмитрий Мороз
numb13@mail.ru akuji@list.ru

44 MeTA1: почтовый сервер на новый лад 88 СОДЕРЖАНИЕ ЖУРНАЛА ЗА 2006 ГОД


Sendmail хоть и занимает первую строчку «хит-парада»
среди открытых серверов электронной почты, но все же 92 КНИЖНАЯ ПОЛКА
неуклонно теряет свои позиции. Команда разработчи-
ков взялась исправить ситуацию. Сергей Супрунов 59, 81 BUGTRAQ
amsand@rambler.ru
Летим скорее
Лучше каждому Информация
Оформили на почту!
получать отдельный о подписке
подписку! экземпляр журнала на 95 стр.
Принес номер
Мужики, Почему я до сих пор на работу, И у меня А можно ещё Как же я без
Я забыл
где журнал этого не сделал?! «увели» почитать такая же беда успеть? любимого журнала?
подписаться!
взяли?

№12, декабрь 2006 1


тенденции
Microsoft и Novell заключили договор миллионов долларов за сертификаты по подписке на SUSE
В начале ноября компании Microsoft и Novell объявили о со- Linux Enterprise Server. Microsoft получит право использо-
трудничестве, что, несомненно, стало главным событием вать, перепродавать и распространять подписки по услови-
последнего времени и вызвало массовое обсуждение. ям договора, позволяя заказчику покупать одно- или много-
Компаниями был принят целый ряд соглашений по со- летнюю подписку на обновления и техническую поддержку
зданию, продвижению и поддержке новых решений для луч- от Novell. В ближайшие 5 лет корпорация Microsoft потра-
шего взаимодействия их продукции, а также по предостав- тит 60 млн. долларов на продвижение решений виртуали-
лению взаимной защиты клиентам от проблем с патента- зации на базе Linux и Windows и еще 34 миллиона долла-
ми. Все соглашения будут действительны по крайней ме- ров – на раскрутку совместного решения с Novell. Кроме
ре до 2012 года и позиционируются как новая веха в этапе того, Microsoft согласилась в течение ближайших трех лет
развития возможностей взаимодействия между операци- не подписывать подобных соглашений по продвижению ре-
онными системами семейств Windows и Linux. шений виртуализации с Linux и Windows с любыми други-
«Microsoft и Novell предоставляют клиентам возмож- ми Linux-поставщиками.
ность получить выгоду от продуктов каждой из компаний, Сотрудничество по совместной защите клиентов от па-
что важно в их корпоративной инфраструктуре. Мы уве- тентных исков выразится в том, что Microsoft выплатит
рены, что наши деловые и патентные соглашения позво- авансом Novell суммарно 108 млн. долларов, а Novell – как
лят предоставить высочайший уровень взаимодействия минимум 40 миллионов на протяжении ближайших 5 лет
и уверенности в том, что обе компании поддержат эти ре- в зависимости от доходов с Open Platform Solutions и Open
шения», – заявил Рон Овсепян (Ron Hovsepian), президент Enterprise Server.
и исполнительный директор Novell. Разработчики Samba выразили свое негативное отно-
Позже были обнародованы подробности о заключенной шение к этой сделке, а Скотт Хэнди (Scott Handy) из IBM,
сделке: «Финансовые обязательства Microsoft, представ- напротив, заявил, что в его компании рады слышать о лю-
ленные как часть соглашения, значительны, – заявил Ов- бых шагах по улучшению взаимодействия между Windows
сепян. – Это поможет ускорить продвижение Linux в сфе- и Linux.
рах корпоративных заказчиков и государственных учрежде-
ний и широко расширить возможности Linux и Open Source. Sun официально открыла Java
Это хорошо для Novell, но хорошо и для сообщества, потому Компания Sun Microsystems сдержала обещание и в сере-
что поспособствует распространению Linux и Open Source, дине ноября официально объявила об открытии «ключе-
повысит спрос на Linux-основанные решения». вых Java-реализаций».
Стало известно, Microsoft авансом выплатит Novell 240 К продуктам, исходный код которых был открыт, относят-
ся Java Platform Standard Edition (Java SE), Java Platform Micro
Edition (Java ME), Java Platform Enterprise Edition (Java EE).
Все они отныне опубликованы под лицензией на сво-
бодное программное обеспечение GNU GPLv2. Ранее Java
EE распространялась как Open Source-проект под лицен-
зией CDDL в рамках Project Glassfish.
Подробности о долгожданном событии с коммента-
риями от таких видных деятелей, как Ричард Столлман
(Richard Stallman) и Тим О'Рейли (Tim O'Reilly) опубликова-
ны на http://www.sun.com/software/opensource/java.

Бирмингэм отказался от массового


перехода на Linux
Совет английского города Бирмингэм отказался от своего
проекта по переводу настольных ПК на программное обес-
печение с открытым кодом на базе Linux. Оказалось, что об-
новление до Windows XP – не такое дорогое, как предпо-
лагалось.
Ожидалось, что городской совет Бирмингэма устано-
вит GNU/Linux на 1500 персональных компьютеров в биб-
лиотеках, однако дело ограничилось лишь 200 ПК. Это со-
бытие породило в СМИ информацию о том, что корпора-
ция Microsoft во избежание потери такого клиента предло-
жила представителям Бирмингэма особые скидки. Одна-
ко Ник МакГрат (Nick McGrath), возглавляющий стратегию
по платформам в Microsoft, опроверг эти слухи.

Составил Дмитрий Шурупов


по материалам www.nixp.ru

2
тенденции

«Битрикс» – лауреат «Премии Рунета 2006»


29 ноября в Москве состоялась Тор-
жественная Церемония вручения
ежегодной Национальной Премии
РФ за вклад в развитие российс-
кого сегмента сети Интернет «Пре-
мии Рунета 2006».
Компания «Битрикс», разработчик
системы управления веб-проектами
«Битрикс: Управление сайтом», – ла-
уреат в номинации «Технологии и ин-
новации». Сергей Рыжиков, директор
ООО «Битрикс», убежден, что «Пре-
мия Рунета 2006» – заслуженная на-
града всей компании «Битрикс», все-
го коллектива, профессиональной ко-
манды. «Проведена серьезная работа
над продуктом, и мы рады, что она за-
вершилась таким успехом. Это важное
достижение нашей компании».
В шести основных номинациях «Го-
сударство и общество», «Наука и обра-
зование», «Культура и массовые ком-
муникации», «Наука и образование»,
«Экономика и бизнес», «Здоровье и от-
дых», «Технологии и инновации» бы-
ли объявлены по три лауреата, каж-
Вручение премии компании «Битрикс»
дый из которых получил позолоченную
статуэтку в виде колонны, увенчанной мами, рекламой, рассылками, распре- Компания «Битрикс» специализи-
буквенным обозначением российско- делять права между группами поль- руется на разработке программных
го домена «RU». зователей, анализировать статисти- продуктов для управления веб-проек-
«Премия Рунета» в номинации ку посещений, оценивать эффектив- тами и многофункциональных инфор-
«Технологии и инновации» за 2006 ность рекламных кампаний и многое мационных систем для ведения ком-
год вручена компании «Битрикс», другое. мерческой деятельности в сети Ин-
Intel Technologies, а также компании Отдельного внимания заслуживает тернет.
МТУ-Интел и проекту «Стрим-ТВ». Все- мощная система безопасности продук- «Битрикс» является технологичес-
го за звание лучшего интернет-ресур- та, которая обеспечивает защиту сайта ким партнером для дилерской сети,
са в этой номинации боролись 40 пре- от взломов и хакерских атак. Аудит бе- включающей более 1000 компаний,
тендентов, в том числе восемь регио- зопасности продукта выполнен двумя и предоставляет возможность дизайн-
нальных. В прошлом году «Премию Ру- независимыми компаниями. Исполь- студиям и независимым разработчи-
нета» за технологии и инновации полу- зование продукта «Битрикс: Управле- кам использовать продукты компании
чила Лаборатория Касперского. ние сайтом», получившего сертифи- для реализации своих решений.
«Битрикс: Управление сайтом» – каты «Безопасное веб-приложение», «Премия Рунета» – общенацио-
универсальная система управления позволяет с уверенностью утверждать, нальная награда, призвана содейство-
веб-проектами. Удобный и понятный что современные корпоративные сайты вать популяризации высоких техноло-
интерфейс продукта позволяет эф- могут быть надежно защищены. гий в России, отмечает выдающиеся
фективно управлять сайтом, не при- На основе «Битрикс: Управление заслуги компаний-лидеров в области
влекая специалистов по программи- сайтом» работает более 3500 веб-про- информационных технологий и элек-
рованию и html-верстке. Управлять веб- ектов, среди которых сайты Издатель- тронных коммуникаций, государствен-
проектом, созданным на основе «Бит- ского Дома «Компьютерра», журналов ных и общественных организаций, биз-
рикс: Управление сайтом», не сложнее Cosmopolitan и Harper’s Bazaar, интернет- нес-структур, а также отдельных де-
чем создавать документы в обычном магазина компании «Эльдорадо», сайты ятелей, внесших значительный вклад
текстовом редакторе. страховой группы «НАСТА», «Ренессанс в развитие российского сегмента сети
«Битрикс: Управление сайтом» ре- Страхование», Департамента образова- Интернет. Учредитель «Премии Руне-
шает задачи 95% веб-проектов и поз- ния Москвы, Администрации Президен- та»: Федеральное агентство по печати
воляет управлять информационным та Удмуртии, Национальной Лиги Управ- и массовым коммуникациям.
наполнением сайта, структурой, фору- ляющих и других организаций. На правах рекламы

№12, декабрь 2006 3


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

Устанавливаем межсетевой экран


MS ISA Server 2004

Андрей Бирюков
Вам предстоит внедрить в вашей компании Microsoft ISA Server 2004. Какова архитектура
этого распространенного межсетевого экрана, на что обратить внимание при его установке
и как настроить основные службы?

Приступая к работе яся на момент внедрения ISA топо- вом экране должен быть реализован
Быстрота передачи данных по элект- логия сети. В сети организации име- доступ «снаружи» к нужным ресурсам,
ронной почте, возможность мгновенно ются ресурсы, которые должны быть используя терминологию ISA Server,
находить нужную информацию с помо- доступны как из глобальной сети, эти ресурсы должны быть опубликова-
щью поисковых систем – все это сде- так и из локальной (например, почто- ны. По-хорошему, эти два межсетевых
лало Интернет удобным инструмен- вый сервер, веб-сервер, FTP-сервер экрана должны находиться на разных
том, необходимым для работы. Одна- и т. д.). Возможны два варианта под- серверах и использовать различное
ко помимо тех удобств, которые пре- ключения. программное обеспечение (например,
доставляют ресурсы глобальной се- В одном случае и рабочие стан- Windows и ISA и Linux и iptables).
ти, они могут стать и источником мас- ции, и серверы находятся в одном сег- Однако далеко не все, особен-
сы угроз: атаки хакеров, вредонос- менте сети. Такой вариант встречает- но небольшие компании, могут поз-
ные приложения, утечка информации, ся в небольших организациях, где ко- волить себе использовать два серве-
нежелательная почта. Все эти факто- личество рабочих станций не превос- ра для защиты сети. Поэтому зачас-
ры представляют угрозу как для час- ходит 20 машин, а серверов зачастую тую прибегают к более дешевому ва-
тных пользователей, так и крупных не больше двух. рианту: использованию одного серве-
корпораций, и могут привести к зна- В другом случае сеть организации ра с тремя сетевыми интерфейсами.
чительным убыткам. Для борьбы с уг- содержит подсети, и соответствен- Тогда один интерфейс «смотрит» в Ин-
розами существует множество как ап- но серверы, доступ к которым необ- тернет, второй – в DMZ и третий – в ло-
паратных, так и программных реше- ходим как снаружи, так и изнутри, на- кальную сеть.
ний. Если у вас сеть под управлением ходятся в одной подсети (которая так- Далее в статье сетевой адаптер,
MS Windows, то вам наверняка зна- же именуется DMZ, демилитаризован- подключенный к Интернету, я буду на-
ком такой продукт, как Microsoft ISA ной зоной), а пользователи и локаль- зывать WAN, интерфейс, подключен-
Server 2004. ные ресурсы находятся в других под- ный к демилитаризованной зоне, –
сетях. При такой топологии серверы, DMZ, а к локальной сети – LAN.
Разберемся находящиеся в DMZ, должны быть от- На рис. 1 изображены два вари-
с топологией сети делены одним межсетевым экраном анта подключения межсетевого эк-
Хотелось бы обратить ваше внимание от Интернета и другим – от локальной рана. В случае «а» используются два
на такую важную вещь, как имеюща- сети. При этом на внешнем межсете- межсетевых экрана, один подключен

4
администрирование
к WAN и DMZ, а второй – к DMZ и LAN,
в случае «б» – один межсетевой эк-
ран, подключенный и к WAN, и к LAN,
и к DMZ.
Если вы собираетесь реализовать
второй вариант подключения, то обра-
тите внимание на его недостатки.Пре-
жде всего это общее снижение надеж-
ности сети. В случае зависания или пе-
резагрузки сервера ресурсы, находя-
щиеся в DMZ, будут временно недо-
ступны пользователям. Например, ес-
ли у вас в сети один почтовый сервер
и он находится в демилитаризованной
зоне, то при отключении межсетевого
экрана он будет недоступен, и у поль-
зователей в почтовом клиенте начнут
появляться сообщения об ошибке со-
единения. Как следствие – поток звон-
ков и жалоб системному администра-
тору на неработоспособность сети.
Другой недостаток использования Рисунок 1. Варианты развертывания межсетевого экрана и демилитаризованной зоны
одного сервера – это то, что в случае
его выхода из строя все то время, ко- Версия Standard подходит в качес- с помощью CARP осуществляется оп-
торое вы потратите на замену, локаль- тве решения для небольших и сред- тимизация кэширования данных.
ная сеть организации будет практичес- них компаний, количество рабочих В своей серии статей я ограни-
ки неработоспособна. мест в которых не превышает 100-150. чусь описанием настроек для версии
И наконец, пожалуй, самый важ- Основной особенностью ISA 2004 Standard Edition.
ный недостаток такой топологии, Standard Edition является то, что дан- С аппаратными требованиями,
в случае если злоумышленнику удас- ная редакция позволяет разворачи- предъявляемыми Microsoft ISA 2004
тся проникнуть на сервер, он сможет вать межсетевой экран только на од- к серверу, вы можете ознакомиться
получить доступ как в DMZ, так и ло- ном сервере. Другими словами, если в статье [1]. Там же содержатся реко-
кальную сеть. в вашей сети не используются клас- мендации по использованию операци-
Я буду описывать настройки серве- теры и балансировка нагрузки, то нет онной системы, поэтому я лишь пред-
ра, который подключен к WAN и DMZ, никакого смысла покупать более доро- лагаю сразу после установки ОС раз-
вариант топологии «а» и при необходи- гую версию Enterprise Edition, так как вернуть все последние обновления
мости буду делать пояснения для реа- в остальном функциональности вер- и проследить за тем, чтобы не было ус-
лизации варианта «б». сий совпадают. тановлено никаких лишних компонен-
Если используются два межсе- Версия Enterprise ориентирована тов, так как наличие любого дополни-
тевых экрана, то все эти недостатки на большие сети, в которых для обес- тельного приложения увеличивает ве-
частично или полностью можно уст- печения быстрого и бесперебойно- роятность успешного взлома системы.
ранить. В случае выхода из строя од- го доступа в Интернет и предостав- Не стоит забывать, что мы разворачи-
ного из них в течение буквально не- ления других сервисов необходима ваем межсетевой экран, а не какой-то
скольких минут сеть из варианта «а» балансировка нагрузки, централизо- внутренний сервер, то есть погранич-
можно превратить в вариант «б», до- ванное управление и хранение кон- ный узел, который первым будет «про-
бавив в сервер еще одну сетевую кар- фигураций. веряться на прочность» хакерами.
ту и произведя соответствующие из- Также в Enterprise включена под- Следующий элемент архитекту-
менения в настройках. К тому же бе- держка протокола CARP (Cache Array ры – таблица маршрутизации, которая
зопасность сети при использовании Routing Protocol). Этот протокол осу- должна быть настроена до установки
двух межсетевых экранов повышает- ществляет управление поиском кэши- программного обеспечения ISA. Таб-
ся. Например, если взломщик сумел рованных страниц в массиве ISA се- лица включает маршруты ко всем се-
проникнуть на сервер, подключенный веров. То есть когда пользователь об- тям, которые не являются локальными
к WAN и DMZ, то ему не будут доступ- ращается к какой-либо веб-странице, для сетевых интерфейсов межсетево-
ны ресурсы локальной сети. CARP определяет на каком ISA-серве- го экрана. Эти записи в таблице мар-
ре массива сохранить эти данные. За- шрутизации необходимы, потому что
Архитектура ISA тем, когда другой пользователь обра- у ISA может быть только один основной
и подготовка к установке щается к этой же странице, CARP об- шлюз. Обычно основной шлюз настро-
Существуют две версии ISA 2004: ращается к тому серверу, на котором ен на сетевом интерфейсе, использу-
Standard и Enterprise. страница сохранена. Таким образом, емом для внешней сети. Поэтому, ес-

№12, декабрь 2006 5


администрирование
Еще одно удобное средство – воз-
можность установки ISA с помощью
терминального клиента. После за-
вершения установки правило сис-
темной политики настраивается так,
чтобы соединения по протоколу RDP
(Remote Desktop Protocol, протокол
удаленного рабочего стола) были раз-
решены только с IP-адреса компьюте-
ра, который был подключен в процес-
се установки программного обеспече-
ния ISA. Это отличается от стандарт-
ной настройки системной политики
при установке программного обеспе-
чения межсетевого экрана с консоли,
когда любой хост во внутренней се-
Рисунок 2. Правило для протокола HTTP ти может инициировать RDP-соеди-
нение с внутренним (LAN) интерфей-
ли имеется внутренняя сеть или дру- ходимости уточните у вашего провай- сом ISA.
гая сеть, содержащая несколько до- дера адреса DNS-серверов. Для того чтобы начать установ-
черних сетей, например DMZ, нужно Наконец, последний подготовитель- ку ISA, необходимо запустить файл
настроить записи в таблице маршрути- ный элемент, это настройка сетевых isaautorun.exe. Затем после подтверж-
зации так, чтобы ISA мог взаимодейс- интерфейсов. Тут следуйте несколь- дения согласия с лицензионным согла-
твовать с компьютерами и другими ус- ким рекомендациям от Microsoft: шением и введения регистрационных
тройствами в соответствующих подсе-  Шлюз по умолчанию, предостав- данных вам предлагается выбрать ре-
тях. То есть для варианта с использо- ленный ISP, нужно указывать толь- жим установки, выбираем Custom. На-
ванием трех сетевых карт необходимо ко на внешнем интерфейсе WAN, стоятельно не рекомендуется выби-
будет прописать маршруты DMZ – LAN, на внутреннем LAN его указывать рать тип установки Complete, так как
DMZ – WAN. Маршрут WAN – LAN обя- не нужно. в таком случае будут установлены все
зательно определять, так как у нас бу-  На внутреннем интерфейсе LAN не- службы, в том числе и те, которые вам
дет указан шлюз по умолчанию в на- обходимо указать адрес внутрен- не нужны. Наличие лишних сервисов
стройках сетевой карты WAN. Для ука- него DNS-сервера, на интерфейсе на шлюзовом сервере снижает общую
зания маршрутов можно использовать WAN ничего указывать не нужно. защищенность сети. Поэтому не ставь-
консоль RRAS (Routing and Remote  Аналогично и для WINS-сервера. те на шлюзовой сервер никаких лиш-
Access Service, служба маршрутиза- Вопреки рекомендациям Microsoft них приложений.
ции и удаленного доступа) или коман- данную службу очень часто исполь- На следующем этапе установки ISA
ды ROUTE и netsh в командной строке зуют для разрешения имен многие необходимо указать Internal Network,
для добавления записи в таблицу мар- программные продукты. внутреннюю сеть, содержащую дове-
шрутизации.  Клиент сетей Microsoft на внут- ряемые сетевые службы, с которыми
После настройки маршрутизации реннем интерфейсе должен быть должен взаимодействовать межсете-
необходимо правильно разместить включен, на внешнем – выключен. вой экран. Примерами таких служб
DNS-сервер. Так как в случае непра- являются контроллеры домена Active
вильной настройки ISA первым ресур- Эти рекомендации помогут вам из- Directory, DNS и DHCP-серверы, сер-
сом, на котором это отразится, будет бежать часто встречающихся ошибок веры терминалов и рабочие станции
служба DNS. В большинстве организа- при настройке межсетевых экранов. управления. Определите адреса, вхо-
ций, использующих ISA, есть один или дящие во внутреннюю сеть по умол-
несколько внутренних DNS-серверов. Установка по требованию чанию.
Хотя бы один из них должен быть на- Возможно несколько режимов уста- Можно вручную ввести адреса, ко-
строен на разрешение имен внутрен- новки Microsoft ISA Server 2004: руч- торые будут входить во внутреннюю
них хостов и хостов в Интернете, а меж- ная, автоматизированная, ручная сеть, указав первый и последний ад-
сетевой экран ISA должен быть настро- с помощью терминального клиента. рес диапазона адресов внутренней
ен на использование этого DNS-серве- Для случаев, когда производится ус- сети в текстовых полях «From» (от)
ра. Если имеется DNS-сервер во внут- тановка нескольких серверов, пре- и «То» (кому) и щелкнув кнопку «Add»
ренней сети, то не следует настраи- дусмотрена автоматизированная ус- (добавить). Но лучше настроить внут-
вать интерфейсы межсетевого экрана тановка. Для этого необходимо внести реннюю сеть по умолчанию, используя
на использование внешнего DNS-сер- соответствующие изменения в файл вариант «Select Network Adapter» (вы-
вера. Это может привести к замедле- msisaund.ini. Подробно о таком типе брать сетевой адаптер). Это позволя-
нию трансляции имен или даже к ошиб- установки вы можете прочесть в ис- ет программе установки ISA восполь-
кам. Продумайте заранее и при необ- точнике [2]. зоваться таблицей маршрутизации,

6
администрирование
чтобы определить адреса, использу-  Между сетями VPN/VPN-Q и внут- ным портам. Как правило, протоколы,
емые для внутренней сети по умол- ренней сетью установлены отноше- с помощью которых допускается взаи-
чанию. Поэтому важно правильно на- ния типа «маршрут». модействие с внешней сетью, ограни-
строить записи таблицы маршрутиза-  Между внутренней сетью и внеш- чиваются следующими: SMTP, HTTP,
ции, прежде чем устанавливать межсе- ней сетью по умолчанию задано от- HTTPS, DNS, FTP, ICQ, ICMP, SSH,
тевой экран. Щелкните мышью «Select ношение трансляции адресов NAT. Telnet (последние два протокола нуж-
Network Adapter» (выбрать сетевой  Только администраторы могут ме- ны, как правило, только администра-
адаптер). В соответствии с оговорен- нять политику брандмауэра ISA. торам). Для того чтобы создать пра-
ными ранее наименованиями сетевых вило доступа, выберите в консоли ад-
интерфейсов, выбираем LAN. Указы- Теперь нам необходимо разрешить министрирования ISA раздел «Firewall
ваем необходимый диапазон IP-адре- доступ пользователей локальной сети policy», затем в меню «Action» выби-
сов. Далее нужно остановить службы к ресурсам Интернет. Многие систем- раем «New → Access Rule». В появив-
ICF (Internet Connection Firewall) и RRAS ные администраторы открывают до- шемся окне указываем наименова-
(Routing and Remote Access), если они ступ из внутренней сети в Интернет ние правила, далее определяем, какое
у вас используются. В противном слу- по всем портам, мотивируя это тем, это правило, запрещающее или раз-
чае при установке ISA вы получите со- что не хотят заниматься «тонкой на- решающее, в нашем случае выбира-
общение об ошибке. стройкой», открывая конкретные пор- ем «Allow», в следующем окне необ-
Далее нажимаем «Start», по окон- ты конкретным пользователям. Одна- ходимо указать протоколы, к которым
чании установки межсетевого экрана ко это пагубная практика во всех от- будет применяться данное правило.
ISA необходимо произвести перезаг- ношениях. Соответственно выбираем, например
рузку сервера. Во-первых, вредоносное програм- HTTP, затем указываем источники,
После установки ISA, но перед под- мное обеспечение, в частности, «тро- в нашем случае это будет сеть Internal
ключением сервера к Интернету необ- янские кони» используют для соедине- (LAN), а в качестве точки назначения
ходимо установить на него последний ния с «хозяином» нестандартные пор- External (WAN).
пакет обновлений. Для ISA Server 2004 ты. Поэтому межсетевой экран может Затем укажите пользователей, ко-
на момент написания статьи это был стать преградой для несанкциониро- торым будет разрешен выход в Интер-
Service Pack 2. Проверить наличие ванного проникновения в сеть, в слу- нет, при этом аутентификацию можно
последних обновлений вы можете по чае если антивирусы не смогли опре- осуществлять посредствам RADIUS-
адресу [3]. делить вредоносный код. сервера и локальной базы пользова-
Во-вторых, наличие доступа по телей. В результате выполнения всех
Открываем доступ всем портам позволит пользователям этих действий получаем правило до-
Сразу после установки сервер ISA ра- сети беспрепятственно применять кли- ступа для протокола HTTP. Аналогич-
ботает в режиме запрета всех соеди- ентов различных пиринговых сетей, ным образом создаются правила для
нений, и для того чтобы организовать что не слишком благоприятно сказы- всех остальных протоколов, за исклю-
пользователям локальной сети доступ вается на использовании корпоратив- чением двух последних (SSH и Telnet),
к ресурсам Интернета, необходимо от- ного канала доступа в Интернет, а так- которые, как уже упоминалось ра-
крыть доступ к соответствующим эле- же на производительности труда со- нее, нужны только администраторам.
ментам межсетевого экрана. Вкрат- трудников. Для того чтобы создать правило до-
це стандартную конфигурацию мож- И в-третьих, хорошим тоном явля- ступа только для определенных хос-
но представить так: ется наличие корпоративной политики тов, необходимо при назначении ис-
 Системные политики разрешают безопасности, построенной по принци- точника указать не подсеть (Network),
выборочный трафик с брандмауэ- пу: все, что не разрешено, то запреще- как это делалось в предыдущем при-
ра ISA и на него. но. Закрытие портов является неотъ- мере, а отдельный узел (Computer), ко-
 Запрещен весь трафик через бран- емлемой частью такой политики. торым пользуется администратор.
дмауэр ISA, потому что есть только Итак, будем открывать доступ
одно запрещающее правило. пользователей только к определен- Публикуем ресурсы
Итак, все необходимые обновления ус-
Что делать, если в сети активно быстрый и удобный способ. Все обраще- тановлены, межсетевой экран подклю-
применяется какое-либо ния к закрытым портам можно отслежи- чен к глобальной сети и теперь нужно
критичное для работы вать средствами ISA, для этого нужно от- открыть доступ к ресурсам, находя-
клиент-серверное приложение, крыть закладку «Logging», фильтр можно щимся в DMZ или LAN из внешней се-
использующее для соединения использовать стандартный или же настро- ти WAN. В терминологии ISA эта опе-
нестандартные порты? ить на журналирование пакетов, удовлет- рация называется «публикацией ре-
У многих, особенно начинающих, адми- воряющих определенным критериям, на- сурса». Прежде всего определим-
нистраторов может возникнуть такой воп- пример, по IP-адресу или типу пакетов. ся, что именно нам необходимо пуб-
рос. Конечно, можно попробовать поис- Далее включаем журналирование «Start ликовать. Как правило, в сети орга-
кать документацию по данному продукту Logging». Получив нужную информацию, низации размещаются почтовый сер-
или же воспользоваться сетевым мони- открываем порты для необходимого ви- вер, сервер FTP, а также ресурсы, до-
тором (сниффером). Однако есть более да трафика. ступ к которым осуществляется пос-

№12, декабрь 2006 7


администрирование
редством шифрования SSL (например, веб-ресурсы, для углубленного изуче- В следующем окне необходимо оп-
Outlook Web Access). Несмотря на то ния используйте источники [2, 3]. ределить веб-приемник «Web Listener»,
что для размещения веб-сайта компа- то есть сетевой объект, применяемый
нии сейчас, как правило, используют- Настраиваем публикацию в правилах публикации веб-серверов.
ся ресурсы провайдера, во многих се- веб-ресурсов по протоколу, Веб-приемник ожидает (прослушива-
тях для доступа к некоторым локаль- отличному от SSL ет) входящие подключения к заданно-
ным ресурсам используется HTTP, по- Для того чтобы произвести публика- му порту в интерфейсе или на выбран-
этому мы рассмотрим публикацию веб- цию, нужно в консоли администриро- ном IP-адресе. В случае нашей топо-
сервера в качестве примера. вания выбрать раздел «Firewall Policy,» логии указываем интерфейс WAN. За-
Обратите внимание на то, что веб- а затем в закладке «Tasks» указать тем в свойствах приемника указываем
публикацию иногда называют «ревер- «Publish a Web Server». Затем указыва- порт, который должен прослушивать-
сивным представительством» (reverse ем имя правила публикации, на стра- ся, как правило, это порт 80.
proxy). Это означает, что, когда публи- нице «Select Rule Action» выбираем В окне «User Sets» определяется,
куется веб-ресурс, фильтр прокси меж- «Allow», после этого определяем веб- нужна ли аутентификация для досту-
сетевого экрана ISA всегда перехваты- сайт для публикации. Для этого запол- па к веб-серверу. В нашем случае ау-
вает запрос и затем представляет его няем поля открывшегося окна (рис. 3), тентификация не требуется, то есть вы-
опубликованным с помощью правила здесь вы наверняка обратите внимание бираем «All Users». В результате рабо-
публикации веб-сервера. Механизм на переключатель «Forward the original ты мастера мы получаем новое прави-
реверсивного проксирования также host header instead of the actual one ло доступа к веб-ресурсу.
широко используется различными ан- (specified above)» (пересылать исход-
тивирусными системами, которые ин- ный заголовок хоста вместо фактичес- Сохраняем результат
тегрируют свои фильтры в ISA Server, кого, заданного ранее). Данное свойс- Все настройки ISA можно сохра-
таким образом осуществляя проверку тво определяет, пересылать ли на опуб- нить в зашифрованном XML-файле.
входящих запросов на наличие вредо- ликованный веб-сервер действитель- Для этого выполните действия: в ме-
носного кода. ный заголовок хоста в запросе, отрав- ню «File» выберите опцию «Tasks», да-
Еще одно удобное средство публи- ленный внешним клиентом. Это важно, лее «Export», укажите в разделе «ISA
каций ресурсов в ISA – предваритель- если на одном веб-сервере содержит- Server export options» использова-
ная аутентификация соединений, ус- ся несколько веб-сайтов и они исполь- ние шифрования «Export confidential
танавливаемых с опубликованными зуют разные заголовки хостов. information» и «Export user permission
веб-ресурсами. То есть можно зара- Далее следует страница «Public settings» для экспортирования прав до-
нее проверить подлинность пользова- Name Details» (параметры общедо- ступа. Затем указываем используемый
теля на межсетевом экране. Предвари- ступного имени), на которой опреде- пароль, и зашифрованный документ го-
тельная аутентификация не позволяет ляется, какие домены или IP-адреса тов. Такой способ также очень удобен
атакующим и злоумышленникам при- будут применять пользователи для со- в ситуации, когда требуется на другом
менять неаутентифицированные со- единения с опубликованным веб-сай- межсетевом экране развернуть полно-
единения для использования извест- том с помощью правила публикации. стью идентичные настройки, например,
ных и неизвестных слабых мест в веб- Здесь не рекомендуется разрешать при организации VPN-соединения меж-
серверах и приложениях. принимать запросы к любому имени ду несколькими офисами. В таком слу-
Существует также множество дру- домена «Any Domain Name», так как чае настройки экспортируйте в зашиф-
гих функций и фильтров, которые поз- в таком случае узел становится потен- рованный XML-файл и отправьте адми-
воляют опубликовывать различные циально уязвим для различных атак, нистратору другого офиса по электрон-
так как все обраще- ной почте, где он сможет импортиро-
ния на опубликован- вать настройки на свой сервер.
ный порт будут пе-
редаваться веб-сер- В следующем номере
веру, в таком случае Из второй статьи, посвященной ISA-
могут быть отправ- серверу, вы узнаете, как подключить
лены запросы, содер- удаленные офисы через VPN, а также
жащие вредоносный рассмотрим тему публикации веб-ре-
код. Поэтому реко- сурсов с помощью SSL.
мендуется в этом ок-
не определить, к ка- 1. http://www.microsoft.com/technet/isa/
ким доменам разре- 2004/plan/bestpractices.mspx – требо-
шено принимать за- вания к аппартной части
просы. В поле «Path» 2. Шиндер Т. Шиндер Д. ISA Server 2004.
можно указать, к ка- 3. ht tp : / / w w w.mic rosof t .c om / tec hnet /
ким каталогам нуж- downloads / isa / 20 0 4 /ser vicepacks /
но разрешить доступ default.mspx – пакеты обновлений для
Рисунок 3. Публикация веб-ресурса на данном веб-сайте. ISA Server 2004.

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

Как купить ПО от Microsoft?


Особенности приобретения
и использования OEM-версий

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

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

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

Н
о вот стоит только поработать можностями трудоустройства, може- ную версию можно покупать для ус-
какое-то время с таким «лотош- те представить сами. тановки в офисах компаний, но мой
ным» товаром, и начинает сис- Бытует мнение, что легальное про- вам совет – сначала проконсульти-
админ вздыхать, долгими взглядами граммное обеспечение является на- руйтесь с реселлером.
буравя потолок и проклиная на все ла- столько дорогим, что у компаний прос-  Лицензия OEM – предназначена
ды тех, кто ему этот самый диск под- то нет выбора – они разорятся на по- для поставщиков вычислительной
сунул. Вроде и делаешь всё правиль- купке. Как правило, такое мнение раз- техники.
но, и люди умные на форумах советы деляют люди, не знающие его стоимос-  Лицензии, поставляемые
дельные дают, но ведь живет систе- ти. Не верите – спросите у них. Полу- по программам корпоративно-
ма по своим, непонятным людям за- чите ответ «Очень дорого». Но ничего го лицензирования – предна-
конам. И номера откалывает такие, конкретного. значены для организаций любо-
что даже бывалые, не один гигабайт Купить лицензионное програм- го размера. В стоимость лицен-
съевшие специалисты разводят рука- мное обеспечение сейчас по силам зий уже включены скидки за объ-
ми и ничего, кроме переустановки, ре- почти любой компании, даже неболь- ем заказа.
комендовать не могут. Так, может, де- шой. Кстати, можно ведь не покупать,
ло не в вас, а в том софте, который вы а брать в аренду (мало кто об этом Существуют специальные про-
почти даром заполучили и на котором знает). Стало интересно? Читайте граммы лицензирования продук-
отныне ваша фирма работает? дальше. тов для компаний ASP – Application
Не секрет, что пираты при изготов- Бытует мнение, что приобретение Ser vice Providers, предоставляю -
лении своей… хм… продукции вно- лицензионного софта мало отличает- щих услуги доступа к приложениям
сят в дистрибутив подчас значитель- ся от покупки, например, чайника – от- Microsoft третьим лицам. Например:
ные изменения, выбрасывая из него, дал деньги, получил товар, пользуйся, хостинг баз данных SQL Server, хос-
как минимум, библиотеки драйверов как хочешь. На самом деле это не сов- тинг почтовых серверов Exchange
и прочие малозначащие для них ве- сем так. Купив то или иное програм- Server. SPLA – Service Provider License
щи. Какие мучения потом будет ис- мное обеспечение, вы покупаете пра- Agreement. В некоторых случаях мож-
пытывать админ, их мало волнует. во его использования. Иными слова- но загрузить продукт через Интернет.
Это на их прибыли не скажется. Вдо- ми – производитель разрешает вам Остановимся на трех самых популяр-
бавок система обрастает «Резетами» использовать свой продукт, но на сво- ных вариантах: коробки, OEM-лицен-
и прочим малоаппетитным софтом, их условиях. Эти условия оговарива- зии, программы корпоративного ли-
заставляющим этого убогого калеку ются в Лицензионном соглашении, цензирования.
хоть как-то работать. В итоге получа- и обязательны для соблюдения. Обя-
ем массу проблем, за решением кото- зательны! Несоблюдение этих требо- Коробка – красиво,
рых и проводим большую часть свое- ваний и является пиратством. Так что но дороговато
го времени, вместо того чтобы делом учтите – пиратом можно стать и по не- Самым простым (и дорогим) способом
заниматься. знанию. приобретения программного продук-
В чьих руках побывала система та является покупка коробки (FPP).
до того, как попасть на лоток пира- Каковы особенности Покупая коробочную версию, вы по-
та, зачастую не знают и сами пираты. приобретения лучаете в комплекте: Лицензионное
Что эти неизвестные бойцы пиратского и использования? соглашение (часто только в элект-
фронта с этой системой сделали, и по- Приобрести программное обеспече- ронном виде), оригинальный носи-
чему теперь на одном DVD помещается ние Microsoft можно разными способа- тель с элементами защиты от подде-
пара сотен программ, тоже объяснить ми. Во всех случаях оно сопровожда- лки, Руководство пользователя (час-
не могут. Насколько вся эта конструк- ется лицензионным соглашением, ли- то только в электронном виде), упа-
ция жизнеспособна, может показать бо в электронной форме, либо в печат- ковку с Сертификатом подлинности
жизнь, иными словами – они продают ном виде. Обратите внимание, что ус- (COA). Для подтверждения подлин-
вам за ваши же деньги ваши же про- ловия использования программного ности приобретенного программно-
блемы. Вам это нужно? обеспечения зависят не только от са- го обеспечения вы должны хранить
И некорректно работающим соф- мого продукта, но также от способа, ко- весь комплект поставки полностью
том дело не ограничится. Законода- торым оно приобретено. То есть один плюс документы, подтверждающие
тельство Российской Федерации в об- и тот же продукт, приобретенный раз- покупку. Купить софт в виде коробоч-
ласти охраны авторских прав (борьбы ными способами, можно будет исполь- ной версии можно далеко не весь, не-
с пиратством) за несколько лет претер- зовать по-разному. которые продукты таким образом не
пело значительные изменения, и сей- Перечислю виды лицензий и спо- распространяются. Как правило, это
час строится на базе международных собы их приобретения: продукты, ориентированные на кор-
стандартов в этой сфере. При опре-  Лицензия FPP (Full Packaged поративного пользователя, например,
деленных условиях, пиратский софт Product – коробочная). Коробочные Microsoft Office Pro Enterprise Edition
в офисе компании может стать и уго- продукты предназначены для инди- купить в коробке нельзя. Право ис-
ловным преступлением. А что это мо- видуальных клиентов и домашних пользования коробочного продукта
жет сделать с вашей анкетой и воз- офисов. В ряде случаев коробоч- является бессрочным, т.е. вы може-

№12, декабрь 2006 11


администрирование
Как OEM-версия может попасть
Как легализовать жет быть перенесена на другой ПК. Основ- в вашу компанию?
операционную систему? ные отличия Get Genuine Kit от обычных Во-первых, вы можете приобрести
Предположим, решение переходить на ли- OEM-лицензий Windows XP Professional компьютер с уже предустановленной
цензионное программное обеспечение описаны ниже: версией. Во-вторых, вы можете ку-
принято. Но тут нас ждет еще один под-  G et G enuine K it д л я Windows XP пить OEM-версию как таковую, отде-
водный камень. Ведь софт-то уже стоит, Professional предназначена для ком- льно от компьютера. Сначала о пер-
работает! Пиратский, краденый, какой-ни- пьютеров с установленной ранее пи- вом способе. Если вы покупаете ком-
какой, а требующий перестановки и все- ратской, поддельной или нелицензи- пьютер с уже установленной OEM-вер-
го, что из этого будет следовать. Иными онной операционной системой и не мо- сией, то посмотрите на абзац выше!
словами, временного паралича компании жет поставляться в комплекте с новы- Подтвердить подлинность этой вер-
и на пятнадцать лет постаревшего сисад- ми компьютерами. сии вы сможете, только имея на ру-
мина. Какие тут есть варианты? Если речь  Техническая поддержка Get Genuine Kit ках весь комплект: диск с голограм-
идет о Windows XP Professional, то для ле- для Windows XP Professional предостав- мой («родной»), наклейка СОА, доку-
гализации операционной системы на та- ляется Microsoft. ментация, если была, – это всё долж-
ких компьютерах можно приобрести спе-  Полная установка операционной систе- но быть у вас вместе с новыми компью-
циальную версию операционной систе- мы (установка на чистый диск) не явля- терами. Требуйте этого у поставщи-
мы под названием «Get Genuine Kit для ется обязательной – возможна переус- ков обязательно. Исключение из пра-
Windows XP Professional». В состав Get тановка с сохранением данных или об- вила одно. Оно касается крупных про-
Genuine Kit входят те же компоненты – новление ключа продукта. изводителей компьютеров, так на-
сертификат подлинности (COA), дистри- зываемых Direct OEM. Это компании,
бутив с продуктом, лицензионное согла- Если говорить о других программных которые подписали прямой договор
шение с конечным пользователем (EULA). продуктах, то такого набора по ним нет. с Microsoft, и имеющие документаль-
Как и обычные OEM-версии, эта операци- Кроме того, некоего трейд-ина тоже нет, ное подтверждение своего статуса
онная система привязана к ПК, на кото- и стоимость старого легального софта вам Direct OEM. Для крупных производите-
рый впервые была установлена, и не мо- не будет засчитана. лей компьютеров (Direct OEM) сущест-
вует три возможности:
те им пользоваться всю свою жизнь. мание: отсутствуют версии обновле-  Процедуры восстановления с бло-
Кроме того, такой продукт чаще все- ния, нет специальных академических кировкой BIOS позволяют круп-
го может быть установлен на двух ПК цен для учебных заведений. Что та- ным изготовителям компьютеров
(право установки на переносной ком- кое версия обновления? Это диск ти- создавать компакт-диски с опера-
пьютер). Более подробно о прави- па «Windows XP Pro Upgrade», предна- ционной системой и драйверами
лах использования коробочной вер- значенный не для установки на пус- устройств для восстановления за-
сии продукта вы сможете прочитать той компьютер, а для обновления дру- водских установок. Компакт-диск
в документации, которая прилагается гой операционной системы, например, маркирован производителем ПК,
к поставке. Я же хочу подробнее ос- Windows XP Home Edition, до уровня он привязывается к конкретному
тановиться на способах покупки, ко- Windows XP Pro. компьютеру, что препятствует на-
торыми чаще всего пользуются кор- ОЕМ-версия в исходной постав- рушению авторских прав.
поративные заказчики. ке выглядит как картонная короб-  Крупные производители компью-
ка, без красивой полиграфии. На ко- теров мог у т так же размещать
OEM – просто и сердито робке обязательно наклеено Лицен- средства восстановления системы
По сравнению с коробкой, приобрес- зионное соглашение Сборщика сис- на жестком диске – обычно в отде-
ти OEM-версию программного продук- тем. Количество дисков внутри ко- льном разделе жесткого диска.
та вы можете гораздо дешевле. В ви- робки (а значит, и количество приоб-  Иногда крупные производители
де OEM-версий распространяются ретенных продуктов) может быть один, компьютеров не поставляют ка-
не все продукты – только Windows XP три или тридцать. Причем сервер- ких-либо носителей со средства-
Home & Pro, Office 2003, Windows ное программное обеспечение всег- ми восстановления системы. Тем
Server, Small Business Server. Формаль- да идет в упаковках по одной штуке, не менее они обязаны в случае не-
но OEM-версии продукта предназна- а тридцать штук дисков может быть обходимости предоставлять средс-
чены для поставщиков (сборщиков) только для Windows XP. Каждый эк- тва восстановления программного
компьютерной техники и должны рас- земпляр продукта из коробки состоит обеспечения по запросам заказчи-
пространяться только вместе с их про- из носителя с голограммой, сертифи- ков.
дукцией. Иными словами, OEM-вер- ката подлинности COA, Лицензионно-
сии продуктов не предназначены го соглашения конечного пользовате- Кроме компакт-диска, поставщики
для распространения конечным поль- ля (в электронном виде), печатного ру- вычислительной техники могут также
зователям отдельно от компьютер- ководства пользователя (редко). Под- размещать на жестком диске допол-
ной техники. Срок действия лицензии тверждение лицензионности продукта нительную копию Windows, сконфигу-
в OEM-поставке равен сроку исполь- состоит из всего комплекта плюс до- рированную по требованиям конкрет-
зования компьютера. Обратите вни- кументов на покупку. ного заказчика.

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

Если сертификат подлинности от-


сутствует, то вы не имеете законной
лицензии на использование програм-
много обеспечения Microsoft. Серти-
фикат подлинности не является ли-
цензией на программное обеспече-
ние – это наглядное средство, помо-
гающее установить подлинность ис-
пользуемого программного обеспече-
ния Microsoft. Так выглядит коробка с OEM-версией
Существуют сертификаты подлин-
ности для прикладных программ (на- версии не предназначены для конеч- можете совершенно спокойно при-
пример, Microsoft Office). Они прикреп- ных потребителей. Но в условиях рас- обрести ОЕМ-версию продукта от-
лены к документации конечного поль- пространения OEM есть одна замеча- дельно от компьютера (он у вас уже
зователя и не являются наклейками. тельная фраза: «за исключением тех есть), и выполнить установку. Одно
Они должны передаваться вам вмес- случаев, когда конечный потребитель важное замечание: в этом случае вы
те с документацией. Прикреплять та- сам выступает в роли сборщика сис- будете считаться не конечным поль-
кой сертификат к компьютеру не тре- тем». Тут же я скажу о том, что само зователем, а сборщиком систем. Со-
буется. понятие «Сборщик систем» у Microsoft ответственно, вы попадаете под тре-
очень растяжимое – под него попада- бования Лицензионного соглашения
А можно и так! ют не только те, кто занимается не- сборщика систем, которое наклее-
Теперь о втором варианте приобрете- посредственно сборкой компьютер- но на коробке. Это соглашение всту-
ния OEM-версий, а именно, о их по- ной техники, но и лица (юридичес- пает в силу в момент вскрытия ко-
купке отдельно от компьютеров. На- кие или физические), занимающи- робки. Лицензия Microsoft для сбор-
верняка вы, если внимательно чита- еся установкой программного обес- щика систем (OEM System Builder
ете эту статью, удивитесь. Действи- печения на уже приобретенные ра- License) относится к типу «Break-the-
тельно, я уже писал о том, что эти нее компьютеры. Таким образом, вы seal agreement», которые вступают

№12, декабрь 2006 13


администрирование
При этом число установок и активаций
Как не стать пиратом, сена на новый или другой ПК. Весь ком- на одном и том же персональном ком-
используя OEM-версии пьютер, однако, может быть передан но- пьютере не ограничивается.
продуктов? вому пользователю вместе с лицензион- Процесс активации начинается
Или, другими словами, какими обязан- ными правами на установленное на нем после того как программный продукт
ностями и правами вы обладаете? На- программное обеспечение, т.е. при усло- установлен на компьютер пользова-
иболее частым нарушением использо- вии, что новому пользователю будут пе- теля. Для того чтобы установить и за-
вания OEM-версии является превыше- реданы все составляющие OEM-лицен- тем активизировать программный про-
ние допустимого числа установок. За- зии: носитель с голограммой, сертификат дукт на конкретном ПК, пользователь
помните – одну OEM-версию можно уста- подлинности, документация. Рекоменду- должен иметь:
новить только на один компьютер. После ется также передать оригиналы платеж-  диск с дистрибутивом программно-
установки она становится неотделимой ных документов – счета или квитанции, го продукта;
частью самого компьютера. Срок жизни подтверждающие покупку OEM первона-  ключ продукта.
OEM-версии равен сроку жизни самого чальным пользователем. При этом пер-
компьютера. Переносить эту ОЕМ-вер- воначальный пользователь не должен ос- Ключ продукта представляет со-
сию на другой компьютер нельзя. Опера- тавлять у себя каких-либо копий програм- бой 25-символьный номер, разбитый
ционная система не может быть перене- много продукта. на группы по 5 символов и имеющий
следующий формат: ХХХХХ-ХХХХХ-
в действие при вскрытии упаковки – им убедиться в том, что они получи- ХХХХХ-ХХХХХ-ХХХХХ, где Х – одна
вы вскрываете упаковку и тем са- ли именно то, за что заплатили: под- из цифр от 0 до 9 или одна из букв ла-
мым принимаете на себя условия ли- линный и лицензированный програм- тинского алфавита от A до Z.
цензионного соглашения. Это про- мный продукт высокого качества. Тех- Ключ продукта необходим для вы-
стая процедура, лишенная бюрокра- нология активации продуктов предна- полнения установки программного
тизации. Вам не требуется подписы- значена прежде всего для того, чтобы продукта на компьютер пользователя;
вать каких-либо дополнительных до- противодействовать такому виду на- выполнения активации установленно-
кументов, чтобы иметь право на рас- рушений, как копирование ПО конеч- го программного продукта на конкрет-
пространение OEM-версий в качес- ными пользователями – когда с одно- ном ПК. Без введения ключа установка
тве сборщика систем (такой способ го подлинного информационного но- продукта на компьютер невозможна.
принятия соглашения призван обес- сителя пользователи устанавливают Существуют следующие два типа
печить максимально широкий канал программный продукт на большее ко- ключей: ключ для однократной уста-
продаж, т.к. заменяет собой подпи- личество компьютеров, чем это разре- новки и активации (тип А) – использу-
сание документов). И отсюда следу- шают условия лицензионного соглаше- ется для установки коробочного про-
ет два важных замечания – вы долж- ния. По оценкам экспертов, около по- дукта на один ПК (если в лицензион-
ны купить невскрытую коробку; кроме ловины ущерба, наносимого компью- ном соглашении для конкретного про-
того, вскрытую коробку вы уже не смо- терным пиратством экономике раз- дукта и вида поставки не оговорено
жете вернуть. Кроме того, програм- личных стран мира, приходится имен- иное). Ключи этого типа предназна-
мные продукты, которые вы доста- но на этот вид нарушений. чены для установки и активации про-
нете из открытой OEM-упаковки, вы Тех н ол о г и я M i c ro s of t Pro d u c t дукта, лицензия на который допуска-
обязаны будете установить на ком- Activation призвана исключить возмож- ет его использование только одним
пьютеры конечных пользователей – ность использования копий продуктов пользователем (коробочный продукт
дальнейшее распространение соф- в случае отсутствия у пользователя ли- или OEM-версия продукта).
та из этой коробки какими-то други- цензионного соглашения с правообла- Ключ для многократной установ-
ми способами, кроме как в предуста- дателем на право использования дан- ки и активации (тип B) используется
новленном виде, запрещено (исклю- ного программного продукта. для установки продукта, приобретен-
чение: серверное программное обес- В случае если лицензионное со- ного в рамках программы корпора-
печение). глашение разрешает установить и ис- тивного лицензирования. Ключи это-
пользовать программный продукт го типа предназначены для покупате-
Выполняем процедуру только на одном персональном ком- лей лицензий по различным програм-
активации пьютере, установка этого же продукта мам корпоративного лицензирования
Все OEM-версии продукта требуют вы- на другие персональные компьютеры и могут быть использованы для много-
полнения процедуры активации. На- приводит к нарушению условий лицен- кратной установки продукта (в зависи-
чиная с Microsoft Office XP и Microsoft зионного соглашения, а также к нару- мости от емкости ключа).
Windows XP в состав ряда програм- шению законодательства РФ о защите При использовании этих ключей
мных продуктов Microsoft включает- авторских прав. Технология активации не нужно выполнять процедуру акти-
ся специальная технология – Microsoft позволяет технически ограничить чис- вации с каждого компьютера. Ключ
Product Activation. Эта технология пред- ло используемых рабочих копий про- продукта, который необходим для ус-
назначена для защиты от компью- дукта и исключить установку одной тановки ОЕМ-версии продукта, указы-
терного пиратства – как корпорации лицензионной копии на неограничен- вается на наклейке Сертификата под-
Microsoft, так и ее клиентов, помогая ное число персональных компьютеров. линности.

14
администрирование
Сам процесс активации предель-
но прост. При запуске неактивирован- Сохранится ли лицензия вы обновляете или заменяете материнскую
ного продукта на экране появляется на OEM-версию, если необходимо плату и при этом замена не связана с уст-
окно мастера активации. Сама акти- провести апгрейд или ремонт ранением обнаруженного дефекта, то та-
вация может быть выполнена или че- существующих компьютеров? кой компьютер требует новой лицензии
рез Интернет, или по телефону. Если Лицензия привязывается к компьютеру, на операционную систему, поскольку, за-
вы в мастере выбираете активацию а мы его апгрейдить начинаем, т.е. меня- менив материнскую плату, вы фактически
через Интернет, то после ввода клю- ем исходные железки! В Microsoft посту- создали «новый» компьютер. Если вы за-
ча всё проходит автоматически. Если пили просто: выделен один компонент, ко- меняете дефектную материнскую плату,
вы выбираете активацию по телефо- торый однозначно определяет тот самый то новая лицензия на операционную сис-
ну, то вам необходимо будет выбрать исходный компьютер. Думаю, что вы уже тему не требуется. Если вы передаете мо-
страну, после чего вы увидите номер догадались, какой. Правильно – материн- дернизированный компьютер новому поль-
телефона. Звоните по этому номеру, ская плата. Общее правило таково, что вы зователю – лицензия на ПО, носитель, сер-
вам отвечает робот. Переводите теле- можете обновлять и заменять практически тификат подлинности COA и руководства
фон в тоновый режим, далее следуе- все, кроме материнской платы, при этом со- пользователя должны быть переданы все
те указаниям робота. Довольно быс- храняя исходную лицензию Windows. Если вместе новому пользователю.
тро. Если вам надо выполнить боль-
шое количество установок OEM-вер- жете купить такую замечательную перечислять их в рамках этой статьи
сий, то вы можете провести процеду- вещь, как Software Assurance. Купить очень даже сложно. Отправлю-ка я
ру автоматической активации. можно сроком на два или три года, вас на сайт http://www.microsoft.com/
Указания по этой процедуре можно с возможностью дальнейшего про- rus/licensing/volume/softwareassurance/
найти здесь: http://www.microsoft.com/ дления хоть до бесконечности. В те- advantagesoverview.mspx, а если инте-
technet/prodtechnol/winxppro/deploy/ чение этого срока вы будете бесплат- ресно будет, то напишу про Software
wpadepl.mspx. но получать все новые версии того Assurance отдельно в следующей
При проведении апгрейда систе- OEM-продукта, к которому вы офор- статье.
ма может попросить вас заново ее мили Software Assurance. Последний абзац – и ни слова о це-
активировать, это бывает тогда, ког- Если вы сейчас купите 2003-вер- не! Вы абсолютно правы, никакой ин-
да компьютер подвергается обновле- сии серверов, офисов и т. п., и купи- формации о ценах в этой статье не бу-
нию, при котором меняется большое те к ним Software Assurance, то вы уже дет. Немного терпения – в следующий
количество аппаратных компонентов очень скоро, зимой, получите Vista, раз я проведу сравнительный анализ
(как правило, более трех). Но посколь- Office 2007 … так сказать, несколько стоимости легального программно-
ку при этом замена материнской платы дешевле, чем они стоят. Стоимость го обеспечения для организации ма-
не производилась, продукт позволит Software Assurance составляет от 25% лого и среднего размера. Сколько бу-
себя активировать. Другое дело, если до 29% от стоимости лицензии про- дет стоить приобретение лицензионно-
была заменена материнская плата. дукта в год – сами можете подсчитать го программного обеспечения в виде
Напомню, что согласно Условиям экономию. OEM, а также по различным програм-
использования, сохранение лицен- Помимо прямой прибыли эта про- мам корпоративного лицензирования.
зии возможно только в том случае, грамма даст вам вагон бонусов, что Так что не прощаюсь!
если эта замена была связана с уст-
ранением дефекта самой материнс-
кой платы.
Через Интернет активировать про-
дукт не удастся, придется звонить
и объяснять оператору ситуацию. Да-
лее – как получится: или сразу сбро-
сят счетчик активаций, или (что чаще)
могут попросить вас выслать по поч-
те или факсу документ, подтверждаю-
щий факт ремонта.

Software Assurance поможет


сэкономить
И еще одна вещь, о которой важ-
но знать. После покупки OEM-вер-
сий серверных продуктов и Windows
Professional, а также OEM-версий
Office Small Business 2003 или Office
Professional 2003, в течение 90 дней
после приобретения продукта вы мо- Хранить вечно!

№12, декабрь 2006 15


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

Подробное руководство по настройке


тонких клиентов
На основе дистрибутива Thinstation и протокола NX

Евгений Бушков
Технология NX, разработанная фирмой Nomachine, дает новые возможности для связи
и способна оживить старые компьютеры в роли тонких клиентов.

П
режде чем перейти непосредс- 4. Не секрет, что во многих организа- средств нет или нет возможности спи-
твенно к описанию NX, перечис- циях нашей страны с давних вре- сать такую технику, да и просто выки-
лю некоторые тенденции, ко- мен незаконно используются мно- дывать жалко? И как решать не менее
торые сегодня становятся очевидны- гие программы и ОС, которые со- острую проблему «лицензионной чис-
ми для многих крупных компаний на- трудники устанавливали по своей тоты» используемых программ, о кото-
шей страны: инициативе. Вначале это рассмат- рой говорится в четвертом пункте?
1. Компьютерная техника дешеве- ривалось как само собой разуме- На помощь приходят терминаль-
ет и становится более доступной, ющееся обстоятельство, потом оп- ные технологии, которые позволяют за-
чем раньше. При этом её произво- равдывалось финансовым поло- действовать старые компьютеры, а так-
дительность удваивается каждые жением. Сейчас, когда наша стра- же частично снять вопросы «лицензи-
1,5-2 года согласно закону Мура. на вступает в ВТО, правительство онной чистоты», если применять реше-
Это приводит к накоплению техни- вынуждено такую ситуацию спеш- ния на базе продуктов Open Source.
ки, не выработавшей свой ресурс, но исправлять, в связи с этим уси- В журнале уже публиковалось не-
но уже устаревшей. лилось давление на предприятия сколько статей по работе с дистрибу-
2. Разработанные на предприятиях со стороны внутренних органов тивом Thinstation [1, 2]. В этой статье
силами программистов отделов с требованием отказаться от неза- я расскажу об особенностях настройки
АСУ в перестроечные годы клиент- конно используемых ПО и ОС. и опыте эксплуатации на своем пред-
серверные приложения еще ра- приятии тонких клиентов на базе дис-
ботают на старой технике, но уже Очевидно противоречие между трибутива Thinstation и технологии NX,
не соответствуют требованиям вторым и третьим пунктами: необхо- разработанной фирмой Nomachine.
времени. димо или найти способ, позволяющий До недавнего времени в мире тер-
3. Современные программное обес- эффективно задействовать старую минальной связи было мало известно
печение и операционные системы технику для выполнения современных удачных сетевых протоколов высокого
не заставить работать на компью- задач, или отказаться от этой техни- уровня, способных эффективно сжи-
терах с процессорами прежних по- ки. Если имеется достаточно средств, мать и шифровать трафик между тон-
колений (i386, i486 и т. д.). то выбор понятен. Но что делать, если ким клиентом и сервером. Наиболее из-

16
администрирование
вестные и популярные из них – это RDP статьях. Коротко перечислю действия cp -f ru.xkm ~/thinstation ↵
/packages/keymaps-ru ↵
от Microsoft и ICA от Citrix. Оба прото- по настройке клиента: редактируем /x-common/lib/kmaps/xkb
кола используются серверами на ба- ~/thinstation/build.conf и создаем образ,
зе ОС MS Windows. Меня же интересо- запустив скрипт ~/thinstation/build. Го- После сборки образа получаем
вала возможность использовать тон- товый файл образа ~/thinstation/boot- нормальное переключение раскладок
кие клиенты с серверами на базе Linux. images/etherboot/thinstation.nbi копируем по <CTRL+SHIFT>. Вот только работа-
В качестве основы для тонкого клиен- на TFTFP-сервер. Добавляем в файл на- ет VNC-клиент недопустимо медленно.
та почти сразу был выбран небольшой стройки dhcp.conf DHCP-сервера запись На компьютерах с процессором ниже
дистрибутив, этакий Linux-конструк- о MAC-адресе сетевой платы тонкого P-200 начинается этакое «слайд-шоу»,
тор, Thinstation – как наиболее стабиль- клиента. В каталоге TFTP-сервера со- когда любое действие на удаленном
но развивающийся и популярный в на- здаем файл с настройками для данного рабочем столе сопровождается нето-
шей стране и за рубежом. А вот с вы- MAC-адреса и(или) редактируем файл ропливой прорисовкой этих изменений
бором протокола, который бы отвечал thinstation.conf.network. Настройки мо- на экране монитора тонкого клиента.
за общение с сервером, пришлось по- ей рабочей системы можно посмотреть Существует множество VNC-решений,
возиться и поэкспериментировать. Пе- в листинге раздела «Настройка и созда- использующих схожие методы кодиро-
речислю основные критерии, по кото- ние образа Thinstation» и на рис. 1. вания данных при передаче, все исполь-
рым выбирался протокол. Во-первых, Для того чтобы добавить в образ зуют протокол Remote FrameBuffer (RFB).
нам хотелось использовать как можно пакет VNC-клиента, раскомментиру- Различаются они количеством функций,
более широкий диапазон старых ком- ем строчку «#package vncviewer» в кон- параметрами кодирования данных,
пьютеров, имеющих процессоры начи- фигурационном файле ~/thinstation/ а также числом поддерживаемых плат-
ная с i486, с минимальным объемом па- build.conf. Если каталог tftp-серве- форм. Например, RealVNC [4] подде-
мяти, такой техники у нас предостаточ- ра находится в /tftpboot (как это у ме- рживает сервер и клиент для Windows,
но. Во-вторых, отметались коммерчес- ня), то отредактируйте файл /tftpboot/ UNIX, Microsoft PocketPC и Mac OS X,
кие продукты: мы не хотели нести до- thinstation.conf.network таким образом, TightVNC [5] включает сервер и клиент
полнительные расходы. В-третьих, не- чтобы в нем появились строчки: для Windows и UNIX, VNC for DOS [6] –
обходимы хорошая поддержка русско- клиент для DOS, UltraVNC [7] – сервер
го языка и кириллицы, а также наличие SESSION_0_TYPE=vncviewer и клиент для Windows, OSXvnc [8] – сер-
SESSION_0_TITLE="VNC"
привычного для пользователей спосо- SESSION_0_VNCVIEWER_SERVER= ↵ вер и клиент для Mac OS X. Я протести-
ба переключения между раскладками – 10.10.10.10:5901 ровал RealVNC и TightVNC: второй про-
комбинации клавиш <CTRL+SHIFT>. дукт (и сервер, и клиент) субъективно
В-четвертых, в рамках локальной сети IP-адрес 10.10.10.10 замените на адрес немного быстрее, но оба создают эф-
нам необязательна поддержка шифра- вашего VNC-сервера. фект «слайд-шоу» на слабых компью-
ции, но важны сжатие и минимизация Теперь проверим собранный с но- терах. Придется попробовать что-ни-
сетевого трафика. вым параметром образ в работе: вклю- будь другое в качестве протокола свя-
чаем тонкого клиента, дожидаемся за- зи между клиентом и сервером. VNC
Поиск решения грузки и запуска образа Thinstation, пока оставим в покое, позже придется
В первую очередь я обратил внимание подключаемся к VNC-серверу. Обра- к нему еще вернуться. Вот здесь я об-
на VNC как наиболее распространен- тите внимание на то, что переключе- ратился к NX.
ный и имеющийся в любом дистрибу- ние раскладок происходит с помощью Поддержка Nomachine NX-клиента
тиве Linux, а также являющийся лег- клавиши «правый Alt». Собственно, ви- впервые появилась в Thinstation вер-
ким в настройке продуктом. Когда не- новат здесь не VNC-клиент, а файл сии 2.1 в 2005 году, а последней на те-
обходимо подключиться к удаленно- Thinstation из пакета поддержки кирил- кущий момент является 2.2, она и бу-
му рабочему столу Linux-сервера с ра- лицы keymaps-ru. Чтобы долго не во- дет подразумеваться далее. Для сбор-
бочей станции Windows или того же зиться с поисками решения пробле- ки образа с пакетом NX раньше был
Linux, то первое, что приходит в голо- мы, я сгенерировал xkb-файл в на- необходим прямой доступ в Интернет,
ву, это VNC. Скачайте последнюю вер- строенной системе SUSE-10.0 следу- в последних версиях Thinstation поя-
сию дистрибутива Thinstation [3], за- ющим образом: вилась возможность указывать путь
тем распакуйте полученный архивный к файлу префиксом «file://». Исполь-
файл в домашнем каталоге. Будем счи- xkbcomp :0 ru.xkb зуемый и поддерживаемый дистрибу-
xkbcomp -xkm ru.xkb ru.xkm
тать, что путь к дистрибутиву выгля- тивом Nomachine NX клиент до сих пор
дит так: ~/thinstation. Файл, отвечаю- Утилита xkbcomp конвертирует опи- имеет версию 1.5.x, хотя уже прошло
щий за параметры сборки, находится сание XKB-раскладки в один из фор- достаточно времени с момента появ-
здесь: ~/thinstation/build.conf. Он име- матов. В первой команде генерируется ления новой версии NX 2.0. В файле
ет подробные комментарии. О его на- дамп текущей раскладки из источника, конфигурации build.conf раскомменти-
стройке, а также о том, как заставить в качестве которого выступает X-дисп- руем строку «package nx», также в кон-
образ Thinstation загружаться при по- лей «:0». Вторая команда компилирует це файла найдем строку «param nxurl»:
мощи сетевой карты с бутовой микро- полученный файл в понятный для сис- укажем путь к заранее скачанному
схемой, я подробно рассказывать не бу- темы двоичный вид. Заменяем исход- файлу, либо оставим как есть(нужен
ду, об этом уже писалось в указанных ный файл своим: доступ в Интернет). Полученный сге-

№12, декабрь 2006 17


администрирование
ОС), и X-приложения взаимодейству-
ют с ней, используя X-протокол, поэто-
му ОС не имеет специального уровня,
отвечающего за трансляцию обновле-
ний экрана в сетевой протокол.
Основными недостатками сетей
с X-терминалами являются избыточ-
ность и задержки в передаче графи-
ческих данных X-протокола. Со време-
ни появления X-Window рабочий стол
пользователя оброс всевозможными
графическими элементами и эффек-
тами, которые увеличили требования
к сетям передачи данных.
На рис. 1 под цифрой 1 показа-
на традиционная работа по протоколу
X: сжатия нет, требования к пропуск-
ной способности и задержкам сети
критичны. Напомню, что в идеологии
X-Window X-сервер работает на тер-
Рисунок 1. Взаимосвязь компонентов NX
минале, а на терминальном серве-
нерированный образ копируем в ка- шел. Теперь пришло время познако- ре – X-клиент, который шлет запросы
талог tftp-сервера, туда же копируем миться с технологией NX поближе. X-серверу терминала [9].
файл thinstation.conf.sample из корня В простейшем случае можно запус-
дистрибутива, переименовываем его Обзор и краткое описание кать приложения с графическим выво-
в thinstation.conf.network и правим: ищем Nomachine NX дом с помощью параметра -X коман-
на предмет #SESSION_0_TYPE=NX Архитектура NX – это набор Open ды ssh, например, «ssh -X me@server
и редактируем строчки, относящие- Source-технологий и коммерческих firefox». Можно добавить параметр -С
ся к этой сессии (здесь с номером 0), средств, призванных обеспечить лег- для компрессии(используется библи-
внося нужные параметры. кость и распределенность сетевых вы- отека ZLIB). Также можно оптимизиро-
Включаем тонкого клиента и за- числений. Он состоит из серверного вать скорость взаимодействия узлов,
гружаем созданным образом, прове- ПО, позволяющего любому UNIX-ком- увеличивая пропускную способность
ряем быстродействие. Прогресс нали- пьютеру стать терминальным серве- сети. Но существует предел, выше ко-
цо: «слайд-шоу» прекращается на ПК ром, и клиентов для широкого набо- торого увеличение пропускной способ-
с процессором P-100, P-120 и выше. ра платформ и ОС. Nomachine выбра- ности перестанет влиять на скорость
Это не то, чего бы нам хотелось полу- ла в качестве основы для архитектуры этого взаимодействия. Причиной то-
чить в результате, так что ПК с процес- NX известную и широко используемую му – интенсивный обмен запросами/от-
сорами i486 задействовать здесь не систему X-Window, на которой основа- ветами современных X-приложений.
удастся. Такие ПК мы назвали «супер- ны GUI Linux и других ОС UNIX. NX использует три основных мето-
тонкими» клиентами и определили их Большинство имеющихся сетевых да ускорения работы приложений: сжа-
для работы с ДОС-программами, ис- решений не было разработано в ка- тие, кэширование и подавление избы-
пользуя связку FreeDOS и sshdos со честве основного средства для досту- точного трафика X-протокола.
стороны клиента и Dosemu со сторо- па пользователей к рабочему столу. Та-  В основе идеи разностной комп-
ны Linux-сервера. В этой статье я о них кие протоколы как RDP и VNC являют- рессии лежит проект Differential X
рассказывать не буду. Тем не менее это ся много более простыми, чем X (и по- Protocol Compressor (DXPC) [10], со-
хороший результат, посмотрим на тре- этому хорошо подходящими для тонких зданный в 1995 году, там уже упоми-
бования к железу со стороны разработ- клиентов), но их простота не компенси- наются термины клиентского и сер-
чиков Thinstation и NX-клиента: первые рует недостатка эффективности и фун- верного прокси. Nomachine под-
рекомендуют i486-процессор и 16 Мб кциональности. Например, эти протоко- хватила идею и разработала свой
памяти, вторые – процессор с часто- лы используют для прорисовки удален- собственный продукт. Заявляет-
той от 400 Мгц и памятью 128 Мб. Ми- ного экрана передачу больших объемов ся о 10-кратном превосходстве NX
нимально необходимой конфигураци- данных изображений. Хотя RDP и яв- над стандартной библиотекой ZLIB.
ей для работы тонкого клиента с паке- ляется более эффективным протоко-  Nomachine также разработала ум-
том NX эмпирически определим про- лом, чем RFB (протокол, используемый ный механизм кэширования X-тра-
цессор P-120 и объем оперативной па- VNC), он был изначально разработан не фика, который использует знако-
мяти 32 Мб. Я протестировал и некото- для ежедневного использования уст- мый по прокси-серверам термин
рые другие клиенты, в частности, XRDP, ройствами сети, а лишь в качестве рас- «попаданий в кэш». Этот механизм
VNC for DOS, но по той или иной причи- ширения для ОС. X-Window – это графи- сокращает сетевой трафик при пе-
не реальной альтернативы NX я не на- ческая подсистема (а не расширение редаче одних и тех же блоков дан-

18
администрирование
ных, а при изменении этих блоков
данных потока вычисляет и пере-
дает только их разницу.
 До NX не было надежного спосо-
ба подавления избыточного тра-
фика X-протокола на дальних ли-
ниях связи. NX может это делать,
транслируя X-трафик на удален-
ном конце(от приложения к nxagent)
в трафик протокола NX.

Все три метода совокупно позволя-


ют достичь 70-кратного улучшения ра-
боты с удаленным X GUI при исполь-
зовании наибольшего уровня сжатия
на линиях связи с низкой пропускной
способностью и большой задержкой
(в настройках клиента NX «modem» со-
ответствует максимальному сжатию,
а «lan» – отсутствию сжатия). На рис. 1
под цифрой 2 показана взаимосвязь
Рисунок 2. NX-сессия KDE в режиме рабочего стола из Windows XP
компонентов NX: на модулях NX Proxy
осуществляется компрессия/деком-  NX Desktop – RDP-клиент, который читься и работать удаленно на своем
прессия и кэширование, между ними транслирует RDP-трафик в NX-про- Linux-сервере.
проходит трафик по NX-протоколу, тре- токол.
бования к качеству линий связи мини- Сборка и запуск NX
мальны, заявляется о возможности ра- Nomachine открыла исходные ко- В свою очередь, на основе открытых
боты вплоть до скорости 9600 бит/сек. ды большинства своих наработок исходников сообщество разработало
Подобно трансляции X-трафика и библиотек, их можно скачать всем версию серверной части NX под на-
посредством nxagent, имеется другой желающим с [11]. Сборки от самой званием FreeNX, а также KNX – клиент
агент (“nxviewer”), который трансли- Nomachine для всех клиентов доступ- для соединения с сервером из под X.
рует RFB/VNC-трафик в протокол NX. ны бесплатно, также есть различные FreeNX – это набор shell-скриптов, ко-
Это улучшает эффективность соеди- варианты сборок NX-серверов, пос- торые вместе с открытыми библио-
нений до 10 раз по сравнению с рабо- тавляемые за определенную плату: теками от NX формируют серверную
той обычного vncviewer, связывающе- годовая подписка на NX Enterprise часть (backend).
го локальный X-дисплей с удаленным Server с неограниченным количест- Вначале работы с NX в качестве
сервером VNC. В этом мы убедимся. вом пользователей и числом процес- сервера мною использовался ПК с ОС
На рис. 1 под цифрой 3 показа- соров 1-2 стоит 1494$, наиболее пол- SUSE 10.0. В составе дистрибутива уже
на возможность одновременной ра- ное решение с балансировкой нагруз- шла сборка FreeNX, но, во-первых, она
боты разных агентов NX, RDP, VNC. ки и управлением узлов на базе NX имела более чем годовую давность,
При этом NX-агенты эффективно Advanced Server обойдется в 3494$. а, во-вторых, столкнувшись с первыми
транслируют чужеродные протоколы Кроме того, имеется вариант NX Free трудностями при работе, я решил, что
в свой собственный и далее переда- Edition, который можно скачать бес- пора собрать серверную часть из ис-
ют трафик через NX Proxy. платно, но имеет ограничение на ко- ходников самому. Рассказывать бу-
 NX Proxy – этот компонент как раз личество одновременных соедине- ду о сборке из исходников версии 1.5
и отвечает за компрессию/деком- ний и пользователей, равное двум, так как наиболее проверенной временем,
прессию: в клиентском режиме что если есть желание администриро- а потом уточню, какие имеются особен-
кодирует запросы от X-клиентов вать Linux-сервер из дома с помощью ности для сборки версии 2.0(2.1).
и декодирует ответы от X-сервера, обычного аналогового модема, то луч- В настоящий момент на сайте
в серверном – наоборот. ше, безопаснее и проще этого реше- Nomachine выложены исходники вер-
 NX Agent – термин «агент» исполь- ния не найти. Отмечу также наличие сии NX 2.0, эта версия является реко-
зуется для описания компонента, клиентских версий NX Client Desktop мендуемой фирмой, а на исходники
которому передается сформиро- Edition для PlayStation 2 (при исполь- версии 1.5 там же имеется специаль-
ванное изображение перед пере- зовании Linux Kit), а также NX Client ная ссылка. Качаем последние версии
дачей в сеть через прокси. Embedded Edition для Sharp Zaurus следующих тарболов со странички [11]:
 NX Viewer – модифицированный 5xxx и HP/Compaq iPAQ. Их можно так- nx-X11, nxagent, nxcomp, nxcompext,
Nomachine обычный VNC-клиент, же скачать бесплатно [12]. Так что, ес- nxdesktop (если нужна поддержка RDP),
транслирующий VNC/RFB-трафик ли вы в командировке, а с собой толь- nxproxy, nxscripts, nxviewer (если нужна
в NX-протокол. ко КПК, ничего не мешает подклю- поддержка VNC). nx-X11 – это версия

№12, декабрь 2006 19


администрирование
4.3 Xfree86, которая имеет модифицированные Nomachine pushd nxdesktop
make install
X-библиотеки. Часть исходников будет распаковываться пря- mv /srv/NX/bin/nxdesktop /srv/NX/lib
мо в дерево nx-X11, поэтому развернем его в первую оче- ln -snf nxagent /srv/NX/bin/nxdesktop
chmod 755 /srv/NX/bin/nxdesktop
редь, очередность распаковки остальных тарболов неважна, rm -rf /srv/NX/usr
главное, чтобы они все распаковывались в одном катало- popd
# Установка скриптов
ге. Туда же качаем и распаковываем скрипты FreeNX с ад- cp -r nxscripts /srv/NX/share/doc
реса [13]. Еще понадобятся два патча, качаем их отсюда # установка FreeNX
mkdir -p /srv/NX/etc
[14, 15]. Каталог нашей сборки примет следующий вид: mkdir -p /srv/NX/var
 freenx-0.4.4  nxproxy mkdir -p /srv/NX/var/db
mkdir -p /srv/NX/home
 nx-X11  nxscripts mkdir -p /srv/NX/home/nx
 nxcomp  nxviewer pushd freenx-0.4.4
# Накладываем патч freenx, в основном здесь правятся пути
 nxcompext  freenx-lfs_hint.diff # на соответствие /srv/NX
 nxdesktop  NX-lfs_hint.diff patch -p0 < ../freenx-lfs_hint.diff
cp -a nxnode /srv/NX/bin
cp -a nxserver /srv/NX/bin
Для сборки понадобятся следующие пакеты (их мож- cp -a nxsetup /srv/NX/bin
cp -a nxkeygen /srv/NX/bin
но установить из вашего дистрибутива Linux): libjpeg-devel, cp -a nxnode-login /srv/NX/bin
libpng-devel, openssl-devel, netcat, expect. Описание сборки cp -a nxloadconfig /srv/NX/bin
cp -a nxclient /srv/NX/bin
можно найти также здесь [16]. cp -a nxprint /srv/NX/bin
install -m 755 node.conf.sample /srv/NX/etc
# Накладываем NX patch popd
patch -p0 < NX-lfs_hint.diff # Добавляем пользователя и группу nx
# Собираем X – самая длительная часть, может занять groupadd -g 77 nx
# до часа времени useradd -c 'FreeNX user' -d /srv/NX/home/nx -g nx -s /bin/
pushd nx-X11 bash -u 77 nx
make World chown -R root.root /srv/NX
popd chown -R nx.nx /srv/NX/home/nx
# nxproxy # Далее важный момент, прежде чем запускать, ознакомьтесь
pushd nxproxy # с параметрами запуска команды: /srv/NX/bin/nxsetup –help.
./configure --prefix=/srv/NX # Если хотите использовать аутентификацию пользователей
make # с помощью ключей, уберите параметр –setup-nomachine-key.
popd # Для работы с тонкими клиентами можно ничего не менять
# Сборка RFB-агента /srv/NX/bin/nxsetup --install --uid 77 --gid 77 ↵
pushd nxviewer --setup-nomachine-key
xmkmf -a # Проверяем, работает ли сервер NX:
cp -a /usr/X11R6/lib/libXp.so* ../nx-X11/exports/lib/ /srv/NX/bin/nxserver --status
make 2> /dev/null # Должен быть примерно такой ответ:
popd
# Сборка RDP-агента NX> 100 NXSERVER - Version 1.4.0-44 OS (GPL)
pushd nxdesktop NX> 110 NX Server is running
./configure --prefix=/srv/NX --sharedir=/srv/NX/share NX> 999 Bye
make
popd # Устанавливаем конфигурационный файл freenx:
# Вся серверная часть будет находиться в каталоге /srv/NX, mv /srv/NX/etc/node.conf.sample /srv/NX/etc/node.conf
# создаем некоторые из подкаталогов
mkdir -p /srv/NX/bin
mkdir -p /srv/NX/lib В конфигурационном файле находим следующую строч-
mkdir -p /srv/NX/man/man1 ку и раскомментируем ее:
mkdir -p /srv/NX/share/doc
# Инсталлируем собранные библиотеки и агенты
cp -a nx-X11/lib/X11/libX11.so.* ↵ ENABLE_1_5_0_BACKEND="1"
nx-X11/lib/Xext/libXext.so.* ↵
nx-X11/lib/Xrender/libXrender.so.* /srv/NX/lib
install -m 755 nx-X11/programs/Xserver/nxagent /srv/NX/lib Там же можно на первое время включить возможность
# Создаем скрипт nxagent, который будет управлять
# всеми программами ведения лога:
cat > nxagent << "EOF"
#!/bin/sh NX_LOG_LEVEL=6
NXCOMMAND=$(basename $0)

export LD_LIBRARY_PATH=/srv/NX/lib:$LD_LIBRARY_PATH Теперь можно установить клиент Nomachine NX на любой


exec /srv/NX/lib/$NXCOMMAND ${1+"$@"} компьютер Linux (можно использовать и KNX) или Windows
EOF
# И устанавливаем его: и проверить работу NX-сервера. C сервером можно рабо-
install -m 755 nxagent /srv/NX/bin тать как в режиме приложений, так и в режиме удаленно-
# Устанавливаем библиотеки сжатия и прокси
cp -a nxcomp/libXcomp.so.* /srv/NX/lib го рабочего стола.
cp -a nxcompext/libXcompext.so.* /srv/NX/lib
install -m 755 nxproxy/nxproxy /srv/NX/lib
ln -snf nxagent /srv/NX/bin/nxproxy Настройка и создание
# Установка RFB-агента образа Thinstation
pushd nxviewer
make install DESTDIR=/srv/NX От серверной части NX теперь перейдем к созданию об-
mv /srv/NX/usr/X11R6/bin/nxviewer /srv/NX/lib раза Thinstation. Сам дистрибутив можно скачать здесь [3].
ln -snf nxagent /srv/NX/bin/nxviewer
chmod 755 /srv/NX/bin/nxviewer При сборке образа будем стараться максимально умень-
mv /srv/NX/usr/X11R6/bin/nxpasswd /srv/NX/bin шить количество модулей и пакетов, все лишнее выкидыва-
popd
# Установка RDP-агента ем. Поскольку у многих компьютеров, выбранных в качест-

20
администрирование
ве тонких клиентов, железо и перифе-
рия будут отличаться, то отдельные па-
кеты хотелось бы вынести за рамки об-
щего для всех образа. Такая возмож-
ность у Thinstation есть: pkg означает
собрать как отдельный подгружаемый
пакет с расширением pkg, package оз-
начает включение в общий образ. Па-
кеты lprng, sshd, samba-server и другие
однозначно собираем как подгружае-
мые. Можно все пакеты с X-драйвера-
ми видеокарт указать как pkg, но тогда
при сборке образа появятся несколько
дополнительных пакетов, которые надо
будет подгружать всем, и в результате
общий размер подгружаемых данных
будет больше. Поступим проще: один
из видеодрайверов, наиболее часто ис-
пользуемый, а именно S3, укажем как
package, остальные – pkg. Модули то-
Рисунок 3. Файлы настроек тонких клиентов Thinstation
же можно выносить за пределы ядра,
но пока эта возможность работала некорректно, к тому же Добавление локальной фильтрации избавило меня
места в составе ядра они занимают совсем немного. Ниже от проблемы «лесенки» при печати. Кроме того, я создал
представлен мой файл конфигурации build.conf: следующий скрипт для проверки работы печати ~/thinstation/
packages/base/bin/my:
module serial
module intel-agp #!/bin/sh
module via-agp echo PRINTER TEST to /dev/printers/0 1>&2
module 8139too for i in 1 2 3 4 5 6 7 8 9;
module floppy do
module vfat echo PRINTER /dev/printers/0 $i > /dev/printers/0;
module supermount done
pkg xorg6-ati echo -e \\r\\f > /dev/printers/0
pkg xorg6-i810 exit 0;
pkg xorg6-nv
package xorg6-s3
pkg xorg6-s3virge Когда непонятно, что именно не работает, можно выпол-
pkg xorg6-sis нить этот скрипт на консоли тонкого клиента: /bin/my.
pkg xorg6-trident
package keymaps-ru Чтобы при подключении клиента NX к серверу каждый
package nx раз не появлялось окошко с предупреждением о незнакомом
pkg lprng
pkg sshd хосте, создадим в корне Thinstation файл known_hosts:
pkg samba-server
param rootpasswd pleasechangeme ssh-keyscan -t rsa nxserver_ip>>~/thinstation/known_hosts
param xorgvncpasswd pleasechangeme
param bootlogo false
param bootresolution 800x600
param defaultconfig thinstation.conf.buildtime В качестве «nxserver_ip» надо указать IP-адрес NX-сер-
param basename thinstation вера. Таким образом клиент будет знать о цифровом отпе-
param basepath .
param knownhosts ./known_hosts чатке rsa-ключа NX-сервера при аутентификации.
param localpkgs true После успешного выполнения build копируем thinstation/
param fulllocales false
param bootverbosity 3 boot-images/etherboot/thinstation.nbi и thinstation.nbi.zpxe,
param nxurl file://home/zhen/sources/nx/bin ↵ а также все pkg-файлы из thinstation/boot-images/pkg-
/nxclient-1.5.0-141.i386.tar.gz
packages в каталог /tftpboot на tftp-сервер. У меня создаю-
Если будете использовать печать на принтер, подклю- щийся файл thinstation.nbi.zpxe не заработал, в таком случае
ченный к тонкому клиенту с помощью lprng, необходимо вне- по адресу [17] можно скачать файл BootPXE535.zip, в этом
сти небольшую модификацию в файл thinstation/packages/ архиве есть универсальный загрузчик loader-native.zpxe,
lprng/etc/init.d/lprng. Для этого замените строчку: с ним все должно работать.
Конфигурационные файлы Thinstation достаточно хоро-
echo "$PRINTER_X_NAME:lp=$PRINTER_X_DEVICE:wd= ↵ шо откомментированы, но вот сам процесс настройки и пос-
$PRINTER_X_DRIVER:br=$PRINTER_X_OPTIONS: ↵
lf=/var/log/spooler.log:sh:sf" >> /etc/printcap ледовательность действий не всегда очевидны, так что не-
которые трудности, с которыми мне пришлось столкнуться,
на и тонкости я все-таки упомяну.
На рис. 3 показаны основные действия по включению
echo "$PRINTER_X_NAME:lp=$PRINTER_X_DEVICE:wd= ↵ тонкого клиента в работу. Сначала добавляем информацию
$PRINTER_X_DRIVER:br=$PRINTER_X_OPTIONS:if=/bin/lpf: ↵
lf=/var/log/spooler.log:sh:sf" >> /etc/printcap о MAC-адресе сетевой карты в dhcpd.conf. Не забудьте ука-

№12, декабрь 2006 21


администрирование
того, используются разные образы Thinstation. Также не забы-
вайте, что названия файлов thinstation.nbi и thinstation.nbi.zpxe
взаимосвязаны: если в dhcpd.conf указана строчка:

thinstation.nbi.zpxe";

то будет использован образ thinstation.nbi, в моем случае


образов несколько, соответственно и записи в dhcpd.conf
для каждого терминала разные.

Отличия сборки NX2


В нашей системе используются два NX-сервера. На одном
работает NX, собранный из исходников версий 1.5, для рабо-
ты с ним используются клиенты 1.5.x. На другом работает NX
Рисунок 4. NX-сессия в режиме приложения (1С) версии 2.0. Расскажу, в чем отличия работы и сборки этой
версии. На сервере установлены 64-битные Opteron, исполь-
зать настройки в описании подсети, связанные с tftp, они за- зуется система SLES 10.0 x86_64. Так вот собрать на этом
даются директивами «next-server» и «option root-path». У ме- сервере NX так, как это было в случае с NX 1.5 на 32-бит-
ня сервисы tftp и dhcp находятся на одном сервере FreeBSD, ной системе, у меня не получилось, даже когда я пробовал
это облегчает их настройку. Все файлы настроек располага- явно указать сборку для 32-битной системы:
ются в /tftpboot. Потом в файле thinstation.hosts прописываем
по-порядку: произвольное имя хоста (лучше, чтоб оно вклю- make World BOOTSTRAPCFLAGS="-m32"
чало информацию о размещении терминала), MAC-адрес,
группы, членом которых терминал является, в конце строки Видимо, это особенности 64-разрядной системы и ее
можно поместить комментарии за знаком «#», например: библиотек. Несколько позже на сайте Nomachine я нашел за-
метку [18], в которой сказано, что исходные тексты NX раз-
otd146_57158 00e04d08d710 smb_flop_hard TUX1C ↵ работаны для 32-битных систем, но их можно использовать
monitor #very important PC
и в 64-битных системах. Поскольку у меня еще есть компью-
Здесь по порядку: имя хоста, в моем случае состоит тер с установленной SLED 10.0 x86 и версии всех библио-
из номера отдела и инвентарного номера, далее MAC, и да- тек, ядра и программ точно такие же, как у SLES, то я решил
лее перечисление названий файлов конфигураций, кото- собрать NX на нем, а потом перенести каталог с результа-
рый будут использованы этим хостом. том сборки обычным копированием на 64-разрядную сис-
Далее создаем файл настроек thinstation.conf-MAC, я ис- тему. Так и сделал: все заработало как ни в чем не быва-
пользую в названии MAC-адрес, хотя можно использовать ло. Качаем файлы с теми же названиями, что и при сборке
IP-адрес или имя из thinstation.hosts. Заметьте, что здесь в версии 1.5, только с суффиксами 2.0 (или 2.1). Всё компи-
имени файла MAC-адрес использует только заглавные бук- лируется точно так же, как и в случае с NX 1.5, за некоторы-
вы. Группы описываются в файлах с названием thinstation. ми исключениями: во-первых, я не стал накладывать патч
conf.group-ИМЯГРУППЫ. В файле thinstation.conf-MAC на- NX-lfs_hint.diff, во-вторых, появилась новая версия скриптов
ходятся те настройки, которые касаются только этого тер- FreeNX 0.5, поддерживающая новый NX 2.0, её можно за-
минала, и не включены в другие группы. Например, все об- брать здесь [19], в-третьих, файл freenx-lfs_hint.diff, который
щие настройки монитора описаны в файле thinstation.conf. вносит изменения в файл nxloadconfig из FreeNX 0.4, не под-
group-monitor, а один параметр «SCREEN_VERTREFRESH» ходит к новой версии FreeNX, его нужно отредактировать.
вынесен в файл thinstation.conf-MAC. Это связано с тем, Вот вывод команды diff, показывающий разницу между ори-
что используются разные мониторы, и можно изменить на- гинальным и отредактированным файлом nxloadconfig:
стройку кадровой частоты экрана, этот и другие парамет-
--- nxloadconf_orig 2006-07-01 22:03:39.000000000 +0500
ры можно настраивать для каждого терминала или для +++ nxloadconfig 2006-10-16 12:32:19.000000000 +0500
всех сразу. То же касается настройки мышки. По умолча- @@ -56,12 +56,12 @@
NX_LICENSE="OS (GPL)"
нию настройка выполнена для PS/2-мыши. Если исполь-
зуется мышка, подключенная к порту COM1, то указы- # Where can different nx components be found
-NX_DIR=/usr
ваются два параметра «MOUSE_PROTOCOL=Microsoft» +NX_DIR=/srv/NX
PATH_BIN=$NX_DIR/bin # if you change that, be sure to also
и «MOUSE_DEVICE=/dev/ttyS0», если к порту COM2, change the public keys
то во втором параметре указывается /dev/ttyS1. PATH_LIB=$NX_DIR/lib
-NX_ETC_DIR=/etc/nxserver
Общий для всех файл конфигурации /tftpboot/thinstation. -NX_SESS_DIR=/var/lib/nxserver/db
conf.network у меня почти пустой. Вся информация из него -NX_HOME_DIR=/var/lib/nxserver/home
+NX_ETC_DIR=$NX_DIR/etc
вынесена в отдельные файлы групповых настроек, на кото- +NX_SESS_DIR=$NX_DIR/var/db
рые есть ссылки в thinstation.hosts. Так как используются два +NX_HOME_DIR=$NX_DIR/home/nx

терминальных сервера c разными версиями NX и каждый # Advanced users ONLY


AGENT_LIBRARY_PATH="" #Calculated
клиент использует только свой сервер, то конфигурации вы- @@ -265,7 +265,7 @@
несены в отдельные текстовые файлы (NX и TUX1C), кроме [ -z "$AGENT_LIBRARY_PATH" ] && AGENT_LIBRARY_PATH=$PATH_LIB

22
администрирование
[ -z "$PROXY_LIBRARY_PATH" ] && PROXY_LIBRARY_PATH=$PATH_LIB # Патч просто копирует файл(ы) настроек NX-клиента
[ -z "$APPLICATION_LIBRARY_PATH" ] && APPLICATION_LIBRARY_PATH=$PATH_LIB # из стандартного места в корень
-[ -z "$APPLICATION_LIBRARY_PRELOAD" ] && APPLICATION_LIBRARY_
PRELOAD="$APPLICATION_LIBRARY_PATH/libX11.so.6.2:$APPLICATION_LIBRARY_ ls $HOME/.nx/config/.>nxsessions
PATH/libXext.so.6.4:$APPLICATION_LIBRARY_PATH/libXcomp.so.1:$APPLICATION_ if [ -s nxsessions ] ; then
LIBRARY_PATH/libXcompext.so.1:$APPLICATION_LIBRARY_PATH/libXrender.so.1.2" (cat nxsessions ) |
+[ -z "$APPLICATION_LIBRARY_PRELOAD" ] && APPLICATION_LIBRARY_ while read filename ; do
PRELOAD="$APPLICATION_LIBRARY_PATH/libX11.so.6.2:$APPLICATION_
probe=${filename%*.nxs}
LIBRARY_PATH/libXext.so.6.4:$APPLICATION_LIBRARY_PATH/libXcomp.
so.2.1.0:$APPLICATION_LIBRARY_PATH/libXcompext.so.2.1.0:$APPLICATION_
if [ "$filename" != "$probe" ]
LIBRARY_PATH/libXrender.so.1.2"
then
cp $HOME/.nx/config/$filename /$probe
[ -z "$KDE_PRINTRC" -a -n "$KDEHOME" ] && KDE_PRINTRC="$KDEHOME/share/ fi
config/kdeprintrc" done
[ -z "$KDE_PRINTRC" -a -z "$KDEHOME" ] && KDE_PRINTRC="$HOME/.kde/share/ fi
config/kdeprintrc" rm nxsessions
@@ -511,8 +511,8 @@
[ -z $(echo "$ENABLE_ROOTLESS_MODE" | egrep "^[0|1]$") ] && \
ERROR="yes" && echo "Error: Invalid value \"ENABLE_
Данный кусок кода надо вставить в конец файла
ROOTLESS_MODE=$ENABLE_ROOTLESS_MODE\"" ~/thinstation/packages/nx/etc/init.d/nx.init перед последней
- [ -z "$(strings $PATH_BIN/nxagent | grep 'NXAGENT - Version командой «exit 0». После этого надо пересобрать образ
1.5.0')" ] && \ Thinstation. Вот, теперь NX-сессия на тонком клиенте запус-
- ERROR="yes" && echo "Error: Could not find 1.5.0
version string in nxagent. NX 1.5.0 backend is needed for this version of кается так, как и задумано. В целом новая версия работа-
FreeNX."
+# [ -z "$(strings $PATH_BIN/nxagent | grep 'NXAGENT - Version
ет более стабильно, управление сессиями происходит бо-
1.5.0')" ] && \ лее корректно плюс в свежих исходниках обновлены алго-
+# ERROR="yes" && echo "Error: Could not find 1.5.0
version string in nxagent. NX 1.5.0 backend is needed for this version of ритмы компрессии, исправлены некоторые ошибки. Ранее
FreeNX." для очистки и закрытия незавершенных сессий и процес-
[ -z $(echo "$ENABLE_USESSION" | egrep "^[0|1]$") ] && \ сов приходилось обращаться к помощи cron:
ERROR="yes" && echo "Error: Invalid value \"ENABLE_
USESSION=$ENABLE_USESSION\""
1 0 * * * root /srv/NX/bin/nxserver –cleanup
Nxloadconfig надо отредактировать до выполнения ко-
манды /srv/NX/bin/nxsetup. В конфигурационном файле Удобно и то, что клиент NX 2.1 работает с серверами
/srv/NX/etc/node.conf раскомментируйте строчку: обеих версий.
В следующем номере читайте продолжение статьи, в ко-
ENABLE_2_0_0_BACKEND="1" торой я расскажу об особенностях эксплуатации, дополни-
тельных настройках NX и Thinstation, а также предложу ре-
Теперь посмотрим, что надо изменить в дистрибутиве шения некоторых возможных проблем.
Thinstation (последняя версия сейчас 2.2) для поддержки
NX 2.0 со стороны клиента. На момент написания статьи 1. Борисов А. Тонкий клиент – шаг к мэйнфреймам? //Систем-
поддерживался только клиент версии 1.5. Забираем с ад- ный администратор, №11, ноябрь 2005 г. – С. 32-38.
реса [20] NX client, не требующий поддержки библиотек XFT, 2. Маркелов А. Использование бездисковых Linux-станций с за-
в виде tar.gz-архива (на данный момент это nxclient-2.1.0-9. грузкой по сети. //Системный администратор, № 11, ноябрь
i386.tar.gz), распаковываем его в домашнем каталоге, ко- 2004 г. – С. 12-14.
пируем файлы и создаём недостающие ссылки. 3. h t t p : / / s o u r c e f o r g e . n e t / p r o j e c t / s h o w f i l e s . p h p ? g r o u p _
id=80408&package_id=82039.
#!/bin/sh 4. http://www.realvnc.com.
tar -xzf nxclient-2.1.0-9.i386.tar.gz
cp ~/NX/bin/* ~/thinstation/packages/nx/usr/NX/bin 5. http://www.tightvnc.com.
cp -fl ~/NX/lib/libXcomp.so.* ↵ 6. http://www.complang.tuwien.ac.at/nino/dosvnc.html.
~/thinstation/packages/nx/usr/NX/lib/
ln -sf libXcomp.so.2.1.0 ↵ 7. http://ultravnc.sourceforge.net.
~/thinstation/packages/nx/usr/NX/lib/libXcomp.so.1.5.0 8. http://www.redstonesoftware.com/products/vine/server/vineosx/
cp ~/NX/share/keys/server.id_dsa.key ↵
~/thinstation/packages/nx/usr/NX/share/keys index.html.
cp ~/NX/share/keyboards ↵ 9. http://en.wikipedia.org/wiki/X_Window_System.
~/thinstation/packages/nx/usr/NX/share/
cp -R ~/NX/share/images ↵ 10. http://www.vigor.nu/dxpc.
~/thinstation/packages/nx/usr/NX/share/ 11. http://www.nomachine.com/sources.php.
touch ~/thinstation/packages/nx/build/installed
12. http://www.nomachine.com/experimental-products.php.
После этих действий пакет NX считается установлен- 13. http://debian.tu-bs.de/knoppix/nx/freenx-0.4.4.tar.gz.
ным в дереве пакетов Thinstation, теперь собираем об- 14. http://www.linuxfromscratch.org/hints/downloads/attachments/
раз, выполнив build, и копируем на tftp-сервер. Ну вот, об- freenx/NX-lfs_hint.diff.
раз готов и помещен в каталог tftp-сервера, но это еще 15. http://www.linuxfromscratch.org/hints/downloads/attachments/
не все. Оказывается NX-клиент новой версии на тонком freenx/freenx-lfs_hint.diff.
клиенте по-другому интерпретирует настройки из файлов 16. http://www.novell.com/coolsolutions/feature/16247.html.
thinstation.conf.group-TUX1C(NX). После некоторого выясне- 17. h t t p : / / s o u r c e f o r g e . n e t / p r o j e c t / s h o w f i l e s . p h p ? g r o u p _
ния оказалось, что файл с настройками NX-сессии должен id=80408&package_id=97496&release_id=200769.
создаться в корне файловой системы тонкого клиента. При- 18. http://www.nomachine.com/ar/view.php?ar_id=AR02C00154.
шлось сделать небольшой патч для Thinstation, идею я под- 19. http://prdownload.berlios.de/freenx/freenx-0.5.0.tar.gz.
смотрел на одном форуме: 20. http://www.nomachine.com/download-package.php?Prod_Id=26.

№12, декабрь 2006 23


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

Кластеризация + виртуализация:
Linux HA + OpenVZ
Часть 2: Виртуализация на практике

Евгений Прокопьев
В первой части статьи (в №11 за 2005 г.) мы построили отказоустойчивый кластер с общим
дисковым пространством, состоящий из двух узлов: m1 и m2. Теперь нам необходимо
построить систему виртуализации с виртуальными серверами, мигрирующими с узла m1 на m2
в случае отказа первого.

Строим контейнер ядре и userspace-инструменты, пред- с ана пр о цедура ус тано вк и яд ра


для виртуальных серверов ставленные пакетами vzctl и vzquota: на Fedora Core, Red Hat Enterprise
и кластеризуем его Linux и CentOS.
Пр и с т у п и м к ус тан о в ке в ы бран - [root@m1 ~]# apt-get install ↵ После установки нового ядра про-
kernel-image-ovz-smp ↵
ной нами системы виртуализации – kernel-modules-drbd-ovz-smp ↵ верьте конфигурацию загрузчика
OpenVZ. Она представляет собой на- vzctl vzquota и удостоверьтесь в том, что после пе-
бор патчей к стандартному ядру Linux резапуска будет загружено ovz-ядро.
и userspace-инструменты для управле- Для других дистрибутивов Linux яд- Если это не так, то вам придётся пред-
ния. В ALT Linux Sisyphus ядро с подде- ро с поддержкой OpenVZ в виде бинар- принять для загрузки требуемого ядра
ржкой OpenVZ собрано отдельно, поэ- ных пакетов или исходного кода мож- необходимые действия. Например, ес-
тому его необходимо установить в до- но загрузить отсюда – http://openvz.org/ ли в качестве загрузчика использует-
полнение к существующему ядру, уста- download/kernel. В документе http:// ся lilo, то его конфигурационный файл
новить модуль поддержки DRBD в этом wiki.openvz.org/Quick_installation опи- может выглядеть так:

24
администрирование
boot=/dev/hda нальную документацию с http://openvz.org/documentation
map=/boot/map
default=linux и выжимку из нее, ориентированную на ALT Linux и до-
image=/boot/vmlinuz ступную здесь – http://www.freesource.info/wiki/AltLinux/
label=linux
root=/dev/hda2 Dokumentacija/OpenVZ.
initrd=/boot/initrd.img Существуют уже готовые шаблоны виртуальных сер-
read-only
веров, построенных на основе некоторых общедоступных
При этом /boot/vmlinuz и /boot/initrd.img должны ссылать- дистрибутивов Linux: CentOS, Debian, Fedora Core, Gentoo,
ся на образ ядра и образ initrd соответственно: Mandriva, openSUSE. Коммерческие RHEL и SUSE SLES
в этом списке отсутствуют. Отсутствует и ALT Linux, хо-
[root@m1 ~]# ls -l /boot/ тя ссылки на шаблоны ALT Linux содержатся в приведен-
total 6892
-rw-r--r-- 1 root root 755493 Sep 22 22:45 System.map-2.6.16-ovz-smp-alt7
ной выше ссылке на ALT-ориентированную документацию.
-rw-r--r-- 1 root root 686841 Oct 9 23:54 System.map-2.6.16-std26-up-alt10
-rw-r--r-- 1 root root 512 Oct 9 23:54 boot.0300
Но мы построим шаблон для виртуального сервера на ос-
-rw-r--r-- 1 root root 512 Oct 9 23:54 boot.0800
-rw-r--r-- 1 root root 65929 Sep 22 22:39 config-2.6.16-ovz-smp-alt7
нове ALT Linux самостоятельно.
-rw-r--r-- 1 root root 66100 Oct 9 23:54 config-2.6.16-std26-up-alt10
-rw------- 1 root root 321240 Oct 10 23:34 initrd-2.6.16-ovz-smp-alt7.img
Штатным для OpenVZ средством построения шаблонов
-rw------- 1 root root 204992 Oct 9 23:54 initrd-2.6.16-std26-up-alt10.img
lrwxrwxrwx 1 root root 30 Oct 10 23:34 initrd-smp.img -> initrd-2.6.16-ovz-smp-alt7.img
является утилита vzpkg. Она использует yum в качестве вы-
lrwxrwxrwx 1 root root
lrwxrwxrwx 1 root root
32 Oct 9 23:54 initrd-up.img -> initrd-2.6.16-std26-up-alt10.img
30 Oct 10 23:34 initrd.img -> initrd-2.6.16-ovz-smp-alt7.img
сокоуровневого средства управления пакетами (поддержку
-rw------- 1 root root 31744 Oct 10 23:38 map
lrwxrwxrwx 1 root root 27 Oct 10 23:34 vmlinuz -> vmlinuz-2.6.16-ovz-smp-alt7
apt обещают чуть позже) и поэтому не может быть исполь-
-rw-r--r-- 1 root root 1246789 Sep 22 22:45 vmlinuz-2.6.16-ovz-smp-alt7
-rw-r--r-- 1 root root 1132834 Oct 9 23:54 vmlinuz-2.6.16-std26-up-alt10
зована в тех случаях, когда дистрибутив, на основе кото-
lrwxrwxrwx 1 root root
lrwxrwxrwx 1 root root
27 Oct 10 23:34 vmlinuz-smp -> vmlinuz-2.6.16-ovz-smp-alt7
29 Oct 9 23:54 vmlinuz-up -> vmlinuz-2.6.16-std26-up-alt10
рого строится шаблон, не имеет yum-репозиториев. Впро-
чем, поскольку шаблон – это всего лишь архив корня уже
Также с помощью «chkconfig --list» удостоверьтесь, установленной системы в виде tar.gz, изготовить его мож-
что сервис vz не будет запущен после перезагрузки и за- но любыми подручными средствами, например, из систе-
тем перезагрузится. мы, работающей на физическом сервере.
После перезагрузки переместите файлы OpenVZ в ка- В случае ALT Linux в качестве такого подручного средс-
талог /d0, куда уже должно быть смонтировано устройс- тва удобнее всего использовать spt. Если spt уже установ-
тво /dev/drbd0, а на старом месте создать символические лен (его удобнее держать на выделенном физическом ли-
ссылки: бо виртуальном сборочном сервере), то можно использо-
вать содержимое каталога /usr/share/spt/profile-ovz/ как при-
[root@m1 ~]# mkdir /d0/vz мер для создания образа, который затем послужит нам
[root@m1 ~]# mkdir /d0/vz/etc
[root@m1 ~]# mkdir /d0/vz/etc/sysconfig шаблоном для создания виртуального сервера. Нет ника-
[root@m1 ~]# mkdir /d0/vz/var ких препятствий к тому, чтобы использовать этот образец
[root@m1 ~]# mkdir /d0/vz/var/lib
[root@m1 ~]# cp -r /etc/vz /d0/vz/etc как есть, но мне показалось более правильным скопиро-
[root@m1 ~]# cp -r /etc/sysconfig/vz-scripts ↵ вать его в ~/ovz и изменить список пакетов в шаблоне, от-
/d0/vz/etc/sysconfig
[root@m1 ~]# cp -r /var/lib/vz /d0/vz/var/lib редактировав файл ~/ovz/packages/main так:
[root@m1 ~]# cp -r /var/lib/vzquota /d0/vz/var/lib
[root@m1 ~]# rm -rf /etc/vz basesystem
[root@m1 ~]# rm -rf /etc/sysconfig/vz-scripts passwd
[root@m1 ~]# rm -rf /var/lib/vz apt
[root@m1 ~]# rm -rf /var/lib/vzquota
apt-conf-sisyphus
[root@m1 ~]# ln -s /d0/vz/etc/vz /etc/vz etcnet
[root@m1 ~]# ln -s /d0/vz/etc/sysconfig/vz-scripts ↵ glibc
/etc/sysconfig/vz-scripts
sysklogd
[root@m1 ~]# ln -s /d0/vz/var/lib/vz /var/lib/vz mc
[root@m1 ~]# ln -s /d0/vz/var/lib/vzquota ↵ openssh-server
/var/lib/vzquota
openssh-clients
После остановки сервиса heartbeat на узле m1 и мон-
тирования drbd-устройства на узле m2 на нем необходимо Также мне показалось разумным изменить конфигу-
аналогичным образом удалить каталоги OpenVZ и создать рацию apt по умолчанию, чтобы сразу иметь возможность
вместо них ссылки на /d0/vz. После того как OpenVZ перене- устанавливать пакеты из моего локального репозитория.
сен на drbd-раздел, необходимо указать сервису heartbeat, Для этого я создал файл ~/ovz/postinstall/setup.d/01apt c та-
что сервис vz должен работать на узле m1, для чего отре- ким содержимым:
дактировать файл /etc/ha.d/haresources на обоих узлах:
cat >> /etc/apt/sources.list.d/sisyphus.local.list <<END
m1.mydomain.com drbddisk ↵
Filesystem::/dev/drbd0::/d0::ext3 vz # Local Sisyphus

rpm [alt] ftp://192.168.46.1/distrib/linux/ ↵


После рестарта heartbeat на обоих узлах необходимо alt-linux-sisyphus i586 classic
смоделировать отказ узла m1 и убедиться в том, что сер- rpm-src [alt] ftp://192.168.46.1/distrib/linux/ ↵
alt-linux-sisyphus i586 classic
вис vz запускается на узле m2. rpm [alt] ftp://192.168.46.1/distrib/linux/ ↵
alt-linux-sisyphus noarch classic
rpm-src [alt] ftp://192.168.46.1/distrib/linux/ ↵
Строим первый виртуальный сервер alt-linux-sisyphus noarch classic
Теперь мы можем забыть о том, что OpenVZ работает
END
в кластере, и конфигурировать его, опираясь на ориги-

№12, декабрь 2006 25


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

Краткий обзор важнейших  Тонкого клиента для загрузки по сети зультатов. В этом качестве hasher исполь-
технологий Sisyphus посредством PXE. зуют как члены ALT Linux Team для под-
Spt (http://wiki.sisyphus.ru /devel /spt) – готовки своих пакетов, так и Incominger
это инструмент, позволяющий из репози- Механизм работы spt сводится к уста- (http://wiki.sisyphus.ru/devel/Incoming) – ро-
тория Sisyphus создать готовый к загруз- новке пакетов, определенных пользова- бот, занимающийся приемом новых паке-
ке экземпляр системы в виде: телем (и всех зависимых от них) в chroot, тов в репозиторий.
 Live-CD. и выполнению ряда скриптов, также опре- В настоящее время пакеты поступа-
 Инсталляционного диска, который деленных пользователем. ют в Incoming в виде SRPM, однако многи-
является частным случаем Live-CD Spt ак тивно использует hasher ми разработчиками уже используется тех-
отличается от него только тем, (http://www.freesource.info/wiki/ALTLinux/ нология GEAR (http://wiki.sisyphus.ru/devel/
что включает в себя alterator (http:// Dokumentacija/Hasher), который в общем git), позволяющая хранить исходный код
wiki.sisyphus.ru/Alterator) – штатный случае является механизмом помещения пакетов в системе контроля версий GIT
конфигуратор системы, построеной в chroot запускаемой программы и установ- (http://git.or.cz), первоначально разработан-
на основе Sisyphus. ки туда же всех пакетов, от которых эта про- ной Линусом Торвальдсом специально для
 Архива корневой файловой системы грамма зависит. По этой причине чаще все- совместной работы над ядром Linux. В са-
для использования в качестве вирту- го hasher используется при сборке пакетов мом ближайшем будущем планируется сде-
ального сервера в какой-либо систе- для того, чтобы гарантировать постоянс- лать поступление пакетов из GIT-репозито-
ме виртуализации или для установки тво среды, в которой происходит сборка, риев напрямую в Incoming более приоритет-
на диск физического компьютера. и, соответственно, воспроизводимость ре- ным, а от SRPMS со временем отказаться.

Затем я выполнил команду: [root@m1 ~]# vzctl start router


Starting VE ...
spt -v --noiso --image-type=tgz --maketty ~/ovz/ VE is mounted
Setting CPU units: 1000
Set hostname: router.mydomain.com
и получил файл ~/ovz/out/altlinux, который можно использо- VE start in progress...
вать как шаблон виртуального сервера для OpenVZ. [root@m1 ~]# vzctl enter router
entered into VE 101
Теперь файл ~/ovz/out/altlinux необходимо скопировать [root@router /]# ip address add 192.168.46.200/24 dev eth1
на ведущий узел кластера с именем /var/lib/vz/template/ [root@router /]# ip link set eth1 up
[root@router /]# ping 192.168.46.1
cache/altlinux-sisyphus.tar.gz и выполнить следующее: PING 192.168.46.1 (192.168.46.1) 56(84) bytes of data.
64 bytes from 192.168.46.1: icmp_seq=1 ttl=64 time=5.37 ms
[root@m1 ~]# vzctl create 101 ↵
--ostemplate altlinux-sisyphus --config vps.basic --- 192.168.46.1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
Creating VE private area: /var/lib/vz/private/101 rtt min/avg/max/mdev = 5.376/5.376/5.376/0.000 ms
Performing postcreate actions
VE private area was created
[root@m1 ~]# vzctl set 101 --name router --save Команды внутри виртуального сервера можно также
Name router assigned
Saved parameters for VE 101
выполнять с помощью vzctl exec, не переключаясь в кон-
[root@m1 ~]# vzctl set router --onboot yes --save соль через vzctl enter:
Saved parameters for VE 101
[root@m1 ~]# vzctl set router --hostname router.mydomain.com --save
[root@m1 ~]# vzctl exec router ping 192.168.46.1
Set hostname: router.mydomain.com
Saved parameters for VE 101 PING 192.168.46.1 (192.168.46.1) 56(84) bytes of data.
64 bytes from 192.168.46.1: icmp_seq=1 ttl=64 time=6.34 ms

Таким образом, мы создали виртуальный сервер, зада-


ли для него имя, указали, что он должен загружаться при Для сохранения сетевых настроек после перезагруз-
старте OpenVZ, и присвоили ему FQDN. Везде мы исполь- ки в ALT Linux есть 2 механизма конфигурирования се-
зовали ключ --save, чтобы сохранить внесенные изменения ти: net-scripts, унаследованный от Mandrake и Red Hat,
после перезапуска виртуального сервера. и свой собственный etcnet, о котором много написано
Далее необходимо пробросить физический интерфейс на http://etcnet.org и http://wiki.sisyphus.ru/admin/etcnet.
eth1, который мы оставили незадействованным на этапе Второй способ значительно удобнее и функциональ-
конфигурирования узлов кластера, в виртуальный сервер, нее, также он был указан при генерации шаблона, поэто-
чтобы сделать его доступным извне: му нам ничего другого не остается, кроме как настроить
именно его:
[root@m1 ~]# vzctl set router --netdev_add eth1 --save
Saved parameters for VE 101
[root@router /]# mkdir /etc/net/ifaces/eth1
[root@router /]# echo 192.168.46.200/24 > ↵
/etc/net/ifaces/eth1/ipv4address
Теперь можно запустить виртуальный сервер, войти [root@router /]# echo default via 192.168.46.1 dev eth1 > ↵
/etc/net/ifaces/eth1/ipv4route
в него, сконфигурировать сетевой интерфейс eth1 и про- [root@router /]# echo "BOOTPROTO=static
верить доступность физических серверов из виртуально- > ONBOOT=yes
> TYPE=eth" > /etc/net/ifaces/eth1/options
го и наоборот: [root@router /]# service network restart

26
администрирование
Computing interface groups: ... 3 interfaces found
Processing /etc/net/vlantab: empty.
Stopping group 1/realphys (1 interfaces)
Stopping eth1: ..OK
Stopping group 0/virtual (2 interfaces)
Stopping lo: .OK
Stopping venet0: .OK
error: setting key "net.ipv4.icmp_echo_ignore_broadcasts": Operation not permitted
error: setting key "net.ipv4.tcp_syncookies": Operation not permitted
error: setting key "net.ipv4.tcp_timestamps": Operation not permitted
Computing interface groups: ... 3 interfaces found
Starting group 0/virtual (2 interfaces)
Starting lo: ....OK
Starting venet0: ......OK
Starting group 1/realphys (1 interfaces)
Starting eth1: ......OK
Processing /etc/net/vlantab: empty.

Сообщения «Operation not permitted» связаны с огра-


Виртуальная сеть
ничениями для виртуального сервера, определенными по
умолчанию, и в нашем случае на функционировании сети Если в качестве маршрутизатора/брандмауэра для до-
отрицательно не сказываются. Можно закомментировать ступа к виртуальным серверам использовать физический
соответствующие строки в файле /etc/net/sysctl.conf, что- сервер, стоит, несомненно, предпочесть venet. Поскольку та-
бы эти сообщения больше не появлялись. кая конфигурация более распространена, то и venet-интер-
Созданный нами виртуальный сервер будет использо- фейсы используются чаще. Однако чем сложнее конфигу-
вать сетевой интерфейс eth1 того узла, на котором он в дан- рация маршрутизатора/брандмауэра, тем больше основа-
ный момент работает, поэтому в случае отказа узла m1 сер- ний появляется для вынесения его в отдельный виртуаль-
вер переместится на узел m2 и будет доступен там по то- ный сервер, чтобы не перегружать физический сервер лиш-
му же самому адресу. Можно смоделировать эту ситуацию ними задачами и лишним ПО. В нашем случае дополнитель-
и увидеть с внешнего физического сервера следующее: ным поводом стало желание иметь один и тот же адрес вир-
туального сервера, доступный извне, независимо от адре-
$ ping 192.168.46.200 са узла кластера, на котором он в данный момент работает.
PING 192.168.46.200 (192.168.46.200) 56(84) bytes of data. Эта конфигурация в некоторых случаях может оказаться еще
64 bytes from 192.168.46.200: icmp_seq=1 ttl=64 time=0.549 ms
... более сложной, если, например, на проброшенном физичес-
From 192.168.46.1 icmp_seq=83 Destination Host Unreachable
...
ком интерфейсе организовать поддержку IEEE 802.1Q VLAN,
64 bytes from 192.168.46.200: icmp_seq=179 ttl=64 time=1.05 ms чтобы принять несколько vlan, но с точки зрения настройки
--- 192.168.46.200 ping statistics --- OpenVZ эта конфигурация не будет ничем отличаться от то-
179 packets transmitted, 25 received, +93 errors, 86% packet loss, time 178149ms
rtt min/avg/max/mdev = 0.298/193.970/1702.783/397.285 ms, pipe 3 го, что было рассмотрено выше – разница будет только в на-
стройке проброшенного сетевого интерфейса. Более важ-
ным является то, что если использовать в качестве маршру-
Строим виртуальную сеть тизатора/брандмауэра виртуальный сервер, более удобным
В большинстве случаев на одном физическом сервере раз- будет построить виртуальную сеть на veth-интерфейсах. Вы-
мещают несколько виртуальных серверов, при этом необ- глядеть это будет так, как показано на рисунке.
ходимо каким-то образом обеспечить доступность серви- Итак, для каждого виртуального сервера мы создаем
сов, работающих на виртуальных серверах, другим физи- veth-интерфейс, а концы этих интерфейсов со стороны фи-
ческим машинам. Пробрасывать каждому виртуальному зического сервера объединяем в бридж – в результате по-
серверу по физическому интерфейсу накладно, да и не- лучается аналог хаба, в который включены все виртуаль-
удобно. Часто хочется спрятать все виртуальные серверы ные сервера. Один из них уже имеет проброшенный в него
за одним маршрутизатором/брандмауэром. Посмотрим, ка- физический интерфейс – этот виртуальный сервер и будет
кие средства для этого предлагает OpenVZ. Он предлагает играть роль маршрутизатора/брандмауэра.
2 типа виртуальных сетевых интерфейсов: Создаем и запускаем виртуальные сервера:
 venet – соединения точка-точка между физическим сер-
вером и виртуальным, которые создаются автоматичес- [root@m1 ~]# vzctl create 102 ↵
--ostemplate altlinux-sisyphus --config vps.basic
ки для каждого виртуального сервера и конфигурируют-
ся c помощью vzctl. Они не имеют MAC-адресов, не подде- Creating VE private area: /var/lib/vz/private/102
Performing postcreate actions
рживают броадкасты (broadcast), на них не работают сниф- VE private area was created
феры и средства учета трафика, использующие libicap (на-
пример, tcpdump), на них нельзя строить бриджи. [root@m1 ~]# vzctl set 102 --name mail --save
 veth – соединения точка-точка между физическим сер- Name ve1 assigned
вером и виртуальным, которые нужно создавать и кон- Saved parameters for VE 102

фигурировать вручную средствами того дистрибутива [root@m1 ~]# vzctl set mail --onboot yes --save
Linux, который работает на физическом и виртуальном
Saved parameters for VE 102
сервере. Они лишены недостатков venet (которые мож-
но рассматривать и как достоинства с точки зрения бе- [root@m1 ~]# vzctl set mail ↵
--hostname mail.mydomain.com --save
зопасности и эффективности) и выглядят как полноцен-
ные ethernet-интерфейсы. Saved parameters for VE 102

№12, декабрь 2006 27


администрирование
[root@m1 ~]# vzctl start mail [root@m1 ~]# ip link set veth1 up
[root@m1 ~]# ip link set veth2 up
Starting VE ... [root@m1 ~]# ip link set veth3 up
VE is mounted [root@m1 ~]# brctl addbr br0
Adding IP address(es): 192.168.199.2 [root@m1 ~]# brctl addif br0 veth1
Setting CPU units: 1000 [root@m1 ~]# brctl addif br0 veth2
Set hostname: mail.mydomain.com [root@m1 ~]# brctl addif br0 veth3
VE start in progress... [root@m1 ~]# ip link set br0 up

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


[root@m1 ~]# vzctl create 103 ↵ ной сети:
--ostemplate altlinux-sisyphus --config vps.basic

Creating VE private area: /var/lib/vz/private/103 [root@m1 ~]# vzctl exec router ping 192.168.199.2
Performing postcreate actions
VE private area was created PING 192.168.199.2 (192.168.199.2) 56(84) bytes of data.
64 bytes from 192.168.199.2: icmp_seq=1 ttl=64 time=15.9 ms
[root@m1 ~]# vzctl set 103 --name dbms --save
[root@m1 ~]# vzctl exec router ping 192.168.199.3
Name ve2 assigned
PING 192.168.199.3 (192.168.199.3) 56(84) bytes of data.
Saved parameters for VE 103
64 bytes from 192.168.199.3: icmp_seq=1 ttl=64 time=3.71 ms
[root@m1 ~]# vzctl set dbms --onboot yes --save
Теперь на виртуальных серверах описываем маршрут
Saved parameters for VE 103
во внешнюю физическую сеть:
[root@m1 ~]# vzctl set dbms ↵
--hostname dbms.mydomain.com --save [root@m1 ~]# vzctl exec mail ip route ↵
add 192.168.0.0/16 via 192.168.199.1
Saved parameters for VE 103 [root@m1 ~]# vzctl exec dbms ip route ↵
add 192.168.0.0/16 via 192.168.199.1
[root@m1 ~]# vzctl start dbms
Starting VE ... На виртуальном маршрутизаторе включаем пересылку
VE is mounted
Adding IP address(es): 192.168.199.3 пакетов между физической и виртуальной сетями:
Setting CPU units: 1000
Set hostname: dbms.mydomain.com [root@m1 ~]# vzctl exec router sysctl -w ↵
VE start in progress... net.ipv4.ip_forward=1

Создаем и конфигурируем veth-интерфейсы внутри вир- Теперь если на машине из физической сети 192.168.46.0/24
туальных серверов: описать маршрут в сеть 192.168.199.0/24 (или настроить NAT
на виртуальном маршрутизаторе), мы получим то, чего
[root@m1 ~]# vzctl set router ↵ и добивались:
--veth_add veth1,00:12:34:56:78:9A,eth0, ↵
00:12:34:56:78:9B --save
[root@m1 ~]# vzctl exec mail ping 192.168.46.1
Processing veth devices
Saved parameters for VE 101 PING 192.168.46.1 (192.168.46.1) 56(84) bytes of data.
64 bytes from 192.168.46.1: icmp_seq=1 ttl=63 time=0.982 ms
[root@m1 ~]# vzctl exec router ip address ↵
add 192.168.199.1/24 dev eth0
[root@m1 ~]# vzctl exec router ip link set eth0 up Желательно, чтобы все описанные выше настройки со-
хранялись при перезапуске виртуальных серверов, сервиса
[root@m1 ~]# vzctl set mail ↵ vz и ведущего узла кластера. С настройками виртуальных
--veth_add veth2,00:12:34:56:78:9C,eth0, ↵
00:12:34:56:78:9D --save серверов проще всего – их можно сохранить в etcnet:
Processing veth devices [root@m1 ~]# vzctl enter mail
Saved parameters for VE 102 [root@mail /]# mkdir /etc/net/ifaces/eth0
[root@mail /]# echo 192.168.199.2/24 > ↵
[root@m1 ~]# vzctl exec mail ip address ↵ /etc/net/ifaces/eth0/ipv4address
add 192.168.199.2/24 dev eth0 [root@mail /]# echo 192.168.0.0/16 via 192.168.199.1 ↵
[root@m1 ~]# vzctl exec mail ip link set eth0 up dev eth0 > /etc/net/ifaces/eth0/ipv4route
[root@mail /]# echo "BOOTPROTO=static
[root@m1 ~]# vzctl set dbms ↵ > ONBOOT=yes
--veth_add veth3,00:12:34:56:78:9E,eth0, ↵ > TYPE=eth" > /etc/net/ifaces/eth0/options
00:12:34:56:78:9F --save
[root@m1 ~]# vzctl enter dbms
[root@dbms /]# mkdir /etc/net/ifaces/eth0
Processing veth devices [root@dbms /]# echo 192.168.199.3/24 > ↵
Saved parameters for VE 103 /etc/net/ifaces/eth0/ipv4address
[root@dbms /]# echo 192.168.0.0/16 via 192.168.199.1 ↵
[root@m1 ~]# vzctl exec dbms ip address ↵ dev eth0 > /etc/net/ifaces/eth0/ipv4route
add 192.168.199.3/24 dev eth0 [root@dbms /]# echo "BOOTPROTO=static
[root@m1 ~]# vzctl exec dbms ip link set eth0 up > ONBOOT=yes
> TYPE=eth" > /etc/net/ifaces/eth0/options
Имена интерфейсов и их MAC-адреса мы придумываем
сами, поэтому необходимо, чтобы последние не пересека- Для автоматического добавления конца veth-интерфей-
лись с существующими. Объединяем концы veth-интерфей- сов со стороны физического сервера в бридж при старте
сов со стороны физического сервера в бридж: соответствующего виртуального сервера потребуется ис-

28
администрирование
править скрипт /usr/sbin/vznetcfg, добавив в конец функ- Затем в виртуальных серверах необходимо удалить
ции init_veth() строку (сделать это нужно на двух узлах из etcnet настройки интерфейса venet0:
кластера):
[root@m1 ~]# vzctl exec router rm -rf /etc/net/ifaces/venet0
[root@m1 ~]# vzctl exec mail rm -rf /etc/net/ifaces/venet0
brctl addif br0 ${dev} [root@m1 ~]# vzctl exec dbms rm -rf /etc/net/ifaces/venet0

В будущем разработчики OpenVZ обещают доработать Теперь можно перезапустить сервис vz – в конфигура-
этот скрипт, чтобы подобного рода измения можно было ции виртуальных серверов останутся только те маршруты,
описывать в конфигурационном файле. которые мы указали явно.
Наконец, бридж тоже нужно создать, и сделать это не- Таким образом, мы добились того, чего хотели: в штат-
обходимо еще до старта всех виртуальных серверов. Луч- ном режиме виртуальные серверы mail и dbms работают
ше всего добавить его создание в конфигурацию etcnet на узле m1, а в случае его отказа автоматически переезжа-
на обоих узлах кластера: ют на узел m2, при этом с точки зрения внешнего наблюда-
теля из физической сети 192.168.46.0/24 наблюдается лишь
[root@m1 ~]# mkdir /etc/net/ifaces/br0 кратковременный перерыв в обслуживании:
[root@m1 ~]# echo TYPE=bri > /etc/net/ifaces/br0/options

Есть одна неприятная деталь. В конфигурацию виртуаль- $ ping 192.168.199.2


ных серверов мы добавили маршрут в сеть 192.168.0.0/16, PING 192.168.199.2 (192.168.199.2) 56(84) bytes of data.
64 bytes from 192.168.199.2: icmp_seq=1 ttl=64 time=0.549 ms
но во многих случаях нам потребуется добавить туда мар- ...
From 192.168.46.1 icmp_seq=83 Destination Host Unreachable
шрут по умолчанию. Сделать этого мы не сможем, так как ...
такой маршрут, созданный OpenVZ заранее для собствен- From 192.168.46.200 icmp_seq=83 Destination Host Unreachable
...
ных нужд, уже есть: 64 bytes from 192.168.199.2: icmp_seq=179 ttl=64 time=1.05 ms

--- 192.168.46.200 ping statistics ---


[root@m1 ~]# vzctl exec mail ip route 179 packets transmitted, 25 received, +93 errors, 86% packet loss, time 178149ms
rtt min/avg/max/mdev = 0.298/193.970/1702.783/397.285 ms, pipe 3
192.168.199.0/24 dev eth0 proto kernel scope link src 192.168.199.2
192.0.2.0/24 dev venet0 scope host
192.168.0.0/16 via 192.168.199.1 dev eth0
default via 192.0.2.1 dev venet0 Что дальше
Итак, мы выполнили базовую настройку двухузлового клас-
Он создается и автоматически привязывается к ин- тера, подняли систему виртуализации OpenVZ, кластери-
терфейсу venet0. Ни эта довольно навязчивая автомати- зовали ее, а затем настроили несколько виртуальных сер-
ка, ни venet-интерфейсы вообще нам сейчас не нужны, веров, виртуальную сеть между ними и связали ее с внеш-
мы используем только veth. Поэтому чтобы такого не про- ней физической сетью. При этом мы показали преимущес-
исходило, потребуется исправить скрипт, занимающий- тва такого способа построения систем как с точки зрения
ся конфигурированием сетевых интерфейсов виртуаль- надежности, так и с точки зрения снижения затрат на обо-
ного сервера. В случае ALT Linux Sisyphus – это скрипт рудование и его обслуживание. Теперь можно углубляться
/etc/vz/dists/scripts/etcnet-add_ip.sh. В нем нам нужно моди- в детали: садиться и вдумчиво читать OpenVZ Users Guide –
фицировать функцию add_ip() таким образом, чтобы она http://download.openvz.org/doc/OpenVZ-Users-Guide.pdf (пе-
выполнялась только при наличии присвоенного venet-ин- ревод этого руководства доступен на http://www.opennet.ru/
терфейсу адреса: docs/RUS/virtuozzo).
Для полноценного использования OpenVZ нам потре-
add_ip() буется настроить:
{
local i ip  Квоты на процессорное время для виртуальных серверов.
if [ -n "$IP_ADDR" ]; then
 Квоты потребления системных ресурсов виртуальными
серверами (количество процессов, количество сокетов,
if [ "$VE_STATE" = "starting" ]; then объем виртуальной памяти, различных буферов и т. д.).
setup_network
fi  Дисковые квоты.
backup_configs "$IPDELALL"
 Доступ к физическим устройствам и файловым системам
физического сервера, если в этом есть необходимость.
i=0
for ip in ${IP_ADDR}; do
i="$(find_unused_alias "$((i+1))")" Все перечисленное очень подробно описано в докумен-
create_alias "$ip" "$i" тации. После более тщательной настройки OpenVZ можно
done
переходить к настройке самих виртуальных серверов.
move_configs

if [ "$VE_STATE" = "running" ]; then 1. http://linux-ha.org


# synchronyze config files & interfaces 2. http://drbd.org
ifdown "$VENET_DEV"
ifup "$VENET_DEV" 3. http://openvz.org
fi 4. http://altlinux.ru
fi 5. http://sisyphus.ru
} 6. http://freesource.info

№12, декабрь 2006 29


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

Настраиваем шлюз в Интернет


на базе FreeBSD

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

Нам понадобится  Операционная система: FreeBSD системы, больше нам ничего не пот-
 Аппаратное обеспечение. Что- 5.5 или 6.1. ребуется.
бы вывести внутреннюю сеть в Ин-  Дополнительно: из-за того, что
тернет, достаточно компьютера данный компьютер подлежит не- Настройка сетевых
Pentium III 600 МГц, 256 Мб RAM, прерывному использованию, реко- интерфейсов
10 Гб HDD, 2 сетевые карты. Конфи- мендую доставить внутрь корпуса Будем считать, что уже имеется ком-
гурация взята с запасом, для пол- дополнительные вентиляторы что- пьютер подходящей конфигурации
ноценной работы сети малого офи- бы обеспечить принудительное на- с установленной нужной версией
са (около 50 пользователей) впол- гнетание/отток воздуха для охлаж- FreeBSD.
не хватило бы Pentium II 400 МГц, дения. Практически все современ- Необходимо уточнить имена ин-
c 128 Мб RAM. Но в дальнейшем мо- ные корпусы ATX позволяют сде- терфейсов сетевых карт, под которы-
жет возникнуть желание установить лать это. ми их распознает операционная сис-
на этот же шлюз, к примеру, прокси- тема.
сервер, лучше выбрать конфигура- Поскольку все необходимые моду-
цию более высокого уровня. ли включены в состав операционной # ifconfig

30
администрирование
Должно появиться что-то подобное: ма Мошкова http://www.lib.ru/unixhelp/vi.txt и http://www.lib.ru/
unixhelp/vibegin.txt.
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=8<VLAN_MTU> Настройки сетевых интерфейсов во FreeBSD хранятся
ether 00:xx:xx:xx:xx:xx в файле /etc/rc.conf. Открываем его на редактирование:
media: Ethernet autoselect (100baseTX <full-duplex>)
status: active
xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
# vi /etc/rc.conf
options=9<RXCSUM,VLAN_MTU>
ether 00:zz:zz:zz:zz:zz
media: Ethernet autoselect (100baseTX <full-duplex>) И добавляем следующие строки:
status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500 # Задаем внутренний интерфейс
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 ifconfig_xl0="inet 192.168.9.2 netmask 255.255.255.0"
inet6 ::1 prefixlen 128 # Задаем внешний интерфейс
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 ifconfig_rl0="inet 83.xxx.xxx.xxx netmask 255.255.255.224"
inet 127.0.0.1 netmask 0xff000000 # Задаем шлюз провайдера по умолчанию
defaultrouter="83.xxx.xxx.1"
В компьютере установлены две сетевые карты c име- # Имя хоста
hostname="ourhost.ourdomain.ru"
нами интерфейсов rl0 и xl0. # Указываем, что сервер будет работать как маршрутизатор
В нашем случае интерфейс rl0 будет «смотреть» во вне- gateway_enable="YES"
шний мир, а xl0 – во внутреннюю сеть. IP- адрес внутренне-
го интерфейса: 192.168.9.2 , маска подсети 255.255.255.0, После чего перезагружаем компьютер:
имя интерфейса xl0; IP-адрес внешнего интерфейса
83.xxx.xxx.xxx, маска подсети 255.255.255.224, имя интер- # reboot
фейса rl0.
Уточнить, сетевым картам каких производителей соот- В данный момент компьютер можно было и не пере-
ветствуют те или иные сетевые адреса, можно, заглянув загружать. Но мы хотим достоверно убедиться, что наши
в файл GENERIC в каталоге /usr/src/sys/i386/conf: интерфейсы установлены корректно и работают, поэтому
я все же рекомендую перезагрузиться.
# more /usr/src/sys/i386/conf/ GENERIC После загрузки проверяем:

В нем находим соответствующие строчки: # ifconfig

device rl # RealTek 8129/8139


… Вывод команды ifconfig:
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
rl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
Таким образом, интерфейс rl0 соответствует сетевой options=8<VLAN_MTU>
карте RealTek 8129/8139 и ее аналогам. Сетевой интерфейс inet6 fe80::215:58ff:fe3e:8fb1%rl0 prefixlen 64 scopeid 0x1
inet 83.xxx.xxx.xxx netmask 0xffffffe0 broadcast 83.xxx.xxx.
xl0 соответствует сетевой карте 3Com. yyy
Отдельно стоит упомянуть о файле GENERIC. Это файл ether 00:xx:xx:xx:xx:xx
media: Ethernet autoselect (100baseTX <full-duplex>)
конфигурации ядра, устанавливаемого по умолчанию при status: active
инсталляции FreeBSD. Он организован так, чтобы систе- xl0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=9<RXCSUM,VLAN_MTU>
ма могла поддерживать большинство наиболее исполь- inet6 fe80::20a:5eff:fe62:ade2%xl0 prefixlen 64 scopeid 0x2
зуемых устройств, в том числе и указанные сетевые кар- inet 192.168.9.2 netmask 0xffffff00 broadcast 192.168.9.255
ether 00:zz:zz:zz:zz:zz
ты. Очень часто дальнейшие модификации ядра строятся media: Ethernet autoselect (100baseTX <full-duplex>)
на модифицированной копии этого файла. В данном слу- status: active
plip0: flags=108810<POINTOPOINT,SIMPLEX,MULTICAST,NEEDSGIANT> mtu 1500
чае, мы именно так и поступим: lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
 Шлюз провайдера – по умолчанию 83.xxx.xxx.1. inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
 В сети присутствуют компьютеры пользователей – inet 127.0.0.1 netmask 0xff000000
192.168.9.31, 192.168.9.32.
 Наш домен (условно) – ourdomain.ru. Файл rc.conf, на мой взгляд, можно назвать ключевым
 Имя хоста (компьютера) – ourhost.ourdomain.ru. файлом конфигурации. Очень большое число параметров,
используемых системой, задается в виде соответствующих
Выполняем настройку сетевых карт. Можно исполь- переменных в этом файле. В том числе настройки сетевых
зовать утилиту sysinstall (/stand/sysinstall для FreeBSD 5.5 интерфейсов, файервола и NAT, используемых нами.
и /usr/sbin/sysinstall для FreeBSD 6.1) Но поскольку нам из-
вестны все необходимые параметры, то для упрощения Настройка шлюза
процесса и экономии времени мы будем задавать пара- Мы будем использовать «родной» для FreeBSD файервол
метры путем редактирования соответствующих конфигу- IPFW. Для этого мы должны внести некоторые изменения
рационных файлов. в ядро системы. Если возникли дополнительные вопросы
Для редактирования будем использовать текстовый ре- по перекомпиляции ядра, советую прочитать дополнитель-
дактор vi, присутствующий практически в любой системе ный материал: http://freebsd.org.ru/how-to/kernelconfig.html.
UNIX. Для администраторов, пока незнакомых с редакто- Заметьте, что нужно использовать исходные тексты
ром, могу порекомендовать замечательную статью Макси- ядра для соответствующей архитектуры. Поскольку ар-

№12, декабрь 2006 31


администрирование
хитектура нашего компьютера базируется на платформе Файл rc.firewall не рекомендуется редактировать. Вмес-
i386, то и ядро должно быть скомпилировано в соответс- то этого лучше воспользоваться соответствующей пере-
твии с платформой. Для владельцев компьютеров дру- менной firewall_type или более простым способом, описы-
гих платформ я рекомендую обратиться к соответствую- ваемым ниже.
щей литературе. При установке данного правила в «YES» подавляется
Исходники ядра по умолчанию лежат в каталоге вывод на дисплей:
/usr/src/sys/i386/conf. Соответственно переходим в данный
каталог: firewall_quiet="NO"

# cd /usr/src/sys/i386/conf Разрешить/запретить ведение лога событий:

Как правило, изменяют файл GENERIC, содержащий оп- firewall_logging="NO"


ции ядра, устанавливаемого по умолчанию. Для этого де-
лаем копию данного файла: Тип настройки файервола:

# cp GENERIC ourkernel firewall_type="UNKNOWN"

Открываем на редактирование новый файл ourkernel: по умолчанию FreeBSD использует правила из файла
/etc/rc.firewall.
# vi ourkernel В нем есть несколько готовых шаблонов:
 open – файервол разрешает прохождение всех паке-
и добавляем следующие опции: тов.
 client – рекомендуется для защиты только этого компью-
# тера. То есть файервол настроен как стандартный кли-
options IPFIREWALL #firewall
options IPFIREWALL_VERBOSE ↵ ентский компьютер. Он разрешает все исходящие со-
#enable logging to syslogd(8) единения и запрещает все входящие соединения, кро-
options IPFIREWALL_FORWARD ↵
#enable transparent proxy support ме соединений по 25 порту.
options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity  simple – предполагается для настроек простых шлю-
options IPFIREWALL_DEFAULT_TO_ACCEPT ↵
#allow everything by default зов и т. д. То есть в качестве простейшего файерво-
# ла, защищающего внутреннюю сеть от проникновения
options DUMMYNET
# извне. Мы будем настраивать более гибкую систему
options IPDIVERT #divert sockets правил, поэтому данный шаблон нами не использует-
ся не будет.
После сделанных изменений можно приступать к пере-  closed – Разрешается трафик через локальный интер-
компиляции ядра. фейс lo0. Прохождение остального трафика определя-
Выполняем команды: ется правилом по умолчанию. Как правило, это запрет
любого доступа, исключая внутренний интерфейс lo0
# config ourkernel (попросту говоря, разрешен только доступ «к самому
# cd /usr/src/sys/i386/compile/ourkernel
# make depend себе»)
# make  UNKNOWN – запретить загрузку файервольных правил
# make install
из конфигурационного скрипта по умолчанию. Файер-
Перегружаемся: вол никак не настраивается. Будет он пропускать тра-
фик или нет, зависит от конфигурации ядра системы.
# reboot Используется по умолчанию.

Если после перезагрузки сервер работает нормально, Эту же переменную в значении «filename» – «имя_фай-
приступаем к настройке файервола. ла» – можно использовать для задания собственного кон-
Для организации работы файервола используются сле- фигурационного файла для файервола.
дующие переменные, добавляемые при необходимости Например:
в файл rc.conf.
Разрешает или запрещает использование файервола: firewall_type="/etc/rc.firewall.newconfig"

# Set to YES to enable firewall functionality будет загружать настройки из созданного файла /etc/
firewall_enable="NO"
rc.firewall.newconfig.
Имя и местоположение файла, отвечающего за иници- «firewall_flags=””» – служит для передачи дополнитель-
ализацию файервола. ных аргументов при использовании firewall_type со значе-
нием filename.
# Which script to run to set up the firewall Наша задача состоит в том, чтобы создать систему, от-
firewall_script="/etc/rc.firewall"
вечающую следующим критериям:

32
администрирование
 Простота администрирования. /sbin/ipfw add 12960 deny tcp from ${intnet} ↵
to any 20,21,80,443
 Возможность модификации «на лету», незаметно /sbin/ipfw add 12970 deny tcp from any 20,21,80,443 ↵
для пользователей. Поэтому такие операции, как раз- to ${intnet}
/sbin/ipfw add 12980 deny udp from ${intnet} to any 20,21
рыв соединений и тем более перезагрузка для нас не- /sbin/ipfw add 12990 deny udp from any 20,21 to ${intnet}
желательны. #
#
 Гарантия того, что наша система будет работать на боль- /sbin/ipfw add 13000 allow tcp from ${intnet} ↵
шинстве машин. to ${mailserver} 25,110
/sbin/ipfw add 13010 allow tcp from ${mailserver} 25,110 ↵
to ${intnet}
В нашем примере скрипта все компьютеры локальной
#
сети делятся на две условные группы: одна группа при- /sbin/ipfw add 55010 allow tcp from any to any 1024-65534
вилегированная – это те, кому разрешен доступ в Интер- /sbin/ipfw add 55020 allow tcp from any 1024-65534 to any
/sbin/ipfw add 55030 allow tcp from any 1024-65534 to any
нет, используя наиболее употребительные сервисы, та- /sbin/ipfw add 55040 allow tcp from any to any 1024-65534
кие как: /sbin/ipfw add 55050 allow udp from any to any 1024-65534
/sbin/ipfw add 55060 allow udp from any 1024-65534 to any
 HTTP – порт 80; /sbin/ipfw add 55070 allow udp from any 1024-65534 to any
 HTTPS – порт 443; /sbin/ipfw add 55080 allow udp from any to any 1024-65534
# Deny all
 FTP – порты 20, 21 и от 1025 до 65535; /sbin/ipfw add 65534 deny ip from any to any
 SMTP-протокол для пересылки почты – порт 25;
 POP3-протокол для приема сообщений – порт 110. Создаем и редактируем скрипт rc.firewall.local.inet
для работы с привилегированной группой адресов:
Есть и другая группа, компьютерам из которой разрешен
доступ только к внешнему корпоративному серверу c IP-ад- # vi /etc/ rc.firewall.local.inet
ресом 83.xxx.xxx.2 (только протоколы SMTP и POP3). #!/bin/sh
Мы должны добиться, чтобы можно было изменять при- intnet="192.168.9.0/24"
privgroup={31,32}
вилегированную группу, что называется, «на лету», по воз- #
можности не разрывая установленных соединений. Для это- /sbin/ipfw delete 12310
/sbin/ipfw delete 12320
го мы из нашего скрипта вызываем дополнительный скрипт /sbin/ipfw delete 12330
rc.firewall.local.inet. Достаточно отредактировать и переза- /sbin/ipfw delete 12340
#
пустить этот дополнительный скрипт, не затрагивая всех /sbin/ipfw add 12310 allow tcp from ↵
остальных настроек файервола.
Дополнительно мы должны предусмотреть ситуацию,
когда меняются параметры сети, такие как IP-адрес шлю-
за провайдера. Для этого мы будем использовать в скрипте
локальные переменные. Например, при изменении шлюза
по умолчанию достаточно изменить значение переменной
intgateway и перезапустить скрипт rc.firewall.run.
Вот наш пример скрипта:

# vi rc.firewall.run

#!/bin/sh
extip="83.xxx.xxx.xxx"
intip="192.168.9.2"
intnet="192.168.9.0/24"
mailserver="83.xxx.xxx.2"
intgateway="83.xxx.xxx.1"
#
/sbin/ipfw -f flush &
#
/sbin/ipfw add 180 divert natd ip from ${intnet} ↵
to any out xmit fxp0
/sbin/ipfw add 190 divert natd ip from any to ${extip}
# ICMP
/sbin/ipfw add 500 allow icmp from any to any
# SSH
/sbin/ipfw add 10000 allow tcp from any to any 22
/sbin/ipfw add 10010 allow tcp from any 22 to any
# DNS
/sbin/ipfw add 11000 allow tcp from any to any 53
/sbin/ipfw add 11010 allow tcp from any 53 to any
/sbin/ipfw add 11020 allow udp from any to any 53
/sbin/ipfw add 11030 allow udp from any 53 to any
# Web FTP
/sbin/ipfw add 12000 allow tcp from me to any 20,21,80,443
/sbin/ipfw add 12010 allow tcp from any 20,21,80,443 to me
/sbin/ipfw add 12020 allow udp from me to any 20,21
/sbin/ipfw add 12030 allow udp from any 20,21 to me
#
# Script for the privilege group
/bin/sh /etc/rc.firewall.local.inet
# Deny other computer of LAN

№12, декабрь 2006 33


администрирование
${intnet}${privgroup} to any 20,21,80,443,1025-65535 Зато теперь мы можем после внесения соответствую-
/sbin/ipfw add 12320 allow tcp from ↵ щих изменений просто перезапустить скрипт для привиле-
any 20,21,80,443,1025-65535 to ${intnet}${privgroup}
/sbin/ipfw add 12330 allow udp from ↵ гированной группы.
${intnet}${privgroup} to any 20,21,1025-65535
/sbin/ipfw add 12340 allow udp from ↵
any 20,21,1025-65535 to ${intnet}${privgroup} # /bin/sh rc.firewall.local.inet

В скрипте для изменения состава привилегирован- Также мы можем вносить изменения и перезапускать
ной группы необходимо отредактировать переменную скрипт rc.firewall.run, хотя, по замыслу, это нам придется
privgroup, добавив/удалив в ней номер хоста в локаль- делать гораздо реже, чем в случае со скриптом привели-
ной подсети. гированной группы.
Например, чтобы добавить два компьютера с IP-ад-
ресами 192.168.9.33 и 192.168.9.45, нужно записать # /bin/sh rc.firewall.run
«privgroup={31-33,45}».
Использовать правила типа «/sbin/ipfw delete NNNNN» Поскольку мы написали свой собственный скрипт, об-
при старте системы, когда такого правила не было – не- нуляющий существующие правила и запускающий альтер-
множко некрасиво. При попытке удалить несуществую- нативную конфигурацию файервола, нужно подумать, как
щее правило система выдает на консоль сообщение сле- его запустить.
дующего вида: Во FreeBSD есть замечательный механизм запуска поль-
зовательских программ: файл rc.local. По умолчанию он от-
ipfw: rule 13031: setsockopt(IP_FW_DEL): Invalid argument
сутствует в системе.
При этом система продолжает нормально работать. Раз мы уже создаем данный файл, добавим в него ко-
Если все делать строго, то нужно создавать два скрипта: манду запуска демона natd, который отвечает за подде-
один запускать при старте, второй – при изменениях на хо- ржку NAT.
ду. Но тогда нужно будет вносить соответствующие изме- Демон natd запускается из файла rc.conf. (Опять этот
нения в оба скрипта. файл, поистине он играет ключевую роль для всей систе-
Поскольку основная цель – создать простую в админис- мы FreeBSD в целом!)
трировании систему, то данной проблемой в нашем случае Механизм запуска этого файла из rc.conf выполняется
можно пренебречь. посредством следующих переменных:

# -- путь к самому файлу natd


natd_program="/sbin/natd"
# Разрешить NAT (если firewall_enable == YES)
natd_enable="YES"
# Внешний интерфейс или IPaddress для использования
natd_interface=""
# Дополнительный флаги запуска natd
natd_flags=""

Но в этом случае мы будем использовать вызов демо-


на natd посредством rc.local. Команда:

# vi /etc/rc.local

автоматически создает файл /etc/rc.local и открывает его


на редактирование.
Добавляем в него следующие строки:

# Команда запуска natd


/sbin/natd -n rl0
# где «-n rl0» — имя интерфейса, на котором запускается NAT
#
# И запускаем наш скрипт для установки правил для файервола:
/bin/sh /etc/rc.firewall.run

Перезагружаемся и проверяем доступ к нужным ресур-


сам Интернета с компьютера из локальной сети.

1. Эви Немет, Гарт Снайдер, Скотт Сибасс, Трент Р.Хейн. UNIX.


Руководство системного администратора. «BHV», «Питер»,
2004 г.
2. Алексей Федорчук, Алексей Торн. FreeBSD. Установка, на-
стройка, использование. BHV, 2003 г.
3. Филипп Торчинский. Практическое пособие администратора
UNIX. «Символ», 2003 г.

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

В поисках анонимного
прокси-сервера

Иван Максимов
Вопрос о безопасном серфинге по Интернету поднимался не раз. При использовании
для этой цели прокси-сервера возникает вопрос, что лучше: искать прокси или создать свой?
Если искать – как быстрее? А если создавать – как проще?

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

З
ачастую возникает задача анонимно посетить не-
обходимый ресурс в локальной или глобальной се-
ти. Цели могут быть разные, первое и самое распро-
страненное в работе системного администратора – это тес-
тирование только что настроенной системы авторизации
сервера. Второе – анонимно ответить подозрительному
человеку по электронной почте, через веб-интерфейс сво-
ей почтовой системы. Третье, выполнить просьбу началь-
ства, скрытно посетить сайт конкурирующей фирмы. Чет-
вертое – просто быть уверенным, что, заходя в чат, IRC-ка-
нал или форум, нас не распознают.
Ситуации бывают абсолютно разные, возникают они
не каждый день, но все же бывают. Что тогда делать? Ис-
кать по Интернету прокси-лист? Но чаще всего в нем 90% Веб-интерфейс CGIProxy
недействующих ссылок. Просить друга администратора здание собственного cgi прокси-сервера, проанализиру-
дать доступ по ssh-протоколу, и, воспользовавшись lynx ем плюсы и минусы.
или links из консоли, посетить необходимый ресурс? Вы-
ход есть всегда, но хорошо иметь под рукой необходимые В поисках анонимных прокси
средства для анонимной работы. Задав в форме поиска Google ключевую фразу «proxy list»,
будет выведено «...примерно 45.900.00 для proxy list».
О прокси-серверах Как обработать подобную информацию? Конечно же, столь-
Вопрос о безопасном серфинге по Интернету поднимался ко листов не нужно. У многих есть 5-6 закладок на люби-
не раз. Существует множество методов скрыть свой реаль- мые страницы, где каждый день появляются обновленные
ный IP-адрес. Рассмотрим известную вам тему – как скрыть списки, но выборка и проверка прокси занимает немалое
свой реальный IP-адрес с помощью прокси-сервера. время, попробуем автоматизировать данную задачу стан-
Самое простое решение – это прокси c веб-интерфей- дартными средствами ОС Linux/BSD.
сом (например [1]). Заходим на страницу и в появившем- Независимо от того, есть ли у нас страницы-«фавори-
ся окне вводим необходимый URL. Метод самый простой, ты» с прокси-серверами или нет, нам понадобятся прокси-
не требуюет даже перенастраивать браузер, но очень час- листы, после сбора их необходимо отсортировать, удалить
то подобные сервисы, чтобы существовать, зарабатыва- дубликаты и проверить. Итак, приступим:
ют на рекламе, которую показывают нам. Кроме простоты
использования, данные веб-прокси имеют еще один плюс – #!/bin/bash
# Переменная счетчик
они долговечны. n=1
Но и минусы очевиды: реклама, невысокая скорость, от- echo "Всего ресурсов "`wc -l ./site.list`
while [ 1 ]
сутствие гибкости настроек и смены IP-адреса. Что ж, са- do
мое легкое – не значит самое хорошее. # Текстовым редактором sed построчно читаем файл site.list
# и заносим значение в переменную
В Интернете можно найти сотни списков http-прок- f1=`sed -n ''$n'p' ./sity.list`
си, от простых кэширующих до анонимных с поддержкой # Если переменная пуста, что означает конец файла –
# выходим из цикла
шифрования, антивирусной проверкой и «чистыми» лога- if [ "$f1" = "" ]; then
ми. Последние, как правило, пользуются большой популяр- echo "Список обработан"
exit 1
ностью, но они не бесплатны. Если необходимо, можно ку- fi
пить пару таких прокси, благо цена на обслуживание в ме- # Для наглядности выводим каждый раз номер строки
# и название ресурса
сяц у них колеблется от 1 до 50 долларов, хотя если прок- echo "$n $f1"
си стоит более 20-30 условных единиц – это не более чем # Считываем информацию с ресурса
curl $f1 --user-agent "Mozilla/4.0 (compatible; ↵
попытка его владельца заработать большие деньги. Что ж, MSIE 6.0; Windows NT 5.1)" | ↵
хороший прокси иметь под рукой всегда полезно, но не вся- grep -o "[0-9.]\+[0-9.]\+[0-9.]\+:[0-9]\+" >> ↵
proxy.list
кий готов платить деньги, да и анонимность тоже под воп- # Счетчик увеличивается на 1
росом (неизвестно где этот прокси расположен). let "n += 1"
done
Последний и, на мой взгляд, самый эффективный прок- # Количество прокси-серверов до удаления дубликатов
си – это root shell. Имея под рукой собственный сервер echo "Всего найдено"`wc -l proxy.list`
cat proxy.list | sort | uniq > proxy.list
на Linux/BSD, мы можем делать с ним очень многое: вы- # Количество прокси-серверов после удаления дубликатов
брать саму программу прокси (Squid, oops! и другие), до- echo "После сортировки осталось"`wc -l proxy.list`
бавить антивирус, отрегулировать кэш и выстроить каскад.
При этом все зависит только от нас: обновление антивиру- Рассмотрим скрипт подробнее. В файл site.list мы са-
са и прокси-сервера, настройка цепочки прокси. мостоятельно заносим «любимые» ресурсы с прокси-лис-
Тема настройки шлюзов и прокси-серверов под ОС Linux/ тами (или только что найденные). Например (имена ресур-
BSD очень хорошо освещена в Интернете, поэтому не бу- сов вымышлены):
дем ее касаться. Рассмотрим два первых вопроса: автома-
тизация процесса поиска, выбора, проверки прокси и со- http://www.proxy.com

№12, декабрь 2006 37


администрирование
http://www.proxy-list.com/list1.html талось их проверить на работоспособ- или нет, был получен не конечный ре-
http://www.proxy-list.com/list2.html
http://www.proxy-list.com/listN.html ность. В Интернете можно найти мно- зультат. Поэтому предлагаю вам рас-
жество программ, проверяющих по- смотреть решение с использованием
Желательно занести более 20-30 добные списки, но в основном эти про- cgi-прокси.
ресурсов. Утилитой wc подсчитаем граммы под ОС Windows и не бесплат-
строки в файле site.list и выведем их ко- ны (чаще пробные версии весьма ог- Работаем с CGIProxy
личество для наглядности. Текстовым раниченны). С самого начала было ясно, что для
редактором построчно читаем файл, Заметьте, что тестировать прокси- стабильности необходимо иметь свой
и утилитой curl выбираем из html-стра- серверы со своей машины очень неэ- собственный прокси-сервер, но что
ниц адреса прокси-серверов. При по- ффективно, так как мы будем ограни- если свободного доступа на удален-
сещении ресурсов лучше задейство- чены пропускной способностью кана- ном ресурсе по протоколу ssh нет?
вать параметр --user-agent, так как не- ла. Чтобы не зависеть от сторонних Да и конфигурировать удаленно прок-
которые ресурсы не удастся посетить разработчиков, Windows и пропускной си-сервер не всегда бывает удобно.
не представившись каким-нибудь по- способности нашего канала, восполь- Для подобных задач и существуют
пулярным браузером. В скрипте при- зуемся одним из многих on-line-прок- cgi-прокси. Их главное удобство: лег-
веден пример идентификации брау- си-чекером [2]. кость установки и конфигурирования,
зера Internet Explorer из Windows XP, Итак, в итоге мы получили список небольшой размер, возможность рабо-
но это необязательно, например, иден- рабочих прокси-серверов... или нет? тать удаленно по протоколу http (если
тификация Firefox из ОС семейства Было упомянуто, что файл с сайтами более ничего нет).
Linux будет выглядеть так: «Mozilla/5.0 по возможности должен содержать Рассмотрим ниже один из cgi-прок-
(X11; U; Linux i686; ru; rv:1.8.0.7) Gecko/ более 20-30 ресурсов. Это связано си-серверов, написанный на языке
20060909 Firefox/1.5.0.7». Утилитой grep с тем, что многие ресурсы дублируют- Perl – CGIProxy [3].
сделаем выборку необходимой инфор- ся по своему содержанию. В моем при- Итак, закачав скрипт, прист у-
мации со страницы. Заметьте, что мож- мере было обработано 32 сайта, най- пим к его установке. Как и любой cgi-
но сделать выборку и короче, напри- дено 1532 прокси-сервера, из них пос- скрипт, его достаточно просто помес-
мер, так: «[0-9.]\+:[0-9]\+». Но, к сожа- ле удаления дубликатов осталось 325, тить в cgi-bin директорию веб-серве-
лению, на страницах может быть мно- после проверки on-line-чекером было ра, и все готово к работе (см. рисунок).
го иной, подходящей под данную маску найдено рабочих 15, из них закрылись Главное – не забудьте проверить путь
информации (например, «время жиз- через 5 минут 4, остальные – в течение к интерпретатору языка perl, по умол-
ни» прокси), тогда в финальном файле часа. Возможно, этот метод и резуль- чанию значение равно #!/usr/bin/perl.
вы увидите много лишних данных. таты кому-то и подойдут, так как вре- Из пользовательских опций доступ-
На последнем этапе найдите и уда- мя работы скрипта и чекера достаточ- ны лишь 5:
лите дубликаты прокси-серверов но мало (около 7 минут), можно допол-  Remove all cookies – удалять все
в файле proxy.list, с помощью стандар- нительно автоматизировать переда- cookie.
тных команд sort и uniq. чу списка на on-line-чекер (тем же са-  Remove all scripts – удалять все
Все, в конечном файле мы получим мым curl, с помощью опций -F или -d), скрипты.
«чистый» список прокси-серверов, ос- но зависеть от удачи и ждать, повезет  Remove ads – удаление баннеров.
 Hide referrer information – скрытие
Коротко о CGIProxy «белые», так и «черные» списки по доме- информации о переходе.
CGIProxy представляет собой сетевую нам или IP-адресам), фильтры баннеров  Show URL entry form – отобра-
службу, позволяющую клиентам выполнять (опять же обычные списки) и другие по- жение/скрытие формы CGIProxy
запросы к ресурсам сети, скрывая реаль- лезные опции. на посещаемых сайтах.
ные сведения клиента (или проще говоря – Системные требования у скрипта очень
анонимный прокси-сервер). скромные: веб-сервер и интерпретатор Под робнее об опциях расска-
Первый релиз скрипта был выпущен языка Perl (версии выше 5.6.1). Замечу, жу немного позже. Как настраивать
13 августа 1998 г. Проект постоянно раз- что CGIProxy является nph-скриптом (Non- скрипт?
вивается, дорабатывается, исправляются Parsed Header). Данные скрипты полностью Ко н ф и г у р и р о в а н и е C G I Prox y
ошибки, вводятся новые функции. Послед- формируют http-заголовок, и веб-сервер не не должно вызвать затруднений,
няя доступная версия (на момент написа- обрабатывает выданные этими скриптами ведь это простой скрипт, написан-
ния статьи) 2.1beta15 от 26 октября 2006 го- данные, а передает результат браузеру без ный на Perl. Даже если язык вам пло-
да, размер скрипта 455 Кб. изменений. Для некоторых веб-серверов хо знаком, открыв файл любым текс-
Данный cgi-proxy является http, ftp-прок- указание в начале имени файла «nph-» обя- товым редактором, вы увидите в пер-
си, может работать по протоколу SSL, до- зательно, будьте внимательны. вой части скрипта все 50 параметров
ступны средства авторизации, имеет Также напомню, что для работы по про- (которые являются не чем иным, как
50 внутренних опций, которые позволя- токолу ssl необходимо, чтобы на сервере переменными) и богатую справку по
ют конфигурировать: cookie (сохранение, были установлены библиотека OpenSSL ним с примерами.
просмотр, удаление), обработку скрип- и модуль Net::SSLeay (их легко найти в пор- Итак, пользовательские опции
тов (полное их исключение из страниц, тах/пакетах всех современных Linux/BSD- (см. рисунок) доступны как адми-
фильтр), листы доступа (доступны как систем). нистратору, так и пользователю. Ес-

38
администрирование
ли скрипт будет использоваться не-
сколькими лицами, рекомендуется уб- CGI:IRC (client-perl.cgi, irc.cgi и nph-irc.cgi) и вспо-
рать данные параметры для посетите- Рассказывая о распространенных cgi- могательных каталогов (в них содержатся
лей (опция «$ALLOW_USER_CONFIG») скриптах, нельзя не упомянуть о еще одном картинки, звуки, модули), поэтому, перено-
по соображениям безопасности. Свя- знаменитом скрипте, написанном на Perl – ся скрипт на веб-сервер, будьте вниматель-
зано это с тем, что, если пользова- CGI:IRC [5]. Именно этот скрипт обеспе- ны. Для настройки скрипта отредактируйте
тель отключит опцию «Remove all чивает работу многим известным ресур- файл cgiirc.config (или возьмите его полную
scripts», анонимность серфинга уже сам («шлюзам в IRC»). Последняя доступ- версию cgiirc.config.full, но это не столь не-
будет не гарантирована (о чем нас ная версия на сайте проекта 0.5.9 от 6 ию- обходимо), замечу, что при всем разнооб-
предупреждают на сайте разработчи- ня 2006 года. Этот скрипт, как и CGIProxy, разии опций назначение их понятно с пер-
ков) и второй параметр «Hide referrer является nph-скриптом, поэтому требо- вого взгляда (default_port, default_server
information» скрывает от посещаемо- вания у них примерно одинаковые, за ис- и другие), благодаря чему настройка
го сайта данные, откуда «мы пришли», ключением версии Perl, для cgi:irc необ- не вызывает трудностей. Очень жаль,
если открыть данную опцию, директи- ходима версия 5.0.4 или выше. Програм- что в CGIProxy конфигурационный файл
ва HTTP_REFERER в заголовках чес- ма в отличие от cgi-прокси-сервера состо- также отдельно не вынесен, так было бы
тно выдаст информацию о наших пе- ит не из одного скрипта, а из 3 основных намного удобней.
реходах.
Дополнительно для анонимнос- отключать обработку скриптов (так как вопросов на сайте CGIProxy, вы може-
ти стоит раскомментировать опцию только в этом случае будет гаратиро- те найти список ресурсов, предостав-
«$USER_AGENT», так как она отве- вана анонимность), после посещения ляющих место под сайт с интерпрета-
чает за идентификацию нашей сис- 5-7 ресурсов проверяющие на ано- тором языка Perl.
темы. По умолчанию значение равно: нимность пользователя мне так и не
«Mozilla/4.05 [en] (X11; I; Linux 2.0.34 удалось увидеть свой IP, точные дан- Выводы
i586)», рекомендуется выставить что- ные о ОС и браузере. Проверить «се- Если выбирать между стабильным
то более распространенное и но- бя» на анонимность можно, к примеру, и нестабильным решением, стоит опи-
вое. Примеры браузера FireFox на ОС по ссылке [4]. раться, конечно, на первый вариант
семейства Linux и Internet Explorer Итак, в итоге все же был получен (с личным cgi-прокси), но исключать
на Windows XP были выше, но если хо- стабильный прокси-сервер, легкий вторую возможность (поиска) нельзя.
чется экзотики, можно представить- в установке, простой и гибкий в конфи- Иметь root shell где-нибудь в Европе
ся браузером Camino из MacOS X, за- гурировании. CGIProxy за свою просто- с установленным прокси-сервером, ко-
пись users-agent тогда будет иметь ту и в то же время за богатство возмож- нечно, еще намного удобнее, но такая
вид: «Mozilla/5.0 (Macintosh; U; Intel ностей часто используется на «анони- возможность доступна не всегда. Най-
Mac OS X; en-US; rv:1.8.0.7) Gecko/ майзерах», и если внимательно при- ти простой хостинг, даже без доменно-
20060911 Camino/1.0.3». глядеться на сайт по ссылке [1], мы уви- го имени, SQL и почтовых серверов,
Перечисленных изменений для бе- дим слегка измененный cgiproxy. но с интерпретатором языка Perl на-
зопасного серфинга достаточно. Из- Из минусов можно выделить: про- много проще. CGIProxy можно с легко-
менения в скрипте можно сохранить блемы при работе скрипта с веб-сер- стью закрыть, открыть, иметь в запасе
и хранить его локально, а в необходи- вером IIS от компании Microsoft (на сай- 2-3 штуки или просто хранить как за-
мый момент выгрузить на хост. Мож- те проекта описаны возможные про- пасной вариант, так как у большинства
но использовать CGIProxy и в каска- блемы и их решения) и все же сущес- системных администраторов есть до-
де, но это не очень удобно. твующую затрудненность конфигури- ступ к корпоративным страницам, ко-
Настройка скрипта достаточно рования. Как вы уже, наверное, заме- торые легко можно использовать в тес-
гибкая, множество списков доступа тили, по описанию сложно сориенти- товых целях. В различных ситуациях
к ресурсам и баннерным сетям поз- роваться: «где-то наверху», «в ниж- могут быть различные решения, глав-
воляет при желании достичь макси- ний части скрипта», к сожалению, ког- ное, чтобы всегда был выбор.
мальной производительности. На- да проект был «молодым», скрипт был Удачной работы!
пример, для экономии трафика мож- небольшим, размером 260 Кб (пос-
но включить замену gif-изображе- ледняя stable-версия 2.0.1 от 19 но- 1. http://www.anonymizer.ru – сайт Россий-
ния на пустой пиксель 1*1 (параметр ября 2002 г.), и разобраться в файле ского проекта «Anonymizer.Ru – сте-
$RETURN_EMPTY_GIF). не составляло труда, тогда как разыс- рильно».
Редактировать текст приглашения кать нужные опции, параметры, текс- 2. http://www.checker.freeproxy.ru/checker –
и другие сообщения прокси-сервера, товые поля в файле размером 450 Кб один из Российских Online Prox y
как не трудно догадаться, можно пря- уже сложнее и без использования по- Checker.
мо в скрипте. Блок сообщений нахо- исковых средств текстового редактора 3. http://jmarshall.com/tools/cgiproxy – офи-
дится в нижней части скрипта, поэто- найти необходимые параметры слож- циальный сайт проекта CGIProxy.
му при необходимости локализация но. Возможно, также у кого-то из вас 4. http://prox ydetect.com – проверка
CGIProxy будет очень проста. возникнут затруднения с поиском хос- на анонимность.
Несмотря на то что разработчики тинга, поддерживающего Perl, но обра- 5. http://cgiirc.sourceforge.net – официаль-
предупреждают нас о том, что следует тившись в раздел часто задаваемых ный сайт проекта CGI:IRC.

№12, декабрь 2006 39


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

Организуем работу офисного почтового


сервера на платформе Windows

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

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

40
администрирование
ся со временем доставки электронно-
го сообщения. Решений для организа-
ции электронного документооборота
с «внешним» миром и внутри компа-
нии существует множество. В их чис-
ле почтовые серверы крупных корпо-
раций, а также всевозможные проек-
ты для сегмента SMB (средний и ма-
лый бизнес). Ну и, наконец, не стоит за-
бывать про огромное количество бес-
платных почтовых сервисов в Интер-
нете. Отбросим гигантов (они способ-
ны сами о себе позаботиться) из рас-
смотрения и направим свой взор на не-
большие компании. Попробуем ра-
зобраться, что могут себе позволить
в этом плане компании среднего клас-
са, а также организации, находящиеся
в стадии становления.
«Здесь все уже давно решено
и прекрасно работает без финансовых
затрат», – скажете вы, кивая в сторо- Рисунок 1. Схема взаимодействия компонентов Office Mail Server
ну Open Source-продуктов, таких как,  Ус тановить в лока льной сети ватель локальной сети работает с но-
например, Sendmail. Спорить не ста- почтовый сервер, работающий утбуком, все приходящие для него со-
ну. Но, предположим, что есть сеть под Windows, и настроить его. общения, к примеру, на время коман-
гипотетической организации, работа-  Настроить клиентов в локальной дировки придется пересылать на бес-
ющая под управлением ОС Windows, сети для отправки/получения элек- платный почтовый ящик.
и в штате нет ни одного сотрудника, тронных сообщений через этот поч- OMS v. 0.8.10 работает на базе
знающего принципы работы *nix-сис- товый сервер. Windows 2000/XP/2003 Server (более
тем, а уж тем более Sendmail. Конеч- старые версии – на Windows 95/98/Me)
но, это не панацея, и для Windows есть В качестве локального почтово- и содержит в себе POP3- и SMTP-сер-
почтовые серверы, однако все они го сервера будем использовать Office веры, POP3- и SMTP-клиенты, веб-сер-
не бесплатны и требуют тщательно- Mail Server. Он бесплатен, стабилен вер, а также мощный сортировщик,
го подхода для установки и настрой- и невероятно функционален, для его фильтр спама, фильтр IP-адресов кли-
ки. Можно также сослаться на нали- настройки достаточно базовых зна- ентов и планировщик сеансов связи.
чие в Интернете бесплатных почто- ний о принципах работы по протоко- Что касается минимальных требова-
вых серверов, здесь достаточно завес- лам POP3 и SMTP. ний аппаратной части, то для обра-
ти речь о престиже компании, а также Стоимость такого решения не вы- ботки соединений, скажем, 50 пользо-
о качестве доставки через них элект- ходит за пределы 40-50 USD (не считая вателей сети достаточно будет иметь
ронных сообщений, и этот вариант от- ежегодных 20 USD провайдеру за про- машину на Intel Pentium III с тактовой
падет сам собой. Сегодня мы рассмот- дление регистрации доменного имени частотой 500 МГц и запасом опера-
рим недорогой способ организации и и ежемесячных минимальных отчисле- тивной памяти 256 Мб. Объем жест-
настройки почтового домена вашего ний за поддержку домена). кого диска выбирается прямо пропор-
предприятия. Основные плюсы такого подхода: ционально количеству сообщений, ко-
 нет необходимости выхода поль- торые будут храниться на самом сер-
Предварительная зователей локальной сети в Ин- вере (к примеру, у меня архив за пол-
подготовка тернет для проверки электронной года использования вырос на 2 Гб).
Задача ясна. Для ее решения нам пот- почты; Распространяется OMS в zip-архиве,
ребуется следующее:  не нужно организовывать DMZ скачать его вы можете адресу http://
 Зарегистрировать виртуальный и, как следствие, заниматься защи- www.classcom.by/oms.
почтовый домен у интернет-про- той почтового сервера от внешних
вайдера. Пусть наш домен называ- угроз. Схема взаимодействия
ется @company.ru. Свободно ли вы- компонентов
бранное доменное имя, можно за- К недостаткам же можно отнести Механизм работы построенной схе-
ранее проверить с помощью серви- англоязычный интерфейс, отсутствие мы представлен на рис. 1. Сплошны-
са whois на www.nic.ru. поддержки протокола IMAP, а также ми линиями показан поток сообще-
 Завести на сервере провайде- отсутствие возможности подключе- ний, прерывистыми – запросы на ус-
ра почтовый ящик. Например, ния к серверу из Интернета, то есть тановление соединения и организа-
company@provider.ru. в случае, когда какой-нибудь пользо- цию транспорта.

№12, декабрь 2006 41


администрирование
Итак, запускаем файл oms_view.exe.
Окно управления содержит log-viewer,
с помощью которого можно отсле-
дить возникающие в процессе рабо-
ты служб ошибки как в режиме online,
так и выбрав старые log-файлы. Здесь
же можно настроить варианты ра-
боты OMS, указать папку для хране-
ния log-файлов и вносить изменения
в конфигурацию. Для настройки за-
ходим «Tools → OMS Сonfiguration»
(см. рис. 2). Отмечу, что OMS изна-
чально имеет базовую конфигурацию
для пробного старта, поэтому будет
лучше, если вы остановите сервер до
внесения своих изменений, а затем на-
строенный OMS запустите как служ-
бу. Далее в процессе работы для того,
чтобы внесенные изменения вступили
в силу, следует их сохранить и переза-
пустить сервер.
Рисунок 2. С помощью графического интерфейса можно без труда настроить
конфигурацию почтового сервера, а также следить за корректной работой служб Рассмотрим подробнее настройки
конфигуратора.
Всю работу по реализации транс-  если письмо адресовано пользова- General. Настраиваются следую-
порта «Internet – company@provider.ru» телю не нашего почтового домена, щие параметры:
и обратно обеспечивает провайдер, на- переслать его адресату, используя  имя локального почтового домена
ша же дальнейшая задача – корректно внешний, указанный в конфигура- (все, что после @);
организовать поток почтовых сообще- ции, SMTP-сервер. Правила не пре-  количество суточных log-файлов,
ний к конечному пользователю и от не- тендуют на полноту описания, по- которые будет хранить сервер (ста-
го. Получение и отправка сообщений чему – читайте дальше. рые удаляются);
локального почтового домена выпол-  адрес, через который будет осу-
няется POP3- и SMTP-клиентами. Со- Особняком в этой схеме стоят хра- ществляться переадресация POP3-
общение, не прошедшее фильтр спа- нилище данных и веб-сервер. По сути клиентом сообщений, не предна-
ма при работе POP3-клиента, может своей, хранилище – это папка maildrop значенных пользователям локаль-
либо быть оставлено на сервере про- в корневой директории OMS, в которой ного домена; как правило, на то,
вайдера, либо удалено без его загруз- временно либо постоянно хранятся все что указано в данном случае в по-
ки с сервера. Экономия входящего тра- проходящие через OMS сообщения. ле Отправитель (from:), надеяться
фика налицо. С помощью веб-сервера клиенты мо- не приходится; большинство SMTP-
Клиентские приложения взаимо- гут поменять пароль доступа к своему серверов требуют наличия валид-
действуют с POP3- и SMTP-сервера- почтовому ящику, а также посмотреть ного адреса отправителя и не при-
ми для получения и отправки своих список зарегистрированных на серве- мут к пересылке такие сообщения;
сообщений. Будет ли разрешено под- ре пользователей. в нашем случае можно указать имя
ключение клиента к серверу, контро- company@provider.ru;
лируется фильтром IP-адресов. Рас- Установка  локальный пользователь, который
пределением входящей почты по ящи- и первоначальное будет получать все письма, прохо-
кам пользователей занимается встро- конфигурирование OMS дящие через OMS (архив), его мож-
енный сортировщик. Правила его ра- Распаковываем скачанный архив но не указывать, если архивация
боты следующие: в удобное место на диске. Процесс на- почтового потока не нужна.
 если письмо адресовано пользо- стройки может выполняться через ин-
вателю нашего почтового домена туитивно понятный графический ин- Здесь же указывается, нужно ли бу-
и такой пользователь существует, терфейс либо посредством внесения дет пересылать письма для пользова-
положить письмо в его ящик (со- изменений в конфигурационный файл телей, не входящих в локальный почто-
хранить в архиве – опционально); oms.cfg. Мы рассмотрим первый из них. вый домен, через реальный SMTP-сер-
 если письмо адресовано пользо- В распакованной папке находятся два вер. Для этого нужно установить галоч-
вателю нашего почтового домена запускающих сервер файла: oms.exe, ку напротив «Relay messages to external
и такого пользователя не сущест- который нужен для запуска OMS в ка- user in local domain».
вует, положить письмо в ящик пос- честве службы, и oms_view.exe, слу- Users. Указываются имя пользова-
тмастеру (сохранить в архиве – оп- жащий для настройки и диагности- теля, пароль, псевдоним (alias), крат-
ционально); ки работы. кое описание и размер почтового ящи-

42
администрирование
ка. Указанный псевдоним автомати- в защите локальной сети от «заразы»,  имя пользователя и пароль, при ис-
чески прописывается SMTP-клиентом которая может содержаться в почто- пользовании APOP-аутентифика-
вместо локального адреса пользовате- вом сообщении, так как все сообще- ции пароль отправляется на сер-
ля. Для ввода пароля используйте ла- ния, не предназначенные пользова- вер не открытым текстом, а переда-
тинские символы и цифры. телям вашего домена, но прошедшие ется хэш пароля и случайной стро-
Schedules. В этом меню настраи- спам-фильтр, будут переправлять- ки, но такой метод поддерживают
ваются расписания для запуска POP3- ся в ящик постмастеру. Это, конечно, не все серверы;
и SMTP-клиентов. в идеале, если какой-нибудь из поль-  расписание для запуска клиента;
IP filters. Здесь настраиваются зователей вашего почтового домена  используемый фильтр спама;
IP-адреса компьютеров или целых не засветился у спамеров, иначе ему  используемый сортировщик, рядом
подсетей, которым будет разрешен придется поменять адрес электрон- указывается список адресов поль-
или запрещен доступ к POP3-, SMTP- ной почты. зователей, которым будет достав-
и веб-серверам. По умолчанию настро- SMTP server. Здесь нужно указать лено сообщение, не переправлен-
ены разрешающие фильтры для заре- порт и тайм-аут подключения к SMTP- ное правилами сортировщика, ес-
зервированных IP-адресов, используе- серверу, максимальный допустимый ли не указан ни один адрес, оно пе-
мых в локальных сетях. В нашем слу- размер сообщения, которое может реправляется постмастеру;
чае здесь можно ничего не менять. До- пройти через этот SMTP-сервер, мак-  максимально допустимый размер
ступ к серверам запрещается в сек- симальное количество сессий, а так- входящего сообщения, если сооб-
ции BAN внесением IP-адреса ком- же выбрать фильтр IP-адресов, для ко- щение превышает этот размер, ска-
пьютера или целой подсети (для од- торых будет разрешен либо запрещен чивается только заголовок, а те-
ного компьютера используется маска доступ к серверу. Отметив галочкой ло заменяется сообщением OMS,
255.255.255.255). «Enable connections from all IPs, but …», по умолчанию значение равно 0, что
Sorter rules. Сортировщик писем вы тем самым запретите отправку поч- означает отсутствие ограничений;
применяется при настройке POP3-кли- ты для компьютеров, указанных в спис-  количество сообщений, после за-
ента OMS. Основное правило его ра- ке BAN выбранного фильтра IP-адре- грузки которых необходимо за-
боты следующее: если поле сообще- сов, позволив получать и отправлять пускать сессию к лиента зано-
ния (например, to или from) содержит почту в рамках локального почтово- во, этот параметр полезно указы-
указанную подстроку, то переправить го домена. вать при наличии некачественно-
это письмо адресату такому-то. Сорти- Список параметров для настрой- го соединения, по умолчанию – 0
ровщиков может быть несколько, так- ки POP3- и веб-серверов одинаков. (все скачивается за одну сессию).
же как и POP3-клиентов, поэтому для Нужно выбрать порт и тайм-аут под-
каждого POP3-клиента можно назна- ключения, максимальное количество Запуск в работу
чить своего сортировщика. сессий, а также необходимый фильтр В конечном итоге мы получили на-
В OMS также имеется возможность IP-адресов. строенный почтовый сервер. Запуск
использовать внешний сортировщик SMTP client. Обеспечивает транс- его в качестве службы произведем ко-
писем. Директорию, в которой он на- порт почты от SMTP-сервера OMS мандой «\oms.exe /install». После это-
ходится, а также дополнительные па- в Интернет. Поэтому здесь необходи- го в корневом каталоге OMS будет со-
раметры можно указать в настройках мо указать имя SMTP-сервера провай- здан файл oms.cfg.dump, который бу-
POP3-клиента. дера, например, smtp.provider.ru, порт дет указывать, какая конфигурация
Spam filters. Процесс настройки и тайм-аут подключения к этому серве- используется для работы.
фильтра сродни настройке правил сор- ру, имя пользователя и пароль для ав- Построенная нами схема доступ-
тировщика: если поле почтового сооб- торизации на сервере, а также распи- на в понимании, проста в настройке
щения содержит указанную подстро- сание, по которому SMTP-клиент бу- и обеспечивает достаточный уровень
ку, то удалить сообщение с сервера, дет запускаться. безопасности (особенно если у про-
не загружая, либо оставить на серве- POP3 client. Таких клиентов в от- вайдера стоит мощный фильтр спа-
ре. Защита входящего почтового тра- личие от SMTP-клиентов может быть ма). Стоит отметить, что это не единс-
фика от спама – это непрерывный про- несколько. твенный способ применения Office Mail
цесс. Здесь нужна особая вниматель- Определяемые параметры: Server. Все зависит от полета фантазии,
ность и скрупулезность, чтобы не на-  имя POP3-сервера провайдера; светлой головы и «прямых» рук того,
вредить себе же самому. Потому как  порт и тайм-аут подключения; кто собирается его использовать.
может возникнуть ситуация, когда
указанная в поле, например, to: (кому)
подстрока будет содержаться в адре-
се пользователя нашего почтового до-
мена. Нетрудно предположить, что ни
одного сообщения из вне этот пользо-
ватель не получит.
Вообще фильтр спама вкупе с сор-
тировщиком играют серьезную роль

№12, декабрь 2006 43


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

MeTA1: почтовый сервер на новый лад

Сергей Супрунов
Мы уже привыкли к «великолепной четвёрке» – Sendmail, Postfix, Exim, qmail – на рынке
открытых серверов электронной почты. Sendmail хоть и занимает первую строчку
«хит-парада», всё же неуклонно теряет свои позиции. Но команда разработчиков, похоже,
не собирается так просто сдаваться...

Зачем нужен «ещё один» Таким образом, на свет появился основополагающую цель не повлия-
Sendmail? Sendmail X, недавно переименованный ла, так что сказанное выше справед-
Основным недостатком «старичка» в MeTA1. В качестве основных требо- ливо и для MeTA1. На данный момент
Sendmail, который сразу же упоминает- ваний к разрабатываемой системе де- он не поддерживает функции моди-
ся, как только речь заходит о сравнении кларируются: фикации сообщений, однако для буду-
различных почтовых серверов, являет-  полная поддержка RFC2821 и ряда щих версий такая возможность не ис-
ся его монолитная архитектура. Разме- расширяющих стандартов; ключается.
щение всего функционала в одном дво-  надёжность, исключающая потерю О с н о в н о е о тл и ч и е M eTA1 о т
ичном файле, безусловно, тянет за со- сообщений; Sendmail – его модульность. Подоб-
бой целую массу проблем: и не слиш-  гибкость, позволяющая заменять но Postfix и Qmail, этот пакет состоит
ком эффективное расходование ресур- различные компоненты системы, из нескольких взаимодействующих
сов; и неустойчивость системы в целом, наращивать функциональность компонентов, каждый из которых ре-
когда ошибка в одном компоненте мо- и т. д. без необходимости перестра- шает свою отдельную задачу и работа-
жет привести к полной неработоспособ- ивать весь пакет; ет с правами своего пользователя.
ности сервера; и сложность разработ-  масштабируемость, т.е. способ- Это повышает устойчивость пакета
ки... Также редко кто забывает о «дыря- ность наращивать производитель- к ошибкам в той или иной подсистеме,
вом» прошлом этого пакета, по инерции ность (почти) пропорционально а также поднимает общий уровень бе-
интерполируя это и на настоящее, и да- увеличению вычислительной мощ- зопасности пакета – за счёт разграни-
же на будущее. Ну а сложность настрой- ности оборудования; чения прав доступа взлом одной под-
ки – это вообще притча во языцех, хотя  расширяемость; системы не оказывает столь сильно-
типовая настройка Sendmail уже очень  удобство сопровождения, выра- го влияния на сервер в целом. При-
давно занимает лишь десяток-другой жающееся в соблюдении опре- чём нужно заметить, что все програм-
простых и, что называется, интуитив- делённых стандартов кодирования, мы, кроме MCP, реализованы с подде-
но понятных строк в mc-файле. что позволит сторонним разработ- ржкой многопоточности.
Можно долго спорить о том, на- чикам без труда разобраться в ис- На рисунке представлена струк-
сколько серьёзны эти недостатки (и не- ходных текстах и при необходимос- турная схема MeTA1. Входящие сооб-
достатки ли это вообще), но понятно ти внести в них те или иные изме- щения обрабатываются программой
одно – «имидж» Sendmail на данный нения; smtps (SMTP-сервер), в задачи кото-
момент не слишком хорош, особен-  портируемость, т.е. возможность рой входит приём входящих сообще-
но среди начинающих системных ад- без существенных модификаций ний и их помещение в очередь. Взаи-
министраторов, и как бы разработчи- переносить пакет на различные модействующий с SMTP-сервером, мо-
ки ни старались улучшать этот пакет, программные и аппаратные плат- дуль SMAR (address resolver) выполня-
на него всё равно смотрят искоса. формы. ет «прогон» адресов получателя и от-
Необходимость избавиться от этой правителя по базам access, aliases,
«кармы» ощущают, видимо, и сами А что внутри? mailertable и т. д. В его же юрисдик-
разработчики Sendmail, и в результа- MeTA1 объявлен как агент пере - цию входит и реализация «грейлис-
те они во главе с Клаусом Асманом ре- дачи сообщений (message transfer тинга», о которой чуть подробнее чи-
шили пойти на «реинкарнацию» – со- agent, MTA). Как сказано на домаш- тайте дальше.
здание практически с нуля нового па- ней странице «родительского» про- Очередь представляет собой не-
кета, на новых принципах, учитывая екта (http://www.sendmail.org/sm-X), сколько хранилищ. Содержимое пи-
предыдущий опыт и стремясь испра- Sendmail X нацелен на то, чтобы стать сем, включая информацию заголов-
вить проблемы, присущие нынешним эффективным и безопасным почто- ков, помещается на диск в так назы-
версиям Sendmail. вым шлюзом. Смена названия на эту ваемое хранилище контента (CDB);

44
администрирование
информация конверта входящих сооб-
щений (передаваемая в командах MAIL
и RCPT в процессе SMTP-диалога) по-
падает во входящую очередь, разме-
щаемую в оперативной памяти (IQDB),
и дублируется на диск в так называе-
мое «резервное» хранилище (IBDB).
Управляет очередью программа qmgr
(менеджер очереди).
Если сообщение должно быть пере-
дано удалённому получателю, то дан-
ные его конверта перемещаются в ак-
тивную очередь (AQ), которая периоди-
чески обрабатывается планировщиком
менеджера QMGR. Когда планировщик
принимает решение об отправке дан-
ного сообщения, его содержимое из
CDB вместе с «конвертной» информа- Структура MeTA1
цией передаётся SMTP-клиенту (про-
грамма smtpc). Если отправка завер- Второе заметное изменение – торыми он будет запускаться... Пожа-
шается успешно, информация конвер- формат конфигурационного файла. луй, это понятнее и удобнее в работе,
та передаётся в IBDB для протоколиро- Он стал «Си-подобным» (популярный чем различные «фичи» и «опции» при-
вания, а само сообщение из CDB уда- ныне XML-синтаксис Асмана, видимо, вычного нам mc-файла.
ляется. В случае ошибки сообщение не вдохновил), и в нём для каждой под- Таким же образом задаются на-
(точнее, конверт плюс некоторая слу- системы задаётся своя «подконфигу- стройки для остальных модулей: smtpc,
жебная информация) переносится на рация». Все настройки сосредоточены qmgr, smar... По умолчанию устанавли-
диск в очередь отложенных сообще- в файле /etc/meta1/meta1.conf. В нём вается вполне работоспособная кон-
ний (DEFEDB), и попытки повторной можно задать глобальные парамет- фигурация; подробности по тем или
отправки предпринимаются позже – ры (такие, как имена коммуникацион- иным параметрам вы всегда сможете
как только сообщение «отлежится» ных сокетов для взаимодействия час- найти в README-файле.
в DEFEDB определённое время, плани- тей системы) и секции параметров от- Кстати, MeTA1 позволяет очень
ровщик вновь переносит его в AQ. дельных модулей. Например, так за- просто запустить несколько однотип-
Координацией работы всех моду- даётся конфигурация SMTP-сервера ных модулей с различными парамет-
лей занимается менеджер MCP, кото- по умолчанию: рами, для чего достаточно задать не-
рый, собственно, и превращает всю эту сколько «именованных» секций для со-
россыпь отдельных программ в еди- smtps { ответствующего модуля:
log_level = 11;
ное целое. log { facility=mail; ↵
На данный момент в пакет MeTA1 ident="smtps"; } smtps SERV1 { ... }
CDB_gid = 262; smtps SERV2 { ... }
не включены агенты локальной до- wait_for_server = 4;
ставки (LDA) и submission-агент (MSA). listen_socket { type=inet; ↵ Например, таким образом можно
port = 25; }
Но для построения полнофункциональ- start_action = pass; организовать работу сервера на раз-
ной системы, способной взаимодейс- pass_fd_socket = smtps/smtpsfd; личных портах (в «дефолтном» фай-
user = smxs;
твовать с локальными пользователя- path = "/usr/local/libexec/smtps"; ле конфигурации показан пример за-
ми, необходимый функционал можно arguments = "smtps -f ↵ пуска двух экземпляров сервера –
/etc/meta1/meta1.conf";
обеспечить сторонними программа- } один как MTA на 25-м порту, другой –
ми, совместимыми с Sendmail. Напри- на порту 587).
мер, в качестве LDA вполне можно ис- Здесь задаются параметры прото- Отмечу ещё некоторые новшес-
пользовать procmail (в каталоге contrib колирования работы модуля (первые тва. Например, MeTA1 намного про-
архива исходных текстов MeTA1 мож- два параметра), номер группы для до- ще заставить работать в chroot-окру-
но найти пару патчей для эффективной ступа к CDB, информация о прослу- жении. Хотя если учесть, что с пра-
работы по протоколу LMTP). шиваемом сокете, имя пользователя, вами суперпользователя теперь ра-
Для обработки исходящих сообще- путь к «бинарнику», параметры, с ко- ботает лишь mcp, прослушивающий
ний требуется либо клиент, умеющий
работать непосредственно по прото- Версии MeTA1 ности... В конце 2006 года ветвь 1.0 бы-
колу SMTP, либо сторонняя MSA-про- Sendmail X 0.0.0.0 увидел свет 30 октяб- ла выделена в «отдельное производс-
грамма (например, в этой роли может ря 2005 года. Буква «X», видимо, наме- тво», получив наименование MeTA1. На мо-
работать Sendmail; можно найти и от- кала на то, что этот пакет вполне может мент написания статьи текущей была вер-
дельные программы на эту роль, такие со временем стать версией Sendmail 9 сия 1.0.PreAlpha12.0, вышедшая 11 ноября
как mini_sendmail). или Sendmail 10, в зависимости от готов- 2006 года. Сайт проекта – www.meta1.org.

№12, декабрь 2006 45


администрирование
Несмотря на раннюю версию, ни-
Документация meta1.conf(5), mcp(8), qmgr(8), smar(8), каких проблем ни с компиляцией,
Метод «научного тыка», безусловно, smtpc(8) и smtps(8). Но всё же основ- ни с установкой не возникло – ин-
один из самых популярных и порой да- ным источником информации на данный сталляция прошла безошибочно
же весьма эффективен, но всё же луч- момент остаётся файл README. В дис- и на FreeBSD 6.1, и на моей домашней
ше иметь под рукой официальное руко- трибутиве он поставляется в самых раз- Ubuntu 6.06. Единственный момент,
водство. Man-страницы помогут быст- о котором нужно не забыть, – это то,
личных форматах – txt, pdf, html, tex и т. п.
ро окинуть взглядом основные ключи за- Найти его (наряду с др-угими документа- что вам предстоит вручную сформи-
пуска той или иной программы, входящей ми) можно на домашней странице проек- ровать требуемую «инфраструктуру»,
в пакет. В дистрибутиве их 7: meta1(8), та – www.meta1.org. в частности, создать учётные записи
необходимых для работы пользовате-
25-й порт (он относится к привилегированным), это кажет- лей и соответствующие группы.
ся несколько излишним, но в ряде случаев может оказать- Используйте для этого принятые в вашей системе инс-
ся полезным. трументы; результат должен быть таким:
В MeTA1 появилась «родная» поддержка TLS и SASL.
По умолчанию эти функции включены при сборке, но при # grep smx /etc/passwd
желании вы можете их и отключить. Сохранилась концеп- meta1s:*:260:260:meta1 SMTPS:/nonexistent:/sbin/nologin
ция почтовых фильтров (milter), здесь они именуются policy meta1q:*:261:261:meta1 QMGR:/nonexistent:/sbin/nologin
meta1c:*:262:262:meta1 SMTPC:/nonexistent:/sbin/nologin
milters (pmilters). meta1m:*:263:263:meta1 misc:/nonexistent:/sbin/nologin
К услугам сторонних разработчиков – всесторонний meta1:*:264:264:meta1 other:/nonexistent:/sbin/nologin

API, позволяющий воспользоваться всеми функциями # grep smx /etc/group


фильтров. В дистрибутиве в каталоге contrib можно най-
meta1s:*:260:
ти несколько примеров milter, в том числе и для работы meta1q:*:261:
со SpamAssassin. meta1c:*:262:meta1s
meta1m:*:263:meta1s,meta1q
По сравнению с Sendmail, в MeTA1 расширились средс- meta1:*:264:
тва борьбы со спамом. В частности, появилась встроенная
поддержка технологии «серых списков» (greylisting) – рань- Если в вашей системе есть утилита getent, то для досту-
ше она реализовывалась с помощью программ сторон- па к информации, хранящейся в административных базах,
них производителей, таких как milter-greylist. Правда, нуж- правильней будет использовать её.
но заметить, что сделана она несколько «лениво» – вмес- После этого основные операции установки выполняют-
то триплетов «IP-адрес/отправитель/получатель» учиты- ся стандартным образом: распаковка архива с исходника-
вается только IP-адрес, который может иметь один из трёх ми, переход в полученный каталог, конфигурация (сцена-
статусов: рию configure, как обычно, можно передать ряд парамет-
 unknown – если он ранее не встречался или его «срок ров, влияющих на поддержку тех или иных функций, та-
годности» истёк; ких как SASL или BDB; подробности см. в документации),
 greylisted – если соединение с этого IP-адреса было от- сборка, инсталляция. Но, поскольку мы имеем дело с до-
клонено с временной ошибкой и фильтр ждёт повтор- статочно ранней версией, после сборки рекомендуется вы-
ного соединения через определённый интервал вре- полнить тесты:
мени;
 whitelisted – если повторная отправка с данного адреса $ make check
была выполнена спустя требуемое время.
В файле README указывается на некоторые «типич-
Настройки грейлистинга задаются в конфигурации ные» ошибки. Например, одна из них – t-hostname – воз-
модуля SMAR (помимо различных временных интерва- никает, когда не удаётся определить полное имя хоста
лов здесь можно задать и IP-маску, позволяющую счи- (full qualified host name, FQHN). Если вы тестируете MeTA1
тать «совпадающими» все IP-адреса, входящие в задан- на машине, которой не требуется такое имя, то чтобы не по-
ную подсеть). лучать ошибку, просто внесите в /etc/hosts что-нибудь по-
Кстати говоря, здесь же, в секции smar, задаются и па- хожее на FQHN:
раметры DNSBL – более привычной для администраторов
Sendmail технологии противостояния спаму. 127.0.0.1 localhost toshiba toshiba.notebook.my

Лучше один раз попробовать... После этого все тесты должны пройти нормально (у меня
Посмотрим на практике, что же из себя представляет время от времени проскакивала ошибка t-dns-1, но на неё
MeTA1 – на примере версии 1.0.PreAlpha12.0. Очевидно, можно не обращать особого внимания – она лишь гово-
что на данном этапе разработки речь не идёт ни о преком- рит о том, что некоторые DNS-запросы не «уложились»
пилированных пакетах, ни даже о присутствии этой про- в отведённые для них по умолчанию интервалы времени).
граммы в коллекции портов. Так что единственный способ Теперь осталось завершить установку:
«пощупать» это творение Клауса Асмана – сборка из ис-
ходных текстов. $ sudo make install

46
администрирование
По умолчанию все конфигурационные файлы будут со- тественно, всегда можно подправить в конфигурацион-
средоточены в каталоге /etc/meta1. Если вам доводилось ном файле):
работать с Sendmail, то из «старых знакомых» сразу пос-
ле инсталляции вы встретите здесь лишь файл псевдони- $ cd /var/log
$ ls -l mail.*
мов – aliases. Остальное – access, mailertable и т. д. – при не-
-rw-r--r-- 1 root root 2480 2006-11-16 21:13 mail.err
обходимости придётся создавать вручную. Для быстрого -rw-r--r-- 1 root root 6237 2006-11-17 20:30 mail.info
и лёгкого создания хэш-таблиц для этих файлов предус- -rw-r--r-- 1 root root 6237 2006-11-17 20:30 mail.log
-rw-r--r-- 1 root root 3105 2006-11-16 21:13 mail.warn
мотрен Makefile, то есть после внесения изменений доста-
точно лишь выполнить команду make. Одна из наиболее вероятных причин проблем с запус-
Все необходимые для работы каталоги (в частнос- ком (обычно о ней свидетельствуют массовые записи типа
ти, очередь, которая будет размещена по умолчанию «Permission denied») – ошибки в создании учётных записей
в /var/spool/meta1) должны быть созданы автоматически нужных пользователей и групп. Например, это может быть
в процессе инсталляции. Так что уже можно попробовать вызвано неверно установленным UID или отсутствием нуж-
запустить сервер. ного пользователя в «чужой» группе (например, meta1s дол-
Стартовый скрипт размещается по умолчанию в доволь- жен входить помимо своей группы meta1s также и в груп-
но непривычном месте – в /var/spool/meta1, там же, где и оче- пы meta1m и meta1c). Наличие пользователей, кстати гово-
редь. Называется он mcp.sh и принимает в качестве пара- ря, можно проверить с помощью входящего в дистрибутив
метра команды start, stop и restart. Им и воспользуемся: скрипта misc/sm.check.sh:

# cd /var/spool/meta1 $ cd meta1-1.0.PreAlpha12.0/misc
# ./mcp.sh start $ ls -l mail.*

Никаких сообщений о результате этой операции вы на ./sm.check.sh: pre-installation check successful

консоль не получите, и лишь обнадёживающий шелест го-


ловок жёсткого диска подскажет вам, что ваша команда Правда, он не проверяет вхождение пользователей
принята к исполнению. в нужные группы, так что об этом вам придётся позабо-
Убедиться в том, всё ли запустилось, можно, просмот- титься самостоятельно. Если придётся подправлять пра-
рев список запущенных процессов: ва доступа к уже созданным файлам и каталогам, сверь-
тесь с файлом README, где подробно расписано, что ко-
# ps axouser,command | egrep "mcp|qmgr|smtp|smar" му должно принадлежать и с какими правами.
root /usr/local/sbin/mcp -l -p mcp.pid /etc/meta1/meta1.conf Нужно заметить, что MeTA1 более строго относится
meta1m smar -f /etc/meta1/meta1.conf к стандартам. Например, во время SMTP-сеанса такой воль-
meta1q qmgr -f /etc/meta1/meta1.conf
meta1c smtpc -f /etc/meta1/meta1.conf ности, как «mail from: user@server.ru» он не допустит, руг-
meta1s smtps -f /etc/meta1/meta1.conf нувшись про «501 5.1.7 Bad sender’s mailbox address syntax».
Адрес должен непременно быть в виде <user@server.ru>,
Как видите, с правами root исполняется только «дис- причём пробел между двоеточием и открывающей угло-
петчер» mcp (другие модули вы и не сможете запустить вой скобкой не допускается.
от имени суперпользователя). Но ему по-другому и нельзя – Для адреса отправителя (точнее, для его доменной час-
он должен иметь достаточные права для работы на приви- ти) выполняется разрешение имени, и в случае неудачи ад-
легированном порту. Ключ -l указывает на то, что работа рес не принимается. Для адреса получателя такая провер-
сервера будет протоколироваться (по умолчанию исполь- ка не выполняется.
зуется syslog); -p сообщает имя pid-файла (опять-таки раз- В остальном типичный SMTP-сеанс с сервером будет
мещаемое в /var/spool/meta1; хотя может так и удобнее, ког- выглядеть как обычно, не считая того, что текстовые пояс-
да всё, относящееся к работе почтового сервера, сосредо- нения даются, скорее, в порядке соблюдения формальнос-
точено в одном месте). Последним параметром передаёт- тей, а не для того, чтобы действительно что-то пояснить то-
ся полный путь к основному конфигурационному файлу. му странному пользователю, который надумает поработать
При желании эти ключи можно изменить непосредственно с SMTP-сервером через telnet.
в mcp.sh (никто не мешает вам создать свой сценарий за-
пуска или даже вызывать программу mcp вручную). Ждём релиза
Остальные программы пакета работают с правами Итак, на данный момент MeTA1, несмотря на очень скром-
своего отдельного пользователя. Они запускаются моду- ный номер версии и альфа-статус, уже выглядит весьма
лем mcp, так что вам об этом беспокоиться не нужно. Пе- достойно. Во время небольшого тестирования каких-либо
редаваемые параметры при необходимости можно подпра- ошибок и сбоев выявлено не было. Хотя на «боевой» сер-
вить в meta1.conf. вер я пока что ставить этот пакет повременю.
Если что-то пойдёт не так, то первым делом загляните Задумка разработчиков понятна – опираясь на собс-
в лог-файлы. Поскольку MeTA1 по умолчанию протоколи- твенный опыт и опыт конкурирующих SMTP-серверов, воб-
рует свою работу, используя syslog, то имена и состав лог- рать в пакет всё самое лучшее и, по возможности, исклю-
файлов будут определяться настройками в /etc/syslog.conf. чить любые недостатки. Пока что промежуточный результат
В Ubuntu это четыре файла в /var/log (хотя фактически три, выглядит неплохо. Что получится в итоге – увидим. Я лич-
поскольку mail.info и mail.log дублируют друг друга, что, ес- но с нетерпением жду первого релиза.

№12, декабрь 2006 47


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

Делимся впечатлениями о дистрибутиве


Linux XP Desktop

Дмитрий Шурупов
Минувшей осенью российская компания LINUX-ONLINE выпустила обновление к своему
Linux-дистрибутиву Linux XP Desktop – 2006 SR2, напомнив сообществу о своих оригинальных
подходах к Linux-бизнесу.

Идеологический вызов рые им видятся неудобными для мар- speech», UNIX-way и т. п.), разработ-
Linux XP Desktop – тот случай, когда кетинга. В частности, в манифесте за- чикам удалось добиться своего. Бро-
прежде чем приступить к непосредс- является, что для десктопов «UNIX-way сив идеологический вызов сторонни-
твенному описанию дистрибутива мертв, а Windows-way победил», «пов- кам Свободных идей, компания со-
(пусть разработчики Linux XP и не хо- семестная доступность исходных ко- здала конкурентоспособное реше-
тят называть свой продукт «дистрибу- дов непродуктивно умножает число ние на базе GNU/Linux и проприетар-
тивом», а предпочитают позициониро- программ и раздробляет Linux-сооб- ных разработок. Разумеется, со своей
вать его как «готовое решение», я счи- щество» и «в Linux необходима силь- спецификой, своей аудиторией и сво-
таю более чем уместным именно такое ная коммерческая составляющая». ими целями, но от этого проект только
общепринятое определение), предла- Многие, наверное, полагали, что из- выигрывает на фоне множества одно-
гаю разобраться с тем, как смотрят за такой смелой идеологии, способной образных и бесперспективных люби-
на мир свободного и открытого про- довести до состояния гневного кипе- тельских дистрибутивов, продолжаю-
граммного обеспечения авторы проек- ния мозг любого в той или иной мере щих плодиться неразумными темпа-
та. Идеология, которой придерживают- фанатичного члена FOSS-сообщест- ми. А вот насколько получится таким
ся в LINUX-ONLINE, идет вразрез мно- ва, проект вскоре самостоятельно ка- образом приблизиться к «потрясаю-
гим широко принятым в сообществе нет в Лету. По принципу «нечего ру- щим результатам», заявленным в ма-
представлениям о таких ключевых ве- бить сук, на котором сидишь». Одна- нифесте, покажет время. Мы же пос-
щах, как GNU GPL, Linux и Open Source. ко практика (пока?) показывает обрат- мотрим на то, что есть сейчас.
Дебютируя, компания получила много ное: Linux XP Desktop здравствует, раз-
критики в свой адрес, однако от ради- вивается и активно внедряется (при- Общее о дистрибутиве
кальных взглядов не отказалась. чем, что еще удивительнее, не только Linux XP D esk top о с н о в ы в ае тс я
Для того чтобы понять, чем было на территории России). на Fedora Core, что, как гласит над-
вызвано возмущение сообщества, до- В общем, невзирая на предсказу- пись на коробке, гарантирует «полную
статочно бегло ознакомиться с «Мани- емую реакцию со стороны всех, кто совместимость с мировым лидером –
фестом Linux XP Desktop» [1], где ав- убежден в необходимости строгого Red Hat Linux». Хотя и заявлена сов-
торы легко и непринужденно крити- следования распространенным в со- местимость с Fedora Core 4 и 5, вер-
куют привычные аспекты FOSS, кото- обществе принципам («free as in free сии входящего в состав дистрибутива

48
администрирование
программного обеспечения зачастую
соответствуют FC3. Например, в ка-
честве графической среды по умол-
чанию используется не совсем акту-
альная на сегодняшний день версия
GNOME – 2.8.0.
При этом дистрибутив является
коммерческим продуктом и продается
вместе с уникальным серийным номе-
ром. Регистрацию копии рекомендует-
ся проводить следующим после уста-
новки шагом, и это требует наличия до-
ступа в Интернет (хотя и необязатель-
но для машины, на которую ставится
система: операцию можно выполнить
с любого компьютера через сайт раз-
работчиков).
Linux XP распространяется в не-
скольких редакциях: Start Edition (1 ус-
тановочный CD с Linux XP Desktop),
Professional (5 CD, помимо устано-
Стандартный рабочий стол Linux XP Desktop
вочного это «Additional Software»,
«GamePack», «Developer Studio», сложной задачей даже для новичков, поминающий Windows XP, а тщательно
«HomeMedia»), Ultra (2 DVD со множес- и Linux XP это в очередной раз под- стилизованный под привычный поль-
твом дополнительных пакетов из раз- тверждает. зователям продукции Microsoft интер-
личных общедоступных репозитариев Стоит отметить подробные описа- фейс. Выражается это и в стандартной
Fedora Core). ния происходящего на русском (с ре- теме, и в иконках «Компьютер», «До-
Базовый образ Linux XP можно комендациями, что и как делать), со- машний каталог» и «Корзина» на ра-
скачать [2], а коробку с редакцией провождающие каждый шаг установ- бочем столе, и особенно до боли зна-
Professional купить, например, в Линукс- ки, а также полную предрасположен- комой кнопкой «Start» на панели в ниж-
Центре [3] или в магазине ИДДК [4]. ность к русскоязычным пользовате- нем левом углу. Причем меню, вызы-
лям в плане настроек по умолчанию ваемое этим «Пуском», тоже было пе-
Загрузка и установка (что логично). реработано с тем, чтобы вызвать на-
Первая загрузка с установочного ком- именьший конфуз у не подготовлен-
пакт-диска приветствовала меня вов- Система как она есть ного к любым новшествам человека,
се не красочной и дружелюбной за- После перезагрузки, последовавшей впервые запустившего не Windows.
ставкой GRUB, как логично было бы за последним этапом инсталляции, Все иконки и соответствующие эле-
ожидать... А позиционированным система встретила уже более адек- менты не должны вызвать удивления
не самым лучшим образом на экра- ватным GRUB (небольшое смещение у тех, кто привык, что в самом низу
не приглашением «boot:» с фрагмен- видимой части экрана пропадало при обязательно располагается вариант
том белого фона. И, собственно, все – нажатии любой клавиши для вызо- с функцией завершения работы, чуть
как пользоваться какими-либо допол- ва меню, а фон приобрел фирменный выше – последние открытые докумен-
нительными опциями и есть ли они во- оттенок синего). Удивило, что загруз- ты, затем выполнение произвольных
обще, не узнать. Впрочем, не такая ка системы осуществлялась в консоль- команд из консоли, поиск по файлам
уж это и помеха: банальное нажатие ном режиме: следуя идеологии, зало- и так далее.
на <Enter> инициализировало процесс женной в Linux XP, это, по-моему, не- Принцип упрощения и «подведе-
установки. логично: зачем пользователю смотреть ния под привычное» затронул и многие
Стартовавший инсталлятор встре- на такое обилие «странной» информа- другие аспекты системы – собствен-
тил уже дружелюбно, «на уровне». ции? Да, основная часть сообщений но, это и есть «изюминка» дистрибу-
Он представляет собой полностью ру- переведена на русский язык, но во- тива. «Подведения», например, удос-
сифицированную версию Anaconda, первых, не все, а во-вторых, очевидно, тоились и системные апплеты в трее,
которая давно служит верой и прав- целевой аудитории привычнее было бы такие как сетевые подключения и на-
дой дистрибутивам Red Hat и ее про- наблюдать за процессом в графичес- стройка звука, в которых при вызо-
изводным. ком режиме (например, как это сейчас ве конфигурации вызываются утили-
Используется Anaconda или нет, происходит в Ubuntu Linux). ты, внешне полностью напоминаю-
а установка среднестатистической Стартовал gdm, не спросив ни ло- щие аналоги в Windows, но оставаясь
GNU/Linux-системы (особенно если ее гина, ни пароля, и вскоре взору пред- при этом вполне «линуксовыми». Инте-
не классифицируют как «ОС для про- стал... вообще-то, конечно, GNOME, ресный получился гибрид, но главное –
фессионалов») давно перестала быть но своим внешним видом не просто на- достойно функционирующий.

№12, декабрь 2006 49


администрирование
вроде gnome-pilot для «обмена с КПК
Palm» в разделе «Оборудование»
и system-config-network для «настрой-
ки сети» в разделе «Сеть», так и собс-
твенные вроде «активации» и «добав-
ления и обновления программ» в сек-
ции «Приложения». Несмотря на ка-
жущийся сумбур в плане совершен-
но разнородных приложений (родные
от проекта GNOME, конфигураторы
от Red Hat, свои разработки на Java),
надо признать, что если при рабо-
те со всем этим, может, и не захлес-
тывает всепоглощающее чувство це-
лостности системы администрирова-
ния, то во всяком случае не возника-
ет неприязни или чувства неудобства.
Конечно, есть что доработать и усо-
вершенствовать, но все не так плохо,
как можно было ожидать.
Панель управления Linux XP
Обновление системы проходит
просто и быстро. Уже упомянутый мас-
Работа в системе осуществляет- В трее и в меню «Star t» мож- тер установки/обновления программ
ся с правами суперпользователя root, но легко найти «Панель управления первым шагом предлагает выбрать,
для которого даже не нужно вводить Linux XP». То, что я увидел после его что будет устанавливаться: дополни-
пароль при загрузке системы. Несом- запуска, вновь напомнило мне об ана- тельное ПО или обновления компо-
ненно, это повергнет в шок заботя- логичной панели в известной опера- нентов системы. Соответственно, пос-
щихся о безопасности линуксоидов. ционной системе, но нельзя сказать, ле выбора второго варианта и двук-
Однако это прямое и логичное следс- что удивило или расстроило. Наобо- ратного нажатия на «Далее», ожида-
твие заявленного подхода разработ- рот, зрелище предстало ожидаемое ния закачки и установки необходимого
чиков к созданию своего Linux-продук- и на первый взгляд впечатляющее – ПО проблема со шрифтами решилась.
та: десктоп-пользователю нужна сис- «все как там». Правда, немного расстроило требова-
тема, которая «просто работает». По- Все разбито на 6 главных катего- ние перезагрузить компьютер для то-
лучается, что и развитый многополь- рий: внешний вид, оборудование, сеть, го, чтобы обновление возымело дейс-
зовательский режим, обеспечивае- язык и стандарты, пользователи, при- твие (ведь рестарта X-сервера долж-
мый на уровне ядра ОС, по-хорошему ложения. В каждой из них собраны все но хватать?). Этот момент напомнил
тоже не нужен... подходящие утилиты: как сторонние о том, что, как бы кто ни старался, по-
Хоть в последнее время GNU/Linux-
системы и достаточно успешны в под-
держке различной аппаратуры, отде-
льно отмечу, что у меня никаких про-
блем с железом не возникло. В част-
ности, установленная система воспро-
изводила звук, позволяла без задерж-
ки смотреть видео и играть в трехмер-
ные игры. К этому стоит добавить, что
аналогично «из коробки» проинстал-
лировались наиболее часто использу-
емые кодеки (аудио и видео).

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

50
администрирование
мимо лучших черт у любого проекта
можно перенять и не самые сильные
его стороны. Просто не надо слишком
увлекаться...
Пакеты для такого обновления
системы берутся с родного сервера
Linux XP, и возможности указать аль-
тернативные репозитарии я не уви-
дел. Хотя в конфигурации yum (/etc/
yum.repos.d/lxp.repo) заданы пути
к зеркалам с обновлениями к Fedora
Core (кстати, версии 3).

Программное обеспечение
Вероятно, следуя своему манифесту
(«... конечному пользователю не нуж-
но несколько десятков «почти работа-
ющих» программ, ему нужна одна, но
работающая на 100% ...»), разработ-
чики постарались оставить в Linux XP
Desktop только самые необходимые
Интернет-ПО в поставке Linux XP
пользователю настольного ПК и са-
мые зрелые на их взгляд программы.
Впрочем, вопрос, насколько карди-
нально это решение отличает их от ав-
торов многих других десктоп-ориенти-
рованных Linux-дистрибутивов, остав-
лю в стороне.
Linux XP Desktop 2006 SR2 базиру-
ется на Linux-ядре 2.6.15 (в этом он со-
ответствует Fedora Core 5). С упомяну-
той средой GNOME 2.8 в минимальную
поставку дистрибутива входят: тради-
ционный системный браузер Nautilus
(2.8.1), 2-панельный файловый менед-
жер GNOME Commander и набор стан-
дартных утилит вроде менеджера ар-
хивов File-roller, калькулятора Gcalctool
и PDF-просмотрщика Gpdf.
Представлены такие мультимедий-
ные приложения, как видеопроигрыва-
тели Totem (стандартный для GNOME,
на базе Xine) и MPayer (вместе с GUI; Установка OpenOffice.org с компакт-диска
интересно, что принцип «одной рабо-
тающей программы» почему-то не был dictionary. Интернет-приложения стан- Инсталляция программ с родных до-
распространен на напрямую конкури- дартны: веб-браузер Mozilla Firefox, полнительных дисков проводится эле-
рующие видеоплейеры), TV-плейер почтовый клиент Evolution, клиент об- ментарно: после того, как CD вставлен
tvtimer, аудиоплейер Rhythmbox, ра- мена сообщениями Gaim, ПО для ви- в привод, необходимо на нем найти
диоплейер GQradio, программа аудио- деоконференций GnomeMeeting, IRC- каталог с нужным пакетом и (как пра-
записи gnome-sound-recorder, проигры- клиент X-Chat, терминальный клиент вило) запустить файл setup.jar. Тогда
ватель аудиодисков gnome-cd. Для ра- Terminal Server Client (GUI-надстрой- появляется меню выбора нужной ло-
боты с графикой есть просмотрщик ка над rdesktop и vncviewer) и p2p-кли- кализации, а последующая установ-
gThumb, утилита для работы с фото- ент aMule. ка заключается в 2-кратном нажатии
камерами gtkam, традиционный ре- Открытый офисный пакет на кнопку «Далее» и опциональной
дактор GIMP. OpenOffice.org я качать не решился возможности добавления «ярлыков».
Из офисного ПО в однодисковой и без проблем установил со второго Из прочих дополнительных про-
версии Linux XP есть лишь редактор CD («Additional Software»). Там нахо- граммных пакетов на дисках выделю
диаграмм Dia. Сюда же можно отнести дится русифицированная вторая вер- драйверы для видеокарт от NVIDIA
словари StarDict и стандартный gnome- сия OOo в сборке от Инфра-Ресурс. и ATI, Crossover (коммерческое ПО

№12, декабрь 2006 51


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

Выводы
Честно говоря, берясь за обзор Linux XP,
я ожидал увидеть менее зрелый про-
дукт, что вкупе с громкими заявлени-
ями производителей ставило под сом-
нение серьезность всего проекта. Од-
нако знакомство с системой показа-
ло, что «не все так плохо в датском ко-
ролевстве». Даже несмотря на то что
про Linux XP относительно мало гово-
рят в кругах нашего Open Source-со-
общества, система определенно име-
ет право на жизнь и перспективы даль-
нейшего развития. А развиваться, без-
условно, есть куда. Потому что хоть
функционирование системы «в общих
чертах» (т.е. на уровне того пользова-
OpenOffice.org в работе тельского подхода, на который авторы
ее ориентировали) и порадовало, не-
для запуска офисных Windows-прило- Похожий момент возник в процес- дочетов в проработке различных ком-
жений в Linux-среде), а для разработ- се установки Linux XP. На одной из пос- понентов определенно хватает. А ес-
чиков – популярную IDE Eclipse, JBoss ледних стадий инсталлятор просит ли сюда добавить и серьезные недо-
и Apache Tomcat. ввести пароль root, а в это самое вре- статки, вызванные этим самым под-
Среди игр на диске «GamePack»: мя справка слева разумно сообщает ходом, и, «до кучи», вечное «совер-
3D-шу тер «Cube» и демо-версия о том, что работать в системе с права- шенству нет предела», то работы еще
«Unreal Tournament 2004», клон «Коло- ми суперпользователя нехорошо. Ре- очень много.
низации» FreeCol, трехмерная страте- комендуется создать дополнительный Linux XP Desktop – это система, со-
гия реального времени «glest», поша- аккаунт, который и сделать основным, зданная на основе спорных принци-
говая стратегия «Battle for Wesnoth», а уже из-под него выполнять необходи- пов и отсутствия преемственности
автосимулятор «TORCS», свобод- мые команды через sudo. Однако, ес- UNIX-way, стремящаяся, вобрав в се-
ный римейк классической «Scorched ли обычно инсталляторы после таких бя многолетний опыт разработок в об-
Earth» – «Scorched 3D». В общем, впол- заявлений следующим шагом предла- ласти ОС от Microsoft (как антипод это-
не добротный набор, где каждый смо- гают создать нового (обычного) поль- му самому UNIX-way), предстать на-
жет найти себе что-нибудь подходя- зователя, тут подобных предложений иболее простым и удобным решени-
щее, если заскучает во время рабо- не поступало. ем для пользователей настольных ПК,
ты в системе. Налицо яркие примеры того, что не желающих знать о внутреннем ус-
вызвало бурную реакцию сообщест- тройстве и подстраивать все под себя
Мелочи ва. Если опытные пользователи вряд на уровне исходного кода. Она вряд
Разработчики Linux XP явно не раз- ли согласятся продолжительное вре- ли придется по душе кому-то из люби-
деляют позиции своих многочислен- мя работать в такой системе, то но- телей GNU/Linux-систем «старой за-
ных коллег из мира Open Source (как, вые могут не понять истинного про- калки», но потому и не предназначе-
впрочем, и многих других «миров»...) исхождения «подводных камней» (са- на для них. Однако насколько хорошо
и, в частности, считают нормальным, мые очевидные – серьезные пробле- ее будут воспринимать начинающие
что пользователь постоянно работа- мы в безопасности), инициированных пользователи Linux, сказать с полной
ет с правами root. Причем вне зависи- «прагматичным подходом» произво- определенностью тоже нельзя.
мости от того, какие полномочия ему дителя. Более глобальные негатив-
действительно необходимы для выпол- ные последствия таковы, что некото- 1. Манифест Linux XP Desktop – http://
нения тех или иных задач. И во вре- рые после подобного «тест-драйва» www.linux-online.ru/about/articles/detail.
мя работы с системой мне довелось с Linux XP, вероятно, не пожелают об- php?ID=897.
неоднократно наблюдать вызванные ращаться к Linux-системам и в даль- 2. Страница для скачивания Linux XP –
этим противоречием нюансы. Напри- нейшем. А это печально и расходится ht tp://w w w.linux- online.ru /desk top /
мер, попытка первой загрузки из ме- даже с долгосрочными целями самих download.php.
ню IRC-клиента X-Chat приводит к вы- авторов проекта. 3. Linux XP Pro в ЛинуксЦентре – http://
воду сообщения о том, что запускать Кроме того, отмечу, что команде www.linuxcenter.ru/goods/1313.html.
данное приложение из-под суперполь- разработчиков не помешает дополни- 4. Linux XP Pro в магазине ИДДК – http://
зователя, цитирую, «глупо». тельная проверка локализации интер- shop.iddk.ru/cdrom/62055.html.

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

Интеграция BIND + PostgreSQL

Сергей Алаев
Многие провайдеры используют BIND в качестве DNS-сервера. Но иногда возникают
проблемы с добавлением зон и записей в них, и это приводит к перезапуску сервера,
что крайне нежелательно из-за возможных ошибок при обработке клиентских DNS-запросов.
Чтобы предотвратить перезапуск DNS-сервера BIND, целесообразно использовать внешние
хранилища (MySQL, OpenLDAP, PostgreSQL и т. д.).
Прелюдия  Возможность обновлять содержи- Существует две реализации драй-
Сегодня подробно рассматрим хране- мое зон без перезапуска. веров для хранения зон во внешних
ние зон BIND в PostgreSQL. Этот метод  Эко но мия о п еративной памя - хранилищах – DLZ и SDB.
хранения зон позволяет динамически ти (при запуске named считывает DLZ-драйверы не входят в стан-
добавлять зоны и записи в них, а так- все зоны из файлов, при большом дартный набор исходных текстов BIND.
же обновлять содержимое зон. количестве зон и записей в них Они более гибкие в настройке и подде-
В качестве внешнего хранилища это занимает достаточно много рживают широкий набор внешних хра-
можно также использовать MySQL, оперативной памяти и времени). нилищ. Техническую документацию по
OpenLDAP, BerkeleyDB, ODBC, который  Более высокое быстродействие настройке DLZ-драйверов вы можете
предоставляет хранить зоны в любой по сравнению с хранением зон найти на http://bind-dlz.sourceforge.net.
СУБД, и т. д. в файлах (результаты тестов мож- SDB-драйверы входят в стандарт-
Основными достоинствами мето- но посмотреть на http://bind-dlz. ный набор исходных текстов BIND и со-
дов хранения являются: sourceforge.net/perf_tests.html). держат инструменты для автоматизи-

54
администрирование
рованной интеграции зон из файлов в базу данных. К недо- Драйвер SDB находится в contrib/sdb/pgsql. Для успеш-
статкам такого способа хранения зон можно отнести под- ной компиляции BIND с поддержкой этого драйвера необ-
держку только master-зон. ходимо включить его исходный код в исходный код серве-
Рассмотрим обе реализации. В Fedora Core Linux есть ра named.
rpm-пакет bind-sdb с поддержкой необходимых драйверов Для компиляции драйвера также будут необходимы биб-
SDB. Сначала рассмотрим метод интеграции с помощью лиотеки и файлы заголовков PostgreSQL, поэтому надо бу-
драйвера SDB. К сожалению, во FreeBSD нет интегриро- дет уточнить в pgsqldb.c их точное месторасположение от-
ванного порта BIND с поддержкой SDB PostgreSQL, поэто- носительно общих путей расположения библиотек и заго-
му устанавливать будем из исходных текстов. ловков(/usr/local/lib, /usr/local/include). Общие пути располо-
жения задаются позже с помощью патча.
Установка PostgreSQL Правим pgsqldb.c:
Итак, приступим.
Собираем PostgreSQL из портов: # mcedit contrib/sdb/pgsql/pgsqldb.c

// Заменяем строку «# include <pgsql/libpq-fe.h>» на


# cd /usr/ports/databases/postgresql80-server #include <libpq-fe.h>
# make && make install // Заменяем строку «# include “pgsqldb.h”» на
# include “named/pgsqldb.h”
Создадим каталог для размещения баз данных с пра-
вами на pgsql: Для добавления драйвера скачиваем скрипт и патч
в корневое дерево исходных текстов и выполняем его с по-
# cd /var/db мощью скрипта (патч и скрипт смотрите в разделе «Исход-
# mkdir pgsql
# chmod 700 pgsql && chown pgsql:pgsql pgsql ный код» на сайте журнала http://www.samag.ru):

Зададим параметры запуска PostgreSQL в rc.conf, ко- # ./add_pgsqldb.sh


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

# mcedit /etc/rc.conf # ./configure --prefix=/usr/local && make && make install


postgresql_enable=”YES”
postgresql_user=”pgsql” Приступаем к настройке сервера.
postgresql_data=”/var/db/pgsql”
Рассмотрим простую конфигурацию сервера:
Инициализируем кластер баз данных:
# mcedit /etc/namedb/named.conf
# /usr/local/etc/rc.d/010.pgsql.sh initdb
options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
Далее правим главный конфигурационный файл, };
где указываем IP, на котором будет работать сервер:
key rndc-key {
algorithm hmac-md5;
# mcedit /var/db/pgsql/postgresql.conf secret "X4JdLjgWj2acEqQ2gyKhPw==";
};
listen_addresses=’localhost’ controls {
inet 127.0.0.1 port 953 allow { 127.0.0.1; } ↵
keys { rndc-key; };
Для версии 7.x необходимо указать: };

tcpip_socket = true zone "example.net" {


virtual_host = ‘127.0.0.1’ type master;
database "pgsql bind zone_example_net 127.0.0.1 ↵
bind 123456";
Для запуска PostgreSQL выполните команду: allow-transfer {
192.168.7.2;
# /usr/local/etc/rc.d/010.pgsql.sh start };
};

zone "7.168.192.in-addr.arpa" {
type master;
Установка и настройка BIND database "pgsql bind zone_192_168_7 127.0.0.1 ↵
bind 123456";
на использование SDB-драйвера allow-transfer {
Приступаем к установке BIND. Устанавливаем порты gettext 192.168.7.2;
};
и libiconv из раздела devel общего дерева портов, которые };
необходимы для нормальной компиляции BIND.
Закачиваем и распаковываем исходные тексты: Разрешаем передачу зон для 192.168.7.2, т.к. с этого ад-
реса будем тестировать наш DNS-сервер.
# mkdir /usr/local/src Строка «database “pgsql bind zone_192_168_7 127.0.0.1
# cd /usr/local/src/
# fetch ftp://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz bind 123456”;» определяет параметры хранения зоны
# cd bind-9.3.2 в PostgreSQL в следующем порядке:

№12, декабрь 2006 55


администрирование
# mcedit /etc/namedb/example.net.hosts
$ttl 38400
example.net. IN SOA ↵
freebsd.example.net. bsdadmin3.mail.ru (
1161450241
10800
3600
604800
38400 )
example.net. IN NS ↵
freebsd.example.net.
example.net. IN A ↵
192.168.7.1
freebsd.example.net. IN A ↵
192.168.7.1
boss.example.net. IN A ↵
Рисунок 1. Добавление зоны из файла в базу данных 192.168.7.2
semen.example.net. IN A ↵
192.168.7.3
ignat.example.net. IN A ↵
192.168.7.4
www.example.net. IN CNAME ↵
freebsd.example.net.
example.net. IN MX ↵
50 freebsd.example.net.
example.net. IN MX ↵
100 boss.example.net.

Для добавления воспользуемся утилитой zonetodb.


Для соединения с базой данных она использует в качест-
ве значений имени пользователя, хоста значения перемен-
ных PGHOST, PGUSER. Название таблицы и базы данных
указывается при использовании утилиты.
Пароль указывать в этом случае необязательно, т.к. на-
Рисунок 2. Тестирование SBD-драйвера стройка PostgreSQL по умолчанию разрешает из консоли
соединяться с базой данных на правах суперпользователя
 bind – имя базы данных; без указания пароля.
 zone_192_168_7 – имя таблицы, где хранится содержи- Задаём имена хоста и пользователя:
мое зоны;
 127.0.0.1 – IP-адрес, на котором слушает сервер # export PGHOST=127.0.0.1
# export PGUSER=bind
PostgreSQL; # /usr/local/bin/zonetodb example.net. ↵
 bind – имя пользователя для соединения к серверу example.net.hosts bind zone_example_net
PostgreSQL;
 123456 – пароль для пользователя BIND. где первый параметр – это название зоны (заканчивает-
ся обязательно точкой), второй – имя файла содержимо-
Приступаем к созданию баз данных: го зоны, третий – база данных, четвёртый – имя таблицы,
где хранится содержимое зоны.
# psql –h 192.168.7.1 -d template1 -U pgsql Утилита сама создаст таблицу и добавит содержимое
зоны автоматически (см. рис. 1).
Cоздаём пользователя bind: Добавим зону обратного просмотра.

template1=# CREATE USER bind WITH SYSID 100 PASSWORD '123456' # mcedit 192.168.7.rev
NOCREATEDB NOCREATEUSER; $ttl 38400
7.168.192.in-addr.arpa. IN ↵
SOA freebsd.example.net. bsdadmin3.mail.ru (
Cоздадим базу данных для хранения зон: 1161450262
10800
template1=# CREATE DATABASE bind WITH OWNER = bind; 3600
604800
38400 )
7.168.192.in-addr.arpa. IN ↵
Скомпилируем утилиту для автоматического добавле- NS freebsd.example.net.
ния зоны из файла в базу: 1.7.168.192.in-addr.arpa. IN ↵
PTR freebsd.example.net.
2.7.168.192.in-addr.arpa. IN ↵
# cd /usr/local/src/bind-9.3.2/contrib/sdb/pgsql PTR boss.example.net.
# gcc -g `isc-config.sh --cflags isc dns` -c zonetodb.c 3.7.168.192.in-addr.arpa. IN ↵
# gcc -g -o zonetodb zonetodb.o `isc-config.sh ↵ PTR semen.example.net.
--libs isc dns` -lpq 4.7.168.192.in-addr.arpa. IN ↵
# cp zonetodb /usr/local/bin/zonetodb PTR ignat.example.net.

Допустим, у нас имеется файл зоны example.net следу- # /usr/local/bin/zonetodb 7.168.192.in-addr.arpa. ↵


192.168.7.rev bind zone_192_168_7
ющего содержания:

56
администрирование
Настраиваем параметры запуска BIND: secret "3lyE4327kU/qr6C/THQflg==";
};
controls {
# mcedit /etc/rc.conf inet 127.0.0.1 port 953 allow { 127.0.0.1; } ↵
keys { rndc-key; };
named_enable=”YES” };
named_program=”/usr/local/sbin/named” dlz "postgres zone" {
named_chroot_dir=”/var/named” database "postgres 1
named_flags=”-u bind –c /etc/namedb/named.conf” // Определяем параметры подключения к базе данных
{host=192.168.7.1 port=5432 dbname=bind ↵
user=bind password=123456}
Также необходимо настроить приоритеты загрузки, // Определяем запрос для поиска зоны в таблице dns_records.
т.к. по умолчанию во время загрузки системы BIND запус- // Все зоны будут храниться в этой таблице.
// Вместо переменной %zone% во время обработки
кается до PostgreSQL, что приведёт к ошибке, т.к. при запус- // DNS-запроса подставляется название требуемой зоны
ке он будет устанавливать соединения к PostgreSQL. Пра- {select zone from dns_records where zone = '%zone%'}
// Определяем запрос для поиска записи в таблице.
вим стартовый скрипт PostgreSQL: // Данный запрос используется, например, для обработки
// запросов на получение имени по IP-адресу и наоборот.
# mcedit /usr/local/etc/rc.d/010.pgsql.sh // Вместо переменной %record% вставляется название записи
// (DNS имя или IP адрес).
# PROVIDE: postgresql {select ttl, type, mx_priority, case ↵
# REQUIRE: NETWORKING SERVERS when lower(type)='txt' then '\"' || data || '\"' ↵
# KEYWORD: FreeBSD shutdown when lower(type)='soa' then data || ' ' || ↵
# BEFORE: resp_person || ' ' || serial || ' ' || ↵
refresh || ' ' || retry || ' ' || expire || ' ' || ↵
minimum else data end from dns_records where ↵
Данные комментарии используются для определения zone = '%zone%' and host = '%record%'}
{}
порядка запуска стартовых скриптов во время загрузки сис- // Определяем запрос для получения содержимого всей зоны
темы. Рассмотрим назначение данных ключевых слов: {select ttl, type, host, mx_priority, case when ↵
lower(type)='txt' then '\"' || data || '\"' ↵
 # PROVIDE: – задает имя сервиса, предоставляемого else data end, resp_person, serial, refresh, ↵
этим файлом. retry, expire, minimum from dns_records ↵
where zone = '%zone%'}
 # REQUIRE: – список сервисов, необходимых этому сер- // Формируем запрос для получения адресов клиентов,
вису. Этот файл будет запущен после указанных серви- // которым разрешено получать содержимое зоны
{select zone from xfr_table where zone = '%zone%' ↵
сов. and client = '%client%'}";
 # BEFORE: – список сервисов, зависящих от этого сер- };
виса. Этот файл будет запущен до указанных серви-
сов. Обратите внимание, при создании конфигурацион-
 # KEYWORD: – FreeBSD или NetBSD. Используется ного файла в настройках DLZ-драйвера очень важен по-
для функций, зависящих от версии *BSD. рядок строк, т.к. сервер считывает SQL-запросы в спе-
циальном порядке и в этом же порядке определяет, ка-
За более подробной информацией обращайтесь к спра- кой SQL-запрос использовать при обработке клиентских
вочному руководству FreeBSD. Запускаем BIND: DNS-запросов.
Создадим базу данных и таблицу для хранения зон:
# /etc/rc.d/named start
# psql –h 192.168.7.1 -d template1 -U pgsql
Тестируем наш сервер с помощью утилиты nslookup
(см. рис. 2). Создаём пользователя bind:

Установка и настройка BIND template1=# CREATE USER bind WITH SYSID 100 PASSWORD '123456'
на использование DLZ-драйвера NOCREATEDB NOCREATEUSER;
Рассмотрим использование драйвера DLZ.
Собираем BIND из портов: Создаём базу данных для хранения зон:

# cd /usr/ports/dns/bind9-dlz template1=# CREATE DATABASE bind WITH OWNER = bind;


# make clean && make && make install

В окне конфигурации отмечаем нужный нам PostgreSQL Создаём таблицу:


(см. рис. 3).
Приступаем к конфигурированию BIND. template1=# \c bind
bind =# CREATE TABLE dns_records (
"zone" text,
# mcedit /etc/namedb/named.conf host text
ttl int8,
options { "type" text,
directory "/etc/namedb"; mx_priority text,
pid-file "/var/run/named.pid"; data text,
listen-on { resp_person text,
192.168.7.1; serial int8,
}; refresh int8,
}; retry int8,
expire int8,
key rndc-key { minimum int8
algorithm hmac-md5; ) WITH OIDS;

№12, декабрь 2006 57


администрирование
bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('example.net', '@','A','192.168.7.1');
bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('example.net', 'freebsd','A','192.168.7.1');
bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('example.net', 'boss','A','192.168.7.2');
bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('example.net', 'semen','A','192.168.7.3');
bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('example.net', 'ignat','A','192.168.7.4');

Добавим CNAME-запись:

bind =# INSERT INTO dns_records("zone", host, "type", data) ↵


Рисунок 3. Конфигурация DLZ-драйвера VALUES ('example.net', ↵
'www','CNAME','freebsd.example.net.');

Добавим MX-записи:

bind =# INSERT INTO dns_records("zone", host, "type", ↵


mx_priority, data) VALUES ('example.net', ↵
'example.net','MX',50,'freebsd.example.net.');
bind =# INSERT INTO dns_records("zone", host, "type", ↵
mx_priority, data) VALUES ('example.net', ↵
'example.net','MX',100,'boss.example.net.');

Рассмотрим зону обратного просмотра.


Добавим SOA-запись:
Рисунок 4. Тестирование DLZ-драйвера
bind =# INSERT INTO dns_records("zone", host, ttl, ↵
"type", data, resp_person, serial, refresh, ↵
Создадим индексы для поиска по полям host, type, zone: retry, expire, minimum) ↵
VALUES ('7.168.192.in-addr.arpa', '@',38400, ↵
'SOA','freebsd.example.net.','bsdadmin3.mail.ru.', ↵
bind =# CREATE INDEX host_index 1161450262,10800,3600,604800,38400);
ON dns_records
USING btree
(host); Добавим NS-запись:
bind =# CREATE INDEX type_index
ON dns_records bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
USING btree VALUES ('7.168.192.in-addr.arpa', '@','NS', ↵
("type"); 'freebsd.example.net.');

bind =# CREATE INDEX zone_index


ON dns_records Добавим PTR-записи:
USING btree
("zone"); bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('7.168.192.in-addr.arpa ', ↵
Создадим таблицу для хранения разрешений на полу- '1','PTR','freebsd.example.net.');
чение содержимого зоны: bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('7.168.192.in-addr.arpa ', ↵
'2','PTR','boss.example.net.');
bind =# CREATE TABLE xfr_table bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
( VALUES ('7.168.192.in-addr.arpa ', ↵
"zone" text, '3','PTR','semen.example.net.');
client text bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
) VALUES ('7.168.192.in-addr.arpa ', ↵
WITH OIDS; '4','PTR','ignat.example.net.');

Приступаем к добавлению зон. В качестве примера бу- Разрешим клиенту 192.168.7.2 (с него мы будем тести-
дем использовать те же зоны, что и при описании SDB-драй- ровать сервер) получать содержимое данных зон:
вера.
Рассмотрим зону прямого просмотра. bind =# INSERT INTO xfr_table ↵
VALUES ('example.net', '192.168.7.2');
Добавим SOA-запись: bind =# INSERT INTO xfr_table ↵
VALUES ('7.168.192.in-addr.arpa', '192.168.7.2');
bind =# INSERT INTO dns_records("zone", host, ttl, ↵
"type", data, resp_person, serial, refresh, retry, ↵
expire, minimum) VALUES ('example.net', '@',38400, ↵ Параметры запуска и приоритеты загрузки задаём ана-
'SOA','freebsd.example.net.','bsdadmin3.mail.ru.', ↵ логично первому примеру.
1161450241,10800,3600,604800,38400);
Приступаем к тестированию BIND. Запускаем BIND:
Добавим NS-запись:
# /etc/rc.d/named start
bind =# INSERT INTO dns_records("zone", host, "type", data) ↵
VALUES ('example.net', '@','NS','freebsd.example.net.')
Тестируем наш сервер с помощью утилиты nslookup
Добавим A-записи: (см. рис. 4). На этом всё. Удачи.

58
bugtraq

Несколько уязвимостей в Mozilla Firefox


Переполнение буфера в PHP и Mozilla SeaMonkey
Программа: PHP 4.0.x, PHP 4.1.x, PHP 4.2.x, PHP 4.3.x, Программа: Mozilla Firefox версии до 1.5.0.8, SeaMonkey
PHP 4.4.x, PHP 5.0.x, PHP 5.1.x. версии до 1.0.6.
Опасность: Критическая. Опасность: Критическая.
Описание: Уязвимость существует из-за ошибки проверки Описание: 1. Библиотека Network Security Services (NSS)
границ данных в функциях htmlentities() и htmlspecialchars(). содержит неполноценное исправление уязвимости про-
злоумышленник может передать специально сформирован- верки RSA-подписи.
ные данные PHP-приложению, использующему уязвимые 2. Уязвимость существует из-за ошибки при обработке
функции, вызвать переполнение буфера и выполнить про- Script-объектов. Злоумышленник может выполнить произ-
извольный код на целевой системе. вольный JavaScript-байткод в браузере жертвы путем из-
Уязвимость позволяет перезаписать до 7 символов, менения уже запущенных Script-объектов.
внедряя некорректные UTF-8 символы в строку, которая 3. Обнаружены несколько ошибок в механизме расклад-
будет обработана уязвимыми функциями. Символы огра- ки и ошибки повреждения памяти в механизме JavaScript.
ничены 0x00, 0xc0-0xfd. Удаленный пользователь может аварийно завершить ра-
URL производителя: www.php.net. боту браузера или выполнить произвольный код на целе-
Решение: Уязвимость устранена в последней версии PHP – вой системе.
5.2.0. 4. Уязвимость существует из-за неизвестной ошибки
в XML.prototype.hasOwnProperty. Удаленный пользователь
может выполнить произвольный код на целевой системе.
Выполнение произвольного URL производителя: www.mozilla.org.
кода в Microsoft Visual Studio Решение: Установите последнюю версию с сайта произ-
WMI Object Broker ActiveX-компоненте водителя.
Программа: Microsoft Visual Studio 2005.
Опасность: Критическая.
Описание: Уязвимость существует из-за неизвестной ошиб- Несколько уязвимостей
ки в WMI Object Broker ActiveX-компоненте (WmiScriptUtils.dll). в Mozilla Thunderbird
Злоумышленник может выполнить произвольный код на це- Программа: Mozilla Thunderbird версии до 1.5.0.8
левой системе с помощью специально сформированного Опасность: Высокая.
веб-сайта, открытого в Internet Explorer. Описание: Обнаруженные уязвимости позволяют удален-
Примечание: уязвимость активно эксплуатируется в на- ному пользователю произвести XSS-нападение, получить
стоящее время. доступ к важным данным, вызвать отказ в обслуживании
URL производителя: www.microsoft.com. и скомпрометировать целевую систему.
Решение: В настоящее время способов устранения уяз- URL производителя: www.mozilla.org.
вимости не существует. В качестве временного решения Решение: Установите последнюю версию (1.5.0.8) с сай-
производитель рекомендует установить kill-bit на уязви- та производителя.
мый ActiveX-компонент.

Переполнение буфера в Essentia


Выполнение произвольного кода Web Server
в Microsoft XMLHTTP ActiveX-компоненте Программа: Essentia Web Server 2.15, возможно более ран-
Программа: Microsoft Core XML Services (MSXML) 4.0. ние версии.
Опасность: Критическая. Опасность: Высокая.
Описание: Уязвимость существует из-за некорректной Описание: Уязвимость существует из-за ошибки проверки
обработки HTTP-запроса в функции setRequestHeader() границ данных при обработке HTTP-запросов. Удаленный
в XMLHTTP 4.0 ActiveX-компоненте. Удаленный пользо- пользователь может с помощью специально сформирован-
ватель может с помощью специально сформированной ного GET или POST-запроса, длиной более 6000 байт, вы-
веб-страницы выполнить произвольный код на целевой звать переполнение стека и выполнить произвольный код
системе. на целевой системе.
Примечание: уязвимость активно эксплуатируется в на- URL производителя: www.essencomp.com /newsite /
стоящее время. products.asp.
URL производителя: www.microsoft.com. Решение: Установите последнюю версию с сайта произ-
Решение: В настоящее время способов устранения уяз- водителя.
вимости не существует. В качестве временного решения
производитель рекомендует установить kill-bit на уязви- Составил Александр Антипов
мый ActiveX-компонент.

№12, декабрь 2006 59


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

Какие возможности появились в новой


версии DeviceLock?
Михаил Брод
«Смарт Лайн Инк» отметила свое 10-летие выпуском новой версии DeviceLock 6.0,
которая поддерживает функцию теневого копирования данных.

К
своему юбилею российская ком- ляется агент, устанавливаемый на на контролируемые устройства, ес-
пания «Смарт Лайн Инк» по- каждый контролируемый компьютер. ли теневое копирование невозможно
дошла с новой версией свое- Для удаленного управления агентами в силу заполнения определенного объ-
го основного продукта – программы и DeviceLock-сервером предлагается ема на локальном диске. При возник-
DeviceLock. набор консолей управления, в том чис- новении такой ситуации лишь адми-
Существуя с 1996 года, DeviceLock ле консоль для управления групповы- нистратор может очистить хранилище,
завоевал популярность как за рубе- ми политиками домена Windows, с по- тем самым разрешив дальнейшее ко-
жом, так и в нашей стране и сегодня мощью которых можно осуществлять пирование данных. Можно разрешить
является признанным мировым лиде- наиболее эффективное развертыва- автоматическое удаление старых фай-
ром в области контроля доступа к пе- ние и управление DeviceLock. лов, помещенных в это хранилище.
риферийным устройствам. За 10 лет В DeviceLock 6.0 появился но-
клиентами «Смарт Лайн Инк» стали вый дополнительный компонент – Авторизация носителей
более 50000 компаний, DeviceLock ус- DeviceLock Enterprise Server, исполь- информации
тановлен на более чем 2 миллионах зуемый для централизованного сбо- Теперь о второй новинке программы –
компьютеров. ра и хранения данных теневого копи- авторизации носителей информации.
Основные новые возможности рования. Для его работы необходимо Авторизованные носители формиру-
продукта – значительное расширение наличие сервера MS SQL, на котором ют так называемый белый список ме-
функций аудита по использованию ус- будет храниться собираемая инфор- диа-носителей. Этот список позволя-
тройств и включение в него мощной мация. В большой сети, где имеется ет идентифицировать, к примеру, оп-
системы теневого копирования, а так- мощный SQL-сервер, возможна уста- ределенный CD/DVD-диск на осно-
же новая возможность авторизации не новка нескольких серверов DeviceLock, ве записанных на него данных и раз-
только устройств, но и носителей ин- подключаемых к одному SQL-серве- решить его использование, даже ес-
формации на основе данных, находя- ру. Можно использовать несколько ли сам CD/DVD-привод заблокирован.
щихся на них. SQL-серверов для распределения на- Изменение данных на носителе при-
грузки по сети. водит к изменению его уникального
Для чего нужно теневое В базовой конфигурации DeviceLock идентификатора, и, следовательно,
копирование? предполагается, что данные на локаль- этот носитель уже не будет распоз-
Наличие журнала аудита позволя- ном компьютере получает и кэширует нан как разрешенный (авторизован-
ет администратору отслеживать все локально агент, и с определенной пе- ный). Разрешив пользователю доступ
действия пользователя, в том числе риодичностью копирует их на сервер. к такому носителю, вы предоставляете
и по копированию файлов. Но вот са- После успешного завершения копи- ему возможность чтения данных даже
ми оригинальные файлы пользова- рования локальная копия сохранен- в том случае, если устройства для не-
тель после копирования на носитель, ных данных удаляется. Время выгрузки го недоступны.
будь то FDD, CD/DVD-диск, USB-флеш данных на сервер определяется по ал- Из других изменений можно отме-
или другое устройство, подключа- горитму, в котором учитывается время тить изменение интерфейса – стал бо-
емое к последовательному или па- появления данных для закачки, нагруз- лее удобным. Упростился процесс ус-
раллельному портам, мог уничтожить ка на сеть и на сервер. тановки программы. Впрочем, о воз-
или просто переименовать. Админис- В качестве дополнительного пара- можностях программы собственное
тратор уже не мог проверить, была ли метра предусмотрена установка огра- мнение лучше всего формировать
информация разрешена для копиро- ничения на наполнение раздела, вы- при тестировании продукта. А для это-
вания или нет. При теневом копирова- деляемого под локальное хранение го можно использовать бесплатную
нии все файлы и данные сохраняются данных теневого копирования, в про- 30-дневную пробную версию, доступ-
на SQL-сервере в базе, недоступной центах от свободного места на диске. ную на сайте компании «Смарт Лайн
для пользователя, но администратор В этом случае при достижении пре- Инк»(www.smartline.ru).
может получить к ним доступ и про- дельных цифр копирование данных
анализировать. в этот раздел прекращается. Можно
Ядром системы по-прежнему яв- запретить любое копирование данных

№12, декабрь 2006 61


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

Компьютер – это тайна, считает популярный российский специалист по системам безопасности.

М
ожно ли рассматривать чело- сится к миру, к профессии, к родным, Из чего складывается личность
веческую личность под мик- к самому себе в конце концов. И дела- программиста, да и вообще, можно
роскопом, как ученый рас- ем выводы… Говоря о друзьях и зна- ли наделить личностными характе-
сматривает красные кровяные тель- комых, разве не выделяем мы какие- ристиками представителя профессии?
ца или какую-нибудь инфузорию-ту- то качества в них особо? Например: Мне кажется, представителя такой
фельку? Несолидно как-то, на пер- «У Лены характер не сахар, зато друг профессии можно. А кого взять в ка-
вый взгляд. Но, с другой стороны, раз- она отличный». А целиком и полно- честве предмета исследования, у меня
ве не складывается наше представ- стью принимаем, пожалуй, только са- тоже не вызывает сомнения – постоян-
ление о человеке из фрагментов, ос- мых близких – своих родителей и сво- ного автора нашего журнала, челове-
колков? Мы выясняем, как он отно- их детей. ка, статьи которого вы читаете с удо-

62
человек номера
вольствием. Предлагаю поближе поз- что давали, мне вообще не было нуж- циализированные журналы. Он вы-
накомится с Крисом Касперски! но. А просто так зубрить, чтобы сда- ступает на страницах «Системного
вать, мне не хотелось. Ушел, но на сле- администратора», и настолько удачно,
дующий год родители уговорили снова что наши читатели в конце концов ста-
Почему-то если у Криса берут интер- поступать – мол, нельзя ведь без об- ли требовать на форуме: расскажите
вью, то сразу спрашивают: а как ваше разования остаться. Поступил еще раз, о Касперски! Например, как он пишет?
настоящее имя? Меня этот вопрос ин- но история повторилась. И в третий раз Рассказываем. Вернее, пусть расска-
тересовал меньше всего, но я все-та- поступил, и опять не выдержал. зывает он сам:
ки вежливо поинтересовалась в на- Жалеет ли Крис об отсутствии вы- – Последние месяца три у ме-
чале нашей беседы, не будет ли ему сшего образования? С одной стороны, ня такой темп – один день на статью.
удобнее говорить, если он предста- он понимает: За один день успеваю статью написать,
вится. Мой собеседник так же вежли- – Теоретически хороший институт отредактировать, подготовить картин-
во, но твердо заметил, что те, кому на- дает базу. Пообщавшись с настоящи- ки. Компоную материал для следую-
до, знают его настоящее имя. Я согла- ми гениями, профессионалами, начи- щей статьи, после чего падаю замер-
силась… Ну какая разница, буду на- наешь понимать, чем отличается са- тво на клавиатуру. Утром просыпа-
зывать я его Мишей, Федей или Кри- моучка от того, кого действительно юсь и начинаю быстро строчить вто-
сом? Ведь это не поможет мне понять, научили. рую статью. А еще впереди третья,
какой он человек. Но диплом Крису как-то и не пона- четвертая, пятая, до бесконечности…
А что поможет? Обычно исследо- добился в жизни, не по корочке о нем А вообще я на статью трачу дня два.
вание человеческой души начина- судят работодатели. Да и не в конк- Но если серьезная тема, бывает, не-
ют с детства. Ну тут все как в книж- ретном вузе дело. Проблема в том, деля требуется.
ках про гениев. Очень рано Крис за- что Касперски пато-
интересовался элек троникой, ре- логически не прини-
шил, что будет электронщиком. Па- мает идею зубреж-
ял приемники, ковырялся в них – ин- ки. А во время недол-
тересно было… Встреча с компьюте- гой учебы в Таганро-
ром перевернула все планы. Причем ге у Криса сложилось
произошла она где-то классе в пя- стойкое впечатление,
том. Вундеркинд? Сам Касперски так что вузовские преподаватели главным – А что вам нужно, чтобы написать
не считает: образом требуют продемонстрировать, хорошую статью? Вдохновение?
– Я смотрю, у многих моих знако- сколько у тебя в голове формальных – Не столько вдохновение, сколько
мых дети в шесть лет «прогу» уже уме- знаний из учебника. А кому эти знания материал. Допустим, для «Системного
ют компилировать. Прогресс... Я же на- нужны, зачем, какие ты сделал из них администратора» я писал много статей
чал тогда, когда появились доступные выводы, не важно… по файловым системам: NTFS, ext2/3fs,
компьютеры. Мой первый компьютер – – Почему я в первый раз ушел? USF. Сначала их исследовал, а потом
«Правец 8D» был совершенно несов- Потому что был такой преподава- обобщал в виде статьи. Обычно статье
местим ни с «синклерами», ни с «бэ- тель, который программы типа «При- предшествует исследование. Мне нра-
кашками», имевшими хождение в на- вет, как тебя зовут?» писал, постоян- вится писать о том, в чем я разбира-
роде, и кучей программного обеспе- но сверяясь с конспектом. Все гадали, юсь, тут я могу принести людям поль-
чения. У меня же не было ничего, кро- что с ним будет, если конспект отоб- зу. Но иногда приходится рассказывать
ме платы с несколькими микросхема- рать. Он спрашивал у меня: когда об- о том, с чем я не работал. И я вникаю,
ми, и, чтобы вдохнуть в них жизнь, тре- разовалась фирма IBM, когда родил- собираю материал, обобщаю, прове-
бовалось научиться программировать, ся Билл Гейтс? Я отвечал: «Не пом- ряю, откидываю ошибки, заблуждения
это затянуло неожиданно. ню». А он: «Это надо знать!» И ставил других авторов. Типа реферата полу-
Однако после школы Крис пошел не «пять», а «три». Не нравится – иди чается... Я так писать не люблю, если
учиться на радиофизика. Высшее об- в деканат. Но это означало, что надо не могу исследовать тему. Допустим,
разование – яркая страница его био- ругаться постоянно… если речь идет о серверах, которых
графии. Успешно поступив в Таганрог- Можно поспорить, начать горячо у меня нет. Любимые темы – дисассем-
ский радиотехнический институт и про- доказывать, что не все профессора та- блирование, отладка, защита, взлом.
учившись там три месяца, Крис понял, кие, что стереотип – страшная штука… Это мое. Я этим занимаюсь и могу эту
что он и вуз – вещи несовместимые: Но, согласитесь, и Криса понять мож- тему развить, потому что сам не раз
– Я человек неорганизованный, но. Бог с ним, с высшим образовани- это делал. Имею опыт.
а там много обязаловки. Допустим, ем. Самородок… – Самая интересная для вас тема –
математика мне дается с трудом. Мне безопасность?
бы посидеть над какой-то темой неде- – Грубо говоря, хакерство. Мне инте-
льку, я бы понял. Но нет, нужно идти Сегодня Крис Касперски – автор двух ресно заглянуть «под капот» програм-
вместе со всеми… И мне оставалось десятков книг, переведенных на инос- мы, защиты. Тут нетривиальное мыш-
только зубрить. Я понял, что с таким транные языки. Его постоянно пригла- ление требуется.
темпом совладать не смогу. А многое, шают посотрудничать различные спе- – Вас привлекает тайна?

№12, декабрь 2006 63


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

64
человек номера
взрослым. Одно из его увлечений – ас-
трономия. Есть телескоп, не слишком
мощный, но позволяет находить звез-
ды, туманности, вычитанные в катало-
гах. Когда видишь далекое скопление
звезд не на фотографии в Интернете,
а живьем, – дух захватывает.
– Понимаешь, какие мы маленькие,
наши проблемы тоже и какой космос
большой.
– Новую звезду не открыли? – спра-
шиваю.
– Нет. Научных задач я себе не став-
лю.
Еще Крис любит фотографировать:
листья, пейзажи, речки, капли росы
на дереве. Охотится за туманами:
– Мы на холме живем, спускаешься,
а там низина, такие туманы классные.
Недавно Касперски купил себе
пленочный Canon. Новый аппарат ра-
дует, если бы не одно «но»: Некомпьютерные увлечения Криса – астрономия и фотография
– Что меня бесит – вспышку в руч-
ном режиме нельзя принудительно не было. Высокое начальство не по- довести до ума. Конкурирующий с ним
включить. Она сама включается, ес- няло, зачем операционной системе FireFox, задавшийся целью «догнать
ли считает, что это необходимо. Когда нужен драйвер звуковой карты, если и перегнать», содержит ошибок чуть
снимаю человека против света и ис- этой карты нет вообще. Это же крей- меньше, но все равно остается небе-
пользую вспышку, получается очень сер, а не в игрушка типа DOOM со зву- зопасным. А вот Opera или Lynx нико-
хороший мягкий снимок. А, допустим, ками. Поэтому они отказались от услуг го перегнать не стремятся. Предель-
когда снимаю один лист против неба, Microsoft. Теперь Microsoft хочет окку- но вылизанный код, минимум ошибок,
вспышка не включится, как я ни ста- пировать атомные реакторы и вооб- максимум функциональности. И, что
раюсь. Ручной режим есть, но не все ще энергосистемы. А если ее поста- самое забавное, Opera служит источ-
функции в нем доступны. вят там, это означает, что толковый ха- ником вдохновения для своих же собс-
А вы хотите, чтобы человек, для ко- кер сможет отключить электростанцию твенных конкурентов, самые главные
торого свобода – жизненный принцип, (хотя бы ради забавы). Это катастро- «вкусности» IE и FireFox позаимство-
подчинился фотоаппарату? фа! Медицинские, остальные учреж- ваны именно оттуда.
дения будут без света. Очень опасно. – А что же все-таки делать бедному
В медицину проникает Windows. Мож- пользователю?
Беседуя с человеком, который «соба- но наблюдать в супермаркете: стоит – Есть системы резервирования
ку съел» на теме безопасности, греш- касса, управляемая программой, на- данных, DVD, стриммеры и другие но-
но не спросить у него: писанной на Delphi, и «вращающая- сители. Главное – не лениться и не хра-
– Как вы считаете, каким будет ся» под Windows. Периодически вис- нить критически важную информацию
дальнейшее развитие систем IT-бе- нет, сразу очередь собирается боль- в единственном экземпляре. Поль-
зопасности? шая. Магазину реальные убытки. зователь должен быть грамотным.
– Microsoft хочет, чтобы их програм- – Как быть? Windows – очень небезопасная вещь.
мное обеспечение поставили на атом- – Есть куча других систем, которые Многие с этим сталкиваются, когда
ный реактор. Это будет начало конца. очень просты и поэтому не «падают». теряют данные. Хакерская атака или
Они уже пытались внедриться к воен- Чем система проще, тем легче грамот- случайный сбой системы многим сто-
ным. Однажды был такой случай, ког- но спроектировать и протестировать. ил потери бизнеса.
да то ли на крейсер, то ли на авиано- Microsoft же гонится за сверхприбылью, Одиночка, романтик, хакер или ры-
сец, где стояла NT, приехало высокое Люди, принимающие решения о внед- царь на белом коне, защищающий нас
начальство посмотреть, как все это хо- рении того или иного продукта, думают от каверз виртуального мира, – какая
рошо работает. И NT вдруг упала, крей- только о том, чтобы заработать деньги. разница? Личность, интересная тем, кто
сер на время перезагрузки был неко- Поэтому мы имеем такую неприятную смеет быть свободным. Вот потому мы
торое время полностью безоружен – ситуацию. Взять хотя бы проблему ви- с удовольствием читаем статьи Криса
слеп, глух и нем. И снова сбой! Дол- русов. Сколько пользователей от них Касперски. Приятного чтения!
го разбирались, оказалось, виноват страдает! Потому что используют ды-
драйвер звуковой карты. И при этом рявый IE, который Microsoft в погоне Оксана Родионова,
самой звуковой карты у крейсера за новыми функциями никак не может фото из архива Криса Касперски

№12, декабрь 2006 65


web

Выдержит ли нагрузку ваш веб-сервер?


Обзор программ для стресс-тестирования

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

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

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

Построение плана
тестирования
Любая работа требует предваритель- Рисунок 1. Выбор типа теста в WAPT
ной подготовки. При неправильно
сформулированной задаче могут полу-
читься результаты, которые, возможно,
не полностью будут отражать реаль-
ное положение дел. Исходя из пред-
полагаемой нагрузки веб-сервера не-
обходимо определить критерии испы-
тания, что будет считаться как успех,
а что как неприемлемая работа (вре-
мя ответа, загрузка сервера).
Различают три варианта тестиро-
вания:
 Нагрузочное (Load-testing) – оп-
ределяется работоспособность
системы при некоторой строго за-
данной (планируемой, рабочей) на-
грузке.
 Тест на устойчивость (Stress) –
применяется для проверки пара-
метров системы в анормальных
и экстремальных условиях, во вре- Рисунок 2. Создание профиля будущего теста
мя тестирования производится по- Во время тестирования имити-  сколько посетителей планируется
пытка нарушить работу системы. руется одновременная работа не- принимать в среднем, в пиковой на-
Позволяет определить минималь- скольких сотен или тысяч посетите- грузке, время пиковой нагрузки;
но необходимые величины систем- лей. Для большей правдивости каж-  могут ли несколько пользовате-
ных ресурсов для работы приложе- дый из пользователей может «ходить» лей иметь один и тот же IP-адрес
ния, оценить предельные возмож- по сайту по индивидуальному сцена- и/или логин/пароль;
ности системы и факторы, ограни- рию и параметрам. Также в процес-  среднее количество страниц, про-
чивающие эти возможности. Так- се тестирования можно имитировать сматриваемых одним пользовате-
же определяется способность сис- кратковременные пики нагрузки, ког- лем, есть ли различия в поведе-
темы к сохранению целостности да количество посетителей скачкооб- нии между зарегистрированны-
данных в аварийных ситуациях. разно увеличивается, что очень акту- ми и анонимными пользователя-
 Те с т п р о и з в о д и т е л ь н о с т и ально для сайтов с неравномерным ми, количественно соотношение
(Performance) – комплексная про- размером аудитории (например, но- между такими пользователями,
верка, включающая предыдущие востных ресурсов). наиболее посещаемые страницы
две, предназначенная для оценки Чтобы полноценно провести тести- и время нахождения пользовате-
всех показателей системы. рование, необходимо знать: ля на узле;

№12, декабрь 2006 67


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

От всех этих параметров может


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

WAPT 4.0
Одна из самых простых в использова-
нии и в то же время функциональных
программ обзора. Для проведения про-
стого теста даже не потребовалось за-
Рисунок 4. Окно Script Modeler глядывать в документацию, интерфейс
прост и понятен, хотя и не локализо-
 наличие динамических страниц  доступная пропускная способность ван. Как вариант можно использовать
и страниц, изменяемых в течение канала, средний его расход на од- командную строку. Работает под уп-
определенного периода, и как час- ного пользователя; равлением MS Windows 98/Me/2000/
то это происходит;  может ли работа нескольких поль- XP/2003. WAPT позволяет испытать
 задействуется ли электронная поч- зователей вызывать коллизию (на- устойчивость веб-сайта и других при-
та, например для подтверждения пример, торги); ложений, использующих веб-интер-
полномочий пользователя;  используется ли защищенное фейс, к реальным нагрузкам. Разра-
 какая еще дополнительная инфор- HTTPS (SSL / TLS) -соединение, батывается новосибирской компани-
мация используется для проверки в каких случаях; ей SoftLogica LLC. Для проверки WAPT
статуса пользователя (cookies);  используются ли Java-аплеты, пото- может создавать множество виртуаль-
 требуется ли подтверждение пол- ковое медиа, специальные плаги- ных пользователей в одном сценарии,
номочий пользователя сторонней ны, что требуется с клиентской сто- каждый из них может иметь индиви-
организацией или удаленным сер- роны для их поддержки (JavaScript, дуальный IP-адрес, идентификацион-
вером (например, номер кредитной VBScript, ActiveX); ные параметры, скорость соединения.
карты) и будет ли представлена ин-  используется ли кэширование Поддерживаются Windows (NTLM), ба-
формация для тестирования; страниц; зовая аутентификация и постоянные

68
web
и сессионные (persistent и session)
cookies. Сценарий позволяет изменять
задержки между запросами и динами-
чески генерировать некоторые испы-
тательные параметры, максимально
имитируя, таким образом, поведение
реальных пользователей. В запрос мо-
гут быть подставлены различные вари-
анты http-заголовка, в настроках воз-
можно указать кодировку страниц. Па-
раметры (как статические, так и маска)
User-Agent, X-Forwarded-For, IP address,
указываются в настройках сценария.
Значения параметров запроса могут
быть рассчитаны несколькими спосо-
бами, в том числе определены отве-
том сервера на предыдущий запрос,
в том числе используя некоторые ло-
кальные переменные и функции. Сце-
нарий поведения каждого виртуально- Рисунок 5. Результаты теста OpenSTA
го пользователя включает три регули-
руемых стадии: начальную (Initial), ос- пенчатое увеличение с указанием ми- рого можно тут же проверить, нажав
новную (Mail) и заключительную (Final). нимального и максимального числа «Go». Одновременно последует запрос
Поддерживается работа по защищен- и временного интервала, выставить на запуск Recorder, который будет от-
ному протоколу HTTPS (SSL/TLS) таймер проведения теста. На следую- слеживать посещенные страницы и за-
(версии SSL 2.0/3.0) и все типы прок- щем шаге выставляется время между писывать URL (они будут выводиться
си-серверов (HTTP, HTTPS, SOCKS4, кликами (think time), скорость соедине- в панели слева). И когда вся инфор-
SOCKS5). Созданные сценарии, сохра- ния, указать диапазон IP-адресов (IP мация собрана, нажимаем «Run Test».
няемые в файле XML-формата, можно Spoofing), который будет использован Подробные отчеты в форме графи-
использовать повторно. Кроме стан- виртуальными пользователями. Нажа- ка выводятся по ходу проведения тес-
дартных Performance и Stress, в спис- тие на «IP Adress List» позволит соста- та, по окончании будет сформирова-
ке присутствуют: вить список таких адресов. Также вы- на и html-страница. В результате мож-
 Smoke – краткий тест, предназна- ставляется http-параметр User-Agent но получить информацию по време-
ченный для определения готов- и включается эмуляция прокси. Если ни ответа сервера с возрастанием на-
ности приложения к работе вооб- требуется, чтобы виртуальные поль- грузки, количеству переданных и при-
ще, например, есть ли смысл тес- зователи имели индивидуальные на- нятых байт, как в общем, так и в рас-
тировать дальше, если сервер ду- стройки на следующем шаге масте- чете на одного пользователя, количес-
мает минуту. ра, для каждого необходимо создать тве ошибок.
 Capacity – тест для определения свой профиль, нажав «New» или за-
максимального количества посе- грузив сохраненный. В последующем
тителей; окне программы необходимо будет вы-
 Endurance – тестирование под ставить параметры в каждом из таких
средней нагрузкой, в течение дол- профилей.
гого периода времени. После нажатия на кнопку «Готово»
сценарий сохраняется. Это мы подго-
Для проведения простого тес- товили параметры теста. Для указа-
та после установки WAPT и настрой- ния объекта тестирования необходи-
ки основных параметров с помощью мо создать профиль «New → Profile»
Setting Wizard (настройка прокси, вер- и заполнить все параметры на обеих
сий HTTP и SSL, времени ответа, ис- вкладках (см. рис.2). Здесь же опять,
пользуемых по умолчанию). Необхо- только уже индивидуально, доступны
димо выбрать «New → Scenario», в ре- для редактирования некоторые пара-
зультате запустится мастер созда- метры, задаваемые раннее с помощью
ния теста. На его первом шаге указы- мастера. Также указывается загрузка
вается тип теста (см. рис. 1) и далее рисунков виртуальным пользователем,
в каждом окне заполняем парамет- параметры аутентификации, исполь-
ры будущего теста. Здесь можно ука- зование Cookies и другие.
зать фиксированное количество вир- На вкладке «Recorder» указыва- Рисунок 6. Создание сценария
туальных пользователей, либо сту- ем адрес сайта, доступность кото- тестирования

№12, декабрь 2006 69


web
В настоящее время OpenSTA рас-
пространяется как приложение, с от-
крытым кодом под лицензией GNU
GPL, работает в Windows NT 4.0SP5/
2000/XP. Текущий инструментарий
позволяет провести нагрузочное ис-
пытание http/https-сервисов, хотя его
архитектура способна на большее.
OpenSTA позволяет создавать тесто-
вые сценарии на специализированном
языке SCL (Script Control Language).
Для упрощения создания и редак-
тирования сценариев используется
специальный инструмент Script Modeler
(см. рис.4). После его запуска необ-
ходимо выбрать «Tools → Canonicalize
URL», далее запустится веб-браузер,
и все посещенные URL будут сохра-
нены в скрипт. Все параметры запро-
са поддаются редактированию (скрипт,
кстати, сам по себе интересен для по-
нимания работы http), возможна под-
становка переменных. Структура тес-
та, заголовки, html будет выводить-
ся во вкладках в панели слева. Тес-
Рисунок 7. Отчет Web Application Stress Tool ты удобно объединять в наборы. На-
стройки прокси задаются в самом
скрипте, поэтому при выполнении за-
дания можно использовать несколь-
ко прокси. Реализована возможность
организации распределенного тес-
тирования, что повышает реалистич-
ность тестов и может понадобиться
в том случае, когда с одного компью-
тера не получается полностью нагру-
зить мощный сервер. Каждая из ма-
шин такой системы может выполнять
свою группу заданий. В этом случае
одна из машин (repository host) осу-
ществляет сбор и хранение результа-
тов. После установки на каждой тести-
рующей системе запускается сервер
имен OpenSTA name server, работа ко-
торого обязательна. Поддерживается
аутентификация пользователей и ус-
тановление соединений по протоко-
лу SSL. Параметры работы нагружае-
Рисунок 8. Настройка Thread Groups в Apache JMeter
мой системы во время проведения тес-
та можно контролировать с помощью
WAPT распространяется под ком- тирования, это открытая архитекту- SNMP и средств Windows NT. Для это-
мерческой лицензией, стоимость од- ра, проектируемая вокруг открытых го достаточно выбрать «Collector →
ной установки 350 у.е., с сайта проек- стандартов, в частности CORBA. Про- New Collector» и указать источник. Ре-
та вы можете получить работающую ект создан в 2001 году группой ком- зультаты тестирования, включающие
без ограничений в течение 30-дней паний CYRANO, которая поддержи- времена откликов, количество пере-
тестовую версию. вала коммерческую версию продук- данных в секунду байт, коды ответа
та, но CYRANO распалась, и статус для каждого запроса, количество оши-
OpenSTA OpenSTA находится в подвешенном со- бок, выводятся в виде таблиц и графи-
Open Systems Testing Architecture – стоянии, так как на наследие CYRANO ков (см. рис. 5). Использование филь-
это больше чем приложение для тес- претендует несколько компаний. тров (время теста, время ответа сер-

70
web
вера, код ответа, размер, виртуальный
пользователь или адрес, URL) позво-
ляет отобрать необходимые резуль-
таты. Возможен экспорт результата
в CSV-файл (например, для последую-
щей обработки в Excel). OpenSTA мощ-
ный инструмент, обладающий всеми
необходимыми функциями, но требую-
щий некоторой подготовки как самого
тестирующего, так и дополнительных
временных затрат при проведении кон-
кретного теста. К тому же возможнос-
ти по выводу отчетов его несколько
ограничены. В Интернете можно най-
ти скрипты и плагины [1, 2], помога-
ющие при анализе информации. На-
пример, BView, доступный на домаш-
нем сайте проекта, помогает отлажи-
вать сценарии.

Microsoft Web Application Рисунок 9. Вывод результата Aggregate Graph


Stress Tool
Бесплатный продукт компании Microsoft, По окончании теста выводится от- ложений и их отдельных компонен-
работающий только в среде Windows чет в текстовой форме (см. рис. 7), тов (скрипты, сервлеты, Java-объек-
и предназначенный для стресс-тестов в котором можно получить информа- ты и др.), но также FTP-серверов, баз
веб-сервисов. Имеется и более совре- цию по следующим вопросам: данных (с использованием драйвера
менная и также бесплатная разработ-  число обрабатываемых запросов JDBC) и сети. Функциональность рас-
ка Web Capacity Analysis Tool, пред- в единицу времени; ширяется с помощью плагинов. Под-
ставляющая собой комплексный про-  среднее время задержки между за- держка SSL возможна при наличии
дукт для работы с IIS, предназначен- просом и получением данных; библиотеки JSSE (Java Secure Sockets
ная в том числе и для тестов произво-  скорость передачи данных на сер- Extension), которая входит в стандарт-
дительности. Сценарий тестирования вер и с сервера, количество оши- ную поставку JDK1.4 и выше. Возмож-
может быть создан вручную или запи- бок. на работа как с использованием гра-
сан с помощью веб-браузера и затем фического интерфейса, так и в коман-
отредактирован. После выбора вари- Отчет можно экспортировать в CSV- дной строке. Предусмотрены механиз-
анта создания сценария (см. рис. 6) файл. Никаких возможностей по ста- мы авторизации виртуальных пользо-
запускается простой мастер, который тистической обработке не предусмот- вателей, поддерживаются пользова-
поможет сохранить параметры. Для рено, то есть с его помощью можно тельские сеансы, шаблоны, кэширо-
каждого запроса фиксируется запра- только оценить работу при определен- вание и последующий offline-анализ
шиваемый URL, время между запро- ных условиях. Среди возможностей результатов теста, функции позволя-
сами (delay), cookies и заголовки. Пос- Web Application Stress Tool: ют сформировать следующий запрос,
ле записи скрипта в «Setting» выстав-  аутентификация виртуальных поль- основываясь на информации ответа
ляется уровень нагрузки (stress level), зователей и пользовательских се-
который регулируется путем зада- ансов;
ния количества нитей, осуществляю-  работа по протоколу SSL;
щих запросы к серверу. Параметром  возможность создания групп URL
«stress multiplier» задается число соке- с заданием относительной доли за-
тов на нить. Число виртуальных поль- просов для каждой группы.
зователей в Web Application Stress Tool
рассчитывается как произведение чис- Возможно использование несколь-
ла нитей на число сокетов, открытых ких централизованно управляемых
каждой из нитей. Далее задается об- клиентских машин для тестирования
щее время теста, задержки между веб-сервера.
запросами (может быть использова-
но случайное число), ширина полосы Apache JMeter
и прочие параметры. Создание макси- Apache JMeter представляет собой
мальной нагрузки осуществляется пу- Java-приложение с открытым кодом,
тем задания нулевого интервала ожи- предназначенное для нагрузочно-
дания между запросами. го тестирования не только веб-при- Рисунок 10. Подсказка в NeoLoad

№12, декабрь 2006 71


web
на предыдущий. При наличии пакета вающий серию заданий, которые не- ние, IP-адрес и порт веб-сервера, про-
JavaMail отчеты по проведенному тес- обходимо выполнить Jmeter. Он дол- токол, метод передачи данных (GET,
ту могут быть отправлены по элект- жен содержать одну или несколько POST), параметры переадресации, пе-
ронной почте. Так же как и OpenSTA, групп потоков (Thread Groups) и дру- редачу файлов на сервер. Вывод ре-
JMeter позволяет проводить распре- гие элементы: зультата осуществляется с помощью
деленные тесты. В этом случае один  Логические контроллеры (Logic Listeners. Их в списке 14, каждый вы-
из компьютеров является сервером conrollers). водит результат по-своему. Например,
(bin/jmeter-server.bat), который управ-  Типовые контроллеры (Sample Aggregate Graph выводит суммарные
ляет клиентами и собирает итоговую generating controllers). результаты теста в виде таблицы и гра-
информацию.  Слушатели (Listeners). фика (см. рис. 9).
Использование Java подразуме-  Таймеры (Timers).
вает кроссплатформенность, JMeter  Соответствия (Assertions). Инструмент тестирования
нормально работает в UNIX (Solaris,  Конфиг урационные элементы NeoLoad
Linux и пр.), Windows 98/NT/2000/XP (Configuration elements). Еще одна система, позволяющая про-
и OpenVMS Alpha 7.3+. вести нагрузочное тестирование веб-
Для работы достаточно запустить Первым делом добавляем группу приложений, написанная на Java, ра-
в консоли файл jmeter.bat (Windows) потоков («Edit → Add → Thread Group»). ботает на компьютерах, работающих
или jmeter (UNIX). В ее настройках (см. рис. 8) указываем под управлением Windows NT/2000/XP,
JMeter имеет встроенный прокси- название, количество запускаемых по- Linux, Solaris SPARC (7+). Но, учитывая,
сервер, который предназначен для за- токов, то есть виртуальных пользовате- что в отчете можно получить подроб-
писи сессий. Если тестирование произ- лей (Number of threads), время задерж- ную информацию по каждому загру-
водится через внешний прокси, то его ки между запуском потоков (Ramp-Up женному файлу, NeoLoad весьма удо-
параметры необходимо указать при за- Period), количество циклов выполне- бен для оценки работы отдельных ком-
пуске программы. ния задания (Loop Count), здесь же воз- понентов (J2EE, NET, AJAX, SOAP, PHP,
можность выполнения задания по рас- ASP, CGI, Flash, аплетов и пр.). Возмож-
$ bin/jmeter -H proxy.server ↵ писанию (Sheduler). Далее, щелкая на установка времени задержки между
-P 8000 -u username ↵
-a password в созданную группу, необходимо до- запросами (thinktime) глобально и ин-
бавить образец запроса (Sampler), вы- дивидуально для каждой страницы.
Некоторые параметры, чтобы брав его из списка. Для нагрузочного Тестирование проводится как с исполь-
не вводить их каждый раз, можно со- тестирования или проверки работоспо- зованием весьма удобной графичес-
хранить в файле system.properties. Пе- собности сервера достаточно выбрать кой оболочки, так и с помощью коман-
ред началом тестирования необходи- HTTP Request («Add → Sampler → HTTP дной строки (используя заранее под-
мо составить тестовый план, описы- Request»). Здесь указываем назва- готовленный XML файл). Поддержива-

Сводная таблица
Microsoft Web Application
WAPT 4.0 OpenSTA 1.4.3 Apache JMeter 2.2 NeoLoad 2.0.3
Stress Tool
http://www.loadtestingtool.com http://www.opensta.org, http://support.microsoft.com/ http://jakarta.apache.org/ http://www.neotys.com
Сайт
http://opensta.sf.net kb/231282/en-us jmeter
Windows 98/Me/2000/XP/2003 Windows NT 4.0SP5/ Windows UNIX (Solaris, Linux и Windows NT/2000/XP,
Тип поддержи- 2000/XP пр.), Windows 98/NT/ Linux, Solaris SPARC
ваемой ОС 2000/XP, OpenVMS (7+)
Alpha 7.3+
Коммерческая, 350 $ GNU GPL Freeware Apache License Коммерческая,
Вид лицензии
от 776 €
Понятный интерфейс, не- Доступность исход- Простой мастер создания Кроссплатформен- Кроссплатформен-
сколько видов тестов, дина- ных текстов, исполь- тестов, работа с cookies, ность, тестирование ность, тестирование
мическая подстановка па- зование во время тес- регулировка нагрузки ftp, баз данных, отде- отдельных компонен-
раметров теста, индивиду- та нескольких прок- по разным URL, бесплатно льных компонентов, за- тов, работа с вирту-
альные настройки теста, си, удобный редак- грузка файлов на сер- альными пользовате-
IP Spoofing, мониторинг ре- тор скриптов, авто- вер, распределенные лями, удачные отче-
Достоинства
зультата в реальном вре- матическая рабо- тесты ты, наличие плагинов
мени та с cookies, возмож- расширяющих функ-
ность распределенно- циональность, обра-
го тестирования ботка ответа серве-
ра, сравнение резуль-
татов
Нельзя сравнить результаты Необходимо время Неудобно рассчитывать Требуется некоторое Высокая стоимость
разных тестов на освоение и подго- число виртуальных поль- время на освоение,
товку теста, отчеты зователей, невозможность нет IP Spoofing, пот-
Недостатки несколько не удобны, индивидуальной настрой- ребляет большое коли-
нет IP Spoofing ки виртуальных пользова- чество системных ре-
телей, очень простой от- сурсов
чет, нет IP Spoofing

72
web
ет работу с зашифрованным протоко-
лом HTTPS (SSL/TLS), работу с HTTP
и HTTPS прокси, basic веб-аутентифи-
кацию и cookies. Работает с Windows
NTLM-аутентификацией, автоматичес-
ки определяя во время записи сцена-
рия и затем проигрывает во время тес-
та. Для работы с различными профи-
лями для регистрации пользователей
могут быть использованы перемен-
ные. При проведении теста можно за-
действовать дополнительные мони-
торы, использующие SNMP, WebLogic,
WebSphere, RSTAT и Windows, Linux,
Solaris, с помощью которых можно кон-
тролировать загрузку системы (про-
цессора, памяти).
Позволяет проводить распреде-
ленные тесты. Один из компьютеров
является контролером, на остальные
устанавливаются генераторы нагруз- Рисунок 11. Вывод результата теста в NeoLoad
ки (loadGenerator). Контролер распре-
деляет нагрузку между loadGenerator няются отдельно. Для получения ре- раметру. Проект затем можно сохра-
и собирает статистику. зультата требуется пройти три шага: нить для повторного использования.
Очень удобно реализована рабо-  Design – настройка проекта, здесь
та с виртуальными пользователями. три вкладки. В «Repository» указы- Вывод
Пользователи имеют индивидуаль- ваются веб-страницы и парамет- Тесты, как правило, проводятся не один
ные настройки, затем они объединя- ры запросов, в «Virtual User» созда- раз, и после устранения недостатков
ются в Populations (должна быть со- ются виртуальные пользователи хотелось бы сравнить результат с пре-
здана как минимум одна Populations), и указывается, какие из веб-стра- дыдущим. К сожалению, среди пред-
в Populations можно задать общее по- ниц они должны посетить, и усло- ставленных продуктов такая возмож-
ведение (например, 40% пользова- вия, которые выбираются в левой ность есть только у NeoLoad. Еще один
телей популяции посещают динами- вкладке в «Actions», проверяется подобный инструмент Web Performance
ческие ресурсы, 20% читают ново- доступ пользователя к выбранным Suite [3], также позволяет сравнить ре-
сти). Виртуальные пользователи мо- страницам. В «Populations» – зада- зультаты тестов, в обзор не попал по-
гут иметь индивидуальный IP-адрес, ния каждой из групп пользовате- тому, что не удалось провести полно-
полосу и использовать свой сцена- лей. В «Actions» могут быть выбра- ценный тест (вероятно, из-за ограниче-
рий теста. ны следующие действия: ний trial-версии). Также следует обра-
Сценарий будущего теста создать  Delay (установка задержки); тить внимание на LoadRuner, 10-днев-
очень просто. Запускаем приложе-  Loop (повтор запроса); ную тестовую версию которого раз-
ние (при первом запуске потребует-  While (цикл); мером в 300 Мб можно скачать с сай-
ся ввести регистрационный ключ, 30-  If...Then...Else (условие); та проекта [4]. Используя утилиты на-
дневная версия после регистрации бу-  Container и Random Container грузочного тестирования, вы сможете
дет отправлена по почте), выбираем (групповые действия); получить информацию о работе веб-
«New Project», вводим название про-  Try...Catch (обработка ошибок); сервиса и, приняв необходимые меры
екта. После этого будет показана не-  Stop virtual user (остановка вир- по устранению выявленных недостат-
большая подсказка по поводу даль- туального пользователя). ков, гарантировать требуемую произ-
нейших действий (см. рис. 10), нажа-  Runtime – указываются парамет- водительность.
тие «Start Recording» запустит веб-бра- ры теста, проводится тест. Здесь
узер, все перемещения с его помощью же в отдельных вкладках по ходу 1. Скрипты к OpenSTA – http://www.
будут записаны. По окончанию нажи- проведения теста выводится ста- trickytools.com/php/opensta.php.
маем «Stop Recording» или закрываем тистика. 2. Д о к у м е н т « A n a l y z i n g O p e n S TA
браузер. Запускается мастер, который  Results – отвечает за вывод раз- Performance Results» – http://www.goldb.
поможет создать виртуальных пользо- личной статистики (см. рис. 11) org/docs/opensta_log_analysis.pdf.
вателей и произведет автоматический в виде таблиц и графиков. 3. Сайт проекта Web Performance Suite –
поиск динамических параметров в за- http://www.webperformanceinc.com.
писанных страницах, выставит сред- Причем, кроме общих значений, 4. Сайт проекта LoadRuner – http://www.
нее значение thinktime. Компоненты можно, используя систему фильтров, mercury.com/us/products/performance-
страницы (HTML, images, CSS) сохра- отобрать информацию по любому па- center/loadrunner.

№12, декабрь 2006 73


web

Как надо и как не надо защищать


веб-контент от кражи

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

Защищать посетителю, а с другой – очень силь- лы, способной это предотвратить. Ес-
или не защищать но не хотим, чтобы он получил эту ин- ли вы хотите чем-то поделиться с ми-
Специфика защиты веб-контента формацию в любом виде, пригодном ром – делитесь! Одна искорка не сде-
(под которым мы будем понимать всю для дальнейшего осмысления и обра- лает мир теплее или светлее, но… си-
совокупность текстового и графичес- ботки. Как говорится, что в Сеть по- деть в кромешной темноте и ничего
кого содержимого вместе с особен- пало, то пропало. В этом и есть сущ- не делать – еще глупее.
ностями оформления) антагонистич- ность Сети. Любая полезная инфор- Но это все была лирика, которой
на по своей природе. С одной стороны, мация мгновенно распространяется по сыт не будешь. А у кого-то уже жена,
мы стремимся передать информацию сотням тысяч узлов, и в мире нет си- и дети растут. Все это хозяйство требу-

74
web
ет денег, и, чтобы их заработать, приходится охранять свой
креатив от желающих обогатиться за чужой счет. Но всег-
да ли нужно защищаться? Например, сайтам, ненавязчиво
рекламирующим бытовую и офисную технику (фотоаппара-
ты, мобильные телефоны) и живущим преимущество за счет
спонсоров и рекламы, защита идет только во вред. Если кто-
то хочет скопировать рекламную статью, описание или до-
кументацию на новый смартфон – пусть копирует! Он ведь
не зря копирует, а с расчетом где-то разместить! Пусть да-
же на своем сайте, в журнале, книжке. Чем больше людей
узнают о товаре, тем круче взметнется кривая продаж!
Тем не менее существует большая группа людей, счи-
тающих, что любое несанкционированное копирование ин-
формации – это прямая упущенная выгода и без защиты
сайт оставлять нельзя. Посетителям демонстрируются фо-
тографии или электронные тексты, но за возможность со-
хранить их на диск/распечатать/вставить в свой реферат
необходимо заплатить. А платить, естественно, никто не хо- Рисунок 1. Дизайн сайта – единственное, что нельзя защитить
чет (или хочет, но не может ввиду неразвитости систем оп-
латы). Вот и приходится защищать. При всей порочности
этой методики и моем отвращении к ней однажды я ока-
зался замешан в проектировании такой защиты. А для это-
го потребовалось проанализировать весь комплекс техни-
ческих средств, имеющихся на рынке, намотать на ус чужие
ошибки, отобрать лучшие решения, добавить свои собс-
твенные идеи и соединить все это воедино.

Что именно мы собираемся защищать


Современные сайты далеко ушли от своих прародителей,
и, собственно, самого HTML-кода «в чистом виде» в них
практически не осталось. Основную статью расходов ны-
не составляют разработка графического дизайна, проек-
тирование PHP-движка (естественно, PHP приведен лишь
в качестве примера, зная CGI, движок можно написать и на
Си), ну и, наконец, «набивка» сайта живым содержимым –
текстами статей, фотографиями и т. д.
Рисунок 2. …а вот графические элементы дизайна
Дизайн – единственное, что нельзя защитить, поскольку защитить можно!
расположение графических элементов и организация до-
ступа к ним – это идея в чистом виде, выпадающая из поля ческой совокупности, ведь посещаемость (в долговремен-
зрения авторского и патентного прав (рис. 1). Но вот гра- ной перспективе) определяется именно содержимым, не-
фические элементы, слагающие дизайн, защитить можно прикосновенности которого угрожает:
(хоть и сложно) (рис. 2).  сохранение HTML на диск;
PHP-движок в защите не нуждается, поскольку правиль-  копирование фрагментов текста в буфер обмена;
но настроенный веб-сервер никогда не отдает програм-  сохранение изображений правой кнопкой мыши;
мные модули, а всего лишь возвращает результат их рабо-  «телепортеры» – программы, сохраняющие весь сайт
ты, представляющий собой веб-страничку, сгенерирован- целиком (или его часть) для off-line просмотра или со-
ную на лету, благодаря чему потребность в защите самого здания «пиратского» зеркала.
HTML-кода практически полностью отпадает. Теоретичес-
ки веб-мастер может запрограммировать хитрый JavaScript, Однако прежде чем приступать к защите, неплохо бы
внедряемый в страницу в «чистом виде», однако что мешает рассмотреть ситуацию не только с технической, но и с эко-
ему реализовать весь «стратегический» код на серверной номической точки зрения. Никакая защита не достается
стороне? Конечно, какая-то часть кода неизбежно должна бесплатно, даже если взять готовый некоммерческий про-
присутствовать и на клиентской стороне для обеспечения тектор, то следует сразу же приготовить себя к тому, что за-
надлежащего уровня интерактивности (ниспадающие ме- шифрованные страницы (если в защите использовалось
ню, всплывающие подсказки…), но все это уже давно на- шифрование) окажутся незамеченными поисковыми ро-
писано и претендовать на уникальность в этой «отрасли» ботами, конфликты защиты с не IE-браузерами (а разрабо-
по меньшей мере странно. тать неконфликтную защиту очень трудно). Короче, мы те-
В защите нуждается не дизайн и не PHP/JS-код, а имен- ряем пользователей, и если очень постараться, то можно
но само содержимое сайта во всей его текстовой и графи- добиться, что на сайт вообще никто не зайдет. Спрашива-

№12, декабрь 2006 75


web
ется, а для чего тогда его вообще делать?! Кроме того, ни- То есть мысль следующая: по сравнению с защитой про-
какая защита не обходится без оверхида (т.е. накладных граммного обеспечения защита веб-контента более беспо-
расходов), выражающихся в увеличении размеров страни- лезна и менее надежна, потому что есть общий алгоритм ее
цы и, как следствие, увеличение нагрузки на сервер и до- взлома, связанный с разумной стоимостью, которая в разы
полнительный трафик. А вот это уже прямой убыток (осо- ниже, чем для программного обеспечения, так как не тре-
бенно на сайтах с высокой посещаемостью). бует квалифицированной рабочей силы.
Самое главное, что опытных пользователей никакая
защита не остановит. Одно дело, если человек хочет пе- Как не нужно защищать
ретащить картинку на свой рабочий стол или пополнить текст и картинки
домашнюю библиотеку. Тогда действительно есть шанс, Количество веб-мастеров, пользующихся «грязными» за-
что в процессе ковыряния защиты его желание упадет ни- щитными приемами, просто поражает. Эти приемы достав-
же нуля и он просто махнет рукой и займется чем-то бо- ляют множество неудобств легальным пользователям и ло-
лее прибыльным или интересным. А вот если копирова- маются за несколько секунд даже без напряжения мозго-
ние сайта преследует коммерческую выгоду, превышаю- вых извилин.
щую стоимость взлома, он будет скопирован. Кто-то при- Самым распространенным методом защиты копирова-
влекает к этой работе хакеров, кто-то голодных (и бес- ния картинок и грабежа текста был и остается JavaScript,
правных!) студентов, сравнительно быстро «перебиваю- перехватывающий click и возвращающий false если
щих» сайт вручную. event.button == 2.
В простейшем случае исходный текст этой «защиты»
выглядит так:

Листинг 1. Листинг Java-скрипта, блокирующий


правую кнопку мыши

<HEAD>
<SCRIPT language=JavaScript>

function click(x)
{
if (document.all)
{
if (event.button == 2)
{
alert("this operation isn't allowed");
return false;
}
}

}
document.onmousedown=click;

</SCRIPT>
</HEAD>

Рисунок 3. Защита перехватывает нажатие правой кнопки мыши <BODY>


и вместо контекстного меню выводит диалоговое окно
с лаконичным сообщением «this operation isn't allowed»
А вот результат его работы: выделяем текст мы-
шью, щелкаем правой кнопкой мыши и вместо привыч-
ного контекстного меню видим грозное диалоговое окно
(см. рис. 3).
Если же после выделения текста не трогать мышь, а на-
жать <CTRL-Ins>, <CTRL-C> или обратиться к пункту «Ко-
пировать» в меню «Правка», то, несмотря ни на какие за-
щиты, текст и даже изображение будут успешно скопиро-
ваны в буфер обмена, откуда их (естественно, по разде-
льности) можно вставить в текстовый и графический ре-
дакторы соответственно.
Кстати, если в последних версиях IE подвести к кар-
тинке мышь и некоторое время ее не двигать, возникнет
панель инструментов с изображением «дискетки», со-
храняющей изображение несмотря ни на какие скрипты
(см. рис. 4).
Хорошо, давайте усилим защиту и напишем скрипт, за-
прещающий не только контекстное меню, но еще и выде-
ление текста, причем не только мышью, но и по комбина-
Рисунок 4. Обход защиты «правой кнопки» путем наведения
мышиного курсора в угол сохраняемой картинки в последних
версиях IE Выделить все»:

76
web
Листинг 2. Исходный код Java-скрипта, блокирующего
не только правую кнопку мыши, но еще и выделение текста
всеми доступными способами

<SCRIPT LANGUAGE="JavaScript">
document.ondragstart = ops;
document.onselectstart = ops;
document.oncontextmenu = ops;

function ops() Рисунок 5. Заблокированные пункты меню «Вырезать»,


{ «Копировать» и «Вставить» в IE, «Выделить все»
return false; хоть и не заблокировано, но все равно не работает
}

</SCRIPT>

Проверка показывает, что мышь действительно «от-


дыхает», пункты «Выделить», «Копировать» и «Вставить»
заблокированы, а «Выделить все» хоть и не заблокиро-
вано, но не работает, как и контекстное меню, вызывае-
мое по <SHIFT-F10> или клавишей, расположенной слева
от правой кнопки <CTRL> (см. рис. 5).
Однако торжествовать победу еще рано. Во-первых,
панель инструментов, возникающая при наведении мы-
шью на картинку, по-прежнему исправно работает, а во-
вторых, пользователь может отключить JavaScript, воз-
вращая своему любимому браузеру всю его функциональ-
ность (см. рис .6).
Раз наша защита построена на скриптах, необхо-
димо проектировать страницу так, чтобы без скриптов
она отображалась не полностью или вообще не отобра-
жалась совсем. Проще всего использовать конструкцию Рисунок 6. Обход защиты путем отключения скриптов —
«<script>document.write("text");</script>», конкретное вопло- правая кнопка сразу же восстанавливает свою работоспособность
щение которой может выглядеть, например, так:

Листинг 3. Вывод содержимого сайта через скрипты


и, как следствие, препятствующий их отключению

<script>document.write ("Данный перевод (ввиду нехватки


времени) является чисто техническим с рядом литературных
огрехов, которые у меня не хватило времени исправить. Нумерация
статей с оригиналом может не совпадать. Все комментарии
в фигурных скобках – это замечания переводчика");</script>

Ниже показан внешний вид защищенной странички


с отключенными JavaScript (естественно, вывод предуп-
реждения о необходимости включения скриптов лишним
не будет и совсем не помешает, а то ведь некоторые мо-
гут и не догадаться, что тут что-то предполагается уви-
деть) (см. рис. 7).
Ладно, с текстом мы более или менее разобрались.
А как быть с картинками? Некоторые разрезают одну
картинку на множество мелких частей, наивно полагая,
что пользователю будет лень сохранить пару десятков
фрагментов, а затем подгонять их в текстовом редакторе.
Рисунок 7. Внешний вид защищенной странички с отключенными
Но… тут выясняется, что: скриптами (исчез ранее присутствующий текст, см. рис. 6)
 особенности формата jpg приводят к тому, что края раз-
резанной картинки уже не стыкуются и приходится ли-  клавиша <print screen> делает грабеж картинки прос-
бо уменьшать степень сжатия, либо переходить на png, тым и приятным.
но и то, и другое ведет к росту трафика и замедлению
загрузки; Так же не стоит использовать картинки в виде флеш-
 браузеры очень плохо справляются со склейкой карти- изображений. Их уже научились сохранять даже начина-
нок и очень часто возникают «артефакты» в виде пус- ющие пользователи, а многие менеджеры закачек дела-
тых линий или наложений картинок друг на друга (осо- ют это автоматически.
бенно если пользователь смотрит страничку с нестан- Сложнее бороться с сохранением страницы на диск.
дартными настройками браузера типа разрешения, мас- Некоторые браузеры содержат ошибки, приводящие к не-
штаба и т. д.); возможности сохранения при нарушении структуры HTML,

№12, декабрь 2006 77


web
сем не так уж и безумна, как кажется. Ведь преобразование
текста в графику необязательно осуществлять на сервер-
ной стороне! Это можно поручить и JavaScript (или ActiveX-
модулю, если это IE).
На сервере мы имеем PHP-модуль, шифрующий текст
и передающий его клиенту. Браузер клиента «скармли-
вает» его JavaScript/ActiveX-модулю и тот в окончатель-
ном виде выводит его на экран. Для чтения разрешения
вполне достаточно, а вот для OCR уже маловато, да и ко-
му придет в голову пропускать веб-страницы через OCR
одну за другой?
Конечно, назвать это защитой можно только с большой
натяжкой, поскольку вместе с зашифрованным текстом кли-
енту передается и сам ключ, следовательно, разобравшись
в алгоритме шифрования (изучив код сценария JavaScript),
хакер без труда напишет программу, расшифровывающую
текст, но не превращающую его в графику.
Рисунок 8. Внешний вид программы SubRip, обладающий
способностью качественно распознавать текст с предельно Естественно, на медленных компьютерах такой скрипт
низким разрешением (вообще-то он используется для «грабежа» будет очень сильно тормозить и по сложности своей реали-
субтитров с DVD, но при желании его можно приспособить
и для работы и с другими видами графических текстов) зации он вплотную приближается к самому браузеру или…
к Adobe c ее PDF, в последние версии которого добавлена
возможность эффективной работы по Сети со всем буке-
том атрибутов запретов – невозможность выделения текс-
та/печати, запрет сохранения на диск и т. д. Зачем же изоб-
ретать велосипед, когда можно купить готовый? Увы, гото-
вый страдает целым рядом врожденных пороков. Как и лю-
бая серийная защита, Adobe поломан еще много лет на-
зад и никакие ухищрения не позволят ему противостоять
армии хакеров уже хотя бы в силу того факта, что хакеров
много, а он один. Напротив, ковырять JavaScript, создан-
ный на «коленках» веб-дизайнером Васей, скорее всего
никто не будет.
К тому же реализовывать полноценный rendering-engine
в скрипте совершенно необязательно. Достаточно ограни-
Рисунок 9. Сохранение целого сайта на жесткий диск с помощью
программы Teleport Pro читься одним лишь текстом. Для усложнения взлома мож-
но преобразовывать в графику некоторое количество сим-
при этом сама страница отображается вполне нормаль- волов еще на сервере (например, 6 или 9%, чтобы несиль-
но, но… никаких гарантий, что остальные браузеры пове- но замедлять время загрузки страницы), тогда без OCR
дут себя точно так же, у нас нет. Зато вполне оправдывает уже не обойтись.
себя прием «разрезания» текстового содержимого на ку- Популярный FineReader с таким разрешением уже
сочки по 1-2 Кб. Читать страницу (в интерактивном режи- не справляется, но с ним великолепно работает слегка пе-
ме) вполне возможно, и даже нельзя сказать, чтобы сильно ределанный SubRip (кстати говоря, распространяемый со-
затруднительно (хотя постоянно нажимать на ссылку «Да- вершенно бесплатно). Идея заключается в следующем:
лее», конечно, быстро надоедает), а вот собрать из всех графический файл разбивается на символы (алгоритм вы-
сохраненных страничек исходную статью – это же сколько деления символов, даже наложенных на сложные и мало-
труда нужно затратить! контрастные текстуры, давно отработан), затем изобра-
Кстати, если по каким-то причинам страница не сохра- жение показывается пользователю, который должен ввес-
няется на диск, можно открыть ее в MS Word и сохранить ти соответствующий ему символ (или даже несколько сим-
на диск либо как html, либо как doc. Вместе с картинками, волов, если во входном тексте несколько букв слипаются
таблицами и другими элементами. Если же это не получа- в сплошное «месиво»). Для каждого символа создается би-
ется и Word с грохотом падает, имеет смысл попытаться товая матрица, и в дальнейшем это изображение распоз-
выделить наиболее значимую часть страницы и вставить нается автоматически. То есть программа как бы самообу-
ее в Word через буфер обмена. В 99% случаев это сраба- чается в процессе работы и обращается к пользователю
тывает! все реже и реже. Поскольку возможных начертаний одно-
го и того же символа существует не так уж и много (естес-
Сложная защита с простым взломом твенно, в контексте распознаваемой страницы, а не «на-
Бороться с грабежом веб-контента традиционными средс- чертаний вообще»), а самих символов и того меньше, обу-
твами совершенно бесперспективно. А что если… отобра- чение занимает совсем немного времени, и на выходе по-
жать текстовое содержимое в графическом виде? Идея сов- лучается довольно качественно распознанный текст, пусть

78
web

Готовые защитные продукты изображений и вывод на печать: http:// всего один раз, и она будет работать
 HTML Protector – обладает способнос- www.pullsoft.com/htmlpower.zip. как часы. Напротив, описанный меха-
тью выборочно шифровать HTML-со-  Encrypt HTML Pro – шифрует всю низм шифрования с переводом текста
держимое (Java/VBScript, e-mail-адре- HTML-страницу целиком или только в графику не допускает универсально-
са против mail-грабберов, линки, текст, ее часть, с Teleport не борется, изоб- го взлома, требуя к себе индивидуаль-
изображения), борется с Teleport и по- ражения не режет, сохранению стра- ного подхода!
добными ему программами, позволяет ницы не препятствует, но блокиру-  Зашифрованное содержимое (неваж-
запрещать off-line-просмотр, выделе- ет правую кнопку мыши, контекстное но каким путем) недоступно поиско-
ние текста, сохранение изображений меню, выделение текста и печать: вым роботам, что крайне негативно
и печать; при необходимости разреза- http://www.mtopsoft.com /download / отражается на посещаемости, поэто-
ет изображения на кусочки и/или на- enchp.zip. му шифрование имеет смысл исполь-
кладывает на них водяные знаки, кон- зовать только для создания «закрытых
вертирует их в swf, а также препятс- Внимание: клубов» и «тайных сообществ», в ко-
твует отображению страницы во фрей-  Не стоит путать шифрование, исполь- торые попасть можно только по «при-
ме чужого сайта или копированию его зуемое этими программами, с шифро- глашению», а простой человек с улицы
фрагментов, поддерживает IE, FireFox ванием, описанным в статье: зашифро- их навряд ли найдет.
и Opera: http://antssoft.fileburst.com/ ванное содержимое расшифровывает-  Шифрование также позволяет обхо-
htmlprotector.zip. ся и выводится в браузер в текстовом дить разнообразные adult-фильтры,
 HTML Power – шифрует всю HTML-стра- виде и потому может быть сохранено блокирующие доступ к контенту оп-
ницу целиком или только ее часть, бо- на диск универсальной программой, ределенного содержимого (к которо-
рется с Teleport и подобными ему про- представляющей собой обыкновенное му относятся не только порноресур-
граммами, препятствует сохранению расширение для браузера и считываю- сы, но и некоторые политические сай-
страницы на диск, картинки не режет, щей содержимое окна через API-функ- ты), впрочем, для этих целей сущест-
водяные знаки не накладывает, но за- ции в обход пользовательского интер- вуют и другие, гораздо более продви-
то умеет блокировать правую кнопку фейса. Такую программу (для каж- нутые методики (например, VPN-тун-
мыши, выделение текста, сохранение дого браузера) достаточно написать нели или https-proxy сервера).

не без ошибок, но все же пригодный для последующей ра- Если веб-содержимое генерируется PHP (а в большинстве
боты с ним (см. рис .8). случаев это так), совсем несложно сделать, чтобы ссылка
Таким образом, взломать предложенную защиту все-та- на предыдущую страницу (или «home page») каждый раз ге-
ки возможно, но… для этого нужно быть хакером, а «потуги» нерировалась случайным образом и «телепортер», обна-
обычных пользователей она выдержит вполне успешно. ружив, что такой ссылки еще нет в его базе, повторял за-
грузку «home» несчетное количество раз. Чуть-чуть усовер-
Защита от телепортеров шенствовав алгоритм, можно добавить и случайную гене-
Большинство веб-мастеров очень не любят, когда пользо- рацию даунлинков.
ватели выкачивают весь сайт целиком, а потом спокойно Самый простой пример: каждый линк представляет
почитывает его в off-line или прожигают на болванки, сбы- ссылку на скрипт с параметром, идентифицирующим эту
ваемые в ближайших ларьках. ссылку. Идентификатор состоит из двух частей, первая
Существует множество программ, предназначенных часть – случайным образом генерируемый ключ, которой
для автоматического скачивания и обладающих весьма расшифровывает (по XOR) вторую часть. Этот механизм,
продвинутой системой фильтров, способных качать только несмотря на всю его простоту, не позволяет «телепорте-
то, что нужно, и не качать одни и те же страницы несколь- ру» отличать ссылки на уже скачанные страницы от тех,
ко раз подряд. Тем не менее их достаточно просто обма- что еще предстоит скачать. Теоретически (!) «телепортер»
нуть (см. рис .9). может анализировать содержимое скачанных страниц, вы-
Первое, что приходит в голову, – это запрашивать под- деляя среди них дубли, но что это ему дает?! Качать-то все
тверждение при скачивании каждого файла в виде графи- равно придется… в бесконечном цикле!
ческой картинки с искаженными символами, которые тре-
буется ввести (см. рис. 10). Конечно, это утомляет чест- Пара слов о поиске украденного
ных посетителей, но зато делает «телепортирование» сай- Как ни защищай свое имущество, его все равно уведут,
та практически невозможным. Можно выводить картинку и веб-содержание начнет расползаться по Сети. Это не-
на экран, перекладывая задачу распознавания на плечи возможно предотвратить, но найти грабителей – в общем-
человека, и если таких людей будет много, то копирование то пустяковое дело. Например, наложить на каждую фото-
займет вполне разумное время. При желании можно даже графию свой логотип. Прием распространенный, но очень
привлечь аудиторию с какого-нибудь порнографического глупый и проблемы не решающий. Логотип, расположен-
сайта с гиперпосещаемостью, если, конечно, «телепорти- ный в незначащей части изображения (где-нибудь в углу)
рование» стоит того. элементарно вырезается. А если расположить его посере-
Другой механизм предполагает генерацию случайных дине да еще выбрать размер покрупнее, на такую фотогра-
аплинков, что приводит к «зацикливанию» телепортера. фию никому смотреть не захочется!

№12, декабрь 2006 79


web
От «визуальных» логотипов лучше трансформации изображения и да- контент, но все с тем же неизменным
сразу же отказаться, а использовать же полиграфическую печать (естес- (не)успехом! Если цифровое содержи-
водяные знаки, цифровые подписи, твенно, не отечественного качества). мое можно просмотреть (прослушать),
скрываемые в изображении метода- С другой стороны, практически все то, очевидно, его можно и скопировать!
ми стеганографии. Тогда, обнаружив современные печатающие устройс- Единственная надежда – на аппарат-
«позаимствованный» материал на чу- тва оснащены специальными защи- ную защиту, вживленную непосредс-
жом сайте, по крайней мере, можно бу- тами от несанкционированного тира- твенно в «железо», но аппаратная за-
дет доказать факт кражи. Весь вопрос жирования банкнот и других ценных щита наших дней сводится все к той
в том: как найти того, кто украл? Если бумаг. Хакеры давно разгадали алго- же программе, упрятанной в микро-
незадачливый похититель недодумает- ритм, по которому принтер отличает программную прошивку (которую мож-
ся переименовать фотографию, с вы- банкноту от всего остального. Не вда- но перешить), да и уровень техничес-
сокой степенью вероятности она будет ваясь в технические подробности, до- кого развития уже позволяет созда-
найдена Google или другим поискови- статочно отметить, что там использу- вать копирующие устройства само-
ком. Аналогичным образом осущест- ется многоуровневая защита, в том стоятельно.
вляется и поиск похищенных текстов, числе основанная и на практически не- Прежде чем вкладывать деньги,
причем тексты ищутся еще быстрее и различимых (глазу) малоконтрастных время, средства в защиту веб-контен-
легче. Можно попробовать выделить окружностей и желтых точках на свет- та, следует хорошо подумать: какие
уникальную фразу, взятую в кавычки лом фоне. В Сети имеется множество убытки это принесет и не превысят ли
(многие именно так и поступают), одна- утилит, позволяющих обходить защи- они «упущенную выгоду» от плагиа-
ко в этом случае Google зачастую вы- ту, просто вырезая эти метки из изоб- торов и пиратов. Практически все ви-
дает негативный результат (что неод- ражения, но… их можно применять ды защиты, упомянутые в статье, ба-
нократно проверено на практике), по- и в мирных целях – вносить в свою зируются на JavaScript, а это значит,
этому лучше выделить из своего текс- фотографию эти метки, после чего ни- что мы теряем пользователей, отклю-
та несколько уникальных слов (комби- какой принтер не станет их печатать! чающих JS по соображениям безопас-
нация которых в других текстах прак- К сожалению, в силу своей изначаль- ности, а так же всех тех, кто пользуется
тически не встречается) и попробовать ной криминальной ориентации дан- браузерами, в которых JS не было еще
найти их, не используя кавычек. Заме- ные утилиты постоянно меняют адре- с рождения (к таким браузерам, в час-
чено, что Google плохо находит те сло- са, и дать постоянный URL невозмож- тности, относится мой любимый Lynx).
ва, которые встречаются только на од- но. Остается только засесть за Google Про совместимость различных реа-
ном конкретном сайте (например, Ка- и искать, искать, искать… лизаций лучше вообще не говорить,
питан Кракрыпырзззклллл), и кирил- и тут приходится тестировать не толь-
лические слова, содержащие в себе Философское заключение ко весь зоопарк имеющихся браузеров,
цифры или спецсимволы. В общем, по- Потребность в охране веб-контента на- но и различные версии каждого брау-
иск – дело тонкое, но тот, кто ищет, тот зрела уже давно, но адекватных ме- зера! А это уже серьезно. Это требует
всегда найдет! тодик защиты до сих пор предложе- создания тестовой лаборатории и су-
Кстати, некоторые стеганографи- но не было. И дело тут совсем не в от- щественных расходов. Так что вопрос:
ческие алгоритмы (и утилиты, их ре- крытости формата HTML. Защищать защищать или не защищать – остает-
ализующие) переживают различные пытаются и eBook, и аудио/видео- ся открытым.

80
bugtraq

Несколько уязвимостей
в PowerDNS Recursor Переполнение буфера
Программа: PowerDNS Recursor 3.1.3 и более ранние вер- в Microsoft Windows
сии. Agent ActiveX-компоненте
Опасность: Высокая. Программа: Microsoft Windows 2000 Advanced Server,
Описание: 1. Уязвимость существует из-за ошибки под- Microsoft Windows 2000 Datacenter Server, Microsoft Windows
счета длины при обработке TCP DNS-запросов. Удален- 2000 Professional, Microsoft Windows 2000 Server, Microsoft
ный пользователь может с помощью специально сформи- Windows XP Home Edition, Microsoft Windows XP Professional,
рованного пакета выполнить произвольный код на целе- Microsoft Windows Server 2003 Datacenter Edition, Microsoft
вой системе. Windows Server 2003 Enterprise Edition, Microsoft Windows
2. Уязвимость существует из-за ошибки при обработке Server 2003 Standard Edition, Microsoft Windows Server 2003
CNAME-записей. Удаленный пользователь может аварий- Web Edition.
но завершить работу приложения. Опасность: Высокая.
URL производителя: www.powerdns.com. Описание: Уязвимость существует из-за неизвестной
Решение: Установите последнюю версию (3.1.4) с сайта ошибки в Microsoft Agent ActiveX-компоненте при обработ-
производителя. ке .ACF-файлов. Удаленный пользователь может с помо-
щью специально сформированного .ACF-файла вызвать
Небезопасные методы в WinZip переполнение буфера и выполнить произвольный код на
FileView ActiveX-компоненте целевой системе.
Программа: WinZip 10.0 версии до Build 7245. URL производителя: www.microsoft.com.
Опасность: Высокая. Решение: Установите исправление с сайта производите-
Описание: Уязвимость существует из-за наличия несколь- ля.
ких небезопасных методов в FileView ActiveX-компоненте
(WZFILEVIEW.FileViewCtrl.61). Удаленный пользователь мо-
жет с помощью специально сформированной веб-страницы Переполнение буфера в службе IMAP
выполнить произвольный код на целевой системе. в MailEnable
URL производителя: www.winzip.com. Программа: MailEnable Enterprise Edition 1.x, MailEnable
Решение: Установите последнюю версию с сайта произ- Enterprise Edition 2.x, MailEnable Professional 2.x, MailEnable
водителя. Professional 1.x.
Опасность: Высокая.
Переполнение буфера в ProFTPD Описание: Уязвимость существует из-за ошибки при обра-
Программа: ProFTPD 1.3.0 и более ранние версии. ботке некорректных команд или данных в службе IMAP. Уда-
Опасность: Высокая. ленный пользователь может с помощью специально сфор-
Описание: Уязвимость существует из-за недостаточной об- мированной команды вызвать переполнение буфера и вы-
работки входных данных в функции sreplace() в файле src/ полнить произвольный код на целевой системе.
support.c. Удаленный авторизованный пользователь мо- URL производителя: www.mailenable.com.
жет вызвать переполнение стека и выполнить произволь- Решение: Установите исправление с сайта производите-
ный код на целевой системе. ля.
URL производителя: www.proftpd.org.
Решение: Установите последнюю версию (1.3.0a) с сайта
производителя. Обход ограничений безопасности
в GNU tar
Уязвимость форматной строки Программа: GNU tar 1.15.1 и 1.16, возможно более ранние
в GNU Radius версии.
Программа: GNU Radius 1.3 и более ранние версии. Опасность: Средняя.
Опасность: Высокая. Описание: Уязвимость существует из-за того, что
Описание: Уязвимость существует из-за ошибки формат- функция extract_archive() в файле extract.c и функция
ной строки в функции sqllog(). Удаленный пользователь extract_mangle() в файле mangle.c обрабатывает тип запи-
может послать приложению специально сформированную си GNUTYPE_NAMES, содержащий символическую ссыл-
строку и выполнить произвольный код на целевой систе- ку. Удаленный пользователь может с помощью специаль-
ме. Для успешной эксплуатации уязвимости GNU Radius но сформированного архива перезаписать произвольные
должен быть собран с поддержкой SQL, и SQL-эккаунтинг файлы на целевой системе.
должен быть разрешен. URL производителя: www.gnu.org/software/tar.
URL производителя: www.gnu.org /software /radius / Решение: В настоящее время способов устранения уязви-
radius.html. мости не существует.
Решение: Установите последнюю версию (1.4) с сайта про-
изводителя.

№12, декабрь 2006 81


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

Предвестник бури, или История первого


персонального компьютера
Наилучший путь предугадать будущее –
изобрести его

Алан Кей

Дмитрий Мороз

Кремниевая долина ещё в середине прошлого века превратилась в «кузницу передовых идей»
в области информационных технологий. Яркий тому пример: исследовательский центр Xerox
PARC, в котором, наряду с ксероксом и лазерным принтером, в 1973-м году был создан первый
в мире персональный компьютер.

Создавая «архитектуру му исследователю, чьё имя, к сожа- ний. Среди них стоит отметить груп-
информации» лению, осталось неизвестным. Этот пу бывших студентов Стэндфордско-
Название этому разделу было да- человек, нанятый высшим руководс- го Исследовательского Института
но неспроста. Как раз Architecture твом Xerox для планирования даль- (Stanford Research Institute, SRI) во гла-
of Information являлась целью, стояв- нейшей стратегии её развития, по- ве с Дугласом Энгельбартом (Douglas
шей перед первыми учёными иссле- рекомендовал компании создать тех- Engelbart).
довательского центра Xerox Palo Alto нологический центр для проведения На протяжении 1960-х годов Эн-
Research Center (Xerox PARC). За свою исследований в области цифровых гельбарт со своими коллегами созда-
почти 36-летнюю историю он принёс технологий. По его словам, анало- ли так называемую «Диалоговую Сис-
миру множество открытий в области говые разработки в будущем станут тему» (On-Line System, NLS). Она бы-
волоконно-оптической и лазерной фи- морально и технически устаревшими, ла разработана на основе технологии,
зики, интегральной микросхемотехни- и для всей индустрии копировальной позднее названной «гипертекстом»
ки, систем автоматизированного про- техники, которой «кормилась» Xerox, (Hypertext). NLS – интерактивная сис-
ектирования, а также искусственного может наступить кризис. Единствен- тема для работы с текстовой и графи-
интеллекта. ный правильный выход состоял в объ- ческой информацией – предоставля-
Не остались в стороне и компью- единении копира и цифровых техно- ла следующие возможности: телекон-
терные технологии. В недрах центра логий с интегрированными офисны- ференции, электронную почту, редак-
работали над языками программиро- ми системами. Идея была принята тор по обработке текстов, гипертек-
вания, системами и сетями передачи «на ура», и 1 июля 1970 года состоя- стовые ссылки, а также конфигури-
информации, операционными систе- лось открытие нового исследователь- рование пользователем своего рабо-
мами, графическими пользователь- ского центра. чего места. Инновационные возмож-
скими интерфейсами, издательскими Сразу после этого Xerox PARC на- ности Диалоговой Системы потребо-
системами и т. д. чала набирать «рекрутов». В основ- вали создания для неё новых инстру-
Своим появлением на свет Xerox ном это были молодые учёные – вы- ментов. Среди них были манипуля-
PARC обязана одному-единственно- пускники высших учебных заведе- тор «мышь», многооконная система

82
ретроспектива
ввода/вывода данных, система помо-
щи в режиме on-line, а также органич- Преждевременно почивший ления странички эмулятора) детище Сми-
ность и простота всего пользователь- Altogether та эмулировало процессор компьютера,
ского интерфейса. В своё время программист Эрик Смит (Eric а также видеоподсистему. Незаконченны-
Ещё один человек, имя которого Smith) взялся за написание эмулятора ми остались дисковая и сетевая подсисте-
стоит упомянуть – Алан Кей (Alan Kay). Xerox Alto под названием Altogether. К со- мы, без которых Altogether был бесполез-
До своего появления в Xerox PARC жалению, до стабильно работающей вер- ным. Исходные тексты программы можно
он занимался разработкой SmallTalk – сии дело не дошло: по состоянию на 26 ок- найти на сайте Altogether: http://altogether.
первого в мире объектно-ориенти- тября 2003 года (дата последнего обнов- brouhaha.com.
рованного языка программирования.
Кроме того, «перу» Кея принадлежит Что касается технической стороны ты с системой: вывод информации
концепт первого портативного компью- Alto, основные его характеристики бы- на экран, обновление содержимого
тера Dynabook. ли описаны ещё в памятке Лампсона. оперативной памяти, работу с диско-
Приглашённого в новый исследо- выми накопителями, сетевой подсис-
вательский центр Кея сразу же опреде- Первый в мире темой и другим функциями ввода/вы-
лили в команду, ответственную за NLS. Персональный компьютер Xerox Alto, вода. Несмотря на такую «многоза-
Для облегчения их работы Xerox в 1971 представленный в 1973 году, состоял дачность», пользователь мог управ-
году лицензировала у SRI манипуля- из четырёх основных частей: систем- лять всего одной задачей, причём она
тор «мышь». ного блока, растрового дисплея, кла- всегда имела наименьший приоритет.
Со временем концепт Диалоговой виатуры и трёхкнопочного манипуля- Такой подход позволял, в случае надо-
Системы приобрел более или менее тора «мышь». Согласитесь, это те же бности, моментально выделить допол-
законченный и целостный вид, в ре- составляющие, которыми может «пох- нительную процессорную мощность
зультате чего встал вопрос о вопло- вастаться» любой ПК. для управления другими задачами.
щении этих идей в едином аппаратно- Система обладала 128 Кб ОЗУ (рас- Производительность МП Alto состав-
программном комплексе. ширяемыми до 256 Кб), а также съём- ляла около 0,4 MIPS (миллионов инс-
Начав работать в Xerox PARC, Кей ными жёсткими дисками объёмом трукций в секунду).
не забыл о своей разработке – ком- 2,5 Мб (дисковод магнитных дисков, со- Ещё одно новшество первого ПК –
пьютере Dynabook. Первоначально зданный IBM в 1971 году, во время про- использование в качестве контролле-
его просьба создать несколько де- ектирования Alto ещё не был доступен). ра растрового экрана «буфера кадра»
сятков подобных машин, которые бы В качестве устройства отображения ин- (frame buffer), хранящего в себе инфор-
служили подспорьем в его исследо- формации был использован 12,8-дюй- мацию, выводимую на экран. Создан-
ваниях, была отклонена. Однако сама мовый растровый чёрно-белый дисп- ный инженером Диком Шаупом (Dick
идея портативного компьютера пон- лей с разрешением 606x808 точек, в от- Shoup), буфер кадра Alto представлял
равилась Батлеру Лампсону (Butler личие от всех современных «ландшаф- собой простой 16-разрядный регистр
Lampson), одному из главных учёных тных» экранов, имевший «портретную» сдвига, управлявшийся одной из мик-
и менеджеров Xerox PARC. В декабре ориентацию. В завершение компьютер ропрограмм центрального процессора
1972 года в очередной из своих памя- имел «на борту» встроенный сетевой системы. ЦП в этом случае использо-
ток он написал для руководства Xerox адаптер стандарта Ethernet, разработ- вался для выборки обновлённых дан-
«манифест», в котором попросил выде- ка которого велась в недрах центра па- ных, которые необходимо вывести на
лить денежные средства на разработ- раллельно с работами над Alto. дисплей из оперативной памяти в этот
ку и производство «персональных ком- Инновационной разработкой ин- регистр. Специально для хранения ви-
пьютеров» под названием Alto, за ос- женеров PARC стал 16-битный микро- деоданных в ОЗУ было зарезервиро-
нову которых была бы взята разработ- процессор Alto, использовавший от- вано 50 Кб адресного пространства.
ка Алана Кея под названием Dynabook. дельные микропрограммы для выпол- Использование буфера кадра позво-
Персональный компьютер в предыду- нения большинства
щем предложении был написан в ка- функций ввода/выво-
вычках неспроста, ведь исторически да вместо их аппарат-
памятка Лампсона – первое упомина- ной реализации. Яд-
ние термина. ро процессора могло
Однако концепция портативного одновременно выпол-
компьютера, являвшегося, по замыс- нять до 16 различных
лу Кея, хранилищем всей необходимой задач, одной из ко-
его владельцу информацией и сред- торых являлась не-
ством для её обработки, была замене- посредственно обра-
на более практичной настольной сис- ботка основного на-
темой. Её разработкой первоначально бора инструкций МП.
занимался Чак Такер (Chuck Thacker), Остальные задачи
на помощь которому со временем при- процессора отвеча-
шли ещё несколько человек. ли за функции рабо- Один из корпусов Xerox PARC

№12, декабрь 2006 83


ретроспектива
пользуемых в данный момент компо- и FTP (не путать с одноимённым про-
нент операционной системы. Если же в токолом). Первая программа была
будущем в них возникала потребность, очень похожа на Alto Executive и отве-
они могли быть активированы с помо- чала за загрузку программ не с жёс-
щью метода «Counterjunta». ткого диска компьютера, а из се-
Программа, выполнявшаяся по- ти. В результате большие по объёму
верх операционной системы, называ- программы могли храниться на фай-
лась Alto Executive. Она являлась мно- ловом сервере, откуда их мог запус-
гооконным файловым менеджером кать любой пользователь Alto, причём
и позволяла пользователю произво- лишь тогда, когда они ему понадобят-
дить различные манипуляции с файла- ся. Скорость передачи данных по сети
ми, а также запускать программы. в данном случае составляла приблизи-
Alto имела очень гибкую файло- тельно 800 Кбит/с. FTP не могла запус-
вую систему. Файлы могли иметь на- кать программы с других компьютеров
звания длиной вплоть до 31 символа и была предназначена для выполнения
(1973 год!). Кроме того, после набора операций с файлами в сети.
Xerox Alto
имени сохранялся регистр букв. В даль- Первоначально всё программное
лило значительно ускорить вывод гра- нейшем, при необходимости найти обеспечение для AltoOS было напи-
фической информации на экран Alto. файл с названием, скажем, «Рабочий- сано на BCPL, однако позже вмес-
Кстати, десять лет спустя, в 1983 го- График» поисковый механизм AltoOS то него стал использоваться похожий
ду, Шауп был награждён премией Эм- не обращал внимания на регистр, в ре- на Pascal объектно-ориентированный
ми (Emmy) за своё изобретение. Не- зультате чего ему было всё равно, как язык Mesa.
смотря на то что первооткрывателем именно пользователь наберёт иско- После своей разработки Alto ста-
в этой области является лаборатория мое имя файла: «РабочийГрафик», ла основным «полигоном» для даль-
Bell Labs, создавшая 3-битный буфер «РАБОЧИЙГРАФИК», или «рабочий- нейшего совершенствования языка
кадра в 1969 году, разработка Дика график». SmallTalk. Кстати, первоначально пред-
Шаупа считается первой, нашедшей Все файлы, хранившиеся на жёс- полагалось, что операционная систе-
практическое применение в компью- тком диске Alto, были разделены ма Alto будет написана именно на нём.
терных системах. на страницы. Каждая из них содержа- Ещё один язык программирования, по-
ла: маленький заголовок, описывав- лучивший распространение на этом
Воплощение ший текущую страницу; путь к файлу, ПК – Lisp, использовавшийся для ре-
Диалоговой Системы которому она принадлежала; а так- шения задач в области искусственно-
Операционная система AltoOS бы- же места расположения предыдущих го интеллекта.
ла написана на языке программиро- и следующих страниц этого же файла. Специально для Alto программис-
вания BCPL, очень похожем на язык В результате такой структуры файло- тами Xerox PARC Чарльзом Симони-
Си. Поскольку адресное пространство вая система первого в мире ПК была ем (Charles Simonyi) и Батлером Лам-
компьютера было ограниченным, про- практически неразрушима. Встроен- псоном был разработан текстовый ре-
граммисты Xerox PARC разработа- ная в AltoOS утилита Scavenger могла дактор под названием Bravo, исполь-
ли специальный метод, названный автоматически восстанавливать пов- зовавший принцип WYSIWYG («What
«Junta». Он использовался для запре- реждённую файловую систему. You See Is What You Get»). Суть его за-
щения доступа программам, написан- За работу AltoOS с локальной сетью ключается в том, что отображаемая
ным на BCPL, к загрузке в ОЗУ не ис- отвечали две программы: NetExecutive на экране страница будет в точности
соответствовать своему распечатан-
Делу время, потехе час игрой с видом «от первого лица» и псевдо ному аналогу. Bravo поддерживал из-
Несмотря на то что Alto была создана в ка- трёхмерной графикой. Суть её заключа- менение размера текста, а также его
честве компьютера, нацеленного на реше- лась в блуждании по лабиринту и отстре- начертания (жирный, курсив, подчёр-
ние серьёзных задач, хитрые программис- ливании «колобков», управлявшихся дру- кнутый). В распоряжении пользовате-
ты не преминули использовать ПК для собс- гими пользователями. ля имелось несколько сотен различ-
твенных развлечений. В результате специ- Уникальная особенность Trek и Maze ных шрифтов. Кроме того, Bravo был
ально для AltoOS были написаны две иг- War заключалась в том, что игрок мог при- наделён функцией отмены предыду-
ры: Pinball и Trek. Первая, как не трудно до- соединяться к игре, а также выйти из неё щей команды (Undo), которая могла
гадаться, представляла собой «пинбол», в любую минуту. Поскольку все Alto могли быть выполнена неограниченное коли-
а вторая – многопользовательскую разно- одновременно «читать» один и тот же пакет чество раз вплоть до возврата содер-
видность игры Space Invenders с кораблями, (блок информации в Ethernet), игра никогда жимого текстового документа в исход-
внешний вид которых был позаимствован не работала на каком-либо одном, коорди- ное состояние.
из вселенной «Звёздный путь» (Star Trek). нирующем остальные, компьютере. Вместо Для рисования имелась отдельная
Кроме того, на Alto была перенесе- этого она запускалась независимо на каж- программа под названием Draw. Вне-
на ещё одна игра – Maze War, являющая- дом ПК, что позволяло играть в неё одно- шне она напоминала современные
ся первой в мире многопользовательской временно десяткам пользователей. графические профессиональные па-

84
ретроспектива
кеты: интерфейс Draw состоял из не-
скольких окон, каждое из которых бы- Единственный наследник фирмы Borland, был положен графический
ло предназначено для команд опре- Несмотря на коммерческий провал STAR, менеджер GEM компании Digital Research
делённой группы. Окно, расположен- его графический интерфейс настолько (которую, кстати, также основали выход-
ное слева, содержало различные ви- понравился руководству Xerox, что было цы из PARC). Новая оболочка работала
ды кистей, верхнее окно было пред- принято решение развивать идею даль- на обычных компьютерах IBM PC AT, прав-
назначено для ввода дополнитель- ше. Созданая специально для этого ком- да, требовала мониторы компании Sigma
ных текстовых команд, а также выво- пания Elixir Technologies занялась пере- Designs с SVGA-разрешением.
да системных сообщений программы. носом графической оболочки Xerox STAR Elixir Desktop превращала простой пер-
В центре располагалось основное ок- на IBM PC. Специалист по компьютерным сональный компьютер в графическую стан-
но – непосредственно «холст». Пользо- пользовательским интерфейсам Xerox цию, которая могла быть использована для
ватель мог рисовать линии произволь- Эд Риган (Ed Regan) помог руководителю создания и подготовки документов к после-
ной длины и ширины. Кривая создава- группы Elixir Брюсу Дэмеру (Bruce Damer) дующей их распечатке на комплексах печа-
лась путём указания нескольких точек, и его команде перенести все элемен- ти Xerox и других производителей. Кроме
по которым Draw вычисляла траекто- ты внешнего вида STAROS в новую гра- того, именно Elixir Desktop считается пер-
рию отрезков и рисовала её, либо же фическую оболочку под названием Elixir вой полноценной графической оболочкой
удержанием мышкой точки на прямой Desktop, работавшую в качестве «над- для архитектуры х86, вышедшей на год
и «перетягиванием» её в сторону ис- стройки» над MS-DOS. раньше Windows 3.0.
кривления линии. Нарисованный в ре- В основу Elixir Desktop, написанной Во многих крупных компаниях Elixir
зультате объект мог быть продублиро- с использованием компилятора Turbo C Desktop используется по сей день.
ван, развёрнут в необходимую сторо-
ну, растянут или сжат. Причём все эти купателей, компания осознала о своем низована «локальная» сеть, в резуль-
операции выполнялись либо движени- промахе. В результате средства от про- тате чего сотрудники смогли общать-
ем мыши, либо набором легко запоми- даж разработок в области персональ- ся между собой посредством элект-
нающихся команд. ных компьютеров Xerox собралась по- ронной почты, а также обменивать-
лучать при помощи новой модели ПК – ся файлами.
И ещё чуть-чуть рабочей станции Xerox 8010 (позже по- Широкой общественности Xerox
о первом ПК лучившей название Xerox STAR), выпу- STAR был представлен спустя це-
Специально для работы с Alto в недрах щенной 27 апреля 1981 года. лых семь лет разработки – в апреле
Xerox PARC было создано несколько 1981 года. Спецификации компьютера
дополнительных устройств: телевизи- «Звёздный» компьютер были следующими: 512 Кб ОЗУ (из ко-
онная камера, символьный принтер ти- Проектирование Xerox STAR велось торых 100 Кб отводилось для хранения
па «ромашка», а также адаптер парал- с 1974 года. Именно этот компьютер данных буфера кадра), жёсткий диск
лельного порта. Кроме того, к этому ПК должен был воплотить все идеи Диа- объёмом 10, 29 или 40 Мб, 8-дюймовый
могли быть подключены дополнитель- логовой Системы, разработанные Эн- дисковод, 17-дюймовый монитор с тра-
ные съёмные жёсткие диски, превра- гельбартом со товарищи. Поэтому его диционной «ландшафтной» ориента-
щавшие компьютер в файловый сер- аппаратная часть создавалась лишь цией и разрешением 1024x808, а так-
вер. Кстати, несколько Alto в локальной после окончания работ над програм- же новый сетевой адаптер с повышен-
сети исследовательского центра Xerox мой, которая и диктовала свои «ус-
выполняли именно эту функцию. ловия».
Всего в Xerox PARC была изготов- Кстати, Xerox STAR не являлся раз-
лена тысяча компьютеров Alto, кото- работкой, созданной в недрах PARC.
рые, будучи объединёнными в еди- Специально для продвижения «офис-
ную сеть, использовались инженера- ных систем» (к которым руководство
ми лабораторий центра. Ещё 500 сис- компании относило персональные
тем нашли своё пристанище в универ- компьютеры) было создано отдельное
ситетских кампусах и правительствен- подразделение, получившее назва-
ных офисах. До коммерческой реали- ние Systems Development Department
зации этого компьютера дело, однако, (SDD). SDD имела два филиала: один
не дошло. Зацикленная на своём ос- располагался на территории PARC
новном бизнесе по производству ко- в Пало Альто (занимался операци-
пировальной и офисной техники, Xerox онной системой и языками програм-
не хотела рисковать большими сума- мирования), а другой – в городке Эль
ми и вкладывать их в популяризацию Сегундо, находившемся неподалёку
персональных ЭВМ. от Лос-Анджелеса (разработка аппа-
Впрочем, с появлением первых ратной части STAR, а также пользо-
массовых компьютеров, таких как Altair вательских программ). Для того что-
8800 и Apple II, а также возникшим ин- бы оба офиса имели постоянную связь
тересом к ним со стороны обычных по- друг с другом, между ними была орга- Распечатанный скриншот игры Maze War

№12, декабрь 2006 85


ретроспектива
Основу ОС составлял «Рабочий стол» реместить, копировать, удалить, пока-
(Desktop; вот откуда пошло это слово- зать свойства, скопировать свойства,
сочетание), разделённый на 1-дюймо- повторить и т. д. В разных случаях (на-
вые квадраты. На рабочем столе раз- пример, программах) эти команды вы-
мещались иконки, представлявшие полняли одни и те же функции, благо-
собой ярлыки для запуска различных даря чему пользователь обучался ра-
программ, а также «прямые ссылки» боте на STAR значительно быстрее.
на директории с файлами, размещён- Остаётся отметить, что в STAROS
ные на жёстком диске. Иконки могли была реализована некая форма мно-
находиться в любой части «Рабочего гозадачности, благодаря которой поль-
стола». Всего их могло быть 154 шту- зователь, например, мог набрать тек-
ки, причём пользователь был волен со- стовый документ, а затем сразу же,
здавать свои собственные. не закрывая редактор, переслать его
Xerox STAR
Встроенный файловый менед- по сети с помощью клиента электрон-
ной до 10 Мбит/с (у предшественника – жер мог отображать данные различ- ной почты.
3 Мбит/с) скоростью передачи инфор- ными способами – от простого спис- Одним словом, в STAROS были
мации. Мышь для нового компьютера ка документов до многоуровневой заложены практически все базовые
была уже двухкнопочной. иерархии каталогов со своими под- функции и возможности операцион-
Старый центральный процессор каталогами. Пользователь мог прос- ных систем, которыми мы пользуемся
Alto в STAR работать не мог из-за воз- тым нажатием и удержанием мыши по сегодняшний день.
росших требований нового програм- (всем известная концепция «Перета- Теперь кратко рассмотрим новые
много обеспечения к производитель- щи и Брось» – Drag & Drop) перемес- программы, поставлявшиеся вместе
ности компьютера. Кроме того, теперь тить объект с «Рабочего стола» в ка- со STAR в комплекте. Все они являлись
он должен был понимать язык Mesa, кую-нибудь папку, записать на диске- результатами разработок, проводив-
на котором было написано подавля- ту, распечатать его или же переслать шихся на Alto. Многие были написаны
ющее большинство программ для но- по электронной почте. с использованием языка SmallTalk, хо-
вого ПК. Поэтому инженерами Xerox На рабочем столе STAROS одно- тя основным всё же являлся Mesa.
PARC был разработан новый чип, ра- временно могло быть открыто до шес- Дальнейшее развитие получил тек-
ботавший в три раза быстрее свое- ти окон, причём, в отличие от AltoOS, стовый редактор Bravo в новой вер-
го предшественника, установленно- они не перекрывали друг друга, а так- сии, названной BravoX. Отныне поль-
го в Alto. же «Рабочий стол». Окна можно было зователь мог набирать и распеча-
располагать на нём различными спо- тывать тексты на любом языке ми-
Программные наработки собами. ра. Двухбайтовая кодировка симво-
Новая операционная система STAROS STAROS имела определённый на- лов, использовавшаяся в STAROS,
была написана на Mesa и значительно бор основных команд, которые исполь- позже была доработана и преврати-
отличалась от своей предшественницы. зовались в операционной системе: пе- лась в Unicode. Пользователь мог пи-
сать математические формулы с помо-
щью встроенного редактора и затем
вставлять их в текст. Спустя некото-
рое время разработчики BravoX поки-
нули Xerox PARC и ушли в другие ком-
пании, которые затем выпустили свои
собственные текстовые редакторы –
Word (Microsoft) и LisaWrite (Apple).
Что касается программ для рабо-
ты с графикой, кроме Draw со STAR
поставлялся редактор Sil. Для рабо-
ты с растровой графикой использова-
лись программы Markup и Flyer. Специ-
ально для печати документов со STAR
на лазерном принтере (впервые раз-
работанном в PARC в 1973-76 годах)
был предназначен язык описания стра-
ниц под названием Press (позже пе-
реименованный в InterPress). Со вре-
менем некоторые его разработчики
ушли из исследовательского центра
и основали собственную фирму, на-
Интерфейс Xerox STAR званную Adobe. Как не трудно дога-

86
ретроспектива
даться, InterPress лёг в основу их язы- STAR был компьюте-
ка Postscript. ром с «закрытой» ар-
хитектурой, никакая
Поражение другая компания не
Несмотря на передовые аппаратные могла написать или
и программные разработки, заложен- перенести свои про-
ные в Xerox STAR, этот компьютер граммы на него. Ещё
не сумел «найти своего покупателя», один недостаток за-
проиграв войну PC корпорации IBM к люча лся в опере-
и Macintosh от Apple. Причин здесь не- жении компьютером
сколько, причём кроются они как раз «своего времени»:
в его «уникальности»: ма ло к то понима л
Аппаратные недостатки. Про- весь потенциал про-
граммное обеспечение STAR, раз- граммного обеспе-
работанное для людей, не знакомых чения, поставлявше-
с компьютерной грамотой, было очень гося с этим ПК.
требовательным к аппаратному обес- Ор ганизац ион -
печению. В результате скорость ра- ные промахи. Глав-
боты Xerox STAR была приемлемой, ный же недостаток
но не более того. Инженеры центра был не техническим,
были настолько одержимы идеей раз- а организационным.
работать идеальную систему, что в ре- Xerox создала про-
зультате количество новшеств в ней дукт, который не мог-
оказалось гораздо больше необхо- ла продать. Отдел
димого на то время. Как и в случае продаж SDD не имел Скриншот текстового редактора BravoX
с Apple, инженеров PARC никто не ог- никакого опыта реа-
раничивал и не диктовал свои условия. лизации компьютерных систем, пос- знают все. Одному из основателей
В результате Xerox STAR для исполь- кольку единственными, с чем они име- Apple хватило, по его словам, всего
зования всех её возможностей требо- ли дело всё это время, были принтеры 10 минут, чтобы оценить весь скрытый
валось наличие локальной сети с под- и копиры. К тому же цена Xerox STAR потенциал STAR. Если выход в свет
ключенными к ней другими аналогич- (16 595 долларов) была приблизитель- компьютера Lisa ещё не был событи-
ными компьютерами, лазерные при- но в пять раз выше стоимости ПК кон- ем из ряда вон выходящим вследс-
нтеры, а также комнаты, забитые раз- курентов. И последнее: менеджерам твие его сверхвысокой цены, то появ-
личной электроникой. IBM PC, наобо- компании не объяснили, каким обра- ление легендарного Macintosh в 1984
рот, был «компьютером в себе»: отлич- зом использование ПК от Xerox может году спровоцировало эффект «разо-
но работал в одиночку, да к тому же не улучшить производительность труда рвавшейся бомбы». На тяжёлых тру-
«брезговал» более дешёвыми матрич- потенциальных покупателей. Семи- дах инженеров Xerox PARC инвесто-
ными и струйными принтерами. Инже- нар, посвящённый STAR, позже дока- ры Apple заработали сотни милли-
неры Xerox STAR считали, что разра- зал, что ни отдел продаж SDD, ни да- онов долларов.
ботанное ими программное обеспече- же некоторые разработчики до конца Что же касается разработчиков Alto
ние будет единственно нужным просто- не могли оценить всех преимуществ и STAR – им досталась лишь «скром-
му пользователю, поэтому этот ПК пре- выполнения офисных задач на этом ная» премия ACM Software Systems
вратился в «закрытую» систему, под- компьютере. Award, присуждённая PARC в 1984
робное описание аппаратной части ко- В результате SDD смогла продать году за вклад в развитие вычисли-
торой публично не оглашалось. всего несколько десятков тысяч Xerox тельной техники. А мир тем време-
Программные недостатки. Из- STAR. В дальнейшем был разработан нем во всю приспосабливался к по-
начально STAR позиционировался его преемник, Xerox 6085 (называв- явлению и всё более широкому рас-
как компьютер для менеджеров и ру- шийся также ViewPoint). Однако кроме пространению компьютеров IBM PC
ководителей, однако инженеры, раз- 19-дюймового монитора, 40 Мб жёстко- и Apple Macintosh, коренным образом
рабатывавшие систему, были предо- го диска и обновлённого программного изменивших его и сделавших смеш-
ставлены сами себе и не учли всех обеспечения похвастаться какими-ли- ной и нелепый в прошлом веке лозунг
потребностей потенциальных поль- бо кардинальными изменениями он не «Персональный компьютер в каждый
зователей. Хотя BravoX, как тексто- мог. Количество проданных ViewPoint дом!» реальностью.
вый редактор, по своим возможностям было ещё меньше и составило около
был вне конкуренции, тот же редактор пяти тысяч систем. 1. http://www.parc.com.
электронных таблиц на STAR отсутс- 2. http://www.guidebookgallery.org.
твовал, в результате чего о выполне- Пример для остальных 3. http://www.digibarn.com.
нии всего спектра офисных задач ре- Историю с посещением Стивом Джоб- 4. http://members.tripod.com.
чи быть не могло. Поскольку Xerox сом лабораторий Xerox PARC, думаю, 5. http://www.wikipedia.org.

№12, декабрь 2006 87


содержание журнала за 2006 год
АДМИНИСТРИРОВАНИЕ № Как работает Sendmail? Полезные подробности.
Часть 4: взаимодействие со сторонними программами
Arch Linux: руководство к быстрому старту Валентин Синицын №5 Сергей Супрунов №8
Box Backup – горячие резервные копии Алексей Коршунов №5 Как собирать сетевую статистику Андрей Бирюков №10
FreeDOS – новый взгляд на старые вещи Иван Максимов №2 Как устроена файловая система JFS Андрей Пешеходов №8
FreeNAS: строим надежную систему хранения данных Как устроена файловая система reiser4 Андрей Пешеходов №4
Сергей Яремчук №7 Кириллизация в Linux Алексей Барабанов №3
Greylisting: панацея от спама или «мыльный пузырь»? Кластеризация + виртуализация: Linux HA + OpenVZ.
Сергей Супрунов №7 Часть 1: кластеризация на практике Евгений Прокопьев №11
Linux-VServer Дмитрий Столяров №10 Кластеризация + виртуализация: Linux HA + OpenVZ.
Lotus Notes на Windows 2K/XP в *NIX-домене Мыкола Буряк №8 Часть 2: Виртуализация на практике Евгений Прокопьев №12
MeTA1: почтовый сервер на новый лад Сергей Супрунов №12 На что способен дистрибутив SystemRescueCd Linux
Microsoft Operations Manager 2005: управляем сетью Иван Максимов №11
Андрей Бирюков №10 Настраиваем шлюз в Интернет на базе FreeBSD
MikroTik – Router OS Сергей Яремчук №3 Алексей Бережной №12
MS Windows XP SP3, или Много шума из ничего Обзор дистрибутива Ubuntu 6.06 Сергей Супрунов №8
Алексей Барабанов №11 Обзор систем резервного копирования Сергей Яремчук №9
OpenPKG: кроссплатформенная система пакетов Организуем работу офисного почтового сервера
Андрей Коврин №3 на платформе Windows Александр Емельянов №12
OpenVPN: доступ повышенной проходимости Отказоустойчивый кластер с минимальным бюджетом
Алексей Коршунов №7 Сергей Довганюк №5
ProFTPD: мастер своего дела Сергей Супрунов №2 Переключи драйвер NTFS в режим read-write Антон Ананич №6
Roaring Penguin CanIt: ведём борьбу со спамом Подробное руководство по настройке тонких клиентов
Сергей Яремчук №7 на основе дистрибутива Thinstation и протокола NX
Автоматизируем процесс установки обновлений Евгений Бушков №12
с PatchQuest 4 Сергей Яремчук №11 Полезные советы: Apache Сергей Супрунов №9
Автоматизируем тестирование железа Полезные советы: FreeBSD Сергей Супрунов №9
с помощью StressLinux Дмитрий Волков №7 Полезные советы: PostgreSQL Сергей Супрунов №11
Автоматизируем установку Почтовый сервер на основе реляционной СУБД.
программного обеспечения в сети Андрей Бирюков №4 Оцените преимущества! Евгений Прокопьев №1
Биллинг на FreeBSD: пишем сами, используя PHP, trafd Проводим инвентаризацию сети средствами SMS 2003
и MySQL Александр Чагадаев №8 Дмитрий Щербаков №8
В поисках анонимного прокси-сервера Иван Максимов №12 Разрабатываем пакет управления для МОМ Андрей Бирюков №11
Возможности технологии MS Windows SharePoint Services Семь веб-интерфейсов к электронной почте.
Иван Хрипунов, Артем Черневский №5 Выберите лучший! Сергей Супрунов №9
Возможности технологии MS Windows SharePoint Services. Собираем собственную ОС на базе Linux Илья Александров №3
Часть 2 Иван Хрипунов №7 Современный Linux-сервер: виртуализируем
Вы всё ещё не используете WMI? Часть 1 Константин Леонтьев №1 сетевые устройства Алексей Барабанов №6
Вы всё ещё не используете WMI? Часть 2: пишем сценарии Современный Linux-сервер: виртуализируем
Константин Леонтьев №2 сетевые устройства. Часть 2 Алексей Барабанов №8
Делаем резервное копирование конфигураций Современный Linux-сервер: как планировать
активного сетевого оборудования Андрей Бирюков №1 дисковые ресурсы Алексей Барабанов №1
Делимся впечатлениями о дистрибутиве Linux XP Desktop Современный Linux-сервер: как планировать
Дмитрий Шурупов №12 дисковые ресурсы. Часть 2 Алексей Барабанов №2
Знакомимся с Gentoo. Часть 1: установка системы Создаем адресную книгу на базе OpenLDAP Сергей Алаев №10
Сергей Супрунов №3 Создаём кластер для PostgreSQL Андрей Тренин №1
Знакомимся с Gentoo. Часть 2: базовые настройки Создаем порт для FreeBSD своими руками.
и работа с Portage Сергей Супрунов №4 Часть 1: основные возможности Рашид Ачилов №3
Интеграция BIND + PostgreSQL Сергей Алаев №12 Создаем порт для FreeBSD своими руками.
Как купить ПО от Microsoft? Особенности приобретения Часть 2: расширенные возможности Рашид Ачилов №4
и использования OEM-версий Дмитрий Бутянов №12 Статистика прокси-сервера Squid Павел Малахов №7
Как обеспечить необходимое быстродействие систем Строим мультидоменный почтовый сервер с защитой
«1С: Предприятие» Роман Марков №10 от вирусов и спама Павел Семенец №1
Как работает Sendmail? Полезные подробности Узнай секреты WMI: события и провайдеры.
Сергей Супрунов №5 Часть 1: дополнительные возможности Константин Леонтьев №3
Как работает Sendmail? Полезные подробности. Часть 2 Узнай секреты WMI: события и провайдеры.
Сергей Супрунов №6 Часть 2 Константин Леонтьев №5
Как работает Sendmail? Полезные подробности. Часть 3 Упаковщики исполняемых файлов в Linux/BSD
Сергей Супрунов №7 Крис Касперски №9

88
содержание журнала за 2006 год
Управляем инсталляторами Иван Коробко №4 Настраиваем DrWeb Enterprise Suite Антон Борисов №8
Устанавливаем и настраиваем Настраиваем безопасный роутер на базе FreeBSD
Systems Management Server 2003 Андрей Бирюков №7 Василий Озеров №6
Устанавливаем межсетевой экран MS ISA Server 2004 Настраиваем эффективную систему сетевой защиты Zorp
Андрей Бирюков №12 Сергей Яремчук №5
Централизованно меняем пароли локального Ошибки синхронизации открывают большие возможности
системного администратора Иван Коробко №6 для хакеров. Каковы механизмы защиты? Крис Касперски №11
Шесть дней одного года Роман Коновалов №4 Пишем систему динамической защиты ресурсов в сети
Шлюз аутентификации пользователей NuFW Андрей Бирюков №6
Сергей Яремчук №3 Полезные советы: Bacula Сергей Яремчук №11
Штопаем дыры в Ilohamail Сергей Супрунов №1 Работаем с NTLM-авторизацией Apache
Экономьте время на администрировании Active Directory в домене MS Windows 2003 Владимир Василькин №11
Сергей Яремчук №10 Растущая угроза: руткиты Win32 Артем Баранов №10
Расширяем возможности MailScanner Сергей Яремчук №1

БЕЗОПАСНОСТЬ № Создаем VPN с помощью SSL-Explorer Сергей Яремчук №4


Судьба shell-кода на системах с неисполняемым стеком
FreeBSD jail: зона строгого режима Сергей Супрунов №11 Крис Касперски №1
Kerberos и электронная почта Михаил Кондрин №11 Техника снятия дампа с защищенных приложений
Windows Firewall: защищаем внутренние ресурсы сети Крис Касперски №6
Андрей Бирюков №8 Чем уникальна общественная система
Zlock: контролируйте доступ к USB-устройствам предотвращения атак Prevx1 Сергей Яремчук №2
Андрей Гущин №9
Zserver Suite: защищаем корпоративные хранилища данных ПРОГРАММИРОВАНИЕ №
Алексей Шелестов №3
Аудит и дизассемблирование эксплоитов Крис Касперски №8 Замыкания в Perl Алексей Мичурин №2
Внутренние IT-угрозы в банке превосходят по значимости Многоядерные процессоры и проблемы,
все остальные Анна Верхось №11 ими порождаемые, в ОС семейства NT Крис Касперски №10
Выявление угроз информационной безопасности Переходим от VBScript к ASP и ASP.NET:
внутри компании Никита Дуров №11 Безопасность и синтаксис Иван Коробко №1
Генная инженерия на службе распаковки PE-файлов Переходим от VBScript к ASP и ASP.NET: Часть2
Крис Касперски №5 Иван Коробко №3
Защитить ваш компьютер поможет Browser Sentinel Практикум Python: обрабатываем входящую
Сергей Яремчук №10 электронную почту Сергей Супрунов №2
Защищаем PHP-приложения с помощью Suhosin Работаем с PDF из Perl Валентин Синицын №3
Сергей Яремчук №11 Развиваем модуль DBI Алексей Мичурин №9
Защищаем Windows-системы с помощью CORE FORCE Чего ждать от Perl 6 Андрей Шитов №11
Сергей Яремчук №1
Защищаем корпоративную почту с SecExMail Gate ВЕБ-ПРОГРАММИРОВАНИЕ №
Сергей Яремчук №10
Защищаемся от malware с помощью BufferZone Заглянем в будущее PHP 6 Кирилл Сухов №7
Сергей Яремчук №9
Используем средства библиотеки OpenSSL WEB №
для криптографической защиты данных Владимир Мешков №4
Используем средства библиотеки OpenSSL Ajax: новый канал общения клиента и сервера Алексей Мичурин №9
для криптографической защиты данных. Часть 2 Возможности поискового движка DataparkSearch
Владимир Мешков №5 Иван Максимов №5
Исследуем сетевую безопасность посредством Выдержит ли нагрузку ваш веб-сервер?
Linux Netwosix Сергей Яремчук №2 Обзор программ для стресс-тестирования Сергей Яремчук №12
Как настроить библиотеку SASL для совместной работы Как надо и как не надо защищать веб-контент от кражи
c Kerberos Михаил Кондрин №10 Крис Касперски №12
Как обнаружить malware-программы? Контролируем доступ к веб-сервису с помощью DACS
Универсальный метод Крис Касперски №9 Сергей Яремчук №8
Как повысить безопасность веб-приложений Сергей Яремчук №2 Тестируем движки поисковых машин Иван Максимов №8
Как увеличить безопасность процессов Технология AJAX: как насчет безопасности? Сергей Яремчук №6
с помощью chroot и jail Василий Озеров №7 Устанавливаем DACS Сергей Яремчук №9
Какие возможности появились в новой версии DeviceLock
Михаил Брод №12 HARDWARE №
Можно ли защититься от переполнения буферов?
Крис Касперски №2 Волшебство с паяльником в руках Крис Касперски №6

№12, декабрь 2006 89


содержание журнала за 2006 год
СЕТИ № Linux-десктопы должны быть привлекательными
Дмитрий Шурупов №11
Доставку гарантируем: качество обслуживания Марк Спенсер: «Это Asterisk привлекает пользователей
в пакетных сетях Сергей Сикорский №2 к Linux, а не наоборот» Дмитрий Шурупов №8
Интернет «от Москвы до самых до окраин» Роман Ерин №3 Расмус Лердорф: «Вы думаете, что 11 лет назад я решил
Какова цена анонимности в Сети Андрей Погребенник №2 разработать язык сценариев, которым будут пользоваться
Малоизвестные подробности работы NAT Ильяс Кулиев №1 во всем мире!?» Дмитрий Горяинов №7
Подключаемся к Интернету через спутник Антон Борисов №2
Собираем беспроводной роутер 802.11g на базе ОС Linux АНАЛИТИКА №
Михаил Платов №4
Создаем зоны DNS Рашид Ачилов №6 Быть или не быть зарубежному софту в России?
Управляем зонами DNS Рашид Ачилов №7 Ольга Максимович №6
Управляем сетевым оборудованием
с помощью протокола SNMP Андрей Бирюков №3 ЧЕЛОВЕК НОМЕРА №

ОБРАЗОВАНИЕ № Виртуальные радости и открытия Максима Чиркова


Оксана Родионова №11
Linux в школе? Сергей Яремчук №6 Волшебник из страны… Воз Оксана Родионова №8
Python – в школу! Сергей Супрунов №10 Герой нашего времени, или Попытка развенчания мифов
Дистрибутив Edubuntu: специально для школ Сергей Яремчук №6 Оксана Родионова №4
Первый раз в Linux-класс! Андрей Маркелов №6 Головоломка, ведущая по жизни Игоря Данилова
Полезные советы: Python Сергей Супрунов №10 Оксана Родионова №10
Один в поле – воин! Оксана Родионова №7

ДОКУМЕНТАЦИЯ № Оппонент мистера Гейтса Оксана Родионова №6


Пират виртуального мира Оксана Родионова №9
Документация – экономия времени или его бесполезная трата? Прихоти судьбы. Биография IT-просветителя
Алексей Коршунов №3 Оксана Родионова №5
Техническая документация: серверы и сети Алексей Коршунов №4 Романтичный хакер Крис Касперски Оксана Родионова №12

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

История компьютерных вирусов Илья Александров №11 Open Source взглядом оптимиста Алексей Барабанов №10
История компьютеров «Амига». Часть вторая: 1995-2006 В поисках профессиональной этики сисадминов
Сергей Зуев №3 Алексей Барабанов №9
История компьютеров «Амига». Часть первая: 1982-1994 Как зарабатывают на Open Source Крис Касперски №10
Сергей Зуев №2 Куда приведет Open Source? Сергей Супрунов №10
Надежда умирает последней: история компании SGI Лицензию? Вам какую? Сергей Супрунов №5
Дмитрий Мороз №4 Перспективы профессии. Автопортрет Алексей Барабанов №4
Надежда умирает последней: история компании SGI. Часть 2 Электронная почта как источник повышенной опасности
Дмитрий Мороз №5 Сергей Супрунов №1
Надежда умирает последней: история компании SGI. Часть 3
Дмитрий Мороз №6 ХОББИ №
Попытка изменить мир: хроники компании NeXT
Дмитрий Мороз №7 Коллекция «Почему?» Анна Николаева №3
Предвестник бури, или История первого
персонального компьютера Дмитрий Мороз №12
Сеть друзей: история Fidonet Илья Александров №8 №1(38) январь 2006
подписной индекс 20780 №4(41) апрель 2006
подписной индекс 20780 №12(49) декабрь 2006
www.samag.ru
www.samag.ru подписной индекс 20780

Сломленная, но не сдавшаяся: Вы всё ещё не используете www.samag.ru

WMI? Соберите собственный №9(46) сентябрь 2006 Подробное руководство


подписной индекс 20780
беспроводной роутер 802.11g по настройке тонких клиентов
Современный Linux-сервер: на ОС Linux №7(44) июль 2006
www.samag.ru
на основе Thinstation и NX
история операционной системы BeOS. Часть 2 как планировать
дисковые ресурсы №3(40) март 2006
подписной индекс 20780 Как устроена
подписной индекс 20780
www.samag.ru Семь веб-интерфейсов
к электронной почте Как купить ПО от Microsoft?
www.samag.ru файловая система reiser4 Greylisting: хуже спамаВыберите – лучший! Особенности приобретения
Малоизвестные подробности и использования OEM-версий
Дмитрий Мороз №1 работы NAT Узнай секреты
события и провайдеры
WMI:
Три способа
№5(42) май автоматизировать
2006
подписной индекс 20780
установку ПО в сети
только борьба со спамом!
StressLinux: автоматизируем
Zlock: контролируйте доступ
Устанавливаем
Резервное копирование www.samag.ru к USB-устройствам
Кириллизация в Linux тестирование железа MS ISA Server 2004
конфигураций активного Управляем инсталляторами
Суровая правда, скрытая за «розовыми очками»: сетевого оборудованияЗнакомимся с Gentoo: Самый подробный материал
о программе Sendmail
Обзор систем
Устанавливаем Systemsрезервного
№10(47) октябрь 2006
копирования
подписной индекс 20780 Выдержит ли нагрузку
№2(39) февраль 2006
Штопаем дыры
индексв20780
установка системыИспользуем
Ilohamail
OpenSSL
№6(43) июнь 2006
Management Server 2003
№8(45) август 2006 www.samag.ru №11(48) ноябрь ваш
2006 веб-сервер?
подписной для вкриптографической
истории IT-журналистики!
подписной индекс 20780 подписной индекс 20780
Как обнаружить Программы
подписной индекс 20780 для стресс-тестов
www.samag.ru Как обеспечить
история компании Transmeta Дмитрий Мороз
www.samag.ru www.samag.ru

№9 защиты данных www.samag.ru


Почтовый Создаем порт для FreeBSD
сервер к Интернету FreeNAS: строим надежную malware-программы?
Подключаемся Настраиваем эффективнуюсистему хранения данных необходимое быстродействие
на основе реляционной СУБДсвоими руками Windows Firewall: систем MS WindowsОрганизуем
«1С: Предприятие» XP SP3, работу
через спутник систему
Создаем сБыть
VPNсетевой или
помощью не быть
защиты Zorp Ajax: новый канал или Много офисного
шума почтового сервера
из ничего
Оцените преимущества!Zserver Suite: защищаем SSL-Explorer зарубежному софту защищаем
Как вувеличить
России? внутренние
безопасность на платформе Windows
общения клиента и сервера
Суровая правда, скрытая за «розовыми очками»: Чем уникальна Prevx1
Создаём кластер система
общественная
дляпредотвращения
PostgreSQL

корпоративные
данных
Windows
хранилища
разбираем
Техническая
SharePoint
Современный
Services:процессов
на практике Linux-сервер:
документация:
ресурсы
chroot и jail
сети
посредством Microsoft
Развиваемуправляем
модуль DBI
Operations
сетью
Manager:
Разрабатываем пакет
управленияВдля поисках анонимного
МОМ 2005
атак возможности
серверы технологии сеть Биллинг на FreeBSD:
и сетивиртуализируем
Управляем сетевым OpenVPN:пишемдоступсами В поискахLinux-VServer:
профессиональной настраиваемпрокси-сервера
Кластеризация +
история компании Transmeta. Часть 2 Дмитрий Мороз №10 Защищаем
Можно ли
с помощью
Windows-системы
защититься
CORE FORCE
от переполнения буферов? с помощью протокола
Box Backup:Создаем
оборудованием Профессиональный
о горячих
что ждет
узнайте
резервных
SNMP сисадминов?
зоны
всё DNS
прогноз:
копиях!
повышенной проходимости
Проводим инвентаризацию
виртуальные серверы
этики сисадминов
Создаем адресную
виртуализация:
Linux книгу
Как надо и как не надо
защищать веб-контент
HA + OpenVZ
Технология AJAX: Статистика сетипрокси-сервера
средствами SMSМитник
Кевин 2003 от кражи
Как повысить безопасностьРаботаем с PDF из Perl Лицензию?как Вамнасчет
какую? Squid Как устроена защищаетнакомпании
безопасности? базе OpenLDAP
На что способен дистрибутив
веб-приложений от былых коллег
Документация – экономия Как построить Переключи драйвер NTFS
Интервью файловая система
с легендарным JFS Как настроитьSystemRescueCd
библиотеку Linux
Доставку гарантируем: времени или его бесполезная в режимкластер
отказоустойчивый read-write
Расмусом Лердорфом – SASL для совместной работы

ИНТЕРВЬЮ
с минимальным бюджетом Тестируем c Kerberos Безопасность в FreeBSD:
качество обслуживания трата? создателем языка PHP разбираемся в тонкостях
Настраиваем безопасный движки поисковых машин
№ в пакетных сетях
ProFTPD: мастер своего дела
роутер наArch
Обзор дистрибутива базеLinux
FreeBSD
Настраиваем
Растущая угроза:
руткиты Win32
применения
Работаем с NTLM-
jail
Пишем систему
Генная инженерия на службе DrWeb Enterprise Suite
Практикум Python: распаковкидинамической
PE-файлов защиты Как зарабатывают авторизацией Apache
обрабатываем входящую ресурсов в сети Аудит и дизассемблирование на Open Sourceв домене MS Windows 2003
электронную почту эксплоитов
Головоломка, Чего ждать от Perl 6
ведущая
Free Software Foundation переходит на технологию LinuxBIOS
Первый раз в Linux-класс!
Какова цена анонимности Интервью по жизни Игоря Данилова
Оппонент мистера Гейтсас cоздателем Asterisk Интервью с создателем
в Сети популярного ресурса OpenNET

Антон Борисов №2

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

UNIX. Практическое пособие


администратора UNIX, 2-е издание
Филипп Торчинский
момент для начинающих делать свои работа с файлами (в том числе о редак-
первые UNIX-шаги. торе vi и базовых утилитах grep, tr, sed),
В книге есть все – от сжатой исто- дано описание командных процессо-
рии UNIX, советов по установке и об- ров с примерами составления простых
щей теории по функционированию скриптов, мониторинг системы.
системы и поддержке сети до практи- По уверениям автора, «эта книга
ки по инсталляции и настройке раз- рассчитана прежде всего на россий-
личных сервисов на конкретных при- ского системного администратора»,
мерах. Это и резервное копирование однако за исключением главы, пос-
(dump, restore), настройки сети вообще вященной русификации UNIX, и ана-
(ifconfig, route, DNS, DHCP, inetd, NAT, логичных подразделов в главах по ус-
ipfw...), и почта (Sendmail, Postfix), борь- тановке системы и по X-Window ника-
ба с вирусами (Anomy sanitizer, ClamAV), ких кардинальных отличий от подоб-
и веб-сервер (конечно, Apache с при- ных книг зарубежных авторов в этом
Руководство по администрированию вязками для Perl и PHP), и proxy-сер- отношении я не нашел.
UNIX-подобных систем от нашего со- вер/http-cache (Squid), и СУБД (MySQL),
отечественника, не признающего бы- и аутентификация через PAM, и Samba,  Издательство: «Символ-Плюс»
тующего в массах мнения, что «Linux – и сервис печати, правда, почему-то не-  Год издания: 2005
это не UNIX». По книге можно позна- заслуженно забыт CUPS, и даже не-  Количество страниц: 400
комиться с UNIX фактически с нуля. сколько страниц о графической среде  ISBN: 5-93286-084-7
Но отмечу, что некоторые базовые ас- X-Window. Кроме того, рассказано о та-  Цена: ≈ 150 руб.
пекты освещены с недостаточной точ- ких неотъемлемых составляющих ра- Книга предоставлена интернет-магазином
ностью, а это существенно неприятный боты системного администратора, как books.ru.

PHP 5. Профессиональное
программирование
Энди Гутманс, Стиг Баккен, Дерик Ретанс
(перевод А. Киселева)
Первая глава знакомит читателей и PEAR DB. Стоит отметить обшир-
с ключевыми новшествами в PHP 5, ное описание возможностей библио-
последующая – с основами програм- теки PEAR и ее компонентов. Послед-
мирования на этом языке, а уже на- ние разделы призваны удовлетворить
чиная с третьей предстает разверну- потребности еще более взыскатель-
тое описание более продвинутых воз- ной публики: в них рассмотрены воп-
можностей. Так, например, значитель- росы миграции на PHP 5 c PHP 4 (тре-
ное внимание уделяется объектно- тья версия разумно забыта как арха-
ориентированному программирова- изм), повышения производительности
нию, работе с объектами и шаблона- (оптимизация, проектирование, тес-
ми. Из раздела по созданию веб-при- тирование, профилирование...), раз-
ложений вместо привычного затянуто- работки расширений для PHP и при-
го разжевывания элементарных поня- ложений для консольного примене-
Открывающее книгу предисловие Зи- тий можно почерпнуть более полезную ния (CLI).
ва Сураски, который наравне с пер- информацию вроде обеспечения безо-
вым автором этого справочника яв- пасности скриптов.  Издательство: «Символ-Плюс»
ляется одним из основателей компа- В самостоятельные главы также  Год издания: 2006
нии Zend, занимающейся поддержкой вынесены базовые расширения к PHP,  Количество страниц: 704
PHP, впечатляет: «каждый програм- обработка различных ошибок и рабо-  ISBN: 5-93286-083-9
мист, интересующийся расширенны- та с XML. Примеры взаимодействия  Цена: ≈ 390 руб.
ми возможностями PHP 5, должен ее с базами данных не ограничивают- Книга предоставлена интернет-магазином
иметь». ся MySQL – представлены и SQLite, books.ru.

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

AJAX и PHP: разработка динамических


веб-приложений
Кристиан Дари, Богдан Бринзаре, Филип Черчез-Тоза,
Михай Бусика (перевод А. Киселева)
мое время учиться создавать веб-при- верка вводимой пользователем ин-
ложения на AJAX в самой популярной формации), функциях автоматичес-
связке с PHP, и эта книга станет отлич- кого дополнения (так называемых
ным помощником в таком начинании. подсказках, т.е. когда скрипт «помо-
В вводной части авторы, объяснив гает» с вводом данных, предлагая
суть технологии, сразу демонстриру- возможные варианты), взаимодейс-
ют элементарный пример ее реали- твии с drag-n-drop (для перетаскива-
зации с подробными комментария- ния различных элементов на страни-
ми о том, что и для чего использует- цы), примере создания чата, постро-
ся и как это всё работает. В подобном ении диаграмм (в SVG), поддержке
изложении во многом следуют и даль- расширяемого языка таблиц стилей
нейшие главы: базовые и самые не- для преобразований XSLT и возмож-
обходимые аспекты применения AJAX ностях чтения RSS-лент (с примене-
Технологию AJAX по привычке мно- раскрываются на основе многочис- нием XSLT и SimpleXML).
гие и сейчас называют сенсацион- ленных листингов кода с предвари-
но новым и перспективным подходом тельным описанием задачи, коммен-  Издательство: «Символ-Плюс»
к построению веб-приложений, ко- тариями к приведенной реализации  Год издания: 2006
торый вот-вот только собирается на- и полезными сведениями «Что про-  Количество страниц: 336
чать свой триумфальный марш по про- исходит внутри?».  ISBN: 5-93286-077-4
странству WWW. Однако уже очевид- В книге рассказывается о работе  Цена: ≈ 250 руб.
но, что AJAX – это не ближайшее бу- со структурой XML и данными из СУБД Книга предоставлена интернет-магазином
дущее, а актуальное настоящее. Са- MySQL, обработке HTML-форм (про- books.ru.

PHP. Сборник рецептов


Дэвид Скляр, Адам Трахтенберг
для Perl («Perl Cookbook»), могу толь- вами) и каталогами (представлен да-
ко полностью согласиться с такой не- же пример простого поиска по сай-
скромной позицией. Потому что эта ту), обработка данных из HTML-форм.
книга – кладезь полезных практичес- Естественно, широко раскрыто взаи-
ких рекомендаций о том, как решить модействие с Web (причем не только
разнообразные задачи. с языком разметки HTML и протоколом
Важно понимать, что такой подход HTTP, но и такими интернет-сервиса-
отнюдь не обязательно снижает инте- ми, как почта, Usenet, FTP, LDAP, DNS).
рес к представляемой информации, ог- Отдельно вынесены главы по XML
раничивая ее узкими рамками конкрет- (с DOM, SAX, XSLT и SOAP), регуляр-
ных проблем. Рассматриваемые при- ным выражениям, аспектам безопас-
меры помогают лучше понять технику ности (пароли, шифрование, SSL, GPG
PHP-программирования и послужат от- для почты), графике, функциониро-
личной базой для решения бесчислен- ванию PHP-приложений в командной
ного множества других задач, интере- строке, локализации, а также PEAR.
сующих именно вас.
Сборник рецептов «PHP Cookbook» Среди рассматриваемых тем, для  Издательство: «Символ-Плюс»
предназначен в первую очередь для которых даны готовые решения: ра-  Год издания: 2006
тех, кто уже программирует на PHP. бота с символами, строками и числа-  Количество страниц: 672
Тем, кто PHP еще не знает, авторы ре- ми, шаблонами (Smarty, парсинг фай-  ISBN: 5-93286-059-6
комендуют прочитать эту книгу вто- лов конфигурации, анализ логов), мас-  Цена: ≈ 390 руб.
рой после классической «Programming сивами и функциями, классами и объ- Книга предоставлена интернет-магазином
PHP». А после ознакомления с книгой, ектами, файлами (в том числе архи- books.ru.
будучи давним обладателем и пок-
лонником аналога такого сборника Обзор книжных новинок подготовил Дмитрий Шурупов

№12, декабрь 2006 93


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

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


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

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

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

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

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

№12 декабрь 2006 95


СИСТЕМНЫЙ АДМИНИСТРАТОР
№12(49), Декабрь, 2006 год

УЧРЕДИТЕЛИ
ЧИТАЙТЕ
Владимир Положевец
Александр Михалев В СЛЕДУЮЩЕМ
РУКОВОДИТЕЛЬ ПРОЕКТА
Петр Положевец
НОМЕРЕ:
РЕДАКЦИЯ
Исполнительный директор
Владимир Положевец Настраиваем удаленный Размещение
Ответственный секретарь доступ к сети с помощью пользовательских
Наталья Хвостова MS ISA 2004 бюджетов в LDAP
sekretar@samag.ru Предположим, у нас имеется некото- После установки Linux-системы часто
Технический редактор рое веб-приложение, например, сис- возникает потребность перейти к хра-
Владимир Лукин тема заказов on-line. Необходимо ор- нению информации о пользователях
Редактор ганизовать защищенный доступ к это- в LDAP. Обычно этот шаг связывает-
Алексей Коршунов
му ресурсу с помощью SSL. Также со- ся или с построением почтового сер-
Внештатные редакторы
трудники компании ездят в команди- вера, или с созданием PDC на основе
Алексей Барабанов
Сергей Супрунов ровки и иногда работают из дома, по- Samba. Стандартные средства рабо-
Валентин Синицын этому им необходимо предоставить ты с пользовательскими настройками
доступ по VPN. А еще у компании есть в таком случае остаются без внимания.
РЕКЛАМНАЯ СЛУЖБА филиал и его сотрудникам также тре- Но есть возможность после установки
тел./факс: (495) 628-8253 буется доступ в локальную сеть. О ре- минимальной Linux-системы настроить
Евгения Тарабрина шении всех этих задач читайте в сле- пользовательский LDAP-репозиторий
reсlama@samag.ru дующем выпуске журнала. и заставить практически все службы
работать с пользователями «из LDAP»
Верстка и оформление FreeBSD в домене как с локальными.
maker_up@samag.ru
Windows: дополнительные
Дизайн обложки
возможности Как быстро и эффективно
Николай Петрочук Правильное подключение FreeBSD в до- провести учет компьютерной
мен Windows дает возможность рабо- техники на предприятии
По вопросам распространения тать с Active Directory для проверки па- Статья будет посвящена решению про-
обращайтесь по телефону: ролей, членства в группах и т. д. Но это блемы учета компьютерной техники.
(495) 628-8253 (доб. 120) только часть того, для чего FreeBSD мо- Не секрет, что этот вопрос порой вы-
жет использовать данную информацию. зывает головную боль у системных ад-
107045, г. Москва, Элементарный доступ к компьютеру че- министраторов и руководителей IT-от-
Ананьевский переулок, дом 4/2, стр. 1 рез Microsoft Management Console, эф- дела. Мы расскажем, как автоматизи-
тел./факс: (495) 628-8253 фективная раздача прав доступа для ровать этот процесс, легко подготовить
Сайт журнала: www.samag.ru
пользователей домена, автоматичес- нужные отчеты и получить в свое рас-
кое создание каталогов пользовате- поряжение несколько дополнительных
ИЗДАТЕЛЬ
ЗАО «Издательский дом лей – вот некоторые из них. возможностей по мониторингу сети.
«Учительская газета»

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


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

96

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