вторник, 9 августа 2016 г.

Организовываем почтовый сервер на базе Zimbra OSE 8.7 и хождение почты, через OpenVPN тоннель

В прошлой статье Мы создали тоннель OpenVPN  и теперь организуем у себя дома почтовый сервер на базе Zimbra OSE 8.7, почта у нас будет ходить через этот самый тоннель, так же через него будет предоставлен доступ к web клиенту почтового сервера.
Поехали!!!

1. Создадим виртуальную Linux (Ubuntu x64) машину для будущего почтового сервера (нагрузка будет невысокая, поэтому будет достаточно 2 ядра и 2GB RAM)
2. Скачаем с сайта дистрибутив Ubuntu 14.04 (на момент написания статьи - это самая актуальная версия под которую можно установить последний стабильный релиз Zimbra 8.7)
3. Инсталлируем наш linux на свеже-созданную VM
4. Установим Zimbra OSE 8.7
Подробности по ссылке
Единственно, я в отличии от авторов статьи не устанавливал zimbra-proxy


После удачного завершения инсталляции, заходим в админку:
https://10.10.10.50:7071
под учетной записью администратора и начинаем последовательно конфигурить наш сервер.

На домашней страницы админки, нам предлагают начать с установки сертификата (по умолчанию самоподписанный уже установлен), позже мы инсталлируем ssl сертификат на веб. В общем не мудрствуя лукаво переходим сразу к шагу 2 и создаем актуальный домен, который будет соответствовать заранее купленному у регистратора доменов, также в управлении зонами dns (там же у регистратора) необходимо создать A и MX- записи ,прописать вновь созданному домен ip нашей VPS, а в управлялке VPS прописать обратную зону! Ну все эти шаги они очевидны для тех кто знаком с настройкой почтовых серверов для использовании за рамками своей локальной сети!
 Созданный домен назначаем как домен по умолчанию:


Если Вы не собираетесь использовать LDAP аутентификацию, то переходим к шагу 3 где создадим пользователей в актуальном домене, которые будут авторизовываться на сервере с использованием внутренней аутентификации.

Проверим хождение почты внутри локальной сети, для этого зайдем на вебку:
https://10.10.10.50:8443
под одной из созданных учетных записей  заходим в почту и "покидаем" почтой, если все норм, будем выпускать наш сервер в "мир"

Заходим в административную панель нашего, уже знакомого по предыдущей статье, OpenVPN Access Server  и в свойствах пользователя в блоке DMZ settings , открываем необходимые порты, т.е. прописываем:
85.XX.XX.XX:tcp/8443 - для доступа к веб-клиенту почты
85.XX.XX.XX:tcp/25 - для SMTP
85.XX.XX.XX:tcp/443 - для HTTPS

если собираетесь использовать pop3 и imap, то 110 и 143, мне хватает веб поэтому для этих служб я ничего открывать не стал!

ну и соответственно делаем порт форвард на нашем сетевом экране pfsense:

если все правильно сделали, то сможете зайти на веб-клиент zimbra из вне, получилось? отлично, пробуем послать почту куда-нибудь в "мир", скорее всего ваше письмо попадет в спам, особенно если вы послали письмо людям, которые используют спам фильтры, одним из критериев которых является отфильтровывать ненужную корреспонденцию основываясь на списки так называемого сообщества спамхаус, которые не особо замарачиваясь вносят целые подсети провайдеров VPS, ну в этом конечно есть рациональное зерно, потому что частенько спамеры используют арендованные виртуалки для рассылки этого самого спама. Лично у меня на некоторых общественных почтовиках письма дошли нормально, гугл поместил в спам, но это нестрашно, можно указать что письма с данного домена не являются нежелательным и  в дальнейшем, все будет нормал!

Теперь сделаем так ,чтобы не было предупреждения о том, что вы используете "неправильный" сертификат, ну эт когда в левом верхнем углу веб-клиента наблюдаем восклицательный знак:-)

