Установщик postfix + dovecot + база mysql

Установщик postfix + dovecot + база mysql Хостинг

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

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

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

Что такое самостоятельный хостинг?

Самостоятельно размещенные электронные письма — это серверы, которые могут быть размещены в вашей локальной сети или на вашем сервере. При желании вы всегда можете использовать его, интегрировав со сторонними учетными записями электронной почты. Однако его основная функция — позволить вам создать свой собственный почтовый сервер.

Преимущества использования самостоятельных почтовых серверов

Когда у вас есть собственный почтовый сервер, вся переписка по электронной почте будет полностью конфиденциальной. Больше не нужно быть жертвой стороннего слежки и обмена вашей личной информацией с рекламодателями.

Такие почтовые клиенты доступны через Интернет или локальную сеть после их интеграции со сторонними почтовыми службами.

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

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

Использование локального почтового сервера: рекомендации

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

Установщик postfix + dovecot + база mysql

Прежде чем переходить на него с традиционного почтового клиента, следует проверить:

  • Если на сервере есть агент передачи почты (MTA) для отправки писем от разных пользователей.
  • Поддерживает ли он IMAP и POP3, два самых популярных протокола электронной почты.
  • Чтобы блокировать входящий спам по электронной почте, должен быть эффективный спам-фильтр.
  • Если он содержит антивирус для защиты ваших почтовых ящиков от вирусов и вредоносных программ.
  • Агент доставки почты также должен быть там, чтобы отправлять электронные письма в папку «Входящие».

Давайте теперь посмотрим на лучшие самостоятельные почтовые серверы.

Модобоа

Модобоа — это почтовый сервер с открытым исходным кодом, который подчеркивает вашу конфиденциальность. Он работает как идеальная альтернатива другим вариантам службы электронной почты, поскольку создание почтового сервера для вас занимает всего около 10 минут.

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

Установщик postfix + dovecot + база mysql

Кроме того, он предлагает различные инструменты администратора, такие как инструмент переноса данных и статистика. Вам не нужно проходить утомительный процесс индивидуальной установки каждого компонента, поскольку его установщик выполняет 95% работы.

Самым большим преимуществом использования Modoboa является безопасность данных и конфиденциальность. Поставщик услуг электронной почты использует протокол TLS для шифрования всех передач данных между сервером электронной почты и внешним миром. Протоколы SPF, DKIM и DMARC — это некоторые другие подходы, которые он использует для защиты вашей онлайн-репутации.

Майлу

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

Платформа позволяет использовать стандартные почтовые серверы и протоколы, такие как IMAP, IMAP+, SMTP и Submission. Помимо веб-доступа, он поставляется с такими функциями, как несколько веб-почт, псевдонимы доменов, настраиваемая маршрутизация и административные интерфейсы.

Установщик postfix + dovecot + база mysql

Пользователи могут легко использовать псевдонимы, автоматическую переадресацию, автоответ и извлеченные учетные записи, чтобы сэкономить время и усилия. Глобальные администраторы, делегирование для каждого домена, объявления и квоты — вот некоторые из его административных атрибутов, которые позволят вам беспрепятственно управлять этим почтовым сервером.

Более того, платформа использует TLS, Letsencrypt! сертификат, исходящий DKIM, серый список, антивирусный сканер, защита от спама, автоматическое обучение, DMARC и SPF для обеспечения максимальной безопасности.

Докер Почтовый Сервер

Докер Почтовый Сервер — это полнофункциональный почтовый сервер с открытым исходным кодом, который поддерживает службу электронной почты через SMTP, LDAP и IMAP. Это готовое к производству решение поставляется только с файлами конфигурации, что делает его простым и версионным. Сервер не имеет базы данных SQL и может быть легко развернут и обновлен.

Он также поддерживает создание пользовательских правил для SpamAssassin и ClamAV, включая автоматические обновления. Сервер использует LetsEncrypt и самозаверяющие сертификаты для обеспечения безопасности данных. Пользователи также получают такие функции, как сценарий установки для настройки и обслуживания сервера, базовую поддержку Sieve через Dovecot, постоянные данные и состояние, а также разделители расширений.

Ваше устройство должно иметь 1 виртуальное ядро ​​и 512 МБ ОЗУ для запуска этого сервера. Однако вам следует деактивировать такие службы, как ClamAV, для запуска на хосте с 512 МБ ОЗУ. Для оптимальной производительности рекомендуемая конфигурация включает 1 процессор Core, 2 ГБ ОЗУ и возможность подкачки для контейнера.

Poste

С использованием Poste.io, вы можете получить веб-почту и такие функции, как защита от спама, антивирус и веб-администрирование на своем сервере менее чем за 5 минут. Этот полнофункциональный почтовый сервер хранит пользовательские данные и конфигурацию отдельно от двоичных файлов. Поскольку он хранит пользовательские данные в файлах базы данных SQLite, вы можете использовать эту платформу с внешним хранилищем.

Если вы решите использовать этот собственный почтовый сервер, такие процессы, как обновление, резервное копирование и миграция, станут простыми. Он фокусируется на безопасности данных, поэтому вы обнаружите, что Poste.io оснащен мощными современными мерами безопасности вместо устаревших методов аутентификации.

Установщик postfix + dovecot + база mysql

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

Другими его примечательными функциями являются перенаправление электронной почты, автоответчик, фильтрация электронной почты и шифрование данных. Кроме того, он поставляется со встроенным автообнаружением, совместимым с Microsoft365 и Thunderbird.

IRedMail

Те, кто заинтересован в создании почтового сервера с решениями с открытым исходным кодом, должны выбрать iRedMail. Это почтовый сервер с открытым исходным кодом, который вы можете использовать с Red Hat, Ubuntu, CentOS, Debian, OpenBSD и FreeBSD.

Все элементы iRedMail имеют открытый исходный код, и пользователи будут получать обновления и исправления ошибок от надежных поставщиков Linux/BSD. Вы можете фильтровать электронные письма и упорядочивать их по папкам в интуитивно понятном веб-интерфейсе на основе веб-почты Roundcube.

Установщик postfix + dovecot + база mysql

iRedMail гарантирует, что электронные письма передаются с использованием безопасных соединений (POP3, IMAP и SMTP) и шифруются при передаче, чтобы третьи лица не могли получить доступ к содержимому вашей электронной почты.

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

Почта в ящике

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

Тем не менее, вам не нужно быть технически подкованным человеком, чтобы настроить это. Эта платформа предлагает веб-почту и сервер IMAP / SMTP, к которым пользователи могут получить доступ с помощью настольного инструмента и мобильных устройств.

Установщик postfix + dovecot + база mysql

Здесь вы получаете все стандартные функции электронной почты, включая правила почтового фильтра, фильтрацию спама, серый список, автоматическую настройку и автоматическое резервное копирование. Помимо этого, вы также можете синхронизировать с ним контакты и календари.

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

HMailServer

Пользователи Microsoft Windows должны выбрать hMailServer для бесплатного собственного почтового сервера. Вы можете использовать его в большинстве коммерческих сценариев, поскольку его расширяемый исходный код доступен на GitHub. Любая система веб-почты с поддержкой IMAP и SMTP может использоваться с hMailServer.

