Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Сможет ли 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-адресом компью-
те программы. тера, с которого пользователь подключается к прокси-