Получить правильный годовой сертификат можно при помощи startSSL, для этого нужно зарегистрироваться на сайте, система установить свой сертификат на ваш компьютер, (авторизовываться на их сайте будете по этому сертификату, зашли, теперь выберем сертификат, естесно бесплатный, нас попросят верифицировать наш домен, проходим валидацию, там будет выбор на какой ящик послать письмо я выбрал postmaster@mydomain.ru , предварительно конечно создав такого пользователя, хотя можно создать алиас к уже существующему, но не суть, письмо с кодом пришло практически сразу.

Теперь сгенерируем запрос на сертификат для чего идем а админку zimbra и выполняем ряд незамысловатых действий:
1. Убеждаемся что папка /opt/zimbra/ssl/zimbra/commercial/ пуста, если нет (сделайте резервную копию и очистите.
2. Через вебконсоль администратора Идем в раздел сертификатов и генерируем .csr заявку.
Заполняйте аналогично картинкам, но под свои данные:






проверяем /opt/zimbra/ssl/zimbra/commercial/ там должны появится 2 файла commercial.csr,commercial.key.
Скопируем их на всякий случай.

полученный файл .csr (действием на последней картинке) открываем в блокноте и копируем все содержимое.

Возвращаемся на startssl.com, переходим на генерацию сертификатов.
В верхнем поле заполняем наши доменные имена, внизу выбираем и вставляем наш полученый от zimbra код из .csr файлика. И нажимаем генерировать.

 Получим архив с сертификатами под разные типы серверов. Нас интересует OtherServer. Его и распаковываем.
Или сначала заливаем на сервер zimbra и там распаковываем. Внутри папки есть 3 файла root.crt 1_Intermediate.crt 2_домен.ru.crt

Переходим к главному, все действия проводим из под root:

Создаем папку /tmp/certs туда необходимо скачать мастер сертификаты startssl.com Скачиваем ca.pem и sub.class1.server.ca.pem

Переходим в папку и объединяем их

cd /tmp/certs/

cat ca.pem sub.class1.server.ca.pem > ca_bundle.crt



Убеждаемся что файл ключа на месте и задаем ему разрешения

chmod 740 /opt/zimbra/ssl/zimbra/commercial/commercial.key



В папке /tmp/certs/ обьединяем. Для создания правильной цепочки сертификатов

cat 2_домен.ru.crt > commercial.crt

cat root.crt 1_Intermediate.crt > ca_chain.crt



Проверяем всю цепочку

root@zimbra:/tmp/ssl# /opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/certs/commercial.crt /tmp/certs/ca_chain.crt



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



** Verifying /tmp/certs/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key

Certificate (/tmp/certs/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.

Valid Certificate: /tmp/certs/commercial.crt: OK




Это свидетельствует об правильно собранной последовательности.



Устанавливаем

root@zimbra:/tmp/ssl# /opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/certs/commercial.crt /tmp/certs/ca_chain.crt





** Verifying /tmp/certs/commercial.crt against /opt/zimbra/ssl/zimbra/commercial/commercial.key

Certificate (/tmp/certs/commercial.crt) and private key (/opt/zimbra/ssl/zimbra/commercial/commercial.key) match.

Valid Certificate: /tmp/certs/commercial.crt: OK

** Copying /tmp/certs/commercial.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt

** Appending ca chain /tmp/certs/ca_chain.crt to /opt/zimbra/ssl/zimbra/commercial/commercial.crt

** Importing certificate /opt/zimbra/ssl/zimbra/commercial/commercial_ca.crt to CACERTS as zcs-user-commercial_ca...done.

** NOTE: mailboxd must be restarted in order to use the imported certificate.

** Saving server config key zimbraSSLCertificate...done.

** Saving server config key zimbraSSLPrivateKey...done.

** Installing mta certificate and key...done.

** Installing slapd certificate and key...done.

** Installing proxy certificate and key...done.

** Creating pkcs12 file /opt/zimbra/ssl/zimbra/jetty.pkcs12...done.

** Creating keystore file /opt/zimbra/mailboxd/etc/keystore...done.

** Installing CA to /opt/zimbra/conf/ca...done.





Перезагружаемся:

root@zimbra:/tmp/ssl# su zimbra

zimbra@zimbra:/tmp/ssl$ zmcontrol restart


Проверяем, теперь при https://mailserver.mydomain.ru:8443 никаких предупреждений быть не должно!!!
Радуемся и хлопаем в ладошки!

А на сегодня все!

Удачи и помните:"Все в Ваших руках, если есть "Руки""

Комментариев нет:

Отправить комментарий