DrWeb - как за каменной стеной! Докучаев Дмитрий aka Forb Спецвыпуск Xakep, номер #035, стр. 035-088-4 AdminMail = email@local.net ## Почтовый адрес администратора, на который будет высылаться уведомление о вирусах. FilterMail = drweb@local.net ## Почтовый адрес, который будет подставляться фильтром при генерации уведомления. Quarantine = "/var/drweb/infected" ## Директория для зараженных файлов (по умолчанию, берется из конфига drwebd). [VirusNotifications] AdminNotify =yes RcptsNotify = yes ## Параметры показывают, что при обнаружение вируса будет автоматически разослано уведомление как админу, так и получателю. MailSystem = CommuniGatePro ## Указание системы, для которой служит конфиг фильтра. С конфигом разобрались. Впредь я не буду возвращаться к вопросу его редактирования, потому что, как я уже сказал, файл одинаков для всех почтовых систем. Теперь обратимся к файлам users.conf и addresses.conf. Он имеет очень простой синтаксис и служит для задания адресов, которые не будут подвергаться проверке на вирусы. Подробное описание его настройки лежит в документации и не представляет особой сложности, поэтому не будем обращать на него особого внимания. В viruses.conf ты можешь задать маску на имя аттача и соответственно вынести "приговор" для него. К примеру, правило allow deny deny allow "Viruzz" разрешает отправление уведомления админу, но запрещает отправителю и приемнику. Также кладет зараженный файл, совпадающий с подстрокой "Viruzz", в "карантин". С настройкой разобрались. Теперь осталось протестировать клиент. Для этого используем параметр --check_only в его запуске. Если все сделано правильно, на мыло админу придет тестовое уведомление. Теперь займемся коммунигейтом. Для корректной обработки сообщений необходимо проставить фильтр и включить поддержку внешнего обработчика, то бишь клиента. Для этого заходим на WebAdmin во вкладку General->Helpers. Там ставим галочку напротив Content Filtering и указываем полный путь к фильтру сообщений. После этого все заголовки будут передаваться программе. Теперь зайдем во вкладку Rules. Там создаем новое правило с условием на размер сообщения (я поставил минимальное ограничение на 3 Кб) и перенаправляем сообщение на ExternalFilter. Обзовем правило именем drweb-filter. Настало время проверить работу перехватчика. Для этого просто зашли вирус на свой локальный адрес. В случае успеха тебе, отправителю и админу придет уведомление о наличии вируса в теле сообщения. Это означает, что все работает как нужно. В противном случае смотри логи коммунигейта и демона - что-то работает не так. Sendmail для умных админов Вернемся к нашим баранам. А именно к тому, с чего я начинал свою статью. Для настройки Sendmail важно знать, что демон обязательно собран с поддержкой MilterAPI. Если это так, открываем /etc/mail/sendmail.cf и вписываем туда следующие строки: ## Input mail filters ## O InputMailFilters=drweb-filter O Milter.LogLevel=6 ## Xfilters ## Xdrweb-filter, S=inet:3001@localhost, F=T, T=C:1m;S:5m;R:5m;E:1h ## Примечание: флаг T означает откладку доставки, если сервис проверки на вирусы недоступен. Имеется также флаг R, который отказывает в доставке. Если не указывать флагов, сообщение пропускается без всяких проблем. |