Установщик postfix + dovecot + база mysql

Установка и настройка hMailServer выполняются легко и быстро. Его простой в использовании инструмент администрирования позволяет пользователям добавлять учетные записи и домены, настраивать параметры и включать сканирование на вирусы.

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

Апач Джеймс

Апач Джеймс это агент передачи почты с открытым исходным кодом с поддержкой SMTP и POP3. Джеймс — это аббревиатура от Java Apache Mail Enterprise Server. Он состоит из модульной архитектуры, полной надежных и современных компонентов.

Установщик postfix + dovecot + база mysql

Сервер совместим с протоколами электронной почты, такими как SMTP, LMTP, POP3, IMAP, ManageSieve и IMAP. Он использует MySQL, HSQLDB, Cassandra и PostgreSQL для реализации хранилища. Некоторые из его других функций — это Mailbox API, расширяемые агенты обработки электронной почты, администрирование из командной строки и т. д.

Голубятня

Голубятня — это защищенный сервер IMAP, который можно использовать для небольших и крупных установок. Он считается одним из самых эффективных серверов IMAP, поддерживающих стандартные форматы файлов MBOX и Maildir.

Сервер индексирует почтовые ящики с полной прозрачностью и предлагает совместимость с существующими инструментами управления почтовыми ящиками. Самооптимизирующиеся индексы содержат именно то, что нужно клиентам.

Dovecot поставляется с гибкими режимами аутентификации пользователей, которые принимают различные базы данных и механизмы аутентификации. Кроме того, он позволяет переносить данные электронной почты с разных серверов IMAP и POP3. Дизайн и реализация этой платформы, ориентированные на безопасность, означают, что вам не нужно беспокоиться о конфиденциальности ваших данных.

Установщик postfix + dovecot + база mysql

Будучи удобным для администратора сервером, он генерирует понятные сообщения об ошибках. Его текущие функции могут быть расширены с помощью плагинов. Например, вы можете выделить квоту, включая поддержку ACL, добавить другие новые команды и отредактировать существующие с помощью плагинов.

Если сервер выходит из строя по какой-либо причине, он устраняет причину этого. При использовании этого почтового сервера пользователи могут изменять почтовые ящики и индексы одновременно с разных устройств. Это возможно, потому что Dovecot хорошо работает с кластерными файловыми системами.

Почтовый сервер WildDuck

Когда дело доходит до выбора программного обеспечения современного почтового сервера для POP3 и IMAP, люди часто зависят от Почтовый сервер WildDuck. Этот сервер полностью масштабируемый, отдает предпочтение Unicode и управляется через API. Объединив его с Haraka и ZoneMTA, пользователи могут создать полноценный почтовый сервер.

Установщик postfix + dovecot + база mysql

Он предлагает первоклассную поддержку IMAP, поэтому у вас не должно возникнуть проблем с его использованием с любым почтовым клиентом. Кластер MongoDB используется вместо файловой системы для хранения любых данных электронной почты. Более того, вы можете создать кластер любого размера.

Читайте также:  Keenetic Cloud: что такое облако Кинетик, как подключиться

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

MailSlurper

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

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

Установщик postfix + dovecot + база mysql

Более того, он способен обрабатывать тысячи одновременных подключений и работать с базами данных, включая SQLite, MySQL и MSSQL. Настроить этот почтовый сервер легко, и он имеет отзывчивый веб-интерфейс.

Вы можете запустить MailSlurper в Windows, OSX и Linux. Помимо возможности поиска электронных писем по теме, отправителю, получателю и содержимому электронной почты, он сохраняет часто используемые термины.

Демон сервера Magma

Демон сервера Magma — это система электронной почты с открытым исходным кодом, которая использует шифрование для обеспечения безопасности ваших данных. Сервер поддерживает протоколы POP, HTTP, SMTP, IMAP и MOLTEN. Кроме того, вскоре будет расширена поддержка DMTP и DMAP.

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

Подведение итогов 📧

Компании, которым необходимо создать множество адресов электронной почты и иметь полный контроль над почтовым сервером и данными, сочтут автономные почтовые серверы очень выгодными. Кроме того, выбрав любые почтовые платформы из приведенного выше списка, вы можете обеспечить конфиденциальность и добавить настройки.

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

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

Для чего используют корпоративную почту

Практически на каждом сайте, принадлежащем какой-либо организации, указывается «рабочий» email. Корпоративная почта – та же электронка, что в ходу у физических лиц, но предназначенная для общения с клиентами, партнерами и поставщиками. Она обычно содержит наименование домена или название самой компании (зависит от сервиса, где размещается ящик).

Задачи, которые решает корпоративная почта:

  1. Коммуникация с клиентами. Выделяется отдельный адрес для отдела розничных/оптовых продаж и сервисного обслуживания. Ящик интегрируется с CRM, и каждое обращение создает лид или обновляет информацию в карточке клиента.
  2. Взаимодействие внутри компании. Позволяет отделить личное общение, настроить более серьезную защиту коммерческой информации. Такой подход упрощает контроль динамики исполнения поставленных задач.
  3. Внутренний файлообменник. Небольшое количество файлов иногда удобнее отправлять в теле электронного письма, особенно когда они требуют комментариев и сохранения прежней переписки. Сотрудники обходятся без переключения на хранилище данных.

Корпоративная почта заметно ускоряет обработку обращений от клиентов, потому что никто и ничто не отвлекает от чтения именно «рабочих» писем. Такие email редко указываются при регистрации на внешних сервисах, поэтому компания избавлена от бесконечного потока рекламных сообщений и новостных рассылок.

Комьюнити теперь в Телеграм

Подпишитесь и будьте в курсе последних IT-новостей

Подписаться

Преимущества корпоративной почты

Регистрация электронного ящика возможна на бесплатных ресурсах Mail.ru, Gmail или на домене, который используется в качестве адреса сайта. Второй вариант лучше по нескольким причинам: например, становится проще создать привлекательное, запоминающееся название – info, manager, help.

Корпоративная почта

Есть и другие преимущества:

  1. Повышается запоминаемость бренда. Принадлежность письма конкретной компании видна сразу при получении, его даже открывать не надо для понимания, от кого пришло послание.
  2. Снижаются риски попадания в спам. Письма с метками SPF и DKIM воспринимаются любой почтовой программой как «потенциально полезные», поэтому их чаще читают, чем те, что отправляются с публичных доменов.
  3. Растет лояльность целевой аудитории. Рассылки с корпоративного адреса вызывают больше доверия, и вероятность открытия возрастает многократно.

Системному администратору проще настроить безопасность внутреннего сервера, чем внешнего ресурса. Сюда относятся спам-фильтры, попытки передачи файлов, открытие ссылок напрямую из писем. Настройки почты на собственном домене доступны для ручного изменения, тогда как в том же Mail.ru придется мириться с функциями, предоставленными «по умолчанию».

Чипсендер

Как сделать корпоративную почту на своем домене

