Postfix не пересылает почту в Clamav

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
TyZ
проходил мимо
Сообщения: 2
Зарегистрирован: 2016-06-01 6:59:30

Postfix не пересылает почту в Clamav

Непрочитанное сообщение TyZ » 2016-07-10 8:59:51

Доброго всем времени суток. Настраиваю свой почтовый сервер для небольшой организации. Столкнулся со следующей проблемой. Настроил postfix+dspam+dovecot. Все работает спам фильтруется почта ходит во все стороны отлично и спам фильтруется. Решил прикрутить Clamav, но вот в чем проблема. Postfix на отрез отказывается пересылать почту антивирусу, как будто полностью игнорирует параметр content_filter. Ниже прилагаю конфиги.

main.cf

Код: Выделить всё

compatibility_level=2
queue_directory = /var/spool/postfix
command_directory = /usr/local/sbin
daemon_directory = /usr/local/libexec/postfix
data_directory = /var/db/postfix

mail_owner = postfix

myhostname = mail.server.local
mydomain = server.local
myorigin = $myhostname
inet_interfaces = all
mydestination = server.local, mail.server.local, localhost.$mydomain, localhost

local_transport = dovecot
local_recipient_maps = unix:passwd.byname $alias_maps $virtual_mailbox_maps
unknown_local_recipient_reject_code = 550
mynetworks_style = host
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
debug_peer_list = 127.0.0.1
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/local/sbin/sendmail
mailq_path = /usr/local/bin/mailq
setgid_group = maildrop
html_directory = /usr/local/share/doc/postfix
manpage_directory = /usr/local/man
sample_directory = /usr/local/etc/postfix
readme_directory = /usr/local/share/doc/postfix

virtual_mailbox_base = /MAIL
virtual_alias_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf
virtual_mailbox_domains = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = proxy:mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 999
virtual_uid_maps = static:999
virtual_gid_maps = static:999
virtual_transport  = lmtp:unix:/tmp/dspam.sock
# dovecot_destination_recipient_limit = 1

receive_override_options=no_address_mappings
content_filter=clamsmtpd:127.0.0.1:10025

smtpd_sasl_auth_enable = yes
smtpd_sasl_exceptions_networks = $mynetworks
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, permit
smtpd_helo_restrictions = permit
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain, permit
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_recipient, reject_unauth_destination, reject_unknown_recipient_domain, reject_unverified_recipient, permit
smtpd_data_restrictions = permit
smtpd_end_of_data_restrictions = permit
smtpd_etrn_restrictions = permit
master.cf

Код: Выделить всё

smtp      inet  n       -       n       -       -       smtpd
	-o content_filter=lmtp:unix:/tmp/dspam.sock

pickup    unix  n       -       n       60      1       pickup
cleanup   unix  n       -       n       -       0       cleanup
qmgr      unix  n       -       n       300     1       qmgr
tlsmgr    unix  -       -       n       1000?   1       tlsmgr
rewrite   unix  -       -       n       -       -       trivial-rewrite
bounce    unix  -       -       n       -       0       bounce
defer     unix  -       -       n       -       0       bounce
trace     unix  -       -       n       -       0       bounce
verify    unix  -       -       n       -       1       verify
flush     unix  n       -       n       1000?   0       flush
proxymap  unix  -       -       n       -       -       proxymap
proxywrite unix -       -       n       -       1       proxymap
smtp      unix  -       -       n       -       -       smtp
relay     unix  -       -       n       -       -       smtp
showq     unix  n       -       n       -       -       showq
error     unix  -       -       n       -       -       error
retry     unix  -       -       n       -       -       error
discard   unix  -       -       n       -       -       discard
local     unix  -       n       n       -       -       local
virtual   unix  -       n       n       -       -       virtual
lmtp      unix  -       -       n       -       -       lmtp
anvil     unix  -       -       n       -       1       anvil
scache    unix  -       -       n       -       1       scache

127.0.0.1:10026 inet  n -       n       -       16      smtpd
	-o content_filter=
	-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
	-o smtpd_helo_restrictions=
	-o smtpd_client_restrictions=
	-o smtpd_sender_restrictions=
	-o smtpd_recipient_restrictions=permit_mynetworks,reject
	-o mynetworks_style=host
	-o smtpd_authorized_xforward_hosts=127.0.0.0/8

