Что такое Zimbra
Для начала расскажу, из чего состоит Zimbra. Это известные open source продукты.
- Почтовый сервер — Postfix.
- Сервер баз данных — MariaDB.
- Ldap сервер — OpenLDAP.
- Сервер приложений — Jetty.
- Web сервер apache и nginx в качестве прокси к нему.
- Поисковой движок — Lucene.
- Антивирус и антиспам — ClamAV и SpamAssassin и Amavisd в виде интерфейса для взаимодействия этих инструментов с MTA.
- Предпросмотр документов на базе LibreOffice.
В общих чертах появляется понимание о том, что из себя представляет Zimbra. Открытый вопрос с imap сервером. Ожидаешь увидеть здесь dovecot, но на самом деле у зимбры свой imap сервер. Все перечисленные компоненты связаны через web приложения, написанные на Java, в том числе интерфейс пользователя. Это накладывает свои особенности в эксплуатации, которые характерны для всех java приложений. Ожидать небольшого потребления системных ресурсов не приходится.
Системные требования
Минимальные системные требования для Zimbra следующие:
Система | Centos 7 и прочие клоны RHEL либо Ubuntu 16 |
Процессор | Intel/AMD 2.0 GHZ+ 64-bit, 2-4 CPU |
Память | 8 Gb Ram |
Диск | 5 GB для компонентов сиcтемы + место под почту |
Я в своем примере буду использовать операционную систему Centos 7.
Функционал
Рассмотрим теперь, какой функционал предоставляет бесплатная версия Zimbra из коробки.
- Непосредственно почтовый сервер с web интерфейсом. Доступен следующий функционал — почта, задачи, календарь, адресная книга, автоответы, алиасы и др.
- Простой чат через web клиент.
- Хороший функциональный поиск по почтовой базе.
- Шифрование почтовых сообщений.
- Предпросмотр документов в web интерфейсе.
- Антиспам и антивирус.
- Web консоль управления сервером для администратора.
- Приложение для компьютера Zimbra Desktop. К сожалению, больше не поддерживается.
В целом, ничего особенного. Весь этот функционал можно настроить так или иначе самостоятельно. Но это под силу не только лишь всем Объем работы будет очень большой. Нужно хорошее знание linux и понимание устройства и работы почтовых серверов.
Zimbra хороша тем, что дает готовое, единое, комплексное решение, которое ставится практически автоматически и не требует больших знаний linux для развертывания и управления. После установки доступен web интерфейс, через который все управляется. Лазить в консоль сервера практически не нужно. Только если траблшутить какие-то проблемы. Если у вас хороший бэкграунд на тему почтового сервера на базе postfix, но вам просто надоело все настраивать руками, то проблем быть не должно. Если его нет, то как повезет. Но в целом, продукт стабилен и надежен. При типовом использовании проблем быть не должно.
Администрирование iRedMail с помощью iRedAdmin
Как мы уже кратко коснулись в первой части, iRedAdmin является бесплатной административной консолью для iRedMail. Она разработана, чтобы помочь вам только с основами управления вашим почтовым сервером. Более богатая многофункциональная версия iRedAdmin-Pro доступна из команды iRedMail.
Вам не нужно обновляться, и я не настаиваю, но вот некоторые из возможностей в выпуске Pro:
Премиум Альтернатива: iRedAdmin Pro
Вот часть сравнения функций между бесплатной и про-версией:
Здесь вы можете изучить демо-версию iRedAdmin Pro. Цена для версии Pro начинается с 399 долларов США за лицензию на один год:
Установка iRedMail на Ubuntu
После загрузки пакета извлеките его в том же каталоге:
Теперь мы готовы установить iRedMail с помощью скрипта bash. Перейдите в извлеченный каталог, найдите файл с именем “iRedMail.sh и дайте ему исполняемое разрешение. Запустите исполняемый сценарий, чтобы начать установку.
Как только сценарий установки будет выполнен, то появится приглашение мастера экрана приветствия. Нажмите кнопку “Да” чтоб продолжить установку iRedMail на Ubuntu Server.
Мастер экрана приветствия iRedMail
На следующем шаге появится окно default mail storage path (путь к хранилищу почты по умолчанию). Вы можете установить нужный каталог в качестве пути хранения почты. Нажмите кнопку “Далее”, чтобы принять путь хранения по умолчанию.
Путь к хранилищу почты iRedMail
В следующем окне будет предоставлена возможность выбрать веб-сервер или запустить почтовый сервер без веб-сервера. Выберите” Nginx « с помощью клавиши «space» для установки веб-сервера и нажмите “Далее“
Выбор Nginx в качестве веб-сервера
В следующем окне вам будет предложено выбрать базу данных. В этом примере я выбрал MariaDB в качестве сервера базы данных. Вы можете выбрать свой внутренний сервер соответствующим образом. После выбора сервера базы данных ,следующим шагом является настройка пароля администрирования базы данных. После нажмите кнопку “Далее”
Выбор сервера базы данных
В следующем окне появится мастер установки доменного имени электронной почты. Помните, что вы не можете установить имя хоста сервера в качестве домена электронной почты.
Доменное имя почты iRedMail’
Теперь введите пароль администратора почтового домена и нажмите кнопку Далее.
Настройка пароля домена электронной почты iRedMail
В следующем окне вы можете выбрать некоторые дополнительные компоненты для установки. С помощью клавиши пробел выберите компоненты и нажмите кнопку «Далее»
Дополнительные компоненты iRedMail
Наконец, предустановочная конфигурация была завершена. В терминале вам будет предложено продолжить установку или нет. Введите “y”, чтобы завершить установку.
Окончательное подтверждение установки
Для завершения установки требуется некоторое время. После завершения установки вам будет предложено использовать правила брандмауэра, предоставляемые iRedMail. Если вы включили брандмауэр в своей системе, нажмите “y”.
Правило брандмауэра iRedMail
После завершения установки будут показаны URL-адреса установленных веб-приложений, включая URL-адрес веб-почты и URL-адрес веб-панели администратора iRedMail
Веб-адреса iRedMail
После установки iRedMail на Ubuntu требуется выполнить перезагрузку.
Дополнительная настройка
Лимит на объем отправляемого сообщения
Задается командой:
postconf -e «message_size_limit = 31457280»
* в данном примере выставлен лимит в 30 мб.
После перезапускаем сервис Postfix:
systemctl restart postfix
Настройка администратора для домена
В бесплатной версии программы из веб-панели можно назначить только глобального администратора. Но если нам нужно задать привилегированного пользователя только для одного домена, необходимо вносить настройки напрямую в базу данных.
Создаем пользователя в iredadmin и подключаемся к SQL-оболочке, в зависимости от того, какая СУБД была установлена. В нашем примере, это mariadb:
mysql -uroot -p
Используем базу vmail:
> use vmail
Изменим настройки для созданного пользователя:
* в данном примере мы указываем, что пользователь [email protected] должен быть админом (isadmin=1), но не глобальным админом (isglobaladmin=0).
Теперь укажем, для какого домена пользователь должен быть администратором:
> INSERT INTO domain_admins (username, domain) VALUES (‘[email protected]’, ‘test.local’);
* в данном примере мы добавили запись, в которой указали, что пользователь [email protected] является администратором для домена test.local. При необходимости разрешить одному пользователю управлять несколькими доменами, мы должны выполнить несколько аналогичных запросов.
Перенаправление СПАМа на специальный ящик
По умолчанию, письма с отметкой в теме письма приходят на ящики пользователей. Если мы хотим, чтобы наш сервер пересылал все сообщения с подозрением на СПАМ в специальный ящик, выполняем следующее.
Открываем на редактирование файл:
vi /etc/postfix/header_checks
… и добавляем строку:
/^SUBJECT:\s+\/ REDIRECT [email protected]
* в даной инструкции мы говорим проверять заголовок, и если находим в теме , перенаправляем письмо на ящик [email protected].
Проверяем настройку командой:
postmap -q «Subject: test» pcre:/etc/postfix/header_checks
Мы должны увидеть что-то на подобие:
REDIRECT [email protected]
Теперь открываем файл:
vi /etc/postfix/master.cf
Находим в нем все опции no_header_body_checks и удаляем их. Данные опции запрещают проверку заголовков, что помешает нам использовать опцию header_checks в Postfix.
Перезапускаем службу mta:
systemctl restart postfix
Перенаправление почты для почтового ящика
Настройка пересылки писем через веб-интерфейс доступна только в Pro версии. В бесплатной это можно сделать с помощью прямых запросов в базу. Рассмотрим одну SQL-команду.
Подключаемся к базе данных:
mysql -uroot -p
Используем нашу базу для почты:
> use vmail
Создадим настройку для пересылки:
> INSERT INTO forwardings (address, forwarding, domain, dest_domain, is_forwarding, active) VALUES (‘[email protected]’, ‘[email protected]’, ‘dmosk.ru’, ‘example.com’, 1, 1);
* в данном примере мы перенаправим всю почту, которая придет на адрес [email protected] на почтовый ящик [email protected].
Чтобы удалить перенаправление, сначала находим нужную нам строку:
> SELECT * FROM forwardings WHERE address!=forwarding;
Затем просто ее либо удаляем по идентификатору:
> DELETE FROM forwardings WHERE id=’10’;
* в моем примере нужная нам строка была под идентификатором 10.
… или можно просто отключить перенаправления, не трогая троку:
> UPDATE forwardings SET active=’0′ WHERE id=’10’;
Настройка записей сервера почтовых серверов (DNS)
Если вы прочли статью Итак вы хотите отправить какую-то электронную почту (через код), на которую я сослался в последнем уроке, вероятно, вы заметили, что на почтовых серверах требуется множество настроек DNS, чтобы помочь им отфильтровать вероятных спамеров. Чтобы обеспечить надежную доставку почты с нашего собственного сервера, есть несколько настроек DNS, которые нам нужно настроить.
Настройка обратной записи PTR
Документация iRedMail хорошо описывает, как работают записи Reverse PTR и почему они вам нужны:
Обратные записи PTR настраиваются владельцем используемого вами IP-адреса, поэтому это, скорее всего, ваш хостинг-провайдер. Например, в моем случае это Digital Ocean, который автоматически настраивает ваш обратный PTR на основе имени хоста вашего сервера. Проконсультируйтесь с вашим провайдером, чтобы определить лучший способ настройки вашего собственного обратного PTR.
Если вы получаете почту для нескольких доменов, настройка записи Reverse PTR с помощью хостинг-провайдера может быть более сложной.
Настройка DomainKeys Identified Mail (DKIM)
Coding Horror описывает, как ваш сервер использует DKIM, чтобы помочь другим почтовым серверам доверять вам:
iRedMail делает это довольно легко. Из терминала введите команду amavisd showkeys (для некоторых серверов это amavisd-new):
Эта команда отобразит ключи, которые iRedMail настроил для вашего сервера. Это настройки DNS, которые необходимо добавить для успешного конфигурирования DKIM. Добавьте эти записи в свой DNS-провайдер:
Настройка SPF / Sender Id Record
SPF — это метод спама и фишинга, который использует DNS SPF-записи для определения того, каким хостам разрешено отправлять электронные письма для домена. Сообщается, что этот параметр менее важен.
Вы можете использовать мастер Microsoft для создания DNS-записи SPF для своего домена. Вероятно, это выглядит примерно так:
Запуск установщика iRedMail
Теперь, когда все готово к началу запуска установщика iRedMail, нужно подготовиться к ответам на ряд вопросов, которые этот установщик будет задавать в процессе своей работы, а затем запустить сценарий установки командой
bash iRedMail.sh
Вид экрана с запущенным установщиком приведен на рисунке 1:
Рис.1. Вид стартового окна инсталлятора
Следующим шагом нужно ввести каталог для хранения почтовых сообщений. По умолчанию предлагается /var/mail. Далее предлагается выбрать способ хранения почтовых аккаунтов. В виде ассортимента будут предложены на выбор OpenLDAP, MySQL или PostgreSQL (см. рисунок 2).
Рис.2. Выбор СУБД для хранения почтовых аккаунтов
Забегая чуть вперед скажу, что в виде webmail предполагается использование Roundcube, а в качестве средства управления iRedAdmin, phpLDAPadmin, phpMyAdmin и phpPgAdmin (см. рисунок 3).
Рис.3. Опциональный выбор компонентов
При выборе MySQL (в этой статье будет рассматриваться эта СУБД) нужно будет задать пароль администратора MySQL, затем перейти к вводу имени первого виртуального домена и задать пароль почтового администратора в этом виртуальном почтовом домене. Эта учетная запись (а именно postmaster) используется только системным администратором и не должна использоваться как учетная запись почтового пользователя. К примеру, под этой учетной записью нельзя будет «залогиниться» и войти в webmail, но можно будет зайти в iRedMail admin panel для выполнения административных задач в рамках почтовой системы. Ввод пустого пароля здесь недопустим.
На следующем этапе нужно ввести имя первого пользователя почтовой системы. Он необходим для того, чтобы после установки войти под ним в webmail и там получить два системных письма с крайне важными подсказками и сбором системной информации по установленной почтовой системе. Примечание: имя пользователя должно вводиться в виде полного почтового адреса, например, «[email protected]»
Следующий этап очень важен. Он подразумевает опциональное задание тех компонентов почтовой системы, которые действительно вам необходимы и которыми вы сможете затем управлять. Настоятельно рекомендуется предварительно ознакомиться с официальной документацией для каждого компонента и решить для себя, что именно вам потребуется, а что нет. На рисунке 4 приведен показ компонентов комплекса для предварительного ознакомления.
Рис.4. Показ компонентов комплекса для предварительного ознакомления
После ответа на все вопросы установщика и выбора всех требуемых опций процесс переходит в стадию непосредственной установки. Выглядеть на экране монитора это будет так:
Configuration completed. ************************************************************************* **************************** WARNING *********************************** ************************************************************************* * * * Please do remember to *REMOVE* configuration file after installation * * completed successfully. * * * * * /root/iRedMail-x.y.z/config * * ************************************************************************* <<< iRedMail >>> Continue? # <- Type 'Y' or 'y' here, and press 'Enter' to continue
После завершения всех установочных действий вид новых рабочих процессов должен быть похожим на изображенный (см. рисунок 5), что символизирует наличие нужных служб в системе и их функционирование.
Рис.5. Вид системных процессов после установки и запуска iRedMail
Основная информация для дальнейшего изучения и конфигурирования этой системы может быть получена на сайтах разработчиков каждого компонента, входящего в систему, а также почерпнута в файле /root/iRedMail-x.y.z/iRedMail.tips.
Управление белыми и черными списками
Переходим в каталог с утилитами iredmail:
cd /opt/iredapd/tools/
Просмотреть содержимое белого и черного списков:
python wblist_admin.py —list —whitelist
python wblist_admin.py —list —blacklist
Добавить в списки:
python wblist_admin.py —add —whitelist 111.112.113.114 [email protected] @dmosk.ru @.dmosk.ru
python wblist_admin.py —add —blacklist 111.112.113.115 @baddomain.com
Удалить из списка:
python wblist_admin.py —delete —whitelist 111.112.113.114 [email protected] @dmosk.ru @.dmosk.ru
python wblist_admin.py —delete —blacklist 111.112.113.115 @baddomain.com
* как видим, процесс удаления аналогичен — просто меняем —add на —delete.