Развертывание собственного почтового сервера относится к сложным и затратным способам создать корпоративную почту. Специалисту приходится настраивать прием почты по протоколам POP3, IMAP4, ее отправку через SMTP, систему безопасности, реагирование на различные ошибки. Проще и быстрее воспользоваться встроенными функциями хостинга. Но и они иногда требуют навыков.

Почта Timeweb

Последовательность регистрации корпоративной почты Яндекс у хостинг-провайдера:

  1. Внести арендованный домен – в его настройках будет создаваться ящик.
  2. Добавить в настройки MX-запись – маршрутизация почты через DNS-серверы.
  3. Указать SPF-запись – защита от фишинговых сообщений и спама.
  4. Прописать DKIM-подпись – добавляет цифровую подпись к каждому письму.
  5. Подключить пользователей – создать нужное количество аккаунтов.

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

  1. Заходим в панель управления хостинга и выбираем раздел «Почта». 
  2. Выбираем наш сайт и жмем на вкладку «Добавить ящик».Почта Таймвэб
  3. Вводим название почты, придумываем пароль и жмем на «Создать».Почта Timeweb

Готово! Ваша почта с уникальным адресом уже готова к использованию. Timeweb позволяет добавлять безлимитное количество почтовых ящиков и управлять ими прямо из фирменного почтового клиента. Ничего настраивать больше не нужно. 

Использование доменного имени для почты не обязывает к публикации сайта, как и его наличие не требует создания корпоративной почты в рамках хостинга. Такой подход оптимален, если страницы массово публикуются под рекламные кампании, а единого домена просто не существует. Или когда старый email слишком известен, чтобы менять его ради неких «правил».

Создание корпоративной почты на облачных сервисах

Если функционала хостинга недостаточно, рекомендуются услуги вроде «почта на домене». Они предоставляются сервисами Яндекс.Почта, Mail.ru и Google. Они отличаются возможностями и особенностями настройки. Так, сервисы Gmail для организаций оплачиваются исходя из количества пользователей, Яндекс же предоставляет выбор бесплатной и платной версии.

Яндекс.Почта

Корпоративная почта на мощностях Яндекса доступна в сервисе «Яндекс 360 для бизнеса». Бесплатный период после регистрации составляет 30 дней. Этого достаточно для ознакомления с рядом функций – отсутствием лимита на количество ящиков, созданием рассылок, синхронизацией с Active Directory, облачным диском от 100 Гб до 3 Тб, видеовстречами по ссылке, корпоративным календарем и чатами.

Яндекс 360

Подключение:

  1. Зарегистрироваться в сервисе.
  2. Перейти в раздел «Домены».
  3. Ввести нужный адрес и выбрать способ подтверждения.
  4. Скопировать HTML-файл, метатег или DNS-запись на хостинг.
  5. Нажать кнопку «Запустить проверку».

После подтверждения коннекта остается внести в настройках домена на хостинге MX, SPF-запись и DKIM-подпись по инструкции провайдера. Например, в Timeweb следует перейти в раздел «Домены и поддомены» и там опубликовать TXT-записи с необходимым содержимым (предварительно следует получить его в аккаунте сервиса Яндекс 360).

Gmail

Сервис Google Workspace также предоставляет доступ к облачному хранилищу и неограниченное количество аккаунтов пользователей. Плюс открываются возможности офлайн-работы с письмами, организации видеовстреч и чатов, подключения к другим сервисам Гугл – Документы, Таблицы, Презентации, Сайты, Календарь, Магазин приложений и пр.

Почта Гугл

Подключение:

  1. Зарегистрироваться.
  2. Внести доменное имя сайта.
  3. Подтвердить право на него.
  4. Подключить подпись DKIM, записи MX и SPF.

Есть возможность переноса (импорта) данных с Microsoft Outlook, Office 365, Microsoft Exchange, IBM Notes, Domino. Изменения на хостинге проверяются и подтверждаются в течение двух суток, и это нужно учитывать перед запуском маркетинговых мероприятий. 

Mail.ru

Еще одно универсальное решение – пакет услуг «Mail.ru для бизнеса». Вместе с почтовым ящиком здесь предлагается облачное хранилище, сервис рассылок по email, SMS, Viber, мессенджер для внутренних коммуникаций. Также есть конструктор сайтов, сервис опросов, поддержка мобильных устройств.

Mail.ru для бизнеса

Подключение:

  1. Зарегистрироваться и указать домен сайта.
  2. Пройти проверку DNS, HTML-файла или метатега.
  3. Внести MX-запись, SPF и DKIM-подпись.

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

Некоторое время назад я рассказывал, как настроить почтовый сервер на базе готовой сборки iredmail. Я подробно разобрал все актуальные вопросы почтового сервера на linux на базе postfix. Сейчас хочу настроить похожий функционал, но с нуля, за основу взяв postfix + dovecot. Я расскажу про установку и настройку postfix на centos 7, причем только тех модулей и дополнений, которые сам считаю нужными и полезными на почтовом сервере.

Теоретический курс «Сетевые технологии для системных администраторов» позволит системным администраторам упорядочить и восполнить пробелы в знаниях. Цена очень доступная, есть ознакомительные уроки. Все подробности по ссылке. Можно пройти тест на знание сетей, бесплатно и без регистрации.

Данная статья является частью единого цикла статьей про сервер Centos.

Введение

Я буду настраивать почтовый сервер на ОС linux, а точнее на CentOS 7. За основу будет взят postfix, который присутствует в этой системе из коробки. Инструкция получится универсальной, можно использовать и для других дистрибутивов. Все основные конфиги легко переносятся на разные системы, требуя минимальной правки, в основном путей.

Я напишу статью на самом что ни на есть реальном примере, без какой-либо правки доменов, ip и прочего, чтобы не ошибиться и показать максимально возможный реальный пример. У меня есть технический домен zeroxzed.ru. Я буду использовать его в своей работе. Почтовый сервер будет иметь имя mail.zeroxzed.ru. Всю теорию по подготовке dns к установке и настройке почтового сервера я рассказывал в предыдущей статье о почтовом сервере. Не хочу здесь повторяться. Уточню только список действий, которые вам нужно проделать c ДНС:

  1. Создаем A запись в DNS — mail.zeroxzed.ru.
  2. Добавляем или редактируем MX запись, указывая в качестве почтового сервера mail.zeroxzed.ru.
  3. Просим провайдера прописать PTR для внешнего ip адреса, который будет использовать почтовый сервер. В качестве ptr записи просим установить имя нашего сервера — mail.zeroxzed.ru.

Настройка dns записей для почтового сервера

Я предпочитаю в качестве dns хостинга использовать сервера яндекса, даже если не прикрепляю его почту к домену. На картинке показан минимально необходимый набор записей, кроме PTR. Этими записями управляете не вы, а провайдер, который вам выдает ip. Пока с днс все. Позже мы вернемся к этому вопросу, когда будем добавлять dkim и spf записи. Но обо всем по порядку.

