URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 33277
[ Назад ]

Исходное сообщение
"sendmail+cyrus-imapd"

Отправлено A Clockwork Orange , 08-Авг-03 15:15 
Как настроить sendmail, что бы в момент установления соединения проверялось наличие пользователя (ящика) cyrus и при его отсутствии почта не принималась?

Содержание

Сообщения в этом обсуждении
"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 09-Авг-03 20:02 
Неужели такое уже на ставят?
Никто не встречался с такой проблемой?

"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 11-Авг-03 10:08 
Может у кого то есть такая связка?

"sendmail+cyrus-imapd"
Отправлено random , 12-Авг-03 04:50 
>Как настроить sendmail, что бы в момент установления соединения проверялось наличие пользователя
>(ящика) cyrus и при его отсутствии почта не принималась?

Она и не принимается если все настроить по документации. Настройки для sendmail 8.11.x и для 8.12.x немного разные если мне не изменяет память, но для 8.11.x это выглядит так:

MAILER_DEFINITIONS
Mcyrus,         P=[IPC], F=lsDFMnqA@/:|SmXz, E=\r\n,
                S=EnvFromL, R=EnvToL/HdrToL, T=DNS/RFC822/X-Unix,
                A=FILE /var/imap/socket/lmtp

LOCAL_RULE_0
R$=N                    $: $#local $: $1
R$=N < @ $=w . >        $: $#local $: $1
Rbb + $+ < @ $=w . >    $#cyrus $: + $1

LOCAL_CONFIG
FN /etc/mail/sendmail.cN

В файле /etc/mail/sendmail.cN можешь перечислить юзверей которые не будут принимать почту по IMAP, а могешь убрать эти строки если это не ненужно.

P. S.
Очень важно где, должны находиться пробелы и табуляция, скорее всего вставиться не правильтно в форум. Так что смотри доку, там есть примеры. :\


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 08:43 
Извините я был не точен, сендмейл при установлении соединения по SMTP не  должен принимать почту от другого сервера если почта предназначена для несущетсвующего пользователя.
IMAP тут не при чем.

"sendmail+cyrus-imapd"
Отправлено random , 12-Авг-03 12:14 
>Извините я был не точен, сендмейл при установлении соединения по SMTP не
> должен принимать почту от другого сервера если почта предназначена для
>несущетсвующего пользователя.
>IMAP тут не при чем.

В приведенном выше примере конфигурации для sendmail+cyrus-imapd, если пользователя (ящика) не существует в системе на уровне master.passwd, то sendmail вроде спрашивает у imapd знаешь такого, если тот говорит нет, то сообщение не принимается.

Чего еще хочется мне чего-то пока не понятно. :)


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 12:23 
>>Извините я был не точен, сендмейл при установлении соединения по SMTP не
>> должен принимать почту от другого сервера если почта предназначена для
>>несущетсвующего пользователя.
>>IMAP тут не при чем.
>
>В приведенном выше примере конфигурации для sendmail+cyrus-imapd, если пользователя (ящика) не существует
>в системе на уровне master.passwd, то sendmail вроде спрашивает у imapd
>знаешь такого, если тот говорит нет, то сообщение не принимается.
>
>Чего еще хочется мне чего-то пока не понятно. :)

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


"sendmail+cyrus-imapd"
Отправлено random , 12-Авг-03 12:35 
>>>Извините я был не точен, сендмейл при установлении соединения по SMTP не
>>> должен принимать почту от другого сервера если почта предназначена для
>>>несущетсвующего пользователя.
>>>IMAP тут не при чем.
>>
>>В приведенном выше примере конфигурации для sendmail+cyrus-imapd, если пользователя (ящика) не существует
>>в системе на уровне master.passwd, то sendmail вроде спрашивает у imapd
>>знаешь такого, если тот говорит нет, то сообщение не принимается.
>>
>>Чего еще хочется мне чего-то пока не понятно. :)
>
>У тебя есть адрес или аська или еще что нибудь для связи.
>босюь треда для спора и обсуждения не хватит

