Документация по ОС FreeBSD Вторник, 23.04.2024, 09:55
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Mail

Exim+Clamav. Как настроить связку [2010]
Для подключения проверки антивирусной программой ClamAV всей почты, приходящей на наш домен выполняем следующие шаги. 

Исходные данные

Установленные ClamAV, Exim собранный с поддержкой CONTENT_SCAN, настроенное обращение почты в домене и наружу. 

Выполняем следующие шаги: 
В конфигурацию почтовика добавляем следующие строчки: 

После блока с 

acl_smtp_rcpt = acl_check_rcpt 
acl_smtp_data = acl_check_data 
acl_smtp_connect = acl_check_host

идет строчка 

av_scanner = clamd:/var/run/clamav/clamd.sock

Тут в конфиге пишется строка, задающая сокет clamd: (в разных источниках (в зависимости от разных конфигов) указано просто clamd, вместо clamd.sock, поэтому нужно проверить наличие таких файлов: 

dmail# ls -la /var/run/clamav/ 
total 8 
drwxr-xr-x 2 clamav clamav 512 Dec 26 09:19 . 
drwxr-xr-x 6 root wheel 512 Jan 12 17:24 .. 
-rw-rw---- 1 clamav clamav 3 Dec 26 09:19 clamd.pid 
srwxrwxrwx 1 clamav clamav 0 Dec 26 09:19 clamd.sock 
-rw-rw---- 1 clamav clamav 3 Dec 26 09:19 freshclam.pid 
dmail#

Файл есть. Теперь эксим знает, что использовать в качестве антивирусного сканнера. Далее будем писать набор действий для того, чтобы он знал, что делать, если пришло письмо с зараженным вложением: 

Находим в конфиге секцию под названием acl_check_data. Добавим сюда следующий блок: 

warn message = X-Quarantine-Me-Malware: $malware_name 
  log_message = Malware found: $malware_name 
  demime = * 
  malware = */defer_ok 
  set acl_m2 = $malware_name

Что делает этот набор правил? 
Выдает сообщение в лог о том, что найдено вирусное ПО: 

log_message = Malware found: $malware_name

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

demime = *

Строчка должна стоять ДО СТРОЧКИ с 

malware = */defer_ok

Это необходимо для того, чтобы сначала раскрывался MIME, затем производилась проверка на вирусы. Значок «*» в строке с malware означает, что проверяться будет всё подряд, а строчка с "defer_ok”принимает сообщения, если антивирусный сканер не может по каким=то причинам обработать сообщение. 

Последняя строчка с set acl_m2 = $malware_name, в принципе, даже и не нужна, она просто присваивает acl_m2 значение $malware_name. Это будет использовано в роутере. Будьте внимательны, если вы уже используете acl_m2, вам необходимо сменить m2 на другой, подходящий для вас номер. 

Если же мы хотим просто отлупать все письма, которые содержат вирус, то вместо блока правил, начинающегося с warn используйте deny. То есть правила будут выглядеть примерно так: 

deny message = This message contains malware ($malware_name) 
  demime = * 
  malware = *

Теперь найдем секцию роутеров. Обычно, она начинается с блока вроде: 

######################################################## 
# ROUTERS CONFIGURATION # 
# Specifies how addresses are handled # 
######################################################## 
   
begin routers 

В начало этой секции добавим новый роутер для того, чтобы зараженные письма пересылались на нужный нам адрес, для последующего анализа. Можно сделать конечно, чтобы вложения ещё и удалялись, но я предпочитаю знать всё для полноты картины. Внимание ! Этот роутер необходимо поставить ПЕРВЫМ В СПИСКЕ РОУТЕРОВ, иначе он не будет прорабатываться! 

check_malware: 
  driver = redirect 
  condition = ${if def:h_X-Quarantine-Me-Malware: {1}{0}} 
  headers_remove = Subject 
  headers_add = Subject: [CLAMAV: $acl_m2] $h_Subject 
  data = admin@firma.ru 
  file_transport = address_file

Итак, что видим здесь: 
Используется драйвер redirect – он будет пересылать письма на адрес, указанный в data. Выполняться будет при условии выполнения condition – если найден вирус. Строка с «headers_remove = Subject» удаляет тему письма, а строка «headers_add = Subject: [CLAMAV: $acl_m2] $h_Subject» добавит в тему письма слова [CLAMAV: $acl_m2] и допишет старую тему. В качестве $acl_m2 будет подставлено название вируса, который обнаружил антивирусный сканер. 

Проверка работы

Вот простейший пример файла (описано здесь http://ru.wikipedia.org/wiki/EICAR-Test-File), на который реагируют все антивирусы: 

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H* 

Это com-файл, который при запуске выводит сообщение: EICAR-STANDARD-ANTIVIRUS-TEST-FILE! Все антивирусы реагируют на это. Отключаем свой антивирус, создаем файл с таким содержанием, аттачим его на веб-почте, пишем тему, например «OLOLO» и присылаем себе на адрес, например на richter@firma.ru. Результаты у меня следующие: 

Письмо отсылалось на richter@firma.ru, однако сработал роутер check_malware, и письмо попало на admin@firma.ru. В теле письма остались все вложения, в тему письма было внесено изменение и теперь, вместо «OLOLO» она выглядит так: 

[CLAMAV: Eicar-Test-Signature] OLOLO 

Итог: вся зараженная почта сыпется на админский ящик. 

Последние приготовления

Необходимо добавить обновления антивирусных баз, за это отвечает freshclam. Добавим их в кронтаб: 

# crontab -e

и включаем строчку: 

0 */2 * * * /usr/local/bin/freshclam

Каждые два часа будет происходить обновление антивирусных баз. 

Ещё один хинт: 
Также я добавил в конфигурацию отлуп для писем, содержащих расширения com, vbs, bat, pif, scr. Добавляется в раздел acl_check_data. 

deny message = contains $found_extension file (blacklisted). 
  demime = com:vbs:bat:pif:scr

Список используемой литературы: 
Блок в официальной документации EXIM по поводу антиврусного сканирования: 



Источник: http://rm-rf.ucoz.ru/publ/exim_clamav_kak_nastroit_svjazku/7-1-0-25
Категория: Mail | Добавил: oleg (24.07.2010) | Автор: jsand
Просмотров: 1169 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2024