Подготовим систему centos к установке и настройке почтового сервера postfix. Если у вас еще нет готовой системы, то рекомендую воспользоваться моими статьями по установке и настройке centos. Отдельно потратьте время на настройку iptables. Я не буду касаться этого вопроса в данной статье, чтобы не раздувать ее второстепенными вещами. Удобнее, когда все по отдельности рассказано и описано с должной глубиной. Сваливать все в одну кучу не хочется.

По вступлению вроде все, основное рассказал. Приступим к настройке нашего почтового сервера.


Сразу хочу сделать предупреждение. Настройка почтового сервера достаточно трудоемкий процесс, требует определенных навыков, знаний и понимания принципов работы используемых средств. Я не ставлю для себя цель расписать максимально подробно так, чтобы было понятно даже неподготовленному администратору linux. Вы должны быть так или иначе подготовлены, либо запаситесь терпением и разбирайтесь внимательно сами в нюансах. Эта статья на полный копипаст не подходит, что-то остается за кадром для самостоятельного выполнения. Иначе нельзя, получится очень большой и громоздкий материал.

Установка postfixadmin

Начнем с установки и настройки панели управления почтовым сервером postfix — postfixadmin. Без него начинать что-то делать неудобно, так как управлять пользователями, ящиками, алиасами будет нечем. По своей сути postfixadmin — набор php скриптов для управления записями в mysql базе данных, которую использует сервер postfix во время своей работы. Соответственно, для работы postfixadmin нам нужен web сервер. Подробно о настройке web сервера на centos читайте отдельно. Сейчас же мы быстро установим все необходимое. Привожу только команды, без комментариев. Все подробности по приведенной выше ссылке.

# yum install httpd php phpmyadmin mariadb mariadb-server php-imap

Этих пакетов со всеми зависимостями будет достаточно для установки всех необходимых компонентов веб сервера. Я специально ставлю phpmyadmin, с ним удобно работать с базой. В нашем случае все пользователи будут храниться в mysql, иногда может понадобиться туда заглянуть. Подробнее с установкой и настройкой phpmyadmin можете ознакомиться отдельно.

Читайте также:  Освоение правил брандмауэра: полное руководство по оптимизации сетевой безопасности

Запускаем httpd и mariadb и добавляем их в автозагрузку.

# systemctl start httpd
# systemctl enable httpd
# systemctl start mariadb
# systemctl enable mariadb

Задаем пароль root для mysql.

# /usr/bin/mysql_secure_installation

Проверяем работу web сервера. Заходим по ip адресу сервера — http://188.35.19.125/, а также проверяем работу phpmyadmin — http://188.35.19.125/phpmyadmin/. Его нужно настроить, об этом рассказано в статье, которую я привел чуть выше. По-умолчанию в phpmyadmin доступ закрыт. Если все сделали правильно, то увидите примерно следующее.

Вход в phpmyadmin

Сразу создадим тут пользователя postfix и одноименную базу данных. Запомните учетные данные, они нам далее понадобятся.

Веб сервер готов, продолжаем настройку почтового сервера. Скачиваем последнюю версию postfixadmin.

# cd /usr/src
# wget https://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0.2/postfixadmin-3.0.2.tar.gz


Скорее всего во время вашей установки версия postfixadmin изменится и ссылка может быть неактуальной. Но даже если она будет актуальна, возможно выйдет более новая версия. Проверьте ее по ссылке https://sourceforge.net/projects/postfixadmin/ и скачайте самую свежую версию.

Распаковываем архив и копируем в директорию веб сервера.

# tar -xvzf postfixadmin-*
# mv /usr/src/postfixadmin-3.0.2 /var/www/html/postfixadmin

Назначаем владельцем пользователя веб сервера:

# chown -R apache. /var/www/html/postfixadmin/

Дальше редактируем конфигурационный файл postfixadmin.

# mcedit /var/www/html/postfixadmin/config.inc.php

Приводим параметры к следующему виду:

$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'postfix';
$CONF['database_password'] = '12345678';
$CONF['database_name'] = 'postfix';
$CONF['admin_email'] = 'root@zeroxzed.ru';
$CONF['encrypt'] = 'md5crypt';
$CONF['default_aliases'] = array ( 'abuse' => 'root', 'hostmaster' => 'root', 'postmaster' => 'root', 'webmaster' => 'root'
);
$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'YES';

Обращаю внимание на выделенный параметр. Он указывает на то, в каком виде хранить пароли пользователей в базе данных. Конечно, хранить обычным текстом без шифрования это дурной тон и может быть опасно. Я указал хранение в шифрованном виде. Но если мы говорим о небольшой компании без публичного доступа к серверу, можно использовать нешифрованные пароли. Для этого указываем значение параметра cleartext. Я сам так часто делаю просто из соображений удобства. Объясню, в чем удобство.

К примеру, у пользователя несколько устройств подключены к почте и он забыл свой пароль. Админ при создании почему-то тоже его никуда не записал, или забыл, или потерял. Вам придется сбросить пароль и перенастроить все устройства. Если же у вас пароль хранится в открытом виде, вы просто смотрите в базу и говорите пользователю пароль. Пароли в открытом виде удобно просто выгрузить дампом из базы, если понадобится кому-то все учетки передать. Но тут как посмотреть 🙂 С одной стороны плюс, с другой минус — кто-то очень просто может спереть все ваши пароли. В общем, тут от ситуации зависит, решайте сами, как вам удобнее хранить пароли.

У меня распространены ситуации, когда я удаленно администрирую сервера, а на месте эникеи работают с пользователями. Чаще всего это не очень аккуратные и ответственные люди, иначе они бы работали с серверами 🙂 Они часто забывают записать пароль, путают что-то и т.д. В итоге, когда один человек увольняется и приходит другой, оказывается, что найти пароли на некоторые ящики просто невозможно. Тут очень выручает возможность посмотреть пароль в базе. Я новому админу либо пароль говорю, либо весь дамп сразу отдаю, пусть работает.

Если вы сами работаете с сервером и все аккуратно ведете, записываете, например, в keepass все пароли от почтовых ящиков, то смело шифруйте все пароли, так будет спокойнее.

Последние 2 параметра domain_path и domain_in_mailbox указывайте по своему усмотрению. В файле конфигурации в комментариях расписано, за что они отвечают и в чем отличие. Мне кажется, удобно хранить директории именно в таком виде, как я указал. Получится следующий путь до ящика, если у вас архив почты будет жить, к примеру, в директории /mnt/mail/mnt/mail/zeroxzed.ru/root@zeroxzed.ru.

С параметрами разобрались. Сохраняем конфиг. Идем по адресу http://188.35.19.125/postfixadmin/setup.php и начинаем установку postfixadmin. Первым делом идет проверка всех необходимых для установки и работы компонентов. Для продолжения установки у вас должна быть такая картинка.

Установка postfixadmin

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

Добавление пароля установки

Добавляем полученную строку в файл конфигурации postfixadmin.

# mcedit /var/www/html/postfixadmin/config.inc.php
$CONF['setup_password'] = '67e46bdcc7aeb431f7af9a6d02f43352:30672e5a9deacaf505d32807b967caf9fd0c32ef';

