Внутренний почтовый сервер на базе iredmail

Введение

Сразу же сообщаю, чтобы потом не было лишних обвинений и придирок. Данная статья заказная, находится в соответствующем разделе. Ее написание заказано и оплачено компанией svzcloud. Всех, кому интересны современные инфраструктурные решения в области почтовых серверов и коммуникаций, приглашаю к прочтению.

Немного поясню, о чем дальше пойдет речь.

  1. Почтовый сервер Zimbra. Думаю, он не нуждается в отдельном представлении. Старый и известный продукт, про который много информации в интернете. В том числе о внедрении и эксплуатации. Скажу честно, что сам никогда не обслуживал этот сервер, но много о нем слышал и наводил справки. У меня были на собеседованиях люди, которые администрировали в том числе кластеры из этих серверов. Расспрашивал их о зимбре, так как сам достаточно много настраивал и поддерживал почтовых серверов. И сейчас это делаю. В целом, я слышал в основном положительную информацию об этом сервере. Из разряда быстро установил, настроил и забыл. Есть opensource и коммерческая редакция zimbra.
  2. Пакет расширений Zextras — отдельное коммерческое решение, которое работает на базе Zimbra OSE (open source edition). С его помощью расширяется интерфейс zimbra. Появляется новый функционал, где помимо почты есть совместное редактирование и обмен документами, видеочат, виртуальный диск и некоторые другие возможности, которые мы рассмотрим далее.

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

Как настроить почтовый сервер

Более простой способ настроить сервер электронной почты — нанять ИТ-специалиста, который сделает это за вас. Как только начальная настройка будет готова, вы можете изменить настройки по своему вкусу.

Если вы не можете позволить себе заплатить кому-то, чтобы он сделал это за вас, все равно можно настроить его самостоятельно.

В этом руководстве мы расскажем вам, как настроить сервер электронной почты на основе операционной системы Windows. Мы будем использовать hMailServer, бесплатный и гибкий почтовый сервер для Windows, который позволяет вам обрабатывать все ваши электронные письма, не полагаясь на то, что ваш ISP будет управлять ими для вас.

Это один из самых популярных серверов электронной почты для Windows, который прост в использовании и установке и предлагает базовые функции, такие как безопасность и встроенная защита от спама от SpamAssassin.

Следуйте инструкциям ниже, чтобы завершить настройку.

Загрузите и запустите установщик hMailServer.

Нажмите Далее и согласитесь с условиями лицензирования.

Выберите Сервер на следующем экране, если вы хотите, чтобы ваш локальный компьютер выступал в качестве сервера, или Административные инструменты для удаленного управления сервером.

Далее выберите базу данных, которую вы будете использовать. Встроенная база данных проверена по умолчанию и идеально подходит для использования, если вы хотите что-то быстрое и простое.

Нажмите «Далее» и выберите папку, в которую будут сохранены ярлыки программы.

Укажите основной пароль, который вы будете использовать для управления установкой hMailServer (запишите его где-нибудь, так как вам придется часто его использовать).

Нажмите Далее, а затем нажмите Установить, чтобы добавить hMailServer на ваш компьютер.

После завершения убедитесь, что установлен флажок «Запустить администратор hMailServer», и нажмите «Готово».

Откроется окно администратора hMailServer. Нажмите Подключиться.

Теперь вы готовы настроить свой SMTP-сервер. В новом окне нажмите Добавить домен.

На вкладке «Общие» введите имя своего домена и нажмите «Сохранить».

На левой панели выберите Домены → Учетные записи.

Нажмите «Добавить», введите имя в поле адреса , пароль и нажмите «Сохранить».

Перейдите в Настройки → Протоколы и выберите SMTP (снимите флажки POP и IMAP).

Нажмите «Дополнительно» и введите localhost в разделе «Домен по умолчанию».

Затем Сохранить.

Нажмите «+» рядом с «Дополнительно», чтобы развернуть список, а затем нажмите «Автобан». Эта функция блокирует IP-адреса после нескольких неудачных попыток входа в систему.

