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

Thank you for reading this post, don't forget to subscribe!

Если у вас есть учет­ная запись 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:

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

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

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

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

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

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

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

Fedora:

CentOS:

OpenSUSE:

Arch Linux:

FreeBSD:

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

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

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. Создай­те или отре­дак­ти­руй­те файл паролей:

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

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

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

FreeBSD:

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

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

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

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:

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

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

Fedora, CentOS:

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

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

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

OpenSUSE:

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

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

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

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

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

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

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

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

FreeBSD:

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

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

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

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

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

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

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

FreeBSD:

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

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

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

FreeBSD:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Debian:

Ubuntu, Fedora, CentOS, OpenSUSE, Arch Linux:

FreeBSD:

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

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

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

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

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