[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Postfix Etch



На Fri, 10 Nov 2006 23:10:51 +0200
Dmitriy Sirant <lex@init.net.ua> записано:
> >>>> Nov 10 15:12:51 mail postfix/smtpd[10524]: NOQUEUE: reject: RCPT
> >>>> from bzq-84-108-219-70.cablep.bezeqint.net[84.108.219.70]: 451
> >>>> 4.3.0 <heathcliff382@ojenlaege.dk>: Temporary lookup failure; 
> >>>> from=<heathcliff382@ojenlaege.dk>
> >>>> to=<some_real_client@krig.dp.ua> proto=SMTP
> >>>> helo=<bzq-84-108-219-70.cablep.bezeqint.net>
> >>> А случаем не  reject_unknown_client в одном из правил у тебя? А
> >>> нет, хост резолвится... Тогда может
> >>> reject_unknown_sender_domain ? Да и фром очень на спамера похож...
> >> Да, но ошибка то в другом... если бы спамер или хост плохой - то
> >> ошибка была бы не Temporary lookup failure.
> > Если не нашел домен - да, а если искал, но DNS вернул ошибку, то
> > вполне себе "Temporary lookup failure", хотя в случае с DNS он
> > может и по другому ругаться, не помню.
Че-та мне кажется, что в вышепроцитированном куске я был прав.
> > Таки ты не ответил на вопрос..
> > Хотя, насколько я понимаю, проблема может быть еще и с каким-нибудь
> > запросом к mysql.
> > Проверь что все они корректные. Например, что алиасы правильно
> > работают.
> Понимаешь в чем беда, если бы запросы были поломаны - то не работало
> бы вообще. А так не ходит менее 1% писем причем одно и то же письмо
> может быть откинуто а через минуту оно приймется и пройдет.
Если с одним и тем же письмом такая фигня, то значит либо DNS глючит,
либо к MySQL много соединений. Но судя по логам, ИМХО все же первое.

> >> Начал по логам mysql лазить... обнаружил еще одну непонятную вещь:
> >>
> >> В main.cf
> >> virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-maps.cf
> >>
> >> В mysql-virtual-maps.cf
> >> user = ***
> >> password = ***
> >> dbname = statistic
> >> table = services
> >> select_field = CONCAT(SUBSTRING_INDEX(login,'@', 
> >> -1),'/',SUBSTRING_INDEX(login,'@',1),'/Maildir/')
> >> where_field = login
> >> additional_conditions = AND service_id = 4
> >> hosts = ***
> >>
> >> В логах mysql
> >> SELECT CONCAT(SUBSTRING_INDEX(login,'@', 
> >> -1),'/',SUBSTRING_INDEX(login,'@',1),'/Maildir/') FROM services
> >> WHERE login='init.net.ua' AND service_id = 4
> >>
> >> Это вопрос опять таки похож на тот, куда ссылку приводили - но там 
> >> лечение не указано.
> > В блоге по ссылке вообще что-то левое, ИМХО, к тебе никакого
> > отношения не имеющее. 
> >> Поидее в login должен подставлятся 
> >> some-real-user@init.net.ua а не домен, причем бывает, что запрос
> >> идет на чужой домен тоже (например yahoo.com.tw).
> > А virtual_alias_domains = $virtual_alias_maps
> > да? тогда это просто проверка того факта, что ты обслуживаешь этот
> > виртуальный домен.
> Нет. virtual_alias_domains другой запрос, а не тот что я привел выше.
Как другой? у тебя в конфиге другого нету, значит по дефолту
virtual_alias_domains = $virtual_alias_maps и он именно проверяет
существование виртуального домена с данным именем.
(Ну или то же самое для virtual_mailbox_domains и
virtual_mailbox_maps)
> > Чужой домен - это попытка испоьлзовать тебя как опер-релэй (постфикс
> > проверяет, принимаешь ли ты для этого домена почту)
> Для этого третий запрос который relay_domains вызывает
неее... при чем здесь relay_domains? сервер получает письмо на
xxx@yahoo.com - через тебя пытаются релеить - и смотрит есть ли
yahoo.com среди виртуальных доменов.
> > 
> > 
> > И вообще кинь уж тогда вывод postconf'а почитать, что ли...
> > 
> > 
> 
> Странно, а в выводе postconf -n есть строка
> relay_domains = $relay_host
> а вот строки из конфига
> relay_host = proxy:mysql:/etc/postfix/mysql-relay.cf
> почемуто нет. Это означает что он ее не принял ?

-n     Print parameter settings that are not left at their
built-in  default value, because they are explicitly specified in
main.cf.

postconf(1)

А в конфиге что-нить вроде relay_domains = $relay_host есть? А зачем?
Ты что-то релеишь? А никакого relay_host вроде нету, есть relayhost, у
которого совсем другой смысл.
Тогда уж сразу писать relay_domains =
proxy:mysql:/etc/postfix/mysql-relay.cf, если релеем работаешь.

И вообще, ИМХО у тебя в конфиге много ненужного. Ты бы почитал
документацию, а не копировал бы полностью всякие howto, часть из
которых абсолютное legacy, а часть с ошибками.

> reject_invalid_helo_hostname, reject_unknown_helo_hostname
> smtpd_recipient_restrictions = permit_mynetworks, 
> permit_sasl_authenticated, reject_unauth_destination, 
> check_policy_service inet:127.0.0.1:60000, reject_rbl_client
> bl.spamcop.net smtpd_reject_unlisted_sender = yes
Это переформатирование сделало? Или действительно ошибка и они на
одной строке?
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_local_domain = $myhostname
> smtpd_sasl_security_options = noanonymous
> smtpd_sender_restrictions = reject_unknown_sender_domain
Вот, похоже, что из-за этого и вылезают те lookup falure.
Postfix пытается проверить существование домена для сендера и
натыкается на ошибку в DNS. Что я и писал еще раньше.



Reply to: