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

» postfix+courier-imap

Автор: lodya
Дата сообщения: 18.08.2004 10:10
Поставил postfix+courier-imap+mysql
pop работает нормально,
но есть другая проблема - imap.
если делать telnet localhost 143, то работает и в логах всьо нормально, но если какой-то програмой the bat, outlook то в логах какой то непорядок:
... hpst imapd: Failed to create cache file: maildirwatch user@domain)
Error: Input/output error
Check for propper and configurations
of the File Access Monitor daemon (famd)
но почту доставляет и отсылает.
Што ето такое ы што с ним делать ??????
почему он не может создать етот кеш-файл, и где именно он хочет ево создать.
Автор: xy
Дата сообщения: 06.09.2004 16:14
Такая трабла: в системе (FreeBSD5.2.1#9) стоит шифрование паролей blf - понятия не имею как оно работает, но при шифровании одного и того же пароля выдает разные резыльтаты - мне бы пох, так даже лучше, НО

сабж (курьер) лазит в базу мускульную за логинами/паролями для поп3 и что мы видим?
мы видим, что как ни крути а login failed - это можно как-нить побороть?
Автор: ooptimum
Дата сообщения: 06.09.2004 17:49
А ты не пробовал обычным crypt'ом пароли шифровать? Какого, xy, ты системные пароли в базу класть пытаешься. Или опиши хоть как они у тебя туда попадают тогда, если не ты сам их создаешь.
Автор: xy
Дата сообщения: 06.09.2004 17:54
ooptimum

Цитата:
А ты не пробовал обычным crypt'ом пароли шифровать?

гы, ну они мускульной функцией encrypt() туда и попадают, а в хелпе написано, что функция сия крайне рекомендуется, т.к. работает через вызов системной crypt(), а системная crypt() шифрует blfом, т.к. в конфигах так написано:)

в общем замкнутый круг.. хотя перерывание док по курьеру и саслю никаких ограничений на эту тему не выявили, но сасль тоже смтп-аутентификацию роняет и принимает без ТСЛя всю инфу
Автор: ooptimum
Дата сообщения: 06.09.2004 20:23
xy
Тэкс, в authmysqlrc ты используешь поле MYSQL_CRYPT_PWFIELD или MYSQL_CLEAR_PWFIELD? Если первое, то в каком виде пароли хранятся в базе, с префиксом "{crypt}" или подобным, или без оного?
Автор: xy
Дата сообщения: 07.09.2004 10:07
ooptimum

Цитата:
в authmysqlrc

MYSQL_CRYPT_PWFIELD = password

..clear.. такой нет - вроде сказано в комментах конфига, что если crypt_pwfield, значит оно понимает их как закриптованные или не так?


Цитата:
с префиксом "{crypt}" или подобным, или без оного?

нет префиксов

ЗЫ. Может вернуть систему на мд5 пока пользователей немного или проблема решаема?
Автор: ooptimum
Дата сообщения: 07.09.2004 10:34
xy

Цитата:
нет префиксов

Добавь. Т.е. перед каждым паролем добавь встык строчку "{crypt}" (без кавычек). Попробуй на одном аккаунте сначала.
Автор: xy
Дата сообщения: 07.09.2004 14:20
ooptimum
не кананет (да и не должно быть префиксов ИМХО)

там грабли видимо со сверкой пароля, ибо проверка
крипт(пароль) == поле_в_таблице
при шифровании блфом не канает (он не однозначно шифрует) - не знаю как там фря аутентификацию с блфом сверяет, но для курьера и сасля - слабо

видать нужно на мд5 возвращать

Добавлено
блин, даже заведение открытого пароля и указание clear_pwfield с закомментированием crypt_.. (на всяк случай) - не помогло, видать грабли где-то в другом месте..

Добавлено
блин, я уже совсем с этим замучался - кто может помочь (и у кого у самого это работает) -плиииз, все конфиги и т.п. вышлю
Автор: ooptimum
Дата сообщения: 07.09.2004 19:08
xy

Цитата:
он не однозначно шифрует

А никто однозначно не шифрует на самом деле. Там есть такое понятие как salt -- как раз тот самый элемент, который и ответственен за эту неоднозначность (man 3 crypt).


Цитата:
и у кого у самого это работает

У меня это работает. Только не с мускулем, а с LDAP'ом, и не под бздей, а под линуксом, хотя это не принципиально, IMO. Принципы те же... А если все же принципиально, то я не так давно успешно поднял товарищу почтовый сервер в такой же конфигурации, как и у тебя, и как раз под бздей...


