Используемая система -- FreeBSD 4 или 5
Pre-
Про настройку sendmail можно прочитать на www.sendmail.org или sendmail.by.ru
Сущствует также Cyrus-IMAP HOWTO, он и послужил основой этому для этого руководства, несмотря на то что несколько устарел.
Домашняя страница проекта Cyrus
Установка
Тут все совсем просто :)
Надо установить из портов sendmail-sasl и cyrus-imapd:
# cd /usr/ports/mail/sendmail-sasl
# make && make install && make clean
При этом установится еще и cyrus-sasl2 -- пакет для собственно аутентификации. Я собирал только с одним механизмом хранения учетных данных, sasldb.
# cd /usr/ports/mail/cyrus-imapd2
# make && make install && make clean
Настройка sendmail
В sendmail.mc надо добавить такие строки:
FEATURE(mailertable, `hash -o /etc/mail/mailertable.db')
MAILER(cyrus)dnl
define(`confLOCAL_MAILER',`cyrus')dnl
LOCAL_RULE_0
R$=N $: $#local $: $1
R$=N < @ $=w . > $: $#local $: $1
Обратите внимание, поля здесь разделены табуляциями, а не пробелами (например, между R$=N и $: $#local $: $1 три символа табуляции).
Пересобираем sendmail.cf:
# cd /etc/mail
# m4 /usr/local/share/sendmail/cf/m4/cf.m4 sendmail.mc > sendmail.cf
В /etc/mailertable добавляем строку:
yourdomain.com cyrus:%1
и пересобираем mailertable.db
# makemap hash mailertable.db < mailertable
при этом добавлять yourdomain.com в /etc/local-host-names не надо!
В /etc/mail/mailer.conf надо поправить путь к sendmail на /usr/local/sbin/sendmail, переименовать /etc/rc.sendmail так, чтобы он не запускался и в /usr/local/etc/rc.d скрипт sendmail.sh.sample переименовать (или скопировать) в sendmail.sh, аналогично с saslauthd.sh.sample.
Настройка cyrus-imapd2
Добавляем в /etc/syslogd.conf строки
local6.debug /var/log/imapd.log
auth.debug /var/log/auth_debug.log
и перезапускаем syslogd
# killall -HUP syslogd
Затем проверяем /usr/local/etc/imapd.conf на наличие следующих опций:
configdirectory: /var/imap
partition-default: /var/spool/imap
admins: cyrus root
srvtab: /var/imap/srvtab
sasl_pwcheck_method: saslauthd
Теперь создаем необходимые файлы и директории:
# touch /var/log/imapd.log /var/log/auth_debug.log
# mkdir /var/imap /var/spool/imap /var/imap/srvtab
# chown cyrus /var/imap /var/spool/imap /var/imap/srvtab
# chgrp mail /var/imap /var/spool/imap /var/imap/srvtab
# chmod 750 /var/imap /var/spool/imap /var/imap/srvtab
Затем запускаем /usr/local/cyrus/bin/mkimap
Добавляем в /etc/inetd.conf три строки (закомментарив при этом старые pop3 и imap4 сервера, если они были запущены):
imap4 stream tcp nowait cyrus /usr/local/cyrus/bin/imapd imapd
pop3 stream tcp nowait cyrus /usr/local/cyrus/bin/pop3d pop3d
sieve stream tcp nowait cyrus /usr/local/cyrus/bin/timsieved sieve
Необходимо, чтобы в /etc/services присутствовали эти сервисы:
pop3 110/tcp
imap 143/tcp
imsp 406/tcp
kpop 1109/tcp
sieve 2000/tcp
Делаем симлинк в /usr/local:
# ln -s /usr/local/cyrus /usr
Впрочем, это не кажется правивльным решением, если вам удалось без этого обойтись -- расскажите мне, как :)
Запуск
Убиваем старый sendmail:
# killall sendmail
перезапускаем inetd:
# killall -HUP inetd
запускаем saslauthd и sendmail:
# /usr/local/etc/rc.d/saslauthd.sh start
# /usr/local/etc/rc.d/sendmail.sh start
Создаем пользователя cyrus:
saslpasswd2 cyrus
Затем проверяем сервер:
imtest -m login -p imap localhost
если вы видите что-то вроде этого:
S: * OK mydomain Cyrus IMAP4 v2.1.11 server ready
C: C01 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 ACL QUOTA LITERAL+ MAILBOX-REFERRALS NAMESPACE UIDPLUS ID
NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND SORT THREAD=ORDEREDSUBJECT THREAD=REFERENCES
IDLE AUTH=KERBEROS_V4 AUTH=OTP AUTH=DIGEST-MD5 AUTH=CRAM-MD5
S: C01 OK Completed
Please enter your password:
то все хорошо, логинимся на сервер:
# cyradm --user cyrus --auth login localhost
и создаем майлбоксы.
Чтобы создать пользователя pupkin, надо создать майлбокс user.pupkin!
в консоли cyradm:
cm user.pupkin
quit
 |