Всем привет!!!
Сегодня я расскажу как настроить резервный почтовый сервер на базе Linux и postfix.
Недавно я рассказал как настроить почтовый сервер MailPlus на Synology NAS, но что будет если он перестанет работать или пропадет интернет? Почта просто потеряется и будет навсегда удалена. Что бы этого не произошло нужен резервный почтовый сервер.
Резервный почтовый сервер
Оглавление
Принцип работы резервного почтового сервера
Принцип работы резервного сервера простой: пока все хорошо он ничего не делает, но если основной сервер не сможет принять почту, то ее примет резервный и будет держать ее у себя некоторое время. Как только основной сервер станет доступным, то тогда резервный перешлет основному всю скопившиеся за это время почту. Таким образом ваша почта всегда будет доставлена вам.
Резервный почтовый сервер postfix
Я решил реализовать резервный почтовый сервер на VPS\VDS Мой выбор пал на Аренда VDS или VPS сервера, Дешевый хостинг | firstvds.ru так как тут был самый дешевый тариф. Сервер то нужен самый самый мелкий, ему хватило бы и 256М ОЗУ и 1 CPU и 10Г HDD. Поэтому берем самый мелкий и самый дешевый, который только есть. ОС я рекомендую Ubuntu. На момент написания статьи 20.04 LTS.
Если у вас два Synology NAS
Кстати, если у вас есть еще один Synology NAS то резервный почтовый сервер делается парой нажатий в настройках MailPlus сервера:

То есть, вам нужно добавить тут домен и настроить записи DNS, ниже я расскажу как это сделать.
Затем рекомендую настроить ретрансляцию на основной вервер

Где:
- Сервер – основной mx
- Домен – домен вашей почты
- Правило получателей – сообщения, отправляемые на определенные адреса или в определенные домены, будут доставляться через назначенный сервер ретрансляции.
Установка postfix на резервном сервере
Так же не забывайте настроить Автоматическое обновление Linux Ubuntu • Александр Linux (bafista.ru) Боты не дремлют и заполучить свою жертву они хотят всегда.
Как только все установлено и есть доступ к нашему резервному серверу по SSH приступаем к настройке.
Первым делом установим сам postfix
sudo apt update
sudo upt upgrade
sudo reboot
# после ребута
sudo apt install postfix
Во время установки в Ubuntu нужно пройти некий псевдографический wizard
На первый вопрос отвечаем Internet site

Следующим этапом указываем ваш домен

Дальше пойдет процесс установки и настройки почтового сервера postfix
Если вы ввели что-то не так, то исправить можно командой sudo dpkg-reconfigure postfix она запустит такое же окно как и при инсталяции и задаст те же вопросы, но более подробно.
Настройка резервного почтового сервера postfix
Радактируем файл /etc/postfix/main.cf добавляя в него следующее:
relay_domains = вашдомен.ru transport_maps = hash:/etc/postfix/transport
Затем создаем файл /etc/postfix/transport и добавляем в него следующее:
вашдомен.ru relay:[mail.вашдомен.ru] или вашдомен.ru smtp:[mail.вашдомен.ru]
*где – mail.вашдомен.ru это MX запись основного сервера.
На выбор две опции smtp или relay. Если этот почтовый сервер будет работать только для резервирования вашего основного почтового сервера, то разницы нет. Но если Этот почтовый сервер обслуживает еще какие-то домены и является для них основным, то нужно указать relay, что бы письма для вашего домена имели некий приоритет и быстрей смогли покинуть резервный серыер, когда основной заработает. Более подробно тут: Транспортные карты | Ретрансляция почты (flylib.com)
После создаем карту такой командой:
sudo postmap hash:/etc/postfix/transport
Рестартуем демон postfix командой:
sudo systemctl reload postfix
Все!!! Сервер настроен в качестве backup MX.
Добавляем резервный сервер в белый список (опционально)
Следующим этапом надо добавить резервный почтовый сервер в белый список на основном почтовом сервере. Если этого не сделать, то вся почта так и останется на резервном сервере, так как у него нет ни PTR записи, но DKIM. Хотя это действие опционально.

