|
|||||||
Настройка ретрансляции почты с помощью Postfix и Mailgun в Ubuntu 16.04
Время создания: 03.04.2019 17:37
Текстовые метки: DNS, Mailgun, Postfix, SMTP, почта, email, рассылка
Раздел: Компьютер - Web / Internet - Почтовые рассылки
Запись: xintrea/mytetra_syncro/master/base/15543022491vwlqu4boi/text.html на raw.github.com
|
|||||||
|
|||||||
Настройка SMTP-сервера – задача не для слабонервных. При этом очень важно обеспечить надёжную защиту данных, и, пожалуй, ещё важнее настроить доставляемость рассылок, которые не будут помечаться как спам. Ретрансляция почты может решить обе эти проблемы. Настроить ретрансляцию гораздо проще, чем полномасштабный сервер SMTP: вы просто направляете всю почту, сгенерированную вашим сервером, на управляемый профессионалами сервер SMTP. Таким образом, вам не придётся сталкиваться с трудностями SMTP. Существует два типа ретрансляции: открытая и закрытая. Открытая ретрансляция направляет почту с внутреннего сервера и внешних ресурсов. Такой тип ретрансляции могут использовать в своих целях спам-боты. Закрытая ретрансляция подразумевает передачу только почты, сгенерированной на внутреннем сервере и в закрытой сети. Для ретрансляции почты можно использовать любой внешний SMTP-сервер. Сервер Mailgun имеет множество преимуществ над другими SMTP-серверами. Этот сервис можно использовать бесплатно до 10000 писем в месяц, он очень надёжен. Кроме того, он позволяет отправлять почту с отдельного домена, а это обеспечивает дополнительный уровень безопасности и спасает ваши письма от чёрных списков. Данное руководство поможет вам создать бесплатный аккаунт Mailgun и поддомен, добавить все необходимые записи и настроить закрытую ретрансляцию почты с помощью Postfix. Требования
1: Учётная запись Mailgun Создайте новую учётную запись, перейдя по этой ссылке . Войдите в новый аккаунт, откройте панель управления и выберите Domains. Вы увидите, что сервис Mailgun создал для вас домен. Не используйте этот домен. Лучше сразу создайте поддомен для Mailgun. Для этого нажмите на Add New Domain. Выберите поддомен для сервиса, например mailgun.example.com или bulkemail.example.com. Примечание: В руководстве будет использоваться поддомен mg.example1.com . После этого новый поддомен появится в списке доменов на странице Domains. Откройте страницу поддомена, для этого кликните по нему на странице Domains. Вы увидите три набора DNS-записей. Добавьте эти записи в настройки домена на сервере. Для этого используется панель управления хостинг-провайдера. Вам понадобятся записи для отправки и отслеживания почты (разделы Sending и Tracking). Записи для получения почты (Receiving) создавать не обязательно. Не закрывайте эту страницу: данные, указанные на ней нужно будет копировать в настройки DNS на сервере. 2: Настройка DNS-записей Итак, вам нужно создать две записи TXT и запись CNAME. Опционально можно добавить запись MX. Создайте все необходимые записи, используя предоставленную сервисом Mailgun информацию. Чтобы создать CNAME:
Чтобы создать первую записьTXT:
Чтобы создать вторую записьTXT:
Теперь Mailgun должен подтвердить ваш домен, прежде чем вы сможете продолжить. Вы можете подождать, пока обновятся записи DNS, или же вернуться на страницу Mailgun, найти раздел Domain Verification & DNS и нажать Check DNS Records Now. После проверки записей рядом с ними появятся зелёные галочки. Обновление записей может занять некоторое время (от нескольких минут до нескольких часов). Примечание: Если сервис Mailgun не подтвердил ваши записи, проверьте введённые вами значения и убедитесь, что вы правильно указали все данные, предоставленные Mailgun. Записи TXT нужно брать в двойные кавычки. Имя первой записи TXT — @, но не hostname со страницы Mailgun. Ожидая проверки записей, вы можете просмотреть и скопировать учётные данные SMTP со страницы MailGun (они нужны для дальнейшей работы). Откройте раздел Domain Information. В строке Default SMTP Login вы найдёте имя, а в Default Password – пароль. Чтобы изменить эти значения, нажмите Manage SMTP credentials. 3: Настройка Postfix Для установки Postfix можно использовать встроенный менеджер пакетов. Подключитесь к серверу как пользователь с доступом к sudo: ssh 8host@your_server_ip Как правило, установка Postfix происходит в интерактивном режиме. Так программа может запросить у вас необходимые данные. Чтобы предотвратить ошибки во время установки, лучше настроить эти данные предварительно, а затем запустить установку. Настройте Postfix как ретранслятор почты: sudo debconf-set-selections <<< "postfix postfix/main_mailer_type select Satellite system" Укажите имя хоста сервера (оно будет использоваться в качестве имени хоста почтового сервера): sudo debconf-set-selections <<< "postfix postfix/mailname string $HOSTNAME" Настройте Postfix для использования SMTP-сервера Mailgun. sudo debconf-set-selections <<< "postfix postfix/relayhost string smtp.mailgun.org" Теперь можно начать установку Postfix. sudo apt -y install postfix Чтобы сервис Postfix мог подключиться к Mailgun, нужно создать файл с учётными данными и добавить в него скопированное имя и пароль Mailgun (раздел 2). Примечание: Каждый поддомен Mailgun использует уникальные учётные данные. Больше информации можно найти в документации Mailgun . Создайте и отредактируйте файл для учётных данных: sudo nano /etc/postfix/sasl_passwd Добавьте в него строку: smtp.mailgun.org your_mailgun_smtp_user@your_subdomain_for_mailgun:your_mailgun_smtp_password Ограничьте доступ к файлу. Право на чтение и запись могут быть только у пользователя root. Используйте команду postmap, чтобы обновить параметры Postfix. sudo chmod 600 /etc/postfix/sasl_passwd Заблокируйте анонимный доступ к серверу и укажите файл с учётными данными для Mailgun. Откройте конфигурации Postfix: sudo nano /etc/postfix/main.cf И добавьте в файл такие строки: smtp_sasl_auth_enable = yes Примечание: Postfix предлагает множество настроек безопасности, которые блокирую доступ спам-ботам (больше информации – по этой ссылке ). В частности, эти две строки ограничивают использование ретрансляции почты до локальной сети и указанных вам SASL-пользователей: smtpd_relay_restrictions = permit_mynetworks Перезапустите Postfix: sudo systmctl restart postfix Также нужно убедиться, что все входящие порты SMTP заблокированы. Проверьте состояние брандмауэра: sudo ufw status В столбце To не должно быть портов 25, 465 и 587. Эти порты используются SMTP. На них не должен поступать входящий трафик. Если же эти порты открыты в брандмауэре, их нужно заблокировать. Читайте также: Настройка брандмауэра UFW на сервере Ubuntu 14.04 Обычно при настройке SMTP на Postfix имя хоста сервера должно совпадать с FQDN . Если это так, пропустите раздел 4. 4: Настройка отображения доменов Поскольку для настройки SMTP используется Mailgun, а не Postfix, FQDN не должен совпадать с именем хоста. К примеру, серверы баз данных или мониторинговые серверы обычно вообще не имеют доменов. Создайте таблицу для отображения доменов, которая будет заменять один электронный адрес другим. В данном случае почтовая учётная запись сервера Linux должна использовать имена MailGun. Создайте новый файл /etc/postfix/generic и отредактируйте его. sudo nano /etc/postfix/generic Добавьте эту строку, которая свяжет следующие имена пользователей: 8host@your_hostname sender@your_subdomain_for_mailgun Примечание: Имена sender и 8host замените своими данными. Особенное внимание нужно уделить элементу your_subdomain_for_mailgun: его нужно заменить поддоменом Mailgun (раздел 1). Чтобы указать несколько пользователей, добавьте в файл новый строки с таким же синтаксисом. Теперь добавьте эти правила отображения в Postfix с помощью команды postmap: sudo postmap /etc/postfix/generic Отредактируйте конфигурационный файл Postfix: sudo nano /etc/postfix/main.cf В конец файла добавьте строку: smtp_generic_maps = hash:/etc/postfix/generic Перезапустите Postfix: sudo systemctl restart postfix Теперь можно протестировать ретрансляцию почты. 5: Тестирование ретрансляции почты Чтобы протестировать настройку, отправьте с сервера сообщение на ваш личный адрес электронной почты. Установите mailutils, чтобы отправить тестовое письмо. sudo apt -y install mailutils С помощью mailutils составьте и отправьте сообщение на ваш адрес электронной почты. Например: mail -s "Test mail" your_email_address <<< "A test message using Mailgun" Проверьте почтовый клиент и убедитесь, что вы получили сообщение. Если сообщение не пришло, читайте следующий раздел. 6: Устранение неполадок Во время настройки ретрансляции можно допустить множество ошибок. Рассмотрим самые общие из них. Во-первых, нужно убедиться, что Mailgun подтвердил DNS-записи. Ничего не будет работать до тех пор, пока сервис не примет новые записи. Откройте интерфейс пользователя Mailgun и убедитесь, что записи приняты. Затем нужно проверить учётные данные в файле /etc/postfix/sasl_passwd. Указанные здесь имя и пароль должны совпадать с учётными данными соответствующего поддомена Mailgun. Не спутайте их с учётными данными аккаунта Mailgun. Узнать больше об ошибках можно в логах почтового сервиса. Сначала проверьте /var/log/mail.log. tail -f /var/log/mail.log Это выведет несколько последних строк лога. По мере появления в логе новых записей вывод будет обновляться. Просмотрите вывод на наличие сообщений об ошибках, которые могут помочь вам обнаружить проблему. Например, так выглядит сообщение о неправильном пароле Mailgun. > Nov 1 16:07:45 cart-1268 postfix/smtp[30082]: 0E8062038A: to=<yourmail@example.com>, relay=smtp.mailgun.org[173.203.37.114]:25, delay=2.3, delays=0.02/0/2.3/0, dsn=4.7.0, status=deferred (SASL authentication failed; server smtp.mailgun.org[173.203.37.114] said: 535 5.7.0 Mailgun is not loving your login or password) Также Mailgun регистрирует транзакции. Откройте панель управления Mailgun, выберите Logs и просмотрите содержимое на наличие ошибок. Возможно, здесь вы найдёте информацию о том, почему сообщение не было доставлено. Если имя хоста сервера не совпадает с FQDN, убедитесь, что вы правильно выполнили раздел 4. Заключение Если у вас есть дополнительные серверы, и вы хотели бы настроить их для отправки почты, нужно просто повторить разделы 3 и 4 на каждом таком сервере. Вы можете повторно использовать домен MailGun на всех этих серверах. Обычно на почтовых серверах используются два домена: один для внутренней почты, второй – для массовой рассылки сообщений. Внутренняя почта – это сообщения, отправленные с помощью одной из программ сервера (cron или WordPress). Массовая рассылка – это отправка сообщений на все почтовые адреса, состоящие в списке рассылки. Этот тип почты особенно часто попадает в черный список из-за спама, так что, вероятно, лучше использовать домен, который не страшно потерять, если он будет заблокирован. Больше информации о рассылке можно найти здесь . Чтобы добавить ещё один домен, выполните разделы 1 и 2 (для каждого домена) и отредактируйте файлы /etc/postfix/sasl_passwd и /etc/postfix/generic. Базовая настройка Postfix остаётся без изменений. Tags: DNS , Mailgun , Postfix , SMTP , Ubuntu 16.04 |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|