Содержание


Communigate

Часть 5. Интеграция Communigate с антивирусными программами и спамфильтрами

Comments

Серия контента:

Этот контент является частью # из серии # статей: Communigate

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Communigate

Следите за выходом новых статей этой серии.

В первой, второй, третьей и четвертой частях были рассмотрены вопросы общей организации и назначения программного комплекса Communigate.

Кроме того, были изучены вопросы установки и базовой настройки Communigate, достаточные для ввода его в эксплуатацию

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

Сканеры – ретрансляторы Communigate

Рассмотрим возможности Communigate по использованию специальных программ – внешних фильтров, применяемых для сканирования сообщений. Эта возможность используется для реализации защиты от вирусов, спама и для фильтрации содержимого почтовых сообщений. На основе этих действий принимается решение относительно «злонамеренности» отдельных сообщений. После принятия решения, как правило, следует действие в отношении почтового сообщения. Оно или обрабатывается как легитимное, или уничтожается, как содержащее спам или вредоносный код. Фильтры CommuniGate Pro являются более надёжным решением, чем отдельные "почтовые сканеры" для SMTP. Отдельные сканеры - ретрансляторы SMTP - обычно обладают только базовыми функциями работы с SMTP протоколом. Так как все SMTP соединения должны проходить через эти ретрансляторы, а не через SMTP модуль CommuniGate Pro, то расширенные функциональные возможности SMTP модуля CommuniGate Pro не используются пользователями и другими серверами. Отдельные сканеры - ретрансляторы SMTP обычно обладают меньшей, по сравнению с сервером CommuniGate Pro производительностью и надежностью работы. Если сканер - ретранслятор прекращает работу, то SMTP функции CommuniGate Pro также становятся временно недоступными, что часто недопустимо. Отдельные сканеры - ретрансляторы SMTP обычно не умеют сканировать несколько сообщений одновременно, так что при сканировании большого сообщения SMTP трафик на CommuniGate Pro практически останавливается. Отдельные сканеры - ретрансляторы SMTP не умеют сканировать сообщения, поставляемые на сервер не посредством SMTP протокола. Например, сообщение, созданное через веб-интерфейс пользователя и направленное пользователю этого же сервера CommuniGate Pro, будет доставлено без задействования SMTP протокола. Внешние фильтры также работают вместе с CommuniGate Pro. Они не используют в своей работе протоколы передачи сообщений. Вместо этого, сервер CommuniGate Pro передаёт им файл с сообщением до того, как сообщение ставится в очередь какого-либо модуля. В результате, будут сканироваться все сообщения, а не только те, которые были отправлены посредством определённого протокола передачи почты. Компонент «установка в очередь» CommuniGate Pro настраивается на использование нескольких обработчиков (нитей), и, таким образом, одновременно могут сканироваться несколько сообщений, что существенно повышает общую производительность почтовой системы. В результате длинные сообщения, сканирование которых занимает несколько секунд, не останавливают поток сообщений. В настоящее время доступно несколько дополнительных модулей для интеграции с Communigate. В разделе «помощники» можно найти информацию о протоколе, используемом для работы внешних фильтров.

Рисунок 1
Рисунок 1
Рисунок 1

Установка и включение внешних фильтров

После того как была установлена программа внешнего фильтра или встроена своя собственная, что тоже не исключается, нужно произвести настройку внешнего фильтра через веб-интерфейс администратора CommuniGate Pro. Там необходимо открыть в области установки программы страницу «помощники». Для того, что бы указать новую программу (или сменить старую) внешнего фильтра, нужно использовать последний элемент в приведенной там таблице. Присвойте какое-либо имя программному фильтру и введите его в первом поле таблицы. Это имя будет использоваться при задании действий правил внешнего фильтра.