Используя этот пароль, можно создать учетную запись администратора панели управления. Делаем это, учитывая, что пароль должен содержать не менее двух цифр. Если все сделали правильно, то увидите сообщение.

Добавление администратора postfixadmin

Переходим по ссылке и авторизуемся с помощью учетной записи администратора, которую только что сделали. Вы должны увидеть основную страницу интерфейса postfixadmin.

Главная страница postfixadmin

Теперь нам нужно добавить домен в панель управления. Идем в раздел Список доменов -> Новый домен и добавляем свой домен.

Создание нового домена

При создании домена были добавлены стандартные алиасы, получателя для которых мы указали еще в конфиге — ящик root@zeroxzed.ru. Создание таких алиасов требование стандартов, но по факту, кроме спама, вы скорее всего ничего не будете получать по этим адресам. Так что их создание оставляйте на свое усмотрения. Я обычно их не делаю, так как ящик для этих алиасов все равно не читаю.

Далее создадим почтовый ящик администратора — root@zeroxzed.ru. Для этого идем в раздел Обзор -> Создать ящик и заполняем поля.

Добавление почтового ящика

Непосредственно ящик на диске создан не будет, так как у нас еще не настроена почтовая система, но запись в базе данных появится. Это можно проверить через phpmyadmin.

Проверка нового ящика в mysql базе

Как мы видим, пароль указан в зашифрованном виде. На этом установку и настройку postfixadmin завершаем. Интерфейс для управления почтовым сервером мы подготовили. Теперь можно заняться непосредственно настройкой postfix.

Настройка postfix

Сердце нашего почтового сервера на linux — postfix. В дистрибутиве centos он уже установлен, можно сразу переходить к настройке. Рисуем следующий конфиг.

# mcedit /etc/postfix/main.cf
soft_bounce = no
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
mail_owner = postfix
myhostname = mail.zeroxzed.rumydomain = zeroxzed.rumyorigin = $myhostname
inet_interfaces = all
inet_protocols = ipv4
mydestination = localhost.$mydomain, localhost
unknown_local_recipient_reject_code = 550
mynetworks = 127.0.0.0/8
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
smtpd_banner = $myhostname ESMTP $mail_name
debug_peer_level = 2
# Строки с PATH и ddd должны быть с отступом в виде табуляции от начала строки
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
html_directory = no
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.10.1/samples
readme_directory = /usr/share/doc/postfix-2.10.1/README_FILES
relay_domains = mysql:/etc/postfix/mysql/relay_domains.cf
virtual_alias_maps = mysql:/etc/postfix/mysql/virtual_alias_maps.cf, mysql:/etc/postfix/mysql/virtual_alias_domain_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql/virtual_mailbox_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql/virtual_mailbox_maps.cf
smtpd_discard_ehlo_keywords = etrn, silent-discard
smtpd_forbidden_commands = CONNECT GET POST
broken_sasl_auth_clients = yes
smtpd_delay_reject = yes
smtpd_helo_required = yes
smtp_always_send_ehlo = yes
disable_vrfy_command = yes
smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_helo_hostname, reject_invalid_helo_hostname
smtpd_data_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_pipelining, reject_multi_recipient_bounce,
smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_recipient_restrictions = reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_multi_recipient_bounce, permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination,
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtp_tls_session_cache_database = btree:$data_directory/smtp_tls_session_cache
smtpd_tls_key_file = /etc/postfix/certs/key.pem
smtpd_tls_cert_file = /etc/postfix/certs/cert.pem
tls_random_source = dev:/dev/urandom
# Ограничение максимального размера письма в байтах
message_size_limit = 20000000
smtpd_soft_error_limit = 10
smtpd_hard_error_limit = 15
smtpd_error_sleep_time = 20
anvil_rate_time_unit = 60s
smtpd_client_connection_count_limit = 20
smtpd_client_connection_rate_limit = 30
smtpd_client_message_rate_limit = 30
smtpd_client_event_limit_exceptions = 127.0.0.0/8
smtpd_client_connection_limit_exceptions = 127.0.0.0/8
maximal_queue_lifetime = 1d
bounce_queue_lifetime = 1d
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
# Директория для хранения почты
virtual_mailbox_base = /mnt/mailvirtual_minimum_uid = 1000
virtual_uid_maps = static:1000
virtual_gid_maps = static:1000
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1
sender_bcc_maps = hash:/etc/postfix/sender_bcc_maps
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc_maps

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

# mkdir /etc/postfix/mysql && cd /etc/postfix/mysql
# mcedit relay_domains.cf
hosts = localhost
user = postfix
password = 12345678
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' and backupmx = '1'
# mcedit  virtual_alias_domain_maps.cf
hosts = localhost
user = postfix
password = 12345678
dbname = postfix
query = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = CONCAT('%u', '@', alias_domain.target_domain) AND alias.active = 1
# mcedit virtual_alias_maps.cf
hosts = localhost
user = postfix
password = 12345678
dbname = postfix
query = SELECT goto FROM alias WHERE address='%s' AND active = '1'
# mcedit virtual_mailbox_domains.cf
hosts = localhost
user = postfix
password = 12345678
dbname = postfix
query = SELECT domain FROM domain WHERE domain='%s' AND backupmx = '0' AND active = '1'
# mcedit virtual_mailbox_maps.cf
hosts = localhost
user = postfix
password = 12345678
dbname = postfix
query = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'

Редактируем файл /etc/postfix/master.cf. Нам надо добавить строки, касающиеся настройки Submission для того, чтобы почтовый сервер работал на 587 порту. Смартфоны очень часто при настройке используют этот порт по-умолчанию, где-то даже без возможности изменить эту настройку. Приводим секцию, отвечающую за эту работу к следующему виду.

submission inet n - n - - smtpd -o syslog_name=postfix/submission -o smtpd_tls_wrappermode=no -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination -o milter_macro_daemon_name=ORIGINATING

Обращаю внимание на пробел в начале строки, начиная со второй. Его надо обязательно оставить. Добавляем еще настройки для того, чтобы наш сервер поддерживал протокол SSL/TLS и слушал порт 465

smtps inet n - n - - smtpd -o syslog_name=postfix/smtps -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject -o smtpd_relay_restrictions=permit_mynetworks,permit_sasl_authenticated,defer_unauth_destination -o milter_macro_daemon_name=ORIGINATING

В этот же файл добавляем еще одну настройку, которая будет указывать postfix, что доставкой почты у нас будет заниматься dovecot, который мы настроим следом. Добавляем в master.cf в самый конец.

dovecot unix - n n - - pipe flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}

Сгенерируем самоподписанные ssl сертификаты для нашего почтового сервера. Позже отдельным пунктом я расскажу как использовать полноценные сертификаты. Они не всем нужны, поэтому показываю быструю настройку postfix на использование своих сертификатов, которые уже указаны в конфиге postfix.

Создаем директорию и сами сертификаты:

