Управляем объектами
в Active Directory
SharePoint в качестве
платформы документооборота
Как подружить
GDI-принтер и Linux
Используем систему
мониторинга сети OpenNMS
Бессистемные заметки
о поиске работы за рубежом
Реклама
Реклама
в номере
3 ТЕНДЕНЦИИ ЧЕЛОВЕК НОМЕРА
АДМИНИСТРИРОВАНИЕ Открытия Николая Новожилова
Интервью с директором Академии корпоративных сис-
4 Управляем объектами в Active Directory тем.
Часть 1 Оксана Родионова
Управление объектами в Active Directory осуществляет-
ся с помощью соответствующих мастеров. Какие поля БЕЗОПАСНОСТЬ
при этом изменяются в каталоге Active Directory – пок-
рыто тайной. 58 Правда об идентификаторах
Иван Коробко безопасности
Как разобраться в идентификаторах безопасности.
10 Сколько стоит переход Иван Коробко
на легальный софт?
Многие организации продолжают эксплуатировать пи- 64 Новые возможности Heimdal –
ратское программное обеспечение на своих компью- объединение открытых ключей
терах, зачастую не совсем представляя, что их ждет и Kerberos
при проверке органами контроля. Попробуем ответить Проект Heimdal-Kerberos позволяет объединить возмож-
на вопрос: сколько стоит спокойный сон руководителя ности инфраструктуры публичных ключей и Kerberos
и системного администратора? в рамках единой регистрационной системы. Об этом,
Александр Емельянов а также о других новинках программного пакета будет
сегодня рассказано.
12 Терминальные службы Михаил Кондрин
в Windows Server 2008
Служба терминалов в Windows Server 2008 позволит 70 Изучаем теневое копирование
решить ряд проблем, связанных с работой приложе- Теневое копирование файлов, записываемых на вне-
ний, требующих одновременного доступа множества шние носители, стало практически обязательным инс-
пользователей. трументом в арсенале корпоративных хранителей сек-
Андрей Бирюков ретов. Разберемся в особенностях реализации и рабо-
ты этой технологии.
18 SharePoint в качестве платформы Роман Васильев
документооборота
Работаем с workflow в WSS 3.0 и MOSS 2007. WEB
Нелли Садретдинова
74 XML-native DB. XQuery
28 Устанавливаем и настраиваем систему В прошлом номере описывалась разработка Институ-
мониторинга сети OpenNMS та cистемного программирования XML-native DB Sedna.
Когда количество активного оборудования в сети не- Для доступа в XML-ориентированных базах данных кон-
уклонно растет, а контролировать работоспособность сорциумом W3C рекомендован язык XQuery. Он явля-
и качество предоставляемых сервисов становится ется такой же неотъемлемой частью XML-native базы
все сложнее, на помощь приходит система мониторин- данных, как SQL в реляционных СУБД.
га сети OpenNMS. Александр Календарев
Андрей Семенов
ИЗ ЛИЧНОГО ОПЫТА
36 Медиация Linux и GDI-принтера
Решаем проблему печати на GDI-принтеры в ОС Linux. 80 Бессистемные заметки о поиске работы
Павел Закляков за рубежом
Многие люди (особенно IT-специалисты) хотят уехать
42 Как запустить «САМО-Тур» для Windows отсюда, но не знают, как найти хорошую работу за ру-
под Linux бежом. Автор, имея более чем десятилетний опыт уда-
Экономим, запуская программный комплекс «САМО- ленной работы, наконец-то нашел компанию своей меч-
Тур» на платформе Linux, что изначально не поддержи- ты, стоящую того, чтобы оторваться от кресла и сме-
валось разработчиком. нить Северный Кавказ на Сан-Франциско. Хотите и вы
Сергей Барановский найти работу своей мечты?
Крис Касперски
50 Фильтруем спам в EXIM с помощью
SpamProbe РЕТРОСПЕКТИВА
Устанавливаем и настраиваем SpamProbe.
Павел Литвинов 88 Хакеры: история субкультуры
Часть 2
АДМИНИСТРИРОВАНИЕ «1С» Технологии развивались. Хакеры старой школы, с монс-
трообразными ЭВМ и безумно дорогим машинным вре-
53 Хитрости и тонкости работы, менем оставались в прошлом. Компьютеры станови-
позволяющие экономить время лись доступней, а хакерами стали называть совсем
В версии 8.х «1С:Предприятие» появилось много ново- других, нежели раньше, людей.
го и отличного от версии 7.7, поэтому часто возникают Илья Александров
самые неожиданные вопросы.
Андрей Луконькин 92 КНИЖНАЯ ПОЛКА
17, 91, 94 BUGTRAQ
Управляем объектами
в Active Directory
Часть 1
Иван Коробко
Управление объектами в Active Directory осуществляется с помощью соответствующих
мастеров. Какие поля при этом изменяются в каталоге Active Directory – покрыто тайной.
В
нутренняя структура каталога ность, перерыть множество источни- например Top, другие строго иденти-
Active Directory гораздо сложнее, ков. Не проще ли, как говорят, поста- фицируют объект. Избыточность зна-
чем кажется на первый взгляд. вить все точки над «i»? чений необходима для совместимос-
Всем известно, что управление объ- ти доменов, построенных на основе
ектами в Active Directory осуществля- Типы объектов Windows 2К и Windows NT.
ется с помощью графической оболоч- в Active Directory При составлении поисковых за-
ки, встроенного мастера или с помо- Каталог Active Directory поддерживает просов в качестве фильтра исполь-
щью сценария. Существует множест- 8 основных типов объектов (см. табли- зуют только индивидуальные значе-
во литературы, в которой рассказано, цу 1), каждый из которых описывается ния массива objectClass для однознач-
как написать сценарий, создающий набором свойств. Часть из них повто- ной идентификации. Значения многих
учетную запись пользователя, пропи- ряется, часть – индивидуальна. С дру- элементов объектов разных типов пе-
сана пошаговая работа мастера. Одна- гой стороны значения некоторых полей ресекаются.
ко мне не удалось найти статью, в ко- можно просмотреть и изменить с по- Механизм поиска объектов рас-
торой четко была бы описана взаимо- мощью встроенного в Active Directory смотрим после того, как вы получите
связь полей мастера и полей объекта мастера, а часть – только с помощью представление об объектной модели
Active Directory. специализированного программного Active Directory.
Создание каждого сценария для обеспечения или сценария.
начинающего программиста или сис- Тип объекта определяется набором Параметры объектов
темного администратора – это бит- параметров, которые хранятся в Active в Active Directory
ва. Чтобы ее выиграть, необходимо Directory в массиве objectClass. Неко- Все параметры объектов можно раз-
проявить смекалку и сообразитель- торые значения присутствуют везде, делить на три группы:
администрирование
n Явно задаваемые. Значения этих Таблица 1. Взаимосвязь типов объектов Active Directory и значений параметра
objectClass
параметров напрямую задаются
системным администратором. Са- Комментарий Тип объекта Значение objectClass Фрагмент поискового
запроса
мый яркий пример – имя объекта.
n Неявно определяемые. Эти пара- Учетная запись компьютера Computer Top
Person
objectClass=’Computer’
Управление объектами
в Active Directory
Рассмотрим процессы управления
объектами с точки зрения взаимосвя-
зей стандартных инструментов, при-
лагаемых Microsoft, и объектной мо-
дели LDAP.
Из ранее перечисленных объектов
чаще всего используются следующие:
учетная запись пользователя, группа
безопасности и папка.
С объектами в Active Directory можно
проделывать следующие манипуляции:
создавать, читать, изменять (если воз-
можно), удалять и, наконец, искать. Рисунок 1. Внешний вид программы Active Directory Explorer 1.01
писи будущего пользователя, а имен- First name firstName String General Имя сотрудника
но часть параметра distinguishedName: Initials Initials String General Инициалы (до 6 символов)
CN=User,DC=msk, DC=ru и тип объек- Last name Sn String General Фамилия сотрудника
та – параметра objectClass. Full name displayName String General Полное имя сотрудника
Замечение: если папка являет- (формируется на основе
первых трех полей)
ся встроенной, то ее имя определяет-
ся параметром CN. Все остальные па- User logon name userPrincipalName String Account Имя регистрации
пользователя в сети
раметры идентифицируются парамет-
User logon name sAMAccountname String Account Имя регистрации
ром OU (Organizational Unit), например (pre-Windows 2000) пользователя в сети для
OU=Test,CN=User,DC=msk, DC=ru. учетных записей Windows NT
администрирование
n setPassword. Значение этого обя-
зательного параметра – пароль,
хранящийся в зашифрованном
виде в Active Directory. С помощью
сценария его можно только запи-
сать. Считать существующее не
представляется возможным: оно
зашифровано.
n pwdLastSet. Значением параметра
pwdLastSet управляют с помощью
«User must change password at next
logon» (см. рис. 4). По умолчанию
принимает значение 0.
n userAccountControl. Оставшиеся
три параметра («User cannot change
password», «Password never expires»
и «Account is disabled») формиру-
ют в сумме значение параметра
userAccountControl. По умолчанию
userAccountControl=513 (стандарт- Рисунок 4. Работа мастера «Создание учетной записи пользователя». Шаг 2
ная учетная запись пользователя).
Для корректировки параметров необ- User logon name (pre-Windows 2000) Petrov Имя для входа в сеть (для совместимости с Windows NT
доменами)
ходимо вернуться на шаг или два ша-
Шаг 2
га назад (см. рис. 5).
Password, Confirm password 123456789 Пароль
Создание учетной записи User must change password at next logon Да Пользователь должен изменить пароль после первого
пользователя. Работа мастера входа в сеть
Создадим учетную запись пользовате- User cannot change password Нет Пользователь не может изменить пароль
ля с помощью мастера. Исходные дан- Password never expires Нет Действие пароля неограниченно
ные приведены в таблице 3. Account is disabled Нет Учетная запись выключена
Рассмотрим пошагово создание
учетной записи. чение» таблицы 3. Обратите внимание, Имя пользователя для регистрации
В появившемся диалоговом окне что после заполнения первых трех по- в сети задается системным админист-
заполните поля в соответствии с дан- лей при переходе на четвертое оно за- ратором. На основе введенных данных
ными, приведенными в колонке «Зна- полняется автоматически (см. рис. 6). автоматически создается имя для под-
администрирование
глядит самая обыкновенная учетная
запись пользователя, созданная обыч-
ным мастером. На рис. 9 представле-
ны все поля созданной учетной записи.
Как видно, одни атрибуты были зада-
ны напрямую, другие – косвенным об-
разом, третьи были созданы системой
автоматически. О том, какие бывают
атрибуты, как считывать их значения,
речь пойдет в следующей статье.
Создание объектов.
Общий случай
После подробного рассмотрения про-
цесса создания учетной записи поль-
зователя, пришло время подвести
своеобразный итог и создать шаблон
(см. листинг 2), позволяющий созда-
вать учетные записи объектов различ-
ного типа. Для создания какого-либо
объекта необходимо задать минимум
три параметра и еще несколько пара-
метров, присущих объекту данного ти-
па. К обязательным параметрам отно- Рисунок 9. Параметры учетной записи пользователя, созданной с помощью мастера
сят путь к объекту, его имя и тип.
на. С помощью функции GetObject() получают доступ к пап-
Листинг 2. Шаблон создания объектов в Active Directory ке, в которой будет создан объект. На четвертой строке с по-
set RootDSE = GetObject("LDAP://RootDSE") мощью функции Create(), имеющей два параметра, созда-
Domain = rootDSE.Get("defaultNamingContext") ется объект. Первый параметр функции – тип создаваемо-
Set objs = GetObject("LDAP:// " + ПУТЬ К ПАПКЕ + " & Domain)
Set obj = objs.Create("ТИП ОБЪЕКА", "ИМЯ ОБЪЕКТА") го объекта, второй – его имя в домене. Далее, с помощью
функции Put(), осуществляется присваивание значений ха-
obj.Put "ПОЛЕ ТИПА СТРОКА В ACTIVE DIRECTORY", "ЗНАЧЕНИЕ"
obj.Put "ПОЛЕ ТИПА МАССИВ В ACTIVE DIRECTORY", ↵ рактерным параметрам. И, наконец, запись присвоенных
Array("ЗНАЧЕНИЕ1", "ЗНАЧЕНИЕ2", "ЗНАЧЕНИЕ3"…) данных в каталог с помощью функции SetInfo().
obj.SetInfo Обратите внимание на последние две строки шаблона.
В них осуществляется присваивание значений параметру,
В первых двух строках шаблона с помощью виртуально- который имеет строковый тип данных, и массиву из строк.
го объекта RootDSE определяют LDAP-имя текущего доме- При задании значений массиву обязательно используется
Таблица 4. Параметры сценария для создания учетной записи ключевое слово Array, с помощью которого объявляют и сра-
пользователя зу же определяют значения элементов массива. На основе
Параметр Комментарий созданного шаблона приведу примеры создания учетной
cn=Ivan\, Petrov Отображаемое имя
записи группы (см. листинг 3) и папки (см. листинг 4).
sAMAccountName = IPetrov Имя в сети для совместимости с доменами
Windows NT
Листинг 3. Создание учетной записи группы безопасности
И
менно эти два человека зачас- Исходя из этих данных будет фор- та является задачей не из легких, по-
тую оказываются ответчиками мироваться приблизительный список этому проще всего обратиться за кон-
за использование нелегаль- необходимого для полноценного функ- сультацией к проверенному квалифи-
ного софта в коммерческих интере- ционирования IT-среды предприятия цированному специалисту. При подго-
сах фирмы. Что и кому из них грозит, программного обеспечения. Предпо- товке статьи рассчитать цены мне по-
не раз обсуждалось в рунете на мно- ложим для ровного счета, что коли- могли специалисты интернет-магази-
гочисленных форумах, блогах, а также чество сотрудников предприятия равно на программного обеспечения SoftKey
в авторских статьях. Я не буду останав- 100. Также допустим, что организация (www.sofkey.ru). Замечу, что при едино-
ливаться на этом вопросе и предполо- имеет 4 сервера и 100 рабочих мест. временной покупке всего софта у это-
жу, что в компании уже принято реше- Что же касается сервисов, предостав- го поставщика клиент переходит на бо-
ние о покупке легального программно- ляемых серверами компании, пред- лее низкий уровень цен (уровень С)
го обеспечения. ставим следующую «картину»: 2 кон- на продукты компании Microsoft, поэто-
троллера домена, 1 почтовый сервер, му далее стоимость ПО данной компа-
Что нам нужно? 1 сервер баз данных, 1 терминальный нии будет представлена на уровне С.
Практически в любой компании IT-ин- сервер, 1 сервер SharePoint, 1 файр-
фраструктура состоит из рабочих мест вол/прокси-сервер, 1 сервер обновле- Базовое серверное ПО
пользователей, а также серверных сис- ний Microsoft. Дополнительно положим, Нам понадобится приобрести 4 сер-
тем, каждая из которых предоставляет что 30 сотрудников работают на серве- верных лицензии Windows Server 2008,
тот или иной сервис. Попросту говоря, ре терминалов, 40 сотрудников рабо- 1 диск с дистрибутивом ОС, 100 кли-
все используемое программное обес- тают с сервером баз данных. Понят- ентских лицензий на подключение к
печение можно разбить на две части – но, что не в каждой компании исполь- серверу и 30 лицензий на подключение
клиентское и серверное. Тот и другой зуются все эти сервисы сразу, однако к серверу терминалов. Здесь и далее
софт, в свою очередь, можно условно такая схема поможет шире раскрыть цены указаны в долларах США, расчет
подразделить на категории: тему статьи. производится в рублях по курсу Цент-
n базовый, без которого работа ли- робанка на день оплаты.
бо не возможна, либо будет силь- Подсчитываем стоимость n Windows Server Standard 2008
но затруднена (сюда отнесем опе- серверного ПО Russian OLP C – 4х847=3388.
рационные системы и набор офис- Наиболее удобным и чаще выбирае- n Windows Server Standard 2008
ных программ); мым вариантом лицензирования сер- (дистрибутив) – 1х39,2=39,2.
n дополнительный для пользова- верных решений на данный момент яв- n Windows Server CAL 2008 Russian
тельских мест (это антивирусные ляется лицензирование по программе OLP NL User CAL (клиентские ли-
пакеты, архиваторы, программы Open License. Данный вид лицензиро- цензии) – 100х35=3500.
для записи на CD/DVD, програм- вания подразумевает единовремен- n Windows Terminal Services CAL
мы для распознавания текста и др.), ную покупку пожизненных полноцен- 2008 Russian OLP C Device CAL
дополнительный софт для серве- ных лицензий. В этом случае лицензи- (лицензия на терминальное под-
ров (сервер баз данных, почтовый руются серверы и клиентский доступ к ключение) – 30х93,8=2814.
сервер, файрволы/прокси-серверы, ним (при использовании терминальной n Итого – 9741,2.
программы для резервного копиро- службы в дополнение к клиентским
вания данных и т. д.); подключениям покупаются терминаль- Дополнительное серверное ПО
n специфичный для рода деятель- ные), также покупается дистрибутив Рассчитываем стоимость почтового
ности организации (пакеты для серверного ПО для установки. сервера Microsoft Exchange Server 2007.
обработки графики, верстки, про- Выбор программы лицензирова- Лицензируется сервер плюс каждый
ектирования и т. п.). ния даже для грамотного IT-специалис- почтовый аккаунт. Пусть каждый со-
10
администрирование
трудник имеет свой почтовый адрес, n Office SharePoint Server 2007 Security Base 1 year – 85 034,56 руб.
отсюда получаем следующий расчет: Russian OLP C – 1х5159=5159. Рабочие станции, серверы и почтовые
n Exchange Server 2007 OLP C – n Office SharePoint Server 2007 DVD системы: Kaspersky EnterpriseSpace
1х814,8=814,8. For Std (дистрибутив) – 1х39,2=39,2. Security Base 1 year – 145 773,68 руб.
n Exchange Server 2007 CD (дистри- n Office SharePoint CAL 2007 Russian
бутив) – 1х39,2=39,2. OLP C Device CAL (клиентские ли- Подводим итоги
n Exchange Standard CAL 2007 Sngl цензии) – 100х109,2=10920. Общая стоимость базового ПО для на-
Lang OLP C Device CAL (клиент- n Итого – 16118,2. шей организации будет равна 9741,2
ские лицензии) – 100х78,4=7840. (серверные ОС) + 25200 (клиентские
n Итого – 8694. Сервер обновлений WSUS являет- ОС) + 35179,2 (MS Office) = 70120,4.
ся бесплатным решением Microsoft. К этой сумме будет добавляться стои-
Сервер баз данных MS SQL Server Программа для резервного копи- мость различных сервисов в зави-
2005 можно лицензировать двумя спо- рования данных – Acronis True Image симости от потребностей компании,
собами: Echo Server для Windows – 840,05. а также дополнительное и специаль-
n сервер + клиент; ное клиентское ПО, помноженное
n серверные лицензии на процессор Подсчитываем стоимость на его необходимое количество.
(количество клиентских подключе- клиентского ПО Видно, что список софта для при-
ний не ограничивается). Оценим стоимость клиентского ПО. обретения не маленький. Тем более,
если вы являетесь корпоративным
Рассчитаем стоимость обоих вари- Базовое клиентское ПО клиентом, представляющим несколь-
антов и сравним их. Пусть у нас сервер Выбор пал на Windows Vista. На дан- ко организаций-плательщиков, входя-
с одним процессором, привожу срав- ный момент доступен только один ва- щих в группу предприятий, заказ ПО
нительные подсчеты для обоих вари- риант приобретения – коробочные вер- и оформление документов грозит стать
антов лицензирования. сии: Windows Vista Business Russian целой эпопеей. В этом случае обслу-
Вариант 1: DVD – 252,00. Для 100 рабочих стан- живание в режиме «одного окна», ре-
n SQL Server Standard 2005 Win32 ций общая стоимость будет составлять ализованное компанией SoftKey, по-
Russian OLP C – 1х1031,8=1031,8. 100x252=25200. может вам сократить временные рас-
n SQL Server Standard 2005 Win32 CD/ Переходим к MS Office 2007. ходы на покупку ПО: заказ на коробоч-
DVD (дистрибутив) – 1х39,2=39,2. n Office 2007 Russian OLP NL – 351,4 ные и электронные версии продуктов
n SQL CAL 2005 Russian OLP C (лицензия). оформляется в режиме онлайн, систе-
Device CAL (клиентские лицензии) – n Office 2007 Win32 Russian Disk Kit ма сохраняет ранее введенные клиен-
40х189=7560. MVL CD – 39,2 (дистрибутив). том данные и позволяет в дальнейшем
n Итого – 8631. выбирать нужные реквизиты платель-
Для 100 рабочих мест – 351,4x100+ щика и адрес его доставки.
Вариант 2: 39,2= 35179,2. Доступность в каталоге SoftKey
n SQL Server Standard 2005 Win32 электронных версий продуктов также
Russian OLP C 1 Proc – 1х6690,6= Дополнительное клиентское ПО позволяет ускорить процесс покупки.
6690,6. Рассмотрим список наиболее часто ис- После оплаты вы получите по e-mail
n SQL Server Standard 2005 Win32 CD/ пользуемого софта на рабочих станци- ссылку для скачивания дистрибутива
DVD (дистрибутив) – 1х39,2=39,2. ях пользователей (конечно, он не пре- программы и лицензионный ключ.
n Итого – 6729,8. тендует на полноту): Да, и еще, из приятных моментов:
n архиватор WinRAR – 9,44 за ли- партнерство SoftKey с бонусной систе-
Видно, что в нашем случае дешев- цензию; мой Много.ру означает, что если при за-
ле будет выбрать программу лицензи- n программа для записи дисков CD/ казе программного обеспечения ввести
рования на процессор. DVD Nero 8 Site License – 49,82; номер карты Много.ру, на аккаунт поку-
Сервер ISA Server (файрвол/прокси- n ABBYY FineReader 9.0 Professional пателя будут начислены бонусы, за ко-
сервер) лицензируется по количеству Edition – 159,99; торые потом можно получить призы.
процессоров (будем считать, что име- n Adobe Photoshop CS3 10.0 FULL
ется только 1 процессор на сервере). RU TLP for Windows – 878; Заключение
n ISA Server Std Ed 2006 Russian n Adobe Photoshop CS3 10.0 DVD RU Хотелось бы отметить, что процесс
OLP C 1 Proc – 1х1510,6=1510,6. for Windows – 35; лицензирования компании – дело на-
n ISA Server Std Ed 2006 Russian n CorelDRAW Graphics Suite X4 – сколько дорогое, настолько и нужное.
Disk Kit MVL CD (дистрибутив) – 451,9. При грамотном подходе затраты на при-
1х39,2=39,2. обретение лицензионного софта можно
n Итого – 1549,8. Защита от Лаборатории Касперс- снизить, потому что зачастую компании-
кого, лицензии на 104 узла (по общему дистрибьюторы проводят специальные
Сервер Office SharePoint лицензи- количеству серверов и рабочих стан- акции, а также делают неплохие скид-
руется по схеме: сервер плюс клиент- ций для нашей гипотетической орга- ки для «хороших» клиентов.
ские лицензии на доступ. низации): Kaspersky BusinessSpace На правах рекламы
Терминальные службы
в Windows Server 2008
Андрей Бирюков
Приложения, требующие одновременного доступа множества пользователей, всегда были
головной болью системных администраторов. Служба терминалов в Windows Server 2008
позволит решить ряд проблем, связанных с работой таких приложений.
С
лу жбы уда ленного дост упа достаточно приобрести один мощный инфраструктуры виртуальной частной
к приложениям являются не- терминальный сервер, и требования сети (VPN).
отъемлемой частью любой сов- к клиентским рабочим станциям су- Также имеется возможность ис-
ременной операционной системы. щественно снижаются, потому что ос- пользования протокола HTTPS для до-
В семействе Windows Server служба новные вычислительные нагрузки бе- ступа к службам терминалов без не-
терминалов появилась еще в версии рет на себя сервер. обходимости настройки на стороне
NT 4.0, а в недавно вышедшей версии клиента.
Windows Server 2008 реализация цент- Что нового Комплексная модель безопаснос-
рализованного доступа к приложени- Рассмотрим более подробно, о каких ти TS Gateway позволяет админист-
ям получила существенное развитие новых функциях идет речь. Прежде раторам контролировать доступ к оп-
за счет новых функций и систем. всего, это возможность работы с уда- ределенным ресурсам в сети. В част-
ленными приложениями служб терми- ности, возможно ограничение дос-
Зачем нужны налов. Теперь пользователи могут за- тупа пользователей только к опре-
службы терминалов пускать удаленные приложения на сво- деленным серверам и рабочим стан-
Для начала хочу немного рассказать, ем рабочем столе наряду с обычны- циям, а не ко всей сети предприятия,
зачем нужны терминальные сервисы. ми локальными приложениями. (Тем, как это происходит в случае исполь-
Например, возможность существенно кто знаком с аналогичными решени- зования подключений к виртуальной
сэкономить административные ресур- ями от Citrix, думаю, такая технология частной сети.
сы, так как гораздо проще установить понравится.) Для этого необходим кли- Еще данная технология позволяет
приложение на одном сервере и пре- ент подключения к удаленному рабо- подключаться пользователям к сер-
доставить к нему клиентский доступ, чему столу версии 6.0. Данный клиент верам терминалов и удаленным рабо-
чем разворачивать это же приложение встроен в Windows Server 2008 и Vista, чим станциям через межсетевые эк-
на каждой клиентской рабочей стан- для XP и 2003 версии клиенты доступ- раны и преобразователи сетевых ад-
ции. Это особенно полезно для уста- ны для бесплатной загрузки. ресов (NAT).
ревших программ и приложений, ко- Другим нововведением является Еще одной новой возможностью
торые не поддерживают клиент-сер- шлюз службы терминалов (TS Gateway), является веб-клиент служб термина-
верную архитектуру, однако до сих пор который позволяет получить безопас- лов (TS Web Access), который позволя-
довольно активно используются в ор- ный доступ к службам терминалов ет осуществлять работу с удаленным
ганизациях. и общим рабочим столам из-за пре- столом пользователя через веб-интер-
Другая причина – это возможность делов межсетевого экрана предприя- фейс. С помощью веб-клиента служб
сэкономить на оборудовании, так как тия без необходимости развертывания терминалов пользователи могут полу-
12
администрирование
чить список доступных приложений че-
рез веб-узел. Выглядит это примерно
следующим образом.
Когда пользователь запускает одно
из удаленных приложений, для этого
пользователя автоматически создает-
ся сеанс служб терминалов на сервере
под управлением Windows Server 2008,
также для пользователя в этом интер-
фейсе доступно централизованное ме-
ню, в котором отображаются все до-
ступные удаленные приложения. Что-
бы запустить удаленное приложение,
достаточно выбрать нужную програм-
му в меню.
Как видно, использование веб-кли-
ента служб терминалов позволяет сни-
зить затраты на администрирование,
так как отпадает необходимость в ад-
министрировании отдельных экземп-
ляров используемых приложений. Рисунок 1. Список ролей сервера
И, наконец, это возможность еди-
ного входа (также известная Single
Sign On), технология, улучшающая вза-
имодействие с пользователями, из-
бавляя от необходимости многократно
вводить свои учетные данные.
Установка
Обсудив в теории новые возмож-
ности службы терминалов Windows
Server 2008, рассмотрим этот функци-
онал на практике.
Прежде всего, установка. Надо ска-
зать, что процесс установки немно-
го изменился по сравнению с терми-
нальными службами в предыдущих
версиях Windows Server. Для того что-
бы развернуть терминальные служ-
бы, необходимо добавить соответс-
твующую роль в списке ролей серве-
ра (см. рис. 1).
Выбираем «Terminal Services». Да- Рисунок 2. Выбор метода аутентификации
лее указываем необходимые служ-
бы терминального сервера, которые буется, рабочие станции с любыми вер- только 120 дней, после чего вы сможе-
должны быть установлены. Обратите сиями терминальных клиентов могут те только устанавливать не более двух
внимание, что для функционирования подключаться. Данная функция поз- административных сессий.
некоторых из них требуется включение воляет увеличить защищенность тер- На следующем этапе требуется
сервера в домен Active Directory. минального сервера, так как предыду- указать группы пользователей, кото-
Затем нужно определиться с мето- щие версии клиентов содержат мно- рым разрешен доступ к данному тер-
дом аутентификации (см. рис. 2). В слу- жество уязвимостей, и отказ от их ис- минальному серверу. Затем идут на-
чае если вы выбрали вариант «Require пользования существенно повысит за- стройки, требующиеся для работы
Network Level Authentication», только ра- щищенность. по протоколу HTTPS. В частности, не-
бочие станции, на которых установле- На следующем этапе нужно оп- обходимо указать сертификат, кото-
ны совместимые версии операцион- ределиться с режимом лицензирова- рый будет использоваться для созда-
ной системы и терминального клиента, ния. Делать это при установке необя- ния SSL-соединения (см. рис. 3). Дан-
смогут устанавливать удаленные сес- зательно, можно доустановить потом, ный сертификат можно экспортиро-
сии с данным сервером. В случае ес- главное не забыть, что без лицензий вать из файла.
ли Network Level Authentication не тре- терминальный сервер будет работать Такой способ рекомендуется для
14
администрирование
Programs». Затем выберите опцию лыки для доступа к приложению: на ра- как раньше. Сама консоль Group Policy
«Create .rdp file». В открывшемся ок- бочем столе или в папке Start. Также Management также существенно из-
не мастера необходимо указать путь можно ассоциировать расширения, менилась. Теперь здесь доступны на-
к каталогу, в котором будет хранить- используемые данным приложением, стройки для леса, доменов, входящих
ся создаваемый файл, затем можно с другими файлами на рабочей стан- в данный лес. Также из этой консоли
изменить адрес сервера и порт, кото- ции пользователя. можно управлять политиками для до-
рые будут использоваться для досту- менов, контроллеров доменов. Еще
па к приложению через службу терми- Развертывание настроек одно полезное средство, появившее-
налов. Также можно сменить настрой- с помощью GPO ся в новой консоли, – это Group Policy
ки TS Gateway, например изменить сер- Итак, созданные .rdp- и .msi-файлы Modeling. Это средство, позволяющее
вер, используемый по умолчанию, или можно различными способами помес- смоделировать последствия примене-
отключить использование TS Gateway. тить на рабочие станции пользовате- ния групповых политик к определенно-
И, наконец, можно настроить исполь- лей. В качестве примера я разверну му объекту, может быть очень полезно
зование сертификатов для установки .msi-файлы с помощью групповых по- в случае, если используется несколько
защищенных соединений. В резуль- литик Windows Server 2008. Итак, у нас политик и множество объектов.
тате работы мастера в каталоге С:\ имеется домен terminal.mylocal, в ко- Однако я несколько отвлекся опи-
Program Files\Packaged Programs со- тором требуется для группы компью- санием работы с групповыми полити-
здается новый файл, который можно теров TestUsers развернуть .msi-файл ками, вернемся к службам термина-
разместить на рабочей станции поль- для доступа к приложению через служ- лов. Для выполнения поставленной
зователя для доступа к удаленному бу терминалов. задачи необходимо открыть раздел
приложению. Следует сразу заметить, что нас- «Forest», выбрать «Domains» и ука-
Теперь создадим пакет Windows тройка групповых политик в Windows зать имя домена (в данном случае это
Installer. Здесь настройки будут ана- Server 2008 несколько отличается от на- terminal.mylocal), затем «Group Policy
логичные: путь к создаваемому фай- строек в предыдущих версиях Windows Objects, TestUsers» (групповая полити-
лу, настройки терминального серве- Server. Прежде всего, теперь раздел ка, которая будет применена к маши-
ра, настройки TS Gateway и настрой- «Group Policy Management» доступен нам тестовой группы). После выпол-
ки сертификатов. В следующем окне в виде отдельной закладки, не через нения этих действий нажмите правую
вы можете выбрать, где создавать яр- «Active Directory Users And Computers», кнопку мыши и выберите «Edit». В от-
16
bugtraq
Нелли Садретдинова
Одна из самых долгожданных возможностей Windows SharePoint Services 3.0 (WSS 3.0)
и Microsoft Office SharePoint Server 2007 (MOSS 2007) – поддержка рабочих процессов
(workflow). Что представляют из себя эти возможности и действительно ли новый функционал
превращает SharePoint в полноценную платформу для документооборота?
Особенности рабочих n сбор подписей; ваться задачи, или указать, что будет
процессов в SharePoint n утверждение; создан новый список задач.
Рабочие процессы в SharePoint привя- n утверждение ликвидации; Каждый стандартный рабочий
заны к спискам или библиотекам до- n три этапа. процесс предполагает собственные
кумента. Запускаться они могут ав- настройки. Процесс «Сбор отзывов»
томатически при создании или изме- Смысл первых четырех процес- включает указанные на рис. 3.
нении элемента, или могут быть запу- сов очевиден из их названия. Поясню, Дополнительно можно указать ад-
щены пользователем вручную из кон- что означает «три этапа». Для запуска рес для отправки копий отзыва прочим
текстного меню элемента списка или такого процесса необходимо, чтобы пользователям и ряд параметров за-
документа библиотеки. Если напи- у библиотеки документов или списка вершения рабочего процесса.
сать собственный обработчик событий, было свойство типа «Выбор» как ми- При запуске процесса может пот-
то можно запускать процесс и по дру- нимум с тремя вариантами выбора, на- ребоваться заполнение дополнитель-
гим событиям. пример, «Планируется», «Утверждает- ных параметров. Например, форму как
Общие настройки рабочих процес- ся» и «Завершено». При запуске про- на рис. 4 нужно заполнить при запус-
сов определяются на сайте централь- цесса значение свойства равно перво- ке процесса «Сбор отзывов».
ного администрирования. Здесь мож- му варианту, т.е. «Планируется». Пос- Не буду останавливаться на типо-
но указать, разрешено ли создание ра- ле завершения первой задачи процес- вых процессах, работа с которыми ин-
бочих процессов для данного веб-при- са пользователем (например, завер- туитивно понятна. Расскажу подроб-
ложения, разрешить ли отправку доку- шения работы над документом) зна- нее о процессе сбора подписей, запус-
ментов внешним пользователям, изве- чение поля «Состояние» меняется на тить который можно только из клиент-
щать ли пользователей, не имеющих второй вариант – «Утверждается», пос- ских приложений Microsoft Office 2007.
доступа к узлу, о назначении им задач ле завершения второй задачи (напри- Допустим, имеется библиотека до-
рабочего процесса. По умолчанию соз- мер, утверждения документа руково- кументов, к которой добавлен стан-
дание рабочих процессов разрешено. дителем) это поле получает последнее дартный процесс «Сбор подписей».
значение – «Завершено» и процесс за- Чтобы запустить процесс, необходи-
Создание рабочих вершается (см. рис. 1). мо открыть документ из библиотеки
процессов Создать стандартный рабочий в MS Word 2007. На вкладке «Встав-
Какие инструменты предоставляет процесс можно из раздела «Парамет- ка» нужно выбрать «Строка подписи →
SharePoint для создания рабочих про- ры → Параметры рабочих процессов» Строка подписи Microsoft Office».
цессов? списка или библиотеки документов Появится форма настройки под-
Во-первых, в составе SharePoint (см. рис. 2). писи, которую необходимо заполнить
уже имеются пять готовых шаблонов Стандартные рабочие процессы (см. рис. 5).
рабочих процессов, запустить и на- предполагают создание задач для Затем можно запустить процесс
строить которые можно посредством участвующих в процессе пользовате- из общего меню Word (см. рис. 6).
веб-интерфейса. Это: лей. При создании процесса можно вы- После выбора процесса «Сбор под-
n сбор отзывов; брать список, в котором будут созда- писей» появится форма, где нужно ука-
18
администрирование
зать, кто должен подписать документ
(см. рис. 7).
Чтобы подтвердить подставленное
по умолчанию из предыдущей формы
значение, нужно нажать кнопку с га-
лочкой справа от поля. После этого
станет активной кнопка «Начать».
В результате запуска рабочего про-
цесса будет создана задача по сбору
подписи в соответствующем списке за-
дач (см. рис. 8).
Обратите внимание, что так как
в настройках сервера запрещено соз-
дание задач для внешних участников,
задача будет автоматически перена-
правлена внутреннему пользователю.
Форма подробной информации
о задаче включает возможности деле-
гирования задачи другому пользовате-
лю или ее отмены (см. рис. 9).
Подписать документ можно, от- Рисунок 1. Настройка трехэтапного рабочего процесса
крыв документ в MS Word. При этом
будет выдано предупреждение, что
для проверки подлинности подписи
другими лицами необходимо получить
цифровое удостоверение от партне-
ров Microsoft. Если такой необходимос-
ти нет, можно создать свою цифровую
подпись. Вот так будет выглядеть гото-
вая подпись (см. рис. 10).
Создание рабочих
процессов с помощью
SharePoint Designer
Создавать простые рабочие процессы
без написания кода можно с помощью
редактора Microsoft Office SharePoint
Designer [2]. Для этого необходимо
открыть в редакторе узел SharePoint
и выбрать пункт меню «Файл → Соз-
дать → Рабочий процесс».
Откроется мастер создания рабо-
чих процессов. На первом шаге необ- Рисунок 2. Добавление рабочего процесса
ходимо выбрать список или библиоте-
ку, к которой будет привязан процесс, n проверка, находится ли дата созда- Обращаю отдельное внимание на
указать способы его запуска. Мож- ния элемента в определенном про- полезное действие «Записать в жур-
но также задать список переменных межутке времени; нал», которое позволяет хотя бы ми-
(см. рис. 11). n проверка, кем был изменен эле- нимально отлаживать процессы, от-
После чего можно приступить краз- мент; слеживая значения переменных в жур-
работке процесса. Он может включать n проверка, кем был создан эле- нале.
один или несколько шагов. На каждом мент. У процессов, созданных с помощью
шаге можно выполнять одно или не- SharePoint Designer, есть ряд сущест-
сколько действий при каких-либо за- По умолчанию в SharePoint Designer венных недостатков:
данных условиях. Такими условиями имеется 22 возможных действия: от- n процесс может работать только
могут быть: правка сообщения по почте, назна- с тем списком (библиотекой), к ко-
n проверка значения переменной; чение задачи, установка значения торому он привязан;
n проверка, находится ли дата изме- свойства текущего элемента, присво- n нет функционала для реализации
нения элемента в определенном ение значения переменной и другие циклов/обработки коллекций зна-
промежутке времени; (см. рис. 12). чений;
n процессы нельзя отлаживать (за ис- Для этого можно написать собс- ты с workflow в Visual Studio необходимо
ключением явной записи значений твенные действия (Custom Activity). предварительно скачать и установить
переменных в журнале); В такое действие, например, можно по- WWF Visual Studio Extensions [5].
n нет интеграции с InfoPath/возмож- местить запрос к другому списку, и та- Чтобы создать Custom Activity
ности разработки собственных ким образом обойти одно из ограниче- для SharePoint, нужно указать в спис-
форм. ний SharePoint Designer. ке ссылок (References) библиоте-
ки Microsoft.Sharepoint.dll и Microsoft.
Впрочем, можно расширить функ- Создание Custom Activity Sharepoint.WorkflowActions.dll (нахо-
циональность процессов, создавае- Создать собственное действие можно дятся в папке «%PROGRAMFILES%\
мых в SharePoint Designer. с помощью MS Visual Studio. Для рабо- Common Files\Microsoft Shared\Web
Server Extensions\12\ISAPI\»).
Примеры Custom Activity можно
найти в Enterprise Content Management
Starter Kit for 2007 Office System (ECM
Starter Kit), который можно скачать на
сайте Microsoft в составе MOSS SDK[1].
Для разработки собственных дейст-
вий в Visual Studio необходимо соз-
дать проект типа Workflow Activity
Library (библиотека действий), для
каждого действия описать необходи-
мые свойства (входные и выходные
параметры) и, наконец, переопреде-
лить метод «Execute(ActivityExecution
Context executionContext)», в котором
и выполняется действие.
Пример простейшего действия, ко-
торое получает электронный адрес
Рисунок 4. Запуск рабочего процесса «Сбор отзывов» пользователя по его логину:
20
администрирование
using System; //Переопределяем метод, в котором выполняется
using System.ComponentModel; //само действие
using System.ComponentModel.Design; protected override ActivityExecutionStatus ↵
using System.Collections; Execute(ActivityExecutionContext ↵
using System.Drawing; executionContext) {
using System.Workflow.ComponentModel; SPWeb web = this.__Context.Web;
using System.Workflow.ComponentModel.Design; SPUser user;
using System.Workflow.ComponentModel.Compiler; if (Login != "") {
using System.Workflow.ComponentModel.Serialization; user = web.AllUsers[Login];
using System.Workflow.Runtime; if (user != null) {
using System.Workflow.Activities; Email = user.Email;
using System.Workflow.Activities.Rules; }
using Microsoft.SharePoint; }
using Microsoft.SharePoint.WorkflowActions; return base.Execute(executionContext);
}
namespace MyActivities }
{ }
public partial class getEmail: SequenceActivity
{ Dll, содержащую библиотеку действий, необходимо под-
public getEmail() {
InitializeComponent(); писать ключом strongnamekey (это также можно сделать
} с помощью Visual Studio, в меню «Свойства проекта», вклад-
//Описываем свойство __Context, в нем хранится
//информация о веб-приложении, из которого было ка «Signing») и скопировать в Global Assembly Cache (GAC)
//вызвано действие (папка «%SYSTEMDRIVE%:/windows/assembly») на серве-
public static DependencyProperty ↵
__ContextProperty = System.Workflow. ↵ ре SharePoint.
ComponentModel.DependencyProperty.Register ↵ Новую библиотеку с действиями необходимо указать в
("__Context", typeof(WorkflowContext), ↵
typeof(getEmail)); файле web.config для того веб-приложения, где эти действия
[Description("Context")] понадобятся. В секцию «<System.Workflow.ComponentModel.
[ValidationOption(ValidationOption.Required)]
[Browsable(true)] WorkflowCompiler>» нужно добавить следующую строку:
[DesignerSerializationVisibility ↵
(DesignerSerializationVisibility.Visible)] <authorizedType Assembly=" MyActivities, Version=1.0.0.0, ↵
public WorkflowContext __Context { Culture=neutral, PublicKeyToken= e5a54ffdbc212e2a ↵
get { " Namespace="MyActivities" ↵
return ((WorkflowContext)(base.GetValue ↵ TypeName="*" Authorized="True" />
(getEmail.__ContextProperty)));
}
set {
base.SetValue(getEmail.__ContextProperty, ↵ Наконец, чтобы SharePoint Designer показывал описание
value); действия и поля для ввода/вывода параметров, действие
}
} необходимо описать в специальном файле с расширением
//Описываем свойство, в котором будет храниться .ACTIONS, который нужно сохранить «%PROGRAMFILES%\
//логин пользователя
public static DependencyProperty ↵ Common Files\Microsoft Shared\web server extensions\12\
LoginProperty = System.Workflow. TEMPLATE\[LCID]\Workflow», где [LCID] – языковой идентифи-
ComponentModel.DependencyProperty.Register ↵
("Login", typeof(string), typeof(getEmail)); катор, для русского языка это 1049, для английского – 1033.
[Description("Login")] Например, файл .ACTIONS для вышеприведенного
[ValidationOption(ValidationOption.Required)]
[Browsable(true)] действия будет выглядеть так:
[DesignerSerializationVisibility ↵
(DesignerSerializationVisibility.Visible)] <?xml version="1.0" encoding="utf-8" ?>
public string Login { <WorkflowInfo>
get { <Actions Sequential="then" Parallel="and">
return ((string)(base.GetValue ↵ <Action Name="Получить email по логину пользователя"
(getEmail.LoginProperty))); ClassName="MyActivities.getEmail"
} Assembly="MyActivities, Version=1.0.0.0, ↵
set { Culture=neutral, PublicKeyToken=e5a54ffdbc212e2a"
base.SetValue(getEmail.LoginProperty, ↵ AppliesTo="all"
value); Category="Custom Actions">
} <RuleDesigner Sentence="Получить по %1 его %2">
} <FieldBind Field="Login" ↵
//Описываем свойство, в котором будет храниться Text="логину сотрудника" Id="1" ↵
//электронный адрес пользователя DesignerType="TextArea" />
public static DependencyProperty ↵ <FieldBind Field="Email" Text="email" ↵
EmailProperty = System.Workflow. ↵ Id="2" DesignerType= ↵
ComponentModel.DependencyProperty.Register ↵ "ParameterNames" />
("Email", typeof(string), typeof(getEmail)); </RuleDesigner>
[Description("Email")] <Parameters>
[Category("Email")] <Parameter Name="__Context" ↵
[Browsable(true)] Type="Microsoft.SharePoint. ↵
[DesignerSerializationVisibility ↵ WorkflowActions.WorkflowContext" ↵
(DesignerSerializationVisibility.Visible)] Direction="In" />
public string Email { <Parameter Name="Login" ↵
get { Type="System.String, ↵
return ((string)(base.GetValue ↵ mscorlib" Direction="In" />
(getEmail.EmailProperty))); <Parameter Name="Email" ↵
} Type="System.String, ↵
set { mscorlib" Direction="Out" />
base.SetValue(getEmail.EmailProperty, ↵ </Parameters>
value); </Action>
} </Actions>
} </WorkflowInfo>
22
администрирование
ки Visual Studio, автоматически
сгенерировать соответствующий
C#‑класс;
n включить этот класс в проект с ра-
бочим процессом.
Платформы для работы
с workflow, интегрируемые
с SharePoint
И все-таки в качестве платформы
для реализации сложных систем до-
кументооборота с множеством процес-
сов SharePoint на данном этапе остав-
ляет желать лучшего. Рисунок 14. Работа с workflow в Visual Studio
24
администрирование
с SharePoint. Свои решения для орга-
низации workflow, интегрированные
с SharePoint, предлагают также мно-
гие западные разработчики, напри-
мер: Captaris (http://www.captaris.com),
Skelta (http://www.skelta.com), K2 (http://
www.k2workflow.com), Nintex (http://
www.nintex.com) и др.
Заключение
Стандартные процессы SharePoint мо-
гут покрыть лишь минимальные пот-
ребности документооборота в неболь-
шой компании. Редактор SharePoint
Designer, особенно при участии про- Рисунок 15. Состояние всех процессов, относящихся к документу
граммиста для разработки Custom
Activity, существенно расширяет воз- та со многими рабочими процессами, 2. Microsoft Office SharePoint Designer –
можности создания рабочих процес- то стоит задуматься, использовать ли h t t p: //o f f i c e . m i c r o s o f t .c o m /e n - u s /
сов, и с его помощью можно автомати- SharePoint или предпочесть иную плат- sharepointdesigner/default.aspx.
зировать ряд типовых задач по работе форму. Причем если в организации 3. MSDN Developer Introduction to Workflows
с документами. Однако если требуют- для других целей SharePoint уже ак- for Windows SharePoint Services 3.0
ся более сложные процессы, включаю- тивно применяется, то имеет смысл and SharePoint Server 2007 – http://
щие взаимодействие с внешними сис- использовать платформу с возмож- msdn2.microsoft.com/en-us/librar y/
темами, необходима разработка WWF ностью интеграции с SharePoint, бла- ms406057.aspx.
с помощью Visual Studio и квалифици- го производители предлагают непло- 4. MSDN. Working with features – http://
рованных программистов. хой выбор вариантов. msdn2.microsoft.com/en-us/librar y/
Таким образом, если workflow ис- ms460318.aspx.
пользуется в небольшом объеме и для 1. Enterprise Content Management Starter 5. V i s u a l S t u d i o 2 0 0 5 e x t e n s i o n s
построения несложных процессов, Kit for 2007 Office System – доступен for .NET Framework 3.0 (Windows
то возможностей самого SharePoint в составе SharePoint Server 2007 SDK – Wo r k f l ow Fo u n d at i o n) – h t t p: //
для поддержки рабочих процессов мо- http://www.microsoft.com/downloads/ w w w.mi c rosof t .c o m /d ownl oad s /
жет оказаться достаточно. details.aspx?FamilyID=6d94e307-67d9- d e t a i l s . a s px ?Fa m i l y I D = 5 d 614 0 9 e -
Если же требуется пос троить 41ac - b 2d 6 - 0 074 d 6 28 6 fa 9& D i s p l ay 1f a 3 - 4 8 c f - 8 0 2 3 - e 8 f 3 8 e7 0 9 b a 6 &
сложную систему документооборо- Lang=en. DisplayLang=en.
Три
с т н о о т о р
с о вм е и з о в, к
р» хп р
трато ыш а ни с ыгр
а д м и в р о з
8 го да.
те м ный у ч а с ти е и и 200
Сис я ть л уго д
а л « п р и н п о
Журн т Вас в тор о м
гл а ш а е
ь с я в о
те м ный
пр и т «Си с
п р о води л а х
буду
т
г р ы шах: в ж ур на 0 8 года.
в р оз ы е к о ды
о д и е 20
a m a g.ru
у ч ас тия ц и а льны ое полуг а w w w.s
Д ля и т е с пе з а в тор ж у р на л
О тыщ р а тор» а с а йте а л о в.
ни с т е сь н ». ж ур н
д м и у й т р и з и з
а егистрир и н с кий П йте коды
ар дм ру
З зделе «А но активи
ра
в ледовате
ль р и зов:
о с р ы ш а п
те к оды
П 3 р о з ыг т и в и руй
о д и тьс я А З »: ак д.
п р о в
р и з « Р
0 0 8 го
е ко ды
т за 2 т
Буде н с к ий П 8 , 9 т и в и руй
А дми л о в №7, В А »: ак год.
у р н а и з « Д 2 0 0 8 коды
з ж П р з а уй те ода.
и с к и й 1 1, 12 в и р 0 8 г
А д мин о в № 10,
И »: ак т и о д и е 20
у р на л и з «ТР е п олуг
з ж йП р тор о
и с к и з а в
А д м и н ур на ло в
с е хж
з в
и
Приз
нск ий
ми
Ад РАЗ»
П р из «
м и н с к ий атор
Ад н и к
К о мму к ур с ы
б н ы е р од ук ты с е р в ер ы
че еп е
У граммны ыделенны
ро в
П туальные
ир
В В А»
« Д
й П р из
нс к и
А д м и
н и к атор
К о мму к ур с ы
б н ы е р од ук ты с е р в ер ы
че еп е
У граммны ыделенны
ро в
П туальные
ир
В РИ»
з «Т
к и й При
нс
Адми тбук
оу ы
Н бные курс родукты
У че м н ы еп
г р ам
р о
П
т ся...
чинае
ко на
о ль
Все т
Более подробную информацию о сроках и правилах проведения розыгрышей призов смотрите на сайте журнала – www.samag.ru
администрирование
Устанавливаем и настраиваем
систему мониторинга сети
OpenNMS
Андрей Семенов
Когда количество активного оборудования и серверов в сети неуклонно растет,
а контролировать работоспособность и качество предоставляемых сервисов становится все
сложнее, на помощь приходит система мониторинга сети OpenNMS.
Кратко о системе чения (Open Source). Кроме обычной нической поддержки 24х7 и обучения
мониторинга OpenNMS для Open Source-проектов поддержки персонала.
OpenNMS [1] – система мониторинга сообществом пользователей, произво- Данная система реа лизована
сетевой инфраструктуры уровня пред- дитель предоставляет многоуровневое на Java, поэтому появляется такое по-
приятия, распространяемая по моде- коммерческое сопровождение продук- ложительное качество, как кроссплат-
ли свободного программного обеспе- та: от внедрения до обеспечения тех- форменность.
28
администрирование
Поддерживаются ОС: фейс написан на Java/JSP, а для компиляции JSP в сервлет
n Linux: необходим компилятор Java, который отсутствует в JRE.
Debian Etch и Lenny (x86 и x86_64);
Red Hat Enterprise Linux/CentOS (3, 4 и 5; x86 Установка JDK
и x86_64); Java Development Kit (JDK) можно скачать с сайта компа-
Fedora Core (версии с 2 по 8, x86 и x86_64); нии Sun [3] либо установить с помощью yum из репозито-
Mandriva 2007 и 2008; рия Tigro [5].
SuSE (9 и 10). Если данный репозиторий у вас не подключен, то мож-
n Solaris 8, 9, и 10 (SPARC и x86); но установить его через RPM-менеджер:
n Mac OS X (10.4+, PowerPC и x86);
n Windows 2000, XP, 2003 (Vista и Server 2008 не тестиро- rpm -ihv http://mirror.yandex.ru/fedora/tigro/8/i386/ ↵
tigro-release-8-1.i386.rpm
вались).
После установки репозитория можно воспользовать-
Теоретически OpenNMS может запуститься на любой ся yum:
платформе, поддерживающей Java SDK 1.4 и выше. Также
к положительным качествам можно отнести модульность yum install jdk
системы и возможность развертывания частей системы
на раздельных серверах (СУБД, демоны сбора статистики Хочу упомянуть об одном неприятном моменте: после
и веб-интерфейс могут быть разнесены). Конечно, можно установки JDK в Fedora 8 необходимо выполнить ряд допол-
добавить и ложку дегтя: за Java-реализацию, обеспечив- нительных шагов, чтобы заставить работать виртуальную
шую кроссплатформенность, пришлось заплатить увели- машину. Дело в том, что при попытке запуска любого Java-
чением потребления ресурсов. приложения выдается ошибка следующего вида:
Система OpenNMS отвечает за мониторинг функцио-
java: xcb_xlib.c:50: xcb_xlib_unlock: Assertion `c->xlib.lock' failed
нирующих в сетевой инфраструктуре сервисов, таких как
Web, DNS, DHCP, сервисы СУБД (Oracle, MSSQL, PostgreSQL Проблема всем давно известная (попробуйте поискать
и др.), однако информация о состоянии сетевых устройств в Google строку с ошибкой) [6] и решается в Fedora 8 сле-
также доступна. дующим образом:
В системе упрощены способы добавления новых сете-
вых устройств для мониторинга, и общий принцип работы sed -i 's/XINERAMA/FAKEEXTN/g' /usr/java/jdk1.6.0_05/ ↵
jre/lib/i386/xawt/libmawt.so
основан на автоматическом обнаружении (discovery) сете-
вых устройств. Обнаружение состоит из двух частей – оп- Возможно, ваш путь к файлу libmawt.so будет отличать-
ределение интерфейсов (IP-адресов) и определение функ- ся от приведенного выше.
ционирующих на этих интерфейсах сервисов. Определение
интерфейсов осуществляется на основе протокола ICMP Установка PostgreSQL
(Ping), а определение сервисов – с помощью сборщиков Если у вас еще не установлен PostgreSQL [4], то установим
(collectors). На данный момент существует несколько сбор- с помошью yum:
щиков, но далее мы подробно рассмотрим сбор статисти-
ки, основанный на протоколе SNMP. yum install postgresql-server
Основной единицей мониторинга системы является ин-
терфейс (interface), который уникально определяется на ос- Теперь выполним начальную инициализацию:
нове IP-адреса. Сервисы (services) привязаны к интерфей-
сам, а интерфейсы, расположенные на одном устройстве, /sbin/service postgresql initdb
группируются в узел (node).
Что ж, давайте не будем упускать шанс оценить качест- Далее необходимо задать базовые настройки серве-
во системы и удобство работы с ней самостоятельно, не по- ра. Для этого нужно отредактировать файлы pg_hba.conf
лагаясь на рекламные строчки и чужие мнения. Присту- и postgresql.conf, находящиеся в /var/lib/pgsql/dat.
пим к установке. Правим файл pg_hba.conf:
30
администрирование
тью филиалов. Каждый из филиалов
объединен с головным офисом в еди-
ную сеть (см. рис. 1).
Пусть адресное пространство кор-
поративной сети будет задано следу-
ющим образом:
n 10.10.10.0/24 – а д ресное про -
странство головного офиса, выде-
ленное для серверов, маршрутиза-
торов, коммутаторов, сетевых при-
нтеров и т. п.;
n 10.10.11.0/ 24 – а д рес ное про -
странство головного офиса для ра-
бочих станций пользователей;
n 10.10.12 .0/24 – а д ресное про -
странство офиса №1;
n 10.10.13.0/24 – а д ресное про -
странство офиса №2;
n 10.10.14.0/24 – а д ресное про - Рисунок 1. Общая схема сети организации с удаленными офисами
странство офиса №3.
n packets-per-second – количество генерируемых ICMP-па-
Наша сеть состоит из достаточного количества марш- кетов в секунду. Не стоит указывать слишком большое
рутизаторов (например Cisco 2800 серии в головном офи- число, если задержки в вашей сети велики.
се и маршрутизаторов попроще – Cisco серий 2600, 1800 n initial-sleep-time – время перед стартом процесса обнару-
и т. п.). На маршрутизаторах настроены SNMP-агенты раз- жения (в миллисекундах, значение по умолчанию – 5 ми-
личных версий, включая третью. Кроме того, имеются также нут). Задержка необходима для полного старта системы,
серверы, среди которых терминальные, серверы баз дан- перед тем как начнут генерироваться события (events).
ных, почтовые и т. п., на многих из которых также установ- n restart-sleep-time – время после окончания процесса
лены SNMP-агенты (например, с помощью Net-SNMP). обнаружения, через которое процесс будет повторно
запущен (в миллисекундах, значение по умолчанию –
Настройка диапазонов сетевого 24 часа).
обнаружения (Discovery) n timeout – время ожидания ответа от обнаруживаемого
Параметры обнаружения устройств описываются в файле IP-адреса.
discovery-cofiguration.xml. Уточню, что все конфигурацион- n retries – количество попыток обнаружения, если с пер-
ные файлы хранятся в каталоге openNMS-install-path\etc, вой попытки ничего не обнаружено.
где openNMS-install-path – путь установки OpenNMS. Ниже
представлен пример файла discovery-cofiguration.xml для на- Глобальные атрибуты можно переопределить внутри
шего варианта сетевой инфраструктуры: вложенных в тег <discovery-configuration> тегов.
n Тег <specific> – указывает определенный IP-адрес,
<discovery-configuration threads="1" packets-per-second="1" включенных в процесс обнаружения.
initial-sleep-time="30000"
restart-sleep-time="86400000" n Тег <include-range> – указывает диапазон IP-адресов,
retries="3" timeout="800"> включенных в процесс обнаружения.
<include-range retries="2" timeout="1500"> n Тег <exclude-range> – указывает диапазон IP-адресов,
<begin>10.10.10.1</begin> исключенных из процесса обнаружения.
<end>10.10.14.254</end>
</include-range> n Тег <include-url> – определяет файл со списком вклю-
<exclude-range> ченных в процесс обнаружения IP-адресов, один IP-ад-
<begin>10.10.11.1</begin>
<end>10.10.11.254</end> рес в каждой строке.
</exclude-range>
<specific>10.10.11.1</specific>
<include-url>file:/opt/OpenNMS/etc/moreip.txt ↵ Все вложенные теги необязательны, но возможно также
</include-url> их множественное добавление. Так, можно задать несколь-
</discovery-configuration>
ко диапазонов с помощью <include-range>, определить не-
Согласно приведенному файлу, будет осуществлять- сколько тегов <specific> и <include-url>.
ся опрос (посылаться ICMP ping) диапазона адресов Итак, при запуске системы OpenNMS по истечении вре-
10.10.10.0/24, 10.10.12.0/24, 10.10.13.0/24 и 10.10.14.0/24, а так- мени initial-sleep-time запускается процесс обнаружения ин-
же одиночного IP-адреса 10.10.11.1 и списка IP-адресов, ука- терфейсов. Если получен ответ на ICMP-запрос, то для об-
занных в файле /opt/OpenNMS/etc/moreip.txt. наруженного интерфейса регистрируется событие (event)
Опишем некоторые глобальные атрибуты по умолчанию, newSuspect, на основе которого в дальнейшем будет осу-
задаваемые в теге <discovery-configuration>: ществлена попытка обнаружения сервисов, функциониру-
n threads – количество потоков для опроса. ющих на данном интерфейсе. А что делать, если ICMP-за-
32
администрирование
<ip-management policy="managed"> заданного времени. Узнать, успевает ли демон опросить
<range begin="10.10.10.1" end="10.10.14.254"/>
<include-url>file:/opt/OpenNMS/etc/include</include-url> все устройства и сервисы, можно, заглянув в файл logs/
</ip-management> daemon/poller.log. В файле нужно найти строку, содержа-
щую максимальное значение параметра alive:
где значение атрибута policy может принимать значение
2008-05-15 17:01:16,201 DEBUG [PollerScheduler-40 Pool]
«managed» и «unmanaged». RunnableConsumerThreadPool$SizingFifoQueue:
Данные настройки действуют на все указанные в capsd- adjust: started fiber PollerScheduler-40 Pool-fiber21
ratio = 1.0476191, alive = 21
configuration сервисы, если только диапазон адресов для ка-
кого-либо сервиса (в нашем случае – SNMP) не переопре- Если значение параметра alive+1 (так как есть еще ро-
делен c помощью тега <protocol-configuration>. дительский поток) близко к значению параметра threads,
Необходимо заметить, что если в процессе обна- то есть смысл увеличить количество потоков опроса.
ружения (discovery) интерфейс по каким-то причинам Параметр serviceUnresponsiveEnabled определяет, какое
не был определен, и не было зарегистрировано событие событие будет генерироваться в случае кратковременного
newSuspect, демон capsd для такого интерфейса не будет сбоя – «выход из строя» (outage) или только «сервис не от-
запущен, даже если указать IP-адрес в файле конфигу- вечает» (unresponsive).
рации capsd явно. Чтобы не генерировать событие «выход из строя»
при кратковременной недоступности, нужно выставить этот
Настройка периодичности опросов параметр в «true».
(polling) Тег <node-outage> определяет поведение в случае не-
После сбора информации об узлах, интерфейсах и функ- доступности всех интерфейсов на узле.
ционирующих на них сервисах приходит время мониторин- Если во время опроса какой-либо сервис на интерфей-
га. Информация о состоянии сервисов, интерфейсов и уз- се не отвечает, генерируется событие NodeLostService, ес-
лов собирается двумя основными способами. ли все сервисы на интерфейсе не отвечают, то генериру-
Первый способ основан на периодических опросах ется событие InterfaceDown. Если параметру status при-
(polling). Процессы-мониторы подключаются к ресурсу своено значение «on», то в случае недоступности всех
и производят простой тест, чтобы определить текущее со- интерфейсов узла не генерируется множество событий
стояние ресурса. Если ресурс недоступен – генерируется NodeLostService и InterfaceDown, а лишь одно событие –
определенное событие. NodeDown. Во время недоступности узла, в случае, если
Настройка периодичности опросов описывается в фай- с помощью тега <critical-service> определен критический
ле poller-configuration.xml. Для удобства введено понятие па- сервис (в нашем случае ICMP), будет опрашиваться толь-
кета (package) сервисов. В файле можно описать несколько ко критический сервис. После того как критический сервис
пакетов, в каждом из которых можно указать собственную будет восстановлен, начнут опрашиваться все остальные
периодичность опросов, а также определить уникальное сервисы. Если тег <critical-service> не задан, то опрос всех
подмножество опрашиваемых сервисов. Кроме того, в каж- сервисов определяется параметром pollAllIfNoCriticalServ
дом пакете можно задавать собственную модель действий iceDefined. Если данное свойство имеет значение «false»,
при недоступности сервиса. Период опроса в случае недо- то будет опрашиваться только первый сервис в пакете, ина-
ступности сервиса меняется динамически и может гибко на- че – все. Для удобства создадим на основе уже готового
страиваться. Также для каждого пакета можно задать вре- пакета exmaple1 пакет ICMP-PKG и поместим туда единст-
мя простоя, когда не будет производиться опрос сервисов. венный сервис ICMP, так как хотим опрашивать устройс-
Глобально периоды простоя для всех пакетов можно задать тва по данному протоколу чаще, чем, например, собирать
в файле poll-outages.xml. статистику по SNMP:
Данные опросов собираются с помощью библиотеки
jrrd – Java-реализации всем известной RRD (Round Robin <package name="ICMP-PKG">
<filter>IPADDR != '0.0.0.0'</filter>
Database). <include-range begin="1.1.1.1" ↵
Рассмотрим файл poller-configuration.xml: end="254.254.254.254" />
<rrd step="60">
<rra>RRA:AVERAGE:0.5:1:89280</rra>
<poller-configuration threads="30" <rra>RRA:AVERAGE:0.5:60:8784</rra>
serviceUnresponsiveEnabled="false" <rra>RRA:AVERAGE:0.5:1440:366</rra>
nextOutageId="SELECT nextval('outageNxtId')" ↵ <rra>RRA:MAX:0.5:1440:366</rra>
xmlrpc="false"> <rra>RRA:MIN:0.5:1440:366</rra>
<node-outage status="on" ↵ </rrd>
pollAllIfNoCriticalServiceDefined="true"> <service name="ICMP" interval="30000"
<critical-service name="ICMP" /> user-defined="false" status="on">
</node-outage> <parameter key="retry" value="2" />
<parameter key="timeout" value="3000" />
Параметр threads определяет максимальное количест- <parameter key="rrd-repository"
value="D:/PROGRA~1/OpenNMS/share/rrd/response" />
во потоков для опроса. Варьируется в зависимости от ко- <parameter key="rrd-base-name" value="icmp" />
личества опрашиваемых устройств и мощности сервера. <parameter key="ds-name" value="icmp" />
</service>
Будьте внимательны с данным параметром, при большом <downtime interval="20000" begin="0" end="300000"/>
количестве опрашиваемых устройств может потребовать- <!-- 20s, 0, 5m -->
<downtime interval="120000" begin="300000" ↵
ся увеличить количество потоков для опроса, так как де- end="3600000"/>
мон может не успеть опросить все устройства в течение <!-- 2m, 5m, 1h -->
34
администрирование
n port – порт, через который идет об-
ращение к SNMP-агенту;
n retry – количество попыток подклю-
чения к SNMP-агенту;
n timeout – время ожидания ответа
от агента;
n read-community – строка для дос-
тупа на чтение к SNMP-агенту;
n write-community – строка для дос-
тупа на запись к SNMP-агенту;
n version – версия SNMP-протоко-
ла.
Павел Закляков
На что только не идёт капитализм ради получения сверхприбыли. Так, производители GDI-
принтеров реализуют свои упрощённые продукты массовым покупателям дешевле, ожидая,
что последние не будут подключать свои принтеры к ОС Linux, а будут покупать лицензии
на коммерческие ОС. Как видим, скупой платит дважды, поэтому лучше вообще не покупать
дешёвые GDI-принтеры. Но что делать, когда это не скупость, а бедность? Тогда на помощь
приходит наша изобретательность.
О
братился ко мне знакомый зался GDI-принтером, а большая часть «выбирайте на любой вкус и цвет». Ча-
с просьбой помочь, настро- не понимающих в технике сотрудников ще всего все эти принтеры подклю-
ить принтер в Linux. «Нашёл уже сроднилась с ОС Linux, из‑под ко- чаются к компьютеру, который подго-
чем удивить», – подумал я. Положил торой принтер упорно отказывался тавливает и отправляет информацию
в сумку ноутбук с Linux, сладенькое печатать. для печати. С этого момента и начи-
к чаю и поехал на выходных разби- наются все тонкости.
раться с проблемой. По приезду ока- GDI-принтеры Несмотря на то что за захват, пере-
залось не всё так просто. Я думал, Немного теории. Любой принтер – это мещение носителя, нанесение изобра-
что в офисах должны жить сетевые устройство, которое может наносить жения или перемещение печатающей
принтеры, подключённые к локаль- на бумагу или другой носитель (плён- головки отвечают различные механиз-
ной сети, а не к отдельному компью- ка, компакт-диск и др.) изображение мы, состоящие из роликов, моторчиков,
теру. (Я даже домой подумывал се- или текст. Принтеры бывают самые шестерёнок и др., всеми этими частя-
бе такой прикупить, так как частень- разные. Не секрет, что в кондитерс- ми управляет некоторое центральное
ко раздражает совместное использо- ком деле существуют пищевые прин- устройство, которое мы назовём про-
вание печатающего устройства вмес- теры фирмы Modecor со съедобными цессором или контроллером принте-
те с родственниками, а покупать два чернилами, которые могут печатать ра. Пользователю всё равно, как эти
принтера – расточительство.) Но, как тексты и фотографии на вафельных части взаимодействуют между собой,
выяснилось, я ошибался. У нас вез- или сахарных пластинах. Существу- ему важен результат. Поэтому с целью
де экономят и, если можно купить что- ют принтеры, печатающие реклам- удобства и унификации принтеров их
то подешевле, то жди подвоха. Новый ные плакаты, наклейки в супермар- контроллеры должны понимать какой-
принтер, который предстояло настро- кетах, заполняющие паспорта, биле- либо язык описания команд, форми-
ить для совместной печати в сети, ока- ты, платёжки и сберкнижки. В общем, рующих задание для печати. Подоб-
36
администрирование
ных языков существует великое мно-
жество: ESC/P-последовательнос- Что такое медиация Медиация – это когда обе стороны
ти, Postscript, PCL, HPGL, Lineprinter, Термин «медиация» относительно молодой не отступают от своих принципов, а согла-
Xerox XES/UDK и др. Наиболее рас- и был заимствован из сферы бизнеса. Мно- шаются идти на переговоры с привлече-
пространёнными являются первые три. гие компании сталкиваются с тем, что года- нием нейтрального посредника – медиа-
Они же практически всегда поддержи- ми не могут решить проблемы с конкурен- тора. Не вдаваясь в тонкости всего этого
ваются современными ОС. Большинс- тами, а то и коллегами. Ни одна из фирм процесса, можно отметить, что на «запа-
тво принтеров делают совместимыми не намерена уступать другой, а повлиять де» больше половины дел, разрешаемых
с этими языками. Казалось бы, всё на ситуацию никто не может, обе сторо- через медиацию, оставляют довольными
очень удобно и хорошо, но прогресс ны недовольны и терпят убытки. «Демок- обе стороны.
не стоит на месте. ратический путь» – использовать судеб- В этой статье я постараюсь выступить
Проблема перехода на новое бы- ную систему безнадёжно устарел, невы- в роли медиатора, решив проблему печати
ла и раньше, вернёмся в 90-е годы годен, долог и редко оставляет в выгоде из под ОС Linux на GDI-принтеры.
прошлого века. У большинства бы- обе стороны.
ли матричные принтеры, «знающие»
только об ESC/P-последовательнос- Так и поступили производители, ни люди, а настраивать операционные
тях, а лазерные и струйные были уде- создавая технологию GDI-принте- системы пришлось мне. Большинству
лом немногих в силу их высокой сто- ра. GDI – это Graphic Device Interface – администраторов наверняка эта исто-
имости, но со временем ситуация на- не что иное, как библиотека функций рия покажется знакомой.
чала меняться. Пользователи стали ОС Windows для осуществления выво-
печатать всё больше графики. Разре- да информации на графические пери- Медиация
шения, а значит и качество, докумен- ферийные устройства, такие как дисп- Не всё так плохо, если бы не наша
тов росли. леи или принтеры. Вместе с этой биб- изобретательность!
В переходный момент появления лиотекой в связке работает драйвер Существуют две проблемы:
языков Postscript и PCL для поддержа- принтера. n GDI-принтеры не совместимы
ния обратной совместимости со ста- Всё бы хорошо, только производи- с другими принтерами;
рыми программами многие лазерные тели принтеров в погоне за дешевиз- n Linux не имеет драйверов под боль-
и струйные принтеры умели эмулиро- ной упустили из виду другие опера- шинство GDI-принтеров.
вать матричные принтеры, а некото- ционные системы, как ОС Linux, и за-
рые умеют делать это и сейчас. С од- были предоставить для них свои драй- Один из путей решения – написать
ной стороны, это хорошо и удобно веры. Предполагаю, что тут не обош- свой драйвер принтера. Подобные по-
всем, но, с другой, это означает допол- лось без влияния производителей пытки для некоторых принтеров Canon,
нительные накладные расходы. Windows. Lexmark, Samsung были реализованы
Например, если на лазерный прин- Так как специфический внутренний в проектах [5-8]. Наиболее информа-
тер, эмулирующий матричный, отпра- формат данных GDI-принтеров не был тивной и полезной статьёй по созда-
вить на печать слово «мама», то он стандартизирован, то у каждого произ- нию собственного драйвера мне пока-
должен получить меньше десятка байт водителя принтеров он свой и каждо- залась статья [7]. Но как быть тем, кто
(4 байта текста плюс несколько слу- му принтеру нужен свой драйвер. Да- не силён в программировании и его
жебных) и напечатать слово. При этом же в такой непростой ситуации драйве- принтер не вошёл в «список счастлив-
принтер, получив 4 байта текста, дол- ры под Linux не понадобились бы, если чиков» выше? Для них остаётся два
жен найти «у себя» таблицу шрифтов фирмы удосужились предоставить ин- пути: первый – проверить, возмож-
и понять, как та или иная буква выгля- формацию о своих протоколах. Уверен, но ли купить опциональный PCL или
дит. То есть это дополнительная память что десяток-другой энтузиастов реши- Postcript-аппаратный модуль у произ-
и вычислительные ресурсы. Когда же ли бы проблему менее чем за неде- водителя принтера, т.е. сделать прин-
мы печатаем изображение, например лю. Но протокол каждого производи- тер совместимым. К сожалению, боль-
того же слова «мама», то оно целиком теля это «know-how» – запатентован- шая часть GDI-принтеров не имеет та-
формируется на компьютере и посыла- ная технология, поэтому они не спешат кой функции и принтер, рассматрива-
ется на принтер. С точки зрения поль- делиться информацией с Open Source- емый в статье (Sharp AR153), также
зователя разницы нет, картинка одина- сообществом. не имеет. Поэтому мне и всем осталь-
ковая в обоих случаях, но с точки зре- Вместе с тем, большинство поль- ным, «невезучим» читателям придёт-
ния технологии и экономии есть. зователей не знакомы с тонкостями ся воспользоваться вторым путём –
Обратная совместимость сейчас технологии печати и не задумываются медиацией.
не очень важна, а если изображение о совместимости. Обидно, но именно Как подру жить GDI-принтер
текста может формировать компью- они, массовые покупатели, не разбира- и Linux? Подобных решений много,
тер, то зачем держать аналогичный ющиеся в деталях, чаще всего опреде- например [9]. Важнее разобраться
блок в принтере? Не проще ли сделать ляют ход истории, развитие принтеров, в том, что мы понимаем под словом
принтер без этого блока, будет навер- операционных систем и многого дру- «подружить». Вышеописанная статья
няка надёжнее, т.к. меньше деталей гого, покупая то, что подешевле. Так и не показалась мне интересной, так как
и точно дешевле? в моём случае – принтер покупали од- не решает поставленной задачи. Под-
Установка
C адреса [3] переходим в раздел «Download» и скачива-
ем архив redmon17.zip, распаковываем и запускаем файл
setup.exe. Программа установки RedMon «спрашивает»,
действительно ли мы хотим установить программу. Отве-
чаем ей: «Да». Установка проходит быстро, после чего вы-
водится окно завершения процедуры установки.
С адреса [4] переходим в раздел «Windows» и скачи-
ваем архив gs862w32.exe (в нашем случае использова-
лась 32‑битная версия) и запускаем его. Скачанный файл –
Рисунок 1. Диалоговое окно установки GPL Ghostscript это самораспаковывающийся архив. Нажимаем кнопку
«Setup», после чего на экране появляется небольшое окно,
ключить принтер к порту компьютера, получать данные по где бежит индикатор прогресса распаковки.
сети и отправлять их на порт принтера не предоставляет- По завершению процесса распаковки появляется диа-
ся сложным. логовое окно с уточнениями, куда ставить программу и где
Поэтому в качестве основы для медиации было выбра- создавать ярлыки (cм. рис. 1).
но решение, описанное в [2], где решается именно пробле- Оставляем указанные значения без изменений (т.е. про-
ма печати из‑под Linux. ОС Linux выступает в роли клиента, грамма будет установлена в директорию «C:\Program Files\
а медиатором оказались две программы: – Redirection Port gs») и нажимаем кнопку «Install». Появляется окно, отобра-
Monitor [3] и Ghostscript [4], запускаемые на Windows. жающее log-файл процесса установки, после чего установ-
Печать происходит по следующей схеме: компьютер ка GPL Ghostscript завершена.
под управлением ОС Linux отправляет документ в фор-
мате PostScript по сети на печать компьютеру с Windows. Настройка
Программа RedMon перехватывает сообщение и отправ- Программы установлены, теперь необходимо их настроить.
ляет его на вход программы Ghostscript, которая, исполь- Создаём текстовый файл winprinter.rsp с помощью блокно-
зуя штатный драйвер принтера под Windows, печатает со- та или <Shift> + <F4> в Far. Сохраняя имя «winprinter.rsp»
общение от своего имени. в блокноте, возьмите его в кавычки, иначе у вас получит-
Конечно, ситуация не позволяет при наличии GDI-при- ся «winprinter.rsp.txt».
нтеров полностью мигрировать офисам на Linux, отказав-
шись от коммерческих лицензий, зато предложенное ре- -I"C:\Program Files\gs\gs8.62\lib"; ↵
"C:\ProgramFiles\gs\gs8.62\fonts"
шение позволяет сократить число Windows-машин до од- -sDEVICE=mswinpr2
ной и тем самым значительно сэкономить средства. Вполне -dNOPAUSE
-dSAFER
возможно, что вышеописанные программы кому-то в буду- -sPAPERSIZE=a4
щем удастся запустить под эмулятором wine, если послед- -sOutputFile="\\spool\SHARP AR-153E N"
ний будет более полно реализовывать эмуляцию библио-
тек Windows и поддержку драйверов, тогда от использова- Если у вас версия Ghostscript 8.62, и путь установки вы
ния Windows можно будет отказаться вовсе. не меняли, то первую строчку править не нужно. В послед-
Рисунок 2. Выбор способа подключения принтера Рисунок 3. Выбор порта подключения принтера
38
администрирование
ней строчке «SHARP AR-153E N» – имя вашего GDI-прин-
тера, скопированное из его свойств. Учтите, лучше скопи-
ровать и вставить, т.к. важно правильное написание с учё-
том пробелов и регистра. Если совершить ошибку, то это
выльется в то, что программа Ghostscript каждый раз при
печати будет выдавать окно и спрашивать: «На какой прин-
тер печатать?».
Добавляем новый виртуальный принтер. Для этого на-
жимаем: «Пуск → Настройка → Принтеры → Установка
принтера». У вас запустится «Мастер установки принтеров»,
где нажимаем кнопку «Далее». В следующем окне выби-
раем «Локальный принтер», галочку «Автоматическое оп-
ределение ...» снимаем (cм. рис. 2).
Нажимаем «Далее», в появившемся окне выбираем
«Создать новый порт», в типе порта указываем «Redirection
port» (cм. рис. 3). Рисунок 4. Настройка параметров порта «RPT1:»
Нажимаем «Далее», появляется окошко с именем пор-
та, где оставляем без изменений «RPT1:».
После переходим к окну выбора принтера. Пред-
лагаю установить любой PostScript-принтер, например
«HP LaserJet 6P/6MP PostScript», т.к. большинство Linux-дис-
трибутивов умеет беспроблемно с ними работать.
Замечание: наиболее ленивые пользователи могут най-
ти какой-нибудь PostScript-принтер на букву «А», т.к. он бу-
дет в начале списка, я же предпочитаю проверенную мо-
дель HP.
Нажимаем «Далее», и в следующем окне придумыва-
ем имя нашему виртуальному принтеру. Имя может быть
любым, но удобнее взять имя настоящего принтера, допи-
сав к нему буквы PS, означающие, что этот (пусть и вир-
Рисунок 5. Проверяем правильность настройки печатью
туальный) принтер может печатать в формате PostScript. на виртуальный принтер
В нашем примере имя будет «SHARP153PS». «Использо-
вать этот принтер по умолчанию...» – выбираем «Нет», т.к. «Browse». Обратите внимание, что существуют два фай-
«по умолчанию» пусть используется настоящий принтер, ла: gswin32c.exe и gswin32.exe. Нам нужен первый, т.к. он
а не виртуальный. работает из командной строки. В поле «Arguments for this
Нажимаем «Далее», после чего открываем общий дос- program are:» заносим имя созданного нами ранее файла
туп к виртуальному принтеру из сети и придумываем ему «winprinter.rsp» c полным путём и необходимыми ключами:
имя. Удобнее всего имя оставить тем же «SHARP153PS».
Нажимаем «Далее», появляется окно с полями «Размеще- @"C:\Program Files\gs\winprinter.rsp" –
ние» и «Комментарий». Заполните эти поля на ваше усмот-
рение и нажмите кнопку «Далее». Появляется окно с вопро- Имя файла взято в кавычки, перед ним записана «соба-
сом о печати пробной страницы. Отвечаем «Нет», т.к. наш ка», а после имени через пробел стоит дефис. Для «Output»
виртуальный принтер ещё не настроен. Нажимаем «Да- выбираем «Copy temporary file to printer». В поле «Printer»
лее». Появляется окно завершения работы мастера уста- выбираем настоящий принтер – «SHARP AR-153E N». В по-
новки принтеров. ле «Run» выбираем «Hidden». Shut down delay – оставляем
Нажимаем «Готово». В течение нескольких секунд ко- значение 300 секунд. Ставим галочки «Print errors» и «Run
пируются необходимые файлы. as User». Заполнение завершено (cм. рис. 4).
После чего в списке принтеров («Пуск → Настройка → Нажимаем «OК», чтобы сохранить введённые нами
Принтеры») появится новый принтер, но он ещё не настро- значения.
ен. Для настройки мы нажимаем правой кнопкой мыши На этом этапе настройка «виртуального» принтера
на значке принтера, после чего выскакивает меню, где мы на стороне Windows завершена. Чтобы убедиться в пра-
выбираем пункт «Свойства». вильности настроек, открываем любой текстовый доку-
В появившемся окне выбираем вкладку «Порты», где на- мент или какое-нибудь приложение, откуда осуществля-
ходим порт «RPT1:», после чего нажимаем кнопку «Нас- ем печать на «виртуальный» принтер. Выскакивает стан-
тройка порта...». дартное окно настроек печати, где мы видим, что прин-
Заполняем поля появившегося окна «RPT1: Properties». тер подключён к порту RPT1: и его тип HP Laser Jet 6P/6MP
В поле «Redirect this port to the program» заносим имя про- PostScript (cм. рис. 5).
граммы «C:\Program Files\gs\gs8.62\bin\gswin32c.exe». Если всё было настроено правильно, ваш настоящий
Удобнее всего это сделать с помощью мыши и кнопки принтер зашумит и выдаст ожидаемый документ через не-
Заключение
Предлагаемое решение проблемы должно работать
для большинства GDI-принтеров. Надеюсь, что в буду-
щем от данного решения и использования Windows-маши-
ны в качестве посредника можно будет отказаться, т.к. ли-
бо производители принтеров начнут уважать Linux-сооб-
щество и будут выпускать драйверы под Linux, либо эмуля-
Рисунок 7. Выбор названия для принтера в Linux тор wine сможет поддержать описанное решение на Linux,
либо ваш принтер окажется в списке счастливчиков, для
сколько секунд, при этом на экране компьютера не должно которых энтузиасты предложат альтернативный драйвер.
выскакивать никаких окон. Если желаемый результат не по- Все три пути имеют шансы быть реализованными, посмот-
лучен – проверьте наличие бумаги, правильность подклю- рим, что случится раньше.
чения и работы настоящего принтера, а также все преды- Удачи!
дущие настройки.
1. М е д и а ц и я – h t t p: // w w w. g a a p . r u / b i b l i o / m a n a g e m e n t /
Настройка принтера в Linux curp/059.asp.
На предыдущем этапе мы убедились: в работоспособности 2. Рецепт «приготовления» Win-принтера для печати из Linux –
нового виртуального принтера теперь осталось малое – на- http://www.nixp.ru/articles/win_printing_in_linux.
строить рабочие станции Linux и проверить печать с них. 3. RedMon – Redirection Port Monitor – http://pages.cs.wisc.edu/
Для этого нажимаем в меню «Система → Администри- ~ghost/redmon/index.htm.
рование → Печать». 4. Ghostscript, Ghostview and GSview – http://pages.cs.wisc.edu/
Далее, так как мы работаем в X от обычного пользова- ~ghost.
теля, а настраивать принтеры привилегия администратора, 5. CAPT – Linux driver for GDI printers (winprinters) – http://
дополнительным окном будет запрошен пароль root. Вво- www.opennet.ru/prog/info/2601.shtml.
дим пароль и нажимаем «OK». 6. CAPT Linux driver – http://www.boichat.ch/nicolas/capt /
В появившемся окне «Настройка принтера» нажимаем index.html.
на значок «Новый принтер», после чего в следующем окне 7. GDI printers under Linux – http://members.tripod.com/rpragana/
выбираем тип подключения «Windows Printer via SAMBA», gdiprinters.html.
а в поле адреса принтера указываем IP-адрес Windows-ма- 8. Установка GDI-принтера Lexmark Z23/33 в Debian – http://
шины и после знака «/» сетевое имя виртуального принте- www.opennet.ru/base/sys/lexmark_print_install.txt.html.
ра из наших прошлых настроек. В моём примере это бу- 9. CUPS – принт-сервер и GDI-принтер – http://www.linuxcenter.ru/
дет «192.168.2.3/SHARP153PS». После заносим имя и па- lib/articles/soft/cups_gdi.phtml.
роль учетной записи, с которой мы будем подключаться 10. Теоретические основы печати в системе Windows – http://
к Windows-машине (cм. рис. 6). www.morepc.ru/net/print/windows_printing.html.
Мы не рассматривали разграничение доступа и ау- 11. Сайт, посвящённый вопросам печати под Linux – http://
тентификацию пользователей принтера на компьютере www.linuxprinting.org.
40
Реклама
администрирование
Сергей Барановский
Туристический бизнес отличается от любого другого, офисного. Сегодняшняя его проблема –
это отсутствие программ, автоматизирующих офисную деятельность в полной мере.
Речь не идёт об альтернативных Open Source-продуктах, т.к. их просто нет. Проблема в том,
что даже коммерческие и специализированные продукты, как «САМО-Тур» и «Мастер‑Тур»,
не дотягивают по своим возможностям до уровня потребностей туроператоров. Статья
рассказывает о том, как можно сэкономить, запустив один из коммерческих продуктов
на платформе Linux, что изначально не поддерживалось разработчиком. Тот, кто не кормит
свою армию программистов-разработчиков, кормит чужую!
П
оддержка туристических услуг Не секрет, что большинство из нас чи деньги – типичное представление
техническими решениями часто хотели бы отдыхать с комфортом, по работы турфирм обывателем. Но это
отстаёт от существующих пот- разумным ценам, но кто из нас заду- как надводная часть айсберга, за ко-
ребностей туроператоров, что приво- мывается, какая часть денег, оплачен- торой кроется очень много внутренней
дит к повышению издержек и сказы- ных за путёвку, идёт непосредственно работы, скрытой от потребителей.
вается на конечном потребителе. Уго- на отдых, а какая покрывает издержки Распечатать путёвку – означает
дить всем операторам и создать уни- производства? иметь какой-либо текстовый редак-
версальный продукт невозможно, как Кажется, что работа менеджеров тор. Связаться с гостиницей – значит
нельзя создать один универсальный проста: расскажи красиво туристу использовать электронную почту или
автомобиль, подходящий всем. о продукте, оформи документы, полу- факс. Забронировать билеты – исполь-
42
администрирование
зовать бразуер и on-line-сервис. Хранить данные о клиен- под Windows. Работающий САМО-сервер, дистрибутив Linux
те – использовать специфическую базу данных. Fedora release 8 (Werewolf) для i386-платформы. Подключе-
Уважающая себя фирма будет работать «в белую», а это ние к Интернету или все упоминаемые и устанавливаемые
означает, что все технические решения будут выполнены дополнительно пакеты. Средства разработки приложений,
без нарушений авторских прав и будут поддержаны либо компилятор gcc и сопутствующие пакеты не нужны.
купленными коммерческими лицензиями сторонних фирм,
либо GPL-подобными, либо у фирмы будет собственный Начало установки
штат программистов. Что из этого дешевле сейчас и выгод- Предполагаем, что установка Linux Fedora 8 (i386) про-
нее в перспективе? Можно установить OpenOffice и другие шла успешно. Сверить версию ядра можно, запустив ко-
продукты на базе Linux, они удовлетворят больше полови- манду «uname ‑a», которая должна выдать следующий ре-
ны потребностей всех турфирм и сэкономят значительно зультат:
средств, но как быть крупным фирмам, где без автомати-
Linux new02 2.6.23.1-42.fc8 #1 SMP Tue Oct 30 13:55:12 EDT 2007
зации производства нельзя, где в день могут проходить со- i686 i686 i386 GNU/Linux
тни и тысячи заявок. Простым хранением текстовых фай-
лов или таблиц с ценами не обойдёшься. Нужны специаль-
ные программные продукты, которых просто нет! Как и нет Отключение yum-updatesd
стандартов в этой сфере. Обычно после установки демон yum-updatesd стоит в ав-
Разные фирмы находят разные решения этой пробле- тозапуске и отвечает за проверку и установку обновле-
мы и в силу конкуренции не спешат делиться своими сек- ний к системе. Вещь полезная, но нам она не очень нужна,
ретами друг с другом. т.к., во-первых, это будет лишний трафик, представьте, ес-
На сегодня можно выделить два больших программных ли сотня-другая компьютеров начнет для обновления ска-
продукта, старающихся занять рынок обслуживания туро- чивать одни и те же пакеты (хотя тут на усмотрение адми-
ператоров, – это «Мастер-Тур» [1] и «САМО-Тур» [3]. Обе нистратора), а, во-вторых, обновления могут помешать за-
программы присутствуют на рынке несколько лет и дале- пуску нужных нам команд ниже по тексту, т.к. yum и yum-
ки от совершенства. updatesd не могут работать одновременно.
Первая пишется на C, вторая – на Delphi, и ни одна Если этот шаг пропустить, то вполне возможна ситуация,
не предназначена для использования под Linux, по край- что при запуске команды «yum install что-то» вы получите:
ней мере такое мнение можно услышать на официальных Existing lock /var/run/yum.pid: another copy is running as pid 3592.
форумах [2, 4]. На мой взгляд, обе фирмы, выпускающие Another app is currently holding the yum lock; waiting for it to exit...
эти продукты, «вырыли себе большую яму» и оказались за- Another app is currently holding the yum lock; waiting for it to exit...
Another app is currently holding the yum lock; waiting for it to exit...
ложниками своих решений. Рынок требует продуктов под ...
Exiting on user cancel.
Linux. Переписать большое количество кода можно, но для
этого необходимы дополнительные программисты, которых Отключить запуск можно двумя путями:
и так в этих фирмах не хватает. А привлечение сторонней Первый – остановить службу yum-updatesd командой:
помощи, как в GPL-продуктах, невозможно, т.к. код закры-
тый. Включение поддержки одного лишь экспорта данных # service yum-updatesd stop
в продукты OpenOffice из «САМО-Тур» заняло почти год,
и, предполагаю, было реализовано только после того, как или
было «простимулировано» потребностями одного крупно-
го клиента, т.к. до этого они отказывались делать поддерж- # /etc/rc.d/init.d/yum-updatesd stop
ку OpenOffice в своих продуктах.
Других продуктов подобного уровня или их аналогов После чего вы увидите:
сегодня нет.
Останавливается yum-updatesd: [ OK ]
Турфирмам выкручивают руки, им надо работать сей-
час, а не держать штат программистов или ждать несколь- Это поможет до следующей перезагрузки или смены
ко лет завершённой реализации под Linux. Вот и получа- уровня запуска.
ется, выгоднее купить сотню-другую лицензий для импорт- Второй – убрать эту службу из автозапуска вообще, что-
ной коммерческой закрытой операционной системы и от- бы после перезагрузки ситуация не повторялась. Проще
работать сезон-другой, окупив затраты за счёт туристов, всего это сделать командой:
т.е. нас с вами, нежели ждать появления на рынке подхо-
дящего продукта, позволяющего снизить цены. Грустно, # chkconfig yum-updatesd off
но, в то же время наш народ очень изобретателен в плане
«как не платить», поэтому снизить цены на конечные про- которая «молча» выполнится, удалив соответствующие
дукты законным путём можно и оставить деньги в нашей файлы запуска из директорий /etc/rc.d/rd?.d.
стране тоже!
Полезные приложения
Требования и настройка прокси
Для перевода клиентов «САМО-Тур» под Linux потребу- Для комфортной работы и успешной настройки нам пона-
ется лицензионная и работающая версия «САМО-Тура» добятся дополнительные пакеты.
44
администрирование
После установки появится файл /etc/freetds.conf, куда мы
прописываем сервер, с которым будем работать (адрес, порт,
протокол, кодировку), добавлением следующих строк:
[Server80]
host = 192.168.0.2
port = 1433
tds version = 8.0
client charset=WINDOWS-1251
Если необходимо, то меняем значок на иконке, за- но, т.к. это требует средств разработки и компилятора, ко-
писываем имя и комментарий, после чего программа торые у нас не установлены, и вообще, это команда нам
«САМО‑Тур» готова к запуску. нужна всего лишь один раз, чтобы достать из архива файл
BdeInst.dll, то, как в анекдоте про муравья, который, глядя
Запуск «САМО-Тур» на железнодорожный рельс, произнёс фразу: «Умный в го-
Запускаем программу щелчком по иконке и видим ошиб-
ки (см. рис. 3, 4).
Как видим, программа запускается, но с базой работать
не хочет. Так как это приложение Delphi, то для нормальной
работы ей требуется наличие BDE (Borland Database Engine),
что недвусмысленно указано во второй ошибке, к установ-
ке которого мы и переходим.
Рисунок 3. Ошибка подключения к SQL-серверу
Установка BDE
Забегая немного вперёд, cкажу, что для установки нам ну-
жен файл BdeInst.dll, так, что если он у вас есть, то можете
пропустить несколько абзацев. Если же у вас нет этого фай-
ла, то вы найдёте его внутри cab-архива bdeinst.cab.
Скачиваем файл следующей командой:
wget http://www.jrsoftware.org/download.php/bdeinst.cab
Рисунок 4. Ошибка инициализации BDE
46
администрирование
В результате, у нас должен по- После быстро пробегает индика-
лучиться файл BdeInst.dll размера тор прогресса, и все окошки исчеза-
3 853 824 байт от 27.01.2000. ют. Лишь в консоли, откуда осущест-
Отступление. Кстати, а вы знаете, влялся запуск установки, можно уви-
чем умный человек отличается от муд- деть сообщение о том, что библиотека
рого? Умный – знает, как выйти из лю- BdeInst.dll была успешно установлена
Рисунок 5. Окно с выбором пути бой ситуации, например, распаковать и зарегистрирована.
установки BDE файл, установив компиляторы, архи-
Successfully registered DLL BdeInst.dll
ваторы, библиотеки и пр., потратив
полдня. А мудрый – знает, как не по- Следующий этап не обязательный,
пасть в эту ситуацию, он, скорее все- но мы можем проверить, видит ли BDE
го, распакует файл на другой Windows- нашу базу, для чего запускаем от обыч-
машине. ного пользователя:
Рисунок 6. Предупреждение о нехватке Имея нужную библиотеку, регист-
свободного места рируем её в wine-эмуляторе, выполнив wine "c:/Program Files/ ↵
Common Files/Borland Shared/ ↵
следующую команду от имени обычно- BDE/BDEADMIN.EXE"
го пользователя:
В результате, мы увидим окно BDE
wine c:/windows/system32/ ↵ Administrator (см. рис. 8).
regsvr32.exe BdeInst.dll
Если мы заходим посмотреть па-
после чего на экране «бежит» инди- раметры базы, то мы можем нажать
катор прогресса и выскакивает окош- на «+» слева от её имени, после чего
Рисунок 7. Подтверждение создания
директории ко с вопросом, куда ставить Borland выскочит окно ввода логина и пароля
Database Engine (см. рис. 5). (см. рис. 9).
ру не пойдёт, умный гору обойдёт», мы Оставляем по умолчанию: «C:\ Теперь, когда мы убедились, что
воспользуемся установкой через yum, Program Files\Common Files\Borland BDE Administrator видит базу, можно
запустив команду: Shared\BDE», а в Linux это будет: ещё раз переходить к запуску «САМО-
«/home/домашняя_директория_поль- Тура». Щёлкаем по ранее созданной
# yum install cabextract зователя/.wine/drive_c/Program Files/ иконке и видимо окошко (см. рис. 11).
... Common Files/Borland Shared/BDE». Ждём пару секунд, и появляет-
Installed: cabextract.i386 0:1.1-7.fc8 Нажимаем «OK» и видим ошибку ся привычное окно входа в систему
Complete
(см. рис. 10).
о нехватке места (см. рис. 6). Програм-
После этого извлекаем из архива ма же не знает, что мы её безбожно ду- Набираем имя для входа и па-
нужный файл: рачим, поэтому нажимаем «yes». роль, и мы в программе. Выбираем
Если же вы сомневаетесь, то про- в меню справочники, заявки и можем
$ cabextract bdeinst.cab верить свободное место в Linux мож- полноценно работать с программой
bdeinst.cab: WARNING; possible 4536 extra но командой df, запомнить легко, со- (см. рис. 12).
bytes at end of file. кращение от слов disk free.
Extracting cabinet: bdeinst.cab
extracting BdeInst.dll Далее, выскакивает вопрос о со- Дополнительно
All done, no errors. здании директории, т.к. её нет, мы со- Так как ядро – важная часть любой сис-
глашаемся (см. рис. 7). темы, то для более стабильной и безо-
uname -a
Linux New1 2.6.24.5-85.fc8 #1 SMP Sat Apr 19 12:39:34 EDT 2008
i686 i686 i386 GNU/Linux
Рисунок 12. Снимок экрана, сделанный во время работы программы «САМО-Тур» под Linux
48
администрирование
может быть очень полезной вещью для забывчивых поль-
зователей и администратора.
Так как мы перезагрузились, то переменная окружения
http_proxy у нас не сохранилась, если же вы этого не дела-
ли, то посмотреть установленные переменные можно ко-
мандой set, а удалить переменную с помощью unset.
wine OOo_2.4.0_Win32Intel_install_ru_infra.exe Рисунок 14. Окно ошибки «Variant does not reference
an automation object», возникающей при попытке экспорта
данных в Open OfficeCalc под эмулятором wine
К сожалению, код экспорта из программы «САМО-
Тур» в самой программе встречается несколько раз, и все Также следует отметить, что миграция пользователей
эти места корректно переписывать у разработчиков в нашей фирме проходит довольно легко, т.к. набор ис-
«САМО-Тура» нет желания, поэтому зачастую можно уви- пользуемых менеджерами программ практически кросп-
деть ошибку «Variant does not reference an automation object» латформенный: Mozilla Firefox, Thunderbird, Sunbird, а те-
(см. рис. 14). перь и «САМО-Тур».
Что в этом случае делать, не знаю, т.к. разработчики Обсудить возникающие вопросы всегда можно на фо-
«САМО-Тура» помогать отказываются. Предполагаю, что руме http://www.samag.ru/forum.
побороть это можно и другим путём, с помощью wine, ес-
ли в последнем появится поддержка «родного» Open Office 1. Страница продукта «Мастер-Тур» – http://www.megatec.ru/
под эмулятором. ?m=60.
2. Тема форума о портировании «Мастер-Тура» под Linux –
Заключение http://crmportal.megatec.ru/Default.aspx?tabid=53&forumid=
Запуск «САМО-Тура» под Linux – это большое достижение 6&threadid=254&scope=posts.
на рынке туроператоров. Это последний камень преткнове- 3. Страница продукта «САМО-Тур» – http://samo.ru/index.php?
ния при переходе на ОС Linux, т.к. для всех других пользо- module=products&showitem=2.
вательских приложений давно существуют не менее фун- 4. Тема форума о портировании «САМО-Тура» под Linux –
кциональные аналоги. http://forum.samo.ru/index.php?s=e9056965fd0ea9773dfc20aa2
Также это большое достижение для моей фирмы в воп- bd1ac84&showtopic=4051.
росе экономии и перевода всего программного обеспече- 5. Репозитарий rpm.livna.org, содержащий дополнительные па-
ния на Open Source. кеты для Fedora Linux – http://rpm.livna.org/rlowiki.
Перед Новым годом нам пришлось закупить с десяток 6. Проект FreeTDS, способ обращения из под UNIX и Linux к сер-
новых ноутбуков, которые мы вынуждены были приобрес- верам MS SQL – http://freetds.org.
ти с установленной ОС Windows Vista, т.е. заплатить за неё, 7. Эмулятор Wine HQ – http://www.winehq.org.
а после стереть и не использовать. Очень жаль, что про- 8. Руководство по ODBC и MyODBC, а также пример исполь-
изводители не предоставляют широкий выбор ноутбуков зования FreeTDS – http://www.citforum.ru/database/mysql/odbc/
без ОС. unixodbc.shtml.
Павел Литвинов
Основой почтового сервера в нашей организации был Exim. Он отлично справлялся со своей
задачей, при том что работал на достаточно слабом компьютере. Но через какое-то время
количество нежелательной почты (спама) в организации возросло до такой степени, что это
стало серьезной проблемой. И эту проблему надо было как-то решать.
50
администрирование
торые с определенной долей вероятности могут присутство-
# Путь к базе, где SpamProb хранит токены
вать в письме, содержащем или не содержащем спам): dbdir=/var/lib/spamprobe
# Путь к месту, где почта хранится до момента доставки Здесь очень важно соблюсти последовательность
spooldir=/var/spool/exim/input при добавлении новых роутеров.
Определяет список пользователей, для которых будет В этом разделе последовательность при добавле-
работать спам-фильтр. В моем случае не требовалось филь- нии не имеет такого значения, как в разделе ROUTERS
тровать письма абсолютно всех пользователей, это обус- CONFIGURATION.
лавливалось личными предпочтениями каждого. Поэтому Как мы можем наблюдать, письма, отмеченные
было принято решение создать специальный файл, содер- как SPAM, отправляются в папку .INBOX.Spam. В моем
жащий имена тех пользователей, кому это действительно случае с помощью программы deliver из пакета dovecot.
было необходимо. Причем у каждого пользователя существует своя папка
Синтаксис файла users такой: .INBOX.Spam, поэтому в случае ошибки спам-фильтра поль-
зователь всегда может заглянуть в нее и поискать пропав-
# Список пользователей, письма которых анализируются шее письмо.
# антиспамом
admin Хочу отметить, что мною приведен пример, который яв-
maxim ляется базовым, но ни в коем случае не окончательным.
hostmaster
oleg Если у вас есть желание, то не поленитесь, прочитайте до-
gl_sten кументацию по Exim (http://www.exim.org) (перевод можно
найти по адресу http://www.lissyara.su/?id=1200). Вам впол-
Примечание: никаких регулярных выражений, только не по силам будет добавить, а может, и улучшить вышео-
точное соответствие. писанный способ фильтрации спама.
Теперь по поводу строки: Ну и напоследок несколько полезных скриптов:
Первый – для обучения spamprobe в ручном режиме:
condition = ${if and {{match{$h_X-SpamProbe:}{SPAM}} ↵
{!match_address{$sender_address} ↵
{lsearch;/usr/local/etc/spamprobe/whitelist}}}} #!/bin/bash
52
администрирование «1С»
Андрей Луконькин
В версии 8.х «1С:Предприятие» появилось много нового и отличного от версии 7.7, поэтому
возникают самые неожиданные вопросы. Вот несколько подобных вопросов, которые часто
задают на форумах как новички, так и старожилы.
При преобразовании числа из 4 мер, параметр «Группировка» устано- кнопку «М+» (или сочетание клавиш
цифр в строку количество символов вить в «0»). <Shift + <Num> + <+>). При этом встро-
в строке равно 5. Почему? Для получения строкового пред- енный калькулятор «1С:Предприятие»
В стандартных региональных настрой- ставления года следует не получать просуммирует все выделенные значе-
ках для русского языка при приведе- числовое значение года, а использо- ния и сохранит в своей памяти. Для то-
нии числа к строке между группами вать функцию «Формат». Например: го чтобы увидеть получившийся итог,
разрядов чисел вставляется нераз- нужно открыть этот калькулятор (на па-
рывный пробел (Символы.НПП, код Строка1 = Формат(ТекущаяДата(), ↵ нели управления или с помощью соче-
"ДФ=yyyy");
символа – 160). тания клавиш <Ctrl> + <F2>) и в поле
Например: «М=» будет видна интересующая нас
Как быстро посчитать итог по сум- сумма, равная итоговой по всем отоб-
Год = 2003; мам документов в журнале за вы- ражаемым в журнале документам.
Строка1 = Строка(Число1);
бранный интервал?
В результате выполнения неболь- Конечно, настоящий программист на- Как получить модуль числа?
шого кода получаем результат: пишет отчет. Но есть и стандартный ва- Среди стандартных функций работы
риант решения, который по силам аб- с числами нет функции получения мо-
Строка1 = "2 003"
солютно всем. дуля числа. Поэтому приходится обхо-
То есть длина строки – 5 символов, В открытом журнале документов диться тем, что имеется в наличии.
включая неразрывный пробел. (или форме списка документа опре- Используя функцию «Макс», нахо-
Чтобы преобразовать число к стро- деленного вида) нужно нажать пра- дим максимум положительного и отри-
ке без вставки символа-разделителя вую кнопку мыши для вызова контекст- цательного значений переменной:
групп (неразрывного пробела), нужно ного меню и выбрать пункт «Вывести
применить функцию «Формат» с пара- список». Весь представленный на эк- Мод = Макс(А, -А);
метром ЧГ=0: ране журнал документов получится
в виде табличного документа. Важ- С помощью этой же функции мож-
Строка1 = Формат(Число1,"ЧГ=0"); но, чтобы там присутствовала колон- но производить замену отрицательных
ка «Сумма», итог по которой мы и хо- значений на ноль:
Чтобы изменить преобразование тим узнать. Колонку «Сумма» выде-
чисел к строке по умолчанию, нужно ляем мышкой или с помощью клави- Неотр = Макс(А, 0);
для информационной базы устано- атуры (кто как привык), затем навер-
вить региональные настройки (напри- ху на панели инструментов нажимаем На этом все. Удачи!
М
не нравится писать про учи- Дар управленца тов! «Мы учим системных админист-
телей. Знаете почему? Эти В 2006 году Николай Леонидович Но- раторов, программистов, они повы-
люди, может быть, из-за того, вожилов попал на Кубок Москвы по уп- шают свою квалификацию, – расска-
что постоянно общаются с детьми, са- равленческой борьбе и открыл для се- зывает Николай Леонидович. – Че-
ми начинают немного по-детски смот- бя мир управленческих поединков. рез некоторое время становятся на-
реть на мир. Не все, конечно, но луч- Вскоре Николай Новожилов получил чальниками, возвращаются: «А мы не
шие перенимают исключительно ребя- лицензию Таллиннской школы менед- умеем управлять... Как заставить ра-
чье качество характера – умение каж- жеров Владимира Константиновича ботать подчиненных?» Многие из тех,
дый день делать открытие. Даже если Тарасова и теперь сам преподает ис- кто учится у нас управленческой борь-
оно состоит всего лишь в увиденной кусство управленческой борьбы, про- бе, – это наши выпускники. Начальни-
впервые радуге... Как ни странно, кан- водит тренировочные управленческие ки отделов приходят учиться, руково-
дидат наук, директор Академии кор- поединки, циклы семинаров по управ- дители IT-компаний. Причем проходят
поративных систем Николай Новожи- ленческому искусству. Слушатели Ака- длительные тренировочные поедин-
лов, взрослый, солидный человек, то- демии корпоративных систем совсем ки, регулярно тренируются, получают
же умеет делать открытия! И это очень не против нового увлечения директо- обратную связь». Интересуюсь: «Нуж-
ему помогает и в профессиональной ра академии, образовательная про- но постоянно тренироваться, чтобы
деятельности, и в семейной жизни. грамма «Искусство управленческой не потерять форму?» – «Я бы не ска-
Не верите? Сейчас убедитесь… борьбы» востребована на сто процен- зал «нужно», я бы сказал – «хочется».
54
человек номера
Причем заметно, что с течением вре-
мени люди меняются. У нас есть один
активный участник, который работает
в IT-компании руководителем проек-
та. Первоначально, когда он выступал
в управленческих поединках, он очень
жестко отстаивал свою позицию, ни
шагу назад, входил в жесткий конф-
ликт. С течением времени манера из-
менилась, он стал играть с противни-
ком, уходить в сторону».
Вообще-то Николай начинал про-
фессиональную деятельность в ка-
честве научного сотрудника в Инсти-
туте радиотехники и электроники Ака-
демии наук СССР. И кандидатскую за-
щитил на тему, весьма далекую от уп-
равления, информационных техноло-
гий, – по организации вычислитель-
ных процессов. В 25 лет Новожилов,
по его собственному признанию, по-
нял, что его возможности роста в этой
области исчерпаны, и в 30 лет ушел
в компьютерный бизнес, чтобы за-
явить о себе достаточно громко и яр-
ко на постах руководителя различ-
ных компаний, в том числе «Радома»,
учебного центра СофтЛайн. Станов-
ление Николая Новожилова как руко-
водителя шло успешно. «Через какое- жешь». «На следующий день, – говорит В судейской коллегии три секто-
то время пришло понимание, что уп- знакомая, – я иду по коридору и вижу – ра. Первый – нанимающиеся на рабо-
равление – это долгосрочный процесс. бумажка валяется. Я кидаюсь к теле- ту, они смотрят за диалогом двух сто-
На нижнем уровне надо просто управ- фону, звоню в хозяйственную часть, го- рон, выбирают, к кому бы из них пошли
лять людьми, чтобы они понимали, ка- ворю: «Уберите срочно!» Сколько лет на работу и голосуют. Вторая судейс-
кие у них функции, а на верхнем уровне я потом там работала, реакция у всех кая коллегия решает, кого из двоих они
ты должен становиться учителем, вос- была абсолютно одинаковая. Все сле- бы отправили на переговоры. Не обя-
питателем». Что дала Николаю Леони- дили за порядком». Он воспитал всех зательно того, кто выиграл. И третья
довичу школа Тарасова? Понимание, за два часа. Он мог прочитать лек- коллегия выбирает, кому бы они до-
что управление – это не рациональ- цию, воздействовать на рациональ- верили собственность. Разные колле-
ный процесс, когда все идет по зара- ном уровне, и вряд ли бы это сработа- гии голосуют по-разному. Чаще все-
нее придуманному плану. Новожилов ло. Это особый дар – совершить пос- го собственники за одного, нанима-
вспоминает: «Ученица Тарасова при- тупок, который потом будет управлять ющиеся – за другого. Один сильный,
вела из своей жизни такой пример. другими людьми. Это технология. Во- всех подавляет, собственник ему до-
Она работала в большом многофунк- обще, управленец – очень тяжелая верил, но работать у него очень слож-
циональном бизнес-центре. И в какой- профессия…» но. Обратная связь дается на несколь-
то момент руководитель этого бизнес- Поединки по управленческой борь- ких уровнях. Первый – это восприятие.
центра собирал топ-менеджеров и го- бе для Николая Новожилова больше, Второй – как ты понимаешь ситуацию,
ворит: «У нас в компании беда про- чем захватывающее зрелище, больше, за что борешься: за конкретную выго-
изошла». 18 человек прилетели на со- чем часть бизнеса. Это важная часть ду или власть? Третий уровень связан
вещание: «Что произошло?» – «Я под- жизни. Он и рассказывает о них с лю- с ценностями и убеждениями. В этих
хожу к лифту, и там, где клавиши на- бовью, подробно, интересно: поединках человек проявляет себя
жимать, жирное пятно». Он поднимает «Огромный зал. Больше 100 чело- очень ярко. Многие люди сами себя ог-
финансового директора: «Вы видели? век зрителей и участников, судейс- раничивают, а на деле они могут сде-
Как вы отреагировали, как вы к этому кая коллегия. Свет юпитеров. Диало- лать гораздо больше и претендовать
относитесь?» Два часа он по очереди ги двух управленцев, которые пыта- на гораздо большее».
беседовал с каждым. Все время пы- ются выяснить, кто из них самый-са-
тался встать человек, который отвеча- мый. Причем главное даже не выиг- Семь Я
ет за хозяйственную службу. Руководи- рать поединок, а воздействовать на ок- Может быть, это и не открытие. А по-
тель говорил: «Ты сиди, ты потом ска- ружающих. моему – самое настоящее и самое
56
человек номера
тически в основе НЛП лежит модели- системами офисе может быть очень то, что не противоречит их внутренним
рование успешной деятельности. Как неуютно, может возникнуть абсолют- убеждениям, когда они хотят сами это
оно создавалось? Был успешный пси- но нерабочая атмосфера. Я спраши- сделать». Смеюсь: «Не могу предста-
хотерапевт Милтон Эриксон, который ваю у Николая Новожилова, что та- вить, что вы кому-то даете приказы ка-
замечательно владел гипнозом. Его кое для него комфортные условия ра- тегоричным тоном…» – «Иногда нужно
вклад в мировую науку оценивается на боты? «Для меня прежде всего важ- и рявкнуть, зависит от ситуации. Си-
уровне Фрейда. Самое фантастичес- но, чтобы были комфортные условия туация может быть связана с экстре-
кое – с чего он начинал, меня это по- для коллектива, для тех, кто здесь ра- мальными условиями, когда некогда
разило. В 18 лет у него был полиомие- ботает. Все говорят, что обстановка в объяснять. А в нормальных услови-
лит, полный паралич, он лежал, не дви- нашей академии способствует работе, ях человек сам должен понять зада-
гаясь. Потом понял, что у него двига- между людьми выстроены нормальные чу, я стараюсь выстроить вокруг него
ется единственная мышца – левое ве- отношения, все стараются друг другу систему, которая подтолкнет его к по-
ко. Через несколько часов ему удалось помочь, что-то сделать друг для дру- ниманию».
привлечь к этому внимание окружаю- га. А уже это дает возможность сде- Хорошая вещь – открытия. Если
щих, он установил с ними контакт, на- лать нормальные условия для тех, кто бы все учителя понимали, как важ-
чал передавать информацию, еще че- у нас учится». – «А что такое комфорт но не орать на ребенка, а мягко под-
рез несколько часов попросил, чтобы для вас лично?..» – «Комфортные ус- вести его к правильному ответу… Ес-
его передвинули к окну, и его поня- ловия – это когда у тебя ни с кем нет ли бы понимали, что гораздо интерес-
ли! От этого человека ничего не оста- жестких противоречий. Конечно, конф- нее не учить, а делиться открытия-
лось, тем не менее стал великим пси- ликты периодически возникают. Важ- ми… Тогда не было бы несчастных де-
хотерапевтом за счет своей силы во- но, как вы из них выходите. Если я чем- тей и скучных школ. Вот я прикосну-
ли. Мне кажется, болезнь способству- то недоволен – я могу заявить: «Делай лась к открытиям Николая Новожило-
ет профессиональному росту челове- так-то, и баста!» А могу подойти и ска- ва. А теперь с ним прикоснулись и вы.
ка. Она заставляет тебя концентриро- зать: «Давай обсудим проблему, пои- Такая цепная реакция…
ваться. Я недавно к этому пришел. Од- щем пути решения. Я хочу, чтобы че-
нако, думаю, не надо ждать, пока мы ловек пришел сам к тому, чего я хочу. Текст Оксаны Родионовой,
заболеем. Жаль, что мы, здоровые лю- Это комфортно – когда люди делают фотографии Владимира Лукина
ди, тратим свои силы подчас не очень
рационально».
Такие открытия, конечно, не дают-
ся просто так. Это не озарение – ус-
лышал и сразу все понял, как надо
правильно жить… Человек готовит-
ся к ним всю жизнь. Николай Леони-
дович размышляет, и нельзя с ним не
согласится: «Мы сейчас очень часто
хотим стерильной жизни – чтобы все
было чисто, аккуратно, но мы не гото-
вы отстаивать ее, если придут новые
люди и попытаются у нас ее отобрать.
Об этом часто не задумывались вели-
кие цивилизации. А ведь это аксиома:
если ты доволен, сыт – значит у тебя
очень скоро все отберут. Мы должны
быть сильными. Хорошо, что сейчас
формируется уважительное отноше-
ние к армии. Мы забыли, что они за-
нимаются очень тяжелым, очень нуж-
ным для всех делом».
В проспектах академии слуша-
телям обещан, и это чистая прав-
да, «бескомпромиссно высокий уро-
вень сопутствующего сервиса» – пи-
тание, внимательный персонал, кон-
диционеры… Это привлекает клиен-
тов, и только самые мудрые понима-
ют – это не главное. Известно ведь,
что даже в самом современном, напич-
канном современной техникой и сплит-
Правда об идентификаторах
безопасности
Иван Коробко
Для многих идентификатор безопасности – это темный лес. На самом деле все гораздо проще.
Эта статья поможет превратить его в прекрасную цветущую поляну.
В
настоящее время в Windows пов- фикаторов безопасности: GUID, SID, ятность генерации двух совпадаю-
сюду используются идентифи- UUID (CLSID). щих ключей ничтожно мала. GUID –
каторы безопасности: в правах это частная реализация (компани-
доступа, в реестре, в Active Directory. Виды идентификаторов ей Microsoft) стандарта, имеющего
Понимать, откуда берутся эти иден- безопасности название Universally Unique Identifier
тификационные номера, очень важ- n GUID (Globally Unique Identifier) – (UUID).
но, поскольку это значительно облег- представляет собой уникальный n SID (Security Identifier) – уникаль-
чит жизнь как системным админист- 128-битный идентификатор. Его ная бинарная структура данных пе-
раторам, так и специалистам систем- главная особенность – уникаль- ременной длины, однозначно иден-
ной поддержки. ность. Общее количество уни- тифицирующая объект: учетную за-
В Windows широко используется кальных ключей настолько вели- пись пользователя, группы, домена,
несколько видов различных иденти- ко (2128 или 3,4028x10 38), что веро- компьютера и т. д.
58
безопасность
n U U I D ( U n i v e r s a l l y U n i q u e Таблица 1. Структура GUID Таблица 2. Расшифровка значения первого байта
последнего блока GUID
Identifier) – это стандарт иденти- Бит Байт Часть Количество
фикации, используемый в созда- символов в блоке Значение Описание
групп, GUID есть у всех объектов, со- Для генерации GUID можно воспользо- 3 GUID основанный на имени (MD5 hash)
здающихся в Active Directory. Значение ваться либо одним из on-line-генерато- 4 Произвольный GUID
GUID хранится в бинарном виде в па- ров в Сети, либо встроенной в Windows 5 GUID основанный на имени(SHA-1 hash)
раметре ObjectGUID (см. рис. 1). стандартной библиотекой с помощью
Таблица 4. Расшифровка значений
сценариев (см. листинг 1). параметра «уровень идентификации» SID
Структура GUID Идентификатор Значение
GUID – это 16-байтный (128-битный) Листинг 1. Генерация GUID (V‑Script)
SECURITY_NULL_SID_AUTHORITY 0
идентификатор, описанный в стандар- Set TypeLib = ↵
CreateObject("Scriptlet.TypeLib") SECURITY_WORLD_SID_AUTHORITY 1
те «A Universally Unique IDentifier (UUID)
wscript.Echo TypeLib.Guid SECURITY_LOCAL_SID_AUTHORITY 2
URN Namespace» (RFC 1422). Условно Set TypeLib = Nothing
идентификатор разбивают на 4 части SECURITY_CREATOR_SID_AUTHORITY 3
60
безопасность
Чтение SID из Active Directory
В Active Directory SID хранится в пе-
ременной objectSID как массив, со-
стоящий из бинарных элементов
(см. рис. 1). Размер любого SID в Active
Directory – 28 байт. Рассмотрим про-
цесс преобразования бинарной записи Рисунок 5. Определение SID пользователя с помощью утилиты GetSID.exe
идентификатора безопасности в тра-
диционный (строковый) вид. лены нестандартным образом (выделенны красным цве-
В бинарной форме идентификатор безопасности мож- том и подчеркнуты). Остальная информация разделе-
но записать в общем виде так: на на группы по 4 байта (выделенны фиолетовым цветом
и подчеркнуты)). В формуле составления идентификато-
A-B-C-Z1-Z2-…-Zn-1-Zn (2) ра не участвует.
В следующих 6 байтах (48 битах) хранится значение на-
Рассмотрим преобразование идентификатора безо- ивысшего уровня идентификации.
пасности из бинарного вида в строку на примере домен-
ной учетной записи TEST (см. рис. 4). 01 05 00 00 00 00 00 05 15 00 00 00 2C 8F EC FB
Каждый элемент массива – это 1 байт или 8 бит. E5 F2 48 01 35 A6 99 55 26 1B 00 00 (4)
Для преобразования идентификатор (формула 3) разбива-
ют на группы по 4 байта. Исключение составляют первые Преобразование осуществляется по следующему прин-
8 байт. Они разбиваются на три группы: первые две по бай- ципу. Каждая группа перезаписывается с конца в шестнад-
ту, последняя – 6 байт. Такое разбиение обусловлено фор- цатеричной форме (формула 5).
матом традиционной формы записи (формула 1).
S — 0x1 — 0x5 — 0 x 00 00 00 00 00 05 —
0 x 00 00 00 15 — 0 x FB EC 8F 2C — 0 x
01 05 00 00 00 00 00 05 15 00 00 00 2C 8F EC FB 01 48 F2 E5 — 0 x 55 99 A6 35 — 0 x 00 00 1B 26 (5)
E5 F2 48 01 35 A6 99 55 26 1B 00 00 (3)
В первом байте (см. таблицу 4) хранится версия струк- Перед записью добавляют символ S, свидетельствую-
туры идентификатора. В формуле 1 это параметр R, в фор- щий о том, что это идентификатор безопасности. А 2-й байт
муле 2 – A. Как уже отмечалось ранее, он всегда равен 1. исключают, поскольку он несет информационную нагрузку.
Во втором байте (см. таблицу 5) хранится количест- Далее полученные числа преобразуются из 16-ричной сис-
во групп по 4 байта, которые следуют за первыми тре- темы исчисления в 10-ричную (формула 6). На этом преоб-
мя группами (формула 4, в ней первые 8 байт, распреде- разование закончено.
Таблица 6. Широко известные идентификаторы
Kit Tools. Утилиту можно загрузить с сайта Microsoft: http:// {ff393560-c2a7-11cf-bff4-444553540000} History
download.microsoft.com/download/win2000platform/Getsid/1.0/ {00020d75-0000-0000-c000-000000000046} Inbox
NT5/EN-US/getsid.exe. В первую очередь GetID.exe предна- {00028b00-0000-0000-c000-000000000046} Microsoft Network
значена для сравнения SID разных пользователей, однако {20d04fe0-3aea-1069-a2d8-08002b30309d} My Computer
она может с успехом использоваться для получения SID кон-
{450d8fba-ad25-11d0-98a8-0800361b1103} My Documents
кретного пользователя. После завершения работы масте-
{208d2c60-3aea-1069-a2d7-08002b30309d} My Network Places
ра утилиту и сопутствующую документацию можно найти
{1f4de370-d627-11d1-ba4f-00a0c91eedba} Network Computers
в каталоге C:\Program Files\Resource Kit.
Утилита GetSID.exe запускается из командной строки {7007acc7-3202-11d1-aad2-00805fc1270e} Network Connections
и имеет следующий синтаксис: {2227a280-3aea-1069-a2de-08002b30309d} Printers and Faxes
{7be9d83c-a729-4d97-b5a7-1b7313c39e0a} Programs Folder
GetSID.exe \\server1 account \\server2 account
{645ff040-5081-101b-9f08-00aa002f954e} Recycle Bin
{e211b736-43fd-11d1-9efb-0000f8757fcd} Scanners and Cameras
Для определения SID рекомендуется задать две одина-
{d6277990-4c6a-11cf-8d87-00aa0060f5bf} Scheduled Tasks
ковые пары параметров: сервер и имя учетной записи в се-
{48e7caab-b918-4e58-a94d-505519c795dc} Start Menu Folder
ти. Если необходимо определить SID доменной учетной за-
писи, то в качестве сервера необходимо указать либо имя {7bd29e00-76c1-11cf-9dd0-00a0c9034933} Temporary Internet Files
контроллера домена, либо имя домена в сокращенной фор- {bdeadf00-c265-11d0-bced-00a0c90ab50f} Web Folders
ме. Например, необходимо определить SID пользователя
test в домене MSK. Для этого выполним команду: мых в данном компьютере, можно найти в реестре в ветви
HKEY_CLASSES_ROOT\CLSID (см. рис. 6).
GetSID.exe \\MSK test \\MSK test Каждая UUID-папка имеет внутреннюю структуру, в ко-
торой находятся параметры, определяющие местоположе-
В результате выполнения этой команды на экран будет ние объекта, контекстное меню, значок объекта и другие
выведено сообщение, показанное на рис. 5. свойства. В таблице 7 приведены стандартизованные UUID
объектов, которые во всех версиях Windows одинаковы.
Широко известные идентификаторы SID
Под хорошо известными SID понимают группу идентифи- Генерация UUID
каторов безопасности, идентифицирующую общих пользо- При создании какого-либо приложения с помощью Microsoft
вателей и общие группы безопасности. Их значения одина- Visual Studio .NET, GUID объектов формируется автомати-
ковы во всех операционных системах. чески. Если необходимо сгенерировать идентификаторы
явным образом воспользовавшись одним из оn-line гене-
Идентификатор безопасности UUID раторов: http://www.famkruithof.net/uuid/uuidgen.
Универсальный уникальный идентификатор активно ис-
пользуется для создания программного обеспечения. Все Заключение
объекты Windows имеют свой уникальный идентифика- В заключение хочется сказать: несмотря на то, что пред-
тор – UUID. Перечень всех идентификаторов, используе- ложенные знания не являются самыми необходимыми, они
важны. Понимание процесса образо-
вания SID и других идентификаторов
безопасности поможет решить мно-
жество проблем, возникающих в про-
цессе эксплуатирования сети. Мно-
гие «чудеса» станут вполне объясни-
мыми.
62
Реклама
безопасность
Михаил Кондрин
64
безопасность
Центральное ча проверяется тем, что обеим сторо- например, в виде полей subject (субъ-
правительство, или нам удалось установить сетевой об- ект) и issuer (гарант) сертификатов, ко-
Групповая солидарность? мен, который они при желании могут торые представляют по своему форма-
Прежде чем заняться практической шифровать, используя все тот же сес- ту типичный Distinguished Name (DN),
демонстрацией новых возможностей сионный ключ. хорошо известный сетевым админис-
Heimdal-Kerberos, хотелось бы напом- Относительная слабость симмет- траторам, знакомым с LDAP.
нить историю возникновения Kerberos ричных шифровальных алгоритмов Главным достоинством PKI являет-
и систем PKI, в частности стандар- компенсируется тем, что все паро- ся использование более сильных (хо-
та X.509, используемого в том чис- ли, пересылаемые по сети, коротко- тя одновременно и более требователь-
ле и в таком популярном и известном живущие, и срок их действия истека- ных к вычислительным ресурсам) алго-
в мире Linux продукте, как OpenSSL. ет, прежде чем их бы удалось сломать ритмов несимметричного шифрования,
Эта история поможет понять досто- злоумышленнику. что позволяет иметь более долгоживу-
инства и недостатки каждого из ре- Авторы Kerberos не особо заботи- щие сертификаты и ключи.
шений. лись о масштабируемости своего про- Подробнее с форматом сертифика-
Протокол Kerberos и идея публич- токола, поскольку их целью являлись тов можно познакомиться из многочис-
ных ключей, представленная в прото- университетские сети с большим чис- ленных руководств по OpenSSL/SSL/
коле X.509, появились почти одновре- лом не слишком мощных компьюте- TLS, например из статей [2, 3].
менно в середине 80-х годов, и оба ров (поскольку в эти сети входили В то же самое время большинс-
пытались решить одну и ту же зада- и компьютеры студенческих кампусов), тво недостатков X.509 (в первую оче-
чу обеспечения сетевой безопаснос- но все же не сопоставимых по раз- редь претензия на универсальность –
ти. Под сетевой безопасностью нужно меру с сетями масштаба целой стра- «один инструмент на все случаи жиз-
понимать не только шифрование пере- ны. Но по мере развития этого прото- ни») связаны именно с тем, что стан-
дачи данных и дистанционной провер- кола (переходу от версии Kerberos 4 дарт X.500 никогда не был реализо-
ки паролей, но и возможность как сер- к Kerberos 5) происходило одновре- ван в полном объёме. (Несмотря на
веру, так и клиенту удостовериться менно и добавление в него дополни- свою утопичность, идея глобальной
в идентичности друг друга. Оба про- тельной функциональности, позволя- информационной службы имеет пра-
екта решали эту проблему примерно ющей с помощью трастов объединять во на существование. В конце концов
одинаковым способом – введением несколько секторов (realms) Kerberos существует же глобальная система
третьей trusted-стороны, авторитету в общую сеть. доменных имён, и кто знает, если бы
которой доверяли бы обе стороны се- История PKI шла совсем иным стек протоколов OSI не был бы вытес-
тевого взаимодействия. путём. Хотя постепенно она эволюцио- нен стеком TCP, может быть, и стан-
На этом их сходство заканчивалось. нировала примерно к тому же, чем сей- дарт X.500 получил бы практическое
Kerberos возник всё же несколько ра- час является Kerberos, но изначально воплощение.)
нее и идеологически он был постро- она задумывалась как глобальная цен- Подробное обсуждение недостат-
ен более просто. Использование ал- трализованная система. X.509 возник ков PKI можно найти в статье Петера
горитма симметричного шифрования, как стандарт OSI, организации, кото- Гутмана [4], а также в наборе слайдов
когда третья сторона (KDC – контрол- рая первой попыталась стандартизо- его же авторства [5] с более язвитель-
лер сервера Kerberos) владеет пароля- вать сетевые протоколы (ей же при- ной, но одновременно более смеш-
ми как клиента, так и сервера, поэтому надлежит стандарт на знаменитый ной критикой PKI (эта подборка, кста-
может обеспечить обе стороны общим 8‑уровневый стек сетевых протоколов ти, цитируется в английской Википе-
ключом, пригодным как для идентифи- OSI, в настоящее время вытесненный дии в статье [6]). Читать слайды до-
кации друг друга, так и для шифрова- более простым TCP). вольно трудно, но если вы восстано-
ния пересылаемых данных, позволяет В частности, X.509 возник как стан- вите канву его аргументов, используя
более экономно использовать вычис- дарт аутентификации и авторизации статью [4], то пара часов непрерывно-
лительные ресурсы. для доступа к X.500 (Directory Access го смеха вам гарантирована.
В то же время протокол работал Protocоl/DAP), интересного проекта, В самом деле, единственным усло-
в онлайновом режиме – выпуск сес- но тоже в настоящее время вытес- вием, позволяющим клиенту и серве-
сионных ключей (билетиков, tickets) ненного своим более лёгким потом- ру удостовериться в идентичности друг
всегда выполняется сервером KDC ком – LDAP. Х.500 предполагал созда- друга, – это наличие ключей, сертифи-
и по специальному протоколу пере- ние глобального каталога, где иден- цированных (подписанных) третьей
сылается клиенту. Не вдаваясь в под- тичность двух узлов каталога удосто- стороной. Но вне привязки к глобаль-
робности (которые, однако, можно най- верялась бы специальными сертифи- ному иерархическому дереву возни-
ти в статье [1]), идентичность клиента катами, «подписанными» Certification кают естественные вопросы – «Кто та-
и сервера удостоверяется тем, что им Authority (CA), привязанной к узлу, ко- кая это третья сторона и чью идентич-
удалось расшифровать сессионный торый является для них, во-первых, об- ность она сертифицирует?». То есть
ключ, который получен от KDC, буду- щим предком, а во-вторых, доверенной в рамках директории DAP сертифи-
чи зашифрованным паролями клиен- третьей стороной. кат X.509 имеет прозрачный смысл –
та (пользователя) и сервера. А успеш- Собственно, отголоски этой идеи это средство авторизации доступа
ность расшифровки сессионного клю- до сих пор наблюдаются в OpenSSL, к какому-то из узлов каталога, а иерар-
66
безопасность
n изготовление частного ключа; Есть определённые соглашения по расширениям, при-
n оформление запроса на подпись сертификата (кото- писываемым сертификатам различного типа. Расшире-
рый может быть адресован внешней доверенной ком- ние .pem означает, что сертификат закодирован в фор-
пании); мате Base64, и как правило состоит из двух частей, вклю-
n подписывание сертификата. чающих в себя приватный ключ и собственно сертифи-
кат. Файлы с расширением .crt содержат только сертифи-
Понятно, что все эти сложности не нужны, если вы со- кат с публичным ключом, но без приватного, а .key – толь-
бираетесь изготовлять самоподписанные сертификаты. ко приватный ключ без сертификата. Кроме того, встреча-
Как, например, изготовление своего CA: ются ещё .csr (Certificate Signing Request), но в данной ста-
тье они не используются.
hxtool issue-certificate \ Например, для создания защищённых страниц на веб-
--self-signed \
--issue-ca \ сервере Apache вам понадобится cгенерировать серти-
--subject="CN=CA,DC=myrealm,DC=ru" \ фикаты для сервера и клиента, одновременно подписав
--lifetime=10years \
--generate-key=rsa \ их c помощью приватного CA-ключа:
--certificate=FILE:ca.pem
hxtool issue-certificate \
--subject="CN=www.myrealm.ru,DC=myrealm,DC=ru" \
Справку по программе hxtool и её командам можно полу- --type="https-server" \
чить с помощью «hxtool help» и «hxtool <command> -help». --hostname="www.myrealm.ru" \
--generate-key=rsa \
В данном случае выдаётся самоподписанный сертифи- --ca-certificate=FILE:ca.pem \
кат Certificate Authority сроком на 10 лет, выданный пользо- --certificate=FILE:https.pem
вателю с DN CN=CA,DC=myrealm,DC=ru c использованием hxtool issue-certificate \
алгоритма шифрования RSA. --subject="CN=www.myrealm.ru,DC=myrealm,DC=ru" \
--type="https-client" \
Минимальную информацию о сертификате можно по- --generate-key=rsa \
лучить с помощью команды: --ca-certificate=FILE:ca.pem \
--certificate=FILE:https-client.pem
68
безопасность
mike@MUREALM.RU:DC=ru,DC=myrealm,UID=mike После чего сертификат на жёстком диске стирается,
и в дальнейшем доступ к компьютеру разрешается только
Теперь осталось только перезапустить KDC, чтобы поль- пользователям, которые правильно указали имя принципа-
зователь mike мог получать свой супербилет командой: ла, находящегося в базе Heimdal, и предъявили на флешке
соответствующий сертификат.
#kinit \color{red}--pk-user=FILE:mike.pem ↵ Хотя возможности pkinit ещё не задействованы в про-
\color{black} mike
#klist -v грамму login из состава Heimdal, но эту задачу можно ре-
Credentials cache: FILE:/tmp/krb5cc_P23967
шить либо с помощью PAM-модуля pam-krb5 [12], либо
Principal: mike@MYREALM.RU в тестовых целях можно обойтись простым bash-скрип-
Cache version: 4 том login.sh:
Server: krbtgt/MYREALM.RU@MYREALM.RU
Client: mike@MYREALM.RU #!/usr/bin/bash
Ticket etype: des3-cbc-sha1, kvno 1 echo -n "Insert pem-certificate and hit enter when ready!"
Ticket length: 364 read
Auth time: Apr 16 13:00:29 2008 /usr/bin/kinit -C FILE:/dev/sda1 $2 && \
/usr/bin/kgetcred host/$(hostname -f) && \
End time: Apr 17 13:00:29 2008
/usr/bin/login -f $2
Ticket flags: forwardable, initial, pre-authenticated
Addresses: addressless
который запускается из /etc/inittab, сконфигурированного
Heimdal также позволяет использовать сертификаты следующим образом:
в формате PKCS11 – одного из стандартов, получившего
распространение при работе со smart-card. Его практи- ...
c1:1235:respawn:/sbin/agetty -l ↵
ческое применение зависит от оборудования для чтения /usr/local/bin/login.sh 38400 tty6 linux
пластиковых карт, установленного на вашем компьюте- c2:1235:respawn:/sbin/agetty -l ↵
/usr/local/bin/login.sh 38400 tty6 linux
ре, но в демонстрационных целях можно поэксперимен- ...
тировать с программным модулем soft-pkcs11, разрабо-
танным одним из основных авторов Heimdal – Лав Эрнк- Этот скрипт просит пользователя вставить сменный но-
вист Острандом [11]. ситель в usb-slot, после чего запускает kinit. При безоши-
В данном случае модуль позволяет более длинным бочном получении супербилет он пытается получить билет
путём добраться до того же самого сертификата. В пос- для доступа к рабочей станции, как к принципалу host/<имя
ледних версиях Heimdal (выше 1.0) этот модуль входит в со- компьютера> (хотя это не обязательно, но именно таким об-
став Heimdal в виде библиотеки libhx509.so, так что можно разом работает стандартный Kerberized login), а после этого
поэкспериментировать с ним, не устанавливая дополни- уже запускается программа login из пакета Heimdal в «поль-
тельных библиотек. Конфигурация модуля осуществляет- зователь-уже-зарегистрирован» режиме (ключ -f в вызове
ся с помощью rc-файла, на который указывает перемен- login). Дёшево, но сердито!
ная окружения SOFTPKCS11RC. Таким образом, новые версии Heimdal позволяют объ-
Для наших целей этот файл должен выглядеть таким единить сильные криптографические алгоритмы, исполь-
образом (заметьте, что разделителем полей является та- зуемые в инфраструктуре публичных ключей, и гибкость
буляция!): настроек Kerberos для контроля доступа к сетевым ресур-
сам.
certificate Certificate Mike ↵
FILE:/home/mike/secure/mike.pem
1. Кондрин М. Изучаем принципы работы Heimdal Kerberos. //Сис-
То есть в нем указано расположение на жёстком диске темный Администратор, №6, 2005 г. – С. 56-59.
pem-сертификата. После этого запуск: 2. Стахов В. Теория и практика OpenSSL. //Системный Админист-
ратор, №1, 2003 г. – С. 17-26.
kinit \color{red}--pk-user=PKCS11:libhx509.so ↵ 3. Стахов В. Практика OpenSSL. //Системный Администратор,
\color{black} mike
№2, 2003 г. – С. 32-36.
позволяет получить супербилет. Понятно, что это имеет 4. Peter Gutman. PKI: It’s Not Dead, Just Resting. Computer, 35(8),
смысл в тестовых целях, в реальных «полевых» условиях 41‑49, 2002 – http://www.cs.auckland.ac.nz/ pgut001/pubs/
вместо динамической библиотеки необходимо указать мо- notdead.pdf.
дуль, который управляет устройством для считывания ин- 5. Peter Gutman. Everything you never wanted to know about pki but
формации со smart-card, установленного в компьютере. were forced to find out. – http://www.cs.auckland.ac.nz/ pgut001/
В качестве более или менее практического примера pubs/pkitutorial.pdf.
применения этих возможностей Heimdal попробуем от- 6. http://en.wikipedia.org/wiki/Public_key_infrastructure.
крыть доступ к некоей рабочей станции под управлением 7. Кондрин М. Развертываем Heimdal Kerberos. //Системный Ад-
Linux только для обладателей pem-сертификатов, запи- министратор, №7, 2005 г. – С. 20-25
санных на сменный носитель (USB флешку). То есть сер- 8. http://www.h5l.org/dist/src/heimdal-1.1.tar.gz.
тификат сбрасывается на неформатированный usb-носи- 9. http://www.vanemery.com/Linux/Apache/apache-SSL.html.
тель обычной командой cat: 10. http://www.ietf.org/html.charters/krb-wg-charter.html.
11. http://people.su.se/ lha/soft-pkcs11.
cat mike.pem > /dev/usb/sda1 12. http://www.eyrie.org/ eagle/software/pam-krb5.
Изучаем теневое
копирование
Роман Васильев
Теневое копирование файлов, записываемых на внешние носители, стало практически
обязательным инструментом в арсенале корпоративных хранителей секретов. Разберемся
в особенностях реализации и работы этой технологии.
IT
-отделы и службы безопас- хранения данных, например, флешки, ватель может стать причиной утечки
ности современных предпри- MP3-плееры, цифровые камеры и т. д. существенных объемов конфиденци-
ятий уже хорошо знают, ка- Если в организации отсутствует какой- альной информации. Именно поэто-
кую опасность для конфиденциаль- либо контроль использования этих ус- му программные продукты, реализу-
ных данных представляют портатив- тройств, с их помощью нелояльный ющие контроль использования таких
ные USB-устройства с возможностью или просто невнимательный пользо- устройств в масштабах предприятия,
70
безопасность
стали обязательным средством в ар- Таблица 1. Измерение времени копирования файлов
сенале борьбы за сохранение конфи- Без теневого копирования DeviceLock Zlock
денциальности информации. Один большой файл 125 c. 150 c. (+20 %) 175 c. (+40%)
На сегодняшний день известно Множество маленьких файлов 760 c. 880 c. (+15 %) 935 c. (+23 %)
множество программных продуктов,
которые реализуют не только базовый мации, это создаст повышенную на- n русскоязычный интерфейс;
функционал по разграничению досту- грузку на сеть. n документация на русском языке.
па, но и дополнительные возможнос- Во-вторых, для того чтобы анали-
ти, такие как журналирование и мони- зировать всю эту информацию, нужно Очевидно, что для средних и круп-
торинг действий пользователей, цен- большое количество людей или какие- ных компаний, для которых наиболее
трализованное администрирование, либо интеллектуальные автоматизиро- актуальна защита от утечек инфор-
управление через групповые полити- ванные средства, при том что задача мации через внешние устройства, не-
ки Active Directory и т. д. В число этих их поиска, закупки, настройки и интег- выполнение перечисленных условий
возможностей у большинства продук- рации с системой разграничения дос- делает внедрение системы довольно
тов включено так называемое «тене- тупа далеко не тривиальна. рискованным.
вое копирование». Данная функция В связи с этим более оправданным Приведенные ниже тесты прово-
при условии разрешенного доступа может быть выборочное использова- дились на ноутбуке IBM ThinkPad T43p
к внешнему носителю на запись обес- ние теневого копирования на компью- с процессором Pentium M 1.8 МГц и 1 Гб
печивает копирование всей информа- терах отдельных сотрудников. Прин- RAM, операционная система Windows
ции, которую пользователь записывает цип выбора таких сотрудников может XP SP2. В качестве внешнего носителя
на внешний носитель, сначала на ло- быть различным, например, для новых использовалась флешка Transcend JF
кальный жесткий диск, а потом пере- сотрудников во время испытательного V60 с файловой системой FAT32.
нос ее на сервер для последующего срока, для сотрудников, в отношении
анализа. Это может быть очень удоб- которых имеются какие-либо подозре- Копируем файлы
но в случае, если по каким-либо при- ния, для каждого сотрудника одну не- Наиболее распространенная операция
чинам сотруднику необходимо иметь делю в году и т. д. с внешними носителями – копирова-
возможность записывать информацию Итак, попробуем разобраться, ние файлов с жесткого диска ПК или
на внешний носитель, поскольку поз- что представляет собой теневое ко- из сети. Проведем два теста: копиро-
воляет провести расследование воз- пирование с технической точки зре- вание большого файла (418 Мб) и мно-
можного инцидента и сохранить конт- ния и как оно на самом деле рабо- жества маленьких файлов (1 072 фай-
роль над ситуацией. тает на примере двух продуктов: ла общим размером 393 Мб) на флеш-
Данная функция реализована DeviceLock 6.3 (Build 14161) от ком- накопитель. Без теневого копирова-
во многих современных продуктах, на- пании SmartLine Inc. и Zlock 2.0.1.597 ния время записи составило соответ-
пример, Safend от одноименной компа- от компании SecurIT. ственно 125 и 760 секунд. Теневое ко-
нии, Sanctuary Device Control компании Выбор для сравнения этих продук- пирование Zlock увеличило время за-
Lumension, Smartline DeviceLock и Zlock тов был обусловлен тем, что именно писи большого файла до 175 секунд
компании SecurIT. они в наибольшей степени представ- (на 40%) и множества маленьких фай-
Принцип работы теневого копиро- лены на российском рынке, тогда как лов до 935 секунд (на 23%). DeviceLock
вания довольно прост: при записи фай- другие упомянутые системы при всех показал немного лучшие результаты –
лов на внешний носитель копия запи- их достоинствах не имеют какого-либо 150 (+20%) секунд для крупного файла
сываемых данных вместе с дополни- одного, а чаще всего нескольких из пе- и 880 (+15%) секунд для набора мелких
тельной информацией (имя пользова- речисленных ниже атрибутов: файлов (см. таблицу 1).
теля, приложение, дата, время) сохра- n представительство на территории Н о н а м н е о бхо д и м о о ц е н и т ь
няется на жестком диске компьютера РФ; не только скорость записи данных,
и в дальнейшем переносится на сер- n наличие технической поддержки но и корректность работы теневого ко-
вер. Затем сотрудник службы безопас- на территории РФ; пирования. При копировании неболь-
ности может обратиться к базе данных
теневых копий и просмотреть подозри-
тельные файлы.
Очевидно, что использование
данной функции имеет ряд ограни-
чений, поскольку массовое внедре-
ние этой функции в крупной органи-
зации с большим числом пользова-
телей может создать существенные
проблемы.
Во-первых, если все пользовате-
ли будут копировать на внешние но-
Рисунок 1. В консоли DeviceLock сохраненный файл «Секретный документ.doc»
сители большое количество инфор- отображается как «~WRD0002.tmp»
PowerPoint
Правка находящегося на USB-флешке файла с презента-
цией PowerPoint отобразилась в DeviceLock как изменение
файла ppt1d.tmp, что не соответствует действительности.
У Zlock все в порядке.
Access
Создание базы данных на носителе отображается в обо-
их продуктах, но при изменении БД у DeviceLock возник-
ли серьезные проблемы. Дело в том, что правка каких-ли-
бо таблиц и последующее сохранение документа не фик-
сируется вовсе! В теневых копиях фигурирует только файл
с расширением .ldb – это служебный файл Access. Изме-
ненный mdb-файл, пусть даже с каким-нибудь другим наз-
ванием, в DeviceLock отсутствует. Zlock корректно обраба-
тывает данную ситуацию и корректно фиксирует измене-
Рисунок 2. Консоль Zlock корректно отображает имя
сохраненного файла ния в обоих файлах.
72
безопасность
Outlook Таблица 2. Объем данных, записываемых в теневую копию
Похоже, что Outlook работает ана- Вид испытания Расположение файла DeviceLock Zlock
логично Access: при добавлении пи- RESET в процессе записи файл на флешке 10 207 232 байт 12 828 672 байт
сем в pst-хранилища происходит мо- файла размером 18 Мб
теневая копия отсутствует 12 845 056 байт (100,1% от
дификация только части файла. В та- объема записанного файла)
кой ситуации DeviceLock, в отличие RESET сразу после записи файл на флешке записан полностью записан полностью
от Zlock, теневые копии .pst-файлов маленького файла (1Мб)
теневая копия отсутствует записана полностью
не сохраняет.
RESET сразу после записи файл на флешке записан полностью записан полностью
большого файла (60 Мб)
теневая копия 3 276 800 байт записана полностью
Следует отметить, что сохранение (5,2% от объема файла)
файлов из Блокнота Windows (Notepad)
фиксируется обеими системами кор- нажатие RESET. После перезагруз- Выводы
ректно, отображается правильное имя ки скопированный файл побитно Реализация теневого копирования
файла и сохраняется все его содержи- сравнивался с оригиналом – утили- в DeviceLock обладает рядом сущест-
мое. Очевидно, что проблема с име- той fc.exe, для того чтобы убедить- венных недостатков, которые не толь-
нами файлов возникает у DeviceLock ся, что файл скопировался полно- ко затрудняют анализ деятельности
в связи с некорректной обработкой стью. пользователей службой безопаснос-
функции переименования, поскольку 3. Аналогично п. 2, но копировался ти, но и могут привести к записи дан-
известно, что приложения MS Office файл размером 60 Мб. ных на носитель в обход функции те-
при редактировании создают времен- невого копирования.
ные файлы с такими «неудобовари- Копирование выполнялось про- В первую очередь, имеются в ви-
мыми» именами, а потом их переиме- водником Windows. Результаты тестов ду некорректная обработка операций
новывают. приведены в таблице 2. с файлами, отображаемыми в память
Проблема же с Access и Outlook бо- Как видно из результатов, осо- (memory-mapped files), и запись тене-
лее серьезна. Дело в том, что эти при- бенности реализации теневого копи- вой копии в локальное хранилище пос-
ложения работают с файлами с помо- рования в системе DeviceLock могут ле копирования данных.
щью функций их отображения в па- стать причиной утечки данных. Путем С другой стороны, DeviceLock поз-
мять (memory-mapped files), и, судя несложных манипуляций с кнопкой воляет вести теневое копирование
по результатам теста, данные функ- RESET злоумышленник может «вы- записываемых данных на другие ус-
ции DeviceLock также не обрабатыва- нести» приличные объемы конфиден- тройства – порты ввода/вывода, КПК
ет или обрабатывает некорректно. Та- циальной информации в обход тенево- и CD/DVD-приводы. Кроме того, сис-
ким образом, любое приложение, кото- го копирования, и служба безопаснос- тема позволяет фиксировать прямую
рое сохраняет данные с использовани- ти об этом может только догадываться. запись на диск.
ем этой технологии, позволяет «обма- Эта особенность может быть связана Что касается Zlock, то, несмотря
нуть» теневое копирование DeviceLock, с не очень удачным проектированием на более позднее появление тенево-
что может быть использовано потенци- системы – формирование теневой ко- го копирования, разработчики смог-
альным нарушителем. пии осуществляет системная служба, ли реализовать эту функциональность
выступая в качестве дополнительно- гораздо надежней, но с рядом ограни-
Надежность теневого го звена, что приводит к созданию ко- чений, кроме уже упомянутого паде-
копирования пии после записи данных на внешний ния производительности. В частнос-
Изучение механизма теневого копи- носитель. ти, в теневых копиях Zlock не фикси-
рования навело на мысль прервать В Zlock теневое копирование осу- руется прямая запись на диск. Конеч-
работу Windows нажатием на кноп- ществляет драйвер, благодаря чему но, она может быть выполнена только
ку RESET как во время копирования, можно реализовать превентивное те- какими-либо специальными утилитами
так и сразу после окончания записи невое копирование – запись теневой для работы с диском и только пользо-
на носитель и посмотреть, что записа- копии производится до записи дан- вателем с администраторскими приви-
лось на флешку и что при этом сохра- ных на внешний носитель. Если обра- легиями, а, как известно, защищаться
нилось в теневой копии. тить внимание на результаты первого от такого пользователя не имеет смыс-
В рамках данного теста были про- теста, то видно, что в теневую копию ла, поскольку он и так может отклю-
ведены следующие испытания: Zlock записалось больше информации, чить любую систему, но всегда хочет-
1. Копирование файла размером чем успело скопироваться на флешку. ся стремиться к идеалу.
18 Мб на флешку. Во время копи- Правда, разработчикам Zlock удалось В заключение хотелось бы выра-
рования, когда по индикатору про- добиться более высокой надежнос- зить надежду, что данная статья ста-
гресса было скопировано порядка ти ценой снижения скорости копиро- нет источником дополнительной ин-
60-70% файла, нажатие RESET. вания данных на отслеживаемые уст- формации для потенциальных пользо-
2. Копирование файла размером 1 Мб ройства, что может быть критично для вателей теневого копирования и помо-
на флешку. Сразу после копиро- организаций, в которых сотрудники ин- жет сэкономить время и усилия на эта-
вания, когда светодиодный инди- тенсивно работают с внешними носи- пе выбора решения.
катор флешки переставал мигать, телями данных. Удачи!
Александр Календарев
В прошлом номере был разговор про XML-native DB, в частности описывалась разработка Института
системного программирования XML-native DB Sedna. Для доступа в XML‑ориентированных базах
данных консорциумом W3C рекомендован язык XQuery. Он является такой же неотъемлемой частью
XML-native базы данных, как SQL в реляционных СУБД.
XQuery. Hемного истории (Paul Cotton). А группа XPath впослед- n XQuery and XPath Functions and
Недавно группа XML консорциума ствии вошла в состав рабочей группы Operators;
W3C отпраздновала свое десятиле- XSL (http://www.w3.org/Style/XSL). n XQuery Formal Semantics;
тие. Вскоре, после выхода первой спе- Первые требования спецификации n XML Query Requirements;
цификации XML, появилась потреб- модели данных (Data Model) XQuery вы- n XML Query Use Cases;
ность в организации хранения инфор- шли в январе 2000 года, а уже в 2001 n XSLT and XQuery Serialization;
мации в формате XML, и соответствен- году опубликовывается проект специ- n XML Syntax for XQuery (XQueryX);
но появилась потребность в разработ- фикации описания языка XQuery. n XQ u e r y a n d X P a t h F u l l -Te x t
ке алгоритмов и методов ее извлече- 3 ноября 2005 года XQuery 1.0 Requirements;
ния. Поэтому было предложено разра- п о л у ч и л с т а т ус W3 C C a n d i d ate n XQuery and XPath Full-Text Use
батывать «язык запросов», и уже в сен- Recommendation, а 23 января 2007 Cases.
тябре 1998 года появился проект спе- год а XQ uer y 1.0, од н о в р е м е н н о
цификации XQL (XML Query Language, с XSLT 2.0 и XPath 2.0, получил ста- Сам язык запросов XQuery не был
http://www.w3.org/TR/NOTE-xml-ql) – тус официальной рекомендации (W3C бы так интересен, если бы не появи-
языка запросов для XML. Данная ра- Recommendation). лись его практические реализации.
бота шла параллельно с работой груп- В настoящее время ведутся рабо- На примере Senda мы и рассмотрим,
пы XPath, которая занималась разра- ты по развитию этого стандарта, с до- как осуществляется работа с NXD.
боткой спецификации XPath – языка бавлением выражений полнотексто-
позиционирования XML-узлов (http:// вого поиска и для внесения измене- XQuery. Основные понятия
www.w3.org/TR/xpath) В связи с тем ний в XML-документы и базы данных В основе XQuery лежит Xpath 2.0.
что разработка обеих групп пересека- (XQuery Update), а также для проце- Но с другой стороны, XQuery расширя-
лась, группа XQL была расформиро- дурных операций. ет абстракцию формирования данных
вана, а сама спецификация XQL была Группой XQuery консорциума W3C с помощью FLWOR-выражений. Акро-
признана неудачной. подготовлены следующие специфи- ним «выражения FLWOR» был назван
В августе 1999 года была сформи- кации: по первым буквам операторов:
рована группа XQuery в составе 39 че- n XML Path Language (XPath) 2.0; n for – связывает одну или более пере-
ловек под руководством Пауля Коттона n XQuery and XPath Data Model; менных, создавая набор кортежей;
74
web
n let – связывает переменные с результатом вычисления Использовав запрос из примера 2, с помощью операто-
выражения; ров FLWOR его можно преобразовать в следующий вид:
n where – осуществляет фильтрацию кортежей по задан-
ному условию; Пример 4. Использование выражений FLWOR
n order by – отвечает за сортировку; for $reg in doc("auction")/site/regions/*
n return – отвечает за создание выходного выражения where $reg/name()='asia'
return $reg/item
для данного кортежа.
В примерах 3 и 4 используется оператор for, синтак-
XQuery вводит понятие «последовательность». После- сис которого интуитивно понятен и очень похож на опера-
довательность – это список, содержащий множество объ- тор цикла в процедурных языках.
ектов или включающий в себя одну или несколько иных Как упоминалось ранее, XQuery так же, как и XSLT, поз-
последовательностей. воляет осуществлять преобразования результата запроса,
Каждый объект может представлять либо узел, либо например, чтобы оформить результат примера 1 в следу-
атомарное значение. ющий XML-документ:
Под списком узлов понимается множество узлов, вы-
<region>africa</region>
бранных по имени, типу или иному критерию. В отли- <region>asia</region>
чие от представления XML DOM-модели, модель данных <region>australia</region>
в XQuery представлена в виде дерева узлов. Допускаются <region>europe</region>
<region>namerica</region>
следующие типы узлов: документ, элемент, атрибут, текст, <region>samerica</region>
пространство имен, команда обработки (process-instruction)
и комментарий. Каждый узел считается уникальным, даже Для этого в выражении return необходимо составить
если узлы идентичны. шаблон выходного выражения:
Узлы можно выбрать по Xpath-выражению, например,
для выбора всех названий регионов демонстрационной БД <region>{$reg/name()}</region>
аукцион применима следующая конструкция:
где выражение, заключенное в фигурные скобки {}, вычис-
Пример 1. Простое использование XPath ляется и осуществляется подстановка. В результате полу-
doc("auction")/site/regions/*/name() чится следующий запрос:
Можно средствами Xpath наложить фильтр, напри- Пример 6. Более расширенное использование конструктора
выражений
мер, выбрать все элементы <item>, которые входят в ре-
гион «asia»: for $reg in doc("auction")/site/regions
return
<regions>
Пример 2. Усложненное использование XPath {
for $r in $reg/*
doc("auction")/site/regions/*[ name()='asia']/item return <region>{$r/name()}</region>
}
</regions>
Аналогом фильтра в SQL является конструкция WHERE
в операторе SELECT, т.е. аналогичное SQL-выражение: Как вы видите, с помощью XQuery можно формировать
структуру XML-документа и производить практически лю-
SELECT * FROM TABLE regions WHERE name='asia' бую трансформацию выходного документа, наподобие то-
го, как это делается в XSLT. Сам SQL в отличие от XQuery
Синтаксис XQuery в своем арсенале имеет выраже- формирует только набор строк.
ния FLWOR. Так, пример 1 можно преобразовать следу-
ющим образом: Упорядочивание выборки
Рассмотрим более сложный пример:
Пример 3. Использование выражений FLWOR
Пример 7. Выборка и упорядочивание
for $reg in doc("auction")/site/regions/*
return $reg/name() for $reg in doc("auction")/site/regions/*
return
<region name="{$reg/name()}">
Мы преобразовали запрос, но при этом сами результа- {
ты выполнения запроса изменяться не будут. for $loc in $reg/item
<region name="africa">
<item location="United States" id="item0"/> Конечно, SQL-конструкция:
</region>
<region name="asia"> SELECT name, country FROM table GROUP BY country
<item location="Denmark" id="item2"/>
<item location="United States" id="item1"/>
</region> выглядит наглядней, но XQuery более гибкий при построе-
<region name="australia">
<item location="United States" id="item4"/>
нии структур данных.
<item location="Uzbekistan" id="item3"/>
</region>
. . .
Пересечения и выборки
XQuery не был бы полным языком, если бы с его помощью
нельзя было бы делать объединения и пересечения мно-
Группировка жеств. Пусть нам необходимо выбрать имена всех участ-
На следующем примере рассмотрим группировку. Выведем ников и сгруппировать их по открытым аукционам. По сути,
всех участников аукциона и страну их проживания: это запрос «SELECT INNER JOIN …». Например, данный за-
прос выдает только ссылки на имена участников:
Пример 8. Группировка
Пример 10. Выборка по одному множеству
let $person := doc("auction")/site/people/person
let $auc := doc("auction")/site/open_auctions
for $p in $person for $a in $auc/open_auction
return <person country="{$p/address/country}" ↵ return
>{$p/name/text()}</person> <auction >{
for $p in $a/bidder/personref/@person
return <person>{$p}</person>
Первое, на что хочется обратить внимание в приме- }</auction>
ре 8, – это использование последовательности, т.е. присво-
ение оператором let переменной $person некой последова- И результат этого запроса необходимо пересечь с за-
тельности узлов, значение которой определяется Xpath-вы- просом:
ражением: «(doc("auction")/site/people/person)».
Далее, для того чтобы сгруппировать всех участни- let $person := doc("auction")/site/people/person
ков по странам проживания, необходимо выделить после-
довательность, которая содержит узлы с именем назва- В итоге получаем запрос:
ния стран:
Пример 11. Пересечение выборок
let $country := distinct-values($person/address/country) let $auc := doc("auction")/site/open_auctions
let $person := doc("auction")/site/people/person
for $a in $auc/open_auction
Для того чтобы пропустить одноименные узлы, исполь- return
зуется функция distinct-values(). <auction id="{$a/@id}">{
for $p in $person[@id = $a/bidder/personref/@person]
Если сравнивать с SQL, то данное выражение анало- return <person>{$p/name/text()}</person>
гично оператору «SELECT DISTINCT …». }
</auction>
Далее все очень просто: проходимся оператором for
по всем странам и выбираем имена тех person, которые Красным цветом выделены изменения. В данном запросе
проживают в данных странах: связывающей конструкцией WHERE, аналога SQL, являет-
ся Xpath-выражение:
Пример 9. Группировка
$person[@id=$a/bidder/personref/@person]
let $person := doc("auction")/site/people/person
let $country := distinct-values($person/address/country)
for $c in $country return
<country name="{$c}"> Хотелось бы отметить необходимость использования
{ for $p in $person[address/country=$c ] функции text() в возвращаемом выражении: $p/name/text().
return
<person>{$p/name}</person> Функция text() возвращает значение текстового узла name.
} В противном случае мы получили бы значение всего узла,
</country>
включая обрамляющие теги:
76
web
<person><name>Huei Demke</name></person> языке, состоит из объявления и тела. Для примера опре-
делим функцию inc(), которая увеличивает значение счет-
Функцию text() можно заменить на функцию data(), ко- чика на 1:
торую необходимо уже применять ко всему Xpath-выраже-
нию: data($p/name). Пример 14. Объявление функции
Результаты выполнения нашего запроса (см. при- declare function math:increment($num as xs:decimal) ↵
мер 11): as xs:decimal {
$num + 1
};
<auction id="open_auction0">
<person>Huei Demke</person>
<person>Laurian Grass</person> Следует отметить, что входные и выходные парамет-
. . . ры у функций должны быть типизированы. Допускают-
</auction>
ся как стандартные типы, определенные спецификацией
<auction id="open_auction1">
<person>Jamaludin Kleiser</person> XML Scheme:
<person>Eliana Ruemmler</person> n xs:string
. . .
</auction> n xs:integer
<auction>. . .</auction> n xs:decimal
n xs:float
Из набора FLWOR-выражений было рассмотрено все, n xs:date
кроме выражения IF. Данному выражению трудно найти n xs:QName
аналог в SQL-запросах, хотя его можно сравнить с опера- n xs:anyURI
тором IF, используемым в хранимых процедурах, но с бо-
лее ограниченными возможностями. Так и простые типы:
Пусть нам необходимо выбрать стоимость лотов из всех n element
аукционов, присвоив каждому лоту признак-attribute, в за- n node
висимости от цены – small для лотов меньше $30 и normal n attribute
для всех остальных лотов.
Простейшее решение продемонстрировано в приме- XQuery также еще позволяет определять пользователь-
ре 12: ский тип:
Пример 15. Выражение Update. Вставка узла <item id="34521" name="TWNtt" category="12”>
<description>описание модели</description>
UPDATE </item>
insert <person id="person25">
<name>John Smith</name>
<phone>223-322-223-322</phone> Тег <item > имеет атрибут category, который ссылает-
<creditcard>3454 3656 2344 6767</creditcard> ся на элемент каталога (на рисунке это изображено крас-
</person>
into document("auction")/site/people ной стрелкой). По каждой модели есть набор предложе-
ний от разных магазинов. Каждое предложение описыва-
А для удаления этих же данных необходимо выпол- ется тегом:
нить запрос:
<offer price="12500" shop_id="12" ↵
url="http://texnoshock.ru/12343" />
Пример 16. Выражение Update. Удаление узла
Можно выполнить запрос на замену некоторых узлов: Пример 18. Запрос на выборку товаров по всей категории
«пылесосы»
Пример 17. Выражение Update. Замена узла let $catalog := doc("catalog")/category[@name = "пылесосы"]
let $goods := doc("goods")/brand/item
UPDATE replace
$g in document("auction")/site/people/ ↵ for $g in $goods
person[@id="person25"]/name with where $catalog/@id = $g/@category
<name>Ivanov Ivan</name> return $g
XQuery и WEB
В последнее время хоть и растет популярность исполь-
зования XML-технологий, но в ближайшее время массо-
вого использования XML-native DB в WEB, на мой взгляд,
не предвидится. Как говорится, нет спроса – нет и предло-
жения. Соответственно хостеры и не спешат устанавли-
Cтруктура обобщенной информации вать XML DB.
78
web
Существуют отдельные проекты, которые используют Используются расширения файлов .xqy и .xquery, задан-
XML-native DB, и число таких проектов постепенно рас- ные по умолчанию. Для обработки этих файлов необходи-
тет. Авторы проекта Sedna реализовали поисковую систе- мо в htppd.conf добавить следующие строки:
му WikiXMLDB (http://wikixmldb.dyndns.org), которая вклю-
чает 24 Гб информации, собранной в Википедии (http:// LoadModule sedna_module modules/mod_sedna.so
LoadModule apreq_module modules/mod_apreq.so
en.wikipedia.org). Поиск информации осуществляется до- AddHandler sedna-handler .xqy .xquery
вольно-таки быстро. В данном проекте использован ин-
декс full-text. В .xqy-файле пишется запрос, результаты которого от-
Авторы проекта Sedna для использования построения даются сервером веб-клиенту. Раз есть исходный запрос,
индекса full-text используют внешний коммерческий компо- то должны быть и параметры запроса. Они передаются как
нент dt_search (http://www.dtsearch.com). В ближайшем бу- тело POST-запроса. Например:
дущем авторы проекта обещают внедрить внутренний ме-
ханизм построения индекса full-text. <data><person id=”1”>Alexandre</person></data>
Использование Sedna в качестве хранилища инфор-
мации целесообразно в случае работы с XML-документа- Эти данные доступны в теле запроса как элементы до-
ми. Например, в таких проектах, которые интенсивно об- кумента request_parameters:
мениваются XML-документами или SOAP-сообщениями.
Один проект закачивает и обрабатывает из разных источ- let $id = document("request_parameters")/data/person/@id;
let $name = document("request_parameters")/ ↵
ников 600-700 XML-сообщений. В другом известном мне data/person/text();
проекте сделан импорт базы данных «1С» – склад в элек-
тронный магазин в XML-формате. Но такие проекты – ско- Пара слов о доступе. Sedna – это полноценная БД с раз-
рее всего исключение, вернее сказать, попытки освоить деленным доступом. Все данные соединения содержат-
новые технологии. ся в следующих HTTP-переменных (могут быть как GET,
Если зашел разговор о технологиях, то, сравнивая так и POST):
с наиболее популярной РСБД MySQL, можно сказать, что n se_url – URL на котором запущена Sedna;
по скорости выбора данных Sedna соизмерима с MySQL n se_db – имя БД;
и даже на некоторых запросах обгоняет его. Чтобы быть n se_login – login;
более объективным, необходимо добавить, что при тести- n se_password – пароль.
ровании не учитывалась загрузка системы, т.е. тестирова-
ние проходило на «чистой» машине. Не знаю, из каких принципов исходили разработчики,
Надо отметить, что нет методики сравнения XML BD но, на мой взгляд, это является не совсем правильным с точ-
и реляционных БД, поэтому для сравнения были загруже- ки зрения защиты веб-приложений. Эти данные необходи-
ны в MySQL и Sedna одни и те же данные. Сравнивалась мо прописать либо в конфигурационном файле httpd.conf,
скорость извлечения однотипных данных. либо в тексте xqy-программы.
Скорость выборки данных во многом зависит от пра- Один их вариантов использования Sedna – это форми-
вильной организации структуры данных. Надо отметить, рование SOAP-ответа для веб-служб или формирование не-
что простое копирование структуры таблиц РСБД здесь посредственно HTML для дальнейшей публикации данных
не подходит и это отдельная тема для статьи. Однако Sedna в WEB, например, с использованием mod_sedna.
имеет небольшой недостаток. Это относительно значитель- Чего не хватает в проекте Sedna, так это хорошего инс-
ное время, необходимое на первоначальную загрузку дан- трумента профилирования. При построении и оптимиза-
ных (команда LOAD). Данный недостаток отсекает часть ции запросов можно полагаться только на свою интуицию
проектов, в использовании которых необходимо оператив- и здравый смысл. Нет инструмента определения, как быс-
но в реальном времени вводить большие объемы XML-дан- тро исполнилась та или иная часть запроса, какие индек-
ных и сразу же их обрабатывать. сы были задействованы, каково значение промежуточных
Если сравнивать проекты, то в MySQL хорошо задейс- переменных.
твованы механизмы кэширования запросов. И если первый Остается надеяться, что разработчики будут постоянно
запрос выполняется относительно медленно, то все после- совершенствовать свой продукт и в скором времени дове-
дующие – довольно-таки быстро. Однако механизм кэши- дут его до конкурентоспособного состояния.
рования эффективен, если спектр запросов узок. В Sedna
кэширование результатов запроса или его части реализо- 1. Официальный сайт проекта Sedna – http://modis.ispras.ru/sedna/
вано менее эффективно. Поэтому при сравнении времени index.htm.
исполнения выборок одних и тех же запросов результаты 2. Sedna Programmer’s Guide. Документация, входящая в дист-
разные, в зависимости от загрузки серверов в данное вре- рибутив.
мя другими запросами. 3. Консорциум W3C. XQuery – http://www.w3.org/TR/xquery.
Раз затронута тема WEB, то необходимо упомянуть, что 4. XQuery в Википедии – http://ru.wikipedia.org/wiki/XQuery.
разработчиками проекта был написан модуль mod_sedna 5. XQuery tutorial – http://www.w3schools.com/xquery/default.asp.
для веб-сервера Apache 2.0. Данный модуль позволяет ис- 6. XUpdate – http://xmldb-org.sourceforge.net/xupdate/xupdate-
пользовать Sedna не только как хранилище, но и как мо- wd.html.
дуль обработки логики. 7. Говард Кац. XQuery от экспертов. Кудиц-образ. М. 2005 г.
Бессистемные заметки
о поиске работы за рубежом
ton-rai-plai-dee
(bad beginning good ending)
Тайская пословица
Крис Касперски
Многие люди (особенно IT-специалисты) хотят уехать отсюда, но не знают, как найти хорошую
работу за рубежом. Автор, имея более чем десятилетний опыт удаленной работы, наконец-то
нашел компанию своей мечты, стоящую того, чтобы оторвать свой хвост от кресла и сменить
Северный Кавказ на Сан-Франциско. Хотите и вы найти работу своей мечты?
…Как все начиналось редь следует изучать?». Начнем с то- им скажут. Кодер – это не программист.
Обычно, на программистских форумах го, что язык – это вообще-то средство Это как писарь и писатель, и если пи-
в разделе «О работе» постоянно за- выражения мысли и применительно сатель говорит «сократить период пос-
даются одни и те же вопросы: «Какие к программированию, с одним только тинга», то писарь так и пишет, а ведь
языки/технологии наиболее востребо- знанием языка на работу берут толь- мог бы слегка оптимизировать текст,
ваны здесь и там?», «Что в первую оче- ко кодеров, которые тупо кодят то, что заменив его на «пишите почаще».
80
из личного опыта
Программист должен знать не толь- кто приврал в резюме? А к тому момен- Узких специалистов всегда не-
ко язык, но и определенную предмет- ту, когда у вас действительно появится много (и чем уже предметная область,
ную область, решая поставленные за- опыт работы с C#, весьма велика ве- тем их меньше), и стандартные рыноч-
дачи, за каждой из которых стоит если роятность, что мода на него схлынет, ные отношения здесь не работают, ибо
не научное исследование, то по край- Microsoft забросит .NET (кстати говоря, рынок подразумевает наличие спроса
ней мере инновация. Конечно, от ря- разные версии которой уже страдают и предложения. А какой спрос на тех,
дового программиста не стоит ждать хронической несовместимостью) и C# кто знает дизассемблер? Даже назва-
существенного улучшения «движка» станет чем-то вроде MFC. ния для такой профессии не придума-
программы распознавания речи или Это не значит, что учить C# не нуж- но. Кадровые агентства не рассыла-
машинного перевода. Этим занима- но. Почему же? Учите себе на здоро- ют резюме об их найме, фирмы не от-
ются научные работники, результата- вье. Только вероятность найти работу крывают вакансий. Компания Secunia
ми которых и «кормятся» программис- выше юниора (особенно за рубежом) (secunia.com) на своем сайте прямо так
ты, ну а кодерам программисты пере- достаточно невелика, хотя юниором и пишет, что вакансий нет, но мы всег-
дают уже четко сформулированные за- можно устроиться в любой момент про- да рады рассмотреть предложения
дачи, реализация которых не требует странства-времени: от столицы до уез- от специалистов (http://secunia.com/
специфических познаний. Достаточ- дного городка. И с возможностью ка- hardcore_disassembler_and_reverse_
но разбираться во всем зоопарке гото- рьерного роста. engineer).
вых библиотек и помнить, какую из них Сравнительно большое число лю- И вот неожиданно выяснилось,
и когда следует применить. дей проскакивает эту стадию, изучая что одной крупной корпорации, имею-
Вот, скажите, какие банальные язык дома или параллельно с другой щей десятки филиалов в Европе, Азии
мысли автор высказывает. Это же всем работой, создавая программы, кото- и даже на Украине, требуется чело-
и так известно! Хм, но ведь на фору- рые реально нужны им самим. А зна- век, умеющий писать скрипты, плаги-
мах прежде всего спрашивают о язы- ние языка (не важно какого) в совокуп- ны и процессорные модули для IDA-Pro,
ках, что изначально загоняет челове- ности с определенной предметной об- то есть как раз то, что у меня получает-
ка в рамки кодера, а «там» наши коде- ластью – это уже программист, но ни- ся лучше всего. А фирме (имя которой
ры никому не нужды и гораздо более как не кодер. Программисты – доволь- вы наверняка знаете, хотя из сообра-
востребованы индусы с азиатами, по- но ценный продукт, подобный винам жений конфиденциальности пусть это
тому что едят мало, кодят много (хоть с многолетней выдержкой, и здесь уже будет, хм, ну, например, «Acme Corp»)
и криво), неприхотливы и т. д. Причем можно рассчитывать на индивидуаль- легче (и дешевле) перетащить готово-
при реорганизации фирмы (а реорга- ный подход, существенно упрощаю- го специалиста из России в Сан-Фран-
низации там не редкость), кодеры (осо- щий процедуру трудоустройства. Рас- циско, чем «вырастить» (то есть обу-
бенно иноземные) «вылетают» в пер- познать программиста можно с перво- чить) своего собственного.
вую очередь. Потом, правда, к фирме го взгляда: перечень языков програм- В процессе разбирательств с ин-
приходит понимание, что кодить все- мирования у него идет в самом конце тервью, резюме, визами, трансфера-
таки надо, и она вновь открывает ку- резюме и часто огранивается одним- ми и прочей бюрократической суетой
чу вакансий, но… как только индусы двумя языками, хотя программист мо- пришлось в срочном порядке приобре-
вместе с азиатами (и небольшим ко- жет более или менее сносно изъяс- тать новый жизненный опыт, которым
личеством «счастливчиков» из России) няться на добром десятке из них (на- очень хочется поделиться с читателя-
съедают весь бюджет, они снова воз- пример, я указал всего лишь C и x86- ми. И хотя статья носит спорный ха-
вращаются в родные пенаты. ассемблер, поскольку я слишком хоро- рактер, затрагивающий извечные те-
Более того, позиционируя себя, на- шо знаю C++, чтобы понять, что в дейс- мы «священных войн», она и задумы-
пример, как C#-кодера, вы вынуждены твительно я его не знаю). Зато список валась такой!
конкурировать с толпой юниоров, ед- предметных областей стоит на первом
ва осиливших книжку «C# for dummies» месте, и потенциальный наниматель Высшее образование –
и соорудивших из кучи готовых компо- сразу видит, с кем он имеет дело. с ним или без него?
нентов какое-то подобие чего-то как бы Так уж сложилось, что автор этих Прежде чем погружаться в пучину дис-
работающего. А сказать, что вы крутой строк обладает довольно редкой про- куссий и философских рассуждений,
кодер, имеющий более чем десятилет- фессией, если не сказать «экзотич- не имеющих отношения к реальности
ний опыт работы с C#, вы не можете, по- ной». У меня хорошо получается ди- и лежащих в той же плоскости, в кото-
тому как платформе .NET еще нет деся- зассемблировать программы, реконс- рой находятся диспуты о соотношении
ти лет, а если говорить об опыте (рабо- труируя исходный алгоритм, чуть хуже бога и церкви, скажу сразу: с опытом
ты), то из этого срока необходимо вы- выходит с разработкой защитных ме- работы свыше пяти лет и хотя бы па-
бросить несколько лет, ушедших на обу- ханизмов, но определенные наработки рой-тройкой коммерчески успешных
чение (чтение книг, стандартов, написа- в этой области все-таки есть, хотя ком- проектов диплом не спрашивают, а ес-
ние первых неработающих программ). мерчески успешных проектов (реаль- ли и спрашивают, то только потому, что
Скажите – пять лет и вам поверят но внедренных и действующих) сов- есть такой путь в резюме, но о резюме
с большой натяжкой. Три года звучат сем немного. Казалось бы, на что тут мы еще поговорим.
намного более реалистично, но сколь- можно претендовать?! Тем не менее на Высшее образование (при всех
ко еще таких же, как вы? И сколько тех, хлеб с маслом хватает. его достоинствах и недостатках) – это
82
из личного опыта
документ, обеспечивающий возмож- «H‑1B classification applies to persons Таблица 1. TOP10 High-Tech-компаний
и количество H-1B виз, полученных
ность въезда в страну (для отдыха или in a specialty occupation which requires ими в 2006 году (по данным
работы), но не дающий никаких гаран- the theoretical and practical application http://en.wikipedia.org/wiki/H-1B)
тий. Грубо говоря, если у вас есть ви- of a body of highly specialized knowledge Компания Количество виз H-1B
за, то ваша кандидатура будет рас- requiring completion of a specific course полученных в 2006 году
пытке трудоустройства. Впрочем, про- нимаемый работник не может. Сле- Hewlett-Packard 333
цедура выдачи виз упрощена до пре- довательно, работодателя необходи- Google 328
дела (достаточно иметь заграничный мо искать, находясь в России или лю-
паспорт и не быть носителем зараз- бой другой стране с облегченным ви- трудоустройству в обмен на опреде-
ных заболеваний), лимиты, если та- зовым режимом. И этот работодатель ленный процент от зарплаты (иногда
ковые и обозначены, обычно никогда должен быть настолько заинтересован очень даже значительный). Для мно-
не выжимаются досуха, а срок оформ- в вашей персоне, чтобы заняться нуд- гих программистов – это практически
ления виз позволяет паковать чемода- ной юридической волокитой. единственный путь, однако… минусов
ны прямо сейчас. В самом деле снача- И чем же этих буржуев можно за- у него столько, что тут не статью нуж-
ла летим в Малайзию как туристы, там интересовать? Либо теми знаниями/ но писать, а целую монографию, так
решаем все вопросы с работодателем, навыками, в которых они нуждают- что вдаваться в подробности мы не бу-
после чего оформляем рабочую визу ся и, будучи не в состоянии удовлет- дем. Зачем нагонять негатив, когда его
(для получения которой, впрочем, при- ворить свою нужду на месте, согла- и без того хватает?!
дется временно вернуться в свою род- шаются принять специалиста из Рос- Вторым (и основным) недостатком
ную страну). сии, а иногда не просто соглашают- виз H-1B являются жестокие квоты, ог-
Но вот США – совсем другое дело. ся, но и предлагают любые условия. раничивающие число желающих, при-
С визами там полный кошмар. Хотя их Но чаще всего интерес обусловлива- чем за последние два года число же-
тоже можно понять. Открой границы – ется экономическим фактором. Рус- лающих превысило квоты в первый
и на следующий день на одного амери- скому программисту можно практи- же день подачи заявлений (по тради-
канца будет приходиться по меньшей чески ничего не платить, выжимая из ции начинающийся с 1 апреля, в день
мере сотня чужестранцев. Количество него все соки, заставляя человека ра- смеха), и потому пришлось проводить
желающих работать на звездно-поло- ботать буквально на износ, подрывая лотерею. Кому-то повезло, а кому-то
сатый флаг с каждым годом все рас- здоровье, так что после трех лет ра- нет. И хотя есть надежды на измене-
тет, а вот квоты на визы не увеличива- боты он с полным психическим и фи- ние ситуации, на данный момент въезд
ются. Кстати, о визах. зическим истощением, расшатанны- в США по визе H-1B совершенно бес-
Самая популярная виза – H-1B, вы- ми нервами становится отработан- перспективен, т.к. независимо от мо-
даваемая носителям специальных зна- ным жмыхом и выдворяется в Россию, мента подачи прошения на выдачу ви-
ний (например, программистам) с пра- где вместо поиска работы ищет сана- зы придется ждать 1 апреля, а потом
вом работы в США на срок до трех лет торий. Есть ли смысл «валить» в Шта- (если счастливый билет выпал кому-
(с возможностью продления до шести). ты только затем, чтобы отдать им все, то другому) держать вакансию откры-
Желательным (но не обязательным!) что ты имеешь, не получив ничего вза- той целый год без всякой гарантии,
требованием является наличие выс- мен?! Хорошую работу и здесь мож- что «не повезло в первый раз – пове-
шего образования, соответствующе- но найти… зет в другой». И какой же работода-
го как минимум степени бакалавра. Ес- Итак, первая большая проблема тель будет держать вакансию все это
ли же высшего образования нет, при- виз H-1B – необходимость подтверж- время? Ну Secunia (и подобные ей), мо-
дется доказывать наличие знаний тем дения своих навыков и поиски рабо- жет, и будут, т.к. все равно официально
или иным образом (например, участи- тодателя, заинтересованного в них. открытых вакансий у них нет и они ло-
ем в известных проектах). Кстати, на- Кажется, при отсутствии знаний де- вят всех специалистов, попавших в по-
ши дипломы (даже «международного» ло – труба, но при большом желании ле зрения, но какой специалист (а мы
образца) все равно необходимо заве- поработать на дядю Сэма можно от- говорим о специалистах) будет коро-
рять, так что отсутствие «корочки» – правиться в бодишоп (body-shop – до- тать годы в ожидании визы?! Амери-
не преграда. словно «магазин тел»), но не чтобы со- ка это, конечно, круто, но кушать хо-
Естественно, коль скоро речь вершить покупку, а… продать самого чется даже по ночам. Ладно, устраи-
зашла о «специа льных знаниях» себя. В рабство. Владелец бодишопа ваемся на временную работу в Рос-
(цитирую официальный документ: берет на себя все заботы по вашему сии (или другой стране, где с визами
84
из личного опыта
конструкций, превратно понимаемых то на камне, и тут все зависит от спе- строгая субординация и необходимо
некоторыми компиляторами или во- цифики конкретной фирмы, но в об- пройти всю эту лестницу от начала
обще никак не понимаемых. щем случае, работа Engineer предпо- до конца, ничем не обоснованы.
Архитектор проектирует весь про- лагает меньшую ответственность и на- Во-первых, как уже говорилось,
ект или какую-то его часть. Например, дежду на получение четко формали- иностранных специалистов (именно
если фирма разрабатывает брандма- зованной задачи, впрочем, без углуб- специалистов, а не дешевую рабочую
уэр, то тут нужны, как минимум, один ления в технические детали, которые силу) нанимают на должность от Senior
архитектор и три эксперта – первый Engineer должен решать сам (на то он Engineer и выше. Во-вторых, если че-
знает все сетевые протоколы, второй – и инженер), т.е. Engineer находится на- ловек от природы кодер (кодит с оше-
все типы удаленных атак, третий – все- много ближе к кодеру, чем к програм- ломляющей скоростью и при этом без
возможные локальные атаки на бран- мисту и во многих случаях действи- ошибок, но не может решить задачу,
дмауэр со стороны зловредных прило- тельно является кодером. пока ему не скажешь, как), то на долж-
жений. Естественно, все три эксперта Junior Engineer и особенно Intern/ ности Senior Engineer ему просто нече-
(вместе с архитектором) могут соче- Trainee – однозначно не программист- го делать.
таться в одном лице, но такое быва- ские должности, это чистые кодеры. А вот архитектор или эксперт по бе-
ет редко и не слишком-то приветству- Иногда приходится слышать, что, де- зопасности может вообще не уметь
ется, поскольку локальные и удален- скать, Junior Engineer – «инженер с программировать и программу «hello,
ные атаки слишком различны по сво- испытательным сроком». Ничего по- world» писать в обнимку со справоч-
ей природе. добного! Испытательный срок, конеч- ником. Но кого это волнует?! Эти лю-
Понятное дело, что архитекторы – но, никто не отменял, но если вас бе- ди решают совсем другие пробле-
это выдающиеся конструкторы, име- рут как Senior Engineer, то и испыты- мы. Далеко не все кодеры становят-
ющие богатый практический опыт вать будут соответствующим обра- ся инженерами, и карьерный рост тут
и до 35 лет соваться на эту должность… зом. А на должность юниора иностран- ни при чем. У каждой профессии за-
только людей смешить. Хотя фор- ца могут взять только разве что из со- пах особый, и должности всякие важ-
мальных ограничений по возрасту нет, страдания к русскому народу, при уст- ны и нужны!
и в небольших фирмах архитектором ройстве через бодишоп или из-за хро-
может быть и 25-летний юнец. С экс- нической нехватки кадров. Все три слу- Резюме, интервью
пертами в этом смысле все намного чая указывают на отвратительный ме- и все‑все‑все
проще, поскольку, в отличие от архи- неджмент, и потому пользоваться ими Прежде чем писать свое резюме, ра-
текторов, им достаточно владеть уз- категорически не рекомендуется. Слу- зумно почитать чужие, которые в наши
кой предметной областью, но владеть хи, что в больших компаниях очень дни можно встретить на любом сайте
ей очень хорошо.
Senior Engineer – это тот же архи- Таблица 3. TOP20 компаний и количество полученных виз L-1B в 2006 году
(по данным http://en.wikipedia.org/wiki/L-1_visa)
тектор только рангом пониже. Ему да-
ют задачу без объяснения, как ее ре- Компания Штаб-квартира Основной Количество полученных
шать. Естественно, «решать» не как дочерний филиал виз L‑1 в 2006 году
в институте. Тут можно не только спра- Tata Mumbai, India India 4887
вочники, библиотеки сторонних разра- Cognizant Technology Solutions New Jersey India 3520
ботчиков, но и целые институты под- IBM Armonk, New York USA 1237
ключить. Теоретически. А практичес- Satyam Hyderabad, India India 950
ки, имеются такие понятия, как бюд-
Wipro Bangalore, India India 839
жет и запрет на использование чужих
Hindustan Computers Ltd. (HCL) Noida, India India 511
продуктов, которые проще и надежнее
Deloitte & Touche LLP New York, New York USA 512
написать самостоятельнее, чем купить.
В принципе, большинство работодате- Patni Computer Systems Mumbai, India India 440
лей, ищущих программистов за пре- Intel Corporation Santa Clara, California USA 394
делами своей страны, ищут именно Kanbay Chicago, Pune, Hyderabad, India 329
and Chennai
Senior Engineer, экспертов и архитекто-
ров. Простых Engineer хватает в Индии, Honeywell International Morristown, New Jersey USA 320
Азии, да и на местах их немало. То есть, Hewlett Packard Palo Alto, California USA 316
если вас спросят, на что вы претендуе- Infosys Bangalore, India India 294
те, называйте по меньшей мере Senior Accenture Hamilton, Bermuda ??? 291
Engineer, впрочем, могут и не спросить, Caritor San Ramon, California India 231
а все решить за вас, по итогам собесе-
Schlumberger Technology Corp Netherlands Antilles? 214
дования/интервью.
Oracle Corporation Redwood Shores, California USA 176
Если же работодатель предлагает
Syntel Troy, Michigan India 171
должность простого Engineer, то это ни-
чего не значит! Различие между прос- PricewaterhouseCoopers New York, New York USA 168
тым Engineer и Senior Engineer не выби- Microsoft Redmond, Washington USA 169
86
из личного опыта
глийского языка смотрятся вполне ес- мог быть успех, когда длинная колон- тать человек, чтобы решить, каким об-
тественно, а вот обилие «Я» в резюме ка «education» со списком кучи учеб- разом его выгоднее всего использо-
раздражает. Вот на этот случай и су- ных заведений и курсов по сертифика- вать. Лично мне (как уже говорилось
ществуют редуцированные (т.е. сокра- ции ужалась до лаконичного «have no выше) предложили писать скрипты/
щенные) формы и вместо «I have more one». (Кстати, несмотря на успех при- плагины для IDA-Pro, что не требует
than 15 years of software engineering and ложения, едва ли я бы стал рекомендо- глубоких знаний C++ и прочих техно-
reverse engineering experience…» пи- вать такой способ другим. Читать-пи- логий программирования, зато требу-
шите просто «Over 15 years of software сать же вас научили, и, судя по всему, ет знания самой IDA-Pro. И как раз та-
engineering…», а вместо «I was working неплохо. Вот и пишите честно: средняя ких специалистов фирме и не хватает.
for…» просто «Working for», поскольку школа номер №1 с. Малая родина, зо- А по Java, высшей математике и крип-
было бы странно, если бы вы в своем лотая медаль. – Прим. ред.) тографии у них уже имеется полностью
резюме описывали кого-то еще. Каково же было мое удивление, укомплектованный штат, свободных
И самый главный совет. Не пишите когда Senior Recruiter возвратил мне вакансий нет и в обозримом будущем
резюме! Обычно работодатели на сай- существенно переработанный вари- не предвидится. Так что попытка пре-
тах в разделе «Careers» и в постах на ант резюме, полностью переформа- тендовать на владение высшей мате-
специализированных форумах дают тированный и уже не содержащий ни- матикой никак бы не изменила статус-
контактный адрес Senior Recruiter или каких ссылок ни на образование, ни кво (все равно мне предложили бы
другого лица, отвечающего за подбор на что другое, чего у меня нет, и пе- обслуживать IDA-Pro), зато первая же
кадров. Senior Recruiter – это человек, речисляющий только то, что есть. Го- проверка моих «знаний» математики
а не машина, и потому первое письмо ворит, что вот слегка (это он называ- вылилась бы в вопрос «а IDA-Pro вы
можно писать в форме, не имеющей с ет слегка!) исправленный и улучшен- тоже так хорошо знаете?!»
резюме ничего общего. Вот только пу- ный вариант, высланный вам на одоб- И вот телефонное интервью. Про-
гать его не надо. В смысле говорить, рение и утверждение. Мораль: не за- блема в том, что я как Му-Му. Все по-
что вы из России. У меня, например, это нимайтесь чепухой и предоставьте пи- нимаю, но ничего не говорю. Английс-
прозвучало в десятом по счету пись- сать резюме профессионалам. В конце кий со слуха – это у меня без проблем.
ме, когда моей персоной уже заинте- концов это их работа, они умеют ее де- Фильмы без перевода, интернет-ра-
ресовались, но при всей тактичности лать и делают намного лучше тех, кто дио – все это давно пройденный этап.
делового человека Senior Recruiter так пишет резюме от случая к случаю или Но одно дело – знать, как произносят-
и не смог скрыть своей растеряннос- не пишет вообще. ся слова, и совсем другое – уметь их
ти и еще письма три переспрашивал: Но самое интересное впереди. На- произносить. Мы общались с полчаса,
а точно ли из России? Это не шутка?! чали меня спрашивать за языки. А вот обсуждая самые различные и неожи-
Но вообще-то я не лукавил. Письма от- с языками у меня еще хуже, чем с об- данные аспекты: от форматов CD/DVD
правлял со своего домашнего почтово- разованием. Сказал, что знаю только и отличий MPEG-1/MPEG-2/MPEG-4,
го сервера с доменным именем, окан- C и x86-asm (хотя на самом деле, более до виртуальных машин, обфускаторов,
чивающимся на .ru, плюс мой английс- или менее сносно изъясняюсь на C++, особенностей написания драйверов
кий. До сих пор удивляюсь, как он при- Delphi, Perl, начал учить Python и C# под Windows, Linux, BSD и т. д. Свое-
нял меня за американца. А еще кто-то и уже вовсю программирую на них, но… го собеседника я понимал без проб-
говорит, что моим английским только одно дело программировать, исполь- лем, но вот он меня (как выяснилось
пионеров пугать. зуя некоторое подмножество освоен- из дальнейшей переписки), не то что-
Ладно, не в этом дело. Перепис- ных языковых возможностей, а дру- бы совсем не понимал… скорее просто
ка, конечно, хорошее дело, но долж- гое – знать весь язык целиком). Были догадывался, разбирая только отдель-
но быть и резюме. А как его писать?! и другие вопросы, на которые прихо- ные слова и ключевые термины.
Честно говорю Senior Recruiter, что, вы, дилось отвечать: нет, не знаю, не стал- Вывод: не стоит бояться, что вас не
наверное, будете смеяться, но резюме кивался, первый раз слышу, ой, а это поймут или «приговорят» за плохой ан-
никогда не писал и даже не представ- мне реально не по зубам. глийский без суда и следствия (хуже
ляю, как оно должно выглядеть. Про- И что же – по результатам собеседо- своего разговорного английского я ни-
шу дать образец. Дает! Читаю… Серд- вания мне назначают интервью по те- чего представить не могу). Если в че-
це ойкает. Не то! Резюме на 90% состо- лефону с конкретным специалистом, ловеке заинтересованы – все будет ОК.
ит из перечисления предыдущих мест причем довольно крупным специалис- К тому же, как выяснилось, интервью
работы, всяких наград и призов еще том, если даже не сказать широко из- проводится вовсе не для проверки зна-
со времен школьных олимпиад. Мне же вестным (кстати, заочно мы были зна- ний, и оно совсем не похоже на экза-
особо и похвастаться нечем, особенно комы – я исследовал его разработки, мен. Вопросов по существу так и не за-
с учетом того, что большинство проек- а он читал мои книги). Разве не логич- дали, позже объяснив это тем, что го-
тов проходили под NDA, включающим но, что после ~90% негативных отве- раздо важнее определить, как себя ве-
в себя запрет на разглашение самого тов меня следовало похоронить, зако- дет собеседник – погружается ли в глу-
факта проведения такого проекта дан- пав в землю на три метра. Так ведь нет! бокую задумчивость, начинает ли ле-
ной фирмой. В общем, тупик. Напи- Вопросы задавались вовсе не для то- петать: нам такое не задавали, мы та-
сал свой вариант и отослал безо вся- го, чтобы «завалить», а просто выяс- кое не проходили или же не позволяет
кой надежды на успех. Да и какой там нить области, в которых может рабо- застать себя врасплох.
Илья Александров
Технологии развивались. Хакеры старой школы с монстрообразными ЭВМ и безумно дорогим
машинным временем оставались в прошлом. Компьютеры становились доступнее, а хакерами
стали называть совсем других, нежели раньше, людей…
Восьмидесятые. днем. Взлом был обнаружен сотруд- Holland). Члены «Хаоса» заявляли,
Электронные журналы никами компании только спустя не- что занимаются изучением компьютер-
и хакерские группы сколько дней. ной безопасности ради знаний и кри-
1981 год. Хакер «Captain Zap», в миру Начинается эпоха зарождения тиковали тех, кто взламывает систе-
известный как Иан Мерфи (Ian Murphy), групп компьютерных энтузиастов, ха- мы во вред пользователям.
взламывает компьютерную сеть теле- керских команд. Одной из самых из- В сети Техасского университета
фонной компании AT&T. Теперь звон- вестных стала немецкая «Computer появляется первая (или якобы пер-
ки днем тарифицируются как ночные, Club Chaos», которую основал про- вая) вредоносная программа, вирус.
а разговоры ночью оплачиваются как граммист из Гамбурга Ву Холланд (Wau К катастрофе систему он не приводил,
88
ретроспектива
лишь отвлекал пользователя тексто- мен Symbolics.com как предвестник были признаны виновными за взлом
вым сообщением, выводившимся в ко- интернет-бума. компьютерных систем государствен-
мандной строке. Первые вирусы и уголовные про- ных компаний. Следствие утверждало,
1982 год. Шестеро американских цессы. что полученные данные хакеры прода-
несовершеннолетних компьютерщи- 1986 год. После нашумевших взло- вали сотрудникам КГБ СССР. Обвине-
ков, обозначив себя «группой 414», мов к хакерам перестали относиться ние базировалась на показаниях Ган-
взламывают несколько десятков ком- просто как к компьютерным хулига- са Хьюбнера (Hans Huebner), члена ха-
пьютерных сетей. В том числе в уни- нам, теперь они преступники. В США керской группировки, признавшегося
верситете Беркли, в научных лабора- выходит «Закон о мошенничестве с ис- в содеянном.
ториях и медицинских центрах. Ника- пользованием компьютеров», предус- Знаменитая операция американс-
кого вреда они не нанесли, но факт матривающий наказание за электрон- ких спецслужб «Sundevil». Операция
проникновения получил огласку, и сло- ные взломы. была направлена на выявление ха-
во «хакер» впервые появилось на пер- Первая вирусная эпидемия. Пора- керских сообществ. В итоге были изъ-
вых полосах газет. До уголовных пре- жающий загрузочные секторы дискет яты несколько десятков компьютеров,
следований за взломы сетей было вирус «The Brain» распространился закрыты хакерские доски объявле-
еще далеко. по всему миру. Его создали два про- ний, многие арестованы. Некоторые
Ричард Столлман (Richard Stallman) граммиста из Пакистана в исследова- известные компьютерные взломщики
начинает разработку одной из версий тельских целях. Вирус изменял метки прекратили свою деятельность. В от-
операционной системы UNIX. дискет на «(с) Brain. вет на этот рейд была создана право-
1983 год. Год запомнился выходом 1987 год. Первый сбор хакеров в защитная организация, занимающа-
на экраны кинокартины «Wargames». оффлайне. Мероприятие «SummerCon» яся делами в области компьютерных
Фильм рассказывал о юном вундер- посетило около двадцати специалис- преступлений.
кинде, легко обходящем защиту любых тов. Вошедшая в историю фрикерс-
компьютерных систем. По сюжету пос- Набирает рост движение крэке- кая выходка Кевина Поулсена (Kevin
ле одного из его взломов едва не на- ров – взломщиков лицензионного про- Paulsen) и Рона Остина (Ron Austin). Они
чался военный конфликт с использо- граммного обеспечения. Появляется получили контроль над АТС и поучас-
ванием ядерного оружия. Фильм вы- электронный журнал «Decoder». твовали в радиоконкурсе. Сто второ-
звал рост интереса молодежи к ком- 1988 год. Первый приговор. Герберт му дозвонившемуся обещали новень-
пьютерным технологиям. Зин (Herbet Xeen) приговорен к 9 ме- кий автомобиль «Porshe». Естественно,
1984 год . Энд рю Таненебаум сяцам лишения свободы за взлом сто вторым оказался Кевин. Афера рас-
(Andrew Tanenbaum) выпускает пер- компьютеров Министерства оборо- крылась, Поулсена ждал суд.
вую версию ОС Minix, которая впос- ны США.
ледствии окажет огромное влияние на Арманд Мур (Armand Moore) полу- Эпоха Интернета
развитие свободного ПО. чает доступ к компьютерной систе- 1991 год. Линус Торвальдс (Linus
Эммануил Гольдштейн (Emmanuel ме банка Чикаго. Попытка перевести Torvalds) выпускает первую версию
Goldstein) основывает электронный ха- на свой счет в Швейцарии 70 милли- Linux.
керский журнал «2600». Фрикинг, безо- онов долларов закончилась плачевно – Тим Бернерс-Ли (Tim Berners-Lee)
пасность, программирование. «2600» деньги остались в банке, а Мур отпра- начинает разработку гипертекстового
будет лучшим хакерским электронным вился в тюрьму. Интернета – World Wide Web.
изданием. Эпидемия «червя Моррисона». Со- Фил Циммерман (Phil Zimmerman)
В этом году объявлено о созда- зданный по ошибке программиста, представляет публики PGP – самый
нии еще двух хакерских группиро- червь временно приостановил рабо- совершенный криптографический инс-
вок – «Legion of doom» и «Cult of dead ту ARPAnet. трумент для защиты данных.
cow». «Legion» стала самой легендар- 1989 год. Основана хакерская груп- 1992 год. Появление первых конс-
ной и многочисленной хакерской груп- па «Masters of Deception», бросившая трукторов вирусов VCL и PS-MPC. Те-
пой восьмидесятых, а «Cult of…» про- вызов «Legion of Doom». Хакеры обеих перь вредоносный код мог создать лю-
славились созданием многочисленных команд совершают ряд громких взло- бой школьник.
security-программ, самой известной мов, выясняя, кто сильнее. Борьба ин- 1993 год. На свет появляется
из которых стала программа удаленно- теллекта закончилась предсказуемо – Mosaic 1.0, выпущенный центром разра-
го администрирования «Back Orifice». активисты «MoD» были арестованы. ботки для суперкомпьютеров. Первый
1985 год. Выходит «Phrack». Еще The Mentor публикует во «Phrack» веб-браузер, прародитель NetScape.
один электронный журнал по безо- так называемый Манифест Хакера. Па- П а т р и к Ф о л к е р д и н г ( Pa t r i c k
пасности. Как принято говорить, «must фосный документ пропитан хакерской Volkerding) создает свой дистрибутив
read» для администратора. этикой и юношеским романтизмом, но, Linux – Slackware. На основе кода 386
Microsoft завершает эпоху DOS как бы там ни было, «манифест» полу- BSD-разработчики пишут первую вер-
и выпускает релиз Windows 1.0. Пока чает большую известность. сию FreeBSD.
это все тот же DOS, но с графическим 1990 год. Громкий процесс в Гер- Проходит конференция специа-
интерфейсом. мании. Питер Карл (Peter Karl), Маркус листов в области компьютерной безо-
Первый зарегистрированный до- Хесс (Markus Hess), Карл Кох (Karl Cox) пасности DefCon. С тех пор она про-
90
bugtraq
92
книжная полка
94
подписка на 2008 год
Российская Федерация печати «Гасид» (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*
81655**
по каталогу
агентства
«Роспечать»
88099*
87836**
по каталогу
агентства
«Пресса
России»
*
годовой
**
полугодовой
УЧРЕДИТЕЛИ
Частные лица
Вышел DVD-диск с архивом
РЕДАКЦИЯ
Генеральный директор
номеров журнала за 2007 год
Владимир Положевец
Ответственный секретарь Что на диске? tcpdump 3.9.8;
Наталья Хвостова n Архив 12-ти номеров журнала «Системный ад- NeTAMS 3.4.1rc1;
sekretar@samag.ru министратор» за 2007 год. IPStat 0.9.7.2;
Технический редактор n Архив всех выпусков электронного приложе- Linux kernel 2.6.24.1;
Владимир Лукин
ния «Open Source» за 2007 год. BIND 9.4.2 (+ win32);
Главный редактор n Программные продукты от партнеров журна- OpenSSL 0.9.8g;
электронного приложения ла (триальные версии): OpenSSH 4.7p1;
«Open Source» Kerio MailServer 6.5; Samba 3.0.28;
Дмитрий Шурупов Kaspersky® Internet Security 7.0; Squid Web Proxy Cache 2.6.STABLE18;
Антивирус Касперского ® 7.0; CUPS 1.3.6;
Внештатные редакторы Система контроля доступа Zlock 2.0; Clam AntiVirus 0.92.1 (+ Clamwin 0.92);
Алексей Барабанов
Кирилл Сухов Прокси-сервер UserGate 4.2; Webmin 1.400;
Андрей Бирюков Handy Backup 5.8; Bacula 2.2.8;
Сергей Яремчук Paragon Drive Backup 8.51 Enterprise Server Amanda 2.5.2p1;
Валентин Синицын Edition; n Пользовательское ПО:
Олег Щербаков Network Inventory 1.6.0; OpenOffice.org 2.3.1 (LinuxIntel, Win32Intel);
Иван Хрипунов FastReport Server 1.0.10 demo; Mozilla Firefox 2.0.0.12 (Linux, win32);
ABBYY Lingvo 12; Mozilla Thunderbird 2.0.0.12 (Linux, win32);
РЕКЛАМНАЯ СЛУЖБА
тел./факс: (495) 628-8253 WinRar 3.71; Mozilla Seamonkey (Linux, win32);
Евгения Тарабрина (доб. 119) Linux-дистрибутив Mandriva One 2008; Mozilla Sunbird 0.7 (Linux, win32);
reсlama@samag.ru Linbox Rescue Server 20070703. Pidgin 2.4.0 (+ win32);
n Серверы/сети/администрирование: SIM IM 0.9.4.3 (+ win32);
Верстка и оформление FreeBSD 7.0-RELEASE; X-Chat 2.8.4 (+ 2.8.5e win32);
maker_up@samag.ru Apache HTTP Server 2.2.8 (+ win32); aMule 2.1.3 (+ win32);
nginx 0.6.26, 0.5.35; GIMP 2.4.5 (+ 2.4.4 win32);
Дизайн обложки
Дмитрий Репин lighttpd 1.4.18; MPlayer 1.0rc2 (+ win32);
Николай Петрочук ProFTPD 1.3.1; VLC media player 0.8.6e (+ win32);
PureFTPd 1.0.21; WINE 0.9.56;
По вопросам распространения vsftpd 2.0.6; DOSBox 0.72 (+ win32);
обращайтесь по телефону: Sendmail 8.14.2; DOSEMU 1.4.0;
Светлана Зобова Postfix 2.5.1, 2.6-20080221 (experimental); Midnight Commander 4.6.1;
(495) 628-8253 (доб. 121) Courier Mail Server 0.58.0; Vim 7.1 (+ gvim71);
107045, г. Москва, Exim 4.69; 7-Zip 457 (+ win32);
Ананьевский переулок, дом 4/2, стр. 1 SpamAssassin 3.2.4; GnuPG 2.0.8 (+ w32cli 1.4.8).
тел./факс: (495) 628-8253 DSPAM 3.8.0;
Сайт журнала: www.samag.ru Policy Daemon 1.82; Как получить диск в подарок?
SquirrelMail 1.4.13; n Клиенты компании SecurIT, заказавшие Zserver
ИЗДАТЕЛЬ RoundCube 0.1-rc2; в любой комплектации или более 50 лицензий
ООО «С 13» MySQL 5.0.51a (+ win32); Zlock, получат диск в подарок.
Отпечатано типографией
ГП «Московская Типография №13» PostgreSQL 8.3.0 (+ win32);
Тираж 17000 экз. Firebird 2.0.3.12981 (+ win32); Где можно приобрести диск?
SQLite 3.5.6 (+ win32); n В редакции ж урна ла «Сис темный а дми-
Журнал зарегистрирован в Министерстве РФ Perl 5.10.0; нистратор» по адресу: г. Москва, Ананьев-
по делам печати, телерадиовещания и средств PHP: 5.2.5 (+ win32); ский переулок 4/2, стр. 1, в офисе 13 (мет-
массовых коммуникаций (свидетельство ПИ № Python 2.5.2 (+ win32); ро «Сухаревская»).
77-12542 от 24 апреля 2002 г.).
Ruby 1.8.6-p111, 1.9.0-1; n В online-магазине Linuxcenter.ru.
За содержание статьи ответственность несет
Nmap 4.53 (+ win32); n Для обитателей и посетителей Савеловско-
автор. Мнение редакции может не совпадать Ettercap 0.7.3.tar.gz (+ win32); го рынка, диск можно купить в точке торговли
с мнением автора. За содержание рекламных Ethereal 0.99.0 (+ win32); печатными изданиями у главного входа.
материалов ответственность несет рекламо- Snort 2.8.0.2;
датель. Все права на опубликованные мате- MRTG 2.16.1; Сколько стоит?
риалы защищены. NuFW 2.2.9; Цена – 150 рублей.
96