Введите системный путь к программе и другие необходимые опции, после чего нужно щелкнуть по кнопке «модифицировать». Для того, что бы удалить программу внешнего фильтра, нужно ввести пустую строку в поле с её названием и так же щелкнуть по кнопке «модифицировать». Любая программа, выступающая в роли внешнего фильтра, имеет ряд вспомогательных опций. К их числу можно отнести:

  • журнал работы:

    используйте эту настройку для того, что бы указать какую информацию модуль внешнего фильтра должен сохранять в журнале работы сервера. Обычно используется уровень проблем (изменения статуса программы и ошибки, не являющиеся фатальными). В случае, если в работе программы внешнего фильтра возникают проблемы, то целесообразно будет увеличить детализацию до «подробного» уровня или уровня «все» - в этом случае в журнал работы сервера будет также записываться более подробная информация или вообще вся.

    Записи, помещённые внешними фильтрами в журнал работы сервера, имеют пометку EXTFILTER (внешний фильтр).

  • путь к программе:

    используйте эту настройку для указания пути к имени файла программы внешнего фильтра (с дополнительными параметрами). Если программное обеспечение внешнего фильтра установлено внутри каталога данных CommuniGate Pro, то можно указать относительный путь (например, для продукта McAfee в системе Windows - CGPMcAfee\CGPMcAfee.exe). В противном случае, нужно использовать полный путь (такой как, к примеру, E:\Catalog\CGPMcAfee\CGPMcAfee.exe или /usr/sbin/my_filter (в Linux\Unix системах)).

    Стоит обратить внимание на то, что всегда желательно использовать обратную косую черту (\) в качестве разделителя в пути к файлу, если сервер CommuniGate Pro запущен на платформе “Microsoft Windows”.

    В тоже время, на платформах “Unix”, если надо задать параметры, включающие в себя пробелы или другие специальные символы, то можно указывать их в кавычках ("). На других платформах используйте аргументы командной строки в том виде, как это принято на этой системной платформе.

    Нужно отметьте флажком, и нажать на кнопку «модифицировать» для приведения в действие внесенных изменений. Если программа не может быть запущена, то на странице «помощники» при этом появятся сообщения об ошибках.

  • Тайм-аут:

    При определённых условиях и/или в результате ошибок в коде сторонней программы, она может прекратить отвечать на запросы сервера CommuniGate Pro или просто «подвиснуть». Если в течение указанного периода времени не было получено никакого ответа на запросы сервера, то в общем случае, Communigate отправляет сигнал на прекращение работы этой программы.

  • Авторестарт:

    При определённых условиях и/или в результате ошибок в коде сторонней программы она может аварийно прекратить свою работу. Сам сервер также может отправить сигнал на прекращение работы программы, если в течение указанного периода времени не было получено никакого ответа на его запросы.

    Если параметр «авторестарт» не задан в значении «никогда», то сервер CommuniGate Pro обнаружит прекращение работы внешней программы, подождет указанное время и затем автоматически перезапустит ее. После чего Communigate отправит во вновь запущенную внешнюю программу повторно все отложенные запросы и продолжит нормальную обработку текущих задач.

    Если параметр «авторестарт» установлен в значение «никогда», то для перезапуска внешней программы необходимо будет через веб-интерфейс администрирования открыть страницу «помощники» и нажать на кнопку «модифицировать».

Использование внешних фильтров

По умолчанию, включённый внешний фильтр не используется для сканирования всей почты. Если была указана программа внешнего фильтра с именем “filter_nаme”, то можно просканировать этой программой все сообщения, создав определенное правило, которое будет общим для сервера. Не рекомендуется задавать условия для этого правила, потому что это приведёт к тому, что оно будет применяться ко всем сообщениям, обрабатываемым сервером. В нем надо указать одно действие – «внешний фильтр filter_name». Сообщения будут сканироваться, только если рядом с именем фильтра установлен флажок. Можно конечно снять флажок, и тогда сообщения не будут попадать в эту программу внешнего фильтра. При этом, если флажок filter_name не выбран, то операция правил «ExternalFilter filter_name» является нулевой операцией (т.е. она ничего не выполняет). Если есть необходимость сканировать только некоторые сообщения, то нужно добавить в это правило требуемые условия для исполнения.

Внешние фильтры взаимодействуют с нитями, обслуживающими установку в очередь. В связи с тем, что обработка большого сообщения может занять несколько секунд, на странице «очередь» в области «установки» в веб-интерфейсе администратора желательно будет увеличить число обработчиков установки в очередь. В качестве альтернативы можно выключить опцию «ставить асинхронно» (на этой же странице) и заставить каждую нить, передающую сообщение сканировать его в процессе передачи.

В целях упрощения работы и восприятия имеющейся информации можно комбинировать внешние фильтры и правила для сообщений. К примеру, можно действие «добавить заголовок» использовать для добавления поля “X-Color”. Это поле распознаётся в веб-интерфейсе пользователя и используется для выделения сообщение в почтовой папке. Пример: если поле заголовка равно “X-Spam: *”, то добавить заголовок “X-Color: red”, пометить тему «пометка».

Эти манипуляции зададут строку, которая добавляется к полю заголовка «тема».

Когда сообщение сохраняется, отправляется или копируется или отсылается во внешнюю программу, то указанные пометки будут вставлены в начало поля заголовка «тема».

Установка и настройка McAfee VirusScan* plugin для CommuniGate Pro

В качестве примера, ввиду особой важности антивирусной защиты, рассмотрим установку и настройку антивируса от McAfee в системе Linux и его интеграцию в Communigate. Ввиду того, что McAfee VirusScan* plugin для CommuniGate Pro представлен не для всех существующих платформ, необходимо до загрузки и установки убедиться в том, что серверная платформа, на которой запущен Communigate, его поддерживает. Для работы самого плагина необходим Communigate версии 5.2.3 или более поздний. Текущая версия McAfee VirusScan* plugin для CommuniGate на момент написания статьи 4.1, а версия «движка» McAfee Antivirus – 5.4.00. Скачать требуемую версию плагина и получить исчерпывающую информацию по рассматриваемым вопросам можно по адресу: http://www.communigate.com/CGPMcAfee/.

Для начала установки необходимо зарегистрироваться в системе как root. Сменить текущую директорию на директорию, куда установлен Communigate. Распаковать и разархивировать файл командой: gunzip CGPMcAfee-Linux-Intel.tar.gz и tar -xf CGPMcAfee-Linux-Intel.tar, при этом McAfee плагин будет установлен в базовую для Communigate директорию. Завершить настройку плагина проверкой его работоспособности. Для этого необходимо исполнить команду CGPMcAfee/CGPMcAfee, которая при правильной работе и установке плагина должна вывести номер версии плагина, номер версии антивирусного движка, запись об известных вирусах в базе данных. Для продолжения проверки работы CGPMcAfee/CGPMcAfee в командной строке нужно ввести: 1 FILE CGPMcAfee/test.msg. Плагин должен ответить на ввод этой команды сообщением о том, что найден EICAR test file. Это и есть контрольный результат, гарантирующий правильность работы антивирусного приложения. Выйти из программы проверки, нажав одновременно Ctrl+D.

McAfee плагин поддерживает ряд опций для работы непосредственно из командной строки.

  • --noHeuristic or -h - данный параметр дает указание плагину не выполнять эвристический анализ при штатной антивирусной проверке, который может применяться для поиска неизвестных (не имеющихся в антивирусной базе данных) на момент проверки вирусов;
  • --noMacros or -m - дает указание плагину не проверять сообщения на наличие макровирусов;
  • --noDecompress or -d - дает указание плагину не распаковывать архивные и сжатые исполняемые файлы до их проверки.

Интеграция плагина McAfee VirusScan* plugin с Communigate и MailShell SpamCatcher

Получение исчерпывающей информации по этому вопросу может быть получено в документации, из раздела «антивирусное сканирование». Для интеграции McAfee VirusScan* plugin необходимо произвести настройки в веб-интерфейсе так, как это показано на рис. 1. После внесения изменений на странице настроек необходимо щелкнуть по кнопке “update” для фиксации изменений.

Рисунок 1
Рисунок 1
Рисунок 1

Программы борьбы со спамом интегрируются аналогичным образом, используя тот же интерфейс администратора. Из числа официально поддерживаемых программ предлагается MailShell SpamCatcher Plugin for CommuniGate Pro. Исчерпывающую информацию по этому вопросу можно получить на http://www.stalker.com/CGPSpamCatcher/

Обновление антивирусной базы

База данных с записями о вирусах представляет собой несколько .dat файлов в поддиректории avvdat. Базу можно обновить вручную путем закачки addvat-nnnn.zip файла с сайта http://update.nai.com/Products/CommonUpdater/. После чего необходимо разархивировать zip файл в поддиректорию CGPMcAfee/Updates. Затем создать сигнальный файл CGPMcAfee/Updates/update.sig с любым содержимым, например так: 'echo >Updates/update.sig' и подождать, пока все файлы не пропадут из поддиректории CGPMcAfee/Updates. Это произойдет после того, как плагин просканирует какое-либо сообщение или после того, как будет произведен рестарт плагина через веб-интерфейс администрирования.

Для автоматизации процесса обновления антивирусных записей в Linux/Unix системах необходимо через демон cron создать запись в crontab:

#minute hour    mday    month   wday    who     command
0       3,15    *       *       *       root    /etc/periodic/McAfeeUpdate.sh
затем создать скрипт и поместить его в каталоге /etc/periodic/McAfeeUpdate.sh :

#!/bin/sh
#
# Обновление антивирусной базы  McAfee 

MCAFEE_DIR=/var/CommuniGate/CGPMcAfee/
UPDATE_CMD=/var/CommuniGate/CGPMcAfee/updateDatFiles
MAILER_CMD="/usr/bin/mail -s 'cron: McAfee Update Report'"
REPORT_ADR="postmaster"

( \
if [ -d ${MCAFEE_DIR} ]; then
  cd ${MCAFEE_DIR}
  if [ -x ${UPDATE_CMD} ]; then
    ${UPDATE_CMD} 2>&1
    if [ ${?} -ne 0 ]; then
      echo "The command failed; retrying..\n"
      ${UPDATE_CMD} 2>&1
    fi
  else
    echo "Update command ${UPDATE_CMD} is not found."
  fi
else
  echo "Directory ${MCAFEE_DIR} is not found."
fi
) | eval ${MAILER_CMD} ${REPORT_ADR}

# Для Windows можно использовать следующий .bat файл и запускать его через 
#планировщик задач:

@echo off
c:
cd \Communigate Fles\CGPMcafee
updateDatFiles.exe -v > update.log

Выводы

Рассмотрены общие вопросы, связанные с работой системы Communigate и интеграцией этого комплекса с антивирусными программами и программами борьбы со спамом.

Подробно описаны настройки антивирусного плагина MacAfee VirusScan* plugin и обновление его антивирусных баз. Приведен скрипт для автоматизации процесса обновления антивирусных баз, изложены рекомендации как для Linux систем, так и для Windows.

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


Ресурсы для скачивания


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=563088
ArticleTitle=Communigate: Часть 5. Интеграция Communigate с антивирусными программами и спамфильтрами
publish-date=11022010