Письмо отправляется с любым логином и паролем

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.

Как сделать, чтобы не проходила авторизация для несуществующих аккаунтов?

Хостинговая компания 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/

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение xM » 2014-03-15 21:40:35

Как сделать, чтобы не проходила авторизация для несуществующих аккаунтов?
Надо настроить Exim путём формирования правильного конфига.
IT voodoo blog https://kostikov.co

bartwell
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение bartwell » 2014-03-15 21:48:53

А можете подсказать, чем правильный конфиг отличается от описанного в указанной статье?

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение xM » 2014-03-15 22:22:44

bartwell писал(а):А можете подсказать, чем правильный конфиг отличается от описанного в указанной статье?
Проверьте наличие deny в конце acl_check_rcpt и посмотрите отладку аутентификации.
IT voodoo blog https://kostikov.co

bartwell
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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 скачиваний

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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
...
IT voodoo blog https://kostikov.co

bartwell
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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 скачивания

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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 в аутентикаторах устанавливается. Пока закомментировал ее.
Это не обязательно. Просто чтобы под своим логином с других адресов не слали.
Кстати, удивлён, что у вас всё разарботало.
По-меньшей мере пару правил работать у вас корректно не должны ввиду отсутствия исходных данных. :oops:
IT voodoo blog https://kostikov.co

bartwell
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение bartwell » 2014-03-17 12:11:49

Ну да, я так и понял. Позавидовал, тоже захотелось, но не запустилось. Впрочем, это уже ладно, будет время - разберусь.
Как раз два правила и не заработало :) Первое это, второе - проверка HELO, тоже закомментировал. С остальными, вроде, все ок :)

bartwell
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение bartwell » 2014-03-18 23:41:03

И правда, как я мог проглядеть. Добавил sendmail_path = /usr/local/sbin/exim -t в конфиг пхп и все заработало. Еще раз спасибо!

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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"
IT voodoo blog https://kostikov.co

bartwell
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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...
Как это исправить?

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение xM » 2014-04-13 13:32:05

У вас же чётко в дебаге написано, какое правило отшивает почту.
Вот его и смотрите на предмет корректности.
IT voodoo blog https://kostikov.co

bartwell
рядовой
Сообщения: 32
Зарегистрирован: 2008-08-23 13:15:20

Re: Письмо отправляется с любым логином и паролем

Непрочитанное сообщение 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". Да и дальнейшая логика не ясна... Плюс непонятно, как должно быть. Поэтому и прошу помощи.