Настройка amavisd-new
Homepage: amavisd-new
apt install amavisd-new
Документация расположена в директории /usr/share/doc/amavisd-new/
Рассматривается интеграция Amavisd-new, Spamassassin и ClamAV с транспортным почтовым агентом (MTA) Postfix. Postfix может также проверять легальность почты с помощью передачи ее внешним фильтрам содержания.
Отладка amavisd-new
- Запуск amavisd-new в режиме отладки от непривилегированного пользователя
# su - amavis $ /etc/init.d/amavis debug
Установим недостающие библиотеки и утилиты
# aptitude install bzip2 lzop p7zip unrar-free arj arc nomarch zoo ripole cabextract zip
- Amavis по умолчанию работает на локальном порту 10024. Воспользуемся Примеры использования telnet для проверки ESMTP
# 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.
Для проверки работоспособности LMTP вместо команды EHLO, в примере выше, используйте LHLO.
amavisd-new и ClamAV
Подключение ClamAV к mavisd-new. ClamAV Свободный Антивирус должен быть установлен.
- Для того чтобы amavis загрузил поддержку антивирусника, нужно раскомментировать строки в файле /etc/amavis/conf.d/15-content_filter_mode:
# 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);
- Добавьте пользователя clamav в группу amavis, чтобы Amavisd-new имел соответствующие права доступа для сканирования файлов:
sudo adduser clamav amavis sudo adduser amavis clamav
Настройка amavisd-new 50-user
Все дополнительные настройки лучше делать в файле 50-user.
- Если сетевое имя сервера отличается от MX записи домена, вам может потребоваться установить вручную опцию $myhostname. Также, если сервер принимает почту для нескольких доменов, опцию @local_domains_acl потребуется изменить. Отредактируйте файл /etc/amavis/conf.d/50-user:
$myhostname = 'mail.example.com'; @local_domains_acl = ( "example.com", "example.org" );
Полный файл
- 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
Для применения изменений amavis должен быть перегружен
# service amavis restart
Интеграции amavisd-new и Postfix
До этого момента amavisd-new и Настройка почтового сервера Postfix работали независимо, для их интеграции нужно выполнить три пункта:
- Создание транспорта для отправка писем от Postfix на обработку amavisd
- Настройка транспорта.
- Настройка пути возврата сообщений. Отфильтрованная почта должна какким-то образом вернуться в очередь Potsfix без повторного сканирования, поэтому необходим отдельный экземпляр smtpd, не использующий content_filter.
- Создание транспорта main.cf:
# sudo postconf -e "content_filter = amavis-new:[127.0.0.1]:10024"
- Определение транспорта master.cf. Имя транспорат должно совпадать с именем в content_filter, то есть в нашем случае amavis-new:
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
- Настройка пути возврата сообщений. В master.cf добавим строки:
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
Из всех параметров абсолютно необходим пустой параметр content_filter. Эта настройка перекрывает параметр content_filter в файле main.cf. Остальные параметры, также подменяют соответствующие параметры main.cf, включая параметры для отмены ограничений.
- Добавьте две строки непосредственно после транспортного сервиса "pickup". Это предотвратит от попадания в спам сообщений, созданных в качестве отчетов о спаме.
pickup unix n - - 60 1 pickup -o content_filter= -o receive_override_options=no_header_body_checks
Логирование amavisd-new
- Настройка логирования демона amavisd-new:
# 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 ...
Просмотр лога amavisd-new:
# tail -F /var/log/syslog | grep amavis
Карантин amavisd-new
- Параметры настройки карантина.
$QUARANTINEDIR = undef; # отключаем использование каратина # для частичного отключения карантина # используйте следующие переменные: # $clean_quarantine_method, $virus_quarantine_to, $banned_quarantine_to, # $bad_header_quarantine_to, $spam_quarantine_to, # # пример: $bad_header_quarantine_to = 'undef';
- Периодическая очистки карантина при помощи cron. Удаление из карантина файлов старше 40 дней.
- 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
📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Китайский VPN Shadowsocks простая установка и настройка
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах