Настройка почтового сервера 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.

Углубленный онлайн-курс по MikroTik.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном онлайн-курcе по администрированию MikroTik. Автор курcа – сертифицированный тренер MikroTik Дмитрий Скоромнов. Более 40 лабораторных работ по которым дается обратная связь. В три раза больше информации, чем в MTCNA.

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

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

Автор Zerox

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

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

  1. Портос

    Как всегда, в инструкциях этого серверного админа упускается самое главное.
    В данном случае - указание доменного имени.
    Не в панели управления доменами, это расписано, а в самом Центос - hostname
    Чему он должен соответствовать? Хотя бы один пример привел...

  2. Василий

    Слушаю сейчас песни из подборки у вас - бомба конечно )))

    К делу.
    Есть Ubuntu 22.04, на ней iRedMail. Всё работает великолепно, но! Вот какой нюанс - не проходит подключение к SMTP-серверу почтовым клиентом в режиме TLS. Скриншот: https://1drv.ms/i/s!Amd7poqLtl8tibkf4ME_OyOq3qESDg?e=b0yz59
    По телнету подключение на порт 465 проходит без проблем. Что интересно, если выбрать STARTTLS или Обычное, то проблем нет, даже если указать порт 465, вместо стандартного. Подскажите, куда копать? IMAP по TLS подключается нормально

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

  3. Доброго, наконец у меня получилось подружить благодаря этой статье свой почтовик с майлом и яндексом, но к сожалению 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. Это не лог его отправки к вам.

  4. Василий

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

  5. Добрый день. 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. подписался в телеге )

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

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

  7. Андрей

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

    • Андрей

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

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

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

  9. Добрый день! На рабочий почтовый сервер как установить купленный сертификат 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 не совпадает запись .

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

  11. Доброго времени суток! Спасибо за проделанную работу с пояснениями. У меня есть вопрос, к примеру где забиваем в Оутлуке сервер вх/исх почты. Там что указывать? К примеру у 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/

  12. 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/ Настраивать не очень сложно, зато на выходе все бесплатно и хороший функционал.

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

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

      • Геннадий

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

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

          • Геннадий

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

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

              • Геннадий

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

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

                  • Геннадий

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

  14. Дмитрий

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

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

      • Дмитрий

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

      • Дмитрий

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

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

  15. Александр

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

  16. Евгений

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

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

      • Евгений

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

      • Евгений

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

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

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

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

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

      • Владимир

        Пока сделал редирект через index.html

        Но мне кажется это весьма коряво.

        • Владимир

          Здравствуйте.
          Как Вы сделали редирект через html?
          Подскажите пожалуйста!
          У меня строка ведет на адрес: https://1.1.1.1/mail/ , но выдает 404 Not Found
          nginx

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

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

  21. Владимир

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

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

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

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

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

  23. Подскажите если не сложно
    Есть домен, и как следствие сайт. Регистратор он же хостер - сайт размешен у хостера. МХ и 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-клиенты не смогут подключаться к серверам в инете или я путаю что-то?

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

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

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

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

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

  27. Александр

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

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

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

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

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

  30. Алексей

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

    [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 :)

  31. Алексей

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

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

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

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

    • Алексей

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

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

  32. Михаил

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

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

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

  33. Вариант 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

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

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

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

    Возможно проблема с 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. Ошибки в фаерволе и запросы не доходят до почтового сервера.

  35. Дмитрий

    Добрый день периодически падают письма со своего же сервера с таким отбойником, стоит последний 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

  36. Сергей

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

  37. Аноним

    Добрый день !

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

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

    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

  38. Валентин

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

    • Валентин

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

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

  39. Валентин

    Добрый день!
    Настривал по статье, на выходе имею работающий сервер. Письма уходят и приходят, но не получается подключиться ни из одного почтового клиента, ругается, что неправильный логин и пароль. В 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, и дальше пробовал уже с него, потому так и написал.

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

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

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

    Alias /postfixadmin /var/www/postfixadmin

    AddDefaultCharset UTF-8

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

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

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

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

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

  43. Александр

    добрый день подскажите в чем может быть проблема, не могу просмотреть белый список выдает такое сообщение
    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'

  44. Максим

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

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

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

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

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

    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/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  60. Виктор

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

  61. Сергей

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

  62. Александр

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