Home » Linux » CentOS » Настройка почтового сервера iRedMail на CentOS 7

Настройка почтового сервера iRedMail на CentOS 7

Я давно собирался раскрыть тему настройки почтового сервера на linux, но никак не доходили руки. Начну с установки и настройки iRedMail – готовой сборки на основе postfix для создания почтового сервера с web интерфейсом. Изначально я хотел все установить и настроить сам, связав все необходимые элементы, но данная cборка упростила мне задачу.

Введение

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

Настроить почтовый сервер не самая простая задача. Лично мне не нравится с ними возиться из-за большого количества всевозможных настроек и элементов, которые нужно между собой связать. Чуть позже я детально разберу все самое основное, что требуется для полноценного почтового сервера. Недавно мне на глаза попалась готовая сборка для почтового сервера под названием iRedMail. Я решил на нее внимательно посмотреть, потестировать. В ее основе традиционный smtp сервер — postfix. Она мне понравилась, я решил, что ей вполне можно пользоваться. Дальше расскажу о ней поподробнее.

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

Что такое iRedMail

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

  1. Postfix — сердце почтовой системы, вокруг которого настраивается все остальное.
  2. Dovecot — imap сервер для доступа к почтовым ящикам пользователей.
  3. Web сервер — apache+ php + mysql для вспомогательных функций.
  4. Roundcube и SOGo — веб интерфейсы для доступа к почте. Пользоваться можно любым, что больше понравится.
  5. Awstats — статистика работы почтового сервера.
  6. Amavisd — модуль связи почтовой системы и дополнительных обработчиков почты (антиспам, антивирус и т.д.)
  7. SpamAssassin — бесплатный антиспам для почты.
  8. ClamAV — бесплатный антивирус.
  9. Greylist — эффективная система борьбы со спамом.

Это основные элементы. В сборке еще много вспомогательных системных настроек и утилит, которые упрощают настройку сервера. Например, в iRedMail включены:

  • готовые правила для iptables
  • fail2ban для защиты сервера от брутфорса
  • logwatch для наблюдения за логами сервера
  • наборы cron скриптов для обслуживания и бэкапа сервера
  • модуль iRedAPD для удобного управления функционалом почтового сервера
  • готовые ssl сертификаты и dkim ключ.

Чем же мне понравился iRedMail?

  1. Во-первых, в нем есть все, что нужно для почтового сервера. Очень грамотно и четко подобраны все элементы.
  2. Во-вторых, в нем нет никаких импровизаций и свистелок. Весь софт стандартный, все конфиги стандартные. Их легко читать и править. По сути, iRedMail это скрипт по автоматической установке и настройке стандартного софта. После установки вы можете по своему усмотрению донастроить или изменить все, что вам покажется необходимым. Именно этим я и займусь в своей статье.
  3. В-третьих, выполняются полезные системные настройки сервера, избавляющие вас от рутинных операций, которые пришлось бы делать вручную.
  4. В-четвертых, в комплекте идет написанный на питоне модуль iRedAPD для управления всем установленным хозяйством. Это полезно тем, кто не очень понимает, как работает весь тот комплекс, который будет установлен. С помощью этого модуля можно очень быстро и просто, к примеру, отключить антивирус или антиспам, если он вам не нужен. При этом вам не надо будет разбираться во внутренней работе этих модулей.

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

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

Как я уже сказал, бесплатная версия веб панели позволяет только создать пользователя. Для нормальной работы с пользователями не хватает создания алиасов и перенаправления почты из одного ящика в другой. Данный функционал реализован в бесплатной панели управления postfix — postfixadmin. Ее мы и прикрутим к iRedMail. Она не без проблем, но все же устанавливается и нормально работает вместе с веб панелью iRedMail, используя одну базу данных mysql, не мешая друг другу.

Управлять модулями сборки мы будем в iRedAPD в консоли сервера с помощью его конфигурационных файлов. Разработчики любезно оставили весь рабочий функционал, никак его не ограничив. Платная версия представляет только удобное управление. Это позволит нам получить весь имеющийся функционал бесплатно.

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

Требования для почтового сервера

Начнем потихоньку подготовку к настройке нашего почтового сервера. Первым делом нужно подготовить DNS записи. Это очень важно. Без правильной наcтройки dns записей нормально работать сервер не будет. Вернее, работать то он будет, но ваша почта может улетать в спам у принимающей стороны. Я буду рассказывать все на конкретном примере. У меня есть домен zeroxzed.ru. Его почта уже привязана к другому почтовому серверу, я не хочу его менять. Для написания этой статьи, я сделал поддомен m.zeroxzed.ru. Для демонстрации работы нет никакой разницы, используется домен второго уровня или третьего, как в моем случае. В этом поддомене будет находиться мой почтовый сервер srv.m.zeroxzed.ru. Это имя физического сервера, на котором будет работать почта. Почтовые ящики у меня будут вида user1@m.zeroxzed.ru. Внешний ip адрес на котором будет работать сервер — 188.45.19.125.

Для подготовки к настройке почтового сервера вам нужно добавить следующие DNS записи в панели управления DNS вашего домена.

Имя Тип Значение
m A 188.45.19.125
srv.m A 188.45.19.125
m MX srv.m.zeroxzed.ru

Подробнее о типах DNS записей читайте на википедии. В случае с доменом первого уровня, например site.ru и именем почтового сервера srv.site.ru, вам нужны будут только 2 записи:

srv A внешний IP
@ MX srv.site.ru

Но это не все. К сожалению, одних DNS записей не достаточно. Для вашего внешнего IP адреса должна быть прописана обратная зона — PTR. В обратной зоне ip-адресу ставится в соответствие доменное имя. То есть вашему IP адресу должно соответствовать доменное имя srv.site.ru. Настройками обратной зоны в подавляющем большинстве случаев вы не можете управлять. Для ее изменения нужно обратиться к вашему провайдеру, который выделил вам внешний IP и сказать ему, что вы хотите настроить почтовый сервер и вам необходимо прописать обратную зону с именем srv.site.ru на внешний IP адрес. Это обычная просьба, и тех поддержка без проблем сделает то, что вы просите, если они предоставляют такую услугу. Чаще всего провайдеры, работающие с юридическими лицами, такую услугу предоставляют. Домовые провайдеры для физиков нет.

Проверить обратную зону для домена можно в консоли сервера с помощью команды host. Вот пример для моего внешнего IP. Я не стал просить провайдера прописывать обратную зону для тестового сервера, она не правильная. Привожу просто для примера:

# host 188.45.19.125
125.19.45.188.in-addr.arpa domain name pointer host-188-45-19-125.beirel.ru.

Это пример не настроенной обратной зоны. Возьмем для примера какой-нибудь сайт, у которого правильно настроены все DNS записи и обратная зона. Например это будет raiffeisen.ru. Смотрим его записи.

Проверка dns записей

Здесь все четко — есть MX запись с именем почтового сервера, есть IP адрес этого сервера и обратная зона. Все это однозначно соответствует друг другу. Иногда люди путают, называют, к примеру, сервер mail.site.ru, а обратную зону делают просто site.ru или srv.site.ru. Вроде все правильно, домен один и тот же, но соответствие не полное. Чтобы все было правильно, должно быть полное соответствие всех записей — A, MX, PTR. Очень много спам фильтров используют эти записи для проверки домена отправителя на полное соответствие всех записей.

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

После того, как закончите с DNS и PTR можно приступать к настройке самого сервера.

Установка iRedMail

Я буду настраивать почтовый сервер на CentOS 7. Если у вас еще не готов сервер, то рекомендую мои материалы — установка и базовая настройка CentOS. Каких-то особых требований к установке нет. Для системы достаточно раздела 20-30 гигабайт. Для почтовой базы рекомендую отдельный раздел с достаточным свободным местом. Начать можно хотя бы с 200 гигабайт. Но это не обязательно, для теста можете все сделать на одном разделе. Потом, если появится необходимость, просто перенесете всю базу в другое место с помощью символьной ссылки. Когда все будет готово, приступайте к установке iRedMail.

Если не будете смотреть мою статью по базовой настройке, то не забудьте отключить SELinux, без этого iRedMail нормально работать не будет. Это обязательное требование, указанное на сайте разработчика. Так же не рекомендую отключать firewalld, если не хотите настраивать iptables вручную, iredmail автоматически настраивает iptables.
Второй важный момент. Перед началом установки почтового сервера, убедитесь, что указали корректный hostname для своего сервера, равный DNS записи, которую сделали ранее. Если забыли это сделать во время установки, то смотрите в моей статье про сетевые настройки centos как изменить hostname.

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

Скачать iredmail

Скачиваем скрипт установки iRedMail и распаковывем.

# cd /root && wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.5-1.tar.bz2
# tar xjf iRedMail-*

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

# cd iRedMail-* && bash iRedMail.sh

Первым вопросом будет каталог для хранения почтовой базы. Можете оставить по-умолчанию /var/vmail, либо выбрать свой. Потом нужно выбрать веб сервер — nginx или apache. Я рекомендую выбрать apache, так проще будет установить и настроить phpmyadmin и postfixadmin. Но если вам непременно нужен nginx, то можно выбрать и его, никаких проблем с ним не будет, если умеете настраивать. В качестве базы данных я выбираю mariadb.

Затем нужно будет указать имя почтового домена. Обращаю внимание, что это не имя сервера, а именно домена для почты. В моем случае это m.zeroxzed.ru. Если у вас домен второго уровня, то это будет site.ru. Дальше нужно указать пароль от административной учетной записи — postmaster@m.zeroxzed.ru. На последнем этапе выбираем необходимые компоненты. Я рекомендую выбрать все, потом ненужное можно отключить.

Еще раз проверяете настройки и если все в порядке, то начинается установка.

Установка iRedmail

В конце установки будет задан вопрос, хотим ли мы применить предлагаемые правила Firewalld. Соглашаемся.

Применение правил firewalld

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

Информация об установке

Перезагружаем сервер, чтобы все службы корректно запустились. Идем в свой почтовый ящик пользователя postmaster в roundcube webmail или SOGo groupware и читаем созданные автоматически письма. Заодно посмотрите, какой вам интерфейс больше нравится и чем будете пользоваться. Мне лично roundcube нравится больше.

web интерфейс почтового сервера

В первом письме вся техническая информация по установленным компонентам, в том числе необходимые пароли. Это письмо обязательно сохраните и никому не показывайте. Копия этой информации есть в файле /root/iRedMail-0.9.5-1/iRedMail.tips. Эта информация нам понадобится в дальнейшем.

На текущий момент почтовый сервер полностью готов и работоспособен. Вы можете зайти в панель администрирования по адресу https://имя_сервера/iredadmin/ и создать нового пользователя. Добавим пользователя user1.

Создание пользователя postfix

Если поле Mailbox Quota оставить пустым, то размер ящика будет неограниченным. Теперь можно зайти этим пользователем в webmail и отправить кому-нибудь письмо. Я для примера отправлю письмо на ящик zeroxzed@gmail.com. Вот как будет выглядеть лог /var/log/maillog во время корректной доставки письма.

postfix лог отправки

Я сразу ввожу вас в курс дела, чтобы вы понимали, как работает почта, куда смотреть если что-то не так. Во время администрирования почтового сервера частенько придется заглядывать в логи для разбора различных ситуаций. По логу postfix видно, что сервер gmail корректно принял сообщение без каких-либо предупреждений. Письмо дошло до адресата. Теперь ответим с ящика zeroxzed@gmail.com и посмотрим на лог.

postfix лог получения

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

Обзор возможностей почтового сервера

Посмотрим, что в данный момент умеет наш почтовый сервер на centos со сборкой iredmail, чтобы мы понимали, на что можно рассчитывать и чего ждать от сервера.

Graylist

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

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

  1. Не все серверы корректно отрабатывают просьбу на повторную доставку письма. Кто-то может через 5 минут повторно отправить письмо, а кто-то через час. При этом пользователь сидит и ждет свое письмо. Это очень неудобно, особенно если менеджер разговаривает по телефону и пытается обменяться тестовыми письмами с новым клиентом. Да, задержка будет только в первый раз, но все равно это неудобно. Даже 5 минут иногда раздражает ждать.
  2. Сейчас распространены облачные технологии и многие пользователи используют облачные почтовые системы. У таких систем много почтовых серверов, и отправка производится каждый раз с разного. Домен может быть один и тот же, но полное имя сервера будет другое. Технология graylist запоминает точное имя сервера и ждет, что повторное письмо придет с этого же сервера. Но может получиться так, что первое письмо придет с сервера srv1.pochtamail.ru, а повторное с srv2.pochtamail.ru. В итоге повторное письмо тоже попадет в серый список и наш сервер будет ждать повторное письмо уже от второго сервера. А следующее письмо может прийти с третьего сервера и так далее. В общем, письмо можно ждать сутки и более, пока не придет пара писем с одного и того же сервера. Всех таких клиентов можно добавлять в белый список по имени домена и для них серый список вообще не будет работать, но это ручной труд и заранее не узнаешь с кем будут проблемы. Добавлять начинаешь уже тогда, когда пользователи жалуются на то, что письмо не доходит.

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

