Jump to content

Амавис

Разработчик(и) Патрик Бен Кеттер
Первоначальный выпуск 1997  ( 1997 )
Стабильная версия
2.12.0 [1]  Отредактируйте это в Викиданных / 25 июля 2019 г .; 5 лет назад ( 25 июля 2019 )
Репозиторий
Написано в Перл
Операционная система Unix-подобный
Тип Фильтрация почты
Лицензия GPLv2 , упрощенная лицензия BSD
Веб-сайт www .amavis .org Отредактируйте это в Викиданных

Amavis — это фильтр содержимого с открытым исходным кодом для электронной почты , реализующий передачу, декодирование почтовых сообщений, некоторую обработку и проверку, а также взаимодействие с внешними фильтрами содержимого для обеспечения защиты от спама , вирусов и других вредоносных программ . Его можно рассматривать как интерфейс между почтовой программой ( MTA , Mail Transfer Agent) и одним или несколькими фильтрами контента . [2]

Амавис можно использовать для:

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

Примечательные особенности:

Обычная установка фильтрации почты с помощью Amavis состоит из Postfix в качестве MTA, SpamAssassin в качестве классификатора спама и ClamAV в качестве антивирусной защиты, и все они работают под Unix-подобной операционной системой. Также поддерживаются многие другие антивирусные сканеры (около 30) и некоторые другие сканеры спама ( CRM114 , DSPAM , Bogofilter ), а также некоторые другие MTA.

Топология интерфейса

[ редактировать ]

три топологии взаимодействия с MTA Поддерживаются . Процесс amavisd может быть помещен между двумя экземплярами MTA, что дает классический результат.после очереди [3] настройку фильтрации почты или amavisd можно использовать в качестве прокси-фильтра SMTP в предварительной очереди. [4] настройки фильтрации или можно обратиться к процессу amavisd , чтобы обеспечить классификацию почты, но не пересылать почтовое сообщение само по себе, и в этом случаеконсультирующий клиент остается ответственным за пересылку почты. Этот последний подход используется в настройке Milter (с некоторыми ограничениями) или с историческим клиентом.программа amavisd-submit .

Начиная с версии 2.7.0 предпочтительна настройка перед очередью, поскольку она позволяет отклонять передачу почтового сообщения во время сеанса SMTP. [4] с отправляющим клиентом. При настройке после очереди фильтрация происходит после того, как почтовое сообщение уже получено и поставлено в очередь MTA, и в этом случае почтовый фильтр больше не может отклонять сообщение, а может только доставить его (возможно, помеченное) или отбросить его. или генерировать уведомление о недоставке, что может вызвать нежелательное обратное рассеяние в случае возврата сообщения с поддельным адресом отправителя.

Недостаток настройки перед очередью [4] заключается в том, что для этого требуются ресурсы (ЦП, память), пропорциональные текущей (пиковой) скорости передачи почты, в отличие от настройки после очереди, где некоторая задержка приемлема, а использование ресурсов соответствует средней скорости передачи почты. С введением опции smtpd_proxy_options=speed_adjust в Postfix 2.7.0 требования к ресурсам для фильтра содержимого перед очередью были значительно уменьшены. [5]

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

Протоколы взаимодействия

[ редактировать ]

Amavis может получать почтовые сообщения от MTA через один или несколько сокетов семейств протоколов PF_INET ( IPv4 ), PF_INET6 ( IPv6 ) или PF_LOCAL ( доменный сокет Unix ), через протоколы SMTP , LMTP или можно использовать простой частный протокол AM.PDP. с помощью вспомогательной программы, такой как amavisd-milter [7] для взаимодействия с milters . На выходной стороне протоколы SMTP или LMTP могут использоваться для передачи сообщения внутреннему экземпляру MTA или LDA , либо сообщение может быть передано порожденному процессу через канал Unix . При использовании SMTP или LMTP сеанс может быть дополнительно зашифрован с использованием расширения TLS STARTTLS (RFC 3207) к протоколу. Конвейерная обработка команд SMTP (RFC 2920) поддерживается в коде клиента и сервера.