Добавлено
Remember that MySQL's encryption routines use a different algorithm to the operating system ones and it is the latter that courier uses if you select 'crypt'.
Автор: xy
Дата сообщения: 08.09.2004 10:34
ooptimum

Цитата:
А никто однозначно не шифрует на самом деле.

странно.. сколько мд5 шифровал - всегда однозначно было, в этом его суть и именно так пароли всегда сравнивались и чексуммы, в блф"е я первый раз с неоджнозначным шифрованием столкнулся, что-то здесь не так ;)


Цитата:
У меня это работает. Только не с мускулем, а с LDAP'ом, и не под бздей, а под линуксом, хотя это не принципиально, IMO. Принципы те же...

ессно разницы нет - это хорошо, что работает (:


Цитата:
А если все же принципиально, то я не так давно успешно поднял товарищу почтовый сервер в такой же конфигурации, как и у тебя, и как раз под бздей...

ну давай посмотрим, то что authdaemond вызывается - факт, я его ронял - оно ругалось.. значит проблема в нем, но он нигде в логах не пишет, что что-то не так с мускулом, может я логи не все нашел? (права пользователя на мыскул тоже проверены - все ок на чтение)


Цитата:
Remember that MySQL's encryption routines use a different algorithm to the operating system ones and it is the latter that courier uses if you select 'crypt'.

я смотрел тута: http://dev.mysql.com/doc/mysql/en/Encryption_functions.html
по функции ENCRYPT(str[,salt]) написанто вполне однозначно имхо, или я что-то недопонял (параметр [,salt] я ессно не указываю в запросе на insert пароля)

Опять же - я даже сделал открытый пароль (пока тестриую на одном юзвере) - не помогло, т.е. проблема не в паролях, но я не пойму в чем
Автор: xy
Дата сообщения: 09.09.2004 14:30
Ладно, принимаю непонимающие взгляды - проблема была далеко на в БЛФе - он чист и прекрасен - я указал лишний параметр в authmysqlrc для поля имени в базе - соответственно запрос падал (т.к. поля такого в базе небыло ессно), "вот такая вот батва" (с)
поп работает, осталось смтп добить

Добавлено
блин сасль кричит злобным матом:

Код:
Sep 9 15:01:51 alexey postfix/smtpd[15314]: warning: SASL authentication failure: no user in db
Sep 9 15:01:51 alexey postfix/smtpd[15314]: warning: SASL authentication failure: no user in db
Sep 9 15:01:51 alexey postfix/smtpd[15314]: warning: SASL authentication failure: no secret in database
Автор: xy
Дата сообщения: 14.09.2004 15:42
живые есть?
значит есть два варианта:
1. от http://www.opennet.ru/base/net/isp_mail_howto.txt.html
/usr/lib/sasl2/smtpd.conf

Код:
auxprop_plugin: mysql
pwcheck_method: auxprop
mysql_user: postfix
mysql_passwd: postfix
mysql_hostnames: localhost
mysql_database: mail
mysql_statement: select password from aliases where alias='%u@%r'
mysql_verbose: yes
Автор: ooptimum
Дата сообщения: 14.09.2004 19:13
xy
У тебя ведь курьер стоит, так? А куда он у тебя за паролями идет? В mysql? Ага... А как? Т.е. сам или еще как-то? А, у тебя authdaemond запущен, который в mysql и лезет, а потом уж курьер у него спрашивает, что ему нужно... Понимаю. А sasl, значит, через saslauthd, а затем и pam лезет за теми же паролями в ту же базу? А нахрена? А ты знаешь, что sasl умеет точно также спрашивать пароли у authdaemond, а не только у saslauthd? Вот, теперь уже знаешь. Намек понятен?

Вот что меня всегда бесило в этих кривых руководствах, так это то, что все везде и всегда советуют одну и ту же чушь. Копируют друг у друга просто. Пыонэры, блин.
Автор: xy
Дата сообщения: 15.09.2004 09:59
ooptimum

Цитата:
У тебя ведь курьер стоит, так? А куда он у тебя за паролями идет? В mysql? Ага...

во-первых, поп3-ссль у меня работает как часы, проблема с смтп-атентификацией


Цитата:
А, у тебя authdaemond запущен, который в mysql и лезет, а потом уж курьер у него спрашивает, что ему нужно

так и есть работает..


Цитата:
А sasl, значит, через saslauthd, а затем и pam лезет за теми же паролями в ту же базу? А нахрена?

это надо для смтп-атентификации, т.е. для постфикса
если не использовать ПАМ, то, как я понял из док поп саслю, пароли в базе должны быть не зашифрованные, а через ПАМ можно шифровать, что мне и надо;)


