Добрый день, уважаемыеFreeBSD 7.3
Sendmail + LDAP + Cyrus SASL + ... Остальное не важно в данном посте
В LDAP'е хранятся учетки почты. После того, как перешел с использования passwdb на использование учеток для почты из LDAP стало приходить огромная такая туча сообщений от postmaster на мой админский ящик.
Т.е. alias'ы настроены так, что все письма от демонов пересылаются на admin@domain.ru.
Так вот, на этот ящик в день я получаю 15-20 сообщений о невозможности доставить почту, формат всех писем такой:
++++++++++++++++++++++++++++
The original message was received at Tue, 23 Aug 2011 13:31:34 +0400 (MSD)
from localhost
with id p7N9VYjJ023526----- The following addresses had permanent fatal errors -----
<klmn@solyd-ent.ru>
(reason: 550 "Unknown User")----- Transcript of session follows -----
... while talking to mail.solyd-ent.ru.:
+++++++++++++++++++++++++++++Пользователь, которому шлется письмо всегда Unknown (или NO SUCH USER HERE), домены всегда разные, айпишник тоже. Всегда "from localhost", всегда отправка идет от MAILER-DAEMON (Return-Path: <MAILER-DAEMON> и envelope-from MAILER-DAEMON)
На сервере используется аутентификация со сложными паролями в хеше DIGEST-MD5 или CRAM-MD5. Пароли часто меняются. Прошел кучу тестов на релеинг - все отрицательны. Да и, ошибки я допустить в настройке не мог - local-host-name, access остались прежними, там ничего не менялось. Изменилось только то, что Sendmail теперь ищет пользователя не в passwdb, а в LDAP.
Я честно не знаю, куда плевать, подскажите, пожалуйста, дельные советы, если кто знает.
Привожу файлы конфигурации (access и local-host-names):
+++++++++++++ access ++++++++++++++
127.0.0.1 RELAY
+++++++++++++++++++++++++++++++++++
+++++++++++++ local-host-names ++++++++++++++
domain.ru
domain2.ru
domain3.ru
hostmname.domain.ru+++++++++++++++++++++++++++++++++++
Единственная мысль - это подделка обратных адресов для правил проверки check_*, хотя я плохо себе это представляю.
SMTP аутентификация проходит через LDAP каталог. Для аутентификации из LDAP берется PASSWORD и имя пользователя, без доменной части.
SASLAUTH.CONF:
++++++++++++++++++++++++++++++++++
ldap_servers: ldap://localhost/
ldap_bind_dn: cn=vmail,dc=domain,dc=ru
ldap_bind_pw: blablabla
ldap_version: 3
ldap_search_base: ou=accounts,dc=domain,dc=ru
ldap_auth_method: custom
ldap_filter: uid=%U
log_level: 7
mech_list: DIGEST-MD5 CRAM-MD5
++++++++++++++++++++++++++++++++++Пример записи в LDAP:
++++++++++++++++++++++++++++++++++
dn: uid=projects,ou=accounts,dc=domain,dc=ru
objectClass: top
objectClass: person
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: inetLocalMailRecipient
uid: projects
cn: projects
sn: projects
mailLocalAddress: projects@domain.ru
mailHost: mail.domain.ru
homeDirectory: /usr/home/virtualmail/projects/
loginShell: /sbin/nologin
mail: projects@domain.ru
mailRoutingAddress: projects
userPassword:: BLABLABLABLABLABLA
gidNumber: 1034
uidNumber: 1034
++++++++++++++++++++++++++++++++++
Либо же это та же проблема, что и тут:http://www.opennet.me/openforum/vsluhforumID1/69093.html
"Зато спамеры очень даже написали на некий адрес твоего почтовика, на который
доставить почту нет возможности." - и мне необходимо написать правило проверки заголовков получаемых писем:"если такого пользователя нет, то давать сразу отлуп". Похоже, что сендмыл в любом случае ассептит письмо и лишь потом, на уровне LDA проверяется наличие получателя.
Однако, я очень прошу советов тех, кто сталкивался или знает ответы на подобные вопросы.
Заранее спасибо!
>++++++++++++++++++++++++++++
>The original message was received at Tue, 23 Aug 2011 13:31:34 +0400 (MSD)
>from localhost
>with id p7N9VYjJ023526Хотелось бы взглянуть на результат команды:
egrep `egrep p7N9VYjJ023526 /var/log/maillog|egrep -o "[a-zA-Z0-9]{14}:"|sort|uniq|sed ':repeat; $!{$!N;b repeat}; s/\n/|/g'` /var/log/maillog
>>++++++++++++++++++++++++++++
>>The original message was received at Tue, 23 Aug 2011 13:31:34 +0400 (MSD)
>>from localhost
>>with id p7N9VYjJ023526
> Хотелось бы взглянуть на результат команды:
> egrep `egrep p7N9VYjJ023526 /var/log/maillog|egrep -o "[a-zA-Z0-9]{14}:"|sort|uniq|sed
> ':repeat; $!{$!N;b repeat}; s/\n/|/g'` /var/log/maillogРаспаковал лог от 23го августа, выполнил команду, получил следующее (и пусть не смущает то, что файл в моей домашней директории - я просто лог файл туда скопипастил=) ):
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[root@mail /var/log]# egrep `egrep p7N9VYjJ023526 /usr/home/vertigo/maillog.1|egrep -o "[a-zA-Z0-9]{14}:"|sort|uniq|sed ':repeat; $!{$!N;b repeat}; s/\n/|/g'` /usr/home/vertigo/maillog.1 >> postmaster
sed: 1: ":repeat; $!{$!N;b repea ...": unused label 'repeat; $!{$!N;b repeat}; s/\n/|/g'
egrep: p7N9VYjJ023526:: No such file or directory
egrep: p7N9VYjK023526:: No such file or directory[root@mail /var/log]# ee postmaster
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <advise@domain.ru>: autwhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <ales@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <boris@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <ct@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <enginerydd@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <ery@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <imagey@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <infoi@domain.ru>: auto
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <sale@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:31 mail milter-greylist: p7N9VQjK023518: addr 118.175.14.42 from <klmn@solyd-ent.ru> rcpt <vay@domain.ru>: autowhitelisted for 168:00:00
/usr/home/vertigo/maillog.1:Aug 23 13:31:32 mail sm-mta[23518]: p7N9VQjK023518: from=<klmn@solyd-ent.ru>, size=20944, class=0, nrcpts=10, msgid=<E415667F03314
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23518]: p7N9VQjK023518: Milter add: header: X-Spam-Status: No, score=4.3 required=8.5 tests=BAYES_99,HTML_MESSAGE,MIME_QP_LONG_LINE,RDNS_NONE scantime=2.5,size=21849,user=root,uid=58,required_score=8.5,rhost=localhost,raddr=127.0.0.1,rport=52258,mid=<E415667F03314F2C988F26AA0D7E74B4@BOSSNHSO>,bayes=1.000000,autolearn=no
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23518]: p7N9VQjK023518: Milter add: header: X-Spam-Level: ****
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23518]: p7N9VQjK023518: Milter add: header: X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23518]: p7N9VQjK023518: Milter add: header: X-Greylist: Delayed for 03:31:08 by milter-greylist-4.2.7
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<vay@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<ales@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<boris@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<ct@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<enginerydd@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local,
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<ery@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<imagey@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<infoi@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<sale@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: to=<advise@domain.ru>, delay=00:00:03, xdelay=00:00:00, mailer=local, pri=320944, dsn=5.1.1, stat=User unknown
/usr/home/vertigo/maillog.1:Aug 23 13:31:34 mail sm-mta[23526]: p7N9VQjK023518: p7N9VYjJ023526: DSN: User unknown++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Странно то, что он вывел записи с айдишником письма p7N9VQjK023518, а не p7N9VYjJ023526. И только в последней записи есть искомый айдишник.
Похоже, действительно, мне шлют почту на несуществующие адреса (а таких адресов, как в приведенном выше куске лога, конечно, у меня нет) и мне надо заставить Sendmail проверять получателя сразу, при получении письма.
Предполагаю, что мне помогут пункты 5.1 и 5.2 вот отсюда:
http://linux.ufaras.ru/sendmail2.html#5.1
Я прав? =)
P.S. спасибо Medlar и за доку и за ответ =)