The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Конфигурирование виртуальных доменов Cyrus+Postfix в FreeBSD 5.4 (cyrus imap freebsd postfix mail virtual sasl)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: cyrus, imap, freebsd, postfix, mail, virtual, sasl,  (найти похожие документы)
From: Сгибнев Михаил <http://dreamcatcher.ru>; Date: Mon, 22 Oct 2005 14:31:37 +0000 (UTC) Subject: Конфигурирование виртуальных доменов Cyrus+Postfix в FreeBSD 5.4 Оригинал: http://dreamcatcher.ru/docs/cyrus2.html Запуск Cyrus IMAP. Конфигурирование виртуальных доменов Cyrus+Postfix в FreeBSD 5.4 Francisco Reyes 10/06/2005 Перевод: Сгибнев Михаил Cyrus IMAP является эффективным сервером IMAP и способен к работе с большим числом учетных записей. Самым большим его недостатком является сложность в установке и конфигурировании. В этой статье мы рассмотрим как можно использовать Cyrus в связке с Postfix в качестве агента почтовой доставки (MTA). Все приведенные здесь инструкции проверялись на FreeBSD 5.4. Postfix является заменой sendmail и входит в стандартную поставку FreeBSD. Он проще в конфигурировании, но если вы зависите от sendmail, то, хотя и по прежнему можете смотреть здесь настройку Cyrus, вам необходимо обратиться к руководству по настройке Sendmail для конфигурирования MTA. Если не указано иное, то все операции выполняются с правами пользователя root. Мы будем использовать систему портов, поэтому если вы плохо с ней знакомы, то обратитесь к [6]Главе 4 Руководства пользователя FreeBSD. Установка и настройка Для установки Cyrus и Postfix на FreeBSD были использованы следущие порты: * Sasl2 2.1.21 * Cyrus 2.2.12 * Postfix 2.23 Компонент SASL2 отвечает за аутентификацию и будет подтверждать полномочия любой почтовой программы, запросившей почту. Все пользователи, имеющие почтовые ящики, должны иметь запись в базе данных SASL2. Также, любые ID, которые вы планируете использовать для управления Cyrus нуждаются в ID в SASL. Для SASL ID необходимости в Cyrus IMAP ID нет. Cyrus управляет почтовыми ящиками пользователей, которые должны иметь свои ID для получения почты. Postfix доставляет почту в Cyrus. Postfix должен знать о каждом пользователе через файл карты псевлонимов. В этом файле определяется соответствие почтового адреса внутреннему почтовому ящику пользователя, при этом есть возможность указать несколько адресов для одного ящика. В качестве базы данных используется Berkeley DB, в данной статье используется версия 4.3, но возможна рабоота и с другой версией. SASL2 Установка из системы портов: # cd /usr/ports/security/cyrus-sasl2 # make WITHOUT_OTP=YES WITHOUT_NTLM=YES WITHOUT_GSSAPI=YES WITH_BDB_VER=43 # make install clean OTP, NTLM и GSSAPI являются различными механизмами аутентификации и не используются в этой статье. Если вы планируете использовать другие механизмы, то укажите их, исключив лишние. WITH_BDB_VER=43 указывает на использование базы данных Berkeley 4.3. Для проверки правильности установки SASL2, выполним: # rehash # saslpasswd2 -c admin # sasldblistusers2 admin@domain1: userPassword saslpasswd2 с параметром -c указывает SASL2 создать пользователя admin, а команда sasldblistusers2 отображает список пользователей. Cyrus После команды make вы увидите меню. Сразу нажимаем OK, так как не нуждаемся ни в каких опциях кроме указывающей на использование Berkeley DB. # cd /usr/ports/mail/cyrus-imapd22 # make USE_BDB_VER=43 # mail install clean Необходимо создать каталог, где будут храниться файлы IMAP: # mkdir /var/imap # mkdir /var/imap/spool # chown -R cyrus:mail /var/imap # chmod -R 750 /var/imap По умолчанию Cyrus использует каталоги /var/imap и /var/spool, но я использую /var/imap и /var/imap/spool, что облегчает задачи резервного копирования. Для запуска Cyrus во время начальной загрузки, необходимо добавить следущую строку в /etc/rc.conf: cyrus_imapd_enable="YES" Postfix и Cyrus взаимодействуют между собой через сокет, его имя и размещение указано в /usr/local/etc/cyrus.conf. Закомментируйте строку, содержащую lmtp и добавльте: lmtpunix cmd="lmtpd" listen="/var/imap/socket/lmtp" prefork=0 Главным файлом конфигурации Cyrus является /usr/local/etc/imapd.conf. Его краткое содержание представлено ниже, обратите внимание на комментарии: configdirectory: /var/imap [1] partition-default: /var/imap/spool sievedir: /var/imap/sieve admins: user1@domain1 user2@domain2 admin [2] allowanonymouslogin: no autocreatequota: 10240 reject8bit: no quotawarn: 90 timeout: 30 poptimeout: 10 dracinterval: 0 drachost: localhost sasl_pwcheck_method: auxprop lmtp_overquota_perm_failure: no unixhierarchysep: no virtdomains: userid defaultdomain: domain1 [3] loginrealms: domain1,domain2 [4] [1] Для использования другого хранилища сообщений, измените значения configdirectory, partition-default и sievedir. Хотя и не рекомендуется размещать partition-default внутри configdirectory, здесь это сделано именно так. [2] Если вы хотите, чтобы с ID можно было управлять всеми доменами, то не следует указывать параметр domain. В случае, когда домен указан, администрировать можно только конкретный домен. [3] Домен по умолчанию. Если домен, при создании пользователя, не указывается, то используется домен по умолчанию. [4] Список всех доменов, которые вы планируете обслуживать. Для получения дополнительной информации обратитесь к /usr/local/etc/imapd.conf.original и man imapd.conf. Теперь нам необходимо создать несколько каталогов, необходимых для подготовки Cyrus к работе: # su cyrus >/usr/local/cyrus/bin/mkimap и, с правами пользователя root: # /usr/local/etc/rc.d/imapd.sh start Проверим работу: #telnet localhost 143 Escape character is '^]'. * OK computer.domain.com Cyrus IMAP4 v2.2.12 server ready Для выхода используйте команду a1 logout. Для каждого почтового ящика необходимо создать и SASL2 и Cyrus ID. Для примера, создадим пользователя test в домене domain1: Создаем SASL2 ID: saslpasswd2 -c test@domain1 Password: Again (for verification): # sasldblistusers2 [email protected]: userPassword Создаем Cyrus ID, учтите, что вам понадобится пароль пользователя admin, изменить его можно командой saslpasswd2 admin: #cyradm --user admin localhost Password: localhost.domain1> cm user.test@domain1 lm test@domain1 (\HasNoChildren) quit Postfix В меню, открывшемся при установке, выберите пункты Cyrus SASL v2 и Berkeley DB4.3. Также будет задан вопрос о добавлении пользователя postfix в группу mail и активации Postfix в /etc/mail/mailer.conf. Соглашаемся с предложенным. # cd /usr/ports/mail/postfix # make install clean # rehash Редактируем /etc/rc/conf: sendmail_enable="NONE" sendmail_flags="-bd" sendmail_pidfile="/var/spool/postfix/pid/master.pid" sendmail_outbound_enable="NO" sendmail_submit_enable="NO" sendmail_msp_queue_enable="NO" Создадим символическую ссылку, необходимую для запуска во время начальной загрузки: # cd /usr/local/etc/rc.d # ln -s /usr/local/sbin/postfix postfix.sh Также необходимо отключить спечифичные для Sendmail инструкции в файле /etc/periodic.conf: daily_clean_hoststat_enable="NO" daily_status_mail_rejects_enable="NO" daily_status_include_submit_mailq="NO" daily_submit_queuerun="NO" Когда Postfix уже сконфигурирован, необходимо создать базу данных псевдонимов alias.db и запустить Postfix: # newaliases # ls -l /etc/aliases.db # postmap /usr/local/etc/postfix/virtual # postfix start Хотя, описанный в статье, процесс установки и не использует этот файл, он необходим для работы Postfix. Теперь проверим его работу: telnet localhost 25 You should see a prompt Trying 127.0.0.1... Connected to < your host name > Escape character is '^]'. quit Также есть необходимость отредактировать еще один файл - /usr/local/etc/postfix/main.cf. Изменим его следующим образом (обратите внимание, что цифры в квадратных скобках являются комментариями и должны быть удалены из файла конфигурации): command_directory = /usr/local/sbin daemon_directory = /usr/local/libexec/postfix mailq_path = /usr/local/bin/mailq manpage_directory = /usr/local/man newaliases_path = /usr/local/bin/newaliases queue_directory = /var/spool/postfix sample_directory = /usr/local/etc/postfix sendmail_path = /usr/local/sbin/sendmail mail_owner = postfix soft_bounce = no myhostname = domain1 [1] myorigin = $mydomain relay_domains = $mydestination local_recipient_maps = $virtual_mailbox_maps recipient_delimiter = + debug_peer_level = 2 unknown_local_recipient_reject_code = 550 setgid_group = maildrop html_directory = no readme_directory = no masquerade_domains = $mydomain smtpd_recipient_restrictions = reject_non_fqdn_recipient permit_mynetworks reject_unauth_destination reject_unknown_sender_domain permit smtpd_helo_restrictions = reject_invalid_hostname smtpd_require_helo = yes mailbox_transport = lmtp:unix:/var/imap/socket/lmtp virtual_transport = lmtp:unix:/var/imap/socket/lmtp virtual_mailbox_domains = domain2, domain3 [2] virtual_alias_maps = hash:/usr/local/etc/postfix/virtual [1] Главный почтовый домен [2] Список всех почтовых доменов, за исключением главного Для получения дополнительной информации, обратитесь к /usr/local/etc/postfix/dist/main.cf. Перезапустим Postfix с новым файлом конфигурации: # postfix reload В дополнение к списку пользователей, описанных в SASL и Cyrus, необходимо добавить их и в Postfix. Делается это с помощью файла /usr/local/etc/postfix/virtual, куда мы добавляем пользователей в таком формате: user@domain user@domain Для того, чтобы получать почту, аресованную несуществующему пользователю, добавьте следущую строку: @domain1 valid_user@domain1 Знайте, что такое действие завалит ящик всем тем спамом, который рассылается методом перебора имен. В тоже время, это упростит получение почты для стандартных имен, таких как postmaster. После каждого изменения этого файла необходимо выполнять такую конманду: #postmap /usr/local/etc/postfix/virtual Проверка установки Вся проверка заключается в том, что необходимо попробовать подключиться к серверу с помошью почтового клиента, поддерживающего IMAP, используя имя тестового пользователя. Если такого клиента у вас нет, то можно установить, например, Cone, работающего из командной строки. Если вы успешно соединились и на вашем сервере DNS есть соответствующая MX запись, то пожете попробовать отправить себе письмо с любой другой почтовой системы.

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, vadim (??), 11:49, 03/02/2006 [ответить]  
  • +/
    замечание:

    надо установить
    chown cyrus /etc/sasldb2
    иначе cyrus не сможет смотреть пользователей, например получите
    # cyradm --user admin localhost
    Password:
    Segmentation fault

     
  • 1.2, Varyag (??), 00:04, 08/02/2006 [ответить]  
  • +/
    примитивная статья
     
  • 1.3, Сергей Анатольевич (?), 14:33, 28/07/2006 [ответить]  
  • +/
    2Varyag Остальное в манах!

    статья по существу.

     
  • 1.4, DemoonTZ (?), 14:55, 15/02/2007 [ответить]  
  • +/
    мне помогло
    :)
     
  • 1.5, mic (??), 12:52, 28/01/2008 [ответить]  
  • +/
    Полезно. Особенно для начинающих и если не нада заморачиваться на что то более сложное.
     
  • 1.6, andr (??), 19:23, 29/05/2009 [ответить]  
  • +/
    Спасибо! Супер статья без всяких заморочек! Так и дожно быть.
    Varyag - сразу видно айтишника
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру