Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.
Всем добрый вечер!
Продолжаю мучить Postfix из той связки, о которой писал в самом начале темы. Столкнулся с очень странной проблемой. На основе нескольких источников сконфигурировал файл main.cf
Сохранив и выполнив команду
service postfix reload
Я перешёл на соседнюю машину и запустил
ping 192.168.1.1 - пинги пошли, но после команды telnet 192.168.1.1 25 - терминал завис.
Я скопировал файл main.cf.default находящийся в той же директории под именем main.cf и выполнил теже шаги. Сервер ответил кодом 220. Тогда я решил поочерёдно комментировать этот файл, что бы выявить ту опцию от которой сервер посылал ответы и вставить её в свой неработающий файл. Не поверите, за полтора часа я закоментировал - ВЕСЬ оригинальный файл, постоянно выполняя команду service postfix reload и сервер продолжал отвечать. Но как только это полностью закоментированый файл заменил своим - терминал опять завис. Кто нибудь сталкивался с подобным?
Кое с чем я разобрался. Оказывается к зависанию приводили два параметра:
- smtpd_sasl_auth_enable = yes заменил на no
- queue_minfree = закомментировал.
При запуске команды telent 192.168.1.1 25 - сервер ответил кодом 220.
Почему он зависал при подключении Sasl, Полный блок выглядит так:
причём Dovecot у меня установлен и запущен. И ещё, если я пытаюсь отправить письмо средствами Smtp протокола, то никаких ошибок не возникает, но в /var/log/mail/info.log фиксируется статус письма как, status = deferrer и оно не доходит до локального получателя. А если отправляю его командой mail? то всё нормально. Почему?
ну так saslauthd для аутентификации тож запускать и настраивать надо, ага.
насколько я понял saslauthd используется в cyrus-sasl, а dovecot имеет свою реализацию sasl поэтому может работать самостоятельно и cyrus-sasl уже ставить не нужно. Если ошибаюсь - поправьте.
Заглянул в файл main.cf.default и увидел там две группы очень похожих опций относящихся к smtp и smtpd. Например:
- smtp_sasl_auth_enable
- smtpd_sasl_auth_enable
Чем они отличаются?
глубоко в это дело я не лез, но у меня с довекотовской реализацией не заработало, завел через тот самый saslauthd.
насколько понимаю документацию:
smtpd_sasl_auth_enable - для аутентификации клиентов в постфиксе.
smtp_sasl_auth_enable - для аутентификаци самого постфикса на почтовом шлюзе.
рано радовался, что перестал постфикс подвисать. Теперь виснет на команде rcpt to.
telnet 192.168.1.1 25
220
mail from <root@mail.spice.lan>
250 ok
rcpt to: <nick@mail.spice.lan>
- Виснет пока не перезапустишь сервер.
Причём если я запускаю сервер используя настройки файла main.cf.default письмо - уходит, но в этом файле свыше 600-т параметров и какой мне нужно добавить - не понятно.
Думаю это и отвечает за определение локальных пользователей, но когда указал пути к файлам паролей (как видно из примера) - сервер стал выдавать ошибку, а когда эти пути закомментировал - заработал, но в логах опять написал, что пользователь - неизвестен Подскажите пожалуйста, как правильно внести изменения.
вероятно, надо объяснить dovecot-у, что mail.spice.lan. — локальный домен.
Прошу прощения, но я не админ с 10-ти летним стажем. И по двум трём словам не очень понимаю. Погуглил несколько часов и везде рекомендации по привязке только к мускулу. На одной странице было указано, что
passdb passwd {
args =
}
userdb passwd {
args =
}
должны остаться пустыми, но как или где всё объяснить довекоту.
Кстати, решил провести эксперимент. Закоментировал вышеуказанные параметры, перезапустил сервер и поробовал отправить сообщение телнетом. В логах появилось следующее:
less /var/log/mail/info.log | grep 25AF6620
Nov 7 20:03:01 srv postfix/smtpd[4988]: 25AF6620: client=unknown[192.168.1.1]
Nov 7 20:03:13 srv postfix/cleanup[5039]: 25AF6620: message-id=<20101107170301.25AF6620@mail.spice.lan>
Nov 7 20:03:14 srv postfix/qmgr[4965]: 25AF6620: from=<root@mail.spice.lan>, size=334, nrcpt=1 (queue active)
Nov 7 20:03:14 srv postfix/local[5058]: 25AF6620: to=<nick@mail.spice.lan>, relay=local, delay=26, delays=26/0.03/0/0.07, dsn=2.0.0, status=sent (delivered to mailbox)
Nov 7 20:03:14 srv postfix/qmgr[4965]: 25AF6620: removed
Как видно
relay=local
status=sent
Получается, что письмо благополучно ушло и было прочитано. Значит постфикс всё таки знает, что mail.spice.lan это локальный домен или я опять чего то не понял?
# less /var/spool/mail/nick
From root@mail.spice.lan Mon Nov 8 01:00:18 2010
Return-Path: <root@mail.spice.lan>
X-Original-To: nick@mail.spice.lan
Delivered-To: nick@mail.spice.lan
Received: from unknown (unknown [192.168.1.1])
by mail.spice.lan (cool_mail) with SMTP id 428C25FD
for <nick@mail.spice.lan>; Mon, 8 Nov 2010 00:59:31 +0300 (MSK)
Message-Id: <20101107215942.428C25FD@mail.spice.lan>
Date: Mon, 8 Nov 2010 00:59:31 +0300 (MSK)
From: root@mail.spice.lan
To: undisclosed-recipients:;
Hi! Isenn you this cool letter///
именно то, что я отправил. Так получается кто виноват - постфикс или довекот? но главное, как их подружить?
именно то, что я отправил. Так получается кто виноват - постфикс или довекот? но главное, как их подружить?
У вас есть ровно 2 варианта:
- раскладывать почту через postfix(что сейчас и получилось)
- раскладывать почту через dovecot(в частности, deliver) -- тогда dovecotу надо указать где какая почта лежит
Если особо не нужны всякие sieve и т.п. -- можно оставить всё как есть.
именно то, что я отправил. Так получается кто виноват - постфикс или довекот? но главное, как их подружить?
У вас есть ровно 2 варианта:
- раскладывать почту через postfix(что сейчас и получилось)
- раскладывать почту через dovecot(в частности, deliver) -- тогда dovecotу надо указать где какая почта лежит
Объясните пожалуйста! Если можно раскладывать почту через постфикс, то зачем тогда нужны эти имап сервера. А если я хочу выбрать второй вариант, то чего в моих конфигурационных файлах не хватает?
imap-сервер работает по протоколу imap, т.е., к нему подключается клиент, авторизуется, и смотрит свою почту. всё.
p.s. «просмотр» включает в себя и перекладывание по каталогам, и выставление меток, и удаление, и что там ещё в протоколе imap расписано. главное — всё строго по команде клиента.
Уважаемый sash-kan, всё, всё не по делу. Вы же сами говорили, что ответ должен быть кратким и точным, как выстрел. Так и подскажите мне, что нужно делать?
возможно, не помешает небольшой экскурс в технологию обмена почтой.
классическая схема движение письма:
mua → mta → … → mta → mda → maa → mua
(mxa — mail x agent, где x = {user|transfer|delivery|access})
дело в том, что mxa — это часто лишь функции, а не конкретные программы.
особенно это заметно на примере mda (вы как раз с этим и столкнулись).
есть, конечно, программы, выполняющие _только_ функцию mda (т.е., раскладывание писем по почтовым хранилищам). procmail, например.
но как создатели mta (exim, sendmail, postfix etc.), так и создатели maa (dovecot, courier, cyrus etc.), от нечего делать дополняют свои программы функциями mda.
в данный момент у вас раскладывает почту postfix. ну и пусть раскладывает. когда вас перестанет это устраивать, переделаете по-другому.