Академический Документы
Профессиональный Документы
Культура Документы
му, обсуждение мирового экономического кризиса стало и материалом на актуальную тему мало кого оставил рав-
модной темой, используемой при презентациях абсолют- нодушным.
но любой продукции. Далее было выступление Сергея Халяпина, который на
Наверное, стоит упомянуть несколько основных тези- примере некой компании Citron представил путь возмож-
сов данного доклада. По словам Карла, в 2012 году в мире ной экономии средств.
будет насчитываться порядка 650 миллионов виртуальных Основываясь на том факте, что 80% средств, выделя-
десктопов. И компания Citrix делает все возможное, чтобы емых на ИТ, уходит на поддержку существующей инфра-
эта перспектива получила свое воплощение. структуры и только 20% идет на развитие, было предложе-
Одним из основных преимуществ виртуализации явля- но за счет технологии виртуализации и внедрения терми-
ется независимость от используемой платформы. Так, если нальных решений сократить расходы именно на поддержку,
у пользователя дома компьютер Apple Macintosh, а в ком- оставив инновационные затраты без изменений.
пании в качестве корпоративного стандарта принята плат- Среди возможных путей экономии средств были отме-
форма Microsoft, то не существует особых проблем транс- чены следующие:
лировать рабочий стол с его виртуального PC прямо на эк- n Централизация ресурсов. При внедрении системы вир-
ран домашнего Макинтоша. туализации десктопов XenDesktop достаточно иметь
Докладчик также упомянул о технологии Citrix Cloud считанное количество образов виртуальных машин для
Computing, позволяющей проводить распределенные вы- трансляции виртуальных машин на рабочее место поль-
числения. По его словам, эта новая технология позволит зователя.
осуществить качественный прорыв в области применения n За счет виртуализации и терминализации возможно зна-
информационных технологий и осуществить переход на но- чительно сократить расходы на приобретение, модерни-
вый уровень, в том числе и в применении технологии вирту- зацию, обслуживание и утилизацию офисных компью-
ализации. Несмотря на то что доклад касался общих вопро- теров.
сов и носил скорее вступительный характер, речь доклад- n Также возможно значительно снизить расходы на элек-
чика произвела завораживающее впечатление. троэнергию за счет внедрения более экономичных тон-
Следом подошла очередь выступления Сергея Кузне- ких клиентов взамен «прожорливых» ПК.
цова (Country manager Citrix) и далее – Сергея Халяпина, n Вместо расширения WAN-каналов предлагается исполь-
(SE Team Lead). зовать Repeater (Wanscaler) и Netscaler, что позволяет
Сергей Кузнецов представил доклад на тему «Страте- использовать существующие каналы с максимальной
гия виртуализации Citrix 2009: Новые решения в новых ус- отдачей.
ловиях». Он с энтузиазмом отметил выход новых продук-
тов, таких как: Таким образом, по словам докладчика, общая эконо-
n XenServer 5.0; мия при внедрении современных технологий Citrix способ-
n XenApp 5.0;
n XenDesktop 3.0;
n Repeater (Wanscaler) 5.0.
ции Citrix в качестве платформы для интеграции. В част-
ности, он отметил некоторые особенности работы компа-
ний в условиях экономического кризиса, в том числе:
n резкое и непредсказуемое изменение бизнес-среды;
n необходимость «ручного управления» (то есть момен-
тальной реакции на создавшуюся ситуацию).
Реклама
В Москве прошла конференция
системных администраторов
RootConf 2009
13 и 14 апреля в московском конференц-центре «Инфопространство» прошла
профессиональная конференция системных администраторов RootConf 2009 (www.rootconf.ru).
В течение двух дней на мероприятии было прочитано около 50 докладов, проведено 2 мастер-
класса и 1 «круглый стол».
ком, который, судя по отзывам в Се- начал слишком детально рассказы- ные требования (официально они оста-
ти, помешал прийти на конференцию вать об общих вещах с демонстра- лись такими же, как у Vista, но со слов
многим желающим, стала стоимость цией на схемах, как IP-пакеты прохо- Александра, в действительности – ста-
участия. Впрочем, несмотря на это, бы- дят в стеке от интерфейсного уровня ли ниже), можно выделить существен-
ли зарегистрированы почти 500 участ- до транспортного и обратно, из-за че- ную работу над так называемой фоно-
ников, так что в дни RootConf 2009 го до сетевых реализаций в OpenBSD вой активностью. Если говорить вкрат-
не пустовал ни один из задействован- дело так и не дошло. це, то теперь благодаря так называе-
ных залов. Анд рей Пантюхин из проек та мым сервисам Trigger-Start все служ-
FreeBSD.org поделился своими взгля- бы запускаются только тогда, когда
День первый дами на современное состояние уп- они действительно нужны и будут ис-
Сразу оговорюсь, что поскольку докла- равления программным обеспечени- пользоваться, и останавливаются ана-
дов было много, читались они парал- ем в UNIX-подобных системах, впро- логичным образом.
лельно. Если в первый день для это- чем, акцент на UNIX во многом был Последним «большим» докладом
го было отведено два зала, то во вто- формален (и просто более близок этого дня стало выступление Дмитрия
рой – уже три. Поскольку посетить их автору), поскольку ряд тезисов мож- Завалишина про загадочную опера-
все одному человеку не представля- но в значительной мере обобщить ционную систему «Фантом» (Phantom
лось сколь-нибудь возможным, в обзо- на другие платформы. Автор гово- OS, http://dz.ru/solutions/phantom). Не-
ре я затрону лишь те, на которых я смог рил как о том, что уже есть, развива- смотря на во многом провокационную
присутствовать и которые мне показа- ется и станет популярным в ближай- разработку и понятный скептицизм
лись наиболее интересными. шем будущем (например, p2p-репо- всех, кто про нее впервые слышит, вы-
Итак, выступления в первом зале зитории пакетов), так и о вещах, ко- ступление прошло на одном дыхании,
первого же дня конференции откры- торых принципиально не хватает су- а резкой критики со стороны слуша-
вал Игорь Сысоев из компании «Рам- ществующим средствам. По его мне- телей замечено не было. Идея проек-
блер», всем известный как автор лег- нию, например, было бы неплохо ин- та Phantom OS – в создании принципи-
ковесного веб-сервера nginx. Его до- тегрировать в пакетный менеджер не- ально новой ОС, не отягощенной мно-
клад был посвящен настройке опера- которые возможности управления ре- голетним наследием существующих
ционной системы FreeBSD 7 при ее ис- сурсами (скажем, задавать системные платформ и одаренной нестандартной
пользовании для обслуживания нагру- ограничения конкретным приложени- архитектурой. «Фантом», откуда и про-
женного веб-сервера. Игорь уже делал ям при их установке/конфигурации), исходит ее название, не должна быть
выступление на схожую тему два года обеспечить многоверсионные уста- видна программистам, а процессы
назад на РИТ-2007 (см. «Конференция новки (чтобы появлялась возможность смогут обмениваться данными между
РИТ-2007 собрала веб-разработчиков простого тестирования новой версии собой напрямую, находясь в едином
России» в журнале «Системный адми- ПО на рабочем сервере до ее произ- пространстве памяти и не делая лиш-
нистратор» №5 за 2007 г.), но теперь, водственного применения). Предвидя них операций вроде обращений к за-
с появлением новой стабильной вет- вопросы о том, почему в этом не по- писи/чтению данных на жесткий диск.
ки FreeBSD 7, потребовались опреде- могут современные виртуализацион- Кроме того, все процессы системы бу-
ленные адаптации прошлых рекомен- ные технологии, Андрей довольно ка- дут постоянно находиться в оператив-
даций. Как объяснил автор, к подоб- тегорично заявил, что виртуализа- ной памяти, благодаря чему, например,
ным выступлениям его побудил тот ция – это не решение проблем, а по- система сможет мгновенно загружать-
факт, что если в Сети и появляются пытка обойти их. ся после включения компьютера. До-
статьи на тему оптимизации FreeBSD, Александр Ильичев из Microsoft, за- кладчик поделился проблемами, с ко-
то обычно они сводятся к перечисле- нимающийся продвижением Windows 7, торыми столкнулся при проектирова-
нию различных sysctl без особых ком- постарался рассказать о том, почему нии и создании новой ОС, а также пу-
ментариев. Более того, зачастую при- новая операционная система софтвер- тями их решения. Стоит заметить, что
водимые sysctl противоречат друг дру- ного гиганта стала работать быстрее. законченного продукта еще нет, но не-
гу, а невнимательные читатели могут Впрочем, публике он скорее запомнил- которые наработки у проекта уже при-
этого даже не заметить. Посему Игорь ся благодаря одному забавному ком- сутствуют. На вопрос о лицензирова-
постарался в своем докладе не толь- ментарию, вызвавшему бурную реак- нии Дмитрий ответил, что вопрос ли-
ко приводить какие-то конкретные ре- цию всей аудитории. По его словам, цензирования ядра «Фантома» пока
комендации, но и объяснять их смысл. когда в Microsoft приступили к работе обсуждается, а все остальное авто-
В конце презентации автор пообещал над Windows Vista (2001 год), в компа- ры обещают выкладывать под Open
оформить советы в виде статьи, кото- нии ориентировались на существовав- Source-лицензиями вроде GPL. Проб-
рую в дальнейшем опубликует на сай- ший в то время прогноз, что в 2006 году лему полного отсутствия ПО для но-
те (http://sysoev.ru). средний пользовательский десктоп бу- вой ОС разработчики намерены ре-
Сергей Присяжный из ATMNIS дет оснащен 10-гигагерцовым процес- шить написанием бинарного трансля-
рассказал о сетевой подсистеме сором и 8 Гб оперативной памяти. Как тора байт-кода Java в свой байт-код
OpenBSD, затронув такие темы, как все дружно заметили, это многое объ- и, возможно, созданием POSIX-слоя
сокеты, mbuf, сетевой стек и марш- ясняет... Из нововведений в Windows 7, для совместимости с приложениями
рутизация. К сожалению, докладчик которые позволили снизить ее систем- для UNIX-подобных систем.
Реклама
10
Intel передала Linux Foundation Microsoft готовит рынок
управление проектом Moblin веб‑приложений, открывает код
2 апреля стало известно, что компания Intel передала не- ASP.NET MVC
коммерческой организации Linux Foundation право руково- На конференции MIX09 стало известно, что корпорация
дить разработкой своего Linux-дистрибутива Moblin для пор- Microsoft занялась созданием рынка веб-приложений с от-
тативных устройств. крытым исходным кодом, работающих под управлением
Moblin (Mobile & Internet Linux Project) – это Open Source- операционной системы Windows. Помимо самих приложе-
инициатива Intel, запущенная в 2007 году и нацеленная ний через него будут также распространяться сопутствую-
на создание Linux-дистрибутива, ориентированного на ис- щие сервисы и техническая поддержка.
пользование в мобильных устройствах вроде нетбуков Новый рынок веб-приложений Microsoft был представ-
(разумеется, с процессором Intel Atom). До сих пор коор- лен Лорен Куни (Lauren Cooney), менеджером по продук-
динацией проекта занимались сотрудники Intel, но теперь там подразделения Microsoft Web Platform and Standards.
в компании решили, что развитие будет лучше продолжить Примечательно, что раньше Лорен работала в IBM и BEA
в рамках мирового сообщества, доверив его консорциу- Systems над проектами, связанными с Open Source-техно-
му Linux Foundation. И судя по всему, в Linux Foundation логиями, веб-приложениями и языком программирования
настроены серьезно: «С технической поддержкой ува- Java. Теперь под девизом «Make Web not war» она возгла-
жаемых разработчиков Linux-ядра и независимым, сто- вила направление в Microsoft, которое станет новым витком
ронним, руководством проект Moblin нацелен на то, что- развития Microsoft Web Platform – набора серверов, фрейм-
бы стать самой продвинутой и открытой мобильной Linux- ворков и приложений, формирующих платформу, нацелен-
платформой». ную на взаимодействие с популярными и широко распро-
Инициативу поддержали представители ряда Linux- страненными в веб-сообществе Open Source-приложения-
компаний, в числе которых оказались Canonical, Linpus, ми. Веб-приложения для Microsoft Web Platform поставля-
Mandriva, MontaVista, Novell, Red Flag и Wind River. ются со специальным инсталлятором Web Platform Installer,
Примерно через неделю на саммите Linux Collaboration задача которого – упростить процессы их установки и пос-
Summit выступил директор центра Open Source-техноло- ледующего обновления.
гий Intel, который рассказал о планах по совершенствова- Кроме того, Microsoft объявила о запуске галереи
нию Moblin. Была озвучена довольно интересная инфор- Windows Web Application Gallery, которая наглядно демон-
мация: тесты последнего альфа-релиза Moblin 2 показали, стрирует далеко идущие планы корпорации: в новом реше-
что все крупные компоненты платформы (включая графи- нии предусмотрена интеграция с такими веб-приложения-
ческую систему) могут загружаться всего за несколько се- ми, как Acquia Drupal, DotNetNuke и WordPress.
кунд. В связи с этим в Intel намерены вновь сократить об- Вскоре после этого в блоге другого представителя
щее время загрузки системы – теперь уже до двух секунд. Microsoft, Скотта Гатри (Scott Guthrie), появилось объявле-
Стремление к такой цели объясняется новыми открывающи- ние о публикации исходного кода веб-фреймворка ASP.NET
мися возможностями Moblin: например, с такой скоростью MVC 1.0 под Open Source-лицензией Microsoft Public License
загрузки систему можно будет использовать на устройствах (MS-PL). Последняя была одобрена в конце 2007 года груп-
вроде встраиваемых автомобильных компьютеров. пой OSI как лицензия, удовлетворяющая определению Open
Другим важным аспектом в совершенствовании Moblin Source Definition (OSD).
станет пользовательский интерфейс. В прошлом году Intel ASP.NET MVC – это новый фреймворк для языка програм-
купила компанию OpenedHand, стоящую за разработкой мирования ASP.NET, во многом схожий, например, с популяр-
Open Source-фреймворка Clutter. Ожидается, что теперь ным Ruby on Rails для Ruby. Он обеспечивает полный конт-
с его помощью будут создаваться динамические пользо- роль за HTML-разметкой, структурой URL-адресов, упроща-
вательские интерфейсы, использующие анимацию и гра- ет модульное тестирование и способствует использованию
фическое ускорение. модели разработки TDD (test driven development).
Rackable Systems нансовые проблемы у компании ста- Systems, а сумма сделки составила
поглотила компанию SGI ли заметны еще в начале 2006 года, всего 25 миллионов USD – правда,
1 апреля на сайте SGI (Silicon Graphics когда SGI открыто объявила о том, что это не совсем точные цифры, посколь-
Inc.) появился пресс-релиз, соглас- опасается банкротства и одной из ви- ку новый владелец наследия SGI поо-
но которому компанию поглощает димых причин тогда назвала операци- бещал еще и выплатить все ее долги.
Rackable Systems всего за 25 милли- онную систему GNU/Linux: снижение В пресс-релизе заявляется, что «объ-
онов USD. Некоторые могли подумать, доходов SGI стало результатом пере- единенный бизнес предоставит пот-
что это шутка, но ситуация далека хода от собственных технологий к ра- ребителям лидирующие на рынке про-
от таковой. SGI хорошо известна всей бочим станциям на базе процессоров граммно-аппаратные решения». К их
ИТ-индустрии своими суперкомпьюте- Intel Itanium с Linux. Уже в мае 2006 го- основным зонам интереса относят
рами (в свое время она поглотила Cray), да компания и ее американские под- кластерные вычисления на базе x86,
операционной системой IRIX и журна- разделения подали заявление на за- Интернет, облачные вычисления, мас-
лируемой файловой системой XFS, гра- щиту от банкротства. штабируемые центры хранения дан-
фической библиотекой OpenGL. Фи- Теперь SGI стала частью Rackable ных, платформы визуализации.
Андрей Бирюков
Еще не отшумели страсти по Windows Vista и в интернет-сообществах идут нескончаемые
споры о ее преимуществах и недостатках, а корпорация Microsoft уже выпустила бета-версию
новой ОС Windows 7.
С
ам факт столь раннего появле- изучать особенности и нововведения Немного об установке
ния следующей после Windows новой операционной системы можно Я не буду описывать процесс уста-
Vista операционной системы уже сейчас. новки операционной системы, так как
многие истолковали как признание Прежде всего, следует отметить он в целом схож с установкой Windows
Microsoft провала ОС Vista. Ведь прак- что это тестовая (beta) версия опера- Vista, так же минимизировано коли-
тически сразу после официального ционной системы, в связи с чем кате- чество задаваемых перед началом
выхода Vista появились сообщения горически не рекомендуется ставить вопросов.
о разработке новой версии операци- ее в качестве рабочей ОС на «боевые» Однако я приведу некоторые свои
онной системы. Да и быстрое появле- машины. По заявлениям Microsoft, дан- наблюдения относительно самого
ние бета-версии Windows 7 подтверж- ная версия прекращает функциони- процесса установки и нагрузки, со-
дает данные предположения. Однако ровать 1 августа 2009 года. На мо- здаваемой на систему. Данный про-
исполнительный директор Microsoft мент написания данной статьи дист- цесс занимает намного меньше вре-
Стив Балмер опроверг факт провала, рибутив Windows 7 уже не был досту- мени. Так, установка Windows Vista
заявив при этом, «что в Vista есть над пен для бесплатного получения с сай- на VMWare Workstation с выделенны-
чем работать» [1]. По заявлениям то- та Microsoft. ми 756 Мб оперативной памяти заня-
го же Балмера, официальный релиз Я расскажу об основных новов- ла у меня около часа, при этом рабо-
Windows 7 может выйти уже в конце те- ведениях, а потом продемонстрирую тать в основной операционной систе-
кущего года. Несмотря на это, думаю, на практике работу некоторых из них. ме было практически невозможно, так
12
как более 90% аппаратных ресурсов
уходило на обслуживание виртуаль-
ной машины. Для Windows 7 я устано-
вил 512 Мб оперативной памяти, и ус-
тановка при этом заняла немногим бо-
лее получаса. При этом основная опе-
рационная система была вполне рабо-
тоспособна, по крайней мере, я смог
начать писать эту статью.
Интерфейс
После завершения установки и пере-
загрузки (правда, только одной) мы по-
падаем в интерфейс, очень похожий
на стандартное рабочее окно Windows
Vista. При попытке настроить систему
появляется уже знакомое предупреж-
дение User Access Control, технологии,
позволяющей контролировать исполь-
зование пользователями администра-
тивных привилегий.
В качестве интерфейса в Windows 7 Рисунок 1. Создание VHD-диска
применяется модернизированный ва-
риант Vista Aero. Данный интерфейс Например, появившийся в Vista быст- ступных сетей/View Available Network».
поддерживает новую «Панель задач/ рый просмотр приложений в панели Теперь не нужно проходить через мно-
Taskbar», которая сочетает кнопки за- задач, который выводит уменьшенный гие диалоги подключения, чтобы под-
пуска приложений, наиболее часто ис- экран работающего приложения, стоит соединиться к беспроводной сети, те-
пользуемых, с иконками приложений, только навести на него курсор мыши. перь можно быстро выбрать нужную
уже запущенных, так что вам не при- В результате такого быстрого просмот- беспроводную сеть из значка бес-
дётся переключаться между панелью ра вы получаете только приблизитель- проводных подключений в трее. Всё,
задач, меню «Пуск/Start» и панелью ное представление о том, что в данный что вам требуется – выбрать беспро-
«Быстрого запуска/Quick Launch». Так- момент делает программа. Все умень- водную сеть, которую вы хотите ис-
же здесь можно переносить иконки шенные экраны будут отображаться пользовать, после чего нажать кла-
в меню «Пуск/Start» из него, и выби- одинакового размера. вишу «Подключиться/Connect». Если
рать желаемый порядок иконок, не за- В добавление к этому в Windows 7 нужно ввести сетевой ключ защиты,
висящий от порядка, в котором запус- приложения получили собственные то будет предложен соответствующий
каются приложения. Располагать окна места на панели задач, и теперь вы мо- диалог, а если нужно войти через веб-
стало легче: просто перетащите окно жете навести курсор мыши на умень- страницу, то на ней вы и окажетесь.
на верхнюю часть экрана, и оно мак- шенный экран, чтобы просмотреть его Тот же самый список позволяет под-
симально раскроется; переместите ок- в полном размере. ключаться к мобильным широкополос-
но на край экрана, и оно закроется на- Если окно вам больше не требует- ным сетям через 3G-модем или к кор-
половину, чтобы облегчить процесс ко- ся, вы можете закрыть его из предва- поративным VPN-сетям.
пирования или вставки. рительного просмотра, без переклю-
Говоря об интерфейсе, следует от- чения в само приложение. Вкладки Новшества в сфере
метить тот факт, что изначально в сво- в Internet Explorer работают по анало- безопасности
их рекламных сообщениях Microsoft гичному принципу – каждая вкладка Средства безопасности также претер-
активно распространяла слухи об ис- выводится отдельно. пели некоторые изменения по сравне-
пользовании на экране так называе- Однако помимо визуальных эле- нию с Windows Vista. В Vista появил-
мого «кольца команд», позволяющего ментов в новой версии операционной ся целый ряд новшеств: фильтрация,
прокручивать логотипы команд на эк- системы также появились и техничес- как входящих, так и исходящих соеди-
ране, выбирая нужную (по аналогии кие нововведения, о которых я рас- нений, динамические профили, интег-
с iPhone), однако в текущей версии скажу далее. рация с IPSec и поддержка IPv6. Одна-
Windows 7 данный интерфейс не пред- ко активным при этом мог быть только
ставлен, возможно, именно потому, Работа в сети один профиль, и при нескольких под-
что для него требуется слишком мно- Работа с сетями в Windows 7 также ключениях применялся наиболее ог-
го аппаратных ресурсов. претерпела некоторые изменения. раничивающий из них. В Windows 7
Новые возможности визуализации, С помощью так называемых Jump lists это упущение было исправлено – те-
представленные еще в Windows Vista, (списков перехода) можно воспользо- перь несколько профилей могут быть
получили свое развитие в Windows 7. ваться новой функцией «Просмотр до- активными, что позволяет более гиб-
14
ла виртуального диска. Затем вводим не поддерживается компрессия. К со- select vdisk file="путь к файлу"
attach vdisk
команду: жалению, также не поддерживается
загрузка с VHD на съемном носите-
attach vdisk ле. Также есть несколько предосте- После этого необходимо вернуть-
режений при работе с расширяемы- ся в меню установки и продолжить ее.
После этого следует сообщение ми VHD-дисками (вспомните настрой- На этапе выбора диска для установ-
об успешном подключении диска. ки на рис. 2). Свободное место на дис- ки системы нужно выбрать создан-
Теперь можно работать с нашим ке необходимо резервировать заранее ный VHD-диск. Предупреждение о том,
виртуальным диском, как с обычным под максимальный размер, так как при что система не может быть установле-
ресурсом. Например, с помощью сце- загрузке диск будет увеличен до дан- на на данный диск, можно проигнори-
нария сделать резервную копию ка- ного размера. Скорость работы с VHD ровать, установка все равно пройдет
кого-либо бизнес-приложения. Для фиксированного размера будет выше, успешно. После установки на этапе за-
отключения виртуального диска в так как он менее подвержен фрагмен- грузки вы можете выбрать новую опе-
diskpart необходимо ввести команду: тации. Рекомендуемый минимальный рационную систему, установленную
размер диска – 7024 Мб. на VHD-диске.
detach vdisk Некоторые из приведенных огра- Более подробно о работе с VHD-
ничений показались мне несколько дисками вы можете узнать из докла-
Продолжая тему работы с дисками странными (например, невозможность да на сайте [2].
VHD, попробуем развернуть на вирту- загрузки со съемного носителя). Хо-
альном диске операционную систему. чется верить, что в финальной версии Заключение
Это может оказаться полезным, когда Microsoft исправит недостатки. В целом, впечатление от новой опе-
необходимо иметь готовый образ ти- Итак, приступим к созданию загру- рационной системы сложилось поло-
повой операционной системы, исполь- жаемого VHD-диска с операционной жительное. Windows Vista, наделав-
зуемой на рабочих станциях пользо- системой. Сначала необходимо соз- шая несколько лет назад много шума,
вателей или для тестирования ново- дать VHD-диск с помощью действий, на деле оказалась довольно громозд-
го оборудования. Виртуальный VHD- приведенных выше. Для этого нам по- ким решением, требовательным к ап-
диск аналогичен Live CD, загружае- требуется сначала загрузиться с дис- паратным ресурсам. В Windows 7 эти
мым дистрибутивам, которые не вно- ка с дистрибутивом Windows 7. недостатки смогли исправить, улучшив
сят изменений в установленную опе- В первом же окне установки не- работоспособность и функционал.
рационную систему. обходимо запустить командную стро- Однако разработчикам еще есть
Но, прежде чем приступить к со- ку с помощью комбинации клавиш над чем поработать, так что будем
зданию образа операционной систе- <Shift>+<F10>. В открывшемся окне не- ждать выхода новых релизов опера-
мы, необходимо обратить внимание обходимо запустить утилиту diskpart. ционной системы.
на следующие моменты. Далее:
Не сохраняйте файлы VHD в ка- 1. http://www.windxp.com.ru/win7/winfag.
талог Windows, не используйте сло- сreate vdisk file="путь к файлу" ↵ htm – Материал по Windows Vista.
type=fixed maximum=размер диска
во Windows в названии диска. Далее 2. http://www.techdays.ru/videos/1237.html –
имейте в виду, что для дисков VHD Затем: презентации по VHD в Windows 7.
Реклама
Например, чтобы получить информацию о WIM-образе, PETools> DISM /Image:c:\img /Get-Drivers | more
PETools> DISM /Image:c:\img /Get-Features | more
при помощи ImageX вводим:
Теперь, чтобы узнать подробнее о конкретном драйве-
PETools> imagex /INFO d:\sources\install.wim ре, вводим:
<IMAGE INDEX="1">
<NAME>Windows Vista BUSINESS</NAME>
Это для установленного драйвера, иначе следует ука-
зать полный путь к файлу.
С использованием DISM команда и результат выгля- Команды можно использовать и в рабочей системе:
дят так:
PETools>DISM /Online /Get-Features | more
PETools> DISM /Get-WimInfo /WimFile:d:\sources\install.wim
Index : 1 Теперь, получив нужные названия, отключаем встроен-
Name : Windows Vista BUSINESS
ные игры и активируем роль веб-сервера IIS:
Если нужно обратиться к определенному образу (на- PETools> DISM /Online /Disable-Feature:InboxGames
PETools> DISM /Online /Enable-Feature ↵
пример, первому), следует использовать дополнительный /FeatureName:IIS-WebServerRole
ключ /index:1.
Ключей в DISM используется достаточно много, при по- Для установки или удаления пакетов используется соот-
мощи /? можно увидеть лишь самые востребованные, кроме ветственно Add-Packages и Remove-Package. Но DISM под-
держивает работу только с .cab-, .msu-
и .inf-файлами. Для установки .msi сле-
дует использовать OCSetup, сервис-
паков – Windows Update Stand-alone
Installer (Wusa.exe).
По окончании работы образ следу-
ет размонтировать:
18
разработчиков дать пользователю уни-
версальный инструмент.
Аргументы файла
setup.exe
Традиционно мастер управления уста-
навливаемых компонентов запускает-
ся с помощью файла setup.exe, кото-
рый поддерживает следующие аргу-
менты:
n --record. Используется для созда- Рисунок 1. Пример файла ответов
ния файла ответов, принимает зна-
чение 0 или 1;
n --silent. Реализует установку при-
ложения в «тихом режиме»;
n --deployment. Обеспечивает уста-
новку с помощью созданного фай-
ла ответов.
Использование файла
ответов
Файл для автоматического удаления
приложения используется достаточно
редко, поэтому его можно удалить. Уде-
лим особое внимание файлу, обеспе-
чивающему автоматическую установ-
ку пакета. Его имя произвольно, поэто-
му присвоим ему более короткое имя –
Рисунок 3. Местоположение файла ответов deployment.xml. Расположение файла
также не имеет значения. Для удобс-
n eula_EPIC_EULA_ACCEPTED. Всегда равен 1. Обоз- тва использования рекомендуется поместить его в один
начает, что пользователь ознакомился и согласен с ли- каталог с файлом setup.exe (см. рис. 4), обеспечивающим
цензионным соглашением. запуск мастера установки: --mode=Silent --deploymentFile=
n pers_EPIC_SERIAL. Серийный номер, хранящийся в за- Deployment.xml. Рекомендуется эту команду поместить в ко-
шифрованном виде. мандный файл, при этом необходимо помнить, что он дол-
жен запускаться с сетевого хранилища.
Тег <Payloads> Приведенный на рис. 4 листинг командного файла име-
В теге <Payloads> содержится список устанавливаемых ет особенности: поскольку установка выполняется в «ти-
приложений. Каждое из них идентифицируется двумя те- хом» режиме, то трудно понять, завершен процесс уста-
гами: <Payload>, описывающего приложение с помощью новки или нет. Воспользуемся свойством установки воз-
GUID, и <Action>, указывающего производимую с ним вращать код ошибки по завершении процесса и командой
манипуляцию (install, remove). Для инсталляции Adobe «Start / Wait», которая будет выводить CMD-консоль, пока
Photoshop СS3 (v. 10), которому соответствует GUID, рав- работа мастера не закончится. Команда pause позволит
ный {30C4B843-28DA-466F-AFCA-CB0ED153C826}, содер- увидеть код ошибки.
жимое тега <Payloads> описано в листинге 2.
Заключение
Листинг 2. Управление устанавливаемыми компонентами CS3 К сожалению, официальная документация [1] расходится
<Payloads> с действительностью, тому свидетельство – многочислен-
<Payload adobeCode = ↵ ные форумы на эту тему. Я надеюсь, что, прочитав статью,
"{30C4B843-28DA-466F-AFCA-CB0ED153C826}">
<Action>install</Action> на все вопросы по автоматической установке Adobe CS3
</Payload> вам удастся найти ответ.
...
</Payloads>
1. Enterprise Deployment Options for Adobe® Creative Suite 3
Editions and Components – http://www.adobe.com/support/
Создание файла ответов deployment/cs3_deployment.pdf.
Файл ответов можно создать вручную, однако наиболее оп-
тимальное решение – записать выполняемые действия мас-
тера установки в XML-файл. Для включения мастера в ре-
жиме записи необходимо выполнить команду «setup.exe
--record=1». Выполняемые действия ничем не будут отли-
чаться от обычной работы мастера: необходимо согласить-
ся с условиями лицензионного соглашения, затем ввести
серийный номер, сформировать список устанавливаемых
приложений, выбрать путь установки Adobe CS3. Исклю-
чение составляет последний шаг: вместо обычной кноп-
ки «Установить» будет отображена кнопка «[record] Уста-
новить» (см. рис. 2). Рисунок 4. Использование файла ответов при установке CS3
22
«10-Страйк» – незаменимые программы
для системных администраторов
«10-Страйк: Инвентаризация Компьютеров» – про- ратор сети может использовать собственные скрипты
грамма для учёта программного и аппаратного обеспе- в качестве проверок и даже контролировать различные
чения на компьютерах в локальных сетях. Администра- переменные в управляемых коммутаторах по протоко-
тор сети может легко создать базу данных оборудова- лу SNMP. Программа сигнализирует о неполадках с по-
ния и программ, установленных на компьютерах, чтобы мощью звука, экранных сообщений, по e-mail, может за-
всегда иметь под рукой эту важную информацию. пускать внешние программы и службы, а также перезаг-
ружать компьютеры для устранения неполадок.
Но это еще не всё. LANState
содержит развитые средства
администрирования удален-
ных компьютеров: включе-
ние и выключение компью-
теров, получение различ-
ной информации (списки
Нажав пару кнопок, администратор может создать отчё- программ, доступ к реестру,
ты с конфигурациями компьютеров, списками установ- event log и т. п.), рассылка со-
ленных программ, ОС, и лицензий к ним. В программу за- общений. Pro-версия программы имеет встроенный веб-
ложены десятки шаблонов отчётов, можно создать собс- сервер для удаленного доступа к карте сети.
твенные отчёты любой конфигурации, включая сводные
таблицы. «Инвентаризация Компьютеров» имеет раз- «10-Страйк: Мониторинг Сети» – следит за хостами се-
витые средства подсчёта и контроля лицензий програм- ти и оповещает о неполадках, как и LANState, но не име-
много обеспечения. ет графической карты и работает в виде службы.
При повторных проверках компьютеров программа срав-
нивает новую информацию с уже имеющимися данны- «10-Страйк: Схема Сети» – обнаруживает сетевые уст-
ми и заносит изменения в отдельный журнал. Таким об- ройства и строит карту-схему сети. Используя SNMP-
разом, можно легко увидеть, какие программы были до- протокол, программа сама нарисует связи между уст-
бавлены или удалены пользователями, какое железо бы- ройствами.
ло унесено домой.
Системный администратор имеет возможность просмат- 10-Strike Network File Search – позволяет искать фай-
ривать папки автозагрузки, списки процессов и служб лы в локальной сети (в сетевых папках и на FTP-серве-
на компьютерах пользователей, обнаруживать вредо- рах), в том числе в скрытых административных ресур-
носные программы. сах. Новая версия 1.6 под-
При планировании апгрейдов программа позволяет соз- держивает поиск фраз внут-
дать отчёты, содержащие списки компьютеров с недоста- ри файлов.
точным объемом дисковой или оперативной памяти. Pro-версия осуществляет
Сбор информации возможен как средствами WMI без ус- циклический мониторинг,
тановки дополнительных программ на удаленные ком- заносит найденные файлы
пьютеры (при наличии прав администратора), так и с по- в лог, может удалять най-
мощью вспомогательных программ и служб. Для более денные файлы (например,
тщательного анализа администратор может выгрузить вредоносные программы),
данные во внешнюю базу данных. а также содержит веб-сервер для просмотра списка най-
Таким образом, программа «10-Страйк: Инвентариза- денных файлов удаленными пользователями.
ция Компьютеров» позволяет администратору всегда
быть в курсе происходящего на подотчётных компьюте- 10-Strike Connection Monitor – программа мониторинга
рах, контролировать безопасность и лицензионную чис- подключений к общим папкам, позволяет узнать, кто, ког-
тоту программ, создавать отчёты. да и что скачивал. Программа ведет лог подключений
и оповещает администратора о различных событиях. Pro-
10-Strike LANState – программа мониторинга серверов версия программы реализована в виде службы.
и компьютеров в сети, позволяющая визуально наблю-
дать текущее состояние сети в любой момент времени. Дмитрий Степанов
Администратор может вовремя узнать о произошедшем
сбое (разрыв связи, завершение места на диске серве- ***
ра, останов службы, и т. п.) и устранить проблему с ми- Для всех программ доступны для скачивания
нимальными потерями времени. LANState отслеживает
состояние хостов, папок, файлов, баз данных, процессов
оценочные русскоязычные версии (под Windows)
и служб на компьютерах сети. Дополнительно админист- по адресу: http://www.10-strike.com/rus.
Реклама
Делегируем права на перемещение
учетных записей пользователей
в Active Directory
Часть 2. Реализация основных функций
Вадим Андросов
Запись в виде тега позволяет наглядно и относительно Листинг 3. Метод инициализации основного класса надстройки
компактно определить глобально используемые объекты. sub initialize()
Ее преимущества проявляются разве что в случае исполь‑ timeZoneOffset = "?"
set re = new Regexp
зования различных языков сценариев при создании одно‑ re.ignoreCase = True
го класса, когда всем им необходим доступ к одной пере‑ re.global = True
delegationClasses = Array(getClassGUID("user"), ↵
менной. Здесь я использовал ее исключительно в иллюст‑ getClassGUID(COMMAND_CLASS), ↵
ративных целях, чтобы показать, что так тоже можно. getClassGUID(DENY_COMMAND_CLASS), ↵
getClassGUID(START_MOVE_COMMAND_CLASS))
end sub
Общие подпрограммы
Начнем с функции, которая будет отвечать на вопрос, а име‑ Итак, можно видеть, что массив, содержащий классы
ет ли текущий пользователь (предполагаемый менеджер для проверки, называется delegationClasses. Также в этом
по персоналу) права на манипуляции необходимыми объ‑ методе инициализируется ряд вспомогательных перемен‑
ектами. Такие проверки придется делать достаточно час‑ ных, используемых в других методах класса. Конечно, все
то, чтобы выбрать правильный режим функционирования они должны быть объявлены выше.
надстройки.
Для начала определимся, что это за необходимые объ‑ dim timeZoneOffset, re, delegationClasses
екты. Для нашей надстройки это экземпляры классов поль‑
зователь (user), команда (UserMoveCommand), команда от‑ Затем нужно не забыть вручную вызвать метод иници‑
мены операции (UserMoveDenyCommand) и команда нача‑ ализации, потому что автоматически этого, к сожалению,
ла перемещения (UserMoveStartMoveCommand). не происходит.
Чтобы избежать трудноуловимых ошибок, имена всех
классов запишем в соответствующие константы. Initialize
Листинг 2. Константы названий классов надстройки Этот вызов просто записывается выше всех объяв‑
Const ROOM_CLASS = "UserMoveWaitingRoom" лений функций. В массиве хранятся идентификаторы
Const START_MOVE_COMMAND_CLASS = "UserMoveStartMoveCommand" классов, так как при анализе списка контроля доступа
Const DENY_COMMAND_CLASS = "UserMoveDenyCommand"
Const COMMAND_CLASS = "UserMoveCommand" необходимы будут именно они. GUID класса пользовате‑
Const CHAIR_CLASS = "UserMoveChair" ля можно найти в MSDN [1]: {BF967ABA‑0DE6‑11D0‑A285‑
Const LINK_CLASS = "UserMoveChairLink"
00AA003049E2}.
Во‑первых, пользователь должен иметь права на до‑ Но для наших классов его там, естественно, нет. При‑
бавление и удаление пользователей из организационной чем это не тот идентификатор, который генерировал‑
единицы. Как выяснилось, для этого необходимо разре‑ ся при создании классов [4]. Для получения GUID класса
шение: по его имени пришлось написать специальную функцию.
n Добавлять и удалять дочерние объекты перечисленных Рассмотрим ее.
типов в организационную единицу (см. рис. 3).
n Право записи свойств объектов. Наличия только преды‑ Листинг 4. Определение GUID класса
дущего набора прав не достаточно для переноса объ‑ function getClassGUID(className)
ектов пользователей из одной организационной еди‑ dim classObj
26
set classObj = getObject("LDAP://schema/" & className) ли, что порядок полученных байт в результате немного
getClassGUID = GUID2Str(classObj.schemaIDGUID)
end function меняется.
Получаемая строка состоит из 4‑х групп. В первую вхо‑
Функция подключается к объекту заданного класса, ис‑ дят первые четыре байта исходной строки в обратном по‑
пользуя провайдер LDAP. Например, путь к классу поль‑ рядке, во вторую – 5‑й и 6‑й байты тоже в обратном (в про‑
зователя имеет вид LDAP://schema/user. Желанный иден‑ грамме это 4‑й и 5‑й элементы массива, поскольку нуме‑
тификатор хранится в свойстве schemaIDGUID получен‑ рация начинается с нуля), затем еще два байта в обратном
ного объекта. Однако он имеет тип Octet String, который порядке, далее два байта в прямом порядке и, наконец,
в VBScript не поддерживается. Для его преобразования последние 6 снова в прямом. Группы должны быть разде‑
в обычную строку используется функция GUID2Str. Рас‑ лены дефисами. Весь идентификатор заключается в фи‑
смотрим теперь ее. гурные скобки.
Несмотря на способ написания и внешний вид, функ‑
Листинг 5. Преобразование Octet String к обычной строке ция корректно работает. Полученные с ее помощью иден‑
Function GUID2Str(Guid) тификаторы дополнительных классов без проблем воспри‑
Dim i, b(16) нимались системой.
For i = 1 To 16
b(i - 1) = Right("0" & Hex(Ascb(Midb(Guid, i, 1))), 2) Переменная re будет использоваться для работы с ре‑
Next гулярными выражениями, а timeZoneOffset – содержать
GUID2Str = "{" & b(3) & b(2) & b(1) & b(0) & ↵
"-" & b(5) & b(4) & ↵ смещение временной зоны для текущего часового пояса.
"-" & b(7) & b(6) & "-" & b(8) & b(9) & "-" Но это потом, а сейчас перейдем к методу проверки пол‑
for i = 10 to 15
GUID2Str = GUID2Str & b(i) номочий.
next
GUID2Str = GUID2Str & "}"
End Function Листинг 6. Проверка прав управления подразделением
28
рационной системой гарантируется, что запись о явном за‑ торому относится запись. Функция продолжает работу
прете встретится раньше разрешения. Так что, встретив за‑ только в том случае, если это или пользователь, права ко‑
пись с разрешением, можно быть уверенным, что далее за‑ торого сейчас проверяются, или группа, содержащая это‑
писи с запретом этой же операции уже не будет. го пользователя.
В противном случае функция возвращает константу
For Each ace In acl CHECK_ACE_SKIP, извещающую о том, что текущую за‑
result = checkACE(ace, oper, targetClass, isInherited)
пись нужно пропустить.
if result <> CHECK_ACE_SKIP then
canDo = (result = CHECK_ACE_YES)
exit function dim classGUID
end if if isInherited then
classGUID = ace.InheritedObjectType
Next else
end function classGUID = ace.ObjectType
end if
Функция checkACE в качестве первого параметра при‑ Затем в зависимости от значения параметра isInherited
нимает проверяемую запись списка контроля доступа, ос‑ определяется объект доступа. Это или дочерние объекты
тальные параметры передаются от canDo. (используется при проверке прав на добавление и удале‑
Приведенная функция также не относится к самому ние объектов пользователей в организационной единице),
низкому уровню реализации, она использует подпрограм‑ или текущий объект (проверка возможности изменения
му проверки записи контроля доступа checkACE. Рассмот‑ свойств пользователей).
рим теперь и эту функцию. Объект доступа в данном случае – это идентификатор
Логика ее работы и возвращаемые значения уже бы‑ класса, права на манипуляции экземплярами которого пре‑
ли описаны выше, поэтому расскажу об особенностях ре‑ доставляются.
ализации.
if isMask(ace.accessMask, oper) then
function checkACE(ace, oper, targetClass, isInherited)
checkACE = CHECK_ACE_SKIP
if not isTrusteeInteresting(ace.Trustee) then exit function Дальнейшая работа будет выполнена только в том слу‑
чае, если текущая запись контроля доступа описывает про‑
Сначала функция проверяет свойство Trustee записи веряемые права. Нужно убедиться с помощью функции
контроля доступа. Оно определяет субъект доступа, к ко‑ isMask, работа которой будет рассмотрена ниже, что за‑
Реклама
Далее проверяем, что целевой объект представляет со‑ set trusteeObj = getObject("WinNT://" & ↵
replace(trustee, "\", "/"))
бой интересующий нас класс (его идентификатор переда‑
ется в качестве параметра функции). Затем происходит привязка к объекту Trustee. Обрати‑
те внимание, здесь я использую провайдер WinNT. Он ме‑
if classGUID = targetClass then нее функционален, чем LDAP, однако в данном случае бо‑
if ace.AceType = _
ADS_ACETYPE_ACCESS_DENIED_OBJECT then лее удобен, так как позволяет привязываться к объектам,
checkACE = CHECK_ACE_NO игнорируя их положение в структуре предприятия. В на‑
exit function
end if личии имеется только имя Trustee в домене. Чтобы вос‑
пользоваться провайдером LDAP потребовалось бы сна‑
if ace.AceType = _
ADS_ACETYPE_ACCESS_ALLOWED_OBJECT then чала произвести поиск объекта в иерархии, чтобы устано‑
checkACE = CHECK_ACE_YES вить его отличительное имя (DN), что в данной ситуации
exit function
end if обернулось бы только неоправданным разрастанием ко‑
да. Функция replace требуется здесь для того, чтобы при‑
end if
end if вести имя Trustee к виду, пригодному для привязки с по‑
end function мощью провайдера WinNT. Собственно оно почти подхо‑
дит, за исключением того, что нужно заменить обратный
Основная логика работы уже рассмотрена, осталось слеш на прямой.
только несколько вспомогательных функций. isMask –
функция логического типа, возвращает истину, если в по‑ if trusteeObj.class = "Group" then
ле (первый параметр) установлен заданный флаг (второй
параметр): Далее, если Trustee – группа (еще это может быть прос‑
то другой пользователь), нужно проверить с помощью ме‑
function isMask(mask, flag) тода isMember принадлежит ли ей текущий пользователь,
isMask = (mask and flag) <> 0
end function если принадлежит, то функция возвращает истину.
30
Синхронизируем данные
между компьютерами
с помощью сервисов
сетевого хранения
Виталий Банковский
С появлением недорогих лаптопов и тем более ультрадешевых неттопов эти «создания»
начали плодиться во всех местах моего обитания – дома, в офисе, на даче, диване и так далее.
И тогда начались проблемы с синхронизацией данных между компьютерами. Знакомо?
И
вот тогда, чтобы окончательно Начало работы пользуемся богатыми возможностями
не сойти с ума с синхронизаци- Стоит отметить легкость установки семейства Linux, а именно – програм-
ей данных на всех этих устрой- клиента DropBox даже на Linux-подоб- мой cryptfs. Эта программа позволяет
ствах, я задался вопросом, как хранить ных системах. Для того чтобы начать прозрачно шифровать каталоги, при-
на каждом из них актуальную копию использовать систему, нужно проде- чем зашифрованные файлы и катало-
моих данных. Хранение данных на од- лать всего несколько шагов: ги также представлены в виде файлов
ном сервере или постоянное копирова- n Зарегистрироваться на сайте http:// и каталогов.
ние данных с помощью rsync я отмел drivebox.com. Итак, приступим. В папке ~/.Dropbox/
как неудобное и, как следствие, нера- n Скачать и установить, следуя инс- создаем каталог Private, куда будут
ботающее решение. трукциям на сайте поставщика, размещаться наши уже зашифрован-
Немного побродив по Интернету, клиентское программное обеспе- ные данные. Также создаем каталог,
я обнаружил, что шустрые предпри- чение, предварительно получив его например, ~/Dropbox.Open, куда мы бу-
ниматели мира сего уже пришли мне с вышеуказанного сайта. дем размещать наши файлы в откры-
на помощь с тремя наиболее интерес- n Перезапустить менеджер файлов том виде. Затем монтируем каталог
ными продуктами: Nautilius. ~/Dropbox/Private на каталог ~/Dropbox.
n DriveBox; Open с помощью программы encfs:
n LiveDrive; При этом в домашней папке поль-
n SkyDrive. зователя появится каталог .DriveBox, encfs ~/.Dropbox/Private ↵
~/Dropbox.Open
в который и нужно размещать файлы
Краткие сравнительные характе- для их синхронизации с другими ком- Если такая процедура происхо-
ристики смотрите в таблице. пьютерами. дит в первый раз, то будет задан воп-
Увы, я не смог дать 5 баллов сер- рос по выбору глубины шифрования,
вису DropBox по причине отсутствия Безопасность и также будет предложено задать па-
асимметричного шифрования. Как я уже говорил, при стандартном роль для шифрования данных. Анало-
Будучи заядлым пользователем использовании наши данные попада- гично повторяем процедуры установ-
операционной системы Linux, я похо- ют на сервис DropBox и уже там шиф- ки и монтирования на всех остальных
ронил для себя LiveDrive и SkyDrive руются. Конечно, при таком способе компьютерах, которые должны содер-
и приступил к использованию про- хранения есть вероятность сбоя сер- жать синхронизированные данные.
граммы DropBox. виса, и данные могут быть доступ-
В начале эксплуатации я также пос- ны другим пользователям, не говоря Использование
тавил себе задачу, чтобы на сервис уже о ситуациях, когда данные с сер- зашифрованных данных
хранения данных мои файлы отправ- виса воруют хакеры или инсайдеры. Для того чтобы программы на разных
лялись в зашифрованном виде. Для устранения этого недостатка вос- компьютерах использовали данные
Процедура установки программы Coda Является ли данный сервер главным сервером. Про-
Программа Coda состоит из трех подсистем: грамма Coda поддерживает многосерверную конфигура-
n серверная часть; цию в режиме репликации:
n клиентская часть; Is this the master server, aka the SCM machine? (y/n) y
n поддержка в ядре на сервере и клиенте.
Настройка идентификации для коммуникации меж-
Установка и настройка серверной части ду несколькими серверами Coda и между клиентом Coda
Предварительно получаем и устанавливаем следующие и сервером:
библиотеки: Пароль для идентификации между серверами Coda:
n LWP;
n RPC2; Enter a random token for update authentication : **********
32
Пароль, который должны указывать клиенты для иден- Далее необходимо настроить и подключиться к серверу
тификации на сервисе Coda: с сервисом Coda с помощью утилиты venus-setup:
Enter a random token for auth2 authentication : ***********
venus-setup servername.domain.com
Пароль, который нужно использовать при работе с ути-
литой volutil. Эта утилита с помощью вызовов RPC позволя- где servername.domain.com – имя сервера или IP-адрес сер-
ет удаленно работать с томами файловой системы Coda. вера, где мы установили сервис Coda. При запуске програм-
мы будут заданы два вопроса:
Enter a random token for volutil authentication : **********
Имя сервера, которое мы уже указали в качества пара-
Так как я являлся единственным пользователем, то ис- метра для утилиты venus-setup:
пользовал один и тот же пароль для всех трех подсистем
Default realm for authentication:
идентификации. Подробнее о системе репликаций файло-
вой системы Coda и об управлении томами можно прочи- Размер локального кэша (эквивалентен размеру хра-
тать на домашней странице проекта по адресу http://www. нимых на сервере данных) в килобайтах:
coda.cs.cmu.edu.
Amount of diskspace used for caching:
Идентификатор данного сервера Coda, произвольное
между 0 и 255, исключая 0,127 и 255. Я использовал 100. По завершении работы этой утилиты можно увидеть
следующее сообщение:
Enter an id for the SCM server. (hostname server.domain.com)
22:25:17 Mounting root volume...
The serverid is a unique number between 0 and 255.
You should avoid 0, 127, and 255. 22:25:17 Venus starting...
serverid: 100
22:25:17 /coda now mounted.
Создание учетной записи администратора Coda. Нуж-
но указать ID и имя учетной записи пользователя, который Это значит, что файловая система Coda успешно смон-
уже существует в системе: тирована в каталог /coda. Но перед началом работы необ-
ходимо пройти идентификацию на сервере, чтобы мы мог-
Enter the uid of this user: 1000
Enter the username of this user: cooluser ли записывать в этот каталог. Для этого существует утили-
та clog, которая запускается следующим образом:
Указание имени файла, где будут храниться лог-фай-
лы. Coda поддерживает разделы raw на системах хране- clog username
ния и обычные файлы на файловой системе.
где username – имя учетной записи пользователя службы
What will be your log file (or partition)? /home/coda/log
Coda на сервере Coda. При этом будет запрошен пароль,
Задание файла, где будут храниться данные: причем нужно использовать тот же пароль, который был за-
дан при настройке программы Coda на сервере:
Where is your data file (or partition)? /home/coda/data
Enter a random token for auth2 authentication:
Далее будут заданы вопросы про размер данных и мак-
симального количества файлов, затем утилита завершит Если все было сделано правильно, то наше хранилище
настройки и запустит серверные подсистемы программы на сервере будет смонтировано в каталог /coda/servername.
Coda. domain.com/. В этот каталог и нужно записывать наши дан-
Если все нормально было установлено и настроено, ные, которые должны быть синхронизированы между ком-
то мы должны получить сообщение об успешной установ- пьютерами.
ке и запуске серверной части программы Coda: Также существует возможность использования клиента
Coda для семейства операционных систем Windows XP, NT,
That seems to have worked...
используя среду Cygwin. Более подробно об этом можно по-
If you have a working Coda client you should now be able to читать по адресу http://www.coda.cs.cmu.edu/windowsnt.html.
access the new Coda realm
У меня не было возможности рассказать об этом подроб-
нее по причине «финальной кончины» Windows XP на мо-
- cfs lv /coda/servername.domain.com/ ем компьютере.
В этой статье я показал два подхода к синхронизации дан-
ных между несколькими компьютерами, и вам решать, какой
enjoy Coda.
из вариантов наиболее подходит в вашей ситуации.
for more information see http://www.coda.cs.cmu.edu.
1. http://www.coda.cs.cmu.edu.
Установка и настройка программы Coda 2. http://en.wikipedia.org/wiki/Coda_(file_system).
на клиентском компьютере 3. http://dropbox.com.
Аналогично устанавливаем библиотеки LWP, RPC2, RVM, 4. http://skydrive.com.
программу Coda, включаем поддержку файловой систе- 5. http://www.livedrive.com.
мы Coda в ядре. 6. http://www.coda.cs.cmu.edu/windowsnt.html.
Иван Коробко
При подключении к каталогу Active Directory первый шаг – определение имени текущего
домена. Для этого используется виртуальный объект RootDSE.
P
owerShell позиционируется компанией Microsoft лом, доступных пространствах имен, поддерживаемой вер-
как скриптовый язык, поддерживающий библиоте- сии LDAP и др. Первоначально объект RootDSE был опре-
ки .Net Framewok и призванный заменить существую- делен в RFC 2251 [1] как часть спецификации LDAP вер-
щие VBScript и JScript. Принципиальное отличие PowerShell сии 3.
от своих предшественников – поддержка объектно-ориен- Для подключения к RootDSE используется бессервер-
тированного программирования. ное подключение. Чтобы определить имя домена, исполь-
Знакомые с управлением Active Directory знают, что на зуется локатор контроллера домена, который находится
VBScript или JScript доступ к каталогу Active Directory на каждом контроллере. Доступ к объекту осуществляет-
осуществляется с помощью ADODB, а при использо- ся анонимно.
вании .Net Framework – с помощью библиотеки System.
DirectoryServices. Определение имени текущего домена
Поскольку PowerShell в первую очередь ориентирован На практике виртуальный каталог RootDSE используется
на работу с .NET Framework, то администраторам придет- для определения имени текущего домена, а также косвен-
ся узнать основы программирования в Visual Studio в об- ным образом для определения принадлежности сервера
легченном варианте. к тому или иному сайту.
Как известно, существуют три варианта обозначения
Способы подключения к Active Directory имени домена:
Для доступа к каталогу Active Directory используется один n RDN (Relative Distinguished Name) – относительное уни-
из двух провайдеров: WinNT или LDAP. Первый из них ис- кальное имя, например DC=ISLAND,DC=RU;
пользовался в доменах Windows NT и в настоящее время n FQDN (Fully Qualified Domain Name) – полное домен-
используется для совместимости. Основным протоколом ное имя или DNS-имя, в котором компоненты разделе-
доступа к Active Directory является LDAP. В связи с этим ны точкой, например ISLAND.RU;
провайдер WinNT рассматриваться не будет. n NetBIOS-имя – обычно первая часть DNS-имени доме-
на, например ISLAND.
Виртуальный каталог RootDSE
Виртуальный объект RootDSE является точкой входа в лю- На практике для управления объектами Active Directory
бой домен, который содержит информацию о домене в це- с помощью провайдера LDAP используется имя домена,
34
записанное в RDN-формате. Домен
имеет древовидную структуру, в кото-
рой доступны несколько пространств
имен. Каждое из них имеет свою точ-
ку входа:
n defaultNamingContext. Описывае-
мое этим параметром пространство
имен используется для управления
учетными записями пользователей,
групп, контейнеров и других объек-
тов в оснастке Active Directory Users
and Computers.
n sсhemaNamingContext. Данным
параметром описывается место-
положение схемы домена. Подключение к проекту библиотеки System.DirectoryServices
n configurationNamingContext. Со-
держит RDN-путь к разделу, содержащему путь к кон- Первый способ рассматриваться не будет, поскольку
фигурации леса текущего домена. его скорость работы по сравнению со вторым оставляет
n rootDomainNamingContext. Значением параметра яв- желать лучшего.
ляется RDN-путь к корню домена (домен, который был Для реализации второго способа необходимо к создан-
создан первым в лесу). ному в Visual Studio проекту подключить библиотеку System.
DirectoryServices (см. рисунок).
Имя текущего домена является значением параметра
defaultNamingContext. Поскольку PowerShell представляет Листинг 2. Определение RDN-имени домена (VB.NET)
собой нечто среднее между Visual Studio и VBScript, то рас- Imports System.DirectoryServices
смотрим управление объектом RootDSE с помощью трех
...
языков программирования (VB.NET, VBScript и PowerShell), Dim obj As New DirectoryEntry("LDAP://RootDSE")
чтобы наглядно показать все преимущества PowerShell. Dim domain As String = ↵
obj.Properties("defaultNamingContext").Value
Удаленное подключение к каталогу Active Directory (про- MsgBox (domain)
вайдер LDAP) обеспечивается с помощью Active Directory
Services Interface (ADSI). В VBScript для этого используется Несмотря на то что PowerShell поддерживает COM-объ-
функция GetObject(), в качестве аргумента которой фигу- екты, рекомендуется отдать предпочтение библиотекам
рирует путь к объекту. В PowerShell для решения идентич- .NET Framework, поскольку скорость работы сценария в этом
ной задачи вместо функции GetObject() в квадратных скоб- случае увеличится. Для получения имени домена все так же
ках указывается ключевое слово ADSI, а в кавычках, сле- используется библиотека System.DirectoryServices, однако
дующих далее, – путь к объекту. ее нет необходимости подключать, поскольку многие по-
Определение RDN-имени текущего домена с помощью пулярные библиотеки сразу доступны после запуска обо-
виртуального объекта RootDSE состоит из двух этапов. лочки PowerShell. Листинг сценария очень похож на листинг
Первый этап – получение доступа к RootDSE, второй – чте- VB.NET (см. листинг 3).
ние строкового значения параметра defaultNamingContext.
На языке VBScript для этого используется функция Листинг 3. Определение RDN-имени домена (VB.NET)
GetObject(), аргументом которой является путь к виртуаль- $obj=[ADSI]"LDAP://RootDSE"
ному объекту: LDAP://RootDSE, и чтение значения с помо- $domain=$obj.defaultNamingContext
$domain
щью функции GET, аргументом которой в свою очередь яв-
ляется имя параметра (см. листинг 1). Обратите внимание: все имена переменных в PowerShell
начинаются с символа доллара ($).
Листинг 1. Определение RDN-имени домена (VBScript) Как видно, листинг по своему объему сопоставим с лис-
Set obj = GetObject("LDAP://rootDSE") тингом на VBScript, а по скорости работы – с VB.NET.
domain = obj.Get("defaultNamingContext")
MsgBox domain
Заключение
Эту же операцию в VB.NET можно осуществить двумя После того как определено имя текущего домена, вы по-
способами: лучаете доступ ко всему каталогу Active Directory. Степень
n с помощью COM-объекта. Так же как и в VBScript, дозволенности определяется правами, выданными сис-
осуществляется вызов функции GetObject() и с по- темным администратором. В общем случае доступны по-
мощью метода GET – чтение значения параметра иск объектов, на которые есть соответствующие разреше-
defaultNamingContext; ния, и чтение их свойств.
n с помощью класса DirectoryEntry, входящего в состав
библиотеки Directory Services .Net Framework (см. лис- 1. RFC2251 – Lightweight Directory Access Protocol (v3) – http://www.
тинг 2). faqs.org/rfcs/rfc2251.html.
Иван Коробко
В
каталоге Active Directory объек- Таблица 1. Типы объекта в Active Directory
ты хранятся в иерархической Комментарий Тип объекта Значение Фрагмент поискового запроса
структуре, поэтому для получе- objectClass
ния доступа к нужному объекту необ- Учетная запись компьютера Computer Top (&(objectClass=Computer)
Person
ходимо указать к нему путь в форма- OrganizationalPerson
те RDN. Обычно местоположение объ- User
Computer
екта неизвестно или оно может изме-
ниться, поэтому программный способ Контакт, используется в почтовых Contact Top (&(objectClass=Contact)
приложениях Person
поиска объекта/объектов по задан- OrganizationalPerson
ным условиям – самое эффективное Contact
средство для определения его место- Группа безопасности Group Top (&(objectClass=Group)
нахождения. Group
Учетная запись пользователя, InetOrgPerson Top (&(objectClass=InetOrgPerson)
Иерархическая структура не совместимая с доменами
Windows 2K
Person
OrganizationalPerson
каталога Active Directory User
InetOrgPerson
Иерархическая структура каталога
Active Directory обычно формирует- Папка дерева каталогов OU Top (&(objectClass=OrganizationalUnit)
Active Directory OrganizationalUnit
ся с помощью специфических объек-
Опубликованный в Active Directory Printer Top (&(objectClass=PrintQueue)
тов – контейнеров (Organizational Unit), сетевой принтер Leaf
которые имеют префикс «OU=». Кон- ConnectionPoint
PrintQueue
тейнеры, образующие домен, име-
ют префикс DC (Domain Component). Опубликованная в Active Directory Shared Folder Top (&(objectClass=Volume)
сетевая папка Leaf
Большинство других объектов кроме ConnectionPoint
корня домена имеют префикс «CN=» Volume
Встречаются случаи, в которых необходимо в качестве Листинг 1. Поиск объектов по заданным критериям (VB.NET)
значений указывать служебные символы, например звез- Dim obj As New DirectorySearcher("LDAP://RootDSE")
дочку, скобку и др.
obj.SearchScope = SearchScope.Subtree
Чтобы реализовать эту возможность, нужный символ obj.Filter = "(&(objectClass=person)(name=a*) ↵
требуется заменить на соответствующее ему кодовое зна- (!objectClass=computer))"
чение, приведенное в таблице 3. obj.Sort.PropertyName = "cn"
obj.Sort.Direction = SortDirection.Ascending
For Each element As SearchResult In obj.FindAll()
Сортировка элементов Dim obj2 As DirectoryEntry = ↵
Сортировка элементов осуществляется с помощью ме- element.GetDirectoryEntry()
msgbox obj2.Properties("cn").Value)
тода sort, поддерживающего два свойства: PropertyName Next
и Direction.
С помощью свойства PropertyName производится на- В листинге 2 код отличается. Значительные измене-
значение поля, по которому будет осуществляться сорти- ния в сторону упрощения претерпевает вывод значений
ровка, а с помощью Direction – направление. элементов полученного массива. В отличие от классичес-
В случае Sort.Direction=0 осуществляется упорядочи- кого For.... Next, в PowerShell можно использовать инструк-
вание от «А» до «Я», при Sort.Direction=1 – в обратном по- цию foreach-object или короткий псевдним % (знак процен-
рядке. та). В этом случае доступ к элементам массива осущест-
вляется с помощью специальной переменной «$_».
Пример поиска объектов
в Active Directory Листинг 2. Поиск объектов по заданным критериям
(PowerShell)
Приведу пример поиска всех учетных записей пользовате-
ля на букву «А». Дополнительно выполним сортировку вы- $obj = new-object DirectoryServices.DirectorySearcher ↵
("LDAP://RootDSE")
водимых данных от А к Я по полю name. Рассмотрим алго-
ритм работы сценария. $obj.SearchScope = "Subtree"
$obj.Filter = "(&(objectClass=person)(name=a*) ↵
Сначала необходимо вызвать объект DirectorySearcher (!objectClass=computer))"
и указать точку монтирования к каталогу Active Directory. За-
$obj.Sort.PropertyName = "cn"
тем укажем область поиска – весь каталог Active Directory: $obj.Sort.Direction = "Ascending"
SearchScope = subtree.
$obj.FindAll() | %{
Таблица 3. Служебные Критерий поиска логичес- $obj2=$_.GetDirectoryEntry()
символы, используемые $obj2.cn
в фильтрах поиска ки складывается из двух эле-
ментов: в первом выберем все
Символ Значение учетные записи пользовате-
* \2a лей. Это можно сделать, ука- Заключение
( \28 зав фильтр (&(objectClass=user) Подводя итог написанному, необходимо сказать, что поиск
) \29
(!(objectClass=Computer))). объектов – очень мощное средство. Грамотно составлен-
Вторым критерием из всех ный запрос, верно определенные области поиска и сорти-
\ \5c
найденных учетных записей ровка позволят с легкостью формировать сложнейшие от-
NUL \00 отберем начинающиеся с бук- четы, на составление которых могло бы уйти гораздо боль-
/ \2f вы «А». Для этого использу- ше времени.
38
Множественные уязвимости в Wireshark Множественные уязвимости в Kerberos
Программа: Wireshark версии до 1.0.7. Программа: Kerberos 5.x.
Опасность: Высокая. Опасность: Высокая.
Описание: 1. Уязвимость существует из-за ошибки формат- Описание: 1. Уязвимость существует из-за ошибки разыме-
ной строки в PROFINET/DCP (PN-DCP) диссекторе при об- нования нулевого указателя в функции spnego_gss_accept_
работке названий станций, содержащих символы формат- sec_context() в файле src/lib/gssapi/spnego/spnego_mech.c.
ной строки. Удаленный пользователь может с помощью Удаленный пользователь может аварийно завершить ра-
специально сформированного пакета вызвать отказ в об- боту демона с помощью«NegTokenInit-токена, содержаще-
служивании или выполнить произвольный код на целевой го специально сформированные ContextFlags.
системе. 2. Уязвимость существует из-за ошибки в функции
2. Уязвимость существует из-за ошибки в LDAP-дис- get_input_token() в реализации SPNEGO. Удаленный поль-
секторе. Удаленный пользователь может с помощью спе- зователь может вызвать повреждение памяти и аварийно
циально сформированного LDAP-пакета аварийно завер- завершить работу демона и также получить доступ к важ-
шить работу приложения. Уязвимость распространяется ным данным.
только на Windows-платформы. 3. Уязвимость существует из-за математической ошиб-
3. Уязвимость существует из-за ошибки в Check Point ки в функции asn1buf_imbed() в ASN.1-декодере. Удален-
High-Availability Protocol (CPHAP)-диссекторе. Удаленный ный пользователь может аварийно завершить работу kinit
пользователь может аварийно завершить работу прило- или KDC.
жения. 4. Уязвимость существует из-за ошибки в функции
4. Уязвимость существует из-за ошибки при обработке asn1_decode_generaltime(), которая позволяет освободить
Tektronix .rf5-файлов. Удаленный пользователь может с по- неинициализированный указатель через некорректную
мощью специально сформированного .rf5-файла аварийно DER-кодировку. Удаленный пользователь может выпол-
завершить работу приложения. нить произвольный код на целевой системе.
URL производителя: www.wireshark.org. URL производителя: web.mit.edu/kerberos/www.
Решение: Установите последнюю версию 1.0.7 с сайта про- Решение: Установите исправление с сайта производителя.
изводителя.
Множественные уязвимости в ClamAV
Переполнение буфера в IBM Access Программа: Clam Antivirus версии до 0.95.1.
Support ActiveX-компоненте Опасность: Высокая.
Программа: IBM Access Support ActiveX 3.20.284.0 и более Описание: 1. Уязвимость существует из-за ошибки при
ранние версии. обработке файлов, запакованных с помощью UPack. Уда-
Опасность: Высокая. ленный пользователь может аварийно завершить рабо-
Описание: Уязвимость существует из-за ошибки провер- ту приложения.
ки границ данных в методе GetXMLValue() в библиотеке 2. Уязвимость существует из-за ошибки проверки гра-
IbmEgath.dll. Удаленный пользователь может с помощью ниц данных в функции cli_url_canon() в файле libclamav/
специально сформированного веб-сайта передать слиш- phishcheck.c. Удаленный пользователь может с помощью
ком длинный аргумент уязвимому методу, вызвать пере- специально сформированных ссылок вызвать перепол-
полнение стека и выполнить произвольный код на целе- нение буфера и выполнить произвольный код на целевой
вой системе. системе.
URL производителя: www.ibm.com. URL производителя: www.clamav.net.
Решение: В настоящее время способов устранения уязви- Решение: Установите последнюю версию 0.95.1 с сайта
мости не существует. производителя.
Сергей Крутилин
И
так, начнём с простейшего. Ваша организация при-
обрела маршрутизатор Cisco 871 для следующих за-
дач: доступ в Интернет, сервис для автоматического
назначения IP-адресов локальным ПК (DHCP), публикация
внутреннего почтового сервера.
Вы распаковываете коробку с новым оборудованием
и видите перед собой устройство, внешний вид которого
представлен на рис. 1.
Первый вопрос – как подключиться? Достаточно прос-
то – в комплекте с оборудованием идёт «шнурок» синего
цвета (консольный кабель, см. рис. 2), его нужно подклю-
чить одной стороной (разъём RJ45) к порту с названием
Console, а другой стороной к COM-порту вашего ПК. Рисунок 1. Внешний вид устройства
Для управления оборудованием нам понадобится про-
грамма, к примеру, Hyper Terminal в Microsoft Windows («Глав- ролей для различного оборудования смотрите по адресу
ное меню → Программы → Стандартные → Связь»). Запус- http://www.phenoelit-us.org/dpl/dpl.html).
каем Hyper Terminal, вводим название подключения (к при- В данном режиме выполняются основные действия кон-
меру, Cisco), затем нажимаем ОК, на втором окне выбира- фигурирования, такие как настройка сетевых интерфейсов,
ем требуемый COM-порт, затем настраиваем Hyper Terminal, правила брандмауэра и т. д.
как показано на рис. 3, и нажимаем ОК. Теперь включаем Для просмотра текущей конфигурации маршрутиза-
маршрутизатор. На экране появится окно загрузки с при- тора выполните команду «show config» (или сокращённо
мерно следующим содержанием: «sh conf»). Просматривать конфигурацию можно при помо-
System Bootstrap, Version 12.2(11r)YV3, RELEASE SOFTWARE (fc2)
щи клавиши пробела.
Technical Support: http://www.cisco.com/techsupport Для настройки основных параметров необходимо ис-
Copyright (c) 2004 by cisco Systems, Inc.
C800/SOHO series (Board ID: 29-129) platform with 65536 Kbytes of main memory пользовать команду «configure terminal» (или сокращён-
program load complete, entry point: 0x80013000, size: 0x753404
Self decompressing the image : ##############################################
но «conf t»).
############################################################################# Рассмотрим пример настройки.
################ [OK]
Router>show ? где:
aaa Show AAA values n Ethernet – это физические интерфейсы, которым мож-
aal2 Show commands for AAL2 но присваивать IP-адреса;
appfw Application Firewall information
auto Show Automation Template n FastEthernet – это так называемые линки (ссылки)
backup Backup status на внутренний интерфейс, IP-адреса данным линкам
bgp BGP information
присваивать нельзя.
Address or name of remote host []?192.168.5.1 Устанавливаем пароль samagsecret для доступа к при-
вилегированному режиму (enable):
Задаём имя сохраняемого файла:
Router#conf t
Router(config)#enable secret samagsecret
Source filename []?cisco871-strat-config
42
Создаём пользователя user с паролем samaguser:
C:\>telnet 192.168.5.3
User Access Verification
Username: user
Password:samaguser
Router>enable
Password:samagsecret
Настраиваем правила трансляции для IP-адресов внут- Рассмотрим наиболее часто используемые.
ренней подсети, используя ACL: Стандартный список доступа (присваиваем 10-й номер
списку и разрешаем доступ пятой подсети):
Router(config)#ip nat insi\de source list 10 pool ↵
Internet overload Router(config)#ip access-list 10 permit 192.168.5.0 ↵
0.0.0.255
Определяем, на каких интерфейсах будет входящий/
исходящий NAT: Создаём список доступа с определением протокола,
в частности, TCP (рекомендуется создавать «зеркальные»
Router(config)#int et 0 списки доступа). Разрешаем обмен трафиком между хос-
Router(config-if)#in nat inside
Router(config-if)#int et 1 тами a.b.c.d и w.x.y.z:
Router(config-if)#in nat outside
Router(config)#ip access-list 101 permit tcp ↵
host a.b.c.d host w.x.y.z
Настраиваем шлюз по умолчанию: Router(config)#ip access-list 101 permit tcp ↵
host w.x.y.z host a.b.c.d
Router(config)#ip route 0.0.0.0 0.0.0.0 et 1 ↵
(ip route 0.0.0.0 0.0.0.0 Ethernet 1)
Примечание: нельзя удалять в режиме конфигурирова-
или ния одну из строчек ACL при выполнении команды.
где:
n 192.168.5.2 – адрес почтового сервера;
n a.b.c.d – внешний IP-адрес нашего маршрутизатора.
Разрешаем прохождение TCP-трафика между хоста- Примечание: адрес шлюза должен быть из подсети кли-
ми a.b.c.d и w.x.y.z: ентов, в нашем случае это подсеть 192.168.5.0.
Настраиваем список DNS-серверов для выдачи клиен-
Router(config-ext-nacl)# permit tcp host a.b.c.d ↵ там локальной подсети:
host w.x.y.z
Для удаления одного из правил в списке доступа вы- Router(config-dhcp)# dns-server 192.168.5.2
полняем команду:
где 192.168.5.2 – адрес внутреннего DNS-сервера.
Router(config-ext-nacl)# no permit tcp host a.b.c.d ↵ Устанавливаем срок аренды выданных IP-адресов
host w.x.y.z
на 7 дней:
Список доступа по портам. Разрешаем прохождение
входящего/исходящего трафика на 80 TCP-порт: Router(config-dhcp)#lease 7
Router(config)#access-list 111 permit tcp any any eq 80 Исключаем адреса из пула для предотвращения конф-
ликтов (серверам присваиваем статические IP-адреса):
где eq – определение номера порта.
Также можно вместо цифр вводить имена для распро- Router(config)# ip dhcp excluded-address 192.168.5.3 ↵
192.168.5.4
страненных портов, к примеру: Router(config)#^Z
Router#wr mem
Router(config)#access-list 111 permit tcp any any eq WWW
44
Уязвимости в Microsoft ISA Server Множественные уязвимости в Cisco IOS
и Forefront Threat Management Gateway Программа: Cisco IOS 12.x.
Программа: Microsoft Forefront Threat Management Gateway Опасность: Средняя.
Medium Business Edition; Microsoft ISA Server 2004; Microsoft Описание: 1. Уязвимость существует из-за ошибки в фун-
ISA Server 2006. кционале Cisco Tunneling Control Protocol (cTCP). Удален-
Опасность: Средняя. ный пользователь может с помощью специально сформи-
Описание: 1. Уязвимость существует из-за ошибки при об- рованных TCP-пакетов аварийно завершить работу cTCP-
работке состояния TCP-сессии в механизме МСЭ для веб- сервера. Уязвимости подвержены версии 12.4(9)T и выше
прокси и Web publishing listener. Удаленный пользователь с включенной инкапсуляцией Cisco Tunneling Control Protocol
может с помощью специально сформированного TCP-паке- (cTCP) для EZVPN-сервера.
та заставить Web listener не принимать новые запросы. 2. Уязвимость существует из-за неизвестной ошибки
2. Уязвимость существует из-за недостаточной обра- в функционалах Cisco IOS WebVPN и Cisco IOS SSLVPN
ботки входных данных в аутентификационном компоненте (SSLVPN). Удаленный пользователь может с помощью спе-
HTML-форм (cookieauth.dll) в ISA Server и Forefront TMG. Уда- циально сформированных HTTPS-пакетов аварийно завер-
ленный пользователь может с помощью специально сфор- шить работу устройства.
мированного запроса выполнить произвольный код сцена- 3. Уязвимость существует из-за утечки памяти в функ-
рия в браузере жертвы в контексте безопасности уязвимо- ционалах Cisco IOS WebVPN и Cisco IOS SSLVPN (SSLVPN).
го сайта. Для успешной эксплуатации уязвимости должен Удаленный пользователь может через SSLVPN-сессию пот-
быть включен Web publishing, и аутентификация через HTML- ребить всю доступную память.
формы должна быть включена на Web listener, который ис- 4. Уязвимость существует из-за неизвестной ошибки
пользуется по умолчанию. Уязвимость не распространяет- в Cisco IOS при включенном Mobile IP NAT Traversal или
ся на Microsoft ISA Server 2004. Mobile IPv6. Удаленный пользователь может с помощью
URL производителя: www.microsoft.com. специально сформированных пакетов прекратить обра-
Решение: Установите исправление с сайта производителя. ботку трафика устройством.
5. Уязвимость существует из-за неизвестной ошиб-
Множественные уязвимости ки в Cisco IOS SCP-сервере. Злоумышленник может за-
в IBM WebSphere Application Server писать произвольные файлы на устройство независимо
Программа: IBM WebSphere Application Server версии от настройки CLI. Для успешной эксплуатации уязвимости
до 7.0.0.3. требуются действительные учетные данные и доступ к CLI
Опасность: Средняя. и SCP-сервер должен использовать ролевые списки кон-
Описание: 1. Уязвимость существует из-за недостаточной троля доступа.
обработки URL в /ibm/console/. Удаленный пользователь мо- 6. Уязвимость существует из-за неизвестной ошибки
жет выполнить произвольный код сценария в браузере жер- при обработке TCP-пакетов. Удаленный пользователь мо-
твы в контексте безопасности уязвимого сайта. жет с помощью специально сформированной последова-
2. Уязвимость существует из-за того, что временные ис- тельности TCP-пакетов вызвать перезагрузку устройства.
правления, которые переписывают существующие или созда- Для успешной эксплуатации уязвимости требуется пол-
ют новые файлы, устанавливают для них привилегии 777. ное трехкратное рукопожатие TCP для соответствующе-
3. Уязвимость существует из-за неизвестной ошибки, го TCP-порта.
которая может привести к тому, что процесс JAX-RPC WS- 7. Уязвимость существует из-за неизвестной ошибки
Security некорректно проверит подлинность UsernameToken. в реализации Session Initiation Protocol (SIP). Удаленный
4. Уязвимость существует из-за неизвестной ошибки пользователь может с помощью специально сформирован-
в спецификации цифровых XML-подписей. Подробности ного SIP-сообщения вызвать перезагрузку устройства.
уязвимости не сообщаются. 8. Уязвимость существует из-за ошибки при обработке
URL производителя: www-01.ibm.com/software/webservers/ UDP-пакетов. Удаленный пользователь может с помощью
appserv/was. специально сформированного UDP-пакета заблокировать
Решение: Установите последнюю версию 7.0.0.3 с сайта доступ к интерфейсу устройства.
производителя. 9. Уязвимость существует из-за неизвестной ошибки
при обработке IP-сокетов. Удаленный пользователь мо-
Переполнение буфера в FreeBSD жет запретить устройству принимать новые подключения
Программа: FreeBS 7.0, 7.1. или сессии, потребить большое количество памяти и про-
Опасность: Низкая. цессорного времени или вызвать перезагрузку устройст-
Описание: Уязвимость существует из-за ошибки провер- ва. Для успешной эксплуатации уязвимости требуется пол-
ки границ данных в ktimer. Локальный пользователь мо- ное трехкратное рукопожатие TCP для соответствующе-
жет перезаписать произвольные участки памяти и выпол- го TCP-порта.
нить произвольный код на целевой системе с привилегия- URL производителя: www.cisco.com.
ми учетной записи root. Решение: Установите исправление с сайта производителя.
URL производителя: www.freebsd.org.
Решение: Установите исправление с сайта производителя. Составил Александр Антипов
Игорь Штомпель
Производительность компьютеров стремительно увеличивается, требования программного
обеспечения к системным ресурсам растут. Как быть в ситуации, когда нет возможности
модернизировать аппаратную составляющую компьютерной системы, а оптимизация
программного обеспечения стала насущной необходимостью? Одним из выходов из данного
положения может стать внедрение Alpine.
В
конце 2005 года началась разра- dpkg -r alpine n <P> (Printer) – переход в режим на-
ботка почтового клиента Alpine стройки печати.
на базе проекта Pine. Послед- Итак, программа установлена. Тот, n <N> (Newpassword) – установка
ний был создан в недрах Вашингтон- кто вынужден использовать устарев- и смена пароля.
ского университета и выпущен под шее оборудование или предпочитает n <C> (Config) – большинство общих
несвободной лицензией [1]. Товарный работать в консоли, получил всю необ- настроек Alpine.
знак – Pine на данном этапе стал ме- ходимую функциональность для рабо- n <S> (Signature) – создание и редак-
шать группе Pine Team в ее желании ты с электронной почтой. Теперь про- тирование сигнатур, которые будут
реорганизовать исходный код и рас- грамму необходимо настроить для ра- добавляться в каждое новое созда-
пространять программу. Обязатель- боты с почтовыми серверами. Запуска- ваемое и отправляемое письмо.
ства, связанные с товарным знаком, ем наш новый почтовый клиент: n <A> (AddressBooks) – настройка
и новые устремления разработчиков и редактирование адресных книг.
привели к тому, что был запущен про- alpine n <L> (collectionLists) – здесь вы
ект – Alpine [2]. Свое детище разработ- можете группировать ваши папки
чики выпустили под лицензией Apache При работе с программой мож- для лучшей организации электрон-
License, Version 2.0, сделав возможной, но использовать как клавиши управ- ной почты.
в отличие от Pine, редистрибуцию мо- ления курсора + <Enter>, так и заре- n <R> (Rules) – назначение различ-
дифицированных версий программы. зервированные клавиши, назначение ных правил на базе шести подкате-
Мы рассмотрим установку, на- которых всегда отображается в ниж- горий: для отображения элементов
стройку, отправку и получение почты ней части экрана программы. После MESSAGE INDEX цветом, фильтра-
на примере дистрибутива Debian GNU/ старта Alpine мы увидим следующее ции сообщений, назначения ролей
Linux 4.0. В последнем имеется два (см. рис. 1). (например, разные подписи для раз-
«мощных» почтовых клиента для рабо- Для получения справки необхо- личных адресатов) и другого.
ты в консоли – Mutt и Alpine. По своей димо нажать клавишу <?> (HELP), n <D> (Directory) – настройка Alpine
функциональности оба клиента схожи, для создания и отправки сообщения для использования с сервером ка-
но, как представляется на наш субъек- <C> (COMPOSE MESSAGE), для про- талогов LDAP.
тивный взгляд, Alpine выделяется бо- смотра сообщений в текущей актив- n <K> (Kolor) – установка пользо-
лее удобным интерфейсом. Скачиваем ной папке (папка, которая открывалась вательских цветов для различных
пакет alpine_2.00_i386.deb с этой стра- последней) клавишу <I> (MESSAGE частей почтового клиента.
ницы – http://www.washington.edu/alpine/ INDEX), для просмотра списка папок n <M> (S/MIME) – настройка исполь-
acquire. Alpine, в репозиториях Debian <L> (FOLDER LIST), для просмотра ад- зования S/MIME для проверки под-
Etch 4.0, находится в Backports в виде ресной книги <A> (ADDRESS BOOK), писанных сообщений, расшифров-
пакета версии 1.10, которая перекоче- для выхода из программы нажимаем ки сообщений, а также для подпи-
вала в основной репозиторий Debian <Q> (QUIT). си или шифрования исходящих со-
Lenny 5.0. Переходим в консоль, полу- Для перехода в режим конфигура- общений.
чаем права администратора и выпол- ции программы, как видно на рис. 1, n <Z> (RemoteConfigSetup) – нас-
няем команду: надо нажать клавишу <S>. В данном тройка удаленной конфигурации,
режиме, изображенном на рис. 2, например, для использования
dpkg -i alpine_2.00_i386.deb пользователь получает широкие воз- с сервером, работающим по про-
можности для настройки программы: токолу IMAP.
Впоследствии, если появится не- n <E> (Exit Setup) – мы вернемся n <X> (eXceptions) – настройка ко-
обходимость, программу можно будет в главное меню Alpine, которое рас- манды-переключателя, которая ме-
удалить следующим способом: смотрели выше. няет поведение других команд.
46
Нажимаем <C> и переходим в ре-
жим настройки своей учетной записи.
Заполняем поле Personal Name – ваше
имя, отображаемое в поле «От» перед
почтовым адресом писем, которые вы
отправляете.
В User Domain указываем имя до-
мена почтового сервера, то, что в ва-
шем почтовом адресе следует за име-
нем пользователя. Например, ес-
ли почтовый адрес выглядит так –
имя@gmail.com, то доменом почтово-
го сервера будет – gmail.com.
В поле SMTP server (for sending)
прописываем имя почтового сервера
для отправки электронных писем. На-
пример, для почтового ящика на сер-
вере gmail.com – smtp.gmail.com.
В Inbox Path указываем – pop.gmail. Рисунок 1. Старт программы Alpine
com/user=имя@gmail.com/pop3/ssl.
Для использования imap-сервера
вместо /pop3/ssl необходимо прописать
/imap/ssl и, конечно, pop.gmail.com из-
менить на imap.gmail.com.
Для задания Alpine пути к локаль-
ному архиву входящей почты использу-
ется поле Incoming Archive Folders. Ука-
жем в нем, например: /home/имя/mail,
что означает – почта будет сохранять-
ся в домашнем каталоге пользователя
в директории mail. Последнюю необхо-
димо создать перед началом настрой-
ки почтовой программы. Все настройки
завершены. Нажимаем клавишу <E>
и попадаем в главное меню.
Подключимся к почтовому серверу.
Для этого переходим к списку папок
<L>. Нажимаем <Enter> на Incoming-
Folders, а затем на INBOX, отвечаем
«Да» (Y) на вопрос «Re-open folder to Рисунок 2. Окно конфигурирования Alpine
check for new message?» (открыть вхо-
дящие с проверкой получения новых ма), Cc (адреса, на которые отправить трумент для работы с электронной поч-
сообщений?). Вы увидите список со- копии письма), Attchmnt (приложение), той, процесс настройки и работы с ко-
общений из папки «Входящие» на поч- Subject (тема письма). Заполняем тело торым познавательный и интересный.
товом сервере. сообщения после Message Text. В данной статье мы затронули толь-
Для сохранения письма в локаль- Если требуется прикрепить файл ко «верхушку айсберга». Читателям
ную папку saved-messages необходимо к письму, то перемещаем курсор на лю- будет интересно узнать, что програм-
нажать «S». Чтобы вернуться к преды- бое поле заголовка письма, например, му использует создатель ядра опера-
дущему экрану, надо нажать «<» (со- To, нажимаем «^J» (<Ctrl> + <J>) и про- ционной системы GNU/Linux – Линус
ответственно «>» – вперед). Перехо- писываем путь к файлу. Например, Торвальдс [3]. Приглашаем вас в мир
дим в Mail, где находятся локальные если файл arch.zip хранится в корне Alpine!
папки: sent-mail (отправленные сооб- домашнего каталога пользователя,
щения), saved-messages (сохраненные то прописываем: /home/arch.zip. 1. http://www.washington.edu/pine/overview/
сообщения). Для отправки письма нажимаем legal.html.
Подготовим и отправим письмо. «^X» (<Ctrl> + <X>), вводим имя поль- 2. ht t p: // w w w.was hin gto n.e du /alp ine /
Находясь в главном меню, переходим зователя и пароль, и все – сообщение overview/story.html.
в COMPOSE MESSAGE или нажима- отправлено. 3. h t t p : / / w w w . l i f e h a c k e r . c o m . a u /
ем клавишу <C>. Заполняем поля To Несколько слов в заключение. tips/2008/01/31/lifehacker_australia_
(электронный адрес получателя пись- Alpine – это свободный и гибкий инс- interview.html.
Сергей Яремчук
Сегодня на рынке предлагается большое количество антивирусных пакетов, ориентированных
на применение в организациях разного размера, и, несмотря на некоторое сходство
в архитектуре, все они весьма отличаются функционально, не говоря уже о стоимости. В итоге
выбрать наиболее подходящее не так уже и просто.
У
читывая, что в каталогах одного тановки, настройки и контроля за об- ме, более предпочтительны, так как
поставщика имеется несколько новлениями, придется выполнять вруч- они обеспечивают централизованное
комплексных решений, рассчи- ную. В итоге все старания могут быть управление, упрощенную процедуру
танных на сети разного размера, чтобы сведены на нет, например, если поль- развертывания, контроль за работой
не перебирать все, определимся с па- зователь отключил монитор или базы агентов и выполнением всех предус-
раметрами будущей сети. Пусть это бу- по разным причинам вовремя не обно- мотренных заданий и политик, уста-
дет небольшая сеть на 50 рабочих мест, вились. Хотя сегодня в небольших ор- новку обновлений с единой локаль-
имеющая файловый и почтовый серве- ганизациях еще нередко можно встре- ной базы, экономя интернет-трафик,
ры, выход в Интернет защищает шлюз. тить системного администратора, бе- создание отчетов и так далее.
Использование «обычных» персональ- гающего с флешкой, обновляющего В статье вы не найдете тестов ан-
ных антивирусов для защиты тако- таким образом антивирусные базы. тивирусных движков и информации о
го количества систем крайне неудоб- Специализированные решения, количестве записей в базе. Основное
но, ведь все операции, начиная с ус- построенные по клиент-серверной схе- внимание уделено особенностям реа-
48
лизации антивирусных продуктов 7 по-
пулярных разработчиков, подходящих
для решения нашей задачи, – компо-
нентам, возможностям клиентского
модуля и централизованного управле-
ния. Ориентировочная цена приведена
в таблице 1. Окончательную цену со-
ставить тяжело, так как на её формиро-
вание может повлиять срок лицензии
(на два года – дешевле), количество
одновременно покупаемых продуктов
или лицензий на одно решение, скид-
ки и акции магазинов и так далее. Что-
бы легче было определиться и увидеть
отличия, основные параметры сведе-
ны в таблицу 2.
Сразу отвечу на два вопроса, ко-
торые, скорее всего, возникнут у чи-
тателя. Да, вполне возможно устано-
вить шлюз, файловый и почтовый сер-
вер на *BSD или GNU/Linux, для защи- Консоль управления Kaspersky Administration Kit
ты которого использовать свободный
антивирус ClamAV. Таким образом не-
сколько уменьшить итоговую стои-
мость, хотя и за счет некоторой де-
централизации управления. Такие ре-
шения неоднократно рассматривались
на страницах журнала, поэтому ес-
ли есть соответствующий опыт, мож-
но самостоятельно собрать нужную
систему из «кирпичиков». Также час-
то рекомендуют на компонентах сети
сервер/шлюз/ПК использовать анти-
вирусы разных разработчиков. Неко-
торый смысл в этом есть, так как всег-
да существует вероятность, что во вре-
мя очередной эпидемии одна из ком-
паний среагирует чуть быстрее. Да и
мне неоднократно попадались виру-
сы, в том числе и старые, которые оп-
ределялись далеко не всеми движка-
ми. Но суммарная стоимость будет вы-
ше, а вот говорить о том, что приме-
нение двух антивирусов вдвое увели-
чит защиту, не приходится. Посколь-
ку, точно следуя логике, «одна среа-
гирует быстрее», нужно согласиться
с тем, что непременно другая среаги- Консоль администратора Dr.Web Enterprise Suite
рует медленнее.
организаций и защищающих рабочие и имеет все необходимое для реше-
«Лаборатория станции и смартфоны, файловые, поч- ния такой задачи.
Касперского» товые серверы и шлюзы. Кроме этого Непосредственно на рабочих стан-
«Лаборатория Касперского» для защи- предлагаются и продукты для защиты циях и серверах, подлежащих защите,
ты корпоративной сети любого масш- отдельных узлов сети. Для целостной устанавливается специализирован-
таба и сложности предлагает линейку защиты сети любого масштаба пред- ная версия антивируса. Здесь следу-
продуктов, объединенных общим наз- ложен Kaspersky Total Space Security, ет отметить весьма большой список
ванием Kaspersky Open Space Security. который может состоять из 17 ком- систем и решений: рабочие станции
KOSS состоит из четырех решений, понентов (полный список на http:// (Windows, Linux), мобильные системы
ориентированных на разный уровень www.kaspersky.ru/total_space_security) (Windows Mobile, Symbian), файловые
50
n Dr.Web Enterprise Suite (ES) – за- навливается на все защищаемые ком- n вручную при помощи у тилиты
щита рабочих станций и серверов пьютеры и сам антивирусный сервер. drwinst – подходит для большинст-
под управлением Windows 98-Vista, Агент включает все, что пользователи ва сетей;
с возможностью централизованно- привыкли видеть в продуктах Dr.Web, – n удаленно при помощи ES-консоли –
го управления; антивирусный сканер, файловый мо- в документации сказано, что лучше
n Dr.Web для файловых серверов нитор SpIDer Guard, почтовый фильтр подходит не для массового развер-
Windows/UNIX/Novell NetWare; SpIDer Mail. Именно поэтому во избе- тывания, а при обычной работе, хо-
n Dr.Web д ля интернет- шлюзов жание конфликтов на рабочих станци- тя с его помощью установить аген-
UNIX; ях не должно быть установлено другое та систем на 50 вовсе не проблема-
n Dr.Web для почтовых серверов антивирусное ПО, в том числе другие тично;
UN IX / MS E xchange/ I BM Lotus версии Dr.Web. Кстати, в большинс- n используя возможности Active
Domino. тве рассматриваемых в статье реше- Directory – для этого с сайта сле-
ний уже рабочий антивирус этого про- дует скачать специальный инстал-
Функции последних трех, думаю, изводителя можно просто подключить лятор.
понятны, интерес может вызвать ES. к серверу для централизованного уп-
Это решение также имеет клиент-сер- равления, что довольно неплохо, осо- Обновление агентов и антивирус-
верную архитектуру, позволяя управ- бенно в том случае, если за него уп- ных баз производится централизован-
лять удаленными клиентами при по- лачено. но с антивирусного сервера, но аген-
мощи единого графического интер- Специальный компонент позволя- ты, установленные на мобильных сис-
фейса. ет администратору, подключившись темах и находящиеся вне своей сети,
Состоит ES из антивирусного сер- к ним, удаленно просканировать ком- «умеют» обновляться напрямую с сай-
вера (ES-сервера), консоли админи- пьютеры в «тихом» режиме. В этом тов Dr.Web.
стратора, SQL-сервера и ES-агента. случае пользователь вообще не заме- Сервер в базе данных содержит на-
Назначение всех компонентов, в об- тит работу сканера, а администратор стройки агентов, статистику по скани-
щем, аналогично KOSS, отличия со- может наблюдать за проверкой в ре- рованиям и найденным вирусам и про-
ставляет лишь агент. Здесь в отличие альном времени. Для установки аген- чую информацию. В одной сети может
от «Касперского» агент является пол- тов предложено использовать один быть несколько ES-серверов, связан-
ноценным антивирусом, который уста- из трех способов: ных с главным сервером.
52
ские серверы автоматически, а какая в котором реализована антивирусная n McAfee WebShield SMTP – SMTP-
только по запросу. ERAS функциони- защита для всех компонентов – рабо- шлюз, осуществляющий скани-
рует как служба, поэтому для его ус- чих станций, интернет-шлюза, почто- рование входящего и исходящего
тановки понадобится компьютер с ОС вого и файлового сервера. В табли- почтового трафика, с интегриро-
Windows на ядре NT (NT4, 2000, XP, це показано, что кроме антивирусов ванным контент-фильтром.
2003). Для хранения данных ERAS ис- сканирующий движок обнаруживает
пользует MDAC (Microsoft Data Access и spyware, но только Partial (частично). Централизованное управление за-
Components), кроме того, некоторые В состав пакета включены: щитой осуществляется при помощи
элементы сохраняются в отдельных n McAfee VirusScan Enterprise – ан- ePolicy Orchestrator (ePO). Его задача,
файлах в каталоге Storage. Кстати, ли- тивирус для рабочих станций и сер- в общем, аналогична другим подоб-
цензионное соглашение не наклады- веров Windows; ным решениям: управление настрой-
вает на количество ERAS никаких огра- n McAfee NetShield for Netware – ками антивирусов, установка обнов-
ничений, лицензия NOD32 SS BE тре- антивирус для серверов Novell лений через центральное хранилище
буются только для клиентских компью- Netware; Software Repository, получение при по-
теров или автономных, файловых сер- n McAfee VirusScan Command мощи AV Informant отчетов о работе за-
веров под управлением Windows OS, Line – антивирус командной строки щиты и отдельных компонентов. Адми-
Novell и Linux. для систем DOS, Windows и различ- нистратор может задавать единую по-
ных вариантов UNIX-систем, вклю- литику безопасности, включая нали-
McAfee чая Linux; чие патчей безопасности от Microsoft
C нужными продуктами McAfee не так n McAfee GroupShield for Microsoft для всех систем или отдельных групп.
легко сразу определиться, и в этом Exchange – антивирус для серве- EPO построен по клиент-сервер-
очень помогает страница McAfee SMB ров Microsoft Exchange 2000/2003/ ной схеме, напоминающей Kaspersky
Product Comparison [2]. Здесь в двух 2007; Administration Kit, то есть в клиентские
вкладках Protection Type и Protection n McAfee GroupShield for Lotus системы кроме непосредственно про-
Area довольно просто выбирать про- Domino – антивирус для Lotus дукта, осуществляющего защиту, ус-
дукт, удовлетворяющий нужным ус- Domino от версии 6.0.3, работаю- танавливается небольшой по размеру
ловиям. Для нашего примера наибо- щего под управлением Windows агент. Агент, получая команды от сер-
лее подходит пакет McAfee Active Virus 2000/2003 или Solaris от 2.6, IBM вера и отсылая отчеты, осуществля-
Defense. Это комплексное решение, AIX 4.3.3/5.1/5.3; ет непосредственное управление на-
54
стройками клиентской программой.
Мобильные системы производят об- Safe'n'Sec Enterprise программы, для которых еще нет сигнату-
новления сигнатур при подключении Еще один продукт, о котором бы хотелось ры в антивирусных базах. Еще один плюс
к локальной сети или самостоятельно вкратце рассказать, подходит под вы- Safe'n'Sec – не требуется постоянное об-
через Интернет. Для установки ePO двинутые требования лишь частично, но, новление баз. Кроме обычной, существу-
на сервер понадобятся компьютер учитывая его возможности и стоимость, ют версии клиентской программы, содер-
под управлением Windows 2000 SP4/ умолчать не имею права. Речь идет о сис- жащие антивирусный модуль Dr.Web и мо-
2003 SP1/2/R2, консоль Windows 2000/ теме предотвращения вторжений (HIPS, дуль защиты от программ-шпионов. В этом
XP/2003/Vista. В качестве SQL-серве- Host Intrusion Prevention System) Safe'n'Sec случае обеспечивается и лечение заражен-
ра для небольших организаций реко- Enterprise, разрабатываемой российс- ных файлов.
мендован Microsoft SQL Server 2005 кой компанией S.N.Safe&Software (http:// Централизованное управление обеспе-
Express Edition, поддерживается SQL www.safensoft.ru). В отличие от других про- чивается при помощи двух программ:
Server 2000/2005. Сегодня доступны грамм обзора она не является антивиру- Safe'n'Sec Admin Explorer – консоль уп-
две версии ePO: в 3.6.1 консоль реа- сом как таковым. В клиентских модулях равления, используемая для удаленно-
лизована в виде MMC, в 4.0.0 – в виде Safe'n'Sec Timing Client используется собс- го администрирования системы безо-
веб-сервиса. Во втором варианте для твенная технология проактивной защиты пасности;
взаимодействия с сервером использу- V.I.P.O. (Valid Inside Permitted Operations), Service Center – сервер, при помощи ко-
ется протокол HTTP/HTTPS, что позво- основанной на разграничении системных торого непосредственно производится
ляет работать через Интернет с любой привилегий при работе компьютера. управление клиентскими программа-
платформы. После установки клиент сканирует сис- ми, их централизованное обновление
В политиках ePO также задают- тему, создает профиль приложений и фор- и создание отчетов и оповещение ад-
ся установки для программ-антишпи- мирует список доверенных программ (кон- министратора о возникновении опре-
онов и персонального брандмауэра тролируется хеш SHA-256). При появлении деленных событий.
McAfee Desktop Firewall. Кроме продук- активности, затрагивающей целостность
тов McAfee, ePO поддерживают и неко- системных файлов или реестра, а также В качестве СУБД используются MSDE
торые версии Symantec Norton Antivirus нового процесса, соответствующая опе- 2000 SP3, MS SQL 2005 Express Edition
для серверов и рабочих станций. рация блокируется, а пользователю вы- или MS SQL Server от 2000 SP, поддержи-
дается запрос на ее подтверждение. Та- ваемые ОС Microsoft Windows 2000SP3/
Symantec ким образом, технология, используемая в XP/2003/Vista. Клиентская лицензия на 50
Продукция Symantec довольно хоро- Safe'n'Sec, позволяет блокировать любые рабочих мест, включая Admin Explorer
шо известна ИТ-специалистам, те, кто известные и неизвестные вредоносные и Service Center, составляет 27600 руб.
работал в Windows 9х, хорошо помнят
антивирус Norton AntiVirus, обновлен- вать доступ пользователей и работа- Manager устанавливаются на ОС
ная версия которого выпускается этой ющих программ к процессам, файлам Windows от 2000, в качестве SQL-ба-
корпорацией до сих пор. Сегодня для и каталогам, контролировать элемен- зы данных может быть использова-
небольших компаний предложен па- ты ОС и реестра, модулей и элемен- на как встроенная, так и MS SQL 2000
кет Symantec Endpoint Protection Small тов операционной системы и приложе- SP3/2005. Кроме этого, для установ-
Business Edition 11.0, фактически состо- ний. За дополнительную плату досту- ки потребуется наличие IIS. Встроен-
ящий из двух решений: пакета Symantec пен модуль Symantec Network Access ная БД на основе Sybase рекоменду-
Endpoint Protection 11.0 (SEP) и антиви- Control, обеспечивающий проверку ется при подключении до 100 клиен-
руса Symantec Mail Security for Microsoft систем и определяющий на основе по- тов и автоматически устанавливается
Exchange (Symantec Mail Security for лученных данных права доступа к се- при выборе режима инсталляции сер-
SMTP/Domino/Enterprise Edition). ти и ресурсам. вера управления «Простой». При соб-
Клиент SEP является логическим Список под держиваемых к ли- людении всех требований установка
продолжением Norton AntiVirus и обес- ентских машин и серверов довольно сервера достаточно проста, в ее ходе
печивает защиту от вирусов и шпион- большой: ОС Windows 2000/XP/2003/ можно указать другой порт для веб-
ских программ, фильтрацию открыто- Vista/2008 (разных редакций), Linux сайта доступа, с которого скачивает-
го и шифрованного сетевого трафика, (Red Hat Enterprise Linux от 3.x, SuSE ся клиент управления. По окончании
система защиты от атак Generic Exploit Linux Enterprise (server/desktop) от 9.x, установки запускается мастер пере-
Blocking позволяет блокировать угро- Novell Open Enterprise Server (OES/ носа и развертывания, который по-
зы эксплуатирующих уязвимости, инс- OES2), Ubuntu от 7.x и Debian 4.x), а так- может развернуть антивирус на кли-
трумент VxMS (Veritas Mapping Service) же VMWare ESX 2.5, 3.x. Что немало- ентских системах и перенести группы
позволяет обнаруживать руткиты. Кро- важно, все ОС могут быть как 32, так и и политики с родительских серверов
ме сигнатурного анализа, модуль про- 64-битных версий. Особо отмечено, Symantec AntiVirus.
активной защиты Proactive ThreatScan что Itanium не поддерживается (как и В критериях поиска клиентов мож-
обнаруживает заразу на основе анали- всеми остальными решениями). но указать более 30 параметров, вклю-
за поведения приложений. Админист- Управление осуществляется с еди- чая имя пользователя, компьютера,
ратор имеет возможность контроли- ной консоли. Сервер и консоль управ- группу, IP-адрес и даже такие, как час-
ровать и при необходимости блокиро- ления Symantec Endpoint Protection тота процессора, версия BIOS и так да-
лее. Также хочется отметить наличие Состоит SBS из 4 компонентов: n F-Secure Policy Manager – систе-
удобного и понятного инструмента со- n F - S e c u r e A n t i - V i r u s C l i e n t
ма централизованного управле-
хранения и восстановления базы сис- Security – интегрированное ре- ния, контроля, обновления и на-
темы защиты. шение для Windows 98/ME/NT4.0/ блюдения за работой систем бе-
2000/XP, включающее антивирус, зопасности.
F-Secure антишпион, брандмауэр, сканер
Решения F-Secure для малого и сред- руткит BlackLight и систему конт- Anti-Virus Client Security поддер-
него бизнеса [3] включают в себя все роля поведения HIPS DeepGuard. живает также Cisco NAC (Network
необходимые программные продукты, Обеспечивается проверка POP3/ Admission Control), применение которой
позволяющие защитить от вирусов ра- SMTP/IMAP4/HTTP-трафика; позволяет гарантировать, что подклю-
бочие станции, мобильные устройства, n F-Secure Anti-Virus for Windows чающаяся к сети система будет удов-
файловые и почтовые серверы, шлю- Servers – защита файловых сер- летворять требованиям всех политик
зы. Для удобства выбора представле- веров Windows NT4.0/2000/2003 компании.
ны готовые комплекты. Для наших ус- (32/62-бит) от вирусов, шпионско- Policy Manager построен по клиент-
ловий наиболее подходят два реше- го ПО и потенциально опасных про- серверной схеме, в которой управле-
ния: F-Secure Anti-Virus Small Business грамм; ние настройками производится уда-
Suite (SBS) и F-Secure Protection Service n F-Secure Anti-Virus for Microsoft ленно, при помощи терминала, но есть
for Business (PSB), каждое по-своему Exchange – контроль исходящих свои особенности. Так, графические
интересно. Лицензия на SBS ориенти- и входящий сообщений Microsoft отчеты создаются в модуле, имеющем
рована на 5-99 систем. Exchange 2000/2003/2007; название F-Secure Policy Manager Web
56
Таблица 2. Возможности антивирусных систем
Производитель «Лаборатория «Доктор Веб» ESET McAfee Symantec F-Secure Anti-Virus F-Secure Protection
Касперского» Small Business Suite Service for Business
Управление ОС Windows Кроссплатформен- Windows 98/ Windows (версия Windows Windows 2000/ Поддерживают-
ное. Любая систе- Me/2000/XP 3.x) или WEB (4.x XP/2003 ся Internet Explorer
ма, поддержива- версия) 6.x или свежее
ющая JRE не ни- с разрешенными
же 5.0 JavaScript и cookies
Firefox 2.x, или све-
жее с разрешен-
ными JavaScript
и cookies, Profile
Editor требует Java
RE 1.6
Консоль + + + – + – +
локализация
Сервер Microsoft Windows Windows NT 4.0/ Windows на ядре Windows 2000/2003 Windows 2000/ Windows 2000/ Нет
управления ОС NT/2000/2003/2008/ 2000/XP/2003/2008, NT/2000/XP/2003 2003/2008 2003/XP(для не-
XP/Vista Linux, FreeBSD большого количес-
(до 7.0), Solaris тва соединений),
(x86 и Sparc) Linux
для 32- и 64-бит-
ных систем
СУБД MySQL, Microsoft Встроенная, под- Внутренняя MS SQL Server Встроенная, Встроенная Нет
SQL Server 2000/ ключение через 2000/2005/2005 MS SQL 2000SP3/
2005/2008, MSDE, ODBC, PostgreSQL Express Edition 2005
SQL Server 2005
Express Edition
Клиент ОС Windows, Linux, мо- Windows 95/98/Me/ Windows 2000/XP/ Windows 98/ME, ОС Windows Windows 98/ME/ Microsoft Windows
бильные системы NT/2000/XP/Vista Vista NT 4.0 SP6, 2000, 2000/XP/2003/ NT4.0/2000/XP 2000/XP/Vista
(Windows Mobile, (32-бит) 2003, XP, Vista, Vista/2008 разных (32-bit). Отдельная (32-бит)
Symbian) 2008 (в том чис- редакций и Linux возможность под-
ле Core Server); (Red Hat Enterprise ключения Linux
Windows Terminal Linux от 3.x, SuSE
Server от NT; Linux Enterprise
Microsoft Cluster (server/desktop)
Server (MSCS); от 9.x, Novell Open
XP Tablet PC, Citrix Enterprise Server
MetaFrame 1.8 (OES/OES2), Ubuntu
& XP; EMC Celerra от 7.x и Debian 4.x),
File Server а также VMWare
Novell Netware ESX 2.5, 3.x.
UNIX-системы в ко-
мандной строке
Клиент- Антивирус, проак- Антивирусный ска- Антивирус, бранд- Антивирус, частич- Антивирус, бранд- Антивирус, бранд- Нет
возможности тивная защита, за- нер, файловый мо- мауэр, антиспам, но Adware мауэр, проактив- мауэр антишпион,
щита файловой нитор, почтовый блокировка мно- ный модуль, защи- сканер руткит, кон-
системы, брандма- фильтр, «тихий» гих типов сете- та почты, контроль троль поведения
уэр с IDS/IPS, про- режим сканиро- вых атак, контроль процессов и при- (HIPS), Cisco NAC
верка POP3, IMAP, вания файлов ложений, Symantec
MAPI, NNTP, HTTP. Network Access
Антифишинг и ан- Control
тиспам
Почтовый сервер Sendmail, Qmail, UNIX/MS Exchange/ UNIX/MS Exchange/ Microsoft Exchange SMTP/Domino, Microsoft Exchange Нет
Postfix, Exim, IBM Lotus Domino IBM Lotus Domino 2000/2003/2007; Linux, Microsoft 2000/2003/2007
Exchange 2003/ Lotus Domino Exchange 2007
2007, Lotus Notes/ от 6.0.2 для
Domino Windows 2000/2003
Файловый Windows, Linux, Windows/UNIX/ Windows, Novell Windows NT/2000/ То же, что и клиент Windows NT4.0/ Windows 2000/2003
сервер Samba, NetWare Novell NetWare Netware/ Linux/ 2003/2008 2000/2003 Server (32-бит)
*BSD/Solaris (32/62-бит)
Интернет-шлюз Microsoft ISA UNIX Linux/*BSD/Solaris SMTP-трафик, ус- Весь трафик SMTP/HTTP/FTP Нет
Server, Check Point тановка на Windows
FireWall NT/2000/2003
Reporting. Благодаря наличию готовых антивирусных баз в удаленные офисы В том случае, если заявленной
шаблонов администратор может быс- используется специальный компонент функциональности не хватает, мож-
тро найти системы, в которых не уста- F-Secure Policy Manager Proxy. но использовать и другие продукты
новлены последние обновления, про- Policy Manager поддерживает ус- F-Secure, которые обеспечивают защи-
верить настройки безопасности и так тановку на Windows Server 2000/2003 ту рабочих станций и файловых серве-
далее. Заявлено, что один сервер мо- (XP, только консоль), есть и Linux-вер- ров на Linux, серверов Citrix, мобиль-
жет управлять установкой ПО на 15 ты- сия, ориентированная на установку ных устройств и так далее. Все они
сяч узлов. При необходимости в одной в: Red Hat Enterprise Linux 3/4, SuSE поддерживают управление при помо-
сети можно использовать несколько Linux 9/10, SuSe Linux Enterprise Server щи F-Secure Policy Manager. Хотя ко-
серверов. Для отправки обновлений 9 и Debian Sarge 3.1. нечная цена такого решения, вероят-
58
Тотальная защита локальных сетей
В этот раз на тестирование в редакцию попало устройство Dr.Web Office Shield. Устройство
от именитой фирмы предназначено для обеспечения антивирусной защиты локальных сетей.
Не секрет, что подобных устройств существует достаточно много – многие антивирусные
компании имеют их в своих продуктовых линейках. Но в отличие от своих конкурентов
Dr.Web Оffice Shield в дополнение к функциям защиты почтового и интернет-трафика может
защищать еще рабочие станции и серверы, так как в состав программного обеспечения
устройства входит хорошо себя зарекомендовавший продукт от компании «Доктор Веб» –
Dr.Web Enterprise Suite. Явными преимуществами можно назвать то, что аппарат обладает
весьма скромными размерами, нетребователен в обслуживании и рассчитан на обслуживание
неквалифицированным персоналом – в сопровождающих поставку инструкциях все этапы
настройки расписаны достаточно подробно и богато проиллюстрированы. На этом преамбулу
считаем законченной и приступаем непосредственно к тестированию.
С
разу после распаковки уст- танавливаем работу данного сервиса послать тот же псевдовирус в качестве
ройство согласно инструкции на странице «Сервер DHCP», на кото- вложения. Работа же сервиса фильтра-
было подк лючено в локаль- рую можно перейти из расположенно- ции спама становится заметной прак-
ную сеть через разъем LAN1, которо- го справа меню. Привычная для многих тически сразу – весь приходящий спам
му по умолчанию соответствует ад- администраторов функция прямого ре- по умолчанию помечается префиксом.
рес 192.168.1.100. Настройка устройст- дактирования списка сервисов в уст- Переходим в соответствии с ин-
ва полностью проходит через веб-ин- ройстве отсутствует, так как необходи- струкцией к проверке Dr.Web Enterprise
терфейс, поэтому в качестве первого мость их функционирования во многом Suite. Установку агентов защиты мож-
шага открываем в браузере страницу зависит от функционала, прописанно- но проводить как вручную, так и авто-
https://192.168.1.100:1000 и загружаем го в лицензионных ключах, и их простое матически – через консоль. Как обыч-
полученные лицензионные ключи. Воп- включение может привести к различно- но, проводим установку вручную, путем
реки всем ожиданиям выполнение этой, го рода проблемам. Поскольку диапа- запуска «drwinst 192.168.10.7». Правда,
казалось бы, достаточно простой зада- зон нашей локальной сети отличается вопреки инструкции не копируем не-
чи вызвало ряд затруднений, так как от используемого в устройстве по умол- обходимые файлы на каждую рабочую
браузер от Microsoft (IE7) отказался их чанию, то выбираем «Сетевые интер- станцию, а просто монтируем сетевой
загружать, и загрузку пришлось выпол- фейсы» и меняем адрес LAN на рабо- ресурс. Установка успешно прошла на
нять с помощью Firefox. Как ни стран- чий – в данном случае 192.168.10.7. На- MS Windows XP Home, MS Windows XP
но, в дальнейшем при выполнении на- жимаем «Применить» и дожидаемся Prof и MS Windows Vista Home. Все ус-
строек ни в IE7, ни в Firefox проблем за- обновления страницы веб-интерфейса. тановленные клиенты обновились,
мечено не было. Здесь же необходимо В Dr.Web Оffice Shield, также по умол- станции были перезагружены, и защи-
отметить, что для устройства важен по- чанию, реализована защита беспро- та локальных компьютеров заработа-
рядок загрузки ключей – вначале необ- водных сетей и VPN. Поскольку ни то ла в штатном режиме. Устанавлива-
ходимо загрузить enterprise.key, затем ни другое нам не нужно, то отключаем ем консоль Enterprise Suite, с которой
agent и только потом drweb. Как пояс- их соответственно на страницах «Сете- в дальнейшем будем проводить на-
нили разработчики, это связано с осо- вые интерфейсы» и «Настройки VPN». стройку параметров работы антивирус-
бенностями реализации функционала Так как настройки DNS и WAN в дефол- ной защиты сети. Также, вопреки инс-
в вошедших в состав устройства про- тном состоянии нас устраивают, то под- трукции, опять ничего копировать не бу-
дуктов компании. После загрузки клю- ключаем кабель WAN к LAN3. Устройс- дем, а просто подключаем сетевой ре-
чей в веб-интерфейсе становятся до- тво получает адрес по DHCP, исходя- сурс \\192.168.10.7\\public как диск и за-
ступными страницы настроек. щий шлюз и внешние DNS. пускаем drweb-*-consolewindows.exe
Первым делом меняем пароль, уста- Проверяем фильтрацию веб-трафи- прямо оттуда. После установки пере-
навливаем, если это необходимо, пра- ка. Меняем настройки рабочей стан- таскиваем иконку консоли на рабочий
вильное системное время и выбира- ции с DHCP на ручные, указываем ус- стол и запускаем консоль, как указано
ем удобный для нас язык локализации. тройство в качестве исходящего шлю- в инструкции.
По умолчанию устройство способно ра- за и пытаемся загрузить тестовый ин- Итак, испытания показали, что ус-
ботать в качестве основы локальной се- фицированный файл со страницы http:// тройство удовлетворительно работает
ти – на нем запущены серверы DHCP www.eicar.org/anti_virus_test_file.htm. и может быть рекомендовано для ис-
и DNS. Поскольку в нашей сети сервер Результатом данной попытки являет- пользования при условии точного соб-
DHCP уже есть, то переходим на стра- ся уведомление о блокировке – что и людения приложенных инструкций.
ницу «Настройки DHCP» и снимаем требовалось получить. Для тестирова-
соответствующую галочку. Просто ос- ния сервиса фильтрации почты можно Вячеслав Медведев
Андрей Луконькин
Редко какая организация может работать в типовой программе. Рано или поздно понадобятся
изменения или обновления. И вот когда сначала вносятся изменения, а потом возникает
потребность в обновлении, тогда и возникает вопрос – а как же обновить базу, если
в конфигурацию уже были внесены свои корректировки?
П
режде всего нужно определить- ции ничего подобного не нужно, то со- Как говорится в современной поговор-
ся с целью обновления, то есть ответственно и необходимость прове- ке: «Бэкап лишним не бывает. Прове-
ответить на вопрос: «А зачем дения работ по обновлению ставится рено – это каждый раз так!».
мы хотим это сделать?». Как правило, под вопрос. В этом случае, возможно, Следующим важным шагом бу-
к новым релизам прилагается описа- стоит дождаться выхода последующих дет определение, насколько база от-
ние внесенных изменений и добав- релизов для экономии времени и де- личается от типовой (а возможно, она
ленного функционала. Например, ес- нег, а также для снижения риска появ- и полностью типовая!). Для этого нуж-
ли фирма «1С» выпустила новую вер- ления ошибок. но сравнить текущую рабочую конфи-
сию программы, в которой только по- Если всё же пришли к выводу о не- гурацию с типовой конфигурацией той
явилась возможность ведения уче- обходимости проведения обновления же версии (релиза).
та по добровольным взносам в ПФР конфигурации, то в первую очередь де- n Узнать номер релиза рабочей ба-
и ничего более, а в вашей организа- лается резервная копия базы данных. зы (пусть это будет 1.2.20.2).
60
n Установить типовую конфигурацию
такой же версии и сохранить кон- Рисунок 1. Для «тонкого» обновления одновременно используется 4 окна
фигурацию в файл (меню «Конфи-
гурация → Сохранить конфигура-
цию в файл»), назовем его «типо-
вая 1_2_20_2.cf».
n В конфигураторе рабочей базы
провести сравнение (меню «Срав-
нить, объединить с конфигураци-
ей из файла») с сохраненным нами
файлом «типовая 1_2_20_2.cf».
n Если получили сообщение «Конфи-
гурации идентичны», значит, нам
повезло, используется полностью
типовая база и обновить ее мож-
но через меню «Конфигурация →
Поддержка → Обновить конфигу-
рацию». Если же появилось окно
сравнения с указанием отличаю-
щихся объектов, то нужно присту-
пать к следующему этапу работы. Рисунок 2. Окно сравнения модулей. Отображаются только отличающиеся части модуля
Итак, мы выяснили, что в базу вно- объектов («Список»), можно смело за- голову в попытках вспомнить «меняли
сились изменения, и обычное обновле- пускать объединение в 1-м окне. Пос- мы тут что-то или нет».
ние может испортить наши доработки. ле проверки появится окно сравнения Во-вторых, если соблюдать некото-
Чтобы сохранить их, выясним, какие и объединения, в котором нужно снять рые нехитрые правила, то количество
именно изменения были, с точностью галки с тех объектов, которые входят измененных типовых объектов можно
до объекта. После этого проведем ак- в «Список». свести к минимуму.
куратное, «тонкое» обновление. Затем начинается самое интерес- n По возможности не изменять стан-
Обычно я использую режим «4 кон- ное – аккуратно вручную обновляем дартные процедуры. Создайте об-
фигуратора» (см. рис. 1). Что же это измененные объекты. То есть в 1-м кон- щий модуль, в котором будут раз-
такое? фигураторе вносим изменения, кото- мещаться созданные или изменен-
n 1-е окно конфигуратора: наша ра- рые видим в окне сравнения 3-го кон- ные вами процедуры и функции. Та-
бочая база (номер релиза 1.2.20), фигуратора. Чем 8-я версия платфор- ким образом, все изменения све-
которую необходимо обновить. мы выгодно отличается от 7.7, так это дутся только к одной строке вызо-
Здесь мы будем частично объеди- тем, что есть возможность видеть раз- ва нужной процедуры.
нять с типовым релизом, частич- личия в модулях с разбивкой по про- n Если нужно скорректировать форму
но вносить что-то руками в модули цедурам. То есть выводится не один документа, справочника или обра-
и править формы. огромный текст (например, глобаль- ботки, роль или интерфейс, то луч-
n 2-е окно конфигуратора: в нем ный модуль в 7.7), в котором найти од- ше создать копию и её уже изме-
открыто окно сравнения нашей ра- ну-единственную измененную строч- нять под свои нужды.
бочей базы с типовым релизом той ку достаточно проблематично, а толь- n Печатные формы и отчеты могут
же версии (1.2.20). Таким образом, ко те процедуры, в которых были кор- храниться во внешних файлах.
мы выявим, какие объекты нельзя ректировки (см. рис. 2). n Оставляйте комментарии в текс-
обновлять автоматически, т.к. они После окончания процесса обнов- тах модулей. Этим вы избавитесь
отличаются от типовых. Назовем ления лучше будет провести хотя бы от вопросов «кто, когда и зачем это
это «Список». небольшое тестирование функциона- менял?».
n 3-е окно конфигуратора: сравне- ла программы, хотя бы тех объектов,
ние типового релиза 1.2.20 и ново- которые изменялись ранее самостоя- Конечно, важно понимать смысл
го типового 1.2.21. Здесь наглядно тельно и обновлялись вручную. того или иного действия, и лучше со-
будут видны все изменения, кото- ставить небольшой план действий пе-
рые предлагает фирма «1С». Как можно облегчить ред началом работы. Например, доба-
n 4-е окно конфигуратора: типовая себе жизнь, если часто вить сначала базовые объекты (конс-
конфигурация нового релиза 1.2.21, вносятся изменения в базу? танты, перечисления) и только потом
чтобы отсюда можно было копиро- Для этого, во-первых, в номере релиза справочники, документы и регистры.
вать объекты, процедуры или от- измененной базы ставится отличитель- Но помните, что всегда есть архивная
дельные куски кода программы. ный знак, например «*». Это будет оз- копия (она просто обязана быть!), ко-
начать, что конфигурация отличается торая не оставит организацию без ин-
Имея точный список измененных от типовой, и тогда не придется ломать формационной базы.
О, мудрый руководитель!
64
мое большое удовольствие от работы них. В то же время он требует по мак- Мудрый в горы
состоит в том, что есть какое-то дело, симуму с подчиненных, чтобы они его не пойдет?
я его делаю, и оно получается. Это од- не «подставили» перед высшим на-
на часть. Вторая часть связана с про- чальством. А вообще есть такая пос-
фессиональными навыками. Как я го- ловица, что лучшие руководители –
ворил, опыт работы в большой компа- это те, которых мы не замечаем. Мо-
нии дает очень много. В той компании гу добавить, что меня коробило, ког-
нас довольно много учили. Моя работа да мои начальники не признавались
связана в основном с общением с пар- в своих ошибках. Когда человек что- Проследить маршрут человеческой
тнерами, с теми, кто продает наши ре- то делает неправильно и пытается вину судьбы – не так сложно. В общем-то
шения. В предыдущей компании нас свалить на своих подчиненных, это не- можно и единичные поступки челове-
учили, как правильно общаться с та- красиво… ка объяснить. А вот найти причины, до-
кими людьми и как их заинтересовы- Руководящий стиль самого Акимо- копаться, почему человек именно та-
вать. Основная идея – channal-ме- ва во многом определен спецификой кой, какой он есть, сложно… Да и нуж-
неджер – человек, который общается частной компании. Теплая, семейная но ли это? Максим Акимов в свое вре-
с партнерами, должен быть не только обстановка, в которой просто не при- мя увлекался психологией, посещал
продавцом своих решений, но и свое- живаются формализм и бюрократия, различные тренинги, даже круг дру-
го рода советником по бизнесу. Он принятые в крупных фирмах с их не- зей составился именно из психологов –
должен хорошо разбираться в биз- избежным дресс-кодом и проверка- людей, которые близки по духу, по ми-
несе, которым занимается компа- ми. Пять минут опоздания – серьезная ровосприятию. Но объясняет ли это ха-
ния. Топ-менеджер компании-партне- провинность… Нет, в российском пред- рактер Максима, его личность? Навер-
ра предпочитает общаться с channal- ставительстве Керио все весьма либе- ное, только отчасти…
менеджером на одном языке. Если я рально, нет драконовских норм и зако- Хотя мне кажется, что интерес
приду и стану просто рассказывать, нов. Однако в такой домашней обста- к проблеме информационной безопас-
какие у нас хорошие продукты, пар- новке важно не расслабиться до рас- ности проистекает именно из любви
тнер не будет слушать. Если же я на- хлябанности и ничегонеделания. Если к психологии. Сам Максим признает:
чну беседовать с ним о его бизнесе, ты с утра не в офисе, это не страшно, – По многочисленным оценкам, сей-
о том, каковы его приоритеты в раз- главное – чтобы работа была сдела- час основные угрозы для предприятий
витии компании и как мы можем ему на вовремя, качественно и чтобы на- в области информации проистекают
помочь, то это совсем другой подход. чальник мог с тобой в любой момент от внутренних сотрудников, а не от вся-
Отношение к нам будет совсем другое. связаться. ких там хакеров, вирусов и так далее.
Нас этому учили на курсах и на прак- И, кстати, такие же требования Работники компаний сами заносят ви-
тике. И я стараюсь выступать, при- предъявляет к самому Максиму Аки- русы. Поэтому есть два кардинально
ходя к партнерам, не только как пос- мову высшее руководство: противоположных пути, как вести се-
тавщик наших решений, но и как экс- – Формальных требований нет. Сво- бя в такой ситуации. Либо максималь-
перт в нашей отрасли. Я им даю новые бода довольно большая. Позиция ме- но контролировать своих сотрудников,
знания, информацию о том, что де- неджмента такова: если человек от- установить слежку, прочитывать элект-
лают наши партнеры в других стра- ветственен за какой-то участок рабо- ронную почту. Либо, наоборот, де-
нах. После маржи, которую они име- ты, что он там делает – это его дело, монстрировать полное доверие к лю-
ют на наших продуктах, это наиболее нужно только ставить в известность дям, создавать условия, чтобы им бы-
полезная часть нашего сотрудничест- высшее начальство. … Согласитесь – ло невыгодно вести себя неправильно
ва – советы, взгляд со стороны на их разумно. или заниматься диверсиями... Очень
бизнес. Я могу оценить, что они дела- Кстати, а по поводу дресс-кода много дебатов сейчас идет.
ют правильно, а что нет. И этот под- Максим не может забыть одну забав- – А на ваш взгляд, как правильно?
ход я стараюсь сейчас внедрить в на- ную историю: – Я считаю, что должна быть какая-
шей компании. – Когда я пришел в первый раз то золотая середина. Доверяй, но про-
Став руководителем, Максим по- на собеседование в эту компанию, веряй.
дошел к новой роли взвешенно и ра- разговаривал с нашим старшим ви- Да, с точки зрения сотрудников,
зумно. Он старается взять самое луч- це-президентом, я был в костюме, он – слежка – это ужасно, но руководите-
шее из увиденного – столько началь- в футболке. Уже после собеседования ли считают, что это полезно, благода-
ников прошло перед глазами, и у каж- он рассказал мне, что агентство, кото- ря таким мерам они пресекают случаи
дого было чему поучиться. Даже не- рое организовывало собеседование, кражи, утечки информации.
кий портрет «идеального» руководи- спросило его, каков дресс-код для че- Разумный подход. Похоже, в слу-
теля «нарисовался»: ловека, который придет устраиваться чае Максима Акимова он распростра-
– Это буфер между подчиненны- на работу, и он ответил: «Главное, что- няется на всю его жизнь. Если руково-
ми и высшим менеджментом. То есть бы человек был одет». Культура компа- дитель российского представительс-
он как может защищает своих под- нии такова, что люди не «напрягают» тва компании Kerio отдыхает – то в го-
чиненных и старается выбить макси- себя ненужными вещами. И в общении рах: сноуборд зимой, пешие походы
мально благоприятные условия для с партнерами это помогает. летом. Не только потому, что это ин-
66
JavaFX – Reach Internet Application от Sun
Прощай, унылый Swing?
Кирилл Сухов
5 декабря 2008 года Компания Sun Microsystems представила финальную версию JavaFX –
свою платформу для создания Rich Internet Aplication, ставшую достойным ответом
конкурентам.
Е
сли вспомнить историю созда- плеты продемонстрированы Гослингом вилась технология Flash, использова-
ния интернет-приложений, при- при презентации браузера WebRunner ние клиентских возможностей браузе-
дется признать за компани- в далёком 1994 году. С тех пор про- ра (Javascript, DOM) вылилось в тер-
ей Sun первенство в создании Rich шло много всяких событий, интернет- мин WEB-2, а апплеты как технология,
Internet Application. Первые Java-ап- приложения росли и изменялись, поя- в общем, не сильно изменились. За-
68
import javafx.scene.*;
import javafx.scene.text.*; Stage {
import javafx.scene.paint.*; title: "JavaFX-калькулятор"
import javafx.scene.effect.*; width: 300
height: 500
Stage {
title: "Hello FX" scene: Scene {
width: 250 content:[ Text {
height: 80 x: 20 y: 60
scene: Scene { font: Font { size: 36}
content: Text { fill: Color.GREEN
x: 10 y: 30 effect: DropShadow{ offsetX: 3 offsetY: 6}
font: Font { size: 24 } content: "2 * 2 = 4"
fill: Color.GREEN }
effect: DropShadow{ offsetX: 3 offsetY: 3} ]
content: "Hello FX!"
} }
} }
}
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.text.*;
import javafx.scene.paint.*;
import javafx.scene.effect.*; Рисунок 3. Для калькулятора Рисунок 4. Теперь кнопок
import javafx.scene.shape.*; маловато кнопок достаточно
В данном случае мы объединили в одну группу кноп- Как видно из кода, при нажатии на клавишу <C> про-
ку и надпись на ней, создав класс, экземплярами которо- исходит очистка индикатора. Конечно, следует также про-
го будут кнопки калькулятора. Переменные класса уста- писать реакцию на нажатие <=>, вызывающее вычисление
навливают надпись на кнопке и её абсолютное располо- результата, но это я предоставляю для реализации чита-
жение (вообще говоря, в JavaFX присутствуют менеджеры телю. Сама по себе задача вполне ординарная. Мы же тут
размещения, но для простого приложения с фиксирован- заняты другим – стараемся «сделать красиво». Продол-
ным числом компонентов можно ограничиться и абсолют- жая действовать в этом направлении, «оживим» кнопки,
ным позиционированием.) заставим их нажиматься. Для этого введём ещё два атри-
Теперь создадим массив кнопок: бута нашего класса:
...
Эти переменные будут отвечать за размеры эффекта те-
def bt9=CalcBatton{ cx: 10, cy: 180,ctext: "9"} ни, при изменении которых и создаётся эффект нажатия:
def bt0=CalcBatton{ cx: 80, cy: 180,ctext: "0"}
70
import javafx.stage.*; def bt_res=CalcBatton{ cx: 150, cy: 230,ctext: "="}
import javafx.scene.*; def bt_del=CalcBatton{ cx: 220, cy: 230,ctext: "C"}
import javafx.scene.text.*; var buttons=[bt1.group,bt2.group,bt3.group,
import javafx.scene.paint.*; bt4.group,bt5.group,bt6.group,
import javafx.scene.effect.*; bt7.group,bt8.group,bt9.group,
import javafx.scene.paint.Color; bt0.group,bt_add.group,bt_sub.group,
import javafx.scene.shape.*; bt_mul.group,bt_div.group,bt_res.group,
import javafx.scene.layout.HBox; bt_del.group];
import javafx.scene.layout.VBox; Stage {
import javafx.scene.Cursor.*; title: "FX Калькулятор"
import javafx.scene.Node.*; width: 300
import javafx.scene.input.MouseEvent; height: 500
scene: Scene {
class Calc{ content:[ Text {
// здесь «вычислительная» часть x: 20 y: 60
} font: Font { size: 36}
fill: Color.GREEN
def cl= Calc{}; effect: DropShadow{ offsetX: 3 offsetY: 6}
def fil_bt=LinearGradient { content: bind cont
startX: 0.0, startY: 0.0, endX: 0.0, endY: 1.0, ↵ },buttons
proportional: true ]
stops: [ fill: LinearGradient {
Stop {offset: 0.0 color: Color.WHITE}, startX: 0.0, startY: 0.0, endX: 0.0, endY: 1.0, ↵
Stop {offset: 1.0 color: Color.SILVER} proportional: true
] stops: [
} Stop {offset: 0.0 color: Color.WHITE},
var cont=""; Stop {offset: 1.0 color: Color.LIGHTGREEN}
var sum=0; ]
class CalcBatton{ }
var cx: Number ; }
var cy: Number ; }
var ctext: String;
var gradx= 3;
var grady= 6; Результат – на рис. 5.
var group= Group{
content: [
Rectangle { Что ещё?
fill: fil_bt
x: cx Какие возможности JavaFX остались за рамками этого не-
y: cy большого примера? Прямо скажу, немало. Начнём с того,
width:60
height: 40 что в палитре среды присутствует множество графичес-
arcWidth: 20 ких примитивов. Это геометрические фигуры (вроде ис-
arcHeight: 20
cursor: HAND пользуемого нами Rectangle), градиенты (линейный гра-
effect: DropShadow{ offsetX: ↵ диент мы использовали для заливки калькулятора и кно-
bind gradx offsetY: bind grady}
onMouseClicked: function(evt: MouseEvent):Void { пок), различные графические эффекты. JavaFX позволяет
if({ctext}=="C"){ работать с готовыми изображениями, используя их в сце-
but="";
} нах и применяя к ним различные фотоэффекты, как-то за-
else{ тенение, смещение, размытость, трансформация и так да-
but="{cont}{ctext}";
} лее, причём применять в любой комбинации.
} Средствами JavaFX легко достигается анимация объек-
onMousePressed: function(evt: MouseEvent):Void {
gradx=0; тов (каюсь, хотел включить эту важную функциональность
grady=0; в наш калькулятор, но вовремя остановился) и встраива-
}
onMouseReleased: ется видео. Вот как просто это делается:
function(evt: MouseEvent):Void {
gradx=3; Stage {
grady=6; title: "My Media Player"
} scene: Scene{
}, content: MediaComponent {
Text { mediaSourceURL: mediaUrl
x: cx + 25 volume: 0.5
y: cy + 30 visible:true
font: Font { size: 24} mediaPlayerAutoPlay: true
fill: Color.GREEN }
content: ctext }
}]} }
}
def bt1=CalcBatton{ cx: 10, cy: 80,ctext: "1"} Поддерживаются все форматы, которые поддержи-
def bt2=CalcBatton{ cx: 80, cy: 80,ctext: "2"} вает платформа, на которой исполняется приложение,
def bt3=CalcBatton{ cx: 150, cy: 80,ctext: "3"}
def bt4=CalcBatton{ cx: 220, cy: 80,ctext: "4"} при этом используются «родные» кодеки этой платфор-
def bt5=CalcBatton{ cx: 10, cy: 130,ctext: "5"} мы. Если не находится нужного кодека, используется
def bt6=CalcBatton{ cx: 80, cy: 130,ctext: "6"}
def bt7=CalcBatton{ cx: 150, cy: 130,ctext: "7"} встроенный кроссплатформенный кодек On2 от компании
def bt8=CalcBatton{ cx: 220, cy: 130,ctext: "8"} On2 Technologies.
def bt9=CalcBatton{ cx: 10, cy: 180,ctext: "9"}
def bt0=CalcBatton{ cx: 80, cy: 180,ctext: "0"} Разумеется, всё вышеперечисленное можно применять
def bt_add=CalcBatton{ cx: 150, cy: 180,ctext: "+"} в различных комбинациях. Примеры применения с исход-
def bt_sub=CalcBatton{ cx: 220, cy: 180,ctext: "-"}
def bt_mul=CalcBatton{ cx: 10, cy: 230,ctext: "*"} ным кодом можно найти на сайте технологии JavaFX – http://
def bt_div=CalcBatton{ cx: 80, cy: 230,ctext: "/"} www.javafx.com/samples.
JavaFX Script – краткий обзор Это же касается и наименований функ- Имеется и знакомый по Java «пустой»
В небольшом приложении я попытаюсь ций. Сами они задаются так: тип Void (регистр – не опечатка), впрочем,
дать краткий обзор языку JavaFX Script, function addTwo(a:Number):Number{ при объявлении функции, не возвращаю-
ровно до такой степени, чтобы читатель return a+2; щей значение, его можно опустить.
}
разобрался с кодом примера. Для перечисляемых данных предусмот-
Следует сразу оговориться, что JavaFX println(addTwo(4)); рен тип последовательности (sequencesy),
Script – это не Java, и вообще он имеет Как видим, разительное отличие син- обладающий необходимыми методами:
с Java довольно мало общего. Вторая ого- таксиса Java, заключается в указании ти-
var colors: String[] = ["Green", ↵
ворка – пусть вас не смущает слово Script па возвращаемого значения не до, а после "Red","Gray"];
в его названии. Он не является языком сце- объявления функции. То же и с её аргумен- insert "Black" into colors;
insert "Blue" after colors[1];
нариев в том смысле, в котором им явля- тами. Возможно, причины такого синтакси-
ется, например JavaScript, ничего общего ческого финта кроются в том, что продукт // теперь последовательность такая:
// ["Green","Red","Blue","Gray",
он не имеет с такими интерпретируемы- создавался с оглядкой на Adobe Flex. Впро- // "Black"];
ми «скриптовыми» языками, как PHP или чем, бог с ними, с грязными домыслами.
delete "Gray" from colors;
Ruby. Прежде всего это декларативный В языке присутствуют встроенные ти- delete colors[2];
язык. На практике это обозначает, что для пы данных – String, Number, Integer, Boolean
// теперь:
построения приложения мы не описыва- и Duration, которые также являются и объ- // ["Green","Red",Black"];
ем объекты и их методы, а определяем ектами типов.
var nums = [1..100];
объекты сцены, определяем их атрибуты При определении типа String могут ис-
(в том числе поведение, реакцию на со- пользоваться как двойные, так и одинар- В последнем случае генерируется
бытия). Но всё по порядку, сначала осно- ные кавычки. Для подстановки переменных последовательность из целых чисел, от 1
вы синтаксиса. или выражения внутри строки используют- до 100.
ся фигурные скобки:
Основные типы данных var name='john'; Классы и объекты
JavaFX имеет статическую типизацию – println(«Hello {name}!»); Классы в JavaFX определяются следую-
тип переменной (они задаются с помощью Типы Integer Number, предназначены щим образом:
ключевого слова var) определяется при её для представления целочисленных значе- class myObject{
инициализации: ний и числа с плавающей точкой соответ- var name: String;
var city: String;
ственно. Boolean, как несложно догадать- var myRectangle: Rectangle;
var name;
var age; ся, может принимать значения true или false.
name="John"; function print_name() {
Он используется в управляющих конструк- println("Name: {name}");
age=35
циях (if, else), которые имеют традиционный }
Константы задаются с помощью клю- для Java синтаксис. Вопросы тут может вызвать только тип
чевого слова def. Правила наименова- Тип Duration используется для представ- данных Rectangle. Это один из многочис-
ний переменных и констант схожи с язы- ления временных отрезков, например: ленных встроенных классов JavaXF, про-
ком Java. var a = 10s; // 10 секунд смотреть его свойства и методы можно
72
Среда разработки код, и SVG Converter, позво-
Такой пример, как наш калькулятор, вполне можно написать ляющий сохранять графику
в простом текстовом редакторе, но современный процесс в формате JavaFX.
разработки (несмотря на мнение отдельных гиков) требует После знакомства с воз-
удобной и эффективной IDE, с возможностью отладки, про- можностями JavaFX, естес-
файлинга, рефакторинга и управления проектами, а так- твенно, встаёт вопрос: ка-
же желательно с интеграцией с системой контроля версий ковы её перспективы? Ка-
и многим другим. И тут хорошие новости для программистов, кое место она может занять
привыкших работать в среде NetBeans. Начиная с версии 6.5 в быстро меняющемся ИТ-
при установке соответствующего плагина теперь можно ра- мире? Сейчас на этот воп-
ботать с JavaFX-проектами с неменьшей эффективностью, рос, наверное, никто отве- Рисунок 6. В каждой грани
независимый видеофрагмент
что и с Java, используя дизайнер форм и прочие инструмен- тить не может. Но в целом (если хватит оперативки)
ты IDE. Приверженцы другой популярной среды разработки, платформа, имеющая все
Eclipse, не остались обижены, плагин для работы с JavaFX ключевые средства для построения RIA, с возможностью
доступен по адресу http://kenai.com/projects/eplugin. использования накопленных Java-наработок и уже сейчас
Впрочем, это всё для программистов, для дизайнеров же имеющая вполне современные средства разработки, вы-
подготовлен набор инструментов под общим названием глядит очень многообещающе.
JavaFX Production Suite. Это плагины для пакетов Adobe
Photoshop и Adobe Illustrator, позволяющие сохранять мно- 1. Официальный сайт JavaFX – http://javafx.com.
гослойные приложения в формате JavaFX (Save as JavaFX). 2. Материалы по JavaFX на сайте российских разработчиков Sun
Он включает инструмент JavaFX Graphics Viewer, который Microsystems – http://developers.sun.ru/javafx.
позволяет использовать графику без компиляции в байт- 3. Русскоязычная wiki по JavaFX – http://ru.jfx.wikia.com/wiki.
в документации по API JavaXF (http://java. ных (data binding). Это возможность связать println("стал: {User}");
};
sun.com/javafx/1.1/docs/api). любой параметр с динамически изменяю-
Объекты описываются так: щейся переменной. Такой код будет служить индикатором,
Лучше всего применение связывания печатая сообщения всякий раз при изме-
def myObj = myObject {
name: "Vasya"; видно на примере: нении значения переменной User.
city: "Moscow"; var side= 15;
number:5;
} На сцене
Scene {
def myRectangle = Rectangle { content: [ В основе любой программы на JavaFX на-
fill: Color.GREEN SwingSlider {
width:60 ходится объект Stage, представляющий
minimum: 0
height: 40 maximum: 50 собой древовидную структуру, содер-
} value: side radius ↵ жащую в себе другие объекты приложе-
with inverse
Первый из вышеприведённых объек- vertical: false ния. Каждый узел такой системы, пред-
тов является экземпляром произвольного }, ставляющий собой наследника от класса
пользовательского класса, второй – встро- Rectangle { javafx.scene.Node, может также содержать
енного класса Rectangle. Вполне допусти- fill: Color.GREEN в себе объекты.
мы и композиции объектов: width: bind side Класс Node является полноценным кон-
height: bund side*2 тейнером, характеризующийся размерами,
def myObj=myObject { }
name: "Vasya"; ] системой координат и реагирующим на со-
city: "Moscow"; } бытия мыши. Объекты, от него образован-
number: "95050";
myRectangle: Rectangle { В данном случае объект SwingSlider ные, можно трансформировать, объеди-
fill: Color.GREEN (стандартный скрол бар) определяет зна- нять в группы, применять к ним (как к отде-
width:60
height: 40 чение переменной side, с которой, в свою льным, так и к группам) различные дейст-
} очередь, связаны размеры сторон объекта вия или графические эффекты.
}
Rectangle (прямоугольник). Таким образом, Доступ к содержимому «Сцены» про-
Обращение к свойствам и методам пользователь может менять размеры фигу- изводится через объект Scene, для до-
объекта происходит посредством точеч- ры, перемещая указатель скрола. бавления на нее необходимых объектов,
ной нотации: Ещё од ин интерес ный механизм следует импортировать соответствующие
println( myObj.myRectangle.x); JavaFX – триггеры, то есть конструкции, классы и описать объекты и их поведение
println( myObj.=print_name()); представляющие собой блоки кода, ис- внутри Scene.
Такие необходимые элементы ООП, полняемые по какому-либо событию. При- Дальше – смотрите пример, приведён-
как наследование и модификаторы дос- мер того, как привязать блок кода к значе- ный в статье.
тупа, также наличествуют. нию переменной: Подробные уроки по языку JavaFX
var User = "Misha" on replace ↵ Script, на русском языке доступны на пор-
Связывание данных oldValue { та ле разработчиков Sun. По а д ресу
println("Пользователь ↵
Ключевой элемент языка JavaFX Script – изменился"); http://developers.sun.ru/documents/javafx/
возможность динамической привязки дан- println("был: {oldValue}"); FXTutorials.
Антон Гришан
Любой веб-мастер желает, чтобы его сайт загружался быстрее, чем сайт конкурента, поэтому
оптимизация – важный аспект разработки любого веб-проекта.
П
онятие оптимизации охватывает огромное коли- Табличная верстка без использования стилей:
чество вопросов, начиная от настройки веб-серве-
ра, заканчивая алгоритмами обработки данных. Одно <html>
<head>
из направлений оптимизации – минификация. Здесь и да- <title>Пример: табличная вёрстка vs DIV-ная ↵
лее под термином «минификация» будем понимать вид оп- вёрстка</title>
</head>
тимизации, направленной на уменьшение размеров резуль- <body>
тирующего HTML/CSS/JS-кода без изменения внешнего ви- <table width="720px" border="0" align="center" ↵
cellpadding="0" cellspacing="0" ↵
да и функционала веб-страницы. style="margin-top:30px">
<tr>
<td colspan="3" align="center">Шапка ↵
Минификация HTML-кода сайта, логотип</td>
Результатом работы большинства веб-приложений являет- </tr>
<tr valign="top">
ся HTML-документ. Чем короче код, тем быстрее его загру- <td width="200px">Левая колонка</td>
зит клиент. Рассмотрим несколько приемов, позволяющих <td width="320px">Центральная колонка</td>
<td width="200px">Правая колонка</td>
минимизировать размер результирующего кода. </tr>
</table>
</body>
Верстка страниц без использования таблиц </html>
(Tableless)
Мощное средство минификации HTML-кода – верстка стра- Размер кода: 482 байта.
ниц на базе DIV-тегов и таблиц стилей (CSS). В отличие Верстка на базе DIV-тегов с использованием стилей:
от табличной верстки данная методология имеет множес-
тво преимуществ, одно из которых – существенное сокра- <html>
<head>
щение размера HTML-кода. <title>Пример: табличная вёрстка vs DIV-ная ↵
74
вёрстка</title> использования кэша браузера и приемов минимизации
<link rel="stylesheet" type="text/css" ↵
href="/main.css" /> HTTP-запросов.
</head>
<body>
<div id="head">Шапка сайта, логотип</div> Удаление символов, не влияющих на отображение
<div id="content"> документа
<div id="cLeft">Левая колонка</div>
<div id="cCenter">Центральная колонка</div> HTML-код содержит множество символов, не влияющих
<div id="cRight">Правая колонка</div> на отображение документа в браузере пользователя:
</div>
</body> n символы перевода строки (\r и \n), табуляции (\t);
</html> n несколько идущих подряд пробелов, пробелы между ат-
рибутами тегов;
Размер кода: 384 байта. n необязательные кавычки вокруг значения атрибута тега;
Если сравнить размер среднестатистической HTML- n HTML-комментарии <!-- -->.
страницы, сверстанной с помощью таблиц, и аналогичной
страницы, сверстанной на базе DIV-элементов и каскадных Наличие табуляций, переносов строки и комментари-
таблиц стилей, можно заметить, что размер первого вариан- ев делает код удобочитаемым для человека, но не влияет
та не сильно отличается от второго, если ко второму доба- на отображение страницы в браузере и индексацию сайта
вить размер таблицы стилей. Однако таблица стилей в от- поисковыми системами.
личие от содержания страницы статична и кэшируется брау- Удаление символов, не влияющих на отображение до-
зером, поэтому загружается единственный раз, при первом кумента, позволяет сократить размер HTML кода на 3-20%.
обращении к сайту. Таким образом, при каждой последую- Данным приемом активно пользуются такие титаны, как
щей загрузке страницы сайта экономия трафика (и време- Google.com и Yandex.ru (убедиться в этом можно посмот-
ни) будет сопоставима с размером таблицы стилей. рев HTML-код главной страницы поисковиков).
Данная методика допустима для HTML-документа, Рассмотрим несколько популярных утилит, позволяю-
так как не противоречит стандарту, но крайне нежелатель- щих осуществить автоматический перевод JS/CSS-кода
на для XHTML. С точки зрения стандарта XML, кавычки вок- из версии для разработчиков в версию для публикации.
руг значения атрибута тега обязательны, поэтому удаление
их чревато не только появлением ошибок при проверке до- JavaScript
кумента с помощью W3C-валидатора (http://validator.w3c.org), В большинстве своём минификаторы для уменьшения раз-
но и возникновением потенциальных проблем при исполь- мера JavaScript кода делают две операции:
зовании DHTML (нарушение структуры документа). n удаляют символы, не влияющие на исполнение кода;
Корректное удаление комментариев из HTML-докумен- n заменяют длинные названия локальных переменных
та не имеет побочных эффектов, однако для корректного на более короткие.
выполнения требуется учитывать ряд специфических слу-
чаев, когда удалять строку, которая похожа на коммента- Протестируем работу наиболее известных JS-ми-
рий, нельзя. нификаторов на примере большого JavaScript-файла
Пример: (URLForward.js, размер 61773 байт), взятого из реального
проекта (см. таблицу 2).
<!--[if lte IE 6]><style type="text/css" media="all"> ↵ Рекордный уровень компрессии показал минификатор
@import url(http://www.domain.tld/css/ie6.css); ↵
</style><![endif]--> Bananascript. Такой большой отрыв от конкурентов объяс-
няется тем, что помимо стандартного алгоритма минифи-
<script language="JavaScript">
<!-- кации JS-кода разработчики данного сервиса добавили ал-
alert('<!--'); горитм компрессии, основанный на замене длинных повто-
alert('Меня удалять нельзя!');
alert('//-->'); ряющихся последовательностей байтов.
//--> Однако Bananascript не является оптимальным выбо-
</script>
ром. Сервер перед отдачей JS-кода пользователю упаку-
Можно разработать алгоритм, позволяющий коррект- ет данные с помощью gzip. Поэтому важно, чтобы полу-
но обрабатывать все возможные случаи, однако он будет чившийся в результате минимизации и упаковки код имел
достаточно сложен и потребует от сервера дополнитель- минимальную длину. Проведем еще один тест, в котором
ных ресурсов (процессорное время и память). Вызов ал- сравним лидирующие в предыдущем тесте минификато-
горитма минификации HTML осуществляется при каждом ры с учетом длины кода после упаковки с помощью gzip
запросе страницы, потому при разработке алгоритма не- (см. таблицу 3).
обходимо найти баланс между степенью сжатия и нагруз- Из последнего теста видно, что наименьший размер ко-
кой на сервер. да получается в результате использования связки Packer +
gzip, затем идет YUI Compressor + gzip, и на последнем мес-
Минификация скриптов и таблиц стилей те Bananascript + gzip.
Большинство разработчиков не уделяют внимания оптими- В первом тесте лучший результат продемонстрировал
зации внешних JS/CSS-файлов, так как эти файлы загружа- Bananascript, он же продемонстрировал худший результат
76
во втором. Данное явление можно объ- Таблица 2. Результат работы наиболее известных JS-минификаторов
яснить тем, что Bananascript уже со- № JavaScript-минификатор Размер до сжатия Размер после Экономия (байт,%)
держит алгоритм компрессии, поэтому (байт) сжатия (байт)
повторное сжатие малоэффективно. 1 Online Compressor Tool 61773 28242 33531 (54.28%)
Таким образом, лучший резуль- http://compressor.ebiene.de
78
ложением во время работы, отправля- Таблица 4. Сравнение нескольких online-сервисов для компрессии CSS-кода
ются не прямиком в браузер пользо- № CSS-минификатор Размер до сжатия Размер после Экономия
вателя, а в специальный буфер. В ка- (байт) сжатия (байт) (байт,%)
честве обработчика буфера указана 1 Ручное сжатие 312 109 203 (65.06%)
функция ob_gzhandler, которая отве- 2 CSS Compressor 312 225 87 (27.88%)
чает за компрессию данных перед от- http://shygypsy.com/cssCompress
правкой пользователю. 3 CSS Formatter and Optimizer 312 143 169 (54.17%)
http://www.cleancss.com
2. Прозрачное сжатие с исполь-
4 CSS Drive CSS Compressor 312 215 97 (31.09%)
зованием библиотеки zlib. Суть ме- http://www.cssdrive.com/index.php/main/csscompressor
тода заключается в том, что всю ра-
5 Robson CSS Compressor 312 116 196 (62.82%)
боту по компрессии трафика выпол- http://iceyboard.no-ip.org/projects/css_compressor
няет интерпретатор PHP. Данный под- 6 Online CSS Optimizer 312 123 189 (60.58%)
ход позволяет включить режим комп- http://www.cssoptimiser.com
рессии данных без внесения измене-
ний в код приложения. Результат работы обоих методов одинаков, однако вто-
Для активации автоматической компрессии необходи- рой более предпочтителен, так как не требует модифика-
мо прописать в конфигурационном файле php.ini следую- ции приложения для включения режима компрессии дан-
щие директивы: ных. Использование одновременно обоих методов невоз-
можно (не имеет смысла) и приводит к появлению сооб-
zlib.output_compression = On щения вида:
Warning: ob_start() [ref.outcontrol]: output handler 'ob_gzhandler'
Если не используется режим буферизации, то дан- conflicts with 'zlib output compression' in /home/www/test.php on
ные в браузер передаются порциями по 4 Кб, упакован- line 8
ные с помощью gzip. Изменить размер порции можно с по-
мощью zlib.output_compression, указав вместо On нужный Заключение
размер в байтах. Существует множество приемов, позволяющих применять
компрессию не только к HTML-документам, но и к CSS/JS-
zlib.output_compression = 1048576 коду. Однако в отличие от HTML-кода CSS/JS в большей ме-
ре статичные данные, которые должны кэшироваться брау-
Передача файла, разбитого на порции, негативно вли- зером, поэтому компрессия CSS/JS важна только для пер-
яет на общий уровень компрессии и повышает нагрузку вой загрузки сайта.
на процессор. Желательно передавать сжатый файл цели-
ком. Для этого необходимо включить буферизацию: 1. Общее описание понятия «минификация» – http://en.wikipedia.
org/wiki/Minification_(programming).
output_buffering = On 2. Технология Tableless – верстка HTML-страниц без таблиц –
zlib.output_compression = On
http://en.wikipedia.org/wiki/Tableless_web_design.
С помощью директивы zlib.output_compression_level 3. Советы по построению высокопроизводительных веб-прило-
можно установить необходимый уровень компрессии. Па- жений – http://developer.yahoo.com/performance/rules.html.
раметр может принимать значения от -1 до 9, где -1 означа- 4. Обсуждение примера реализации HTML-минификатора на ба-
ет, что сервер сам выбирает уровень компрессии, 0 – ком- зе PHP – http://forum.dklab.ru/viewtopic.php?t=26182.
прессия отсутствует. 5. Тестирование инструментов для сжатия CSS – http://webo.in/
articles/habrahabr/14-minifing-css.
output_buffering = On 6. Тестирование инструментов для сжатия JS – http://webo.in/
zlib.output_compression = On
zlib.output_compression_level = 5 articles/habrahabr/11-minifing-javascript.
7. Расширение Zlib для PHP – http://ru.php.net/manual/en/
Если нет доступа к php.ini, то аналогичного эффекта book.zlib.php.
можно добиться, прописав в файле .htaccess следующие 8. Модуль deflate для Apache – http://httpd.apache.org/docs/2.0/
команды: mod/mod_deflate.html.
9. Модуль gzip для Apache – http://sourceforge.net/projects/
php_flag output_buffering On mod-gzip.
php_flag zlib.output_compression On
php_flag zlib.output_compression_level 5
Владимир Маяковский
Алексей Вторников
О
днако если обратиться к событиям 60-х годов XX ве-
ка, то обнаруживается, что такое программное обес-
печение было разработано. И разработано, кстати,
вполне успешно, что доказывает опыт эксплуатации весь-
ма больших и опасных объектов.
Рассматриваемый в этой статье компьютер интересен
не столько с исторической точки зрения, сколько оригиналь-
ными решениями, воплощенными при его проектировании,
которые могут оказаться поучительными и полезными для
современных разработчиков как программного, так и аппа-
ратного обеспечения.
82
Типы инструкций 128(10) адресов памяти с аб-
Самые интересные решения в архи- солютными значениями от 0
тектуре PDP-8 связаны с памятью – до 127(10)).
доступом и методами адресации. Их Если бит 4 равен 1, то это Рисунок 4. Формат слова, содержащего операцию
я буду описывать параллельно с сис- означает, что смещение ука- работы с памятью
темой команд компьютера: тем самым зывает на адреса, входящие
достигается более ясное понимание в состав той страницы памя-
их взаимосвязи. ти, на которой располагается Рисунок 5. Пример операции
Система команд PDP-8 включает сама команда. Лучше все это
в себя три типа инструкций: инструк- разобрать на небольших примерах. Предыдущее значение, хранившееся
ции, ссылающиеся на память (memory Допустим, аккумулятор содержит в этой ячейке памяти, будет утеряно.
reference insrtuctions, MRI), инструкции значение: Если бит 4 установить в 1, то эта
ввода/вывода (IO) и так называемые команда будет выполнена уже иначе.
микроинструкции (microinstructions). 000000111100(2) = 74(8) = 60(10) Поскольку бит 4 равен 1, а сама ко-
манда располагается на первой стра-
Операции работы с памятью и процессор PDP-8 выполняет команду нице памяти по адресу 200(8), что со-
Как вы думаете, сколько всего опе- (число слева указывает на абсолютный ответствует абсолютному адресу
раций для работы с ячейками памяти адрес расположения команды в памя- 000 010 000 000(2), то после выполне-
предусмотрено в PDP-8? Уверен, боль- ти) (cм. рис. 5). ния команды содержимое AC будет со-
шинству читателей ответ покажется Упражнение 3: какой странице па- хранено по адресу страницы плюс сме-
невозможным: их всего 6! Формат сло- мяти соответствует абсолютный адрес щение внутри страницы, то есть по ад-
ва, содержащего такую операцию, вы- 200(8)? Определите двоичное и деся- ресу 207(8).
глядит так (см. рис. 4). тичное значения адреса этой стра- Предыдущее значение, хранивше-
Биты с 0 по 2 (обозначенные как ницы. еся в ячейке памяти с адресом 207(8),
«КОП») представляют собой код опе- Разберем команду на составляю- будет утеряно. Наконец, в обоих слу-
рации от 0 до 5 (от 000(2) до 101(2)). щие (здесь для наглядности я отступаю чаях содержимое AC после выполне-
Операции работы с памятью перечис- от принятого ранее соглашения разби- ния команды станет равным 0.
лены в таблице. вать слово на 4 группы по 3 бита). Бит 3 (косвенная адресация) поз-
Рассмотрим остальные биты. Бит 3 Первые три бита (011) – это код опе- воляет организовать еще более гиб-
(обозначен на рисунке как «К») – при- рации DCA (выгрузить содержимое AC кий способ доступа к ячейкам памяти.
знак косвенной адресации: если он по указанному адресу, после чего AC Разумеется, использование косвен-
установлен в 1, то содержимое ячей- очистить). ной адресации несколько увеличива-
ки памяти интерпретируется не как Бит 3 равен 0; это означает, что кос- ет время доступа к нужной ячейке па-
операнд, а как адрес операнда. Бит 4 венная адресация не используется. мяти, поскольку, грубо говоря, необ-
(обозначен как «С») – это страница Бит 4 равен 0, что, как мы помним, ходимо найти адрес по адресу (позже,
памяти. Вот здесь нужно остановить- означает страницу 0. при обсуждении механизма подпро-
ся подробнее. Наконец, смещение (биты с 5 по 11) грамм, я вернусь к этому вопросу).
Память PDP-8 (как мы помним, представляет собой число 7(8) = 7(10). Страница 0 доступна всегда и из
в базовом варианте PDP-8 ее размер Как процессор «справится» с такой любого места программы и занимает
составляет 4096(10) последователь- командой? в некотором роде привилегированное
но перенумерованных слов) разбита Главное – это вычислить адрес положение. Остальные страницы на-
на 32(10) страницы, размером 128(10) ячейки памяти, по которому будет со- зываются текущими.
слов каждая. хранено текущее значение аккуму- Биты 3 и 4 могут комбинировать-
Каждая страница, разумеется, лятора. ся в соответствии с логикой програм-
имеет свой номер от 0 до 31(10) (в вось- Так как номер страницы, указан- мы и алгоритмом (то есть возможны 4
меричной записи до 37(8)). Последние ный в команде, равен 0, то смещение способа адресации). Это немного по
7 бит слова, содержащего команды указывает на адрес 000 000 000 007(2) сравнению с современными процессо-
(с 5-го по 11-й), – это смещение адре- (проверьте) и именно по этому адре- рами, но для практических целей впол-
са внутри страницы. су и будет сохранено значение AC. не достаточно.
Упражнение 2: убедитесь, что ука-
Операции работы с памятью
занные 7 бит смещения действитель-
Мнемоника КОП Описание
но могут адресовать 128(10) слов внут-
AND 000 Логическое «И» содержимого ячейки памяти и содержимого AC. Результат – в AC
ри страницы.
Вернемся к биту 4. Очевидно, TAD 001 Сумма содержимого AC и содержимого ячейки памяти. Результат – в АС
что он может принимать только два ISZ 010 Инкремент содержимого ячейки памяти. Если содержимое ячейки памяти стало
равным 0, то пропустить следующую операцию
значения: 0 или 1. Если бит 4 равен
0, то это означает, что смещение ука- DCA 011 Выгрузка содержимого AC в ячейку памяти с последующей очисткой AC
84
Более подробно останавливать- тальные будут безвозвратно
ся на микроинструкциях в этой статье затерты.
нет смысла – всю информацию чита- Конструкторы PDP-8 на- Рисунок 7. CLA
тель сможет найти по ссылкам в конце шли элегантное, хотя и не-
статьи. Единственное, что нужно отме- обычное, решение: адрес
тить, что операции 1-й группы микро- возврата должен храниться
инструкций «обслуживают» в основ- в самой подпрограмме! Ко- Рисунок 8. CLL
ном пару L-AC, устанавливая в них за- нечно, это не стек (скажем,
данные значения, в то время как опера- при таком способе органи-
ции 2-й группы проверяют содержимое зации подпрограмм неиз-
регистров L и AC на соответствие опре- бежно возникнут проблемы Рисунок 9. CLA CLL
деленным условиям и позволяют орга- с рекурсивными вызовами),
низовать гибкие ответвления и перехо- но зато при таком способе
ды (путем пропуска следующей коман- подпрограмма сама «знает»,
ды в потоке выполнения). Например, куда надо передать управле- Рисунок 10. L-AС
микроинструкция второй группы SZA ние по окончании своей ра-
пропускает следующую инструкцию в боты. Проще показать все это на при- передано управление после исполне-
потоке управления, если содержимое мере (для наглядности в левой колонке ния команды «JMP I SUBST»? Попы-
AC равно 0; вот ее двоичное представ- я указал восьмеричные адреса памяти, тайтесь вручную оттранслировать этот
ление (см. рис. 10). Если содержимое по которым располагается этот фраг- фрагмент программы.
AC равно 0, то инструкция, следующая мент программы) (см. рис. 11). Управление будет передано по ад-
за SZA, будет пропущена. Хотя я и не рассказывал, что из се- ресу, хранящемуся в ячейке памяти
Упражнение 5: определите вось- бя представляет программа на ассем- SUBRT, то есть, как мы помним, по ад-
меричный код этой операции. блере для PDP-8, думаю, ничего слож- ресу 1211(8). Итак, для выхода из под-
ного в примере нет, тем более что все программы и возврата к основной час-
Подпрограммы будет сейчас объяснено. ти программы необходим так называ-
Перед тем как завершить обзор архи- По адресу 1210(8) происходит вы- емый косвенный переход – переход
тектуры PDP-8, имеет смысл немного зов подпрограммы. Подпрограмма на- по адресу, хранящемуся не в самой ко-
задержаться на подпрограммах, их вы- чинается с ячейки памяти, помеченной манде, а в ячейке памяти.
зовах и, главное, на возврате из под- как «SUBRT» (заметьте, что в ассемб-
программ в вызывающий код. лере PDP-8 метки отделяются от ос- Шина OMNIBUS
Причина, почему я на этом оста- тального кода запятыми) по адресу Рассказ о мини-компьютерах PDP-8
навливаюсь, проста – в PDP-8 нет 1240(8). Итак, переход к подпрограм- был бы неполным без упоминания та-
стека. Конечно, его можно эмулиро- ме осуществлен. кой важной его составляющей, как ши-
вать программно, но это совсем дру- Ячейка памяти, имеющая метку на OMNIBUS. Основное назначение
гой вопрос. Главное, что аппаратный SUBRT, предназначена для одной це- шины OMNIBUS состояло в переда-
стек в архитектуре PDP-8 отсутству- ли – в ней удерживается (сохраняет- че команд и сигналов между модуля-
ет. Плохо это или нет, я здесь обсуж- ся) адрес команды, непосредственно ми PDP-8. Физически OMNIBUS пред-
дать не буду (скорее плохо, поскольку следующей за командой вызова под- ставляла собой плату с коннектора-
стек очень уж «полезная» часть архи- программы (в данном случае это ад- ми и слотами для присоединения раз-
тектуры компьютера). Как же в таком рес 1211(8) инструкции «JMP BEGIN»), личных устройств. Коннекторы позво-
случае использовать подпрограммы то есть по существу адрес возврата. ляли организовать доступ к адресной
(вспомните, при обсуждении операций Любое значение, хранившееся в ячей- шине, шине данных памяти и управ-
работы с памятью я перечислил в чис- ке 1240(8) до вызова подпрограм- ления, шине данных, прямой доступ
ле прочих и операцию вызова подпро- мы, будет затерто значением 1211(8). к памяти (доступ к памяти, минуя про-
граммы)? Передать управление под- Фактически подпрограмма начина- цессор), сигналы таймера и так далее
программе, очевидно, несложно: по су- ет выполняться с операции, следую- (всего 96 сигналов).
ти, это безусловный переход в нужную щей за точкой входа в подпрограмму,
точку программы. А вот как вернуться то есть с адреса 1241(8); какую именно
назад, не имея стека, проще говоря – задачу решает подпрограмма в приме-
где и как сохранить адрес возврата? ре, для нас в настоящее время не су-
Можно, конечно, выделить в памя- щественно.
ти определенную ячейку памяти и пе- По адресу 1255(8) – последней ко-
ред вызовом подпрограммы сохранять манде в подпрограмме – находится
в ней нужное значение программно- команда безусловного перехода с ис-
го счетчика. Но если вызовов подпро- пользованием косвенной адресации
грамм несколько, то в этой ячейке бу- (на это указывает символ «I»).
дет сохранено только последнее зна- Упражнение 6: перед тем как чи- Рисунок 11. Программа (фрагмент),
чение программного счетчика – все ос- тать дальше, подумайте – куда будет демонстрирующая вызов подпрограммы
86
0100 0000 0000 n бит 4 установлен в 1
1100 0000 0000
-------------- (адресация на текущей
1 0000 0000 0000 странице);
n управление передается
Перенос в несуществующий 13-й по символическому ад-
разряд игнорирутся; таким образом, ресу (метке), располо-
в результате получен 0, и преобразо- женной в ячейке памяти
Рисунок 12. Программа (фрагмент) и результат
вание выполнено верно. 1240(8). Смещение этого ее трансляции в машинный код
Аналогичная проверка для вось- адреса от начала страни-
меричных представлений 2000(8) + цы составляет 1240(8) – 1200(8) = современных компьютеров. О таких
6000(8) = 10000(8) дает тот же самый 40(8) = 0100000(2); объемах памяти и уровне быстродейс-
результат. n все составляющие машинного кода твия, которыми располагают компью-
Примечание: на вопрос, почему определены, и остается их «скле- теры сегодня, разработчики и програм-
игноририруется перенос в 13-й разряд ить» вместе: 100010100000(2) = мисты PDP-8 могли только мечтать.
и не является ли это ошибкой, ответ 4240(8). Но, как всегда и везде, решающее
можно найти, обратившись к литерату- значение имеют не столько техничес-
ре по представлениям чисел в различ- Обратите внимание, что после вы- кие возможности аппаратуры, сколько
ных системах счисления (см. выше). полнения этого кода процессором интеллект, любознательность, усидчи-
PDP-8 в ячейке памяти с адресом вость и квалификация тех, кто с этой
Упражнение 3 1240(8) будет сохранен адрес возвра- аппаратурой работает.
Абсолютному адресу 200(8) соот- та (адрес ячейки памяти 1211(8)). Фак- PDP-8 (как и ряд других компьюте-
ветствует 1-я страница памяти. Со- тически подпрограмма начинает вы- ров той славной эпохи) отчетливо де-
о т в е т с т ву ю щ и е п р е д с т а в л е н и я: полняться с адреса 1241(8). монстрируют, сколь многого можно до-
000010000000(2) или 128(10). Остальные команды транслиру- биться даже при очень скромных ре-
ются аналогично. Обратите внима- сурсах, если приложить к своему де-
Упражнение 4 ние на два момента. Во-первых, код лу голову.
Ответ: 7300(8). по адресу 1240(8) будет оттрансли- История проекта PDP-8 показы-
рован просто в 0. Даже если по этому вает, что почти любую, не решаемую
Упражнение 5 адресу и располагалась какая-то ин- на первый взгляд задачу, можно ре-
Ответ: 7440(8). формация, она будет заменена адре- шить и не нужно для этого, в общем-то,
сом возврата немедленно после входа ничего – «всего лишь» думать. И, же-
Упражнение 6 в подпрограмму. Во-вторых, разберем лательно, нестандартно.
Это упражнение – самое сложное, трансляцию в машинный код команды
но и самое интересное. Читателю, что- возврата из подпрограммы: 1. Большая подборка док ументации
бы его решить, возможно, придется n код операции JMP (биты с 0 по 2): по архитек т уре и программирова-
обратиться к более подробному опи- 101(2); нию мини-компьютеров PDP-8 – http://
санию мини-компьютера PDP-8, ко- n бит 3 установлен в 1 (косвенная ад- bitsavers.org/pdf/dec/pdp8.
торое можно найти по ссылкам в кон- ресация); 2. MS-DOS эмулятор PDP-8 – http://www4.
це статьи. n бит 4 установлен в 1 (адресация wittenberg.edu/academics/mathcomp/
Сначала я приведу результат транс- на текущей странице); bjsdir/PDP8HomePage.htm.
ляции (справа от исходного текста про- n управление передается по адре- 3. По этой ссылке читатель найдет не-
граммы, см. рис. 12), а затем дам не- су, хранящемуся в ячейке памяти сколько эмуляторов PDP-8 – http://www.
которые комментарии: 1240(8). Вычислим смещение ячей- aracnet.com/~healyzh/pdp8emu.html.
Прежде всего обращаю внимание, ки памяти с адресом 1240(8) от на- 4. FAQ по PDP-8 – http://faqs.cs.uu.nl/na-dir/
что программа занимает адреса, от- чала страницы: 1240(8) – 1200(8) = dec-faq/pdp8.html.
веденные для пятой страницы памяти 40(8) или 0100000(2); 5. Страница Д.Джонса с многочислен-
(т.е. в диапазоне от 1200(8) до 1377(8)). n окончательно, получаем ответ: ными ссылками по PDP-8 – http://www.
Иными словами – программа будет 101110100000(2) = 5640(8). cs.uiowa.edu/~jones/pdp8.
загружена не в нулевую, а в текущую 6. Интересная статья, посвященная ис-
(а именно – в пятую) страницу памяти, Когда управление дойдет до это- тории PDP-8 – http://pcmag.ru/solutions/
и это нужно учитывать при ее трансля- го участка, будет осуществлен пере- detail.php?ID=11528.
ции в машинные коды. ход по адресу, хранящемуся в ячейке 7. Эта ссылка не имеет прямого отноше-
Разберем подробно, как транс- 1240(8), в котором уже хранится адрес ния к PDP-8, однако здесь читатель
лируется самая первая команда про- точки возврата, то есть адрес ячейки найдет весьма поучительную историю,
граммы: памяти 1211(8). с которой раньше (да порой и сейчас)
n код операции JMS (биты с 0 по 2): частенько приходилось сталкиваться
100(2); Эпилог программистам – http://www.wasm.ru/
n бит 3 сброшен в 0 (косвенная адре- Разумеется, PDP-8 по своим возмож- article.php?article=onebyte.
сация не используется); ностям не сравним с возможностями
88
ный финансовый воротила шлепнулся шенность связующего звена – Пятого. Офис. Понедельник
вниз, а тем временем то же самое про- В Шестом была какая-то…. завершен- Придя утром на работу, Сергей пер-
исходило с Третьим. Потом со Вторым. ность. Он был разговорчив, но не болт- вым делом проверил бэкап, который
Более тучный Первый оказался не та- лив – с удовольствием отвечал на воп- создавался каждый день в два часа
кой уж легкой добычей для магнитно- росы, но все его ответы сводились к то- ночи. Схема бэкапа была незатейли-
го поля, но вот это произошло и с ним. му, что конец близок и он последний, ва – в воскресенье делался полный
Он ощутил знакомую легкую щекотку, и что все берется из «ниоткуда» и ис- бэкап, а в последующие дни – инкре-
навевающую воспоминания о его по- чезает «в никуда». Ну, проповедник ментальный. Как известно, все админы
явлении тут. Потом впечатление было и есть проповедник. Это даже сначала делятся на две категории – те, кто де-
такое, что все его содержимое быст- позабавило Первого, а потом застави- лает резервные копии, и кто пока еще
ро-быстро перетряхивают. Наконец, ло все же снова задуматься. Поэтому, их не делает. Для Сергея эта поговор-
он так же упал вниз, успев отметить когда все, по заведенной традиции, на- ка была как никогда актуальна – ведь
удаляющееся магнитное поле. Ошара- конец собрались вместе, Первый сно- именно наличие резервной копии дан-
шенные обитатели контейнера сгруди- ва повторил свой вопрос в никуда, ко- ных здорово спасло его, когда на про-
лись в кучу около Первого и подавлен- торый задавал так недавно и в то же шлой неделе в среду поздно вечером
но молчали. В этот раз они как никогда время так давно: рухнул рэйд-массив на файловом сер-
чувствовали свое единство. «Кто мы и зачем мы здесь?» вере. И если бы не контейнер с бэка-
И в этот раз после небольшой па- пом, можно было бы лишиться работы.
Контейнер. узы тишина была нарушена ответом. Сергей понимал всю серьезность свое-
Пятница‑суббота Ответом Шестого. го тогдашнего положения – финансо-
Напуганные обитатели контейнера «Посмотри… В тебе есть все ответы вые аналитики как раз в среду скину-
с нетерпением ждали двух часов но- на все твои вопросы, надо только уметь ли на сервер свежие данные, а в по-
чи. Все было как обычно, и появил- посмотреть в себя. Увидь!» недельник дизайнеры сгрузили туда
ся Пятый. Но он был настолько тощий И Первый увидел! Это оказалось новые векторные макеты. А уж о том,
и к тому же молчалив и безразличен так просто – набор данных, которые сколько тетушек-бухгалтеров поседе-
ко всему, что это еще больше напугало содержались в нем, раскрывался пе- ли бы от известия о пропавшей базе –
первых четырех. Никто не хотел гово- ред его внутренним взором, явив ему страшно подумать! Особенно с учетом
рить ни о случившимся, ни о будущем, прошлое и… будущее. того, что во вторник у бухгалтеров был
и все стало спокойнее, лишь когда напряженный день создания каких-то
они по обыкновению сгрудились вмес- Контейнер. Воскресенье «очередных внеочередных сверхваж-
те. Первый размышлял и поймал себя Первый ждал этого момента. Он уже ных отчетов». Конечно, где-то могли
на мысли, что думает о том, с чего все все понял. Безысходность мучила его, остаться копии, но законы Мерфи еще
началось и чем все кончится. Очевид- он знал, что на самом деле он не пер- никто не отменял. Сергей поежился.
но, подобные мысли приходили в голо- вый и не последний – цикл будет пов- Да, пришлось повозиться, восстанав-
ву не только Первому, потому что, ког- торяться. Но с другой стороны, он так- ливая последовательно инкрименталь-
да на следующий день в два часа ночи же знал, что именно ему и его това- ный бэкап, но зато все закончилось хо-
появился Шестой, обитатели контей- рищам выпала великая честь – быть рошо. «Спасибо», мысленно поблаго-
нера для себя назвали его «проповед- полезными! Другие будут приходить дарил Сергей спасительную резерв-
ник». Он мало чем отличался от Второ- и уходить – но они, они выполнили их ную копию, оставшуюся уже в прош-
го, Третьего или Четвертого, но что-то миссию! Поэтому в душе не было со- лом, поскольку в минувшее воскресе-
в нем было такое, отчего Первый по- жалений. В два часа ночи он почувс- нье бэкап-контейнер был перезаписан
нял – этот особенный. И совсем не по- твовал магнитное поле. Значит все хо- новым содержимым…
тому, что проповедник держался особ- рошо. Все правильно. Последнее, что
няком – этому способствовала отре- он запомнил – было щекотно. Станислав Шпак
90
Зачем нужен сисадмин Технологии уборки
Хочется всех собрать и рассказать, для чего я в компании нужен И очередной перл от моего начальника. Разговор по телефону:
и чем тут вообще занимаюсь. А то порой себя чувствуешь груз- Н: Сходи в серверную, наведи порядок.
чиком, слесарем, электриком, разнорабочим, секретарем ... ко- Я: ОК. Что конкретно?
роче, кем угодно, кроме ИТ-специалиста. Н: Подмети, протри все.
один раз хотели принести из дома чайник, чтобы я отремон- Я: ОК.
тировал; Н: Сервера все внутри протри влажной тряпочкой.
как-то просили посмотреть телевизор, почему не работает; Я: ???
вешать мыльницы, зеркала, рамки, жалюзи; Н: Ну ты их сначала выключи, тряпочку прополоскай и по-
недавно дали ключ от офиса, сказали, я ответственный; сильней отожми.
поменять баллон с водой, как я понял, это классика (но в том Я: 8-О.
офисе парней 7, а мне надо спускаться на 5 этажей,... не да- Н: И пылесос там стоит – выкинь его куда-нибудь. Он нам
леко, конечно, но почему никого из них не попросить?); не нужен.
«бери давай отверточку и быстренько беги к нам собирать Дальше немая сцена...
кресло» (одной из сотрудниц специально заказывали. На от- О том, что системники (и сервера, в частности) вообще-то пы-
каз пригрозили, что позвонят гендиру, он, типа, со мной бу- лесосят, и о том, что существуют салфетки для оргтехники, его,
дет по-другому разговаривать. Сказал, звоните и попросите наверное, не проинформировали, хотя работает в ИТ-индустрии
лучше его это сделать); лет 10 точно.
(ну а это вообще писк) долго меня уговаривала секретарь по- Люблю разбивать стереотипы.
весить у нее картину. Lord Grey
Python в системном
администрировании UNIX и Linux
Ноа Гифт, Джереми Джонс
Кроме того, вам, безусловно, понадо- риваются специфичные для конкрет-
бится машина с установленным Linux ных операционных систем и дистрибу-
или UNIX. Для упрощения работы авто- тивов вопросы. Управление пакетами
ры подготовили свободно распростра- вынесено в девятую главу. Отдельные
няемую виртуальную машину на базе главы посвящены процессам и много-
Ubuntu, которая включает в себя уже задачности, созданию графического
настроенную для работы с книгой сре- интерфейса при помощи PyGTK, со-
ду и приведенные примеры кода. хранности данных и работе с команд-
Первые две главы посвящены ной строкой. В последней главе приве-
введению в язык программирования дены примеры построения приложений
и настройке интерактивной оболоч- для управления DNS-сервером, рабо-
ки IPython. В третьей и четвертой гла- ты с протоколом LDAP и зеркалирова-
вах рассматриваются методы работы ния FTP-сервера.
Издание представляет собой своеоб- с текстом и генерации отчетов. Пятая
разный учебник по программирова- глава рассказывает о методах работы n
Издательство: «Символ-Плюс»
нию для системных администраторов. в Python с сетями. Шестая глава повес- n
Год издания: 2009
Для работы с изданием вам потребу- твует о работе с файлами и каталога- n
Количество страниц: 512
ется знакомство с предметной облас- ми. Седьмая глава посвящена прото- n
ISBN: 978-5-93286-149-3
тью и желательно умение программи- колу SNMP. В восьмой главе рассмат- n
Цена: ≈ 550 руб.
ровать на каком-либо еще из языков
написания скриптов, например bash. Обзор книжных новинок подготовил Андрей Маркелов
92
Изучаем Python, 3-е издание
Марк Лутц
жалению, к моменту выхода изда- Отдельная глава посвящена ООП
ния был доступен лишь альфа-релиз на Python, где автор рассказывает
Python 3.0, поэтому рассматривается про классы, шаблоны проектирова-
уже не самая актуальная версия – 2.5. ния с ними и некоторые дополнитель-
Впрочем, это не помешало автору уде- ные возможности.
лить должное внимание уже наступив- Завершающая часть посвящена
шему будущему Python. исключениям и их использованию.
Первая глава книги – лаконичный В конце каждой главы книги приво-
ликбез, помогающий читателю сфор- дится краткое резюме, а также список
мировать понимание языка Python вопросов для закрепления материала
и его предназначения. (с ответами).
Продолжение вводной части пос- В целом, издание наилучшим обра-
вящено таким темам, как интерпре- зом подойдет тем, кто решил освоить
татор, выполнение программ, работа Python с нуля, но может показаться из-
с Python из консоли. лишне подробным для более опытных
После этого начинается раздел программистов.
Русскоязычная версия очередного из- непосредственного программирова-
дания книги из классический серии ния: доступные в Python типы данных n
Издательство: «Символ-Плюс»
«Learning...» издательства O'Reilly – от- и работа с ними, основные инструк- n
Год издания: 2009
личное подспорье для изучения наби- ции, функции. n
Количество страниц: 848
рающего обороты языка программи- Не остался в стороне и такой важ- n
ISBN: 978-5-93286-138-7
рования Python. ный компонент, как модули: рассмот- n
Цена: ≈ 800 руб.
В ее основе трехдневные практи- рены их использование и создание, К н и г а п р е д о с т а в л е н а и з д ат е л ь с т в о м
ческие курсы автора этой книги. К со- а также пакеты модулей. «Символ-Плюс».
ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
94
Российская Федерация печати «Гасид» (370102, г. Баку, ул. Джавадхана, 21)
n
Подписной индекс: годовой – 20780, полугодовой – 81655 n
Казахстан – по каталогу «Российская Пресса» через
Каталог агентства «Роспечать» ОАО «Казпочта» и ЗАО «Евразия пресс»
n Подписной индекс: годовой – 88099, полугодовой – 87836 n
Беларусь – по каталогу изданий стран СНГ через РГО
Объединенный каталог «Пресса России» «Белпочта» (220050, г. Минск, пр-т Ф. Скорины, 10)
Адресный каталог «Подписка за рабочим столом» n
Узбекистан – по каталогу «Davriy nashrlar» российс-
Адресный каталог «Библиотечный каталог» кие издания через агентство по распространению пе-
n Альтернативные подписные агентства: чати «Davriy nashrlar» (7000029, г. Ташкент, пл. Муста-
Агентство «Интер‑Почта» (495) 500-00-60, курьерская киллик, 5/3, офис 33)
доставка по Москве n Армения – по списку номенклатуры «АРЗИ» через
Агентство «Вся Пресса» (495) 787-34-47 ГЗАО «Армпечать» (375005, г. Ереван, пл. Сасунци Да-
Агентство «Курьер‑Прессервис» вида, д. 2) и ЗАО «Контакт‑Мамул» (375002, г. Ереван,
Агентство «ООО Урал‑Пресс» (343) 375-62-74 ул. Сарьяна, 22)
ЛинуксЦентр www.linuxcenter.ru n Грузия – по списку номенклатуры «АРЗИ» через АО
n Подписка On-line «Сакпресса» ( 380019, г. Тбилиси, ул. Хошараульская, 29)
http://www.arzi.ru и АО «Мацне» (380060, г. Тбилиси, пр-т Гамсахурдия, 42)
http://www.gazety.ru n Молдавия – по каталогу через ГП «Пошта Молдовей»
http://www.presscafe.ru (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
по списку через ГУП «Почта Приднестровья» (МD-3300,
СНГ г. Тирасполь, ул. Ленина, 17)
В странах СНГ подписка принимается в почтовых отделе- по прайс-листу через ООО Агентство «Editil Periodice»
ниях по национальным каталогам или по списку номенк- (МД-2012, г. Кишинев, бул. Штефан чел Маре, 134)
латуры «АРЗИ»: n Подписка для Украины:
n Азербайджан – по объединенному каталогу россий- Киевский главпочтамт
ских изданий через предприятие по распространению Подписное агентство «KSS», тел./факс (044)464-0220
Подписные
индексы:
20780 *
+ диск с архивом
статей 2008 года
81655
без диска
**
по каталогу агентства
«Роспечать»
88099 *
+ диск с архивом
статей 2008 года
87836
без диска
**
по каталогу агентства
«Пресса России»
*
Годовой
**
Полугодовой
***
Диск вкладывается
в февральский
номер журнала,
распространяется
только на территории
России
УЧРЕДИТЕЛИ
Частные лица
РЕДАКЦИЯ
Генеральный директор
Владимир Положевец
Ответственный секретарь
Наталья Хвостова
sekretar@samag.ru
Технический редактор
Владимир Лукин
Главный редактор
электронного приложения
«Open Source» Вы знаете, как бороться
Дмитрий Шурупов с «Просачивающейся А дварью»?
osa@samag.ru
Применяете «Чарующий скрипт»?
Внештатные редакторы
Алексей Барабанов Редакция журнала «Системный администратор» представляет
Александр Емельянов
Кирилл Сухов
вам новый админский сувенир для истинных знатоков своего дела –
Василий Гусев карточную игру «AYTCOPCEP».
Андрей Бирюков
Олег Щербаков
Александр Слесарев
В ходе игры участники тянут из колоды карты «Проблем», с которым
Сергей Супрунов им предстоит бороться один на один или с помощниками, используя
подручные средства. Успешное решение «Проблемы» добавляет игроку
РЕКЛАМНАЯ СЛУЖБА
тел./факс: (495) 628-8253 (доб. 120)
уровни. Если вы не считаете себя добрым и милым, то для вас в игре
Дарья Зуморина предусмотрена специальная возможность – сделать гадость другому
reсlama@samag.ru участнику и обойти его в погоне за уровнями.
Евгения Тарабрина
expo@samag.ru
Победителем становится тот, кто быстрее всех
Верстка и оформление доберется до 10 уровня. Остальные подробности об игре,
maker@samag.ru
Дизайн обложки
«Чарующем скрипте», «МегаУтилите» и «Клановом коктейле»
Дмитрий Репин вы сможете узнать из правил игры.
По вопросам распространения
обращайтесь по телефону:
«AYTCOPCEP» – это пародия на жизнь, которая позволит вам
Светлана Зобова ощутить всю прелесть аутсорсинга... но без всей словесной мишуры,
(495) 628-8253 (доб. 120) типа, «утром стулья, вечером деньги…»!
107045, г. Москва,
Ананьевский переулок, дом 4/2, стр. 1 Приобретайте игру «AYTCOPCEP» в редакции.
тел./факс: (495) 628-8253
Сайт журнала: www.samag.ru
ИЗДАТЕЛЬ
ООО «С 13»
Отпечатано типографией
ООО «Периодика»
Тираж 17000 экз.
Тираж электронной версии 62000 экз.
96