Установка DavMail на CentOS 6
Centos, VPS | Комментировать запись
Вступление
При использовании 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: CentOS, CentOS 6, DavMail, Linux, SSL, VPS