Цитата:
А ты знаешь, что sasl умеет точно также спрашивать пароли у authdaemond

вот это не знал - попробую, т.е. можно без ПАМа? это хорошо


Цитата:
Вот что меня всегда бесило в этих кривых руководствах, так это то, что все везде и всегда советуют одну и ту же чушь. Копируют друг у друга просто. Пыонэры, блин.

ну в руководства я полез, когда уже не работало - искать подтверждения как бы, но всё равно не получилось
Автор: ooptimum
Дата сообщения: 15.09.2004 14:27
xy
Ты б сначала прочел мое сообщение полностью, а потом бы отвечал, а то столько всего понаписал впустую. Разумеется, я знаю для чего нужен sasl и прочее...

В ответ на ПМ -- на ICQ я давно не отвечаю, нет времени. Поэтому давай здесь. Да и другим полезно будет знать. Значит, у тебя сейчас настроено так:

courier -> authdaemond -> mysql

cyrus-sasl -> saslauthd -> pam -> mysql

Собственно, как и написано в большинстве руководств. Я же предлагаю следующий вариант:

courier ----
\
-> authdaemond -> mysql
/
cyrus-sasl -

Для того, чтобы это заработало, тебе надо пересобрать cyrus-sasl с поддержкой authdaemond. У меня сейчас фри с портами под рукой нет, но я знаю, что там есть параметр в Makefile для этого (или я сам его создавал? не помню уже...). Весь сыр-бор в том, чтобы передать параметр --with-authdaemond скрипту ./configure. Затем, после перекомпиляции sasl'а, тебе надо его настроить на работу с authdaemond. Делается это подобным образом:
Код: #/etc/sasl2/smtpd.conf:
pwcheck_method: authdaemond
authdaemond_path: /var/lib/courier-imap/authdaemon/socket
Автор: xy
Дата сообщения: 15.09.2004 14:32
ooptimum

Цитата:
Ты б сначала прочел мое сообщение полностью

ладно, сорри


Цитата:
authdaemond_path: /var/lib/courier-imap/authdaemon/socket

а, ну так понятно, это же в каком хелпе такое найти можно, а то оно мне всё пишет да пишет, что приконнектится не может :)
Автор: ooptimum
Дата сообщения: 15.09.2004 14:41
xy

Цитата:
это же в каком хелпе такое найти можно

share/doc/cyrus-sasl/sysadmin.html: How SASL works -> Courier-IMAP authdaemond
Автор: xy
Дата сообщения: 15.09.2004 15:41
гм.. на выходе получил такую бяку:
Sep 15 15:32:51 alexey postfix/smtpd[8852]: warning: SASL authentication failure: no user in db
Sep 15 15:32:51 alexey postfix/smtpd[8852]: warning: SASL authentication failure: no user in db
Sep 15 15:32:51 alexey postfix/smtpd[8852]: warning: SASL authentication failure: no secret in database
Sep 15 15:32:51 alexey postfix/smtpd[8852]: warning: unknown[192.168.0.65]: SASL CRAM-MD5 authentication failed
Sep 15 15:32:52 alexey postfix/smtpd[8852]: warning: SASL authentication failure: no user in db
Sep 15 15:32:52 alexey postfix/smtpd[8852]: warning: SASL authentication failure: no user in db
Sep 15 15:32:52 alexey postfix/smtpd[8852]: 5067060CE: client=unknown[192.168.0.65], sasl_method=PLAIN, sasl_username=alexey@alexey.od.ua

т.е. как бы оно аутентифицирует (последняя строчка), но откуда ошибки перед этим и нужно ли вообще КРАМ настраивать?
Автор: ooptimum
Дата сообщения: 15.09.2004 16:01
В логах mysql что-нибудь интересное есть?
Автор: xy
Дата сообщения: 15.09.2004 16:13
ooptimum
логи чисты, в /var/db/mysql/alexey.err
только сообщение о старте Мускула

Добавлено
и как на счет КРАМА? используется или это уже масло масляно?
Автор: ooptimum
Дата сообщения: 15.09.2004 16:38
Покажи свой main.cf, хотя бы в части smtp-аутентификации. Пропусти только через `egrep -v "^$|^#" main.cf` предварительно.
Автор: xy
Дата сообщения: 15.09.2004 16:42
ooptimum

Цитата:
grep -v "^$|^#" main.cf

понты%)

