Различия

Показаны различия между двумя версиями страницы.


Предыдущая версия
amavisd-new [2025/07/06 12:38] (текущий) – внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Настройка amavisd-new ======
  
 +{{htmlmetatags>
 +metatag-description=(Amavisd-new это фреймворк по фильтрации содержимого, использующий приложения-помощники для фильтрации вирусов и спама.)
 +}}
 +
 +Homepage: [[http://www.ijs.si/software/amavisd/|amavisd-new]]
 +
 +<file>
 +apt install amavisd-new
 +</file>Документация расположена в директории /usr/share/doc/amavisd-new/
 +
 +Рассматривается интеграция Amavisd-new, Spamassassin и ClamAV с транспортным почтовым агентом (MTA) Postfix. Postfix может также проверять легальность почты с помощью передачи ее внешним фильтрам содержания.
 +
 +{{ ::postfix_amavisd.gif?nolink |}}
 +====== Отладка amavisd-new ======
 +
 +  * Запуск amavisd-new в режиме отладки от непривилегированного пользователя<file>
 +# su - amavis
 +$ /etc/init.d/amavis debug
 +</file>Установим недостающие библиотеки и утилиты<file>
 +# aptitude install bzip2 lzop p7zip unrar-free arj arc nomarch zoo ripole cabextract zip
 +</file>
 +
 +  * Amavis по умолчанию работает на локальном порту 10024. Воспользуемся [[telnet]] для проверки ESMTP<file>
 +# telnet localhost 10024
 +Trying ::1...
 +Trying 127.0.0.1...
 +Connected to localhost.
 +Escape character is '^]'.
 +220 [127.0.0.1] ESMTP amavisd-new service ready
 +EHLO mail.example.com
 +250-[127.0.0.1]
 +250-VRFY
 +250-PIPELINING
 +250-SIZE
 +250-ENHANCEDSTATUSCODES
 +250-8BITMIME
 +250-DSN
 +250 XFORWARD NAME ADDR PORT PROTO HELO IDENT SOURCE
 +quit
 +221 2.0.0 [127.0.0.1] amavisd-new closing transmission channel
 +Connection closed by foreign host.
 +</file>Для проверки работоспособности LMTP вместо команды **EHLO**, в примере выше, используйте **LHLO**.
 +
 +====== amavisd-new и ClamAV ======
 +Подключение ClamAV к mavisd-new. [[ClamAV]] должен быть установлен.
 +  * Для того чтобы amavis загрузил поддержку антивирусника, нужно  раскомментировать строки в файле /etc/amavis/conf.d/15-content_filter_mode:<file>
 +# Default antivirus checking mode
 +# Please note, that anti-virus checking is DISABLED by
 +# default.
 +# If You wish to enable it, please uncomment the following lines:
 +
 +
 +@bypass_virus_checks_maps = (
 +   \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
 +</file>
 +  * Добавьте пользователя clamav в группу amavis, чтобы Amavisd-new имел соответствующие права доступа для сканирования файлов:<file>
 +sudo adduser clamav amavis
 +sudo adduser amavis clamav
 +</file>
 +
 +====== Настройка amavisd-new 50-user ======
 +Все дополнительные настройки лучше делать в файле 50-user.
 +
 +  * Если сетевое имя сервера отличается от MX записи домена, вам может потребоваться установить вручную опцию $myhostname. Также, если сервер принимает почту для нескольких доменов, опцию @local_domains_acl потребуется изменить. Отредактируйте файл /etc/amavis/conf.d/50-user:<file>
 +$myhostname = 'mail.example.com';
 +@local_domains_acl = ( "example.com", "example.org" );
 +</file>Полный файл<file perl 50-user>
 +use strict;
 +
 +#
 +# Place your configuration directives here.  They will override those in
 +# earlier files.
 +#
 +# See /usr/share/doc/amavisd-new/ for documentation and examples of
 +# the directives you can use in this file
 +#
 +
 +$myhostname = 'mail.example.com';
 +@local_domains_acl = ( "example.com", "example.org" );
 +$virus_admin = 'virusalert@example.com';
 +
 +#------------ Do not modify anything below this line -------------
 +1;  # ensure a defined return
 +
 +</file>Для применения изменений amavis должен быть перегружен<file>
 +# service amavis restart
 +</file>
 +
 +====== Интеграции amavisd-new и Postfix ======
 +
 +До этого момента amavisd-new и [[Postfix]] работали независимо, для их интеграции нужно выполнить три пункта:
 +  - **Создание транспорта** для отправка писем от Postfix на обработку amavisd
 +  - **Настройка транспорта.**
 +  - **Настройка пути возврата сообщений.** Отфильтрованная почта должна какким-то образом вернуться в очередь Potsfix без повторного сканирования, поэтому необходим отдельный экземпляр smtpd, не использующий content_filter.
 +
 +  * **Создание транспорта** main.cf:<file>
 +# sudo postconf -e "content_filter = amavis-new:[127.0.0.1]:10024"
 +</file>
 +  * **Определение транспорта** master.cf. Имя транспорат должно совпадать с именем в content_filter, то есть в нашем случае amavis-new:<file>
 +amavis-new unix -      -                         smtp
 + -o smtp_data_done_timeout=1200
 + -o smtp_send_xforward_command=yes
 + -o smtp_tls_note_starttls_offer=no
 + -o disable_dns_lookups=yes
 + -o max_use=80
 +</file>
 +  * **Настройка пути возврата сообщений.** В master.cf добавим строки:<file>
 +127.0.0.1:10025 inet n  -                  smtpd
 + -o content_filter=
 + -o local_recipient_maps=
 + -o relay_recipient_maps=
 + -o smtpd_restriction_classes=
 + -o smtpd_delay_reject=no
 +# -o smtpd_client_restrictions=
 + -o smtpd_client_restrictions=permit_mynetworks,reject
 + -o smtpd_helo_restrictions=
 + -o smtpd_sender_restrictions=
 + -o smtpd_recipient_restrictions=permit_mynetworks,reject
 + -o smtpd_end_of_data_restrictions=
 + -o mynetworks=127.0.0.0/8
 + -o smtpd_error_sleep_time=0
 + -o smtpd_soft_error_limit=1001
 + -o smtpd_hard_error_limit=1000
 + -o smtpd_client_connection_count_limit=0
 + -o smtpd_client_connection_rate_limit=0
 + -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
 +</file>Из всех параметров абсолютно необходим пустой параметр content_filter. Эта настройка перекрывает параметр content_filter в файле main.cf. Остальные параметры, также подменяют соответствующие параметры main.cf, включая параметры для отмены ограничений.
 +  * Добавьте две строки непосредственно после транспортного сервиса "pickup". Это предотвратит от попадания в спам сообщений, созданных в качестве отчетов о спаме.<file>
 +pickup    unix  n                   60      1       pickup
 + -o content_filter=
 + -o receive_override_options=no_header_body_checks
 +</file>
 +====== Логирование amavisd-new ======
 +
 +  * Настройка логирования демона amavisd-new:<file>
 +# nano /etc/amavis/conf.d/20-debian_defaults
 +...
 +$log_recip_templ = undef;    # disable by-recipient level-0 log entries
 +$DO_SYSLOG = 1;              # log via syslogd (preferred)
 +$syslog_ident = 'amavis';    # syslog ident tag, prepended to all messages
 +$syslog_facility = 'mail';
 +$syslog_priority = 'debug';  # switch to info to drop debug output, etc
 +...
 +</file>Просмотр лога amavisd-new:<file>
 +# tail -F /var/log/syslog | grep amavis
 +</file>
 +
 +====== Карантин amavisd-new ======
 +  * Параметры настройки карантина.<file perl>
 +$QUARANTINEDIR  = undef; # отключаем использование каратина
 +
 +# для частичного отключения карантина
 +# используйте следующие переменные:
 +# $clean_quarantine_method, $virus_quarantine_to, $banned_quarantine_to,
 +# $bad_header_quarantine_to, $spam_quarantine_to,
 +
 +# пример: $bad_header_quarantine_to = 'undef';
 +</file>
 +  * Периодическая очистки карантина при помощи cron. Удаление из карантина файлов старше 40 дней.<file bash cron_mailserver>
 +# Look for and purge files older 40 days every 5 hours
 +# 20 */5 * * * root find /var/lib/amavis/virusmails/* -mtime +40 | xargs rm &> /dev/null
 +20 */5 * * * root find /var/lib/amavis/virusmails/* -mtime +40 -delete &> /dev/null
 +</file>

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!