Взаимодействие со SpamAssassin

[ редактировать ]

Когда сканирование на спам включено, процесс демона amavisd концептуально очень похож на spamd процесс проекта SpamAssassin . В обоих случаях разветвленные дочерние процессы напрямую вызывают модули SpamAssassin Perl , поэтому их производительность одинакова.

Основное различие заключается в используемых протоколах: Amavis стандартный протокол SMTP обычно передает MTA , в то время как в случае spamc/spamd MTA обычно порождает спам- программу, передавая ему сообщение по каналу Unix, а затем процесс spamc передает сообщение. к демону spamd , используя частный протокол, а затем spamd вызывает модули SpamAssassin Perl.

Приоритеты дизайна

[ редактировать ]

Приоритетами дизайна amavisd-new (далее просто Amavis ) являются: надежность, безопасность, соответствие стандартам, производительность и функциональность.

Надежность

[ редактировать ]

Чтобы ни одно почтовое сообщение не было потеряно из-за непредвиденных событий, таких как сбои ввода-вывода, истощение ресурсов и неожиданное завершение работы программы, программа amavisd тщательно проверяет статус завершения каждого системного вызова и операции ввода-вывода. Неожиданные события регистрируются, если это вообще возможно, и обрабатываются с помощью нескольких уровней обработки событий. Amavis никогда не берет на себя ответственность за доставку почтового сообщения за пределы MTA: окончательный статус успеха сообщается MTA только после того, как сообщение было передано внутреннему экземпляру MTA и было подтверждено получение. В случае каких-либо фатальных сбоев во время обработки или передачи сообщения обрабатываемое сообщение просто остается в очереди внешнего экземпляра MTA для повторной попытки позже. Этот подход также охватывает потенциальные неожиданные сбои хоста, сбои процесса amavisd или одного из его компонентов.

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

Безопасность

[ редактировать ]

Большое внимание уделяется аспектам безопасности, необходимым при обработке потенциально вредоносных, нестандартных или просто искаженных данных в почтовых сообщениях, поступающих из ненадежных источников.

Процесс обработки почтовых сообщений выполняется с ограниченными привилегиями под выделенным идентификатором пользователя. При желании он может запустить chroot -ed. Рисков переполнения буфера и ошибок распределения памяти в значительной степени можно избежать путем реализации всей обработки протоколов и обработки почты в Perl , который прозрачно обеспечивает динамическое управление памятью. Принимаются меры, чтобы содержимое обработанных сообщений не попало случайно в систему. Perl обеспечивает дополнительную защиту безопасности благодаря маркировке испорченных данных, полученных из дикой среды, и Amavis старается использовать эту функцию Perl с пользой, избегая автоматического восстановления данных ( используйте re "taint" ) и очищая их явно только в стратегических ситуациях. точки, задерживающиеся в потоке данных.

Amavis может использовать несколько внешних программ для расширения своей функциональности. Это деархиваторы , декомпрессоры , сканеры вирусов и сканеры спама . Поскольку эти программы часто реализуются на таких языках, как C или C++ , существует потенциальный риск того, что почтовое сообщение, переданное в одну из этих программ, может вызвать ее сбой или даже открыть дыру в безопасности. Риск ограничивается запуском этих программ от имени непривилегированного пользователя и, возможно, с использованием chroot. Тем не менее, следует избегать использования внешних программ, таких как необслуживаемые деархиваторы. Использование этих внешних программ можно настраивать, и их можно отключать выборочно или группой (как все декодеры или все антивирусные сканеры).

Производительность

[ редактировать ]

Несмотря на то, что Amavis реализован на интерпретируемом языке программирования Perl , сам по себе он не медленный. Хорошая производительность функциональности, реализованной самим Amavis (не говоря уже о внешних компонентах), достигается за счет работы с данными большими порциями (например, не построчно), за счет исключения ненужного копирования данных, за счет оптимизации часто проходимых путей кода, за счет используя подходящие структуры данных и алгоритмы, а также некоторые оптимизации низкого уровня. Узкие места выявляются во время разработки с помощью профилирования кода и сравнительного тестирования. Подробный отчет о времени в журнале может помочь выявить узкие места в конкретной установке.

