Установка DavMail на CentOS 6

Вступление

При использовании Microsoft Exchange может возникнуть необходимость открыть учетную запись Exchange с почтового клиента, который не поддерживает протокол Exchange. В этом случае на помощь приходит DavMail – программа, позволяющая Microsoft Exchange использовать протоколы POP, IMAP, SMTP, Caldav, Carddav и LDAP.

Установка DavMail

Для установки DavMail на CentOS 6 необходимо добавить сторонний репозиторий. Загрузите файл .repo и обновите кэш yum:

sudo curl -o /etc/yum.repos.d/home:marcindulak.repo http://download.opensuse.org/repositories/home:/marcindulak/CentOS_CentOS-6/home:marcindulak.repo
sudo yum update

Затем установите DavMail с помощью yum:

sudo yum install davmail

Также нужно установить дополнительный пакет, необходимый для работы скрипта инициализации:

sudo yum install redhat-lsb-core

Базовая настройка DavMail

Конфигурационный файл DavMail находится в /etc/davmail.properties; откройте его с помощью любого удобного текстового редактора (в данном случае это nano):

sudo nano /etc/davmail.properties

Переведите DavMail в серверный режим, чтобы программа не требовала X11:

davmail.server=true

Активируйте удаленный режим и выполните привязку к IP-адресу сервера (в противном случае оставьте поле bindAddress пустым):

davmail.allowRemote=true
davmail.bindAddress=

В поле davmail.url укажите Outlook Web App/Outlook Web Access URL, что, как правило, заканчивается на /owa:

davmail.url=https://company.com/owa

По умолчанию DavMail использует нестандартные порты; чтобы облегчить процесс создания почтовых клиентов, вероятно, нужно изменить эти порты. Чтобы программа DavMail использовала порты по умолчанию SSL-зашифрованных IMAP и SMTP, измените опции davmail.imapPort и davmail.smtpPort:

davmail.imapPort=993
davmail.smtpPort=465

Сохраните и закройте конфигурационный файл.

Создание SSL-сертификата

Для активации SSL-шифрования понадобится SSL-сертификат и закрытый ключ SSL в формате PEM. За таким сертификатом можно обратиться в центр сертификации; также можно создать его самостоятельно, выполнив следующие действия.

С помощью OpenSSL сгенерируйте ключ RSA:

~~~~
sudo openssl genrsa -out /etc/pki/tls/private/davmail.key 2048 ~~~~

Убедитесь в том, что ключ принадлежит root-пользователю и привилегии указаны верно:

sudo chown root:root /etc/pki/tls/private/davmail.key
sudo chmod 600 /etc/pki/tls/private/davmail.key

Теперь создайте запрос на сертификат:

sudo openssl req -new -key /etc/pki/tls/private/davmail.key -out /etc/pki/tls/certs/davmail.csr