Переадресация почты

Наш почтовый сервер способен переадресовывать почтовые сообщения. Например, у вас есть пользователи user1 и user2. Можно сделать так, что при отправке письма пользователю user1, копия этого письма будет отправлена user2. То есть письмо получат оба пользователя. Пользователь user1 может не знать, что его почта копируется куда-то еще.

Мы можем создать алиасы и направлять с них почту в несколько почтовых ящиков. Например, можно сделать алиас sale@site.ru. При отправке письма на этот адрес, письмо отправляется пользователям user1 и user2.

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

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

Антивирус clamav

В сборку iredmail включен бесплатный антивирус clamav. Лично я не вижу в нем никакого смысла. По почте вирусы давно уже не рассылают, а если рассылают, то ссылки на них. Лишнюю нагрузку на систему в виде антивируса считаю ненужной. Если у вас другое мнение, поделитесь и аргументируйте. Расскажу позже, как отключить антивирус.

Антиспам SpamAssassin

Модуль SpamAssassin — самое популярное бесплатное средство для борьбы со спамом. По идее, он не плохо работает, но требует некоторого внимания к себе, так как работает по оценочному признаку и иногда может делать ложные срабатывания. Нужна некоторая калибровка на месте для эффективной работы. Мне всегда было лень этим заниматься. Не рекламы ради, а для информации скажу, что самым эффективными и недорогим средством для борьбы со спамом я считаю Касперский антиспам. Чаще всего я использую его. Он реально хорошо режет спам и не дает ложных срабатываний. Удобное решение из серии поставил и забыл, только раз в год ключи продлевай. Предлагаю на местах посмотреть на SpamAssasin и решить, нужен он вам или нет. Отключить при случае не проблема.

Общая адресная книга

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

Общая адресная книга

В roundcube такого функционала я не нашел. Так что этот вопрос открытый. Функция удобная и нужная, возможно позже я отдельно рассмотрю этот момент. Я всегда использую в качестве адресной книги ldap каталог Active Directory, если в организации настроен домен. Это удобно. Все пользователи там заведены, достаточно просто указать им email и подключать адресную книгу в почтовых клиентах.

Whitelist и Blacklist

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

Throttle — лимиты

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

Лимиты postfix

По настройкам понятно, что можно накладывать ограничения на количество отправленных писем, на их максимальный объем в минуту, час, день. Мне не очень понятно, зачем это может пригодиться. На ум приходит защита от спама, если у кого-то увели пароль от почты и пытаются массово рассылать почту с ящика. Я с этим сталкивался. Тогда ограничение, к примеру, в 30 писем в час, поможет избежать массовой рассылки почты с почтового ящика.

Включение и отключение модулей почты

Разберемся с тем, как нам включать или отключать ненужные модули. В комплекте iRedMail есть написанный на питоне модуль iRedAPD. У него есть конфигурационный файл, который управляет основными возможностями почтового сервера. Идем в консоль сервера. В папке /opt/iredapd файл settings.py с основными настройками. Я рекомендую отключить все те модули, которыми вы не будете пользоваться. Это упростит конфигурацию системы, уменьшит нагрузку, сделает проще разбор логов. В конфигурационном файле есть параметр plugins.

