Академический Документы
Профессиональный Документы
Культура Документы
Сможет ли PC-BSD
конкурировать
с Linux-дистрибутивами?
Оцените WrSpy!
Считаем трафик почтовых
и прокси-серверов
Настраиваем DSPAM –
ваш личный спам-фильтр
Проводим аудит системы
с помощью SNARE
Упрощаем управление
Asterisk-сервером
Asterisk-сервером
OpenMosix – превратим сеть
в единый суперкомпьютер!
CD, не подвластный
копированию
№8(33) август 2005
Админские сказки
16 bit edition
Так видит журнал читатель, который забыл оформить подписку:
СЬ
И
ИЛ
ЛИ
ТЯ Е
ЗА ДНИ
Ж П
НУ
РА КУ
ЛЫ ГО
ТИ РАС
КУ ВО
РО
НИ НО
СТ
БЫ
КА
И
ЬГ
ЬД О
РА СКА
ТЕ
К
ИС НН
ЕН
УС
БО
НА ТПУ
ИЛ ДА
ТП
НЧ ЖИ
ВО
РА Е О
КО ЕО
АВ СЛ
Л
Л
ХА
ЗА Н
ПО
УЕ
Так видит журнал читатель, оформивший подписку:
ПОДПИШИТЕСЬ И ЧИТАЙТЕ!
Роспечать – 81655
Пресса России – 87836
Интер-почта – тел. (095) 500-00-60
оглавление
2 РЕПОРТАЖ БЕЗОПАСНОСТЬ
3 ТЕНДЕНЦИИ 60 Проводим аудит системы
с помощью SNARE
АДМИНИСТРИРОВАНИЕ Полноценный контроль за системными событиями.
Сергей Яремчук
6 Сможет ли PC-BSD конкурировать grinder@ua.fm
с Linux-дистрибутивами?
Обзор настольного дистрибутива PC-BSD, основан- 64 CD, не подвластный копированию
ного на FreeBSD. Сергей Супрунов Список популярных ошибок в механизмах защиты
amsand@rambler.ru CD от копирования, рекомендации по их устране-
нию, а также готовый алгоритм защиты.
10 Asterisk и Linux: миссия IP-телефония Крис Касперски
Действие 3 kk@sendmail.ru
Рассматриваем несколько веб-интерфейсов, значи-
тельно облегчающих работу пользователей и адми- ПРОГРАММИРОВАНИЕ
нистраторов Asterisk. Михаил Платов
platov@cs.vsu.ru 72 Контролируем и ограничиваем
системные вызовы с помощью
20 Создаем систему учета systrace
исходящих телефонных звонков Как всегда быть в курсе того, что происходит в ва-
Готовое решение на примере УАТС LG GDK-162. шей системе? Александр Байрак
Денис Соколов x01mer@pisem.net
box1739@yandex.ru
HARDWARE
24 Настраиваем DSPAM – ваш личный
спам-фильтр 76 Используем LinuxBIOS на системах
Основанная на алгоритмах статистического анали- VIA EPIA-M
за, самообучающаяся система DSPAM существенно Вдохнем жизнь в barebone-систему на базе EPIA-M
упростит жизнь пользователю, выполняя за него ра- и технологии LinuxBIOS. Антон Борисов
боту по сортировке входящей корреспонденции. a.borisov@tesv.tmb.ru
Сергей Супрунов
amsand@rambler.ru WEB
36 WrSpy – считаем и контролируем 82 Совершенствуем технологию CMS
трафик почтовых и прокси-серверов Возможности проекта Habitat 2.0.
Оцените возможности бесплатной программы WrSpy Алексей Моисеев
для контроля за интернет-трафиком ваших пользо- tsaralex@alpe.ru
вателей. Роман Марков
stepan-razin@newmail.ru БИЗНЕС-РЕШЕНИЯ В IT
42 Знакомимся с HPC-кластером 86 IT в сфере ресторанно-гостиничного
OpenMosix бизнеса
Превратим сеть в единый суперкомпьютер! Обзор программных и аппаратных продуктов, позво-
Антон Борисов ляющих эффективно управлять современными гос-
a.borisov@tesv.tmb.ru тиничными комплексами. Кирилл Тихонов
aka_shaman@mail.ru
48 Управляем удаленными базами AIDE
Требуется оснастить все сервера программой конт- СКАЗКИ
роля от вторжений – AIDE. Но сервера территориаль-
но разбросаны, а хотелось бы хранить базы AIDE на 88 Админские сказки. 16 bit edition
съемных носителях. Как собрать данные со всех ком- Совершенно выдуманные истории, рассказанные
пьютеров, не вставая с места? Рашид Ачилов без какой-нибудь видимой цели или морали, и да-
shelton@granch.ru же не ко сну. Алексей Барабанов
alekseybb@mail.ru
54 SAP+MySQL=MaxDB
Обзор возможностей MaxDB – СУБД, базирующей- 93 КНИЖНАЯ ПОЛКА
ся на исходном коде SAP DB. Кирилл Сухов
geol@altertech.ru 75, 85, 94 BUGTRAQ
№8, август 2005 1
репортаж
М
ероприятие происходило в здании Ленинградского что поспать особо не удалось. Утром за нами прибыл ав-
дворца молодежи. В одном месте собирались твор- тобус, и мы отправились на второй день мероприятия. Про-
ческие личности: программисты, художники, музы- грамма этого дня была не менее насыщенной по сравне-
канты, аниматоры. нию с первым днем.
Одновременно с CC’05 в том же зале проходила выстав-
ка retro-компьютеров.
2
тенденции
Novell привлекает сторонних
Linux-разработчиков
В первой половине августа американская компания анон-
сировала и запустила инициативу OpenSuse, «открыв» раз-
работку своего ключевого Linux-продукта – дистрибути-
ва SUSE. Проект OpenSuse, по своей сути напоминающий
Fedora Project, поддерживаемый Red Hat, прямым конку-
рентом Novell, доступен на веб-сайте www.opensuse.org, где
вскоре и были опубликованы бета-релизы свободной версии
SUSE Linux 10.0. По словам Грега Манкузи-Унгаро, директо-
ра по маркетингу ОС Linux и Open Source в Novell, компания
таким образом рассчитывает привлечь большее число сто-
ронних разработчиков, новых пользователей и в конечном
счете получить более значимую долю на Linux-рынке.
4
конкурс
IT-ACADEMY 2005
НОВАЯ АКЦИЯ
ДЛЯ МОЛОДЫХ СПЕЦИАЛИСТОВ
Еще не закончился «Кубок сетевых проектов Microsoft», технические материалы с которого
мы планируем опубликовать в последующих номерах, как те же организаторы – компании
Microsoft, Softline и ZyXEL объявили о начале новой акции. Как и в прошлый раз, акция
проводится для молодежи – школьников, студентов, аспирантов и молодых специалистов
(недавних выпускников вузов), но теперь ее география расширилась – она проходит
в нескольких городах России: Москве, Томске, Омске, Воронеже и Самаре.
П
олное название акции – «Моло- бом из тестов не менее 60 процентов Почему во втором этапе нужно сна-
дежный чемпионат IT-Academy правильных ответов. Участники второ- чала пройти платный курс и только
2005». Несмотря на слово «чем- го этапа должны пройти специальный потом сдавать проверочный тест на
пионат», акция не имеет ничего общего 12-часовой курс «Построение IT-инфра- усвоение материала. Можно ли сда-
с турнирами для программистов и дру- структуры предприятия на основе про- вать тест без курса?
гими соревнованиями, в которых мо- дуктов Microsoft» стоимостью 599 руб- Нам кажется, что проверять началь-
гут участвовать только очень опытные лей. Курс рассматривает ОС Windows ную техническую подготовку участ-
специалисты. Наоборот, чтобы при- XP и Windows Server 2003, Групповую ника не очень логично. В самом деле,
нять участие в IT-Academy 2005 доста- политику и серверные продукты MS если человек и так все знает, зачем
точно лишь иметь общее представле- Exchange Server 2003 и MS ISA Server ему дополнительное обучение? На-
ние о том, чем занимаются компании 2004. В каждом городе по результатам ша идея – предоставить возможность
Microsoft и ZyXEL. обучения определится тройка побе- пройти обучение и сертифицировать-
Акция состоит из двух этапов, и у дителей, которые и смогут бесплатно ся тем людям, которые хотят и могут
каждого этапа свои призы. На первом пройти профессиональное обучение. эффективно учиться новому, незави-
этапе нужно сдать на сайте http://www. Акция показалась нам интересной, симо от их начального уровня знаний.
it-academy.ru бесплатный онлайн-тест и мы решили задать несколько вопро- Поэтому, чтобы поставить всех в рав-
Microsoft или ZyXEL. Задачей теста не сов организаторам. На наши вопросы ные условия, мы сначала обучаем, а
является проверка технических зна- отвечает директор по развитию реги- только потом тестируем. Что касает-
ний участника. Вместо этого тест про- ональных образовательных проектов ся платности курса, то цена установ-
веряет общее знакомство с компани- SoftLine Андрей Степанов. лена чисто символическая и даже ес-
ей, ее историей, новостями и продукта- ли не рассматривать возможность вы-
ми/услугами. С учетом того, что все от- В чем идея акции? игрыша, курс более чем оправдывает
веты можно найти в Интернете, сдача Мы хотели поощрить активных и лю- свою стоимость.
теста не выглядит особо сложной за- бознательных молодых людей, кото-
дачей. Главный приз в каждом городе рые знают или хотят узнать больше
получит тот, кто сдаст тест раньше и об IT-компаниях, а также серьезно за-
лучше всех. Среди остальных участ- думываются о повышении своего про-
ников будут разыграны по лотерее два фессионализма и получении междуна-
дополнительных приза. родных сертификатов.
Второй этап не является обязатель-
ным, но если есть желание побороться Как будут отбираться победители
за бесплатное обучение на несколь- второго этапа?
ких авторизованных курсах Microsoft Во время курса и сразу после его окон-
по программе MS IT Academy и за меж- чания будет проводиться тестирование
дународный сертификат Профессиона- усвоения материала. Те студенты, ко- Главный приз от компании ZyXEL –
802.11g+ беспроводной модем ADSL2+
ла Microsoft (MCP), то предваритель- торые покажут лучшие результаты, с 2-портовым шлюзом VoIP и 4-портовым
ным условием является набор на лю- и станут победителями. коммутатором P-2602HW EE
Новые дистрибутивы Linux появляются, как грибы после дождя. Фанаты же BSD по большей
части вынуждены собирать свои десктопы вручную. Однако появилась пара дистрибутивов,
основанных на FreeBSD, одному из которых и посвящается эта статья.
СЕРГЕЙ СУПРУНОВ
М
ы рассмотрим дистрибутив PC-BSD. В руки мне по- тинка (рис. 1), которая позволит воспользоваться различ-
палась версия 0.7.8, основанная на FreeBSD 5.4- ными режимами загрузки в случае проблем.
RELEASE #2. Сейчас, когда я пишу эти строки, ве- Далее, перед переходом в графический режим, будет
дутся работы над версией 0.8, и не исключено, что к момен- выведено еще одно текстовое окно, предоставляющее
ту выхода журнала актуальной будет уже она. Тем не ме- еще несколько путей для преодоления возможных трудно-
нее основные свои черты дистрибутив должен сохранить, стей, например, вы сможете загрузиться в режим команд-
так что продолжим. ной оболочки (рис. 2).
Инсталлятор потребует некоторого знания английского
Процесс установки языка (можно надеяться, что в следующих релизах появит-
Инсталляция, снабженная удобным графическим интер- ся и русский), однако для человека, в общих чертах пред-
фейсом, прошла без каких-либо эксцессов. При загрузке с ставляющего себе установку операционной системы, ни-
диска вас встретит знакомая пользователям FreeBSD кар- каких сложностей возникнуть не должно.
6
администрирование
Итак, после приветствия и нескольких общих фраз
(рис. 3) вам будет предложено выбрать место на имею-
щихся у вас дисках, куда вы хотели бы выполнить уста-
новку (рис. 4).
Если отметить опцию «Customize DiskLabel», то вы по-
лучите возможность разбить выбранный слайс на подраз-
делы по своему желанию (рис. 5). Иначе будет выполне-
на нехитрая автоматическая разбивка, на мой взгляд, не
совсем оптимальная – 999 Мб будет занято под Swap, ос-
тальное место – под корневой раздел. При таком распре-
делении слайса резко возрастает риск повредить систе-
му при аварийном завершении работы. Учитывая, что ка-
Рисунок 1. Стандартное меню загрузчика BSD
чество электросети в нашей стране по-прежнему остав-
ляет желать лучшего, а ИБП дома – роскошь, вероятность
неприятностей становится еще выше. Хотя файловая сис-
тема FreeBSD достаточно устойчива к сбоям, все же луч-
ше потратить несколько минут и указать более удачное
разбиение, выделив, по крайней мере, отдельные разде-
лы для /usr и /var. Кроме того, подобное разбиение позво-
лит более гибко оптимизировать работу ФС в зависимос-
ти от решаемых задач, например, включив асинхронный
режим работы для /var.
Далее инсталлятор поинтересуется, желаете вы устано-
вить загрузчик BSD или нет. После чего начнется процесс
копирования файлов, который займет минут 15-20. (Кста-
ти, если во время копирования ваш экран вдруг станет чер- Рисунок 2. Окно выбора режима работы
ным, не пугайтесь – это screen-saver.) В конце вам нужно бу- На рабочем столе не будет видно иконок быстрого мон-
дет ввести пароль суперпользователя, а также заполнить тирования CD и жестких дисков. Они размещены под икон-
данные непривилегированного пользователя, от имени ко- кой «Computer» и далее – «Drives». Там же можно найти и не-
торого вы будете в дальнейшем работать в системе. Здесь что вроде «Сетевого окружения» для Samba. Монтирование-
же вы сможете отметить, хотите ли входить в систему ав- размонтирование дисков выполнялось легко, что называет-
томатически (опция «Autologon»). Теперь со спокойной со- ся, парой кликов (рис. 6). Подключение разделов NTFS тоже
вестью можно перезагрузиться. возможно, но только на чтение. Кстати говоря, для непри-
вилегированного пользователя и FAT будет доступна толь-
Про маленькую проблему ко для чтения – писать туда по умолчанию может лишь root.
Упомяну здесь про интересное поведение дистрибутива, И еще, что бросилось в глаза, – в папке автомонтирования
когда я попытался его поставить на свой домашний ком- были предложены только диски, размещенные на основных
пьютер с отключенным Primary Master-диском (был подклю- разделах. Логический диск с FAT32, который у меня находит-
чен только Slave). Сперва он не нашел никакие диски во- ся на дополнительном разделе, обнаружен не был.
обще, но после нажатия кнопки «Обновить» в окне выбора Среди имеющихся приложений можно найти несколько
диска предложил поставить систему на неизвестно откуда простых текстовых редакторов (Kate, KWrite), средства для
взявшийся BSD-раздел размером около 2 Гб. просмотра графики, PDF, аудиоплейер, десятка два обыч-
Когда я ради интереса согласился и продолжил установ- ных для KDE игрушек.
ку, PC-BSD 15 минут честно копировал свои файлы в нику- Для работы в Интернете к вашим услугам браузер
да, сопровождая это сообщениями «Failed to create dir…», не Konqueror, почтовый клиент KMail, менеджер закачек KGet.
прерывая тем не менее работы. После перезагрузки, естес- Столь популярный ныне Firefox в дистрибутив не попал, так
твенно, ничего установленного найдено не было. же как и старушка Mozilla.
Таким образом, прежде чем начинать установку, убеди- Ни исходных кодов, ни дерева портов в дистрибутиве
тесь, что в системе есть диск Primary Master (саму установ- нет, так что вам придется добывать их самостоятельно, ес-
ку не обязательно выполнять на него). ли возникнет необходимость пересобрать ядро или устано-
вить какой-нибудь пакет. Впрочем, для работы с приложе-
Первые впечатления ниями PC-BSD предлагает собственное решение.
При загрузке в свежеустановленную систему вы сразу по-
падете в KDE. Все довольно стандартно, однако в дистри- Установка дополнительных приложений
бутивах Linux я уже успел привыкнуть к кнопке вызова тер- Еще на этапе инсталляции вы можете встретить подсказ-
минала, размещенной непосредственно на панели инстру- ку, что при желании вы можете закачать себе дерево пор-
ментов или, по крайней мере, в главном меню KDE. Здесь тов простой командой:
же пришлось добираться до нее через несколько вложен-
ных меню. # cvsup /root/ports-supÞle
Рисунок 3. Начинаем инсталляцию PC-BSD Рисунок 4. Диалог выбора раздела для установки
Но разработчики PC-BSD предлагают другое реше- ляторах. Как будто вы ставите msi-приложение в системе
ние – пакеты pbi. Скачать их можно с сайта http://www.pcbsd. Windows.
org, однако на данный момент выбор не очень богатый – Установленные таким образом приложения можно бу-
чуть больше 50. Зато это наиболее востребованное ПО – дет найти в PC-BSD Package Manager (рис. 7). Из этого же
OpenOffice, Firefox, Opera, Thunderbird, GIMP, ClamAV и др. окна лишнее можно и удалить.
Так вот достаточно скачать себе pbi-файл, и одним щел- Ну и помимо данного способа вы можете воспользо-
чком мыши вы получите у себя готовое к работе приложе- ваться более традиционным менеджером пакетов KPackage
ние. Не нужно заботиться ни о зависимостях, ни о компи- (рис. 8) либо использовать коллекцию портов традицион-
8
администрирование
Рисунок 9. KDE Control Center. Keyboard layout Рисунок 10. Настройка сети вручную
ным способом, выполнив предварительно указанную вы- языка – огромный минус, однако можно надеяться, что в сле-
ше команду. дующих версиях ситуация изменится в лучшую сторону.
Опытному пользователю, конечно же, будет не хватать
Поддержка русского языка коллекции портов и исходных кодов, но, потратив пару со-
Вот чего нет, того нет. Конечно, вы можете выбрать рус- тен мегабайт трафика, можно легко привести систему в при-
скую раскладку клавиатуры в KDE Control Center (рис. 9), вычное состояние.
и это позволит вам набирать тексты в простых редакто- Таким образом, PC-BSD – хорошая отправная точка
рах типа Kate на родном языке (используется кодиров- для установки FreeBSD на свой домашний или рабочий
ка Unicode). Однако, установив тот же OpenOffice как pbi- компьютер, хотя по сравнению с большинством дистрибу-
пакет, вы обнаружите полное отсутствие кириллических тивов Linux этот дистрибутив пока еще заметно отстает и
шрифтов. Так что придется предварительно потрудиться требует доводки «напильником». Впрочем, это можно объ-
над русификацией. яснить его молодостью.
Поддержка сети
Естественно, сеть дистрибутивом поддерживается в пол-
ном объеме. Но, как это ни печально, графической утилиты
для ее настройки я не нашел. Поэтому придется восполь-
зоваться старым добрым консольным способом (рис. 10).
Кстати, обратите внимание, что ipfw по умолчанию вклю-
чен как открытый. То есть он будет пропускать все пакеты,
что выглядит не очень правильным решением. Работать с
правилами ipfw также придется вручную.
Средства разработки
В самом дистрибутиве помимо C-компилятора (куда же без
него) можно найти Perl 5.8.7, Python 2.4.1, Ruby 1.8.2. Таким
образом, у вас есть достаточно инструментов, чтобы сде-
лать свою работу простой и комфортной. При необходи-
мости вы можете установить KDevelop или Quanta из упо-
мянутых ранее pbi-пакетов либо же воспользоваться сис-
темой портов, предварительно скачав себе свежее дере-
во коллекции.
Выносим вердикт
Если смотреть на дистрибутив PC-BSD глазами начинающе-
го пользователя, то при минимуме усилий вы получите уже
настроенную графическую среду с некоторыми инструмен-
тами и возможностью в дальнейшем сосредоточиться на ус-
тановке нужного ПО. Недостаточное количество прекомпи-
лированых пакетов рано или поздно заставит разбираться с
портами, хотя и без них можно собрать вполне работоспособ-
ную систему. Отсутствие полноценной поддержки русского
МИХАИЛ ПЛАТОВ
Послушаем почту? +--------- Asterisk Web Voicemail ----------+
Как вы помните, для проверки голосовой почты в нашем + +
+ Asterisk Web Voicemail is installed in +
номерном плане есть специальный номер – 8500. Позво- + your cgi-bin directory. IT USES A SETUID +
нив на него и введя личный пароль, наши пользователи мог- + ROOT PERL SCRIPT, SO IF YOU DON'T LIKE +
ли прослушать оставленные им сообщения. Правда, иног- + THAT, UNINSTALL IT! +
+ +
да такой способ доступа бывает несколько неудобен (на- +-------------------------------------------+
пример, вы находитесь в другом городе или просто под ру-
кой нет телефона). Для решения этой проблемы можно от- Если использование setuid вас устраивает, проигно-
сылать записанные сообщения на e-mail (см. [2]) или орга- рируйте это сообщение и перейдите к следующему шагу.
низовать централизованный доступ через Интернет с ис- В противном случае вы можете воспользоваться специаль-
пользованием безопасного SSL-соединения. Отрадно то, ным патчем для Asterisk, описанным в [3].
что в состав стандартного дистрибутива Asterisk веб-ин- Отредактируем файл скрипта vmail.cgi, определив сле-
терфейс для работы с голосовой почтой уже входит, прос- дующее значение для контекста по умолчанию:
то в целях безопасности автоматически он не устанавли-
вается. Что, впрочем, не мешает нам сделать это самосто- context="ofÞce"
ятельно. Для работы данного интерфейса необходим веб-
сервер apache с пакетом perl-suid. Краткости ради будем Откроем ваш любимый браузер и введем URL только
считать, что эти пакеты у нас уже установлены и работают, что установленного интерфейса (в моем случае это будет
а веб-сервер сконфигурирован так, что cgi-bin расположен http://ast-test/cgi-bin/vmail.cgi). Если все было сделано пра-
в /var/www/cgi-bin, и cgi-скрипты, входящие в стандартную вильно, то мы увидим следующее (см. рис. 1).
поставку, выполняются без проблем. Итак, перейдем в ка- Введя имя пользователя (номер телефона) и пароль, мы
талог /usr/src/asterisk и выполним команду make webvmail. попадем в папку «Входящие» нашего ящика (см. рис. 2).
Программа make скопирует все необходимые файлы и вы- Пользователей linux-систем придется немного расстро-
даст следующее предупреждение: ить – воспроизведение в браузере через плагин (кнопка
10
администрирование
play) скорее всего не заработает, и для прослушивания со-
общений придется загружать файлы на компьютер (кнопка
download), а вот с Windows все нормально (см. рис. 3).
При организации работы из Интернета рекомендуется
ограничить доступ к странице средствами веб-сервера, а
также настроить использование SSL (https://) для безопас-
ной передачи паролей.
эмуляции таймеров! Одним из них мы сейчас и воспользу- Настроим автоматическую загрузку модуля, добавив
емся. Этот способ применим для ядер 2.4.x (с модулем usb_ соответствующую запись в стартовые скрипты системы
server=127.0.0.1
port=5038
username=webmm
secret=webmmpw
12
администрирование
14
администрирование
но воспользоваться одним из готовых скриптов, входящих
в состав дистрибутива (есть скрипты для Debian и Redhat)
или просто прописать вызов op_server.pl (или safe_opserver)
в стартовых скриптах вашего дистрибутива.
# /usr/src/AMP/install _ amp
16
администрирование
Рисунок 10. Модуль отчетов AMP Рисунок 11. Интерфейс Flash Operator Panel
Для остальных разделов конфигурации ограничимся ! On Hold Music – в этом подразделе мы можем загру-
кратким описанием их назначения. зить на сервер дополнительные мелодии для музыки
! Queues – здесь определяются параметры очередей и при ожидании.
агентов. Более подробно эти параметры будут рассмот- ! System Recording – с помощью этого пункта меню мож-
рены в одном из следующих номеров журнала. но добавлять (или записывать) в Asterisk дополнитель-
! Digital Receptionist – автосекретать. С помощью этого ные звуковые сообщения, которые впоследствии могут
пункта можно быстро создать голосовое меню. Напри- быть использованы в голосовых меню.
мер, запишем такой текст: «Здравствуйте! Вы позвони- ! Backup & Restore – как следует из названия, с помощью
ли в СамуюЛучшуюКомпанию. Для соединения с ком- данного раздела можно резервировать и восстанавли-
мерческим отделом нажмите 1. Технический отдел – 2. вать конфигурацию Asterisk-сервера. Для работы этой
Бухгалтерия – 3 и т. д.» Затем с помощью того же мас- функции необходимо добавить в crontab выполнение со-
тера создадим правила маршрутизации для этого ме- держимого /etc/asterisk/backup.conf.
ню, перенаправляющие пользователей в соответству- ! General Settings – в этом пункте определяются некото-
ющие отделы (в общем случае правила могут не соот- рые системные параметры AMP – время дозвона до або-
ветствовать текстовому сообщению). И, наконец, назна- нента перед перенаправлением к голосовой почте, па-
чим созданное меню для входящих звонков в подраз- раметры работы с каталогом пользователей и настрой-
деле Incoming Calls. Этим самым мы значительно сни- ки обработки входящих факсов.
зим нагрузку на нашего секретаря, освободив его вре-
мя для более интересной работы. Более менее разобравшись с имеющимися возможнос-
! DID Routes – маршруты прямого вызова. С помощью тями настройки, остановимся на модуле отчетов. С его по-
данной функции можно напрямую позвонить внутрен- мощью администратор может не только получить деталь-
нему абоненту/агенту/группе вызова Asterisk с исполь- ную информацию за любой интересующий его период вре-
зованием механизма DID (при этом DID также должен мени, но и просмотреть статистическую информацию о за-
поддерживаться городской телефонной станцией). грузке сервера в течение дня или на протяжении месяца.
Лирическое отступление зуем протокол UDP, не предоставляю- больше похож на использование T.38
о факсах щий гарантий доставки пакетов). Ес- вместо обычного кодека (факсовые
Как вы могли заметить, один из раз- ли вдобавок еще и взглянуть на пер- данные упаковываются в обычные
делов меню AMP посвящен настройке вую строчку таблицы в [8], то мы уви- RTP-пакеты). Проще говоря, подде-
приема факсов в Asterisk, однако в ста- дим, что при передаче факса через ржка в прокси-серверах первых двух
тье об этой возможности не было ска- Интернет нам потребуется канал с ре- протоколов требует дополнительных
зано ни единого слова. Причиной тому альной пропускной способностью око- усилий от разработчиков, в то время
является текущий уровень реализации ло 80 кБит, что, согласитесь, уже не- как для третьего варианта достаточ-
поддержки работы с факсами в систе- мало. По этим и другим причинам для но поддержки в конечных устройствах.
мах IP-телефонии в целом и в Asterisk передачи факсов через голосовые се- К тому же ситуация усугубляется тем,
в частности. Давайте рассмотрим эту ти все чаще стараются использовать что зачастую производители голосово-
проблему более внимательно. T.38. Данный протокол был разрабо- го оборудования если и реализуют под-
На самом верхнем уровне можно тан организацией ITU-T специально держку T.38 в своих устройствах, то ог-
выделить два основных способа пере- для передачи факсов в VoIP-сетях. раничиваются лишь одним из вариан-
дачи факсимильных сообщений в сис- Механизм работы устройств, подде- тов реализации (чаще первым), со все-
темах IP-телефонии: рживающих данный протокол, следу- ми вытекающими отсюда несовмести-
! Поверх существующего голосово- ющий – при обнаружении голосовым мостями и проблемами.
го кодека. шлюзом сигналов факса он пытается Что же касается Asterisk, то на дан-
! С использованием протокола T.38. установить дополнительное соедине- ный момент он абсолютно точно не
ние с другим шлюзом (благо и H323 и поддерживает два первых варианта
Первый способ фактически пред- SIP это позволяют), но уже с исполь- использования T.38 (заметьте, это вов-
ставляет собой обычный факс, под- зованием T.38. Благодаря использова- се не означает, что такая поддержка
ключенный к голосовому шлюзу, на- нию помехоустойчивого кодирования, невозможна в принципе). С третьим
пример с интерфейсом FXS. При этом, а также протокола с гарантией достав- способом ситуация комичнее – до на-
если мы хотим передать факс, мы на- ки – TCP с использованием T.38 мож- стоящего времени ни одного устройс-
бираем нужный нам номер, пытаем- но получить практически идеальное тва, использующего T.38 поверх RTP,
ся установить соединение с аппара- качество передачи факсов. Правда, сообществом разработчиков Asterisk
том на другой стороне и т. д. А теперь и для этой ложки меда имеется своя обнаружено не было, поэтому инфор-
вопрос на засыпку: «Помните ли вы, бочка дегтя – поддержка протокола мации о его практической работоспо-
как работает модем? А как он работа- T.38 в существующих на сегодняш- собности нет. Таким образом, реаль-
ет на очень плохих или «старых» ли- ний день устройствах все еще остав- ная поддержка передачи факсимиль-
ниях?» Факс, обработанный одним из ляет желать лучшего. Дело в том, что ных сообщений в Asterisk на данный
голосовых кодеков с сильным сжати- согласно стандартам, на данный мо- момент возможна только с использо-
ем (GSM, G723, G729), будет работать мент существует 3 (!) различных спо- ванием кодека G711, причем наиболее
еще хуже, вернее, скорее всего он не соба передачи факсов с использова- предпочтительна следующая схема:
будет работать вообще. С кодеками, нием T.38: входящий факс-сервер, работающий
не использующими сильное сжатие с ! Поверх протокола UDP. поверх G711 c использованием zaptel-
потерями (в Asterisk это G711 в вариан- ! Поверх протокола TCP. устройств Asterisk.
тах a-law и u-law), ситуация будет луч- ! Передача в RTP-пакетах. В завершение упомянем и другой
ше. При этом качество передачи фак- взгляд на эту проблему. А нужна ли во-
сов во многом будет зависеть от ре- Первые два способа фактически обще передача факсов в VoIP-сетях?
ального состояния IP-канала (потери, представляют собой специализиро- Если IP-инфраструктура уже сущес-
джиттер, задержка) между абонента- ванные протоколы для передачи фак- твует, то не проще ли в данном слу-
ми (ведь на самом деле мы переда- сов (протоколы IFP/udptl и IFP/TCP со- чае использовать что-то другое, на-
ем «голос», следовательно, исполь- ответственно), в то время как третий пример e-mail?
Поддерживается выгрузка отчетных данных в формате pdf от необходимости лишний раз редактировать файлы кон-
и csv (см. рис. 10). фигурации.
Давайте более подробно остановимся на графическом
Интерфейс панели управления интерфейсе. Как уже говорилось выше, клиентская часть
Третьим разделом интерфейса управления является уже FOP разработана с использованием Macromedia Flash. Это не
знакомая нам Flash Operator Panel. В состав последней вер- могло не оставить отпечатка на характере работы с визуаль-
сии AMP входит несколько устаревшая версия FOP (20 про- ным интерфейсом. Все действия с абонентами производятся
тив 22 на сайте разработчика). Правда, некоторой компен- либо с помощью двойного щелчка мыши, либо методом «drag
сацией за это является интеграция AMP и FOP при установ- and drop». Так, для того чтобы принудительно завершить се-
ке «из коробки». анс пользователя, необходимо нажать на «1» (см. рис. 11),
Так, добавляя нового пользователя в AMP, запись о а для того чтобы соединить двух абонентов, – перетащить
нем автоматически появляется и в FOP, что избавляет нас значок телефона на кнопку вызываемого абонента.
18
администрирование
К сожалению, текущая реализация совместной работы FOP ! Возможные проблемы с масштабируемостью (как следс-
и Asterisk не лишена недостатков. Так, в варианте «из короб- твие из предыдущего).
ки» FOP не видит стандартных конференций AMP. Для реше- ! Отсутствие управления параметрами MeetMe через веб-
ния этой проблемы воспользуемся нашими знаниями о струк- интерфейс.
туре конфигурационных файлов. Первым делом в файле op_ ! Отсутствие встроенной системы безопасности.
server.cfg в качестве контекста для конференций укажем ext- ! Достаточно сложная структура номерного плана (осо-
meetme, для параметра barge_roooms выберем одно из стан- бенно для начинающих пользователей).
дартных для AMP значений, например 8200, и опишем соот- ! Шероховатости в интеграции с FOP.
ветствующие кнопки в файле op_buttons_custom.cfg согласно ! Отсутствие русского интерфейса меню.
инструкции, приведенной выше для FOP. После этого переза- ! Проблемы совместимости между номерным планом
пустим perl-сервер, обновим страницу интерфейса клиента и и аппаратным голосовым оборудованием (некоторые
порадуемся, увидев в нем кнопки, соответствующие MeetMe. шлюзы не могут корректно набирать символы «#,*» кото-
Теперь с помощью веб-интерфейса мы можем «собирать» лю- рые очень активно используются в номерном плане).
дей в виртуальных «комнатах» для проведения совместных об-
суждений (drag-and-drop на картинку конференции), а также При всем этом, несмотря на указанные недостатки,
подключаться к уже идущим разговорам. (правда, для неза- Asterisk Management Portal, безусловно, можно считать од-
метной работы последнего, возможно, потребуется более тон- ним из лучших веб-интерфейсов для Asterisk. Проект очень
ко настроить работу модуля MeetMe). С отображением состоя- активно развивается, и вполне возможно, что многие из пе-
ния парковочных мест можно поступить аналогично. речисленных недочетов будут исправлены в следующей
версии. При этом не стоит забывать, что AMP полностью
Заключение открыт и вы сами можете принять непосредственное учас-
В заключение давайте еще раз кратко рассмотрим сильные тие в его дальнейшем развитии. Ну а если разработка веб-
и слабые стороны AMP. Итак, преимущества: приложений вам не близка, а AMP вам просто понравился
! Возможность редактирования параметров Asterisk че- как пользователю, не забудьте сделать donation на офици-
рез веб-интерфейс. альном сайте проекта [7].
! Возможность получения информации о совершенных
звонках. Литература, ссылки:
! Быстрое создание голосовых меню. 1. Платов М. Asterisk и Linux – миссия IP-телефония. Дейс-
! Возможности автосекретаря. твие 2. – Журнал «Системный администратор», №7,
! Использование «транков». 2005 г. – 32-38 c.
! Определение правил маршрутизации . 2. Платов М. Asterisk и Linux – миссия IP-телефония. –
! Загрузка мелодий для «музыки при ожидании». Журнал «Системный администратор», №6, 2005 г. –
! Определение групп вызова. 12-19 c.
3. http://www.voip-info.org/tiki-index.php?page=Asterisk+gui+
Но, как известно, у каждой медали есть и вторая сторо- vmail.cgi.
на. У AMP она выглядит так: 4. http://www.asternic.org.
! Необходимость перезаписи конфигурационных фай- 5. http://asteriskathome.sourceforge.net.
лов. 6. http://asterisk.gnuinter.net.
! Необходимость функционирования всех ключевых ком- 7. http://sourceforge.net/projects/amportal.
понент на одном компьютере (как следствие из преды- 8. Платов М. Что важно знать об IP-телефонии. – Журнал
дущего). «Системный администратор», №5, 2005 г. – 20-25 c.
ДЕНИС СОКОЛОВ
Сегодня мы займемся созданием системы учета исходящих телефонных звонков на примере
УАТС LG GDK-162. От вас требуется: навыки работы в UNIX-подобных операционных системах,
умение программировать на Perl и базовые знания в SQL.
Н
едавно руководство поставило задачу – необходи- Я подключился к последовательному порту УАТС при по-
мо вести учет всех исходящих телефонных звон- мощи терминальной программы и стал анализировать счи-
ков. В офисе установлена УАТС LG GDK-162 емкос- тываемые данные. Оказалось, что LG GDK-162 протоколи-
тью 48 внутренних номеров и 8 внешних линий. Различные рует свою работу в режиме реального времени, а записи об
программы тарификации имеются в избытке. Но ни одна исходящих звонках выглядят следующим образом:
меня не устроила. Большинство из них платные и написа-
1035 144 06 00:11 21/08/2005 16:21 O1234567 **
ны под Windows, из некоммерческих только SMDR 1.0 под-
держивает LG GDK-162. Рассмотрим её содержимое:
Для операционных систем Linux и FreeBSD существует ! первое поле – порядковый номер записи;
очень интересный проект ATSlog: http://www.atslog.dp.ua. ! второе – номер станции, с которой сделан вызов;
Вот описание с сайта программы: «ATSlog предоставляет ! третье – номер внешней линии;
удобный интерфейс с доступом через веб-браузер для про- ! четвертое – длительность звонка (mm:ss);
смотра и анализа звонков различных моделей мини-АТС. ! пятое – дата;
Программа бесплатная, распространяется под лицензией ! шестое – время (hh:mm);
GPL, имеет полностью открытый код. Программа успеш- ! седьмое – вызванный номер с ведущим символом O.
но работает с моделями Panasonic KX-TA308, KX-TA308RU, Седьмое поле может кроме цифр содержать символы
KX-TA616RU, KX-TD816RU, KX-TD1232; Samsung SKP-816». «#» и «*» – это происходит при звонках на голосовые
К сожалению, не нашел в списке поддерживаемых АТС шлюзы операторов IP-телефонии.
LG GDK. Для добавления поддержки нужной модели мож-
но отослать автору образцы текстовых лог-файлов. Но это Таким образом, задача учета исходящих телефонных
требует времени. Я решил попробовать справиться с зада- звонков свелась к написанию программы для считывания
чей своими силами. Это оказалось несложным. Надеюсь, журнала работы УАТС через порт RS-232, обработки и со-
что мой опыт окажется вам полезен. хранения соответствующих записей. Можно приступать к
LG GDK-162, как и большинство офисных АТС, можно реализации.
подключить к компьютеру через порт RS-232. Парамет- Исходные данные: учет будет осуществляться на маши-
ры порта: 9600 бит/с, 8 бит данных, без контроля парите- не Cel 1200/RAM 128 Мб/HDD 20 Гб, операционная систе-
та, 1 стоповый бит. ма – Debian GNU/Linux 3.1r Sarg, СУБД – PostgreSQL v. 7.4.7,
Таблица 1. Распайка кабеля (стандартный нуль-модем) УАТС подключена к последовательному порту /dev/ttyS1.
Создадим пользователя, от которого будет работать
программа и рабочий каталог. Кроме этого, изменим пра-
ва доступа к /dev/ttyS1:
20
администрирование
# sudo passwd gdk }
# sudo mkdir /var/gdklog print;
# sudo chown gdk:gdk /var/gdklog }
# sudo chown root:gdk /dev/ttyS1
# sudo chmod 640 /dev/ttyS1
Допустим, надо добавить поддержку АТС, пишущую
Создадим пользователя и базу данных в PostgreSQL: протокол в формате:
22
администрирование
НАСТРАИВАЕМ DSPAM –
ВАШ ЛИЧНЫЙ СПАМ-ФИЛЬТР
СЕРГЕЙ СУПРУНОВ
В
одной из предыдущих статей [1] рассматривалась янии защитить от писем, идущих с новых, еще не «засве-
система защиты от нежелательной почты, – spamd, ченных», адресов. Кроме того, подобные фильтры, будучи
использующая блокировку входящих соединений на запущенными на провайдерских серверах, могут стать ис-
основе «черных» списков. Такие способы эффективны для точниками конфликтов с пользователями, адресат которых
снижения входящего почтового трафика, однако не в состо- случайно попал в тот или иной список.
24
администрирование
Сегодняшняя статья посвящена второму эшелону спам- В алгоритме, предложенном Полом Грэмом (Paul
обороны, который будем строить на базе DSPAM (разра- Graham), для расчета применяется приведенная выше ме-
ботчик Jonathan Zdziarski, www.nuclearelephant.com). Дан- тодика с использованием следующих правил:
ная обучаемая статистическая система обрабатывает со- ! Для анализа сообщений используются не все слова, а
общения, благополучно прошедшие через MTA и направ- 15 наиболее «интересных», для которых p(w) наиболее
ляющиеся в ящик пользователя. Основным ее достоинс- сильно отклоняется от нейтрального значения 0,5.
твом является возможность персональной настройки для ! Если ранее слово встречалось менее чем в пяти пись-
каждого пользователя. мах, оно игнорируется.
! Новое слово, не встречавшееся ранее, получает стар-
Как происходит классификация писем товую «спамность» 0,4 (своего рода презумпция неви-
В основе работы системы DSPAM лежит несколько наибо- новности).
лее популярных алгоритмов статистического анализа, кото-
рые, в свою очередь, опираются на теорему Байеса (Thomas Алгоритм Бартона (Brian Burton) работает аналогич-
Bayes). Формула Байеса позволяет рассчитать вероятность но, но использует для анализа не 15, а 27 наиболее ярких
наступления некоторого события в зависимости от того, ка- слов, а также допускает «удвоенное» использование сло-
кова была вероятность данного события в прошлом. Приме- ва, если оно встречается в сообщении несколько раз. Это
нительно к спаму, упрощенно принцип работы байесового несколько повышает эффективность при ограниченных
классификатора можно описать такой формулой: данных. Кроме того, поддерживаются цепочки «токенов»,
когда два стоящих рядом слова рассматриваются вместе.
P= S / (S + G) (1) Также некоторые отличия от подхода Грэма имеются в на-
боре символов, которые считаются составной частью сло-
где: ва (такие, как $, ! и т. д.).
! P – вероятность того, что сообщение окажется спа- Следующий популярный алгоритм, разработанный Гари
мом, Робинсоном (Gary Robinson), модернизирует формулу Грэ-
! S – суммарный коэффициент «спамности» сообще- ма таким образом, чтобы решить проблему недостаточных
ния, исторических данных:
! G – суммарный коэффициент «неспамности» сообще-
ния. f(w) = (0,5 + n(w) * p(w)) / (1 + n(w)) (3)
26
администрирование
цессе сборки порта можно задать пользователя, отлично- #TrustedDeliveryAgent "/usr/bin/procmail" # Cygwin
#
го от root. С одной стороны, это способствует повышению # Other popular conÞgurations:
безопасности, но в то же время порождает массу дополни- #TrustedDeliveryAgent "/usr/cyrus/bin/deliver" # Cyrus
#TrustedDeliveryAgent "/bin/maildrop" # Maildrop
тельных сложностей. #TrustedDeliveryAgent "/usr/local/sbin/exim ↵
Во-первых, при работе в режиме LDA dspam должен быть -oMr spam-scanned" # Exim
способен вызывать агент доставки и передавать ему необ-
ходимые для дальнейшей работы права. А чтобы положить Далее, в строках Trust перечислены пользователи, ко-
почту в ящик пользователя при стандартных настройках, торым будет позволено управлять работой dspam. Допи-
эти права должны соответствовать пользователю root. шите туда пользователя, от имени которого работает поч-
Во-вторых, dspam должен иметь достаточно прав, что- товый сервер, и пользователя dspam (если вы его добав-
бы создать pid-файл при запуске в режиме демона, а так- ляли), а заодно удалите лишних:
же быть способным создать сокет на привилегированном
порту 24 (LMTP), что опять-таки требует прав суперполь- Trust root
#Trust mail
зователя. #Trust mailnull
Так, у меня попытка запустить dspam в режиме демона Trust smmsp # на моей системе от имени этого
# пользователя работает sendmail
после сборки с пользователем dspam, указанным как вла- Trust daemon
делец, завершилась такими ошибками: Trust dspam
28
администрирование
then mv -f ".deps/newopt.Tpo" ".deps/newopt.Po"; # make install
else rm -f ".deps/newopt.Tpo"; exit 1; fi
newopt.c: In function `process':
newopt.c:464: error: ISO C forbids conversion of object pointer Запуск pop3filter можно выполнить такой командой:
to function pointer type
newopt.c: At top level:
newopt.c:146: warning: 'clone_argv' defined but not used # pop3Þlter --fork 127.0.0.1 110 7110 ↵
*** Error code 1 "dspam --user \$pop3 _ USERNAME ↵
--stdout --deliver=innocement,spam "
Поверхностный анализ исходного кода показал, что про-
блемные строки (464 в файле newopt.c и еще несколько в В данном случае входящие соединения будут ожидать-
main.c) используются только для обеспечения работы клю- ся на порту 7110 и передаваться на 110-й порт localhost. По-
чей --help и --version. Поскольку данными функциями впол- лученные от реального pop3-сервера сообщения будут от-
не можно пренебречь, было принято решение о небольшом даваться на обработку фильтру dspam, после чего переда-
хирургическом вмешательстве в указанные два файла (по- ваться пользователю в зависимости от настроек и резуль-
казаны различия в исходном и полученном файлах): тата классификации. Правда, должен признаться, что до-
биться устойчивой работы в этом режиме мне не удалось.
serg$ diff src/main.c.old src/main.c Довольно часто после обработки одного – двух сообщений
117,126c117,123
< {/*00*/ {"help", OPT _ NORMAL, 0, ↵ что-то где-то подвисало, и почтовый клиент при попытке ска-
OPT _ T _ FUNCT, (void *) help }, чать очередную порцию почты «отваливался» по истечении
< /*01*/ {"h", OPT _ NORMAL, 1, ↵
OPT _ T _ FUNCT, (void *) help }, тайм-аута. Возможно, кому-то из вас повезет больше.
< /*02*/ {"version", OPT _ NORMAL, 0, ↵
OPT _ T _ FUNCT, (void *) version},
< /*03*/ {"V", OPT _ NORMAL, 1, ↵ Запуск DSPAM в режиме демона
OPT _ T _ FUNCT, (void *) version}, По умолчанию dspam запускается как автономная програм-
< /*04*/ {"fork", OPT _ NORMAL, 0, ↵
OPT _ T _ FLAG, NULL }, ма. Однако при интенсивной нагрузке в этом случае тратит-
< /*05*/ {"f", OPT _ NORMAL, 1, ↵ ся много ресурсов на такие операции, как установка соеди-
OPT _ T _ FLAG, NULL },
< /*06*/ {"e", OPT _ NORMAL, 1, ↵ нения с СУБД. Более эффективным выглядит запуск в ре-
OPT _ T _ GENER, NULL }, жиме демона, когда серверный процесс dspam находится
< /*07*/ {"listen", OPT _ NORMAL, 0, ↵
OPT _ T _ GENER, NULL }, в памяти, поддерживая несколько постоянных соединений
< /*08*/ {"user", OPT _ NORMAL, 0, ↵ с СУБД. Для обработки же пользовательских соединений
OPT _ T _ GENER, NULL },
< /*09*/ {"group", OPT _ NORMAL, 0, ↵ dspam запускается как клиент, общающийся с сервером ли-
OPT _ T _ GENER, NULL }, бо по протоколу LMTP, либо через UNIX-socket.
---
> { Для работы в режиме демона нужно настроить парамет-
> /*04-0*/ {"fork", OPT _ NORMAL, 0, ↵ ры сервера и клиента в конфигурационном файле. Возмож-
OPT _ T _ FLAG, NULL },
> /*05-1*/ {"f", OPT _ NORMAL, 1, ↵ ны два режима работы – через локальные сокеты UNIX либо
OPT _ T _ FLAG, NULL }, по протоколу LMTP (используется 24-й TCP-порт). Для пер-
> /*06-2*/ {"e", OPT _ NORMAL, 1, ↵
OPT _ T _ GENER, NULL }, вого случая внесите в конфигурацию следующие строки:
> /*07-3*/ {"listen", OPT _ NORMAL, 0, ↵
OPT _ T _ GENER, NULL }, ServerDomainSocketPath "/var/run/dspam.sock"
> /*08-4*/ {"user", OPT _ NORMAL, 0, ↵ ClientHost "/var/run/dspam.sock"
OPT _ T _ GENER, NULL },
> /*09-5*/ {"group", OPT _ NORMAL, 0, ↵
OPT _ T _ GENER, NULL }, Естественно, пути к сокету для клиента и сервера должны
128,132c125,129 совпадать. Если вы собираетесь использовать LMTP (напри-
< }; lopt[4].data = lopt[5].data = ↵
(void *) &(opt->fork); мер, когда клиент и сервер находятся на разных машинах),
< lopt[6].data = (void *) &(opt->fstderr); то раскомментируйте и настройте следующие параметры:
< lopt[7].data = &(opt->listen _ addr);
< lopt[8].data = &(opt->username);
< lopt[9].data = &(opt->groupname); #ServerPort 24
--- #ServerPass.Relay1 "secret"
> }; lopt[0].data = lopt[1].data = ↵ #ServerPass.Relay2 "password"
(void *) &(opt->fork); #ClientHost 127.0.0.1
> lopt[2].data = (void *) &(opt->fstderr); #ClientPort 24
> lopt[3].data = &(opt->listen _ addr); #ClientIdent "secret@Relay1"
> lopt[4].data = &(opt->username);
> lopt[5].data = &(opt->groupname);
Строки Server* должны присутствовать в конфигураци-
serg$ diff lib/newopt.c.old lib/newopt.c онном файле сервера, Client* – соответственно клиента.
463,465c463,465
< case OPT _ T _ FUNCT: Заметьте, что если хотя бы одна строка ServerPass.RelayX
< (*(callbackT)table->data); будет раскомментирована, то dspam запустится для рабо-
< break;
--- ты по 24-му порту, даже если присутствуют строки, зада-
> /* case OPT _ T _ FUNCT: ющие UNIX-сокеты.
> (*table->data);
Далее установите в файле /etc/rc.conf переменную dspam_
То есть были удалены или закомментированы строки, в enable в «YES», что обеспечит автоматический запуск де-
которых упоминается OPT_T_FUNC, и соответственно ис- мона с помощью сценария /usr/local/etc/rc.d/dspam.sh. Этот
правлены индексы массива, используемые в дальнейшем. скрипт добавляется автоматически при установке из пор-
После этой «операции» сборка прошла успешно, а вслед тов, вам останется лишь проконтролировать его наличие
за ней и установка: и «исполняемость».
30
администрирование
32
администрирование
рес спам, который получают они. В результате dspam смо- ! dspam_admin: данная утилита предназначена для уп-
жет обработать большее число нежелательной почты и эф- равления персональными настройками пользователей
фективнее реагировать, когда подобные письма будут пос- или общими настройками dspam. Синтаксис команды
тупать на реальные ящики пользователей. можно посмотреть, введя ее без аргументов:
Чтобы не заводить отдельные адреса-ловушки для каж-
дого пользователя, используются группы, о которых пойдет # dspam _ admin
речь в следующем разделе. syntax: dspam_admin [function] [arguments] [--profile=PROFILE]
add preference [user] [attrib] [value]
Группы change preference [user] [attrib] [value]
delete preference [user] [attrib] [value]
Чтобы придать работе с пользователями большую гибкость, list preference [user] [attrib] [value]
а также «обобществлять» информацию о спаме, накоплен- aggregate preference [user]
ную отдельными пользователями, в системе DSPAM имеет- Например, так можно отключить использование авто-
ся поддержка групп. Также группы используются и для ре- матически заполняемого «белого» списка для пользова-
ализации идеи «вакцинации». теля gorod:
Фильтром поддерживаются следующие типы групп:
! Shared: пользователи, входящие в shared-группу, рабо- # dspam _ admin change preference gorod enableWhitelist off
тают каждый со своим карантином, но используют об-
щую базу токенов. Для однотипных пользователей эф- Файл с настройками будет размещаться в директории
фективность повышается за счет снижения размера ба- dspam в подкаталоге, соответствующем пользователю –
зы и ее более быстрой наполняемости. С другой сторо- /var/db/dspam/data/gorod, в СУБД либо в домашнем ката-
ны, если характер корреспонденции отдельного поль- логе пользователя. Это можно настроить в процессе инс-
зователя отличается от среднего по группе, возраста- талляции фильтра (см. выше).
ет вероятность ложных срабатываний. ! dspam_clean: выполняет очистку базы. В процессе ра-
! Inoculation: включение пользователя в одну из таких боты база маркеров может достигать значительных раз-
групп позволяет ему получать информацию из «при- меров. Очистка служит для того, чтобы удалить беспо-
вивок», обработанных любым из членов группы. Та- лезные (или малополезные) записи. В частности, мо-
ким образом, описанный в предыдущем разделе псев- гут быть удалены токены, коэффициент спамности ко-
до-адрес можно сопоставить с одним из пользовате- торых близок к 0,5, то есть нейтральные слова, а также
лей inoculation-группы, чтобы она оказывала влияние устаревшие сигнатуры (которые фильтр хранит на слу-
на всех остальных. чай переобучения). Очистка служит не только для опти-
! Classification: члены такой группы практически незави- мизации размера БД, но и для поддержания ее в акту-
симы, но если у фильтра возникают сомнения при клас- альном состоянии: удаление устаревших токенов поз-
сификации какого-то сообщения, то он сможет восполь- воляет более точно реагировать на изменение харак-
зоваться данными остальных членов группы для приня- тера рассылки.
тия окончательного решения.
! Global: такая группа позволяет создавать так называ- Например, для удаления сигнатур старше 7 дней для
емых глобальных пользователей. Любой новый поль- всех пользователей служит команда:
зователь сможет использовать данные, размещенные
в пространстве глобального пользователя, пока не на- # dspam _ clean –s7
копит достаточную для самостоятельной работы базу.
! Merged: пользователи, входящие в такую группу, полу- Удаление всех (в том числе и самых последних) ней-
чают возможность добавлять в процессе анализа к сво- тральных токенов из пространства пользователя gorod:
им данным информацию из пространства глобального
пользователя (описанного в группе Global). При этом имя # dspam _ clean –p0 gorod
merged-группы должно совпадать с именем используе-
мого глобального пользователя. Подробности по использованию утилиты см. на страни-
цах man dspam_cleanup.
Для того чтобы включить пользователя в ту или иную Говоря об очистке базы, следует также упомянуть уда-
группу, используется файл /var/db/dspam/group: ление малоэффективных и устаревших данных силами
СУБД. Например, для PostgreSQL cоответствующий sql-
group1:shared:user1,user2,user3 файл можно найти в /usr/local/share/examples/dspam/pgsql
group2:inoculation:user4,user5,user6
под именем purge.sql.
Существуют ограничения на вхождения одного и того Для регулярного автоматического запуска процедур
же пользователя в разные группы. Подробную информацию очистки можно использовать crontab.
можно получить из уже упоминавшегося файла README. ! dspam_stats: выводит статистику работы dspam по всем
или указанным пользователям (количество спама, «хо-
Вспомогательные утилиты роших» писем, ошибок):
В состав пакета DSPAM входит ряд служебных утилит, на-
значение которых – выполнение ряда сервисных функций: # dspam _ stats serg gorod alex
34
администрирование
РОМАН МАРКОВ
Н
емного истории. Название этого лог-анализатора анализатор. В процессе попыток внедрить данную систему у
пошло от популярного продукта для Windows – Kerio себя выявилось много неточностей и недоработок, которые
WinRoute Pro, несмотря на то что сейчас данный про- автор программы оперативно устранял по нашим советам.
дукт распознает форматы логов почти всех популярных В результате такой совместной работы продукт «отполиро-
прокси- и почтовых серверов. Причина в том, что сначала вали», добавили возможность анализа лог-файлов других
WrSpy был написан его автором «исключительно для собс- популярных серверов, прибавив при этом целый букет но-
твенной сети». Начало развития было положено около трех вых функций. Программа абсолютно бесплатна, за это ог-
лет назад на одной из интернет-конференций, посвященной ромная благодарность Аркадию Патрушеву.
администрированию локальных сетей. Аркадий Патрушев – Итак, начнем с традиционного описания возможностей.
системный администратор и программист из Новосибирс- Программа предназначена для анализа логов и форми-
ка, известный в сети под псевдонимом Walker, на очеред- рования разнообразных отчетов как в автоматическом (па-
ной вопрос в стиле: «Как считать трафик?» – предложил кетном), так и в интерактивном режиме. Именно изначаль-
всем желающим свою программу, честно предупредив, она ное наличие пакетного режима и, разумеется, бесплатность
что «жутко сырая» и была написана для себя. сделало программу столь привлекательной, вытеснив уже
Я также использовал встроенный прокси-сервер существовавшие на тот момент аналогичные Windows-сис-
WinRoute 4 Pro, и поэтому попросил выслать и мне данный темы. Однажды настроив систему импорта и анализа логов
36
администрирование
и прописав в планировщике задач автоматический запуск ределенного ресурса), нельзя не заметить, что, пожалуй,
администратор получал систему класса «настроил и за- единственным недостатком WrSpy является именно боль-
был». Помимо этого, автор использовал, казалось бы, прос- шая нагрузка на дисковую систему. Однако глубокий ана-
той, но остроумный способ блокировки доступа пользова- лиз plain-text файлов с накоплением статистики всегда под-
телей, превысивших персональный лимит. Автоматически разумевает это.
корректируя необходимые настройки программы в реест-
ре, WrSpy переносил пользователя в другую группу безо- Установка
пасности, не имеющую никаких прав. Позднее при развитии Рассмотрим пример настройки системы. Для написа-
продукта этот же принцип лег в основу блокировки пользо- ния данной статьи я использовал связку Kerio WinRoute
вателей в Squid-NT. Кстати, несмотря на то, что WrSpy ра- Firewall 6 и Alt-N Mdaemon 8, установленные на OS Windows
ботает под управлением ОС Windows, поддерживается ана- Server 2003. Принцип настройки взаимодействия c други-
лиз лог-файлов популярных прокси- и почтовых серверов ми поддерживаемыми ПП аналогичен. Если есть какие-ли-
для UNIX-систем. В данный момент WrSpy и утилиты под- бо особенности (например, настройка блокировки пользо-
держивают анализ лог-файлов следующих систем. вателей в Squid или Kerio WinRoute Pro 4), то они подробно
Proxy-серверы: WinRoute 4 Pro, Kerio WinRoute Firewall 5, описаны на официальном сайте WrSpy.
Kerio WinRoute Firewall 6, Kerio Network Monitor, BSB, Скачиваем дистрибутив (WrSpySetup.rar) и последнее
UserGate, Squid NT, Squid OS/2, WinGate, ISA, ExtraSystems обновление (WrSpyUpXXX.rar – где XXX номер версии) с
Proxy Server, WinProxy CZ, WinProxy, ISA2004. официального сайта программы (ссылки приведены в кон-
Почтовые серверы: WinRoute, MDaemon, Kerio Mail це статьи). Распаковываем архивы, устанавливаем основ-
Server, CommuniGate Pro, Postfix, SendMail, Weasel, WinProxy ной дистрибутив.
CZ и POPCon. Обратите внимание на предупреждение: «Будьте осо-
Помимо этого, на сайте программы имеется большое бенно внимательны, если в системе уже установлен Visual
количество отдельных утилит. FoxPro 6.0 (VFP6.0) или приложения, созданные с его ис-
Отдельные анализаторы для: MDaemon, Kerio Mail пользованием. Возможно нарушение их функционирова-
Server, Kerio Network Monitor, Serv-U, Apache, IIS. ния». Если при запуске обнаружится сообщение: «Несов-
падение версии файла ресурсов», то скорее всего в систе-
Системные требования ме установлен VFP6.0 или программа, из-под него писан-
Работа программы основана на анализе файлов форма- ная, с несовпадающей версией обновления. Чтобы обойти
та plain-text, что накладывает определенные требования данную ошибку, необходимо использовать режим полной
к производительности дисковой системы, процессорной установки поверх существующей версии VFP.
мощности и количеству памяти. Однако никаких минималь- Выполняем стандартные действия, отвечая на вопро-
ных требований нет, поскольку работоспособной окажет- сы инсталлятора о варианте установки и местоположении
ся практически любая система. С другой стороны, для по- файлов (рекомендуется устанавливать WrSpy на быстрые
лучения определенной скорости обработки лучше все-та- дисковые системы, как рекомендовалось выше). В конце
ки обеспечить разумный минимум. Тут все зависит от раз- установки отказываемся от запуска WrSpy (снимаем соот-
мера лог-файлов (соответственно – активности пользова- ветствующий флажок). Вы можете прочитать файл Readme.
телей) и необходимой частоты обновления статистики. Ес- txt (нажатием кнопки после завершения установки). В нем
ли размер анализируемых файлов не превышает 10-100 Мб кратко описываются принципы настройки, которые я рас-
в месяц, а статистику достаточно обновлять один-два ра- смотрю более подробно. Сразу после установки основно-
за в сутки, когда отсутствует активность пользователей, – го дистрибутива обновляем его до последней версии, за-
с поставленной задачей справится абсолютно любой ком- пустив файл обновления. Внимательно проверьте путь для
пьютер, на котором работают поддерживаемые програм- установки, так как инсталлятор не проверяет, куда именно
мные продукты. был установлен WrSpy. Это сделано не случайно, так как
При большом количестве пользователей, приросте раз- иногда требуется произвести несколько установок с раз-
мера лог-файлов до 1-2 Гб в месяц, рекомендуется реже об- ными настройками на один компьютер (например, для ана-
новлять статистику – 1-2 раза в сутки. При необходимости лиза архивных лог-файлов, не прерывая работу основной
более частого переиндексирования размещайте лог-файлы системы анализа). После установки обновления соглаша-
и формируемые отчеты на быстрых дисках SATA или SCSI. емся с предложением инсталлятора запустить WrSpy (ли-
Рекомендуется также озаботиться созданием ежедневных бо запускаем вручную файл WrSpy.exe). Запустится интер-
копий информации, находящейся на таком диске. Личный активная первоначальная настройка (рис. 1).
пример: для обновления статистики для 100 пользовате- Выбираем используемые нами прокси- и почтовый сер-
лей прокси-сервера Kerio WinRoute 4 Pro и 250 почтовых веры, задаем параметры сети (подсеть и маску). Созда-
ящиков Alt-N Mdaemon с интервалом один раз в час я ис- ем на диске папку для отчетов (именно в нее будут поме-
пользую компьютер следующей конфигурации: Intel Celeron щаться формируемые программой результаты) и указыва-
1.3 ГГц, 256 Мб RAM, 2 SATA HDD 40 Гб, SATA-RAID-1, OS ем путь к ней. Затем указываем пути к лог-файлам, а так-
Windows 2000 Server. же почтовые домены. Если какой-то из лог-файлов (почто-
При наличии неоспоримых достоинств этой програм- вый или прокси) анализироваться не должен – оставляем
мы, таких как подробнейшие отчеты (вплоть до того, ка- соответствующее поле пустым. Переходим к следующему
кой именно файл скачал конкретный пользователь с оп- экрану настроек (рис. 2).
38
администрирование
казывает приблизительные графики активности и относи-
тельно время, проведенное в сети. Для того чтобы понять,
чем занят сотрудник (если, конечно, серфинг по сайтам – не
его прямые обязанности), – этого вполне достаточно.
В следующем окне настроек задаем параметры режи-
мов анализа, а также рабочий интервал (рис. 3).
Минимально необходимо настроить два режима – ин-
терактивный и автоматический. Автоматических режимов
существует несколько. Каждый из них можно настроить в
соответствии со своими задачами – например, добавить
дополнительный режим для формирования и сохранения
ежемесячного отчета, так как после начала нового рабо-
чего периода отчеты обнуляются.
Режим «0» – интерактивный: формирование отчета про-
исходит в окне программы, в ручном режиме. Переключа-
тель «Блокировка пользователей» предназначен для при-
остановки доступа пользователям, превысившим свой пер-
сональный лимит в Kerio WinRoute 4 Pro или SquidNT, пос-
кольку в этих популярных продуктах нет встроенной систе-
Рисунок 3. Настройка режимов анализа
мы ограничения. В нашем случае этот влажок можно снять,
так как Kerio WinRoute Firewall уже имеет встроенную фун- На следующем экране «Учет реального трафика» необ-
кцию ограничения. Если вы используете Kerio WinRoute 4 ходимо указать, какой интерфейс является внешним. Дан-
Pro или SquidNT – включите этот режим и для интерактив- ный режим доступен для продуктов Kerio и может не поя-
ного, и для автоматического режима. Более подробно про виться при использовании других ПП.
настройку блокировки пользователей при использовании Последним шагом первоначальной настройки необходи-
этих продуктов можно прочитать на сайте программы. мо задать ширину полей формируемого отчета. Меню «На-
Итак, в режиме «0» включаем опцию «Отчет в html», от- стройка» – «Ширина полей» (из меню «Настройка» также
ключаем рассылку отчетов, при использовании Squid, ISA, можно изменить заданные при первоначальном запуске
ESPS или WinProxy указываем, какой трафик подсчиты- параметры). Помните, что чем больше задана ширина по-
вать (логичнее всего, конечно, считать «мимо кэша», так лей, тем дольше будет формироваться отчет, поэтому не-
как именно он берется снаружи. Задаем интервал сбора обходимо найти разумную середину. В принципе значения
статистики до обнуления (например, текущий месяц). по умолчанию оптимальны. Можно только увеличить поле
Затем настроим один из автоматических режимов. Пе- «адреса и доменные имена» до 30-40 символов.
реключаем опцию режим до «Автоматический-2» и также Если вы используете Kerio WinRoute Pro 4, то для на-
настраиваем его. стройки блокировки пользователей, превысивших персо-
Опция «Ротация логов» в настройках режимов позво- нальный лимит, создайте в конфигурации группу, которая
ляет настроить специальный режим для очистки накопив- не будет иметь никакого доступа к веб-ресурсам. После
шихся лог-файлов в тех ПП, которые не предусматрива- этого зайдите в меню «Настройка» – «Блокировка досту-
ют автоматическое удаление. Однако даже если указан- па» и выделите эту группу. При превышении персонального
ная возможность автоматической очистки лог-файлов при- лимита пользователь будет перенесен в нее и доступ пре-
сутствует в используемом вами прокси или почтовом сер- кратится. Настройка блокировки пользователей в SquidNT
вере – использовать указанный способ предпочтительнее описана на сайте программы.
во избежание потерь в логах. При запуске программы в Теперь произведем первичный ввод информации. Меню
данном режиме база отчетов очищается от введенной ин- «Данные» – «Очистка и закачка с нуля». Если лог-файлы
формации, сбрасываются внутренние счетчики, после че- велики, то потребуется довольно продолжительное время
го запускается файл savelog.bat из папки WrSpy. Универ- для первоначального ввода (дальнейший ввод будет быс-
сальность метода заключается в том, что в этот файл вы трее, так как чтение информации будет осуществляться
можете поместить любые команды, которые необходимо только с последней обработанной позиции).
выполнить после очистки базы данных WrSpy. Чаще всего После окончания ввода информации будет выдано со-
это копирование и архивация старых лог-файлов, секунд- общение о добавление новых пользователей и предложе-
ная остановка прокси и почтовых служб, удаление лог-фай- но исправить их. После утвердительного ответа мы полу-
лов, запуск служб. чим таблицу с четырьмя закладками:
Настройка «Рассылка отчетов» используется для опо- ! Адреса и имена. Здесь хранится информация о пользо-
вещения пользователей по e-mail о их персональном тра- вателях и их лимитах. Поле «Пользователь» заполняет-
фике. Для введения этого режима необходимо задать соот- ся автоматически, по логину пользователя. Для удобс-
ветствие почтовых адресов для пользователей и зарегис- тва восприятия значение этого поля можно менять на
трировать в системе дополнительную компоненту SMTP, любое, например на ФИО пользователя. Поле «Адрес»
которая доступна для скачивания на официальном сай- заполняется автоматически либо IP-адресом компью-
те программы. тера, с которого пользователь подключается к прокси-
Настройка автоматического
формирования отчетов Рисунок 4. Общий отчет
Осталось решить главную задачу – обеспечение функцио-
нирования системы в автоматическом режиме, без участия
администратора. Здесь все крайне просто и удобно.
Формируем командный файл StartLog.bat для добавле-
ния новых данных и их анализа в пакетном режиме. Ранее
мы настроили для этого один из автоматических режимов.
Номер этого режима используется в качестве параметра
запуска исполняемого файла WrSpy.exe.
@echo off
; переходим в рабочую папку программы
cd /D c:\wrspy Рисунок 5. Подробный отчет по пользователю
40
администрирование
водству делегируются права на чтение всех отчетов, вклю- По таблице видно, что пользователь romadm закачивал
чая корневой отчет Report.htm. Просмотрев общую картину, с сайта speedownload.nai.com некие ZIP-архивы.
такой руководитель сможет самостоятельно просмотреть де- Отчет «Бюджет времени пользователя» покажет вам со-
тальную информацию об активности пользователя, не де- отношение времени, которое сотрудники проводят на веб-
ргая каждый раз системного администратора. сайтах. Обратите внимание – это не точное время, прове-
Детализация по пользователям крайне удобна для де- денное пользователем в сети, а относительная оценка вре-
мократичного регулирования ситуаций с превышением пер- мени, проведенного пользователем или станцией в Интер-
сонального лимита. Если пользователь жалуется на то, что нете, которая осуществляется косвенным методом. Однако
необходимо увели-чить ему квоту, так как это необходимо общую картину данный отчет хорошо показывает, и соглас-
для работы, достаточно просто совместно с ним просмот- но ему можно понять, кто «беспрерывно» занимается сер-
реть его подробную статистику. фингом по веб-сайтам. Принцип расчета довольно прост:
Весь интервал времени анализа разбивается на кван-
Создание истории отчетов ты от 1 до 30 минут. Величина кванта задается (см. рис. 2 –
Для того чтобы иметь возможность просматривать статис- «Интервал для учета бюджета времени») исходя из стиля
тику за предыдущие месяцы, не изменяя рабочий интервал работы ваших пользователей. Для быстрого серфинга –
и не формируя отчеты заново, рекомендуется настроить ав- меньшие значения, для длительного скачивания – большие.
томатиче-ское копирование статистики в конце выбранно- Если пользователь проявлял какую-то активность в тече-
го интервала. То есть написать скрипт создания архивных ние данного кванта, в его бюджет заносится его (кванта) ве-
копий и выполнять в последние часы перед сменой рабо- личина. Суммирование всех этих значений и дает величи-
чего интервала (например, в последний день месяца или ну оценки времени. Кроме того, формируется усредненное
недели – в зависимости от ваших настроек). распределение суммарного трафика по времени суток.
Например, используя консольную версию общеизвес-
тного архиватора WinRar – rar.exe можно создавать архи- Почтовые сервера
вы, содержащие рабочую дату в имени файла. Приведен- Отчеты, формируемые по лог-файлам почтовых серверов,
ный пример создаст файл Report_<текущая_дата>.rar и по- также удобны для восприятия и отличаются наличием более
местит в него содержимое папки E:\WrSpy\Report и всех ее глубокой статистики в интерактивном режиме. Возможна
подпапок, с максимальным сжатием, сохранением инфор- детализация по каждому пользователю (сколько писем, на
мации о правах и владельцах файлов. какой/с какого адреса, созданный трафик и пр.), наглядные
графики по самым активным пользователям и пр.
rar.exe a -m5 -os -ow -dh -ep1 -r ↵
-ag _ dd-mm-yyyy D:\BackUp\Report.rar ↵
E:\WrSpy\Report\*.* Анализ лог-файлов UNIX-систем
Как было упомянуто, WrSpy понимает форматы популяр-
ных UNIX-MTA и прокси. Для осуществления анализа дан-
Отчеты интерактивного режима ных файлов можно использовать два способа: анализ рабо-
В интерактивном режиме WrSpy позволяет формировать чих лог-файлов или их копий. Первый способ более прост,
еще более гибкие и удобные отчеты. Например, вы можете так как не придется копировать файлы большого размера
посмотреть – а какой именно файл скачал с определенно- (либо также писать обработку для копирования только но-
го ресурса конкретный пользователь. Запускаем програм- вых данных).
му без параметров, выбираем меню «По пользователям – В первом случае необходимо создать и предоставить се-
Файлы и сайты по пользователям». После вывода на экран тевой доступ к папке с этими файлами для учетной записи,
таблицы можно перемещаться по ней, выделяя курсором от имени которой WrSpy запускается в пакетном режиме.
интересующий нас ресурс и в нижней части просматривая Во втором случае данные файлы необходимо копиро-
список закачек (рис. 6): вать, что не всегда приемлемо по описанной выше причи-
не. Остальная работа с этими логами аналогична уже опи-
санной.
Я описал лишь некоторые, наиболее популярные воз-
можности программы WrSpy. Если ее функции показались
вам интересными – рекомендую установить ее для тести-
рования и самостоятельно оценить удобство (или неудобс-
тво – решать вам). Тем более, что никаких следов в ОС она
не оставляет и удаляется без последствий. Вкупе с этим –
наличие сайта поддержки и при этом абсолютная бесплат-
ность продукта делают его крайне привлекательным для
построения разнообразных отчетов.
Ссылки:
1. Официальный сайт программы: http://www.wrspy.ru. Дис-
трибутивы и обновления доступны для загрузки на глав-
Рисунок 6. Отчет «Файлы и сайты по пользователям» ной странице сайта.
42
администрирование
ний будет расматриваться как рядовая Linux-машина, толь-
ко немного производительнее. Внутренний механизм балан-
сировки прозрачно производит миграцию процессов на уз-
лы кластера. Оптимальная загрузка кластера вычисляется
динамически через определенные промежутки времени. Вы
также можете произвести нужную подстройку параметров
кластера. Прозрачный механизм миграции играет интерес-
ную роль – из-за него весь кластер выглядит как большая
SMP-машина со множеством процессоров (каждый узел в
роли процессора). В рамках OpenMosix разработана фай-
ловая система (oMFS) для HPC-приложений, которая в от-
личие от NFS поддерживает целостность ссылок, атрибу- Рисунок 1. Компоненты ядра, отвечающие за функционирование
ты времени и кеширование. OpenMosix
Сегодня в нашем обзоре в качестве узлов кластера бу- Для управления и тюнинга узлов в OpenMosix предус-
дут выступать 3 машины: мотрен специальный пакет утилит – openmosix-tools. Уста-
! Intel(R) Pentium(R) 4 CPU 1.80 ГГц (256 Мб ОЗУ) новим его.
! Intel Pentium III (Katmai) 602.149 МГц (256 Мб ОЗУ)
! Intel(R) Pentium(R) 4 CPU 3.00 ГГц (128 Мб ОЗУ) wget http://citkit.dl.sourceforge.net/sourceforge/ ↵
openmosix/openmosix-tools-0.3.6-2.tar.gz
# tar xzvf openmosix-tools-0.3.6-2.tar.gz
Все узлы соединены через хаб (100 МБит) в единое про- # cd openmosix-tools-0.3.6-2
# ./conÞgure --preÞx=/opt/OpenMosix ↵
странство. Операционная система, OC Linux, первоначаль- --with-kerneldir=/usr/src/linux-2.4.26-openmosix1
но установлена на самой быстрой машине, а затем была # make && make install
клонирована на все остальные. Стоит отметить, что при ус-
тановке, помимо базовых пакетов, также следует выбрать После установки этого пакета есть два варианта, каким
и QT-библиотеку (на базе QT мы впоследствии соберем именно образом узлы будут сообщать друг другу о своих
утилиты мониторинга кластера). характеристиках (загрузка, вычислительная мощность) и
Итак, первый шаг по установке и настройке ПЭВМ с яд- координатах (IP-адрес). Либо указать жестко в файле /etc/
ром по умолчанию пропускаем. Следует настроить SSH-сер- openmosix.map, либо положиться на сервис автоопределе-
вис, т.к. благодаря ему мы будем управлять узлами. ния узлов (omdiscd). Структура файла openmosix.map пред-
Далее заберем ядро (2.4.26) с включенными патчами ставлена ниже:
для OpenMosix (32 Мб):
# MOSIX-# IP number-of-nodes
wget http://citkit.dl.sourceforge.net/sourceforge/ ↵ # ============================
openmosix/ ↵ 1 10.0.0.1 1
openmosix-kernel-source-2.4.26-openmosix1.i386.rpm 100 0.0.0.100 1
Для экономии трафика можно взять только патчи и на- В первой колонке указывается номер узла (в моем слу-
ложить их на оригинальное ядро с kernel.org самостоятель- чае первый узел имеет номер 1, второй – 100), во второй
но (200 Кб): колонке IP-адрес, в третьей колонке – количество узлов в
диапазоне. Т.е. предполагая, что первые пять узлов имеют
wget http://citkit.dl.sourceforge.net/sourceforge/ ↵ последовательные адреса от 10.0.0.1 до 10.0.0.5 смысла их
openmosix/openMosix-2.4.26-1.bz2
перечислять нет. Стоит только указать, что количество уз-
# rpm -ih --nodeps ↵ лов равно в этом случае 5.
openmosix-kernel-source-2.4.26-openmosix1.i386.rpm
# cd /usr/src/linux-2.4.26-openmosix1/
# make xconÞg 1 10.0.0.1 5
Ставим галочки для компонентов OpenMosix (рис. 1), Так раздаются адреса статически. А для их динамическо-
остальные компоненты для ядра не изменяем, сохраняем го определения будет использоваться файл /etc/openmosix/
конфигурацию и собираем ядро. openmosix.config, где прописываются такие параметры, как:
! AUTODISCIF – имя интерфейса, через который произ-
# makedep&& make && make bzImage && make modules водит автопоиск (если на узле несколько сетевых ин-
# make modules _ install
терфейсов).
Добавляем нужную опцию в загрузчик. В случае lilo: ! MYOMID – номер данного узла.
! MIGRATE – разрешать ли процессам миграцию с дан-
image = /boot/mosix-bzImage ного узла или нет.
root = /dev/sda1
label = om.Linux ! MFS – использовать Mosix FileSystem или нет.
read-only
NODE1=/proc/hpc/nodes/573
Таким образом, при последовательном старте узлов NODE2=/proc/hpc/nodes/574
NODE3=/proc/hpc/nodes/575
вы можете отслеживать в логах процесс формирования
кластера: FILENAME=hpc _ load.txt
i=0
Jul 26 22:01:57 athlon kernel: openMosix #1 is at IP address 10.0.0.1
Jul 26 22:01:57 athlon omdiscd[1996]: Notified kernel to activate openMosix while true
Jul 26 22:02:55 athlon kernel: eth0: Setting full-duplex based on MII do
#1 link partner capability of 45e1. DateStr='date +%H-%M-%S'
Jul 26 22:04:11 athlon kernel: openMosix configuration changed: This is openMosix Load1='cat $NODE1/load'
#1 (of 2 configured)
Jul 26 22:04:11 athlon kernel: openMosix #1 is at IP address 10.0.0.1
Load2='cat $NODE2/load'
Jul 26 22:04:11 athlon kernel: openMosix #100 is at IP address 10.0.0.100 Load3='cat $NODE3/load'
Все готово, чтобы первый настроенный узел клониро- # time make dep
# time make
вать на другие машины. Воспользуйтесь либо командой dd,
либо программой Norton Ghost. Затем в клонированных уз- real 0m19.068s
лах поменять IP-адреса, hostname, и дело в шляпе. user
sys
0m2.570s
0m16.410s
Для тестирования производительности сформирован-
ного кластера я решил проверить, за какое время будет real 5m11.963s
user 3m44.950s
собран MPlayer [2]. sys 1m26.410s
ся файлы с характеристиками данного узла. В частности, Получили еще худший результат. Почему? Очень прос-
содержимое файла load нас и будет интересовать. Произ- то – у нас сформировалось много процессов, но с малень-
водительность узлов в OpenMosix оценивается по сравне- кими вычислительными запросами. Общее время мигра-
нию с виртуальной ПЭВМ класса Celeron 1 ГГц, поэтому не ции по 100-Мбитной сети плюс время компиляции превы-
удивляйтесь, когда увидите, что производительность кон- сило предыдущий результат.
кретного узла, например, равняется 20000. Это означает, Включаем третий узел с 1.8 ГГц CPU. Посмотрим на
что по сравнению с эталонным 1 ГГц данный узел в 2 раза цифры.
производительнее. real 0m24.860s
Итак, производим калькуляцию. Сохраним данный скрипт, user 0m2.800s
использующийся в наших подсчетах в дальнейшем. sys 0m17.610s
44
администрирование
real 4m18.754s # wget openmosixview-1.5.tar.gz
user 4m17.620s # tar xzvf openmosixview-1.5.tar.gz
sys 2m16.540s # cd openmosixview-1.5
Отлично. А что произойдет при отключении самого мед- Данное ПО написано на QT – надеюсь, вы его постави-
ленного узла? Отключаем, проверяем. ли, не забыли. Оно состоит из следующих программ:
real 0m23.539s
! openMosixview – приложение для мониторинга и управ-
user 0m3.260s ления кластера.
sys 0m17.580s ! openMosixprocs – приложение, показывающее процес-
real 4m24.304s сы и их свойства.
user 4m18.270s ! openMosixcollector – сервис по сбору статистики.
sys 2m14.320s
! openMosixanalyzer – приложение для анализа данных,
Выигрыш от медленного узла составил примерно 6 се- собранных сервисом статистики.
кунд. Как говорится – спорный результат. Стоит ли овчин- ! openMosixhistory – приложение, для просмотра мигра-
ка выделки – а именно, нужен ли третий узел? Очевидно ций процессов в определенный момент времени.
стоит отказаться в пользу двухузловой модели. ! openMosixpidlog – приложение для мониторинга еди-
Полученные результаты удобнее анализировать графи- ничных процессов.
чески. Импорт в OpenOffice и дальнейшее преобразование ! 3dmosmon – приложение для объемного мониторинга
в диаграммы закончилось получением этих рисунков. Си- кластера.
ним цветом отмечен узел на базе Pentium 4 CPU 3 ГГц, крас-
ным – узел Pentium 4 CPU 1.8 ГГц, белым – Pentuim 3 CPU К сожалению, у меня последняя программа не захоте-
600 МГц (рис. 2-5). ла собираться. Решение оказалось простым – при компи-
ляции приложения 3dmosmon следует заменить инициали-
Утилиты мониторинга зацию переменных в файле materials.h из вида:
Как производить текущий мониторинг загрузки? К счас-
тью, у OpenMosix достаточно широкая аудитория пользо- static material _ struct whiteMaterials = {
{1.0, 1.0, 1.0, 1.0},
вателей, благодаря которым появились утилиты визуаль- {0.0, 0.0, 0.0, 1.0},
ного контроля и управления. Нужный нам сейчас пакет на- {1.0, 1.0, 1.0, 1.0},
{20.0}
зывается openmosixview. };
Рисунок 2. Загрузка кластера при одноузловом варианте Рисунок 3. Загрузка кластера при двухузловом варианте
(оба узла Pentium 4)
Рисунок 4. Загрузка кластера при двухузловом варианте Рисунок 5. Загрузка кластера при трехузловом варианте
(один из узлов Pentium 3)
gcc -I/usr/src/linux-2.4.26-openmosix1/include/ ↵
-I/usr/local/openmosix-tools/include/ -o mosstatd ↵
-L/usr/local/openmosix-tools/lib/ -lmos mosstatd.c
В итоге, запустив предварительно сервис сбора статис- Рисунок 6. Трехмерное изображение загрузки кластера
тики mosstatd (например, через инициализационный скрипт
/etc/rc.d/rc.local), мы сможем отслеживать загрузку класте-
ра в виде трехмерного изображения (см. рис. 6).
# 3dmosmon localhost
Приведена ситуация, когда отключен наименее произ- ! mosctl whois node0 – выводит IP-адрес узла node0;
водительный узел. Отключение узла от кластера отобра- ! mosctl getload node0 – выводит загрузку узла node0;
жается индикатором красного цвета. ! mosctl getspeed node0 – выводит скоростную характе-
Графическая утилита openmosixmigmon позволяет, не ут- ристику узла node0;
руждая себя поисками PID конкретного процесса, перебро- ! mosctl gettune – выводит показатели для данного узла;
сить его выполнение на другой узел (см. рис. 8). ! mosctl bring – передает сигнал мигрированным процес-
В частности, некоторые процессы с головного узла уже сам для возврата на домашний узел.
насильно мигрированы к соседям и используют их вычис-
лительные мощности. Как видите, тот пример, что мы рассмотрели и исполь-
Следующая интересная утилита из данного пакета на- зовали в своей работе, можно переписать намного нагляд-
зывается openMosixanalyzer. Видна нагрузка как в целом нее при использовании утилиты mosctl.
на кластер, так и на отдельные узлы за определенный мо-
мент времени (см. рис. 9). # moslimit --help
А чтобы такая статистика велась на постоянной осно- Usage: moslimit command
ве, придуман сервис openMosixcollector, как видим из на- Available commands:
setloadlimit [numeric-value], setcpulimit [numeric-value],
звания, его работа заключается в сборе данных и сохра- setllimitmode [numeric-value], setcpulimitmode [numeric-value],
getloadlimit [node-number], getcpulimit [node-number],
нении их на диске. getllimitmode [node-number], getcpulimitmode [node-number],
Запускается он просто – «openmosixcollector -d» – ра- getloadlocal [node-number], getcpulocal [node-number],
getloadremote [node-number], getcpuremote [node-number]
ботает в качестве сервиса. Собранная информация раз в
сутки сбрасывается в директорию /tmp/openmosixcollector_ Для миграции процессов в пределах кластера предна-
ДАТА_ВРЕМЯ. значена утилита migrate.
Давайте теперь ознакомимся с утилитами по настрой-
ке кластера. # migrate --help
mosctl – утилита для просмотра/редактирования пара- Usage: migrate pid {OpenMosix-ID|home|balance}
метров узла.
Рассмотрим характерные конструкции на основе дан- А вот список процессов, который мы сможем увидеть
ной утилиты. при запуске утилиты ompsinfo.
46
администрирование
Утилита mosmon предназначена для визуального отоб-
ражения текущей загрузки кластера. Она скомпилирована
на основе библиотеки ncurses, поэтому текстовой консоли
вполне будет достаточно для ее запуска.
Для запуска заданий предназначена утилита mosrun. С
ее помощью можно указать, к какому типу процессов при-
надлежит наше задание. Либо это CPU-intensive, т.е. за-
дание, использующее процессорные ресурсы, либо I/O-
intensive – задание, где основной упор делается на про-
цесс ввода/вывода.
Usage: mosrun [-{h|OpenMosix_ID|-jID1-ID2[,ID3-ID4]...} [-F] ] -{l|L|k}
[-{c|i|n|s|f | ([-d dec] [-t tt])} [-{e|E}] [-{r|R}] ]
[-z] prog [args]..
root@node0:~# showmap
My Node-Id: 0x023d
Рисунок 8. Контроль за миграцией процессов в кластере Сервис, отвечающий за динамическое определение уз-
лов кластера. В частности, когда на узле используется не-
сколько сетевых интерфейсов, следует явно указать, по ка-
кому из них проводить идентификацию узлов.
omdiscd-i eth0
Выводы
Как и в любом аспекте нашей жизни можно найти минусы и
плюсы, так и решения на базе OpenMosix-кластера содер-
жат некие «узкие» точки. В частности, оцифровка звуковых
файлов из формата .wav в формат .mp3 показала, что об-
щее время процесса обработки на кластере превысило ана-
логичное время на одной ПЭВМ. Повлияла на столь стран-
ный результат низкоскоростная среда передачи данных –
100-мегабитная сеть. В целом применение OpenMosix-клас-
Рисунок 9. Статистика по загрузке кластера в определенное теров целесообразно в тех случаях, когда требуется исполь-
время
зовать задачи с высокими интенсивными вычислительны-
CMD PID NODE NMIGS LOCK CANTMOVE ми запросами, например сборка программного обеспече-
init
keventd
1
2
0
0
0
0
0 system
0 clone_vm
ния (как показано в этой статье), симуляторы погоды, об-
ksoftirqd_CPU0 3 0 0 0 clone_vm работка геофизических данных, математических моделей
kswapd 4 0 0 0 clone_vm
bdflush 5 0 0 0 clone_vm и в других подобных ситуациях .
kupdated 6 0 0 0 clone_vm
khubd 8 0 0 0 clone_vm
kjournald
oM_migd
10
11
0
0
0
0
0 clone_vm
0 system, clone_vm
Ссылки, литература:
oM_infoD 12 0 0 0 system, clone_vm, rt_sched 1. Борисов А. «Стальной глаз на страже жизни». HA-клас-
memsorter
syslogd
13
62
0
0
0
0
0 system, clone_vm
1 migratable but locked
тер LifeKeeper компании SteelEye. – Журнал «Системный
klogd 65 0 0 1 migratable but locked администратор», №7, 2004 г. – 43-49 с.
inetd 340 0 0 1 migratable but locked
sshd 343 0 0 0 migratable 2. http://www.mplayerhq.hu.
crond
gpm
351
360
0
0
0
0
1 migratable but locked
1 migratable but locked
3. http://openmosix.sourceforge.net.
agetty 362 0 0 0 migratable 4. http://www-128.ibm.com/developerworks/eserver/articles/
agetty 363 0 0 0 migratable
agetty 364 0 0 0 migratable openmosix.html.
agetty
agetty
365
366
0
0
0
0
0 migratable
0 migratable
5. http://howto.x-tend.be/openMosixWiki.
agetty 367 0 0 0 migratable 6. http://howto.x-tend.be/openMosix-LCA2005.
omdiscd 398 0 0 0 migratable
mosstatd 476 0 0 0 migratable 7. http://tab.snarc.org/article/om_internals.xhtml.
sshd
bash
2778
2780
0
0
0
0
0 migratable
0 migratable
8. http://www.samag.com/documents/s=9658/sam0505a/
ompsinfo 2852 0 0 0 migratable 0505a.html.
УПРАВЛЯЕМ УДАЛЕННЫМИ
БАЗАМИ AIDE
РАШИД АЧИЛОВ
П
рограмма AIDE позволит вам контролировать из- нированного перехвата. Программа копирует базы на смен-
менения, происходящие в файловой системе. Для ный носитель небольшого физического размера, а также
этого она создает отдельную базу данных, содер- сохраняет несколько поколений баз на сменном носителе
жащую информацию об атрибутах файлов – дате и време- большого обьема.
ни создания, дате и времени модификации, размере, вла- Нужно ли защищаться от перехвата данных базы? Даже
дельце. База также содержит контрольную сумму содер- при невозможности ее модификации база все равно остает-
жимого файла для проверки его на неизменность содер- ся лакомым куском, потому что содержит список всех фай-
жимого. Контрольная сумма шифруется различными мето- лов (кроме тех, которые были исключены через конфигура-
дами для исключения возможности ее подделки. Правиль- ционный файл) с указанием их имен, размеров, дат созда-
ное использование AIDE гарантирует в достаточной степе- ния и владельцев, а это уже сама по себе немалая инфор-
ни неизменность файлов. Но вот работают несколько сер- мация. Поэтому копирование баз будем производить через
веров, на них всех установлена AIDE, базу которой реко- SSH с использованием скрипта, описанного в [1].
мендуется хранить на сменном носителе с целью не допус- Двойное копирование последнего поколения базы необ-
тить попадания ее в чужие руки. Как реализовать это тре- ходимо потому, что последнее поколение хранится «под ру-
бование? Не вручную же копировать базу с каждого сер- ками» – там, где контроль за неизменностью файлов ведет-
вера? Для автоматизации этой задачи и был разработан ся чисто визуально. Дубль же последнего поколения, а так-
скрипт AIDEControl. же несколько предыдущих поколений хранятся на RW-дис-
Итак: ке в сейфе, там же, где хранятся резервные копии данных.
! Базы AIDE на всех наших серверах размещаются При необходимости вы всегда сможете сравнить две ко-
(по умолчанию) в /var/db/aide/aide.db. пии, а также провести анализ, как изменялся тот или иной
! Обновление базы производится сторонними средства- файл (по предыдущим копиям базы).
ми (вручную, через cron или с помощью скриптов). На рис. 1 изображена связь между мастер-компьюте-
ром, компьютерами, с которых собираются базы, и носите-
Мы рассмотрим программу автоматического копирова- лями. Для каждого приведено расположение файлов базы
ния баз AIDE с множества удаленных машин на некую цен- AIDE в процессе работы скрипта. Следует учесть, что это
тральную машину, обеспечивающую при этом невозмож- расположение баз именно в процессе работы скрипта, по-
ность использования данных базы в случае ее несанкцио- тому что, когда база скопирована на мастер-компьютер, она
48
администрирование
стирается с удаленного компьютера, а при завершении ко-
пирования на Flash она удаляется и с мастер-компьютера.
Для подключения к удаленным компьютерам скрипт
использует пользовательский бюджет с именем aide. Это
бюджет не для запуска скрипта, запуск скрипта делается
только пользователем root. Скрипт реализован на языке
Bourne shell, с использованием типового комплекта инс-
трументов – sed, awk, grep.
В качестве мастер-компьютера использовался компью-
тер с операционной системой FreeBSD 5.3-RELEASE, USB
Flash Seitek BAR 128 Мб и CompactFlash PQI 128 Мб. Рабо-
та в других UNIX-системах не проверялась.
рования RW-диска с полным комплектом поколений vndr – vendor (в данном случае 0x058f), prdct – product (в дан-
баз, например: ном случае 0x9380), rlse – release (в данном случае 0100)
подставляются в соответствующие места файла /etc/usbd.
/dev/acd1 /cd-rw cd9660 ↵ conf. Файл читается один раз при старте программы, поэ-
ro,noauto,noexec 0 0
тому для активации внесенных изменений usbd необходи-
! /mnt/umass (или любую другую, описанную парамет- мо перезапустить:
ром usbdevmp конфигурационного файла) для мон-
тирования Flash для хранения последнего поколения # killall usbd
# usbd
баз AIDE, например:
Внимание! Крайне не рекомендуется завершать работу
/dev/da0s1 /mnt/umass msdos ↵ usbd, запущенного с ключами -dv тогда, когда в USB встав-
rw,noauto,-l,-Wkoi2dos 0 0
лено какое-либо устройство, особенно если оно работает
(подробное описание полей fstab см. man fstab). по протоколу USB 1.1! Было замечено стабильное полное
Все компьютеры, базы с которых должны собираться, Если в командной строке был задан вывод краткой
описываются в файле описания узлов. Формат его очень справки, то она выводится и скрипт завершает работу, ина-
простой: че выполняется загрузка конфигурационного файла.
После загрузки выполняется поиск вспомогательных
remote1 10.87.2.60 программ. Он имеет такую особенность, что программы,
50
администрирование
которые необходимы для работы, перечислены непосредс-
твенно в переменной wtools. Причем в этом списке не упо-
минается mkisofs, потому что burniso сам проверит ее на-
личие. Соответствующая метка в листинге WTOOLS. Эта
часть показалась мне достойной более подробного рас-
смотрения, которое приведено ниже.
wtools="bzip2 burniso"
IFS="
"
52
администрирование
ния этого был разработан скрипт mountflash, приведенный в ны копироваться базы. Если сразу же открывается терми-
Приложении 3 (см. www.samag.ru, раздел «Исходный код»). нал удаленного компьютера – все нормально (при этом motd
Скрипт может запускаться как вручную, так и через /etc/ показываться не должно). Если же появляются запрос па-
usbd.conf. В последнем случае строка attach должна иметь роля на разблокирование ключа, запрос пароля на регис-
следующий вид: трацию на удаленном компьютере или какие-либо сообще-
ния об ошибках – следует устранить ошибки и повторить.
attach "sh -c '/usr/local/bin/mountßash /mount/point'" Все наиболее типичные ошибки, связанные с настройкой
SSH для автоматического копирования файлов с исполь-
где /mount/point – точка монтирования Flash. По умолча- зованием метода авторизации по публичному ключу, при-
нию точка монтирования – /mnt/umass. Метка монтирова- ведены в [1].
ния Flash в листинге – MNTFLASH. Наиболее часто встречающиеся ошибки, не связанные
В очередной раз выполняется разбор файла описания с настройками SSH:
узлов и по одному узлу за один проход выполняется копи- ! Неверно указанные пути к каталогам баз AIDE либо раз-
рование файлов из соответствующего каталога на мастер- личные пути для различных компьютеров, из-за чего ба-
компьютере в соответствующий каталог на Flash. Если ко- зы не могут быть скопированы.
пирование файла прошло успешно, файл удаляется с мас- ! Неверно указана точка монтирования RW-диска, ука-
тер-компьютера. Метка в листинге – FLASHCOPY. занная точка монтирования не описана в /etc/fstab, RW-
Последней задачей скрипта является размонтирование диск помещен не в тот привод (когда на мастер-компью-
Flash и останов устройства. Эта часть будет рассмотрена тере более одного привода, а это не редкость).
более подробно ниже по тексту. ! Неверно указана точка монтирования Flash, указанная
точка монтирования не описана в /etc/fstab, для данно-
# /dev/da0s1 го типа Flash не настроен /etc/usbd.conf.
mpdev=`mount | grep -e "$usbdevmp " | awk ↵
'{print substr($1,6,3)}'` ! Система не поддерживает монтирование USB Flash.
# Размонтировать Flash
umount $usbdevmp Наиболее уязвимым является процесс монтирования и
status=$? размонтирования Flash, поскольку он требует значитель-
# Проверить статус размонтирования и выдать сообщение, ного числа предварительных настроек. Для проверки ус-
# если неудачно пешного монтирования Flash следует запустить usbd в ре-
if [ $status -ne 0 ]; then
logline="USB Flashdrive unmounting on device $usbdev ↵ жиме отладки и посмотреть, не появляются ли сообщения
failed, return code is $status"; safe _ logger об ошибках во время процесса монтирования Flash. Следу-
else
logline="USB Flashdrive was succesfully unmounted ↵ ет учесть, что даже для Flash одного типа могут быть раз-
after updating content"; safe _ logger ные release. Гарантированно одинаковыми являются толь-
# Найти устройство, на которое смонтировалась Flash. ко Flash из одной коробки.
# Устройство находится поиском в выводе команды
# camcontrol devlist строки «(<имя _ устройства»,
# например «(da0» Заключение
umdrive=`camcontrol devlist | grep -e "($mpdev"` Данный скрипт – инструмент, который поможет вам решить
# Выбрать BUS. Ищется строка «scbusX», потом берется одну конкретную задачу. Несмотря на кажущуюся громозд-
# подстрока с шестого символа от места, где найдена строка кость, он относится к классу программ «настроил и забыл» –
umbus=`echo $umdrive | awk ↵
'{print substr($0,index($0,"scbus"),6)}'` после двух-трех успешных циклов получения информации
umdig=`echo $umbus | awk '{print substr($1,6)}'` запуск скрипта можно было бы уже доверить младшему
# Так же ищется target и lun. target берется через 7 персоналу, если бы не крайняя важность копируемых дан-
# ("target ") символов от строки, lun берется через 4 ных. Проверять систему с использованием скопированных
# ("lun ") символа от строки
umtarget=`echo $umdrive | awk ↵ файлов можно либо с помощью скрипта AIDEstart, который
'{print substr($0,index($0,"target") + 7,1)}'` будет описан в следующей статье, либо с загружаемой USB
umlun=`echo $umdrive | awk ↵
'{print substr($0,index($0,"lun") + 4,1)}'` Flash, либо вручную, указывая путь к данным в конфигура-
ционном файле или при запуске AIDE.
# Выдать команду останова устройства (она погасит
# индикатор готовности на Flash, за исключением USB 1.1)
Þ
camcontrol eject $umdig:$umtarget:$umlun Литература и ссылки:
1. Ачилов Р. Копирование файлов в автоматическом ре-
жиме с множества компьютеров через SSH. – Журнал
Возможные ошибки «Системный администратор», № 12, 2004 г. – 12-17 с.
Если скрипт работает не так, как ожидается, то, возмож- 2. http://www.granch.ru/~shelton/fileZ/burniso.tar.bz2.
но, имеет место ошибка в настройке SSH. Это очень прос- 3. http://www.freebsd.org/doc/en_US.ISO8859-1/books/
то проверить – достаточно с консоли мастер-компьютера handbook/kernelconfig-building.html.
набрать: 4. Домашняя страница проекта AIDE http://sourceforge.net/
projects/aide.
# su aide 5. Домашняя страница автора проекта cdrecord (в числе
> ssh remotebox
набора других программ) – http://cdrecord.berlios.de/old/
где remotebox – имя любого компьютера, с которого долж- private/cdrecord.html.
При выборе СУБД для проекта часто встаёт проблема выбора между низкой
(часто нулевой) стоимостью открытых баз данных, таких как MySQL или PostgreSQL,
и мощью и широтой возможностей «серьёзных» СУБД – Oracle, DB2, MS SQL.
MaxDB от компании MySQL AB, наследница SAP DB – прекрасная альтернатива такому выбору.
Это промышленная SAB-сертифицированная база данных, распространяемая под лицензией GPL.
КИРИЛЛ СУХОВ
В
последних числах мая 2003 го- непосредственно MySQL AB, а внед- (если такие соображения и впрямь
да широкие массы IT-тружени- рение системы и поддержку продук- имели место, то, по крайней мере, на
ков потрясла неожиданная но- та компании планировали осущест- авторе этих строк план сработал). О бу-
вость. Солидная во всех отношениях влять совместно. Причиной такого ша- дущем SAP DB также строились раз-
компания SAP AG, один из мировых ли- га SAP AG назвали желание как мож- личные догадки. MySQL AB будет пози-
деров программного обеспечения для но больше соответствовать запросам ционировать SAP DB как «MySQL для
бизнеса, заявила о планах «стратеги- клиентов. взрослых», говорили также о том, что
ческого сотрудничества» с MySQL AB – Если в MySQL-сообществе извес- MySQL будет просто использовать код
разработчиком самой распространён- тие утвердило сдержанный оптимизм, SAP DB для внедрения в свой продукт,
ной открытой СУБД – MySQL. Данное то в среде пользователей продуктов а оригиналу суждено умереть.
сотрудничество касалось такого из- SAB реакция была, по крайней мере, Прошло более двух лет, и по-
вестного и заслужившего уважение неоднозначна. И в самом деле, что мо- ка, к счастью, события опроверга-
продукта SAP, как SAP DB – промыш- жет предоставить MySQL SAP, кроме… ют обе версии. Готовящаяся к выхо-
ленного сервера баз данных, стояще- кроме огромного количества пользо- ду MySQL 5 явно не «содрана» со сво-
го в одном ряду с гигантами – MSSQL вателей СУБД! В самом деле, причи- ей старшей сестры, а, в свою очередь,
Server, Oracle и DB2. При этом, как за- ной такого шага могло послужить же- SAP DB, под новым именем MaxDB, жи-
являлось, написанием кода и управ- лание привлечь новых пользователей вет и развивается. Несмотря на сме-
лением проектом будет заниматься за счёт огромной аудитории MySQL ну названия нумерация версий оста-
54
администрирование
лась прежней: так, в начале 2004 го- интерактивной работы с базой данных, лицензией GPL, причём последний ва-
да вышла MaxDB 7.5, а в июне 2005 речь о которых пойдёт ниже. риант СУБД ничем функционально от
года MaxDB 7.6, порадовавшая поль- В таблице 1 приведён список под- платной версии не отличается.
зователей графическим инсталлято- держиваемых в настоящее время плат-
ром (Installation Manager GUI), автома- форм и архитектур. Он не так впечат- Инсталляция
тическим обновлением статистических ляющ, как в случае с MySQL, но все на- Требования к ресурсам у MaxDB по ны-
данных, автоматическим восстановле- иболее распространённые конфигура- нешним меркам довольно скромны. Они
нием неисправных индексов и новыми ции в нём присутствуют. напрямую зависят от объёма базы дан-
алгоритмами кэширования. Если операционная система, на ко- ных. Самым критичным параметром для
В этом же году MySQL AB выпусти- торой вы планируете работать с MaxDB, работающего сервера является опера-
ли PHP- и Perl-драйверы для MaxDB, в таблице отсутствует, не отчаивай- тивная память. Для размещения ядра
расширив функциональность для раз- тесь. Вся необходимая информация по необходимо около 48 Мб, для каждого
работки приложений. портированию СУБД приведена здесь: активного соединения понадобятся еще
http://www.sapdb.org/develop/sap_db_ примерно 10 Мб ОЗУ, что по сравнению
Что собой представляет cvs.htm и здесь: http://sapdb.2scale.net/ с аналогами не выглядит непомерным.
MaxDB сегодня? moin.cgi/DevelopingSapdb. Основные Размер занимаемого дискового про-
Это полноценный, промышленный технические параметры MaxDB при- странства складывается из размера
сервер баз данных, поддерживающий ведены в таблице 2. файлов дистрибутива MaxDB и размера
стандарт SQL 92 на «расширенном» Как и остальные продукты от MySQL прикладной базы данных. Суммарный
уровне (хранимые процедуры, тригге- AB, MaxDB распространяется как под размер исполняемых файлов MaxDB
ры, последовательности, курсоры, ро- коммерческой лицензией, так и под составляет от 280 Мб для 32-разряд-
ли и т. д.). В СУБД реализована под- Таблица 2. Основные технические параметры MaxDB
держка UNICODE, поддержка клас-
терных систем, предусмотрена воз-
можность изменения размера базы и
создание резервной копии в режиме
Online. Возможности MaxDB включа-
ют статистику для оптимизации стра-
тегии построения запросов пользова-
телем и выполнения их ядром СУБД.
Программные интерфейсы, позволя-
ющие работать с MaxDB, включают
ODBC 3.5, C/C++ Precompiler (встро-
енный (Embedded) SQL), JDBC, вер-
сии 3.0, Perl DBI, Python, PHP и, разу-
меется, SQLCLI. Что ещё? Да в общем,
немало, скажем, режим совместимос-
ти синтаксиса SQL СУБД. с Oracle 7.
Помимо самой СУБД в состав дис-
трибутива включены все необходимые
приложения для администрирования и
Таблица 1. Платформы и архитектуры,
поддерживаемые MaxDB
56
администрирование
профилем). Это инструменты инстал- щью, – создание и инициализация эк- ветствующие программные интерфей-
ляции и администрирования СУБД, земпляров баз данных (Instance, в тер- сы. Полный список команд доступен
средства работы с данными и програм- минах MaxDB), управление пользова- во входящей в дистрибутив докумен-
мные интерфейсы. Ниже речь пойдёт телями и операторами баз данных, ус- тации, можно также вызвать dbmcli с
об наиболее значимых из них. тановка прав доступа и параметров ав- параметром help (рис. 12).
торизации. С помощью DBM осущест- Web DBM входит в инструмента-
Администрирование вляется запуск и остановка экземпля- рий Web Tools, в официальной доку-
(Database Manager) ров БД, создание объектов БД, уста- ментации декларируется, что эти ути-
Менеджер базы данных доступен в новка значений и индексов, управле- литы, позволяющие управлять серве-
MaxDB в трёх ипостасях, выполняю- ние сессиями. Кроме того – резервное ром через обычный браузер, коррект-
щих совершенно одинаковый набор копирование (рис. 11), восстановление но работают в следующих конфигура-
функций. данных из резервных копий, монито- циях (см. таблицу 3).
Database Manager GUI (рис. 10) ринг, диагностика системы и многое От себя могу добавить, что при ис-
представляет собой удобный графи- другое. Даже обновление программ и пользовании браузера Mozilla Firefox
ческий интерфейс, посредством кото- системных таблиц удобно делать имен- (1.0.4) проблем не возникало, а вот с
рого можно осуществить любые дейс- но из этой среды. Opera 7.0 были (это касается и осталь-
твия, связанные с администрировани- Database Manager CLI, в отличие от ных Web Tools).
ем СУБД. В операционной системе MS своего графического коллеги, досту-
Windows он вызывается из стартово- пен во всех поддерживаемых опера- Работа с данными (SQL Studio)
го меню («Start → Programs → MySQL ционных системах. Работа с DBMCLI Следующие три инструмента предна-
MaxDB → Database Manager») или из может быть легко автоматизирована значены для доступа к данным и ката-
командной строки командой dbmgui. с помощью администраторских сце- логам экземпляров MaxDB с использо-
На его примере хорошо видны основ- нариев. Функции менеджера доступ- ванием SQL-запросов.
ные возможности администрирования. ны также из приложений, написанных SQL Studio (GUI), имеющаяся только
В числе задач, решаемых с его помо- на Java, Python, Perl, PHP, через соот- для ОС MS Windows, представляет со-
Рисунок 13. SQL Studio (GUI) – пишем запрос Рисунок 14. Лог DBAnalyzer
бой удобную среду разработки, с гра- ледовательностей, процедур и т. д., со- Преимущества консольного клиен-
фическим интерфейсом (рис. 13). SQL здание и исполнение SQL-запросов, не- та SQLCLI заключаются в возможнос-
Studio позволяет оперировать данны- посредственное редактирование дан- ти использования его команд внешни-
ми, создавать объекты базы данных и ных с помощью визуальных таблиц. ми сценариями, в том числе написан-
управлять ими. SQL Studio (GUI) имеет Web SQL Studio основана на веб- ными на языках, имеющих интерфейс
окно навигации, средства просмотра интерфейсе, имеет сходные с графи- доступа к MaxDB.
таблиц и, разумеется, средства управ- ческим вариантом возможности по уп-
ления SQL-кодом. Такое сочетание раз- равлению данными. Меньший комфорт Мониторинг (Database Analyzer)
личных функций в одной оболочке поз- работы в ней компенсируется платфор- Крайне полезный инструмент, Data-
воляет комфортно решать такие зада- менной независимостью данного инс- base Analyzer (рис. 14), представляет
чи, как создание таблиц, индексов, пос- трумента. собой полноценную экспертную сис-
58
администрирование
тему для мониторинга MaxDB. Сущ-
ность его работы заключается в сня- Краткая история SAP DB Её версия, на тот момент была 7.2. За
тии и оценке данных о состоянии сис- 11 мая 1999 года известный разра- последующие года SAP DB стреми-
темы, через определённые интерва- ботчик ERP-систем, немецкая компа- тельно развивалась, находя примене-
лы времени (задаваемые настройка- ния SAP AG, объявила о приобрете- ние как самостоятельно, так и в качес-
ми). Полученные сведения диффе- нии у фирмы Software AG неисключи- тве встроенной СУБД.
ренцируются по классам – служеб- тельных прав на СУБД Adabas D. Мо- СУБД развивалась, обрастая но-
ная информация, предупреждения тивы этого действия были очевидны, выми возможностями, утилитами и ин-
(три различных уровня) и сообще- основной (более 75%) платформой терфейсами. Вокруг неё складывалось
ния об ошибках. Все полученные со- для EPR-системы R/3, выпускаемой сообщество разработчиков. В начале
общения проходят стандартную об- компанией была СУБД Oracle, про- 2003 года SAP AG пошла ещё дальше,
работку и дешифровку. Более того, дукт ближайшего конкурента на рын- объявив Open Source свою уникальную
Database Analyzer берёт на себя су- ке ERP-систем. Таким образом, SAP разработку – технологию LiveCache
щественную часть анализа информа- AG практически прямо финансирова- (объектно-ориентированное расши-
ции, предлагая в стандартных ситуа- ла Oracle Applications, продукт, конку- рение реляционной системы баз дан-
циях типовое разрешение возникших рировавший с их собственной разра- ных SAP DB, предоставляющее воз-
затруднений. боткой – R/3. можность более легкого и эффектив-
Database Analyzer облегчает вы- В 2000 году купленное решение ного отображения структур и потоков
явление ошибок в случае проблем с оформилось в самостоятельный про- данных), что ещё больше привлекло к
производительностью или пропуск- дукт – SAP DB и дальнейшие разра- ней внимание.
ной способностью сервера MaxDB. Это ботки, предлагаемые компанией (R/3 В мае 2003 года SAP AG объявила о
помогает, например, выявить пробле- и открытая платформа mySAP) бази- стратегическом партнёрстве с MySQL
мы, относящиеся к конфигурации ба- ровались на ней. AB, и передачи последней СУБД (до-
зы данных, синхронизации (блокиров- 5 октября 2000 года SAP AG объ- стигшей к тому времени версии 7.4)
ка, критические секции), оптимизации явила выход СУБД под лицензией для разработки и продвижении реше-
запросов базы данных (стратегия об- GPL, сделав её таким образом первой ний на рынопк. С 31 марта 2004 года
работки данных, индексирование, оп- Open Source СУБД такого класса. Про- SAP полностью прекратила самостоя-
тимизация статистики) или конфигу- мышленная, многоплатформенная ба- тельное распространение SAB DB, ог-
рации оборудования. Рекомендации за данных, с открытым исходным ко- раничившись поддержкой своих ста-
Database Analyzer могут предложить дом стала доступна разработчикам. рых партнёров.
создать добавочные индексы или по-
высить размер кэша БД. торые затем объединяются в ходе оче- циализированные программы для за-
редной синхронизации. грузки и выгрузки данных. Благодаря
Репликация Сервер сообщений Synchronization прямому соединению с экземпляром
(Synchronization Manager) Manager – это выделенный экземпляр MaxDB, Loader обычно помогает до-
Основное назначение этого инстру- MaxDB, который не зависит от масте- стичь существенного преимущества
мента – различные виды репликации ра и клиентов. Он буферизирует все в производительности.
данных MaxDB. Синхронизировать изменения до того, как их прохож- Более того, Loader поддерживает
мобильные или удалённые экземпля- дение завершится. Таким образом, перенос любых данных из одного эк-
ры баз данных с центральным серве- Synchronization Manager отделяет ра- земпляра MaxDB в другой, даже в том
ром БД – достаточно типовая задача, ботоспособность мастера и клиентов случае, когда исполняется на различ-
и Synchronization Manager достаточно от времени синхронизации. ных архитектурах и операционных сис-
хорошо с ней справляется. Узким местом является двунаправ- темах. По выбору администратора мо-
Репликация в MaxDB осуществля- ленная репликация – в этом случае су- гут быть загружены отдельные табли-
ется централизованно, с выделением ществует вероятность возникновения цы, все таблицы, относящиеся к опре-
одного главного экземпляра БД, в ко- конфликтов, которые необходимо раз- деленному пользователю БД, или даже
тором записываются настройки репли- решать вручную. полное содержание базы данных.
кации и произведённые изменения, ко- В этой статье я ограничился обзо-
Таблица 3. Поддержка Web Tools Импорт и экспорт данных ром основных средств и возможнос-
для различных платформ и браузеров (Loader) тей MaxDB, совершенно не упомянув
Последнее, о чём я хотел рассказать о таких вещах, как Standby/Hot Standby
в этой статье, это утилита Loader, поз- конфигурации, снимках (Snapshots),
воляющая импортировать данные при- кэшировании, автоматическом распре-
ложений из файлов данных в экземп- делении пространства и многом дру-
ляр базы данных, или экспортировать гом. Также я совершенно не касался
данные из MaxDB в файлы. Благода- вопросов архитектуры администриро-
ря поддержке большого количества вания и разработки. Если вы проявите
различных форматов и структур запи- интерес, я продолжу рассказ о данной
сей, Loader часто может заменять спе- СУБД в дальнейшем.
СЕРГЕЙ ЯРЕМЧУК
60
безопасность
ля защиты компьютерных систем в настоящее вре- сором для центрального сервера: Linux (обеспечивает ау-
мя разработано приличное количество разнообраз- дит, принятый в системах класса C2 или CAPP), Windows,
ного программного обеспечения, выполняющего ка- Solaris, Irix, AIX, IIS Web Server (используется для обработ-
кую-то определенную задачу. Антивирусы оберега- ки файлов регистрации в реальном времени) и ISA Server.
ют пользователей от вирусов, межсетевые экраны блоки- Распространяется SNARE под GNU Public License. В статье
руют нежелательный трафик, целый класс систем обнару- мы рассматриваем Linux-реализацию.
жения и остановки атак в той или иной мере противостоит
действиям злоумышлеников. Как работает SNARE
События, происходящие в последнее время, показыва- SNARE в варианте для Linux использует три компонента:
ют пока только неэффективность традиционных средств ! Патч к ядру (в версиях 0.9.3 и выше), ранее для этих це-
защиты, не срабатывающих при появлении новых алгорит- лей использовался динамически загружаемый модуль
мов нападения. Пока действительно хорошо справляются ядра auditmodule.o, который можно было установить без
со своей задачей инструменты, позволяющие определить перекомпиляции ядра. Разработчики стремятся сделать
уже произошедшее проникновение. Поэтому в настоящее систему контроля как можно более легкой и универсаль-
время особым вниманием пользуются проактивные сис- ной, способной работать как на маломощной рабочей
темы защиты, реагирующие на системные события, а не станции, так и загруженном сервере, этим вызвано та-
сравнивающие сигнатуры, сгенерированые специалиста- кое изменение в подходе.
ми по безопасности. Такие средства аудита контролируют ! auditd – демон, являющийся front end к модулю (нахо-
различные системные выводы и в результате дают полную дится в пакете snare-core).
картину происшедшего на контролируемом узле. А имен- ! snare – утилита графической конфигурации и просмот-
но: кто, когда обращался, к какому файлу, заходил по сети, ра отчетов (пакет snare-gui).
модифицировал те или иные данные, т.е. в итоге позволя-
ют получить полную картину происшедшего на контроли- Модуль проверки, работая в пространстве ядра, отлав-
руемом компьютере. Во всех операционных системах ве- ливает критические системные вызовы вроде «execve» (вы-
дутся более или менее подробные логи, но большей частью полнение команды), «open» (открыть файл), «mkdir» (со-
на основные события (за исключением модуля BSM (Basic здать каталог) и отправляет результат к подпрограмме, ко-
Security Module) в Solaris), чего в большинстве случаев до- торая собирает всю информацию относительно процесса
статочно. Но, например, в спецификациях выдвигаются и пользователя, его запустившего или просто попытавше-
дополнительные требования по регистрации событий для гося выполнить рассматриваемый системный вызов. Этот
защищенных систем, начиная с класса С. К тому же такие контрольный модуль сохраняет собранную информацию во
возможности могут понадобиться в системах, предназна- временном буфере, который и считывается демоном auditd.
ченных для обработки конфиденциальной информации. Демон читает данные от системы контроля через устройс-
Естественно, отслеживая потенциально опасные события, тво /proc/snare (ранее /proc/audit), преобразовывая двоич-
можно предотвратить взлом и утечку информации, поэто- ные контрольные данные в понятный текстовый формат,
му одним из требований к таким системам является быст- и отделяет информацию в ряд лексем, используя для отде-
рая реакция (под реакцией в данном случае подразумева- ления данных и улучшения дальнейшей обработки инфор-
ется оповещение). Для централизованного сбора, хранения мации три разделителя: табуляцию, запятые и пробел. По-
и обработки данных о событиях, происходящих на подчи- лучаем приблизительно следующее:
ненных системах, приветствуется отправка сообщений на
удаленные системы. grinder LinuxAudit objective,clear,Fri Dec 17 22:33:15 2004,
The program /usr/bin/links been executed by the user leigh
Австралийская фирма, занимающаяся безопасностью, event,execve(), Fri Dec 17 22:33:15 2004
InterSectAlliance (http://www.intersectalliance.com/projects/ user,leigh(500),users(500),leigh(500),users(500)
process,478,sh path,/usr/bin/links arguments,links
Snare), в разработке SNARE – System iNtrusion Analysis and return,0 sequence,11256
Reporting Environment основной упор сделала на регистра-
цию как можно большего количества событий. В том чис- Кстати, реализация под Windows отличается работой
ле контролируются открытые сетевые соединения, чтение всего двух компонентов: сервиса snarecore.exe и утилиты
и запись в файлы и каталоги, модификация данных поль- конфигурирования и получения отчетов snare.exe.
зователя и групп, изменение программ. Система SNARE
может быть сконфигурирована в двух вариантах. Первый Установка
позволяет обнаружить, когда какой-либо пользователь ос- Для установки SNARE под Linux понадобится два файла:
тановил ключевую программу, переключился к учетной за- snare-core и snare, а также патч к ядру (в настоящее время
писи администратора или установил файлы в системный ведется работа по включению кода в основное ядро). Для
каталог. В другом варианте использования SNARE контро- некоторых дистрибутивов (RHEL, Fedora, Debian) на сай-
лирует непосредственно определенные системные вызовы, те доступны ссылки на прекомпилированые пакеты, в том
например, открывающие или переименовывающие фай- числе и подготовленные ядра, которые и рекомендуется ис-
лы, chroot, reboot, mkdir, mknod и другие операции. Систе- пользовать. В целях эксперимента установим SNARE, ис-
ма реализована на нескольких платформах с учетом осо- пользуя исходные тексты.
беностей каждой, при этом она может использоваться как Скачиваем версию ядра, под которую имеются патчи
автономный инструмент анализа или быть удаленным сен- и сам патч.
# snare-gui-0.9.6.tar.gz
# cd snare-gui-0.9.6
# ./autogen.sh
# make
# make install
# cp snare-icon.png /usr/share/pixmaps
# cp snare.desktop /usr/share/gnome/apps/System
# cp snare.desktop /usr/share/gnome/ximian/ ↵
Programs/Utilities/
# cp Snare.kdelnk /usr/share/applnk/System/
62
безопасность
те «Guide_to_SNARE_for_Linux.pdf» в разделе «Appendix C – myguisystem# ssh auditedsystem
Configuration File Description»). ..
auditedsystem# /bin/su -
[password]
criticality=4 event=open(.*),mkdir,mknod,link,symlink ↵ auditedsystem# export DISPLAY=myguisystem:80
return=Success user!=root match=^/etc/shadow$ auditedsystem# snare &
criticality=2 event=open(.*),mkdir,mknod,link,symlink ↵
return=Failure user!=root match=^/etc/shadow$ И еще одна полезная возможность заложена в SNARE –
это отправка логов на удаленный узел по протоколу UDP,
Если оставить одну строку, то это снизит эффективность которая может помешать хакерам скрыть свое пребывание
системы, и действительно опасное предупреждение может чисткой логов, хотя при контроле большого количества ма-
просто затеряться среди подобных сообщений. шин и параметров это может существенно забить сеть па-
Для более тонкой настройки можно добавить индиви- кетами. Для этого в «Auditing Control» выбираем пункт «Log
дуальный контроль файлов, в которых прячутся rootkits events to the networked host and a local file» и далее устанав-
(их список большой, вот некоторые: login, telnet, ftp, netstat, ливаем имя узла и порт (по умолчанию 6161), которому будут
ifconfig, ls, ps, ssh, find, du, df, sync, reboot, halt и shutdown) отправляться сообщения. На сервере, предназначенном для
и основные настроечные системные и сетевые файлы /etc/ сбора всех логов, запускаем Perl-скрипт auditserver.pl (лежит
resolv.conf, /etc/hosts, /etc/lilo.conf, /boot/grub/grub.conf, и пр. в пакете snare-core), в котором нужно изменить перемен-
Список основных системных вызовов и их значения приве- ную $ServerPort, установив нужное значение, совпадающее
ден в разделе «Appendix A – Events Audited». с таковым у клиентов, и каталог, куда будут складываться
Единственное, о чем следует помнить, – это то, что при сообщения. Cервер в каталоге /var/log/audit создает отде-
увеличении контролируемых параметров увеличивается и льные файлы для каждого клиента вида YYYYMMDD-host.
потребление системных ресурсов, на маломощных систе- name.LinuxAudit. То есть в итоге получаем несколько фай-
мах этот показатель может быть критичным. лов вида /var/log/audit/20050821-host.com.LinuxAudit. В даль-
В Windows нет разделения на Objectives или Kernel, до- нейшем эти файлы можно заархивировать для истории или
ступна только Audit Reporting Objectives, и в силу специфи- распаковать при помощи скрипта extract.pl, который можно
ки системы отслеживаются другие события (logon, logoff, найти в документе «Guide to SNARE for Linux», потом прос-
обращение к файлу или каталогу, остановка и запуск про- то запуская его вручную или при помощи cron.
цесса, использование прав пользователя и администрато-
ра, изменение политики безопасности, перезагрузка, ос- #cat /var/log/audit/20050821-host.com.LinuxAudit | ↵
./extract.pl
танов системы и некоторые другие).
После внесения всех необходимых настроек необхо- На данный момент не поддерживается какая-либо защи-
димо перезапустить сервис «Activity → Apply and Restart та при передаче файлов журналов, что дает возможность
Audit», после чего в главном окне программы будут выво- злоумышленику подделать логи либо провести элементар-
диться все события, попадающие под установленные пра- ную DOS-атаку, поэтому пользоваться возможностью от-
вила. Щелкнув дважды мышкой по представляющему ин- правки логов в таком варианте необходимо осторожно и в
терес событию, можно получить дополнительную информа- защищенных сетях. Хотя стоит отметить, что отправка жур-
цию. Используя «Prev» и «Next», можно двигаться вперед- налов на централизованый сервер разработчиками ориен-
назад, просматривая события. Все, на мой взгляд, просто тируется больше при взаимодействии с SNARE Server (http://
и понятно. Просмотреть статус работы SNARE можно, вы- www.intersectalliance.com/snareserver/index.html). Основное
брав пункт «Bид → Audit Status», при этом можно увидеть об- назначение которого сбор и анализ информации, постав-
щее количество событий, обработанных модулем ядра без ляемой с различных систем. С его демо-версией можно оз-
фильтрации, а также ID процесса демона, версию SNARE накомиться на сайте проекта. Для централизованого сбо-
и активность демона. ра и отправки журналов с других систем с ним в паре бу-
дет работать SNARE Reflector, разработка которого ведет-
Удаленное управление ся в настоящее время.
К сожалению, версия под Linux лишена на данный момент Кстати, положительной стороной проекта является хоро-
возможности удаленного управления при помощи веб-ин- шая документация, помогающая разобраться в работе.
терфейса. А вот запустив SNARE под Windows и набрав в Как видите, в отличие от средств контроля целостности
строке браузера IP-адрес или имя компьютера, получаем системы, которые запускаются время от времени, SNARE
не только возможность сконфигурировать его удаленно, позволяет контролировать происходящее практически в
но и информацию о пользователях и группах локальных и реальном времени, что существенно повышает общую бе-
домена. Для подстраховки лучше зайти предварительно в зопасность. Также являются интересными сочетания вро-
пункт «Setup → Remote Control Configuration» и выставить де «IDS+SNARE» или «honeypots+SNARE». Первый вари-
IP-адрес, с которого можно удаленно заходить на компью- ант позволяет получить более подробную информацию об
тер и пароль для получения доступа, здесь же можно вы- инциденте и может помочь при обработке последствий. Во
брать и порт, на котором работает сервер. втором случае предоставляется хорошая возможность изу-
Но в Linux можно просто зайти на удаленную систему чить инструменты и действия взломщиков. Также подобные
при помощи SSH и запустить на ней клиента. Если на под- средства могут понадобиться тем, кому по роду деятель-
контрольной системе не используется X-Window, то перед ности нужна операционная система класса С2.
запуском экспортируем переменную DISPLAY. Удачи.
КРИС КАСПЕРСКИ
Х
акерс ка я муд рос ть глас ит: ко взлому). Защита должна уверенно файлов, поскольку всегда найдется
«взломать можно все, это только работать на всем спектре програм- пользователь, пожелавший разделить
вопрос времени». Программный мно-аппаратного обеспечения с за- себя с миром, и, в общем-то, по-своему
продукт, ориентированный на массо- ранее непредсказуемыми свойства- он будет прав. Черные списки «засве-
вый рынок, такая ситуация вполне уст- ми. Антиотладочные приемы следу- ченных» серийных номеров и прочие
раивает. Какой-то процент пользовате- ет использовать с большой осторож- организационные меры, как показы-
лей покупает программу, какой-то нет. ностью или не использовать вообще, вает практика, недостаточно эффек-
Но для специализированных програм- поскольку от них слишком много про- тивны и со своей задачей не справ-
мных комплексов (расчет прецизион- блем. К тому же защита должна быть ляются.
ного литья или звездных спектров), ко- проста в реализации и отладке. Напри- Также недопустимо привязывать-
личество пользователей которых из- мер, если часть функционала вынесе- ся к оборудованию, поскольку потре-
меряется какими-то тысячами, такой на в микроконтроллер, смонтирован- бители очень не любят, когда ограни-
подход уже неприемлем. Потенциаль- ный на отдельной печатной плате, под- чивают их свободу. К тому же, если
ный рынок настолько мал, что каждая ключаемой через PCI-шину или COM/ стоимость защищенного комплекса
нелегальная копия чувствуется весьма USB/LPT-порт, взлом становится не составляет хотя бы 500$, хакеры мо-
болезненно. Значит, надо защищать только нерентабельным, но и практи- гут клонировать весь компьютер це-
так, чтобы не взломали, но как? чески невозможным. Конечно, при ус- ликом, особенно если это будут ки-
У нас две новости – хорошая и не ловии, что микроконтроллер не позво- тайские хакеры (цены на оборудова-
очень. Надежные защиты все-таки су- ляет считывать ПЗУ (некоторые при- ние в Азии намного ниже европейс-
ществуют, но их разработка требует емы аппаратного взлома можно най- ких). Наиболее популярным объек-
больших усилий и знания реалий. Это ти на страничке Сергея Скоробога- том привязки служит серийный но-
довольно заковыристая предметная того: http://www.cl.cam.ac.uk/~sps32). мер жесткого диска и MAC-адрес се-
область, и с одной лишь теоретической Однако отладить такой комплекс бу- тевой карты, которые легко изменить
подготовкой в нее не войдешь. Тем не дет намного сложнее, чем взломать, (в частности, для жесткого диска мож-
менее спрос рождает предложение, и поэтому для практического примене- но воспользоваться комплексом PC-
автор статьи делится своим многолет- ния он непригоден. В идеале защита 3000 от ACE Laboratory – www.acelab.
ним опытом по созданию стойких за- вообще не должна требовать никако- ru). Остальные же характеристики
щитных комплексов. го «внешнего» оборудования, а это «железа» еще менее уникальны и в
значит, что ее код заведомо будет до- пределах одной партии практически
Основные концепции ступен для анализа и модификации идентичны друг другу. К тому же не-
защиты (см. рис. 1, 2). льзя забывать про виртуальные ма-
Главное свойство защиты – это на- Защита не может отталкиваться ни шины (VMWare, Virtual PC и т. д.), при-
дежность (не путать со стойкостью от серийных номеров, ни от ключевых вязка к которым лишена всякого смыс-
64
безопасность
ла. Можно, конечно, распознать нали- тимость с различными моделями при- Третью группу возглавляют защи-
чие виртуальной машины и отказать- водов и предельная простота програм- ты, привязывающиеся к физической
ся работать под ней, только это не вы- мной реализации. Недостатки – при структуре носителя. Их можно разде-
ход. Виртуальных машин существует подготовке диска к тиражированию лить на две подгруппы. Первая выде-
огромное множество, и каждая из них придется долго объясняться с сотруд- ляет на диске некоторые более или ме-
детектируется по-своему, к тому же никами завода. Обычно им переда- нее уникальные характеристики, к ко-
для большинства из них существуют ют готовый диск или образ, содержа- торым, собственно, она и привязыва-
специальные «патчи», предотвраща- щий только пользовательские данные ется. Вторая же, не собираясь ждать
ющие детектирование. В общем, вло- (он же образ типа ISO9660, хотя это на- милости от природы, самостоятельно
женные в защиту усилия окажутся не- звание не вполне корректно), здесь же формирует трудновоспроизводимые
рентабельными. требуется «сырой» (RAW) образ в фор- дефекты на диске. Возьмем извест-
Привязываться можно только к но- мате 2352/96, который поддерживает ную защиту Laser Lock, которую лег-
сителю – дискете, лазерному или DVD- далеко не всякое оборудование! За- ко опознать по наличию крошечной
диску, карте FLASH-памяти и т. д. частую производитель игнорирует на- «дырки», проделанной лазером точ-
Это в наименьшей степени ущемля- ши требования, и вопреки всем обе- но посередине спиральной дорожки
ет права потребителей и практичес- щаниям и договорам с «конвейера» (аналогичный способ был широко из-
ки не создает непреодолимых не- сходят диски, записанные стандарт- вестен еще во времена дискет, при-
удобств, к тому же качественно защи- ным образом, то есть без ключевых чем их дырявили не только лазером,
щенный носитель чрезвычайно труд- меток, а для заказчика это катастро- но еще и гвоздем). На первый взгляд
но скопировать. Существует множес- фа! (Поверьте моему горькому опы- тут должен образоваться BAD-сектор,
тво хакерских групп, специализиру- ту, это довольно часто встречается). однако практика показывает, что диск
ющихся на взломе программного ко- Но это все равно напрасно, посколь- читается без проблем. А как же «ды-
да, но очень немногие разбираются в ку такие защиты уже давно копируют- ра»? Все дело в кодах Рида-Соломо-
устройстве носителей на профессио- ся специализированными копировщи- на, корректирующей способности ко-
нальном уровне. ками. Исключение составляет ключе- торых вполне хватает для исправле-
Весь вопрос в том, какой носи- вая метка в Q-подканале аудиотрека. ния «дыры». Но если отключить кор-
тель выбрать. Дискеты отбросим сра- Без спецоборудования она не копиру- рекцию ошибок, то в секторе сразу
зу. Их время уже прошло. DVD-дис- ется в принципе! Но это уже тема для же обнаружатся «дефективные» би-
ки только набирают силу, и требовать другого разговора. ты, причем начало разрушенной об-
обязательно наличия DVD-привода на Вторая группа защитных механиз- ласти будет соответствовать позиции
целевом компьютере по меньшей ме- мов основана на нестандартных фор- дырки в секторе. Это если объяснять
ре негуманно. То же самое относит- матах диска (необычная длина секто- на пальцах.
ся и к FLASH-картам. Остается толь- ра, нестандартные номера треков, ис- На самом деле все намного инте-
ко CD. Вот к нему-то мы и будем при- каженные заголовки и т. д.). Все они реснее и сложнее. Структура хранения
вязываться. крайне конфликтны и отказывают- данных на лазерном диске такова, что
ся идти на многих моделях приводов, физически смежные биты расположе-
Обзор популярных к тому же при тиражировании дисков ны на значительном удалении друг от
средств защиты возникают очень серьезные пробле- друга, зачастую даже в различных сек-
Механизмы привязки к CD-ROM мож- мы, намного более серьезные, чем торах! Информация как бы «размазы-
но разделить на три большие группы. в первом случае. Как правило, требу- вается» вдоль спиральной дорожки,
В первую (и наиболее древнюю) попа- ется специальное (и весьма дорогос- чтобы противодействовать царапинам
дают защиты, внедряющие ключевую тоящее!) оборудование, оправдываю- и дефектам. Дело в том, что корректи-
метку в служебные структуры данных, щее себя только на больших тиражах. рующие коды Рида-Соломона отлично
не копируемые штатными копировка- Но эти вложения вряд ли окупятся, пос- справляются с одиночными ошибками,
ми. Это может быть и область предза- кольку копировщики защищенных дис- но намного хуже – с групповыми. Что-
зора первого трека (first pre-gap), и суб- ков уже давно справились с нестан- бы ослабить влияние дефектов, при-
канальные данные, также называемые дартными форматами, так что не бу- шлось прибегнуть к перемешиванию.
данными подканалов (subchannel data), дем на них останавливаться и двинем- А это значит, что «дыра» затрагивает
и т. д. Достоинства – высокая совмес- ся дальше. не один сектор, а целую группу секто-
Детектирование VMWare вания, защищаемая программа сразу Листинг 1. Определение версии VMWare
Автору известны по меньшей мере три поймет, куда ее занесло. mov eax, 564D5868h ; VMWARE _ MAGIC
способа обнаружения VMWare. Во-вторых, виртуальные сетевые mov ecx, 0Ah ; Get VMware version
mov edx, 5658h ; VMWARE _ PORT
Во-первых, по оборудованию: вир- карты имеют довольно предсказуе- in eax, dx
туальные машины несут на своем бор- мый диапазон MAC-адресов, а имен-
ту довольно специфический набор же- но: 00-05-69-xx-xx-xx, 00-0C-29-xx-xx-xx Для маскировки виртуальной ма-
леза, практически не встречающийся и 00-50-56-xx-xx-xx. Защите достаточ- шины Костей Кортчинским (Kostya
в живой природе. Это: но выполнить команду «arp -a», чтобы Kortchinsky) был написан специаль-
! видеокарта VMWare Inc [VMWare распознать хакерские планы. ный патч, изменяющий идентифи-
SVGA II] PCI Display Adapter; В-третьих, VMWare имеет коварный кационные строки оборудования,
! сетевая карта: Advanced Micro backdoor, оставленный разработчика- MAC-адреса и магический номер
Devices [AMD] 79c970 [PCnet 32 ми для служебных целей и управляе- backdoor (http://honeynet.rstack.org/
LANCE] (rev 10); мый через порт 5658h, при этом в ре- tools/vmpatch.c).
! жесткие диски: VMWare Virtual гистре EAX должно содержатся «маги- Подробнее о способах детектиро-
IDE Hard Drive и VMWare SCSI ческое» число 564D5868h. вания виртуальных машин можно про-
Controller. Ниже приведен фрагмент кода читать в подборке статей «Know your
червя Agobot, определяющий версию Enemy» (www.honeynet.org/misc/files/
Опросив конфигурацию оборудо- VMWare: papers.tar.gz).
ров! Это дает возможность распознавать «виртуальные» щищенного диска не вносится никаких изменений, и для
BAD-сектора, имитируемые копировщиками. Поразитель- его тиражирования можно использовать абсолютно лю-
но, но ни одна из коммерческих защит такой проверки не бое оборудование, в том числе и бытовой CD-R/RW-ре-
выполняет! Тем не менее копировщики защищенных дис- кордер. Скопировать физическую структуру спиральной
ков уже давно научились обходить Laser Lock, имитируя да- дорожки нереально (на CD-R/RW-дисках уже нанесена
же такие «тонкие» эффекты, как увеличение времени чте- предварительная разметка, причем у каждого типа бол-
ния «продырявленных» секторов и т. д., так что такой при- ванок своя), и хотя ее можно проэмулировать, от эмуля-
ем подходит только для борьбы со штатными копировщи- торов легко защититься (чуть позже мы покажем как). По
ками. К тому же очень трудно найти завод, располагающий правде говоря, существует возможность подбора болван-
соответствующим защитным оборудованием. Вообще-то в ки с похожей спиральной структурой, однако, если привя-
отсутствие лазера можно воспользоваться и обыкновен- зываться не к одной, а нескольким физическим характе-
ным маркером, однако он подходит только для крошечных ристикам, вероятность подобрать «правильный» диск бу-
тиражей (см. рис. 3). дет крайне мала.
Остается последний тип защиты – измерение физи- В принципе можно воспользоваться готовым защит-
ческих характеристик спиральной дорожки (также назы- ным пакетом, но, во-первых, за него придется платить.
ваемый снятием топологии). По такому принципу, в част- Во-вторых, все вышеперечисленные защиты легко копи-
ности, работают CD-Cops, SecureROM 4x, StarForce и не- руются в режиме эмуляции копировщиками Clone CD и
которые другие защиты. Методика отработанная, мож- Alcohol 120%.
но даже сказать вылизанная до зеркального блеска и не- Исключение составляет StarForce Professional Edition,
плохо себя зарекомендовавшая. Судите сами. В образ за- непосредственно скопировать который еще никому не уда-
лось, однако (и это в третьих!) защита слишком агрессивно
вгрызается в операционную систему, вызывая множество
проблем у легальных пользователей. Разработчики харак-
теризуют себя как людей с хакерским прошлым, сильных в
системном программировании. Что касается прошлого – с
этим можно согласиться. Операционную систему они зна-
ют лучше, чем свой задний двор. Но вот программировать
умеют едва ли. Программирование – это в первую очередь
проектирование. А проектирование – это учет рисков. Ни-
какой конструктор не позволит себе строить мост по непро-
веренным формулам или проводить на нем научные экс-
перименты, гадая, произойдет обрушение на этот раз или
не произойдет. Программа, ориентированная на массовое
применение, просто не может пользоваться недокументи-
рованными возможностями и прочими приемами нетради-
ционного программирования (в народе именуемых хаками).
У себя в заднем дворе делайте, что хотите, но вот пользо-
Рисунок 3. Лазерный диск, защищенный Laser Lock вателю требуется нормальный продукт.
(«снимок» получен сканером HP 1200) А давайте запрограммируем защиту самостоятельно!
66
безопасность
Ядро измерителя структуры спиральной дорожки занимает Исходный текст «измеряющей» программы приведен
всего несколько строк на Си. Вместе с обвязочным кодом ниже:
выходит около десятка… Полный цикл разработки вмес-
те с отладкой легко укладывается в пару недель. Так сто- Листинг 2. Макет программы sf.c для снятия топологий
ит ли за это платить? //-[чтение сектора с диска]---------------------------------
// ARG:
// CD указатель на строку с именем привода
Star-force своими руками // (например, "TEAC"), адрес на ASPI-шине
Спиральная дорожка лазерных дисков очень похожа на // (например, "1.1") или имя диска("\\.\G:");
// первые два варианта работают через ASPI,
грампластинку, только начинается не снаружи, а изнутри, // последний через SPTI;
наматываясь от центра к краю. Оптическая головка, удер- //
// buf указатель на буфер SECROR _ SIZE*2
живаемая в магнитном поле «звуковой катушки», движется //
на «салазках» поперек спиральной дорожки. Сама дорож- // sector номер сектора в LBA-формате
//
ка состоит из секторов с данными и каналов подкода. Но- // RETURN:
мера секторов находятся как в заголовках самих секторов, // 0 успешно
// -1 ошибка
так и в каналах подкода, «размазанных» вдоль спиральной read _ from _ cd(char *CD, unsigned char *buf, long sector)
дорожки. Для грубой наводки на требуемый сектор исполь- {
int stat;
зуются салазки и каналы подкода, а для точной – отклоне- stat=cd _ raw _ sector _ read(CD, buf, SECTOR _ SIZE, ↵
ние в магнитном поле и секторные заголовки. sector, ONE _ SECTOR, W _ USER _ DATA);
if (stat == SCSI _ OK) return 0; return -1;
Просто взять и измерить структуру спиральной до- }
рожки нельзя, но можно сделать вот что: допустим, голо-
//-[чтение TSC-счетчика]------------------------------------
вка считывает сектор X, а следом за ним сектор Y. Если unsigned int A()
угол XOY, образованный центром (O) диска, секторами X {
_ _ asm{
и Y составляет порядка ~15 град., а сами сектора распо- _ emit 0xF ; RDTSC
ложены на соседних витках спирали, то приводу достаточ- _ emit 0x31
}
но всего лишь немного отклонить головку и через мгно- }
вение сектор Y сам падает в руки, как перезревшее яб-
#deÞne argCD v[1]
локо – диск ведь вращается! Если же угол XOY составля-
ет менее ~15 град., тогда за время перемещения головки // КОНФИГУРАЦИЯ
//-----------------------------------------------------------
сектор Y уже «уплывет» и приводу придется ждать целый // номер первой точки измерения (LBA-адрес)
оборот лазерного диска, пока он не достигнет оптической // данная утилита измеряет топологию только по одной
// точке, что не есть хорошо, т.к. легко подобрать похожий
головки (см. рис. 4)! // диск, для уверенности следует выбрать несколько точек:
Замеряя время чтения различных пар секторов, мы мо- // в начале, середине и конце диска
#deÞne _ CFG _ BGN _ SEC _ 17699
жем приблизительно определить их взаимное расположе-
ние на спиральной дорожке. У каждой партии диска для // количество секторов для измерения
// должно быть не меньше утроенного количества секторов
заданных секторов X и Y оно будет своим (ведь степень // на виток в данной точке измерения
«закрутки» спирали неодинакова и варьируется от одного // (см. _ CFG _ BGN _ SEC _ ) число витков спирали N
// с поперечной плотностью D витков/мм от радиуса R1
производителя к другому). Чтобы побороть упреждающее // до радиуса R2 определяется формулой: N = (R2- R1) * D
считывание (которым «страдают» многие приводы), за- #deÞne _ CFG _ LEN _ SEC _ 0x669
щита должна читать сектора в порядке убывания их LBA- // максимальный шаг приращения
адресов. Также она должна измерять скорость вращения // в принципе должен быть равен удвоенному количеству
// секторов на данном витке спирали, что увеличивает
привода, чтобы, во-первых, определить постоянство вре- // точность измерений, но можно использовать и значение
менных замеров (пляшут ли они как пьяные человечки или // _ CFG _ LEN _ SEC _
#deÞne _ CFG _ LEN _ DEL _ _ CFG _ LEN _ SEC _
нет), а во-вторых, скорректировать формулу для вычисле-
ния угла, поскольку, чем быстрее вращается диск, тем ско- // начальный шаг приращения (должен быть
// по возможности мал)
рее «уплывает» сектор. #deÞne _ CFG _ BGN _ DEL _ 0x2
// конечный шаг
#deÞne _ END _ DEL _ ( _ CFG _ BGN _ DEL _ + _ CFG _ LEN _ DEL _ )
// приращение шага
#deÞne FB(b) (##b = (##b + 1) % _ END _ DEL _ );
// шапка цикла
#deÞne FH(a,b) for (##a= _ END _ SEC _ , ↵
Рисунок 4. Когда угол между секторами X и Y составляет ##b= _ CFG _ BGN _ DEL _ ; ##a > _ CFG _ BGN _ SEC _ ; ↵
~15 град. при переходе на соседний виток, сектор Y ##a-=##b)
сразу же «подлетает» к оптической головке (рисунок слева)
при меньшем значении угла сектор Y успевает уплыть, main(int c, char** v)
и головка вынуждена ждать целый виток {
68
безопасность
Полезный совет
Перед снятием топологии скорость привода рекомендует-
ся уменьшить хотя бы до 16x-24х. Как это сделать, показа-
но в утилите CD.snail.c, исходный текст которой можно бес-
платно скачать с ftp автора.
Защита от анализа
Существует по меньшей мере два способа взлома: ко-
пирование диска специализированными копировщиками
или анализ защитного кода с последующей модификаци-
ей (он же bit hack). Создать некопируемый диск это толь-
ко полдела. Еще необходимо защитить свою программу Рисунок 7. Сравнение топологий дисков «A» и «C»
от анализа.
Обычно анализу противостоят шифровкой кода/дан- некрасивый, но убойный подход, основанный на генерации
ных, однако, это не слишком-то удачное решение, ведь «мусорного кода», внедряемого в защищаемую програм-
перед выполнением программы ее все равно приходится му. Похожая техника используется во многих полиморфных
расшифровывать. Хакеру остается всего лишь дождаться вирусах, из которых можно «выдрать» уже готовые «движ-
этого момента и снять дамп. Можно, конечно, расшифро- ки» (engine). Мусорный код чрезвычайно затрудняет ана-
вывать программу по частям или использовать несколь- лиз, делая его практически невозможным. Допустим, клю-
ко независимых расшифровщиков, но трудоемкость раз- чевая функция программы компилируется в тысячу ма-
работки защиты в этом случае практически не отстает от шинных команд. Исходя из «крейсерской» скорости дизас-
сложности взлома. семблирования 1 команда в секунду, хакер сможет «про-
В последнее время большое распространение получил честь» (только прочесть! не проанализировать!) весь код
70
безопасность
Полезные советы
! положите на ключевой диск файл с заманчивым назва-
нием user_name.key и выполняйте над ним различные
запутанные операции, это слегка умерит прыть хакера
и остановит его на какое-то время;
! вносите на диск несколько принципиально различных
ключевых меток, но проверяйте только часть из них,
а часть – оставьте для последующих версий програм-
мы (или ее обновлений), тогда хакеру придется каждый
Рисунок 8. Виртуальный диск Virtual Clone CD раз проводить утомительные исследования, подолгу за-
в «Моем компьютере» висая над монитором шины, дизассемблером и отлад-
чиком;
! помните, что даже тщательно оттестированная защи-
та в силу некоторых причин может не сработать, «об-
ругав» легального пользователя; поэтому необходимо
использовать по меньшей мере три независимых за-
щитных механизма, основанных на различных харак-
теристиках носителя, и если срабатывают хотя бы два
из них, проверка считается пройденной; в данной ста-
тье мы рассмотрели всего лишь один такой механизм,
остальные – в следующий раз.
КОНТРОЛИРУЕМ И ОГРАНИЧИВАЕМ
СИСТЕМНЫЕ ВЫЗОВЫ
С ПОМОЩЬЮ SYSTRACE
АЛЕКСАНДР БАЙРАК
Наверняка вы не раз задумывались о том, как именно работает та или иная используемая
вами программа. Разобраться помогут исходные текcты программы. Но что делать,
если они недоступны? Как всегда быть в курсе того, что происходит у вас в системе?
S
ystrace – инструмент для ограничения и контроля сис- ли такие инструменты, как ktrace (kernel process tracing)
темных вызовов. Изначально systrace был написан и truss (tracing system call), позволяют нам выступать лишь
для NetBSD, позже был портирован под OpenBSD, в качестве наблюдателей, systrace позволяет нам вмеши-
а в настоящий момент ведутся работы по переносу на Linux, ваться в происходящее.
FreeBSD и OpenDarwin.
Любая программа в процессе свой работы использует Пример использования
системные вызовы. Что такое системный вызов? Его мож- Перейдем к практике. В качестве примера напишем про-
но определить как некую функцию, которая позволяет ва- стую программу:
шей программе обращаться к ядру ОС для выполнения не-
кого действия. В современных версиях UNIX-систем реа- #include <stdio.h>
void proc1();
лизовано около 300 различных системных вызовов. И ес- int main()
72
программирование
{ того, чтобы исключить возможность применения политики
printf("just a message\n");
mkdir(«test»); для файла с таким же именем, но располагающимся в дру-
proc1(); гом месте. Emulation: netbsd показывает, что будет исполь-
}
void proc1() зоваться ABI ОС NetBSD.
{
printf("just a dumb procedure\n"); netbsd-mmap: permit
}
Как видно из названия, системному вызову mmap раз-
Как ясно из исходного текста, наша подопытная про- решено исполняться. Для позволения выполнения систем-
грамма выполняет следующие действия: ного вызова используется действие – permit, для запреще-
! Выводит на экран сообщение. ния deny.
! Создает каталог «test».
netbsd-fsread: filename eq “/etc/ld.so.conf” then permit
! Передает управление процедуре «proc1».
! Процедура proc1 выводит на экран сообщение. Тут мы видим, что системному вызову fsread будет раз-
решено выполниться в том случае, если запрошенный им
Скомпилируем программу: файл будет /etc/ld.so.conf. Стоп, скажет внимательный чи-
татель, системного вызова fsread не существует! И будет
#gcc -o proga proga.c абсолютно прав. По умолчанию в systrace применяется ис-
пользование псевдонимов для системных вызовов. Напри-
На первый взгляд при выполнении нашей программы мер: fsread является псевдонимом для stat, lstat, readlink,
используются два системных вызова: mkdir и write. Хотя ло- access, open. Но при желании режим использования псев-
гично предположить, что, перед тем как «что-то» «куда-то» донимов можно отключить. В дальнейшем комментирова-
записать с помощью write, это самое «куда-то» нужно сна- нии всего файла конфигурации смысла не вижу – все долж-
чала открыть, а после записи закрыть, а значит, задейс- но быть понятно и без этого.
твованы системные вызовы open и close . Также не лише- Что ж, политика для нашей программы создана, да-
но смысла предположение, что используется еще один сис- вайте попробуем ее выполнить под чутким руководством
темный вызов – exit. Итого пять вызовов. Посмотрим, как systrace:
обстоят дела на самом деле:
#systrace -a /home/01mer/labs/systr/proga
#systrace -A /path/to/program/proga
just a message
just a dumb procedure
Ключ -A указывает systrace автоматически создать по-
литику для указанного исполняемого файла. Как мы видим, все функции нашей программы выпол-
Автоматический режим предполагает создание правил нились. Предположим, что логика нашей программы изме-
в режиме «разрешить все». нилась, что будет происходить в этом случае? Давайте для
После выполнения команды в домашнем каталоге поль- примера изменим функцию proc1 в нашей программе. Для
зователя появится подкаталог .systrace, в который будет по- начала мы должны точно знать, что будем менять. Просто
мещен файл c правилами. Рассмотрим его: изменить пару строчек в исходном коде и перекомпилиро-
вать программу, конечно, можно, но я предлагаю более ин-
Policy: /home/01mer/labs/systr/proga, Emulation: netbsd
netbsd-mmap: permit тересный подход.
netbsd-fsread: filename eq “/etc/ld.so.conf” then permit
netbsd-__fstat13: permit
netbsd-close: permit #objdump -d proga > proga.lst
netbsd-munmap: permit
netbsd-fsread: filename eq “/lib/libc.so.12.114.1” then permit
netbsd-__sysctl: permit Программа objdump показывает информацию из бинар-
netbsd-fsread: filename eq “/etc/mallic.conf” then permit
netbsd-break: permit ных/объектных файлов. Ключ -d указывает, что файл нуж-
netbsd-ioctl: permit
netbsd-write: permit
но дисассемблировать. Вывод информации для удобства
netbsd-fswrite: filename eq “/home/01mer/labs/systr/test” then permit произведем в proga.lst
netbsd-exit: permit
В полученном листинге находим нашу процедуру proc1.
Синтаксис правил достаточно прост:
08048833 <proc1>:
8048833: 55 push %ebp
[системный вызов] [условие] [действие] 8048834: 89 e5 mov %esp,%ebp
8048836: 83 ec 08 sub $0x8,%esp
8048839: 83 ec 0c sub $0xc,%esp
Мы видим, что в процессе исполнения нашей программы 804883c: 68 16 89 04 08 push $0x8048916
используется несколько больше системных вызовов, чем 8048841:
8048846:
e8 52
83 c4
fc ff ff
10
call
add
8048498 <init_fallthru+0x2d>
$0x10,%esp
можно было бы предположить с самого начала. 8048849: c9 leave
Рассмотрим полученные правила. 804884a:
804884b:
c3
90
ret
nop
Заключение
Как мы видим, попытка запустить модифицированную Мы рассмотрели простой пример использования systrace.
программу провалилась. Изложенных сведений вам будет достаточно и для созда-
ния более сложных собственных правил для различных про-
Автоматизируем создание правил грамм. Применение политик ограничения системных вызо-
Доверить автоматическое создание правил systrace допус- вов для конкретных программ поможет вам существенно
тимо только в том случае, когда есть уверенность на 99,9% повысить степень защиты ОС в целом.
74
bugtraq
ИСПОЛЬЗУЕМ LLinux
inuxBIOS
BIOS
НА СИСТЕМАХ VIA EPIA-M
АНТОН БОРИСОВ
76
hardware
ростковый» корпус с внешним источником питания Morex
Cubid 3677S. Его габариты предусматривают использование
только slim-компонентов – CD/DVD-привода, HDD-накопите-
ля и FDD-накопителя. К сожалению, от первого и последне-
го компонента пришлось отказаться, зато вместо них уда-
лось поставить HDD 3,5’. Поначалу казалось, что уместить
диск такого форм-фактора в столь тонком корпусе невоз-
можно. Но на практике оказалось иначе. Внешний источник
питания в 62 ватта мощностью подает на внутреннюю пла-
ту корпуса 12 вольт, которые преобразуются в дальнейшем
в +12, +5 вольт. Стоит отметить, что получить 12 вольт мож-
но и от бортовой системы автомобиля. Впрочем, область
применения мини-систем формата mini-ITX заслуживает от-
дельного разговора. Скажу, что именно на базе EPIA пост-
роены некоторые автомобильные системы.
vt1211-isa-6000
Adapter: ISA adapter
Отредактируем файл Config, заменив содержимое стро-
VCore1: +2.31 V (min = +1.79 V, max = +1.89 V) ALARM ки AUTOBOOT_FILE на:
+5V: +4.66 V (min = +4.73 V, max = +5.24 V) ALARM
+12V: +12.14 V (min = +10.77 V, max = +13.15 V) AUTOBOOT _ FILE = "hda3:/boot/vmlinuz ↵
+3.3V: +3.25 V (min = +3.13 V, max = +3.45 V) oot=/dev/hda3 console=tty0 console=ttyS0,115200"
fan1: 3343 RPM (min = 3006 RPM, div = 2) make
fan2: 0 RPM (min = 3006 RPM, div = 2) cp Þlo.elf ~/src/payloads/Þlo.m2.elf
ERROR: Can't get TEMP2 data!
Proc Temp: +44.1C (high = +65C, hyst = +60C)
MB2 Temp: -28.4C (high = +45C, hyst =
vid: +1.850 V (VRM Version 9.1)
+40C)
ELF-образ нашего payload положили в специально от-
веденное место и назвали как filo.m2.elf.
Как видите, некоторые значения с датчиков, отмечен- С сайта LinuxBIOS возьмем обе ветки, и стабильную,
ные подстрокой ALARM, не находятся в допустимых преде- известную под названием V1, и текущую, которая на дан-
лах. Очевидно, что формулы для этих значений, записан- ный момент находится в разработке, версия V2. Как толь-
ные в /etc/sensors.conf, не совсем верны, либо диапазон до- ко изменения для рабочей версии будут завершены и от-
пустимых значений слишком узок. тестированы, она также станет стабильной. Принципиаль-
Предлагаю не рассматривать полученный результат ные отличия между версиями все-таки есть – это наличие
слишком критически, ибо в дальнейших релизах этого про- только во второй версии поддержки ACPI. Изменен синтак-
граммного обеспечения такие неточности будут исправле- сис файла конфигурации. И самое главное, в новой вер-
ны. Приступим к настройке мониторинга температуры жес- сии поменялся каркас построения системного ROM-фай-
ткого диска. ла. Считается, что он стал удобнее для добавления нового
аппаратного обеспечения.
wget http://www.guzu.net/linux/hddtemp-0.3-beta12.tar.bz2
tar xjvf hddtemp-0.3-beta12.tar.bz2
cd hddtemp-0.3-beta12 wget http://snapshop.linuxbios.org/ ↵
./conÞgure --with-db-path=/etc/hddtemp.db ↵ freebios--devel--1.0--base-0.tar.bz2
--preÞx=/usr/local/hddtemp tar xjvf freebios--devel--1.0--base-0.tar.bz2
make && make install cd freebios
78
hardware
Предварительно подготовим VIDEOROM от интегриро- cd ~/src/epia-m/freebios
make
ванного видеоадаптера на плате:
В результате получили файл romimage. Его-то нам и нуж-
su но записать в чип flash-памяти. Для этой цели в директории
dd if=/dev/mem of=vgabios.bin skip=1536 count=128
~/src/freebios/util/flash_and_burn приготовлена утилита за-
Предполагается, что компоновка и компилирование про- писи во flash-память. Соберем ее и посмотрим, какие па-
исходит на EPIA-M-системе. раметры ей необходимы.
Получился файл размером в 64 Кб. Он нам понадобится
в дальнейшем при подготовке системного образа. cd ~/src/freebios/util/ßash _ and _ burn
make
В файле freebios/HOWTO/EPIA хранится инструкция ./ßash _ rom --h
по компоновке LinuxBIOS для EPIA-систем. Воспользуем-
The arguments are:
ся ею. Во-первых, нам потребуется файл конфигурации, в --h
котором указывается для какой системы подготавливает- ./flash_rom: invalid option -- -
usage: ./flash_rom [-rwv] [-c chipname] [-s exclude_start] [-e exclude_end] [file]
ся системный ROM-файл, «полезная нагрузка» (так назы- -r: read flash and save into file
-w: write file into flash (default when file is specified)
ваемая секция payload), параметры для порта RS232 и т. п. -v: verify flash against file
-c: probe only for specified flash chip
Приведу файл, который используется у меня: -s: exclude start position
-e: exclude end postion
If no file is specified, then all that happens is that flash info is dumped
#
# LinuxBIOS conÞg Þle for: VIA epia-m mini-itx
# Необходимо использовать в качестве параметра имя
файла системного ROM. Не забудем переключить с по-
target /home/anthony/epia-m
мощью BIOS Savior нужный нам чип flash-памяти и запус-
# via epia тим с правами суперпользователя программу записи во
mainboard via/epia-m
flash-чип:
# Enable Serial Console for debugging
option SERIAL _ CONSOLE=1 su
#option SERIAL _ POST=1 ./ßash _ rom romimage
option TTYS0 _ BAUD=115200
80
web
АЛЕКСЕЙ МОИСЕЕВ
Уже не один месяц интернет-сообщество и бизнес ожидают новое поколение CMS.
Наконец отдельные идеи, многие из которых революционные, были собраны воедино,
в проекте Habitat 2.0.
C
MS в их текущем виде сущес- лить: S.Builder, Q-Publishing, UMI.CMS, ! В систему изначально заложены
твуют уже довольно-таки дав- ABO.CMS, Bitrix, CimWebCenter, CMS способы упорядочивания компо-
но. Эксперты сходятся во мне- Master, CMS UlterSuite, Content Master, нентов, благодаря чему вы може-
нии, что в ближайшее время долж- MSTL-content, помимо перечисленных, те организовывать объекты пред-
но появиться что-то кардинально но- существует ещё очень много систем ставления (страницы, товары и т.д.)
вое – система, которая возведёт сай- управления. Один из таких продук- в любом порядке (линейный, иерар-
тостроение на качественно более вы- тов – Habitat – разрабатывался мной хический).
сокий уровень. В различных изданиях, в течение длительного времени. Пос- ! Для наполнения шаблонов страниц
преимущественно электронных, не раз ле двух с половиной лет исследования динамической информацией ис-
публиковались статьи, посвящённые CMS мною были сделаны выводы от- пользуются инфоисточники (Data-
несовершенству современных CMS. носительно конструктивных особен- Aware). К инфоисточникам относят-
Там же высказывались предложения ностей, не позволяющих развивать- ся константы (строки, определённые
о том, каковы должны быть CMS но- ся существующим системам в сторо- для всех компонентов), переменные
вого поколения, однако большинство ну usability. Неоднократно проводились (строки, определённые по месту, то
таких предложений уже давно реали- консультации с владельцами сайтов есть для конкретных компонентов) и
зовано (например, модульная структу- на основе Habitat, по теме сервисных сами Data-Aware, которые представ-
ра, редактор HTML-кода в администра- возможностей, однако далеко не всё ляют собой участок PHP-кода в ком-
торской части). можно реализовать на базе сущест- бинации с PIN. Последние необхо-
Подавляющее большинство разра- вующих CMS. димы для связи данных, возвраща-
ботчиков CMS основной акцент дела- емых скриптом Data-Aware, с пере-
ют на пользовательскую (клиентскую) Иное представление CMS менными внутри шаблонов.
часть, а администраторская панель яв- Результатом вышеописанных иссле- ! Среди неотъемлемых частей Hab-
ляется дополнением, позволяющим дований стал проект Habitat 2.0. Он itat 2.0 можно выделить магазин.
более комфортно управлять функция- является развитием большинства су- Его необходимость объясняется
ми системы. Одно из главных отличий ществующих CMS. Среди основных тем фактом, что в результате роста
предлагаемой вам сегодня системы нововведений, которые вы не увиди- числа российских пользователей
состоит в том, что ее основной частью те в других системах, имеет смысл Интернет с каждым днём увеличи-
является администраторская панель, а особо выделить объектно-ориенти- вается число Интернет-представи-
клиентская часть состоит из визуали- рованный метод построения шабло- тельств организаций, которые счи-
затора, отображающего скомпилиро- нов страниц. тают необходимым обеспечить воз-
ванные страницы пользователю. Д ля а дминистратора системы можность комфортного для пользо-
HTML-страница представляется в виде вателей заказа услуг компании.
Размышляем о новых дерева компонентов, каждый из кото-
возможностях CMS рых имеет свойства, позволяющие из- Разработка сайта отныне осущест-
Как правило, наиболее качествен- менить вид графического представле- вляется в новом ключе – веб-програм-
ными CMS являются платные систе- ния компонента. Система не опериру- мист разрабатывает компоненты, от-
мы. При покупке такой CMS пользо- ет понятиями HTML, CSS, JavaScript. То вечает за то, что они реализуют свои
ватель получает поддержку, а так- есть уровень абстрагирования на поря- функции, а затем собирает из этих ком-
же в большинстве случаев своевре- док выше, чем у ближайших аналогов. понентов шаблоны страниц (т.н. типо-
менное решение появляющихся воп- Компонент есть инициализированный вые страницы). Все это делается ради
росов при работе с системой. Сре- класс, который закачивается в систему нескольких «священных коров» про-
ди платных CMS следует особо выде- в формате XML-компонента. граммирования:
82
web
! установление четкой и прозрачной Aware, Переменные, Константы). Эту ких других данных. На этапе компонов-
взаимосвязи между содержанием операцию выполняет компилятор-сум- ки страниц компоненту указывается
(данные из БД) и формой (визуали- матор, который является частью поль- источник данных, откуда он и узнает то,
зация данных); зовательского визуализатора. что ему необходимо отображать.
! перенос понятия «сопровождения Для того чтобы полностью перело- И в-третьих, будем отличать «класс
сайта» из плоскости программиро- жить всю работу, над внешним видом компонента classMyComponent» и «ком-
вания в плоскость управления и со- сайта, на плечи системы (а точнее, её понент MyComponent класса classMy-
ответственно удешевление сопро- разработчика) помимо свойств (в кото- Component». Первый никогда не ис-
вождения; рых задаются параметры каждого ком- полняется сам по себе – это описание
! повторное использование кода понента, такие, как обрамление, вы- того, что должно быть передано движ-
(компоненты – вещь четкая и от- равнивание, положение и т.п.), у ком- ку и включено в цикл обработки движ-
делимая от всего остального); понента есть события. Определяя со- ка. То есть, говоря простым языком,
! повышение надежности серверной бытия для конкретных компонентов, classMyComponent – это заготовка, ее
части ПО за счет структурной чет- можно добавить динамику для стра- можно экспортировать из одного про-
кости реализации. ницы сайта (например, подсветка руб- екта и импортировать в другой, пусть и
рикаторов, элементов меню и т.п.). Для для похожего, но уже другого примене-
Шаблоны страниц могут состоять этого планируется: ния. По аналогии с языками высокого
из компонентов (элементарные шаб- ! Написание Data-Aware модулей, ре- уровня classMyComponent – это тип объ-
лоны) и других шаблонов (т.н. «типо- шающих все возможные вопросы, екта или его класс, а сам объект этого
вые страницы»), собранные на осно- которые только могут появиться у типа нужно еще породить и запустить.
ве компонентов. Под компонентом под- пользователей. Программист для нашего движка сна-
разумевается логически выделенный ! JavaScript-описание всех определён- чала создает компоненты, а потом уже
дизайнером и обычно повторяющий- ных событий в HTML, для того чтобы пытается правильно их применить.
ся элемент дизайна, несущий опреде- дать администратору максимально Работа с типами компонентов
ленную функциональность, например возможную гибкость при редакти- (классами), а также инициированными
отображение списка новостей. Рубри- ровании внешнего вида страниц. классами (будем их называть просто
каторы, меню, содержательные час- ! Создание множества классов, для «компоненты») нужна для того, чтобы
ти страниц и т. д. – все это компонен- того чтобы полностью исключить компоненты одного и того же класса
ты, на основе которых путем комби- необходимость редактирования ис- можно было использовать множество
нирования, взаимного их расположе- ходного кода HTML или CSS. раз для схожих и одновременно разных
ния можно построить шаблоны стра- целей. Точно так же, как программисты
ниц. Это обеспечит нам легкость и гиб- При работе с константами, пере- Delphi/VC++ используют классы, опи-
кость изменения внешнего вида. На- менными и DataAware всегда есть воз- сывающие в памяти некоторую струк-
пример, можно задавать, какие руб- можность просмотреть названия ком- туру данных. В данном же случае до-
рикаторы используются в различных понентов, где используется текущий стигается некоторая степень универ-
шаблонах, где используются колонти- источник данных. Для перехода к ре- сальности, позволяющая компоненты
тулы, а где нет, и т. д. дактированию компонента, использу- одного типа представлять в различном
Для реализации большей части но- ющего текущий источник, достаточно виде: форма, цвет, обрамление…
вовведений потребовалось более ак- двойного клика мышкой. И как следствие этого приема ком-
тивное использование БД, чем в обыч- понент перестает быть привязанным к
ных CMS, однако требования у систе- Компоненты конкретной реализации, он работает
мы не выходят за рамки возможностей как строительный как черный ящик для того, кто его ис-
дешёвых хостингов: PHP 5, MySQL 4, материал пользует. При создании шаблона стра-
20 Мб свободного места (обычно самое Компонент «движка» представляет со- ницы у разработчика есть свойства, со-
минимальное, что можно купить). бой строительный материал для стра- бытия компонента, заявленная функ-
ниц сайта. Он обладает рядом особен- циональность, всё остальное – дело
Ядро Habitat 2.0 ностей, делающих компоненты более самого компонента.
Важнейшую часть ядра системы со- универсальным средством.
ставляет компилятор-сборщик, который Во-первых, он визуальный, т.е. за- Интерфейс
на входе получает ссылку в корень де- нимает определенную территорию на Внешнее представление самой адми-
рева шаблона (который надо собрать), странице. Это накладывает ограниче- нистраторской панели спроектиро-
а на выходе отдаёт готовый шаблон для ние на свободу создателя компонен- вано таким образом, чтобы вы могли
страниц с расставленными «вкраплени- та, который должен гарантировать, что «добраться» до любого «уголка» па-
ями». Расстановка указанных «вкрапле- компонент не будет рисовать за преде- нели за минимально возможное вре-
ний» (шаблоновых переменных) являет- лами самого себя. мя. Это обеспечено за счёт иерархи-
ся наиболее интеллектуальной частью Во-вторых, компонент всегда по- ческой структуры всей администра-
компилятора. На место таких перемен- лучает данные извне, т.е. сам не уме- торской панели, то есть дерева в от-
ных вставляется информация, возвра- ет запрашивать данные из базы, – он дельном фрейме. Каждая ветка де-
щаемая от источников данных (Data- суть одеяние, способ отображения не- рева догружается по мере необходи-
84
bugtraq
IT В СФЕРЕ РЕСТОРАННО-ГОСТИНИЧНОГО
БИЗНЕСА
КИРИЛЛ ТИХОНОВ
Современный гостиничный комплекс – очень сложная система, обычно включающая в себя
собственно гостиницу, ресторан, бары, развлекательные центры и т. п. Конечно, если вам
приходится администрировать придорожный мотель на 5 номеров, то хватит и таблички
в Excel. В остальных случаях без специализированной системы управления не обойтись.
С
егодня мы рассмотрим програм- ших кортов, игрок в боулинг – лучшие меров, их типе, калькуляция по требо-
мные и аппаратные продукты, предложения от ведущих боулинг-клу- ванию, лист ожидания, расширенные
позволяющие эффективно уп- бов города. возможности тарифной политики – все
равлять современными гостиничными В Fidelio V8 все данные по клиенту эти функции значительно ускоряют ра-
комплексами – Fidelio и Opera, и рес- объединяются в профайлы, хранящие- боту всего отдела.
торанами – Micros, входящими в гости- ся в единой центральной базе данных, Система позволяет в считанные
ничный комплекс. причем в каждом клиентском профай- минуты заселить и выписать гостя, без
ле можно заводить неограниченное необходимости оформления множест-
Управление гостиницами число контактных данных гостя, отде- ва бумаг, что особенно важно для гос-
Современные темпы развития гости- льно вносить такую маркетинговую ин- тей, ценящих свое время. Регистра-
ничного бизнеса предъявляют высочай- формацию, как степень важности кли- ция может производиться как по бро-
шие требования к автоматизирован- ента, вид его деятельности, долю ком- ни, так и без нее, возможен специаль-
ным системам управления для пред- пании на рынке, информацию по кре- ный «быстрый» вариант оформления
приятий индустрии гостеприимства. дитным картам гостя. Большим пре- выписки для групп.
Fidelio V8 – система управления имуществом является то, что система В Fidelio V8 доступен весь необ-
отелем, построенная на СУБД Oracle, позволяет не удалять профайлы, а де- ходимый набор кассирских функций,
способна решать задачи от продаж, лать их неактивными в случае необхо- включая специальные гостевые фун-
бронирования, приёма и размещения димости, при этом они могут быть вос- кции, такие как депозитирование, уп-
гостей, организации конференций и становлены в любой момент. равление валютами, платежами и вы-
банкетов и управления связями с кли- Одной из основных статей доходов ставлением счетов.
ентами до предоставления полных отеля является деятельность отдела Хранение счетов выписанных гос-
данных для финансового контроля и организации конференций и банкетов. тей для последующего восстановле-
управленческого учёта деятельности Модуль CCM позволяет быстро про- ния данных при необходимости, вы-
предприятия. верить доступность и текущую актив- бор группы для формирования еди-
Модуль управления связями с кли- ность по существующим броням, с лег- ного счета, ежедневное обновление
ентами (CRM) позволяет иметь полную костью вводить планируемые мероп- курса валют, возможность одновре-
картину всех пожеланий и предпочте- риятия и эффективно ими управлять. менного открытия и изменения сче-
ний гостей и соответственно оказы- Также одним из преимуществ данно- тов со сложной структурой в одно и то
вать высокий уровень сервиса. Инди- го модуля является возможность одно- же время из различных окон, ведение
видуальность подхода к клиенту за- временной брони как конкретного ме- журнала кассирских операций и мно-
ключается в предоставлении каждо- роприятия, так и номеров в отеле. гие другие особенности значительно
му гостю именно той информации, в Работа любого отеля начинается со упростят не только стандартные кас-
которой он нуждается. Например, фи- службы приема и размещения, кото- сирские операции, но и позволяют сде-
нансовый менеджер, остановившийся рая является центральным и важней- лать этот модуль интегрированной сис-
в вашем отеле, найдет в своем номе- шим звеном системы Fidelio. Создание темой с возможностью полного контро-
ре последний выпуск финансово-ана- и обновление броней, разделение де- ля за движением денежных средств в
литического журнала, любитель игры тей по возрастным категориям, предо- гостинице.
в большой теннис – адреса ближай- ставление информации о наличии но- C помощью Crystal Reports Fidelio
86
бизнес-решения в IT
позволяет создавать большое число равлять задачами; проверять статус мимо большого числа типовых отчетов
разнообразных отчетов (как стандар- номера; управлять взаимоотношени- есть возможность создавать собствен-
тных, так и нестандартных), которые ями с клиентами; составлять график ные формы статистики.
могут быть предварительно просмот- мероприятий. Система Micros 3700 работает на
рены или распечатаны. Все отчеты Система может работать как в ре- рабочих станциях Micros – прочных,
могут передаваться в формате Word, жиме клиент-серверного приложения, плоских, с сенсорными экранами, раз-
Excel, факсимильных и электронных так и в режиме тонкого клиента через работанных специально для исполь-
сообщений. браузер. Серверная часть Opera может зования в жёстких условиях. Удобный
работать на базе Microsoft Windows NT/ экран дает возможность сотрудникам
OPERA Enterprise Solution 2000, AIX и Sun Solaris. видеть полную картину расположения
В отличие от традиционных систем для Существует возможность осущест- столиков в ресторане в графическом
гостиниц, OPERA Enterprise Solution влять бронирование номеров клиента- формате. Micros 3700 предлагает са-
представляет собой самое полнофун- ми непосредственно с веб-сайта. мые совершенные функции POS, та-
кциональное на сегодняшний день Система OPERA поддерживает бо- кие как TouchAdvantage – для ускоре-
решение управления, предназначен- лее 350 интерфейсов, включая интер- ния процедуры разделения чека, фун-
ное как для независимых отелей, так фейс с системой управления ресто- кций перемещения и отмены, а также
и для гостиничных сетей; как для не- ранами, телефонными системами и мощные функции для управления рес-
больших отелей с ограниченным набо- системами тарификации телефонных тораном – сопровождающие и расши-
ром услуг, так и для шикарных 5-звез- звонков и Интернет-услуг, системой ав- ренные отчёты. Поддерживает стан-
дочных гостиниц. томатических минибаров, системой уп- дартную базу обмена данными Sybase
Система состоит из модулей, кото- равления счетами клиентов, система- SQL Anywhere.
рые с легкостью могут быть настрое- ми платного телевидения, системами Micros 8700 позволяет одновремен-
ны и добавлены в зависимости от по- электронных замков, системой авто- но вести управление большим числом
желаний конкретного отеля. Она вклю- ризации кредитных карт, бухгалтерс- точек продаж, которые могут сущест-
чает в себя: кими системами. венно отличаться друг от друга цена-
! систему автоматизации слу ж- ми, ассортиментом и условиями ре-
бы приема и размещения гостей Управление ресторанами ализации. Система функционирует
(Property Management System); Основой системы управления ресто- на разработанном Micros оборудова-
! систему автоматизации отдела ранами Micros являются рабочие стан- нии, устойчивом к попаданию жидкос-
продаж и маркетинга (Sales and ции – терминалы с сенсорным экра- ти, каплям масла и другим факторам
Catering); ном, которые устанавливаются в точ- эксплуатации оборудования на кух-
! систему управления качеством об- ках продаж (POS) – в местах, где вво- не. Помимо встроенных модулей уче-
служивания (Quality Management дится заказ и/или осуществляется оп- та продаж, себестоимости, регистра-
System); лата. Затем заказ автоматически пос- ции рабочего времени сотрудников и
! систему оптимизации прибыли тупает на кухню и распечатывается на многих других необходимых функций,
(Revenue Management); кухонных принтерах. Также для распе- Micros 8700 обладает открытой архи-
! систему управления мероприятия- чатки счетов гостей в кафе, фаст-фу- тектурой с другими системами, что
ми (OPERA Activity Scheduler); дах, в барах могут устанавливаться ру- позволяет оборудованию и програм-
! систему централизованного бро- лонные принтеры, которые дополни- мному обеспечению гибко интегриро-
нирования (OPERA Reservation тельно используются для печати спе- вать периферийные стандарты индус-
System); циализированных отчетов. Для рас- трии и модулей программного обеспе-
! модуль бронирования через Интер- печатки счетов гостей на фирменных чения. Micros 8700 работает на базе
нет (Web-Self Service); бланках в точках продаж устанавлива- процессора Intel и разработан в опе-
! централизованную информацион- ется принтер гостевых чеков. рационной среде SCO UNIX, облада-
ную систему по клиентам (Customer Доступ в системы обеспечивается ет высокой степенью надежности со-
Information System). с помощью персонального идентифи- хранения всех данных, обеспечивает
кационного кода или магнитной кар- стабильный и экономически безопас-
С помощью мобильного решения точки, что позволяет разграничить до- ный бизнес. Система внесена в Госу-
OPERA-Palm, работающего на кар- ступ к функциям систем в зависимости дарственный реестр контрольно-кас-
манных компьютерах, объединенных от должности сотрудника. Micros обес- совых машин, используемых на тер-
в беспроводную сеть, пользователи печивает максимальную защиту вве- ритории Российской Федерации и ря-
имеют доступ ко всей информации в денной информации и предотвраща- да стран СНГ, и может использовать-
базе данных в режиме реального вре- ет случаи ошибочного или некоррек- ся в фискальном режиме.
мени. OPERAPalm позволяет персо- тного использования данных любыми В заключение хочу сказать, что
налу осуществлять основные опера- пользователями. на этих системах построено управ-
ции, находясь практически в любой Все данные о деятельности ресто- ление большого количества широко
точке отеля и не будучи привязанны- рана в любой момент времени могут известных гостиничных комплексов
ми к одному рабочему месту: удален- быть представлены в виде отчетов, как не только в Москве и России, но и во
но поселять и выписывать гостей; уп- на экране, так и в бумажном виде. По- всем мире.
АДМИНСКИЕ СКАЗКИ
16 BIT EDITION
АЛЕКСЕЙ БАРАБАНОВ
Совершенно выдуманные истории, рассказанные в порядке двоичного сдвига,
без какой-нибудь видимой цели или морали, и даже не ко сну.
88
сказки
лову Админа и пригласили в Контору Эксперта. Тот, конеч- а Офисменеджер своим видом напоминает о его скрытой
но, сразу нашел причину всех проблем. Админ был с позо- слабости. А каждый Офисменеджер подозревает, что Ад-
ром изгнан с работы. И хотя он был неграмотным, но од- мин норовит стянуть с работы компьютер и раздражается
новременно и весьма предприимчивым, тот Админ. И по- от того, что нет у него технических знаний, чтобы прокон-
этому вскоре нашел другую работу. Однако и там повто- тролировать Админа.
рилась прежняя история, и в той локальной сети появил-
ся вездесущий глюк. Снова сменил работу Админ, и глюк 32. Сказка о волшебном
сменил сеть следом за ним. Так и повелось. Но молва пароле
бежит впереди Админа. И перестали его брать на рабо- В тридевятой Конторе, в тридеся-
ту все, кто знает о нем. И дали ему другое имя – Ламер. том Филиале работал системный
Так и ходят с тех пор вместе Ламер и его спутник – вез- Администратор. И все у него в ру-
десущий глюк. ках спорилось. За что ни возьмет-
ся, не успеешь оглянуться – готово. Ничего у него не ло-
8. Сказка малось. Аптайм серверов рос день ото дня. И позавидо-
об Админе-Дурачке вал ему Офисменеджер того филиала. Стал он нашепты-
Жил-был Администратор. Да такой вать Начальнику, что недоброе задумал Админ, мол, хо-
был неумеха: за что ни возьмется, все чет он хорошей работой усыпить бдительность, а сам за-
завалит. Ничего у него не получалось. думал уволиться. Поручил Начальник своему Офисме-
Со всех работ его гнали. Даже про- неджеру разузнать секрет Админа. И стал Офисменед-
звание ему придумали – Дурачок. Совсем отчаялся Ад- жер выпытывать у Администратора, расскажи, мол, в чем
мин-Дурачок. Хотел уж пойти работать курьером. Но был твой секрет. Но не соглашался Администратор на угово-
у него друг Хакер, и подсказал ему Хакер адрес сетево- ры, был тверд и деловит. Тогда задумал недруг коварс-
го форума заветного. Сходил на тот форум Админ и по- тво. Знал он за Админом слабость – любовь к пиву. При-
лучил там совет скачать с далекого-предалекого Фтп не- нес он Админу пива любимого. Расслабился Админист-
ведомую операционную систему. Так и сделал Дурачок. ратор, размечтался. Показалось ему, что друзья кругом.
Скачал он эту систему и запустил у себя на работе. И, о И рассказал он тогда, почему так у него все хорошо вы-
чудо, все заработало. Стал он эту систему ставить везде. ходит. Знал он волшебный рутовый пароль! И поделился
Никто этой системы не знает и не понимает. Знает толь- он этим знанием с Офисменеджером. А наутро, когда пи-
ко он. И стали его везде звать. Стали уважать. Прозви- во кончилось и запах солодовый выветрился, пришел Ад-
ще его обидное забыли. Стали звать его не Дурачком, мин на работу и узнал, что место его уже занято. Что вос-
а Линуксоидом. Да не долго продолжалось его счастье. пользовался его волшебным паролем Офисменеджер да
Другие администраторы тоже освоили эту операционную и взял на работу Ламера. И теперь Ламер выполняет всю
систему, принялись ее везде внедрять. И тогда смогли за- работу вместо Админа. Так остался Админ из-за своего
казчики сравнить работу настоящих администраторов и длинного языка да любви к пиву без работы! А Ламер не-
Линуксоида. И оказалось, что Линуксоид все тот же Ад- долго проработал вместо Админа. Выгнали его вместе
мин-Дурачок. с Офисменеджером. Оказалось, что знание волшебного
рутового пароля недостаточно, чтобы всю работу Адми-
16. Сказка о персональном нистратора выполнять. Хотя болтливого Админа на рабо-
компьютере Админа, ту обратно не приняли.
или Как поссорились Админ
и Офисменеджер 64. Сказка о тщеславном
Жил да был один Админ. Любил он свою Начальнике и трех
работу и больше всего компьютеры. И за- Сертификатах
хотелось ему иметь компьютер не толь- За далекими сетевыми рутерами, за
ко на работе, но и дома. Компьютеры к тому времени ста- километрами оптоволоконного кабе-
ли вполне компактными, так что желание его ограничива- ля, в одном далеком Офисе работал
лось лишь стоимостью желаемого. Накопил он денег на Админ. Был руководителем того Офиса тщеславный На-
XT и купил. А на работе уже появились AT. Он снова при- чальник. Не устраивало его то, что Админ просто выпол-
нялся копить и купил AT. А на работе уже i386. Купил он нял всю работу. Хотел Начальник иметь возможность пох-
i386, а на работе i486dx2-66 и так далее. Задумался Ад- валиться перед другими начальниками. И подсказал ему
мин, это сколько денег надо, чтобы иметь всегда такой же подхалим Офисменеджер, что в иностранных офисах, рас-
компьютер, как и на работе ? Понял Админ, что нет кон- положенных за многими хопами от их Офиса, водятся дива-
ца этой прогрессии. И придумал простой план. Решил он, дивные Сертификаты квалификационные! И поручил На-
что надо работе немного поделиться с ним компьютера- чальник Админу во что бы то ни стало добыть такой сер-
ми. Так и сделал. Но Офисменеджер обнаружил пропажу. тификат. Иначе, сказал он, уволит Админа по несоответс-
Админа не уволили, так как был он способным и нужным твию! Делать нечего, отправился Админ в путь в далекую
работником. Но компьютер ему пришлось вернуть. С тех сеть Оракл. Вернулся оттуда с Сертификатом по Оракл.
пор поссорились Админ с Офисменеджером. Каждый Ад- Но не унимается Начальник, и пуще прежнего науськивает
мин борется с желанием утащить с работы компьютер, его Офисменеджер. Посылают они Админа в другую даль-
90
сказки
Кончилась работа – дома уют и внимание. Устал от внима- И с тех пор нет большего кошмара для самых мужествен-
ния – включил компьютер и снова как на работе. Да не ус- ных Админов, как отключение электричества!
троило такое жену. Её ведь нельзя на время неиспользова-
ния выключить. Бросила она Админа. Долго Админ решал 16384. Сказка
эту нетехнологическую проблему. Сделал правильные вы- об отпуске Админа
воды, нашел новую жену и повел себя так, что больше она Однажды в далекую-предалекую
его не бросала. Но с тех пор у всех женщин осталось на- Контору, где работал Админ, при-
стороженное отношение к компьютерам. шло лето. И пользователи стали
уходить в отпуска. Работы стало
4096. Сказка о настырном меньше. И задумался Админ, а что если и ему уйти в от-
Пользователе пуск, чтобы отдохнуть. Стал прикидывать и так, и эдак. Что-
Однажды в Контору пришел работать бы ничего не сломалось, чтобы ничего не отказало, чтобы
настырный Пользователь. Захотелось ничего не случилось. Пока планировал, лето и кончилось.
ему показать, что понимает он много На другой год снова наступило лето. Теперь у Админа все
в сетевых технологиях. Думал он тем было согласовано технологически, и он сразу обратился к
самым сделать так, чтобы его заметил Начальник. Подго- Офисменеджеру с просьбой об отпуске. Но теперь стал при-
товил для него Админ рабочее место, как всем и как всег- кидывать Офисменеджер. То одно его не устроит, то дру-
да делал. А тому все не хорошо. Претензии предъявляет. гое. Админ все переделывает и согласовывает. И вот уже
Говорит, мол, не так надо делать. Раньше, мол, в другой осталось последнее согласование, как Офисменеджер сам
конторе все делалось иначе и лучше. Встретили его сло- ушел в отпуск. И снова Админ остался без отдыха. Только
ва поддержку у Офисменеджера. Тот уже давно невзлю- на третий год смог Админ вовремя уйти в заслуженный от-
бил Админа. Но Администратор им попался непростой. пуск. Так и повелось с того времени: Админ работает мень-
Стал он все делать так, как они ему скажут. И все сделан- ше всех, но и отдыхает реже всех.
ное описывать в отчетах. Скажут так, сделает так. Скажут
переделать эдак, переделает, не спросив причины. И вот 32768. Сказка
пришло время подводить итоги работы всей Конторы. Ад- об Админе-аутсорсере,
мин предъявил все свои отчеты и показал, что все время или Об Абсолютном
был занят. Офисменеджер ничего не показал, как обыч- Админе
но. А вот настырный пользователь, как оказалось, все это Далеко от этих мест за много-много
время был занят настройкой своего рабочего места, а не хопов работал один Админ. Был он
той работой, что ему надо делать. Понял это Начальник. необычайно способным. Все делал быстрее и лучше ос-
Выгнал он настырного Пользователя, а Офисменеджеру тальных. Особенно хорошо получалось у него удаленное
запретил встревать в технологические споры. И все ос- администрирование. Можно даже сказать, что он все де-
тальные пользователи этой Конторы сделали соответс- лал через линии связи. И это будет верно, так как был этот
твующие выводы. Админ аутсорсером. Обслуживал он несколько контор. Все
его клиенты были довольны его работой. Лишь изредка он
8192. Сказка об админском посещал эти конторы, так как сервера ломаются нечасто, а
кошмаре зарплату можно получать и на банковский счет. Но со вре-
Жил да был самоуверенный Админ. Он менем персонал контор менялся, и все меньше пользова-
не без оснований был такой самоуверен- телей знало Админа-аутсорсера в лицо. Пользователям ка-
ный. Он все держал под контролем. У не- залось, что по электронной почте им отвечает робот. Что
го все работало как надо. И уже давно. новые программы, которые они обнаруживали, придя ут-
И стало ему казаться, что все работает только благодаря ром на работу, ставятся сами собой. Что их рабочие стан-
тому, что он такой хороший. Что во всем лишь его личная ции не ломаются никогда. И что то оборудование, которое
заслуга. Возгордился Админ этим. Стал направо и налево Админ заказывал с доставкой в эти конторы, привозят пос-
всем хвалиться да ручаться, что пока он сетью управляет, тавщики по своей инициативе. И настал такой день, когда,
то и не будет никаких проблем. И сам настолько в это уве- посетив одну из обслуживаемых контор, был Админ задер-
ровал, что когда в Конторе временно выключили электро- жан на проходной, и никто, представьте себе – никто, не
питание и начали отключаться компьютеры, то осознание признал в нем сотрудника этой конторы. Опечалился Ад-
собственного бессилия стало для него ужасным потрясе- мин и поспешил в другую контору. Но и там повторилась та
нием. Он с потерянным видом сидел среди жалобно вере- же история. И в третьей тоже. И во всех остальных. Очень
щащих упсов, слушал, как один за другим, снижая оборо- был Админ огорчен. Решил он более не посещать эти кон-
ты, останавливаются винчестеры и кулеры, и его слезы ка- торы вообще. И далее не переставал грустить об утрачен-
пали на консольную клавиатуру. Потом, когда снова вклю- ном человеческом присутствии. Лишь то скрашивало его
чили электричество, Админ, ничего никому не объяснив, печаль, что зарплата от контор приходила в банк регуляр-
уволился из Конторы навсегда и даже сменил ник и элек- но, как и прежде.
тронную почту от столь сильного пережитого им стресса. Error: переполнение регистра. Авост1!
1
Примечание: Авост – сокращение от «аварийный останов».
94
подписка на II полугодие 2005
Российская Федерация ! Казахстан – по каталогу «Российская Пресса» через
! Подписной индекс: 81655 ОАО «Казпочта» и ЗАО «Евразия пресс»
Каталог агентства «Роспечать» ! Беларусь – по каталогу изданий стран СНГ через РГО
! Подписной индекс: 87836 «Белпочта» (220050, г.Минск, пр-т Ф.Скорины, 10)
Объединенный каталог «Пресса России» ! Узбекистан – по каталогу «Davriy nashrlar» российские
Адресный каталог «Подписка за рабочим столом» издания через агентство по распространению печати
Адресный каталог «Библиотечный каталог» «Davriy nashrlar» (7000029, Ташкент, пл.Мустакиллик,
! Альтернативные подписные агентства: 5/3, офис 33)
Агентство «Интер-Почта» (095) 500-00-60, курьерская ! Армения – по списку номенклатуры «АРЗИ» через ГЗАО
доставка по Москве «Армпечать» (375005, г.Ереван, пл.Сасунци Давида, д.2)
Агентство «Вся Пресса» (095) 787-34-47 и ЗАО «Контакт-Мамул» (375002, г. Ереван, ул.Сарьяна,
Агентство «Курьер-Прессервис» 22)
Агентство «ООО Урал-Пресс» (343) 375-62-74 ! Грузия – по списку номенклатуры «АРЗИ» через АО
! Подписка On-line «Сакпресса» ( 380019, г.Тбилиси, ул.Хошараульская, 29) и
http://www.arzy.ru АО «Мацне» (380060, г.Тбилиси, пр-т Гамсахурдия, 42)
http://www.gazety.ru ! Молдавия – по каталогу через ГП «Пошта Молдавей»
http://www.presscafe.ru (МД-2012, г.Кишинев, бул.Штефан чел Маре, 134)
по списку через ГУП «Почта Приднестровья» (МD-33-
СНГ 00, г.Тирасполь, ул.Ленина, 17)
В странах СНГ подписка принимается в почтовых отделе- по прайслисту через ООО Агентство «Editil Periodice»
ниях по национальным каталогам или по списку номен- (2012, г.Кишинев, бул. Штефан чел Маре, 134)
клатуры АРЗИ: ! Подписка для Украины:
! Азербайджан – по объединенному каталогу российских Киевский главпочтамп
изданий через предприятие по распространению печа- Подписное агентство «KSS»
ти «Гасид» (370102, г. Баку, ул. Джавадхана, 21) Телефон/факс (044)464-0220
Подписные
индексы:
81655
по каталогу
агентства
«Роспечать»
87836
по каталогу
агентства
«Пресса
России»
РЕДАКЦИЯ
ЧИТАЙТЕ
Исполнительный директор
Владимир Положевец
В СЛЕДУЮЩЕМ
Ответственный секретарь
Наталья Хвостова
sekretar@samag.ru
НОМЕРЕ:
Технический редактор
Владимир Лукин
Редакторы Ремонтируем трализованное управление» и «рабо-
Андрей Бешков и восстанавливаем чая группа» являются взаимоисключа-
Алексей Барабанов жесткие диски ющими. Именно в этот момент систем-
Рашид Ачилов Ценность обрабатываемой информа- ному администратору приходится при-
ции с каждым годом неуклонно рас- нимать решение о переходе к домен-
РЕКЛАМНАЯ СЛУЖБА тет, а надежность жестких дисков, на- ной структуре.
тел./факс: (095) 928-8253 против, стремительно падает. Но да- С какими трудностями придется
Константин Меделян же после физического выхода жест- столкнуться в первую очередь? Что
reсlama@samag.ru кого диска из строя в 90% случаев ин- необходимо предусмотреть заранее,
формацию можно восстановить! За- чтобы процесс перехода прошел без
Верстка и оформление частую даже без специального обору- сучка и задоринки?
maker_up@samag.ru дования! Речь пойдет об аппаратных В данной статье я попытаюсь обоб-
Дизайн обложки отказах (дефектах поверхности, вы- щить свой опыт подобных внедре-
Николай Петрочук ходе электроники из строя), также об- ний, чтобы заранее облегчить вашу
судим проблемы выбора накопителя: задачу.
По вопросам распространения сравним статистику отказов для раз-
обращайтесь по телефону: ных моделей и производителей и срав- Загрузочный Flash-диск
(095) 928-8253 (доб. 120) ним легкость ремонта. с DOS и FreeBSD
Вам удалось уговорить руководство
107045, г. Москва, Домены закупить новый сервер, и вот он, кра-
Ананьевский переулок, дом 4/2 стр. 1 Windows 2000/2003 – савец, стоит рядом, сверкая ручка-
тел./факс: (095) 928-8253 отказываемся от рабочей ми 19-дюймового корпуса... Одна про-
Сайт журнала: www.samag.ru группы блема – как поставить на него опе-
Очень часто наблюдается тенденция рационную систему? Дисковода гиб-
РУКОВОДИТЕЛЬ ПРОЕКТА быстрого роста локальных сетей не- ких дисков в нем нет, CD-ROM тоже...
Петр Положевец больших компаний. Сначала это два- Можно было бы, конечно, открыть его
УЧРЕДИТЕЛИ три компьютера для бухгалтерии, за- и воткнуть CD-ROM на время уста-
Владимир Положевец тем еще по одному для директора, его новки... А если придется восстанав-
Александр Михалев заместителя, секретаря, нескольких ливать систему? Вынимать из стой-
ИЗДАТЕЛЬ менеджеров и т.д. Через какое-то вре- ки? Так только за то время, пока бу-
ЗАО «Издательский дом мя их количество опять увеличивает- дешь вынимать, весь телефон обор-
«Учительская газета» ся, так как штат сотрудников расширя- вут. Если загрузиться с USB Flash-дис-
ется. Однако все эти компьютеры яв- ка? Его создавать надо... Впрочем, ни-
Отпечатано типографией ляются членами рабочей группы, в ко- чего сложного в этом нет, мы расска-
ГП «Московская Типография №13» торой каждый участник равноправен. жем вам, как очень просто создать за-
Тираж 8400 экз. Администрировать такую сеть стано- грузочный Flash-диск с разделами DOS
вится неудобно, так как понятие «цен- и FreeBSD.
Журнал зарегистрирован
в Министерстве РФ по делам печати, Уважаемые читатели!
телерадиовещания и средств массо-
вых коммуникаций (свидетельство Спешите оформить подписку
ПИ № 77-12542 от 24 апреля 2002 г.) на первое полугодие 2006 года!
За содержание статьи ответствен- Приобрести новые и старые номера журнала
ность несет автор. За содержание вы можете через интернет-магазины LinuxCenter.ru и Allsoft.ru.
рекламного обьявления ответствен-
ность несет рекламодатель. Все пра-
ва на опубликованные материалы за-
щищены.
Доставка почтой в любую точку России.
96