Мини-HOWTO: установка IMAP сервера Cyrus

Автор: Kevin Mitchell ([email protected])

Перевод: Станислав Рогин, SWSoft Pte Ltd.

версия 0.9, 21 января 1998 года


В этом документе приведено несколько полезных советов по установке IMAP-сервера Cyrus на системе, использующей Linux.


1. Введение

Я хотел бы поблагодарить Bob Anderson ([email protected]) и Jorge Paramo ([email protected]) за посильную помощь в моих путешествиях по миру Linux.

Что такое IMAP, и зачем он мне нужен?

IMAP (Internet Message Access Protocol) - это способ доступа к электронной почте или сообщениям в досках объявлений, содержащихся на почтовом сервере. IMAP воспринимается многими как альтернатива протоколу POP (Post Office Protocol). IMAP позволяет читать электронную почту с разных компьютеров напрямую с сервера, не загружая ее на локальную машину. Такой способ доступа к почте значительно более безопасен, а также предоставляет некоторые дополнительные возможности конечному пользователю.

Более подробное описание можно найти по адресу: http://www.imap.org/whatisIMAP.html

Сравнительная характеристика протоколов IMAP и POP доступна по адресу: http://www.imap.org/imap.vs.pop.brief.html

Почему Cyrus?

Сервер Cyrus создан для серверов, на котором обычным пользователям не разрешено входить в систему. А также, по-моему мнению, Cyrus - это один из двух наиболее популярных IMAP-серверов для Unix. Второй сервер - The University of Washington IMAP Server, доступный по адресу ftp://ftp.cac.washington.edu/imap/imap.tar.Z

2. Описание моей системы

Я удачно установил и настроил Cyrus на 486DX66- и Pentium-машинах, использующих Linux с ядром версии 2.1.79 и 2.0.33 соответственно. Изначально Linux на этих машинах был установлен с дистрибутива Slackware версии 3.4.

3. Установка Tcl

До установки Cyrus убедитесь в том, что на вашей машине установлен Tcl - иначе вы не сможете использовать Утилиту Администрирования Cyrus "Cyrus Admin Tool" (cyradm). Самую новую версию исходных текстов tcl можно найти по адресу ftp://ftp.sunlabs.com/pub/tcl/

После установки Tcl проверьте, что файл libtcl.a находится в каталоге /usr/local/lib/. Tcl версии 8.0 создает файл libtcl8.0.a, и для гарантии нормальной работы надо создать соответствующую символьную ссылку, при помощи команды:

# ln -s libtcl8.0.a libtcl.a

4. Установка makedepend

Проверьте, есть ли в вашей системе команда makedepend. Если нет, то ничего страшного - она поставляется также с исходными текстами Cyrus. (В моей системе ее тоже не было, так как ее нет в Slackware 3.4)

Для установки makedepend, разверните пакет Cyrus, перейдите в каталог makedepend и запустите следующие команды:

./configure
make
cp ./makedepend /usr/local/bin/makedepend

5. Установка Cyrus

Внимательно прочтите инструкции по установке, входящие в пакет Cyrus. Эти инструкции можно также найти по адресу: http://andrew2.andrew.cmu.edu/cyrus/imapd/install.html

Несколько советов по некоторым фазам установки:

Если у вас дистрибутив Slackware 3.4 (с теневыми паролями (Shadow Passwords)), запустите configure командой:

./configure --with-login=unix_pwcheck

make достаточно прост:

make depend
make all CFLAGS=-O

Шаг 1: После добавления пользователя cyrus, я отключил это имя входа для минимизации проблем с безопасностью.
Шаг 3: Я сам отредактировал файл /etc/syslog.conf, вместо простого копирования их примера.
Шаг 9: В Linux убедитесь в нормальном запуске pwcheck (приведенном ниже), иначе сервер не будет работать:

umask 0;/usr/cyrus/bin/pwcheck &
      umask 022

И затем добавьте запуск Cyrus в загрузочный скрипт примерно такими строками::

if [ -f /usr/cyrus/bin/pwcheck ]; then
      echo -n "Запуск pwcheck для imap"
      umask 0;/usr/cyrus/bin/pwcheck &
      umask 022
fi

Я добавил эти строки в файл /etc/rc.d/rc.local, и все прекрасно заработало.

Шаг 12: В процессе редактирования файла /etc/inetd.conf, проверьте нормальный запуск TCP Wrappers, если вы их используете, например:

imap  streamtcp     nowait    cyrus     /usr/sbin/tcpd    /usr/cyrus/bin/imapd     imap

И не забудьте про команду kill -HUP inetd после этих изменений:

# ps ax | grep inetd
 61?S  0:00 /usr/sbin/inetd
# kill -HUP 61

6. Настройка Sendmail

Скачайте исходные тексты sendmail, если у вас их еще нет. До запуска IMAP, вы можете добавить некоторые полезные вещи, как, например, настройку анти-спам системы.

Ниже приведен мой файл .mc. Он доставляет почту посредством IMAP, если имя пользователя не указано в файле /etc/sendmail.cN. Таким образом системные пользователи, такие, как root, смогут содержать свою почту обычным образом в спуле (spool); В то же время все остальные по умолчанию используют IMAP. Не стоит просто копировать и использовать этот пример, иначе sendmail будет жаловаться на использование пробелов вместо табуляции:

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 не может
# быть использовано в целях рекламы или публикации, сопутствующих
# дистрибутиву, без предварительного специального письменного разрешения
#
# 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.
#
# CMU ОТВЕРГАЕТ ЛЮБУЮ ОТВЕТСТВЕННОСТЬ, СВЯЗАННУЮ С ИСПОЛЬЗОВАНИЕМ ЭТОГО
# ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ, ВКЛЮЧАЯ ВСЕ СОПУТСТВУЮЩИЕ ГАРАНТИИ ПРОДАВАЕМОСТИ
# И СОВМЕСТИМОСТИ. CMU НИ В КАКОМ СЛУЧАЕ НЕ НЕСЕТ ОТВЕТСТВЕННОСТИ ЗА ПРЯМОЙ ИЛИ
# КОСВЕННЫЙ УЩЕРБ ЛЮБОГО РОДА, ВКЛЮЧАЯ ПОТЕРИ ИСПОЛЬЗУЕМОСТИ, ДАННЫХ ИЛИ
# ПРИБЫЛИ, ПРОИЗОШЕДШИХ ТАКЖЕ ВСЛЕДСТВИЕ КОНТРАКТОВ, СОГЛАШЕНИЙ ИЛИ
# ДРУГИХ ФОРМ ПРАВООТНОШЕНИЙ, ВОЗНИКШИХ ИЗ ИЛИ СВЯЗАННЫХ С ЭТИМ ПРОГРАММНЫМ
# ОБЕСПЕЧЕНИЕМ
#
#     Contributed to Berkeley by John Gardiner Myers <[email protected]>.
#     В институт Berkeley передано John Gardiner Myers <[email protected]>.
#
#     Это пример для сайта, использующего IMAP-сервер Cyrus
#     для передачи локальной почты.
#

divert(0)dnl
VERSIONID(`@(#)cyrusproto.mc  8.3 (Carnegie Mellon) @(#)cyrusproto.mc 8.3')
OSTYPE(linux)
define(`confBIND_OPTS',`-DNSRCH -DEFNAMES')
FEATURE(nouucp)
FEATURE(nocanonify)
FEATURE(always_add_domain)
MAILER(smtp)
MAILER(local)
MAILER(cyrus)

define(`confLOCAL_MAILER',`cyrus')

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

LOCAL_CONFIG
FN /etc/sendmail.cN

# end of mc file

После создания файла /etc/sendmail.cf, создайте файл /etc/sendmail.cN со списком пользователей, которые не будут использовать доставку почты посредством IMAP, например:

root
majordom
stan
mothra

После установки пакета Sendmail версии 8.8.8 я также установил утилиту mail.local, как систему доставки локальной почты для вышеприведенных пользователей. Ниже приведен простой способ создания mail.local. Перейдите в каталог mail.local исходных текстов sendmail и проделайте следующее:

cp Makefile Makefile.orig
cp Makefile.dist Makefile
make
cp mail.local /bin/mail.local
chmod 4555 /bin/mail.local

После всего этого перезапустите sendmail.

Не забудьте закончить исполнение инструкций по установке Cyrus.

7. Настройка почтовых ящиков

Обязательно проведите все тесты работоспособности IMAP-сервера. Если все работает приемлемо - настройте почтовые ящики.

8. Авторские права

Авторские права на русский перевод этого текста принадлежат © 2000 SWSoft Pte Ltd. Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе, физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но, так или иначе, автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO, должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO, с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: или к координатору русского перевода Linux HOWTO компании SWSoft Pte Ltd. по адресу

9. Ответственность

Никаких гарантий, возврата денег и т.п. Используйте исключительно на свой страх и риск.

10. Источники

Необходимые пакеты

Домашняя страница Cyrus: http://andrew2.andrew.cmu.edu/cyrus/imapd/

Новая версия доступна по адресу: ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/

Домашняя страница Tcl: http://sunscript.sun.com/

Новая версия доступна по адресу: ftp://ftp.sunlabs.com/pub/tcl/

Домашняя страница Sendmail: http://www.sendmail.org/

Новая версия доступна по адресу: ftp://ftp.sendmail.org/ucb/src/sendmail/