enable_sasl_authentication = yes
smtpd_sasl_auth_enable = yes
smtp_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtp_use_tls = yes
smtp_tls_key_file = /usr/local/share/courier-imap/pop3d.pem
smtp_tls_cert_file = $smtp_tls_key_file
smtp_tls_CAfile = $smtp_tls_key_file
smtp_tls_note_starttls_offer = yes
smtpd_tls_auth_only = yes
smtpd_use_tls = yes
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
smtpd_tls_key_file = /usr/local/share/courier-imap/pop3d.pem
smtpd_tls_cert_file = $smtp_tls_key_file
smtpd_tls_CAfile = $smtp_tls_key_file
Автор: ooptimum
Дата сообщения: 15.09.2004 18:45

Цитата:
понты%)

Вовсе нет. Нет желания просто читать комментарии. В том числе и такие...

Как там насчет smtpd_client_restrictions или smtpd_recipient_restrictions?


Добавлено
Кстати, через какой механизм осуществляется аутентификация sasl'ом? Он правильно настроен?
Автор: xy
Дата сообщения: 16.09.2004 08:37
ooptimum
может правильный конфиг покажешь%)


Цитата:
smtpd_client_restrictions или smtpd_recipient_restrictions

smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_recipient_access hash:/usr/local/etc/postfix/access,
reject_rbl_client list.dsbl.org,
reject_rbl_client relays.ordb.org,
reject_rbl_client dynablock.wirehub.net,
reject_rbl_client blackholes.wirehub.net,
reject_rbl_client dnsbl.njabl.orgreject_unknown_sender_domain,
reject_unauth_pipelining,
reject_unknown_recipient_domain,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_non_fqdn_hostname,
check_relay_domains
тут насколько я понял важен порядок следования - поэтому сделано именно так

client_restrictions нету


Цитата:
какой механизм осуществляется аутентификация sasl'ом

заработало после того как на authdaemond переделал.. хотя вот те ошибки остались..
в authdaemonrc:
authmodulelist="authcustom authuserdb authmysql authpam"
может поубирать всё кроме мускула, хотя вроде это тут не влияет %\


Добавлено
т.к. authmodulelistorig="authmysql"
Автор: ooptimum
Дата сообщения: 16.09.2004 09:09

Цитата:
может правильный конфиг покажешь%)

Что касается sasl'а, то я в твоем конфиге postfix'а проблем не вижу. Только я бы добавил reject_unauth_destination, а так у тебя открытый релей получился на радость спамерам.

А вот тут должно быть наоборот:

Цитата:
authmodulelist="authcustom authuserdb authmysql authpam"
authmodulelistorig="authmysql"

У меня, например, вот так:
Код: authmodulelist="authldap"
authmodulelistorig="authcustom authcram authuserdb authldap authmysql authpam"
Автор: xy
Дата сообщения: 16.09.2004 09:22
ooptimum

Цитата:
я бы добавил reject_unauth_destination, а так у тебя открытый релей получился на радость спамерам

а что это означает? ибо набор из
reject_unauth_pipelining,
reject_unknown_recipient_domain,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_non_fqdn_hostname,
check_relay_domains
и так много чего зарубит, лишь бы лишенго не нарубил.. впрочем я добавлю, я не против:)



Цитата:
Что у тебя в authdaemond.conf выставлено в качестве аутентификатора?

гм.. а нет такого, что ты имел ввиду? аутхдаемонрц?



Цитата:
А вот тут должно быть наоборот

ну в конфиге как бы написано:
##NAME: authmodulelist:0
#
# The authentication modules that are linked into authdaemond. The
# default list is installed. You may selectively disable modules simply
# by removing them from the following list. The available modules you
# can use are: authcustom authuserdb authmysql authpam

authmodulelist="authcustom authuserdb authmysql authpam"

##NAME: authmodulelistorig:1
#
# This setting is used by Courier's webadmin module, and should be left
# alone

authmodulelistorig="authmysql"

т.е. именно так должно быть, почему нет?



ЗЫ. ты антиспам делал?
Автор: ooptimum
Дата сообщения: 16.09.2004 10:33

Цитата:
а что это означает?

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

Цитата:
так много чего зарубит

Но не закроет открытый релей.

Цитата:
гм.. а нет такого, что ты имел ввиду?

А я имел в виду authdaemond.conf, о чем и написал. Ладно, это зависит от способа запуска authdaemond, т.е. этого файла в принципе может и не быть. Как ты запускаешь authdaemond? Скрипт покажи.

Цитата:
именно так должно быть, почему нет?

