LINUX.ORG.RU
решено ФорумAdmin

Не пойму как настроить релей только исходящей почты.

 ,


0

1

Собственно, сабж. Хочется, чтобы исходящие письма с сервера test.localnet пересылались на сервер mail.localnet, а входящие письма на адреса *@test.localnet обрабатывались им самим. На сервере стоит Debian 6 с exim4. С исходящей почтой проблем нет, все замечательно улетает на mail.localnet, а вот входящая почта ходить не хочет.

cat /etc/exim4/update-exim4.conf.conf

dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost='test.localnet'
dc_relay_domains='*.localnet'
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='mail.localnet'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

При таком конфиге входящее письмо зацикливается и начинает гонять туда-сюда между двумя этими серверами. Если dc_relay_domains сделать пустым, то возвращается отлуп

<test@test.localnet>: host test.localnet[192.168.0.blah] said: 550 relay not permitted
    (in reply to RCPT TO command)
С exim4 ни разу до этого не ковырялся, поэтому скорее всего вопрос глупый, но с ходу решить не получилось.

Ответ на: комментарий от zloelamo

Собственно там нужно будет ответить на несколько тупых вопросов. В частности принимать ли локальную почту и для какого домена и кого использовать в качестве пересыльщика.

zloelamo ★★★★ ()
Ответ на: комментарий от zloelamo

Хех. Это само собой.

Так и делал: отправка через smarthost, прием по SMTP/fetchmail (в конфиге это видно - dc_eximconfig_configtype='smarthost'), почтовое имя системы задано, слушаю все интерфейсы, релеить почту мне не надо (отправка и так идет через smarthost, dc_relay_domains=", dc_relay_nets="), смартхост задан (dc_smarthost='mail.localnet'), остальное не так важно. В итоге отправка почты работает, на приемку идет отлуп, в логах exim:

H=mail.localnet (domain.ru) [ip_mail.locallnet] F=<user@domain.ru> rejected RCPT <test@test.localnet>: relay not permitted

strangeman ★★★★ ()
Ответ на: комментарий от strangeman

Кинь конфиг, который у тебя получается после dpkg-reconf, а не тот, который ты руками уже изменил.

По твоей задаче ничего кроме правильных ответов при reconf не надо.

zloelamo ★★★★ ()
Ответ на: комментарий от zloelamo
# cat /etc/exim4/update-exim4.conf.conf 
# /etc/exim4/update-exim4.conf.conf
#
# Edit this file and /etc/mailname by hand and execute update-exim4.conf
# yourself or use 'dpkg-reconfigure exim4-config'
#
# Please note that this is _not_ a dpkg-conffile and that automatic changes
# to this file might happen. The code handling this will honor your local
# changes, so this is usually fine, but will break local schemes that mess
# around with multiple versions of the file.
#
# update-exim4.conf uses this file to determine variable values to generate
# exim configuration macros for the configuration file.
#
# Most settings found in here do have corresponding questions in the
# Debconf configuration, but not all of them.
#
# This is a Debian specific file

dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces=''
dc_readhost='test.localnet'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='mail.localnet'
CFILEMODE='644'
dc_use_split_config='false'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'
strangeman ★★★★ ()
Ответ на: комментарий от strangeman

Очень, интерестно. Возможно проблема за пределами exim. Работает ли nslookup test.localnet?

zloelamo ★★★★ ()
Ответ на: комментарий от zloelamo

У тебя пользователь test на это хосте есть?

Да, есть.

В DNSе все нормально прописано, nslookup отдает айпишник сервера.

strangeman ★★★★ ()
Ответ на: комментарий от strangeman

Вот здесь, что-то фантастическое:

17:40:18 15647 test.localnet in «@:localhost:test.localnet»? no (end of list) 17:40:18 15647 test.localnet in «+local_domains»? no (end of list)

zloelamo ★★★★ ()
Ответ на: комментарий от zloelamo

В конфиге так и есть:

cat /var/lib/exim4/config.autogenerated | grep MAIN_LOCAL_DOMAINS
.ifndef MAIN_LOCAL_DOMAINS
MAIN_LOCAL_DOMAINS=@:localhost:test.localnet
domainlist local_domains = MAIN_LOCAL_DOMAINS

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

strangeman ★★★★ ()
Ответ на: комментарий от strangeman

Да это все верно. Тут указывается какой домен считать локальным. Фантастика в том, что экзим не находит в этом списке test.localnet:

test.localnet in «@:localhost:test.localnet»? no

zloelamo ★★★★ ()
Ответ на: комментарий от zloelamo

Все, понял свою ошибку. При dpkg-reconfigure exim4-config, на вопрос «Другие места назначения, для которых должна приниматься почта: » надо указывать то же самое DNS имя, которое указывал в «Почтовое имя системы:». Если оставить поле пустое или указать что-то другое (если, например, сервер имеет несколько имен) - то получаем искомую ситуацию. Мда, не очевидно как-то.

А конкретная запись в логе - это не фантастика, это я неверно заменил реальные имена. :)

strangeman ★★★★ ()
Ответ на: комментарий от strangeman

А конкретная запись в логе - это не фантастика, это я неверно заменил реальные имена. :)

Молодец, блин.

которое указывал в «Почтовое имя системы:»

Это самое имя просто идентификатор, не влияющий на разбор почты. Да, пожалуй эта ошибка была очевидна, просто у меня везде это имя совпадает с hostname, а хостнейм попадает под @, поэтому я не заметил подвоха и не смог смоделировать.

zloelamo ★★★★ ()
Ответ на: комментарий от strangeman

Я же говорил, что нужно просто правильно ответить на вопросы.

zloelamo ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.