Снимите флажок «Включено» и нажмите «Сохранить».

Выберите «Диапазоны IP-адресов» и «Порты TCP / IP», чтобы увидеть порты, настроенные для SMTP, IMAP и POP, например 25 и 110 для SMTP и POP и 143 для IMAP.

Открытие этих портов гарантирует, что почтовый сервер сможет получать и отправлять почту.

Включите различные параметры, такие как переадресация, автоответчик, черные списки DNS и другие в hMailServer.

Наконец, нажмите + рядом с Утилитами, чтобы развернуть список, и нажмите Диагностика, чтобы проверить свою конфигурацию.

В разделе «Выбор» (домен, на котором вы хотите запустить тестирование) введите домен, который вы ввели ранее, и нажмите «Пуск».

Ваш hMailServer настроен с основными опциями.

  • Проверьте сведения о сервере сбора, чтобы увидеть версию hMailServer и тип базы данных.
  • Протестируйте исходящий порт — здесь ошибка означает, что ваш SMTP-сервер не сможет обмениваться данными, и в этом случае необходимо устранить неполадки.

Поздравляем, вы только что создали свой собственный почтовый сервер.

Чтобы читать или писать свои электронные письма, получите клиент веб-почты, такой как Outlook или Thunderbird. Если вы хотите использовать вместо этого компьютерное приложение, введите свой адрес электронной почты в качестве имени пользователя, а тип аутентификации — пароль.

Хотя хостинг вашего собственного почтового сервера требует от вас определенных усилий и мер предосторожности, его стоит иметь, если вы не хотите суеты и незащищенности популярных провайдеров веб-почты. Не забывайте следить за IP-адресом своего домена и доменом, всегда проверяя, есть ли какие-либо проблемы, такие как публичное внесение в черный список, поскольку некоторые поставщики могут сделать это для входящих сообщений электронной почты из-за неправильных настроек DNS

Не забывайте следить за IP-адресом своего домена и доменом, всегда проверяя, есть ли какие-либо проблемы, такие как публичное внесение в черный список, поскольку некоторые поставщики могут сделать это для входящих сообщений электронной почты из-за неправильных настроек DNS.

Установка iRedmail на CentOS 7

Системные требования

iRedMail предназначен для установки на чистый сервер, что означает, что на вашем сервере НЕ установлены никакие компоненты, связанные с почтой, например, MySQL, OpenLDAP, Postfix, Dovecot, Amavisd и т. д. Скрипт установки iRedMail автоматически установит и настроит их для вас. Если что-либо из указанных компонентов уже установлено, ваши конфигурационные файлы будут перезаписаны, а iRedMail в последствии может работать не так, как ожидалось.

Рекомендуется хотя бы 2ГБ оперативной памяти для мало нагруженных систем. В случае использования антиспама и антивируса будет использоваться большая часть ресурсов.

Подготовка к установке

Установите правильное имя вашего сервера

Имя сервера (hostname) должно быть полностью определенным доменным именем (FQDN), неважно, настраиваете вы рабочий или  тестовый сервер. Проверить имя сервера можно, выполнив команду:

$ hostname -f
mx.site.com

Если полученное в результате команды имя сервера не является FQDN, то его нужно изменить. Имя сервера для Centos 7 задается в файле /etc/hostname. Откройте файл вашим любимым текстовым редактором и укажите туда нужное имя сервера.

А также добавьте имя сервера в файле /etc/hosts, чтобы оно было в начале строки, сразу после IP-адреса, примерно так:

127.0.0.1 mx.site.com mx localhost localhost.localdomain

Проверьте имя сервера командой hostname -f снова. Если оно не поменялось на новое значение — перезагрузите сервер для применения настроек.

Выключение SELinux

iRedMail не работает с SELinux, поэтому отключите его, установив указанное ниже значение в своем конфигурационном файле /etc/selinux/config. После перезагрузки сервера SELinux будет полностью отключен.

SELINUX=disabled

Чтобы отключить SELinux для текущей сессии без перезагрузки запустите команду с правами суперпользователя:

# setenforce 0