# mkdir /etc/postfix/certs
# openssl req -new -x509 -days 3650 -nodes -out /etc/postfix/certs/cert.pem -keyout /etc/postfix/certs/key.pem

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

Создание ssl сертификата для postfix

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

# mcedit /etc/postfix/recipient_bcc_maps
@zeroxzed.ru all_in@zeroxzed.ru
# mcedit /etc/postfix/sender_bcc_maps
@zeroxzed.ru all_out@zeroxzed.ru

Создаем индексированные базы данных из этих файлов. Это нужно делать каждый раз, после изменения.

# postmap /etc/postfix/recipient_bcc_maps /etc/postfix/sender_bcc_maps

Теперь создайте два почтовых ящика all_in@zeroxzed.ru и all_out@zeroxzed.ru через postfixadmin.

Немного поясню по этим ящикам — для чего они нужны. Изначально я их делал, когда пользователи использовали протокол pop3 без сохранения писем на сервере. Это позволяло организовать бэкап всей переписки. Эти ящики очень быстро заполняются и занимают огромный объем, поэтому их обязательно надо чистить. Я просто скриптами регулярно собирал всю почту в архивы с именами в виде дат. Если нужно было какое-то письмо найти, то просто распаковывал нужный архив.

В случае с imap роль бэкапа отпадает, так как вся почта хранится на сервере. Но эти ящики все равно бывают полезны, когда пользователь, к примеру, удалил какое-то важное письмо и потом делает вид, что его и не было. Если это письмо пришло только сегодня и еще не успело улететь в бэкап, то кроме записи в логах об этом письме, вы не увидите само содержимое. А с такими ящиками все сразу будет понятно, и вопросы отпадут. Последнее применение — служба безопасности. Если у вас есть кто-то, кому положено читать всю переписку, то реализовать этот функционал можно таким простым способом.

Все основные настройки для postfix мы сделали. Некоторые из них завязаны на работу с dovecot, который мы еще не настроили. Поэтому больше postfix не трогаем, не перезапускаем. Идем настраивать dovecot — imap сервер нашей почтовой системы.

Настройка dovecot

Займемся настройкой dovecot — сервер доставки почты пользователю по протоколам pop3 и imap. Я не вижу причин использовать pop3. Он неудобен по сравнению с imap. Чаще всего pop3 отключаю вовсе. Но это уже на ваше усмотрение. Приведу пример с настройкой обоих протоколов. Помимо основного функционала по доставке почты, я настрою несколько полезных плагинов. Расскажу о них поподробнее:

  • Sieve — выполняет фильтрацию почты по заданным правилам в момент локальной доставки на почтовом сервере. Удобство такого подхода в том, что вы один раз можете настроить правило сортировки, и оно будет работать во всех клиентах, которыми вы будете получать почту по imap. Правила создаются, хранятся и исполняются на самом сервере.
  • Acl — позволяет пользователям расшаривать папки в своем почтовом ящике и предоставлять доступ к этим папкам другим пользователям. Не часто видел, чтобы этот функционал настраивали и использовали. Думаю, просто по незнанию. По мне так очень удобный и полезный функционал.
Читайте также:  Пошаговая настройка установки и настройки Exchange Server 2019

Часто вижу, что люди настраивают плагин quota, который позволяет ограничивать максимальный размер почтового ящика. Я лично в своей работе его не использую. Возможно, когда у тебя клиентов сотни и тысячи это имеет значение и надо обязательно настроить ограничение. Когда же ящиков меньше, нет смысла напрягать людей постоянной чисткой. Сейчас диски стоят не так дорого. Мне кажется, проще и дешевле увеличить место на сервере, нежели постоянно беспокоить пользователей необходимостью чистки ящика. Лучше ограничить максимальный размер письма, скажем 20-ю мегабайтами. Тогда сильно забить ящик даже при большом желании быстро не получится. А почта все-таки важный инструмент в работе. Мне кажется, ее лучше хранить как можно дольше.

Есть еще один полезный плагин expire, который позволяет удалять устаревшие письма в определенных папках. Например, удалять все письма старше 30-ти дней в корзине и папке со спамом. Но реально пользоваться им не получается по простой причине. Разные почтовые клиенты создают различные папки для корзины и спама. Thunderbird создает папки с латинскими именами trash и spam, outlook с русскими, которые на почтовом сервере преобразуются в кодировку UTF7, мобильные клиенты тоже используют разные имена папок. В итоге нет единообразия, плагин полноценно не работает.

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

Небольшую теорию я дал, теперь переходим к практике. Устанавливаем необходимые для dovecot пакеты.

# yum install dovecot dovecot-mysql dovecot-pigeonhole

Изначально конфиг dovecot разбит на отдельные сегменты и лежат в директории /etc/dovecot/conf.d. Каждый файл — отдельный функционал. Мне не нравится прыгать по файлам, поэтому я храню все в едином общем файле конфигурации /etc/dovecot/dovecot.conf. С ним мы и будем работать. Приводим его к следующему виду.

# mcedit /etc/dovecot/dovecot.conf
listen = * [::]
mail_plugins = mailbox_alias acl
protocols = imap pop3 sieve lmtp
mail_uid = 1000
mail_gid = 1000
first_valid_uid = 1000
last_valid_uid = 1000
log_path = /var/log/dovecot/main.log
info_log_path = /var/log/dovecot/info.log
debug_log_path = /var/log/dovecot/debug.log
ssl_protocols = !SSLv2 !SSLv3
ssl = required
verbose_ssl = no
ssl_cert = </etc/postfix/certs/cert.pem
ssl_key = </etc/postfix/certs/key.pem
ssl_cipher_list = ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-RSA-DES-CBC3-SHA:ECDHE-ECDSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA
ssl_dh_parameters_length = 2048
ssl_prefer_server_ciphers = yes
disable_plaintext_auth = yes
mail_location = maildir:/mnt/mail/%d/%u/
auth_default_realm = zeroxzed.ru
auth_mechanisms = PLAIN LOGIN
service auth { unix_listener /var/spool/postfix/private/dovecot-auth { user = postfix group = postfix mode = 0666 }
unix_listener auth-master { user = vmail group = vmail mode = 0666 }
unix_listener auth-userdb { user = vmail group = vmail mode = 0660 }
}
service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { user = postfix group = postfix mode = 0600 } inet_listener lmtp { address = 127.0.0.1 port = 24 }
}
userdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql }
passdb { args = /etc/dovecot/dovecot-mysql.conf driver = sql }
auth_master_user_separator = *
plugin { auth_socket_path = /var/run/dovecot/auth-master acl = vfile acl_shared_dict = file:/mnt/mail/shared-folders/shared-mailboxes.db sieve = /mnt/mail/sieve/%u.sieve mailbox_alias_old = Sent mailbox_alias_new = Sent Messages mailbox_alias_old2 = Sent mailbox_alias_new2 = Sent Items
}
protocol lda { mail_plugins = $mail_plugins sieve auth_socket_path = /var/run/dovecot/auth-master deliver_log_format = mail from %f: msgid=%m %$ log_path = /var/log/dovecot/lda-errors.log info_log_path = /var/log/dovecot/lda-deliver.log lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes postmaster_address = root
}
protocol lmtp { info_log_path = /var/log/dovecot/lmtp.log mail_plugins = quota sieve postmaster_address = postmaster lmtp_save_to_detail_mailbox = yes recipient_delimiter = +
}
protocol imap { mail_plugins = $mail_plugins imap_acl imap_client_workarounds = tb-extra-mailbox-sep mail_max_userip_connections = 30
}
protocol pop3 { mail_plugins = $mail_plugins pop3_client_workarounds = outlook-no-nuls oe-ns-eoh pop3_uidl_format = %08Xu%08Xv mail_max_userip_connections = 30
}
service imap-login { service_count = 1 process_limit = 500 }
service pop3-login { service_count = 1 }
service managesieve-login { inet_listener sieve { port = 4190 }
}
namespace { type = private separator = / prefix = inbox = yes mailbox Sent { auto = subscribe special_use = \Sent } mailbox "Sent Messages" { auto = no special_use = \Sent } mailbox "Sent Items" { auto = no special_use = \Sent } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Trash { auto = subscribe special_use = \Trash } mailbox "Deleted Messages" { auto = no special_use = \Trash } mailbox Junk { auto = subscribe special_use = \Junk } mailbox Spam { auto = no special_use = \Junk } mailbox "Junk E-mail" { auto = no special_use = \Junk } mailbox Archive { auto = no special_use = \Archive } mailbox Archives { auto = no special_use = \Archive }
}
namespace { type = shared separator = / prefix = Shared/%%u/ location = maildir:%%h:INDEX=%h/shared/%%u subscriptions = yes list = children
}

