| |
make installУбедитесь, что Вы правильно задали параметр "--with-cyrus-prefix" (по умолчанию, "/usr/cyrus/bin").
mv syslogd /etc/syslogd mv syslog.conf /etc/syslog.confЕсли Вы не скопируете файл "syslog/syslog.conf" в директорию "/etc", убедитесь, что поддерживается "local6.debug ". Файл должен включать такую строку:
local6.debug /var/log/imapd.logВероятнее всего, Вы захотите вести журнал сообщений от SASL, тогда должна быть такая строка:
auth.debug /var/log/auth.logПосле установки и тестирования, Вы, возможно, захотите изменить компонент ".debug" на что-нибудь менее звучное. Создайте log-файлы:
touch /var/log/imapd.log /var/log/auth.log
configdirectory: /var/imap partition-default: /var/spool/imap admins: curtj abell sasl_pwcheck_method: saslauthdДля получения описания всех параметров в этом файле, обращайтесь к man-странице imapd.conf(5) man page. (Помните, что этот файл передает(экспортирует) некоторые некоторые значения в libsasl, самый важный из них - pwcheck_method. В этом примере пользователи аутентифицируются через демон saslauthd, для которого существует множество различных способов управления .)
ЧИТАЙТЕ MAN-СТРАНИЦУ imapd.conf(5) . Есть опции, значания по умолчанию которых могут Вам не понравиться.
Помните, что каждодневные пользователя не должны быт администраторами. Админы имеют полномочия, которых не может быть у простых пользователей и пока сервер позволяет им получать почту будут возникать некоторые проблемы, если админы используются как простые пользователи. Вы , как администратор, также не должны читать почту. У Вас должны быть разные аккаунты для чтения почты и администрирования. Это особенно важно при использовании опции altnamespace , т.к. админы всегда представлены в стандартом (внутреннем) именовании.
В примерах этого документа используется конфигурационная директория "/var/imap". Владельцем этой директории должен быть cyrus-пользователь и cyrus-группа, остальные пользователи не должны иметь никакого доступа.
cd /var mkdir imap chown cyrus imap chgrp mail imap chmod 750 imap
В примерах этого документа используется директория раздела по умолчанию "/var/spool/imap ":
cd /var/spool mkdir imap chown cyrus imap chgrp mail imap chmod 750 imapКонцепкия директории раздела похожа на /var/spool/news . Там хранатся почтовые ящики. В отличие от большинства netnews-систем, Cyrus позволяет иметь более одного раздела. Не используйте "news", как имя раздела, т.к. это имя зарезервированно для теелконференций(netnews).
cd /usr mkdir sieve chown cyrus sieve chgrp mail sieve chmod 750 sieve
su cyrus tools/mkimap exitЕсли Perl'нет, то несложно (но долго) создать эти директории вручную.
cd /var/imap chattr +S user quota user/* quota/* chattr +S /var/spool/imap /var/spool/imap/*Также заставте директорию очереди почтового демона обновляться синхронно. Следующий пример для sendmail:
chattr +S /var/spool/mqueue
pop3 110/tcp imap 143/tcp imsp 406/tcp acap 674/tcp imaps 993/tcp pop3s 995/tcp kpop 1109/tcp sieve 2000/tcp lmtp 2003/tcp fud 4201/udp
Для использования normal.conf, выполните:
cp master/conf/normal.conf /etc/cyrus.conf
По желанию, Вы можете отредактировать /etc/cyrus.conf для разрешения или запрета определенных сервисов, или настроить число "готовых" процессов . Убедитесь, что не удалили записи, помеченные как. требуемые
/usr/cyrus/bin/master &
Для того, что бы почта шла в Cyrus, Вы должны настроить ваш MTA (Sendmail, Postfix, Exim, etc) на использование LMTP.
Следующие конфигурации предпологают, что вы используете сервис lmtpunix и однин из конфигов cyrus.conf обсужденных выше.
define(`confLOCAL_MAILER', `cyrusv2') MAILER(`cyrusv2')Если Вам нужно изменить имя UNIX-сокета или использовать TCP, определите CYRUSV2_MAILER_ARGS как это описанно в cf/README.
define(`confLOCAL_MAILER', `cyrus') MAILER(`cyrus')Отредактируйте /etc/group и добавте пользователя "daemon" в группу "mail". Это разрешит sendmail'у запускать программу "deliver " (LMTP-клиент) для доставки почты IMAP-серверу.
Один важный момент, который Вы не должны упускать - это UID и GID Postfix'а. Как сказанно в документе Postfix'а "INSTALL" , Вы должны создать новый аккаунт который не разделяет свой UID и GID с любым другим пользовательским аккаунтом. Это делается из соображений безопастности. Если Вы установили Postfix с GID "mail", Вам нужно будет выбрать другой GID для Cyrus. Смотрите описание конфигурационных опций Cyrus'а "--with-cyrus-user" и "--with-cyrus-group". (Это было наиболее критично когда использовался Cyrus'овский "deliver ", но всеравно было бы неплохо придерживаться этой политики.)
Другой момент заключается в определении местонахождения команды "sendmail". На одних платформах это может быть "/usr/sbin/sendmail", на других, "/usr/lib/sendmail". Cyrus должен знать где находиться эта команда. За детелями обращайтесь в Installing Sieve .
Если Вы пользуетесь сервисом lmtpunix как в примерах cyrus.conf описанных выше, конфигурационный файл Postfix "/etc/postfix/main.cf " должен иметь такую строку:
mailbox_transport = lmtp:unix:/var/imap/socket/lmtp
Естественно, оба, Postfix UID и Cyrus UID, должны иметь соответствующий доступ к указанному сокету.
Начиная с Postfix snapshot-20010222, Вы можете улучшить эффективность LMTP-доставки через "mailbox_transport", поместив следующие строки в файл "/etc/postfix/main.cf":
local_destination_recipient_limit = 300 local_destination_concurrency_limit = 5
Конечно, Вы должны приспособить эти настройки в соответствии с вашими аппаратными требования. Ограничение числа получателей может хорошо сочитаться с возможностью Cyrus'а хранить сообщения в единственном экземпляре. Лимит конкурирующих подключений может быть использован для контроля количества одновременных LMTP-сессий к хранилищю сообщений в Cyrus'е.
Дополнительные примеры включены в файл Postfix "README_FILES/LMTP_README".
Cyrus разработан для использования как black-box-сервер -- т.е. никаких локальных(системных) пользовательских аккаунтов. Из-за этого, Вы должны будете определить следующий "router":
localuser: driver = accept transport = local_delivery
Следующие "transports" подразумевают их использование их с сервисом lmtpunix или lmtp из файла cyrus.conf описанного выше.
local_delivery: driver = lmtp command = "/usr/cyrus/bin/deliver -l" batch_max = 20 user = cyrus
local_delivery: driver = smtp protocol = lmtp hosts = localhost allow_localhost
Для более продвинутой настройки (такой как верификация адресов
и т.д.), читайте доки по Exim и примеры конфигов.
SSL, TLS и OpenSSL
Transport Layer Security (TLS), является стандартизированной версией стандарта Secure Sockets Layer (SSL v3). IMAP может использовать две различные версии TLS/SSL: STARTTLS и SSL wrapped сессии.
В STARTTLS, клиент подключается к порту IMAP и затем посылает STARTTLS-команды, которые инициируют TLS-обмен. В настоящий момент это поддерживается Cyrus IMAP Server'ом, если тот собран с OpenSSL.
Альтернатива: SSL-wrapped-соединение, клиент подключается к другому порту ("imaps ") и устанавливает SSL-сессию до начала IMAP-протокола. Это также поддерживается Cyrus IMAP Serve'ом, если тот собран с OpenSSL.
Оба, TLSи SSL, требуют наличие серверного ключа и сертификата. По желанию, помимо установки безопастного соединения, TLS может аутентифицировать клиентов.
OpenSSL требует сертификата и ключа в PEM-формате. Вы можете создать закрытый ключ сервера и сертификат с собственной подписью. Далее, мы создаем собственный ключ для машины " foobar.andrew.cmu.edu", затем помещаем и сертификат и ключ в файл "/var/imap/server.pem".
Пожалуйста, не используйте следующюю информацию для OpenSSL. Вместо нее введите нужную информацию для Вашей организации (т.е. НЕ Carnegie Mellon University в имени организации и т.д.).
openssl req -new -x509 -nodes -out /var/imap/server.pem -keyout /var/imap/server.pem -days 365 Using configuration from /usr/local/lib/openssl/openssl.cnf Generating a 1024 bit RSA private key .............+++++ ......................+++++ writing new private key to '/var/imap/server.pem' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:Pennsylvania Locality Name (eg, city) []:Pittsburgh Organization Name (eg, company) [Internet Widgits Pty Ltd]:Carnegie Mellon University Organizational Unit Name (eg, section) []:Andrew Systems Group Common Name (eg, YOUR name) []:foobar.andrew.cmu.edu Email Address []:
tls_cert_file: /var/imap/server.pem tls_key_file: /var/imap/server.pemПо желанию, Вы можете использовать разные файлы ключей и сертификаты для каждого сервиса:
tls_imap_cert_file: /var/imap/imap-server.pem tls_imap_key_file: /var/imap/imap-server.pem tls_pop3_cert_file: /var/imap/pop3-server.pem tls_pop3_key_file: /var/imap/pop3-server.pem tls_lmtp_cert_file: /var/imap/lmtp-server.pem tls_lmtp_key_file: /var/imap/lmtp-server.pem tls_sieve_cert_file: /var/imap/sieve-server.pem tls_sieve_key_file: /var/imap/sieve-server.pemЭто полезно когда используются различные имена хостов для разных сервисов (например через виртуальные хосты или DNS CNAME). При отсутствии в любом из сервисов определенной опции, будет использоваться значение глобальной опции. Значение запрещающие сертификат или ключевой файл для какого-либо сервиса отключит SSL/TLS для этого сервиса.
Если у Вас есть Certificate Authority (CA), Вы можете сгенерировать запрос на подпись сертификата и послать его на обработку Вашему CA.
По умолчанию, Cyrus будет кэшировать SSL/TLS-сессии до 24 часов. Используя опцию tls_session_timeout в imapd.conf, кэширование сессии может быть отключено (0) или сокращен период хранения.
imtest -t "" foobar.andrew.cmu.edu
Клиентские сертификаты формируются несколько сложнее, чем сертификаты серверов. Вам нужен CA (certificate authority) и нужно сгенерировать сертификат подписанный CA. STARTTLS в Sendmail и других MTA have подобные проблемы. С.м. Claus Assman's page
Вы можете использовать сертификат с собственной подписью как CA для клиентского сертификата. Чтобы это сделать, попробуйте следующее:
TODO: write me!
К сожалению, нет стандарта позволяющего конвертировать клиентские аутентификационные DN (distinguished name) в аутентификационные имена SASL.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |