Решено: Exim: алиас для root на 'внешний' адрес

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Решено: Exim: алиас для root на 'внешний' адрес

Сообщение Poor Fred »

Работает почтовый сервер на связке Exim+Dovecot.
Ищу ответ на вопрос: как сделать алиас для системных адресатов, типа root, postmaster или простых юзеров на "внешние" адреса? Пытался сделать стандартными для Exim списками, но если я заношу в них мой адрес типа mail@mailserver.ru, то в /home, то создается каталог /home/mail@mailserver.ru и письма складываются туда.

Думаю, что-то нужно сделать наподобие этих строк, но что именно?

Код: Выделить всё

lists_all:
    driver = redirect
    domains = +local_domains
    local_parts = all
    file = /usr/local/etc/exim/list/.exim-all
    forbid_pipe
    forbid_file
    redirect_router = local_adsi_user

lists_alias:
    driver = redirect
    domains = +local_domains
    local_parts = ! all
    file = /usr/local/etc/exim/list/.exim-$local_part
    redirect_router = local_adsi_user
Убить всех человеков!
Спасибо сказали:
Sleeping Daemon
Сообщения: 1450

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение Sleeping Daemon »

Poor Fred писал(а):
28.05.2010 14:01
Работает почтовый сервер на связке Exim+Dovecot.
Ищу ответ на вопрос: как сделать алиас для системных адресатов, типа root, postmaster или простых юзеров на "внешние" адреса? Пытался сделать стандартными для Exim списками, но если я заношу в них мой адрес типа mail@mailserver.ru, то в /home, то создается каталог /home/mail@mailserver.ru и письма складываются туда.

Думаю, что-то нужно сделать наподобие этих строк, но что именно?

Код: Выделить всё

lists_all:
    driver = redirect
    domains = +local_domains
    local_parts = all
    file = /usr/local/etc/exim/list/.exim-all
    forbid_pipe
    forbid_file
    redirect_router = local_adsi_user

lists_alias:
    driver = redirect
    domains = +local_domains
    local_parts = ! all
    file = /usr/local/etc/exim/list/.exim-$local_part
    redirect_router = local_adsi_user

aliases
man aliases
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение Poor Fred »

Sleeping Daemon писал(а):
28.05.2010 14:18
aliases
man aliases

Это было бы слишком просто. Нет, не работает.
Всё-таки требуется помощь док в exim-овских конфигах.
Убить всех человеков!
Спасибо сказали:
neol
Сообщения: 600
ОС: Debian Stable

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение neol »

Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение Poor Fred »

neol писал(а):
29.05.2010 09:12
http://www.lissyara.su/doc/exim/4.62/the_redirect_router/ читали?

Читаю сейчас. Не не Лиссяре, правда, а на Опеннет.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение sash-kan »

Poor Fred писал(а):
29.05.2010 05:36
Это было бы слишком просто.
это самое подходящее решение.
покажите вывод
$ /usr/sbin/exim -bt root
?
$ grep ^root /etc/aliases
?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение Poor Fred »

sash-kan писал(а):
29.05.2010 19:29
Poor Fred писал(а):
29.05.2010 05:36
Это было бы слишком просто.
это самое подходящее решение.
покажите вывод
$ /usr/sbin/exim -bt root
?
$ grep ^root /etc/aliases
?

Код: Выделить всё

root@gw-nvkz ~ # exim -bt root
my.login[at]nvkz.2gis.ru
    <-- root[at]nvkz.2gis.ru
  router = local_adsi_user, transport = local_adsi_delivery
root@gw-nvkz ~ # grep ^root /etc/aliases
root:  my.login, mymail[at]kuz.ru


Вроде использование $HOME/.forward должно решить задачу, но сейчас Exim жалуется на "доступ запрещен". Делал хозяином файла и сам Exim, и хозяина каталога - пока не помогает.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение Poor Fred »

Poor Fred писал(а):
30.05.2010 05:32
Вроде использование $HOME/.forward должно решить задачу, но сейчас Exim жалуется на "доступ запрещен". Делал хозяином файла и сам Exim, и хозяина каталога - пока не помогает.

Всё, разобрался. У самого файла должен быть владелец сам юзер-адресат, а у домашнего каталога права хотя бы 755. По умолчанию владелец каталога dovecot, а права 700, поэтому и файл прочитан быть не мог.

Да, и еще. Сначала срабатывал только один роутер, т.е. либо перенаправление по локальным алиасам, либо по .forward. Оказалось, что в конфиг роутеров надо добавить опцию unseen. Тогда роутеры могут работать последовательно, а не завершаться после выполнения условия. Именно поэтому не работало перенаправление по системным алиасам.
Убить всех человеков!
Спасибо сказали:
Аватара пользователя
arkhnchul
Сообщения: 2284
Статус: Толчковый инженер
ОС: Debian, Fedora

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение arkhnchul »

а newaliases делали после изменения aliases?
Losing is fun!
Спасибо сказали:
Аватара пользователя
Poor Fred
Сообщения: 1575
Статус: Pygoscelis papua
ОС: Gentoo Linux, FreeBSD

Re: Решено: Exim: алиас для root на 'внешний' адрес

Сообщение Poor Fred »

arkhnchul писал(а):
31.05.2010 10:27
а newaliases делали после изменения aliases?

Да.
Проблема, как я отписался выше, была в том, что срабатывал только один роутер, а роутер на системные алиасы был ниже, чем на локальные. Переместил выше и добавил unseen, тогда после проверки условия работа не завершается, а передается следующему роутеру. Т.е. стало так:

Код: Выделить всё

userforward:
    driver = redirect
    check_local_user
    file = $home/.forward
    allow_fail
    allow_defer
    no_verify
    unseen

system_aliases:
    driver = redirect
    allow_fail
    allow_defer
    data = ${lookup{$local_part}lsearch{/etc/aliases}}
    unseen

lists_all:
    driver = redirect
    domains = +local_domains
    local_parts = all
    file = /usr/local/etc/exim/list/.exim-all
    forbid_pipe
    forbid_file
    redirect_router = local_adsi_user

lists_alias:
    driver = redirect
    domains = +local_domains
    local_parts = ! all
    file = /usr/local/etc/exim/list/.exim-$local_part
    redirect_router = local_adsi_user
Убить всех человеков!
Спасибо сказали: