🖼 Настройка Postfix для использования Gmail в качестве почтового ретранслятора

by itisgood

Если у вас есть учетная запись Gmail, вы можете настроить свой MTA для ретрансляции исходящей почты через Gmail.

Это дает вам преимущество надежной инфраструктуры Gmail и предоставляет простые средства отправки электронной почты из командной строки.

В этом уроке мы будем использовать Postfix в качестве нашего MTA.

Postfix – это бесплатный, с открытым исходным кодом, активно поддерживаемый и высоконадежный агент передачи почты.

На каждом этапе мы рассмотрим инструкции, относящиеся к следующим операционным системам:

  • Debian 9
  • Ubuntu 18.04 LTS
  • CentOS 7
  • OpenSUSE Leap 15.0
  • Arch Linux 2019.03.01
  • FreeBSD 12.0

Мы также установим mailutils / mailx, чтобы мы могли отправить тестовое письмо.

При необходимости мы установим дополнительные библиотеки SASL.

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

1. Установите необходимое программное обеспечение

Debian, Ubuntu:

apt-get update && apt-get install postfix mailutils

В ответ на запрос «General type of mail configuration» выберите Internet Site.

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

Полное доменное имя является предпочтительным, но с помощью простого имени хоста вашей машины все в порядке.

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

Вам может быть предложено установить «Root and postmaster mail recipient».

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

Для любых других подсказок вы можете выбрать значения по умолчанию.

Fedora:

dnf update && dnf install postfix mailx

CentOS:

yum update && yum install postfix mailx cyrus-sasl cyrus-sasl-plain

OpenSUSE:

zypper update && zypper install postfix mailx cyrus-sasl

Arch Linux:

pacman -Sy postfix mailutils

FreeBSD:

Скомпилируйте Postfix, чтобы включить поддержку SASL:

portsnap fetch extract update
cd /usr/ports/mail/postfix
make config

В диалоговых окнах конфигурации выберите поддержку SASL. Все остальные параметры могут остаться прежними. Затем:

make install clean

Mailx может быть установлен из бинарного пакета:

pkg install mailx

2. Настройка аутентификации Gmail

Создайте или измените файл паролей, который будет использоваться Postfix для аутентификации в Gmail.

В приведенной ниже информации об аутентификации замените имя пользователя своим именем пользователя и пароль Gmail на свой пароль.

Если вы используете собственное доменное имя Gmail Apps, вы можете заменить gmail.com своим доменом Google Apps.

Файл пароля будет находиться в каталоге конфигурации Postfix.

Файл может называться как угодно, но рекомендуемое имя файла – sasl_passwd.

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

Конфигурационные файлы Postfix находятся в каталоге /etc/postfix. Создайте или отредактируйте файл паролей:

nano /etc/postfix/sasl_passwd

Добавьте строку:

[smtp.gmail.com]:587    username@gmail.com:password

Сохраните и закройте файл.

Ваш пароль Gmail хранится в виде открытого текста, поэтому файл должен быть доступен только пользователю root:

chmod 600 /etc/postfix/sasl_passwd

FreeBSD:

Конфигурационные файлы Postfix находятся в каталоге /usr/local/etc/postfix. Создайте или отредактируйте файл паролей:

nano /usr/local/etc/postfix/sasl_passwd

Добавьте строку:

[smtp.gmail.com]:587    username@gmail.com:password

Сохраните и закройте файл. Сделать его доступным только для root:

chmod 600 /usr/local/etc/postfix/sasl_passwd

3. Настройка Postfix

Существует шесть параметров, которые должны быть установлены в файле конфигурации Postfix main.cf.

Параметры:

relayhost, который указывает почтовый хост-хост и номер порта. Имя хоста будет заключено в квадратные скобки, чтобы указать, что поиск MX не требуется.

smtp_use_tls, который включает (или отключает) безопасность транспортного уровня.

smtp_sasl_auth_enable, который включает (или отключает) аутентификацию SASL.

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

smtp_sasl_password_maps, который указывает файл паролей. Этот файл будет скомпилирован и хеширован postmap на следующем шаге.

smtp_tls_CAfile, который указывает список центров сертификации, которые будут использоваться при проверке подлинности сервера.

Debian, Ubuntu, Arch Linux:

Отредактируйте основной файл конфигурации Postfix:

nano /etc/postfix/main.cf

Добавьте или измените следующие значения:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Сохраните и закройте файл.

Fedora, CentOS:

Отредактируйте основной файл конфигурации Postfix:

nano /etc/postfix/main.cf

Добавьте или измените следующие значения:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

Сохраните и закройте файл.

OpenSUSE:

Отредактируйте основной файл конфигурации Postfix:

nano /etc/postfix/main.cf

Добавьте или измените следующие значения:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/ssl/ca-bundle.pem

Сохраните и закройте файл.

OpenSUSE также требует изменения файла конфигурации главного процесса Postfix master.cf.

Откройте его для редактирования:

nano /etc/postfix/master.cf

Найдите строку, которая гласит:

#tlsmgr unix - - n 1000? 1 tlsmg

Раскомментируйте ее

tlsmgr unix - - n 1000? 1 tlsmg

Сохраните и закройте файл.

FreeBSD:

Отредактируйте основной файл конфигурации Postfix:

nano /usr/local/etc/postfix/main.cf

Добавьте или измените следующие значения:

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/sasl_passwd
smtp_tls_CAfile = /etc/mail/certs/cacert.pem

Сохраните и закройте файл.

4. Обработка файла паролей

Используйте postmap для компиляции и хэширования содержимого sasl_passwd.

Результаты будут сохранены в вашем каталоге конфигурации Postfix в файле sasl_passwd.db.

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

postmap /etc/postfix/sasl_passwd

FreeBSD:

postmap /usr/local/etc/postfix/sasl_passwd

5. Перезапустите Postfix

Перезапустите сервис Postfix, чтобы ваши изменения вступили в силу.

Debian, Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

systemctl restart postfix.service

FreeBSD:

Чтобы запустить службу Postfix только для этого сеанса:

service postfix onestart

Чтобы запустить Postfix автоматически при инициализации системы, откройте /etc/rc.conf на редактирование:

nano /etc/rc.conf

Добавьте строку:

postfix_enable=YES

Сохраните и закройте файл. Затем вы можете запустить:

service postfix start

6. Включить «Небезопасные приложения» в Gmail

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

Чтобы разрешить запросы ретрансляции, войдите в свою учетную запись Gmail и включите Разрешить небезопасные приложения.

Для получения дополнительной информации ознакомьтесь с документом службы поддержки Google Как разрешить небезопасным приложениям доступ к аккаунту

7. Отправить тестовое письмо

Проверьте вашу новую конфигурацию, отправив электронное письмо с помощью команды mail:

Проверьте вашу новую конфигурацию, отправив электронное письмо с помощью команды mail.

mail -s "Test subject" recipient@domain.com

Вам будет представлена пустая строка (или поле CC:, которое вы можете обойти, нажав Enter).

Введите текст вашего сообщения, нажав Enter для новой строки.

Когда вы закончите составлять письмо, введите CTRL-D, чтобы отправить его.

Чтобы отменить электронное письмо, дважды нажмите CTRL-C.

Чтобы отправить заранее составленное письмо, используйте команду:

mail -s "Subject Here" recipient@domain.com < textfile

Где textfile – это имя файла, содержащего текст для отправки.

Поиск проблемы

Если это не работает, проверьте журналы на наличие ошибок Postfix:

Debian:

less /var/log/mail.log

Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

journalctl

FreeBSD:

less /var/log/maillog

Если вы получаете ошибки аутентификации из Gmail, убедитесь, что в настройках учетной записи Gmail включен параметр «Разрешить небезопасные приложения», как указано в шаге 6.

Убедитесь, что файл паролей sasl_passwd существует и что его содержимое правильно отформатировано, как указано в шаге 2.

Если вы вносите какие-либо изменения в файл паролей, обязательно повторите шаги 4 и 5, чтобы хэшировать новый файл паролей, и перезапустите Postfix.

Если вы видите какие-либо ошибки TLS, дважды проверьте конфигурацию в main.cf, как указано в шаге 3.

Если вы внесете какие-либо изменения в конфигурацию, перезапустите Postfix, как указано в шаге 5.

You may also like

Leave a Comment