Инструменты пользователя

Инструменты сайта


amavisd-new

Различия

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

Ссылка на это сравнение

amavisd-new [2015/02/05 10:42] (текущий)
Строка 1: Строка 1:
 +====== amavisd-new ======
 +Homepage: [[http://​www.ijs.si/​software/​amavisd/​|amavisd-new]]
  
 +<​file>​
 +# aptitude install amavisd-new
 +</​file>​Документация расположена в директории /​usr/​share/​doc/​amavisd-new/​
 +
 +====== Отладка 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 -      -       ​n ​    ​- ​      ​4 ​        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  -       ​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>​
amavisd-new.txt · Последние изменения: 2015/02/05 10:42 (внешнее изменение)