Я не собираюсь спорить у меня так работает 2 года уже и по сей день. ;)


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 12:45 
Вот мои строки, я настривал как в документации
MAILER(cyrus)
divert(0)
HACK(cyrususers)dnl
dnl MAILER(copymail)
define(`confLOCAL_MAILER',`cyrus')
LOCAL_RULE_0
R$=N                    $:$#local$:$1
R$=N<@$=w.>             $:$#local$:$1
Rbb+$+<@$=w.>           $#cyrusbb$:$1

sendmail-8.12.6
cyrus-imapd-2.0.17

Вообще это не ответ как в документации.
Как раз в документации об этом нет ничего.
И хак для этого даже в UNIXFAQ написан.
И где же у тебя в файле проверяется существовение пользователя cyrus?Ткни пальцем.
Вот строчки интересны
LOCAL_CONFIG
FN /etc/mail/sendmail.cN
Формат какой у файла sendmail.cN ? пользователь на строку?
Когда заводишь пользователя , он добавляется в sendmail.cN?


"sendmail+cyrus-imapd"
Отправлено random , 12-Авг-03 13:31 
>И где же у тебя в файле проверяется существовение пользователя cyrus?Ткни пальцем.

Я невнимательнго прочитал:
... наличие пользователя (ящика) cyrus и при его отсутствии почта не принималась?

Прочитал как:
... наличие пользователя (ящика) и при его отсутствии почта не принималась?

Но жутко интересно, по каким причинам пользователь cyrus должен исчезнуть из системы, если от его имени должен работать imapd? :)))


>
>Вот строчки интересны
>LOCAL_CONFIG
>FN /etc/mail/sendmail.cN
>Формат какой у файла sendmail.cN ?
>Пользователь на строку?

Да.

>Когда заводишь пользователя, он добавляется в sendmail.cN?
Когда заводишь пользователя в системе (master.passwd) и если хочется чтобы почта валилась для такого пользователя в локальный ящик (/var/mail/user), а не на сервер IMAP, то прописываешь его имя в это файле.

В противном случае, если пользователя нет в этом файле и НА СЕРВЕРЕ IMAP ТОЖЕ НЕТ ящика с таким пользователем, будет сказано, 550 5.1.1 User unknown, хотя юзверь и будет существовать в системе. Если же на IMAP сервере, будет почтовый ящик с таким именем (не важно есть такое имя в master.passwd), то sendmail примет почту и отдаст ее доброму демону imapd, который в свою очередь разместит енто собщение в нужном боксе IMAP-сервера.


Все вышесказаное с приведенным еще выше куском конфигурации sendmail.mc работает на FreeBSD 4.8 RELEASE-p3 с sendmail 8.11.7 (из портов + патч check_virus http://home.i.cz/reho/check_virus/ ) + cyrus-imapd 2.0.17 (из портов + прохаченый для отображения некодированных русских символов в полях Subject и т. п.) и молотит это уже на протяжении довольно солидного времени как швейцарские часы, периодически обновлялись версии самой FreeBSD, sendmail версий 8.11.x, сам cyrus-imapd и патч check_virus.

virtusertable и access тоже отлично выполняют свои функции в данной конфигурации.

Есть еще вопросы? :)