Некоторые внешние модули или программы, такие как SpamAssassin сканеры командной строки, или некоторые антивирусные могут работать очень медленно, и их использование потребует подавляющего большинства затраченного времени и ресурсов обработки, что делает ресурсы, используемые самим Amavis, пропорционально довольно небольшими.

Такие компоненты, как внешние декодеры почты, сканеры вирусов и сканеры спама , можно выборочно отключить, если они не нужны. Остаются только функциональные возможности, реализованные самим Amavis, такие как передача почтового сообщения от и к MTA с использованием протокола SMTP или LMTP , проверка действительности раздела заголовка почты, проверка запрещенных типов почтового содержимого, проверка и генерация подписей DKIM .

Как следствие, задачи обработки почты, такие как подписание и проверка DKIM (с отключенной другой проверкой почты), могут выполняться исключительно быстро и могут конкурировать с реализациями на компилируемых языках. [8] [9] [10] Даже полная проверка с использованием быстрого антивирусного сканера, но с отключенным сканированием на спам, может быть на удивление быстрой.

Соблюдение стандартов

[ редактировать ]

Реализация протоколов и структур сообщений точно соответствует набору применимых стандартов, таких как RFC 5322, RFC 5321, RFC 2033, RFC 3207, RFC 2045, RFC 2046, RFC 2047, RFC 3461, RFC 3462, RFC 3463, RFC 3464, RFC 4155. , RFC 5965, RFC 6376, RFC 5451, RFC 6008 и RFC 4291. В нескольких случаях некоторые функции были повторно реализованы в коде Amavis, даже несмотря на то, что общедоступный ( CPAN ) модуль Perl существует, но ему не хватает внимания к деталям при следовании стандарту. или ему не хватает достаточной проверки и обработки ошибок.

Лицензия

[ редактировать ]

Amavis распространяется по лицензии GPLv2 . Это касается как текущего кодекса, так и исторических ветвей. Исключением являются некоторые вспомогательные программы (например, мониторинг и статистическая отчетность), на которые распространяется новая лицензия BSD .

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

Затем инструмент был повторно реализован как программа Perl , которая позже превратилась в демонизированный процесс. Десяток разработчиков по очереди работали в течение первых пяти лет проекта, разрабатывая несколько вариантов, сохраняя при этом общую цель, название проекта и часть инфраструктуры разработки.

С декабря 2008 года (до 09 октября 2018 года) единственной активной веткой официально была amavisd-new , которую с марта 2002 года разрабатывал и поддерживал Марк Мартинек. Это было согласовано между разработчиками на тот момент в частной переписке: Кристиан Брикар , Ларс Хекинг, Хилко Бенген, Райнер Линк и Марк Мартинек. Название проекта Amavis во многом взаимозаменяемо с названием ветки amavisd-new .

За прошедшие годы было добавлено много функций, таких как защита от спама и другого нежелательного контента, помимо исходной защиты от вирусов. Основное внимание уделяется надежности, безопасности, соблюдению стандартов и производительности.

Домен amavis.org , используемый проектом, был зарегистрирован в 1998 году Кристианом Брикаром, одним из первых разработчиков, который до сих пор поддерживает регистрацию доменного имени. Домен теперь полностью выделен для единственной активной ветки. Список рассылки проекта был перенесен с SourceForge на amavis.org в марте 2011 года, его ведут Ральф Хильдебрандт и Патрик Бен Кеттер. Веб-страница проекта и основной сайт распространения находились в Институте Йожефа Стефана , Любляна, Словения (до передачи проекта в 2018 году), где большая часть разработки велась в период с 2002 по 2018 год.

Объявление о смене руководителей проектов

[ редактировать ]