Создаем группу и пользователя с указанными в конфиге uid 1000.

# groupadd  -g 1000 vmail
# useradd -d /mnt/mail/ -g 1000 -u 1000 vmail
# chown vmail. /mnt/mail

Создаем конфигурационные файлы для доступа к mysql базе.

# mcedit /etc/dovecot/dovecot-mysql.conf
driver = mysql
default_pass_scheme = CRYPT
connect = host=127.0.0.1 dbname=postfix user=postfix password=12345678
user_query = SELECT '/mnt/mail/%d/%u' as home, 'maildir:/mnt/mail/%d/%u' as mail, 1000 AS uid, 1000 AS gid, concat('*:bytes=', quota) AS quota_rule FROM mailbox WHERE username = '%u' AND active = '1'
password_query = SELECT username as user, password, '/mnt/mail/%d/%u' as userdb_home, 'maildir:/mnt/mail/%d/%u' as userdb_mail, 1000 as userdb_uid, 1000 as userdb_gid, concat('*:bytes=', quota) AS userdb_quota_rule FROM mailbox WHERE username = '%u' AND active = '1'

Создадим директорию и файлы для логов.

# mkdir /var/log/dovecot
# cd /var/log/dovecot && touch main.log info.log debug.log lda-errors.log lda-deliver.log lmtp.log
# chown -R vmail:dovecot /var/log/dovecot

Создаем пару служебных папок для плагинов sieve и acl.

# mkdir /mnt/mail/sieve && mkdir /mnt/mail/shared-folders
# chown -R vmail. /mnt/mail

И небольшой штрих в завершении настройки.

# chown vmail. /var/run/dovecot/auth-master

Уже не помню, зачем это было нужно, запись осталась в черновиках. Знаю только, что какая-то ошибка всплывала без этого.

На этом основная настройка почтового сервера на базе postfix и dovecot завершена. Можно перезапускать службы и проверять работу системы.

# systemctl restart postfix
# systemctl start dovecot
# systemctl enable dovecot

Проверка работы почтового сервера

Самаый простой и быстрый способ проверить работу почтового сервера — отправить на него письмо. Я буду отправлять со своего почтового адреса zeroxzed@gmail.com на адрес root@zeroxzed.ru. Вот что должно быть в логе, если у вас все правильно настроено и почтовый сервер нормально работает.

# cat /var/log/maillog
Mar 10 21:56:27 mail postfix/smtpd[28075]: connect from mail-yw0-f172.google.com[209.85.161.172]
Mar 10 21:56:28 mail postfix/smtpd[28075]: Anonymous TLS connection established from mail-yw0-f172.google.com[209.85.161.172]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Mar 10 21:56:28 mail postfix/smtpd[28075]: D4263420BB7B: client=mail-yw0-f172.google.com[209.85.161.172]
Mar 10 21:56:29 mail postfix/cleanup[28086]: D4263420BB7B: message-id=<CAHWPLcOeqf6uNHRg34+wuppDUGPDLY=fp8s-E=o9fmxYMS48cQ@mail.gmail.com>
Mar 10 21:56:29 mail postfix/qmgr[28042]: D4263420BB7B: from=<zeroxzed@gmail.com>, size=2533, nrcpt=2 (queue active)
Mar 10 21:56:29 mail postfix/pipe[28089]: D4263420BB7B: to=<all_in@zeroxzed.ru>, relay=dovecot, delay=0.39, delays=0.33/0.02/0/0.05, dsn=2.0.0, status=sent (delivered via dovecot service)
Mar 10 21:56:29 mail postfix/pipe[28090]: D4263420BB7B: to=<root@zeroxzed.ru>, relay=dovecot, delay=0.4, delays=0.33/0.03/0/0.04, dsn=2.0.0, status=sent (delivered via dovecot service)
Mar 10 21:56:29 mail postfix/qmgr[28042]: D4263420BB7B: removed
Mar 10 21:56:29 mail postfix/smtpd[28075]: disconnect from mail-yw0-f172.google.com[209.85.161.172]

Пояснять тут нечего, по логу все понятно. Письмо было доставлено в указанный ящик и в общий ящик для сбора всей входящей почты. В директории /mnt/mail была создана директория с именем домена zeroxzed.ru, а в ней созданы 3 папки с именами ящиков:

  • all_in@zeroxzed.ru
  • all_out@zeroxzed.ru
  • root@zeroxzed.ru

Директории с почтовыми ящиками создаются в момент получения первого письма в ящик. Непрочитанное письмо помещается в директорию /new в почтовом ящике. После прочтения переносится в /cur.

Попробуем теперь подключиться к почтовому ящику по imap, прочитать письмо и отправить ответ. Настроим любой почтовый клиент для проверки работы настроенного почтового сервера. Я для этих целей буду использовать Thunderbird. Из всех почтовых клиентов мне он нравится больше всего. В основном из-за его портированной версии. Указываем следующие настройки.

Настройка подключения к почтовому серверу

Так как мы используем самоподписанный сертификат ssl, почтовый клиент предупредит нас о том, что серверу нельзя доверять.

Добавление ssl сертификата в исключения

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

Я подключился к почтовому ящику и увидел тестовые письма. Отвечу на одно из них и посмотрю в логе, как прошла отправка. У меня еще раз выскочило окно с предупреждением о небезопасном сертификате. Еще раз добавляю его в исключения. Это нормально, сертификат проверяется во время получения почты в dovecot, а во время отправки в postfix. Так что нужны 2 подтверждения. Отправляю письмо еще раз и смотрю лог.

