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

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

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

Онлайн-курс по устройству компьютерных сетей

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

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

Введение

С почтовыми серверами я знаком достаточно хорошо, лично настраивал их с нуля много раз, постоянно администрирую. При этом всегда использовал 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.cf - message_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.

Онлайн-курс по устройству компьютерных сетей.

На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Помогла статья? Подписывайся на telegram канал автора

Анонсы всех статей, плюс много другой полезной и интересной информации, которая не попадает на сайт.

Автор Zerox

Владимир, системный администратор, автор сайта. Люблю настраивать сервера, изучать что-то новое, делиться знаниями, писать интересные и полезные статьи. Открыт к диалогу и сотрудничеству. Если вам интересно узнать обо мне побольше, то можете послушать интервью. Запись на моем канале - https://t.me/srv_admin/425 или на сайте в контактах.

322 комментария

  1. Доброго, наконец у меня получилось подружить благодаря этой статье свой почтовик с майлом и яндексом, но к сожалению gmail противится и не хочет дружить с нами. При отправке письма с gmail возвращается сообщение:
    (Gmail)
    "Ответ удаленного сервера:
    550 Please turn on SMTP Authentication in your mail client. mail-ed1-f52.google.com [209.85.208.52]:62684 is not permitted to relay through this server without authentication."
    В самом postfix вроде как включил, но разницы никакой
    smtpd_sasl_auth_enable = yes
    smtpd_sasl_security_options = noanonymous
    smtpd_tls_auth_only = yes

    А при отправке письма со своего почтовика вижу письмо со следующим содержанием:
    (Postfix)
    "Diagnostic-Code: X-Postfix; Host or domain name not found. Name service error
    for name=gmail.ru type=AAAA: Host found but no data record of requested type"
    Может кто сталкивался? может кто нить объяснить, что они от меня требуют?

    • У вас в логе домен gmail_ru, который не резолвится в IP адрес.

      Name service error for name=gmail.ru type=AAAA: Host found but no data record of requested type

      Вы ошиблись с доменом. Должен быть .com, а не .ru

      • Да и в правду, перепутал домены, было ru, не заметил.

        Подскажите что нужно сделать что бы gmail на мой почтовик письма слал?
        Gmail при отправки письма выдаете сообщение:
        "Ответ удаленного сервера:
        550 Please turn on SMTP Authentication in your mail client. mail-ed1-f52.google.com [209.85.208.52]:62684 is not permitted to relay through this server without authentication."

        В самом postfix вроде как включил, но разницы никакой
        smtpd_sasl_auth_enable = yes
        smtpd_sasl_security_options = noanonymous
        smtpd_tls_auth_only = yes

        • Гугл прямо пишет, что вы пытаетесь отправить через него письмо не пройдя аутентификацию. Это фрагмент лога с попытки отправить вами письмо через gmail. Это не лог его отправки к вам.

  2. Василий

    Доброго дня, подскажите пожалуйста, есть внутренний домен орг-ии group.ru и внешняя почта на домене яндекса с таким же именем.
    Поднял почтовый сервер, на втором уровне домена, имя домена соответственно другое, всё отлично работает, за исключением того что письма не уходят на внешку яндекса, именно с тем именем что и домен внутри сети.
    По логам postfix лезет на кд, но не достукивается, хотя все нужные порты открыты, по телнету доступно, ну и как сказал проблема только с этим доменом.
    Я так думаю что проблема либо в днс, либо в самих настройках postfix, как ему указать что, group.ru это именно внешняя почта яндекса, а не доменное имя внутри сети...

    May 19 12:42:11 mail postfix/10025/smtpd[10765]: disconnect from localhost[127.0.0.1] ehlo=1 mail=1 rcpt=1 data=1 quit=1 commands=5
    May 19 12:42:11 mail amavis[2107]: (02107-01) Passed CLEAN {RelayedInternal}, ORIGINATING LOCAL [192.168.0.168]:57360 ESMTP/ESMTP ->
    May 19 12:42:11 mail postfix/amavis/smtp[10762]: 4QN0hM0x3Lz3ckwj: to=, relay=127.0.0.1[127.0.0.1]:10026, delay=0.54, delays=0.08/0.02/0.0>
    May 19 12:42:11 mail postfix/qmgr[4916]: 4QN0hM0x3Lz3ckwj: removed
    May 19 12:42:11 mail postfix/smtp[10766]: connect to group.ru[192.168.0.6]:25: Connection refused
    May 19 12:42:11 mail postfix/smtp[10766]: connect to group.ru[192.168.0.23]:25: Connection refused
    May 19 12:42:11 mail postfix/smtp[10766]: connect to group.ru[192.168.0.3]:25: Connection refused
    May 19 12:42:11 mail postfix/smtp[10766]: 4QN0hM493Tz3cq6N: to=, relay=none, delay=0.05, delays=0.01/0.03/0/0, dsn=4.4.1, status=deferred >

    • Проблема с DNS. Postfix тут не при чём. Выполните команду на почтовом сервере:
      dig group.ru MX
      и увидите, куда почтовый сервер пытается отправить почту. Вам нужно локально решить вопрос с DNS, чтобы почтовый сервер обращался туда, куда нужно вам.

      • Василий

        Спасибо за ответ, да странно получается...
        когда пишу просто домен:

        dig group.ru MX

        ; <> DiG 9.16.37-Debian <> group.ru MX
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23127
        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

        ;; OPT PSEUDOSECTION:
        ; EDNS: version: 0, flags:; udp: 4000
        ;; QUESTION SECTION:
        ;group.ru. IN MX

        ;; AUTHORITY SECTION:
        group.ru. 3600 IN SOA dc.dmngroup.ru. hostmaster.dmngroup.ru. 24 900 600 86400 3600

        ;; Query time: 0 msec
        ;; SERVER: 192.168.0.6#53(192.168.0.6)
        ;; WHEN: Mon May 22 08:54:36 +04 2023
        ;; MSG SIZE rcvd: 97

        а если c полным именем сервера, тогда он отдаёт нужные значения, внутренний и внешний адрес

        dig nail.group.ru MX

        ; <> DiG 9.16.37-Debian <> mail.group.ru MX
        ;; global options: +cmd
        ;; Got answer:
        ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30630
        ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 3

        ;; OPT PSEUDOSECTION:
        ; EDNS: version: 0, flags:; udp: 4000
        ;; QUESTION SECTION:
        ;mail.group.ru. IN MX

        ;; ANSWER SECTION:
        mail.group.ru. 3600 IN MX 10 mail.group.ru.

        ;; ADDITIONAL SECTION:
        mail.group.ru. 3600 IN A 192.168.0.100
        mail.group.ru. 3600 IN A 11.11.11.11

        ;; Query time: 0 msec
        ;; SERVER: 192.168.0.6#53(192.168.0.6)
        ;; WHEN: Mon May 22 08:59:06 +04 2023
        ;; MSG SIZE rcvd: 90

        • В общем, тут проблема с DNS. Со стороны посоветовать нечего, так как её решение зависит от структуры вашей локальной сети. Надо аккуратно разобраться с DNS записями и настроить так, как надо.

          • Василий

            В общем решил таким образом. 

            nano /etc/postfix/transport_map
            yagroup.ru smtp:[mx.yandex.ru]
            postmap /etc/postfix/transport_map
            systemctl restart postfix

  3. Добрый день. 2 вопроса. А) По поводу SSL -

    Получил 3 файла c типом 1) CA-BUNDLE, 2) Key, 3) PKCS #7.
    Добавил (1ый и 2ой) их вместо iRedmail.key и iredmail.crt

    После этого на сайт не заходит, нужны еще какие то действия, для корректной работы?

    Б) По поводу SPAM - письма в спам приходят, SSL поможет с этим? DNS вроде все прописал и DMARC... SPF, кроме DKIM.

    • 1. CA-BUNDLE это не сертификат. Это цепочка сертификатов для подтверждения доверия. Сам сертификат должен быть отдельно, как .crt файл. Но каждый регистратор может свой набор файлов присылать. Лучше где-то в его документации посмотреть точно, что есть что.

      2. SSL на спам никак не влияет, так что точно не поможет. А вот DKIM обязательно сделайте, это точно может помочь. Но всё равно не даёт 100% гарантии, что письма не будут попадать в спам. Я много раз сталкивался, что всё сделано на 100% верно, но письма попадают в спам.

      • Больше спасибо, за ответ. Обновил DNS - теперь есть DKIM, SPF, DMARK, подожду 48 часов проверю.
        PS. подписался в телеге )

  4. Большое спасибо за статью, но увы с выходом новой версии 1.5.2 и попытка привязать postfixadmin приводит к нарушению БД vmail, что в свою очередь приводит к тому, что почтовым сервером не возможно более управлять.

    Был бы очень благодарен за предоставления решения по подключению postfixadmin к новой версии iRedMail.

  5. Андрей

    Здравствуйте Zerox!
    Огромное спасибо за цикл статей по почтовым серверам. Очень познавательно и доходчиво написано.
    В свете последних изменений в iRedmail, а именно прекращение поддержки Apache, не могли бы Вы актуализировать (или может даже написать новую) аналогичную статью? Думаю было бы очень полезно увидеть howto на CentOS 8 + iRedmail + nginx + postfixadmin.
    P.S. На nginx смотрю (прошу прощения) как баран на новые ворота. Всю свою админскую жизнь юзаю исключительно апач, так уж сложилось. Поэтому нарисовалась вот такая своего рода просьба ))

    • Андрей

      А, и еще не плохо было бы прикрутить Let's Encrypt + autorenewal ))

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

  6. Доброго времени суток! На почтовый сервер выделил 2 Тб жесткого диска, а в админке(iredadmin) видит только 1 Гб.
    Как взять(сделать) все полтора Тб на доменный аккаунт?

  7. Добрый день! На рабочий почтовый сервер как установить купленный сертификат Comodo PositiveSSL?
    В комплекте продавец выдал
    SSL-Сертификат,
    Ключ SSL-сертификата,
    Цепочка SSL-сертификатов,
    CSR запрос на получение сертификата,

    Спасибо.

    • Если там сейчас указан какой-то другой сертификат, то можно просто заменить файлы сертификата. Посмотреть, какой используется, можно в конфиге postfix - /etc/postfix/main.cf. Это параметры: smtpd_tls_key_file и smtpd_tls_cert_file.

      • Добрый день! Спасибо, открыл и вижу:
        smtpd_tls_key_file = /etc/pki/tls/private/iRedMail.key
        smtpd_tls_cert_file = /etc/pki/tls/certs/iRedMail.crt

        Логично заменить iRedMail.key на Ключ SSL-сертификата и iRedMail.crt на SSL-Сертификат ?

        А в настройках DNS есть запись default._domainkey ТXT

        'v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCfYPW3/lCE9tbY539FXHbifAE7sgJ9EVFRQ52Pc4vRg4YSYiU+0sGrSDChaleRD8IFIkoBFt4jDe8byx/Z5VVgS79kDD6ozQuV/YgjwJbIbzTsuRlg1R1HF88gh/49rZAq84oZgX3dfkmryMckQR83ckJ9riMysBVHA'

        уже не помню зачем она там и нужна ли вообще, ее тоже нужно тоже менять на что-то? Сравнил эту запись с файлом /etc/pki/tls/private/iRedMail.key и /etc/pki/tls/certs/iRedMail.crt не совпадает запись .

  8. Добрый день! Для рабочего почтового сервера купил сертификат Comodo PositiveSSL. Продавец в комплекте выдал SSL-Сертификат, Ключ SSL-сертификата, Цепочка SSL-сертификатов, CSR запрос на получение сертификата. Как установить данный сертификат?

  9. Доброго времени суток! Спасибо за проделанную работу с пояснениями. У меня есть вопрос, к примеру где забиваем в Оутлуке сервер вх/исх почты. Там что указывать? К примеру у mail.ru "imap(pop).mail.ru и т.д", если почта поднята на example.com?! Вообще по умолчанию при поднятии iRedmail уже имеется запущенный TLS и SSL или опять таки нужно их включать или генерировать. Буду признателен за помощь!

    • Указывать нужно фактическое имя сервера, по которому на него можно попасть. example.com это домен, который обслуживает почтовый севрер. А для самого сервера сделана отдельная A запись в DNS. Вот ее и надо указывать.

      "уже имеется запущенный TLS и SSL" что значит запущенный? Это просто сертификаты. Их не надо запускать. Они скорее всего самоподписанные и в некоторых почтовых клиентах могут не работать. Надо выпускать и использовать валидные сертификаты. Но как это сделать в iredmail, не знаю. Давно его не использовал. В обычном почтовом сервер вот так - https://serveradmin.ru/nastrojka-ssl-tls-sertifikatov-lets-encrypt-v-postfix-i-dovecot/

  10. Zdrastvuyte Zerox)ochen interesniy post.

    hotelos bi poprobovat iredmail + proxmox secured mail gateway
    v danniy moment release iredmail 1.32,pitalis vi postavit postfixadmin v novih releazah na Debian/Ubuntu?
    chto ya yeshe zametil chto Iredmail 0.9x i uje bolee novie relizi - tam raznie tablizi v mysql.Vam prihodilos upgradit s starih relizov nan novie?
    prohodit li vse gladako?:)(nu v platnih versiyah ponyatno chto da..interesno pro besplatnie)
    zaranee blagodaren

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

  11. Подскажите, равернул сей продукт, все хорошо-все ок. по умолчанию квота стоит в 1 гигабайт на ящик. у чела - закончилась квота и его клиент перестал получать и отправлять почту, пишет типа лимит исчерпан. как настроить так, что бы в ящике на сервере автоматом удалялись старые письма взамен новым при фиксированной квоте? увеличивать квоту - не выход из положения. все клиенты работают через imap

    • Насколько я знаю, в бесплатной версии такого функционала нет. А как imap связан с квотами? У меня отлично работают ящики по imap даже с размером 30-50 Гб.

      • Геннадий

        не так наверное задал озвучил вопрос. Вообщем после разворачивания данного сервака и запустив его в бой столкнулся с такой темой: при создании через iredadmin пользователей, каждому я выставил лимит на квоту в 1 гигабайт на ящик. Вот столкнулся с проблемой, когда у сотрудника ящик переполнился (т.е. лимит исчерпался по квоте). Я думал что сервер сам очищает более старые письма взамен приходящим новым, но нет. Просто перестает принимать и отправлять почту, информируя юзера о исчерпанном лимите (объеме) ящика.

        • Я понял, но так везде квоты работают. Сам сервер не будет удалять старую почту. Это нужно делать либо вручную, либо какими-то сторонними средствами.

          • Геннадий

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

            • Так это нигде не работает, если речь идет о дисковых квотах. А тут именно они.

              • Геннадий

                эх пришлось скрипт писать опираясь на дату создания. условие выбрал = файлы старее 3 месяцев - нах. )) квоты убрал ибо в них нет смысла вообще.....

                • Сурово. А что, почта старше трех месяцев пользователям не нужна?

                  • Геннадий

                    70 ящиков, жесткий на 500 гигабайт, место под почту при всем желании 400 гигабайт. 400 делим на 70 =5,7 гигабайт на юзера. в месяц примерно активные учетки занимают около 3-5 гигабайт. из расчета что когда то прийдут еще юзеры то на одно лицо примерно 4 гигабайта и выходит ))) добавлять жесткий и монтировать все это в lvm - вообще не хочется )) да и новый год скоро ))) вообщем лень )))

  12. Дмитрий

    Добрый день, спасибо большое за статью. Столкнулся с проблемой которую не могу решить длительное время. (готов уже заплатить за решение)
    По наследству достался почтовый сервер iRedMail. iredadmin - не настроен и не использовался, postfixadmin - аналогично.
    Сотрудники могут получать доступ к web интерфейсу через SOGO. Как я понимаю настроен ldap, так как можно менять пароль пользователя в домене (windows AD)и он меняется на sogo
    Но при создании нового пользователя в AD и указании MAIL, авторизация на SOGO проходит, но пишет не выбрано не одной папки. Соответственно при настройки нового пользователя в Microsoft Outlook авторизация по imap не проходит (

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

      • Дмитрий

        К сожалению не работает ((

      • Дмитрий

        При настройке нового пользователя в MicrosoftOutlook принимат пароль но при авторизации пишет ошибку
        "Вход на сервер входящей почты (IMAP): Сервер неожиданно завершил соединение. Возможные причины: ошибки сервера или сети, длительный период отсутствия активности.

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

  13. Александр

    У меня Iredmail интегрирован с Windows AD, пользователи почты проверяются в AD. Я настроил перенаправление почты через recipient_bcc_maps = hash:/etc/postfix/recipient_bcc_map
    user1@domain.com user2@domain.com
    Как сделать чтобы можно было перенаправить с одного ящика двум или трем? Указывал через запятую или пробел не работает.
    Через алиасы хочет только локальных пользователей почту перенаправлять.

  14. Евгений

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

    • В принципе, fetchmail работает сам по себе. Он именно собирает почту с внешних ящиков. А вот отправлять через эти ящики, это уже не для fetchmail задача, если я не ошибаюсь. Это можно через postfix настроить. В платной версии iredmail по-моему этот функционал есть. Если хочется все это реализовать бесплатно, то надо свой почтовик собирать на базе postfix и там реализовывать.

      • Евгений

        для отправки писем нужно настроить релей... мануалы на эту тему нашел, но пока руки еще не дошли.
        с fetchmal'ом бьюсь вторую неделю! почту он видит, а вот передать дальше не может! ((
        нужно ли что-то менять в настройках, если входящая почта будет только через fetchmail? настройки зоны и тп(все то, что во всех мануалах пишется делать до установки iredmail) не делал, тк такой задачи не будет.

      • Евгений

        iredmail и есть на базе postfix'a, вот только никак не получается транспорт настроить... гугл дает варианты и sendmail, и procmail, и dovecot, но ничего не хочет работать (((

  15. Здравствуйте!
    Есть ли возможность настроить whitelist на исходящие письма?
    Стоит задача: есть N-ое количество почтовых адресов, необходимо сделать так, чтобы письма ходили только среди них.
    Все "левые" адреса должны блокироваться. Письма не должны уходить на левые адреса и приходить с левых адресов.
    С входящими письмами все понятно. А вот как быть с исходящими?

  16. Настраиваю для CentOS 8, последняя версия из git iRedMail. Если до настраивать postfixadmin, то много чего не актуально уже из данной статьи, но если понимать как работает взаимосвязь postfix и mysql, то справиться можно легко. Касательно логов. И алиас (origin_to) и мейлбокс (to) в логах присутствует.

  17. Здравствуйте.
    Дилетантский вопрос, подскажите как по умолчанию сделать открытие Roundcube при обращении к доменному имени?
    Есть под домен https://mail.gkouschool2vlz.ru, при переходе на него открывается страница Apache
    А мне надо чтобы по умолчанию при переходе на https://mail.gkouschool2vlz.ru открывался https://mail.gkouschool2vlz.ru/mail, он же RoundCube
    Заранее спасибо.

    • Мне так трудно посоветовать, потому что не помню, что точно внутри у iredmail. Настроить так, как вы хотите, не слишком сложно, но если вы не разбираетесь в устройстве web серверов, то самому вряд ли получится. Чтобы подсказать, надо разворачивать iredmail и смотреть, как он изнутри устроен в плане настроек веб сервера.

  18. Владимир, здравствуйте, прошу по возможности прояснить еще такой момент: внешние клиенты обращаются к почтовику по его dns имени, например mail.organization.com, установлены сертификаты и всё отлично. Но если прописать на внутреннем DNS для локальных клиентов то же самое имя, но уже в частной сети (Split-brain DNS), то сертификаты конечно же ругаются. Как быть в таком случае, пусть внутренние клиенты и дальше обращаются по локальному адресу, либо через "наружу", чтоб не было проблем с сертификатами?

    • Не понял, в чем ошибка для внутренних клиентов. Они должны обращаться по тому же имени - mail.organization.com. А имя должно резолвиться в локальный ip адрес, а не внешний. Проблем с сертификатом в этом случае не должно быть.

  19. Владимир

    Здравствуйте!
    Настроил сервер, все отлично работает.
    Внутри сети почтовые клиенты подключаются к серверу по ip 192.... либо mx.office.lan, мобильные клиенты подключаются к белому домену exemple.com, там нат, идет проброс портов на локальный сервер, но когда эти мобильные клиенты подключаются к wi-fi сети предприятия, то они не могут получать, отправлять почту.
    Как обойти эту проблему?

    • По хорошему это делается на уровне dns. Всем прописываете один и тот же адрес сервера, например mx.company.ru. В интернете этот адрес резолвится во внешний ip, в локальной сети во внутренний. И никаких проблем.

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

  20. Здравствуйте! Извините, если задаю уже существующий вопрос, но в основной массе мануалов почему-то не говорится о том, как настроить почтовый сервер с внешним доменом скажем test.com, но пользователей он получает с AD-домена test.local - будет ли почтовый сервер нормально воспринимать оба домена, либо это нужно где-то явно задавать? И какой домен прописывать непосредственно у пользователей той же AD, чтоб не было проблем с отправкой почты наружу?

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

  21. Подскажите если не сложно
    Есть домен, и как следствие сайт. Регистратор он же хостер - сайт размешен у хостера. МХ и PTR записи указывают на сервера хостера. Но есть желание разместить почтовый сервер у себя (есть белый IP).
    Вопросы в следующем:
    МХ запись меняется у регистратора/хостера?
    PTR запись это к своему прову, выдавшему белый IP ?
    Есть нюанс , белый IP на шлюзе FreeBSD, с настроенным NAT/IPFW, соответственно если сервер размещать внутри сети нужно редиректить порты 25 и 110 или еще какие, или только 25?

    • MX запись меняется в панели управления DNS. Она может быть как у регистратора, так и у хостера. Зависит от настроек.
      PTR устанавливает провайдер, выдавший IP.
      Редиректы нужно делать на те порты, что будут использоваться. Может быть разный набор, но точно 25 надо.

      • Спасибо за ответы.
        (для примера example.com)
        получается для создания МХ записи , мне надо создать домен следующего уровня (mx.example.com), или в МХ указывается тот же домен (example.com), что зарегистрирован у регистратора? И получится что А-запись указывает на домен (example.com) с адресом хостера, а МХ-запись будет указывать на тот же домен(example.com) но с адресом моего прова. И тогда PTR-запись должна указывать на домен (example.com) или на имя сервера (mail01.example.com)

        а если редиректить 465, 587, 995, то email-клиенты не смогут подключаться к серверам в инете или я путаю что-то?

  22. Здравствуй, такой вопрос если создавать почту на двух поддоменах одного домена типа department1.example.com и department2.example.com, то какую сделать обратную зону? чтобы оба поддомена не попали в спам?

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

  23. Здравствуйте! Извиняюсь если такой вопрос уже проскакивал где-то но хочу немного прояснить картину. вот у меня установлен и настроен IREDMAIL вместе с сертификатом letsencrypt. Всё работает всё бы вроде ничего но есть одно НО! Если я на шлюзе закрываю 25 порт а открываю 587 то почта не приходит ко мне на сервер. Уходит нормально и без проблем. Открываю 25 порт всё норм! Так вот непонятно почему с сертификатом не хочет работать через защищённый SSL порт? И 465 порт вообще не открывается на сервере. С 465 портом я так понимаю работает только Outllook остальные клиенты вроде как могут работать и на 587 порту.

    • Смотрите. Основной порт для обмена почтой между почтовыми серверами - 25. Все остальные это только для клиентов. Так что если заблокировать 25-й порт, другие сервера не смогут до вас достучаться.

  24. Спасибо за статью.Подскаэите пожалуйста по какой статье всётаки лучше поднять корпоративный сервер,по этой или по этой?
    https://serveradmin.ru/nastroyka-postfix-dovecot-centos-7/#comment-11786

    • Я рекомендую подождать пару дней. Я сейчас работаю над новой, актуальной статьей по настройке почтового сервера на базе Centos 8. Она выйдет либо завтра, либо послезавтра, если ничто серьезно не отвлечет.

      • Спасибо.А почему Centos а не Debian?

        • Debian в enterprise почти нигде не используется. Подавляющее большинство - centos или rhel, реже ubuntu. Все остальное это мизерная часть. Я стараюсь работать больше с тем, что в тренде. Это эффективнее.

          • Спасибо,попробую Centos,просто Debian больше нравится.В новой статье случайно не пойдёт речь о Zimbra?

            • Нет, это обычная связка postfix + dovectot. То же самое, что и для centos 7, просто все обновленное. Но в целом, ничего нового.

  25. Александр

    Не проходит дальше этой строки
    updating to version 373 (MySQL)...

    DEBUG INFORMATION:
    Invalid query: Data truncated for column 'description' at row 3

  26. Добрый день. Есть проблема на сервере с переадресацией. При установке сервера был добавлен один домен почты и переадресация писем на почтовые ящики данного домена, а так же с ящиков этого домена вовне работает замечательно. Понадобилось добавить еще один домен на тот же сервер. Это было сделано через postfixadmin. Почта ходит, но переадресация для этого домена не работает. Ни при попытке переадресовать входящие сообщения на внешние сервера, ни при попытке переадресации в ящики внутри этого домена. Ума не приложу куда рыть. Можете подсказать, на что обратить внимание? Спасибо.

    • Почтовый лог посмотреть. В общем случае наличие еще одного домена и его настройки никакого принципиального отличия от настроек первого домена не имеют. Все работает и настраивается так же.

  27. Подскажите пожалуйста. Устанавливал почтовый сервер по вашей статье. Все работает штатно и не ломается уже полтора года. Давно не заходил на сервер, но тут понадобилось добавить почтовый ящик. Я это делаю через postfixadmin обычно, но тут столкнулся с тем, что моя админская учетная запись в postfixadmin не работает — не авторизует как админа. По вашей статье я сделал при начальной настройке админом почтовый аккаунт postmaster. Каким образом при доступе к серверу по ssh возможно изменить администратора для postfixadmin?

  28. Алексей

    Добрый день.
    Споткнулся в самом начале(((

    [root@mail ~]# tar xjf iRedMail-*
    tar (child): bzip2: Функция exec завершилась с ошибкой: Нет такого файла или каталога
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    [root@mail ~]#

    Чаво это? как это? почему?

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

    • у вас минимальный дистр, установите bzip2 :)

  29. Алексей

    Добрый день!
    Владимир, а можно получить такую консультацию. Мне, конечно, стыдно это спрашивать, будучи сис.админом, но боюсь усе поломать.

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

    Ага, это понятно. Но. Вот у меня есть свой сайт на хостинге timeweb, захожу в настройки DNS в настройках домена и вижу там в поле "А" IP-шник. Почтовый сервер собираюсь развертывать в организации где работаю. Тобишь Я могу смело менять его на внешний IP нашей компании?

    P.S.: Жаль тут скрины нельзя загружать(

    • Алексей

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

      • Алексей, если не сложно подробнее. Так же на timeweb сидим, готовлю почтовый внутри сети

  30. Михаил

    Здравствуйте.
    Подскажите, пожалуйста, в чем может быть проблема:
    Стала задача запретить пользователям удалять письма.
    Если я использую локальный acl (т.е. помещаю в каталог к пользователю файл dovecot-acl с содержимым, например, "owner lrwsipka", то запрет на удаление работает и пользователь не может удалить свои письма из веб интерфейса (использую roundcube).
    Но так как пользователей очень много, то данный метод не подходит.
    Глобальный же acl не работает, или я его неверно настраиваю
    Для начала, в файле 90-acl.conf я раскомментировал строку

    plugin {
    acl = vfile:/etc/dovecot/global-acls:cache_secs=300
    }

    Далее создал требуемый каталог и поместил туда файл TRASH с содержимым "owner lrwsipka"
    т.е. по идее, пользователь не может удалять письма из корзины. Однако после перезапуска dovecot ситуация не меняется.

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

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

      • Михаил

        Вся проблема в том, что это только выглядит как почта, а по сути является большим файлохранилищем.
        т.е. происходят некоторые операции. После выполнения операции, скриптами создается почтовый ящик с именем uid'a операции и в него отправляется письмо со ссылкой на внешнюю систему. т.е. пользователь, зная uid может зайти в почтовый ящик и перейти по ссылке на внешний ресурс. При этом, желательно, чтобы письма оставались в ящике и не могли быть удалены. Не спрашивайте почему это сделано в виде почты - таковы требования.
        В принципе, если не получится с глобальным ACL то есть идея прикрутить костыль - добавлять файл dovecot-acl при создании почтового ящика, но я пока не могу разобраться, какой именно сервис создает директории со всем их содержимым.

        • Не понял сути системы, да и не хочу понимать. Дам подсказку, может пригодится. В dovecot есть возможность настраивать общие папки и для них выставлять права доступа. Можно дать доступ только на чтение для конкретной папки и подключить ее в нужные ящики - https://serveradmin.ru/nastroyka-postfix-dovecot-centos-7/#__imap

          • Михаил

            Итак, почитал документацию https://wiki2.dovecot.org/ACL и разобрался.
            Если кому то будет полезно, пишу порядок действий включения глобальных ACL для данной сборки:

            1. правим файл dovecot.conf
            a) Находим раздел plugin {
            b) Ищем комментарий # ACL and share folder
            с) Меняем под ним 2 строки конфигурации на одну acl = vfile:/etc/dovecot/global-acls/

            2. Создаем папку etc/dovecot/global-acls/
            3. В папке global-acls создаем файл по названию почтовой директории, в которой вы хотите ограничивать права для пользователя. В моем случае это INBOX (т.е. Входящие)
            4. Вносим изменения в файл INBOX: вставляем строку owner lrwsipka , т.е. для папки входящие владельцу ящика мы разрешаем все кроме удаления.
            5. Перезапускаем сервис dovecot и все заработало - пользователь в веб интерфейсе не может удалить письма из папки входящие.

            Для других почтовых директорий, делаем по аналогии. Например для корзины создаем файл Trash в папке etc/dovecot/global-acls/ и вносим в него нужные нам права доступа

            Настройки прав доступа можно прочитать в документации https://wiki2.dovecot.org/ACL

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

            Для ограничения прав одного пользователя достаточно поместить в директорию почтового ящика файл dovecot-acl с нужной конфигурацией прав доступа

            Постарался написать как можно подробнее, для таких же страдальцев как и я.

            • Спасибо, полезная информация. В принципе, запрет на удаление писем может быть востребован, но я на практике не встречался. Сразу вижу кучу минусов у такого подхода (работа фильтров, чистка ящика). Требуется реально специфичная задача под это, не типовая для почты.

  31. Вариант 2. вполне возможен и очень вероятен.

    Как я уже писал, все установлено и настроено по Вашей статье. Включая ОС и iptables. Единственное, что в Ваш скрипт я добавил экспорт еще одного интерфейса и адреса и походу скрипта добавлял по аналогии разрешения и запреты. Открыт только 22 порт в локалку. Но во время работы скрипта установки iRedMail, мне было предложено добавить правила из /etc/firewalld/zones/iredmail.xml
    Я согласился.

    Вариант 1. тоже очень вероятен т.к. ns сервера наши, настроены опять же с использованием статей с Вашего сайта.

    Зоны сочинял сам.

    Получилось так. Прошу сильно не пинать. Опыта к сожалению пока ~=0, но пока не прожуешь, не проглотишь.

    cat 39136.ru.zone
    $TTL 86400
    @ IN SOA 39136.ru. 39136.ru.local. (
    18
    43200
    3600
    3600000
    2592000 )

    IN NS ns01.39136.ru.
    IN NS ns02.39136.ru.

    @ IN A 188.43.28.121
    @ IN A 62.78.92.117
    @ IN A 83.234.25.245
    www IN CNAME 39136.ru.

    ns01 IN A 83.234.25.243
    ns02 IN A 83.234.25.244
    ovpn IN A 83.234.25.242
    39136.ru. IN MX 10 mail.39136.ru.
    mail.39136.ru. IN A 83.234.25.245

    и вот так

    cat 25.234.83.in-addr.arpa
    ;
    $ORIGIN 25.234.83.IN-ADDR.ARPA.
    $TTL 86400
    ;
    @ IN SOA ns01.39136.ru. hostmaster.39136.ru. (
    15 ; Serial Number
    43200 ; refresh
    3600 ; retry
    3600000 ; expire
    2592000 ) ; min TTL
    ;
    IN NS ns01.39136.ru.
    IN NS ns02.39136.ru.
    ;
    243 IN PTR ns01.39136.ru.
    244 IN PTR ns02.39136.ru.
    242 IN PTR ovpn.39136.ru.
    245 IN PTR mail.39136.ru.
    ;

    • Мир, в том числе и Яндекс, о ваших ДНС записях ничего не знает. Разбирайтесь с этой проблемой.

      # dig 39136.ru mx
      
      ; <<>> DiG 9.9.4-RedHat-9.9.4-73.el7_6 <<>> 39136.ru mx
      ;; global options: +cmd
      ;; Got answer:
      ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 17446
      ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
      
      ;; OPT PSEUDOSECTION:
      ; EDNS: version: 0, flags:; udp: 4096
      ;; QUESTION SECTION:
      ;39136.ru.			IN	MX
      ;; Query time: 2012 msec
      ;; SERVER: 77.88.8.8#53(77.88.8.8)
      ;; WHEN: Wed Jul 24 14:01:19 MSK 2019
      ;; MSG SIZE  rcvd: 37
      
      • Ой,ой.как это. Вы мне сейчас открываете мир заново. :-) домен зарегистрирован у рег.ру, в панели управления указаны наши днс сервера. Там это называется делегирование домена. Команда диг с нашего днс выводит список корневых серверов. Что то нужно ещё?

        • С моего сервера я не вижу ваши MX записи. На моем сервере указан в качестве DNS сервера Яндекса. Я не знаю, как вы настраивали делегирование dns, но где-то ошиблись. Проверять советую не со своих серверов, а внешних. Вам же с интернетом взаимодействовать, а не с самим собой.

          • На ns серверах в качестве днс (масло масленое) у меня указаны 127.0.0.1 (логика была - чтобы ходили сами через себя (они же сами днс сервера))
            У обоих ( и у мастера и у слейва). Да. Это логично. Не с самим собой общаться. Сейчас как раз перепроверяю все, что можно. В логах слейва сыпятся
            managed-keys-zone: Active key unexpectedly missing from .
            в перемешку с automatic empty zone: 10.IN-ADDR.ARPA и
            checkhints: b.root-servers.net/A (199.9.14.201) extra record from hints

  32. Здравствуйте. Подскажите пожалуйста.

    Имею сервер, настроенный по статье выше.

    С сервера на яндекс почту письма уходят, с яндекса на сервер - нет.

    Возможно проблема с MX?

    C:\Users\wa00>nslookup -q=mx 39136.ru
    ╤хЁтхЁ: UnKnown
    Address: 192.168.1.33

    39136.ru MX preference = 10, mail exchanger = mail.39136.ru
    39136.ru nameserver = ns02.39136.ru
    39136.ru nameserver = ns01.39136.ru
    mail.39136.ru internet address = 83.234.25.245
    ns01.39136.ru internet address = 83.234.25.243
    ns02.39136.ru internet address = 83.234.25.244

    wa00@ws03:~$ dig 39136.ru

    ; <> DiG 9.10.3-P4-Ubuntu <> 39136.ru
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28805
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 2, ADDITIONAL: 3

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;39136.ru. IN A

    ;; ANSWER SECTION:
    39136.ru. 86400 IN A 62.78.92.117
    39136.ru. 86400 IN A 188.43.28.121
    39136.ru. 86400 IN A 83.234.25.245

    ;; AUTHORITY SECTION:
    39136.ru. 86400 IN NS ns02.39136.ru.
    39136.ru. 86400 IN NS ns01.39136.ru.

    ;; ADDITIONAL SECTION:
    ns01.39136.ru. 86400 IN A 83.234.25.243
    ns02.39136.ru. 86400 IN A 83.234.25.244

    ;; Query time: 1 msec
    ;; SERVER: 192.168.1.33#53(192.168.1.33)
    ;; WHEN: Wed Jul 24 12:24:21 STD 2019
    ;; MSG SIZE rcvd: 155

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

      • Смотрю tailf /var/log/maillog

        Вот так отправляет сообщение, используя smtp (один наш сервер, через наш почтовый)
        Вроде норм, письмо уходит.

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

        Jul 24 16:24:12 mail postfix/submission/smtpd[13602]: connect from unknown[192.168.1.250]
        Jul 24 16:24:12 mail postfix/submission/smtpd[13602]: Anonymous TLS connection established from unknown[192.168.1.250]: TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)
        Jul 24 16:24:12 mail postfix/submission/smtpd[13602]: 45tqfh65m3zB0Rv8: client=unknown[192.168.1.250], sasl_method=PLAIN, sasl_username=robot@39136.ru
        Jul 24 16:24:12 mail postfix/cleanup[13610]: 45tqfh65m3zB0Rv8: message-id=
        Jul 24 16:24:12 mail postfix/qmgr[1776]: 45tqfh65m3zB0Rv8: from=, size=951, nrcpt=1 (queue active)
        Jul 24 16:24:12 mail postfix/submission/smtpd[13602]: disconnect from unknown[192.168.1.250]
        Jul 24 16:24:13 mail postfix/10025/smtpd[13617]: connect from localhost[127.0.0.1]
        Jul 24 16:24:13 mail postfix/10025/smtpd[13617]: 45tqfj39tBzB0RvK: client=localhost[127.0.0.1]
        Jul 24 16:24:13 mail postfix/cleanup[13610]: 45tqfj39tBzB0RvK: message-id=
        Jul 24 16:24:13 mail postfix/qmgr[1776]: 45tqfj39tBzB0RvK: from=, size=2031, nrcpt=1 (queue active)
        Jul 24 16:24:13 mail postfix/10025/smtpd[13617]: disconnect from localhost[127.0.0.1]
        Jul 24 16:24:13 mail amavis[7563]: (07563-02) Passed CLEAN {RelayedInternal}, ORIGINATING LOCAL [192.168.1.250]:36332 -> , Queue-ID: 45tqfh65m3zB0Rv8, mail_id: b9mslEYr1l4Y, Hits: 0.536, size: 951, queued_as: 45tqfj39tBzB0RvK, dkim_new=dkim:39136.ru, 583 ms, Tests: [ALL_TRUSTED=-1,MISSING_DATE=1.396,MISSING_MID=0.14]
        Jul 24 16:24:13 mail amavis[7563]: (07563-02) Passed CLEAN, -> , Hits: 0.536, tag=2, tag2=6.2, kill=6.9, queued_as: 45tqfj39tBzB0RvK, L/0/0/0
        Jul 24 16:24:13 mail postfix/amavis/smtp[13615]: 45tqfh65m3zB0Rv8: to=, relay=127.0.0.1[127.0.0.1]:10026, delay=0.65, delays=0.04/0.01/0/0.6, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 45tqfj39tBzB0RvK)
        Jul 24 16:24:13 mail postfix/qmgr[1776]: 45tqfh65m3zB0Rv8: removed
        Jul 24 16:24:14 mail postfix/smtp[13618]: Untrusted TLS connection established to mx.yandex.ru[87.250.250.89]:25: TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)
        Jul 24 16:24:22 mail postfix/smtp[13618]: 45tqfj39tBzB0RvK: to=, relay=mx.yandex.ru[87.250.250.89]:25, delay=9.3, delays=0.01/0.03/0.66/8.6, dsn=2.0.0, status=sent (250 2.0.0 Ok: queued on mxfront9o.mail.yandex.net as 1563960262-diLaj5lJ7D-OEXKehF8)
        Jul 24 16:24:22 mail postfix/qmgr[1776]: 45tqfj39tBzB0RvK: removed

        • В логе все нормально, ошибок не вижу. Раз яндекс к вам не подключается, то вариантов только 2:
          1. Неправильно настроены ДНС.
          2. Ошибки в фаерволе и запросы не доходят до почтового сервера.

  33. Дмитрий

    Добрый день периодически падают письма со своего же сервера с таким отбойником, стоит последний iredmail
    Как с этим бороться network прописал.

    Recipient address rejected:
    SMTP AUTH is required for users under this sender domain

    • Тут четко указано, что делать. Требуется авторизация, для совершения действия. Копайте в этом направлении.

      • Данияр

        Здравствуйте! Подскажите пожалуйста, у нас стоит iredmail на vmware на линуксе, дня три назад почта начала приходить все реже и реже, сейчас вообще встала почта, от нас уходят сообщения а до нас не доходят. Мне кажется забилась виртуалка, но немогу найти подробной инструкции как очистить сообщения .

        • Что значит забилась? Если кончилось свободное место на диске, то надо выяснить, чем оно занято и это почистить. Так наугад вы ничего не сделаете. Надо сначала конкретно понять, в чем проблема.

          • Данияр

            спасибо за оперативность! Не ругайте сильно, я новичек в ИТ, с начала установки почта не чистилась, я считал что если сообщения удалять напрямую на компьютере у кого установлен thunderbird то он удаляется и на серваке, но эти сообщения со всех пользователей дублируются директору а там сообщений примерно 100 000 было , я их удалил в thunderbird и теперь все встало, я и линукс то незнаю , как зайти удалить все соообщения, нашел вашу статью по удалению почты старее 300 дней https://serveradmin.ru/ochistka-i-obsluzhivanie-pochtovoy-bazyi-postfix/ но немогу заходить по каталогам в линуксе и посмотреть где и какая папка. Помогите пожалуйста

            • Вообще, если подключение к серверу идет по imap, то при удалении у пользователя, на сервере они тоже удаляются. Единственное, может они где-то в корзине копятся.

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

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

              • Данияр

                после перезагрузки сервера, при стартевозникает следующая ошибка SMB/CIFS File and Active Directory Server [Fail]. Влияет ли на работу сервера данный плагин? Есть ли у вас возможность зайти и посмотреть в линуксе настройки? или может подскажите как загрузить бэкап виртуалки? Есть бэкап vmdk

  34. Сергей

    Здравствуйте!
    Проблема с вложением файлов в письма пересылаемые и ответ отправителю (почтовый клиент SOGo).
    При вложении появляется сообщение "Ошибка при загрузке файла ( ... )"
    Ошибка возникает при вложении любых файлов. И только когда пересылаешь или возвращаешь отправителю.
    Когда пишешь новое письмо проблем нет.
    Подскажите, где копать?
    Спасибо

  35. Аноним

    Добрый день !

    Ваши труды и сайт не раз мне помогал - спасибо !

    Но вот тут появилась проблема, особенно с почтавиком.

    The Bat пишет ошибку

    !Дата : Время SEND - Письмо не отправлено. Сервер сообщает: 5.7.1 :
    Recipient address rejected: SMTP AUTH is required for users under this sender domain

    не смотря на то, что в свойствах ящика в Bat-e авторизация включена.

    подскажите в каком направление идти решать проблему ?

    • Как минимум, нужно смотреть логи postfix, потом dovecot.

      • Аноним

        Feb 12 15:55:28 mail postfix/postscreen[7396]: CONNECT from [192.168.0.2]:61253 to [192.168.0.223]:25
        Feb 12 15:55:28 mail postfix/postscreen[7396]: PASS OLD [192.168.0.2]:61253
        Feb 12 15:55:28 mail postfix/smtpd[7397]: connect from gateway[192.168.0.2]
        Feb 12 15:55:28 mail postfix/smtpd[7397]: NOQUEUE: reject: RCPT from gateway[192.168.0.2]: 554 5.7.1 : Recipient address rejected: SMTP AUTH is required for users under this sender domain; from= to= proto=ESMTP helo=
        Feb 12 15:55:29 mail postfix/smtpd[7397]: disconnect from gateway[192.168.0.2]
        Feb 12 15:58:49 mail postfix/anvil[7229]: statistics: max connection rate 1/60s for (smtpd:192.168.0.2) at Feb 12 15:52:35
        Feb 12 15:58:49 mail postfix/anvil[7229]: statistics: max connection count 1 for (smtpd:192.168.0.2) at Feb 12 15:52:35
        Feb 12 15:58:49 mail postfix/anvil[7229]: statistics: max cache size 1 at Feb 12 15:52:35
        Feb 12 16:01:35 mail postfix/postscreen[7724]: CONNECT from [192.168.0.2]:56667 to [192.168.0.223]:25
        Feb 12 16:01:35 mail postfix/postscreen[7724]: PASS OLD [192.168.0.2]:56667
        Feb 12 16:01:35 mail postfix/smtpd[7725]: connect from gateway[192.168.0.2]
        Feb 12 16:01:35 mail postfix/smtpd[7725]: disconnect from gateway[192.168.0.2]
        Feb 12 16:02:31 mail clamd[5519]: SelfCheck: Database status OK.
        Feb 12 16:04:56 mail postfix/anvil[7727]: statistics: max connection rate 1/60s for (smtpd:192.168.0.2) at Feb 12 16:01:35
        Feb 12 16:04:56 mail postfix/anvil[7727]: statistics: max connection count 1 for (smtpd:192.168.0.2) at Feb 12 16:01:35
        Feb 12 16:04:56 mail postfix/anvil[7727]: statistics: max cache size 1 at Feb 12 16:01:35

        Feb 12 15:03:58 mail dovecot: master: Warning: Killed with signal 15 (by pid=6581 uid=0 code=kill)
        Feb 12 15:03:58 mail dovecot: master: Dovecot v2.2.36 (1f10bfa63) starting up for pop3, imap, sieve, lmtp (core dumps disabled)
        Feb 12 15:05:17 mail dovecot: master: Warning: Killed with signal 15 (by pid=6699 uid=0 code=kill)
        Feb 12 15:05:17 mail dovecot: master: Dovecot v2.2.36 (1f10bfa63) starting up for pop3, imap, sieve, lmtp (core dumps disabled)
        Feb 12 15:11:04 mail dovecot: master: Warning: Killed with signal 15 (by pid=7129 uid=0 code=kill)
        Feb 12 15:11:04 mail dovecot: master: Dovecot v2.2.36 (1f10bfa63) starting up for pop3, imap, sieve, lmtp (core dumps disabled)
        Feb 12 15:12:08 mail dovecot: master: Dovecot v2.2.36 (1f10bfa63) starting up for pop3, imap, sieve, lmtp (core dumps disabled)

        почтовик находится за прокси (порты проброшены) 192.168.0.2, сам почтовик 192.168.0.223

  36. Валентин

    У меня еще достаточно странная проблема, после установки postfixadmin, не могу зайти непосредственно в postfixadmin. Говорит неверный логин и пароль. Создал нового в iredadmin, все равно говорит неверный логин и пароль. Где я мог накосячить? Если логин и пароль 100% ввожу верно?

    • Валентин

      Я похоже накосячил с инсталляционным паролем. При попытке создать нового суперадмина на странице setup.php выдает вот такое "can't encrypt password with dovecotpw, see error log for details". Могу я как-то повторить этот процесс установки, или нужно все заново начинать?

      • Не знаю. Вы что-то напутали. Почтовая учетная запись и администратор postfixadmin это разные сущности. Через iredmail вы админа postfixadmin не сделаете. Проще всего заново установить postfixadmin, если не получается разобраться.

  37. Валентин

    Добрый день!
    Настривал по статье, на выходе имею работающий сервер. Письма уходят и приходят, но не получается подключиться ни из одного почтового клиента, ругается, что неправильный логин и пароль. В maillog только
    Jan 23 15:26:48 mail postfix/submission/smtpd[1297]: connect from unknown[31.173.84.53]
    Jan 23 15:26:48 mail postfix/submission/smtpd[1297]: improper command pipelining after EHLO from unknown[31.173.84.53]: QUIT\r\n
    Jan 23 15:26:48 mail postfix/submission/smtpd[1297]: disconnect from unknown[31.173.84.53]

    Вот такое.

    Не знаю куда копать, подскажите.

    • Возможно, какие-то проблемы с ssl или tls. Пробуйте подключаться без шифрования. Отключите selinux, если не сделали это ранее.

      • Валентин

        selinux изначально отключен, сейчас установил все заново, поставил последнюю версию, та же самая история. Без шифрования тоже самое выдает. А что-то специально с настройкой шифрования нужно делать? Оно вообще из коробки работает?

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

          • Валентин

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

          • Валентин

            Прошу прощения. Короче говоря это был косячный thunderbird. Поставил в итоге zimbra, с ней та же проблема, решил проверить через Outlook, все сразу подключилось. Снес тандерберд, переустановил, все работает.

            • А что сразу тогда не сказали, что пробовали только один клиент? Вы же писали:
              "но не получается подключиться ни из одного почтового клиента"
              Я то подумал в первую очередь на почтовый клиент, так как это самое очевидное.
              Он, кстати, не глючный. Я им много лет уже пользуюсь, все ОК.

              • Валентин

                Когда первый раз все установил, сначала попробовал Outlook, не получилось, и я особо не разбираясь пересел на Thunderbird, и дальше пробовал уже с него, потому так и написал.

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

  38. Добрый день! Подскажите, пожалуйста, в статье при создании конфигурационного файла httpd для postfixadmin вкралась ошибка?
    Нужно писать вместо
    Я правильно понимаю?

    # mcedit /etc/httpd/conf.d/postfixadmin.conf

    Alias /postfixadmin /var/www/postfixadmin

    AddDefaultCharset UTF-8

    Require ip ваш_ip_с_которого_заходите_на_сервер

  39. День добрый! А не сталкивались ли Вы с задачей создать правила для фильтрации вложений, фалов кириллицей? Т.е. стоит задача запретить письма с вложенным файлом состав.rar, в то время как как вложения английякие режутся нормально. Спасибо за ответ.

  40. Здравствуйте! Спасибо огромное, за статью. Помогите, пожалуйста, решить проблему. С помощью данной статьи настроен сервер, который обслуживает два почтовых домена. И всё прекрасно работает. Даже автоответчик "Я в отпуске", работает с доменом который указывался при установке iRedMail. А вот с доменом, который был добавлен позже с помощью PostfixAdmin, почему то нет. При этом правило фильтра в Roundcube создаётся. Файл с правилом в папке пользователя тоже появляется. А дальше тишина. При получении письма пользователем, файлик dovecot.svbin в его папке не создаётся. И даже в лог.файле dovecot-sieve, нет упоминания про письма с другого домена. Такое впечатление, что sieve не знает про другой домен. Подскажите, пожалуйста, в каком направлении копать.

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

      • Как оказалось, проблема в том, что при добавлении почтовых доменов с помощью PostfixAdmin, в качестве транспорта устанавливается virtual. И соответственно все правила и фильтры dovecotа не работают, так как postfix сам раскладывает приходящие сообщения по папкам пользователей. Изменил с помощью phpMyAdmin в базе данных vmail, значение параметра transport для таблицы domain, с virtual на dovecot, и всё заработало :).

  41. Александр

    добрый день подскажите в чем может быть проблема, не могу просмотреть белый список выдает такое сообщение
    python wblist_admin.py --list --whitelist

    Traceback (most recent call last):
    File "wblist_admin.py", line 24, in
    from libs.sqllib import domain as sql_lib_domain
    File "/var/www/iRedAdmin-0.4.1/tools/../libs/sqllib/domain.py", line 8, in
    from libs.sqllib import sqlutils, decorators
    File "/var/www/iRedAdmin-0.4.1/tools/../libs/sqllib/decorators.py", line 8, in
    from libs.sqllib import admin as sql_lib_admin
    File "/var/www/iRedAdmin-0.4.1/tools/../libs/sqllib/admin.py", line 36, in
    def is_domain_admin(conn, domain, admin=session.get('username')):
    AttributeError: 'NoneType' object has no attribute 'get'

  42. Максим

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

    Подскажите пожалуйста, как прикрутить 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. Помогите пожалуйста

  43. Простите за флуд но я и сдесь напишу, может кто подскажет, есть 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. Буду очень признателен за подказку уже весь инет перерил, спс.

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

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

    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/

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

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

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

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

    Автор измени несколько ошибок в статье.
    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".

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

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

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

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

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

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

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

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

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

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

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

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

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

  53. Самое мерзкое, что есть в 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.

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

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

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

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

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

  58. Виктор

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

  59. Сергей

    Здравствуйте!
    Помогите, пожалуйста, настроить 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]
      #

  60. Александр

    Доброй ночи. Подскажите, у меня установлен 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.

  61. Владимир

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

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

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

  62. Владимир

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

  63. Владимир

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

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

    У меня есть желание попробовать всё настроить самостоятельно. Статьи у Вас превосходные, рабочие. Только нужно быть внимательным с синтаксисом. Опыта пока мало.
    Мне нужно сейчас запустить сервер с одним почтовым доменом. Если бы не требовались 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 -- адрес существующего почтового ящика. Если добавить несколько таких записей с форвардингом на разные ящики, то алиас будет списком рассылки.

  65. Сергей

    Здравствуйте!
    Большое спасибо за подробную инструкцию. Сделал все по ней, дошел до установки 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 не ставить за ненадобностью. У меня пара десятков юзеров, изменения в структуре очень редкие, так что проще руками добавить нужное.

  66. Владимир

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

  67. Валерий

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

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

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

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

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

  70. Владимир

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

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

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

    Если есть возможность, проконсультируйте, пожалуйста:
    Можно ли заставить 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 скопировал весь почтовый архив со старого сервера на новый. Выбрал день для переноса. В этот день остановил бы старый сервер, сделал еще раз синхронизацию всей почты, чтобы докопировать последние изменения, сделал дамп нужных записей из базы старого сервера и добавил его в базу на новом. Запустил новый сервер.

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

  72. Сергей

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

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

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

    • Надо смотреть логи почтовых серверов на обоих серверах. Там 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» не стал.
        Полу мера конечно, но все работает, может кому и пригодится

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

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

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

  75. Антон 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

  76. Сергей

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

  77. Владимир

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

  78. Владимир

    Добрый день, коллеги!
    Вопрос простой - есть ли в этой сборке или может есть отдельный костыль для миграции почты в 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/ ?

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

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

  79. Станислав

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

  80. Добрый день.
    Ставил отсюда 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 базе. Ниже я расскажу, как это делать удобно.

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

  81. Ярослав

    Добрый день. Статья шикарная. Огромное спасибо (добавте вебмани кошель)
    Вопрос. при установке постфиксадмин
    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.

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

  82. Максим

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

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

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

  83. Сергей

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

    • Сергей

      /etc/amavisd/amavisd.conf

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

      # Dangerous mime types

      и

      # Dangerous file name extensions

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

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

  85. Подскажите пожалуйста, при установке 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, а проглатывать ту, что уже стоит, если нет, то придётся искать другой вариант с почтой, сервер ломать из-за почты я конечно не буду.

  86. Роман М

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

    На почту 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

  87. Сергей

    Был бы очень признателен за полезный мануал "Синхронизации двух 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 лет, уже люди во всю используют балансеры на облаке, но решение очень полезное.

  88. Сергей

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

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

      • Сергей

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

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

      • Сергей

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

  89. Евгений

    Добрый день. Спасибо за отличную статью. Сделал все по инструкции. Но как только подключил 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 перестали картинки отображаться

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

  90. Александр

    В дополнении к предыдущему посту на эту тему ...есть близко похожий мануал 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
          );

  91. Александр

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

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

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

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

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

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

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

  94. Аноним

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

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

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

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

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

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

  97. Тодось

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

    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 там все уже должно быть сделано, если, конечно, ты сам там не менял что-то.

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

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

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

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

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

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

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

  101. Виталий

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

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

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

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

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

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

  104. Дмитрий

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

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

      • Дмитрий

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

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

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

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

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

    • Евгений

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

  107. Владимир

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

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

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

      • Константин

        Здравствуйте!
        Большое спасибо за Ваш сайт, уже на протяжении нескольких лет я во многих вопросах руководствуюсь Вашими статьями.
        Как я понял, с момента написания статьи, изменился процесс установки iRedMail и выбрать можно только nginx, apache отсутствует. Подскажите, как прикрутить postfixadmin к nginx. Спасибо!

        • Да, с момента написания статьи iredmail сильно изменился. Я на него еще не смотрел. Думаю, скоро будет обновление статьи с оптимизацией под centos 8. Пока же могу только предложить свежую статью, где все нужно настроить самому - https://serveradmin.ru/nastroyka-postfix-dovecot-centos-8/

  108. Аноним

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

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

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

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar