Назад | Перейти на главную страницу

Отскакивающие сообщения карантина AMaViS

Я здесь в своем уме. Я установил AMaViS и ClamAV и связал их с Postfix. Вроде все нормально работает. За исключением того, что карантинные письма не доставляются, и я не могу понять, почему.

Если я использую тестовый файл для отправки электронной почты GTUBE / Eicar самому себе, он отбрасывается (или передается, если я изменяю судьбу, поэтому я знаю, что эта часть работает), но я не получаю карантинное письмо по указанному мной адресу .

Интересно, что я знаю, что письмо отправляется, потому что я получаю сообщение о недоставке на этот адрес (электронное письмо-уведомление отправляет отчет самому себе), содержащее отчет. В письме о недоставке указывается причина "Пользователь неизвестен в таблице виртуальных псевдонимов". Что, очевидно, не может быть так, потому что этот адрес / псевдоним получает отказ!

Вот результат postconf -n (конфиденциальная информация удалена):

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
allow_percent_hack = no
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
content_filter = amavisfeed:[127.0.0.1]:10024
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
home_mailbox = Maildir/
html_directory = no
inet_interfaces = all
inet_protocols = all
mail_owner = postfix
mailbox_command = /usr/bin/procmail-wrapper -o -a $DOMAIN -d $LOGNAME
mailbox_size_limit = 0
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
maximal_queue_lifetime = 1d
message_size_limit = 20480000
milter_default_action = accept
milter_protocol = 2
mydestination = $myhostname, localhost.$mydomain, localhost, example.com
newaliases_path = /usr/bin/newaliases.postfix
non_smtpd_milters = inet:localhost:8891
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
sample_directory = /usr/share/doc/postfix-2.10.1/samples
sender_bcc_maps = hash:/etc/postfix/bcc
sendmail_path = /usr/sbin/sendmail.postfix
setgid_group = postdrop
smtp_sasl_tls_security_options = $smtp_sasl_security_options
smtp_sasl_tls_verified_security_options = $smtp_sasl_security_options
smtp_tls_loglevel = 2
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtpd_milters = inet:localhost:8891
smtpd_recipient_restrictions = permit_sasl_authenticated reject_unauth_destination reject_rbl_client zen.spamhaus.org
smtpd_sasl_auth_enable = yes
smtpd_tls_CAfile = [Server CA File]
smtpd_tls_auth_only = yes
smtpd_tls_cert_file = [Server Cert]
smtpd_tls_key_file = [Server Key]
smtpd_tls_mandatory_ciphers = medium
smtpd_tls_mandatory_protocols = SSLv3, TLSv1
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s
smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom
unknown_local_recipient_reject_code = 550
virtual_alias_maps = hash:/etc/postfix/virtual

Вот соответствующие (я полагаю) записи из AMaViS conf:

$virus_admin               = 'virusalert@example.com';                    # notifications recip.
$mailfrom_notify_admin     = 'virusalert@example.com';                    # notifications sender
$mailfrom_notify_recip     = 'virusalert@example.com';                    # notifications sender
$mailfrom_notify_spamadmin = 'virusalert@example.com';                    # notifications sender
$virus_quarantine_to = 'virusalert@example.com';
$virus_quarantine_method = 'smtp:127.0.0.1:10025';
$spam_quarantine_to = 'spamtrap@example.com';
$spam_quarantine_method = 'smtp:127.0.0.1:10025';

И, конечно же, Postfix master.cf файл:

submission inet n       -       n       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_helo_restrictions=$mua_helo_restrictions
  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o content_filter=amavisfeed:[127.0.0.1]:10026
smtps     inet  n       -       n       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=$mua_client_restrictions
  -o smtpd_helo_restrictions=$mua_helo_restrictions
  -o smtpd_sender_restrictions=$mua_sender_restrictions
  -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

amavisfeed unix    -       -       n        -      5     lmtp
  -o lmtp_data_done_timeout=1200
  -o lmtp_send_xforward_command=yes
  -o disable_dns_lookups=yes
  -o max_use=20

127.0.0.1:10025 inet n    -       n       -       -     smtpd
  -o content_filter=
  -o smtpd_delay_reject=no
  -o smtpd_client_restrictions=permit_mynetworks,reject
  -o smtpd_helo_restrictions=
  -o smtpd_sender_restrictions=
  -o smtpd_recipient_restrictions=permit_mynetworks,reject
  -o smtpd_data_restrictions=reject_unauth_pipelining
  -o smtpd_end_of_data_restrictions=
  -o smtpd_restriction_classes=
  -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,no_address_mappings
  -o local_header_rewrite_clients=
  -o smtpd_milters=
  -o local_recipient_maps=
  -o relay_recipient_maps=

Кричите, если мне нужно предоставить дополнительную информацию или строки подтверждения.

Я думал, что опубликую решение, потому что я только что потратил некоторое время на устранение неполадок.

Проблема связана с этой строкой в ​​конфигурации демона SMTPD повторной инъекции:

-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters,no_address_mappings

Обратите внимание, что последний параметр - "no_address_mappings" - Это мешает postfix переоценивать виртуальные псевдонимы и сопоставлять их с реальными (или виртуальными) почтовыми ящиками.

Поскольку AMavis внедряет новое сообщение (уведомление) с помощью демона повторной инъекции, он никогда не проходил через первое расширение адреса (что происходит на главном демоне SMTP), и эта опция предотвращает расширение внутри повторного расширения. демон инъекции.

Решение - эту опцию следует удалить из приведенной выше строки и вместо этого добавить в файл "main.cf":

receive_override_options = no_address_mappings

Это гарантирует, что расширение адреса будет выполнено ПОСЛЕ фильтра содержимого, а не раньше. Вот как это рекомендует делать и документация postfix.

Это также дает дополнительное преимущество, гарантируя, что дополнительные заголовки, такие как «x-original-to», также останутся нетронутыми (чего нет в конфигурации OP).

Надеюсь, это поможет.