EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты
Модератор: xM
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-03-15 16:10:36
Недавно переехали на новый сервер и возникла проблема: стали жаловаться, что с нашего сервера идет спам. После некоторого времени проверок выяснилось, что оказывается авторизация для отправки письма на сервере стала "необязательной", т.е., письмо можно отправить с любым логином и паролем. Выглядит это так:
Код: Выделить всё
15.03.2014, 16:13:25: SEND - Отправка почты - сообщений в очереди: 1
15.03.2014, 16:13:25: SEND - Подключеник к SMTP-серверу mysite.ru через порт 25
15.03.2014, 16:13:25: SEND - Соединение с SMTP сервером прошло удачно
15.03.2014, 16:13:25: SEND - Аутентификация (программный CRAM-MD5)...
15.03.2014, 16:13:26: SEND - Сервер сообщает об ошибке: Incorrect authentication data
15.03.2014, 16:13:26: SEND - Аутентификация (обычный метод)...
15.03.2014, 16:13:26: SEND - Сервер сообщает об ошибке: Incorrect authentication data
15.03.2014, 16:13:26: SEND - Аутентификация (проверка имени пользователя и пароля)...
15.03.2014, 16:13:26: SEND - Сервер сообщает об ошибке: Incorrect authentication data
15.03.2014, 16:13:26: SEND - ВНИМАНИЕ: не удалось обнаружить на сервере подходящих алгоритмов аутентификации
15.03.2014, 16:13:26: SEND - Отправка сообщения для to@anothersite.ru
<15.03.2014, 16:13:56: SEND - Отправлено сообщение для to@anothersite.ru (439 байт)
15.03.2014, 16:13:57: SEND - Соединение завершено - отправлено сообщений: 1
Все настраивалось по
этой статье, потом был прикручен
dspam.
В логах вижу это:
Код: Выделить всё
Mar 15 16:13:24 didrov exim[92636]: auth_cram_md5 authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data
Mar 15 16:13:24 didrov exim[92636]: auth_cram_md5 authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data
Mar 15 16:13:24 didrov exim[92636]: auth_plain authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data (set_id=asdfasdf)
Mar 15 16:13:24 didrov exim[92636]: auth_plain authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data (set_id=asdfasdf)
Mar 15 16:13:25 didrov exim[92636]: auth_login authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data (set_id=asdfasdf)
Mar 15 16:13:25 didrov exim[92636]: auth_login authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data (set_id=asdfasdf)
Mar 15 16:13:25 didrov exim[92636]: no host name found for IP address МОЙ_IP_ЗДЕСЬ
Mar 15 16:13:25 didrov exim[92636]: Delay 30s for [МОЙ_IP_ЗДЕСЬ] with HELO=Home-PC. Mail from asdfsadf@mail.ru to to@anothersite.ru.
Mar 15 16:13:55 didrov exim[92636]: 1WOnTP-000O68-Hm <= asdfsadf@mail.ru H=(Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25 P=esmtp S=641 id=1479613623.20140315161058@mail.ru from <asdfsadf@mail.ru> for to@anothersite.ru
Mar 15 16:13:55 didrov exim[93546]: 1WOnTP-000O68-Hm => to <to@anothersite.ru> R=dspam_spamscan_router T=dspam_spamcheck_transport
Mar 15 16:13:55 didrov exim[93546]: 1WOnTP-000O68-Hm Completed
В настройках почтового клиента был вбит логин asdfasdf с аналогичным паролем (можно указать любой несуществующий). В качестве обратного адреса в настройках вбито
asdfsadf@mail.ru.
Версия Exim 4.82.
Как сделать, чтобы не проходила авторизация для несуществующих аккаунтов?
bartwell
-
Хостинг HostFood.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/
-
xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
-
Контактная информация:
Непрочитанное сообщение
xM » 2014-03-15 21:40:35
Как сделать, чтобы не проходила авторизация для несуществующих аккаунтов?
Надо настроить Exim путём формирования правильного конфига.
xM
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-03-15 21:48:53
А можете подсказать, чем правильный конфиг отличается от описанного в указанной статье?
bartwell
-
xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
-
Контактная информация:
Непрочитанное сообщение
xM » 2014-03-15 22:22:44
bartwell писал(а):А можете подсказать, чем правильный конфиг отличается от описанного в указанной статье?
Проверьте наличие deny в конце acl_check_rcpt и посмотрите отладку аутентификации.
xM
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-03-16 0:26:40
Да, deny в конце есть. Касаемо отладки, если я все верно понял, то вот ее вывод:
Код: Выделить всё
# exim -bd -q15m -d-all+auth
Exim version 4.82 (FreeBSD 9.2) uid=0 gid=0 pid=75289 D=8
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.2.1 20070831 patched [FreeBSD]]
Library version: OpenSSL: Compile: OpenSSL 0.9.8y 5 Feb 2013
Runtime: OpenSSL 0.9.8y 5 Feb 2013
Library version: PCRE: Compile: 8.34
Runtime: 8.34 2013-12-15
Library version: MySQL: Compile: 5.1.73 [FreeBSD port: mysql51-client-5.1.73_1]
Runtime: 5.1.73
WHITELIST_D_MACROS unset
TRUSTED_CONFIG_LIST unset
configuration file is /usr/local/etc/exim/configure
log selectors = 0000cefe 00233821
cwd=/var/log 4 args: exim -bd -q15m -d-all+auth
trusted user
admin user
75289 listening on all interfaces (IPv6) port 25
75289 listening on all interfaces (IPv4) port 25
75289 pid written to /var/run/exim.pid
75289 LOG: MAIN
75289 exim 4.82 daemon started: pid=75289, -q15m, listening for SMTP on port 25 (IPv6 and IPv4)
75289 daemon running with uid=26 gid=6 euid=26 egid=6
75289 SIGALRM received
75289 1 queue-runner process running
75289 Listening...
75291 Starting queue-runner: pid 75291
75289 Connection request from МОЙ_IP_ЗДЕСЬ port 28748
75289 1 SMTP accept process running
75289 Listening...
75301 Process 75301 is handling incoming connection from [МОЙ_IP_ЗДЕСЬ]
75301 Process 75301 is ready for new message
75301 LOG: MAIN REJECT
75301 auth_cram_md5 authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data
75301 auth_plain authenticator server_condition:
75301 $auth1 =
75301 $auth2 = asdfasdf
75301 $auth3 = qwerty
75301 $1 =
75301 $2 = asdfasdf
75301 $3 = qwerty
75301 expanded string: no
75301 LOG: MAIN REJECT
75301 auth_plain authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data (set_id=asdfasdf)
75301 auth_login authenticator server_condition:
75301 $auth1 = asdfasdf
75301 $auth2 = qwerty
75301 $1 = asdfasdf
75301 $2 = qwerty
75301 expanded string: no
75301 LOG: MAIN REJECT
75301 auth_login authenticator failed for (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25: 535 Incorrect authentication data (set_id=asdfasdf)
75301 LOG: host_lookup_failed MAIN
75301 no host name found for IP address МОЙ_IP_ЗДЕСЬ
75301 LOG: MAIN
75301 Delay 30s for [МОЙ_IP_ЗДЕСЬ] with HELO=Home-PC. Mail from asdfsadf@mail.ru to to@anothersite.ru.
PDKIM >> Hashed body data, canonicalized >>>>>>>>>>>>>>>>>>>>>>>>>>>>>
PDKIM <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
75301 unspool_mbox(): unlinking '/var/spool/exim/scan/1WOvyo-000JaX-FX/1WOvyo-000JaX-FX.eml'
75301 LOG: MAIN
75301 <= asdfsadf@mail.ru H=(Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25 P=esmtp S=630 id=855609127.20140316005810@mail.ru
75301 forked delivery process 76226
75301 Process 75301 is ready for new message
76226 Exim version 4.82 (FreeBSD 9.2) uid=26 gid=6 pid=76226 D=40008
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.2.1 20070831 patched [FreeBSD]]
Library version: OpenSSL: Compile: OpenSSL 0.9.8y 5 Feb 2013
Runtime: OpenSSL 0.9.8y 5 Feb 2013
Library version: PCRE: Compile: 8.34
Runtime: 8.34 2013-12-15
Library version: MySQL: Compile: 5.1.73 [FreeBSD port: mysql51-client-5.1.73_1]
Runtime: 5.1.73
WHITELIST_D_MACROS unset
TRUSTED_CONFIG_LIST unset
76226 configuration file is /usr/local/etc/exim/configure
76226 log selectors = 0000cefe 00233821
76226 cwd=/var/spool/exim 4 args: /usr/local/sbin/exim -d=0x40008 -Mc 1WOvyo-000JaX-FX
76226 trusted user
76226 admin user
76226 LOG: MAIN
76226 => to <to@anothersite.ru> R=dspam_spamscan_router T=dspam_spamcheck_transport
76226 LOG: MAIN
76226 Completed
76226 >>>>>>>>>>>>>>>> Exim pid=76226 terminating with rc=0 >>>>>>>>>>>>>>>>
75301 LOG: smtp_connection MAIN
75301 SMTP connection from (Home-PC) [МОЙ_IP_ЗДЕСЬ] I=[IP_СЕРВЕРА_ЗДЕСЬ]:25 closed by QUIT
75289 child 75301 ended: status=0x0
75289 normal exit, 0
75289 0 SMTP accept processes now running
75289 Listening...
На всякий случай прикладываю и конфиг.
-
Вложения
-
- configure.txt
- (21.34 КБ) 27 скачиваний
bartwell
-
xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
-
Контактная информация:
Непрочитанное сообщение
xM » 2014-03-16 13:58:01
Ну так, извините, у вас нигде аутентификация не требуется в конфиге.
Сравните с началом моего конфига и почувствуйте большую разницу.
Код: Выделить всё
...
acl_check_rcpt:
# --- accept local delivery
accept hosts = :
control = dkim_disable_verify
# --- check address for local domains
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|]
# --- check address for all other domains
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./
# --- HELO/EHLO must be first command according RFC821
deny message = HELO/EHLO required
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
# --- restrict number of recipients for callbacks
drop condition = ${if >{$rcpt_count}{1}{yes}{no}}
message = Only one recipient accepted for callback senders
senders = :
# --- user name spoofing control
deny authenticated = *
condition = ${if !eq{$sender_address}{$authenticated_id}{yes}{no}}
!senders = :
message = Sender's address does not match the user name
delay = 10s
# --- accept authenticated users
accept authenticated = *
control = dkim_disable_verify
# --- HELO/EHLO must be domain or IP
deny condition = ${if !match{$sender_helo_name}{\N\.\N}{yes}{no}}
hosts = !+relay_from_hosts : *
message = HELO/EHLO is not FQDN or IP address
# --- restricted domains according RFC2606bis
deny condition = ${if match{${lc:$sender_helo_name}}{\N(\.local(domain)?|\.lan|\.example|\.test|\.invalid|\.domain|\.home|\.host|\.corp)$\N}{yes}{no}}
hosts = !+relay_from_hosts : *
message = HELO/EHLO contains incorrect TLD
# --- check literal notation for IP as HELO/EHLO according RFC2821
deny condition = ${if isip{$sender_helo_name}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = Literal notation for IP as HELO/EHLO required
# --- remove square brackets for IP in HELO/EHLO
warn set acl_m1 = ${lc:${sg{$sender_helo_name}{\N\[|\]\N}{}}}
# --- check own domains use in senders HELO/EHLO
deny condition = ${if match{$acl_m1}{$primary_hostname:+local_domains}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = Main hostname or domain in your HELO/EHLO. Access denied!
delay = 30s
# --- check own IP use in senders HELO/EHLO
deny condition = ${if isip{$acl_m1}{yes}{no}}
condition = ${if match_ip{$acl_m1}{+primary_ip}{yes}{no}}
hosts = !127.0.0.1 : !localhost : *
message = Main IP in your HELO/EHLO. Access denied!
delay = 30s
# --- accept service messages for local domains
accept local_parts = postmaster : abuse
domains = +local_domains
# --- accept authenticated users only for own domains
deny message = Authentication need to relay.
hosts = !127.0.0.1 : !localhost : *
domains = +local_domains
sender_domains = +local_domains
...
xM
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-03-17 0:47:30
Спасибо! Воткнул ваш пример в код и проблема устранилась. Единственное, так и не смог запустить эту проверку:
Код: Выделить всё
# --- user name spoofing control
deny authenticated = *
condition = ${if !eq{$sender_address}{$authenticated_id}{yes}{no}}
!senders = :
logwrite = [[$sender_address] [$authenticated_id]]
message = Sender address does not match the user name
delay = 10s
Почему-то $authenticated_id пуст, хотя server_set_id в аутентикаторах устанавливается. Пока закомментировал ее.
-
Вложения
-
- configure2.txt
- (18.96 КБ) 23 скачивания
bartwell
-
xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
-
Контактная информация:
Непрочитанное сообщение
xM » 2014-03-17 11:21:32
bartwell писал(а):Спасибо! Воткнул ваш пример в код и проблема устранилась. Единственное, так и не смог запустить эту проверку:
Код: Выделить всё
# --- user name spoofing control
deny authenticated = *
condition = ${if !eq{$sender_address}{$authenticated_id}{yes}{no}}
!senders = :
logwrite = [[$sender_address] [$authenticated_id]]
message = Sender address does not match the user name
delay = 10s
Почему-то $authenticated_id пуст, хотя server_set_id в аутентикаторах устанавливается. Пока закомментировал ее.
Это не обязательно. Просто чтобы под своим логином с других адресов не слали.
Кстати, удивлён, что у вас всё разарботало.
По-меньшей мере пару правил работать у вас корректно не должны ввиду отсутствия исходных данных.

xM
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-03-17 12:11:49
Ну да, я так и понял. Позавидовал, тоже захотелось, но не запустилось. Впрочем, это уже ладно, будет время - разберусь.
Как раз два правила и не заработало

Первое это, второе - проверка HELO, тоже закомментировал. С остальными, вроде, все ок

bartwell
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-03-18 0:14:19
Внезапно обнаружилось, что после такой подмены перестали отправляться письма из PHP-скриптов:
Код: Выделить всё
Mar 18 01:09:50 mysite sendmail[99510]: s2HL9oKF099510: from=www, size=83, class=0, nrcpts=1, msgid=<201403172109.s2HL9oKF099510@mysite.ru>, relay=www@localhost
Mar 18 01:09:50 mysite exim[99511]: H=localhost (mysite.ru) [127.0.0.1] I=[127.0.0.1]:25 F=<www@mysite.ru> rejected RCPT <myaddr@mail.ru>
Mar 18 01:09:50 mysite exim[99511]: H=localhost (mysite.ru) [127.0.0.1] I=[127.0.0.1]:25 F=<www@mysite.ru> rejected RCPT <myaddr@mail.ru>
Mar 18 01:09:50 mysite sendmail[99510]: s2HL9oKF099510: to=myaddr@mail.ru, ctladdr=www (80/80), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30083, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.1, stat=User unknown
Mar 18 01:09:50 mysite sendmail[99510]: s2HL9oKF099510: s2HL9oKG099510: DSN: User unknown
Как можно разрешить скриптам отправку при таком конфиге?
bartwell
-
xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
-
Контактная информация:
Непрочитанное сообщение
xM » 2014-03-18 20:43:38
sendmail ?
xM
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-03-18 23:41:03
И правда, как я мог проглядеть. Добавил sendmail_path = /usr/local/sbin/exim -t в конфиг пхп и все заработало. Еще раз спасибо!
bartwell
-
xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
-
Контактная информация:
Непрочитанное сообщение
xM » 2014-03-20 21:19:45
bartwell писал(а):И правда, как я мог проглядеть. Добавил sendmail_path = /usr/local/sbin/exim -t в конфиг пхп и все заработало. Еще раз спасибо!
Более универсальный и надёжный путь - вообще прибить Sendmail
Код: Выделить всё
root@beta:/home/xM # cat /etc/mail/mailer.conf
# $FreeBSD: release/10.0.0/etc/mail/mailer.conf 93858 2002-04-05 04:25:14Z gshapiro $
#
# Execute the "real" sendmail program, named /usr/libexec/sendmail/sendmail
#
sendmail /usr/local/sbin/exim
send-mail /usr/local/sbin/exim
mailq /usr/local/sbin/exim -bp
newaliases /usr/local/sbin/exim -bi
hoststat /usr/local/sbin/exim
purgestat /usr/local/sbin/exim
и
Код: Выделить всё
root@beta:/home/xM # cat /etc/rc.conf | grep sendmail
sendmail_enable="NONE"
xM
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-04-11 14:34:21
xM писал(а):Более универсальный и надёжный путь - вообще прибить Sendmail
Спасибо, переделал.
Тут внезапно всплыла проблема. Оказывается не доходят письма с внешних доменов. Притом, странно, я же вроде это дело проверял тогда, а тут вот оно...
Проверяю через mail.ru и rambler.ru. Приходит отлуп такого вида:
Код: Выделить всё
SMTP error from remote mail server after RCPT TO:<mymailbox@mysite.ru>:
host mysite.ru [MY_SERVER_IP_HERE]: 550 Administrative prohibition
В логах exim'а вижу следующее:
Код: Выделить всё
Apr 11 15:13:38 mysite exim[4344]: H=(smtp30.i.mail.ru) [94.100.177.90] I=[MY_SERVER_IP_HERE]:25 F=<mymailbox@mail.ru> rejected RCPT <mymailbox@mysite.ru>
Apr 11 15:13:38 mysite exim[4344]: H=(smtp30.i.mail.ru) [94.100.177.90] I=[MY_SERVER_IP_HERE]:25 F=<mymailbox@mail.ru> rejected RCPT <mymailbox@mysite.ru>
А отладка выводит это:
Код: Выделить всё
15:13:16 4337 Exim version 4.82 (FreeBSD 9.2) uid=0 gid=0 pid=4337 D=fffdffff
Probably Berkeley DB version 1.8x (native mode)
Support for: crypteq iconv() IPv6 use_setclassresources PAM Perl Expand_dlfunc OpenSSL Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmjz dbmnz dnsdb dsearch mysql nis nis0 passwd
Authenticators: cram_md5 dovecot plaintext spa
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.2.1 20070831 patched [FreeBSD]]
Library version: OpenSSL: Compile: OpenSSL 0.9.8y 5 Feb 2013
Runtime: OpenSSL 0.9.8y 5 Feb 2013
Library version: PCRE: Compile: 8.34
Runtime: 8.34 2013-12-15
15:13:16 4337 Total 14 lookups
Library version: MySQL: Compile: 5.1.73 [FreeBSD port: mysql51-client-5.1.73_1]
Runtime: 5.1.73
WHITELIST_D_MACROS unset
TRUSTED_CONFIG_LIST unset
15:13:16 4337 changed uid/gid: forcing real = effective
15:13:16 4337 uid=0 gid=0 pid=4337
15:13:16 4337 auxiliary group list: 0
15:13:16 4337 seeking password data for user "mailnull": using cached result
15:13:16 4337 getpwnam() succeeded uid=26 gid=26
15:13:16 4337 seeking password data for user "root": cache not available
15:13:16 4337 getpwnam() succeeded uid=0 gid=0
15:13:16 4338 changed uid/gid: calling tls_validate_require_cipher
15:13:16 4338 uid=26 gid=6 pid=4338
15:13:16 4338 auxiliary group list: 6
15:13:16 4337 tls_validate_require_cipher child 4338 ended: status=0x0
15:13:16 4337 configuration file is /usr/local/etc/exim/configure
15:13:16 4337 log selectors = 0000cefe 00233821
15:13:16 4337 cwd=/usr/local/etc/exim 4 args: exim -bd -q15m -d+all
15:13:16 4337 trusted user
15:13:16 4337 admin user
15:13:16 4337 seeking password data for user "dspam": cache not available
15:13:16 4337 getpwnam() succeeded uid=1004 gid=1004
15:13:16 4337 seeking password data for user "dspam": using cached result
15:13:16 4337 getpwnam() succeeded uid=1004 gid=1004
15:13:16 4337 seeking password data for user "dspam": using cached result
15:13:16 4337 getpwnam() succeeded uid=1004 gid=1004
15:13:16 4337 seeking password data for user "mailnull": cache not available
15:13:16 4337 getpwnam() succeeded uid=26 gid=26
15:13:16 4337 seeking password data for user "mailnull": using cached result
15:13:16 4337 getpwnam() succeeded uid=26 gid=26
15:13:16 4337 originator: uid=0 gid=0 login=root name=Charlie Root
15:13:16 4337 listening on all interfaces (IPv6) port 25
15:13:16 4337 listening on all interfaces (IPv4) port 25
15:13:16 4337 pid written to /var/run/exim.pid
15:13:16 4337 changed uid/gid: running as a daemon
15:13:16 4337 uid=26 gid=6 pid=4337
15:13:16 4337 auxiliary group list: 6
15:13:16 4337 LOG: MAIN
15:13:16 4337 exim 4.82 daemon started: pid=4337, -q15m, listening for SMTP on port 25 (IPv6 and IPv4)
15:13:16 4337 set_process_info: 4337 daemon: -q15m, listening for SMTP on port 25 (IPv6 and IPv4)
15:13:16 4337 daemon running with uid=26 gid=6 euid=26 egid=6
15:13:16 4337 SIGALRM received
15:13:16 4337 1 queue-runner process running
15:13:16 4337 Listening...
15:13:16 4339 Starting queue-runner: pid 4339
15:13:16 4339 exec /usr/local/sbin/exim -q
15:13:16 4337 child 4339 ended: status=0x0
15:13:16 4337 normal exit, 0
15:13:16 4337 0 queue-runner processes now running
15:13:16 4337 Listening...
15:13:38 4337 Connection request from 94.100.177.90 port 32847
15:13:38 4337 interface address=MY_SERVER_IP_HERE port=25
15:13:38 4337 search_tidyup called
15:13:38 4337 1 SMTP accept process running
15:13:38 4337 Listening...
15:13:38 4344 sender_fullhost = [94.100.177.90]
15:13:38 4344 sender_rcvhost = [94.100.177.90]
15:13:38 4344 Process 4344 is handling incoming connection from [94.100.177.90]
15:13:38 4344 host in host_lookup? no (option unset)
15:13:38 4344 set_process_info: 4344 handling incoming connection from [94.100.177.90] I=[MY_SERVER_IP_HERE]:25
15:13:38 4344 host in host_reject_connection? no (option unset)
15:13:38 4344 gethostbyname2 looked up these IP addresses:
15:13:38 4344 name=localhost address=::1
15:13:38 4344 name=localhost address=127.0.0.1
15:13:38 4344 host in "localhost:127.0.0.0/8:192.168.0.0/16"? no (end of list)
15:13:38 4344 host in sender_unqualified_hosts? no (end of list)
15:13:38 4344 cached no match for +relay_from_hosts
15:13:38 4344 host in recipient_unqualified_hosts? no (end of list)
15:13:38 4344 host in helo_verify_hosts? no (option unset)
15:13:38 4344 host in helo_try_verify_hosts? no (option unset)
15:13:38 4344 host in helo_accept_junk_hosts? no (end of list)
15:13:38 4344 expanding: $primary_hostname, ESMTP EXIM $version_number
15:13:38 4344 result: mysite.ru, ESMTP EXIM 4.82
15:13:38 4344 SMTP>> 220 mysite.ru, ESMTP EXIM 4.82
15:13:38 4344 Process 4344 is ready for new message
15:13:38 4344 smtp_setup_msg entered
15:13:38 4344 SMTP<< EHLO smtp30.i.mail.ru
15:13:38 4344 smtp30.i.mail.ru in helo_lookup_domains? no (end of list)
15:13:38 4344 sender_fullhost = (smtp30.i.mail.ru) [94.100.177.90]
15:13:38 4344 sender_rcvhost = [94.100.177.90] (helo=smtp30.i.mail.ru)
15:13:38 4344 set_process_info: 4344 handling incoming connection from (smtp30.i.mail.ru) [94.100.177.90] I=[MY_SERVER_IP_HERE]:25
15:13:38 4344 host in pipelining_advertise_hosts? yes (matched "*")
15:13:38 4344 host in auth_advertise_hosts? yes (matched "*")
15:13:38 4344 host in tls_advertise_hosts? no (option unset)
15:13:38 4344 SMTP>> 250-mysite.ru Hello smtp30.i.mail.ru [94.100.177.90]
15:13:38 4344 250-SIZE 67108864
15:13:38 4344 250-8BITMIME
15:13:38 4344 250-PIPELINING
15:13:38 4344 250-AUTH PLAIN LOGIN CRAM-MD5
15:13:38 4344 250 HELP
15:13:38 4344 SMTP<< MAIL FROM:<mymailbox@mail.ru> SIZE=1842
15:13:38 4344 spool directory space = -2147483648K inodes = 363073456 check_space = 0K inodes = 0 msg_size = 6842
15:13:38 4344 SMTP>> 250 OK
15:13:38 4344 SMTP<< RCPT TO:<mymailbox@mysite.ru>
15:13:38 4344 using ACL "acl_check_rcpt"
15:13:38 4344 processing "accept"
15:13:38 4344 check hosts = :
15:13:38 4344 host in ":"? no (end of list)
15:13:38 4344 accept: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 check domains = +local_domains
15:13:38 4344 expanding: SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'
15:13:38 4344 result: SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 search_open: mysql "NULL"
15:13:38 4344 search_find: file="NULL"
15:13:38 4344 key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'" partial=-1 affix=NULL starflags=0
15:13:38 4344 LRU list:
15:13:38 4344 internal_search_find: file="NULL"
15:13:38 4344 type=mysql key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'"
15:13:38 4344 database lookup required for SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 MySQL query: SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 MYSQL new connection: host=localhost port=0 socket=NULL database=exim user=exim
15:13:38 4344 lookup yielded: mysite.ru
15:13:38 4344 expanding: ${lookup mysql{SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'}}
15:13:38 4344 result: mysite.ru
15:13:38 4344 mysite.ru in "mysite.ru"? yes (matched "mysite.ru")
15:13:38 4344 mysite.ru in "+local_domains"? yes (matched "+local_domains")
15:13:38 4344 check local_parts = ^[.] : ^.*[@%!/|]
15:13:38 4344 mymailbox in "^[.] : ^.*[@%!/|]"? no (end of list)
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 check domains = !+local_domains
15:13:38 4344 expanding: SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'
15:13:38 4344 result: SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 search_open: mysql "NULL"
15:13:38 4344 cached open
15:13:38 4344 search_find: file="NULL"
15:13:38 4344 key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'" partial=-1 affix=NULL starflags=0
15:13:38 4344 LRU list:
15:13:38 4344 internal_search_find: file="NULL"
15:13:38 4344 type=mysql key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'"
15:13:38 4344 cached data used for lookup of SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 lookup yielded: mysite.ru
15:13:38 4344 expanding: ${lookup mysql{SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'}}
15:13:38 4344 result: mysite.ru
15:13:38 4344 mysite.ru in "mysite.ru"? yes (matched "mysite.ru")
15:13:38 4344 mysite.ru in "!+local_domains"? no (matched "!+local_domains")
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 expanding: $sender_helo_name
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 expanding:
15:13:38 4344 result:
15:13:38 4344 condition: eq{$sender_helo_name}{}
15:13:38 4344 result: false
15:13:38 4344 expanding: yes
15:13:38 4344 result: yes
15:13:38 4344 skipping: result is not used
15:13:38 4344 expanding: no
15:13:38 4344 result: no
15:13:38 4344 expanding: ${if eq{$sender_helo_name}{}{yes}{no}}
15:13:38 4344 result: no
15:13:38 4344 check condition = ${if eq{$sender_helo_name}{}{yes}{no}}
15:13:38 4344 = no
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "drop"
15:13:38 4344 expanding: $rcpt_count
15:13:38 4344 result: 1
15:13:38 4344 expanding: 1
15:13:38 4344 result: 1
15:13:38 4344 condition: >{$rcpt_count}{1}
15:13:38 4344 result: false
15:13:38 4344 expanding: yes
15:13:38 4344 result: yes
15:13:38 4344 skipping: result is not used
15:13:38 4344 expanding: no
15:13:38 4344 result: no
15:13:38 4344 expanding: ${if >{$rcpt_count}{1}{yes}{no}}
15:13:38 4344 result: no
15:13:38 4344 check condition = ${if >{$rcpt_count}{1}{yes}{no}}
15:13:38 4344 = no
15:13:38 4344 drop: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "accept"
15:13:38 4344 check authenticated = *
15:13:38 4344 accept: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 expanding: $sender_helo_name
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 expanding: ${lc:$sender_helo_name}
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 expanding: \N(\.local(domain)?|\.lan|\.example|\.test|\.invalid|\.domain|\.home|\.host|\.corp)$\N
15:13:38 4344 result: (\.local(domain)?|\.lan|\.example|\.test|\.invalid|\.domain|\.home|\.host|\.corp)$
15:13:38 4344 condition: match{${lc:$sender_helo_name}}{\N(\.local(domain)?|\.lan|\.example|\.test|\.invalid|\.domain|\.home|\.host|\.corp)$\N}
15:13:38 4344 result: false
15:13:38 4344 expanding: yes
15:13:38 4344 result: yes
15:13:38 4344 skipping: result is not used
15:13:38 4344 expanding: no
15:13:38 4344 result: no
15:13:38 4344 expanding: ${if match{${lc:$sender_helo_name}}{\N(\.local(domain)?|\.lan|\.example|\.test|\.invalid|\.domain|\.home|\.host|\.corp)$\N}{yes}{no}}
15:13:38 4344 result: no
15:13:38 4344 check condition = ${if match{${lc:$sender_helo_name}}{\N(\.local(domain)?|\.lan|\.example|\.test|\.invalid|\.domain|\.home|\.host|\.corp)$\N}{yes}{no}}
15:13:38 4344 = no
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 expanding: $sender_helo_name
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 condition: isip{$sender_helo_name}
15:13:38 4344 result: false
15:13:38 4344 expanding: yes
15:13:38 4344 result: yes
15:13:38 4344 skipping: result is not used
15:13:38 4344 expanding: no
15:13:38 4344 result: no
15:13:38 4344 expanding: ${if isip{$sender_helo_name}{yes}{no}}
15:13:38 4344 result: no
15:13:38 4344 check condition = ${if isip{$sender_helo_name}{yes}{no}}
15:13:38 4344 = no
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "warn"
15:13:38 4344 expanding: $sender_helo_name
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 expanding: \N\[|\]\N
15:13:38 4344 result: \[|\]
15:13:38 4344 expanding:
15:13:38 4344 result:
15:13:38 4344 expanding: ${sg{$sender_helo_name}{\N\[|\]\N}{}}
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 expanding: ${lc:${sg{$sender_helo_name}{\N\[|\]\N}{}}}
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 check set acl_m1 = ${lc:${sg{$sender_helo_name}{\N\[|\]\N}{}}}
15:13:38 4344 = smtp30.i.mail.ru
15:13:38 4344 warn: condition test succeeded in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 expanding: $acl_m1
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 expanding: $primary_hostname:+local_domains
15:13:38 4344 result: mysite.ru:+local_domains
15:13:38 4344 condition: match{$acl_m1}{$primary_hostname:+local_domains}
15:13:38 4344 result: false
15:13:38 4344 expanding: yes
15:13:38 4344 result: yes
15:13:38 4344 skipping: result is not used
15:13:38 4344 expanding: no
15:13:38 4344 result: no
15:13:38 4344 expanding: ${if match{$acl_m1}{$primary_hostname:+local_domains}{yes}{no}}
15:13:38 4344 result: no
15:13:38 4344 check condition = ${if match{$acl_m1}{$primary_hostname:+local_domains}{yes}{no}}
15:13:38 4344 = no
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 expanding: $acl_m1
15:13:38 4344 result: smtp30.i.mail.ru
15:13:38 4344 condition: isip{$acl_m1}
15:13:38 4344 result: false
15:13:38 4344 expanding: yes
15:13:38 4344 result: yes
15:13:38 4344 skipping: result is not used
15:13:38 4344 expanding: no
15:13:38 4344 result: no
15:13:38 4344 expanding: ${if isip{$acl_m1}{yes}{no}}
15:13:38 4344 result: no
15:13:38 4344 check condition = ${if isip{$acl_m1}{yes}{no}}
15:13:38 4344 = no
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "accept"
15:13:38 4344 check local_parts = postmaster : abuse
15:13:38 4344 mymailbox in "postmaster : abuse"? no (end of list)
15:13:38 4344 accept: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 processing "deny"
15:13:38 4344 check hosts = !127.0.0.1 : !localhost : *
15:13:38 4344 gethostbyname2 looked up these IP addresses:
15:13:38 4344 name=localhost address=::1
15:13:38 4344 name=localhost address=127.0.0.1
15:13:38 4344 host in "!127.0.0.1 : !localhost : *"? yes (matched "*")
15:13:38 4344 check domains = +local_domains
15:13:38 4344 expanding: SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'
15:13:38 4344 result: SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 search_open: mysql "NULL"
15:13:38 4344 cached open
15:13:38 4344 search_find: file="NULL"
15:13:38 4344 key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'" partial=-1 affix=NULL starflags=0
15:13:38 4344 LRU list:
15:13:38 4344 internal_search_find: file="NULL"
15:13:38 4344 type=mysql key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'"
15:13:38 4344 cached data used for lookup of SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 lookup yielded: mysite.ru
15:13:38 4344 expanding: ${lookup mysql{SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'}}
15:13:38 4344 result: mysite.ru
15:13:38 4344 mysite.ru in "mysite.ru"? yes (matched "mysite.ru")
15:13:38 4344 mysite.ru in "+local_domains"? yes (matched "+local_domains")
15:13:38 4344 check sender_domains = +local_domains
15:13:38 4344 expanding: SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'
15:13:38 4344 result: SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 search_open: mysql "NULL"
15:13:38 4344 cached open
15:13:38 4344 search_find: file="NULL"
15:13:38 4344 key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'" partial=-1 affix=NULL starflags=0
15:13:38 4344 LRU list:
15:13:38 4344 internal_search_find: file="NULL"
15:13:38 4344 type=mysql key="SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'"
15:13:38 4344 cached data used for lookup of SELECT `domain` FROM `domain` WHERE `domain`='mysite.ru' AND `active`='1'
15:13:38 4344 lookup yielded: mysite.ru
15:13:38 4344 expanding: ${lookup mysql{SELECT `domain` FROM `domain` WHERE `domain`='${domain}' AND `active`='1'}}
15:13:38 4344 result: mysite.ru
15:13:38 4344 mail.ru in "mysite.ru"? no (end of list)
15:13:38 4344 mail.ru in "+local_domains"? no (end of list)
15:13:38 4344 deny: condition test failed in ACL "acl_check_rcpt"
15:13:38 4344 end of ACL "acl_check_rcpt": implicit DENY
15:13:38 4344 SMTP>> 550 Administrative prohibition
15:13:38 4344 LOG: MAIN REJECT
15:13:38 4344 H=(smtp30.i.mail.ru) [94.100.177.90] I=[MY_SERVER_IP_HERE]:25 F=<mymailbox@mail.ru> rejected RCPT <mymailbox@mysite.ru>
15:13:38 4344 SMTP<< DATA
15:13:38 4344 SMTP>> 503-All RCPT commands were rejected with this error:
15:13:38 4344 SMTP>> 503-Administrative prohibition
15:13:38 4344 SMTP>> 503 Valid RCPT command must precede DATA
15:13:38 4344 SMTP<< QUIT
15:13:38 4344 SMTP>> 221 mysite.ru closing connection
15:13:38 4344 LOG: smtp_connection MAIN
15:13:38 4344 SMTP connection from (smtp30.i.mail.ru) [94.100.177.90] I=[MY_SERVER_IP_HERE]:25 closed by QUIT
15:13:38 4344 search_tidyup called
15:13:38 4344 close MYSQL connection: localhost/exim/exim
15:13:38 4337 child 4344 ended: status=0x0
15:13:38 4337 normal exit, 0
15:13:38 4337 0 SMTP accept processes now running
15:13:38 4337 Listening...
Как это исправить?
bartwell
-
xM
- ст. лейтенант
- Сообщения: 1316
- Зарегистрирован: 2009-01-15 23:57:41
- Откуда: Königsberg
-
Контактная информация:
Непрочитанное сообщение
xM » 2014-04-13 13:32:05
У вас же чётко в дебаге написано, какое правило отшивает почту.
Вот его и смотрите на предмет корректности.
xM
-
bartwell
- рядовой
- Сообщения: 32
- Зарегистрирован: 2008-08-23 13:15:20
Непрочитанное сообщение
bartwell » 2014-04-13 14:36:42
Я пытался понять в чем же дело, но так и не понял. Я бы предположил, что проблема в этом правиле (подходит под вывод):
Код: Выделить всё
# --- accept authenticated users only for own domains
deny message = Authentication need to relay.
hosts = !127.0.0.1 : !localhost : *
domains = +local_domains
sender_domains = +local_domains
Но смущает то, что вместо сообщения "Authentication need to relay" выводится "Administrative prohibition". Да и дальнейшая логика не ясна... Плюс непонятно, как должно быть. Поэтому и прошу помощи.
bartwell