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

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

ЛИ
С
ЛИ
ТЯ Е

Ж ПИ
ЗА ДНИ
НУ

РА КУ
ЛЫ ГО

ТИ РАС
К У ВО

РО
№5(78) май 2009
НИ НО

СТ
БЫ
подписной индекс 20780
КА

www.samag.ru

OCS Inventory NG и GLPI:

№5(78) май 2009


И
проводим учет оборудования

ЬГ
ЬД О
БО А
К

ИС НН
ЕН
РА СК
ТЕ
УС

ИЛ ДА
У
ТП

НА П
Л ОТ

НЧ ЖИ
ВО

РА ЛЕ

КО НЕО
Л

Устанавливаем Windows XP
АВ ОС
ХА
УЕ

ЗА
с помощью SCCM 2007 R2

Доступный WiMAX
Так видит журнал читатель, оформивший подписку:
Мониторинг Cisco IDS/IPS
на примере модуля IDSM2
c помощью MRTG

Настраиваем хранение логов


в базе данных MySQL

PowerShell: поиск объектов


в каталоге Active Directory

Работаем с FTP-сервером
из «1С»
ПОДПИШИТЕСЬ И ЧИТАЙТЕ! Портал в стиле Web 2.0
Роспечать – 20780, 81655 Python: сложные аспекты
Пресса России – 88099, 87836
Интер-почта – тел. (495) 500-00-60 Sun Tech Days 2009:
кризис не помеха
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама
Реклама
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Прогноз погоды на второе полугодие 2009.

В журнале «Системный администратор» ожидаются новые захватывающие и полезные статьи,


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

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

Июль будет ветреным и закончится солнечным Днем системного


администратора.

Информация о сертификации, учебных центрах и комментарии экспертов


по вопросам IT‑сферы придут с севера.

Обильные осадки в виде админских призов выпадут в октябре.


Во избежание похолодания не забудьте оформить подписку.

Все знают, что в редакции нашего журнала живет Админский приз. Мы называем его просто Приз.
Случилось так, что к 2009 году Админский приз вырос и приобрел необыкновенные свойства.
Он так и тянется к самым любознательным, опытным и общительным. А еще Приз стал очень капризным:
он утверждает, что достанется только тем, кто даст правильные ответы на его загадки. Приз также
обожает слушать истории. Любит интересные рассказики и с удовольствием сидит на форумах.

Приглашаем вас принять участие в розыгрыше призов «Админский приз 2009». Вам понадобится
собрать коды из журналов и получить дополнительные коды за активность на форуме, за победы
на чемпионате по игре «АУТСОРСЕР», за правильные ответы на задачи. Дополнительные коды
увеличивают ваши шансы на победу!

Розыгрыш будет проходить в три этапа:


I – участвуют коды из №7, 8, 9 за 2009 год и дополнительные коды, полученные с июля по август.
II – участвуют коды из №10, 11, 12 за 2009 год и дополнительные коды, полученные с октября
по декабрь.
III – участвуют коды из всех шести номеров журнала за 2-е полугодие 2009 года и дополнительные
коды, полученные участниками за весь период проведения конкурса.

Не так давно по адресу http://www.samag.printdirect.ru/?partner_id=6206 открылась «Лавка админа»,


где можно приобрести разнообразные сувениры от журнала «Системный администратор».

Так полюбившийся вам на пакетах мозг запросто окажется ковриком у вас на столе.

«Геноцид Юзеров» будет внушать всем ужас.

Коллекция плакатов обогатится админскими историями.

Админская игра «АУТСОРСЕР» скрасит ваш досуг.

Кружки порадуют вас внешним оформлением и содержимым.

Любителям минимализма возможно придется по вкусу значок!

Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
3 ТЕНДЕНЦИИ 50 Доступный WiMAX
Подключение USB-модема Samsung SWC-U200 к мар-
РЕПОРТАЖ шрутизатору Asus WL-500gP.
Павел Закляков,
4 Sun Tech Days 2009: кризис не помеха Георгий Пахомов
В Санкт-Петербурге прошла очередная конференция
Sun Tech Days. 60 Обзор операционной системы
Кирилл Сухов gNewSense GNU/Linux 2.2 Deltah
Знакомство с gNewSense.
АДМИНИСТРИРОВАНИЕ Игорь Штомпель

10 Учет оборудования с OCS Inventory NG ИНТЕРВЬЮ


и GLPI
Устанавливаем и настраиваем систему для инвентари- 66 В чем секрет популярности
зации компьютеров в локальной сети, комплектующих Linux User Group из Пекина?
и программного обеспечения. Залогом успешного развития какого-либо проекта за-
Сергей Яремчук частую является удачное стечение обстоятельств и при-
сутствие определенного типа людей, которые заряжены
20 «Облачные» перспективы защиты на создание позитивной атмосферы вокруг себя. Од-
корпоративных endpoint-компьютеров ним из таких интересных проектов является пекинская
Тенденции использования Cloud Computing в области группа Linux-пользователей – BeiJing Linux User Group.
информационной безопасности. Мы побеседовали с ярким представителем BLUG – Фре-
Алексей Лесных дериком Мюллером.
Антон Борисов
22 Мониторинг Cisco IDS/IPS на примере
модуля IDSM2 c помощью MRTG АДМИНИСТРИРОВАНИЕ «1С»
Если ваши системы обнаружения вторжения не сигна-
лизируют своевременно о сбоях в функционировании 70 Работаем с FTP-сервером из 1С
или реконфигурации сети, не спешите искать дорогос- Создаем обработку, которая позволит принимать фай-
тоящие решения. лы и отправлять их на FTP-сервер.
Андрей Дугин Андрей Луконькин

26 Настраиваем хранение логов 72 Управление базами данных 1С 7.7


в базе данных MySQL при помощи групповых политик
Не всегда есть возможность зайти на удалённый сер- Решаем задачу переноса баз на новый сервер и вво-
вер для просмотра журналов системы или приложений. дим централизованное управление списком доступных
Иногда возникает необходимость делегировать друго- пользователю баз данных.
му сотруднику задачи мониторинга. А может, под ру- Владимир Борисов
кой не оказалось средств для удалённого доступа?
Этих проблем можно избежать при помощи rsyslog. ЧЕЛОВЕК НОМЕРА
Сергей Крутилин
74 Приключения продолжаются…
30 Делегируем права на перемещение Интервью с Алексеем Гончаровым, директором ком-
учетных записей пользователей пании «Русоникс».
в Active Directory. Часть 3 Оксана Родионова
Рассмотрим вопросы программной манипуляции объ-
ектами Active Directory, работу с событиями с помощью ВЕБ
WMI, модификацию списков контроля доступа (ACL).
Вадим Андросов 78 Портал в стиле Web 2.0
В корпоративной среде все большую популярность на-
38 Устанавливаем Windows XP бирают решения, ориентированные на веб, как на среду
с помощью System Center Configuration размещения различных приложений, ориентированных
Manager 2007 R2 на повседневное использование в пределах офиса.
Для облегчения труда системного администратора ком- Александр Башкиров
пания Microsoft создавала различные средства автома-
тизации процесса установки ОС. Вначале это были фай- ПРОГРАММИРОВАНИЕ
лы ответов и Remote Installation Services, затем Windows
Deployment Services. Сегодня речь пойдет об Operation 84 Python: сложные аспекты
System Deployment в SCCM 2007 R2. Рассматриваем метаклассы, дескрипторы атрибутов
Алексей Тараненко и менеджеры контекста.
Дмитрий Васильев
46 PowerShell. Поиск объектов в каталоге
Active Directory ТВОРЧЕСТВО АДМИНА
Большинство операций в каталоге Active Directory сво-
дится к поиску объектов по различным критериям. Рас- 90 Последние минуты
смотрим подробно процедуру поиска с помощью биб- Рассказ.
лиотек .NET Framework на PowerShell. Станислав Шпак
Иван Коробко
29, 49, 65, 89 BUGTRAQ


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Open Source разветвляется: компании Nokia так анонсировал новый проект: «oFono.org –
Nagios – ICINGA, MySQL – ODA это место, которое соберет разработчиков для совместного
На май пришлась точка кипения сообществ сразу двух из- проектирования инфраструктуры для создания приложений
вестных Open Source-проектов: Nagios и MySQL. Энтузиас- для мобильной телефонии (GSM/UMTS). Наработки oFono.
ты настолько устали от давления со стороны главных ком- org лицензированы под GPLv2 и включают высокоуровне-
мерческих компаний, занимающихся развитием этих про- вый D-Bus API, который может использоваться телефонны-
дуктов, что решили запустить альтернативные ветки. ми приложениями, распространяемыми под любыми лицен-
Так, в начале мая у популярного средства мониторин- зиями. Кроме того, в oFono.org входит низкоуровневый под-
га Nagios появилось ответвление ICINGA. Авторы форка ключаемый API для интеграции как с Open Source-, так и
объяснили причины появления нового проекта на сайте со сторонними телефонными стеками, сотовыми модема-
www.icinga.org. Если вкратце, то компания Nagios Enterprises ми и бэкендами хранения. Функциональность этого API ос-
LLC, обеспечивающая коммерческую поддержку Nagios, нована на общедоступных стандартах – в частности, 3GPP
в последнее время стала всерьез докучать любым сторон- TS 27.007 AT command set for User Equipment (UE)».
ним инициативам, действующим в отношении к Open Source- Поддержкой проекта занимаются Intel и Nokia – при этом
проекту Nagois. В частности это проявляется в постоянной компании приглашают всех заинтересованных разработчи-
медлительности в принятии патчей сообщества к базово- ков для присоединения к проекту. Исходный код наработок
му коду Nagios, а также в регулярных запретах использо- oFono доступен на ofono.org/downloads.
вания названия Nagios и требованиях переименовывать Незадолго до этого Intel уже совместно с Novell объяви-
сайты/проекты. В ICINGA намерены устранить эти пробле- ла о начале сотрудничества в области развития мобильной
мы, поддерживая классическую модель разработки при- Linux-платформы Moblin и ее продвижения среди произво-
ложения всем Open Source-сообществом. Авторы обеща- дителей аппаратного обеспечения (OEM). Одновременно
ют полную совместимость с Nagios, а свой первый релиз – Novell также анонсировала намерение разработать свой
уже в конце мая. Первую стабильную версию ICINGA сто- программный Linux-продукт на базе Moblin, ориентирован-
ит ожидать 28 октября 2009 года. ный на использование на нетбуках.
А в середине месяца компании Monty Program Ab Более того, в Novell собираются учредить лабораторию
и Percona, специализирующиеся на СУБД MySQL, объяви- Open Labs в Тайване, которая будет сотрудничать с центром
ли о создании консорциума Open Database Alliance (ODA) Taiwan Moblin Enabling Center (MEC) – совместной инициа-
для обеспечения независимой поддержки MySQL. Open тивой Intel и Тайваньского института информационной про-
Database Alliance намерен собрать вокруг себя компании, мышленности (Taiwan Institute for Information Industry). Заяв-
заинтересованные в дальнейшем развитии открытой СУБД ляется, что в Novell Open Labs займутся «развитием адап-
и предоставлении различных услуг на ее базе. Что инте- тации» Moblin при содействии и участии MEC.
ресно, среди главных инициаторов ODA оказался Миха-
эль Видениус (Michael «Monty» Widenius) – автор ориги- Linux.com обновился и стал социальным
нальной версии СУБД MySQL, покинувший Sun более по- Некоммерческая организация Linux Foundation, занима-
лугода назад и ныне руководящий своей компанией Monty ющаяся продвижением свободной операционной систе-
Program Ab. Последняя работает над MariaDB – ответвле- мы GNU/Linux, объявила о запуске новой версии сайта
нием СУБД MySQL, использующим в качестве движка хра- Linux.com.
нения Maria. Ресурс был создан в результате достигнутого в марте
Вот как Видениус прокомментировал появление ODA: соглашения с SourceForge по дальнейшему развитию Linux.
«Наша цель с Open Database Alliance – предоставить глав- com под руководством Linux Foundation. Помимо традици-
ный информационный центр для разработки MySQL, под- онной информации вроде новостей, статей и документа-
держать по-настоящему открытую экосистему разработки ции на сайте представлена интересная особенность – сис-
с непосредственным участием сообщества, обеспечить вы- тема оценки знатоков Linux («Linux Guru Rankings»). По за-
сокое качество кода MySQL. Участники альянса на данный думке авторов, такая система будет способствовать эф-
момент будут обладать значительным голосом при решении фективному взаимодействию пользователей и разработ-
вопросов о том, какой должна быть структура организации, чиков, которые будут обмениваться своими знаниями, на-
и мы заинтересованы в сотрудничестве со всеми в индуст- капливая баллы.
рии, кто зависит от MySQL или работает над ней». По итогам каждого года редакция Linux.com будет на-
Сооснователем ODA стал Петр Зайцев (Peter Zaitsev) – граждать главных знатоков. Так, первый гуру получит Linux-
наш соотечественник, являющийся исполнительным ди- ноутбук, на котором поставит свой автограф создатель яд-
ректором хорошо известной в сообществе MySQL компа- ра Linux Линус Торвальдс (Linus Torvalds). Еще 5 лучших бу-
нии Percona Inc. дут приглашены на Linux Foundation Collaboration Summit
и займут почетные места «представителей сообщества»
В Open Source-телефонии очередные на собраниях по планированию развития Linux.com. На-
подвижки – с новым проектом oFono конец, 50 лидеров попадут в ежегодно публикуемый Linux
Компании Intel и Nokia объявили о запуске нового Open Foundation список главных знатоков.
Source-проекта, призванного разработать открытое реше-
ние, реализующее возможности телефонии, – oFono. Подготовил Дмитрий Шурупов
Аки Ниеми (Aki Niemi) из подразделения Maemo Software по материалам www.nixp.ru

№5, май 2009 


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Sun Tech Days 2009: кризис не помеха
8-10 апреля в Санкт-Петербурге прошла очередная конференция Sun Tech Days.

В
этом году традиционная встречасостояния моровой экономики была сударственного университета (СПбГУ)
разработчиков, использующих посвящена существенная часть пер- вычислительного комплекса, включаю-
технологии Sun Microsystems, вой пресс-конференции. щего счетный кластер и учебный класс
проходила на Васильевском остро- По словам Джита Кола, понима- на 20 рабочих станций Sun Ultra 24.
ве в павильонах выставочного цент- ние того, что условия могут изменить- Ранее, 7 февраля, компания Sun
ра «Ленэкспо». ся, пришло ещё три-четыре года на- объявила об открытии центра компе-
Хотелось этого или нет, но фоном зад, и тогда же были предприняты ша- тенции по программным продуктам
конференции был кризис и связанные ги для работы. В первую очередь это и решениям с открытым исходным ко-
с ним тревожные слухи о судьбе корпо-развитие многоядерных вычислитель- дом на базе Центра высоких техноло-
рации. Несмотря на это на самом ме- ных систем, открытых систем хранения гий Sun Microsystems в Санкт-Петер-
роприятии о тяжестях, переживаемых данных, инвестиции в новые, перспек- бурге. Эта инициатива представляет
мировой экономикой, хотелось думать тивные технологии. Всё это дало свои собой демонстрационную и тестовую
меньше всего – столько интересного результаты – к кризису Sun подошли площадку для партнеров, нынешних
было показано. К экономическим ре- с некоторым заделом. Как объяснил и потенциальных партнёров Sun, а так-
алиям вернули только сами сотрудни- Джит, деньги можно зарабатывать раз- же студентов.
ки Sun, но об этом позже. личными путями, и если тот сегмент Интерес Sun к нашей стране не слу-
Первый день начался пленарным бизнеса корпорации, который опирал- чаен. Россия сегодня является одной
докладом Джита Коула (Jeet Kaul), ви-ся на традиционные технологии, раз- из трех стран (наряду с США и Индией)
це-президента подразделения кли- работанные десятилетие назад, сей- с самым большим сообществом разра-
ентского программного обеспечения час и в самом деле испытывает замет- ботчиков. По данным Григория Лабзов-
(Client Software Group). Джит много го-
ный спад, то сегмент новых технологий ского (директора Санкт-Петербургско-
ворил о приверженности Sun откры- вполне продолжает развиваться. го центра разработки Sun Microsystems),
тым технологиям и о причинах этой Боб Поррас (Bob Porras), вице-пре- у нас существует около 50 000 актив-
приверженности. Были озвучены до- зидент подразделения Solaris Data, ных разработчиков, поддерживающих
стижения корпорации в таких направ- Availabiliy, Scalability и HPC, заявил, регулярную связь с центром, среди них
лениях, как OpenSolaris, VirtualBox, что одним из важных последствий кри- свыше 10 000 студентов.
MySQL, GlassFish и других. Не были зиса стало ускорение перехода ряда В связи с этим ожидаемой новостью
обойдены стороной средства разра- ведущих компаний на открытые плат- стало объявление о начале действия
ботки – NetBeans и SunStudio, а такжеформы, на программное обеспечение в нашей стране программы Sun Startup
концепция Cloud Computing. с открытым исходным кодом. Поэтому Essential, предоставляющей начинаю-
Большое внимание в пленарном компания Sun твердо намерена вос- щим российским компаниям особые,
докладе было посвящено Rich Internet пользоваться кризисом к своей выго- благоприятные условия для приобре-
Applications и вообще клиентским тех-де, опираясь на стратегию продвиже- тения и сопровождения оборудова-
нологиям, в первую очередь платфор- ния открытого ПО. ния и программного обеспечения Sun
ме JavaFX. Рассказ сопровождался Григорий Лабзовский, директор Microsystems.
эффектными демонстрациями, из ко- Санкт-Петербургского центра разра- Кому-то это может показаться
торых наиболее запомнилось приме- ботки программного обеспечения, за- странным, но, по уверению Боба Пор-
нение технологии Sun SPOT в проек- явил, что компания намерена актив- раса (Bob Porras), вице-президента
те «Сенсомоторный интерфейс управ- но заниматься продвижением идеи от- подразделения Solaris Data, Availability,
ления пользователя». крытого ПО на всех уровнях, и это сей- Scalability и HPC, для Sun Microsystems
После пленарного доклада при- час особенно актуально с учетом того, потенциал роста экономики России
шлось буквально разрываться – разу- что правительство с недавних пор про- представляется очевидным. Руко-
меется, присутствовать на всех докла-никлось идеей Open Source. Sun уже водствуясь этим, Sun планирует про-
дах и пресс-конференциях я не смог, вступила в недавно созданную Рос- должать вкладывать сюда средства
посему обо всех последующих собы- сийскую ассоциацию свободного про- как за счет участия в разработке ПО
тиях рассказываю не в хронологичес- граммного обеспечения (РАСПО) и ак- с открытым кодом, так и при помощи
ком порядке, а по основным темам кон-тивно взаимодействует с Минкомсвязи прямых инвестиций.
ференции. по вопросам внедрения открытого ПО. Возвращаясь к положению корпо-
Последней инициативой Sun в этой рации в свете мирового экономическо-
Кризис и социальная области в России стал состоявшийся го кризиса, следует заметить, что всё
ответственность 7 апреля 2009 года ввод в эксплуата- это происходило в свете недавних упор-
Работе корпорации и её технологичес- цию переданного в дар физическому ных слухов о несостоявшейся сделке
ких партнёров в условиях непростого факультету Санкт-Петербургского го- по покупке компании IBM. Я задал воп-


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Платформе JavaFX была целиком
посвящена и вторая пресс-конферен-
ция, Джит Кол отвечал на вопросы ку-
рируемой им разработки. Лично меня
интересовали сроки выхода JavaFX
SDK для платформы Linux (пока есть
только под Windows), и я не преминул
воспользоваться служебным положе-
нием. Был получен вполне определён-
ный ответ – в июне, после проведения
конференции JavaOne.
Напоследок сотрудники Sun за-
интриговали слушателей проектом
JavaFX TV, но детали прояснить отка-
зались. Прямая цитата: «Я знаю, что
это такое, но не скажу».

OpenSolaris
Роман Штробл Это, естественно, была самая популяр-
ная тема конференции, которой было
рос об этом одному из сотрудников Sun Это потенциально широчайший, посвящено больше всего докладов
после окончания пресс-конференции не имеющий аналогов рынок распро- и практических занятий.
и получил ответ, что такие переговоры странения приложений. В общем, вы- Начало было положено Крисом Ар-
и правда имели место. А ещё услышал ражаясь лозунгами, JavaFX – единая месом (Chris Armes) докладом «Что та-
спасибо за то, что не задал подобного платформа для разработки и распро- кое OpenSolaris и чем он хорош?». Затем,
вопроса на пресс-конференции. странения программ для всех экранов логически развивая неизбежное, после-
Впрочем, сейчас, когда я пишу эти вашей жизни. довали два доклада Романа Штробла
строки, мы уже знаем, чем всё закон- В день открытия конференции Sun (Roman Strobl) «Как эффективно перей-
чилось (см. врезку «Солнечное затме- Microsystems представила платформу ти на OpenSolaris» и «Эффективная ра-
ние»), и оптимистичные слова Джита JavaFX Mobile – средство для создания бота в OpenSolaris» и Игоря Никифоро-
Коула, естественно, не кажутся теперь на базе Java решений для беспровод- ва «Как перенести приложение с откры-
такими убедительными. Впрочем, без- ной связи, которые в полной мере ис- тым кодом в OpenSolaris?»
надёжный бизнес, наверное, никого бы пользуют многофункциональные кон- Далее в докладах, проходивших
не заинтересовал. Мне кажется, что то, тент-сервисы и в то же время сохраня- в секции «OpenSolaris», обсуждались
что произошло, далеко не худший вы- ют весь потенциал Java Platform Micro вопросы оптимизации, виртуализации,
ход для компании. Edition (JavaME). применения средств разработки. Отде-
В докладе «JavaFX: платформа льное выступление было посвящено
Технология JavaFX для привлекательных интерактивных реализации концепции OpenStorage.
JavaFX была посвящена чуть ли не по- интернет-приложений» Александ- Завершалась секция докладом
ловина «клиентской» секции конфе- ров Зуев рассказал о концепции Rich Кристофа Скубы (Christoph Schuba)
ренции. Эта платформа провозгла- Internet Application и обосновал необхо- «Обеспечение безопасности при раз-
шена флагманской технологией ком- димость нового средства разработки работке и внедрении».
пании. для их реализации (почему не Java?). Всюду раздавали диски с различ-
В своей статье о JavaFX в №4 Затем был рассказ об особенностях ными вариантами дистрибутива. Про-
за 2009 год я, как выяснилось, допус- платформы JavaFX и языка JavaFX ходили мастер-классы по различным
тил ряд неточностей, и тут самое вре- Script с многочисленными примерами аспектам применения системы (ZFS,
мя их исправить. кода. Были показаны примеры реали- DTrace, виртуализация сетевых интер-
Прежде всего JavaFX – это среда, зации различных графических и фото- фейсов Crossbow).
в основе которой лежит платформа эффектов, анимации, встраиваемого
Java, и работающая там, где есть Java. видео и многого другого. При этом лю- MySQL
Принцип write once run anywhere здесь бого скептика бы поразило, как легко В докладе «MySQL: взгляд в будущее»
воплощён в том, что одна и та же про- с применением новой технологии мо- Константин Осипов рассказал о но-
грамма предназначена для настоль- жет быть реализовано то или иное гра- вых возможностях СУБД, появивших-
ного ПК, мобильника, а в будущем фическое/мультимедиа решение. ся в версии 5.1 (partitioning, row-based
и для TV. Продолжил рассказ о JavaFX Вя- replication (RBR), event scheduler, под-
Что особенного в JavaFX? Это мо- чеслав Баранов в докладе «JavaFX: держка XML/XPath, диспетчер событий
дель разработки за счёт декларатив- анимация и медиа», в котором подроб- и др.). При этом докладчик постарался
ности языка, позволяющая отделить но осветил технологию реализации ме- развеять слухи о неготовности проек-
дизайнеров от программистов. диаконтента и анимации. та 5.1 и всякие мрачные домыслы, свя-


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
занные с уходом из проекта MySQL её ванных на Java, в мобильных устрой- Project Kenai включает все основ-
основателей. ствах. Цифры, приведённые в начале ные сервисы для подобных площа-
После рассказа об изменении этого выступления, впечатляли – «мо- док, как то: форумы, списки рассылок,
в процессе и цикле разработки СУБД бильная Java» используется более чем Wiki. Большое внимание уделено воз-
(внедрена Bazaar) был сделан обзор в шести миллиардах различных уст- можностям совместной работы – сис-
возможностей ветки 5.x в целом, а так- ройств, в том числе в двух с половиной темы контроля версий представлены
же будущих возможностей MySQL 6.x. миллиардах телефонов. В этом безоб- Subversion, Mercurial и любимым Тор-
Было интересно послушать про фор- разии задействованы 180 миллионов вальдсом Git. Для отслеживания оши-
ки MySQL (XtraDB, OurDelta, Drizzle), разработчиков. Очевидно, чтобы за- бок предусмотрена возможность ис-
также про движки сторонних произво- нять разработчиков ещё больше, в Sun пользования систем Jira и Bugzilla.
дителей, а это, кроме давно привычно- на достигнутом не останавливаются, Впрочем, на прямой вопрос, чем дан-
го InnoDB, ещё и PrimeBase XT, Sphinx технология непрерывно развивается. ный проект принципиально отлича-
SE и Maria. Рассказывалось о новой платфор- ется от, скажем, от SourceForge, осо-
ме JavaFX Mobile, о релизе MIDP 3.0 бо подчеркивалось наличие «On-line-
DTrace (Mobile Information Device Profile), о кон- поддержки» пользователей. Вот толь-
Технологии DTrace было посвяще- цепции Mobile Services Architecture v2. ко в детали оной меня не посвятили, от-
но несколько выступлений. В докла- Также было уделено внимание специ- купившись бейсболкой.
де «DTrace: наблюдение за приложе- фикации JSR 290 (Language & XML User Стенд Cloud Computing оста-
ниями на Java и на языках сценариев Interface Markup Integration lu-ray. вил несколько странное впечатление.
в OpenSolaris» Саймон Ритер (Simon В секции клиентских технологий Два американца показывали на мони-
Ritter) в очередной раз представил тех- Василий Исаенко рассказывал о том, торе нечто не вполне внятное (что, в об-
нологию (хотя, по-моему, она давно не что нового произошло в техноло- щем, неудивительно, что там может
нуждается в представлении), показал гии JavaCard. Сама технология пред- быть наглядно) и много говорили про
основы её применения с примерами ко- ставляет собой открытую и не зави- «облачные» вычисления, но без всякой
да на языке D, рассказал о возможнос- сящую от производителя платформу конкретики. Очевидно, что данной те-
тях применения в технологии скрипто- для смарт-карт и прочих «умных» ус- мой Sun занимается, но, по-видимому,
вых языков (Python, PHP и т.д.). Закон- тройств с ограниченными ресурсами. показывать результаты ещё рановато.
чил Саймон рассказом о применении JavaCard совместима с существующи- Также на стендах были представ-
DTrace для диагностирования прило- ми стандартами для смарт-карт. лены другие продукты и технологии
жений MySQL, и эта тема была под- При изучении стендов больше все- компании – SunStudio, JavaME, JavaFX,
хвачена на следующий день коротким, го заинтересовали проекты: OpenSolaris, проект BlackBox (Sun MD
но очень познавательным докладом Project Kenai – проект Sun по хос- S20).
Алексея Копылова «Поддержка DTrace тингу открытых проектов. На стен-
в MySQL: способы решения типичных де проекта сотрудники подчёркивали, University Day
проблем с производительностью». что он предназначен для разработок, Третий день конференции – «University
Закрепление материала на прак- не обязательно использующих техно- Day» был организован специально для
тике состоялась в конце первого дня логии Sun. Основное условие – проект студентов и преподавателей. На нём
конференции, в мастер-классе Фи- должен быть иметь лицензию, одоб- демонстрировались различные акаде-
липпа Торчинского «Глубокое изуче- ренную Open Source Initiative (OSI). мические программы Sun, программы
ние приложений на языке Java с по-
мощью Dtrace».

Второй день
Второй день открывал пленарный до-
клад Боба Порраса, посвящённый воп-
росам разработки, Open Solaris, кон-
цепции Open Storage и виртуализа-
ции (xVM Virtual Box). Был представ-
лен российский портал, посвящённый
OpenSolaris, – http://ru.opensolaris.org.
Также Боб рассказал о Sun Cloud – пуб-
личной сервис-ориентированной сети,
создаваемой специально для разра-
ботчиков, компаний-стартапов и сту-
дентов.
В докладе Константина Золотнико-
ва и Сергея Трошина «Мобильная Java:
что дальше» рассказывалось о перс-
пективах развития технологий, осно- Григорий Лабзовский

№5, май 2009 


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
тема университетских клубов, объеди-
Солнечное затмение ма Solaris, ничто не угрожает – продук- няющих людей, интересующихся сво-
«Горе! Горе! Крокодил ция Oracle давно и прочно интегрирована бодным ПО. Sun активно поддержи-
Солнце в небе проглотил!» с этими технологиями, и, в общем, ради вает идею открытого исходного кода,
Наступила темнота. них всё и затевалось. По некоторым дан- и вкладывает много сил в развитие
Не ходи за ворота:
ным, можно также не переживать за ар- этого сообщества. Под эгидой компа-
Кто на улицу попал -
Заблудился и пропал. хитектуру Sun SPARC и технологию Open нии на сайте osum.sun.com фактичес-
Storage, уже заявлено о дополнительных ки создаётся своеобразная социаль-
К.И. Чуковский инвестициях в них наряду с Java и Solaris. ная сеть для разработчиков.
20 апреля 2009 года корпорации Sun Также не стоит сильно переживать за судь- Студенческой аудитории также
Microsystems и Oracle объявили о дости- бу СУБД MySQL – её развитие будет про- пришлось выслушать свою порцию ма-
жении договоренности, согласно которой должено, об этом, а также о том, что Java териалов по JavaFX и OpenSolaris в до-
Oracle приобретает Sun Microsystems. Об- останется открытой технологией, заявил кладах Александра Щербатого и Фи-
щая сумма сделки составит около 7,4 млрд президент Oracle на совещании с руко- липпа Торчинского.
долларов, из которых 1,8 млрд составляют водством Sun. Параллельно с докладами и «круг-
финансовые обязательства Sun. По-иному обстоят дела с OpenOffice.org. лыми столами» для преподавателей
Исполнительный директор Oracle Лар- Пока высказываются намерения сделать вузов, работающих с технологиями
ри Эллисон (Larry Ellison), комментируя со- его независимым проектом, организо- Sun Microsystems, проводились мастер-
глашение, сказал: «Oracle станет единс- вав для курирования разработки неком- классы по созданию приложений с ис-
твенной компанией, которая сможет соз- мерческую организацию наподобие Linux пользованием JavaFX и OpenSolaris.
давать полностью интегрированные сис- Foundation. Последний был сосредоточен на про-
темы, в которых все компоненты макси- Системы виртуализации VirtualBox и грамме сертификации знаний и вызвал
мально эффективно работают друг с дру- распределённая кластерная файловая сис- повышенное количество вопросов.
гом. Наши заказчики получат дополнитель- тема по всем признакам также не должны Далее следовали доклады пред-
ные конкурентные преимущества, посколь- пропасть, так как востребованы и приме- ставителей Sun в вузах и выступления
ку затраты на системную интеграцию сни- няются в Oracle. преподавателей. Особый интерес вы-
зятся, а производительность систем, их Собственно, это всё, что известно на звал проект Wonderland, представлен-
надежность и безопасность – повысятся». настоящий момент. Какая судьба ожи- ный Евгением Бугровым. Этот инстру-
Ему вторит президент компании Сафра дает OpenSolaris, OpenSparc, OpenJDK, мент для создания виртуальных интер-
Кэтц (Safra Catz): «Мы ожидаем, что в ре- NetBeans, GlassFish, JavaFX и многие дру- активных миров сразу же вызвал сре-
зультате данной сделки корпорация Oracle гие продукты? Будем надеяться на лучшее, ди публики разговоры о Лукьяненовс-
в течение первого полного года после за- перспективные технологии не должны про- ком Диптауне.
крытия увеличит свою прибыль, как мини- пасть. Для некоторого оптимизма приве- Конференция закончилась. К со-
мум, на 15 центов на акцию... Приобрете- ду слова Скотта Макнили (Scott McNealy), жалению, разорваться, как я ни ста-
ние этой корпорации уже в первый год при- председателя совета директоров корпо- рался, не получилось, и многое из то-
несет больше прибыли в расчете на одну рации Sun Microsystems: «Oracle и Sun бы- го, что там происходило, здесь не осве-
акцию, чем приобретение компаний BEA, ли пионерами ИТ-отрасли и тесно сотруд- щено. Это OpenESB, GlassFish 3.0, ZFS,
PeopleSoft и Siebel вместе взятых». ничают уже более 20 лет. Объединение яв- Zembly – среда разработки для соци-
Слухи о финансовых проблемах у Sun ляется естественным развитием этих вза- альных сетей, проект Blackbox (модуль-
ходили уже довольно давно, журналис- имоотношений и событием, которое изме- ный центр хранения данных) и другие
ты чуть не «продали» корпорацию IBM, нит ИТ-отрасль». интересные вещи. Всем заинтере-
но эта новость всё равно прозвучала не- Источники: сованным предлагаю ознакомиться
ожиданно. Нас, конечно, больше интересу-  Пресс-релиз компании Sun с презентациями докладов, которые
ет не увеличение капитализации или при- Microsystems – http://ru.sun.com/news/ выложены на странице конференции
были Oracle, а судьба технологий и нара- press/2009/april/pr200409.html. (http://developers.sun.ru/techdays2009/
боток компании Sun, судьба многих из них  Ответы на часто задаваемые воп- index.phpoption=com_content&task=
теперь под вопросом. росы, касающиеся соглашения view&id=62&Itemid=66).
Разумеется, таким ключевым про- от Oracle – http://www.oracle.com/sun/ Что ещё можно сказать? К хороше-
дуктам, как Java и операционная систе- sun-faq.pdf. му очень быстро привыкаешь, и уже
не хочется представлять весну без
сотрудничества с вузами, а также ма- ние собеседования. Много говорилось питерских Sun Tech Days. Надеюсь,
териалы по сертификации и трудоус- про программы стажировок студен- и не придется, и, несмотря на все эко-
тройству студентов. Число студентов, тов, правда, с оговорками, что в пери- номические проблемы нашего време-
которых и так немало присутствовало од кризиса с ними есть некоторые ог- ни, мы, разработчики, системные ад-
на конференции, увеличилось до по- раничения. Впрочем, было показано, министраторы, инженеры, встретимся
давляющего большинства. что и сейчас у студентов есть много на Неве в следующем году.
Давались конкретные советы по возможностей для развития.
различным аспектам трудоустройс- Активно обсуждался проект OSUM Текст: Кирилл Сухов,
тва: составление резюме, прохожде- (Open Source University Meetup) – сис- фото: Лика Чекалова


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама

Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Учет оборудования
с OCS Inventory NG и GLPI
Сегодня в любой организации много компьютерной
техники и прочего оборудования, учет которого, а также
прочих связанных затрат часто входит в обязанности
администратора. Применение специализированных систем
может значительно упростить эту задачу. В статье рассмотрим
решения OCS Inventory NG и GLPI, которые являются хорошей
альтернативой проприетарным продуктам.

Сергей Яремчук
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Возможности
OCS Inventory NG и GLPI
Система OCS Inventory NG (OCSNG,
Open Computers and Software Inventory
New Generation) [1] предназначена
для инвентаризации компьютеров
в локальной сети, комплектующих
и программного обеспечения. Также
с ее помощью можно удаленно разво-
рачивать программы на рабочих мес-
тах и получать информацию о сетевой
конфигурации.
G L P I (G e s t i o n L i b r e d e Pa r c
Informatique) [2] кроме задач по учету
компьютеров и входящих в их состав
комплектующих, позволяет инвен-
таризировать прочее оборудование,
включая расходные материалы (напри-
мер, картриджи), а также организовать Файл локализации OCSNG требует замены
службу технической поддержки, авто-
матизируя обработку обращений пользователей. Теперь n база данных – используется для хранения информа-
пользователь, вместо того чтобы бежать или звонить адми- ции, поддерживается MySQL от 4.1;
ну, заполняет, зайдя по адресу ресурса, заявку. Обращения n служба связи – обеспечивает связь по протоколу HTTP
обрабатываются с учетом их важности или в порядке оче- между сервером базы данных и программами-агента-
редности. Администратор выигрывает вдвойне – все обра- ми, требуется Apache Web Server 1.3.X/2.X с интегриро-
щения документируются, и можно спокойно отчитаться пе- ванным Perl (в Debian/Ubuntu пакет libapache-dbi-perl);
ред начальством о проделанной работе и затраченном вре- n служба развертывания – предназначена для хранения
мени, пользователи по этой же причине перестанут обра- установочных файлов программ-агентов, подходит лю-
щаться по мелочам. Не говоря уже о том, что звонки обыч- бой веб-сервер с поддержкой SSL;
но отвлекают от выполнения текущей работы. n консоль управления – просмотр собранных данных
Также с его помощью можно сформировать базу знаний, в браузере, требуется веб-сервер с поддержкой PHP
которая будет состоять из заметок, статей и ЧаВО, вести (с активированными ZIP и GD).
учет поставщиков, договоров. Доступно большое количест-
во отчетов (по договорам, финансовая, за год) и статистик Серверная часть OCSNG может быть установлена
(по заявкам, оборудованию, элементам). на компьютер, работающий под управлением Windows 2000
Поддерживается синхронизация календаря по прото- Professional/Server, XP Professional Edition и 2003, а так-
колам Ical, Webcal. Функциональность GLPI можно расши- же Linux, FreeBSD, OpenBSD, NetBSD, Solaris, IBM AIX
рить при помощи большого набора плагинов от сторонних и MacOS X.
разработчиков! Агент доступен для клиентских и серверных версий
Обе системы русифицированы (с некоторыми оговорка- Windows от 95 до Server 2008 R2, а также перечисленных
ми) и распространяются по лицензии GNU GPL. Linux (2.4/2.6, x86, x86_64/AMD64, Sparc64, ARM, PowerPC),
В GLPI, как и в Kwok Information Server [2], изначально MacOS X (10.3-10,5), FreeBSD/OpenBSD/NetBSD (x86/Sparc),
все данные вводятся вручную и сохраняются в базе данных Solaris 8, 9, 10 (x86/Sparc), IBM AIX (5.1-5.3) и HP-UX.
MySQL. Затем администратор при помощи веб-формы мо- Следует отметить, что одним из недостатков как данно-
жет отобрать любую интересующую его информацию. Начи- го проекта, так и проекта GLPI является малое количество
ная с версии 0.65 GLPI поддерживает синхронизацию дан- документации. Хотя, понимая суть процесса, разобраться
ных с базами OCSNG, причем для этого не требуется ни- со всеми нюансами довольно просто.
каких дополнительных модулей. Хотя если в сети уже есть
сервер Nagios или Cacti, то данные о компьютерах и прочем Установка OCS Inventory в Ubuntu
оборудовании можно импортировать и оттуда. В середине апреля, после более чем года разработки, вы-
Основным плюсом OCS Inventory NG является то, что шла новая версия 1.02 OCSNG, о которой и пойдет речь да-
для сбора информации об установленном оборудовании лее. Пакет с OCSNG имеется в репозиториях многих дист-
с клиентских компьютеров и серверов используется про- рибутивов. Для примера в качестве сервера и клиента вы-
грамма-агент. Все собранные данные агенты отсылают на берем Ubuntu 8.04 LTS.
сервер управления (management server) в виде XML-потока, Проверяем, что есть в репозитории Ubuntu.
сжатого при помощи Zlib, для передачи используется стан-
дартный протокол HTTP/HTTPS. $ sudo apt-cache search ocsinventory
Сервер OCSNG состоит из 4 компонентов, которые могут ocsinventory-reports - Hardware and software inventory tool
(Administration Console)
быть установлены на одном или нескольких компьютерах:

№5, май 2009 11


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
После установки агентов данные автоматически появляются в консоли управления OCSNG

ocsinventory-server - Hardware and software inventory tool $ tar xzfv OCSNG_UNIX_SERVER-1.02.tar.gz


(Communication Server) $ cd ./OCSNG_UNIX_SERVER-1.02/
ocsinventory-agent - Hardware and software inventory tool $ sudo ./setup.sh
(client)
По ходу установки следует ответить на ряд стандартных
Хотя это не самая актуальная версия на данный вопросов: расположение сервера баз данных, исполняемо-
момент: го и конфигурационного файла веб-сервера, пользователь,
от имени которого запускается веб-сервер и так далее.
$ sudo apt-cache show ocsinventory-server | grep -i version В большинстве случаев скрипт сам находит все не-
Version: 1.01-3 обходимое и достаточно просто подтвердить параметр.
Единственное, с чем он не разобрался, это с пользовате-
$ sudo apt-cache show ocsinventory-agent | grep -i version лем и группой, от имени которых запускается Apache. По-
Version: 1:0.0.8-1 этому вместо предложенного [${APACHE_RUN_USER}]
указываем www-data.
Поэтому будем устанавливать, используя исходные тек- Далее производится проверка установленных модулей
сты. В зависимостях пакета ocsinventory-server, полученных Perl. И в случае, если нужный не будет найден, выдается
при помощи команды: соответствующее сообщение. Так в зависимостях Ubuntu
не указан модуль XML::Entities.
$ sudo apt-cache depends ocsinventory-server
Сhecking for XML::Entities PERL module...
*** Warning: PERL module XML::Entities is not installed !
указаны Apache2 и некоторые модули Perl, утилита для из-
менения файлов настроек ucf и dbconfig-common. Пакет В репозитории пакета, обеспечивающего функции
MySQL указан в качестве необязательных зависимостей, XML::Entities, нет, поэтому его следует установить само-
поэтому его устанавливаем отдельно: стоятельно из CPAN:

$ sudo apt-get install mysql-server $ sudo cpan -i XML::Entities

Команда: И повторяем установку. По окончании скрипт предложит


инсталлировать консоль администрирования.
$ sudo apt-get build-dep ocsinventory-server В процессе установки в каталоге /etc/apache2/conf.d/ бу-
дут созданы конфигурационные файлы для веб-сервера –
в данном случае бесполезна, поэтому устанавливаем все, ocsinventory-server.conf и ocsinventory-reports.conf.
что необходимо, вручную: Сами PHP-скрипты, обеспечивающие функции OCSNG,
будут скопированы в /usr/share/ocsinventory-reports/
$ sudo apt-get install libapache2-mod-perl2 libdbi-perl ↵ ocsreports и подключены к веб-серверу с использованием
libapache-dbi-perl libdbd-mysql-perl ↵
libsoap-lite-perl libxml-simple-perl ↵ директивы Alias:
libnet-ip-perl libcompress-zlib-perl php5-gd
$ cat ocsinventory-reports.conf | grep -i alias
Скачиваем с сайта проекта OCSNG архив OCSNG_ # Alias used to put Administration Server static page
UNIX_SERVER-1.02.tar.gz и устанавливаем: # (typically PHP) outside

12
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Alias /ocsreports /usr/share/ocsinventory-reports/ocsreports Эти же установки надо изменить в файле ocsinventory-
# Alias to put Deployement package files outside Apache
# document root directory reports.conf.
Alias /download /var/lib/ocsinventory-reports/download Набираем в браузере http://localhost/ocsreports/install.php
и в появившемся окне вводим логин и пароль для доступа
Поэтому при необходимости управления доступом к MySQL. По умолчанию в процессе установки для доступа
все изменения следует производить в упомянутых конфи- к базе ocsweb будет создана учетная запись ocs с паролем
гурационных файлах, иначе назначенные на корень права ocs. Если только доступ к базе не ограничен локальной сис-
не будут наследоваться. темой, то в целях безопасности пароль следует изменить:
Кроме этого создается файл, обеспечивающий рота-
цию журналов раз в неделю. $ mysql -uroot -prootsecret
mysql> UPDATE mysql.user SET Password = ↵
PASSWORD('ocspasswd') WHERE User = 'ocs';
$ cat /etc/logrotate.d/ocsinventory-server mysql> FLUSH PRIVILEGES;
mysql> exit
# Rotate OCS Inventory NG Communication server logs daily
# Save 7 days old logs in compressed mode Новое значение пароля следует прописать в файле /usr/
/var/log/ocsinventory-server/*.log {
daily share/ocsinventory-reports/ocsreports/dbconfig.inc.php:
rotate 7
compress $_SESSION["PSWD_BASE"]="ocspasswd"
missingok
}
И в ocsinventory-server.conf:
По окончании следует перезапустить веб-сервер:
PerlSetVar OCS_DB_PWD ocspasswd
$ sudo /etc/init.d/apache2 force-reload

Некоторые пакеты, распространяемые при помо- Локализация


щи OCSNG, могут иметь размер больше 8 Мб, поэто- Переходим на страницу http://localhost/ocsreports, для регис-
му, чтобы не было проблем с их загрузкой, следует ус- трации используем логин admin с паролем admin. Щелкнув
тановить большее значение переменных post_max_size здесь же по флагу, можно активировать русский язык интер-
и upload_max_filesize в файле /etc/php5/apache2/php.ini, фейса, но сразу после установки это привело к появлению
например в 10 Мб (по умолчанию – 8 и 2 Мб): нечитаемых символов. Единственным материалом по лока-
лизации интерфейса OCS Inventory является статья Евгения
php_value post_max_size 10m Бражко [5], но она относится к версии 1.02RC1, вышедшей
php_value upload_max_filesize 10m
в марте 2008 года, и многие вопросы, которые в ней описа-

После всех правок информация об установленном ПО на кириллице выводится корректно

№5, май 2009 13


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
ны, в текущей версии уже решены. Так, анализ HTML-кода После этого список программ, установленных на конк-
страницы показал, что она выдается в нужной кодировке: ретном компьютере, будет выводиться корректно. Страни-
ца в PDF, создаваемая при помощи кнопки «Напечатать эту
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; ↵ страницу», которая расположена в самом низу, также вы-
charset=windows-1251;">
глядела корректно. Хотя в общем списке ПО по-прежнему
Интерфейс локализуется при помощи языкового файла будет нечитаемый текст.
russian.txt, расположенного в /usr/share/ocsinventory-reports/
ocsreports/languages. В меню Configurations есть отдель- Установка агента
ный пункт Language file, позволяющий его редактировать. Агент для Windows написан на C++, его можно установить
Но открыв файл russian.txt в текстовом редакторе, подде- вручную, при помощи logon скрипта или правил GPO. Агент
рживающем СР1251, обнаруживаем только набор нечита- для Linux написан на Perl и С. Для его установки потребуется
емых символов. наличие некоторых модулей Perl (XML и Zlib) и dmidecode [4]
Вывод команды file: (обеспечивает сбор данных из BIOS об оборудовании в соот-
ветствии со стандартами SMBIOS/DMI). В Linux агент уста-
$ file russian.txt навливается вручную. Сначала рассмотрим этот вариант.
russian.txt: UTF-8 Unicode English text Если клиент устанавливается на том же компьютере,
что и сервер, практически все необходимые пакеты
Задает еще больше вопросов. При этом: для удовлетворения зависимостей уже будут. Иначе уста-
навливаем:
$ file english.txt
english.txt: ASCII English text
$ sudo apt-get install libcompress-zlib-perl ↵
libnet-ip-perl libnet-ssleay-perl libwww-perl ↵
libxml-simple-perl po-debconf ucf dmidecode pciutils
А первая строка файла явно указывает на нужную ко-
дировку. Далее скачиваем и ставим агента:

$ head -n 1 russian.txt $ tar xzvf OCSNG_UNIX_AGENT-1.02.tar.gz


$ cd Ocsinventory-Agent-1.0.1
0 windows-1251 $ perl Makefile.PL
$ make
$ sudo make install
Из этого делаем вывод – что-то не то с самим файлом,
поэтому берем аналогичный с RC1 или другого источника После ввода последней команды поступит запрос на на-
(например, на сайте журнала www.samag.ru в разделе «Ис- стройку агента.
ходный код») и подменяем его, не забыв установить нуж-
Do you want to configure the agent
ные права доступа. Please enter 'y' or 'n'?> [y]

$ sudo chown root:www-data russian.txt Отмечаем «y» и при помощи цифровых клавиш отве-
чаем на вопросы, где должен располагаться конфигура-
После этого все надписи выводятся на русском. ционный файл:
Чтобы корректно выводились названия программ, ус- Where do you want to write the configuration file?
тановленных на Windows-системах, следует в файле /usr/ 0 -> /etc/ocsinventory
share/ocsinventory-reports/ocsreports/preferences.php устано- 1 -> /usr/local/etc/ocsinventory
2 -> /etc/ocsinventory-agent
вить в «1» значение UTF8_DEGREE:
Далее указываем адрес или имя сервера, создаем тег
// 0 For non utf8 database, 1 for utf8 (с его помощью можно собрать системы в целевую группу,
define("UTF8_DEGREE", 1 );
например, по принципу размещения) для агента, активи-
Далее в файле machine.php, который находится в этом руем задачу для cron, каталог для хранения файлов и так
же каталоге, правим функцию print_softwares. После уста- далее. По окончании выдается запрос на отсылку собран-
новки она будет иметь такой вид: ных данных о компьютере на сервер:
Do you want to send an inventory of this machine?
echo "$td3".htmlentities(textDecode($item->PUBLISHER))."</td> Please enter 'y' or 'n'?> [y]
$td3".htmlentities(textDecode($item->NAME))." </td>
$td3".textDecode($item->VERSION)." </td> [info] Accountinfo file doesn't exist. I create an empty one.
$td3".(htmlentities(textDecode($item->COMMENTS))? ↵ -> Success!
htmlentities(textDecode($item->COMMENTS)): "N/A")." ↵
</td>"; В итоге в /var/lib/ocsinventory-agent будет создан подка-
талог с файлами, содержащими текущую конфигурацию
Меняем на: компьютера. Например, в ocsinv.adm содержатся тег и на-
звание системы, под которым она будет видна в консоли
echo "$td3".textDecode($item->PUBLISHER)."</td> управления.
$td3".textDecode($item->NAME)." </td>
$td3".textDecode($item->VERSION)." </td>
$td3".(htmlentities(textDecode($item->COMMENTS))? ↵ $ cat /var/lib/ocsinventory-agent/http\: ↵
textDecode($item->COMMENTS):"N/A")." </td>"; __localhost_ocsinventory/ocsinv.adm

14
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
<ADM> При изменении оборудования или ПО агента вызвать
<ACCOUNTINFO>
<KEYNAME>TAG</KEYNAME> принудительно, набрав в командной строке:
<KEYVALUE>Ubuntu</KEYVALUE>
</ACCOUNTINFO> > "C:\Program Files\OCS Inventory Agent\OCSInventory.exe" ↵
</ADM> /SERVER:ocsng_server /PNUM:80 /NOW

Практически сразу после установки агента сведения Также агента (файл ocsagent.exe, являющийся zip-архи-
о новой системе появятся в консоли управления во вклад- вом) можно импортировать в базу OCSNG, выбрав во вклад-
ке «Все компьютеры». ке «Агент» и указав место расположения файла. В этом слу-
При возникновении проблем можно запустить агента чае он будет доступен с любого компьютера сети.
в режиме отладки: Кроме функций сетевой инвентаризации, OCSNG име-
ет возможность развертывания пакетов и запуска команд,
$ ocsinventory-agent -l /tmp –debug ↵ записанных в файле (например, bat/vbs) на клиентских ком-
--server http://localhost/ocsinventory
пьютерах (кроме Vista), информация о которых находится
По умолчанию во вкладке «Все компьютеры» выво- в инвентаризационной системе. При необходимости уста-
дятся 7 характеристик клиентских машин, но при помо- новки одного приложения на большое количество систем
щи раскрывающегося списка Add column можно добавить такая функциональность очень выручает.
еще 23 поля. Хотя в некоторых случаях замечены ошибки Для начала пакет нужно создать. Переходим в меню
в определении параметров. Так, на системе с такими ха- Deployment → Build и заполняем поля New package building.
рактеристиками: Название пакета должно быть уникальным, и желательно
отражать его назначение. Параметр Priority определяет по-
$ dmesg | grep -i processor рядок размещения пакетов. Что, собственно, делать с па-
[ 97.725563] powernow-k8: Found 1 AMD Athlon(tm) 64 X2 Dual кетом, определяет поле Action.
Core Processor 3600+ processors (2 cpu cores) (version 2.20.00) Здесь три возможных значения:
[ 0.000000] Detected 2010.408 MHz processor.
n Store – копировать на целевую систему;
В консоли OCS Inventory было выведено – 1000 Мгц, n Execute – копировать и выполнить с командой;
но при необходимости данные можно скорректировать n Launch – копировать и запустить.
вручную. По разным причинам в базу компьютер может быть
занесен несколько раз, для удаления дубликатов сущест- Параметры в User notifications позволяют вывести со-
вует одноименная вкладка, в которой одинаковые систе- ответствующее предупреждение пользователю, разре-
мы можно отобрать по нескольким характеристикам (имя, шить ему отмену выполнения задачи. Созданный пакет за-
МАС-адрес, серийный номер). гружается в каталог /var/lib/ocsinventory-reports/download/
Текущая версия агента для Windows 4.0.5.4, архив timestamp.
OCSNG_WINDOWS_AGENT_1.02.zip с установочными фай- При этом timestamp получается уникальным.
лами можно скачать с сайта проекта. Судя по всему, в нем
уже исправлена ошибка, которая приводила к тому, что рус- $ ls /var/lib/ocsinventory-reports/download/
ские буквы, начиная с 'х'(0xF4) заменялись английским ик- 1241705351 1241722723
сом. Во всяком случае, на тестовых системах все работа-
ло правильно. Как вариант можно использовать специаль- $ ls 1241722723
ную сборку OCSNG_WINDOWS_AGENT_1.02_RC2_OTEA. 1241722723-1 info
zip (версия агента 4.0.4.9) [5].
Самым простым вариантом уста-
новки является запуск исполняемого
файла OcsAgentSetup.exe, в этом слу-
чае будет произведена стандартная ус-
тановка, по окончании которой агент
будет прописан в качестве сервиса. На
последнем этапе указываем имя или IP-
адрес OCSNG сервера и устанавлива-
ем флажок Immediatly launch inventory,
чтобы сразу же отправить отчет.
Все настройки будут сохранены
в файле service.ini каталога, в который
установлен агент.
В Vista следует открыть его и до-
бавить параметр /DEBUG в строку за-
пуска:

Miscellaneous= ↵
/SERVER:192.168.0.10 ↵
/PNUM:80 /DEBUG При установке GLPI следует выполнить все рекомендации программы

№5, май 2009 15


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Окно активации режима OCSNG

Файл info содержит настройки пакета, а 1241722723-1 $ sudo apt-cache search glpi
является собственно программой. glpi - IT and Asset management software
Переходим в меню Deployment → Activate, выбираем
нужный пакет и нажимаем ссылку Activate. Вводим в поя- $ sudo apt-cache show glpi | grep -i version
вившемся окне адрес вида https://server/download/, при этом Version: 0.68.3.2-1
timestamp к URL будет добавлен автоматически, нажимаем
«Отправить». В ответ должны получить сообщение: Актуальной на момент написания статьи является вер-
сия 0.71.5, вышедшая в январе 2009 года. Кроме этого,
Package activated, it can now be deployed.
на странице загрузки доступен предрелиз 0.72-RC2 и срез
Теперь выбираем компьютер, на котором хотим уста- CVS-архива.
новить пакет, переходим в меню Customization, в самом Для установки просто распаковываем скачанный архив
низу выбираем ссылку add package, указываем на па- в корневой каталог веб-сервера:
кет и нажимаем в поле Affect. Подтверждаем свой выбор.
В Customization появится информация о состоянии задачи, $ sudo tar xzvf glpi-0.71.5.tar.gz -C /var/www
$ cd /var/www/glpi
а в таблице в Activate будет выводиться статистика.
По умолчанию агент подключается к серверу раз в сут- Устанавливаем для некоторых каталогов владельца
ки, тогда и будет произведена установка. Можно уско- и группу-владельца:
рить этот процесс, вызвав подключение принудительно,
как это показано выше. После подключения агента к сер- $ sudo chown www-data:www-data config files files/* inc
веру состояние пакета должно измениться с WAITING_
NOTIFICATIONS на NOTIFIED, а затем Success. Пакет будет Далее набираем в браузере http://localhost/glpi выбира-
сохранен в каталоге C:\Program Files\OCS Inventory Agent\ ем язык (в списке есть русский), принимаем условия GPL
download\TIMESTAMP. А все связанные сообщения можно и следуем указаниям мастера установки. Самый главный
найти в файле download.log. этап – «Проверка окружения на совместимость с GLPI»,
Кроме выдачи информации о «своем» компьютере, аген- где следует внимательно прочитать и выполнить все ре-
ты в разных подсетях сканируют сеть в поисках MAC-адре- комендации.
сов, принадлежащих других системам. Такая функция назы- Например, по указанию мастера параметр memory_
вается IP discovery и позволяет находить другие устройст- limit в php.ini следует установить в значение, большее чем
ва, на которые нельзя установить агент (например, свитчи, 32 Мб:
принтеры и так далее).
$ grep -i memory_limit /etc/php5/apache2/php.ini
Установка GLPI memory_limit = 128M
Установка GLPI достаточно проста. В репозиториях дист-
рибутивов нужный пакет есть, но его версия обычно силь- Выполняем все требования, проверяем повторно и, ес-
но отстает. ли все нормально, нажимаем Continue. Теперь собственно

16
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
установка – вводим данные для доступа к MySQL, назва- $LANG["setup"][18]="Имя пользователя";
ние базы данных, и все.
Чтобы GLPI автоматически проверял почту, отправлял Далее переходим в меню «Установки (Setup) → Общие
уведомления, следует создать задание для пользовате- (General setup)» и устанавливаем «Активировать режим
ля, от имени которого работает веб-сервер (нужен пакет OCSNG (Activate OCSNG mode)» в «Да». После этого поя-
php5-cli): вится новая вкладка «Режим OCSNG» (OCSNG Mode).
Если OCSNG и MySQL установлены на локальной ма-
$ sudo crontab -u www-data -e шине, то данные для подключения к OCSNG будут найде-
*/5 * * * * /usr/bin/php5 ↵ ны автоматически. Иначе необходимо будет заполнить ин-
/var/www/glpi/front/cron.php &>/dev/null формацию о сервере OCSNG вручную.
По умолчанию синхронизируется только часть парамет-
По умолчанию в GLPI создаются четыре учетные запи- ров, чтобы в базу данных GLPI были перенесены и компо-
си с разными правами и возможностями (через дробь ука- ненты компьютеров, следует разрешить их синхронизацию,
зан пароль): установив флажок напротив нужного в положение «Гло-
n glpi/glpi – администратор; бальный импорт».
n tech/tech – технический специалист; Кроме этого, во вкладке «Инструменты» появится пункт
n normal/normal – обычная учетная запись (возможность OCSNG, при помощи имеющихся здесь ссылок можно про-
просмотра данных); изводить синхронизацию и импортирование компьютеров
n post-only/post-only – только обращение в службу под- между OCSNG и GLPI.
держки. Полученные данные появляются во вкладке «Оборудо-
вание». Здесь несколько подпунктов, переход в некоторые
GLPI поддерживает импорт учетных данных из AD или из них позволяет получить список некоторых компонентов,
другой LDAP. входящих в компьютер («Мониторы», «Принтеры»), отде-
Регистрируемся в системе как glpi. Для локализации ин- льного оборудования («Картриджи», «Телефоны»), а так-
терфейса в меню Setting → Select Language выбираем рус- же ПО. Импортированные компьютеры доступны в одно-
ский язык, после этого все новые учетные записи будут ис- именном подпункте.
пользовать по умолчанию выбранный язык. Новые пользо- Выбрав компьютер или устройство, мы получаем доступ
ватели добавляются в одноименной вкладке, там несколь- к 12 вкладкам, в которых можно просмотреть и скорректи-
ко некорректный перевод. Так, логину соответствует по- ровать данные об оборудовании, сопоставить ответствен-
ле «Имя пользователя», это иногда сбивает с толку. Чтобы ного, просмотреть заявки, добавить заметки, сделать от-
не было путаницы, можно изменить значение в файле /var/ метку о выдаче во временное использование, просмотреть
www/glpi/locales/ru_RU.php: историю и так далее.

Информация об оборудовании, импортированная с OCSNG в GLPI, отображается некорректно

№5, май 2009 17


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
К сожалению, на данный момент
список импортированных с OCSNG
компонентов компьютера, написанный
на русском языке, выводится нечитае-
мым текстом.
Пользователей GLPI можно объ-
единить в группы, кроме этого сущест-
вует более глобальное понятие – «Ор-
ганизация». Сразу после установки
создается «Основная организация», в
которую и будут включены все компо-
ненты. Предусмотрено создание дру-
гих организаций с установлением под-
чиненности между ними (структуры).
Но работа с организациями реализо-
вана неудобно, так перенос техники в
другую организацию усложнен и не-
удобен. Предусмотрен экспорт данных Файл PDF, сгенерированный в OCSNG, с информацией о системе
в PDF, CVS и SLK (Symbolic Link).
По умолчанию при экспорте в PDF вместо русских букв `Helvetica.afm' -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.afm'
выводятся знаки вопросов, это происходит по двум при- `Helvetica.t1a' -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.t1a'
`Helvetica.ttf' -> `/var/www/glpi/lib/ezpdf/fonts/Helvetica.ttf'
чинам: стандартная функция экспортирует данные в ко-
дировке ISO-8859-1, которую и поддерживает исполь- Исправленный вариант шрифтов, можно найти в раз-
зуемый по умолчанию шрифт. Подсказка была найдена деле «Исходный код» сайта журнала www.samag.ru . Пос-
на форуме OPENNET [6]. Заменяем в скрипте /var/www/ ле этого PDF будет выводиться корректно.
glpi/inc/export.function.php вызов функции utf8_decode Установка плагинов для GLPI производится простой рас-
на utf8_decode_cyr: паковкой в подкаталог glpi/plugins, после чего плагин будет
доступен для настройки в меню «Установки → Плагины».
$ sudo perl -p -i -e 's/utf8_decode/utf8_decode_cyr/g' ↵ С сайта проекта можно скачать приблизительно 50 самых
export.function.php
inc/export.function.php: разнообразных плагинов.

И добавляем в export.function.php описание самой функ- Заключение


ции utf8_decode_cyr: Интерфейсы, как OCSNG, так и GLPI, достаточно просты
для освоения, нужно потратить полчаса, и вы будете хоро-
function utf8_decode_cyr($value){ шо ориентироваться. К сожалению, до конца вопрос лока-
return iconv("UTF-8","Windows-1251",$value);
} лизации так и не решен. Так, для Windows в OCSNG непра-
вильно отображаются кириллические наименования уста-
По умолчанию для экспорта используется шрифт новленных программ и компонентов оборудования. Обсуж-
Helvetica, его бы я и рекомендовал оставить. Если заме- дение всех вопросов по локализации можно найти на фо-
нить шрифт другим, его имя придется править не только румах проекта OCSNG и OPENNET [6], некоторым они по-
в двух местах файла export.function.php: могают, у некоторых не получается все решить.

$ cat export.function.php | grep -i selectFont 1. Сайт проекта OCS Inventory NG – http://www.ocsinventory-


$pdf->selectFont(GLPI_ROOT."/lib/ezpdf/fonts/ ↵
Helvetica.afm"); ng.org.
2. Сайт проекта GLPI – http://glpi-project.org.
Но и в двух файлах, находящихся в lib/ezpdf. 3. Яремчук С. Учет оборудования с Kwok Information Server. //Сис-
Теперь шрифт. Для конвертирования TTF-шрифта темный администратор, №10, 2008 г. – С. 40-43.
в Postscript type 1 потребуется утилита ttf2pt1. 4. Страница проек та dmidecode – http://www.nongnu.org/
dmidecode.
$ sudo apt-get install ttf2pt1 5. Инвентаризация компьютерной и оргтехники. OCS Inventory –
http://eugene-online.blogspot.com/2008/04/ocs-inventory.html.
Запускаем: 5. Архив с исправлениями для агента Windows – http://switch.
dl.sourceforge.net/sourceforge/ocsinventory/OCSNG_WINDOWS_
$ ttf2pt1 -l cyrillic -A Helvetica.ttf Helvetica AGENT_1.02_RC2_OTEA.zip.
6. Обсуждение проблем локализации OCSNG – http://www.
Теперь копируем файлы вместо старых, не забыв под- opennet.ru/openforum/vsluhforumID3/14092.html и http://forums.
править права: ocsinventory-ng.org/viewtopic.php?id=603.
7. Страница Wiki проекта GLPI на русском – http://glpi-project.org/
$ sudo cp -v Helvetica* /var/www/glpi/lib/ezpdf/fonts/ wiki/doku.php?id=ru:welcome.

18
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама

Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
«Облачные» перспективы защиты
корпоративных endpoint-компьютеров
Подлинными изобретателями и первыми «промышленными» внедренцами столь популярных
сегодня технологий «облачных» вычислений (Cloud Computing) были не Amazon, IBM или Sun,
a кибер-криминальные технологи, которые уже 10 лет назад эксплуатировали пиринговые
«варезные сети», представлявшие, по сути, прототипы современных распределенных
сетей Cloud Computing – такой, на первый взгляд, парадоксальный, но, если вдуматься,
небезосновательный вывод сделал в своем блоге [1] Рювен Коэн (Reuven Cohen), основатель
и главный технолог компании Enomaly, разработчика программных Cloud-платформ.

С
толь же небезосновательно сра- шении завтрашних перспектив внед- Поэтому без преувеличения мож-
зу после анонса Microsoft их рения Cloud Computing со стороны ру- но сказать, что для специалистов в об-
Cloud Computing технологии Live ководителей и главных специалистов ласти ИБ кредитно-финансовых орга-
Mesh главный редактор по технологиям служб ИБ организаций финансового низаций один из важнейших вопро-
еженедельника eWeek Insider Channel сектора экономики. сов завтрашнего дня состоит в том,
Франк Олхорст (Frank Ohlhorst) пре- Равно как и сегодня, когда неви- как на уровень инсайдерских угроз и,
дупреждал о ее деструктивном влия- данные доселе «вычислительные тучи» прежде всего, защищенность endpoint-
нии на корпоративную информацион- только собираются на далеком замор- компьютеров повлияет внедрение
ную безопасность (ИБ). В своей ста- ском горизонте, ситуация с обеспече- в корпоративные ИТ-технологий Cloud
тье «Microsoft Live Mesh – следующая нием ИБ оконечных вычислительных Computing.
большая угроза бизнесу» [2] он назвал устройств (рабочих станций, дескто- В технологической интерпретации
Live Mesh «антитезой управления се- пов и ноутбуков) организаций дале- это вопрос о том, сможет ли индуст-
тевым доступом и информационной ка от безоблачной, о чем свидетель- рия ИБ использовать уникальные внут-
безопасности endpoint-компьютеров». ствует свежая статистика организа- ренне присущие архитектурам Cloud
Причиной опасений Олхорста послу- ции Ponemon Institute, которая в фев- Computing характеристики – глобаль-
жила уникальная способность техноло- рале опубликовала результаты ис- ную распределенность, динамичес-
гии Live Mesh преодолевать периметры следований размера ущерба от уте- кую масштабируемость и оперативную
частных корпоративных сетей вне за- чек данных в организациях США и Ве- связность – для повышения эффектив-
висимости от политик защищающих их ликобритании за 2008 год. Соглас- ности и надежности работы средств за-
межсетевых экранов (МЭ) и NAT-шлю- но этим отчетам, угрозы корпоратив- щиты информации (СЗИ) множества
зов. Прообразом Live Mesh, по его мне- ной ИБ со стороны инсайдеров в Аме- оконечных вычислительных узлов?
нию, была система IP-телефонии Skype, рике не уменьшаются (прирост 2-5%), Следует отметить, что в послед-
всепроникающую «силу» которой уже а в Европе – существенно возраста- ние три года наблюдается постепен-
в полной мере ощутили практически ют (прирост 22‑28%), причем подав- ный прогресс участников отрасли ИБ
все ИТ-организации. ляющая часть случаев утечек данных в этом направлении.
Подобные комментарии, очевид- связана с нарушением ИБ компьюте- Исторически, первым реальным
но, не добавляют оптимизма в отно- ров сотрудников. примером использования преиму-
ществ Cloud Computing – еще до выде-
ления этой технологии в отдельный от-
раслевой сегмент – стало предостав-
ление услуг аутсорсинга ИБ для кор-
поративных клиентов. Один из пионе-
ров этого движения – «Лаборатория
Касперского», услуга Hosted Security
Services [3] которой пользуется попу-
лярностью как в России, так и за рубе-
жом. В качестве другого – недавнего по
времени – примера следует отметить
анонс в октябре 2008 года трехлетне-
го плана [4] компании Symantec по пре-
доставлению всех своих продуктов ИБ
в виде услуг SaaS.
Следующим значительным шагом
Новый функционал в DeviceLock 6.4 – «контентно-зависимые» правила на уровне
файловых операций отрасли ИБ стало использование вы-

20
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
сокого уровня взаимосвязности сред
Cloud Computing для ускорения про-
цессов сбора и проверки сигнатур вре-
доносных программ. В 2008 году были
введены в эксплуатацию системы Smart
Protection Network от компании Trend
Micro и Artemis от McAfee. В упрощен-
ном виде идея работы этих систем со-
стоит в том, что исполнительные аген-
ты на компьютерах не ждут обновления
'HYLFH/RF
базы сигнатур с сервера, а по каждому
подозрительному объекту считают хэш-
3DOP
сумму и отсылают ее в Cloud-сеть про-
изводителя, после чего эти хэш-суммы
в онлайн-режиме сравниваются со все-
ми имеющимися в Cloud сигнатурами : LQGRZV0RELOH
и результат возвращается агенту. В ре-
зультате как скорость выявления сиг-
натур вредоносных кодов, так и опера-
L3KRQH
тивность реагирования на них возрас-
ли на порядок – причем без увеличения
вычислительной нагрузки на защищае-
86%
мые компьютеры.
Наконец, самой современной
)LUH:LUH
тенденцией использования Cloud
Computing в отрасли ИБ стало исполь- DeviceLock контролирует все типы внешних устройств посредством групповых политик
зование супер-инфраструктур «вы-
числительная платформа как услуга» нее, если продукт качественный, он операций файловой системы. Обеспе-
(Platform-as-a-Service или PaaS) в ка- может оказаться весьма полезным как чиваются перехват, экстракция, детек-
честве платформ, на которые неболь- один из компонентов функционально тирование типа и блокирование файло-
шие вендоры программных СЗИ пор- полного набора интегрированных сер- вых объектов во всех локальных кана-
тируют свои продукты и предостав- висов аутсорсинга ИБ. Приятно раду- лах утечки данных защищаемого ком-
ляют своим клиентам доступ к ним ют в этом отношении популярные рос- пьютера, при этом администраторы бе-
как к услугам. Иначе говоря, они ис- сийские программные СЗИ. Например, зопасности могут дополнительно зада-
пользуют платформы PaaS для соз- немецкий провайдер аутсорсинга ИБ вать гибкие правила событийного про-
дания собственных услуг аутсорсин- Logica Managed Services Deutschland токолирования операций и теневого ко-
га ИБ и предоставления их в виде в качестве одного из компонентов сво- пирования данных с точностью до ти-
Software‑as‑a‑Service. В конечном итоге, их услуг по информационной защи- пов файлов.
это выгодно пользователям, посколь- те компьютеров клиентов использу- В планах компании «Смарт Лайн
ку состав провайдеров услуг ИБ не ог- ет программный комплекс DeviceLock Инк» – дальнейшее развитие реше-
раничивается только крупнейшими иг- производства компании «Смарт Лайн ний и услуг по информационной за-
роками типа Symantec, McAfee и Trend Инк», мирового технологического ли- щите endpoint-компьютеров на базе
Micro, а появляется выбор между мно- дера в этой области. DeviceLock.
жеством услуг мелких, но более забот- DeviceLock – это система центра- Алексей Лесных,
ливых для клиентов суб-провайдеров. лизованного контроля доступа пользо- менеджер по развитию бизнеса
Примером такой трансформации про- вателей к периферийным устройствам компании «Смарт Лайн Инк»
дукта в услугу ИБ служит портирование и портам ввода-вывода персональных
компанией FullArmor своей программы компьютеров и серверов под управле- 1. http://www.elasticvapor.com/2008/11/
PolicyPortal [5] на платформу Windows нием ОС Microsoft Windows. DeviceLock fraud-as-service-did-criminals-invent.
Azure, в результате чего этот продукт позволяет контролировать все типы ло- html.
стал доступен для клиентов FullArmor кальных каналов утечки на компьюте- 2. http://blogs.channelinsider.com/tech_
непосредственно через Интернет как рах пользователей в корпоративной ИС tidbits/content/new_products/microsoft_
экономичная услуга централизованно- и полный спектр портов и внешних уст- live_meshthe_next_big_security_threat_
го управления политиками ИБ и конфи- ройств. В новой версии DeviceLock 6.4 for_business_1.html.
гурирования endpoint-компьютеров. принципиально повышена гранулиро- 3. http://www.kaspersky.ru/hosted_security.
Очевидно, не каждый продукт ИБ ванность контроля за привилегиями 4. http://www.zdnetasia.com/news/security/
рационально использовать в виде от- и действиями пользователей за счет 0,39044215,62046931,00.htm.
дельной услуги – например, из-за спе- поддержки функции детектирования 5. ht tp: // w w w.fullarmor.com /products -
цифики его функционала. Тем не ме- и фильтрации типов файлов для любых policyportal.htm.

№5, май 2009 21


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Мониторинг Cisco IDS/IPS на примере
модуля IDSM2 c помощью MRTG
Андрей Дугин
Если ваши системы обнаружения вторжения вызывают беспокойство тем фактом,
что не сигнализируют своевременно о сбоях в функционировании или реконфигурации сети,
не спешите искать дорогостоящие решения. Возможно, бесплатные Open Source-решения
после некоторой реконфигурации покажут себя нисколько не хуже.

В
крупных компаниях обязанности администраторов се- #apt-get install mrtg
ти и сетевой безопасности могут быть распределе-
ны между разными подразделениями. Системы IDS/ Для того чтобы было возможно осуществлять монито-
IPS после внедрения выполняют сугубо роль обнаружения ринг IPS, необходимо включить на нем управление по SNMP
атак без активного вмешательства в трафик. Этот этап мо- и прописать значения read-only и read-write community. Пос-
жет длиться несколько лет. ледний параметр связан исключительно с особенностями
Активная защита периметра выполняется файерволом, сенсора. Тем не менее стоит учесть, что открытое на за-
доступы к сетевым ресурсам внутри компании реализуют- пись community дает возможность всем, кто имеет доступ
ся либо с помощью отдельных брандмауэров, либо посред- по сети к сенсору, изменять его конфигурацию с помощью
ством ACL (Access Control Lists), а обнаружение аномаль- SNMP. В целях безопасности настоятельно рекомендуется
ного сетевого трафика производится сенсором, на кото- изменить значения по умолчанию public и private на более
рый направляется копия трафика через «зеркалирован- сложные community.
ный» (SPAN-порт) коммутатор. Если сетевые администра- Через CLI возможность управления по SNMP конфигу-
торы и администраторы систем безопасности не извеща- рируется следующим набором команд:
ют друг друга о проводимых работах в сети, вполне может
случиться ситуация, при которой разбирается SPAN-сес- sensor1#configure terminal
sensor1(config)#service notification
сия, и сенсор перестает отрабатывать события. Также воз- sensor1(config-not)#enable-set-get true
можен сбой работы как самого сенсора, так и программ sensor1(config-not)#read-only-community DlY@_$en$ora
sensor1(config-not)#read-write-community Dly@_@dm1n@_$en$ora
мониторинга. В компаниях с большим количеством сенсо- sensor1(config-not)#exit
ров это можно заметить далеко не сразу, и соответствен- Apply Changes?[yes]:
но потерять данные, возможно, необходимые для рассле-
дования инцидента. sensor1(config)#exit
Исходим из того, что у нас есть 10 сенсоров, дополни-
тельных денег на ПО и железо, кроме лицензий, нет, а за- Конфигурация интерфейсов записывается в файл /etc/
дачу выполнить надо. Cisco systems предлагает для мони- mrtg.cfg с помощью команды:
торинга и управления сенсорами программу IPS Manager
Express, которая является бесплатной для скачивания поль- # cfgmaker read-only-community@sensor.address > ↵
/etc/mrtg.cfg
зователям с сервисным контрактом. Ограничение – макси-
мум 5 устройств. Логично, что можно использовать 2 ПК, Но в этом случае затем придется существенно править
в которые завести управление по 5 сенсоров. конфигурационный файл руками. Хоть без этого все рав-
Проблемы, с которыми сталкиваешься, но не всегда но не обойтись, рекомедую для IDSM2 создавать настрой-
сразу замечаешь: ки с параметрами:
n При реконфигурации сети разбирается SPAN-сессия
либо меняются идентификаторы VLAN. # cfgmaker --no-down read-only-community@sensor.address > ↵
/etc/mrtg.cfg
n Происходит сбой в работе сенсора либо программы мо-
ниторинга. В целях безопасности рекомендуется не давать дос-
туп к файлу всем:
Настройка
Своевременное реагирование на вышеописанные пробле- # chmod 640 /etc/mrtg.cfg
мы можно обеспечить с помощью ПО MRTG. Рассмотрим
пример настройки MRTG под Debian Linux. У модуля IDSM2 определяется 6 интерфейсов:
Устанавливаем MRTG: n Interface 1 – loopback (lo);

22
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
n Interface 2 – GigabitEthernet0/7 (ge0_7); Если не редактировать скорость, то мониторинг загруз-
n Interface 3 – GigabitEthernet0/8 (ge0_8); ки будет работать, пока не превысится указанный порог. Ес-
n Interface 4 – sy0_1; ли же нагрузка на интерфейс постоянно выше, то статис-
n Interface 5 – GigabitEthernet0/2 (ge0_2); тика собираться не начнет.
n Interface 6 – sy0_0. В итоге конфигурационный файл /etc/mrtg.cfg, получен-
ный для 1-го сенсора, с учетом того, что нам нужен мони-
Нас интересуют всего 2 из них: торинг только 2 интерфейсов, будет выглядеть приблизи-
n GigabitEthernet0/2, через который происходит управ- тельно так:
ление и сбор событий;
n GigabitEthernet0/7 (или 0/8 – в зависимости от настро- # Created by
# /usr/bin/cfgmaker DlY@_$en$ora@sensor1
ек) – порт, на который приходит SPAN-сессия.
### Global Config Options
Если запускать cfgmaker без параметра --no-down – ин-
терфейсы loopback, GigabitEthernet0/7 и GigabitEthernet0/8 # for UNIX
# WorkDir: /home/http/mrtg
будут в конфигурационном файле закомментированы,
и придется раскомментировать тот интерфейс, который # for Debian
WorkDir: /var/www/mrtg
принимает SPAN.
Интерфейсы sy0_0 и sy0_1, как альтернативные TCP # or for NT
# WorkDir: c:\mrtgdata
RST-интерфейсы, будут считаться активными.
### Global Defaults
Адаптация и кастомизация # to get bits instead of bytes and graphs growing to the right
По умолчанию загрузка интерфейса отображается в байтах/ Options[_]: growright, bits
сек, шкала времени идет справа налево. Для того чтобы из- EnableIPv6: no
менить направление шкалы, необходимо в конфигурацион-
ном файле /etc/mrtg.cfg раскомментировать строку: #########################################################
# System: sensor1
Options[_]: growright, bits # Description: Linux sensor1 2.4.30-IDS-smp-bigphys #2 SMP
# Sat Jul 12 04:12:55 UTC 2008 i686
# Contact: dugin
# Location: sensor1
и оставить те параметры, которые больше по вкусу адми- #########################################################
нистратору, либо приняты в компании. Параметр growright
направляет шкалу времени вправо, а bits отвечает за отоб- ### Interface 2 >> Descr: 'ge0_7' | Name: 'ge0_7' | Ip: | ↵
ражение загрузки в битах/сек. Eth: ###
#
С каждого интерфейса IDSM2 в конфигурационный Target[sensor1_2]: 2:DlY@_$en$ora@sensor1:
файл MRTG по умолчанию считываются следующие пара- SetEnv[sensor1_2]: MRTG_INT_IP="" MRTG_INT_DESCR="ge0_7"
MaxBytes[sensor1_2]: 125000000
метры, которые необходимо отредактировать: Title[sensor1_2]: Traffic Analysis for SPAN -- sensor1
PageTop[sensor1_2]: <h1>Traffic Analysis for SPAN -- sensor1</h1>
MaxBytes[sensor1_5]: 1250000
<div id="sysdetails">
<table>
Title[sensor1_5]: Traffic Analysis for 5 -- sensor1 <tr>
PageTop[sensor1_5]: <h1>Traffic Analysis for 5 -- sensor1</h1> <td>System:</td>
---------------output omitted-------------------- <td>sensor1 in sensor1</td>
<td>Max Speed:</td> </tr>
<td>1250.0 kBytes/s</td> <tr>
---------------output omitted-------------------- <td>Maintainer:</td>
<td>dugin</td>
</tr>
Красным шрифтом показаны несоответствия данных, <tr>
полученных с помощью SNMP, реальным данным. По умол- <td>Description:</td>
<td>ge0_7 </td>
чанию интерфейсы перечисляются по номерам. Также мож- </tr>
но заметить, что гигабитные интерфейсы сенсора MRTG оп- <tr>
<td>ifType:</td>
ределяет как 10-мегабитные. Cisco в своей документации <td>ethernetCsmacd (6)</td>
(http://www.cisco.com/en/US/docs/security/ips/6.2/configuration/ </tr>
<tr>
guide/ime/ime_troubleshooting.html#wp1020491) указывает, <td>ifName:</td>
что MIB II поддерживаются сенсорами, однако корректность <td>ge0_7</td>
</tr>
полученных данных не гарантируется. Соответственно в кон- <tr>
фигурационном файле изменяем скорость в местах: <td>Max Speed:</td>
<td>125.0 MBytes/s</td>
</tr>
MaxBytes[sensor1_5]: 125000000 </table>
</div>

и ### Interface 5 >> Descr: 'ge0_2' | Name: 'ge0_2' | Ip: | ↵


Eth: '00-03-e4-72-38-0c' ###
<td>Max Speed:</td> Target[sensor1_5]: 5:DlY@_$en$ora@sensor1:
<td>125.0 MBytes/s</td> SetEnv[sensor1_5]: MRTG_INT_IP="" MRTG_INT_DESCR="ge0_2"
MaxBytes[sensor1_5]: 125000000

№5, май 2009 23


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Title[sensor1_5]: Traffic Analysis for MGMT -- sensor1 # for Debian
PageTop[sensor1_5]: <h1>Traffic Analysis for MGMT -- sensor1</h1> WorkDir: /var/www/mrtg
<div id="sysdetails">
<table> Разумеется, также необходим веб-сервер. Особого кон-
<tr>
<td>System:</td> фигурирования не нужно, достаточно, чтобы он был запу-
<td>sensor1 in sensor1</td> щен. Мониторинг после настройки производится через веб-
</tr>
<tr> браузер по адресу http://your.server.addres/mrtg.
<td>Maintainer:</td> Итак, после проведения настройки, каким образом мож-
<td>dugin</td>
</tr> но узнавать о проблемах?
<tr> Приблизительно так выглядит график загрузки SPAN-
<td>Description:</td>
<td>ge0_2 </td> порта IDSM2 в норме (см. рис. 1). Зеленым показан входя-
</tr> щий в интерфейс трафик, синим – исходящий. Логично, что
<tr>
<td>ifType:</td> на слушающем порту не будет исходящего трафика.
<td>ethernetCsmacd (6)</td> MRTG по умолчанию снимает показатели с портов 1 раз
</tr>
<tr> в 5 минут, что можно заметить в cron. Это минимально воз-
<td>ifName:</td> можный интервал опроса. Соответственно, когда график
<td>ge0_2</td>
</tr> показывает резкий спад и длительное время находится
<tr> около нуля, как показано на рис. 2, – значит разобрали
<td>Max Speed:</td>
<td>125.0 MBytes/s</td> SPAN-сессию или поменяли идентификаторы VLAN, за-
</tr> вернутых в нее.
</table>
</div> Но возможно, что перенесена нагрузка на другой комму-
татор либо произошел сбой в работе модуля IDSM2. Необхо-
Добавляем новые сенсоры в конец конфигурационно- димо зайти на интерфейс и послушать некоторое время:
го файла:
sensor1# packet display gigabitEthernet0/7
# cfgmaker --no-down new_sensor_ro_community@ ↵
new_sensor_address >> /etc/mrtg.cfg
чтобы понять, ходит ли вообще какой-либо трафик.
Причины того, что ни один пакет не пришел за опреде-
Мониторинг ленное время:
Когда в конфигурационный файл добавлены все сенсо- n Разобрана SPAN-сессия. Однако в этом случае на порт
ры, из него можно делать HTML-страницу, на которой бу- будет приходить широковещательный и служебный тра-
дет отображаться загрузка интерфейсов: фик.
n Сетевики сменили номера VLAN, при этом забыли за-
# indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html вернуть их в SPAN.
n Сбой в работе модуля IDSM2.
Страница должна находиться в том же каталоге, кото-
рый указан в конфигурации /etc/mrtg.cfg как: Последняя причина определяется следующим образом:
при попытке зайти на веб-консоль управления IDSM2 через
https java-апплет запускается, в Dashboard видно, что ин-
терфейсы GigabitEthernet0/7 и 0/8 в состоянии down, затем
вылетает ошибка, и веб-консоль закрывается. Поскольку
вручную интерфейсами IDSM2 манипулировать не так прос-
то, как с интерфейсами свитчей и роутеров, лучше рестар-
товать модуль:
Рисунок 1. График загрузки SPAN-порта IDSM2 в норме
sensor1# reset

График загрузки порта управления выглядит приблизи-


тельно так (см. рис. 3). В данном случае можно определить
по наличию абсолютно ровной прямой, держащейся на оп-
ределенном уровне, отличном от нуля, что в 11:10-11:20 про-
Рисунок 2. График загрузки SPAN-порта IDSM2 показывает изошел сбой программы управления, это привело к отсутс-
резкий спад твию сбора событий, а к 13:00 администратор рестартовал
необходимые процессы.
Таким образом, приходим к выводу, что в данном случае
нет крайней необходимости использовать дорогостоящие
решения, и проблема со своевременным обнаружением от-
сутствия отработки событий или сбоя систем управления
сенсорами сводится к минимуму исключительно с помощью
Рисунок 3. График загрузки порта управления бесплатного ПО при корректной его конфигурации.

24
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Настраиваем хранение логов
в базе данных MySQL

Сергей Крутилин
Не всегда есть возможность зайти на удалённый сервер для просмотра журналов системы
или приложений. Иногда возникает необходимость делегировать другому сотруднику задачи
мониторинга. А может, под рукой не оказалось средств для удалённого доступа? Этих проблем
можно избежать при помощи средств, настройка которых будет описана в данной статье.

Д
ля решения поставленных целей нам понадобит- дистрибутивы, к примеру, это может быть /usr/Distr), после
ся следующее ПО – rsyslog (http://www.rsyslog.com) чего распаковываем полученный архив:
и phpLogcon (http://www.phplogcon.com). Первое бу-
дет записывать различные события журналов в базу дан- #mkdir /usr/Distr
# cd /usr/Distr/
ных MySQL, второе – предоставлять веб-интерфейс для их #wget http://www.rsyslog.com/ ↵
просмотра. Downloads-req-viewsdownload-sid-1.phtml
# tar -zxf rsyslog-3.20.5
Необходимые требования: #cd rsyslog-3.20.5
n Сервер MySQL (http://www.mysql.com).
n Веб-сервер Apache (http://apache.org). Конфигурируем rsyslog (с поддержкой MySQL):
n PHP5 (http://php.net).
n Перед запуском rsyslogd системный демон syslogd дол- ./configure CFLAGS="-I/usr/local/include/" ↵
LDFLAGS="-L/usr/local/lib" --enable-mysql
жен быть остановлен и деактивирован в автозагрузке
системы. После чего выполняем:

Примечание: все действия по установке ПО на *nix-сер- #make


#make install
вере выполняем под пользователем root.
Создаём базу MySQL для rsyslog, используя файл
Установка rsyslog createDB.sql. В нашем случае он находится в директо-
Авторизуемся под учётной записью root на сервере с помо- рии /usr/Distr/rsyslog-3.20.5/plugins/ommysql/. Также нам не-
щью консоли или используя ssh-клиент, удалённо (к приме- обходим пользователь баз данных samaglog с паролем
ру, putty – http://www.chiark.greenend.org.uk/~sgtatham/putty). samagpassword, который имеет все права на созданную
Для работы с файлами на удалённом *nix-сервере можно базу данных с именем Syslog:
использовать WinSCP (будет рассмотрена далее).
Загружаем последнюю стабильную версию (для поряд- # /usr/local/bin/mysql --user=root --password=password < ↵
/usr/Distr/rsyslog-3.20.5/plugins/ommysql/createDB.sql
ка лучше создать директорию, в которой будут лежать все # /usr/local/bin/mysql --user=root --password=password

26
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
mysql>create user 'samaglog'@'localhost' identified by ↵ где samag.local – это имя или IP-адрес вашего веб-сер-
'samagpassword';
mysql>GRANT ALL PRIVILEGES ON Syslog.* ↵ вера.
TO 'samaglog'@'localhost'; Следуя указаниям мастера, доходим до 7-го шага
mysql>quit;
и в поле Source Type выбираем MySQL Native, как показа-
Модифицируем rsyslog.conf. По умолчанию он находит- но на рис. 1. Обращаю ваше внимание на то, что данные
ся в директории /etc. Включаем поддержку MySQL: в поле Database Tablename чувствительны к регистру. Ес-
ли после установки возникнет ошибка:
$ModLoad ommysql.so
No syslog records found - Error Details:
Could not find the configured table, maybe misspelled or the
Синтаксис записи событий в определённый файл схож tablenames are case sensitive
с системным. Для базы MySQL он будет следующим:
Значит, вы неверно указали имя таблицы (вместо
*.* >servername,dbname,user,password SystemEvents написали systemevents). В случае возникно-
вения данной ошибки нужно исправить следующую строч-
Рассмотрим пример записи событий системы, связан- ку в файле /var/www/samaglogs/config.php:
ных с безопасностью:
$CFG['Sources']['Source1']['DBTableName'] = 'SystemEvents';
security.* >127.0.0.1,syslog,samaglog,samagpassword

Запускаем демон rsyslogd со следующими парамет-


рами: Практика
Рассмотрим пример использования нескольких экземпля-
rsyslogd -c3 -4 -f /etc/rsyslog.conf ров rsyslogd и phplogcon. Нам необходим мониторинг собы-
тий mail.* (почтового сервера).
где: Модифицируем в файле createDB.sql в /usr/Distr/
n c – обязательный параметр для определения совмести- rsyslog-3.20.5/plugins/ommysql две первые строчки:
мости со старыми версиями rsyslog,
n 4 – использование ipv4, CREATE DATABASE Maillog;
USE Maillog;
n f – путь к файлу конфигурации.
Остальное оставляем без изменений.
Дополнительную информацию о ключах запуска смот- Аналогично установке rsyslog создаём базу и даём
рите в документации по адресу http://wiki.rsyslog.com/index. на неё все права пользователю samaglog:
php/Main_Page.
На этом установка rsyslog закончена, и мы переходим # /usr/local/bin/mysql --user=root --password=password < ↵
/usr/Distr/rsyslog-3.20.5/plugins/ommysql/createDB.sql
к phpLogcon. # /usr/local/bin/mysql --user=root --password=password
mysql>GRANT ALL PRIVILEGES ON Maillog.* ↵
TO 'samaglog'@'localhost';
Установка phpLogcon mysql>quit;
Скачиваем последнюю стабильную
версию phpLogcon и распаковываем
её в новую директорию нашего веб-
сервера:

# mkdir /var/www/samaglogs/ && ↵


cd /var/www/samaglogs/
# wget http://www.phplogcon.org/ ↵
Downloads-req-getit-lid-54.phtml
# tar -zxf phplogcon-2.6.2.tar.gz
# cp -R phplogcon-2.6.2/src/* .
# rm -r phplogcon*

Создаём пустой файл конфигура-


ции и устанавливаем необходимые
разрешения:

# touch /var/www/samaglogs/ ↵
config.php
# chmod 666 /var/www/samaglogs/ ↵
config.php

Д ля запуска скрипта установ-


ки phpLogcon необходимо открыть
в браузере следующий адрес: http://
samag.local/samaglogs/install.php, Рисунок 1. Настройка базы MySQL для phpLogcon

№5, май 2009 27


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
$CFG['Sources']['Source1'] ↵
['DBName'] = 'maillog';

Получаем отдельный мони -


торинг по адресу http://samag.local/
samagmaillogs, как показано на рис. 2.
Как видно из примера, просматри-
вать журналы намного удобнее через
веб-интерфейс. Можно задавать раз-
личные фильтры, выбирать тип отоб-
ражаемых данных и просматривать
графики. Также rsyslog можно исполь-
зовать для консолидации журналов
нескольких серверов или сетевых ус-
тройств. Один интерфейс просмотра
всегда удобнее, чем несколько.

WinSCP
В заключение рассмотрим упомяну-
тый выше инструмент – WinSCP (http://
winscp.net/eng/docs/lang:ru). Это файл-
Рисунок 2. Пример работы phpLogcon менеджер, который работает по про-
токолу SFTP (http://en.wikipedia.org/
wiki/SFTP).
При помощи WinSCP вы можете ра-
ботать с удалённым сервером *nix по-
средством демона SSH. WinSCP име-
ет следующие возможности:
n графический интерфейс;
n интеграция с ОС Windows (drag&drop,
поддержка схем URL, ярлыки);
n все основные файловые операции.

Остальное вы найдёте на офи-


циальном сайте проекта по адре-
су http://winscp.net /eng/docs/lang:
ru#возможности_программы.
Для работы с WinSCP необходимо
настроить сервис SSH. Раскомменти-
руйте в файле /etc/ssh/sshd_config сле-
дующую строчку:

Subsystem sftp ↵
/usr/libexec/sftp-server
Рисунок 3. Пример работы WinSCP
После чего перезапустите демон
Копируем файл /etc/rsyslog.conf в /etc/rsyslogmail.conf. sshd, используя следующую команду:
После перечисления модулей в файле /etc/rsyslogmail.conf
оставляем лишь: kill -HUP $(cat /var/run/sshd.pid)

mail.* >127.0.0.1,maillog,samaglog,samagpassword где /var/run/sshd.pid – путь к pid-файлу демона sshd.


Пример работы WinSCP показан на рис. 3.
Запускаем rsyslogd со следующими ключами:
Заключение
rsyslogd -c3 -4 -f /etc/ rsyslogmail.conf ↵ Оптимизация повседневных задач упрощает вашу работу.
-i /var/run/samag.pid
Единая система мониторинга позволит избежать многих
где i – путь к pid-файлу, для второго экземпляра rsyslogd. проблем. Грамотное использование средств администри-
Копируем директорию /var/www/samaglogs/ в другую рования, будь то скрипты или сторонне ПО, в большинстве
(к примеру, /var/www/samagmaillogs/). своём принесут только пользу.
Переходим в новую директорию и изменяем следую- Большой каталог свободно распространяемого ПО вы
щую строчку в конце файла config.php: найдёте по адресу http://sf.net.

28
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Выполнение произвольных команд Обход ограничений безопасности
в DNS Tools в Microsoft Internet Information Services
Программа: DNS Tools от 2009-04-17. Программа: Microsoft Internet Information Services 5.1 и 6.0.
Опасность: Высокая. Опасность: Средняя.
Наличие эксплоита: Нет. Наличие эксплоита: Нет.
Описание: Уязвимость существует из-за недостаточной Описание: Уязвимость существует из-за ошибки при об-
обработки входных данных в параметрах «ns» и «host» в работке WebDAV-запросов к директориям, требующим ау-
сценарии dig.php перед вызовом функции «system()». Уда- тентификацию. Удаленный пользователь может с помощью
ленный пользователь может с помощью специально сфор- специально сформированного HTTP GET-запроса, содер-
мированного запроса выполнить произвольные команды жащего Unicode-символы и «Translate: f» HTTP-заголовок,
на системе. обойти ограничения безопасности и, например, скачать
Пример: файлы с защищенных каталогов. Удачная эксплуатация
уязвимости также может позволить загрузку произволь-
http://[host]/dig.php?ns=||COMMAND HERE||&host= ↵
mortal-team.net&query_type=NS&status=digging ных файлов в защищенные WebDAV-каталоги.
URL производителя: www.microsoft.com.
URL производителя: gscripts.net/free-php-scripts/Other/ Решение: В настоящее время способов устранения уязви-
DNS_Tools/details.html. мости не существует.
Решение: В настоящее время способов устранения уязви-
мости не существует. Уязвимости в Alert Management System 2
в продуктах Symantec
Обход ограничений безопасности Программа: Symantec AntiVirus Corporate Edition 9.0 MR6
в Online Password Manager and prior, 10.0 (все версии), 10.1 MR7 и более ранние вер-
Программа: Online Password Manager 4.1, возможно, дру- сии и 10.2 MR1 и более ранние версии; Symantec Client
гие версии. Security 2.0 MR6 и более ранние версии, 3.0 (все вер-
Опасность: Средняя. сии) и 3.1 MR7 и более ранние версии; Symantec Endpoint
Наличие эксплоита: Нет. Protection 11.0 MR2 и более ранние версии.
Описание: Уязвимость существует из-за некорректного ог- Опасность: Средняя.
раничения доступа к интерфейсу управления. Удаленный Наличие эксплоита: Нет.
пользователь может установить параметр файла куки auth Описание: 1. Уязвимость существует из-за неизвестной
в значение действительной учетной записи и обойти меха- ошибки в Intel LANDesk Common Base Agent (CBA), которая
низм аутентификации. позволяет передать содержимое пакета в качестве аргу-
URL производителя: www.esoftpro.com/web_scripts_online_ мента функции CreateProcessA(). Удаленный пользователь
password_manager.php. может отправить специально сформированный TCP-пакет
Решение: В настоящее время способов устранения уязви- на порт 12174 и выполнить произвольные команды на сис-
мости не существует. теме с привилегиями учетной записи SYSTEM.
2. Уязвимость существует из-за ошибки проверки гра-
Множественные уязвимости ниц данных в службе Intel Alert Originator Service (iao.exe).
в HP StorageWorks Storage Удаленный пользователь может отправить специально
Mirroring Software сформированный TCP-пакет на порт 38292, вызвать пере-
Программа: HP StorageWorks Storage Mirroring Software полнение стека и выполнить произвольный код на целевой
версии до 5.1.1.1090.15. системе с привилегиями учетной записи SYSTEM.
Опасность: Средняя. 3. Уязвимость существует из-за ошибки проверки гра-
Наличие эксплоита: Нет. ниц данных в службе Intel Alert Originator Service (iao.exe) при
Описание: 1. Уязвимость существует из-за неизвестной обработке входных данных от процесса MsgSys.exe. Зло-
ошибки, которая позволяет злоумышленнику получить не- умышленник может вызвать переполнение стека и выпол-
авторизованный доступ к системе. Подробности уязвимос- нить произвольный код на целевой системе с привилегия-
ти не сообщаются. ми учетной записи SYSTEM.
2. Уязвимость существует из-за неизвестной ошибки, 4. Уязвимость существует из-за ошибки дизайна в служ-
которая позволяет злоумышленнику вызвать отказ в обслу- бе Intel File Transfer Service (XFR.EXE) при обработке путей
живании. Подробности уязвимости не сообщаются. к программам в запросах, отправленных на порт 12174/TCP.
3. Уязвимость существует из-за неизвестной ошиб- Злоумышленник, способный установить TCP-соединение
ки, которая позволяет злоумышленнику выполнить произ- с уязвимой системой, может выполнить произвольный код
вольный код на целевой системе. Подробности уязвимос- на системе с привилегиями учетной записи SYSTEM.
ти не сообщаются. URL производителя: www.symantec.com.
URL производителя: h18006.www1.hp.com/products/storage/ Решение: Установите последнюю версию с сайта произ-
software/sm. водителя.
Решение: Установите последнюю версию 5.1.1.1090.15
с сайта производителя. Составил Александр Антипов

№5, май 2009 29


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Делегируем права на перемещение учетных записей
пользователей в Active Directory
Часть 3. Реализуем необходимые операции

Вадим Андросов
Продолжим изучать функции поддержки работы надстройки для Windows 2003 Server,
реализующей перевод пользователя из одного подразделения в другое силами двух
администраторов. В частности, будут затронуты вопросы программной манипуляции
объектами Active Directory, работы с событиями с помощью WMI, модификации списков
контроля доступа (ACL).

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


Реализуем механизм автоматического делегирования прав ализованы в рамках единого класса надстройки UserMove.
на манипуляцию объектами пользователей. Конечно, эта Engine.
операция может быть выполнена и вручную. Однако было Начнем с метода, предоставляющего менеджеру права
бы гораздо удобнее назначить руководителя организацион- на манипуляции с объектами пользователей в рамках за-
ной единицы. Необходимые права должны быть предостав- данного подразделения. В качестве параметров он получа-
лены менеджеру автоматически. Соответственно при поте- ет путь к организационной единице и менеджеру, которому
ре пользователем роли менеджера подразделения эти пра- требуется предоставить необходимые полномочия.
ва нужно также автоматически отнять.
Такие вещи очень важны для предприятий со сложной function delegateOU(ouPath, userPath)
dim trustee, sec, acl, ace, ou, user, i
структурой, когда администратор должен быть избавлен Set ou = getObject(ouPath)
от необходимости выполнять взаимосвязанные действия Set user = getObject(userPath)
вручную. Вместо этого достаточно выполнить только ини-
циирующую операцию (назначение менеджера по персо- Для начала нужно привязаться к объекту «Список конт-
налу отдела). Это существенно снизит уровень ошибок роля доступа» текущей организационной единицы, как это
администратора (например, лишив пользователя роли ме- делалось в методах проверки, реализованных в предыду-
неджера можно забыть отключить у него соответствую- щей части статьи [2].
щие права), как следствие, повысив общий уровень безо-
пасности системы. Set sec = ou.Get("ntSecurityDescriptor")

30
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Set acl = sec.DiscretionaryAcl select case flag
trustee = info.domainShortName & "\" & ↵ case ADS_FLAG_OBJECT_TYPE_PRESENT:
user.samAccountName createAcceptAce.ObjectType = classGUID
for i = 0 to UBound(delegationClasses) createAcceptAce.AceFlags = ADS_ACEFLAG_INHERIT_ACE
case ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT:
createAcceptAce.InheritedObjectType = classGUID
Затем по очереди создаются необходимые записи createAcceptAce.AceFlags = ADS_ACEFLAG_INHERIT_ACE + ↵
ADS_ACEFLAG_INHERIT_ONLY_ACE
списка контроля доступа для каждого из классов масси- end select
ва delegationClasses. Они уже обсуждались при реализа- createAcceptAce.Flags = flag
createAcceptAce.Trustee = trustee
ции проверки, поэтому подробно останавливаться на них end function
не будем. Как будет видно из программы ниже, для это-
го нужно создать объект типа AccessControlEntry, проини- Потребуется и обратная функция для отмены делеги-
циализировать необходимые поля и записать новый эле- рования. Сразу нужно оговориться, что фактически будет
мент в список контроля доступа с помощью метода спис- происходить удаление тех записей списка контроля досту-
ка AddAce. па, которые добавлялись в функции делегирования выше.
Если пользователь имеет те же права, например, участвуя
Set ace = createAcceptAce(ADS_RIGHT_DS_CREATE_CHILD Or ↵ в определенных группах, то их он не потеряет. То есть речь
ADS_RIGHT_DS_DELETE_CHILD, delegationClasses(i), ↵
ADS_FLAG_OBJECT_TYPE_PRESENT, Trustee) идет не об отмене делегирования управления организаци-
онной единицей как таковой, а, скорее, о функции, обрат-
Эта запись разрешает создавать в организационной ной delegateOU. Такое поведение было выбрано, чтобы ми-
единице объекты заданного типа. нимизировать влияние надстройки на другие политики бе-
зопасности предприятия.
acl.AddAce ace

Set ace = createAcceptAce(FULL_CONTROL , ↵ Листинг 1. Отмена делегирования управления организационной


delegationClasses(i), ↵ единицей
ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT, Trustee)
function undelegateOU(ouPath, userPath)
dim ou, user, i
Эта запись разрешает изменение свойств объектов, set ou = getObject(ouPath)
принадлежащих классу с идентификатором delegation set user = getObject(userPath)
for i = 0 to UBound(delegationClasses)
Classes(i) undelegate ou, user, FULL_CONTROL , ↵
delegationClasses(i), true
acl.AddAce ace undelegate ou, user, ADS_RIGHT_DS_DELETE_CHILD Or ↵
next ADS_RIGHT_DS_CREATE_CHILD, delegationClasses(i), false
next
makeNotManager user
Обновленный список привязывается к отделу. Важно end function
не забыть вызвать метод организационной единицы SetInfo,
чтобы изменения были физически сохранены. Отмена конкретного разрешения выполняется следу-
ющей подпрограммой. Все записи списка контроля досту-
sec.DiscretionaryAcl = acl па проверяются с помощью метода shouldBeDeleted и, ес-
ou.Put "ntSecurityDescriptor", Array(sec)
ou.SetInfo ли он вернул истину, удаляются.

Кроме того, в первой части статьи [1] упоминалась спе- Листинг 2. Удаление из ACL записей, позволяющих управлять
организационной единицей
циальная группа безопасности, содержащая всех менед-
жеров по персоналу. Вызов следующей подпрограммы бу- function undelegate(ou, user, oper, targetClass, isInherited)
Dim sec, acl, ace
дет добавлять текущего пользователя в такую группу. Его Set sec = ou.Get("ntSecurityDescriptor")
реализация будет рассмотрена позже. Set acl = sec.DiscretionaryAcl
For Each ace In acl
if shouldBeDeleted(user, ace, oper, ↵
makeManager user targetClass, isInherited) then
end function acl.RemoveAce ace
end if
Рассмотрим функцию создания записи списка контро- Next
sec.DiscretionaryAcl = acl
ля доступа. ou.Put "ntSecurityDescriptor", Array(sec)
ou.SetInfo
function createAcceptAce(accessMask, classGUID, flag, ↵ end function
trustee)
Следующая подпрограмма выясняет, нужно ли удалить
Сначала создается экземпляр класса AccessControlEntry, определенную запись списка контроля доступа при уда-
посредством которого будет предоставляться заданное лении у пользователя прав менеджера по персоналу. Она
право. проверяет, что запись относится к целевому пользовате-
лю и предоставляет права на управление организацион-
set createAcceptAce = CreateObject("AccessControlEntry") ной единицей.
createAcceptAce.AceType = ADS_ACETYPE_ACCESS_ALLOWED_OBJECT
createAcceptAce.accessMask = accessMask
Листинг 3. Требуется ли удалять запись ACL для отмены
делегирования
Затем в зависимости от параметра flag целевой объект
записывается в поле ObjectType или InheritedObjectType. function shouldBeDeleted(user, ace, oper, targetClass, ↵

№5, май 2009 31


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
isInherited) if managerGroup.isMember(userWinNTPath) then
shouldBeDeleted = false managerGroup.remove userWinNTPath
if ace.trustee <> (info.domainShortName & "\" & ↵ managerGroup.setInfo
user.samAccountName) then exit function end if
dim classGUID end function
if isInherited then
classGUID = ace.InheritedObjectType
else
classGUID = ace.ObjectType Таким образом, группа Staff Managers будет всегда со-
end if держать действительный список менеджеров по персона-
if (classGUID = targetClass) and ↵
isMask(ace.accessMask, oper) then лу организации.
if ace.AceType = _
ADS_ACETYPE_ACCESS_ALLOWED_OBJECT then
shouldBeDeleted = true Автоматизация делегирования
exit function Функции делегирования и его отмены реализованы. Теперь
end if
end if остается только обеспечить их автоматическое выполнение
end function при смене руководителя подразделения (см. рисунок).
Подробно реализация обработки событий на основе сце-
Наконец, рассмотрим подпрограммы поддержки акту- нариев была рассмотрена в [3], поэтому ограничусь повер-
альности группы безопасности менеджеров по персоналу. хностным описанием. В этом случае потребуется обраба-
Было принято решение назвать ее Staff Managers. Жестко тывать события изменения объекта организационной еди-
прописанное название специальной группы не является ницы (__InstanceModificationEvent).
самым удачным решением. Я остановился на нем, чтобы Для фильтрации событий будет использоваться спе-
не отвлекать внимания от сущности надстройки мелкими циальный язык WQL [4] (WMI Query Language). Он основан
деталями реализации. Вся функциональность описывается на SQL (точнее, является подмножеством структурирован-
с помощью двух методов: makeManager (добавляет пользо- ного языка запросов) и во многом повторяет его синтаксис.
вателя в группу менеджеров при назначении его руководи- WQL содержит только оператор SELECT, модифицирован-
телем организационной единицы) и makeNotManager (соот- ный для работы с WMI (Windows Management Instrumentation).
ветственно удаляет пользователя из группы. Для привязки Особенности языка будут рассмотрены в статье по мере
к группе я использовал провайдер WinNT, чтобы не зави- его использования.
сеть от расположения объекта группы в иерархии. Сначала рассмотрим сценарий установки обработчика
Итак, первый метод добавления пользователя в груп- событий. Для этого требуется создать и соответствующим
пу. В нем сначала происходит привязка к объекту груп- образом проинициализировать объекты трех классов
пы с помощью провайдера WinNT. Для этого используется n __EventFilter. С помощью объекта этого класса опера-
путь, состоящий только из домена и имени группы, напри- ционная система ставится в известность, какие именно
мер WinNT://MARKLAR/Staff Managers. Сама группа может события должны обрабатываться. Для этого использу-
быть расположена в любом контейнере. Затем составляет- ется запрос на языке WQL. Для нашего случая запрос
ся описатель пользователя в таком же формате (перемен- будет иметь вид:
ная userWinNTPath). Если пользователь уже является чле-
ном группы, функция завершает работу. В противном случае SELECT * FROM __InstanceModificationEvent ↵
"WITHIN 5 WHERE TargetInstance ISA ↵
пользователь добавляется в группу с помощью метода add. 'ds_organizationalunit'

Листинг 4. Назначение менеджера по персоналу Это значит, что требуется обрабатывать события
для подразделения
класса __InstanceModificationEvent для объектов типа
function makeManager(newManager) ds_organizationalunit, наличие событий должно прове-
dim managerGroup, userWinNTPath
set managerGroup = getObject("WinNT://" & ↵ ряться раз в 5 секунд.
info.domainShortName & "/Staff Managers") n ActiveScriptEventConsumer. Объект этого класса ин-
userWinNTPath = "WinNT://" & info.domainShortName & ↵
"/" & newManager.samAccountName капсулирует реакцию на событие и позволяет выпол-
if managerGroup.isMember(userWinNTPath) then exit function нить произвольный сценарий. Текст выполняемой про-
managerGroup.add userWinNTPath
managerGroup.setInfo граммы должен быть сохранен в поле ScriptText.
end function n __FilterToConsumerBinding. Класс, объект которого ис-
пользуется для связи объектов предыдущих двух типов.
Метод удаления пользователя из группы очень похож Инициализация его полей включает механизм слеже-
на предыдущий. Главное отличие – если проверка показы- ния за событиями. Удаление объекта этого класса при-
вает, что пользователь содержится в группе менеджеров водит к прекращению обработки соответствующего со-
по персоналу, он из нее удаляется. бытия.

Листинг 5. Отмена полномочий менеджера по персоналу Сначала рассмотрим функцию, устанавливающую слу-
для пользователя
шателя на событие. Первый ее параметр – название опера-
function makeNotManager ции. Используется при формировании имен вспомогатель-
dim managerGroup, userWinNTPath
set managerGroup = getObject("WinNT://" & ↵ ных классов, чтобы они были нагляднее. Второй вариант –
info.domainShortName & "/Staff Managers") имя события, обработчик которого создается. Третий – имя
userWinNTPath = "WinNT://" & ↵
info.domainShortName & "/" & user.samAccountName файла с кодом обработки события.

32
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Const FOR_READING = 1 userBinder.Consumer = ↵
Function addListener(sOperation, sEvent, sClass, sScript) "ActiveScriptEventConsumer.Name=" & chr(34) & ↵
"Run" & sOperation & "Script" & chr(34)

Сначала создается объект для работы с файловой сис- После выполнения следующей строки начнется обработ-
темой. Текст сценария, выполняемого в ответ на событие, ка событий изменения объектов организационных единиц.
для удобства будет храниться в отдельном файле и загру-
жаться при установке обработчика. userBinder.Put_()
end function

Set fso = createObject("Scripting.FileSystemObject") Код непосредственной обработки события хранится


path = "\\.\root\directory\LDAP" в отдельных файлах. Следующая функция служит для его
Set objSWbemServices = GetObject("winmgmts:" ↵ преобразования в одну линию. В VBScript можно получить
& "{impersonationLevel=impersonate}!" & path)
работающий однострочный сценарий, заменив разрывы
Затем подключаемся к классам, экземпляры кото- строк двоеточием.
рых будем создавать впоследствии. Классы __EventFilter
и __FilterToConsumerBinding являются стандартными и уже Function multyLine2SingleString(multyLine)
multyLine2SingleString = replace(multyLine, vbCrLf, " : ")
присутствуют в пространстве имен root\directory\LDAP. end Function

Set eventFilterClass = ↵ Функции установки слушателей событий нужно сохра-


objSWbemServices.Get("__EventFilter")
Set consumerClass = ↵ нить в отдельном файле с расширением vbs. В начале фай-
objSWbemServices.Get("ActiveScriptEventConsumer") ла будут содержаться их вызовы.
Set bindingClass = ↵
objSWbemServices.Get("__FilterToConsumerBinding")
addListener "OUModificate", __InstanceModificationEvent", ↵
"ds_organizationalunit", "onOUModification.vbs_"
ActiveScriptEventConsumer нужно отдельно скомпилиро- addListener "CommandSeed", "__InstanceCreationEvent", ↵
вать в этом пространстве имен с помощью команды: "ads_usermovecommand", "onCommand.vbs_"

mofcomp -N:root\directory\LDAP ↵ Функция вызывается дважды. Первый вызов устанав-


%SYSTEMROOT%\system32\wbem\scrcons.mof
ливает обработчик события смены руководителя подраз-
Затем с помощью метода SpawnInstance_ создаются эк- деления (см. рисунок). Рассмотрим содержимое файла
земпляры каждого класса и инициализируются необходи- onOUModification.vbs_. Расширение файла может быть лю-
мые поля. Вызов метода Put_ приводит к сохранению эк- бым, поскольку используется он только для хранения текс-
земпляра в постоянном хранилище. та сценария. Сам по себе он не запускается.
Инициализируем класс-фильтр. Основная настройка Итак, цель – добиться того, чтобы при смене руководите-
здесь – текст запроса на языке WQL, в котором указывает- ля подразделения ему автоматически делегировались пол-
ся, события какого типа требуется обрабатывать. С помо- номочия манипулирования пользовательскими объектами.
щью конструкции WITHIN 5 системе предписывается про- У предыдущего руководителя эти полномочия нужно соот-
верять очередь событий раз в 5 секунд. Операция перево- ветственно отнять. Реализуем эту функциональность (да-
да человека в другой отдел достаточно длительная, поэто- лее приводится содержание файла onOUModification.vbs_,
му значение может быть и больше. т.е. сценарий, выполняющийся при смене менеджера орга-
низационной единицы).
set userFilter = eventFilterClass.SpawnInstance_() В сценариях обработки событий можно использовать
userFilter.Name = sOperation & "Filter"
userFilter.QueryLanguage = "WQL" экземпляр объекта текущего события, ссылка на которых
userFilter.Query = "SELECT * FROM " & sEvent & ↵ хранится в переменной targetEvent. Создавать или иници-
" " & "WITHIN 5 WHERE TargetInstance ISA '" & ↵
sClass & "'" ализировать ее
userFilter.EventNamespace = "root\directory\LDAP" вручную не нужно.
userFilter.Put_()
При обработке со-
Код непосредственной обработки события загружаем бытия изменения
из файла. В нем не должно быть символов перевода строки, имеется доступ
поэтому предварительно код сценария преобразовывается как к текущему
в однострочный с помощью функции multyLine2SingleString (TargetInstance),
(ее реализация будет указана ниже). так и к предыду-
щему (Previous
Set srcFile = fso.OpenTextFile(sScript, FOR_READING) Instance) состо-
set userConsumer = consumerClass.SpawnInstance_()
userConsumer.Name = "Run" & sOperation & "Script" яниям объек та.
userConsumer.ScriptText = ↵ Это очень удоб-
multyLine2SingleString(srcFile.readAll)
userConsumer.ScriptingEngine = "VBScript" но, так как таким
userConsumer.Put_() образом можно
srcFile.close
получить инфор-
set userBinder = bindingClass.SpawnInstance_() мацию о новом
userBinder.Filter = "__EventFilter.Name=" & ↵
chr(34) & sOperation & "Filter" & chr(34) и старом менед- Назначение руководителя подразделения

№5, май 2009 33


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
жерах. Собственно, это и делается в первых двух стро- когда существует соответствующим образом проинициали-
ках сценария. зированная цепочка из объектов трех классов: __EventFilter,
ActiveScriptEventConsumer и __FilterToConsumerBinding.
newManager = targetEvent.TargetInstance.DS_managedBy Удаление любого из них приведет к остановке обработки.
oldManager = targetEvent.PreviousInstance.DS_managedBy
Тем не менее приведем более аккуратный сценарий, уда-
Затем производится проверка, а изменился ли менед- ляющий все объекты.
жер. Дело в том, что событие этого типа возникает при из-
менении любого свойства организационной единицы (пе- Set objWIMService = _ ↵
GetObject("winmgmts:\\.\root\directory\LDAP")
реименовании, например), продолжать же данный сцена-
рий нужно, только если изменился менеджер. Сначала удаляются объекты классы __FilterToConsumer
Binding. Они не имеют имен, поэтому для подключения
if newManager <> oldManager then к ним используется специальный запрос на получение
всех объектов, ссылающихся на фильтр удаляемого собы-
Сначала создается объект основного класса надстрой- тия (__EventFilter). Результат выборки обходится, и все най-
ки, разрабатываемый в ходе этой статьи, который инкапсу- денные объекты удаляются из хранилища.
лирует основные операции надстройки.
Set objList = objWIMService.ExecQuery( ↵
"references of {__EventFilter.Name= ↵
set engine = createObject("UserMove.Engine") 'OUModificateFilter'}")
For each objInst in objList
objInst.Delete_
Затем сохраняем путь к организационной единице в пе- Next
ременной ouPath:
Операции выше достаточно для прекращения обработ-
ouPath = targetEvent.TargetInstance.ADSIPath ки событий. Ее можно применять для временного отклю-
if oldManager <> "" then
чения надстройки. Однако для полного удаления всех сле-
Если у этого подразделения был другой менеджер, ан- дов нужно удалить и оставшиеся два объекта. У них уже
нулируем его права. есть отличительные имена, поэтому операция удаления
заключается в привязке на основе имени и вызова мето-
engine.undelegateOU ouPath, "LDAP://" & oldManager да obj.Delete_:
end if

Затем осуществляется делегирование прав манипуля- Set obj = GetObject("winmgmts:\\.\root\directory\LDAP:” & ↵


”ActiveScriptEventConsumer='RunOUModificateScript'")
ции пользовательскими объектами новому менеджеру. obj.Delete_
Set obj = GetObject("winmgmts:\\.\root\directory\LDAP:” & ↵
& ”__EventFilter='OUModificateFilter'")
if newManager <> "" then obj.Delete_

Если новый менеджер назначен (возможен сброс этого


поля, когда старое значение удаляется, а новое не назна- Обработчик команд
чается), ему предоставляются необходимые права. В этом разделе будет описан еще ряд методов основно-
го класса надстройки UserMove.Engine. Здесь основное
engine.delegateOU ouPath, "LDAP://" & newManager внимание сосредоточим на обработке объектов-команд.
end if
end if Для этого будет использоваться единственный открытый
метод dispatchCommand и несколько закрытых вспомога-
Теперь автоматическое делегирование прав работает. тельных.
Достаточно назначить менеджера подразделения с помо- Каждая команда имеет поле своего типа. Тип команды –
щью оснастки Active Directory Users and Computers (см. ри- строка. Все они определены в файле класса надстройки по-
сунок), чтобы ему были делегированы полномочия рабо- средством ввода следующих констант.
ты с объектами пользователей в рамках данного подраз- Команда начала перемещения:
деления.
Далее проанализируем файл, который содержит об- Const START_MOVE_COMMAND = "StartMove"
работчик событий, связанных с объектами команд
onCommand.vbs_: Команда отказа принять переводимого сотрудника
в отдел:
set cmd = getObject(targetEvent.TargetInstance.ADSIPath)
createObject("UserMove.Engine").dispatchCommand cmd Const DENY_COMMAND = "Deny"
Он содержит две строчки. Потому что весь код реальной
обработки инкапсулирован в методе dispatchCommand ос- Команда подтверждения перевода сотрудника:
новного класса надстройки UserMove.Engine. Его реализа-
ции и будет посвящена следующая часть статьи. Const ACCEPT_COMMAND = "Accept"
Но сначала рассмотрим отключение обработчиков собы-
тий. Как уже говорилось, события обрабатываются, только Команда отмены операции перевода:

34
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Const ROLLBACK_COMMAND = "RollBack" select case cmd.userMoveID
function dispatchCommand(cmd) case START_MOVE_COMMAND:
dispatchStartMoveCommand cmd
case ACCEPT_COMMAND:
dispatchAcceptCommand cmd
Здесь используется обработка ошибок, поскольку пре- case DENY_COMMAND:
ждевременное завершение функции может привести к «по- dispatchDenyCommand cmd
case ROLLBACK_COMMAND:
терям» объектов пользователей. В кавычках это слово по- dispatchRollbackCommand cmd
тому, что физически удален объект пользователя не будет, default:
resetCommand cmd
лишь перестанет быть видимым. Кроме того, сбой в этой end select
подпрограмме без обработки ошибок может привести к пе- if err<>0 then resetCommand cmd
end function
реводу надстройки в противоречивое состояние. Поэтому
в самом начале функции используется директива продол-
жения выполнения сценария, несмотря на возникающие Сначала рассмотрим метод проверки целостности ко-
ошибки. В конце анализируется переменная специальная манды. Это важная часть надстройки, которая относится
err – если она не равна нулю, ошибки были. В этом случае к функциональности сервера. Сами команды создаются
обрабатываемая команда отменяется с помощью специ- на рабочих станциях клиентов (менеджеров по персоналу).
ального метода resetCommand. Поэтому существует вероятность фальсификации этих объ-
ектов. Выполняться же должны только корректные коман-
on error resume next ды. Функция checkIntegrity возвращает значение логичес-
кого типа. Возвращает истину, если команда прошла про-
Далее команда проверяется на корректность с помощью верку, и ложь в противном случае.
метода checkIntegrity. Некорректная команда отменяется.
function checkIntegrity(cmd)
if not checkIntegrity(cmd) then
resetCommand cmd
exit function Функция может работать с не вполне корректными объ-
end if ектами, поэтому возможны ошибки, которые не должны
прервать ее выполнение.
Если команда успешно прошла проверку, вызывается
ее обработчик. Для каждого типа команд существует свой On Error resume next
dim owner, executor, stOwner
метод обработки. Далее все они будут рассмотрены.

Реклама

№5, май 2009 35


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Изначально предполагаем худшее – команда не про- function dispatchStartMoveCommand(cmd)
dim chair, room, whomObject, parentOU
шла проверку.

checkIntegrity = false Сначала создается объект стула ожидания в целевом


подразделении.
Далее получаем объект владельца команды. Поле
userMoveExecutor должно указывать на этого же пользо- set chair = createChair(cmd)
for each whomObject in cmd
вателя – менеджера по персоналу, создавшего команду.
То есть команда может быть создана с использованием Затем объект пользователя, инкапсулированный в ко-
одной учетной записи, а в поле userMoveExecutor установ- манду, перемещается в объект стула ожидания.
лен указатель на другую. Установить поле легко, поменять
владельца объекта – сложнее (для этого требуются права chair.moveHere whomObject.ADSPath, vbNullString
next
администратора). set parentOU = getObject(cmd.parent)

stOwner = cmd.get("ntsecuritydescriptor").owner Далее подключаемся к комнате ожидания организа-


set owner = getObject("WinNT://" & ↵
replace(stOwner,"\", "/")) ционной единицы – источника перемещения. Она понадо-
set executor = getObject(cmd.userMoveExecutor) бится для добавления ссылки на перемещенный объект,
if err <> 0 then exit function
if owner.class = "Group" then чтобы облегчить его поиск в случае необходимости отка-
та операции.
Если владелец объекта команды – группа, пользователь,
создавший ее, должен быть членом этой группы. set room = getWaitingRoom(parentOU)
for each whomObject in chair
checkIntegrity = owner.isMember("WinNT://" & ↵ Функция createBackLink создает эту самую обратную
info.domainShortName & "/" & executor.samAccountName)
elseif owner.class = "User" then ссылку:
checkIntegrity = (executor.samAccountName = owner.name)
end if
end function createBackLink room, whomObject.ADSPath

Метод проверяет целостность объекта. Имеет ли право В конце объект выполненной команды удаляется.
пользователь пользоваться командой, проверяется при ее
выполнении. parentOU.delete START_MOVE_COMMAND_CLASS, ↵
"CN=cmd_" & START_MOVE_COMMAND & "_" & ↵
Метод «Сброс команды» удаляет ее объект. Единствен- whomObject.samAccountName
ное исключение – команда начала перемещения, которая next
end function
содержит в себе объект пользователя. В этом случае перед
удалением объект пользователя извлекается в текущую ор- Рассмотрим использованные при обработке дополни-
ганизационную единицу. Поскольку эта ситуация потенци- тельные методы. Первой использовалась функция созда-
ально опасна, профиль пользователя отключается. ния стула ожидания.

Листинг 6. Сброс некорректной команды function createChair(cmd)


dim chairNumber, room
function resetCommand(cmd)
On error resume next Свойство userMoveTo команды содержит указатель
dim ou
set ou = getObject(cmd.parent) на организационную единицу – пункт конечного назначе-
if cmd.class = START_MOVE_COMMAND_CLASS then ния. Указатель на комнату ожидания этого подразделения
dim user
for each user in cmd снова получаем, используя функцию getWaitingRoom.
user.accountDisabled = true
user.setInfo set room = getWaitingRoom(getObject(cmd.userMoveTo))
ou.moveHere user.ADSPath, vbNullString
next
end if
ou.delete cmd.class, cmd.name Объекты стульев пронумерованы, чтобы избежать сов-
end function падений имен. Они называются chair_1, chair_2 и так далее.
Метод getNextNumber позволяет получить следующий сво-
бодный номер стула в заданной комнате.
Начало перемещения
Перейдем к рассмотрению непосредственных обработчи- chairNumber = getNextNumber(room, CHAIR_CLASS)
ков команд. Сначала команда начала перемещения. Логи-
ка ее работы подробно описана в первой части статьи [2]. Теперь можно создать объект стула. Практически все
Единственный параметр метода – объект команды, кото- основные свойства перемещения (инициатор, время и др.)
рую нужно выполнить. Проверку на целостность к этому мо- копируются из объекта команды.
менту команда уже прошла. Здесь используется ряд вспо-
могательных методов, реализация которых будет рассмот- set createChair = room.create(CHAIR_CLASS, ↵
"CN=chair_" & chairNumber)
рена позже. createChair.userMoveFrom = cmd.userMoveFrom

36
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
createChair.userMoveWho = cmd.userMoveWho next
createChair.userMoveComment = cmd.userMoveComment getNextNumber = getNextNumber + 1
createChair.userMoveWhen = cmd.userMoveWhen end function
createChair.userMoveDisabled = cmd.userMoveDisabled
Этот метод использует функцию извлечения из строки
После выполнения следующей строки новый объект имени номера, основываясь на том, что он отделен подчер-
стула ожидания будет создан и готов к перемещению в не- киванием. Функция находит символ подчеркивания и пыта-
го пользователя. ется преобразовать символы справа от него в число. Это до-
статочно примитивное решение, поддерживающее толь-
createChair.setInfo ко имена с одним подчеркиванием. Однако для целей над-
end function
стройки этого вполне достаточно.
Далее рассмотрим функцию получения объекта комна-
ты ожидания, прикрепленного к заданной организационной Листинг 7. Извлечение номера объекта из его имени
единице. Если комнаты ожидания нет, метод создает ее. function getUnderlinedNumber(src)
Единственный параметр – целевое подразделение. dim pos
pos = instr(1, src, "_", vbTextCompare)
if pos > 0 then
function getWaitingRoom(ou) getUnderlinedNumber = CInt(right(src, len(src) - pos))
dim el end if
end function
Устанавливаем фильтр, чтобы в перебор с помощью
цикла for each попали только объекты типа «Комната ожи- Ну и в конце этой части статьи рассмотрим последнюю
дания» (на самом деле в этой надстройке используется вспомогательную функцию создания ссылки на перене-
только одна комната ожидания для каждой организацион- сенный объект. Напомню, что ссылка в данной надстрой-
ной единицы). ке – объект, содержащий единственное поле – путь к объ-
екту Active Directory. Схема именования используется та-
ou.filter = Array(ROOM_CLASS) кая же, как и для стульев ожидания: link_<номер ссылки>.
for each el in ou
set getWaitingRoom = el Метод получает два параметра: организационную еди-
ницу, откуда осуществляется перемещение, и собствен-
Если комната ожидания найдена, функция возвращает но ссылку. Реализация довольно очевидна – с помощью
ссылку на нее и завершает работу. getNextNumber определяется первый свободный номер, за-
тем создается экземпляр класса ссылки, инициализирует-
exit Function ся и сохраняется.
next

В противном случае объект комнаты ожидания снача- Листинг 8. Создание обратной ссылки
ла создается. function createBackLink(room, backLink)
dim linkNumber
set getWaitingRoom = ou.create(ROOM_CLASS, ↵ linkNumber = getNextNumber(room, LINK_CLASS)
"CN=waiting_room") set createBackLink = room.create(LINK_CLASS, ↵
getWaitingRoom.setInfo "CN=link_" & linkNumber)
end function createBackLink.userMoveLink = backLink
createBackLink.setInfo
end function
Также при создании стула использовалась функция оп-
ределения первого свободного номера объекта заданного
типа в конкретном контейнере. Рассмотрим ее подробнее. Заключение
Функция позволяет получить следующий номер для объек- В этой части статьи была начата реализация механизма
тов любого класса (имя типа передается вторым парамет- обработки команд. В следующей части она будет завер-
ром), которые именуются в виде <имя>_<номер>. шена. Остается сделать обработчики остальных типов ко-
манд, а также разработать подпрограммы создания новых
function getNextNumber(room, className) команд. Также в следующей части будет рассмотрено ис-
room.Filter = Array(className)
dim i, n пользование регулярных выражений для упрощения об-
getNextNumber = 0 работки строк.

Реализация достаточно простая. Сначала для кон- 1. Андросов В. Делегирование прав на перемещение учетных
тейнера устанавливается фильтр, чтобы в перебор по- записей пользователей в Active Directory. Часть 1. Постановка
средством for each попадали только объекты нужного ти- задачи. //Системный администратор, №3, 2009 г. – С. 16-21.
па. Затем получается номер каждого объекта (функция 2. Андросов В. Делегирование прав на перемещение учетных за-
getUnderlinedNumber). Функция определяет максимальный писей пользователей в Active Directory. Часть 2. Реализация
встреченный номер и возвращает его, увеличив на еди- основных функций. //Системный администратор, №4, 2009 г. –
ницу. С. 24-30.
3. Андросов В. Синхронизация ACL и структуры организации.
for each i in room Часть 3. //Системный администратор», №2, 2008 г. – С. 82-87.
n = getUnderlinedNumber(i.cn)
if n > getNextNumber then getNextNumber = n 4. msdn.microsoft.com.

№5, май 2009 37


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Установка Windows XP с помощью
System Center Configuration Manager 2007 R2

Алексей Тараненко
Для облегчения труда системного администратора компания Microsoft создавала различные
средства автоматизации процесса установки ОС. Вначале это были файлы ответов и Remote
Installation Services (RIS), затем Windows Deployment Services (WDS). Сегодня я расскажу вам
об Operation System Deployment (OSD) в SCCM 2007 R2.

У
становка операционной систе- ру. Особенно рутинной она становит- ре, а представьте, что вам поручили
мы – одна из операций, которую ся, когда нужно одновременно уста- подготовиться к открытию офиса в но-
периодически необходимо про- новить ОС на несколько компьютеров. вом городе и одновременно нужно ус-
водить системному администрато- Хорошо, если их будет три или четы- тановить 50 или 100 компьютеров. Ес-

38
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
тественно, что процесс ручной уста-
новки операционной системы на каж- Глоссарий несколько образов в одном WIM-фай-
дый компьютер займет очень много  Windows Preinstallation Environment ле. Формат WIM существенно уменьша-
времени. (Windows PE) – прединсталляционная ет размер файловых образов, исполь-
В статье будет рассмотрена уста- платформа Microsoft, которая пришла зуя методы сжатия и хранения единич-
новка сервера Windows Deployment на смену MS-DOS при установке опе- ных копий. (WIM-файлы содержат одну
Ser vices и р ол е й System Center рационной системы. Помимо своей ос- физическую копию файла для каждого
Configuration Manager 2007 в среде новной функции – подготовки компью- экземпляра этого файла в образах, со-
Windows Server 2003 в режиме работы тера к установке операционной систе- держащихся в WIM-файле, что сущест-
сайта SCCM 2007 – mixed mode. Ста- мы, она может быть использована в ка- венно уменьшает размер WIM-файлов,
тья подразумевает, что читатель обла- честве самостоятельной ОС (LiveCD) содержащих несколько образов). Кроме
дает начальными знаниями по работе для запуска сторонних программ. этого, формат WIM-образов позволяет
с SCCM 2007.  Windows Imaging Format (WIM) – это проводить неразрушающее разверты-
файл-ориентированный формат обра- вание. Это означает, что вам не нужно
Способы установки ОС зов, который предоставляет значитель- делать резервную копию информации,
в SCCM ные преимущества по сравнению с бо- находящейся на томе, куда устанавли-
Configuration Manager 2007 предлага- лее распространенными сегодня сек- вается образ, так как процедура уста-
ет нам несколько способов установки тор-ориентированными форматами. новки образа не приводит к удалению
операционных систем: Формат WIM позволяет также хранить существующего содержимого диска.
n установка с помощью образа WIM
c загрузкой по сети или с исполь- В формате WIM распространя- Outlook + Powerpoint), архиватор, анти-
зованием диска (USD\CD\DVD); ются все последние ОС Microsoft: вирус и ряд других программ.
n установка из сетевой папки (подо- Windows Vista, Windows 7 и Windows В случае использования WDS у нас
бие RIS). Server 2008. Windows XP недоступна есть несколько вариантов решения
в качестве готового WIM-образа, од- этой задачи: мы можем внедрить все
Установка из сетевой папки яв- нако мы можем самостоятельно уста- программы в один WIM-файл или ис-
ляется более предпочтительным ва- новить Windows XP на эталонный ком- пользовать несколько WIM-файлов,
риантом для операционных систем пьютер, а затем сохранить полученный каждый для своего типа компьюте-
Windows 2000 и Windows XP. Хотя эта образ в формате WIM. OSD поддержи- ров. Понятно, что это не очень удобно –
установка требует больше времени, вает операционные системы, начиная мы тратим место на сервере под не-
однако она позволяет полностью из- с версии Windows 2000 SP4. сколько WIM-файлов, устанавливает-
бавиться от проблем с несовмести- Давайте рассмотрим следующий ся не минимальный необходимый на-
мостью аппаратных уровней (уровней сценарий – установка Windows XP бор программ и т.д.
HAL). Следует отметить, что установка на новый компьютер. Хотя Windows XP Другим выходом в случае исполь-
из сетевой папки, это именно установ- существует уже более 7 лет и жиз- зования WDS может стать установка
ка (как с CD\DVD-диска), а не развер- ненный цикл этой системы подходит программ через групповые политики.
тывание эталонного WIM-образа. к своему финальному этапу, она все Этот метод также имеет свои минусы.
еще является самой распространен- Если же мы используем SCCM, то бла-
Системные требования ной клиентской операционной систе- годаря возможности построения раз-
Operation System Deployment исполь- мой в мире. личных последовательностей задач
зует технологию Windows Deployment (task sequence), мы используем один
Services для распространения обра- Преимущества OSD SCCM образ WIM для установки на все типы
зов на клиентские компьютеры. Для ис- над WDS компьютеров с любым набором про-
пользования OSD в среде сайта SCCM Поскольку распространение операци- грамм. И это касается не только уста-
нужно выполнить следующие условия: онных систем в SCCM базируется на новки программ, но и драйверов, и об-
n сервер WDS; WDS, многие читатели могут задать- новлений безопасности.
n сервер DHCP; ся вопросом: «В чем же заключаются В OSD SCCM возможно устанавли-
n сервер с ролью PXE; плюсы от использования OSD»? В OSD вать операционные системы на неиз-
n более 512 Мб оперативной памя- вы работаете с последовательностью вестные/новые компьютеры. Причем
ти на клиенте для успешной уста- задач (task sequence), таким образом, установка на неизвестный компьютер
новки. вы можете создавать различные сце- не потребует от системного админи-
нарии установки и при этом использо- стратора дополнительных усилий.
Требование 512 Мб оперативной па- вать для них один образ WIM. Неизвестным компьютером в сре-
мяти обусловлено размером, занимае- Например: вам необходимо уста- де сайта SCCM будет компьютер, не со-
мым Windows PE 2.0 в памяти компью- новить ОС на два типа компьютеров держащий записи в базе данных сайта.
тера при развертывании. с разным набором программ. Для пер- Такими компьютерами могут быть: но-
Для хранения образа системы вого типа необходимы: Windows Vista вые, впервые подключающиеся к сети
Configuration Manager использует фай- и Microsoft Word, для второго – Windows компьютеры, компьютеры без установ-
лы формата WIM. Vista, Microsoft Office (Word + Excel + ленного агента SCCM.

№5, май 2009 39


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Если вы установили WDS на отдельный сервер, и при
этом на этот сервер не было предварительно разверну-
то ни одной другой роли SCCM, тогда нужно в консоли
SCCM вначале добавить объект-сервер через меню New →
Server.
Находим среди доступных ролей ConfigMgr PXE service
point и выбираем ее для установки.
На первой странице появившегося мастера проверяем
FQDN-имя сервера, указываем с помощью каких учетных
данных будет установлена роль (служебный акаунт SCCM
или произвольная учетная запись).
SCCM выведет сообщение о необходимых портах для
Рисунок 1. Настройка параметров DCHP своей работы. Если внутри сети применяются файерволы,
проследите, чтобы они были настроены на пропуск пакетов
В OSD вы можете забыть о необходимости установки от SCCM по следующим портам: UDP 67, 68, 69, 4011.
драйверов для компьютера. Все драйверы могут быть ин- На следующей странице мастера можно ограничить от-
тегрированы в единую базу, которую удобно поддерживать веты сервера SCCM каким-либо одним сетевым интерфей-
и обновлять. Размер базы неограничен. сом, а также задаем пароль для входа в режим установки.
Пароль может быть полезен, чтобы пользователи не смог-
Установка WDS ли случайно войти в режим установки при загрузке компью-
Для Windows Server 2003 установка WDS доступна через тера и не переустановили себе операционную систему.
пункт «Установка компонентов системы», оснастки «Уста- Затем, генерируем сертификат и назначаем учетную
новка и удаление программ». Найдите и отметьте для уста- запись для доступа к базе данных SCCM.
новки компонент «Службы развертывания Windows». Для Просматриваем страницу Summary, еще раз соглашаем-
установки этого компонента вам, возможно, понадобится ся с изменениями нажатием кнопки Next. Роль PXE SCCM
диск с инсталляционными файлами Windows Server 2003. успешно установлена.
После завершения установки компонента находим После этого необходимо включить поддержку неизвес-
в консоли администрирования сервера («Пуск → Панель тных компьютеров в SCCM. В консоли администрирова-
управления → Администрирование») пункт «Службы раз- ния SCCM выбираем раздел Site manager → Site Systems,
вертывания Windows» и запускаем консоль, выбираем сер- далее указываем сервер SCCM и переходим к пункту
вер и щелкаем по нему правой кнопкой мыши, контекстное ConfigMgr PXE service point и выбираем свойства, где не-
меню – «Настроить сервер». обходимо установить галочку Enable unknown computer
В окне появившегося мастера указываем место нахож- support (см. рис. 2).
дения папки RemoteInstall, хорошей практикой будет дер-
жать эту и другие папки SCCM на выделенном NTFS-томе. Устранение неполадок установки
Следующим шагом необходимо настроить взаимодейс- WDS‑PXE
твие с DCHP-сервером. Если службы DHCP и WDS установ- Если у вас возникли какие-то проблемы с работой связ-
лены на одном и том же сервере, необходимо в окне масте- ки WDS-PXE, решить которые штатными средствами вы
ра настройки служб развертывания Windows отметить па- не в состоянии, попробуйте переустановить WDS и PXE
раметры: «Не прослушивать порт 67» и «Настроить тег 60 SCCM в следующем порядке:
DCHP-параметра для значения «PXEClient». n удаляем WDS, удаляем все папки с именем Remoteinstall,
В следующем окне мастера отмечаем пункт «Не отве- не забываем про сетевые ресурсы;
чать никаким клиентским компьютерам», поскольку отве- n удаляем PXE SCCM;
чать компьютерам у нас будет SCCM. n перезагружаем сервер.
На этом настройка WDS завершена. Закройте консоль
администрирования WDS и забудьте о ней! Не добавляй- Далее:
те никаких образов в WDS, все это делается через консоль n устанавливаем WDS;
SCCM. Кстати, можно настроить сервер WDS и из коман- n перезагружаем сервер;
дной строки: n инициализируем WDS;
WDSUTIL /Initialize-server /Reminst:"D:\RemoteInstall" C:\>wdsutil /verbose /initialize-server ↵
/server:srvname /reminst:"c:\remoteinstall"

Проверяем настройки DHCP-сервера и дописываем туда n устанавливаем PXE SCCM.


еще один тег: 66 – имя сервера загрузки (см. рис. 1).
Теперь переходим к установке роли PXE сайта SCCM. Далее не забываем проверить настройки DHCP, в опре-
В консоли администрирования SCCM – Configuration деленной подсети настраиваем теги 60, 66, 67:
Manager Console переходим к Site Database → Site → Site n 60 – имя сервера с WDS, либо IP;
Settings → Site Systems → Server WDS\SCCM, правой кноп- n 66 – имя сервера с WDS, либо IP;
кой мыши контекстное меню New roles. n 67 – SMSBoot\x86\wdsnbp.com.

40
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Завершение настройки етесь устанавливать одинаковую вер-
WDS‑PXE сию ОС одновременно на несколько
Теперь осталось проверить некото- компьютеров.
рые пункты установки, и можно пере- Теперь необходимо опубликовать
ходить к процессу захвата и разверты- загрузочный образ на точке распро-
ванию образа. странения (Distribution point). В консо-
В консоли администрирования ли администрирования SCCM перей-
SCCM выбираем пункт Site database → дите к пункту OSD → Boot Image →
Computer management → Operation Distribution point, далее правой кноп-
System Deployment (см. рис. 3). кой мыши вызываем контекстное ме-
Далее по тексту указание на пункт ню New Distribution Point. В появив-
OSD в консоли администрирования шемся мастере обязательно выбери-
SCCM будет означать обращение те точку распространения – \\SCCM\
именно к этому разделу либо его под- SMSPXEIMAGES$ и вашу стандартную
разделам. точку распространения.
Рисунок 2. Включение поддержки
неизвестных компьютеров в SCCM Важно! Точка SMSPXEIMAGES$
Загрузочные образы является служебной точкой распро-
Для начала проверим, создались ли у нас образы для за- странения только для образов загрузки. Обычные образы
грузки. Переходим к пункту Boot image. По умолчанию соз- установки не нужно распространять на эту точку.
дается два образа загрузки для х86-систем и х64-систем
соответственно. Если по какой-либо причине они не созда- Подготовка эталонного компьютера
лись или вы удалили их, можно добавить эти образы че- Пришло время нена долго отвлечься от настройки
рез команду Add boot image. Стандартные образы хранятся Configuration Manager и настроить эталонный компьютер.
в папке установки SCCM – \Microsoft Configuration Manager\ Самой большой проблемой при установке Windows XP
OSD\boot. Стоит отметить, что в общем случае у вас для за- является несовместимость аппаратно-зависимых уровней
грузки будет использоваться тот образ, который соответ- (уровней HAL) и драйверов контроллеров дисков.
ствует вашей архитектуре. Не стоит путать разрядность Подробнее об уровнях HAL: http://support.microsoft.com/
образа загрузки и разрядность устанавливаемой опера- kb/309283/ru.
ционной системы. Если парк компьютеров у вас стандартный, то такая про-
Если не планируется устанавливать x64-версии опера- блема, скорее всего, обойдет вас стороной. Если же ком-
ционных систем, то можно смело использовать для загруз- пьютеры у вас закупались в разное время и Core 2 Quad со-
ки только образ x86, он будет успешно загружаться на лю- седствует с Pentium IV и Celeron, то возможно вам придется
бых процессорах. Щелкаем правой кнопкой на образе за- создавать несколько образов. Но перед тем как делать не-
грузки и открываем свойства. сколько образов, попробуйте такой способ: находите ком-
Иногда бывает, что стандартный загрузочный образ пьютер, у которого HAL соответствует «Однопроцессорный
не может начать процесс установки. Чаще всего это свя- компьютер с ACPI», ACPI APIC UP HAL (Halaacpi.dll) (посмот-
зано с тем, что Windows PE не может найти подходящие реть уровень HAL можно в диспетчере устройств раздела
драйверы для сетевой карты. На вкладке Windows PE вы «Компьютер»), и делаете захват эталонного образа имен-
можете их добавить. Не стоит злоупотреблять добавлени- но с этого компьютера.
ем драйверов! Помните, что все драйверы будут распако- Такой образ должен без проблем установиться и на мно-
ваны в память компьютера при загрузке. Добавляйте их гопроцессорные компьютеры, что в принципе покрывает
только для тех сетевых плат и контроллеров дисков, кото- большинство современных рабочих станций.
рые отказываются работать со стандартными драйвера- Кроме того, ошибку Stop 0x0000007b могут вызвать не-
ми. Также на этой вкладке можно включить поддержку ко- правильные драйверы контроллера диска. И хотя на боль-
мандной строки в среде Windows PE (вызывается по нажа- шинстве рабочих станций применяются стандартные кон-
тию кнопки <F8>) и установить собственные обои для про- троллеры, драйверы которых присутствуют в Windows XP,
граммы загрузки. вы можете столкнуться с рабочей станцией, которая требу-
Если у нас в одном WIM-файле содер- ет для своей работы определенного драй-
жится несколько образов, а формат WIM вера. Нам поможет утилита Sysprep.
такое позволяет, то мы можем задать ис- Программа подготовки системы
пользуемый образ на вкладке Data Source (Sysprep.exe) применяется в целях подго-
(см. рис. 4). товки установленной копии Windows для со-
На вкладке Distribution Settings мы мо- здания образа.
жем указать использование опции multicast. Драйверы контроллеров лучше интег-
Мультикаст – это новая возможность рировать в Windows XP через программу
в SCCM 2007 R2, которая позволяет от- Sysprep. Для добавления в файл sysprep.inf
давать образ одновременно на несколько Рисунок 3. Консоль списка стандартных и уже установленных
машин, таким образом снижая загружен- администрирования контроллеров измените файл sysprep.inf
Configuration Manager –
ность сети. Включите опцию, если собира- раздел OSD следующим образом:

№5, май 2009 41


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
[Sysprep] n программы, которые трудно устанавливать в автомати-
BuildMassStorageSection = Yes
[SysprepMassStorage] ческом режиме (например, doPDF).

Выполните команду «sysprep -bmsd», и в файл sysprep.inf Зачем ставить .net Framework 3.5? На большинстве кли-
будут добавлены известные системе драйверы контролле- ентских компьютеров вам рано или поздно придется устано-
ров дисков. вить .net Framework 2.0 или 3.0. Пакет .net Framework 3.5 со-
держит в себе и тот и другой, поэтому логичнее установить
*pnp0a00=c:\windows\inf\machine.inf
*pnp0a01=c:\windows\inf\machine.inf его сразу. Разумеется, вы можете его не устанавливать, ес-
*pnp0a04=c:\windows\inf\machine.inf ли считаете, что платформа .net вам не нужна.
*pnp0a03=c:\windows\inf\machine.inf
Да, в случае исключения большого количества про-
pci\cc_0604=c:\windows\inf\machine.inf
pci\cc_0601=c:\windows\inf\machine.inf грамм из образа в раздел распространения программ SCCM
pci\cc_0602=c:\windows\inf\machine.inf у нас увеличивается время установки ОС. Но в случае ус-
pci\cc_0600=c:\windows\inf\machine.inf
pci\cc_0500=c:\windows\inf\machine.inf тановки на один-два компьютера время установки для нас
становится некритичным, зато появляется гибкость в рас-
Если нам необходимо добавить драйверы вручную, то за- пространении программ, поскольку программы не интег-
полняем секцию [SysprepMassStorage] файла sysprep.inf: рированы жестко в WIM-файл, а устанавливаются допол-
нительно.
;VIA
PCI\VEN_1106&DEV_3349&CC_0104 = c:\drive\viamraid.inf
PCI\VEN_1106&DEV_6287&CC_0106 = c:\drive\viamraid.inf Снятие образа установки
;ITEATAPI В SCCM есть два базовых способа снятия образа:
PCI\VEN_1283&DEV_8212&SUBSYS_00011283 = ↵
c:\drive\iteatapi.inf; 8212/CX n Build and capture reference operating system image.
n Capture media.
Код устройства PCI\VEN_1106&DEV_3349&CC_0104
можно узнать из inf-файла драйвера, c:\drive\viamraid.inf – Первый способ подразумевает установку операционной
путь к нашему драйверу. системы, автоматическую установку программ и обновле-
Важно! Драйвер должен будет находиться на дис- ний, и затем снятие эталонного образа. Такой способ боль-
ке перед снятием образа. Кроме того, при снятии обра- ше подходит для обновления уже существующего WIM об-
за Windows XP может генерировать запросы на установ- раза Windows XP либо для использования с Windows Vista/
ку драйверов. Windows 7. Я предпочитаю второй путь – создание диска
Стоит также обратить внимание на используемый тип с системой захвата образа. Отдав диск захвата (Capture
дисков – IDE или SATA. У вас могут возникнуть пробле- disk) службе технической поддержки, вы избавите себя
мы, если эталонная ОС была установлена на более «быст- от необходимости периодически обновлять образ системы.
рый» диск, чем диск, на который устанавливает операци- Эти действия будут происходить без вашего вмешательс-
онная система. К примеру, попытка установки образа, сня- тва силами специалистов техподдержки, при определенных
того с SATA-диска, на IDE-диск может закончиться ошиб- условиях обновление образа системы не потребует от вас,
кой BSOD. как администратора SCCM, вообще никаких действий.
Теперь пора перейти к наполнению эталонной станции Создание задания Build and capture reference operating
программами. Определите для себя наиболее распростра- system image фактически не отличается от процесса созда-
ненный набор программ, которые установлены на всех ва- ния обычного task sequence, который мы рассмотрим даль-
ших рабочих станциях. Естественно, для каждой компании ше. Этот пункт доступен через консоль администрирова-
этот набор программ будет различным. При создании обра- ния SCCM OSD → Task Sequence, далее правой кнопкой мы-
за стоит учитывать, необходима ли масштабная установ- ши вызываем контекстное меню New → Task Sequence →
ка. Так, если предстоит в кратчайший Build and apture reference operating
срок развернуть несколько десятков system image.
или сотен копий ОС, то лучше вклю- Рассмотрим процесс создания дис-
чить все программы в образ, возможно, ка захвата. Отмечу, что в роли дис-
создав несколько разных образов для ка захвата могут выступать USB/CD/
разного набора программ. Если же ус- DVD-диски. В консоли администриро-
тановка планируется в текущем режи- вания SCCM выбираем OSD → Task
ме, то рекомендую вынести установку Sequence, правой кнопкой мыши вы-
программ в отдельный пункт. К тому же зываем контекстное меню Create task
SCCM позволяет устанавливать про- sequence media. В появившемся масте-
граммы на этапе развертывания опе- ре выбираем пункт Capture media. Вы-
рационной системы. Что же стоит ус- бираем тип диска CD/DVD и место хра-
тановить в эталонном образе: нения образа. На следующей странице
n ОС Windows XP + последний пакет мастера выбираем используемый об-
обновлений и последние обновле- раз загрузки. В большинстве случаев
ния безопасности; подойдет образ х86. Указываем точку
n .net Framework 3.5; Рисунок 4. Путь к образу распространения.

42
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Просматриваем страницу Summary, нажимаем Next
и ждем несколько минут, пока создастся образ диска. Те-
перь записываем этот образ на диск. После записи диска
возвращаемся к нашему эталонному компьютеру. Вставля-
ем диск в CD-ROM и видим запуск программы (см. рис. 5).
Напомню, что папка Sysprep уже должна существовать
на разделе с операционной системой. Иначе мы получим
сообщение об ошибке.
Затем мы указываем место хранения образа и учетные
данные для подключения к этой сетевой папке.
После того как мастер закончит снятие образа, в указан-
ной папке на сервере появится файл образа эталонного ком-
пьютера в формате WIM. Теперь необходимо добавить образ
в базу Configuration Manager. В консоли администрирования
SCCM переходим к разделу Operation System Deployent →
Operation System Images → Add operating system Image. В по-
явившемся мастере указываем размещение файла образа Рисунок 5. Экран приветствия мастера захвата образа
в сети, вводим название, версию и комментарий.
Остальные пункты оставляем по умолчанию и жмем чтобы в параметре Command line была прописана строка
кнопку Finish – образ готов. В консоли администрирования CCMSETUP.EXE /noservice SMSSITECODE=AUTO. Если ее
находим образ в разделе OSD → Operation System Image, там нет, необходимо ее прописать. После этого переходим
вводим имя образа, далее правой кнопкой мыши вызываем к разделу Distibution point и опубликовываем пакет на ос-
контекстное меню Properets. Переходим на вкладку Image , новной точке распространения.
где можем увидеть сводку WIM-файла (cм. рис. 6).
Теперь необходимо опубликовать образ на точке рас- Создание пакета драйверов
пространения. OSD → Operation System Image, вводим имя Для начала необходимо добавить драйверы в базу сайта
образа, далее переходим к Distribution point, далее правой Config Manager. Для этого драйверы должны быть располо-
кнопкой мыши вызываем контекстное меню New distribution жены в сетевой папке и сервер SCCM должен иметь разре-
point. В появившемся мастере отмечаем точку распростра- шение на чтение данной папки. В консоли администрирова-
нения. ния SCCM переходим к OSD → Drivers, правая кнопка мы-
Важно! Помните, что точку \SMSPXEIMAGES$ мы не ши, контекстное меню Import. В появившемся мастере ука-
отмечаем! зываем UNC-путь к папке с драйверами. На странице Add
driver to packages необходимо создать новый пакет драйве-
Создание пакета установки агента ров (New package), указав место расположения драйвера –
Configuration Manager сетевую папку, в которой будут храниться все драйверы па-
Рассмотрим создание пакета установки программы на при- кета. Эта папка может быть скрытой с помощью символа
мере агента ConfigManager. В консоли администрирова- $. В этом же мастере при необходимости мы можем доба-
ния SCCM переходим к пункту Site database → Computer вить драйвер к образам загрузки Windows PE2. Если вы ре-
management → Software distribution → Packages, далее пра- шили добавить драйвер к образу загрузки, то не забудьте
вой кнопкой мыши вызываем контекстное меню New → поставить галочку напротив параметра Update distribution
Package from definition и выбираем Configuration Manager point when finished. После завершения мастера импортиро-
Client update. Указываем, что пакет будет содержать ин- вания драйвера не забудьте указать точку распростране-
сталляционные файлы (Always obtain ния для пакета драйверов. В консоли
files from a source directory). Если мы ра- администрирования SCCM переходим
ботаем с консолью на сервере SCCM, к OSD → Driver packages → Distribution
то выбираем вариант Local drive on site point, правая кнопка мыши, контекст-
server и указываем путь к инсталляци- ное меню New distribution point.
онным файлам клиента, по умолчанию Важно! Существует ограничение:
C:\Program files\Microsoft Configuration Windows XP не поддерживает загруз-
Manager\Client\. Если же мы работаем ку более 150 драйверов на клиента.
с консолью с рабочей станции админи- Причем из личного опыта мне извес-
стратора, то следует указать сетевой тно, что эта цифра еще меньше – 144.
путь: \\server_sccm\SMS_SITECODE\ Подробнее о процессе установки драй-
Client. После создания пакета в кон- веров и подготовке пакета драйверов
соли SCCM разворачиваем пункт с на- вы можете узнать на сайтах:
шим пакетом и переходим к разделу n http://technet.microsoft.com/ru-ru/
Programs. library/bb680651.aspx;
Заходим в свойства Advanced client n http://itband.ru/tag/sccm;
silent upgrade. Нам важно убедиться, Рисунок 6. Свойства образа WIM n http://blogs.sysfaq.ru/altaranenco.

№5, май 2009 43


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
указываем пакет установки агента SCCM. Следующая стра-
ница (State migration) позволяет нам захватить настройки
пользователя и системы, но поскольку развертывание мы
выполняем на чистую машину, то снимаем галочки с раз-
дела захвата настроек пользователя и компьютера. Кроме
того, для использования данной возможности в будущем не-
обходимо будет установить комплекты Microsoft Delpoyment
Toolkit 2008 (MDT) и User State Migration Tool (USMT) на сер-
вере SCCM. На последующих страницах указываем, что об-
новления не будут загружаться в процессе установки ОС
(Don't install any software updates), и при необходимости ука-
зываем, какие программы будут установлены на компьютер
в ходе развертывания ОС. Разумеется, для этого предвари-
тельно необходимо создать соответствующие пакеты про-
грамм. Завершаем процесс создания последовательности
Рисунок 7. Мастер создания Task Sequence задач установки ОС просмотром страницы Summary.
Почти все готово для развертывания образа, но я пред-
Создание последовательности заданий лагаю вам немного отредактировать полученный Task
установки (Task Sequence) Sequence. В консоли администрирования выбираем OSD →
Теперь, когда у нас есть WIM-файл с образом Windows XP, Task sequence, вводим имя нашего задания, вызываем пра-
мы можем вернуться к процессу создания последователь- вой кнопкой мыши контекстное меню Edit. В появившем-
ности установки (Task Sequence). В меню администрирова- ся окне можно отредактировать любые свойства зада-
ния SCCM переходим к пункту OSD → Task Sequence, пра- ния, при необходимости удалив или добавив новые пунк-
вой кнопкой мыши вызываем контекстное меню New → Task ты (см. рис. 8).
Sequence. В появившемся мастере выбираем вариант ус- Начнем с подготовки диска компьютера. По умолчанию
тановки из файла образа (Install an existing image package). SCCM предлагает создать на жестком диске один NTFS-
Затем вводим название пакета, наш комментарий, а так- раздел. Возможно, кому-то это покажется неудобным. Из-
же выбираем загрузочный образ для пакета. На следующей меним распределение дискового пространства так, чтобы
странице нажимаем на кнопку Browse и выбираем файл диск C занимал у нас 15 Гб, а все остальное стало диском D.
с образом WIM. Если в файле несколько образов, то нуж- Переходим к пункту Partition disk 0, в разделе Volume выби-
но выбрать, какой из них мы будем устанавливать. Вводим раем редактирование свойств записи Default (primary).
ключ установки и действие над учетной записью локаль- В появившемся окне задаем размер первого диска
ного администратора – либо устанавливаем пароль, либо (см. рис. 9). Затем создаем новый раздел (кнопка с сим-
отключаем (см. рис. 7). волом «звездочка»). Теперь жесткий диск будет разбит
На следующей странице мастера указываем, вводить на два раздела.
ли компьютер в рабочую группу или домен. Не забываем, Переходим к следующему пункту (Apply Operating
что для ввода в домен мы должны указать учетную запись Systems), указываем, какой образ операционной систе-
с соответствующими правами. На странице Install ConfigMgr мы будем применять. А также указываем, на какой раздел
мастера создания Task Sequence с помощью кнопки Browse жесткого диска будет установлена система.
В пункте (Apply Windows Settings) проверяем данные для
регистрации системы: имя пользователя, компании и се-
рийный номер ключа.
Пункт (Apply Network Settings) ответственен за сетевые
настройки. При необходимости мы можем прописать IP-ад-
рес и другие сетевые настройки вручную, но лучше все же
использовать для этого DHCP.
Переходим к пункту с драйверами (Apply Device Drivers).
По умолчанию Task Sequence создается так, чтобы обра-
щаться к базе драйверов на сервере SCCM, однако для ус-
тановки Windows XP через WIM необходимо устанавливать
драйверы через пакет.
Поскольку установка драйверов через категорию нам
не подходит, создадим пункт установки драйвера через па-
кет. Меню Add → Drivers → Apply driver package, вводим имя
пакета с драйверами (см. рис. 8).
С помощью кнопки «Browse» выбираем, какой пакет бу-
дет использоваться для установки драйверов.
С помощью кнопок Move up и Move down переносим пункт
Рисунок 8. Добавление пакета драйверов Apply device driver ниже пункта Аpply driver package. Посколь-

44
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Рисунок 9. Свойства разметки диска
в Task Sequence Рисунок 10. Объявление для установки ОС (Advertisment Task Sequence)

ку именно в этом пункте задаются настройки применения Важно! Не устанавливайте принудительную установ-
всех драйверов или только совместимых, а также поведение ку операционной системы (mandatory assignment) если вы
системы при установке неподписанных драйверов. не уверены в своих действиях. Неверная установка данно-
При необходимости добавляем произвольные шаги пос- го параметра вместе с назначением задания на ошибоч-
ледовательности установки, например такие как установка ную коллекцию приведет к переустановке всех компьюте-
программ или обновлений. На этом подготовку к разверты- ров этой коллекции.
ванию можно считать оконченной. Остальные параметры можно оставить по умолчанию.
После этого SCCM полностью готов к развертыванию опе-
Назначение установки операционной рационной системы на клиентские компьютеры.
системы на коллекцию компьютеров Теперь перейдем к целевому компьютеру. В BIOS ком-
Коллекция (collection) – группа объектов (пользователи, пьютера выставьте первым вариантом загрузку по сети
компьютеры, группы безопасности), объединенная по ка- (PXE BOOT), а вторым – загрузку с жесткого диска. Вклю-
кому-либо признаку. Мы будем работать со стандартной чите компьютер, при загрузке вы увидите экран, подобный
коллекцией ConfigManager 2007 R2 – коллекцией для неиз- экрану на рис. 11. После нажатия клавиши <F12> начнутся
вестных компьютеров – All unknown computers. До версии загрузка и запуск системы Windows PE.
SCCM 2007 R2 установка на неизвестные для сайта SCCM
компьютеры была возможна только при использовании сто- Заключение
ронних средств, в частности скрипта pxefilter.vbs из комп- Установка Windows XP через WIM-файлы в SCCM являет-
лекта MDT 2007. Если хотите установить ОС на компьютер, ся нетривиальной задачей. Помимо отсутствия фабричного
который уже является клиентом SCCM-сайта, добавьте этот файла WIM (как Windows Vista\Windows 7) и, следователь-
компьютер в члены соответствующей коллекции. Кроме но, необходимости создавать свой файл образа системы,
того, для нового компьютера мы можем вручную создать нужно еще решить проблему несовместимости уровней HAL
запись в базе данных сайта через пункт OSD → Computer и установки драйверов. Надеюсь, что данная статья помо-
association. Для этого потребуется MAC-адрес сетевой кар- жет вам лучше ориентироваться в возможностях продукта
ты компьютера. В таком случае мы сможем сразу задать system Center Configuration Manager 2007.
имя компьютера, которое применится при установке.
Для того чтобы назначить установку операционной сис-
темы на коллекцию, необходимо в консоли SCCM выпол-
нить OSD → Task sequence, вводим имя задания, далее пра-
вой кнопкой мыши вызываем контекстное меню Advertise
(см. рис. 10).
В появившемся окне мастера вводим имя для задания
распространения, выбираем созданный нами task sequence
и коллекцию («All unknown computers»), на которую будет
применяться это задание. Также обязательно нужно отме-
тить использование PXE для этого задания (Make this task
sequence avialable to boot media and PXE). На следующей
странице выбираем время, с которого будет доступно за-
дание для клиентов. Рисунок 11. Экран загрузки агента PXE boot

№5, май 2009 45


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
PowerShell. Поиск объектов в каталоге
Active Directory

Иван Коробко
Большинство операций в каталоге Active Directory сводится к поиску объектов по различным
критериям. Рассмотрим подробно процедуру с помощью библиотек .NET Framework
на PowerShell.

П
оиск объектов в Active Directory осуществляется Get-Alias | Format-Table -Property Definition, Name -Autosize
с помощью класса .NET FrameWork System.Directory
Services.DirectorySearcher и одного из методов: Для осуществления процедуры поиска необходимо за-
FindAll() или FindOne() в зависимости от условий поиска. дать несколько параметров:
Сценарий поиска можно условно разделить на несколько n Фильтр поиска (обязательный параметр). С помощью
логических частей: него формируется поисковый запрос.
n доступ к контейнеру; n Список атрибутов. Задается для сокращения време-
n фильтр поиска; ни поиска.
n атрибуты поиска; n Область поиска. Определяет глубину поиска.
n область поиска; n Сортировка. Позволяет получить результат в нужном
n сортировка элементов; виде.
n поиск объектов.
Фильтр поиска
Доступ к контейнеру При написании фильтра поиска используются выраже-
Для поиска объекта необходимо определить точку входа – ния, строящиеся по определенным правилам, а именно
путь к контейнеру, в котором будет осуществляться поиск. (см. таблицу 1):
Для выполнения этого условия необходимо создать объ- n каждое выражение должно быть заключено в скобках;
ект DirectorySearcher: n в выражениях допускается использование операторов
сравнения: «<», «<=», «=», «>=» и «>»;
$path = "LDAP://OU=WorkSpace,DC=Island,DC=ru" n допускаются составные выражения, образуемые с по-
$obj = New-Object DirectoryServices.DirectorySearcher($Path)
мощью префиксных операторов «&», «|», «!».
Созданный объект содержит ряд свойств и методов.
Полный отображения списка свойств и методов, поддер- Любой фильтр обычно состоит из двух логических час-
живаемых объектом, необходимо использовать командле- тей. С помощью одной части определяют тип искомых объ-
том Get-Member или его псевдонимом (gm): ектов, в другой – искомое значение. Наличие фильтра не-
обязательно.
$obj | Get-Member Тип объекта определяется последним значением мас-
сива objectClass. Например, для учетной записи пользова-
Примечание: командлет – это обычная команда, вы-
полняющая определённое действие с указанным объектом. Таблица 1. Операторы фильтра поиска
Любой командлет состоит из глагола и существительного,
Оператор Значение Оператор Значение
разделенных дефисом. Глагол указывает, какое действие
= Эквивалентно & И
будет производиться, а существительное указывает объект,
над которым будет производиться это действие. Команд- ~= Примерно равно | ИЛИ

леты поддерживают сокращения. Полный список сокраще- <= Меньше или равно ! НЕ
ний можно получить с помощью команды: >= Больше или равно * ВСЕ

46
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
теля objectClass = person, для группы – group, для контей- n FindAll() – возвра- Таблица 2. Зарезервированные
имена, используемые в фильтрах
нера – organizationalUnit. щают коллекцию поиска
Приведу несколько характерных примеров фильтров: (массив) объектов,
Символ Значение
n (objectClass=*). Все объекты имеют принадлежность элементы которой
* \2a
к одному из классов. Данный фильтр вернёт все объ- удовлетворяют за-
екты в области поиска; данным критериям ( \28

n &((objectClass=person)(!objectClass=computer)). Бу- поиска. ) \29


дут возвращены все объекты, принадлежащие к классу \ \5c
Person и не принадлежащие к классу computer. Такими Приведу по одно- NUL \00
объектами являются учетные записи пользователей; му примеру на каждый / \2f
n &((description=test)(|(cn=User*)(cn=Group1))). Будут из методов.
возвращены все объекты с описанием test и именем, Каталог Active Directory устроен так, что имя учетной
начинающимся со слова User, а также объект Group1. записи группы или пользователя должны быть уникаль-
ны. Например, если необходимо определить список чле-
Встречаются случаи, в которых необходимо указывать нов группы и если имя группы точно известно, то разумнее
служебные символы в качестве значений, такие как звез- всего использовать метод FindOne(). В листинге 1 приве-
дочку, скобку и др. Чтобы реализовать эту возможность, ден пример определения списка пользователей, являющих-
вместо символа необходимо указать соответствующее ему ся членами группы Print Managers. Поскольку результат по-
кодовое значение, приведенное в таблице 2. иска единственный элемент, то управлять сортировкой вы-
водимых значений не имеет смысла.
Атрибуты объекта Замечание: комментарии в листинге на языке Power
Для ускорения процедуры поиска используется свойство Shell начинаются с символа решетки (#).
PropertiesToLoad. Используя метод Add()формируется мас-
сив полей, значения которых загружаются в память во вре- Листинг 1. Поиск объекта с помощью метода FindOne()
мя поиска. Например: PropertiesToLoad.Add("cn"). # Получение доступа к корню домена
$Search = New-Object DirectoryServices.DirectorySearcher( ↵
"LDAP://DC=Island,DC=ru")
Область поиска
Область поиска задается с помощью свойства SearchScope: # Критерий поиска — отображаемое имя группы
$Search.Filter = "(&(cn=Print Managers))"
n SearchScope.Base или 0 – поиск осуществляется по
корневому объекту, указанному в первой части запро- # Поиск по всему каталогу Active Directory
$Search.SearchScope = 2
са. Всегда возвращается либо один объект, либо пус-
той набор объектов. Эта область поиска чаще всего ис- # Выполнение поиска
$result = $Search.FindOne()
пользуется для проверки существования объекта, ука-
занного в запросе. # Получение доступа к группе с помощью относительного пути
$obj = $result.GetDirectoryEntry()
n SearchScope.OneLevel или 1 – поиск осуществляется
в пределах указанного контейнера, указанного в пер- # Чтение элементов массива
$obj.psbase.properties.member | % {
вой части запроса. Поиск по вложенным объектам более $member = [ADSI]( "LDAP://"+$_)
низких уровней не производится. В поиск также не по- Write-Host $member.Name}
падет и сам объект-контейнер.
n SearchScope.SubTree или 2 – поиск осуществляется по Рассмотрим подробно алгоритм работы сценария.
всем вложенным объектам. В поиск при этом не попа- На первом этапе определяется контейнер, в котором бу-
дает сам объект-контейнер. Эта область поиска зада- дет осуществляться поиск. Затем осуществляется нас-
на по умолчанию. тройка параметров поиска: фильтр, глубина и др. Исходя
из поставленной задачи можно составить несколько вари-
Сортировка элементов антов фильтра.
Сортировка элементов осуществляется с помощью мето- Предпочтение стоит отдать самому короткому, посколь-
да Sort, поддерживающего два свойства: PropertyName ку это, с одной стороны, упростит скорость поиска, а с дру-
и Direction. С помощью свойства PropertyName указывает- гой – сделает ваш листинг более понятным. После того как
ся название поля, по которому будет осуществляться сор- все необходимые параметры заданы, осуществляется вы-
тировка, а с помощью Direction – направление. В случае зов метода FindOne(). Результат поиска в данном случае
Sort.Direction = 0 или Sort.Direction = "Ascending" осущест- присваивается объекту $result.
вляется упорядочивание от «А» до «Я», при Sort.Direction = 1 Для получения доступа к указанному объекту использу-
или Sort.Direction = «Descending» – в обратном порядке. ют метод GetDirectoryEntry(). Обратите внимание, что при его
вызове относительный составной путь (distinguishedName)
Поиск объктов найденного объекта не указывается, поскольку он подстав-
В зависимости от конкретного случая для выполнения про- ляется автоматически.
цедуры поиска после задания всех условий осуществляет- По своему действию строка:
ся вызов одного из методов поиска:
n FindOne() – возвращает только один/первый объект; $obj = $result.GetDirectoryEntry()

№5, май 2009 47


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
эквивалентна строке: Метод поиска FindAll() используется в тех случаях, когда
необходимо найти все объекты, удовлетворяющие указан-
$obj=[ADSI]("LDAP://"+ $result.distinguishedName) ным критериям, например, все учетные записи пользовате-
лей в указанном контейнере или выключенные учетные за-
На завершающем этапе осуществляется чтение значе- писи и др. Приведем пример поиска всех учетных записей
ний указанного атрибута. PowerShell представляет значе- пользователей (см. листинг 2), находящихся в указанном
ния атрибутов в зависимости от их типа: в строку (числа, контейнере, имена которых начинаются с буквы «А».
строки), в массив (массив). Получение доступа к данным
осуществляется по шаблону: Листинг 2. Поиск объекта с помощью метода FindAll()

# Получение доступа к корню домена


$data = $obj.psbase.properties.СВОЙСТВО $Search = New-Object DirectoryServices.DirectorySearcher( ↵
"LDAP://DC=Island,DC=ru")

где «СВОЙСТВО» – имя атрибута. Таким образом, для чте- # Критерий поиска — отображаемое имя группы
$Search.Filter = "(&(objectClass=User)(cn=A*) ↵
ния строковых и числовых характеристик следует исполь- (!objectClass=Computer))"
зовать шаблон 1, для массивов – шаблон 2.
# Поиск по всему каталогу Active Directory
$Search.SearchScope = 2
Шаблон 1. Чтение строковых и числовых атрибутов
# Сортировка результатов поиска
# Атрибуты name, primarygroup, description и т.д. $Search.Sort.Direction = 1
$data = $obj.psbase.properties.СВОЙСТВО $Search. Sort.PropertyName="sAMAccountName"
write-host $data
# Выполнение поиска
$Search.FindAll() | % {
Шаблон 2. Чтение массивов
# Получение доступа к группе с помощью относительного пути
# Атрибуты member, memberOf и т.д. $obj = $_.GetDirectoryEntry()
$data = $obj.psbase.properties.СВОЙСТВО
ForEach ($item in $data) { # Чтение данных
Write-Host $item} Write-Host $obj.samaccountname}

Для чтения массивов используется оператор ForEach, Исходя из поставленной задачи отметим, что фильтр по-
который в отличие от других языков программирования иска состоит из двух частей. В первой из них выбираются
в PowerShell имеет сокращенную форму записи (см. шаб- учетные записи пользователей (см. таблицу 3):
лон 3). Конструкция «ForEach ($element in $array){}» заме-
няется конструкцией «$array | % {}». В этом случае в цик- (&(objectClass=User)(!(objectClass=Computer)))
ле обращение к текущему элементу массива осуществля-
ется с помощью $_. Вторая часть – из отобранных учетных записей выбрать
начинающиеся с буквы «А». Фамилия пользователя хранит-
Шаблон 3. Чтение массивов (сокращенная запись) ся в значении атрибута sn (second name), поэтому фильтр
# Атрибуты member, memberOf и т.д. будет выглядеть следующим образом:
$obj.psbase.properties.СВОЙСТВО | % {
Write-Host $_} (&(cn=А*))

Таблица 3. Взаимосвязь типов объектов Active Directory и значений параметра Объединим два фильтра в один,
objectClass
получим:
Комментарий Тип объекта Значение objectClass Фрагмент поискового запроса
Учетная запись Computer Top (&(objectClass=Computer)) (&(objectClass=User)(cn=A*) ↵
компьютера Person (!objectClass=Computer))
OrganizationalPerson
User
Computer
Заключение
Группа безопасности Group Top (&(objectClass=Group)) Уже на стадии поиска можно осущест-
Group
влять сортировку значений выбранно-
Папка дерева каталогов OU Top (&(objectClass=OrganizationalUnit))
Active Directory OrganizationalUnit
го поля в указанном направлении. Со-
ставлять запрос стало гораздо проще
Опубликованный Printer Top (&(objectClass=PrintQueue))
в Active Directory Leaf по сравнению с VBScript. Если раньше
сетевой принтер ConnectionPoint для составления запроса требовались
PrintQueue
хотя бы минимальные знания по SQL,
Опубликованная в Active Shared Folder Top (&(objectClass=Volume)) то сейчас достаточно знать названия
Directory сетевая папка Leaf
ConnectionPoint полей. С выходом Windows Server 2008
Volume узнать поля стало еще легче: утили-
Учетная запись User Top (&(objectClass=User)(!(objectClass=Computer))) та ADSI Edit теперь входит в комплект
пользователя, Person
совместимая OrganizationalPerson операционной системы и устанавлива-
с доменами Windows NT User ется по умолчанию.

48
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Переполнение буфера Межсайтовый скриптинг
в TIBCO SmartSockets в AXIGEN Mail Server
Программа: TIBCO SmartSockets версии до 6.8.2; TIBCO Программа: AXIGEN Mail Server 6.2.2, возможно, более
SmartSockets Product Family (RTworks) версии до 4.0.5; TIBCO ранние версии.
Enterprise Message Service (EMS) версии 4.0.0 до 5.1.2. Опасность: Средняя.
Опасность: Средняя. Наличие эксплоита: Нет.
Наличие эксплоита: Нет. Описание: Уязвимость существует из-за недостаточной
Описание: Уязвимость существует из-за неизвестной обработки входных данных в e-mail-сообщениях. Удален-
ошибки при обработке UDP-запросов. Удаленный поль- ный пользователь может с помощью специально сформи-
зователь может с помощью специально сформированно- рованного e-mail-сообщения выполнить произвольный код
го UDP-запроса вызвать переполнение стека и выполнить сценария в браузере жертвы в контексте безопасности уяз-
произвольный код на целевой системе. вимого сайта.
URL производителя: www.tibco.com. URL производителя: http://www.axigen.com/mail-server/
Решение: Установите последнюю версию с сайта произ- products.php.
водителя. Решение: Установите последнюю версию 7.1.0 с сайта про-
изводителя.
Множественные уязвимости
в Ingate Firewall и SIParator Уязвимость в DB2 Content Manager
Программа: Ingate Firewall версии до 4.7.1; Ingate SIParator Программа: DB2 Content Manager версии до 8.4.1 Fix Pack 1.
версии до 4.7.1. Опасность: Средняя.
Опасность: Средняя. Наличие эксплоита: Нет.
Наличие эксплоита: Нет. Описание: Уязвимость существует из-за неизвестной ошиб-
Описание: 1. Уязвимость существует из-за ошибки, кото- ки в eClient. Подробности уязвимости не сообщаются.
рая позволяет удаленному пользователю сконфигурировать URL производителя: www-306.ibm.com/software/data/cm/
юнит. Для успешной эксплуатации уязвимости для IPsec- cmgr.
туннеля должна быть разрешена настройка юнита. Решение: Установите последнюю версию 8.4.1 Fix Pack 1
2. Уязвимость существует из-за неизвестной ошибки с сайта производителя.
в реализации IDS/IPS, которая позволяет SIP-пакетам обой-
ти защиту от спуфинга и IPSec-проверки. Отказ в обслуживании
3. Уязвимость существует из-за ошибки при подтверж- в Sun Java System Calendar Server
дении подлинности DSA- и ECDSA-ключей. Удаленный поль- Программа: Sun ONE Calendar Server 6.0; Sun Java System
зователь может подменить сертификат сервера. Calendar Server 6 2005Q4 и более ранние версии.
4. Уязвимость существует из-за ошибки при подтверж- Опасность: Средняя.
дении подлинности HMAC-дайджеста, что повышает шанс Наличие эксплоита: Да.
успешной подмены SNMPv3-пакета. Описание: Уязвимость существует из-за ошибки при об-
5. Уязвимость существует из-за ошибки при примене- работке большого количества HTTP-запросов, содержащих
нии политики reject для пакетов, приходящих из недове- некорректное значение в параметре tzid. Удаленный поль-
ренных шлюзов. Удаленный пользователь может обойти зователь может аварийно завершить работу веб-сервера.
защиту от спуфинга. Пример:
6. Различные ошибки существуют при обработке SIP-па-
https://[host]:3443/?tzid=crash
кетов. Удаленный пользователь может с помощью специ-
ально сформированных SIP-пакетов аварийно завершить URL производителя: www.sun.com.
работу устройства. Решение: Установите исправление с сайта производителя.
URL производителя: www.ingate.com.
Решение: Установите последнюю версию 4.7.1 с сайта про- Повышение привилегий в HP-UX
изводителя. Программа: HP-UX B.11.11, B.11.23 и B.11.31.
Опасность: Низкая.
Обход ограничений безопасности Наличие эксплоита: Нет.
в Citrix Licensing Описание: Уязвимость существует из-за ошибки в команде
Программа: Citrix Licensing 11.5, возможно, другие версии. useradd при установке домашней директории и идентифи-
Опасность: Средняя. катора группы. Злоумышленник может получить неавтори-
Наличие эксплоита: Нет. зованный доступ к некоторым директориям и файлам.
Описание: Уязвимость существует из-за неизвестной URL производителя: www.hp.com
ошибки в компонентах License Management Console. Под- Решение: Установите исправление с сайта производителя.
робности уязвимости не сообщаются.
URL производителя: support.citrix.com/product/lic/v11.5. Составил Александр Антипов
Решение: Установите последнюю версию с сайта произ-
водителя.

№5, май 2009 49


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Доступный WiMAX
Подключение USB-модема Samsung SWC-U200
к маршрутизатору Asus WL-500gP

Павел Закляков
Георгий Пахомов
Мировое стремление развивать WiMAX-сети дошло и до России. Конечно, покрытие WiMAX-
сетей по России далеко от GSM-покрытия «большой тройки», но сети развиваются, растёт
интерес и к устройствам, поддерживающим WiMAX. В статье будет рассказано о том,
как к многофункциональному маршрутизатору фирмы Asustek со встроенной ОС Linux
подключить WiMAX-модем.

Н
е успели ещё внедрить стандарт затора Asus WL-500gP [1] использует- затор Asus WL-500gP с USB-портами,
3G, как на рынке уже появился ся Linux, а опыт подключения модема а в руках вы держите USB WiMAX-мо-
4G – WiMAX. Его распростране- Samsung SWC-U200 удастся перенести дем Samsung SWC-U200, то что меша-
ние не обошло стороной и Россию. на другие полезные вам устройства. ет соединить эти два устройства?
Зона покрытия пока невелика – Есть спрос – будет предложение. Оказалось, что ничто не мешает,
Москва, Санкт-Петербург, а с недав- Не успели оглянуться, как количест- только в штатном режиме работать
него времени Уфа. во домашних устройств с сетевыми вместе эти два устройства не хотят.
С одной стороны, предложение интерфейсами увеличилось, а их под- Дальше будет описано техничес-
протестировать сеть WiMAX бесплат- ключение к глобальным сетям свелось кое решение по сопряжению указан-
но до 31 марта [3] или 31 мая [2] заман- к использованию недорогих маршру- ных устройств.
чиво, с другой, цена «входного билета» тизаторов, сочетающих в себе ещё Если же у вас есть только интерес
достаточно высока – не у всех найдут- и функции коммутатора, межсетево- в использовании WiMAX и нет жела-
ся лишние 4-5 тысяч рублей для покуп- го экрана, точки доступа, DHCP-сер- ния заниматься настройкой оборудо-
ки WiMAX-модема. вера, сервера печати, файлового сер- вания, то спешим сообщить, что в про-
Не спешите перелистывать страни- вера и пр. Однако до сих пор найти не- даже уже имеются готовые решения
цу, не найдя свой город в списке горо- дорогую точку доступа, поддерживаю- на базе Asus WMVN25E2+, а также го-
дов, охваченных WiMAX, ведь стандарт щую подключения по WiMAX, довольно товые решения по сопряжению упомя-
может завтра прийти и в ваш город. сложно из-за новизны стандарта. нутых нами устройств. Например, ком-
Возможно, вам будет интересно Тут-то и пришла на помощь русская пания «ГНУ/Линуксцентр» предлага-
узнать и про то, что внутри маршрути- смекалка. Если у вас есть маршрути- ет не только купить адаптированные

50
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
маршрутизаторы ASUS WL-500gP или D‑Link DIR-320, но и
предоставляет возможность взять эти устройства на тести-
рование [6]. Не отстаёт по предложениям и WiMAXstore [7].
Мы же рассмотрим вопрос самостоятельной перепрошив-
ки и настройки.

Взгляд внутрь
Получив в руки маршрутизатор и модем (см. рис. 1) для эк-
спериментов, было очень сложно удержаться от того, что-
бы не раскрутить их первым делом и не посмотреть, что же
там находится внутри.
Для этого переворачиваем маршрутизатор и отклеива-
ем ножки, под которыми находятся 4 винта (см. рис. 2).
Рисунок 1. Маршрутизатор Asus WL-500gP и USB-модем
Разворачиваем устройство, переворачиваем и снима- Samsung SWC-U200
ем крышку (см. рис. 3). Довольно много места, отключае-
мый Wi-Fi-модуль, чипсет (см. рис. 4) и процессор Broadcom
с памятью под экраном (см. рис. 5).
Если выполнить команды:

$ cat /proc/cpuinfo
...
system type : Broadcom BCM4704 chip rev 9 pkg 0
cpu model : BCM3302 V0.6

$ cat /proc/meminfo
total: used: free: shared: buffers: cached:
Mem: 30887936 18956288 11931648 0 1871872 6782976

то увидим, что информация о процессоре и памяти совпа-


ла с тем, что можно увидеть в устройстве.

Выбор прошивки Рисунок 2. Вид маршрутизатора снизу. Отклеиваем ножки


Изучив обсуждения на форумах, можно прийти к выводу, для разбора
что лучшим решением является использование прошив-
ки от Олега Вдовикина. Судя по исходным кодам (изучен-
ным позже), где можно найти e-mail-адреса всех авторов,
это выпускник МГУ с немалым стажем администрирова-
ния. Прошивки распространяются по лицензии GPL и до-
ступны по адресу [9], там же можно найти ссылки на форум
с предложением присоединиться к обсуждению маршрути-
заторов http://wl500g.info.
Лицензия GPL не только обязывает авторов оcтавлять
cвои координаты, но и делать доcтупными иcходные коды.
Так, пытаяcь найти корни, откуда взялась первоначальная
прошивка, логичнее иcкать на cайте Asus, но что побуди-
ло Олега внести в неё правку? Ответ не ясен, так как свя-
заться по указанному в исходных кодах адресу не полу-
чилось, но ясно одно, – Open Source-решения предостав-
ляют энтузиастам возможности улучшения исходного ко-
да. Из информации, предоставленной на сайте [9], можно Рисунок 3. Вид маршрутизатора внутри
предположить, что некая фирма hornington выложила ис-
ходные коды неофициальной прошивки 1.7.5.9 от Asustek
(кстати, по лицензии GPL можно было бы их и затребо-
вать), после чего улучшения кода не заставили себя дол-
го ждать.
Изучая исходные коды версии 1.9.2.7-10 (март 2008 го-
да), можно заключить, что она основана на версии ядра
2.4.20:

$ uname -a
Рисунок 4. Чипсет маршрутизатора

№5, май 2009 51


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
персональный межсетевой экран при прошивке через веб-
интерфейс?
Ведь если я сам создавал правила пакетной фильтра-
ции и соединение с маршрутизатором через браузер, уста-
новлено к моменту начала прошивки, то значит и во время
перепрошивки соответствующие пакеты по протоколу TCP
будут передаваться на 80-й порт маршрутизатора и при-
ходят обратно без проблем. С надёжностью радиокана-
ла и электропитания сложнее, но если у вас нет источника
бесперебойного питания, то вы можете не расстраиваться
и не тратить часы на его поиски.
В случае сбоя устройство всегда можно вернуть к завод-
ским установкам, используя соответствующие кнопки, ли-
бо перепрошить с помощью утилиты восстановления. Мож-
но предположить, что именно поэтому в веб-интерфейсе
маршрутизатора нет функции сохранения старой прошив-
Рисунок 5. Вид платы с памятью и процессором без экрана ки (именно прошивки, а не настроек). Если ваш маршрути-
затор будет находиться в общественном месте, то во избе-
Linux WL-001FC660E3C3 2.4.20 #18 Sun Mar 30 13:13:29 MSD жание возможности восстановления заводских настроек
2008 mips unknown без вашего участия следует выпаять кнопки (см. рис. 7).
При желании восстановить заводские настройки мож-
а поддержка обновлений прекратилась полтора-два года но будет замкнуть контакты на плате (ведь такая необхо-
назад. При последней версии ядра 2.4.37.1 из серии 2.4.x димость возникает очень редко). Если всё же вам не до-
на момент написания статьи следует сделать соответству- ступен веб-интерфейс или произошёл сбой, то о втором
ющие выводы. Конечно, основные ошибки и критические способе перепрошивки с помощью утилиты восстановле-
уязвимости в версиях ядра и программного обеспечения ния коротко написано тут [15], для чего следует выполнить
на тот момент закрыты соответствующими патчами, кото- следующие шаги:
рых на одно ядро накладывается около полусотни, но мысль n Убеждаемся, что маршрутизатор, как и компьютер, че-
о том, что жизнь не стоит на месте и новые версии могут рез который мы будем им управлять, подключены к ис-
быть чем-то лучше старых, промелькивает. Скорее всего, правному источнику бесперебойного питания и ёмкос-
падение интереса к этой модели маршрутизатора связано ти аккумуляторов которого хватит на время прошивки
с появлением новых. (обычно не более 10 минут).
Мы же, следуя [8], скачиваем пос-
леднюю прошивку из http://oleg.wl500g.
info/1.9.2.7-9 (или http://code.google.com/
p/wl500g) и устанавливаем её. Эта
прошивка или другая нужны для то-
го, чтобы ядро поддерживало моду-
ли и TUN/TAP-устройства, коим будет
WiMAX-модем.

Замена прошивки
Существует два варианта прошив-
ки модема [18]: через веб-интерфейс
(см. рис. 6) и через утилиту восста-
новления. В обоих рекомендуется ис-
пользовать только проводное подклю-
чение (не используя Wi-Fi и промежу-
точные сетевые устройства), отклю-
чить различные межсетевые экраны
и обеспечить бесперебойное питание
компьютера и маршрутизатора. С од-
ной стороны, эти требования разум-
ны, чтобы избежать лишних вопросов,
но с другой стороны, они могут пока-
заться чрезмерными и выставляющи-
ми читателей как не понимающих суть
происходящих процессов. Например,
логично спросить, а зачем отключать Рисунок 6. Обновление программного обеспечения через веб-интерфейс

52
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
n Убеждаемся, что маршрутизатор и компьютер соеди-
нены патч-кордом, либо промежуточные сетевые уст-
ройства между ними надёжны и обеспечены беспере-
бойным электропитанием.
n Нажимаем и держим кнопку перезагрузки на задней
стенке маршрутизатора.
n Обесточиваем на несколько секунд маршрутизатор
и снова его включаем.
n Дожидаемся мигания индикатора питания, после чего
отпускаем кнопку перезагрузки.
n На компьютере пользователя запускаем ASUS Firmware
Restoration Application (поставляется на диске вместе
с маршрутизатором).
n В программе выбираем распакованную прошивку
(файл .trx). Рисунок 7. Выпаянные кнопки
n Жмём Upload (загрузить).

Старая прошивка, как было отмечено выше, пропадает.

Драйверы от модема
Скачиваем уже скомпилированные модуль libusb и драйвер
madwimax [11]. Если вас интересуют исходные коды, то их Рисунок 8. USB WiMAX-модем Samsung SWC-U200
можно найти в [12] и на сайте проекта wimax [10].
Чтобы не отставать от жизни, рекомендуем посетить фо-
рум http://www.wl500g.info/showthread.php?p=119756&page=1,
где ведётся практически ежедневная дискуссия, обсужда-
ются проблемы и появляются новые решения.
Также необходимые файлы можно найти и тут: http://
lvk.cs.msu.su/~lasaine/madwimax/wl500g.

Загрузка файлов в маршрутизатор


Для загрузки файлов из-под ОС Linux можно воспользо-
ваться штатной программой scp.
Но предполагая, что данная ОС может оказаться не у
всех читателей, предложим и другое решение. Для этого
нам понадобится утилита WinSCP [14] или одноимённый
plugin к Far. Также может подойти pscp [13]. Если с утилитой
для загрузки файлов вопросов быть не должно, то вопрос
«куда загружать?» подразумевает два ответа. Рисунок 9. USB WiMAX-модем Samsung SWC-U200 в разборе
Первый – во внутреннюю память маршрутизатора.
В этом случае следует помнить, что она не резиновая и от Отформатированную флешку монтируем в директорию
каких-то функций, возможно, придётся отказаться. Все про- /opt маршрутизатора, после чего создаём директорию /tmp/
даваемые решения используют этот подход. mnt/disc0_1/bin и осуществляем монтирование директории
Второй – подключить внешнюю USB-флешку, размер /tmp/mnt/disc0_1 в /opt. Объяснить, зачем выполняются такие
которой ограничен вашей фантазией, и использовать её. операции, а не используются мягкие ссылки, сложно. Вполне
Конечно, занятый USB‑порт и ещё одно устройство – пло- возможно, что внутреннее программное обеспечение мар-
хо, но указанный путь наиболее прост для самостоятель- шрутизатора может обращаться к файлам по определённо-
ной реализации, поэтому мы его и рассмотрим. му пути, но не может следовать по ссылкам (устройство мо-
Для подключения USB-флешки лучше выбрать нижний жет работать и как FTP/SAMBA-файловый сервер).
порт маршрутизатора, так как верхний позже будет занят Так как команды, на наш взгляд, не являются потенци-
WiMAX-модемом. ально опасными, мы их оставили без изменений:
Поддержка файловых систем FAT или NTFS в ядре
маршрутизатора, скорее всего, будет отключена, поэтому # mount -o sync,noatime,rw ↵
/dev/scsi/host0/bus0/target0/lun0/part1 /opt
флешку с большой вероятностью придётся переформати- # mkdir /tmp/mnt/disc0_1/bin
ровать под файловую систему ext2 или ext3. Для тех, у ко- # mount –o bind /tmp/mnt/disc0_1 /opt
го есть ОС Linux под рукой и некоторый опыт работы с этой
ОС, проблем быть не должно, остальным проще будет вос- Создаём временную директорию:
пользоваться возможностями самого маршрутизатора [9],
имеющего команды fdisk и mke2fs. # mkdir -p /opt/tmp/ipkg

№5, май 2009 53


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Упрощаем жизнь $ flashfs commit
Для того чтобы упростить себе жизнь, установим допол- .
нительное программное обеспечение, для этого подклю- Committed.
чаем маршрутизатор через порт WAN к Интернету (после
настройки WiMAX можно использовать и этот канал) и ус- $ flashfs enable
танавливаем программы от суперпользователя. Для того
чтобы устанавливались последние версии, следует выпол- Последняя команда ничего не выводит.
нить команду обновления: Для простоты эти три команды можно написать и в од-
ну строчку в виде «flashfs save && flashfs commit && flashfs
$ ipkg.sh update enable», что нередко можно увидеть на форумах, описани-
Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/ ях и в howto.
stable/Packages.gz Для корректной работы в mc надо выполнить ещё
Inflating http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/
stable/Packages.gz две команды, устанавливающие переменные TERMINFO
Updated list of available packages in /opt/lib/ipkg/lists/optware и TERM.
Successfully terminated.

Если не сделать обновления списка доступных пакетов export TERMINFO="/opt/share/terminfo"


export TERM="xterm"
для установки, то при последующих шагах может появить-
ся информация о том, что существует более новая версия
устанавливаемого вами пакета и надо выполнить команду Поддержка WiMAX-модема
«ipkg update» перед установкой. Далее, небходимо перейти к тому, с чего начался раздел,
Для установки пакета screen (ссылка на него будет в кон- и переписать скачанные ранее файлы liveusb и madwimax,
це статьи) выполнить команду: распаковав liveusb в директорию /opt, а madwimax в /opt/
sbin. Как вариант это можно сделать через файловые ме-
$ ipkg install screen неджеры Far+WinSCP и mc. После необходимо проследить,
Installing screen (4.0.3-2) to /opt/... чтобы файл /opt/sbin/madwimax имел установленным атри-
Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/ бут выполнения.
stable/screen_4.0.3-2_mipsel.ipk
Installing termcap (1.3.1-2) to /opt/... Например, командой:
Downloading http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/
stable/termcap_1.3.1-2_mipsel.ipk ls –l /opt/sbin/madwimax
Configuring screen
chown: unknown user name: root
Configuring termcap
Successfully terminated.
если права на запуск не выставлены, то их стоит устано-
вить командой:
Аналогично с командами:
n ipkg install ipkg-opt chmod +x /opt/sbin/madwimax
n ipkg install mc
n ipkg install gzip Либо можно скачать файлы заново из консоли и там
n ipkg install bzip2 же распаковать:

После того как программное обеспечение установлено cd /tmp


wget http://lvk.cs.msu.su/~lasaine/madwimax/wl500g/ ↵
либо внесены правки в конфигурационные файлы, следует libusb-1.0-mipsel.tgz
сохранить изменения во внутреннюю flash-память маршру- wget http://lvk.cs.msu.su/~lasaine/madwimax/wl500g/ ↵
madwimax-latest-mipsel.tgz
тизатора, для этого выполняем следующие три команды: cd /
tar -xzf /tmp/libusb-1.0-mipsel.tgz
tar -xzf /tmp/madwimax-latest-mipsel.tgz
$ flashfs save
tar: Removing leading '/' from member names По завершению распаковки скачанные архивы мож-
tmp/local/ но удалить.
tmp/local/etc/
tmp/local/etc/dropbear/
tmp/local/etc/dropbear/dropbear_rsa_host_key rm /tmp/libusb-1.0-mipsel.tgz ↵
tmp/local/etc/dropbear/dropbear_dss_host_key /tmp/madwimax-latest-mipsel.tgz
tmp/local/sbin/
tmp/local/sbin/pre-shutdown В этом случае атрибуты должны быть настроены пра-
tmp/local/sbin/post-mount вильно после распаковки архива.
tmp/local/sbin/post-firewall
tmp/local/sbin/post-boot Сами файлы теперь находятся на флешке, подключен-
tmp/local/root/ ной к маршрутизатору, но далее необходимо, чтобы кто-то
tmp/local/root/.mc/
после перезагрузки устройства монтировал флешку, под-
tmp/local/root/.mc/Tree
tmp/local/root/.mc/filepos гружал модуль tun.o, запускал madwimax, настраивал сете-
tmp/local/root/.mc/ini вой интерфейс, перепрописывал маршрутизацию. Для то-
tmp/local/root/.mc/history
tmp/local/root/.mc/cedit/ го чтобы не выполнять эти все функции вручную, созда-
-rw-r--r-- 1 gp root 3081 May 8 19:03 /tmp/flash.tar.gz дим два скрипта, которые позволят автоматизировать вы-
Check saved image and type "/sbin/flashfs commit" to commit changes шеописанную работу.

54
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
«Поднимаем» SSH  Совет 3. Запуск сервиса ssh и его ис- дый раз вручную, пропишем его в авто-
Если вы планируете использовать локаль- пользование позволяют защитить- разгрузку (файл post-boot) и сохраним на-
ное администрирование в доверенной се- ся от угрозы конфиденциальности, стройки во флеш-память (flashfs). Для это-
ти, то можно вполне обойтись программой но не приводит к отключению серви- го вначале проверим наличие файла post-
telnet и протоколом FTP либо флешкой для са telnet. Поэтому, если вы хотите из- boot командой:
переноса файлов. Но если вы планируете бежать других атак на маршрутизатор
# ls /usr/local/sbin/post-boot
настраивать ваш модем через Интернет через telnet, то следует дополнительно
либо ваша локальная сеть не является до- позаботиться об этом. В случае ошибки «No such file or directory»
веренной, то лучше потратить несколько (файла нет) его надо создать. Для этого соз-
минут и настроить SSH-сервис, использо- Начиная с версии 1.7.5.9-4 в комп- дадим, при необходимости, вышестоящие
вание которого предпочтительнее с точки лект поставки программного обеспечения директории, запишем имя командного ин-
зрения безопасности. маршрутизатора уже входит ssh-демон терпретатора первой строчкой и изменим
Подключаемся по протоколу telnet к ад- dropbear поддерживающий как RSA- так атрибуты файла командами:
ресу маршрутизатора. По умолчанию это и DSS-ключи. Наша задача – сгенериро-
# mkdir -p /usr/local/sbin/
192.168.1.1. Логин и пароль по умолчанию – вать пару ключей и запустить демон. Для # echo "#!/bin/sh" >> ↵
admin/admin. этого после подключения создадим дирек- /usr/local/sbin/post-boot
# chmod +x /usr/local/sbin/post-boot
Замечание: предполагая, что статью торию, где будут храниться ключи.
могут читать не только администраторы После, когда файл уже создан (или су-
# mkdir -p /usr/local/etc/dropbear
и продвинутые пользователи, предложим ществовал ранее), допишем в конец строч-
таким читателям несколько советов. Сгенерируем DSS- и RSA-ключи: ку запуска ssh-демона dropbear:
 Совет 1. Если вы используете Windows # echo "dropbear" >> ↵
# dropbearkey -t dss -f /usr/local/ ↵
Vista, то telnet-клиент по умолчанию от- /usr/local/sbin/post-boot
etc/dropbear/dropbear_dss_host_key
сутствует в системе. Включить его мож- # dropbearkey -t rsa -f /usr/local/ ↵ После сохраним изменения во флеш-
etc/dropbear/dropbear_rsa_host_key
но через «Панель управления → Про- память и активируем работу с сохранён-
граммы и компоненты → Включение После того как ключи созданы, вы мо- ными настройками:
и отключение компонентов Windows → жете запустить ssh-демон, просто набрав # flashfs save && flashfs commit && ↵
Клиент Telnet». dropbear, но в случае перезагрузки мар- flashfs enable

 Совет 2. Используйте лучше утилиту шрутизатора запуск придётся повторить. Выйти из telnet-сессии можно коман-
PuTTY [13]. Чтобы осуществлять запуск сервиса каж- дой «exit».

Автоматизация загрузки Mfr=1, Product=2, SerialNumber=0


Из консоли запускаем mc и дописываем в файл /usr/local/ May 8 21:46:57 notebook kernel: usb 1-7: Product: Samsung USB
mWiMAX Modem..
sbin/post-boot две строчки: May 8 21:46:57 notebook kernel: usb 1-7: Manufacturer: SAMSUNG
ELECTRONICS Co.Ltd.
export TERMINFO="/opt/share/terminfo" May 8 21:46:57 notebook kernel: Initializing USB Mass Storage
export TERM="xterm" driver...
May 8 21:46:57 notebook kernel: scsi6 : SCSI emulation for USB
Также редактируем /usr/local/sbin/post-mount и записы- Mass Storage devices
May 8 21:46:57 notebook kernel: usbcore: registered new interface
ваем в него: driver usb-storage
May 8 21:46:57 notebook kernel: USB Mass Storage support
#!/bin/sh registered.
May 8 21:47:02 notebook kernel: scsi 6:0:0:0: CD-ROM
mount -o sync,noatime,rw ↵ Samsung Install Disk 0.10 PQ: 0 ANSI: 0 CCS
/dev/scsi/host0/bus0/target0/lun0/part1 /opt May 8 21:47:02 notebook kernel: sr1: scsi3-mmc drive: 48x/48x
mount –o bind /tmp/mnt/disc0_1 /opt xa/form2 cdda tray
insmod tun.o May 8 21:47:02 notebook kernel: sr 6:0:0:0: Attached scsi
/opt/sbin/madwimax --device 04e9:6761 generic sg2 type 5
sleep 45 May 8 21:47:02 notebook kernel: sr1: Hmm, seems the drive
/opt/etc/madwimax/event.sh if-up tap0
doesn't support multisession CD's

Значение 04e9:6761 идентифицирует вставленный Как легко заметить, указанные значения – это idVendor
в маршрутизатор WiMAX-модем. Если у вас имеется до- и idProduct. Интересно отметить, что модем на самом деле
полнительный компьютер с ОС Linux и свободным USB- является и вторым устройством, а именно моделирует ра-
портом, то вставьте в него модем и посмотрите файл /var/ боту USB CD-ROM со вставленным компакт-диском с драй-
log/messages, где вы сможете увидеть примерно следу- верами модема. Поэтому для ОС Windows драйверы на ком-
ющее: пакт-диске, как это бывает обычно, не поставляются.
Также ID устройства можно узнать и из команды lsusb:
May 8 21:46:57 notebook kernel: usb 1-7: new high speed USB
device using ehci_hcd and address 2 Bus 001 Device 002: ID 04e9:6761 PC-Tel, Inc.
May 8 21:46:57 notebook kernel: usb 1-7: configuration #1 chosen
from 1 choice К сожалению, в маршрутизаторе используется урезан-
May 8 21:46:57 notebook kernel: usb 1-7: New USB device found,
idVendor=04e9, idProduct=6761 ный комплект программного обеспечения, и поэтому ко-
May 8 21:46:57 notebook kernel: usb 1-7: New USB device strings: манды lsusb там нет. Если следовать [8], значение бывает

№5, май 2009 55


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
или 04e9:6761, или 04e8:6761 и определяется перебором. touch /opt/etc/madwimax/udhcpc.script
chmod +x /opt/etc/madwimax/event.sh
С неправильным значением модем просто не заработает. chmod +x /opt/etc/madwimax/udhcpc.script
В новых прошивках маршрутизатора предусмотрена воз-
можность посмотреть ID подключенных к USB-порту уст- И наполняем следующим содержимым.
ройств через веб-интерфейс: Status & Log, Diagnostic Info, Файл event.sh:
USB Devices, в прошивке, используемой авторами, такой
возможности нет. #!/bin/sh
# Usage: event.sh
Строчки sleep 45 и /opt/etc/madwimax/event.sh if-up tap0
прописаны авторами для поднятия сетевого интерфейса мо- case "$1" in
start)
дема (tap0) после загрузки маршрутизатора. Значение за- ;;
держки установлено опытным путём и может варьировать- end)
;;
ся. Обычно 45 секунд хватает для того, чтобы модем успел if-up)
установить связь с сетью WiMAX. Предполагается, что рас- /sbin/udhcpc -i "$2" -p /var/run/udhcpc1.pid -s ↵
/opt/etc/madwimax/udhcpc.script -b
положение модема выбрано оптимально. Подробнее как это iptables -A INPUT -i "$2" -m state --state NEW ↵
сделать будет рассказано в конце статьи. -j SECURITY
iptables -A FORWARD -i "$2" -m state --state NEW ↵
Ещё один вариант загрузки модуля поддержки WiMAX- -j SECURITY
модема предложен в [15], где вместо строчек: iptables -t nat -A POSTROUTING -o "$2" ! -s ↵
`ifconfig "$2" | grep 'inet addr' | tr ':' ' ' | ↵
awk '{print $3}'` -j MASQUERADE
insmod tun.o iptables -t mangle -A FORWARD -p tcp ↵
/opt/sbin/madwimax --device 04e9:6761 --tcp-flags SYN,RST SYN ↵
-j TCPMSS --clamp-mss-to-pmtu
используются: ;;
if-down)
cat /var/run/udhcpc1.pid | xargs -i kill -TERM {}
insmod /lib/modules/tun.o ;;
(while true; do /opt/sbin/madwimax -qof; sleep 10; done) & *)
echo "Usage: $0 {start|end|if-up|if-down}" >&2
Так как авторам вариант с бесконечным циклом не пон- exit 3
;;
равился, мы от него отказались. esac
Замечание: если файл /usr/local/sbin/post-mount отсутс-
твовал у вас изначально, то создать его можно командой: Файл udhcpc.script:

touch /usr/local/sbin/post-mount #!/bin/sh

RESOLV_CONF=/tmp/resolv.conf
или нажатием <CTRL> + <F4> в mc. После завершения ре-
case "$1" in
дактирования необходимо файлу присвоить атрибут испол- bound|renew)
няемости командой: ifconfig $interface up
ifconfig $interface $ip netmask $subnet
route add default gw $router
chmod +x /usr/local/sbin/post-mount for ii in $dns; do
echo nameserver $ii >> $RESOLV_CONF
done
При создании (редактировании) файла /usr/local/sbin/ # trigger dnsmasq restart
kill -s SIGHUP `pidof dnsmasq`
post-mount мы указали команды для монтирования флеш- ;;
ки, загрузки модуля поддержки TUN/TAP-устройств, ини- deconfig)
ifconfig $interface 0.0.0.0
циализации модема и в конце предусмотрительно обра- echo deleting $RESOLV_CONF
тились к программе event.sh для поднятия сетевого интер- echo -n > $RESOLV_CONF
kill -s SIGHUP `pidof dnsmasq`
фейса и присваивания ему сетевых настроек. ;;
Чтобы не делать одну операцию два раза, сделанные esac
изменения мы не сохраняем во flash-памяти маршрути-
затора, так как ниже пойдёт речь о программах event.sh При желании готовый файл udhcpc.script можно
и udhcpc.script, которые надо создать и после сохранить. взять тут: http://lvk.cs.msu.su/~lasaine/madwimax/wl500g/
udhcpc-script.tgz и по аналогии с командами выше для
Получение сетевых настроек liveusb и madwimax скачать и распаковать.
Создадим файл event.sh, который будет отвечать за полу- Файл event.sh является основным и запускается пер-
чение IP-адреса и других сетевых параметров по протоко- вым. После, если необходимо, он вызывает вспомогатель-
лу DHCP от Yota. Файл udhcpc.script сохранит полученные ный скрипт udhcpc.script.
параметры в систему и изменит таблицу маршрутизации Сохраним изменения во flash-памяти маршрутизатора:
так, чтобы внешним интерфейсом считался не WAN Enternet-
модем, а WiMAX USB-модем. # flashfs save && flashfs commit && flashfs enable
Создаём файлы с установленным разрешением на
запуск: Можно попробовать выполнить команды, указанные
в /usr/local/sbin/post-boot, вручную, после чего, в случае об-
touch /opt/etc/madwimax/event.sh наружения сети WiMAX, у модема изменится цвет индика-

56
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
тора на синий и оба устройства будут работать, как мы это- tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tap0, link-type EN10MB (Ethernet), capture size 68 bytes
го ожидаем. Если это для вас сложно или подключение та- 20:05:30.915018 IP 10.129.27.141 > yota.ru: icmp 28: echo request seq 54
ким способом не получилось, перезагрузите маршрутиза- 20:05:31.019343 IP yota.ru > 10.129.27.141: icmp 28: echo reply seq 54
20:05:31.915008 IP 10.129.27.141 > yota.ru: icmp 28: echo request seq 55
тор командой: 20:05:32.109125 IP yota.ru > 10.129.27.141: icmp 28: echo reply seq 55

# reboot Многие заметят, что хорошо бы использовать ключ ‑i


для задания интервала посылки ICMP-пакетов в секун-
После перезагрузки маршрутизатор автоматически под- дах, чтобы уменьшить нагрузку на сеть, но, увы, так сде-
монтирует USB-флешку, загрузит с неё модуль TUN/TAP-ус- лать не получится, так как в программе busybox, установ-
тройств, драйвер модема, после чего, если модем обнару- ленной в модеме, используется урезанная функциональ-
жит сеть, будут получены сетевые настройки и перепропи- ность утилиты ping. Решить проблему можно установкой
сана маршрутизация внутри устройства. полнофункциональной версии ping либо hping [19]. Пос-
На этом моменте настройку маршрутизатора можно счи- ледняя утилита обладает большими возможностями и ре-
тать законченной и переходить к использованию. Однако комендуется авторами.
есть ряд вещей, о которых лучше знать читателям.
Несколько слов о сети Yota
Диагностика сети WiMAX Для того чтобы работать в WiMAX-сети провайдера Yota,
Рекомендуем запустить в консоли команду madwimax с клю- следует не только зарегистрироваться, но и найти опти-
чом ‑help и узучить назначение ключей. мальную точку приёма сигнала. Далее в статье рассказыва-
Например, madwimax с ключом -f может выводить раз- ются технические вопросы подключения модема Samsung
личную диагностическую информацию в консоль, либо SWC‑U200 к маршрутизатору со встроенной ОС Linux, под-
при запуске как «madwimax -fvvd» записывать всю инфор- разумевая, что читатель уже подключён к этой сети. Же-
мацию в syslog, что не очень удобно на устройстве с огра- лая расширить аудиторию читателей, статью можно тракто-
ниченным размером диска, либо через команду: вать и как отдалённое пособие по настройке WiMAX в Linux,
а также добавить немного полезной информации, интерес-
madwimax -fvvd -l /tmp/mnt/disc0_1/madwimax.log ной не только системным администраторам, но и будущим
пользователям WiMAX.
переопределить вывод на флешку. Постоянно работать
в таком режиме не рекомендуется, так как лог-файл быс- Полезная информация о сети и о модеме
тро пополняется. Подключить модем в ОС Windows несложно. Как было опи-
сано выше, на тот момент, когда драйверы не установлены,
Проблема отключения модем определяется как обычный USB CD-ROM, к которо-
Когда вы долго не передаёте данные в сети, провайдер вас му в операционной системе должны быть штатные драйве-
отключает из-за бездействия, после чего необходимо пере- ры. В случае если у вас не запрещён запуск из Autorun.inf,
подключение. Эту проблему, по аналогии с GPRS и EVDO установка начнётся автоматически. Несмотря на то что мо-
от операторов сотовой связи, можно решить периодичес- дем был куплен в начале мая, в его «USB CD-ROM»-памя-
кой посылкой пакетов. Самое простое решение, предло- ти были драйвера версии 1.9.6, когда на сайте yota.ru до-
женное на форуме, – «пинговать» DNS-сервер провай- ступна для скачивания версия 1.2.0 [20].
дера. Для этого предлагается установить утилиту screen Лучше отключить автозапуск и установить драйверы
(выше по тексту указано, как её установить) и после допи- вручную. После установки программы Yota Access и под-
сать в файл /opt/etc/madwimax/event.sh в конце секции if‑up) ключения модема запустилось обновление (см. рис. 10).
строчку /opt/bin/screen -dm ping ip_адрес_dns_провайдера, Другой вариант обновления и более «тонкой настройки»
к указанному решению можно ещё дописать ключ ‑s 0, ми- модема описан в [26].
нимизирующего размер поля данных отправляемых паке-
тов, например:

/opt/bin/screen -dm ping -s 0 94.25.208.74

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


цессов:

$ ps | grep ping
571 gp 764 S /opt/bin/SCREEN -dm ping -s 0 94.25.208.74
572 gp 404 S ping -s 0 94.25.208.74

а также с помощью tcpdump зарегистрировать исходящие


и входящие пакеты:

$ tcpdump -i tap0 icmp Рисунок 10. Обновление программного обеспечения модема

№5, май 2009 57


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
После завершения об- параметр 0x12345678. После сохранения изменений ярлык
новления в результате пе- для запуска утилиты готов. Пароль тот же, что и при запус-
ремещения модема в про- ке через программу Yota Access, – 1234.
странстве удалось обна- Сложно сказать, где ещё можно использовать инфор-
ружить сеть, хотя, судя по мацию, полученную из программы отладки, но два приме-
карте покрытия, в месте нения можно найти сразу: первое – это позиционирование
расположения модема сиг- модема относительно базовых станций, например, когда
Рисунок 11. Окно Yota
Access после подключения нала быть не должно. Вы- сигнал Глонасс или GPS не принимается, (в тоннелях, зда-
вод: для нахождения сети ниях и пр.), как альтернатива сотовому и Wi-Fi позициони-
подключите модем с использованием USB-удлинителя, что рованию. А второе применение – создание любительских
даст возможность гибко перемещать модем в пространстве. общественных карт покрытия сети, например [22].
Поворот работающего модема на 90 градусов, как и сме-
щение на 5-10 см могут привести к потери модемом сигна- Ошибки регистрации
ла и отключению от сети, как и наоборот. После подключения к сети можно зайти только на сайт
yota.ru. Для того чтобы получить доступ дальше сайта про-
Поиск сигнала вайдера (даже на момент тестирования), следует зарегис-
Для поиска сигнала или точки наилучшего приёма лучше трироваться. Регистрация может производиться с любо-
всего воспользоваться утилитой DebugScreen. В директории го компьютера. Но после, чтобы привязать WiMAX-модем
с установленной программой Yota Access можно найти од- к вашему личному кабинету, всё равно придётся зайти в ка-
ноимённый exe-файл, но запуск утилиты производится бо- бинет через сеть Yota. «Логин или номер лицевого счёта»
лее хитрым образом. На форумах можно найти информа- и «пароль», указанные на пластиковой карточке, прило-
цию о том, как её запустить, но на практике это не получи- женной к модему, не подходят для входа в личный кабинет.
лось. Не долго думая, мы позвонили по телефону, указан- Данная информация понадобится лишь на последнем ша-
ному на модеме. На удивление техническая поддержка ком- ге регистрации. То есть логин и пароль у вас будут собс-
петентно ответила на все наши вопросы и даже подсказа- твенные, не привязанные к карте и счёту. После регистра-
ла, как запустить DebugScreen, что стало приятной неожи- ции модема в личном кабинете следует переподключить-
данностью. Для этого надо щёлкнуть на индикатор приёма ся к сети, причём сделать это надо с физическим отключе-
в окне Yota Access (см. рис. 11). нием модема от компьютера.
И нажать <Ctrl> + <Alt> + <Shift> + <F1>, после чего поя-
вится окно для ввода пароля, где ввести «1234». В появив- Улучшение приёма
шемся окне Debug Screen нажать меню File → Start. После Если вы посмотрите внимательно на рис. 8, то увидите, что
этого появится окно диагностики (cм. рис. 12). модем имеет два разъёма для подключения внешней антен-
Наиболее интересный параметр это RSSI – уровень сиг- ны. У вас эти разъёмы будут заклеены белой наклейкой, ко-
нала. Ещё можно обратить внимание на параметр BSID, чем- торая на фотографии переклеена правее. Есть разъём – бу-
то напоминающий по форме записи MAC-адрес, – это ID ба- дет переходник для внешней антенны (см. рис. 13). В комп-
зовой станции, с которой вы работаете. лекте переходник не поставляется, но его можно спаять са-
Замечание: по адресу[ 21] содержатся не только наблю- мостоятельно либо купить, например на сайтах [23-25].
дения за данными, выводимыми утилитой Debug Screen, Используя направленные антенны, вполне возможно до-
но и ещё один способ её запуска. Для этого необходимо соз- биться приёма сигнала там, где для работы через встроен-
дать ярлык для DebugScreen.exe на рабочем столе, после ную антенну не достаёт мощности сигнала.
на нём правой кнопкой мыши выбрать «Свойства» и в поле
«Обьект» после последней кавычки через пробел дописать А можно без флешки?
В нашем примере мы устанавливали midnight commander
и другие программы – удобные, но не нужные для непос-
редственной работы модема и маршрутизатора. Логич-
но предположить, что если мы не будем поднимать FTP-
сервер и использовать другие программы, то можно всё
лишнее стереть и обойтись минимумом файлов. Возника-
ет вопрос: если файлы уместятся по объёму, то можно ли
записать их во внутреннюю flash-память маршрутизатора
и обойтись без USB-флешки? Ответ – можно! Как раз вы-
шла статья о том, как это сделать [27].

А можно подключить два WiMAX-модема?


Логично предположить, что если у устройства два USB-пор-
та, то даже без использования USB-разветвителей можно
подключить второй WiMAX-модем. А можно ли настроить
два модема на одновременную работу? Учитывая, что внут-
Рисунок 12. Утилита Debug Screen ри маршрутизатора имеется пакет iproute2, можно не только

58
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
подключить одновременно два WiMAX-модема, но и обес-
печить балансировку нагрузки штатными средствами мар-
шрутизатора. Правда для этого потребуется некоторое зна-
ние ОС Linux и утилиты ip из вышеуказанного пакета. Чита-
тели могут заметить, что два модема, подключенные к од-
ной базовой станции одного провайдера, повысят скорость, Рисунок 13. Переходник для антенны
но не повысят надёжность. Но не забывайте, что сеть актив-
но развивается, и у жителей столицы уже сейчас есть воз- devices based on Samsung CMC-730 chip – http://code.google.
можность выбора между сетями «Комстар-ОТС» и Yota. com/p/madwimax.
11. Драйверы для модема WiMAX – http://files.linux.ru/index.
Нужен com-порт? php?dir=wimax/asus-500gP.
На плате маршрутизатора имеется нераспаянный разъём, 12. Библиотека libusb – http://libusb.wiki.sourceforge.net/Libusb1.0.
который можно распаять и использовать (см. рис. 14). 13. PuTTY: A Free Telnet/SSH Client – http://www.chiark.greenend.org.
uk/~sgtatham/putty.
Заключение 14. WinSCP Plugin to FAR File Manager – http://winscp.net/eng/docs/
Сеть WiMAX развивается, растёт число устройств – это при- far.
ятный факт. Даже есть официальный драйвер для MacOS. 15. Yota-роутер или wimax2wifi за 15 минут – http://www.rusdoc.ru/
Обидно лишь одно, что драйверы под Linux идут не изна- articles/yota-router_ili_wimax2wifi_za_15_minut/18369/print.
чально с устройствами, как было бы правильнее, а получе- 16. Информация о ASUS WL-500g Premium – http://oldwiki.openwrt.
ны с помощью исследования двоичных файлов и восста- org/OpenWrtDocs(2f)Hardware(2f)Asus(2f)WL500GP.html.
новления исходного алгоритма [10]. 17. Сравнительная таблица маршрутизаторов Asus WL-500 и дру-
гих – http://notepad.timyou.com/page/Router+Hacks?t=anon.
1. Страница маршрутизатора Asus WL-500gP – http://www. 18. Firmware upgrading HOWTO WL-500g/WL-500gx Tutorials – http://
asuscom.ru/products.aspx?l1=12&l2=43&l3=0&l4=0&model=171 www.wl500g.info/showthread.php?t=1329.
2&modelmenu=1. 19. Hping – Active Network Security Tool – http://www.hping.org.
2. WiMAX-провайдер Yota – http://www.yota.ru/ru. 20. Последняя версии программы Yota Access, май 2009 – http://
3. WiMAX-провайдер «Комстар» – http://wimax.comstar.ru. www.yota.ru/downloads/YotaAccess_v.120_BL22.exe.
4. Yota Egg – автономный WiMax-роутер – http://wimax.livebusiness. 21. Ветка форума «Как правильно тестить Йоту + софт для это-
ru/tags/WIMAX_router. го» – http://forum.yotatester.ru/showthread.php?t=51.
5. Готовое WiMAX-решение на базе Asus WL 500gP – http://www. 22. Карта покрытия WiMAX – http://www.wimaxmonitor.ru.
linuxcenter.ru/shop/wimax/devices/asus_wl500gpv2. 23. Переходник для внешней антенны для модема WiMAX YOTA –
6. В Москве появились WiMax-роутеры – http://wimax.livebusiness. http://www.radioport.ru/index.cgi/shop?id=2207&dir=13.
ru/news/5806. 24. Антенный переходник – http://www.yota-shop.ru/index.php?go=
7. WiMAX-оборудование – http://wimaxstore.ru/shop/wimax/devices/ goods&cat=10&gid=119.
asus_wl500gpv2. 25. Антенный переходник – http://for wimax.ru/show_good.
8. Инструкция: как раздавать Интернет от Yota через WiMAX- php?idtov=90025.
модем Samsung SWC-U200 и роутера ASuS WL-500gP – http:// 26. Обновление прошивки и «тонкая настройка» модема Samsung
www.wimaxinfo.ru/?q=node/201. SWC-U200 – http://yota-wimax.ru/category/yota-firmware.
9. Страница альтернативных прошивок для Asus WL-500g от Оле- 27. Делаем WiMAX-роутер (Wl500gP+SWC-U200) без флеш-
га Вдовикина – http://oleg.wl500g.info. ки – http://yota-wimax.ru/wimax-device/delaem-wimax-router-
10. madwimax A reverse-engineered Linux driver for mobile WiMAX wl500gpswc-u200-bez-fleshki.

Рисунок 14. Подключение COM-порта: слева - нераспаянная площадка для подключения контактов; справа - контакты для подключения
разъёма COM-порта

№5, май 2009 59


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Обзор
операционной системы
gNewSense GNU/Linux 2.2 Deltah
Среди большого количества доступных дистрибутивов GNU/Linux есть такие, которые
полностью соответствуют четырем принципам свободного программного обеспечения,
сформулированным проектом GNU. Встречайте gNewSense GNU/Linux Deltah 2.2 – полностью
свободную операционную систему.

Игорь Штомпель
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Особенности gNewSense нию. Пользователь gNewSense избав-
15 апреля 2009 года разработчики лен от данных проблем, так как про-
представили новый выпуск операци- граммное обеспечение не попадет
онной системы, получившей назва- в его репозитории, пока оно не выпу-
ние – gNewSense GNU/Linux Deltah 2.2 щено под свободной лицензией (ис-
и основанной на базе Debian GNU/Linux ключением является включение в ре-
и Ubuntu [1]. Система выпускается позиторий несвободной программы
для архитектуры x86 (i386), с рабочим по ошибке).
столом GNOME 2.22.1 по умолчанию
(KDE и Xfce доступны после установки). Установка gNewSense
Это полностью свободный дистрибу- Получить дистрибутив можно на офи- Рисунок 1. Новая членская карточка FSF
тив, отвечающий духу и букве проекта циальном сайте по ссылке http://
GNU. Последний, кстати, рекомендует www.gnewsense.org/index.php?n=Main. и отображением сводной информа-
ее к использованию [2], а Free Software Download. Размер образа в формате ции о настройках, с которыми будет
Foundation включил в список приори- .iso – 621 Мб. Последний представля- произведена последняя. Выбрав «Ус-
тетных проектов [3]. Кроме того, Free ет собой LiveCD с возможностью уста- тановить» для продолжения процес-
Software Foundation ввел загрузочные новки на жесткий диск. са установки, мы увидим окно «Ус-
членские карточки (карточка с номе- Для установки gNewSense необхо- тановка системы», которое показа-
ром 0 принадлежит Ричарду Столлма- димо загрузиться с LiveCD (процесс но на рис. 4. После выполнения всех
ну – см. рис. 1) со встроенным флеш проходит в графическом режиме). Пос- операций можно выбрать – работать
(содержит видео о свободном про- ле чего запустить программу установ- далее, используя LiveCD или перезаг-
граммном обеспечении и выступления ки, щелкнув на значке с названием рузиться. Выбираем второе. Перезаг-
основателя Free Software Foundation) «Install», как показано на рис. 2 (дан- ружаемся и видим рабочий стол, кото-
и дистрибутивом gNewSense, имею- ный процесс осуществляется за семь рый показан на рис. 5. Все, дистрибу-
щие USB-порт [4]. Карточка содержит шагов). Далее будет предложено вы- тив установлен.
информацию: имя владельца, членс- брать город и часовой пояс, расклад- Стоит отметить, что в дальнейшем
кий номер. На обратной стороне дано ку клавиатуры. На следующем шаге для управления пакетами в формате
определение свободного программно- потребуется выполнить разметку дис- .deb можно использовать либо утилиту
го обеспечения. ка (доступны два режима: авто – ис- APT (в консоли), либо Synaptic (в гра-
Итак, что делает рассматриваемый пользовать весь диск и второй вари- фическом режиме).
нами проект 100% свободным? Удале- ант – вручную). После разметки дис-
ны несвободные прошивки из ядра, не- ка, как показано на рис. 3, программа gNewSense на сервере
свободные linux-ubuntu-modules, репо- предложит вам представиться, ввести Системный администратор, пожелав-
зитории restricted и multiverse [5]. Репо- входное имя пользователя, а также па- ший установить сервер с дистрибутива
зиторий restricted – официально подде- роль и имя компьютера. gNewsense, имеет богатый выбор про-
рживаемый, но включающий несвобод- Затем появится окно с сообщени- граммных продуктов. Так, серверные
ные пакеты, а репозиторий multiverse – ем о том, что все готово к установке, службы представлены Apache 2.2.8,
официально не поддерживаемый, су-
ществующий за счет усилий сторонних
разработчиков, также включающий
несвободные пакеты. Таким образом,
ядро и модули ядра очищены от несво-
бодных компонентов, а репозитории
оставлены только те, что содержат сво-
бодные пакеты – main и universe. В це-
лом репозитории gNewSense содержат
более 24 тысяч пакетов программного
обеспечения. Таким образом, дистри-
бутив можно рекомендовать исполь-
зовать тем, кто хочет быть уверен, что
использует исключительно свободное
программное обеспечение. Например,
последний релиз Debian GNU/Linux 5.0,
как известно, содержит несвободные
прошивки (firmware), лицензии на кото-
рые разработчики дистрибутива под-
робно стали изучать только после вы-
хода «Lenny» [6], а Ubuntu устанавлива-
ет несвободные программы по умолча- Рисунок 2. Запуск программы установки

№5, май 2009 61


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
BitTorrent-клиент; Ekiga – VoIP-кли-
ент для работы с протоколами H.323
и SIP.
Что касается использования аудио,
видео и работы с графикой, то также,
как и для решения офисных задач име-
ется все необходимое программное
обеспечение. Totem 2.22.1 (использует
Gstreamer 0.10 по умолчанию) – мульти-
медиа плеер (имеются также и другие,
например, gxine 0.5.901, Kaffeine 0.8.6,
Dragonplayer 2.0.1, KMPlayer 0.10.0c,
а VLC и Mplayer не включены в дис-
трибутив с целью соблюдения ли-
цензионной чистоты); Ogle 0.9.2 –
DVD-плеер с поддержкой DVD-меню;
Rhytmbox 0.11.5 и XMMS2 0.2 – музы-
кальные проигрыватели; Kino – не-
линейный редактор цифрового ви-
део, позволяющий работать с цифро-
Рисунок 3. Окно входного имени, пароля и имени компьютера выми камерами через порт IEEE1394;
OggConvert 0.3.1 – конвертер виде-
Ftpd 0.17 с поддержкой SSL-шифро- позитории программного обеспече- офайлов в свободный формат .ogg;
вания (пакет ftpd-ssl), Proftpd 1.3.1, ния содержат все необходимые пакеты. sound-juicer 2.22.0 (звуковыжимал-
Vsftpd 2.0.6, Sendmail 8.14.2, Postfix 2.5.1, Так, для решения офисных задач до- ка) – программа копирования AudioCD.
Cyrus 2.2.13, Dovecot 1.0.10, Slapd 2.4.9 ступны OpenOffice.org 2.4.1, почтовый Для работы с графикой можно ис-
(сервер OpenLDAP), Dhcp3-server 3.0.6, клиент и календарь Evolution 2.22.2, пользовать GIMP 2.4.5; Inkscape 0.46;
O p e n S S H 4.7p1, Fr e e r ad i u s 1.1.7, xsane 0.995. Работу в Интернете сдела- ImageMagick6.3.7.9. Для работы с циф-
Squid 3.0 STABLE1, MySQL 5.051a, ют удобной Mozilla Firefox 2.0.0.21 – веб- ровыми фотоаппаратами доступны –
PostgreSQL 8.2 и 8.3, Samba 3.0.28a, браузер; Mozilla Thunderbird 2.0.0.21 – Digikam 0.9.3; F-Spot 0.4.2.
Cups 1.3.7. Но это далеко не полный почтовый клиент; Pidgin 2.4.1 – клиент Для воспроизведения mp3-фай-
перечень. обмена сообщениями, позволяющий лов используются свободные коде-
Среди средств шифрования можно работать с использованием протоко- ки (например, gstreamer0.10‑fluendo-
выделить GnuPG 1.4.6, GnuPG2 2.0.7 лов AIM/ICQ, Yahoo!, MSN, IRC, Jabber, mp3) и проигрыватели (например,
и Onak 0.3.3 – сервер ключей OpenPGP, Napster, Zephyr, Gadu-Gadu, Bonjour, audacios 1.5.0 и уже упоминавшиеся
Singin - par t y – набор ин с трум е н - Groupwise, Sametime, SILC; Psi 0.11 – медиаплееры Totem, gxine, и другие).
тов для работы с PGP/GnuPG (pgp- Jabber-клиент; Transmission 1.06 – Позиция Фонда свободного програм-
clean, pgp-fixkey, gpg-mailkeys и дру-
гие). Кроме того, имеются PGP-пла-
гин для Claws Mail (inline и MIME)
и Enigmail 0.95.0 для Mozilla Thunderbird,
Mew – почтовый клиент с поддержкой
PGP, S/MIME, SSH и SSL для Emacs.
Что касается средств разработ-
ки, то они представлены не менее ши-
роко. Это и Perl 5.8.8, и Python 2.4.5,
и Php 5.2.4 – скриптовые языки. Для
создания программм на C/C++ до-
ступны – cpp и gcc 4.2.3 (3.3, 3.4, 4.1),
g++ 3.4.6, anjuta 2.4.1, eclipse-cdt 3.1.2,
MonoDevelop 1.0. Программировать
на Java можно с использованием
Eclipse 3.2.2, free-java-sdk 1.0, gcj 4.2.3,
javacc 4.0, OpenJDK 6b11.

gNewSense на рабочей
станции
Операционная система может быть ис-
пользована и на рабочей станции. Ре- Рисунок 4. Окно «Установка системы»

62
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
кающей при создании раздела с JFS,
показан на рис. 6. Также произвели за-
мену ядра linux-image-386 на ядро вер-
сии linux-image-generic. А GNU Icecat
(GNU-версия Mozilla Firefox[11]) был до-
бавлен в репозиторий исходного кода –
Source code.
Что касается Mozilla Firefox, то его
выпуски 1.0, 1.5, 2.0 были несвобод-
ными, так как включали Talkback – не-
свободный плагин от компании Support
Soft. Это, а также то, что Mozilla распро-
страняла (распространяет по сей день),
несвободные плагины, привело к за-
пуску проекта по созданию свободно-
го браузера на базе Mozilla Firefox, ко-
торый получил название GNU Icecat.
Программа имеет свой набор свобод-
Рисунок 5. gNewSense установлен ных расширений и тем [12], а также до-
полнительные функции для обеспече-
много обеспечения допускает созда-из gNewSense 2.1 как несвободный [8]. ния безопасности.
ние свободных аналогов кодирова- Это стало возможным благодаря сов-
ния/декодирования, а также плееровместной работе SGI и Фонда свобод- Итоги
с поддержкой патентованного форма-ного программного обеспечения по пе- Таким образом, gNewSense представ-
та mp3 [7]. релицензированию кода 3D-библио- ляет собой полностью свободную
Если пользователю потребует- тек [9]. На официальном сайте дис- операционную систему с поддерж-
ся записать диски или образ диска,трибутива даже есть раздел, посвя- кой 3D, пригодную для использова-
то для этих задач вы можете ему пред-
щенный «поврежденным» 3D-прило- ния как на сервере, так и на рабочей
ложить использовать K3b 1.04 или жениям [10]. Теперь поддержка аппа- станции.
Brasero 0.7.1. ратного ускорения включена по умол- Если у вас возникнут определен-
чанию. Таким образом, Compiz и 3D-иг- ные проблемы или вопросы при ра-
Что нового в версии 2.2? ры будут работать. Кроме того, разра- боте с системой, то обсудить их мож-
Давно ожидаемым новшеством в но- ботчики произвели исправление оши- но в официальном списке рассыл-
вой версии gNewSense стало вклю- бок, не позволявших создавать раз- ки, зарегистрировавшись по адресу:
чение поддержки GLX (расширение делы с файловыми системами XFS http://lists.nongnu.org/mailman/listinfo/
для X Window, позволяющее исполь- и JFS на этапе установки операцион- gnewsense-users-ru.
зовать OpenGL), который был удален ной системы. Пример ошибки, возни-
1. http://lists.gnu.org/archive/html/gnew
sense-users/2009-04/msg00028.html.
2. http://www.gnu.org/distros/free-distros.
html#translations.
3. http://www.fsf.org/campaigns/priority.
html#gnewsense.
4. http://www.fsf.org/blogs/membership/
bootablemembership.
5. h t t p : / / w w w. g n e w s e n s e . o r g / M a i n /
Features.
6. http://www.debian.org/vote/2008/vote_
003.en.html#outcome.
7. http://fedoraproject.org/wiki/FreeSoftware
Analysis/FSF.
8. http://lists.gnu.org/archive/html/gnew
sense-users/2009-01/msg00041.html.
9. http://www.fsf.org/news/thank-you-sgi.
10. http://wiki.gnewsense.org/Main/Broken
3dApps.
11. http://www.gnu.org/software/gnuzilla.
12. http://www.gnu.org/software/gnuzilla/
Рисунок 6. Ошибка при создании JFS-раздела на этапе установки в gNewSense 2.1 addons.html.

64
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
bugtraq

Раскрытие данных в Sun Java System Межсайтовый скриптинг в Sun Java


Directory Server System Calendar Server
Программа: Sun Java System Directory Server версии 5 Программа: Sun ONE Calendar Server 6.0; Sun Java System
и 5.2. Calendar Server 6 2005Q4 и более ранние версии.
Опасность: Низкая. Опасность: Низкая.
Наличие эксплоита: Нет. Наличие эксплоита: Да.
Описание: Уязвимость существует из-за неизвестной Описание: 1. Уязвимость существует из-за недостаточной
ошибки, которая позволяет удаленному пользователю оп- обработки входных данных в параметре fmt-out в сценарии
ределить наличие файла на системе и просмотреть одну login.wcap. Удаленный пользователь может с помощью спе-
строку содержимого файла. циально сформированного запроса выполнить произволь-
URL производителя: wwws.sun.com/software/products/ ный код сценария в браузере жертвы в контексте безопас-
directory_srvr/home_directory.html. ности уязвимого сайта.
Решение: Установите последнюю версию 6.0 с сайта про- Пример:
изводителя.
https://<server>:3443/login.wcap?calid=&calname=&date= ↵
&fmt-out=<script>alert(document.cookie) ↵
Уязвимость при обработке ссылок

</script>&view=&locale=&tzid=&test= ↵
1229606492214&user=test&password=test
в Reporting Server в продуктах Symantec
Программа: Symantec AntiVirus Corporate Edition 10.1 2. Уязвимость существует из-за недостаточной об-
MR7 и более ранние версии; Symantec AntiVirus Corporate работки входных данных в параметре date в сценарии
Edition 10.2 MR1 и более ранние версии; Symantec Client command.shtml. Удаленный пользователь может с помощью
Security 3.1 MR7 и более ранние версии; Symantec Endpoint специально сформированного запроса выполнить произ-
Protection 11.0 MR1 и более ранние версии. вольный код сценария в браузере жертвы в контексте бе-
Опасность: Низкая. зопасности уязвимого сайта.
Наличие эксплоита: Нет. Пример:
Описание: Уязвимость существует из-за ошибки при обра- https://<server>:3443//command.shtml?view= ↵
ботке ссылок в интерфейсе входа в Reporting Server. Зло- overview&id=HK8CjQOkmbY&date=20081217T200734%27; ↵
alert('xss');//Z&caliad=someid@test.com&security=1
умышленник может отобразить произвольное сообщение
в интерфейсе входа в Reporting Server. URL производителя: www.sun.com.
URL производителя: www.symantec.com. Решение: Установите исправление с сайта производителя.
Решение: Установите последнюю версию с сайта произ-
водителя. Раскрытие важных данных
в Apache mod_proxy_aj
Отказ в обслуживании в Sun Solaris Программа: Apache 2.2.11.
Программа: Sun Solaris 10. Опасность: Средняя.
Опасность: Низкая. Наличие эксплоита: Нет.
Наличие эксплоита: Нет. Описание: Уязвимость существует из-за ошибки в mod_
Описание: Уязвимость существует из-за неизвестной proxy_ajp при обработке некорректно сформированных
ошибки в DTrace ioctl-обработчиках. Локальный пользова- HTTP POST-запросов. Удаленный пользователь может с по-
тель может вызвать панику ядра системы. Для успешной мощью специально сформированных HTTP-запросов про-
эксплуатации уязвимости требуется наличие на системе смотреть данные, возвращаемые в качестве ответов дру-
пакета SUNWdtrp. гим пользователям.
URL производителя: www.sun.com. URL производителя: www.apache.org.
Решение: Для устранения уязвимости следуйте инструк- Решение: Производитель рекомендует установить вре-
циям производителя. менное исправление.

Межсайтовый скриптинг Раскрытие данных в продуктах VMware


в Citrix Web Interface Программа: VMware VirtualCenter версии до 2.5 Update 4;
Программа: Citrix Web Interface версии 4.6, 5.0 и 5.0.1. VMware ESX 3.5; VMware ESXi 3.5.
Опасность: Низкая. Опасность: Низкая.
Наличие эксплоита: Нет. Наличие эксплоита: Нет.
Описание: Уязвимость существует из-за недостаточной об- Описание: Уязвимость существует из-за того, что прило-
работки входных данных. Удаленный пользователь может жение некорректно сохраняет пароли в памяти. Злоумыш-
с помощью специально сформированного запроса выпол- ленник может прочитать память клиентского процесса и по-
нить произвольный код сценария в браузере жертвы в кон- лучить пароль к VirtualCenter Server.
тексте безопасности уязвимого сайта. URL производителя: www.vmware.com.
URL производителя: support.citrix.com/product/wi. Решение: Установите исправление с сайта производителя.
Решение: Установите последнюю версию 5.1.0 с сайта про-
изводителя. Составил Александр Антипов

№5, май 2009 65


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
В чем секрет популярности
Linux User Group из Пекина?

Залогом успешного развития какого-либо проекта зачастую является удачное стечение


обстоятельств и присутствие определенного типа людей, которые заряжены на создание
позитивной атмосферы вокруг себя. Одним из таких интересных проектов является пекинская
группа Linux-пользователей – BeiJing Linux User Group. С ярким представителем BLUG –
Фредериком Мюллером (Frederic Muller) мы и побеседовали сегодня.

Фредерик, расскажите, пожалуйста, связями с общественностью и прави- Ианнини (Michael Iannini) был вдохнов-
о себе. Я знаю, что за вашими пле- тельственными/государственными уч- лен на создание группы своим другом,
чами скрывается достаточно бога- реждениями. Также еще я являюсь ви- который, предполагалось, будет прези-
тый опыт, да и вообще интересно, це-президентом в Software Freedom дентом. Однако его друг так и не поя-
как вы начинали и почему связали International – организации, которая вился, поэтому Майклу самому приш-
свою судьбу с Linux. устраивает Software Freedom Day. Ра- лось выступать в роли главного на про-
О, спасибо за комплимент. Мое погру- ботаю в качестве генерального конс- тяжении почти что 5 лет, пока он не пе-
жение в Linux началось в 1995 году, ког- труктора в китайском филиале Dexxon реехал в Индию и не передал бразды
да мы открывали один из первых ин- и вместе с Патриком Зинцем (Patrick правления мне. Все это время он был
тернет-провайдеров в Камбодже. На- Sinz, ex-Mandriva) принимаю участие заводилой, который организовывал
ши системы наполовину находились в проекте OLPH – это программа раз- регулярные ежемесячные мероприя-
в Камбодже и наполовину в Сингапу- работчиков, опекаемая Dexxon. Если тия и встречи – «chuanr nights» («Шаш-
ре. И на серверах мы использовали остается время, то на добровольных лычные ночи»). Нашей целью тогда бы-
Linux. Затем в начале 1997 года я про- началах занимаюсь еще и рептилия- ло желание пообщаться на Linux-те-
дал бизнес и решил попробовать ус- ми в пекинском зоопарке. му и быть мостом между двумя мира-
тановить Linux на свой новенький но- ми – китайским и мировым Linux/OSS-
утбук. Наверное, мой выбор не отли- Давайте вернемся к началу, к со- сообществом. В действительности же
чался от выбора большинства людей зданию BLUG. Кто был основателем мы пытались выяснить, что происходит
в то время, поэтому я положил глаз и какие цели преследовались? в китайской Linux-субкультуре в то вре-
на Red Hat. В настоящий момент я ви- Первый сбор группы состоялся в но- мя. На сегодняшний момент у нас есть
це-президент в BLUG, заведую также ябре 2002 года, и я был на нем. Майкл устойчивое представление, что проис-

66
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
ходит в Китае, и наша группа – часть Я смотрю на список событий, кото- Openmoko подарила нам Freerunner
этой культуры. рые у вас произошли в прошлом го- в 2007 году на мероприятии Software
ду, и вижу много интересных при- Freedom Day. Затем нам удалось вы-
Группа организует встречи дваж- глашенных персон, которые посети- играть в еще одном мероприятии и по-
ды в месяц. Из вашего личного опы- ли ваши мероприятия. Как вам уда- лучить XO-ноутбук. Обе эти игрушки
та, это оптимально или, наоборот, ется их заполучить? выдали мне, и некоторое время они
слишком часто? Нам очень повезло, что многие сотруд- пылились у меня на полке. Потом я
Ситуация выглядит следующим об- ники из крупных Open Source-компа- решил, что лучше раздать их груп-
разом. У нас ежемесячно происходит ний также являются членами нашей пе. Некоторое время спустя меня при-
сбор, для которого готовятся 2 пре- группы. Кроме того, в Пекине нахо- гласили на одну встречу – Foo Camp
зентации. Затем у нас бывает в сред- дится много исследовательских цен- BeiJing. Где я получил несколько бес-
нем два социальных события в месяц – тров. Когда кто-либо прибывает в Пе- платных книжек от O'Reilly. Один чело-
«Шашлычные ночи». Еще раз в ме- кин, то мы уже знаем об этом, да и оз- век из нашей группы решил написать
сяц получается организовать событие наченные компании сами присыла- Open Source-приложение, основан-
«Гость в городе» («Guest in town») – пре- ют гостей к нам. Иногда они находят ное на примерах из подаренных книг
зентация, которую преподносит специ- нас через онлайн и сообщают, что хо- и для аппаратного обеспечения, кото-
альный гость, будучи в Пекине (напри- дят организовать мероприятие по оп- рое у нас уже было, чтобы в дальней-
мер, кто-либо из большой компании, та- ределенной тематике. Иногда мы са- шем пустить во внутренний кругообо-
кой как Sun Microsystems). Потом у нас ми организовываем крупные конфе- рот как книги, так и устройства. После
бывают еженедельные встречи по по- ренции и приглашаем приехать гостей этого мы уже сами стали спрашивать
воду развития OSS-проекта quadcopter в Китай. В организации конференций в компаниях, а могут ли они нам дать
и раз в месяц проводятся мероприятия нам помогают как China OSS Promotion на изучение свои продукты.
«coding for fun» – аналог hackathon'а. Union – китайская правительственная Сейчас же, я думаю, компании уже
В последнее время «coding for fun» организация по продвижению Open знают, кто мы такие, и по собственной
удается проводить каждую неделю, Source, так и Linux Foundation. Все про- инициативе предлагают нам «попробо-
что не может не радовать. Так что каж- исходит в дружественной обстановке вать» те или иные аппаратные продук-
дый может найти занятие себе по вку- сотрудничества, и очень приятно ви- ты. Мы возимся с ними, показываем
су. Понятно, что каждый участник не хо- деть и встречаться с таким количест- всей группе, что это такое и что мож-
дит сразу на все названные меропри- вом мотивированных людей. но на них сделать. И потом организо-
ятия – все-таки кто-то больше кодер, вываем коллективную покупку со скид-
а кто-то интересуется больше техни- Каково, на ваш взгляд, текущее по- кой. Так что я думаю, что это получает-
ческими штучками. А некоторые прихо- ложение дел с развитием Linux в Ки- ся выгодно всем.
дят на все сразу – им больше нравится тае? Можно ли охарактеризовать его
находиться среди единомышленников как взрывной эффект, достаточно Не могли бы вы рассказать, что из се-
и просто общаться на разные темы. плавное развитие или как-то еще? бя представляет Software Freedom
Если кто-либо, прочитав вышена- Взрывной эффект, вне всякого сомне- Day и каково его влияние на сооб-
писанное, решит организовать свою ния! Все основные разработчики Linux- щество?
собственную Linux User Group, то я бы дистрибутивов имеют офисы в Китае, Software Freedom Day – это меропри-
очень рекомендовал к прочтению LUG и эти офисы расширяются. Местные ятие, посвященное пропаганде сво-
Howto – и начинать с ежемесячного разработчики дистрибутивов также бодного и Open Source программного
сбора. В один и тот же день, в одно развиваются отлично. Я являюсь сви- обеспечения. Наша цель в нем – на-
и то же время. Секрет успеха здесь – детелем того, как заключаются сделки учить и рассказать людям по всему
регулярность. Тогда люди будут прихо- по предустановке Linux на оборудова- миру о преимуществах высококачест-
дить и обмениваться мнениями и в кон- ние. Все больше студентов интересу- венного FOSS-обеспечения в образо-
це концов решатся на что-то большее. ются Linux и Open Source. Очень мно- вании, для использования в государс-
Первоначально у нас были грандиоз- го embedded-устройств разрабатыва- твенных структурах, дома, в бизнесе –
ные планы, даже хотели иметь группы ются и производятся в Китае – и они везде. Мы видели, как создавались те
поддержки и распределять для каждо- работают под Linux. Так что это имен- или иные команды в структуре этого
го его роль. Но это не сработало. LUG но то место, где вы должны быть, ес- движения, которые росли на 50% каж-
очень напоминает любой Open Source- ли вы Linux-разработчик. дый год. Я не уверен, что в этом году
проект, в том плане, что нужны пользо- будут схожие показатели, но тенденция,
ватели и некоторое количество разра- Некоторые компании подарили свои конечно же, сохранится. На местном
ботчиков, которое периодически уве- продукты BLUG-сообществу, напри- уровне приходится общаться с людь-
личивается. Но пользователи – члены мер, Nokia с своим N810. Были также ми, которые вообще могли не слышать
проекта не обязательно должны быть разговоры об аппаратуре от Lemote об FOSS либо же имеют о нем лишь от-
разработчиками – так что не предъяв- и т. д. Это что, какая-то личная ини- даленное представление – так что до-
ляйте заранее завышенные требова- циатива этих компаний или же что- вольно интересно видеть, как люди
ния (как мы первоначально имели не- то притягательное есть в BLUG? воспринимают идеи свободного обес-
осторожность). Такая тенденция наметилась, когда печения и его цели. Также это очеред-

№5, май 2009 67


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
ная возможность встретиться с други- торые так полюбились нашей коман- мике повлияла бы на нас. Если смот-
ми участниками Open Source-движе- де. Также мы пишем код, который под- реть на другие секторы экономики Ки-
ния да и тонус своей собственной груп-падает под определение Open Source. тая, то да, не все так замечательно.
пы поднимается. Здесь, в Пекине, нам Помимо этого мы также исправляем
удалось привлечь большое внимание ошибки в ПО, поддерживаем компа- И в завершение – изменились ли
публики новыми докладчиками, новы- нии, которые помогают нам. То есть те фундаментальные основы, кото-
ми идеями и новыми членами нашей если говорить глобально, то мы раз- рые были заложены при организа-
группы. Так что со своей стороны я бы виваем экосистему, которая называ- ции группы?
рекомендовал любой LUG-группе про- ется Open Source. Группа играет свою Вы знаете, организационные решения,
водить Software Freedom Day. роль, хотя бы тем, что мы можем вли- которые приходилось принимать тогда
ять на изменения спецификаций того и сейчас, в целом не изменились. Ко-
Сколько проектов ведется членами или иного продукта. Не правда ли, это нечно, в последнее время приходится
BLUG и какова их практическая цен- очень вдохновляет – знать, что за этим больше ездить и находиться за пре-
ность, на ваш взгляд? стоит какая-то команда, которая толь- делами Пекина – это и организация
Как правило, проекты начинаются с ка- ко тем и занимается, что лопает шаш- встреч, анализ, нужны ли спонсоры
кой-либо идеи, которую высказывают лыки с пивом? для какой-либо встречи или нет, попу-
сами участники группы, либо с какой- ляризация FOSS-движения и т. п. Дол-
либо технической новинки. В случае Сейчас глобальная экономика нахо- жен с гордостью отметить, что группа
если нам нужна помощь инжиниринго- дится в интересном состоянии. От- функционирует на добровольных на-
вой компании, мы им звоним и просим разилось ли это на Китае, особенно чалах и тот свод правил, о которых мы
оказать нам помощь. Так как за нами в сфере Linux-разработки? уже ранее говорили, остался неизмен-
уже сложилась хорошая слава и люди Возможно. Пекин – это особое место, ным – это ориентация на сообщество
понимают, что в Open Source не сле- так как Open Source-компании все еще и группу в целом, на здоровый образ
дует ждать немедленной отдачи, мы проводят набор, причем очень и очень жизни и на то, чтобы все это вместе
получаем обещанную помощь – люди много. Я полагаю, что большая часть взятое приносило удовольствие.
приходят, показывают и рассказыва- позиций попадает в Пекин по outsource-
ют, и это здорово. Практический ре- схеме, из-за желания сократить издер- Текст: Антон Борисов,
зультат – мы вовлекаем сообщество жки Но если судить по нашей группе, фотографии предоставлены
Линусом Вангом
в организацию событий и встреч, ко- то я не вижу, чтобы ситуация в эконо-

Фредерик Мюллер (руководитель подразделения Dexxon в КНР) и Линус Ванг (репортер из издания Full Circle Magazine)

68
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Работаем с FTP-сервером
из «1С»

Андрей Луконькин
Столкнувшись с острой необходимостью получить довольно большой файл из удаленного
офиса, я начал поиск программы для комфортной работы с FTP. Интерфейс FAR напомнил
мне полузабытый DOS, Google предлагает в основном платные клиенты, из командной строки
работать тоже не совсем удобно. Поэтому я задумался о создании собственного инструмента
в той среде, в которой я работаю каждый день, т.е. в «1С».

Ч
то нам нужно от обработки? Чтобы была возможность n на форме разместим «ПолеСписка» с признаком «Отоб-
по указанному адресу, с заданным логином и паролем ражатьпометку»;
подключаться к FTP-серверу, смотреть список находя- n кнопки «Прочитать», «ЗагрузитьОтмеченные», «Обно-
щихся там файлов, получать необходимые файлы с серве- витьСписок» и «ВыложитьФайл».
ра, и наоборот, закачивать туда что-то.
Создадим внешнюю обработку, а в ней реквизиты: Теперь перейдем непосредственно к программному коду.
n «АдресFTP», «Логин», «Пароль», «КаталогДляПолуче- Определим переменную «НашеСоединение», которая
нияФайлов», «ВыгружаемыйФайл» – тип «Строка» не- будет использоваться в нескольких процедурах.
ограниченной длины;
Перем НашеСоединение;

При открытии формы убираем доступность всех кнопок


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

Процедура ПриОткрытии()
ЭлементыФормы.ЗагрузитьОтмеченные.Доступность = Ложь;
ЭлементыФормы.ВыложитьФайл.Доступность = Ложь;
ЭлементыФормы.ОбновитьСписок.Доступность = Ложь;
КаталогДляПолученияФайлов = "C:\";
КонецПроцедуры

После указания адреса, логина и пароля нужно на-


жать кнопку «Прочитать» для установки соединения. Спи-
сок файлов заполнится при обращении к процедуре «Об-
новитьСписок()».

Процедура ПрочитатьНажатие(Элемент)
ПроксиСервер = Новый ИнтернетПрокси(Истина);
Попытка
НашеСоединение = Новый FTPСоединение(АдресFTP, 21, ↵
Логин, Пароль , , );
После подключения видим файлы на сервере Исключение

70
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Сообщить("Ошибка создания соединения: " ↵
+ОписаниеОшибки());
Возврат;
КонецПопытки;
ЭлементыФормы.ЗагрузитьОтмеченные.Доступность = Истина;
ЭлементыФормы.ВыложитьФайл.Доступность = Истина;
ЭлементыФормы.ОбновитьСписок.Доступность = Истина;
ОбновитьСписок();
КонецПроцедуры

Процедура ОбновитьСписок()
ПолеСписка.Очистить();
СписокФайлов = НашеСоединение.НайтиФайлы("/","*.*");
Для Каждого Файл Из СписокФайлов Цикл
Если Файл.ЭтоФайл() Тогда
ПолеСписка.Добавить(Файл, Файл.Имя);
КонецЕсли;
КонецЦикла;
КонецПроцедуры

Отметив галочками нужные файлы, их можно сохранить


локально в предварительно выбранный каталог.

Процедура КаталогДляПолученияФайловНачалоВыбора( ↵
Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; Перед отправкой файла на сервер запросим подтверждение
РежимДиалога = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогВыбораКаталога = Новый ДиалогВыбораФайла( ↵
РежимДиалога); для загрузки";
ДиалогВыбораКаталога.МножественныйВыбор = Ложь; ДиалогВыбораФайла.ПолноеИмяФайла = ВыгружаемыйФайл;
ДиалогВыбораКаталога.Заголовок = "Выберите путь ↵ Если ДиалогВыбораФайла.Выбрать() Тогда
для сохранения файлов"; ВыгружаемыйФайл = ДиалогВыбораФайла.ПолноеИмяФайла;
Если ДиалогВыбораКаталога.Выбрать() Тогда ВыгружаемыйФайлОбъект = Прав(ВыгружаемыйФайл, ↵
КаталогДляПолученияФайлов = ↵ СтрДлина(ВыгружаемыйФайл)-СтрДлина(↵
ДиалогВыбораКаталога.Каталог; ДиалогВыбораФайла.Каталог));
КонецЕсли; Ответ = Вопрос("Выложить файл на FTP?", ↵
КонецПроцедуры РежимДиалогаВопрос.ДаНет);
Если Ответ = КодВозвратаДиалога.Да Тогда
Процедура ЗагрузитьОтмеченныеНажатие(Элемент) НашеСоединение.Записать(ВыгружаемыйФайл, ↵
Для каждого Файл из ПолеСписка Цикл ВыгружаемыйФайлОбъект);
Если Файл.Пометка Тогда ОбновитьСписок();
НашеСоединение.Получить(Файл.Значение.ПолноеИмя, ↵ КонецЕсли;
КаталогДляПолученияФайлов+Файл.Значение.ПолноеИмя); ВыгружаемыйФайл="";
КонецЕсли; Иначе
КонецЦикла; ВыгружаемыйФайл="";
КонецПроцедуры КонецЕсли;
КонецПроцедуры
Для размещения файла на сервере нужно нажать кноп- Процедура ОбновитьСписокНажатие(Элемент)
ку «Выложить файл на FTP» и выбрать необходимый файл. ОбновитьСписок();
КонецПроцедуры
Ответив «Да» в дополнительном подтверждении о разме-
щении, мы инициализируем запуск процедуры «Выложить-
ФайлНажатие()». Что мы имеем? Нехитрая, в несколько десятков стро-
чек, обработка позволяет принимать файлы и отправлять
Процедура ВыложитьФайлНажатие(Элемент) их на FTP-сервер.
РежимДиалога = РежимДиалогаВыбораФайла.Открытие;
ДиалогВыбораФайла = Новый ДиалогВыбораФайла( ↵ Цель нами достигнута, остается только совершенство-
РежимДиалога); вать программу, наращивая её дополнительным функци-
ДиалогВыбораФайла.МножественныйВыбор = Ложь;
ДиалогВыбораФайла.Заголовок = "Выберите файл ↵ оналом.

Наше «1С». Собрание авторских об уровне и масштабе мероприятия. Во- может найти что-то полезное из следую-
материалов вторых, работы оценивают не только поль- щих рубрик:
В апреле 2009 года открылся новый проект зователи, но и представители фирмы «1С»  «Работа с программами»;
«Наше 1С» по адресу http://www.nashe1c.ru. оставляют оценки и комментарии. В-треть-  «Установка, администрирование»;
Здесь собираются авторские материалы, их, материалы предварительно отбирают-  «Разработка и программирование»;
относящиеся к программному продукту ся и фильтруются таким образом, что по-  «Внедрение»;
«1С». Каждый желающий может опублико- сетители избавляются от некачественных  «Библиотека дипломных проектов»;
вать свою разработку, поделиться с колле- «изобретений».  «Программы «1С:Предприятие 7.7».
гами методиками, получив при этом оценку Ресурс полезен как разработчикам,
своего творчества или «know how». так и администраторам. Желающие опуб- Сейчас на сайте уже десятки опублико-
Чем примечателен этот портал и в чем ликовать свои материалы получают офи- ванных работ, с каждым днем их количест-
его принципиальное отличие от множест- циальные оценки, а также возможность во увеличивается, а это значит, что уни-
ва существующих сайтов на данный мо- использовать прямую ссылку на свой про- кальная коллекция высококачественного
мент? Во-первых, этот проект создан и ку- филь в резюме. материала собирается в одном месте и бу-
рируется самой фирмой «1С», что говорит В открытом доступе любой посетитель дет доступна любому желающему.

№5, май 2009 71


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Управление базами данных «1С» 7.7
при помощи групповых политик
Владимир Борисов
«1С: Бухгалтерия» предыдущаей версии 7.7 не имеет механизмов управления подключенными
базами данных. Если баз одна-две и пользователей немного, то настроить руками
не составляет проблем. Но бывают ситуации посложнее.

Ситуация ки для управления этой веткой реестра. Воспользовавшись


Существует локальная сеть организации, очень многие статьей Ивана Коробко «Автоматизация процессов в сети»
пользователи работают с «1С» 7.7, количество баз «1С» из журнала «Системный администратор» №8 за 2004 год,
переваливает за полсотни, многие пользователи работа- был написан следующий шаблон групповой политики:
ют с несколькими базами одновременно, часто происхо-
дят «переходы» (т.е. пользователю необходимо, например, Листинг 1. Шаблон групповой политики для управления
базами данных «1С» 7.7
всю следующую неделю работать с определенным набо-
ром баз, или пользователя переводят в другой отдел, или CLASS USER
CATEGORY !!cat_name
пересаживают на другое рабочее место). Заявки на дос- KEYNAME "Software\1C\1Cv7\7.7\Titles"
туп к той или иной базе данных составляют значимую до- POLICY !!pol_name
PART !!part_name LISTBOX EXPLICITVALUE ↵
лю в общем потоке заявок. ADDITIVE
END PART
END POLICY
Исходные данные END CATEGORY
Локальная сеть централизованно управляется Active
[strings]
Directory, дисковая система существующего сервера ста- cat_name="Управление 1С"
ла сбоить, приобретен сервер с более быстрой и надежной pol_name="Подключенные базы данных"
part_name="Список подключенных баз данных"
дисковой системой под эту задачу. На существующем сер-
вере папки с базами «1С» не имели единообразного назва- На новом сервере создается папка общего доступа,
ния, были раскиданы по иерархии папок бессистемно. в ней создаются папки для баз данных «1С» со следую-
щим шаблоном имени «название_тип_версия», например,
Задача dormash_buh_7, из названия понятно, что это база органи-
Требуется перенести все базы на новый сервер, единооб- зации «ДорМаш», тип базы – «1С: Бухгалтерия», версия 7.
разно назвать папки с базами данных, всем пользователям В Active Directory создаются группы доступа с названием,
обновить список баз данных, ввести централизованное уп- точно соответствующим имени папки с базой, в коммента-
равление списком доступных пользователю баз данных. рии группы более развернуто описываем, что это за группа
(например, «Группа доступа к базе «1С ДорМаш: Бухгалте-
Решение рия»). У руководства соответствующих подразделений вы-
«1С» 7.7 считывает список доступных баз данных из ветки ясняем, кто в какой базе работает, распределяем пользо-
реестра HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles, вателей по соответствующим группам. Включаем в спис-
а раз так, то этим списком возможно различными путями уп- ки доступа соответствующих папок с базами соответству-
равлять. Было решено написать шаблон групповой полити- ющие им группы доступа.
Подключаем папку с базами к су-
ществующему доменному корню DFS
(распределенная файловая систе-
ма в нашем случае применяется для
консолидации папок общего доступа
в единый корень). Заготовка для пе-
реноса баз сделана.
Создаем в дереве Active Directory
подразделение с названием наподо-
бие 1С_group_policy_templates и объект
групповой политики с именем, точно
Рисунок 1. Управление базами данных 1С в редакторе групповой политики соответствующим имени папки с базой

72
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Рисунок 2. Добавление БД в список доступных баз

и соответствующей группы доступа. щими и уже заполненными группами n управлять доступом к БД можно пу-
Открываем объект групповой полити- доступа. В свойствах объекта груп- тем изменения членства в группах
ки в редакторе и подключаем создан- повой политики в закладке «Безопас- доступа;
ный ранее административный шаблон. ность» надо удалить группу «Прошед- n добавление в список доступных
У нас в списке административных шаб- шие проверку», добавить группу, соот- БД «1С» происходит автоматичес-
лонов появляется ветка «Управление ветствующую названию базы, и дать ки, если у пользователя есть дос-
1С». Но ветка пустая, для того чтобы права на применение групповой поли- туп к соответствующей папке;
нужная нам настройка отображалась, тики (см. рис. 3). n при переносе папки с БД в другое
необходимо открыть контекстное меню Далее остаётся только связать соз- место достаточно изменить запись
ветки, выбрать «Вид → Фильтрация», данные объекты ГП с подразделением, в ГП, и у пользователя в списке по-
снять галочку с пункта «Показывать в котором находятся пользователи. меняется соответствующий путь.
только управляемые политики». После
этих действий в ветке «Управление 1С» Итог Единственный минус – запись
появляется параметр «Подключенные n все БД «1С» имеют единообразное из списка доступных БД не убирает-
базы данных» (см. рис. 1). название; ся вместе с исключением пользовате-
Теперь мы можем отредактировать n все БД «1С» находятся в одном ля из соответствующей группы досту-
список баз, в моем случае ситуация месте; па, но это терпимо.
такова, что на каждую БД пришлось
создавать отдельный объект группо-
вой политики. Добавление базы про-
исходит следующим образом: в поле
«Введите имя добавляемого элемента»
вводится путь к папке с базой данных,
а в поле «Введите значение добав-
ляемого элемента» вводится назва-
ние базы, которое будет отображать-
ся у пользователя (см. рис. 2). Прово-
дим аналогичные пассы для каждой
базы данных.
Теперь необходимо сделать так,
чтобы данная политика распростра-
нялась только на тех пользователей,
которым необходим доступ к этой БД.
Для этого воспользуемся существую- Рисунок 3. Права на применение групповой политики

№5, май 2009 73


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Приключения
продолжаются...

Для Алексея Гончарова жизнь –


веселое путешествие с приключениями и чудесами.

Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Е
сли вы думаете, что все люби- все другое. Но Алексей об этом тог- НАИВ, рифма, портрет
тели приключений – хулиганы, да не думал. Он был пионером, комсо- Когда Алексей уезжал в страну своей
бандиты, авантюристы, джеки мольцем, даже комиссаром районного мечты, у него родились такие строки:
воробьи, то вы ошибаетесь… Можно комсомольского штаба – водил школь-
быть вполне респектабельным бизнес- ников на овощную базу отрабатывать Нам сложный Быт мешает «стать собою»,
меном, мирным семьянином и вместе трудовую вахту. Верил во всю идеоло- А им Уют мешает «стать собой».
с тем горячим поклонником неожидан- гическую составляющую, естественно, По сути Быт мы сделали виною
ных событий, который не боится жить как почти все тогда верили. Разруше- Тому, что жизнь нам кажется чужой.
в эпоху перемен. Наоборот, по-друго- ние идеалов произошло так же естес- Вся наша жизнь, как Подпрограмма
му себе не представляет. Ведь если бы твенно с падением советского строя… В большой Программе Суеты
не смена эпох в нашем славном госу- И в один прекрасный (потому что сол- Зациклена вокруг дивана –
дарстве, многие детские мечты Алек- нечный) день жители «другой планеты» Там, где мы «спим и видим сны»...
сея Гончарова, директора компании сказали «Добро пожаловать» молодому Сменить наш Быт не так уж «невозможно»,
«Русоникс», никогда бы не сбылись… Алексею Гончарову и его семье – жене Сменить страну, друзей, подруг,
и двухлетнему сынишке. Друзья пред- Отдать диван соседу тоже можно,
Здравствуй, НЛО! ложили работу в Сингапуре. На 13 лет Сменить бардак на «их» уют.
Hello, Сингапур! Гончаровы попали в рай земной, где Уехать далеко, укрыться...
Жил-был мальчик, который любил эк- Алексей постоянно чувствовал себя Забыть о страхе в тишине
спериментировать с техникой. Причем счастливым ребенком, у которого каж- И посвятить остаток жизни
самостоятельно, без помощи взрослых дый день – именины. Несмотря на все Своим детишкам и жене.
и всяких там кружков для юных талан- сложности и трудности, с которыми
тов. Было ему года четыре, когда тай- сталкивается человек, приехавший Творчество всегда было составной
ком от родителей Алеша провел в свою без средств и знакомств, без знания частью жизни Алексея, так же, как чу-
комнату провод от телевизора, присо- языка в чужую страну. Помогли, счита- деса, как исследование техники и соз-
единил к нему наушники и по вечерам, ет мой герой, «вечно хорошая погода, дание своих собственных техничес-
когда мама с папой смотрели взрос- любовь к бурно развивающейся ком- ких новшеств. Вы только представьте,
лые фильмы, их сынок эти фильмы пьютерной индустрии Сингапура и кур- Алексей Гончаров окончил сначала му-
слушал… Техническое открытие, ко- сы английского языка в British Council». зыкальную школу по классу фортепи-
нечно, осталось тайной, вряд ли па- Если бы не семейные обстоятельства, ано, а три года спустя – физико-мате-
па – врач по профессии – одобрил бы Алексей и сегодня жил бы там. Несмот- матическую, поступил в МВТУ им. Ба-
такое нарушение режима… В первом ря на то что вернулся два года назад, умана, сдав экзамены на «отлично».
классе Алексей решился на более сме- воспоминания ярки и свежи: «Там все Просто-таки гармоничный человек
лый эксперимент – разобрал и сно- не так, как везде. Люди ходят, улыбают- Леонардо да Винчи. Музыку и сти-
ва собрал телевизор. Уверяет, что это ся. Сингапур – небольшое государство, хи пишет до сих пор. Но настоящий
было совсем несложно. Думается, од- всего 4,5 миллиона человек живут. На- всплеск вдохновения случился, как
нако, что сердечко ёкало – а будет ли верное, из-за того, что страна неболь- это ни странно, в армии. Друзья – Са-
работать? Такой адреналин – чем вам шая, ее сумели превратить в рай зем- ша Иванов и Макс Кочетков – органи-
не приключение? Впрочем, всякую ной. Сингапур весь цветущий, зеле- зовали группу «НАИВ» («Новые Арле-
электронику Алеша разбирал в де- ный, красивый. Там государство дума- кины и Волтижеры») и взяли солдати-
тстве часто – интересно было, как что ет о людях постоянно, это чувствует- ка призыва 1987 года играть на кла-
устроено. Более значимым событием ся во всем. Если власти что-то дела- вишных. «Я бы сравнил это с глотком
стала встреча с неопознанным летаю- ют, они всегда объясняют, для чего это безудержной радости и свободы», –
щим объектом. сделано… У людей хорошие пенсион- говорит Алексей. Да и для многих
– Просто увидел летающую тарел- ные накопления. Там заботятся о детях. в начале перестройки эти песни ста-
ку за окном. Очень много делают для безработных, ли откровением, меняя, уверен Гон-
– В Москве? активно занимаются переподготовкой чаров, «не только нас, но и весь мир
– В Москве. Пролетела мимо. По- кадров. Любопытно – вот ты приходишь вокруг нас».
нял – «они» есть. в какую-нибудь государственную орга- Творчеству сегодня ничуть не ме-
Кто «они», не очень осознал, фан- низацию, и сразу видно, как государс- шает занятость, строгий распорядок
тастику Алексей Гончаров начал читать тво к тебе относится. Они стараются рабочего дня, наличие семьи – меж-
позже. Но главное – появилась мечта обслужить тебя поскорее, а если при- ду прочим, у Гончаровых трое детей!
попасть на другую планету. Не «пра- ходится ждать – то в комфортных усло- Наоборот, какая-нибудь детская фра-
вильное» желание стать космонав- виях: удобно сидеть, можно попить во- за порой становится импульсом, из ко-
том, как у многих детей, но стремление ды, почитать журналы, посмотреть те- торого рождается строка, рифма, куп-
очутиться в другом мире, где не курят, левизор, воздух чистый… Они обо всем лет… Или мелодия для души, для себя,
не пьют, где все счастливы. этом думают!» для близких. Дети вдохновляют Алек-
Для советского мальчика другой Итак, приключение – это когда по- сея и как фотохудожника. Из всех жан-
планетой было зарубежье, где не толь- падаешь на другую планету и счастли- ров фотографии ему ближе всего порт-
ко язык, но и культура, быт, привычки – во там живешь. рет, и лучше всего получаются портре-

№5, май 2009 75


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
лены «базы» для отступления. Дом –
их крепость, а работа – святое мес-
то, где они счастливы. Безмятежный
образ созерцателя теряет плавность
черт, когда Алексей говорит о своем
Деле. Вот так, с большой буквы. Да и
как не любить профессию, в которой
выстроил все своими руками, кирпи-
чик за кирпичиком. Сначала, в конце
80-х, программист в Космоаэрогеоло-
гической экспедиции №1 писал про-
граммы обработки космических фо-
тографий. Потом пошел программис-
том в кооператив – занимался установ-
кой сетей на базе ПО Novell и внедре-
нием CAD-систем компьютерного ди-
зайна. О, девственные времена, ког-
да компьютеры и плоттеры возили
просто в купейных вагонах… И ког-
да для легализации деятельности по-
купали юр. лицо – кооператив по вяз-
ке варежек – и продолжали собирать
компьютеры… Насмешливо-востор-
женное воспоминание: «Наняли одно-
классницу бухгалтером. Хотя денег бы-
ло мало, мысль о том, что у тебя есть
сотрудник, который эти деньги счита-
ет, да еще на компьютере… ну просто
окрыляла». Для полноты картины ос-
тается добавить, что на первый тогда
суперсовременный 386-й Алексей за-
ты сына и двух дочек. А еще пейзажи ревода. Продолжат ли дети отцовскую работал вместе с другом, разгружая
с цветами. А еще лучше, когда на фо- «техническую» линию (и материнскую – вагоны с картошкой, свеклой, луком,
то они вместе – цветы и радостные ре- супруга Алексея тоже окончила МВТУ арбузами, помидорами…
бятишки. Получается очень естествен- им. Баумана), пока непонятно. Стар- Потом была защита диплома – уже
но и искренне. шая дочь хочет быть врачом… в МЭИ, куда Алексей перешел, когда
Старший ребенок, впрочем, вы- Вот вам еще одна разновидность пришлось задуматься о хлебе насущ-
ходит из благодатного возраста де- приключения – когда «строку дикту- ном. Компьютерный магазин в сол-
тства – ему уже 16 лет. Ему скоро пред- ет чувство – оно на сцену шлет раба» нечном Сим Лиме – в Сингапуре тоже
стоит задуматься о будущей профес- (Пастернак). нужна была новейшая техника. А по-
сии, а это всегда нелегко. Тем более том рынок «железа» потерпел крах.
в наши непростые времена. Тем бо- Обиженный клиент – И опять невозмутимый Рак не расте-
лее, когда большую часть жизни про- двигатель прогресса рялся. «Зато бизнес в области разра-
вел за рубежом, и, значит, выбор жиз- Он может часами наблюдать за цвет- ботки ПО пошел в гору! Пришлось пе-
ненных путей-дорог больше, и голову ком, чтобы сфотографировать его реучиваться. Закончил курсы по ба-
поломать есть над чем. Кстати, доче- в нужном ракурсе, при нужном ос- зам данных BTrieve, Pervasive.SQL,
ри Алексея Гончарова там, в Сингапу- вещении и с нужной капелькой ро- Microsoft SQL. Прошел стажировку
ре, родились и пока еще здесь, на Ро- сы на лепесточке. Молча и терпеливо. в Техасе».
дине, говорят по-русски несколько ху- В критическую минуту, когда жизнь Найти место под солнцем всегда
же, чем их ровесники. Но Алексея вол- разрушит планы, отберет надежды, легче, когда обладаешь недюжинны-
нует как раз не это (психологи считают, оставит без гроша в кармане, он бу- ми организаторскими способностями.
что в этом возрасте и язык быстро «на- дет радоваться… что хуже не вышло, Еще в армии, где Алексей служил опе-
рабатывается», и вообще ребенок шус- руки есть, голова на месте – прожи- ратором ЭВМ, он не только наловчил-
трее взрослого адаптируется к новой вем! Не нужно ничему удивляться… ся оперативно снимать клавиши с тер-
обстановке), а как бы девочки англий- «Я Рак, я гибкий», – улыбается Алек- минала ЕС 1065, мыть их с мылом в го-
ский не потеряли. Ходят «сингапурс- сей. Представители этого знака Зо- рячей воде, сушить в портянке и на па-
кие москвички» в школу с углубленным диака редко теряют голову, ведь у них мять вставлять ка ж дую к лавишу
изучением языка, и с удовольствием даже в случае краха обязательно есть на место, но и еще кое-что придумал.
смотрят диснеевские мультики без пе- пара-тройка планов отхода, подготов- «Используя спутниковую связь и ком-

76
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
пьютерную сеть, я предложил разным получил термин VPS-сервер. А Алек- А главное – на самом деле это са-
операторам сверять данные для улуч- сей Гончаров – Дело и страсть на мно- мая главная точка интереса – тут опять
шения достоверности и, используя гие годы. Называется эта «любовь» – пахнет приключением!.. «Фантастика –
эти общие данные, спать по очереди». виртуализация вычислительных ре- серверы, к которым мы привыкли, эти
Нечто подобное повторилось, когда сурсов. Вот как образно рассказыва- металлические ящики, становятся вир-
нужно было организовать по разум- ет о VPS-сервере герой этого очерка: туальными!»
ной цене круглосуточную поддержку «Это как отдельный офис в небольшом – Есть чувство, что вы занимаетесь
ПО (она только входила «в моду»). «Я особняке. Хотя в «доме» находится не- полезным делом?
предложил руководству Pervasive пе- сколько «офисов» – от 5 до 50, но каж- – Безусловно. Удовлетворение есть.
ренести американские ночные смены дый очень хорошо изолирован от ос- Мне хочется, чтобы клиенты были до-
в Сингапур. За счет разницы во вре- тальных и по шуму, и по безопаснос- вольны.
мени дневная смена в Сингапуре об- ти. Каждый «офис» имеет отдельный – Но наверное, всегда найдутся не-
служивала ночное время суток в США. вход, свои «удобства» и средства ком- довольные?..
Это стоило в несколько раз дешевле, муникации. Естественно, такой «офис» – Это же хорошо. У всех людей
чем организация ночных смен в Теха- стоит своих денег (от 999 руб. в ме- разные точки зрения. Ожидания раз-
се. Да и вменяемость людей в днев- сяц) и рассчитан на бизнесы, которым ные. Надо просто выслушать челове-
ное время существенно лучше! Сам на имидже экономить нельзя. Как по- ка и сделать какие-то выводы. Если
подготовил и провел тренинги. Орга- том туда приглашать солидных кли- он прав, надо что-то изменить в ор-
низовал работу службы технической ентов?» А еще есть виртуальный хос- ганизации работы или в услугах. Та-
поддержки». тинг – это те же «офисы», но располо- кие обиженные клиенты – двигатель
А потом наступил XXI век. И компа- женные в общежитии, где те же услу- прогресса.
ния SWsoft, где Алексей Гончаров слу- ги, однако много общих «удобств», по- То есть выходит, недовольный кли-
жил на тот момент заместителем ди- этому сервис дешевле. ент – не повод для того, чтобы рвать
ректора по развитию бизнеса, пред- Д ир е к тор «Р ус о никс а» (w w w. на себе волосы и менять профессию,
ложила Intel систему виртуализации rusonyx.ru) очень гордится, что его а очередная причина для оптимизма...
Virtuozzo, которая позволила разде- компания – лидер в области предо- Шанс для очередного приключения
лить «монстр» – восьмипроцессорный ставления VPS-серверов на россий- и чудесного спасения из пут обыден-
сервер Dell 8450 на большое количест- ском рынке. «Мы в прошлом году за- ности и серых будней!
во виртуальных выделенных серве- работали первый миллион долларов
ров. SWsoft получила сервер и день- по обороту. Сейчас у нас свыше 20 ты- Текст: Оксана Родионова,
ги на телевизионную рекламу. Мир ИТ сяч доменов». фото: Евгения Тарабрина

№5, май 2009 77


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Портал в стиле Web 2.0

Александр Башкиров
78
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
История возникновения
Исторически порталы начинали свое
развитие от «корпоративных сай-
тов», представляющих собой ново-
сти компании и список сотрудников.
При этом основное наполнение такого
сайта лежало на плечах специального
сотрудника, который периодически об-
новлял сайт, актуализируя размещен-
ɉɨɪɬɚɥ
ную на нем информацию.
Следующим шагом в развитии ɂɧɬɟɪɮɟɣɫɩɨɥɶɡɨɜɚɬɟɥɹ
порталов стала интерактивность –
то есть пользователи получили пер- Ʌɨɝɢɤɚ
сонализированный доступ к порталу,
появилась возможность комментиро- ɂɧɬɟɝɪɚɰɢɨɧɧɚɹɱɚɫɬɶ
вать избранные материалы и получать
обновления информации по электрон-
ной почте.
Следующий виток в развитии за-
ключался в качественном пересмот-
ре идеологии места портала в органи-
зации и его функций: в эпоху Web 2.0 Ɉɮɢɫɧɚɹ ɋɢɫɬɟɦɚ ɋɢɫɬɟɦɚ ɋɢɫɬɟɦɚ ɋɢɫɬɟɦɚ
в понятие «портал» стали вкладывать ɬɟɥɟɮɨɧɢɹ ɭɩɪɚɜɥɟɧɢɹ ɞɨɤɭɦɟɧɬɨɨɛɨɪɨɬɚ ɛɟɡɨɩɚɫɧɨɫɬɢ ɮɢɧɚɧɫɨɜɨɝɨ
несколько иной смыл, чем раньше: на- ɩɨɪɭɱɟɧɢɹɦɢ ɭɱɟɬɚ
полнение содержимым такого ресур- Схема архитектуры решения
са частично происходит силами его
пользователей – в рамках выделен- ной плате и бонусам, по телефонным Плюсы и минусы
ных прав (это вообще один из осно- переговорам, по трафику Интернета Таким образом, корпоративный портал
вополагающих признаков, указыва- и т.д.), список назначенных на него за- может стать единым центром, «входом»
ющих на «вебдванольность»), широ- даний и перечень различных докумен- во все приложения, которые доступ-
кое использование JavaScript и AJAX тов, сгруппированных по различным ны пользователю в соответствии с его
в пользовательском интерфейсе, и ин- признакам, с возможностью их редак- уровнем доступа. Преимуществом та-
теграцию приложений – на уровне его тирования непосредственно в браузе- кого рода решений будут являться:
архитектуры. ре в зависимости от прав пользовате- n Простота развертывания новых
Рассмотрим небольшой пример. ля и занимаемой им должности. рабочих мест – для развертыва-
Внутренний портал (корпоративный В приведенном примере имеется ния нового рабочего места доста-
сайт, размещенный в интрасети) со- контейнер, построенный на базе веб- точно занести пользователя в кор-
держит блок новостей с разделением технологий, реализующий функции поративный каталог пользовате-
по «каналам» («новости компании», базового интерфейса, а также части лей и назначить ему права на при-
«новости отделов», «новости пользо- функций и набор приложений, интег- ложения, после чего выдать ссыл-
вателей»), с возможностью комменти- рированных с ним, в частности: ку на вход в портал.
ровать любую новость каждым заре- n систему офисной телефонии; n Низкие требования к аппарат-
гистрированным пользователем (со- n систему управления поручениями; ной части – для работы порта-
трудником организации), размеще- n систему документооборота; ла на клиентском рабочем мес-
ние сотрудниками новостей в опреде- n систему финансового учета; те достаточно браузера: почти все
ленном канале («новости пользовате- n систему безопасности (система действия выполняются на сторо-
лей»), справочник сотрудников, содер- контроля интернет-трафика). не сервера, исключение составля-
жащий как информацию, которую вно- ет лишь JavaScript, flash и Java-ап-
сит отдел кадров, так и информацию, При этом сам портал (движок) реа- плеты, выполнение которых проис-
которую дополнительно может вне- лизует функции размещения новостей ходит на стороне пользователя.
сти сам сотрудник – например, ссыл- и справочника сотрудников с редак- n Скорость освоения пользовате-
ку на личный веб-сайт, описание хоб- тированием элементов посредством лем корпоративного рабочего
би и т.д., с возможностью позвонить Windows-подобного веб-интерфейса, места – единый стиль интерфей-
на один из опубликованных для каждо- и для конечного пользователя реше- са для всех приложений портала
го сотрудника телефонов прямо из его ние выглядит монолитным: единый ин- позволяет пользователям сконцен-
карточки, «личный кабинет» сотрудни- терфейс пользователя скрывает под- трироваться на функциональном
ка с возможностью просмотра сотруд- робности архитектуры решения. Схе- наполнении, а не на запоминании
ником своей статистики – естественно, ма архитектуры решения из примера тонкостей работы с тем или иным
без возможности правки (по заработ- приведена на рисунке. приложением.

№5, май 2009 79


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
n Информационная безопасность – боты над документом представляют (и не совсем) офисам: в частности,
большинство действий пользовате- собой функциональную особенность при реализации этой концепции в тра-
ля, все манипуляции с документа- on‑line application, а средства сов- диционном офисе сотрудники могут
ми происходят на стороне сервера, местной работы над файлом – некий работать с ПК с минимальными аппа-
следовательно, снижаются требо- аналог систем, предназначенных для ратными требованиями или с терми-
вания к обеспечению информаци- работы с репозиториями кода (CVS, нальными станциями.
онной безопасности рабочего мес- SVN и т.д.). В «не совсем традиционных» офи-
та сотрудника, то есть акценты бе- В том же Google Docs такая возмож- сах концепция «онлайн-офиса» успеш-
зопасности смещаются в сторону ность присутствует: достаточно «рас- но применятся при организации офи-
сетей – то есть того сегмента, кото- шарить» созданный документ с воз- са по принципу Open Space (открыто-
рый традиционно является наибо- можностью редактирования на еще го пространства) – то есть ситуации,
лее хорошо защищенным. одного пользователя («ключиком» при которой у сотрудника нет явно вы-
к бесплатной, некоммерческой версии деленного рабочего места, а при при-
Минусами такого решения будут Google Docs является аккаунт Google), ходе на работу он занимает любое сво-
являться: и одновременно приступить к его ре- бодное рабочее место.
n Необходимость построения уни- дактированию, чтобы увидеть в он- Вариантом «не совсем традицион-
кального интегрированного реше- лайн-режиме изменения, вносимые ного офиса» является концепция «вир-
ния. каждым пользователем, а при необхо- туальной компании», то есть компании,
n Возможные сложности в процессе димости – просмотреть историю изме- в которой собственный офис отсут-
сопровождения такого решения. нений документа. ствует, а все без исключения сотруд-
ники которой работают с офисными
Основные преимущества Средства удаленной работы приложениями через Интернет. При-
Тем не менее, несмотря на минусы, по- Это, с одной стороны, удаленный дос- мером такой компании может служить,
добные внутриофисные портальные туп к порталу извне (через Интернет), например, небольшой интернет-мага-
ресурсы приобретают все большую а с другой стороны – политики и систе- зин, не имеющий собственного офиса
популярность. Этому в немалой сте- ма безопасности, позволяющие обес- и осуществляющий общение сотрудни-
пени способствует то, что посредством печивать удобную работу сотрудни- ков посредством портальной части ре-
Web 2.0 порталов реализуются функ- ков из мест, не находящихся в локаль- шения (веб-сайта компании).
ции, которые сложно реализуемы или ной сети организации, и обеспечива-
нереализуемы при помощи традицион- ющие безопасность этой самой рабо- Средства реализации
ных технологий, в частности: ты. Как правило, в подавляющем боль- Средства реализации такого рода пор-
n On-line office application; шинстве случаев для доступа исполь- талов делятся на два типа: арендуемые
n средства совместной работы; зуют или SSL, или VPN. и платформенные.
n средства удаленной работы; Первые – это готовые веб-прило-
n концепция «Онлайн-офис» и «офис Концепция «Онлайн-офис» жения с готовым набором компонен-
удаленных сотрудников». Это, по сути, особый стиль обеспече- тов приложений и функций, сдаваемые
ния рабочим местом отдельных со- в аренду «как есть», без возможности
Рассмотрим эти функциональные трудников: такие сотрудники в силу «тонкой» (а порой и вообще какой-ли-
аспекты более подробно. характера выполняемой работы (на- бо) настройки. Как правило, эти прило-
пример, работа, связанная с коман- жения не имеют отдельно выделенных
On-line office application дировками, или сотрудники из других блоков новостей, справочников и т.д. –
Под этим понимаются приложения, регионов, либо просто удаленные со- их приходится реализовывать на ка-
предназначенные для выполнения тра- трудники – например, корпирайтеры, кой-либо CMS, обеспечивая прозрач-
диционных «офисных» операций: на- редакторы сайтов и т.д.) могут вооб- ную работу и сквозную авторизацию
бор и редактирование текстов, созда- ще не иметь рабочего места в офисе с компонентами веб-приложений. К та-
ние электронных таблиц и презента- и работать из любого места, где при- кого рода системам относятся продук-
ций. Самый известный пример такого сутствует широкополосный Интер- ты Google Docs (http://docs.google.com)
рода приложений – Google Mail&Docs нет. При этом вся работа с корпора- и, например, Zoho (http://zoho.com).
(Google, кстати, сдает в аренду свои тивной информацией осуществляет- Вторые – «платформенные» пор-
приложения для корпоративного ис- ся в веб-портале: от создания доку- талы – представляют собой инстал-
пользования – с использованием соб- ментов до звонков и внутреннего ча- лируемые решения, открытые (в оп-
ственного домена заказчика). та. Следует отметить, что при подоб- ределенных рамках) для самостоя-
ной постановке вопроса необязатель- тельных доработок. Пожалуй, самы-
Средства совместной работы но даже иметь корпоративный ноут- ми известными примерами таких ре-
Под этим подразумевается в первую бук: в крайнем случае (с небольшими шений является Micosoft Share Point
очередь возможность совместного ограничениями), работать можно хоть Portal (http://www.microsoft.com/rus/
одновременного редактирования од- через интернет-кафе. sharepoint/default.mspx) или (в более
ного и того же документа или фай- Концепция «онлайн-офис» может усеченном варианте) Micosoft Share
ла. По сути, средства совместной ра- быть применима и к традиционным Point Services (http://technet.microsoft.

80
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
com/en-us/windowsserver/sharepoint/ лищем файлов без возможности он- В этом случае для реализации по-
default.aspx) и IBM WebSphere Portal лайн-редактирования и ленты ново- дойдет любая Open Source-платфор-
(http://www-01.ibm.com/software/ru/ стей до вполне «взрослых» решений, ма (например, Wordpress – http://www.
websphere), хотя портал в минималь- которые включают в себя интеграцию wordpress.com) или, если в компании
ной функциональности можно постро- с функциональными приложениями, есть Microsoft Windows 2003 Server,
ить даже на Open Source-движке, пред- IP‑телефонию и прочие атрибуты пре- входящий в его состав Microsoft Share
назначенном для построения обыч- словутой «вебдванольности». Point Services.
ных сайтов (с соответствующими до- В любом случае все сильно зави- Реализация потребует поиска или
работками). сит от тех задач, которые призван ре- создания специализированных компо-
Выбор конкретного решения силь- шать портал. Рассмотрим некоторые нентов (справочник сотрудников в ви-
но зависит от бюджета, который име- примеры. де дерева карточек отсутствует как
ется на внедрение, и задач, которые в Microsoft Share Point Services, так
ставятся перед порталом. Пример 1 и в Open Source-движках – в том же
В случае «виртуальных» компа- Небольшая компания, для которой Wordpress придется писать отдель-
ний или небольших компаний, у кото- портал – это средство оповестить со- ный плагин). В этом случае затраты на
рых большинство сотрудников нахо- трудников об изменениях, новостях создание и внедрение будут сведены
дятся вне офиса, логичнее использо- и предоставить возможность каждо- к минимуму.
вать арендуемые приложения с еди- му из них иметь под рукой корпора- Следует отметить, что в послед-
ной точкой входа на базе Open Source- тивный справочник (внутренний номер нее время в Интернете появилось до-
движка. телефона, сотовый номер, e-mail, лич- вольно много компаний, предлагаю-
В случае больших компаний логи- ная информация) с возможностью ком- щих типовой портал на базе Microsoft
ка несколько иная: лучше использо- ментирования новостей компании (ко- Share Point Services за относительно
вать портальную платформу, обеспе- торые заносятся на портал централи- небольшие деньги. Основная цель та-
чив ее интеграцию с необходимыми зованно, через редактора), отображе- кого портала – создание модного ны-
приложениями. ния статуса пользователя: online/offline не «единого информационного про-
Что же касается средних компа- (то есть находится в данный момент странства» или, говоря проще, макси-
ний, то в жизни встречается множес- сотрудник на портале или нет), возмож- мально оперативно информировать
тво вариаций портальных решений: ностью отправить ему письмо прямо сотрудников обо всем, что может быть
от справочника сотрудников с храни- из справочника и чата с ним. использовано в повседневной работе

Реклама

№5, май 2009 81


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
или повлиять на нее, а также возмож- создания и редактирования докумен- то для достижения результата придет-
ность общения. тов прямо в Интернете, в Windows-по- ся проанализировать большой объ-
добном интерфейсе. ем чужого кода. Если сроки критичны
Пример 2 Второй вариант решения задачи и позволяет выделенный на реализа-
Небольшая виртуальная компания, ко- состоит в аренде готовых веб-прило- цию бюджет, то можно и нужно исполь-
торая занимается разработкой про- жений у провайдеров такого рода услуг зовать коммерческое решение, зафик-
граммного обеспечения. В этом слу- (те же упомянутые выше Google и Zoho) сировав в договоре с поставщиком да-
чае портал также может представ- и интеграции их с Open Source-реше- ту, к которой должна быть выполнена
лять собой доработанную CMS (те же ниями на базе CMS. В частности, связ- реализация, объем, срок и параметры
Wordpress или Joomla, как альтерна- ка доработанной Joomla с GoogleDocs качества технической поддержки внед-
тива – Microsoft Share Point Services), вполне способна обеспечить требуе- ренного портала.
на базе которой выполнена интегра- мые функции.
ция с системами контроля версий (ти- Итого
па CVS, SVN, Microsoft SourceSafe), Пример 4 В настоящее время с появлением
размещен справочник сотрудников, Большая организация, которая кро- все более широких каналов появи-
с возможностью обмена e-mail, ча- ме новостей и справочника сотрудни- лась тенденция выноса «традицион-
та и звонков друг другу с портала по- ков хочет иметь единую точку входа ных» приложений в Web. Это касает-
средством одного из популярных сер- в корпоративные приложения, доку- ся не только многочисленных онлай-
висов звонков через Интернет (Skype, ментооборот на портале, корпоратив- новых клонов Microsoft Word (тако-
Google), или через собственное реше- ную систему Service Desk и т.д., интег- го рода функциональностью уже ма-
ние для IP‑телефонии (например, Open рированную с доменной авторизацией ло кого удивишь) или специализиро-
Source-решение Asterisk). Основная и системой безопасности. Очевидно, ванных систем (например, систем уп-
цель такого портала – возможность что большая часть усилий по внедре- равления предприятием, изначально
работы и общения в рамках выполня- нию такого рода решения будет лежать разрабатываемых с веб-интерфейсом
емой работы. в интеграции приложений в портал. и широкими возможностями интегра-
В этом случае решение будет ле- ции), но и таких совсем «не веб»-ве-
Пример 3 жать, как это ни парадоксально, ли- щей, как, например, редакторы изоб-
Средняя организация, имеющая не- бо в поиске команды независимых ражений (например, http://pixlr.com/app
сколько офисов и сотрудников, кото- разработчиков (внутри компании или или http://www.splashup.com/splashup),
рые должны работать из любого места, по найму на проект), либо в привле- клиентов электронной почты (Outlook
где есть Интернет (например, торговые чении сторонней организации. Дело Web Access, Gmail) и множество дру-
представители). В этом случае портал в том, что бюджет такого рода про- гих полезных утилит (мессенджеры –
будет представлять собой более серь- ектов, как правило, велик, а ключе- www.icq.com; планировщики – http://
езное решение, построение которого вым фактором успеха является ком- organaizer.ru, http://napominatel.ru; ан-
на базе Open Source-продуктов может петенция конкретных исполнителей тивирусы – http://online.us.drweb.com,
оказаться нецелесообразным – слиш- по отношению к конкретному продукту. http://www.kaspersky.ru/scanforvirus;
ком велик получается объем дорабо- При этом стоимость лицензий пропри- упрвление проектами – http://www.
ток, и, как следствие, стоимость соз- етарного ПО может составлять незна- comindwork.ru и т.д.).
дания решения. В этом случае портал чительную сумму по сравнению со сто- В этом свете порталы имеют огром-
целесообразно строить на основе пор- имостью интеграционных работ. ный потенциал развития: по мере то-
тальных продуктов, таких как Microsoft го, как будет расти мощность вычис-
Share Point Services, Microsoft Share Критерии выбора лительных ресурсов и полоса пропус-
Point Server, IBM WebSphere. Оценивая то, насколько подходит или кания каналов, порталы будут обрас-
Такой портал будет обладать все- не подходит то или иное решение для тать новыми полезными функциями,
ми функциями, которые рассмотре- реализации портала, следует иметь фактически выводя в веб традицион-
ны выше (новости, коммуникации со- в виду не только начальную стоимость ные «десктопные» приложения (напри-
трудников через Интернет), но в до- приобретения, но и такие немаловаж- мер, тот же MS Project или Visio), окон-
полнение к этому будет иметь функ- ные вещи, как поддержка и сроки внед- чательно реализуя, таким образом,
ции для работы с документами – при- рения. Если эти сроки не критичны, идею on-line рабочего места без при-
чем не просто размещения заранее то можно использовать и Open Source: вязки к конкретному местоположению
подготовленных файлов, но и онлайн- рано или поздно все получится, прос- сотрудника.

82
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Реклама
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Python:
сложные аспекты

Дмитрий Васильев
Рассматриваем метаклассы, дескрипторы атрибутов и менеджеры контекста.

В
этой статье мы рассмотрим не- сов. Таким образом, классы являют- type. В этой статье мы рассматриваем
которые достаточно сложные ас- ся экземплярами метаклассов. Начи- только так называемые новые классы,
пекты языка Python, а именно: ная с Python 2.2 стандартным мета- то есть классы, которые наследуются
n метаклассы, позволяющие созда- классом является type, который слу- от встроенного класса object. На дан-
вать классы с необычным поведе- жит метаклассом для всех встроен- ный момент «старые» (или «класси-
нием; ных типов. Это можно увидеть на сле- ческие») классы должны представ-
n дескрипторы атрибутов, предо- дующем примере: лять только исторический интерес, хо-
ставляющие наиболее гибкий кон- тя они еще используются в некоторых
троль доступа к атрибутам объек- >>> ().__class__ проектах.
тов и классов; <type 'tuple'> В Python при выполнении выраже-
n менеджеры контекста, объекты, ния, описывающего класс, интерпрета-
>>> ().__class__.__class__
позволяющие управлять поведе- тор сначала определяет соответству-
нием ключевого слова with. <type 'type'> ющий классу метакласс M и затем вы-
зывает M(name, bases, dict) для созда-
Метаклассы Здесь классом для создания кор- ния класса. Это происходит после то-
В общем случае, как и следует из на- тежа является tuple и соответственно го как было обработано тело класса,
звания, метаклассы – это классы клас- классом для создания tuple является где определены его методы и атрибу-

84
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
ты. Аргументами при вызове метак-
ласса являются: «Новые» классы  Вызов методов при доступе к атрибу-
n name – имя класса, строка, полу- Новая система типов и классов (так на- там. Эта функциональность реализу-
чаемая из выражения, описываю- зываемые новые классы) была добавле- ется с помощью дескрипторов атри-
щего класс; на в Python 2.2 для унификации классов бутов.
n bases – кортеж базовых классов, и типов. Основная причина их появления –
получаемый в начале обработки вы- это предоставление унифицированной В Python 2 простейший способ соз-
ражения класса, или () если класс объектной модели с полноценной моделью дать «новый» класс – это наследовать его
не определил базовых классов; метаклассов. «Новые» классы также пре- от object:
n dict – словарь с методами и атри- доставляют следующие возможности: class Test(object):
pass
бутами класса, которые были оп-  Наследование от встроенных типов,
ределены в теле класса; например списков (list) и даже целых Начиная с Python 3.0 «старые» классы
(int), которые должны работать везде, были удалены и по умолчанию используют-
Затем результат вызова M присва- где требуется оригинальный тип. ся «новые» классы (которые уже нет необ-
ивается переменной с именем класса.  Создание статических методов и мето- ходимости называть «новыми»).
Описание вызова метакласса для соз- дов класса.
дания класса можно проиллюстриро-
вать следующим примером: n Метакласс класса должен соответствовать метаклассу
базового класса или быть его потомком.
>>> T = type("test", (object,), {"name": "Test"})
>>> T
Примеры метаклассов
<class '__main__.test'> После описания работы метаклассов обратимся к приме-
рам собственных реализаций. Как уже было рассмотрено
>>> T.name
ранее, класс создается при вызове метакласса следующим
'Test' образом: M(name, bases, dict). Более детально при создании
>>> t = T() классов (можно провести аналогию с созданием объектов
>>> t класса) вызываются методы метакласса __new__() и затем
<__main__.test object at 0x2863550> __init__(), как в следующей последовательности строк:

>>> t.name cls = M.__new__(M, name, bases, dict)


assert cls.__class__ is M
'Test' M.__init__(cls, name, bases, dict)

После того как мы рассмотрели, как метакласс создает Напишем наш первый метакласс, чтобы рассмотреть
класс, остается понять, как выбирается метакласс. Для вы- последовательность вызова методов при создании клас-
бора метакласса используются следующие шаги: са и объекта:
n Если определен dict['__metaclass__'] (то есть в теле клас-
са был определен атрибут __metaclass__), то он исполь- class MetaTest(type):
зуется. def __new__(cls, name, bases, dict):
n Иначе, если определен хотя бы один базовый класс, ис- klass = super(MetaTest, cls).__new__(cls, name, ↵
bases, dict)
пользуется метакласс базового класса. print "__new__(%r, %r, %r) -> %r" % (name, bases, ↵
n Иначе будет использоваться глобальная переменная dict, klass)
return klass
__metaclass__, если она определена.
n В противном случае будет использоваться метакласс def __init__(cls, name, bases, dict):
super(MetaTest, cls).__init__(name, bases, dict)
для «классических» классов types.ClassType и соответ- print "__init__(%r, %r, %r)" % (name, bases, dict)
ственно будет создан «классический» класс.
def __call__(cls, *args, **kwargs):
obj = super(MetaTest, cls).__call__(*args, **kwargs)
Начиная с Python 3.0 метакласс можно указывать только print "__call__(%r, %r) -> %r" % (args, kwargs, obj)
return obj
как именованный параметр при определении класса, сле-
дующим образом: Здесь мы просто выводим информацию о вызове мето-
дов __new__(), __init__() и __call__(). Вот как это работает:
>>> class Test(metaclass=type):
... pass >>> from meta import MetaTest
... >>> class Test(object):
... __metaclass__ = MetaTest
Основные ограничения, связанные с метаклассами ...
языка Python: __new__('Test', (<type 'object'>,), {'__module__': '__main__',
'__metaclass__': <class 'meta.MetaTest'>}) -> <class '__main__.Test'>
n Нельзя наследоваться одновременно от «классичес- __init__('Test', (<type 'object'>,), {'__module__': '__main__',
кого» и «нового» классов. В этом случае возможнос- '__metaclass__': <class 'meta.MetaTest'>})
ти «новых» классов, описанные в этой статье, работать
не будут. >>> test = Test()

№5, май 2009 85


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
__call__((), {}) -> <__main__.Test object at 0x7f62e95ca650> классом без необходимости определения конструктора
класса:
Обратите внимание на атрибут __metaclass__ в теле
класса, как уже было описано выше, это один из способов class AttrInit(type):
присвоения метакласса классу. def __call__(cls, **kwargs):
Таким образом, мы видим последовательность вызова obj = super(AttrInit, cls).__call__()
for name, value in kwargs.items():
методов метакласса: setattr(obj, name, value)
n __new__() – вызывается для создания класса; return obj
n __init__() – для инициализации класса;
n _ _call_ _() – вызывается при создании объектов Этот метакласс может быть использован так:
класса.
>>> from attr import AttrInit
>>> class Message(object):
Нужно также отметить, что атрибуты и методы, опре- ... __metaclass__ = AttrInit
деленные в метаклассе, являются статическими, то есть ...
>>> class ResultRow(object):
доступны только на уровне класса, но не на уровне объ- ... __metaclass__ = AttrInit
ектов класса: ...
>>> msg = Message(type='text', text='text body')
>>> msg.type
>>> class MetaTest(type):
... def test(cls): 'text'
... print "test()"
...
>>> class Test(object): >>> msg.text
... __metaclass__ = MetaTest
... 'text body'
>>> Test.test()
>>> row = ResultRow(id=1, name='John')
test() >>> row.id
1
>>> Test().test()
Traceback (most recent call last): >>> row.name
File "<stdin>", line 1, in <module>
AttributeError: 'Test' object has no attribute 'test' 'John'

Рассмотрим примеры более полезных метаклассов. Такой метакласс может быть полезен для создания
Метакласс AutoSuper добавляет приватный атрибут __super классов, объекты которых служат в основном как хранили-
для доступа к атрибутам и методам базовых классов: ще атрибутов. Например, классов, описывающих переда-
ваемые по сети пакеты данных, или строки результата за-
class AutoSuper(type): проса к базе данных, к полям которых удобнее обращать-
def __init__(cls, name, bases, dict): ся как к атрибутам.
super(AutoSuper, cls).__init__(name, bases, dict) Таким образом, метаклассы позволяют создавать клас-
setattr(cls, "_%s__super" % name, super(cls))
сы с достаточно необычным поведением, но в то же время
Теперь он может быть использован так: вряд ли стоит их использовать в каждой программе.

>>>
>>>
from super import AutoSuper
class A(object):
Дескрипторы атрибутов
... __metaclass__ = AutoSuper Дескрипторы атрибутов (далее просто дескрипторы) опи-
... def method(self): сывают протокол доступа к атрибутам объекта или клас-
... return "A"
... са. В общем случае дескрипторы – это объекты, в кото-
>>> class B(A): рых определен один из методов: __get__(), __set__() или
... def method(self):
... return "B" + self.__super.method() __delete__(). Среди уже определенных в Python дескрип-
... торов можно назвать следующие: property, classmethod
>>> B().method()
и staticmethod. Рассмотрим интерфейс дескрипторов на
'BA' примере:

Таким образом, при работе с классом и его подкласса- class TestDescriptor(object):


ми можно везде заменить вызов встроенной функции super def __get__(self, obj, type=None):
на обращение к приватному атрибуту __super. Это позво- print "__get__(%r, %r)" % (obj, type)
return "value"
ляет контролировать доступ к базовым классам на уровне
класса или даже объекта. Плюс к этому уменьшается ве- def __set__(self, obj, value):
print "__set__(%r, %r)" % (obj, value)
роятность ошибок, связанных с опечатками, и в случае из-
менения имени класса нет необходимости изменять имя def __delete__(self, obj):
print "__delete__(%r)" % obj
в нескольких местах.
Следующий пример представляет собой метакласс, При доступе к атрибуту методы этого дескриптора вы-
устанавливающий атрибуты для объектов, создаваемых зываются следующим образом:

86
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
>>> from desc import TestDescriptor Поведение classmethod можно эмулировать следую-
>>> class Test(object):
... attribute = TestDescriptor() щим образом:
...
>>> Test.attribute class ClassMethod(object):
__get__(None, <class '__main__.Test'>) def __init__(self, f):
'value' self.f = f

>>> t = Test() def __get__(self, obj, klass=None):


>>> t.attribute if klass is None:
klass = type(obj)
__get__(<__main__.Test object at 0x7f757d88d510>, def newfunc(*args, **kwargs):
<class '__main__.Test'>)
return self.f(klass, *args, **kwargs)
return newfunc
'value'

Здесь первый атрибут при вызове метода заменяется


>>> t.attribute = "new value"
классом объекта.
__set__(<__main__.Test object at 0x7f757d88d510>, 'new value') И наконец staticmethod может быть представлен так:
>>> del t.attribute class StaticMethod(object):
__delete__(<__main__.Test object at 0x7f757d88d510>) def __init__(self, f):
self.f = f
Здесь мы видим, что при доступе к атрибуту attribute, яв- def __get__(self, obj, type=None):
ляющемуся дескриптором, на самом деле вызываются ме- return self.f
тоды дескриптора. Надо также заметить, что дескрипторы
вызываются из метода __getattribute__() (который в свою
очередь имеет смысл только для «новых» классов), опреде- Менеджеры контекста
ленного в классе object, и его переопределение может от- Менеджеры контекста – это механизм, стоящий за клю-
менить автоматическое обращение к дескрипторам при до- чевым словом with. Ключевое слово with появилось еще
ступе к атрибутам. Также следует знать, что если дескрип- в Python 2.5, но к нему можно было получить доступ только
тор определяет только метод __get__(), то атрибут, за ко- через __future__ импорт: from __future__ import with_statement.
торым стоит такой дескриптор, может быть переопределен Начиная с Python 2.6 ключевое слово with может быть пол-
присваиванием другого значения атрибута объекту. Если же ностью доступно без импортирования из __future__.
дополнительно определен метод __set__(), то атрибут объ- Ключевое слово with определяет блоки кода, которые
екта не может быть переопределен таким образом. прежде использовали try/finally. Для уверенности в выпол-
нении кода его заключали в блок finally. With имеет следу-
Примеры дескрипторов ющую форму:
Для примера реализуем аналоги встроенных дескрипторов
property, classmethod и staticmethod в Python. with выражение [as переменная]:
блок with
Дескриптор, имеющий поведение property, может быть
представлен следующим классом: Здесь «выражение» должно вернуть объект, предо-
ставляющий протокол менеджера контекста. Для некото-
class Property(object): рых встроенных объектов уже определены менеджеры кон-
def __init__(self, fget=None, fset=None, fdel=None, ↵ текста. Например, такой менеджер определен для файлов,
doc=None): чтобы быть уверенным, что файл будет закрыт при выхо-
self.fget = fget
self.fset = fset де из блока:
self.fdel = fdel
self.__doc__ = doc with open('file.txt', 'rb') as f:
for line in f:
def __get__(self, obj, type=None): print line
if obj is None:
return self
if self.fget is None: В простейшем случае такая конструкция эквивалент-
raise AttributeError("unreadable attribute")
return self.fget(obj) на следующей:
def __set__(self, obj, value): f = open('file.txt', 'rb')
if self.fset is None: try:
raise AttributeError("can't set attribute") for line in f:
self.fset(obj, value) print line
finally:
def __delete__(self, obj): f.close()
if self.fdel is None:
raise AttributeError("can't delete attribute")
self.fdel(obj) Протокол менеджера контекста содержит всего два ме-
тода: __enter__() и __exit__(). В начале выполнения блока ко-
Здесь операции запроса значения атрибута, установки да вызывается метод __enter__(), который должен вернуть
атрибута и его удаления делегируются функциям, передан- объект, присваиваемый переменной, после чего выполняет-
ным в конструктор. ся блок кода. Если блок кода выкидывает исключение, то вы-

№5, май 2009 87


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
зывается метод __enter__() с информацией об исключении. можно использовать декоратор с функцией-генератором,
Если выполнение блока завершилось успешно, вся инфор- например:
мация об исключении равна None. Пример работы:
from contextlib import contextmanager
class TestContext(object): @contextmanager
def test():
def __init__(self, ignore_error=False): print "__enter__()"
self.ignore_error = ignore_error try:
yield "execute()"
def __enter__(self): finally:
print "__enter__()" print "__exit__()"
return self

def execute(self, error=False): Теперь мы можем использовать test() как менеджер кон-
print "execute()"
if error: текста. Результат yield будет присвоен переменной:
raise Exception("error")
>>> from context import test
def __exit__(self, exc_type, exc_val, exc_tb): >>> with test() as body:
print "__exit__(%r, %r, %r)" % ↵ ... print body
(exc_type, exc_val, exc_tb) ...
return self.ignore_error
__enter__()
Кроме методов, предоставляющих протокол менеджера execute()
__exit__()
контекста, здесь также определен вспомогательный метод
execute(), который будет представлять код внутри блока:
Nested(менеджер1[, менеджер2[,...]]) – функция, ком-
>>> from context import TestContext бинирующая несколько менеджеров контекста в один. Сле-
>>> with TestContext() as context:
... context.execute() дующий код:
...
__enter__()
from contextlib import nested
execute() with nested(A(), B(), C()) as (X, Y, Z):
__exit__(None, None, None) body()

>>> with TestContext() as context:


... context.execute(error=True) будет эквивалентен коду:
...
m1, m2, m3 = A(), B(), C()
__enter__() with m1 as X:
execute() with m2 as Y:
__exit__(<type 'exceptions.Exception'>, Exception('error',), with m3 as Z:
<traceback object at 0x7f6da88bffc8>) body()
Traceback (most recent call last):
File "<stdin>", line 2, in <module> Closing(объект) – функция, возвращающая менеджер
File "context.py", line 10, in execute
raise Exception("error") контекста, который закрывает объект по завершении бло-
Exception: error ка. Например:

В случае, если метод __exit__() возвращает «ложь», ис- from contextlib import closing
from urllib import urlopen
ключение будет выкинуто за пределы блока. При этом ме-
тод __exit__() никогда не должен сам выкидывать получен- with closing(urlopen('http://www.python.org')) as page:
for line in page:
ное исключение, а управлять этим только через возвраща- print line
емое значение:
В этом примере в конце блока будет вызван метод page.
>>> with TestContext(ignore_error=True) as context: close().
... context.execute(error=True)
...

__enter__()
Заключение
execute() В этой статье были рассмотрены достаточно сложные ас-
__exit__(<type 'exceptions.Exception'>, Exception('error',), пекты использования Python, которые вы скорее всего
<traceback object at 0x7fa35497a200>)
не будете использовать в каждой программе. Но в то же
время описанный инструментарий может значительно уп-
Модуль contextlib ростить и сделать более гибким сложный код, что позво-
Новый модуль contextlib (появившийся в Python 2.5) предо- лит взглянуть по-новому на все разрабатываемое при-
ставляет функции и декораторы, упрощающие создание ложение в целом. Плюс знание этих инструментов и опи-
и работу с менеджерами контекста. На данный момент мо- санные особенности внутренней работы интерпретатора,
дуль предоставляет три функции: должны поднять на новую ступень ваш уровень как раз-
Сontextmanager(функция) – декоратор, упрощающий работчика ПО.
создание менеджеров контекста. Вместо создания клас- Подробнее про особенности «новых» классов можно
са, предоставляющего интерфейс менеджера контекста, прочитать по ссылке: http://www.python.org/doc/newstyle.

88
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Переполнение буфера в muxatmd Раскрытие данных в nss-ldapd
в IBM AIX Программа: nss-ldapd версии до 0.6.8.
Программа: IBM AIX версии 5.2, 5.3 и 6.1. Опасность: Низкая.
Опасность: Низкая. Наличие эксплоита: Нет.
Наличие эксплоита: Нет. Описание: Уязвимость существует из-за наличия небезо-
Описание: Уязвимость существует из-за ошибки проверки пасных привилегий на доступ к файлу /etc/nss-ldapd.conf.
границ данных в setuid-приложении /usr/sbin/muxatmd. Ло- Локальный пользователь может получить доступ к паролю,
кальный пользователь может вызвать программу muxatmd используемому для подключения к LDAP-серверу.
со специально сформированными параметрами, вызвать URL производителя: ch.tudelft.nl/~arthur/nss-ldapd.
переполнение стека и выполнить произвольный код на сис- Решение: Установите последнюю версию 0.6.8 с сайта про-
теме с повышенными привилегиями. изводителя.
URL производителя: www.ibm.com.
Решение: Установите исправление с сайта производителя. Повышение привилегий в dircmp
в Sun Solaris
Программа: Sun Solaris 8, 9, 10.
Отказ в обслуживании в Openswan Опасность: Низкая.
Программа: Openswan версии до 2.4.14 и 2.6.21. Наличие эксплоита: Нет.
Опасность: Средняя. Описание: Уязвимость существует из-за ошибки состояния
Наличие эксплоита: Нет. операции в сценарии dircmp. Локальный пользователь мо-
Описание: Уязвимость существует из-за ошибки разы- жет перезаписать произвольные файлы на системе с при-
менования нулевого указателя при обработке Dead Peer вилегиями пользователя, запустившего dircmp.
Detection-пакетов. Удаленный пользователь может с по- URL производителя: www.sun.com.
мощью специально сформированного R_U_THERE или Решение: Установите исправление с сайта производителя.
R_U_THERE_ACK Dead Peer Detection пакета аварийно за-
вершить работу или перезапустить «pluto» IKE-демон. Множественные уязвимости
URL производителя: www.openswan.org. в Symantec Brightmail Gateway
Решение: Установите последнюю версию 2.4.14 или 2.6.21 Control Center
с сайта производителя. Программа: Symantec Brightmail Gateway версии до 8.0.1.
Опасность: Низкая.
Наличие эксплоита: Нет.
Множественные уязвимости Описание: 1. Уязвимость существует из-за недостаточной
в ядре Linux обработки входных данных Control Center. Удаленный поль-
Программа: Linux kernel версии до 2.6.30-rc3. зователь может с помощью специально сформированного
Опасность: Низкая. запроса выполнить произвольный код сценария в браузере
Наличие эксплоита: Нет. жертвы в контексте безопасности уязвимого сайта.
Описание: 1. Уязвимость существует из-за ошибки про- 2. Уязвимость существует из-за неизвестной ошибки
верки границ данных в функции CIFSTCon() в файле при обработке определенных консольных функций в Control
fs/cifs/connect.c. Удаленный пользователь может с помощью Center. Удаленный пользователь может получить админис-
специально сформированного Tree Connect-ответа клиен- тративные привилегии.
ту вызвать переполнение буфера и выполнить произволь- URL производителя: www.symantec.com/business/brightmail-
ный код на целевой системе. gateway.
2. Уязвимость существует из-за ошибки проверки гра- Решение: Установите последнюю версию 8.0.1 с сайта про-
ниц данных в функции decode_unicode_ssetup() в файле fs/ изводителя.
cifs/sess.c. Злоумышленник может обманом заставить поль-
зователя подключиться к специально сформированному Обход ограничений безопасности
серверу и вызвать переполнение буфера. в Device Mapper
3. Уязвимость существует из-за того, что CAP_FS_ Программа: multipath-tools 0.4.8, возможно, другие версии.
MASK_B0 не содержит CAP_MKNOD, и CAP_FS_SET не со- Опасность: Низкая.
держит CAP_LINUX_IMMUTABLE. Злоумышленник может Наличие эксплоита: Нет.
создать новые узлы устройств. Описание: Уязвимость существует из-за того, что multipathd-
4. Уязвимость существует из-за ошибки в функции agp_ демон создает доступные на запись всем сокеты. Локаль-
generic_alloc_page() в файле drivers/char/agp/generic.c. Ло- ный пользователь может отправить произвольные коман-
кальный пользователь может получить доступ к потенци- ды приложению.
ально важным данным в памяти ядра. URL производителя: christophe.varoqui.free.fr.
URL производителя: www.kernel.org. Решение: В настоящее время способов устранения уязви-
Решение: Установите последнюю версию 2.6.30-rc3 с сай- мости не существует.
та производителя.
Составил Александр Антипов

№5, май 2009 89


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Последние минуты
З
а окном шелестел совсем не по- «Вы хотите ощутить конец своей строения болтать у Стаса не было, од-
весеннему занудный дождик, жизни? Узнать, что вы будете чувс- нако он все же ответил:
а в комнате было тепло и уют- твовать в свои последние минуты? За- – Привет, Вика.
но. Погода не располагала к «высо- ранее пережить эти мгновения? С на- – Привет, Стас, как дела, как
кому» настроению, да и делать ни- ми это возможно. Компания «Послед- жизнь?
чего не хотелось. А потому Стас си- ние минуты». – Так себе…
дел и занимался пустым веб-серфин- Далее следовал телефон, адрес – Ну это ты зря, не куксись, все бу-
гом. Переходя со страницы на страни- и мелким шрифтом номер лицензии. дет хорошо! Слушай, Стас, у меня тут
цу, он попал на livejournal и, бесцель- Стас улыбнулся. Опять какие-то компьютер что-то глючит, ты не мог
но перескакивая от одного ЖЖ к дру- шарлатаны пытаются сделать деньги бы приехать и посмотреть как-нибудь
гому, думал о том, что ведь за каждой на оригинальной идее. Сама по себе на днях?
страничкой скрывается чья-то жизнь. такая возможность казалась ему при- «Ну вот, – зло подумал Стас, – всем
Радость и тоска, любовь и ненависть, влекательной, вот только ее реализа- плевать на то, что я чувствую, нужна,
удачи и промахи – маленькие эпизо- ция немного не укладывалась в голо- видите ли, моя профессиональная по-
ды жизней, выставленные на всеоб- ве. Адрес оказался в знакомом райо- мощь! Знакомые всегда вспоминают
щее обозрение. Стас тоже когда-то не города, где он изредка бывал, по- о компьютерщике, только когда что-то
вел онлайн-дневник, но потом ему на- этому, поразмышляв над тем, каким случается с компьютером!»
доело, графоманством он не страдал образом можно было бы достичь то- – Знаешь, Вика, в ближайшую не-
и постепенно забросил это занятие. го, о чем говорилось на сайте, Стас делю можешь считать, что меня не су-
Он вспомнил тот брошенный блог и по- в шутку подумал: не заглянуть ли ществует, что я уехал, умер, потому что
думал, что даже если он вдруг умрет, к этим «деятелям» и не удовлетворить у меня совершенно не будет времени,
то еще долго в Сети будет лежать этот ли свое любопытство вживую? Затем чтобы приехать ни к тебе, ни к твоему
маленький отпечаток его жизни. Стас он закрыл страницу и снова окунул- компьютеру!
закрыл ЖЖ и переключился в другую ся в Сеть, выкинув из головы только – Ну ладно, извини, что побеспоко-
вкладку браузера. что прочтенное. ила, счастливо… – раздался в трубке
Хоть и говорят, что все ссылки ра- ошарашенный голос Вики, но Стас  на-
но или поздно приводят на порносайты, Спустя пару дней Стас шел по ули- жал кнопку разрыва связи.
Стас был не первый год в Интернете це и настроение его также оставля- «Да, зря я так грубо, тем более с де-
и умело избегал всяческих баннеров- ло желать лучшего. Как говорится, вушкой», – подумал Стас, но потом оп-
«заманух». От самых назойливых его жизнь состоит из черных и белых по- равдал себя тем, что в конце концов
ограждал фильтр в браузере, а остав- лос, а в конце – хвост. Сейчас в жиз- у них такое бывает с периодичностью
шиеся Стас по привычке даже не за- ни у него была явно не белая полос- раз в месяц, а он тоже человек и име-
мечал. Однако этот баннер привлек его ка. Но понимание еще не обеспечи- ет право на плохое настроение.
внимание, так как надпись на нем ока- вает принятие, поэтому Стас был раз- Злясь на себя, на свое настрое-
залась созвучна его мыслям. «Послед- дражен и немного зол на весь окружа- ние, на родителей, дачу и Вику, а так-
ние минуты». Низкобюджетный бан- ющий мир. Ближайшее будущее тоже же на все вокруг, Стас изучил витрину
нер – подумал Стас и щелкнул по не- не давало намека на улучшение поло- ближайшей торговой точки. Несмот-
му. Даже интернетчики со стажем иног- жения – на выходные родители вооб- ря на отвратительное настроение, вре-
да щелкают по баннерам. Почему они ще хотели забрать Стаса поработать мя для пива еще не пришло, поэтому
это делают, никто не знает, даже, на- на дачу, а такая перспектива его от- он разжился банкой широко разрек-
верное, они сами. Так сейчас сделал нюдь не радовала. Пришлось сказать, ламированного безалкогольного на-
и Стас. И попал на очень простенький что у него срочная работа, которую питка и решил немного прогулять-
сайтик, под стать баннеру – буквально придется делать в выходные, а Стас ся по улице пешком. Пешие прогул-
из одной страницы. Оформление бы- очень не любил врать, тем более близ- ки хоть и по не очень свежему город-
ло симпатичным, но сайт практически ким людям. Но сельскохозяйственные скому воздуху обычно помогали соб-
без контента по нынешним временам работы на даче он не любил еще боль- рать все мысли в порядок. Неторопли-
воспринимался как-то несолидно. Ос- ше. Зазвонил мобильник – входящий во идя по улице, попивая химическое
новной текст гласил следующее: вызов от одной знакомой девушки. На- содержимое из жестяной банки и рас-

90
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
сеянно бросая взгляды по сторонам, назначении можно было только дога- тов, в отличие от которых «последним
Стас вдруг увидел знакомое название дываться. В центре стояло нечто сред- минутам» никакого стратегического
и остановился. Обычное не очень но- нее между кушеткой и стоматологи- значения не придавалось. Интерес-
вое офисное здание, с небольшим па- ческим креслом, а в уютном уголке ных открытий накопилось достаточно
лисадником вдоль парадной части до- располагался письменный стол с ком- много за годы деятельности, но ранее
ма, обычный вход и только непримет- пьютером, за которым сидел мужчи- они нигде не использовались. Но вот
ная среди других себе подобных таб- на лет 45 на вид, больше напоминаю- руководство сменилось, настали дру-
личка с надписью «компания «Послед- щий ученого, чем офисного сотрудни- гие времена, и было принято решение
ние минуты» освежила воспоминания ка. При входе Стаса он сразу оторвал- продать несколько таких изобретений,
о рекламном баннере из Интернета. ся от компьютера («Явно не в «линей- а другие внедрить самостоятельно. Од-
«Это судьба, – подумал Стас, – вот сей- ку» игрался», – подумал Стас) и, под- ним из таких внедрений и стали «пос-
час я как раз и выясню, в чем у них там нявшись, пошел на встречу. ледние минуты».
подвох!». Он допил остатки жидкости и – Добрый день, меня зовут Анато- – Суть состоит в следующем, – по-
поискал глазами ближайшую урну, ко- лий Петрович, – представился он, про- яснял Анатолий Петрович, – путем раз-
торая оказалась на расстоянии около тягивая руку. дражения особым образом определен-
сотни метров. Это показалось дале- – Здравствуйте, я Стас, – в свою ных участков головного мозга создает-
ко, поэтому пустая банка отправилась очередь представился Стас слегка ся иллюзия наступления смерти. Она
прямиком на газон. Такая характерная сбитый с толку подобным приемом. настолько реальна, что не поверить
для жителей больших городов черта – После нескольких формальных в нее можно только усилием воли. По-
когда знаешь, что твой мусор за тебя фраз и предложения присесть завя- этому главное – сначала расслабить-
уберет кто-то другой, легко привыка- залась беседа, в результате которой ся. Психике кажется, что смерть близ-
ешь к плохим манерам. Поднявшись Стас выяснил, что компания «Послед- ка, и вот тогда-то и происходят очень
на третий этаж, Стас оказался перед ние минуты» использует в своей де- любопытные вещи, названные «пос-
массивной дверью с такой же неброс- ятельности разработки российских ледними минутами». Люди думают,
кой, как и у входа, табличкой и, посту- ученых, работавших на ВПК. Эффект что в такие моменты проживаешь за-
чавшись, вошел. «последних минут» был обнаружен ново всю свою жизнь, только в тыся-
Первое, что бросалось в глаза, – в одном из исследовательских бюро чи раз более сжатые сроки. На самом
это просторная светлая комната и ог- как побочное явление в одном из за- деле у всех это происходит по-раз-
ромное количество аппаратуры. О ее секреченных до сих пор эксперимен- ному. Всю визуальную информацию

№5, май 2009 91


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
есть возможность зарегистрировать кушетке, весь опутанный проводами, шил ошибку, не сказав об этом Ана-
и в конце мы вам выдадим DVD с за- как рождественская елка, с той толь- толию Петровичу. Он попытался что-
писью того, что вы видели. К сожале- ко разницей, что лампочки находились то сказать, но вместо этого услышал
нию, ваши чувства и эмоции мы запи- не на нем, а на мерно гудевших маши- лишь сдавленный хрип. Тело его со-
сать не можем, они останутся только нах. Наконец Анатолий Петрович объ- вершенно не слушалось. Стас испу-
в вашей памяти. Итак, если вы хоти- явил, что все готово, прикрыл жалюзи гался и попытался крикнуть, но стои-
те узнать, что вы будете чувствовать на окнах и щелкнул несколькими ру- ло ему только напрячься, как жгучая
в свои последние минуты, то мы мо- бильниками. Поначалу Стас непроиз- боль взорвалась у него в голове, свет
жем начать прямо сейчас. вольно напрягся, но потом, вспомнив померк перед глазами и он провалил-
– Анатолий Петрович, а насколько о разговоре, постарался расслабить- ся в темноту...
это безопасно? ся. В течение нескольких минут ни-
– Стопроцентную гарантию вам чего не происходило, только ощуща- ...Стас в очередной раз ехал на
не могут дать, даже когда вырезают лось легкое покалывание в тех мес- междугороднем автобусе, возвраща-
аппендицит, но мы провели сотни опы- тах, где контакты были прикреплены ясь после выходных, проведенных до-
тов, и уже более тысячи человек вос- к коже. Постепенно начала болеть ле- ма, в университет. Сразу за дорожной
пользовались нашими услугами и ник- вая часть головы. Господи! Как же он развилкой стоял щит с социальной
то из них не умер и не остался покале- мог забыть! В прошлом году врачи рекламой, на котором большими бук-
ченным. Как видите, у нас даже не пре- поставили ему диагноз: подозрение вами написано всего лишь два слова:
дусмотрен медицинский персонал на на аневризму головного мозга. Нуж- «Живите долго». Он много раз, проез-
случай осложнений, потому что это со- но было ложиться в больницу и про- жая мимо, видел этот щит, но почему-
вершенно излишне. водить ряд серьезных анализов, что- то именно сейчас что-то было не так.
– Хм, спасибо вам за разъяснения, бы подтвердить или опровергнуть это. Это пожелание звучало как издева-
звучит правдоподобно. Остается про- Тогда Стас сдавал сессию, а после го- тельство! Но почему? Наконец Стас
верить на практике – ну что, давайте ловная боль уже перестала его му- понял: потому что он умирает! Од-
попробуем? чить, и он все откладывал и отклады- нажды сформировавшись в мозгу,
вал свое посещение больницы. И вот эта мысль уже не покидала его: он
Спустя десять-пятнадцать ми- теперь, когда боль из легкой и пуль- умирает, умирает в результате глупо-
нут, уладив все финансовые вопросы, сирующей превратилась в постоян- го эксперимента и собственного лю-
Стас уже располагался на той самой ную и острую, Стас понял, что совер- бопытства.

92
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Автобус и дорога исчезли, Стас нувшись с тела Стаса, унеслись вверх, – Ну тогда договорились, до связи!
стоял лицом к стене на расстоянии в то время как Стас стремительно по- – До связи, Вика!
нескольких десятков шагов от нее. несся в непроглядную черноту, не сом- На душе у Стаса немного потепле-
Вокруг была мрачная пустынная мес- неваясь, что там его ждет ад. Этого ло. Все-таки о компьютерщиках вспо-
тность, а по небу быстро двигались не должно было быть – ведь это был минают не только тогда, когда лома-
низкие свинцовые тучи. Стена каза- только эксперимент, он не хотел уми- ются компьютеры, но и иногда для то-
лась бесконечной – влево и вправо, рать вот так, он еще многого не сделал го, чтобы вместе провести время. Сле-
насколько хватало глаз, она прости- в своей жизни, это неправильно! От от- дующий звонок Стас сделал родите-
ралась до самого горизонта. Странная чаяния Стас закричал и, сделав пос- лям и сказал, что сумел справиться
стена из LCD-панелей, причем пане- ледний рывок вверх, к тускнеющему со срочной работой, а значит, в вы-
ли были трех видов – одни светились уже свету, не свалился с кресла только ходные сможет поехать на дачу. Мама,
ярко белым светом, другие напротив, благодаря тому, что его вовремя под- с которой Стас разговаривал, очень
были черны как сажа, а третьи были держал Анатолий Петрович. обрадовалась, и от этого ему стало
невзрачные и серые. Стас сделал не- – С возвращением, – сказал тот еще теплее. А может быть, это весен-
сколько шагов вперед, и стена ожи- и широко улыбнулся. Затем он снял нее солнышко, выглянувшее из-за об-
ла. Присмотревшись, Стас на каждом со Стаса провода и датчики и помог лаков? Не важно. Главное, что жизнь
экране начал различать какое-то дви- встать. все-таки весьма приятная штука! Стас
жение. Он подошел еще ближе и ото- – Вот обещанный DVD. Здесь все, спустился по ступенькам и направился
ропел – стена оказалась выложен- что вы видели за эти 7 последних ми- к остановке, потом вернулся, подобрал
ной из фрагментов его жизни! Неко- нут. с газона выброшенную им ранее бан-
торые Стас угадывал, другие смутно Анатолий Петрович помогал пере- ку и побежал к подходящему автобусу.
припоминал, а третьи не помнил сов- живать последние минуты сотням лю- На автобус он успел. Даже успел вы-
сем. Стена не была сплошной – тут и дей. У всех это происходило по-разно- бросить в урну банку и заодно и DVD-
там зияли пустоты, причем пустот бы- му, но яркий свет присутствовал везде, диск с записью его последних минут.
ло достаточно много. Это смущало – и никто его не достиг. Возможно, дейс- Он был уверен, что и без диска будет
наверняка он чего-то еще не сделал твительно у каждого человека есть помнить эти семь минут всю свою ос-
в своей жизни. Не пришел к цели, не миссия в жизни, не выполнив которой тавшуюся жизнь!
выполнил предначертанной ему мис- ему не попасть к этому свету? Вопрос,
сии, и эти пустоты свидетельству- на который не дают точного ответа да- Стас в очередной раз ехал на меж-
ют об этом. И еще была одна законо- же последние минуты, но его получит дугороднем автобусе, возвращаясь
мерность – светлые панели содержа- каждый, когда расстаться с жизнью после выходных, проведенных дома,
ли в себе его добрые дела, в то вре- придется по-настоящему. Вот только в университет. Сразу за дорожной раз-
мя как на черных всплывали не самые рассказать про это хоть кому-то будет вилкой стоял щит с социальной рекла-
приятные и правильные моменты его уже невозможно. мой, на котором большими буквами
жизни. Стас сначала медленно шел Стас вышел из здания, рассеянно написано всего лишь два слова: «Жи-
вдоль стены, потом шаг его стал все вертя диск в руках. Посмотрел на го- вите долго». Вокруг было мрачно, а по
быстрее и быстрее пока уже не пере- лубое весеннее небо с белыми обла- небу быстро двигались низкие свин-
шел в бег. И тут он обнаружил, что бе- ками и улыбнулся. Потом достал мо- цовые тучи. Вдруг пейзаж резко пок-
жит по кругу, что стена окружила его бильник. рылся туманом – это стекло запотело
и он оказался в колодце собственной – Алло, Вика, привет еще раз. Зна- от дыхания Стаса, когда он непроиз-
жизни. Даже не в колодце, а в трубе, ешь, ты извини меня, что так с тобой вольно приблизил голову к окну. Про-
потому что Стас уже не стоял, а ви- говорил в прошлый раз, и если тебе шло уже полгода с момента его «пос-
сел в пространстве. Небо над его го- еще нужна помощь, я с радостью при- ледних минут», но всегда, проезжая
ловой просветлело и засияло чистым еду повозиться с твоим компом и пови- этот рекламный щит, Стас старался
белым светом. Стенки трубы зашеве- дать тебя, ведь мы с тобой не встреча- не пропустить его. Многое измени-
лились и начали вспархивать легки- лись уже несколько месяцев! лось в его жизни за это время, и ему
ми бабочками. Серые бабочки куда- – Ой, Стас, как здорово, что ты пе- бы очень хотелось верить, что он стал
то исчезали, а черные и белые стре- редумал! Ты так быстро в прошлый хоть чуточку, но лучше. И самое глав-
мились к Стасу. Белые садились ему раз бросил трубку, что я не успела те- ное – Стас обнаружил, что это не толь-
на руки, на плечи, на голову – от это- бе сказать, что собираюсь открыть се- ко не сложно, а даже приятно – делать
го он чувствовал невообразимую лег- зон катания на велосипеде и хотела те- что-то хорошее  этом мире. И еще он
кость и стремился вверх, к сияющему бе предложить составить мне компа- чувствовал, что вместе с ним в луч-
свету. Но черные бабочки нагоняли его нию. В прошлом году мы иногда ката- шую сторону меняется и окружающий
и облепляли ноги, отчего он тяжелел, лись вместе, а уже весна! мир. Стас улыбнулся… «Живите дол-
и движение вверх замедлялось. Нако- – О, хорошая идея, спасибо, я то- го» – ну что ж, поживем долго! Вот чего
нец оно прекратилось вообще, а затем, же буду рад начать велосезон с сов- он теперь не боялся в жизни – так это
замерев на миг, Стас стал соскальзы- местной покатушки с приятным чело- его будущих последних минут.
вать вниз. Белые бабочки уже не мог- веком, – ввернул небольшой компли-
ли противостоять грузу, и враз взмет- мент Стас. Станислав Шпак

№5, май 2009 93


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Редакционная подписка
для физических лиц
n Вы можете оформить подписку n Журнал высылается почтой заказ-
только на российский адрес. ной бандеролью только после пос-
n При заполнении квитанции обя‑ тупления денег на расчетный счет
зательно РАЗБОРЧИВО укажи‑ и копии заполненного и оплачен‑
те фамилию, имя, отчество пол‑ ного бланка, отправленной в ре‑
ностью, почтовый индекс и ад‑ дакцию по факсу: (495) 628‑82‑53
рес получателя (область, город, (доб. 120) или на электронный
улица, номер дома, номер квар‑ адрес: subscribe@samag.ru.
тиры), контактный телефон.

ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ

 

ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ ɏ
 

94
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
Российская Федерация печати «Гасид» (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
без диска
**

по каталогу агентства
«Пресса России»
*
Годовой
**
Полугодовой
***
Диск вкладывается
в февральский
номер журнала,
распространяется
только на территории
России

№5, май 2009 95


Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru
СИСТЕМНЫЙ АДМИНИСТРАТОР
№5(78), Май, 2009 год

УЧРЕДИТЕЛИ
Частные лица

РЕДАКЦИЯ
Генеральный директор
Владимир Положевец
Ответственный секретарь
Наталья Хвостова
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 экз.

Журнал зарегистрирован в Министерстве РФ


по делам печати, телерадиовещания и средств
массовых коммуникаций (свидетельство ПИ
№ 77-12542 от 24 апреля 2002 г.).
За содержание статьи ответственность несет
автор. Мнение редакции может не совпадать
с мнением автора. За содержание рекламных
материалов ответственность несет рекламо-
датель. Все права на опубликованные мате-
риалы защищены.

96
Ýëåêòðîííàÿ êîïèÿ æóðíàëà Linux Format. Íåëåãàëüíîå ðàñïðîñòðàíåíèå ïðåñëåäóåòñÿ ïî çàêîíó Ô. Çàêàç LC173025. Âëàäåëåö êîïèè: Ñòðèæåíöîâ Âëàäèìèð Âëàäèìèðîâè÷, email:
bobahsmtp.ru

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