P. S.
Думаю не лишним будет напомнить, что раз у вас sendmail 8.12.x, то потрудитесь поискать в документации, насколько я помню отличия в настройке 8.11.x и 8.12.x были, но искать за вас мне честно говоря не хочется, а какие имено были отличия я уже и не помню, давно это было. :)


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 13:48 
www# pwd
/usr/local/src/sendmail-8.12.6/cf/cf
www# ls
Build                   generic-bsd4.4.mc       generic-sunos4.1.cf     sendmail.cf.work
Makefile                generic-hpux10.cf       generic-sunos4.1.mc     sendmail.mc
README                  generic-hpux10.mc       generic-ultrix4.cf      sendmail.mc.20030127
chez.cs.mc              generic-hpux9.cf        generic-ultrix4.mc      sendmail.mc.cyrus
clientproto.mc          generic-hpux9.mc        huginn.cs.mc            sendmail.mc.cyrus.work
cs-hpux10.mc            generic-linux.cf        knecht.mc               sendmail.mc.origin
cs-hpux9.mc             generic-linux.mc        mail.cs.mc              sendmail.mc.work
cs-osf1.mc              generic-mpeix.cf        mail.eecs.mc            submit.cf
cs-solaris2.mc          generic-mpeix.mc        mailspool.cs.mc         submit.mc
cs-sunos4.1.mc          generic-nextstep3.3.cf  python.cs.mc            tcpproto.mc
cs-ultrix4.mc           generic-nextstep3.3.mc  s2k-osf1.mc             ucbarpa.mc
cyrusproto.mc           generic-osf1.cf         s2k-ultrix4.mc          ucbvax.mc
freebsd.mc              generic-osf1.mc         sendbmail.cf            uucpproto.mc
freebsd.mc.origin       generic-solaris.cf      sendmail.cf             vangogh.cs.mc
generic-bsd4.4.cf       generic-solaris.mc      sendmail.cf.cyrus.work
www# cat cyrusproto.mc  
divert(-1)
#
#       (C) Copyright 1995 by Carnegie Mellon University
#
#                      All Rights Reserved
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
# provided that the above copyright notice appear in all copies and that
# both that copyright notice and this permission notice appear in
# supporting documentation, and that the name of CMU not be
# used in advertising or publicity pertaining to distribution of the
# software without specific, written prior permission.
#
# CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
# ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
# CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
# ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
# SOFTWARE.
#
#       Contributed to Berkeley by John Gardiner Myers <jgm+@CMU.EDU>.
#
#       This sample mc file is for a site that uses the Cyrus IMAP server
#       exclusively for local mail.
#

