Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» FAQ по Exim MTA

Автор: JonnyBekoff
Дата сообщения: 31.07.2006 14:46
Просьба помочь неопытному, лог Dovecot-a: info_log_path = /var/log/dovecot.info весь забит сообщениями типа :
dovecot-auth: Jul 31 14:53:07 Info: PAM: pam_authenticate(jonnybekoff) failed: Authentication failure
pop3-login: Jul 31 14:53:07 Info: Aborted login [::ffff:10.1.1.27]

выдержки из /etc/dovecot.conf для сведения:
disable_plaintext_auth = no
log_path = /var/log/dovecot.err
info_log_path = /var/log/dovecot.info
login_user = exim
first_valid_uid = 1
mail_extra_groups = mail
auth_userdb = passwd
auth_user = exim
auth_verbose = yes

Где я мог намудрить, хотя бы подскажите?

Добавлено:
И еще прошу прощения за назойливость вопросик:
maillog также завален сообщениями типа:
Jul 31 15:49:15 jonnybekoff fetchmail[27248]: Authorization failure on jonnybekoff@mydomainl
Jul 31 15:49:15 jonnybekoff fetchmail[27248]: Query status=3 (AUTHFAIL)

Есть ли взаимосвязь с логами довкота?


Автор: Pleshkov
Дата сообщения: 01.08.2006 09:01
JonnyBekoff
Такс. А теперь давайте попорядку.
1) С какого перепуга fetchmail работающий на локальной машине, собирает почту с локального же ящика? Для чего такой геморой.
2) Кто настраивал exim + dovecot + fetchmail? Вы, или кто то другой?
Автор: pushey
Дата сообщения: 01.08.2006 16:39
Подскажите ререние проблемы с Dovecot.
После запуска скрипта dovecot.sh, сам dovecot не запускается,
права в каталоге /var/run/dovecot/ становятся
srw-r--r-- 1 pop pop 0 Авг 1 15:57 auth-worker.10025
.. ....
srw-r--r-- 1 pop pop 0 Авг 1 15:59 auth-worker.7599
srwxrwxrwx 1 root root 0 Авг 1 17:30 dict-server
drwxr-x--- 2 root pop 4096 Авг 1 17:30 login
--------------------------
Кое-какие выдержки из конфигов:
dovecot.conf:
protocols = pop3
listen = *:1010(нужен отличный от стандартного порт)
login_user = pop(пользователь создан)
user = mail

В итоге Dovecot не запущен
Автор: Yakon
Дата сообщения: 01.08.2006 23:39
begin routers

dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more