На данном этапе OpenSSL задаст несколько вопросов. Единственное важное поле называется Common Name (в нем нужно указать доменное имя или IP-адрес сервера, которые будут доступны клиентам, например davmail.mydomain.com или 123.123.123.123). Остальные поля можно не заполнять, оставив значения по умолчанию; для этого нажмите enter:

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) [XX]:US
State or Province Name (full name) []:New York
Locality Name (eg, city) [Default City]:New York City
Organization Name (eg, company) [Default Company Ltd]:Lolcats United
Organizational Unit Name (eg, section) []:Keyboard Cat Department
Common Name (eg, your name or your server's hostname) []:mydomain.com
Email Address []:me@mydomain.com
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Подпишите запрос на сертификат с помощью закрытого ключа, указав дату окончания срока действия с помощью аргумента -days:

sudo openssl x509 -req -signkey /etc/pki/tls/private/davmail.key -in /etc/pki/tls/certs/davmail.csr -out /etc/pki/tls/certs/davmail.crt -days 365

Согласно вышеприведенному примеру сертификат будет действителен 365 дней.

Готово!

Настройка SSL

Получив SSL-сертификат, переведите его в понятный DavMail формат. В приведенных ниже примерах используются созданные ранее ключ и сертификат. Если сертификат был получен в центре сертификации, используйте эти файлы вместо davmail.key и davmail.crt.

С помощью команды cat объедините сертификат и ключ в один файл:

sudo cat /etc/pki/tls/private/davmail.key /etc/pki/tls/certs/davmail.crt > /etc/pki/tls/certs/davmail.pem

Опять же, привилегии на этот файл должны быть только у пользователя root:

sudo chown root:root /etc/pki/tls/certs/davmail.pem
sudo chmod 600 /etc/pki/tls/certs/davmail.pem

Теперь конвертируйте полученный файл в pkcs12:

openssl pkcs12 -export -in /etc/pki/tls/certs/davmail.pem -out /etc/pki/tls/certs/davmail.p12 -name “davmail”

После этого будет предложено ввести пароль экспорта. Это поле не может быть пустым! Установите пароль, в противном случае DavMail не будет работать правильно.

Установите привилегии:

sudo chown root:root /etc/pki/tls/certs/davmail.pem
sudo chmod 600 /etc/pki/tls/certs/davmail.pem

Снова откройте конфигурационный файл DavMail.

sudo nano /etc/davmail.properties

Внесите в него следующие опции, чтобы сообщить DavMail расположение только что созданного файла pkcs12 и установленный пароль.

davmail.ssl.keystoreType=PKCS12
davmail.ssl.keystoreFile=/etc/pki/tls/certs/davmail.p12
davmail.ssl.keyPass=password
davmail.ssl.keystorePass=password

Обратите внимание: строки davmail.ssl.keyPass и davmail.ssl.keystorePass должны иметь одинаковое значение.

Запуск DavMail

Из-за особенностей работы системы Linux необходим root-доступ, чтобы открыть используемые порты (993 и 465); то есть, DavMail необходимо запускать с правами root. По умолчанию скрипт инициализации, который поставляется с пакетом DavMail, запускает Davmail с помощью учетной записи пользователя davmail и не сможет запустить его с помощью установленных настроек. Это можно обойти с помощью небольшой поправки настроек скрипта инициализации.

Создайте копию скрипта инициализации по умолчанию:

sudo cp /etc/init.d/davmail /etc/init.d/davmail-root

Откройте эту копию в текстовом редакторе:

sudo nano /etc/init.d/davmail-root

Найдите строку в разделе start(), которая начинается с su – davmail, и замените davmail на root. Это выглядит так:

[...] su - root -s /bin/sh -c "exec nohup $DAVMAIL_HOME/davmail $DAVMAIL_CONF >> $LOGFILE 2>&1 &"
[...]

Сохраните изменения и закройте файл. Запустите DavMail с помощью отредактированного скрипта инициализации:

service davmail-root start

В завершение настройте запуск DavMail при загрузке сервера:

chkconig davmail-root on

Настройка клиентов

Теперь, когда виртуальный сервер запущен, можно приступить к настройке почтовых клиентов. Создайте учетную запись клиента вручную. Серверы IMAP и SMTP будут пользоваться доменным именем или IP-адресом сервера, в зависимости от того, что было указано в поле Common Name в SSL-сертификате. Имя пользователя для серверов IMAP и SMTP – это адрес электронной почты без имени домена. Например: если адрес электронной почты mymail@somecompany.com, то именем пользователя будет mymail.

Примечание: убедитесь, что IMAP и SMTP используют SSL/TLS, а не STARTTLS.

При использовании самоподписного сертификата от почтовых клиентов на почту будут приходить предупреждения.

Дополнительную информацию и инструкции для Thunderbird, Mac OSX и iOS можно найти на сайте DavMail.

Готово! Теперь можно отправлять и получать электронные письма на учетную запись Microsoft Exchange с использованием открытых технологий!

Tags: , , , , ,

Добавить комментарий