Нет, ну может быть и так, как ты написал, конечно. Но никто не говорит, что это правильно. В твоем случае правильным будет написать:
Код: authmodulelist="authmysql"
Автор: xy
Дата сообщения: 16.09.2004 10:55
ooptimum

Цитата:
то не дает посылать почту на домены, не обслуживаемые твоим postfix'ом и для которых он не является релеем

а где прописываются эти связи "кто кому релей"?


Цитата:
Как ты запускаешь authdaemond?

его курьер запускает в поп3д-ссль.ш:

Код:
start)
LIBAUTHMODULES=""
for f in `echo $AUTHMODULES`
do
LIBAUTHMODULES="$LIBAUTHMODULES /usr/local/libexec/courier-imap/authlib/$f"
done

if test -x ${libexecdir}/authlib/authdaemond
then
/usr/bin/env - DEBUG_LOGIN="$DEBUG_LOGIN" ${libexecdir}/authlib/authdaemond start
fi

/usr/bin/env - /bin/sh -c " set -a ;
prefix=/usr/local ;
exec_prefix=/usr/local ;
bindir=${exec_prefix}/bin ;
libexecdir=/usr/local/libexec/courier-imap ;
. /usr/local/etc/courier-imap/pop3d ; \
. /usr/local/etc/courier-imap/pop3d-ssl ; \
POP3_TLS=1; export POP3_TLS; \
POP3_STARTTLS=NO; export POP3_STARTTLS; \
POP3_TLS_REQUIRED=0; export POP3_TLS_REQUIRED; \
/usr/local/libexec/courier-imap/couriertcpd -address=$SSLADDRESS \
-stderrlogger=${exec_prefix}/sbin/courierlogger \
-stderrloggername=pop3d-ssl \
-maxprocs=$MAXDAEMONS -maxperip=$MAXPERIP \
-pid=$SSLPIDFILE $TCPDOPTS \
$SSLPORT $COURIERTLS -server -tcpd \
${exec_prefix}/sbin/pop3login $LIBAUTHMODULES \
${exec_prefix}/bin/pop3d ${MAILDIRPATH}"
;;
Автор: ooptimum
Дата сообщения: 16.09.2004 12:32

Цитата:
а где прописываются эти связи "кто кому релей"?

Оно тебе сейчас надо? Почитай документацию на постфикс, там все это написано. К тому же это еще и с DNS-ом тесно связано. Да и к решаемой проблеме отношения никакого не имеет.


Цитата:
его курьер запускает в поп3д-ссль.ш:

Мутно как-то все... Ну да ладно. Посмотри только по `ps auxw|grep authdaemond`, что у тебя authdaemond.mysql запускается, а не какой-то другой. Так, на всякий случай...


Цитата:
однако те ошибки вроде как САСЛь выдает

Да он простой, этот сасль, как 3 рубля мелочью. Это по сути только прослойка, виртуализующая для приложения бэкенд, выполняющий сам процесс аутентификации. Идеология сходна с идеологией PAM в чем-то. Так вот, в данном случае бэкендом является связка authdaemond+mysql, поэтому их конфигурацию и проверяем.


Цитата:
я привык доверят комментам в конфигах

Ну, дык, я этим комментам и не противоречил. В нашем случае значение authmodulelistorig нас вообще не колышит, т.к. оно никем, кроме курьерского конфигуратора, не используется. Нам важно, что в authmodulelist написано. А так как аутентифицирующий модуль у нас один, то и значение должно содержать только один этот модуль. У меня это "authldap", а у тебя -- "authmysql". authmodulelistorig же содержит список всех _возможных_ значений для authmodulelist.


Цитата:
что значит эта связка?

А что она вообще может значить? Это просто приложения, которые я запускаю для проверки почты.


Цитата:
может есть какой-нить туториал который порекомендуешь?

http://www.advosys.ca/papers/postfix-filtering.html
Автор: xy
Дата сообщения: 16.09.2004 17:19
ooptimum

Цитата:
Оно тебе сейчас надо?

ок, с этим позже


Цитата:
Посмотри только по `ps auxw|grep authdaemond`, что у тебя authdaemond.mysql запускается, а не какой-то другой. Так, на всякий случай...

так и есть - много раз смотрел


Цитата:
значений для authmodulelist

ну как бы оставил только мускул


Цитата:
А что она вообще может значить? Это просто приложения, которые я запускаю для проверки почты.

антивирь пользуешь?


Цитата:
http://www.advosys.ca/papers/postfix-filtering.html

меня их способ что-то не сильно устроил..
с этим позже

Страницы: 12

Предыдущая тема: Рухнул (упал) AD (Active Directory)


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