system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup mysql{SELECT `goto` FROM `alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}}
manualroute:
driver = manualroute
transport = special_smtp
route_list = mydomain.ru 1.2.3.4
self = pass
pass_router = dovecot_user

dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM \
`alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery

Если 1.2.3.4 не доступен, то в логах:
2006-08-02 00:37:56 1G8100-000LSc-4O == user@mydomain.ru R=manualroute T=special_smtp defer (-53): retry time not reached for any host

Как сделать, так чтобы при ошибке происходила попытка отправить через dovecot_user?
Автор: JonnyBekoff
Дата сообщения: 02.08.2006 09:44
To pleshkov

- Настраивал все это я, надо мне больше читать RTFM
- поменяв в Dovecot.conf login_user и auth_user на dovecot вместо exim лог перестал заполняться сообщениями об ошибках, что уже неплохо...
- правильно прописав в зонах BIND имена хостов перестал ругаться и fetchmail

Вопрос у меня такой: нужен ли файл .forward в локальной папке каждого пользователя, насколько я понимаю он передает управление программе procmail? При наличии в файле .forward строки типа :
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #jonnybekoff@mail.fps.local"
у меня выходит следующее:
[root@jonnybekoff ~]# exim -v postmaster
To: jonny
From: jonnybekoff
Subject: test
test mail
.
LOG: MAIN
<= root@mail.fps.local U=root P=local S=353
delivering 1G8AOf-0001KE-TW
[root@jonnybekoff ~]# LOG: MAIN
** |IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #jonnybekoff@mail.fps.local" (jonnybekoff@mail.fps.local) <postmaster@mail.fps.local> R=userforward T=address_pipe: "IFS='" command not found for address_pipe transport
LOG: MAIN
<= <> R=1G8AOf-0001KE-TW U=exim P=local S=1307
LOG: MAIN
Completed
delivering 1G8AP5-0001KK-0m
LOG: MAIN
** |IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #jonnybekoff@mail.fps.local" (jonnybekoff@mail.fps.local) <root@mail.fps.local> R=userforward T=address_pipe: "IFS='" command not found for address_pipe transport
LOG: MAIN
Frozen (delivery error message)

Может я еще что то с доменными именами намудрил?

Система у меня ASP Linux 11.

Выдержки из exim.conf:
userforward:
driver = redirect
check_local_user
# local_part_suffix = +* : -*
# local_part_suffix_optional
file = $home/.forward
# allow_filter
no_verify
no_expn
check_ancestor
file_transport = address_file
pipe_transport = address_pipe
reply_transport = address_reply

system_aliases:
driver = redirect
allow_fail
allow_defer
data = ${lookup{$local_part}lsearch{/etc/aliases}}
user = exim
file_transport = address_file
pipe_transport = address_pipe

Заранее благодарен.

Добавлено:
Нашел решение проблемы по моему вопросу:
"Вопрос у меня такой: нужен ли файл .forward в локальной папке каждого пользователя, насколько я понимаю он передает управление программе procmail? При наличии в файле .forward строки типа :
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #jonnybekoff@mail.fps.local""

- В домашнем каталоге каждого пользователя в файле .forward прописываем:
"|/usr/bin/procmail USER=имя_пользователя"

В итоге письма стали правильно раскладываться по папочкам, т.е. как прописано в файле ~/.procmailrc, SpamAssassin стал помечать заголовки...
Автор: Yakon
Дата сообщения: 03.08.2006 09:47
Подскажите, пожалуйста, гуру. (см выше мой пост)
Если канал с офисом падает, то люди проверяют почту через web-интерфейс через модем. А туда письма не попадают.
Exim старательно пытается отправить письмо на внутренний сервер каждые полчаса.
Как его научить пересылать письма, используя следующий router по dovecot_user:, если через manualroute: не удалось?
Автор: Dmitry8
Дата сообщения: 08.08.2006 01:38
Сложилась такая ситуация: организация перешла на новый домен, старый домен некоторое время ещё остаётся в силе. Необходимо настроить exim для приёма почты на оба домена, но чтобы почта, приходящая на старый домен переадресовывалась в папки для юзеров нового домена. Как лучше реализовать?
Автор: fd254
Дата сообщения: 08.08.2006 08:44
Dmitry8
Завести в Mysql еще один домен, а аккауны не создавать. Создать alias имен нового домена в имена старого. Тогда ничего больше трогать не надо (ни настройки клиентов, ни настройки сервера) и письма для двух доменов будут лежать в одной папке.
Автор: DarkHost
Дата сообщения: 08.08.2006 10:26
fd254
Хотел бы я посмотреть на того идиота, который будет для 100 пользователей алиасы заводить.

Dmitry8
У меня такая же ситуация. Если твоя организация хочет вообще отказаться от старого домена со временем(как это было у меня), то пиши правило перезаписи домена. У меня оно выглядит так:
*@pac.group.ru $1@pac.ru TFtf
Автор: Dmitry8
Дата сообщения: 08.08.2006 13:59
DarkHost
Можно поподробнее насчёт правила перезаписи домена.

Добавлено:
fd254
по структуре таблицы aliases:
+---------------+-------------+------------+
| local_part | domain | recipients |
+---------------+-------------+------------+
| postmaster | mydomain.ru | admin |
| mailer-daemon | mydomain.ru | postmaster |
| root | mydomain.ru | postmaster |
| bin | mydomain.ru | root |
| daemon | mydomain.ru | root |
| sync | mydomain.ru | root |
| mail | mydomain.ru | root |
| pop | mydomain.ru | root |
| uucp | mydomain.ru | root |
| ftp | mydomain.ru | root |
| nobody | mydomain.ru | root |
| www | mydomain.ru | root |
| named | mydomain.ru | root |
| postgres | mydomain.ru | root |
| mysql | mydomain.ru | root |
| squid | mydomain.ru | root |
| operator | mydomain.ru | root |
| abuse | mydomain.ru | root |
| hostmaster | mydomain.ru | root |
| webmaster | mydomain.ru | root |
+---------------+-------------+------------+
, я так понял что алиасы применяются в пределах одного домена. Поправьте меня если это не так
Автор: DarkHost
Дата сообщения: 08.08.2006 14:28
По поводу aliases:
Если добавить в domains второй домен, то в aliases можно запулить и
+------------------+----------------+---------------+
| local_part | domain | recipients |
+------------------+----------------+----------------+
| postmaster | mydomain.ru | admin |
| mailer-daemon | mydomain.ru | postmaster |
| mail | domain2.ru | postmaster |

Однако это реально лишь для десятка пользователей.

Правила перезаписи тут.
http://exim.org/exim-html-4.50/doc/html/spec_31.html#CHAP31

Если вкратце, то флаги FT переписывают хеадер и пользователь(в моем случае) даже не видит, что в письме было pac.group.ru вместе pac.ru(мне надо, чтобы pac.group.ru вообще забыли). Если оставить только флаг t, то будет только доставка осуществляться на измененный домен, а в строке "От:" так и будет оставаться изначальный адрес.
Автор: alexpogodin
Дата сообщения: 08.08.2006 15:21
Запретил отправку сообщений не-СМТП методами. Все теперь шлют строго авторизовавшись в системе и я почти счастлив. (см. http://forum.ru-board.com/topic.cgi?forum=8&topic=4514&start=669&limit=1)

Теперь вопрос следующий, но в ту же тему. Хочется считать отправленные сообщения. Для этого в таблице users заведено 2 поля: messagesLimit & messagesSent (полагаю их назначение понятно из названия). messagesSent предполагается инкрементить при каждой отправке письма в рутере dnslookup (поправьте меня). Там же, полагаю, следует проверять условие (messagesSent < messagesLimit). Только вот пока своими силами не получается. В дебаге вижу что условие не проходит, однако все равно мы идем на транспорт... Хотя не должны, насколько я понимаю.

Растолкуйте мне, что неправильно в моих рассуждениях. Ну или предложите другой вариант/готовое решение...

С уважением.
Автор: pushey
Дата сообщения: 09.08.2006 10:57
У нас на сервере в данный момент стоит почтовик - Qmail,
сейчас мы переходим на Exim, но хотелось бы вначале настроить антиспам фильтры и протестировать работу на реальных письмах.
Qmail работает на 25 порту, Exim я пока запустил на порту 2525.
Можно ли сделать дублирование почты на Exim, чтобы почта шла и на Qmail и на Exim?
Автор: Dmitry8
Дата сообщения: 09.08.2006 22:36
DarkHost
Спасибо! Перезапись домена очень помогла.
Автор: darkomen
Дата сообщения: 10.08.2006 10:08
Господа и дамы, у меня вот какой вопрос:

С недавних пор руководство захотело хранить весь спам на всякий пожарный, я решил использовать роутер dark_hosta для спам ассасина

spamd_router:
no_verify
driver = accept
check_local_user
condition = ${if and{{def:spam_score_int}{>{$spam_score_int}{55}}}{yes}{no}}
transport = spamd_delivery
cannot_route_message = Unknown user

то есть я его успешно использую , но я хочу добавить переменную $spam_score_int в ACL с dns спам листами (не только туда , но для примера пусть будут они).

warn message = host is listed in $dnslist_domain
log_message = found in $dnslist_domain
set $spam_score_int = $spam_score_int + 55
!authenticated = *
dnslists = sbl-xbl.spamhaus.org : relays.ordb.org : \
combined.njabl.org : bl.spamcop.net

Можно так сделать? И правильный синтаксис или нет , подскажите пожалуйста

Добавлено:
В общем уже понял что не правильно , подскажите синтаксис?
error in ACL: syntax error or unrecognized name after "set" in ACL modifier "set $spam_score_int = $spam_score_int + 55"
Автор: DarkHost
Дата сообщения: 10.08.2006 10:34
set $acl_m0 = $spam_score_int + 55
Автор: Yakon
Дата сообщения: 10.08.2006 10:39
Нестабильный канал спокойно жить не даёт

Можно ли в конфиг exim в routers вставить проверку,
если пингуется сервер, то используется этот router,
если нет, переходить к следующему?
condition = ...

Конфиг:

manualroute:
driver = manualroute
transport = special_smtp
route_list = mydomain.ru 1.2.3.4

dovecot_user:
driver = accept
condition = ${lookup mysql{SELECT `goto` FROM \
`alias` WHERE \
`address`='${quote_mysql:$local_part@$domain}' OR \
`address`='${quote_mysql:@$domain}'}{yes}{no}}
transport = dovecot_delivery
Автор: DarkHost
Дата сообщения: 10.08.2006 10:43
no_verify убери только. А то ты этой опцией говоришь пользователю: "Епт, не обращай внимания, что пользователя нет в системе, передавай транспорту письмо," - и тут же добавляешь: "Хотя чекни на всяки случай локал-юзера". Выбери либо одно, либо другое

to all:
Для MySQL в этом роутере будет очень много скобок!
spamd_router:
no_verify
driver = redirect
condition = ${if and{{!eq{} {${lookup mysql{SELECT home FROM users WHERE id='${local_part}' AND mbox_host='${domain}' AND active='Y'}}}}{and{{def:spam_score_int}{>{$spam_score_int}{60}}}}}{1}{0}}
data = spamtrap@pac.ru


Так как от чистого SA много ложных срабатываний, то я пересылаю эти письма("Сомнительные") себе и вручную обрабатываю.
Автор: darkomen
Дата сообщения: 10.08.2006 10:44
DarkHost

А в роутере так?

condition = ${if and{{def:spam_score_int}{def:acl_m0}{>{$spam_score_int + $acl_m0}{55}}}{yes}{no}}
Автор: DarkHost
Дата сообщения: 10.08.2006 10:49
Не совсем понятна твоя логика.
Если у тебя $acl_m0=$spam_score_int + 55, то результат такой операции
$spam_score_int + $acl_m0
будет
$spam_score_int + $spam_score_int + 55
Что "какашка-вопрос" больше 55. Это и проверять не надо.

Чего ты хочешь добиться, скажи?
Автор: darkomen
Дата сообщения: 10.08.2006 10:54

Цитата:
set $acl_m0 = $spam_score_int + 55


Может быть всётаки set acl_m0 = $spam_score_int + 55 ?

А то ошибку выдаёт
Автор: DarkHost
Дата сообщения: 10.08.2006 11:02
Ага! Именно так.
Извини, тут меня с разных сторон хотят, я и ошибаюсь.
Автор: darkomen
Дата сообщения: 10.08.2006 11:26
DarkHost

Насчет no_verify

Мне и нужно чтобы он не проверял сендера, но проверят local_usera т.е. чтобы письма приходили только тем кто есть

Добавлено:
А в такой конструкции применимо?

warn hosts = !+localadds:!+hosts_disable_callback:*
!condition = $header_X-WhitelistedRCPT-nohdrfromcallback:
!condition = ${lookup mysql{HDR_DOMAIN_DISABLE_CALLBACK} {yes}{no>
!condition = ${lookup mysql{NO_RANDOM_CALLBACK} {yes}{no}}
!verify = header_sender/callout=90s,postmaster,random
set acl_m0 = $spam_score_int + 55
Автор: Pkaaa
Дата сообщения: 21.08.2006 09:39
Киньте, пожалуйста, в меня русской документацией к vexim
Автор: khalaluser
Дата сообщения: 29.08.2006 05:53
есть проблема, настроил exim + sql по подобию WOMBAT примера, но изменил немного авторизацию: (пароли у меня только в криптованом виде)

auth_plain:
driver = plaintext
public_name = PLAIN
server_prompts = :
server_condition = "${if and { {!eq{$2}{}} \
{!eq{$3}{}} \
{crypteq{$3}{\\{crypt\\}${lookup mysql{SELECT password FROM users WHERE login='${local_part:$2}' \
AND domain = '${domain:$2}' \
and status='1' }{$value}fail}}} \
} {yes}{no}}"
server_set_id = $2

auth_login:
driver = plaintext
public_name = LOGIN
server_condition = "${if and { \
{!eq{$1}{}} \
{!eq{$2}{}} \
{crypteq{$2}{\\{crypt\\}${lookup mysql{SELECT password FROM users WHERE login='${local_part:$1}' and domain = '${domain:$1}' and status='1' }{$value}fail}}} \
} {yes}{no}}"
server_prompts = Username:: : Password::
server_set_id = $1


появляется после отправки письма (с авторизацией) в логе странная вещь

2006-08-29 08:52:20 H=tb.org.tomsk.net [217.29.81.243] F=<"khalal@khalal.ru"@relay.red-star.ru> temporarily rejected RCPT <khalal@khalal.ru>: Could not complete sender verify

т.е. дописывает в домен еще из primary domain значения
где крутить ? а то письма не ходят
Автор: tankistua
Дата сообщения: 29.08.2006 09:47
khalaluser
предлагаю прежде чем ломать голову над этой проблемой, подумать над другой.

Нельзя хранить в криптованом виде пароли, потому что не будет работать аутентификация

Это написано в топике и в документации к экзиму.

http://www.exim.org/exim-html-4.62/doc/html/spec_html/ch34.html
Автор: khalaluser
Дата сообщения: 29.08.2006 11:34
login и plain авторизация работает на ура, не работает только crypt_md5

авторизация то работает и проходит, а вот почему дописывает потом имя домена это вопрос. Авторизация по криптованным паролям работает.
Автор: tankistua
Дата сообщения: 29.08.2006 13:34
khalaluser
ссори. забыл - действителтно с мд5 не работают криптованые пароли.

чтобы вот это значило ?

[more]

[basil@creator ~]$ dig khalal.ru mx
; <<>> DiG 9.3.2 <<>> khalal.ru mx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7814
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 2

;; QUESTION SECTION:
;khalal.ru. IN MX

;; ANSWER SECTION:
khalal.ru. 86400 IN MX 10 mx1.khalal.ru.

;; AUTHORITY SECTION:
khalal.ru. 86400 IN NS ns1.khalal.ru.
khalal.ru. 86400 IN NS ns0.xname.org.
khalal.ru. 86400 IN NS ns1.xname.org.

;; ADDITIONAL SECTION:
mx1.khalal.ru. 86400 IN A 213.183.101.205
ns1.khalal.ru. 86400 IN A 213.183.101.205

;; Query time: 313 msec
;; SERVER: 194.93.190.123#53(194.93.190.123)
;; WHEN: Tue Aug 29 13:30:04 2006
;; MSG SIZE rcvd: 142





[basil@creator ~]$ telnet mx1.khalal.ru 25
Trying 213.183.101.205...
Connected to mx1.khalal.ru (213.183.101.205).
Escape character is '^]'.
220 relay.red-star.ru ESMTP Exim 4.63 Tue, 29 Aug 2006 17:31:06 +0700
ehlo creator.gu.net
250-relay.red-star.ru Hello creator.gu.net [194.93.191.150]
250-SIZE 52428800
250-PIPELINING
250-AUTH PLAIN LOGIN CRAM-MD5
250-STARTTLS
250 HELP
mail from:<basil@gu.net>
250 OK
rcpt to:<khalal@khalal.ru>
451 Greylisted - please try again a little later.
[/more]

на момент отладки все-таки лучше грейлисты и прочую антиспам-лабуду не использовать.
Вообще надо сначала настроить smtp, а потом уже будешь цеплять кламав и спамасашин.
Автор: khalaluser
Дата сообщения: 29.08.2006 14:36
я уже опытным путем установил что такая проблема возникает из за авторизации по логину и домену, если авторизироватся просто по логину, то никаких "дописок" в домене не возникает. Грейлист тут не причем.

Добавлено:
cram-md5 я прикрутил уже позже, для проверки по дешифрованным паролям. та же фигня, дописывает в адрес
получается "khalal@khalal.ru"@relay.red-star.ru
Автор: Markes
Дата сообщения: 30.08.2006 14:45
Exim используется как корпоративный почтовик. На клиентах стоят Outlook 2003.

Появилась задача синхронизировать Календарь, Задачи и Контакты на двух машинах. Существуют спец. софт для подобных дел, но его мало плюс бесплатных или варезных вариантов я пока найти не могу. (Если кто знает - посоветуйте).

Соответственно вопрос: адекватным и возможным ли будет вариант поднять MS Exchange 2003 и форвардить почту с Exim на него? Сложно ли это сделать и можно ли форвардить только выбранные аккаунты или всю почту сразу?

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: MS Outlook Возвращает: Не удается доставить.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.