Выключение сторонних репозиториев

Для CentOS включите официальные репозитории yum CentOS-Base и ОТКЛЮЧИТЕ все сторонние репозитории yum, чтобы избежать конфликта пакетов.

Загрузка последнего актуального релиза iRedmail

Перейдите на страницу загрузки последнего стабильного релиза iRedmail и скопируйте ссылку на установщик:

Полученную ссылку скачайте на ваш сервер при помощи wget. Может потребоваться установка пакета wget, если он не установлен:

# yum install wget -y

Скачиваем установщик:

$ wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.9.tar.bz2

Устанавливаем архиватор bzip2 для распаковки архива:

# yum install bzip2 -y

Распакуем архив:

# tar xjf iRedMail-0.9.9.tar.bz2

Предполагаем, вы загрузили архив в папку /root/ (вы попадаете в нее по умолчанию сразу после подключения к серверу по SSH от имени root). Тогда распакованный архив будет в папке /root/iRedMail-0.9.9/ (цифры номера версии могут отличаться, в зависимости от номера актуального релиза, замените их на свои при необходимости).

Процесс установки iRedMail

Для начала установки нужно перейти в папку с распакованным архивом и запустить скрипт iRedMail.sh

# cd /root/iRedMail-x.y.z/
# bash iRedMail.sh

Приветственный экран:

Для перехода к следующему шагу нужно нажать клавишу Enter. На втором шаге нужно выбрать директорию для хранения почты. Можно оставить значение по умолчанию или указать нужную. Для перехода на следующий шаг нажмите Tab для переключения курсора на кнопку Next, а затем — Enter.

Здесь можно выбрать способ хранения учетных данных пользователей. Мы рекомендуем MySQL (MariaDB). Для переключения используйте клавиши стрелок, для выбора варианта клавишу Пробел. Для перехода к следующему шагу — Tab и Enter.

Укажите пароль администратора сервера баз данных. Это должен быть длинный набор символов из букв, цифр и знаков препинания. В дальнейшем вам, скорее всего не потребуется его использовать, потому его можно не запоминать. А также вся необходимая информация, в том числе и пароли, будет записана в одном документе, который будет доступен администратору.

На следующем шаге нужно выбрать компоненты, которые будут установлены. Можно выбрать все, или исключить некоторые. Обязательно установите iRedAdmin — интерфейс управления учетными записями.

Это был последний шаг настроек. После этого нужно подтвердить установку компонентов (нажать клавишу Y и Enter) дождаться завершения установки всех необходимых пакетов. В конце на экране терминала будет такой вывод:

На экран будут выведены все основные ссылки для перехода в веб-интерфейс и данные доступа  учетной записи администратора.

Восстановление из резервных копий

Перед началом восстановления, переносим резервные копии на новый сервер.

Восстановление баз данных

Нам необходимо восстановить несколько баз — содержимое /var/vmail/backup/mysql/. В моем случае было:

  • amavisd
  • iredadmin
  • iredapd
  • mysql
  • roundcubemail
  • vmail

Если мы переносим нашу почтовую систему на новый сервер, базу mysql восстанавливать не нужно.

 Архивы баз находятся в сжатом виде. Первым делом, распаковываем их:

bzip2 -d amavisd-*.sql.bz2

bzip2 -d iredadmin-*.sql.bz2

bzip2 -d iredapd-*.sql.bz2

bzip2 -d mysql-*.sql.bz2

bzip2 -d vmail-*.sql.bz2

* если система вернула ошибку и не распаковала архив, необходимо установить пакет bzip2.

Теперь можно восстановить базы:

mysql -v -u root -p amavisd < amavisd-*.sql

mysql -v -u root -p iredadmin < iredadmin-*.sql

mysql -v -u root -p iredapd < iredapd-*.sql

mysql -v -u root -p mysql < mysql-*.sql

* напомним еще раз, базу mysql восстанавливать не нужно, если мы перенесли почту на новый сервер. 

mysql -v -u root -p vmail < vmail-*.sql

Восстановление почты