Настройка DNS записей
Теперь идите в настройки DNS на вашем хостинге, придумайте имя вашему резервному почтовому серверу например mail2.вашдомен.ru, добавте это имя в DNS запись типа А и укажите ип адрес резервного сервера. Затем в MX запись укажите mail2.вашдомен.ru с приоритетом больше чем основной сервер.
mail.вашдомен.ru 10 MX
mail2.вашдомен.ru 20 MX
На этом все. Теперь если с вашим основным почтовым сервером что-то случится, то почта будет приходить на резервный почтовый сервер. Последний будет ждать, когда вы почините основной и как только он начнет работать, вся скопившиеся почта на резервном сервере будет перенаправлена на основной.
Проверка работы резервного почтового сервера
Что бы это проверить я остановил основной сервер и отправил письма с mail.ru и gmail.com на свою почту. Письма пришли на резервный сервер, который не смог их перенаправить в основной и поместил эти письма в очередь:




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

Потребление ресурсов на резервном почтовом сервере
Давайте посмотрим сколько весь этот резервный сервер потребляет ресурсов, начнем с ОЗУ:

и сколько занято на диске:

Как видим, потребление весьма маленькое. Конечно когда оно поработает станет побольше, но не на много.
Дополнительные настройки.
Можно изменить параметры очереди, например время жизни письма в очереди (по умолчанию maximal_queue_lifetime равен 5 дням):
#параметры доставки
queue_run_delay=3m
minimal_backoff_time=6m
maximal_backoff_time=9m
maximal_queue_lifetime=30d
#проверка IP спамеров через публичные базы
reject_rbl_client = sbl.spamhaus.org, cbl.abuseat.org, dul.dnsbl.sorbs.net
Так же можно отфильтровать спам еще больше:
# Запретить ETRN команду
smtpd_etrn_restrictions = reject
# Запретить VRFY команду
disable_vrfy_command = yes
# EHLO/HELO first
smtpd_helo_required = yes
smtpd_recipient_restrictions =
# rcpt to должен быть полным:test@gmail.com
reject_non_fqdn_recipient,
# mail from должен быть полным:test@gmail.com
reject_non_fqdn_sender,
# domain не существует mail from:
reject_unknown_sender_domain,
# сообщение для несуществующего на нашем сервере домена -отклонять
reject_unknown_recipient_domain,
#### граница правил выше для всех пользователей -ниже только для внешних
permit_mynetworks,
# если письмо не для наших доменов -reject Postfix сообщает клиенту, что пересылка невозможна
# и основной запрет на relay
reject_unauth_destination,
# клиент вместе с приветсвием должен передовать полное имя хоста
reject_non_fqdn_hostname,
#клиент вместе с приветсвием должен передовать полное имя хоста, котором
#обязательно должна быть . и домен верхнего уровня
reject_invalid_hostname,
permit
smtpd_data_restrictions =
#противодействие программам массовой рассылки
reject_unauth_pipelining,
#запрет пустого mail from:, когда 2 и больше rcpt to:
reject_multi_recipient_bounce
Материалы по теме:
Postfix backup MX [АйТи бубен] (dieg.info)
IT-VT: Технологии и Техника: Backup MX Postfix – резервный почтовый сервер
VPS за 30 рублей в месяц (ruvds.com) – самый дешевый тариф 30р – это обман
Аренда VDS или VPS сервера, Дешевый хостинг | firstvds.ru – мой выбор
Как получить бесплатный VPS (VDS) сервер навсегда | SeoPulses | Яндекс Дзен (yandex.ru)
Почему я не использую DNSBL. В помощь начинающему постмастеру | WOLAND’s blog (wolandblog.com)
Подскажите, а почему нельзя настроить резервную почту на том же яндексе к примеру, зачем платить за VDS?
Яндекс не предоставляют услугу резервной почты. Яндекс можно сделать вторым приоритетом для почты, но все чт опридет на него будет на нем. Резервная же почта это когда сервер примет почту, в случаи неисправности основного и перешлет ее на основной сервер, когда тот сможет ее принять. В этом случаи пользователи не поймут и не узнают пришла почта как обычно или с резервного.
Дорый день, спасибо за статьи. Очень полезно было. Остался один вопрос, как бороться с блокировкой почты от “sbl.spamhaus.org, zen.spamhaus.org, pbl.spamhaus.org”. Бесщадно блочат почту с почтовых адресов mail и yandex.
Как только включаю на сервере DNSBL при проверке часть почты не поступает с ответом о поподание в блокировку от данных сервисов.
Ну тут есть варианты. Почему вы решили, что это с яндекса и мэйла почта? может эта почта реально не с этих сервисов, поэтому и блокируется. Почему я так решил? да потому что у меня все работает. Проверьте адреса отправителей, они должны принадлежать этой почте и прописаны в MX домена яндекса. Ну и второй вариант, это сделано специально этими сервисами. Они же нас за людей не считают, поэтому наши сервисы добавили к себе в черный список. думаю где-то в настройках можно добавить эти ип в белый список. Трудно, но можно. Пока я склоняюсь к первому варианту, так как отправил письма себе и они дошли, не попав в блок.
У меня личные почтовые ящики созданны на яндексе и маил, с них для теста отправил проходит блокировка. С гугла все норм
ну вот, значит 99.9% что блочатся реально спам письма, которые маскируются яндексом. а зачем вы с гугла проверяли? у вас же проблема с яндексом и маилом. надо с маил проверить. Хотя проверка никогда не помешает.
Видимо не правильно написал. При отправки с трех личных адресов маил яндекс и гугл блокируются письма с яндекса и майла. Гугл приходят отлично.
sbl.spamhaus.org, zen.spamhaus.org, pbl.spamhaus.org – видимо в какой-то из этих завелся нелюдь, который добавил российские почтовые службы в базу. У меня настроены только sbl и xbl. С этими пробелем нет, пока что ))))
Здравствуйте! Не получается настроить ретрансляцию входящей почты на втором Синолоджи. Может я что-то не правильно понял, если да, поправьте плиз.
0. На дублирующем (резервном) Сино во вкладке домен прописал mail2.вашдомен.ru. DKIM не настраивал.
1. На дублирующем (резервном) Сино в Доставке почты / Управлении ретрансляцией / Ретранслятов входящей почты прописал домен основной почты mail.вашдомен.ru.
2. На дублирующем (резервном) Сино настроил ретрансляцию на основной сервер (Доставке почты / Список хостов ретрансляции) как указано на скриншоте в статье.
3. На основном Сино добавил резервный (дублирующий) сервер в белый список.
4. На хостинге добавил две ДНС записи: mail2.вашдомен.ru 20 MX и mail2.вашдомен.ru A IP-резервного Сино.
Для тестирования отключал основной сервер и отправлял на него письма. В управлении сервером, при просмотре мониторинга почты на резервном Сино нет каких-либо сведений о поступлении писем, их пересылке.
если почта не приходит на 20 приоритет, то может порты не прокинуты на роутере или еще чег ов днс не так.
На роутере с резервным Сино открыты 25, 110 и 143 порты. С ДНС вроде то же нормально, А и МХ записи прописаны. На Майл Сервере можно командной строкой (через SSH) посмотреть работу резервного почтового сервера, как в статье? Mailq не срабатывает.
Разобрался в чём была проблема, действительно в записи ДНС. Нужно в МХ записи mail2.вашдомен.ru указывать хост основного домена (@ или вашдомен.ru.), а я первоначально прописывал IP адрес резервсного сервера.