настройка копирования почты в Exim
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
- Cancer
- Гл. Кастратор
- Сообщения: 1269
- Зарегистрирован: 2008-03-25 12:21:36
- Откуда: г. Ростов-на-Дону
- Контактная информация:
настройка копирования почты в Exim
Я уже не помню, но вроде copy_message , должна быть первой в секции begin routers
Услуги хостинговой компании Host-Food.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/
Тарифы на виртуальные сервера (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/
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
Если у вас входящая почта доставляется локальным пользователям, то проблемы в учётных записях нет - механизм используется тот же.
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
Вот кусок конфига Exima:
Код: Выделить всё
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################
# THE ORDER IN WHICH THE ROUTERS ARE DEFINED IS IMPORTANT! #
# An address is passed to each router in turn until it is accepted. #
######################################################################
begin routers
copy_message:
driver = redirect
unseen
domains = *
data = admn@domain.ru
#####################################################
### end router/00_exim4-config_header
#####################################################
#####################################################
### router/100_exim4-config_domain_literal
#####################################################
### router/100_exim4-config_domain_literal
#################################
# This router handles e-mail addresses in "domain literal" form like
# <user@[10.11.12.13]>. The RFCs require this facility, but it is disabled
# in the default config since it is seldomly used and frequently abused.
# Domain literal support also needs to be enabled in the main config,
# which is automatically done if you use the enable macro
# MAIN_ALLOW_DOMAIN_LITERALS.
Код: Выделить всё
2016-08-11 03:09:50 exim 4.82 daemon started: pid=6451, -q30m, listening for SMTP on [192.168.0.2]:25
2016-08-11 03:09:50 Start queue run: pid=6454
2016-08-11 03:09:50 End queue run: pid=6454
2016-08-11 03:12:09 1bXZrF-0001gx-MC <= test@domain.ru H=([192.168.0.2]) [192.168.0.2] P=esmtpa A=dovecot_plain:test S=508 id=57AB8A99.4060300@domain.ru
2016-08-11 03:12:09 1bXZrF-0001gx-MC => asd <asd@domain.ru> R=local_user T=maildir_home
2016-08-11 03:12:09 1bXZrF-0001gx-MC Completed
2016-08-11 03:17:08 1bXZw4-0001DC-Dp <= logcheck@domain.ru U=logcheck P=local S=55883
2016-08-11 03:17:08 1bXZw4-0001DC-Dp => test <logcheck@domain.ru> R=local_user T=maildir_home
2016-08-11 03:17:08 1bXZw4-0001DC-Dp Completed
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
Делаю, следующее:
Видно, что на 25 порту висит ip моего почтовика exima
Остановил exim.
Но когда стартую занова Exim, то ошибка повторяется в дебаглоге и видимо из за этого почта не отправляется на админский ящик
Отправлено спустя 1 час 33 минуты 46 секунд:
точнее, вот такой лог выдает
Код: Выделить всё
exim -bd -d
2016-08-15 14:41:50 socket bind() to port 25 for address 192.168.0.2 failed: Cannot assign requested address: daemon abandoned
Код: Выделить всё
netstat -nlp|grep 25
tcp 0 0 192.168.0.2:25 0.0.0.0: LISTEN 8883/exim4
Остановил exim.
Код: Выделить всё
exim -bd -d
21:11:07 2723 Exim version 4.69 uid=0 gid=0 pid=2723 D=fffdffff
Berkeley DB: Berkeley DB 4.6.21: (September 27, 2007)
Support for: crypteq iconv() IPv6 GnuTLS move_frozen_messages
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
21:11:07 2723 changed uid/gid: forcing real = effective
21:11:07 2723 uid=0 gid=0 pid=2723
21:11:07 2723 auxiliary group list: <none>
21:11:07 2723 seeking password data for user "Debian-exim": using cached result
21:11:07 2723 getpwnam() succeeded uid=102 gid=105
21:11:07 2723 seeking password data for user "root": cache not available
21:11:07 2723 getpwnam() succeeded uid=0 gid=0
21:11:07 2723 configuration file is /var/lib/exim4/config.autogenerated
21:11:07 2723 log selectors = 0000cffe 00633801
21:11:07 2723 cwd=/root 3 args: exim -bd -d+all
21:11:07 2723 trusted user
21:11:07 2723 admin user
21:11:07 2723 originator: uid=0 gid=0 login=root name=root
21:11:07 2723 listening on 127.0.0.1 port 25
21:11:07 2723 listening on 91.ХХХ.ХХХ.ХХ port 25
21:11:07 2723 pid written to /var/run/exim4/exim.pid
21:11:07 2723 changed uid/gid: running as a daemon
21:11:07 2723 uid=102 gid=105 pid=2723
21:11:07 2723 auxiliary group list: 105
21:11:07 2723 LOG: MAIN
21:11:07 2723 exim 4.69 daemon started: pid=2723, no queue runs, listening for SMTP on [127.0.0.1]:25 [91.ХХХ.ХХХ.ХХ]:25
21:11:07 2723 set_process_info: 2723 daemon: no queue runs, listening for SMTP on [127.0.0.1]:25 [91.ХХХ.ХХХ.ХХ]:25
21:11:07 2723 daemon running with uid=102 gid=105 euid=102 egid=105
21:11:07 2723 Listening...
Отправлено спустя 1 час 33 минуты 46 секунд:
точнее, вот такой лог выдает
Код: Выделить всё
exim -bd -d
Exim version 4.82 uid=0 gid=0 pid=5671 D=fbb95cfd
Berkeley DB: Berkeley DB 5.1.29: (October 25, 2011)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch ldap ldapdn ldapm nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.7.2]
Library version: GnuTLS: Compile: 2.12.20
Runtime: 2.12.20
Library version: Cyrus SASL: Compile: 2.1.25
Runtime: 2.1.25 [Cyrus SASL]
Library version: PCRE: Compile: 8.30
Runtime: 8.30 2012-02-04
Total 18 lookups
Library version: SQLite: Compile: 3.7.13
Runtime: 3.7.13
WHITELIST_D_MACROS: "OUTGOING"
TRUSTED_CONFIG_LIST: "/etc/exim4/trusted_configs"
changed uid/gid: forcing real = effective
uid=0 gid=0 pid=5671
auxiliary group list: <none>
seeking password data for user "uucp": cache not available
getpwnam() succeeded uid=10 gid=10
changed uid/gid: calling tls_validate_require_cipher
uid=105 gid=111 pid=5672
auxiliary group list: <none>
tls_validate_require_cipher child 5672 ended: status=0x0
configuration file is /var/lib/exim4/config.autogenerated
log selectors = 00000ffc 00632001
cwd=/root 3 args: exim -bd -d
trusted user
admin user
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=8
user name "root" extracted from gecos field "root"
originator: uid=0 gid=0 login=root name=root
5671 LOG: MAIN
5671 socket bind() to port 25 for address 192.168.0.2 failed: Address already in use: waiting 30s before trying again (9 more tries)
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
Что ап то? Вы пока не протрассируете всё равно ничего не поймёте и совета не дождётесь.
IT voodoo blog https://kostikov.co
- Alex Keda
- стреляли...
- Сообщения: 35465
- Зарегистрирован: 2004-10-18 14:25:19
- Откуда: Made in USSR
- Контактная информация:
настройка копирования почты в Exim
Ну написано же - порт уже занят.
Вы старый процесс хоть прибейте, прежде чем новый запустить
Вы старый процесс хоть прибейте, прежде чем новый запустить
Убей их всех! Бог потом рассортирует...
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
С отладкой разобрался, спасибо за советы. Exim остановил и отладка заработала.Alex Keda писал(а):Ну написано же - порт уже занят.
Вы старый процесс хоть прибейте, прежде чем новый запустить
Прописал системный фильтр следующего плана в /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
Код: Выделить всё
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
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
$h_From
UPD. Специально не поленился и проверил вот эту конструкцию в системном фильтре на своём сервере.
Всё работает. Регистр заголовков не влияет на работу фильтра.
Код: Выделить всё
if first_delivery and "$h_to:, $h_cc:" contains "@your.domain"
then
unseen deliver "audit@your.domain"
endif
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
в Main Configurations у вас так же?xM писал(а):$h_From
UPD. Специально не поленился и проверил вот эту конструкцию в системном фильтре на своём сервере.
Всё работает. Регистр заголовков не влияет на работу фильтра.Ищите проблему у себя.Код: Выделить всё
if first_delivery and "$h_to:, $h_cc:" contains "@your.domain" then unseen deliver "audit@your.domain" endif
Код: Выделить всё
system_filter = /etc/exim/systemfilter
system_filter_pipe_transport = address_pipe
system_filter_user = root
system_filter_group = root
Код: Выделить всё
if first_delivery and "$h_to:, $h_cc:" contains "@domain.ru"
then
unseen deliver "admn@domain.ru"
endif
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
Код: Выделить всё
...
exim_user = mailnull
exim_group = mail
...
system_filter = /usr/local/etc/exim/filter
system_filter_pipe_transport = address_pipe
system_filter_file_transport = address_file
system_filter_user = mailnull
system_filter_group = mail
...
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
Интересуют, следующие вещи. Как можно фильтровать почту, по заданным критериям, такие как (дата, вложения, спам, файлы с определенным расширением). Что указывать в скрипте системного фильтра? Есть ли подобные конфиги? в документации не нашел..
На данный момент фильтр выглядит так.
На данный момент фильтр выглядит так.
Код: Выделить всё
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
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
Плохо читали. Там есть.
И есть на этом форуме - обсуждалось неоднократно.
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
Код: Выделить всё
acl_smtp_mime = acl_check_mime
acl_check_mime:
deny
message = We do not accept attachments like: $mime_filename
condition = ${if match{$mime_filename}{\N\.(doc|xls)$\N}}
accept
Код: Выделить всё
acl_check_data:
deny
message = Attachment: $found_extension
demime = doc:xls
accept
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
Вот именно. А они там есть.
Даю наводку куда думать. Разберитесь как в письме кодируются вложения и как почтовый клиент их понимает и декодирует.
Когда поймёте, пробегитесь по Perl RegExp.
После же вы напишите свой системный фильтр на раз-два.
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
По спаму делаю следующее:
Код: Выделить всё
if
$h_subject: contains "Make money online" or
$message_body contains " your many"
then
fail text "Spam rejected"
endif
Код: Выделить всё
unrecognized condition word ""Make" near line 35 of filter file
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
Потому что смотрите внимательно синтаксис. У вас двоеточие пропущено.
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
Ага. спасибо, заметил уже потом сам. Заработало.xM писал(а):Потому что смотрите внимательно синтаксис. У вас двоеточие пропущено.
Пробую с вложениями через acl
Код: Выделить всё
acl_check_data:
deny
message = Attachment: $found_extension
demime = doc:xls
accept
Есть ли такая возможность внедрить запрет на вложения с определенными расширениями в системный фильтр? В доке офф. в исходнике и в переведенной не нашел отсылки к вложениям в сообщениях либо к расширениям файлов.
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
Возможность есть. Но думать и вникать сами вы по-прежнему не хотите.
Кстати, не рекомендую использовать demime - оно давно depricated, а в грядущей версии Exim 4.88 будет отсутствовать вовсе.
Читайте про MIME - там придёт понимание как фильтровать вложения.
UPD. Тыкаю носом в предпоследнее сообщение в теме несколькими строками выше.
Кстати, не рекомендую использовать demime - оно давно depricated, а в грядущей версии Exim 4.88 будет отсутствовать вовсе.
Читайте про MIME - там придёт понимание как фильтровать вложения.
UPD. Тыкаю носом в предпоследнее сообщение в теме несколькими строками выше.
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
Спасибо, за инфу. Когда прописываю в "main configurations"xM писал(а):Возможность есть. Но думать и вникать сами вы по-прежнему не хотите.
Кстати, не рекомендую использовать demime - оно давно depricated, а в грядущей версии Exim 4.88 будет отсутствовать вовсе.
Читайте про MIME - там придёт понимание как фильтровать вложения.
UPD. Тыкаю носом в предпоследнее сообщение в теме несколькими строками выше.
Код: Выделить всё
acl_smtp_mime = acl_check_mime
Код: Выделить всё
deny message = We do not accept attachments like: $mime_filename
condition = ${if match{$mime_filename}{\N\.(exe|com|txt|)$\N}}
accept
Не пойму, в правильном ли месте я прописываю?
- xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
- Контактная информация:
настройка копирования почты в Exim
В первом правиле acl_smtp_mime надо прописать decode чтобы установились соответствующие переменные.
Типа
Типа
Код: Выделить всё
...
acl_check_mime:
deny decode = default
...
...
accept
...
IT voodoo blog https://kostikov.co
-
- ефрейтор
- Сообщения: 61
- Зарегистрирован: 2016-03-29 6:32:50
- Откуда: Siberian
настройка копирования почты в Exim
Прописываю. Все равно такая же проблема. У меня эксим разбит на маленькие конфигурационные файлы. например везде в доках написано в MAIN CONFIGURATIONS, прописатьxM писал(а):В первом правиле acl_smtp_mime надо прописать decode чтобы установились соответствующие переменные.
ТипаКод: Выделить всё
... acl_check_mime: deny decode = default ... ... accept ...
Код: Выделить всё
acl_smtp_mime = acl_check_mime
и в нем следует прописать те строки. Но в самом файле идет следующее, например:
Код: Выделить всё
.ifndef MAIN_ACL_CHECK_DATA
MAIN_ACL_CHECK_DATA = acl_check_data
.endif
acl_smtp_data = MAIN_ACL_CHECK_DATA
Так же у меня в конф файлах acl имеется следующее:
Код: Выделить всё
00_exim4-config_header
20_exim4-co~exceptions
30_exim4-co~check_mail
30_exim4-co~check_rcpt
40_exim4-co~check_data