9 октября 2018 года Марк Мартинец объявил [11] в списке рассылки общей поддержки и обсуждений сообщается о его выходе из проекта, а также о том, что Патрик Бен Кеттер останется новым руководителем проекта.

Я знаю Бена лично, он является одним из двух авторов The Book of Postfix и также использует Amavis в своей профессиональной жизни, так что я думаю, что проект окажется в надежных руках. [11]

Марк Мартинек

После этого Патрик уведомил [12] миграция исходного кода в публичный репозиторий GitLab и его план дальнейших шагов по развитию проекта.

Филиалы и название проекта

[ редактировать ]

На протяжении истории проекта название проекта или его ветвей несколько менялось. Первоначальное написание названия проекта было AMaViS (Сканер почтовых вирусов), предложенное Кристианом Брикаром. После переписывания на Perl программа стала называться Amavis-perl . Демонизированные версии первоначально распространялись под именем amavisd-snapshot , а затем как amavisd . Модульная переработка Хилко Бенгена называлась Amavis-ng .

В марте 2002 года amavisd-new Марк Мартинек представил ветку , первоначально как патч против amavisd-snapshot-20020300 . Позже это превратилось в автономный проект, который сейчас является единственной сохранившейся и активно поддерживаемой ветвью. В настоящее время имя проекта предпочтительно пишется Amavis (а название самой программы — amavisd ). Имя Amavis теперь в основном взаимозаменяемо с amavisd-new .

См. также

[ редактировать ]
  1. ^ https://gitlab.com/amavis/amavis/-/tags/v2.12.0 . {{cite web}}: Отсутствует или пусто |title= ( помощь )
  2. ^ Леблан, Роберт (11 ноября 2004 г.). «Борьба со спамом и вирусами с помощью amavisd-new и Maia Mailguard | Linux Journal» . Linux-журнал . Архивировано из оригинала 10 апреля 2022 г. Проверено 10 апреля 2022 г.
  3. ^ Венема, Витце (17 января 2010 г.). «Фильтр содержимого после очереди Postfix» . Архивировано из оригинала 29 июля 2012 г.
  4. ^ Перейти обратно: а б с Венема, Витце (11 декабря 2009 г.). «Фильтр содержимого перед очередью Postfix» . Архивировано из оригинала 16 июня 2012 г.
  5. ^ Венема, Витце (14 февраля 2010 г.). «Стабильная версия Postfix 2.7.0» . Архивировано из оригинала 19 июля 2012 г.
  6. ^ «StGB (Германия), § 206 Нарушение почтовой или телекоммуникационной тайны» . Бюллетень федеральных законов. Архивировано из оригинала 19 октября 2012 г.
  7. ^ Рехор, Петр (2 мая 2010 г.). "амависд-милтер" . Архивировано из оригинала 30 июня 2012 г.
  8. ^ Мартинец, Марк (10 июня 2011 г.). «amavisd 2.7.0 и Mail::OpenDKIM» . Архивировано из оригинала 18 февраля 2013 г.
  9. ^ Мартинец, Марк (10 июня 2011 г.). «amavisd 2.7.0 и Mail::OpenDKIM» . Архивировано из оригинала 18 февраля 2013 г.
  10. ^ Мартинец, Марк (10 июня 2011 г.). «amavisd 2.7.0 и Mail::OpenDKIM» . Архивировано из оригинала 18 февраля 2013 г.
  11. ^ Перейти обратно: а б Мартинец, Марк (09 октября 2018 г.). «ОБЪЯВЛЕНИЕ: Проект Амавис передан новым руководителям проекта» . Архивы amavis-users-list . Новый проект amavisd.
  12. ^ Кеттер, Патрик Бен (9 октября 2018 г.). «Амавис: Следующие шаги» . Архивы amavis-users-list . Новый проект amavisd.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 56ea61f272dc64068c9db2446e2c4912__1716004500
URL1:https://arc.ask3.ru/arc/aa/56/12/56ea61f272dc64068c9db2446e2c4912.html
Заголовок, (Title) документа по адресу, URL1:
Amavis - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)