clamsmtpd   unix       -       -    n - 16     smtp
	-o smtp_data_done_timeout=1200s
	-o disable_dns_lookups=yes
	-o smtp_send_xforward_command=yes
	-o max_use=50

dspam	unix    -       n       n       -       -    pipe
	flags=Ru user=dspam argv=/usr/bin/dspam
	--client
	--deliver=innocent,spam
	--user ${recipient}
	--mail-from=${sender}
clamsmtps.conf

Код: Выделить всё

OutAddress: 10026
Listen: 127.0.0.1:10025
ClamAddress: /var/run/clamav/clamd.sock
Header: X-Virus-Scanned: ClamAV using ClamSMTP
TempDirectory: /tmp
User: clamav
VirusAction: /usr/local/etc/clamsmtpd.virus.found
sockstat -l | grep 'master\|clamsmtpd\|clamd'

Код: Выделить всё

clamav   clamsmtpd  1723  3  tcp4   127.0.0.1:10025       *:*
clamav   clamd      1707  5  stream /var/run/clamav/clamd.sock
root     dovecot    1051  33 stream /var/run/dovecot/imap-master
root     dovecot    1051  52 stream /var/run/dovecot/auth-master
root     master     891   13 tcp4   *:25                  *:*
root     master     891   14 tcp6   *:25                  *:*
root     master     891   18 stream public/pickup
root     master     891   22 stream public/cleanup
root     master     891   25 stream public/qmgr
root     master     891   29 stream private/tlsmgr
root     master     891   32 stream private/rewrite
root     master     891   35 stream private/bounce
root     master     891   38 stream private/defer
root     master     891   41 stream private/trace
root     master     891   44 stream private/verify
root     master     891   47 stream public/flush
root     master     891   50 stream private/proxymap
root     master     891   53 stream private/proxywrite
root     master     891   56 stream private/smtp
root     master     891   59 stream private/relay
root     master     891   62 stream public/showq
root     master     891   65 stream private/error
root     master     891   68 stream private/retry
root     master     891   71 stream private/discard
root     master     891   74 stream private/local
root     master     891   77 stream private/virtual
root     master     891   80 stream private/lmtp
root     master     891   83 stream private/anvil
root     master     891   86 stream private/scache
root     master     891   92 stream private/clamsmtpd
root     master     891   95 stream private/dspam
root     master     891   103 tcp4  127.0.0.1:10026       *:*
Как видно из вывода sockstat все службы запустились и работают на назначенных портах. Но при отправке тестового вирусного сообщения ничего не происходит.

Код: Выделить всё

X5O!
P%@AP
[4\PZX54
(P^)7CC)7}
$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
Я не сильно обытен с ложных почтовых системах. Подскажите, может я где то накосячил?!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35466
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Postfix не пересылает почту в Clamav

Непрочитанное сообщение Alex Keda » 2016-07-13 7:04:33

А в логах что-то есть?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Amaka
мл. сержант
Сообщения: 78
Зарегистрирован: 2016-02-03 12:05:11
Откуда: Москва

Postfix не пересылает почту в Clamav

Непрочитанное сообщение Amaka » 2016-07-26 15:55:32

TyZ писал(а):...Все работает спам фильтруется почта ходит во все стороны отлично и спам фильтруется. Решил прикрутить Clamav, но вот в чем проблема. Postfix на отрез отказывается пересылать почту антивирусу, как будто полностью игнорирует параметр content_filter. Ниже прилагаю конфиги.... Подскажите, может я где то накосячил?!
Добрый день!
попробуй у себя в файле master.cf указать конкретный фильтр "clamsmtpd:127.0.0.1:10025" для сервиса под именем "127.0.0.1:10026":

Код: Выделить всё

127.0.0.1:10026 inet  n -       n       -       16      smtpd
   -o content_filter=clamsmtpd:127.0.0.1:10025
   -o syslog_name=postfix/10026
   -o ...
   -o ...  
P.S. Строка для подкрашивания в логах "syslog_name=postfix/10026" не обязательна. Просто полезна.
P.S.S. Давать сервису, занимающемуся отправкой писем имя: clamsmtpd, не совсем корректно. Беглый взгляд может не уловить того, что это именно отправляющий сервис. Правильно этот отправляющий сервис именовать clamsmtp. Это просто повысит читабельность твоих конфигов. На работоспособности это никак не скажется.
Всем удачи!