divert(0)dnl
VERSIONID(`$Id: cyrusproto.mc,v 8.7 1999/09/07 14:57:10 ca Exp $')
define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')
define(`confLOCAL_MAILER', `cyrus')
FEATURE(`nocanonify')
FEATURE(`always_add_domain')
MAILER(`local')
MAILER(`smtp')
MAILER(`cyrus')

LOCAL_RULE_0
Rbb + $+ < @ $=w . >    $#cyrusbb $: $1
www#

Вот она документация. Что то нигде не нахожу.

Можно докапываться до понятий, но  думаю ты давно понял в чем суть проблемы. Почта не должна приниматься сендмейлом если нет почтового ящика в cyrus (то что создается cm user.pupkin)


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 14:18 
НА СЕРВЕРЕ IMAP ТОЖЕ НЕТ

где эта проверка?


"sendmail+cyrus-imapd"
Отправлено random , 12-Авг-03 14:56 
> НА СЕРВЕРЕ IMAP ТОЖЕ НЕТ
>
>где эта проверка?

Да хрен ее знает где она там, взял я этот пример из документации к cyrus-imapd когда-то очень давно и это работает. :) На несуществующих юзверей sendmail дает отлуп у меня. Уже кстати самому стало интересно почему, оказывается не должен давать судя по тому, что написано на http://www.unixfaq.ru/index.pl?req=qs&id=230 :)))

Попробую как-нибудь на досуге разобраться чего я нахимичил такого там в свое время. :)

Первое подозрение на virtusertable, у меня на одном сервере куча доменов и юзвери из этих доменов не должны смешиваться, поэтому для каждого домена у меня сначала стоит virtusertable:
@domain.ru error:nouser No such user here
а потом идет перечисление юзверей для этого домена.

И так для всех доменов, как пить дать собака здесь порылась, но это надо еще проверить. :)

Хорошо что встрял в базар, так бы и не знал, что cyrus-impad такая сволочь. :)


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 15:16 
Тут собственно вот эта строка вызвает подозрение
F{cyrususers}-o |/usr/local/bin/sasldblistusers

Это для имап еще 1.5
В вот что за формат вывода user: %[^ ] не очень ясно.

www# /usr/local/sbin/sasldblistusers
user: admin realm: www.s.ru mech: DIGEST-MD5
user: al realm: www.s.ru mech: DIGEST-MD5
......

Если за sasldblistusers что то указать что прога считает что мы указали файл откуда брать базу.

Какие только комбинации не перепробовал

Разберешься звякнешь.


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 15:32 
А у тебя нет доков как на sendmail+cyrus (не второй) натроить на работу с вирутальными доменами.
Я полагал что в первом cyrus  с ними нельзя работать

"sendmail+cyrus-imapd"
Отправлено random , 13-Авг-03 04:28 
>Тут собственно вот эта строка вызвает подозрение
>F{cyrususers}-o |/usr/local/bin/sasldblistusers
>
>Это для имап еще 1.5
>В вот что за формат вывода user: %[^ ] не очень ясно.
>
>
>www# /usr/local/sbin/sasldblistusers

Думаю надо свой "СУПЕРСЛОЖНЫЙ" :) скрипт накалякать который
прочитает ls /var/spool/imap/user это и будет список пользователей на IMAP-сервере. ;)))

>user: admin realm: www.s.ru mech: DIGEST-MD5
>user: al realm: www.s.ru mech: DIGEST-MD5
>......
>
>Если за sasldblistusers что то указать что прога считает что мы указали
>файл откуда брать базу.
>
>Какие только комбинации не перепробовал
>
>Разберешься звякнешь.



"sendmail+cyrus-imapd"
Отправлено Dmitry , 12-Авг-03 15:36 
>> НА СЕРВЕРЕ IMAP ТОЖЕ НЕТ
>>
>>где эта проверка?
>
>Да хрен ее знает где она там, взял я этот пример из
>документации к cyrus-imapd когда-то очень давно и это работает. :) На
>несуществующих юзверей sendmail дает отлуп у меня. Уже кстати самому стало
>интересно почему, оказывается не должен давать судя по тому, что написано
>на http://www.unixfaq.ru/index.pl?req=qs&id=230 :)))
>
>Попробую как-нибудь на досуге разобраться чего я нахимичил такого там в свое
>время. :)
>
>Первое подозрение на virtusertable, у меня на одном сервере куча доменов и
>юзвери из этих доменов не должны смешиваться, поэтому для каждого домена
>у меня сначала стоит virtusertable:
>@domain.ru error:nouser No such user here
>а потом идет перечисление юзверей для этого домена.
>
>И так для всех доменов, как пить дать собака здесь порылась, но
>это надо еще проверить. :)
>
>Хорошо что встрял в базар, так бы и не знал, что cyrus-impad
>такая сволочь. :)


Я извиняюсь, что встреваю в беседу, помогите прояснить вопросик. У меня поставлен и вроде успешно работает CyrusImap на Sendmail 8.12. Не могу разобраться поему не получает почту пользователь прописаный в CyrusImap/Sasl до тех пор пока я его не добавлю в систему .


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 15:46 
Покажи конфигурационный файл Cyrus-Imap, какое средство для аутентификации у тебя выставлено?

"sendmail+cyrus-imapd"
Отправлено Dmitry , 12-Авг-03 16:41 
>Покажи конфигурационный файл Cyrus-Imap, какое средство для аутентификации у тебя выставлено?


onfigdirectory: /var/imap                                                
partition-default: /var/spool/imap                                                  admins: cyrus
srvtab: /var/imap/srvtab                                                  allowplaintext: yes                                          
allowanonymouslogin: no                                          
sasl_pwcheck_method: auxprop

На сколько я помню auxprop это аутентификация через SASL


"sendmail+cyrus-imapd"
Отправлено A Clockwork Orange , 12-Авг-03 17:00 
sasl_pwcheck_method: sasldb
#sasl_pwcheck_method: pwcheck

У меня для cyrus-imapd-2.0. ...


"я тоже жудко извиняюсь что встреваю в базар пацанов :))"
Отправлено Camb , 12-Авг-03 17:23 
слушай, а ты релеить Sendmail'ом будешь исходя из ip? или по паролю? (TSL,SASL вроде ж есть такие фишки..)
просто я тоже все созреваю и созреваю настроить систему (почему то postfix нравится..) чтобы:

1. в Cyrus ящиках дружно жили и user1@sub1.domain.ru и user1@sub2.domain.ru
2. хотелось бы, конечно, чтобы релей был по аутентификации.. но можно и по ip..
3. антивирь какой-нить..
вроде все :)

щас пока забросил Debian (работает, молодец, вот только единыжды за всю иcторию apache1.3.26 (из пакетов) не стартонул после утреннец ротации (defolt'ной), причину не нашел..) и плотно занялся FreeBSD 4.7



"совсем забыл!"
Отправлено Camb , 12-Авг-03 17:31 
и еще пожелание:

4. доступ по web (хотя бы с возможностью прочитать и удалить письма) и возможность поменять пароль.
все!

спасибо!!


"совсем забыл!"
Отправлено random , 13-Авг-03 04:33 
>и еще пожелание:
>
>4. доступ по web (хотя бы с возможностью прочитать и удалить письма)
>и возможность поменять пароль.
>все!
>

http://www.squirrelmail.org
http://twig.screwdriver.net (это я правда не смотрел, но отзывы слышал не плохие)

Правда смена пароля, это зависит от способа авторизации на IMAP-сервере, думаю такую фишку придется дописывать самому.

>спасибо!!



"я тоже жудко извиняюсь что встреваю в базар пацанов :))"
Отправлено Dmitry , 13-Авг-03 10:38 
>слушай, а ты релеить Sendmail'ом будешь исходя из ip? или по паролю?
>(TSL,SASL вроде ж есть такие фишки..)
>просто я тоже все созреваю и созреваю настроить систему (почему то postfix
>нравится..) чтобы:
>
>1. в Cyrus ящиках дружно жили и user1@sub1.domain.ru и user1@sub2.domain.ru
>2. хотелось бы, конечно, чтобы релей был по аутентификации.. но можно и
>по ip..
>3. антивирь какой-нить..
>вроде все :)
>
>щас пока забросил Debian (работает, молодец, вот только единыжды за всю иcторию
>apache1.3.26 (из пакетов) не стартонул после утреннец ротации (defolt'ной), причину не
>нашел..) и плотно занялся FreeBSD 4.7

Спасибо A Clockwork Orange, попробую.
Для Camp, у меня стоит cyrus-imapd-2.1.12, cyrus-sasl-2.1.12, sendmail-8.12.6, да еще настроен web доступ к папкам CyrusImap на Horde, все это проверяется Kaspersky. Добавил в sendmail.cf в строку значек "w", так он у меня еще и содержание .forward в /home/users стал понимать.


"я тоже жудко извиняюсь что встреваю в базар пацанов :))"
Отправлено Dmitry , 13-Авг-03 11:12 
>>слушай, а ты релеить Sendmail'ом будешь исходя из ip? или по паролю?
>>(TSL,SASL вроде ж есть такие фишки..)
>>просто я тоже все созреваю и созреваю настроить систему (почему то postfix
>>нравится..) чтобы:
>>
>>1. в Cyrus ящиках дружно жили и user1@sub1.domain.ru и user1@sub2.domain.ru
>>2. хотелось бы, конечно, чтобы релей был по аутентификации.. но можно и
>>по ip..
>>3. антивирь какой-нить..
>>вроде все :)
>>
>>щас пока забросил Debian (работает, молодец, вот только единыжды за всю иcторию
>>apache1.3.26 (из пакетов) не стартонул после утреннец ротации (defolt'ной), причину не
>>нашел..) и плотно занялся FreeBSD 4.7
>
>Спасибо A Clockwork Orange, попробую.
>Для Camp, у меня стоит cyrus-imapd-2.1.12, cyrus-sasl-2.1.12, sendmail-8.12.6, да еще настроен web
>доступ к папкам CyrusImap на Horde, все это проверяется Kaspersky. Добавил
>в sendmail.cf в строку значек "w", так он у меня еще
>и содержание .forward в /home/users стал понимать.

К стати, посоветуйте, на horde в последнее время после ввода пароля стало появляться в браузере следующее:

A fatal error has occurred:

DB Error: connect failed

[line 108 of /usr/local/var/www/gate.test.ru/horde/lib/Prefs/sql.php]

Details have been logged for the administrator

смотрю эти строки

/* Connect to the SQL server using the supplied parameters. */                                                          
            include_once 'DB.php';                                                    $this->db = &DB::connect($this->params, true);                                                                    if (DB::isError($this->db)) {                                                                                          
                Horde::fatal($this->db, __FILE__, __LINE__);      

Иногда пропускает, знания по php слабые, подскажите пожалуста что с этой ошибкой делать, где править


"я тоже жудко извиняюсь что встреваю в базар пацанов :))"
Отправлено Dmitry , 13-Авг-03 11:30 
>>>слушай, а ты релеить Sendmail'ом будешь исходя из ip? или по паролю?
>>>(TSL,SASL вроде ж есть такие фишки..)
>>>просто я тоже все созреваю и созреваю настроить систему (почему то postfix
>>>нравится..) чтобы:
>>>
>>>1. в Cyrus ящиках дружно жили и user1@sub1.domain.ru и user1@sub2.domain.ru
>>>2. хотелось бы, конечно, чтобы релей был по аутентификации.. но можно и
>>>по ip..
>>>3. антивирь какой-нить..
>>>вроде все :)
>>>
>>>щас пока забросил Debian (работает, молодец, вот только единыжды за всю иcторию
>>>apache1.3.26 (из пакетов) не стартонул после утреннец ротации (defolt'ной), причину не
>>>нашел..) и плотно занялся FreeBSD 4.7
>>
>>Спасибо A Clockwork Orange, попробую.
>>Для Camp, у меня стоит cyrus-imapd-2.1.12, cyrus-sasl-2.1.12, sendmail-8.12.6, да еще настроен web
>>доступ к папкам CyrusImap на Horde, все это проверяется Kaspersky. Добавил
>>в sendmail.cf в строку значек "w", так он у меня еще
>>и содержание .forward в /home/users стал понимать.
>
>К стати, посоветуйте, на horde в последнее время после ввода пароля стало
>появляться в браузере следующее:
>
>A fatal error has occurred:
>
>DB Error: connect failed
>
>[line 108 of /usr/local/var/www/gate.test.ru/horde/lib/Prefs/sql.php]
>
>Details have been logged for the administrator
>
>смотрю эти строки
>
>/* Connect to the SQL server using the supplied parameters. */
>            include_once 'DB.php';                                                    $this->db = &DB::connect($this->params, true);                                                                    if (DB::isError($this->db)) {                                                                                          
>                Horde::fatal($this->db, __FILE__, __LINE__);      
>
>Иногда пропускает, знания по php слабые, подскажите пожалуста что с этой ошибкой
>делать, где править


В добавление, к почтовым папкам пропускает через раз , но в конце страници все равно ругается на >[line 108 of /usr/local/var/www/gate.test.ru/horde/lib/Prefs/sql.php]


"sendmail+cyrus-imapd"
Отправлено klim , 15-Авг-03 09:38 
>Как настроить sendmail, что бы в момент установления соединения проверялось наличие пользователя
>(ящика) cyrus и при его отсутствии почта не принималась?

Я может что и не понял, но насколько я знаю sendmail только слушает 25 порт, а есть или нет пользователя решает поп или имап демон, а насчет SMTP порта sendmail просто принимает или нет сообщения если они есть в RELAY или не принимает если они есть REJECT.