LINUX.ORG.RU
ФорумAdmin

Дублирование почты Exim

 , ,


0

1

Ситуация такая. Требуется чтобы почта при отправке (входящая и исходящая), отправлялась на админский ящик, для контроля. Сервер работает на связке exim+dovecot В конфиге Exim'a в секции begin routers добавил роутер:

 
copy_message:
   driver = redirect
   unseen
   domains = *
   data = adm@domain.ru

Но после того как отправляю письмо, с одной учетки, на другую. Письмо доходит до адресата, но на adm@domain.ru не приходит. Вопрос, что я упустил? Или нужно еще что-то добавить?

Ответ на: комментарий от fbiagent

сразу после begin routers, или нужно перед dnslookup?

Rayman24
() автор топика
Ответ на: комментарий от fbiagent

прописал системный фильтр следующего плана в /etc/exim4/conf.d/main/01_exim_config:

system_filter = /etc/exim/systemfilter
system_filter_pipe_transport = address_pipe
system_filter_user = root
system_filter_group = root

/etc/exim/systemfilter

if $h_from: contains "@domain.ru"
then
     unseen deliver "admn@domain.ru"
endif

if $recipients: contains "@domain.ru"
then
    unseen deliver "admn@domain.ru"

endif

Пытаюсь отправить письмо с test@domain на asd@domain.ru Но письмо отправляется и приходит копия отправителю, а не на admn@domain.ru

Вот кусок лога Exim:

2016-08-23 15:46:46 1bc7M6-0004Gu-5V <= test@domain.ru H=([192.168.0.2]) [192.168.0.2] P=esmtpa A=dovecot_plain:test S=503 id=57BC0D76.3090402@domain.ru
2016-08-23 15:46:46 1bc7M6-0004Gu-5V => test <system-filter> R=local_user T=maildir_home
2016-08-23 15:46:46 1bc7M6-0004Gu-5V => asd <system-filter> R=local_user T=maildir_home
2016-08-23 15:46:46 1bc7M6-0004Gu-5V Completed

Где можно было ошибиться не пойму?

Rayman24
() автор топика
Ответ на: комментарий от Rayman24

это точно надо?

system_filter_pipe_transport = address_pipe
system_filter_user = root
system_filter_group = root
лучше system_filter_user = exim

переменная never_user с каким значением?

exim рестартовал после сохранения /etc/exim/systemfilter ?

fbiagent ★★★
()
Ответ на: комментарий от fbiagent

Да рестартовал, ошибок не было. Пробовал оставлять только одну строку system_filter = /etc/exim/systemfilter , безрезультатно. Про never_user не совсем понятно. Разъясните? В примерах не находил такой переменной

Попробовал не через системный фильтр, а через роутер.

copy_message:
   driver = redirect
   unseen
   domains = *
   data = adm@domain.ru

Почта приходит, но проблема в том, что копия письма приходит и на мой админский ящик(admn@domain) и адресату(test@domain) и отправителю(asd@domain)

Rayman24
() автор топика
Ответ на: комментарий от Rayman24

Вот собственно лог exim

2016-08-24 04:02:02 [11438] cwd=/var/lib/logcheck 3 args: sendmail -oi logcheck
2016-08-24 04:02:02 [11438] 1bcIpe-0002yU-O5 <= logcheck@domain.ru U=logcheck P=local S=8997 M8S=0 T="astra 2016-08-24 04:02 +0700 System Events" from <logcheck@domain.ru> for logcheck
2016-08-24 04:02:02 [11440] cwd=/var/spool/exim4 3 args: /usr/sbin/exim4 -Mc 1bcIpe-0002yU-O5
2016-08-24 04:02:02 [11440] 1bcIpe-0002yU-O5 => asd (asd@domain.ru, admn@domain.ru, admn@domain.ru, test@domain.ru, test@domain.ru, root@domain.ru, root@domain.ru, logcheck@domain.ru) <log$
2016-08-24 04:02:02 [11440] 1bcIpe-0002yU-O5 => admn (asd@domain.ru, asd@domain.ru, admn@domain.ru, admn@domain.ru, test@domain.ru, test@domain.ru, root@domain.ru, root@domain.ru, logcheck$
2016-08-24 04:02:02 [11440] 1bcIpe-0002yU-O5 => test (admn@domain.ru, admn@domain.ru, test@domain.ru, test@domain.ru, root@domain.ru, root@domain.ru, logcheck@domain.ru) <logcheck@domain.r$
2016-08-24 04:02:02 [11440] 1bcIpe-0002yU-O5 Completed QT=0s

Rayman24
() автор топика
Ответ на: комментарий от Rayman24

/etc/exim/systemfilter

if $recipients: contains "@domain.ru" or $header_from: contains "@domain.ru"
then
    unseen deliver  "admn@domain.ru"
endif

если и это не сработает, значит что-то в конфиге экзима надо проверять.

попробуй еще сделать тест

exim -bf user1@domain.ru
или
exim -bF user1@domain.ru

fbiagent ★★★
()
Ответ на: комментарий от fbiagent

Разобрался, написав другой скрипт.

	if $recipients: contains "test@domain.ru"
then
    	unseen deliver "audit@domain.ru"
endif
	if $recipients: contains "test@domain.ru"
then
    	unseen deliver "audit1@domain.ru"
endif
	if $recipients: contains "post@domain.ru"
then
    	unseen deliver "audit@domain.ru"
    	unseen deliver "audit1@domain.ru"
endif

	if $header subject: contains "hello"
then
	unseen deliver "audit@domain.ru"
endif

Интересуют, следующие вещи. Как можно фильтровать почту, по заданным критериям, такие как (дата, вложения, спам, файлы с определенным расширением). Что указывать в скрипте системного фильтра? Есть ли подобные конфиги? в документации не нашел..

Rayman24
() автор топика
Ответ на: комментарий от Rayman24

fbiagent. Пробую, с вложениями через

acl_check_data:
        deny
                message         = Attachment: $found_extension
                demime          = doc:xls
        accept
, но запрещает отправку только файлов на английском. вложения на русском языке, отправляет. Есть ли такая возможность внедрить запрет на вложения с определенными расширениями в системный фильтр?

Rayman24
() автор топика
Ответ на: комментарий от fbiagent

в MAIN CONFIGURATIONS

acl_smtp_mime = acl_check_mime

acl configurations

acl_check_mime:
        deny
                message         = We do not accept attachments like: $mime_filename
                condition       = ${if match{$mime_filename}{\N\.(doc|txt)$\N}}
                decode = default
accept

Rayman24
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.