# cat /var/log/maillog
Mar 10 22:10:12 mail postfix/smtpd[28764]: connect from broadband-75-37-235-139.moscow.gw.ru[75.37.235.139]
Mar 10 22:10:12 mail postfix/smtpd[28764]: Anonymous TLS connection established from broadband-75-37-235-139.moscow.gw.ru[75.37.235.139]: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
Mar 10 22:10:12 mail postfix/smtpd[28764]: B24C2420BB70: client=broadband-75-37-235-139.moscow.gw.ru[75.37.235.139], sasl_method=PLAIN, sasl_username=root@zeroxzed.ru
Mar 10 22:10:12 mail postfix/cleanup[28779]: B24C2420BB70: message-id=<aaac96c3-197e-c6bd-4dfe-85d09bce216a@zeroxzed.ru>
Mar 10 22:10:12 mail postfix/qmgr[28042]: B24C2420BB70: from=<root@zeroxzed.ru>, size=955, nrcpt=2 (queue active)
Mar 10 22:10:12 mail postfix/smtpd[28764]: disconnect from broadband-75-37-235-139.moscow.gw.ru[75.37.235.139]
Mar 10 22:10:12 mail postfix/pipe[28784]: B24C2420BB70: to=<all_out@zeroxzed.ru>, relay=dovecot, delay=0.14, delays=0.07/0.01/0/0.06, dsn=2.0.0, status=sent (delivered via dovecot service)
Mar 10 22:10:13 mail postfix/smtp[28783]: B24C2420BB70: to=<zeroxzed@gmail.com>, relay=gmail-smtp-in.l.google.com[64.233.163.26]:25, delay=0.62, delays=0.07/0.01/0.28/0.26, dsn=2.0.0, status=sent (250 2.0.0 OK 1489173013 13si2106703ljv.3 - gsmtp)
Mar 10 22:10:13 mail postfix/qmgr[28042]: B24C2420BB70: removed

Все в порядке. Видно подключение с моего ip, успешную sasl авторизацию, формирование письма на сервере, присваивание ему message-id, отправка копии письма в ящик для сбора исходящей почты и отправка оригинала в ящик получателя. Все этапы прошли без ошибок.

Расскажу, куда еще надо смотреть для отладки почтовой системы. Да и не только отладки, во время работы периодически придется разбираться, куда ушло то или иное письмо, кто и когда подключался к ящику. Разные ситуации бывают. В файле /var/log/dovecot/lda-deliver.log содержится информация обо всех пришедших письмах — когда, от кого и в какой ящик было положено.

Mar 10 22:25:29 lda(all_in@zeroxzed.ru): Info: mail from zeroxzed@gmail.com: msgid=<CAHWPLcNG=WMOoWW2Y_Lw4qn9+V4TOrbxZpwtA=O+CSEBaiwuBg@mail.gmail.com> saved mail to INBOX
Mar 10 22:25:29 lda(root@zeroxzed.ru): Info: mail from zeroxzed@gmail.com: msgid=<CAHWPLcNG=WMOoWW2Y_Lw4qn9+V4TOrbxZpwtA=O+CSEBaiwuBg@mail.gmail.com> saved mail to INBOX
Mar 10 22:25:49 lda(all_out@zeroxzed.ru): Info: mail from root@zeroxzed.ru: msgid=<75358e4d-7c8e-24c2-a21f-7ee0df2a4704@zeroxzed.ru> saved mail to INBOX

В /var/log/dovecot/info.log информация о подключениях к почтовым ящикам — кто, когда, откуда и каким способом авторизовывался на сервере.

Mar 10 22:10:20 imap-login: Info: Login: user=<root@zeroxzed.ru>, method=PLAIN, rip=75.37.235.139, lip=188.35.19.125, mpid=28790, TLS, session=<3tDeHGVKpQBNJeCL>
Mar 10 22:19:39 imap-login: Info: Login: user=<root@zeroxzed.ru>, method=PLAIN, rip=75.37.235.139, lip=188.35.19.125, mpid=29248, TLS, session=<7VY8PmVKbwBNJeCL>

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

На текущий момент сервер полностью работоспособен. В таком виде им без проблем можно пользоваться. Но функционал полностью не раскрыт. Использовать плагины sieve и acl через удаленные почтовые клиенты неудобно. Проще всего их настроить через web почту roundcube. Установим эту web панель на наш почтовый сервер.

Установка web интерфейса roundcube

Установим и настроим самый популярный web интерфейс для postfix — roundcube. Скачиваем исходники.

# cd /usr/src
# wget https://github.com/roundcube/roundcubemail/releases/download/1.2.9/roundcubemail-1.2.3-complete.tar.gz


Не забудьте проверить в момент установки, какая версия является самой свежей на текущий момент. Нет необходимости устанавливать устаревшую версию. Рекомендую ставить самую последнюю на момент настройки.

# yum install php-pear php-mcrypt php-intl php-ldap php-pear-Net-SMTP php-pear-Net-IDNA2 php-pear-Mail-Mime php-pear-Net-Sieve
# tar -xzvf roundcubemail-*
# mv roundcubemail-1.2.9 /var/www/html/webmail
# chown -R apache. /var/www/html/webmail

Переходим в браузер по следующей ссылке для установки roundcube — http://188.35.19.125/webmail/installer/. Вы увидите несколько незначительных замечаний. На них можно не обращать внимание, если установщик позволяет нажать кнопку NEXT. Единственное, рекомендую установить правильный часовой пояс в /etc/php.ini и перезапустить после этого httpd.

На следующем этапе нам надо указать настройки подключения к mysql базе. Предварительно ее следует создать через phpmyadmin. Я создал пользователя roundcube и такую же базу с полными правами пользователя на нее. Эти параметры указал в настройках.

Установка roundcube

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

  • smtp_server — пусто (ничего не пишем)
  • language — ru_RU
  • Выбираем плагины — managesieve, userinfo, acl. Остальные на свое усмотрение.

Жмем CREATE CONFIG. Должны увидеть сообщение:

The config file was saved successfully into RCMAIL_CONFIG_DIR directory of your Roundcube installation.

Жмем CONTINUE. Открывается страница с проверкой настроек. Тут проверять неудобно, можно этого не делать. Зайдем в почтовый ящик и там все проверим. Если что, конфиг потом все равно можно вручную отредактировать. Папку /var/www/html/webmail/installer удаляем. Заходим в почтовый ящик через roundcube — http://188.35.19.125/webmail/ Набирать нужно полное имя ящика и пароль. Если все сделали правильно, должны попасть в свой почтовый ящик.

Вход в почтовый ящик через roundcube

Ну вот и все. Можно пользоваться web интерфейсом для почтового сервера. У меня есть статья по настройке мобильной версии roundcube. Рекомендую ее настроить, если есть необходимость. Тема качественная и добротная. Пользоваться удобно.

Дальше рассмотрим настройку и использование плагинов acl и sieve с помощью roundcube.

Оцените статью
Хостинги