Копируем данные в каталог /var/vmail/vmail1 (в случае, если мы не выбрали другой при установке).

Если мы создавали архив, то сначала распакуем его, например:

tar -xvf vmail.tar.gz

и переносим распакованное содержимое в каталог хранения почты (по умолчанию, /var/vmail/vmail1):

mv /tmp/var/vmail/vmail1/* /var/vmail/vmail1/

* в моем случае, распакованный архив находился в каталоге /tmp/var/vmail/vmail1; каталог для хранения почты — /var/vmail/vmail1.

Восстановление LDAP

На новом сервере заходим в каталог с дистрибутивом, который использовался для установки iRedMail. Открываем файл iRedMail.tips, например:

vi /tmp/iRedMail-0.9.8/iRedMail.tips

Находим пароли для учетных записей cn=vmail,dc=xx,dc=xx и cn=vmailadmin,dc=xx,dc=xx в строках:

OpenLDAP:
    …
    * LDAP bind dn (read-only): cn=vmail,dc=example,dc=com, password: rzeuzCPZN5dlHiyWEt9g6GWL5Jo6S9
    * LDAP admin dn (used for iRedAdmin): cn=vmailadmin,dc=example,dc=com, password: FQ6Pk3hCKxL1dKv047NM0aJPEGanOv

* в данном примере, записываем пароли rzeuzCPZN5dlHiyWEt9g6GWL5Jo6S9 и FQ6Pk3hCKxL1dKv047NM0aJPEGanOv.

Используя данные пароли и получаем на них хэш:

slappasswd -h ‘{ssha}’ -s ‘rzeuzCPZN5dlHiyWEt9g6GWL5Jo6S9’

slappasswd -h ‘{ssha}’ -s ‘FQ6Pk3hCKxL1dKv047NM0aJPEGanOv’

В ответ мы получаем что-то подобное:

{SSHA}3rs/fqNZpKaWytqaQVE8AKltriyd1BsW

{SSHA}20vytDcG0NsSE8twwI/ldWW1+YCIi+xW

Теперь распаковываем архив с ldap:

bzip2 -d /tmp/2019-02-09-03-00-01.ldif.bz2

* в данном примере мы распаковываем архив из каталога /tmp.

Открываем распакованный ldif файл:

vi /tmp/2019-02-09-03-00-01.ldif

Находим учетные записи cn=vmail и cn=vmailadmin и строки их паролей, например:

dn: cn=vmail,dc=iredmail,dc=org

userPassword:: e1NTSEF9dVFnWENnWWkrWDMzMmJSNVJlazN0YjR5NllBRW9tN3hnZ1VTa0E9PQ==

dn: cn=vmailadmin,dc=iredmail,dc=org
userPassword:: e1NTSEF9eFhsWjd6MHRlQzYxRFc5QklJSStFNXBZU0YyTHIwVnh2UTNIRWc9PQ==

… и меняем на такие строки:

dn: cn=vmail,dc=iredmail,dc=org

userPassword: {SSHA}3rs/fqNZpKaWytqaQVE8AKltriyd1BsW

dn: cn=vmailadmin,dc=iredmail,dc=org
userPassword: {SSHA}20vytDcG0NsSE8twwI/ldWW1+YCIi+xW

* обратите внимание, что, во-первых, мы заменили пароли на наши хеши. Во-вторых, после userPassword мы убрали один знак двоеточия

Останавливаем службу для ldap:

systemctl stop slapd

Переходим в каталог хранения данных ldap:

cd /var/lib/ldap/<домен>/

Если в нем есть файл DB_CONFIG, переносим его, остальное удаляем:

mv DB_CONFIG /tmp

rm -rf ./*

После возвращаем DB_CONFIG:

mv /tmp/DB_CONFIG ./

Снова запускаем сервис ldap:

systemctl start slapd

В каталоге с данными для ldap появятся файлы. Снова останавливаем сервис slapd:

systemctl stop slapd

Теперь восстанавливаем данные:

slapadd -f /etc/openldap/slapd.conf -l /tmp/2019-02-09-03-00-01.ldif

Запускаем ldap и проверяем, что он запустился:

systemctl start slapd

systemctl status slapd

Восстановление конфигов

Желательно, восстановить настройки системы, так как некоторые из них критичные для работы почты. Если мы меняли конфигурацию, то нужно восстановить следующие файлы:

  1. /var/www/roundcubemail/config/config.inc.php
    где путь /var/www может быть другим. Конфиг для roundcube.
  2. /etc/postfix/mysql*.cf
    настройки postfix.
  3. Содержимое /etc/dovecot/conf.d, файлы /etc/dovecot/dovecot-mysql.conf и /etc/dovecot/dovecot.conf.
    настройки dovecot.
  4. Содержимое /var/lib/dkim
    сертификаты для подписи DKIM.

Step 4: Setting up Mail Server on Ubuntu 18.04 with iRedMail

Run the following commands to download the latest version of iRedMail script installer from its Github repository.

wget https://github.com/iredmail/iRedMail/releases/download/1.3.1/iRedMail-1.3.1.tar.gz

Extract the archived file.

tar xvf iRedMail-1.3.1.tar.gz

Then cd into the newly-created directory.

cd iRedMail-1.3.1/

Add executable permission to the script.

chmod +x iRedMail.sh

Next, run the Bash script with sudo privilege.

sudo bash iRedMail.sh

If you selected MariaDB or MySQL, then you will need to set the MySQL root password.

Note that if you selected MariaDB, then you don’t need password to log into MariaDB shell. Instead of running the normal command , you can run the following command to login, with sudo and without providing MariaDB root password.

sudo mysql -u root

This is because the MariaDB package on Ubuntu 18.04 uses unix_socket authentication plugin, which allows users to use OS credentials to connect to MariaDB, but you still need to set root password in iRedMail setup wizard.

Choose optional components. By default, 4 items are selected. If you like to have SOGo groupware, then select it and press Enter.

Now you can review your configurations. Type to begin the installation of all mail server components.

At the end of installation, choose to use firewall rules provided by iRedMail and restart firewall.

Now iRedMail installation is complete. You will be notified the URL of webmail, SOGo groupware and web admin panel and the login credentials. The file contains important information about your iRedMail server.

Reboot your Ubuntu 18.04 server.

sudo shutdown -r now

Once your server is back online, you can visit the web admin panel.

https://mail.your-domain.com/iredadmin/

Note that in the above URL, the sub-directory for accessing the admin panel is , not . And because it’s using a self-signed TLS certificate, you need to add security exception in your web browser.

Потребности в почте у среднего бизнеса

Начнем с того, что я подразумеваю под средним бизнесом. Я не знаю точную классификацию и нигде не смотрел, не проверял. Мне интуитивно кажется, что это от 10-15 пользователей до 200-300. Я же буду рассматривать сегмент до 100 пользователей, так как почти все время работаю исключительно в этой нише. Проблемы и потребности более крупных компаний мне достоверно неизвестны. Хотя не уверен, что что-то будет принципиально отличаться от 100 человек, думаю подходы будут те же самые, только железо мощнее. Проблемы распределение нагрузок и кластеризации тут скорее всего еще не будут стоять.

Есть у нас небольшая компания на несколько десятков человек. Нам нужен почтовый сервер. Несмотря на то, что технологии давно шагнули вперед, предоставив массу всевозможных средств коммуникации, электронная почта все равно плотно стоит на своих позициях и не собирается их пока уступать. При этом в таком небольшом коллективе, больших требований к почтовому серверу не предъявляют. Чаще всего достаточно, чтобы почта просто работала, без особых функциональных изысков. Будет достаточно либо почтового клиента и протокола imap, либо web интерфейса. Хорошо, если будет возможность настроить автоответ, делать общие папки, единую адресную книгу, но и без этого можно прожить.

Среди всех возможных вариантов почтового сервиса, я выделяю 3 принципиально разных подхода к реализации необходимого функционала:

  1. Сервисы на основе бесплатных почтовых служб гугла, яндекса или мейл.
  2. Свой почтовый сервер на основе бесплатного ПО.
  3. Exchange сервер от Microsoft.

Разберем каждый из них поподробнее.

Почтовый сервер на базе бесплатного ПО

Рассмотрим преимущества и недостатки собственного почтового сервера на базе бесплатного программного обеспечения. В принципе, сюда можно отнести и некоторые платные, например Kerio Mail Server, который тоже частенько используют. Думаю, его можно сюда же отнести, так как функционал он обеспечивает схожий. Я рассматриваю все почтовые сервера в совокупности, не выделяя отдельных представителей. Хотя в линуксе, кроме postfix и exim, лично я не встречал ничего в продакшене. Сам всегда использую postfix, так как привык к нему и знаю его неплохо. Рассмотрим внимательно плюсы таких серверов.

  1. Вы полностью контролируете всю информацию, которая приходит по почте и хранится на вашем сервере. Вы можете ограничивать по своему усмотрению доступ к почте различными техническими средствами. Можете централизованно настраивать правила удаления, к примеру, приватной информации в письмах, по различным признакам, которые сами можете установить.
  2. Уровень доступности почтового сервиса зависит только от вас. При должном подходе, вы можете обеспечить устраивающую вас надежность работы системы.
  3. Гибкая система бэкапа. Средств для ее организации масса, в том числе бесплатных. Все зависит только от ваших потребностей, навыка и возможностей. Вы можете хранить различные срезы по датам, по ящикам, доменам, организовать любую подходящую схему.
  4. Практически ничем не ограниченный функционал. В разумных пределах, конечно 🙂 Вы можете создавать почтовые ящики с возможностью только локальной переписки, можете централизованно управлять приемом и отправкой почты, вести свои белые и черные списки. Можете настраивать различные ограничения по ящикам и доменам. Можете без проблем централизованно управлять дублированием почты нужных ящиков, делать всевозможные пересылки и много другое.
  5. Все средства мониторинга работы сервера в ваших руках. Вы сможете разобраться с любой непонятной ситуацией, имея на руках логи почтового сервера. Эта служба хорошо логируется. У меня практически никогда не возникало проблем, когда не было понятно, куда пропало письмо. Чаще всего находятся следы и можно однозначно сказать, что стало с письмом.

Дальше пройдемся по минусам, которых не очень много, но они существенны.

  1. Необходимо покупать или арендовать оборудование для организации своего почтового сервера. В случае с сервером на линукс, требования к производительности будут не большие. Мне обычно хватает виртуалки на 4 ядра и 4 гб оперативной памяти. Гораздо важнее дисковая подсистема. Тут чем быстрее диски, тем лучше. Не стоит забывать про бэкап. Для него тоже нужны ресурсы железа.
  2. Настройка полноценного, многофункционального почтового сервера требует как минимум средних знаний в системном администрировании linux. То есть просто админ-эникей тут не подойдет. Нужен специалист с опытом. У него должна быть приличная зарплата. Если такого админа нет в штате, я рекомендую нанять кого-нибудь на разовую работу по настройке. Чаще всего после настройки, особой работы по поддержке сервера не требуется, если не будете менять функционал. Достаточно просто следить за свободным местом на дисках и управлять ящиками через web панель.
  3. Удобство работы через web интерфейс будет ниже, чем в бесплатных почтовых службах. Как ни крути, но тот же gmail реализован очень удобно. Быстрый поиск, фильтры, сортировки, метки и т.д. Это реально удобно. Я очень привык и не могу пользоваться чем-то другим.

Такие минусы своего почтового сервиса видятся мне. Самый существенный для меня это последний. Сам привык работать с почтой через web. Почтовыми клиентами не люблю пользоваться, хотя приходится. Web интерфейсы к бесплатным почтовым серверам по удобству и быстродействию сильно не дотягивают до gmail или яндекс, сравнивать бессмысленно. И тем не менее, считаю, что для среднестатистической организации это наиболее оптимальный вариант. Пример настройки такого бесплатного почтового сервера — postfix + dovecot + postfixadmin + roundcube.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector