Установка cyrus imapd на FreeBSD

Информация из how-to postfix-avp-cyrus Константина Никоненко http://www.kot.dp.ua

Ставить будем из портов.

# cd /usr/ports/mail/cyrus-imapd/

# make configure

Перед окончательной сборкой стоит обратить внимание на вот этот факт.

# vi message.c

# make all install clean

в процессе установки будет скомпилирован и установлен и cyrus-sasl

как всегда, документация в /usr/local/share/doc/cyrus/

файлы конфигурации в /usr/local/etc/ их два

cyrus.conf

imapd.conf

Если мы не используем lmtp, то файл cyrus.conf редактировать не требуется.

Конфигурируем cyrus файлом imapd.conf

Первое, что надо сделать, это указать, кто будет администратором. Рекомендуется не использовать root для этого. Более детально в комментариях.

admins: admin

укажем пути

sievedir: /var/imap/sieve

sendmail: /usr/local/sbin/sendmail

и метод аутентификации пользователей

sasl_pwcheck_method: sasldb

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

sasl_auto_transition: no

Если установить этот параметр в yes, то любой (!) пользователь, зашедший по протоколам POP3|IMAP будет заведен в базу и для него будет создан почтовый ящик.

После того как мы пропишем в imapd.conf все пути, нужно создать иерархию каталогов для почтовых ящиков

# /usr/local/cyrus/bin/mkimap

Имена и пароли всех пользователей хранятся в файле /usr/local/etc/sasldb. Владелец:

-rw-r----- 1 cyrus mail sasldb

Просмотреть существующих пользователей можно командой sasldblistusers. Нам надо добавить пользователя admin

# saslpasswd -c admin

и вводим пароль. Теперь мы можем запустить cyrus. При его установке в каталоге /usr/local/etc/rc.d/ был создан скрипт запуске cyrus.sh. Запустим его с параметром start.

# /usr/local/etc/rc.d/cyrus.sh start

Манипуляции с почтовыми ящиками проводят через утилиту

# cyradm -u admin localhost

при его запуске у Вас спросят пароль, который Вы вводили при создании этого пользователя saslpasswd. Команда help расскажет Вам об остальных командах. Обратите внимание, что почтовые ящики имеют имена формата user.Вася. Для того, что бы создать почтовый ящик выполните здесь команду

localhost> cm user.uafug

localhost> lm

покажет Вам все существующие почтовые ящики.

localhost> quit

Мы создали почтовый ящик для пользователя uafug. Но необходимо не забыть установить ему пароль

# saslpasswd -c uafug

Что бы знать, куда будут писаться логи, подредактируем файл /etc/syslog.conf

auth.* /var/log/auth.log

local6.* /var/log/cyrus.log

и что бы логи не переполнили диск правим /etc/newsyslog.conf

/var/log/auth.log 600 3 100 * Z

/var/log/cyrus.log 600 3 100 * Z

для вступления исправлений в силу

# touch /var/log/auth.log /var/log/cyrus.log

# chmod 600 /var/log/auth.log /var/log/cyrus.log

# killall -HUP syslogd

Если как MTA мы используем postfix, то:

# cd /usr/local/etc/postfix

и укажем ему, как локально доставлять почту для наших пользователей в файле master.cf. Вот здесь мы и расшифруем указанное нами ранее в файле main.cf значение cyrus

cyrus unix - n n - - pipe

flags=Ru user=cyrus

argv=/usr/local/cyrus/bin/deliver -e -m ${extension} ${user}

проверьте правильность пути. Флаг u указывает, что имена пользователей при передаче необходимо перевести в нижний регистр.

Если всё верно postfix готов к работе.

Если вы используете sendmail, то Вам необходимо пересобрать ваш sendmail.cf, добавив в mc следующие строчки

define(`confLOCAL_MAILER', `cyrus')

define(`CYRUS_MAILER_PATH', /usr/local/cyrus/bin/deliver)

а также именно в этом порядке.

MAILER(`smtp')

MAILER(`local')

MAILER(`cyrus')

http://unixfaq.ru/index.pl?req=qs&id=395

Обновлено: 12.03.2015