plugins = ["reject_null_sender", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

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

# service iredapd restart

Я не разбирался с работой лимитов на отправку и получение почты. Точнее я не смотрел, как ими управлять без платной панели. В связи с этим, данный модуль можно тоже отключить. Он называется throttle. Остальное можно оставить.

Теперь разберемся, как отключить SpamAssassin и ClamaV, если вы не будете ими пользоваться. Они оба завязаны на модуль Amavisd, отключаются в его настройках. Открываем его конфиг

# mcedit /etc/amavisd/amavisd.conf

Находим там строки:

# @bypass_virus_checks_maps = (1); # controls running of anti-virus code
# @bypass_spam_checks_maps = (1); # controls running of anti-spam code

И убираем комментирование с них (удаляем # в начале строки). После этого перезапускаем amavisd.

# systemctl restart amavisd

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

Теперь можно поотправлять тестовые письма и убедиться, что отключенные модули не работают. Я не буду приводить логи, чтобы не загромождать статью, она и так очень большая получается. Отмечу только, что после отключения антиспама в логах не будут видны баллы, которые система назначает каждому письму. А после отключения антивируса больше не будет соответствующих служебных заголовков в письмах. После отключения greylist письма от любого сервера будут сразу же доставляться получателям.

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

Установка postfixadmin

Я предлагаю установить панель управления почтового сервера postfix — postfixadmin. Ее принципиальная особенность от того, что предлагает бесплатная версия iRedMail — возможность создавать алиасы и настраивать переадресацию. У нас уже есть настроенный веб сервер apache с php, но его текущая конфигурация не позволяет нормально использовать postfixadmin, нужно разрешить несколько заблокированных опций. Для этого открываем файл настроек php — /etc/php.ini, находим там параметр disable_functions и убираем из него несколько значений: proc_open, proc_close, php_uname, escapeshellarg. Их быть в указанной строке не должно. После этого перезапускаем apache.

# apachectl restart

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

# yum install phpmyadmin

Открываем файл /etc/httpd/conf.d/phpMyAdmin.conf и разрешаем подключаться с вашего ip адреса, редактируя одну строку.

# mcedit /etc/httpd/conf.d/phpMyAdmin.conf
Require ip ваш_ip_адрес

Перезапускаем apache для применения настроек. Зайти в phpmyadmin можно по адресу http://имя_вашего_сервера/phpmyadmin Пароль пользователя root от mysql есть в первом письме в ящике postmaster.

Теперь у нас все готово для установки postfixadmin. Скачиваем его и распаковывем.

# cd /root && wget https://sourceforge.net/projects/postfixadmin/files/postfixadmin/postfixadmin-3.0/postfixadmin-3.0.tar.gz
# tar -xvzf postfixadmin-*

Переносим папку postfixadmin в директорию веб сервера и делаем владельцем пользователя apache.

# mv /root/postfixadmin-3.0 /var/www/postfixadmin
# chown -R apache. /var/www/postfixadmin

Создаем конфигурационный файл httpd для postfixadmin.

# mcedit /etc/httpd/conf.d/postfixadmin.conf
Alias /postfixadmin /var/www/postfixadmin
<Directory /usr/share/phpMyAdmin/>
 AddDefaultCharset UTF-8
  <IfModule mod_authz_core.c>
   <RequireAny>
    Require ip ваш_ip_с_которого_заходите_на_сервер
   </RequireAny>
  </IfModule>
</Directory>

Перезапускаем httpd.

# apachectl restart

Теперь надо отредактировать конфигурационный файл postfixadmin — /var/www/postfixadmin/config.inc.php.

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

Изменяем значения указанных строк, остальное на свое усмотрение. Там неплохо описаны все параметры.

$CONF['configured'] = true;
$CONF['default_language'] = 'ru';
$CONF['database_type'] = 'mysqli';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = 'root';
$CONF['database_password'] = 'hRm3StSuY0WSpk0kkl9OX1Xjv8';
$CONF['database_name'] = 'vmail';
$CONF['encrypt'] = 'dovecot:SSHA';
$CONF['dovecotpw'] = "/usr/bin/doveadm pw";

Пароль пользователя mysql root ищите в первом письме в ящике postmaster. Теперь заходим по адресу http://имя_вашего_сервера/postfixadmin/setup.php и запускаем установку. Если все в порядке, то у вас начнется обновление базы данных, которое завершится ошибкой:

DEBUG INFORMATION:
Invalid query: Duplicate key name 'domain'

Check your error_log for the failed query.

Ошибка установки postfixadmin

Инсталлятор хочет установить индексы в таблице, но они там уже есть. Нам надо их удалить, чтобы корректно завершить установку. Для этого идем в phpmyadmin, открываем базу vmail и выполняем в ней запрос.

DROP INDEX domain on mailbox;
DROP INDEX domain on alias;

Исправление ошибки

После этого обновляем страницу http://имя_вашего_сервера/postfixadmin/setup.php, установка должна завершиться без ошибок. В конце вас попросят ввести пароль для завершения настройки postfixadmin. Его нужно запомнить, он пригодится дальше при создании учетной записи администратора.

Пароль установки postfixadmin

У вас сгенерируется строка:

$CONF['setup_password'] = 'cf1b85fba4ee3ffcc9efd8d098e335:ef221c19697ef4208b52d61ab75b0586560b9b';

хэш пароля установки

Ее нужно изменить в /var/www/postfixadmin/config.inc.php, записав новое значение. Теперь используя ранее придуманный пароль вам нужно добавить учетную запись администратора postfixadmin. Я рекомендую использовать для этого уже существующую учетную запись postmaster. Хотя это не обязательно. Вы можете в web панели iredmail сделать нового пользователя и воспользоваться этой учетной записью. Заходим в postfixadmin по адресу http://имя_вашего_сервера/postfixadmin

Логин в postfixadmin

Все, установка и настройка postfixadmin завершена. Теперь покажу, что мы в итоге получили. Во-первых, тут вы можете создавать новых пользователей и управлять существующими. Создадим новый алиас test@m.zeroxzed.ru и направим всю почту, отправленную на этот адрес в почтовый ящик user1@m.zeroxzed.ru. Для этого идем в раздел Обзор -> Создать алиас и создаем его.

Создание алиаса в postfix

Почтовый ящик user1 должен существовать. Теперь отправим письмо на адрес test@m.zeroxzed.ru и посмотрим лог.

Лог postfix отправки письма на алиас

Письмо было доставлено в почтовый ящик user1. Здесь я заметил одну неприятную особенность. В логе нигде не отражено, что изначально письмо было отправлено на адрес test@m.zeroxzed.ru, указан только конечный получатель. Это неудобно, когда нужно будет разбирать какую-нибудь ситуацию по логам. Я сейчас не смог вспомнить, от чего зависит такое поведение, но когда я руками все настраиваю, потом в логах вижу сообщение о том, что изначально письмо было отправлено на test, а потом уже доставлено в user1. С этим надо будет разобраться отдельно. Буду рад подсказке по этому поводу, чтобы самому не искать.

Теперь сделаем так, чтобы копия всех писем, отправленных user1 падала в ящик к user2. Для этого открываем список всех пользователей домена, выбираем нужного пользователя и жмем Алиас.

Настройка пересылки почты в postfix

В поле Кому вводим ящик user2@m.zeroxzed.ru. Отправляем снова письмо на user1 и смотрим лог.

Лог перенаправления письма

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

Через postfixadmin вы можете добавлять новых администраторов для управления доменом, новые виртуальные домены, создавать пользователей и алиасы. В принципе, web интерфейс бесплатной версии iredmail вам больше не нужен. Его функционал беднее. Postfixadmin полностью его заменяет. Остальные возможности postfixadmin посмотрите сами, расписывать не хочется. Статья и так получается очень большой, а разбивать на части не хочется, чтобы не нарушать целостную картину.

Тонкая настройка почтового сервера

В завершении хочу затронуть несколько полезных моментов в настройке почтового сервера на базе postfix, которые не были рассказаны в других разделах.

Максимальный размер письма

Важным параметром является максимально разрешенный размер письма. В бесплатной версии для его изменения нужно отредактировать конфигурацию postfix. Сделать это не трудно. За размер письма отвечает параметр в файле /etc/postfix/main.cfmessage_size_limit = 15728640. Размер указан в байтах. Значение по-умолчанию 15 мегабайт. Мне кажется удобнее будет установить его в 20 мегабайт. Слишком большое значение не ставьте, пользователи забьют свои почтовые ящики огромными вложениями и это осложнит администрирование сервера. После изменения параметра необходимо перечитать конфигурацию postfix.

# postfix reload
postfix/postfix-script: refreshing the Postfix mail system

Запрет на отправку писем конкретного пользователя

Иногда бывают ситуации, когда нужно запретить отправку писем какому-нибудь пользователю. В iRedMail это можно сделать с помощью встроенного средства белых и черных списков. Для его работы должен быть включен модуль amavisd_wblist. Переходим в папку /opt/iredapd/tools/ и используем скрипт wblist_admin.py для добавления запрета отправки писем.

# cd /opt/iredapd/tools/
# python wblist_admin.py --add --blacklist user1@m.zeroxzed.ru

Этой командой мы запретили пользователю user1@m.zeroxzed.ru отправлять письма. При отправке письма он получит сообщение об ошибке, а в логе появится следующая запись.

blacklist в postfix

При этом входящая почта будет нормально работать. Посмотреть весь черный список можно командой:

# python wblist_admin.py --list --blacklist

Удаляем из черного списка командой:

# python wblist_admin.py --delete --blacklist user1@m.zeroxzed.ru
К сожалению, во время тестирования заметил, что черный список на отправку работает только при работе из веб интерфейса. При подключении извне с помощью почтового клиента письма продолжают отправляться. Я потратил некоторое время на тесты и попытку разобраться, но так и не смог понять в чем дело. Для тех, кто разбирается в теме и будет пытаться решить этот вопрос подскажу, что разница между веб интерфейсом и почтовым клиентом в том, что первый способ подключения относится к mynetworks = 127.0.0.1, а удаленное подключение это sasl_authenticated. Во всех restrictions в postfix оба эти способа идут по порядку и должны по идее обрабатываться одинаково, один за другим, но не все так просто, раз существует проблема. White/Blacklist хранятся в mysql в базе amavisd. У меня, к сожалению, нет времени подробно разобраться с этой особенностью.

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

Каталог с почтовыми ящиками

По-умолчанию, вся почта хранится в каталоге /var/vmail/vmail1/m.zeroxzed.ru, а дальше немного странная структура. Например, ящик пользователя user1 будет находиться по адресу /var/vmail/vmail1/m.zeroxzed.ru/u/s/e/user1-2016.11.06.14.08.39, пользователя postmaster — /var/vmail/vmail1/m.zeroxzed.ru/p/o/s/postmaster-2016.11.06.13.22.15. Со слов разработчиков, такая структура позволяет повысить быстродействие системы. Наверно это актуально, когда у вас тысячи ящиков. Мне кажется гораздо удобнее структура, когда все ящики лежат в одной папке с именем домена. Даты создания ящиков лично мне тоже не нужны.

Уточню, что описанная выше проблема актуальна только для ящиков, созданных web панелью iRedMail. Postfixadmin по-умолчанию создает ящики так, как мне нужно — все в папке с именем домена. Так что если вы будете пользоваться только postfixadmin, можно ничего не делать. Но я для порядка изменю настройки iredmail на всякий случай, чтобы не было путаницы.

Чтобы привести структуру новых создаваемых ящиков к привычному виду, отредактируем файл /var/www/iredadmin/libs/default_settings.py. Изменим там два параметра.

# mcedit /var/www/iredadmin/libs/default_settings.py
MAILDIR_HASHED = False
MAILDIR_APPEND_TIMESTAMP = False

Теперь новые почтовые ящики будут располагаться по адресу /var/vmail/vmail1/site.ru, не зависимо от того, где были созданы. Для того, чтобы изменить пути уже созданных ящиков, необходимо отредактировать путь в mysql базе vmail, в таблице mailbox, в столбце maildir.

Адреса локальных папок почтовых ящиков postfix

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

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

Воспользуемся штатной возможностью почтового сервера postfix — bcc. С помощью этой настройки мы сможем направить всю входящую и исходящую почту в отдельные почтовые ящики. Создадим их перед этим. В моем случае ящики будут называться:

  • all-in@m.zeroxzed.ru для входящей почты
  • all-out@m.zeroxzed.ru для исходящей почты

Идем в phpmyadmin, открываем базу vmail и выполняем в ней запрос:

INSERT INTO sender_bcc_domain (domain, bcc_address, active, created) VALUES ('m.zeroxzed.ru', 'all-out@m.zeroxzed.ru', 1, NOW());
INSERT INTO recipient_bcc_domain (domain, bcc_address, active, created) VALUES ('m.zeroxzed.ru', 'all-in@m.zeroxzed.ru', 1, NOW());

Настройка сбора почты в postfix

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

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

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

Настройка автоответчика

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

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

Настройка автоответа в postfix

На вкладке дополнительные настройки можно указать адрес для отправки копий.

Дополнительные настройки пересылки почты

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

На этом, пожалуй, заканчиваю настройку почтового сервера на centos на базе iredmail и postfix.

Анализ лог файлов postfix с помощью webmin

Для поиска информации в лог файле poistfix удобно использовать плагин webmin для просмотра системных логов. Как установить webmin на centos 7 я писал в отдельной статье. После установки в разделе System -> System logs можно посмотреть системные логи, в том числе maillog. Удобство этого модуля заключается в том, что зная, к примеру, id писmма, можно вывести все строки с этим id. Это очень удобно для анализа различных ситуаций.

Анализ лог файла postfix

Лог файл почтового сервера очень насыщен и там на каждую секунду куча событий. Без удобного фильтра сообщений трудно разбираться в ситуации. Приходится либо в консоли грепать лог файл, либо куда-то его копировать и анализировать в более удобных текстовых редакторах. Я лично привык использовать webmin для этих целей. Мне кажется это удобным. Особенно удобно, когда нужно несколько файлов просматривать одновременно. Я их просто открываю в разных вкладках браузера и анализирую. Главное отключить в настройках модуля поиск по сжатым файлам. Это очень сильно замедляет процесс, но иногда серьезно выручает, когда нужно поискать по всем лог файлам за последнюю неделю. Поиск по сжатым файлам я включаю по необходимости, постоянно его не использую.

Заключение

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

Есть еще много более ли менее полезных функций и возможностей, которые можно добавить и использовать. Например, борьба со спамом штатными возможностями postfix с помощью разных restrictions. Отдельно надо рассматривать вопрос общих почтовых папок, это может быть интересно и полезно. Вопрос сертификатов и dkim я не затронул вообще. По мере возможностей, постараюсь раскрывать эти темы и делиться опытом. Но все не успеваю. Ко мне опыт приходит быстрее, чем я успеваю им делиться 🙂 Очередь из статей и планов уже очень большая выстроилась.

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

Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по CentOS

Рекомендую полезные материалы по CentOS:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка времени
  • Настройка сети
  • Настройка репозиториев
  • Настройка iptables
Установка CentOS 7 в конфигурации minimal или netinstall с загрузочной флешки или по сети на диск или raid раздел.
Базовая настройка CentOS 7 для работы с любым функционалом. Приведены практические советы по улучшению безопасности и удобства администрирования.
Как установить точное время на сервере CentOS, настроить часовой пояс, синхронизировать время с помощью ntpdate и ntpd и другое.
Подробное описание настройки сети в CentOS 7 - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Установка репозиториев epel, rpmforge и др. Добавление, удаление, обновление rpm репозиториев в CentOS.
Рассмотрены основные моменты настройки iptables в Centos 7 - установка, добавление правил, проброс портов, nat, логирование и д.р.
Настройка программных комплексов
 
  • Прокси сервер
  • Шлюз
  • Asterisk
  • Asterisk+Freepbx
  • Сервер VPN
  • Web сервер Apache
  • Web сервер Nginx
  • Почтовый сервер
Подробное описание настройки прокси сервера на базе CentOS 7 со связкой squid+AD+sams2, реализован запрет доступа по url и группам пользователей.
Простая и быстрая настройка шлюза на базе CentOS 7 для организации доступа в интернет из локальной сети.
Описание установки и настройки asterisk - популярной современной sip атс. Описан расширенный функционал, покрывающий большинство потребностей стандартного офиса в современной телефонии.
Подробное описание установки voip сервера asterisk и панели управления freepbx на CentOS 7.
Установка и настройка OpenVPN сервера на CentOS для объединения офисов и подключения удаленных пользователей
Настройка web сервера CentOS 7 на базе связки http сервера apache, php и сервера db mysql, или коротко - установка lamp.
Установка и настройка высокопроизводительного web сервера на базе nginx и php fpm. В качестве кэша используется APC.

Описание установки и настройки почтового сервера iRedMail на основе готовой сборки на CentOS 7. Обзор основных возможностей и рекомендации по настройке.

Самостоятельная настройки почтового сервера postfix + dovecot а так же дополнительных полезных модулей для полноценной и удобной работы почты.

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

Настройка отдельных программ
 
  • Zabbix
  • Phpmyadmin
  • Webmin
  • Ruby
  • Обновление php
  • Vsftpd
  • Bind
  • Unison
  • Observium
  • Syslog-NG
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание установки и настройки панели управления phpmyadmin на веб сервер apache и nginx под управлением Centos 7.
Подробное описание установки и настройки Webmin на CentOS 7 для удаленного подключения и управления сервером.
Подробное описание установки языка Ruby последней версии на веб сервер под управлением CentOS 7.
Подробное описание установки или обновления php 7 на CentOS 7. Рассмотрен вариант отката обновления и возврата на php 5.6 или 5.4.
Подробное описание с видео установки и настройки ftp сервера vsftpd, примеры с локальными и виртуальные пользователями в mysql.
Настройка DNS сервера BIND (Named) в CentOS 7. Рассмотрены наиболее популярные конфигурации, в том числе подробное логирование.
Установка Unison в CentOS 7 для двухсторонней синхронизации файлов.
Инструкция по установке и настройке сервера мониторинга Observium на CentOS 7. В качестве примера в конце добавлено одно устройство для мониторинга.
Настройка сервера для централизованного сбора логов с удаленных устройств и серверов с помощью программы syslog-ng.
Разное
  • Настройка ssl в Apache
  • Бэкап с помощью rsync
Настройка работы веб сервера apache с виртуальными хостами по протоколу https с использованием бесплатного ssl сертификата.
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

186 комментариев

  1. Аноним

    Автор вы как всегда на уровне!

  2. Владимир

    Спасибо за отличный материал. Если устанавливать сервер по приведённой инструкции, то какую аппаратную конфигурацию посоветуете? Речь идёт о 1-2 тысяче почтовых ящиков.

    • Я не знаю, не админил такое количество ящиков. 100-150 ящиков тянет без нарпяга обычная виртуалка с 2-мя ядрами и 4 Гб оперативы, диск обычный софтовый raid1 на 2 диска. С таким количеством ящиков в первую очередь стоит подумать в каком формате хранить почту, возможно есть что-то лучше maildir. Основная нагрузка будет на диски, на это внимание в первую очередь.

    • И еще, я бы лучше сделал чистую установку postfix + dovecot в вашем случае. У меня уже есть черновик и настроенный тестовый сервер, скоро подготовлю статью. Мне кажется готовые сборки хороши в малом и среднем сегменте. 2000 ящиков это уже больше, чем средний сегмент. Там лучше все держать под контролем и понимать, где, что и как управляется. С iredmail могут быть неприятные сюрпризы под хорошей нагрузкой.

  3. Отличная статья, комплексно и почти без лирики, и почти без помарок (про домены «первого уровня», хотя явно описаны и приведены второго).
    Вопрос к автору, как к спецу. Никогда не настраивал свой сервер почтовый, но на новом месте работы понадобилось решить задачу, не самую описанную в сети. Ситуация: 1 общий эл.ящик на майл.ру, канал интернет 2048кб, в сети 17 машин(3 бухгалтерия, 10-12 с веб клиентам госприложений, у всех почта через веб или десктоп клиенты)….и весь этот колхоз(от XP до 8.1) в периоды нагрузки благополучно залипает, почта может по 10-30 минут не подгружаться в BAT и аналогичные клиенты, что само собой вызывает бурю эмоций со всеми вытекающими.
    Подумал, неплохо бы завести сервер, куды бы почта майл ру сливалась, и с него все обитатели сети уже черпали письма, а не каждый бы лез через внешний канал. Подскажите, имеет ли смысл организовывать такое решение, если да, то можно подробнее механизм и варианты ПО, желательно под линукс(шара на сети на нем же в проекте)??
    …буду очень признателен за помощь

    • Я не совсем понял, как в данном случае пользователи работают с ящиком. Как они определяют, кому что пришло, если ящик один? Они по imap его грузят в клиенты? Вообще, можно поднять postfix, в него собирать почту через fetchmail, класть ее в один локальный ящик и этот ящик подключить по imap пользователям в почтовые клиенты, либо настроить roundcube для web доступа в него же. Отправлять почту тоже через локальный postfix, а дальше через ящик яндекса. Все это настраивается, я видел примеры. В принципе, это может помочь, но схема какая-то странная. Так работать неправильно.

  4. Здравствуйте.
    С недавних пор часто пользуюсь Вашими мануалами по настройке и изучению FreeBSD.
    Очень бы хотелось увидеть от Вас похожую статью по настройке почтового сервера на Фре 10.3.

    • А смысл в 10.3? Уже вышла 11-я версия. Если что-то и будет, то только на последних версиях. Я сейчас стараюсь охватить все актуальные темы по администрированию linux в рамках системы centos. Когда закончу по centos, продублирую этот функционал на freebsd и debian. Но все это очень длинный и кропотливый труд, реально у меня не хватает времени писать статьи на все темы, что хочется. А с учетом постоянного выхода новых версий систем и устаревания информации, я вообще не представляю, как в одиночку вести полноценный сайт по администрированию. Ты все время бежишь за новыми версиями, а старый материал устаревает.

  5. Дмитрий

    День добрый, начал делать по вашей статье установку и столкнулся со следующей проблемой, после установки голого iredmail (до postfixa)вроде все работает, roundcube и cogo интерфейсы внутри сети работают без проблем, но с улицы адекватно работает только cogo, при заходе на roundcube при авторизации, ящик открывается секунды на три и появляется ошибка «сессия устарела». В чем может быть косяк? Почему два интерфейса ведут себя по разному, причем пробовал и на апаче и gnix, везде одно и тоже. Время на сервере выставлено правильно.

    • Не знаю, трудно сказать. Эта штука неплохо устанавливается из коробки. У меня не было ошибок. Попробуй просто переустановить. Похоже на проблемы с веб сервером.

      • Дмитрий

        Да три раза уже пробовал, думал проблема в апаче но нет Gnix так же себя ведет. Тоже думаю что дело в веб сервере, что то с https.

  6. Будет ли iRedmail работать с несколькими доменами ? Есть необходимость работать с несколькими разными доменами, которые должны получать и отправлять почту с отдельного сервера, то есть ip самого домена и ip почты для домена будут различаться.

    • Да, будет работать с несколькими доменами. Это штатная возможность. Один почтовый сервер может обслуживать множество разных доменов.

      • Следить еще надо, как я понимаю, чтобы у доменов MX запись, SPF и mail были правильно заполнены и ссылались на адрес почтового сервера ?

  7. Можно ли закрыть транзит почты и как? Спасибо.

  8. Виталий

    Доброго времени суток! Благодарю, за качественную инструкцию. Столкнулся с CentOS впервые, но, используя Вашу инструкцию,у меня получилось развернуть тестовый почтовый сервер. Учитывая, что у меня нет практики работы с Linux. Единственное, что пока не получилось, так это прикрутить PostFixAdmin. Создал логин и пароль для superadmin, но при попытке войти PostFixAdmin выдает неправильный пароль или логин. Подскажите, где мог я косячнуть? Где посмотреть, чтобы исправить ошибку? Я даже все снес и переустановил еще раз. Но пока пытаюсь управлять штатными средствами.
    Спасибо за ответ!

    • Не знаю, где ошибка. Так трудно сказать. Администратора для postfixadmin ты создаешь во время установки postfixadmin. Надо там внимательно все проверять.

  9. Добрый день, давно слежу за Вами и меня ваши уроки ( блоги ) только радуют.

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

    • Да там писать особо нечего. Главное получить сертификат и добавить пару строк в конфигурацию сервера. Я уже писал об этом раньше: https://serveradmin.ru/besplatnyiy-ssl-sertifikat-dlya-postfix/
      С тех пор мало что изменилось, кроме самого центра сертификации. Теперь у них не надо получать сертификаты, их забанили многие браузеры и системы.

  10. Добрый вечер!
    Как я понимаю здесь у Вас описана установка на чистый VPS?
    Возможна ли корректная установка iRedMail на сервер, где уже крутится рабочий сайт или нет?

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

  11. Вот из того, что я нагуглил на скорую руку http://serverfault.com/questions/438176/install-iredmail-on-server-with-existing-mysql

    Можете при желании изучить и со временем добавить в статью.

  12. Тодось

    Сделал всё по вашей методичке. Спасибо ваше описание. Могу отправлять почту, ура! К сожалению, письма не доходят до моего почтового сервера. Вот такой квиточек возвращается:

    The response from the remote server was:
    550 5.7.1 Relaying to denied (authentication required)
    Final-Recipient: rfc822; postmaster@m.zeroxzed.ru
    Action: failed
    Status: 5.7.1
    Remote-MTA: dns; svr.m.zeroxzed.ru.zeroxzed.ru. (188.45.19.125, the
    server for the domain m.zeroxzed.ru.)
    Diagnostic-Code: smtp; 550 5.7.1 Relaying to denied (authentication required)

    [данные подменены, чтобы полностью соответствовать Вашей статье]

    Я никак не могу понять, о какой аутентификации идёт речь, если я отправляю почту из веб-интерфейса Гугла или Яндекса? Подскажите пожалуйста. И ещё не ясно, почему в строке с IP-адресом указывается такое длинное имя домена?
    Заранее очень благодарю.

    • Ключевая фраза:
      Relaying to denied (authentication required)

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

  13. Благодарю за статью.
    Сам кручу Postfix+Dovecot+PostfixAdmin+Roundcube, настроенный руками через конф.файлы.
    То,что реализовал дополнительно
    1) Почтовые Квоты пользователей, например, ограничение размером 4Gb (+ оповещение пользователей при превышении квоты на 85,90,100% и установки на MUA(Thunderbird) плагина Display Quota)
    2) Фильтрация спама на стадии ДО принятия письма MTA средствами SMTP-ограничений (намного меньше грузит сервер,чем использование тяжеловесного SpamAssassin,который получает в обработку письмо от MTA уже тогда, когда MTA принял это письмо в рассмотрение)
    3) Тонкая настройка SMTP-ограничений через т.н. карты сетей(классы ограничений, карты/списки сетей) для внутренних и внешних подключений

    • Да, мне тоже такая настройка больше нравится. У меня уже готов черновик статьи и тестовая виртуалка настроена. Не хватает времени все оформить в нормальную статью. Сам SpamAssassin не использую, не люблю его.

  14. К сожалению, при установке iRedMail вытягивает и устанавливает РНР версии 5. Есть ли опыт перехода с версии 5 на версию 7 уже после установки и настройки iRedMail? Актуально для Centos 6.5 / 7.0. Спасибо.

    • А зачем вам php 7 на почтовом сервере? Какой смысл в таких переходах? Сделайте отдельную виртуалку под почту и пусть там будет любая версия php, работать будет одинаково хорошо.

  15. Аноним

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

    • Тут трудно дать универсальный совет. Во-первых, это не всем надо, поэтому и не пишут статей. Во-вторых, понятие грамотно у всех тоже свое. Для решения таких задач достаточно пары программ — find и rsync. Тут и бэкап, и очистка. Может напишу, если будет время, свои примеры. У меня много скриптов разных, но они все по месту пишутся и каждый раз отличаются друг от друга в зависимости от задач.

  16. День добрый, спасибо за статью все получилось как написано, сейчас тестирую сие чудо, но заметил вот что — /etc/postfix/main.cf — message_size_limit = 15728640, но когда пытаюсь отправить файл 12метровый, то получаю сообщение в роундкубе — Загруженный файл больше максимального размера в 10 МБ. И когда попробовал параметр поменять до 20 метров, сообщение остается прежнее. Такое чувство, что кроме постфикса еще кто то ставит ограничение на отправку файла, может подскажите?

    • Это ограничение срабатывает не на размер письма, а на размер файла, который можно через php загрузить по веб интерфейсу. Нужно в php.ini изменить этот параметр. Называется upload_max_filesize.

      • Спасибо, но еще в самом nginx пришлось добавить client_max_body_size, вдруг кому понадобится.

  17. Доброго времени суток!
    Очень полезная статья! Смогли поднять у себя почтовый сервер без особых проблем. Сейчас изучаем. Возник еще один вопрос. В функционале Postfixadmin имеется сборщик почты, но как мы поняли он забирает почту у провайдера. А имеется ли надстройка или плагин, который бы мог при соответствующей настройке профиля пользователя собирать почту с интернет серверов. На почтовиках в интернете это как бы есть. Пользователи просят избавить их от необходимости проверять старую почту, которая была до развертывания нашего почтового сервера.
    Спасибо за ответ!

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

  18. Александр

    Спасибо все работает. Как к AD подключиться по LDAP. гугл не помогает…сорри

    • На этот вопрос нет простого ответа. Применительно к почтовому серверу, что хочется брать из AD? Мне не понятно, какого рода интеграция нужна. Автоматическое создание ящика, после добавления пользователя в домен?

  19. Александр

    В дополнении к предыдущему посту на эту тему …есть близко похожий мануал https://howitmake.ru/blog/ubuntu/81.html , но тут у вас реализация сборки iRedMail (Сentos 7через через SOGo …а там напрямую…в iRedMail…ну и ОС другая…

    Спасибо если есть решение и ответ на вопрос как сделать
    «Интеграция почтового сервера (сборка iRedMail (Сentos 7) с Active Directory (Windows Server 2003/2008/2008R2 ) ( в одном пространстве имен!)

    • Александр

      Что хотелось бы?
      — Автоматическое создание ящика
      — Общая адресная книга пользователей домена

      Пользователь при отправке писем просто выбирает из списка адрес на отправку…
      А вот через какого из предложенного сборкой почтового клиента это можно делать и это можно реализовать…вопрос?
      Или придется использовать снова например OutlooК или еще что-то…хотелось бы не платить…за софт.

      • Общая адресная книга и так может использоваться при настроенном домене. Если у вас в домене указаны у пользователей email, то можно подключать эту адресную книгу в любом клиенте, который поддерживает внешние книги по ldap. Это умеет и Outlook и Thunderbird.

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

        • Александр

          Спасибо. Ваш пример ящика на сборке очень интересен и многофункционален. Менять эту сборку на что-то другое нет смысла.
          Вопрос:
          Как не пытаюсь после установке Postfixadmin не создает пользователя. пока не включишь в его конфигурации CONF[‘encrypt’] = ‘cleartext’;
          В принципе работе не мешает….

          • Что значит не создает? Запись в базе появляется? Иногда запись в базе добавляется, но сама папка с ящиком не создается и не отправляется тестовое письмо. Но если запись в базе есть, то при первой же отправке на новый адрес, каталог с именем ящика будет создан и все будет нормально работать.

            • Александр

              Запись в admin в базе vmail появляется после создания нового админа Postfixadmin. Без него зайти в админку Postfixadmin нет возможности.
              Под записью postmaster@ldomain.ru Postfixadminyt не управляется.
              Делаю которую попытку…по вашему мануалу…срабатывает всегда только при конфигурации CONF[‘encrypt’] = ‘cleartext’;

              • Александр

                Иначе……

                Everything seems fine… attempting to create/update database structure

                Database is up to date

                can’t encrypt password with dovecotpw, see error log for details

                • Надо смотреть параметр в конфиге, который отвечает за dovecotpw, проверять путь. Скорее всего в этом дело.

                • Александр

                  Прошу извинить за флуд, но проблема решилась:
                  все настройки, что необходимо изменить в nano /var/www/postfixadmin/config.inc.php
                  просто // закрыл, а ваши закопипастил вниз файла.
                  …Все заработало. Спасибо.

        • Александр

          Адресная книга домена в почтовом клиенте roundcubemail.
          Вопрос решен вот так:
          Открываем файл и добавляем в него в конец файла:
          nano /var/www/roundcubemail/config/config.inc.php

          ##
          #Global LDAP Address Book with AD.
          #
          $config[‘autocomplete_addressbooks’] = array(«sql», «global_ldap_abook»);
          $config[‘ldap_public’][«global_ldap_abook»] = array(
          ‘name’ => ‘Адресная книга ОАО’,
          ‘hosts’ => array(«XXX.XXX.XXX.XXX»), // 389,
          ‘use_tls’ => false, // ‘3’,
          ‘network_timeout’ => 10,
          ‘user_specific’ => false,
          ‘base_dn’ => «dc=domain,dc=ru», // «user@domain.ru», // «XXXXXXX», // false, // array(‘mail’),
          // mapping of contact fields to directory attributes
          ‘fieldmap’ => array(
          ‘name’ => ‘cn’,
          ‘surname’ => ‘sn’,
          ‘firstname’ => ‘givenName’,
          ‘title’ => ‘title’,
          ’email’ => ‘mail:*’,
          ‘department’ => ‘departmentNumber’,
          ‘photo’ => ‘thumbnailPhoto’
          ),
          ‘sort’ => ‘cn’,
          ‘scope’ => ‘sub’,
          //’filter’ => «(&(objectclass=person)(mail=*domain.ru)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))»,
          ‘filter’ => «(mail=*@*)»,
          ‘fuzzy_search’ => true,
          ‘vlv’ => false, // Enable Virtual List View to more efficiently fetch paginated data (if server supports it)
          ‘sizelimit’ => ‘0’, // Enables you to limit the count of entries fetched. Setting this to 0 means no limit.
          ‘timelimit’ => ‘0’, // Sets the number of seconds how long is spend on the search. Setting this to 0 means no
          limit.
          ‘referrals’ => false, // Sets the LDAP_OPT_REFERRALS option. Mostly used in multi-domain Active Directory
          setups
          );

  20. Евгений

    Добрый день. Спасибо за отличную статью. Сделал все по инструкции. Но как только подключил adminpostfix то на почту postmaster@ стали приходить письма с ошибками:

    ERROR: Problem with internal logger (UpdateLogFile = /var/log/clamav/freshclam.log).
    ERROR: Can’t open /var/log/clamav/freshclam.log in append mode (check permissions!).

    а также по ссылкам типа: /awstats/awstats.pl?config=web перестали картинки отображаться

    Думаю тут дело с какими то правами, подскажите что именно и где поправить надо?

  21. Сергей

    Добрый день еще й сегодня) Осталось настроить только почтовый сервер, но тут я конкретно заглох) Мне нужен простой тестовый сервер. Заглох я в самом начале, в статье вы берете в пример поддомен, но а где мне его брать, как заменить? Что с внешним ip для сервера? Как правильно DNS настроить. Как выглядит корректное имя хоста?)

    • Вопрос то в чем? У меня же все написано. Надо разбираться. Знания не даются просто так, их надо осваивать.

      • Сергей

        Возможно и написано, но я не могу понять где)) было бы здорово меня туда носом пнуть и повозить как следует))) Начну по-порядку. Как сделать домен? Может у вас есть какая-то статья? И что значит корректное имя хоста?) Вопросы наверное жуть тупые)) Сильно не пинайте)

        • Могу сразу сказать, что при таких вопросах настроить почтовый сервер не получится 100%. У меня большой опыт в том числе и в обучении администрированию, я знаю, о чем говорю. Лучше не тратить время, а начать с чего-то попроще.

      • Сергей

        Или домен — это обычная структура папок на Апачи?))

  22. Сергей

    Был бы очень признателен за полезный мануал «Синхронизации двух iRedMail» (как здесь – _habrahabr.ru/post/156059/ _iredmail.org/forum/topic898-iredmail-support-1-to-1-sync-between-two-iredmail-servers.html) только в связке Nginx+MariaDB+SOGo.

    Есть два VPS в одной сети (), с разными белыми IPv4, а также – приватные IP, разумеется.

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

  23. Роман М

    Добрый день.
    Большое спасибо за статью, всё очень доступно разъясняется. Может быть, подскажите мне по моей проблеме.

    На почту postmaster@mydomain.com ежеминутно падают письма с содержанием:

    Тема:
    Cron /usr/sbin/sogo-tool expire-sessions 30 2>/dev/null; /usr/sbin/sogo-ealarms-notify
    Содержимое:
    SOGo products loaded from ‘/usr/lib64/GNUstep/SOGo’:
    AdministrationUI.SOGo, Appointments.SOGo, CommonUI.SOGo, Contacts.SOGo, ContactsUI.SOGo, MailPartViewers.SOGo, Mailer.SOGo, MailerUI.SOGo, MainUI.SOGo, PreferencesUI.SOGo, SchedulerUI.SOGo, ActiveSync.SOGo

    Вроде бы это не ошибка а простое уведомление, но не могу понять из-за чего оно прилетает.
    Остановка сервиса sogod приводит к отключению SOGo-интерфейса, но уведомления продолжают приходить.
    Через «crontab -e -u sogo» отключил две стандартные задачи, после этого, естественно, уведомления не приходят. Но ведь это неправильное «решение».

    Версия:
    iRedMail-0.9.6
    sogo-3.2.8.20170418-1.el7.centos.x86_64

    • Сергей

      Роман М, на форуме поддержки iRM есть же решение:

      yum install vim

      crontab -e -u sogo

      заменить строчки крона на:

      # SOGo session cleanup and email reminder, should be run every minute.
      * * * * * /usr/sbin/sogo-tool expire-sessions 30 >/dev/null; /usr/sbin/sogo-ealarms-notify >/dev/null 2>&1

      # SOGo vacation messages expiration
      # The credentials file should contain the sieve admin credentials (username:passwd)
      0 0 * * * /usr/sbin/sogo-tool update-autoreply -p /etc/sogo/sieve.cred > /dev/null 2>&1

  24. Подскажите пожалуйста, при установке iRedMail-0.9.6 на CentOS 7 инсталляция прервалась с ошибкой о конфликте версий РНР:
    —> Processing Conflict: php70w-common-7.0.17-1.w7.x86_64 conflicts php-common Finished Dependency Resolution
    Error: php70w-common conflicts with php-common-5.4.16-42.el7.x86_64

    на сервере стоит рнр7, откуда лезет 5.4? и как её победить?

    Заранее спасибо

    • Возможно iredmail не поддерживает 7.0 и хочет 5.4, вот и конфликт. Как разрешить — не знаю, надо пробовать, я не сталкивался с такой проблемой. Меня на почтовом сервере и 5.4 устраивает.

      • Сергей

        На чистую установку ставлю изначально репозиторий PHP 7.1 от Remi – все работает без ошибок.

        • дело в том, что на VPS хостинге уже работает сайт, просто хотел прикрутить к нему почтовый сервер. Выглядит всё так, что 5.4 идёт вместе с рэдмейлом, ну и естественно регресс в версиях не допускается, поэтому и ругается.
          Спросил, может вы знаете, как отключить установку 5.4, а проглатывать ту, что уже стоит, если нет, то придётся искать другой вариант с почтой, сервер ломать из-за почты я конечно не буду.

  25. Спасибо за отличную статью!

    Подскажите, может кто-то встречал модуль или патч, который превращал бы эту корпоративную (поскольку нужен администратор) почтовую систему в публичную, т.е. в такую, в которой пользователи сами себя регистрируют?
    Как на MAIL.RU, GMAIL.COM и т.д.

  26. Сергей

    Не получается отключить амавист ((( файлы rar и exw не могу отправить ((( Хэла ми плиз

    • Сергей

      /etc/amavisd/amavisd.conf

      удалить расширения в строках

      # Dangerous mime types

      и

      # Dangerous file name extensions

  27. Максим

    Здравствуйте,

    Столкнулся с проблемой при восстановлении Iredmail из резервной копии (архивы mysql, DKIM, maildir). Восстановление БД прошло без проблем. А вот с сообщениями (письмами) проблема. После анзипа и копирования maildir с почтовыми сообщениями вылезает ошибка — Нет связи с IMAP сервером (через roundcube, и через Outlook). В чём может быть проблема?

    • Конкретного ничего посоветовать не могу, так как не пользовался резервным копированием и восстановлением в iredmail. Нужно идти в логи postfix и dovecot и смотреть на конкретные ошибки. Отсутствие связи с imap сервером намекают на то, что возможно он вообще не запустился.

  28. Ярослав

    Добрый день. Статья шикарная. Огромное спасибо (добавте вебмани кошель)
    Вопрос. при установке постфиксадмин
    Checking for dependencies:

    Magic Quotes: Disabled — OK
    Depends on: presence config.inc.php — OK
    Checking $CONF[‘configured’] — OK
    Smarty template compile directory is writable — OK
    Depends on: MySQL 4.1 — OK
    Testing database connection — OK — mysqli://postfixadmin:xxxxx@localhost/postfixadmin
    Depends on: session — OK
    Depends on: pcre — OK
    Depends on: multibyte string — OK
    Depends on: IMAP functions — OK
    Everything seems fine… attempting to create/update database structure

    Updating database:

    — old version: 0; target version: 1835

    (If the update doesn’t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)
    updating to version 1 (MySQL)…

    DEBUG INFORMATION:
    Invalid query: Specified key was too long; max key length is 1000 bytes

    Check your error_log for the failed query.

    как быть? есть заграничные форумы, но не осилил.

  29. Добрый день.
    Ставил отсюда postfixadmin, для создания алиасов (групп рассылки)
    Собственно это единственное, чего не хватает в бесплатном iRedMail.
    Была ошибка при установке postfixadmin_а, не находилось поле goto в таблице alias. Пришлось создать его руками. После этого установка прошла как описано.
    Но после установки выяснилось что алиасы просто не работают. Их можно создавать, или прописывать пересылку в обычный ящик.
    Почта тупо валится в ящик адресат и ни куда не пересылается 🙂
    Если просто создать алиас, без ящика(с пересылкой на существующий ящик), то почта на него не отправляется с ошибкой 550
    SMTP ошибка (550): Невозможно добавить получателя «test@хххххх.ru» (5.1.1 : Recipient address rejected: User unknown in virtual mailbox table)

    • Валерий

      Здравствуйте.
      Такая же ситуация. Алиас создается но не работает. Приходится добавлять еще руками в таблиицу forwardings:

      you need to add SQL records in 2 sql tables. for example: create a mail alias account alias@mydomain.com and forward emails to two addresses someone@gmail.com and someone@test.com:
      sql> USE vmail;

      — Create mail alias account
      sql> INSERT INTO alias (address, domain, active)
      VALUES (‘alias@mydomain.com’, ‘mydomain.com’, 1);

      — Forward email to ‘someone@gmail.com’
      sql> INSERT INTO forwardings (address, forwarding,
      domain, dest_domain,
      is_list, active)
      VALUES (‘alias@mydomain.com’, ‘someone@gmail.com’,
      ‘mydomain.com’, ‘gmail.com’,
      1, 1);

      — Forward email to ‘someone@test.com’
      sql> INSERT INTO forwardings (address, forwarding,
      domain, dest_domain,
      is_list, active)
      VALUES (‘alias@mydomain.com’, ‘someone@test.com’,
      ‘mydomain.com’, ‘test.com’,
      1, 1);

    • Михаил

      Вы наверное ставили более новую версию iRedMail. В последних версиях изменили структуру таблицы vmail , детали https://bitbucket.org/zhb/iredmail/issues/101

    • «Весь этот функционал невозможно включить через бесплатную панель администрирования. Нужно либо покупать платную, либо руками делать настройки в mysql базе. Ниже я расскажу, как это делать удобно.

      Сколько стоит платная версия и где ее можна купить

  30. Станислав

    Здравствуте, спасибо за статью, у нас работает iredmail и postfix. Сеть VPN. Если можно подскажите пожалуйста пару моментов:
    1) При попытке пользователей отправить несколько раз почту на несуществующий адрес (или при попытке принять несколько раз подряд почту с неправильным паролем к ящику) происходит блокирование пользователя минут на 40. Можно ли это отключить?
    2) Можно ли настроить перенаправление писем. У нас есть необходимость перенаправлять письма, т.е. приходит мне письмо на общий ящик допустим mail.ru, а я его клиентом Thebat перенаправляю пользователю созданому в postfix моей почты, так что бы конечный пользователь которому я перенаправил письмо получил его будто бы от mail.ru (пусть с пометкой о перенаправлении или без). сейчас при перенаправлении пишет, что домен отправителя не йден (оно и понятно), но может как нибудь можно это настроить.
    Буду очень признателен за помощь!

  31. Владимир

    Добрый день, коллеги!
    Вопрос простой — есть ли в этой сборке или может есть отдельный костыль для миграции почты в iRedmail?

    У меня, допустим, сейчас почта вся на яндексе — можно ли её как-то централизованно от туда высосать на свой сервер?

    • Только костылить скриптами. Из яндекса вряд ли есть готовые решения. Думаю, тут можно с помощью fetchmail забрать письма по pop3, а потом сложить их в новый ящик. Это как самое простое, что пришло в голову.

      Но есть еще программа imapsync. Я сам ей не пользовался, но в свое время увидел описание и сохранил себе на всякий случай, так как функционал показался очень полезным.
      Как она работает :
      imapsync —host1 imap.mail.org —user1 foo —password1 secret1 —host2 imap.mail2.org —user2 bar —password2 secret2
      Т.е. лезет на сервер imap.mail.org — и высасывает всю почту юзера foo и заливает ее юзеру bar сервера imap.mail2.org.

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

      • Владимир

        Вобщем на текущий момент следующее…:

        # yum install -y imapsync

        Далее:
        # touch /home/admin/imapsync.sh

        Заносим в него через vi или mc — кому что…

        #!/bin/bash

        /usr/bin/imapsync —host1 imap.yandex.ru —user1 ok@mydom.ru —password1 mypass \
        —host2 localhost —user2 ok@mydom.ru —password2 mypass \
        —SSL1 —SSL2 —PORT1 993 —PORT2 993

        # chmod 0740 /etc/iptables_rules.sh

        Запускал всё это прямо с почтовика — потому localhost

        Это отработает один ящик. Осталось всё это залепить со списком юзверей и всё. И можно чай пить и котиков смотреть… 🙂

        • На самом деле это очень круто. Так можно без проблем переехать с любого сервера imap. Можно так бэкапить ящики бесплатных почтовых систем.

          • Владимир

            Котиков посмотреть не удалось — он не умеет сопоставлять интуитивно папки…
            т.е отправленные у него выглядят как &BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-
            и в итоге у меня получилось два набора папок…
            почитав хелпы и погуглив я добавил себе ещё один пакет:

            # yum install -y cpan

            и добавил в скрипт несколько строчек для сопоставления папок. Итог пока такой:

            #!/bin/bash

            /usr/bin/imapsync —host1 imap.yandex.ru —user1 ok@mydom.ru —password1 mypass \
            —host2 localhost —user2 ok@mydom.ru —password2 mypass \
            —folderfirst INBOX \
            —regextrans2 «s/&BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1-/Sent/» \
            —regextrans2 «s/&BBoEPgRABDcEOAQ9BDA-/Trash/» \
            —regextrans2 «s/&BCEEPwQwBDw-/Junk/» \
            —regextrans2 «s/&BCcENQRABD0EPgQyBDgEOgQ4-/Drafts/» \
            —regexflag ‘s/\\Unseen//g’ \
            —useheader Message-Id \
            —SSL1 —SSL2 —PORT1 993 —PORT2 993

            А вообще у этого «костыля» очень много полезного функционала. Мощная штука…

            • Понятно. Он утянул имена папок в UTF7, как их хранит imap сервер. И кто только это придумал. Постоянно приходится костылить при работе с сервером из-за этих имен.

      • Подскажите пожалуйста, не могу понять, наверное туплю. Есть задача — переезд почтового сервера на iredmail с локального железа в облако. Я так понимаю, что для этого необходимо установить на новом сервере iredmail, создавать все домены и почтовые ящики в нем точно так как и на старом. изменить все настройки DNS и MX-записи. Затем, перенести содержимое всех почтовых ящиков. Подойдет ли для этой цели imapsync? А если да, то проблема в том, что я не могу понять как это сделать.
        -host1 —user1 —password1 \ —host2 —user2 —password2
        Тут выходит, что host1 и host2 будут одинаковыми. Или, хосты обозначить IP-адресами, тогда поле может содержать полный почтовый адрес вида user@domain?
        Заранее спасибо за ответ.

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

          Я много раз переносил почтовые серверы. Действую обычно так:
          1. Настраиваю новый сервер, переношу туда настройки, учетные записи.
          2. Копирую содержимое почтовых ящиков с помощью rsync на новый сервер. Старый при этом не останавливаю. Обычно полное копирование занимает много времени и не умещается в допустимое окно простоя.
          3. После того, как основная база скопирована, выбираю подходящее время, останавливаю основной сервер, синхронизирую каталоги с почтой, чтобы докопировать на новый сервер все изменения, что накопились со времени полной копии.
          4. Запускаю новый сервер, меняю dns записи.

          Если что-то пошло не так, то все в обратном порядке делается. Останавливается новый сервер. Со старым сервером синхронизируется почтовая база, так как туда уже успеет нападать новой почты. Новый сервер останавливается, меняются обратно dns записи и запускается старый.

          Тут главное все продумать и не допустить потери писем. В этом основная ложность. Как только переключаешь dns записи, почта идет в другой сервер. А базы почтовые обычно очень большие, копируются долго.

          • Спасибо, понятно. Подскажите еще, если не сложно, достаточным ли будет просто перенести на новый сервер директорию /var/vmail/ ?

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

              • Устанавливал по Вашей инструкции, сервер устроен по рекомендациям из Вашей статьи.

  32. Владимир

    Список папок для сопоставления:
    &BB0ENQQ2BDUEOwQwBEIENQQ7BEwEPQQwBE8- &BD8EPgRHBEIEMA- нежелательная почта
    &BBcEMAQ0BDAERwQ4- Задачи
    &BBcEMAQ8BDUEQgQ6BDg- Заметки
    &BBgEQQRFBD4ENARPBEkEOAQ1- Исходящие
    &BBoEMAQ7BDUEPQQ0BDAEQARM- Календарь
    &BBoEPgQ9BEIEMAQ6BEIESw- Контакты
    &BBQEPQQ1BDIEPQQ4BDo- Дневник
    &BCMENAQwBDsENQQ9BD0ESwQ1- Удаленные
    &BB4EQgQ,BEAEMAQyBDsENQQ9BD0ESwQ1- Отправленные
    &BBoEPgRABDcEOAQ9BDA- Корзина
    &BCEEPwQwBDw- Спам
    &BCcENQRABD0EPgQyBDgEOgQ4- Черновики

  33. Сергей

    Добрый день. Поставил iRedMail-0.9.7 на Debian 9.1. Не могу авторизироваться в postmaster@domen. Выдает ошибку Error: Password of cn=vmailadmin is incorrect. Как исправить?

  34. Антон 23.07.2017 at 23:54
    Добрый день.
    Ставил отсюда postfixadmin, для создания алиасов (групп рассылки)
    Собственно это единственное, чего не хватает в бесплатном iRedMail.
    Была ошибка при установке postfixadmin_а, не находилось поле goto в таблице alias. Пришлось создать его руками. После этого установка прошла как описано.
    Но после установки выяснилось что алиасы просто не работают. Их можно создавать, или прописывать пересылку в обычный ящик.
    Почта тупо валится в ящик адресат и ни куда не пересылается ?
    Если просто создать алиас, без ящика(с пересылкой на существующий ящик), то почта на него не отправляется с ошибкой 550
    SMTP ошибка (550): Невозможно добавить получателя «test@хххххх.ru» (5.1.1 : Recipient address rejected: User unknown in virtual mailbox table)

    • В новых версиях iredmail изменили формат таблицы vmail, думаю, дело в этом. У меня пока не было времени с этим разобраться и исправить статью. Да и не знаю, есть ли смысл. Я написал подробное описание установки и настройки почти такого же функционала, только своими руками. Сам пользуюсь этой инструкцией, iredmail не ставлю. https://serveradmin.ru/nastroyka-postfix-dovecot-centos-7/

    • Да, в последней версии внесли изменения.
      Подробности: https://bitbucket.org/zhb/iredmail/issues/101
      На сколько я понял, чтобы заработали алиасы, нужно заменить /etc/postfix/mysql на старую версию.

    • Проверил, алиасы в postfixadmin работают!
      Использовал последний iredmail-0.9.7 и postfixadmin 3.1.

      Нужны старые файлы:
      в /etc/postfix/mysql
      virtual_alias_maps.cf

      в /opt/iRedAPD/plugins
      reject_sender_login_mismatch.py
      sql_alias_access_policy.py

      На все файлы выставить права как у соседних, в virtual_alias_maps.cf — прописать правильный пароль.
      Сами файлы здесь:
      https://yadi.sk/d/h17w8K623NRkqq

      • Валерий

        А подскажите алиасы доменов после этого работают?

      • iredmail-0.9.7 и postfixadmin 3.0.

        Не работает…

        Everything seems fine… attempting to create/update database structure

        Updating database:

        — old version: 472; target version: 1835

        (If the update doesn’t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)
        updating to version 473 (MySQL)…

        DEBUG INFORMATION:
        Invalid query: Unknown column ‘goto’ in ‘alias’

        Check your error_log for the failed query.

        • Удалите goto в alias и заново запускайте.

        • Вот структура рабочей таблицы alias
          http://joxi.ru/xAeyRxWIYNnGVA.png

          • Столбца goto в таблице не было. Создал его и установка дальше прошла успешно. Однако созданная в  postfixadmin группа рассылки не работает… postfixadmin успешно создает записи в таблице alias однако группа рассылки работает работает только после создания аналогичных записей в таблице forwarding… Видимо Postfix читает оттуда.
            Похоже нужно либо изменить запрос в postfixadmin или поправить размещение алиасов в postfix.
            Кто сталкивался подскажите направление.

            • virtual_alias_maps.cf, reject_sender_login_mismatch.py,
              sql_alias_access_policy.py заменил?

              • После замены. Отправка сообщений прекращается…

                SMTP ошибка (451): Невозможно добавить получателя «user@domail1.com» (4.3.0 : Temporary lookup failure)

                • Права на файлы нужные установил? Пароли в файлах на свои поменял?

                  • Права на файлы само собой выставлял. А вот паролей в файлах не нашел… Подскажешь строки?

                    • в 4 строчках не найти пароль? 🙂

                      cat virtual_alias_maps.cf
                      hosts = 127.0.0.1
                      port = 3306
                      user = vmail
                      password = HsdfDFscxsvDFDdvdY6tXAI0K

                  • Извиняюсь 🙂 virtual_alias_maps.cf

  35. День добрый, понадобился мне почтовый сервер, причем на коленке за пол часа времени, нужен просто сервер для получения некоторой переписки, поставил я айред, на эксим времени не было, да и ящик всего один, на него приходят письма с 3-5 ящиков, в день 3-4000 писем, вопрос, как без покупки платного расширения закрыть получение писем с других ящиков, так как рано или поздно к этим письмам добавится и спам. Или можно какими то другими средствами это сделать?

    • Это точно можно сделать в postfix с помощью различных restrictions. Но готового решения у меня нет. Если быстро и просто, то можно сделать ящик, например, mailpochta123. Вряд ли кто-то из спамеров догадается на такой ящик что-то отправить.

      • А если на уровне ДНС, я про такое слышал, но как это делается и через что, не знакомая тема?

  36. Добрый день.
    Спасибо за статью. Ставил все о тексту. Добавил несколько доменов, почтовые ящткт, алиасы и т.д. почта ходит. Работает как часы. Но образовалась одна проблема. Не доходят сообщения, через вэб форму с сайта установленного на другом веб-сервере, причем если при настройке вэб формы указать ящик на другом почтовом сервере, сообщения приходят. Файерволл антивирус и антиспам отключал, не помогло. Где копать? подскажите.

    • Надо смотреть логи почтовых серверов на обоих серверах. Там 100% будет ответ на вопрос.

      • Oct 14 19:22:50 mail postfix/postscreen[1999]: CONNECT from [xx.xxx.xx.xx]:39444 to [zz.zzz.zz.zz]:25
        Oct 14 19:22:50 mail postfix/postscreen[1999]: WHITELISTED [xx.xxx.xx.xx]:39444
        Oct 14 19:22:50 mail postfix/smtpd[2000]: connect from unknown[xx.xxx.xx.xx]
        Oct 14 19:22:50 mail postfix/smtpd[2000]: Anonymous TLS connection established from unknown[xx.xxx.xx.xx]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
        Oct 14 19:22:50 mail postfix/smtpd[2000]: NOQUEUE: reject: RCPT from unknown[xx.xxx.xx.xx]: 550 5.1.0 : Sender address rejected: User unknown in virtual mailbox table; from= to= proto=ESMTP helo=
        Oct 14 19:22:50 mail postfix/smtpd[2000]: disconnect from unknown[xx.xxx.xx.xx]

      • Вообщем проблему решил так:

        /etc/postfix в файле main.cf выставил smtpd_reject_unlisted_sender = no
        в секции # Sender restrictions
        smtpd_sender_restrictions =
        закоментил строчку # reject_unlisted_sender
        Так же отключил плагин iRedAPD «reject_sender_login_mismatch» в /opt/iredapd/settings.py в статье написано как их отключать и потом перезапустил службы

        postfix reload
        service iredapd restart
        Разбираться с настройками плагина iRedAPD «reject_sender_login_mismatch» не стал.
        Полу мера конечно, но все работает, может кому и пригодится

  37. Сергей

    Добрый день. Можно сделать так чтоб у меня делался бэкап всех почтовиков в all_in и all_out за исключением одного. Или мне постоянно нужно будет самому удалять его из бэкапа ?

    • Описанным выше способом так сделать не получится. Этот вариант работает только с бэкапом всей почты. Для исключений нужно придумывать другие способы. Они есть, но так просто не реализуются.

  38. Доброго времени суток.
    Спасибо за статьи, очень подробно и познавательно.

    Если есть возможность, проконсультируйте, пожалуйста:
    Можно ли заставить iredmail (или скорее Postfix) временно игнорировать существование на нём почтового домена?

    Есть сервер (Centos 7/ iredmail-0.9.6 / iRedAdmin-Pro-2.6.0/Postfix/Dovecot/MariaDB-Server/Nginx), на котором крутятся два почтовых домена. На него нужно перенести ещё один домен.
    Т.к. переносимый домен имеет большое количество ящиков и занимает достаточно много место, пытаюсь сделать это поэтапно:
    -создание и настройка домена на сервере iredmail;
    -создание почтовых ящиков, аналогичных старому серверу;
    -миграция содержимого почтовых ящиков; в планах выполнить процедуру в несколько этапов по ночам, в не нагруженное время;
    -прочие подготовительные процедуры;
    -переключение трафика, смена DNS-записей для домена.

    Проблема в том, что после создания переносимого домена на новом сервере, этот сервер (вероятно, на уровне почтовой службы) пытается обрабатывать письма для/от этого домена, как локальные. Отправка на него писем от других доменов, расположенных на этом же сервере становится невозможной, как и приём писем со старого сервера.
    Я рассчитывал, что до замены DNS-записей почта будет пересылаться между серверами, а не между доменами в пределах одного сервера. Но ошибся.
    Можно ли реализовать задуманный план и выполнить миграцию поэтапно без длительного простоя?

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

      • Новый сервер: Старый сервер
        domain1 (только что создан, в процессе переноса) domain1 (активен, надо перенести)
        domain2 (активен)
        domain3 (активен)

        После того, как я создаю domain1 на новом сервере, его клиенты из доменов domain2 и domain3 теряют возможность доставить почту на domain1 старого сервера, так как Новый сервер пытается найти адресатов в свежесозданном домене на Новом сервере.
        Хост-система нового сервера получает с ДНСа A-записи и MX-записи для domain1, указывающие на старый сервер, что правильно. Проверял через ping и nslookup. Но сам почтовый сервер эти записи не учитывает.
        Письмо от user2@domain2 на user1@domain1 сервер пытается обрабатывать как локальное, внутри нового сервера, хотя судя MX-записи должен доставить на старый.
        Соответственно, со старого сервера из domain1 письма не принимаются, так как postfix считает, что отправитель должен авторизацию на нём пройти.

        • Я теперь понял проблему. Не могу тут ничем помочь, так как не попадал в такую ситуацию. Сходу красивое решение не приходит в голову. Но я бы сделал так.

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

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

  39. Владимир

    Добрый день!!
    Подскажите не подключается почтовый клиент Outlook, а именно авторизация по SMTP не проходит, пишет «не возможно подключиться к серверу исходящей почты SMTP».
    Для включения протокола воспользовался вот этой инструкцией
    https://docs.iredmail.org/enable.smtps.html#why-enable-smtps-since-its-depreciated
    IredMail развернут на ubuntu server 16.04.
    Буду благодарен за любую информацию.

    • Тут мне подсказать нечего. Текст ошибки явно намекает на то, какая есть проблема. Либо сервер по какой-то причине не доступен для клиента, либо порт, на котором работает сервер не соответствует тому порту, что использует клиент outlook. Возможно фаервол не дает подключиться. Вариантов может быть много, надо аккуратно все проверять.

  40. Автору спасибо. Прошу совета, по выбору железа для почтового сервера. В данный момент имеется 50 ящиков , все работает в связке Postfix+Dovecot, но по протоколу POP3. Каждый такой ящик довольно увесистый — в среднем по 10 ГБ(но некоторые экземпляры до 30Гб). Все они хранятся на рабочих местах пользователя (со всеми вытекающими от сюда последствиями) Возникла необходимость перевести всю почту на IMAP для более удобной работы. Какое железо нужно подобрать для такого объема почты на IMAP. На что нужно обратить внимание в первую очередь? Как я понимаю главным узким местом в данном случае, будет производительность дисковой подсистемы, а потом уже RAM и CPU. Обязательно ли использовать аппаратный RAID, или программный подойдёт. Да, и при настройке данного сервера, можно ли прибегнуть к iRedMail, или лучше по старинке ручками править. Спасибо откликнувшимся .

    • Для 50 ящиков по 30 Гб хватит raid1 на обычных дисках типа WD RED, 4 Гб оперативной памяти, 2 ядра процессора. Рекомендую настраивать самому все по моей статье, а не использовать iredmail.

      В процессе администрирования почтового сервера возникает множество нюансов, которые не всегда можно понять и решить в iredmail. Лучше сразу пытаться во всем разобраться и собирать самому систему из компонентов.

  41. Спасибо огромное за Ваши статьи!
    После настройки сервера, в системе появляются открытые порты ipv6:
    tcp6 0 0 :::11211 :::* LISTEN 1129/memcached
    udp6 0 0 :::11211 :::* 1129/memcached
    Подскажите, пожалуйста, можно ли как-то отключить их использование?

  42. Валерий

    Не подскажите, пожалуйста, как заблокировать возможность всем отправлять почту на определенный домен?

  43. Владимир

    Здравствуйте! Поставил postfixadmin по вашей инструкции. Захожу и в админке не вижу домен и пользователей созданных в вэбморде iredmail. Где и что я упустил?
    При установкее postfixadmin/setup.php возникала только одна ошибка что нет БД vmail. зашел в phpmyadmin и создал вручную, дальше установка пошла без проблем. Может из за этого?

  44. Сергей

    Здравствуйте!
    Большое спасибо за подробную инструкцию. Сделал все по ней, дошел до установки postfixadmin-а. Запускаю скрипт setup.php, вываливается ошибка:
    ———————————-
    Postfix Admin Setup Checker

    Running software:

    PHP version 7.0.25-0ubuntu0.16.04.1
    Apache
    Checking for dependencies:

    Magic Quotes: Disabled — OK
    Depends on: presence config.inc.php — OK
    Checking $CONF[‘configured’] — OK
    Warning: config.local.php — NOT FOUND
    It’s Recommended to store your own settings in config.local.php instead of editing config.inc.php
    Create the file, and edit as appropriate (e.g. select database type etc)
    Depends on: MySQL 4.1 — OK
    Testing database connection (using mysqli) — OK
    Depends on: session — OK
    Depends on: pcre — OK
    Depends on: multibyte string — OK
    Warning: Depends on: IMAP functions — NOT FOUND
    To install IMAP support, install php5-imap
    Without IMAP support, you won’t be able to create subfolders when creating mailboxes.
    Everything seems fine… attempting to create/update database structure

    Updating database:

    — old version: 372; target version: 1836

    (If the update doesn’t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)
    updating to version 373 (MySQL)… done

    updating to version 438 (MySQL)… done

    updating to version 439 (MySQL)… done

    updating to version 473 (MySQL)…

    DEBUG INFORMATION:
    Invalid query: Unknown column ‘goto’ in ‘alias’

    Check your error_log for the failed query.
    Postfix Admin Setup Checker

    Running software:

    PHP version 7.0.25-0ubuntu0.16.04.1
    Apache
    Checking for dependencies:

    Magic Quotes: Disabled — OK
    Depends on: presence config.inc.php — OK
    Checking $CONF[‘configured’] — OK
    Warning: config.local.php — NOT FOUND
    It’s Recommended to store your own settings in config.local.php instead of editing config.inc.php
    Create the file, and edit as appropriate (e.g. select database type etc)
    Depends on: MySQL 4.1 — OK
    Testing database connection (using mysqli) — OK
    Depends on: session — OK
    Depends on: pcre — OK
    Depends on: multibyte string — OK
    Warning: Depends on: IMAP functions — NOT FOUND
    To install IMAP support, install php5-imap
    Without IMAP support, you won’t be able to create subfolders when creating mailboxes.
    Everything seems fine… attempting to create/update database structure

    Updating database:

    — old version: 372; target version: 1836

    (If the update doesn’t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)
    updating to version 373 (MySQL)… done

    updating to version 438 (MySQL)… done

    updating to version 439 (MySQL)… done

    updating to version 473 (MySQL)…

    DEBUG INFORMATION:
    Invalid query: Unknown column ‘goto’ in ‘alias’

    Check your error_log for the failed query.
    Postfix Admin Setup Checker

    Running software:

    PHP version 7.0.25-0ubuntu0.16.04.1
    Apache
    Checking for dependencies:

    Magic Quotes: Disabled — OK
    Depends on: presence config.inc.php — OK
    Checking $CONF[‘configured’] — OK
    Warning: config.local.php — NOT FOUND
    It’s Recommended to store your own settings in config.local.php instead of editing config.inc.php
    Create the file, and edit as appropriate (e.g. select database type etc)
    Depends on: MySQL 4.1 — OK
    Testing database connection (using mysqli) — OK
    Depends on: session — OK
    Depends on: pcre — OK
    Depends on: multibyte string — OK
    Warning: Depends on: IMAP functions — NOT FOUND
    To install IMAP support, install php5-imap
    Without IMAP support, you won’t be able to create subfolders when creating mailboxes.
    Everything seems fine… attempting to create/update database structure

    Updating database:

    — old version: 372; target version: 1836

    (If the update doesn’t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)
    updating to version 373 (MySQL)… done

    updating to version 438 (MySQL)… done

    updating to version 439 (MySQL)… done

    updating to version 473 (MySQL)…

    DEBUG INFORMATION:
    Invalid query: Unknown column ‘goto’ in ‘alias’

    Check your error_log for the failed query.
    ———————————————————
    Пакет php5-imap не устанавливается, пишет, что не удалось найти пакет.

    Помогите, пожалуйста, разобраться. Заранее благодарю.

    • В последних версиях IRedMail изменили структуру таблицы vmail , детали https://bitbucket.org/zhb/iredmail/issues/101/

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

      • Надо будет заняться. Хотя лично мне больше нравится связка, которая настраивается самостоятельно. Функционал лучше, чем бесплатный iredmail. И ошибок подобных не возникнет. У меня на сайте все есть в разделе «Почтовый сервер».

      • Сергей

        Благодарю за ответ. В итоге я разобрался как через phpmyadmin алиасы и группы рассылки настраиваются и решил postfixadmin не ставить за ненадобностью. У меня пара десятков юзеров, изменения в структуре очень редкие, так что проще руками добавить нужное.

  45. Большое Вам человеческое спасибо!

    У меня есть желание попробовать всё настроить самостоятельно. Статьи у Вас превосходные, рабочие. Только нужно быть внимательным с синтаксисом. Опыта пока мало.
    Мне нужно сейчас запустить сервер с одним почтовым доменом. Если бы не требовались alias, я бы postfixadmin не стал ставить.
    Вы можете подсказать как записать в базу MySQL нужный alias? Я поискал как строить запрос, но информация в основном в общем виде.

    • Сергей

      Алиас создать очень просто: Выполнить SQL-запрос к таблице vmail.alias:
      INSERT INTO `alias` (`address`, `name`, `accesspolicy`, `domain`, `created`, `modified`, `expired`, `active`) VALUES (‘alias@mydomain.com’, », », ‘mydomain.com’, ‘1970-01-01 01:01:01.000000’, ‘1970-01-01 01:01:01.000000’, ‘9999-12-31 00:00:00.000000’, ‘1’);
      Потом надо добавить в таблице forwardings соответствующие записи: поле адрес — созданный алиас, поле forwarding — адрес существующего почтового ящика. Если добавить несколько таких записей с форвардингом на разные ящики, то алиас будет списком рассылки.

  46. Владимир

    Спасибо еще раз за отличную статью. Установил все как написано и работает!
    В предыдущем вопросе базы vmail не было, потому что установил openldap и новую версию. Установил версию как в вашей статье и при установке выбрал mysql. Отдельно поставлю openldap, чтобы был глобальный каталог контактов. А в остальном все отлично работает.
    Единственный баг заметил, что во время создания почтового ящика пользователя, через postfixadmin, указывается квота, там написано что размер ящика в МБ, пишу туда 500 и по факту вижу что 500 ТБ квота ящика,чтобы было 500 МБ в postfixadmin нужно указать 0,00005. А при создании через iredmail все ок. Вот пока не нашел как победить этот баг. Может подскажите?

  47. Владимир

    В общем нашел решение проблемы с квотами в postfixadmin:
    для того чтобы квоты пользователей одинаково отображались в iremail и postfixadmin нужно сделать следующее:
    Зайти в настройки:
    /var/www/postfixadmin/config.inc.php
    найти строку:
    $CONF[‘quota_multiplier’] = ‘1024000’;
    и изменить число 1024000 на 1
    Теперь все, размер почтовjго ящика будет одинаково задаваться и в iredmail и в postfixadmin

  48. Владимир

    День добрый! Объясните зачем менять вот эти параметры:
    $CONF[‘encrypt’] = ‘dovecot:SSHA’;
    $CONF[‘dovecotpw’] = «/usr/bin/doveadm pw»;

    После их редактирования не работает awstats.

    • К awstats это вообще не имеет никакого отношения. Этот параметр отвечает за шифрование паролей почтовых ящиков, которые хранятся в базе.

  49. Александр

    Доброй ночи. Подскажите, у меня установлен iredmail, без пакета SOGo. Хотел бы добавить его, но инструкции нормальной в интернете не нашел. Можете подсказать, как можно установить, не сломав почтовик?

    • SOGo это просто web приложение, которое почту никак не сломает. Для его работы нужен веб сервер. Работать эта панель может вообще отдельно от почтового сервера, она с ним по imap общается, как любой почтовый клиент. Так что можно пробовать настраивать для начала на отдельном веб сервере, потом уже перенести на рабочий.

      • Александр

        Тогда еще один вопрос, при открытии через roundcube файлов docx, pdf и excel периодически вылетает такая ошибка:
        Internal Server Error
        The server encountered an internal error or misconfiguration and was unable to complete your request.

        Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

        More information about this error may be available in the server error log.

  50. Сергей

    Здравствуйте!
    Помогите, пожалуйста, настроить iRedMail.
    Есть настроенный на работу с доменом d1.com почтовик iRedMail, соответственно всю почту для d1.com сервер принимает и считает своей. На его же внешний IP настроена также MX-запись домена d2.com.
    Необходимо, чтобы iRedMail пересылал почту для d2.com на почтовый сервер MSExchange внутри корпоративной сети.

    • Виктор

      Используйте transport_maps.
      В main.cf
      transport_maps = hash:/etc/postfix/transport_maps,….
      Файл etc/postfix/transport_maps (пример):
      #
      d2.com :[10.12.1.3]
      #

  51. Виктор

    Здравствуйте. С 2013 у меня работает сборка iredmail. Решил на новой машине установить.
    Перенос LDAP получился. Вообщем все нормально.
    Одна только проблема. У меня узеры проходят аутификацию не полным именем. Не user@mydomen.ru
    а просто user. Давно делал и сей никак не могу вспомнить где искать этот параметр.
    Бегать по этажам и перестраивать пользовательские почтовые агенты нет желания.
    Подскажите пожалуйста.

  52. С последней версией iredmail 9.7 9.8 и версией postfixadmin 3.1 есть несовместимость по таблицам alias. Предупредите об этом читателей вначале статьи.

  53. Ребят поделитесь пожалуйста конфигом /etc/httpd/conf.d/php.conf
    rm -rf проскочил…

  54. Подскажите, пожалуйста куда копать. Сервер переехал на другое железо, сменился IP. Все работает нормально, но проблемы с roundcube. При заходе через IP, веб-интерфейс отрабатывает штатно. Авторизует, показывает письма, отправляет и т.д. При попытке захода через доменное имя — авторизует, но после авторизации начинаются глюки. Может не показывать письма, может ломаться интерфейс, периодически появляется ошибка «Internall error». В логах httpd никаких ошибок.

    • Тут 100% надо смотреть настройки httpd. roundcube с почтовым сервером никак не связан, это просто imap клиент, написанный на php.

  55. Спасибо за статью. Решил попробовать настроить на новом для меня дистрибутиве centos 7. Базовый функционал запустился. Но совсем не понял как там работает штатный файрволл. Видно что он оперирует сервисами и зонами. До этого простенькие настройки iptables делал. Есть задача ограничить в зависимости от сетей доступы к сервисам. В частности дать доступ по POP3 только с определенного диапазона сети. Как это сделать никак не могу понять.

  56. Самое мерзкое, что есть в iRedMail — это Clamav 🙁

    Он жрет немерянное количество памяти и процессора.
    Как его отключить полностью — непонятно.

    Рецепт автора расскоментировать строку

    # @bypass_virus_checks_maps = (1); # controls running of anti-virus code

    не дает абсолютно никакого выигрыша — clamd как жрал память и проц, таки жрет.

    Деинсталлировать Clamav стандартным образом легко, но непонятно, какие у него завязки на iRedMail и как это повлияет на целостность и функционирование iRedMail.

    Хорошо, если бы кто-то из пользователей, активно взаимодейстующий с разработчиками iRedMail, втолковал им,чтобы они внесли в установщик опцию «Устанавливать антивирус: да/нет»

    • Не понимаю, почему столько народа упорно ставит iredmail. У меня же рядом есть замечательная статья, как настроить все то же самое, только без лишних вещей. Я уже много серверов настроил по своей же статье. Все работает четко, ничего лишнего. Связка нисколько не хуже iredmail получается. Если что, вот ссылка — https://serveradmin.ru/nastroyka-postfix-dovecot-centos-7/
      Я рекомендую именно свой почтовый сервер, а не iredmail.

  57. Zerox, неужели так трудно догадаться? 🙂

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

    Большинство пользовтелей хочет по-быстрому поставить и запустить почтовый сервер, ковыряние в конфигах отталкивает, им хочется нажать «Одну большую красную кнопку», которая все сделает за них.

    Если вы заходите со мной поспорить, то я уклонюсь. Вы спросили — я ответил, а вы уж как хотите.

    Хотите добрый совет? Внесите все ручные действия из вашей статьи, в один bash-скрипт (как это сделано в iRedMail) — и вашим творением будут пользоваться.
    Может, даже больше, чем iRedMail.

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

  58. Вот вы и сами и ответили на свой вопрос, уважаемый Zerox.
    Пользователи предпочитают iRedMail, потому что понимают, что несмотря на его отдельные недостатки, у него стабильная и долговременная поддержка.
    И для них она важнее, чем неспоримые преимущества других, недолгоиграющих проектов.

    • Так в том то и дело, что в iredmail достаточно проблем и эта тема тому подтверждение. Но решать эти проблемы в iredmail намного сложнее, чем в настроенном самостоятельно сервере. Да и в целом iredmail только упрощает начальную установку. Чтобы поддерживать работу почтового сервера, все равно надо разбираться с тем, как он работает, очень много нюансов. Я же проходил этот путь и помню его. В конечном итоге лучше сразу разобраться и настроить самому, если вы сисадмин и планируете какое-то развитие. Если нет — то без вопросов, можно собрать на iredmail и надеяться, что проработает и так.

  59. > Но решать эти проблемы в iredmail намного сложнее, чем в настроенном самостоятельно сервере.

    Может и так, только небольшой вопрос — кому решать? Если вам, специалисту, то да, вам проще в своей системе.
    Мне же, ленивому юзеру, проще работать с iRedMail. Думаю, я не один такой — никто не хочет лишней работы.
    За 1 год эксплуатации iRedMail я не заметил каких-либо серьезных недостатков.
    Возможно, он у меня не сильно нагружен, или потому, что не использую SOGo.

    Так или иначе, он меня устраивает.
    За исключением двух моментов:
    — прожорливого антивируса, который каждый раз после установки iRedMail приходится выкидывать;
    — установка с помощью скрипта, что в дальнейшем усложняет обновление iRedMail.
    Было бы значительно лучше, если бы его оформили в виде пакетов deb/rpm.

  60. Добрый день!
    Пытался все настроить по вашей статье, но не получается.
    Сейчас при установке iRedMail при выборе http сервера нет Apache, есть только 2 пункта выбора «Nginx» и «без сервера».
    Пробовал установить с начала Apache, а потом все по вашей статье, не работает.

  61. Не получается что?

  62. Всем привет.
    В первую очередь благодарю автора за подробнейшую инструкцию. Молодец!

    Автор измени несколько ошибок в статье.
    1) Так же не рекомендую отключать firewalld, если не хотите настраивать iptables вручную, iredmail автоматически настраивает iptables (firewalld).

    2) Alias /postfixadmin /var/www/postfixadmin

    Теперь инструкция для тех кто хочет использовать описанный тут метод (iRedMail + postfixadmin).
    В новых версия iRedMail нет Apache, изменена структура базы vmail (из-за чего нет возможности использовать postfixadmin).
    Если же просто скачать iRedMail-0.9.5-1.tar.bz2 и начать делать по статье, при запуске # bash iRedMail.sh сразу получите ошибку.

    md5sum: misc/iRedAdmin-0.4.2.tar.bz2: FAILED open or read
    misc/iRedAPD-1.5.0.tar.bz2: No such file or directory
    md5sum: misc/iRedAPD-1.5.0.tar.bz2: FAILED open or read
    misc/roundcubemail-1.1.1-complete.tar.gz: No such file or directory
    md5sum: misc/roundcubemail-1.1.1-complete.tar.gz: FAILED open or read

    Для установки делаем следующее:
    # wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.5-1.tar.bz2
    # tar xjf iRedMail-*
    # cd /root/iRedMail-0.9.5-1/pkgs/misc/
    # wget http://iredmail.org/yum/misc/roundcubemail-1.2.0-complete.tar.gz
    # wget http://iredmail.org/yum/misc/iRedAPD-1.9.1.tar.bz2
    # wget http://iredmail.org/yum/misc/iRedAdmin-0.6.3.tar.bz2
    # cd ..
    # mcedit get_all.sh
    Тут полностью комментируем функцию fetch_misc()
    и строчку check_status_before_run fetch_misc && \
    # cd .. && bash iRedMail.sh

    готово. Далее по теме 😉

    Удачи бро!

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

    • ура получилось ))

      • Как оказалось, немного поспешил радоваться ))

        что то не так с «2) Alias /postfixadmin /var/www/postfixadmin»?

        у меня на етапе «заходим по адресу http://имя_вашего_сервера/postfixadmin/setup.php и запускаем установкенама

        сообщяет «Not Found
        The requested URL /postfixadmin/setup.php was not found on this server.»

        в когда захожу на «мой_айпи5.2/postfixadmin/index.php» говорит The Postfix Admin directory layout changed.

        Please update your webserver config so that the DocumentRoot or Alias points to the directory «public».

  63. А я в итоге забил на iRedMail.
    Потому что в CentOS-6 он работает великолепно, а в седьмом вылязят косяки.

    Даже FailBan и тот они не настроили как следует, даже брались на него и оставии настройки на шестой.

  64. > даже не брались на него и оставили настройки на шестой.

  65. Доброго всем.

    Список ссылок, к-ые помогли настроить почтовый сервер

    Own mail server based on Dovecot, Postfix, MySQL, Rspamd with Redis, Unbound dns on Debian dkim spf let’s encrypt certonly headers cleanup Mailman VmailManage MailAdmin thomas-leister.de/en/mailserver-debian-stretch/
    Install Postfix on Ubuntu with Dovecot, MySql, Nginx, Postfixadmin, Roundcube, Phpmyadmin linoxide.com/webserver/install-lemp-ubuntu/ + linoxide.com/mail/install-configure-postfix-ubuntu/ + linoxide.com/mail/configure-postfix-webmail-ubuntu/ + linoxide.com/linux-how-to/install-letsencrypt-ubuntu/
    Почтовый сервер postfix + dovecot + mysql база + postfixadmin + roundcube + dkim на CentOS spf dmark очистка serveradmin.ru/nastroyka-postfix-dovecot-centos-7/
    Настройка POSTFIX с объяснениями параметров maxblogs.ru/articles/nastroika-postfix
    Setting a mail server Postfix Dovecot Postfixadmin Nginx PHP MySQL Rspamd Unbound dns Redis Roundcube DKIM SPF DMARC let’s encrypt linuxize.com/series/setting-up-and-configuring-a-mail-server/
    Настройка связки Postfix Dovecot PostfixAdmin MySQL примеры конфигурационных файлов blog.bissquit.com/tag/postfix/
    Postfix Dovecot LDAP AD Active Directory SPF DKIM DMARC Postgrey 4skill.ru/tag/postfix/
    Debian 9 Stretch MAIL Server server-world.info/en/note?os=Debian_9&p=mail&f=1
    Install a complete mailserver on Debian 8/9, featuring Postfix, Dovecot, MySQL, Spamassassin, ClamAV, Roundcube and Fail2ban lmtp vorkbaard.nl/installing-a-mailserver-on-debian-8-part-1-introduction/
    Установка и настройка Postfix, dovecot и postfixadmin apache автоответчик DKIM spam спам ограничения restrictions mlinit.net/postfix/

  66. Простите за флуд но я и сдесь напишу, может кто подскажет, есть iredmail на нём несколько доменов и у каждого из них свой ip, тоесть domain1.org — 1.1.1.1 domain2.org — 2.2.2.2 и получается что при отправке с domain2.org — 2.2.2.2 на условно mail.com то если посмотреть детализацию письма на mail.com видем в полях «Received: from» и «by mail» domain1.org — 1.1.1.1. тоесть, как заставить Postfix или куда копать, не использовать при отправке default hostname, а каждый домен был независимым транспортом и при этом в письме не висели хвости default hostname. Буду очень признателен за подказку уже весь инет перерил, спс.

  67. Максим

    Здравствуйте!

    Подскажите пожалуйста, как прикрутить phpLdapAdmin к iRedmail0.9.8 (NGINX+LDAP). Нет опыта настойки NGINX, вторую неделю бьюсь — ничего не выходит. На форуме https://forum.iredmail.org/topic14529-install-phpldapadmin-nginx.html есть вопрос на эту тему, но созданием простой символьной ссылки вопрос не решается и при запросе в браузере https://xxx.xxx.xxx.xxx/phpldapadmin — вылезает ошибка Fatal error: Call to a member function getValue() on a non-object in /usr/share/phpldapadmin/lib/page.php on line 379. Помогите пожалуйста

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

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.