Всем привет!!!
Сегодня я расскажу как настроить резервный почтовый сервер на базе 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)