Конфигурация Postfix/Dovecot для использования Gmail в качестве релея

Вопрос или проблема

У кого-нибудь есть полная конфигурация использования Dovecot для обработки токенов OAuth2, чтобы позволить Postfix отправлять письма на Gmail? Большинство найденных случаев либо слишком старые, либо не полные. Я выполнил необходимые шаги из Google API и получил учетные данные в формате JSON.

Заранее спасибо, Дин

.

Ответ или решение

Конфигурация системы отправки почты через Gmail посредством Dovecot и Postfix с использованием OAuth2 может быть сложной задачей, требующей внимания к каждому элементу процесса аутентификации и передачи данных. В данном ответе я подробно объясню теоретические аспекты, предоставлю практический пример и предложу способы применения этой конфигурации.

Теория

OAuth2 и аутентификация

OAuth2 — это протокол, который обеспечивает доступ к ресурсам от имени пользователя без передачи его пароля. В контексте работы с Postfix и Dovecot, OAuth2 предоставляет механизм для безопасной аутентификации, что особенно актуально при использовании сторонних сервисов, таких как Gmail.

Dovecot и Postfix

Dovecot используется как имейл-сервер IMAP/POP3, который, в данном случае, будет обрабатывать токены OAuth2. Postfix, наоборот, является почтовым сервером SMTP, который используется для отправки писем. В связке они позволяют безопасно и эффективно обрабатывать и передавать сообщения через SMTP-серверы, такие как Gmail.

Пример конфигурации

Предварительная подготовка

  1. Создание учетных данных в Google Cloud Console

    • Создайте проект и включите Gmail API.
    • Настройте экран согласия OAuth и получите учетные данные с типом "Введите всё необходимое".
    • Скачайте JSON-файл учетных данных.
  2. Установка необходимых пакетов

    • Убедитесь, что у вас установлены Postfix и Dovecot. Установка может производиться через пакетные менеджеры, такие как apt на Ubuntu или yum на CentOS.

Конфигурация Dovecot для OAuth2

  • Создайте рабочую папку для скриптов OAuth2 и сохранения токенов:

    mkdir -p /etc/dovecot/oauth2
    chown dovecot:dovecot /etc/dovecot/oauth2
  • Создайте скрипт для запроса токенов:

    #!/bin/bash
    CLIENT_ID="<Ваш_клиентский_ID>"
    CLIENT_SECRET="<Ваш_секрет_клиента>"
    REFRESH_TOKEN="<Ваш_refresh_token>"
    
    RESPONSE=$(curl -s \
    --data "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&refresh_token=$REFRESH_TOKEN&grant_type=refresh_token" \
    https://oauth2.googleapis.com/token)
    
    ACCESS_TOKEN=$(echo $RESPONSE | jq -r '.access_token')
    
    echo $ACCESS_TOKEN
  • Не забудьте установить необходимые разрешения:

    chmod +x /etc/dovecot/oauth2/script.sh
  • Настройте Dovecot для использования скрипта аутентификации OAuth2. Настройки добавляются в файл конфигурации Dovecot, обычно он находится в /etc/dovecot/conf.d/10-auth.conf:

    passdb {
    driver = passwd-file
    args = scheme=plain-md5 /etc/dovecot/oauth2/passwd
    }
    
    userdb {
    driver = static
    args = uid=vmail gid=vmail home=/var/mail/%d/%n
    }
    
    # Обработчик для получения токена из скрипта
    passdb {
    driver = oauth2
    args = /usr/bin/doveadm-tokens --export /etc/dovecot/oauth2/script.sh %u
    }

Конфигурация Postfix

  • Основные конфигурации для Postfix находятся в файле /etc/postfix/main.cf. Вам потребуется обновить или добавить следующие параметры:

    relayhost = [smtp.gmail.com]:587
    smtp_sasl_auth_enable = yes
    smtp_sasl_security_options = noanonymous
    smtp_sasl_tls_security_options = noanonymous
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
    smtp_use_tls = yes
    smtp_sasl_password_maps = static:oauth2:<Ваш_почтовый_адрес>
  • Добавьте в /etc/postfix/sasl_passwd следующую строку:

    [smtp.gmail.com]:587 oauth2:<Ваш_почтовый_адрес>:$(/etc/dovecot/oauth2/script.sh)
  • Обновите базу данных Postfix после изменения файла sasl_passwd:

    postmap /etc/postfix/sasl_passwd

Применение

После настройки всех указанных конфигураций, необходимо перезапустить службы Dovecot и Postfix:

systemctl restart dovecot
systemctl restart postfix

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

Заключение

Использование OAuth2 для отправки почты через Gmail с помощью Dovecot и Postfix — это надежный и современный подход, соответствующий современным требованиям безопасности. Постоянно изменяющийся ландшафт сетевой безопасности и политик аутентификации требует регулярного обновления и проверки конфигурации, чтобы оставаться в соответствии с актуальными стандартами. Надеюсь, предоставленная информация поможет вам в успешной настройке вашей почтовой системы.

Оцените материал
Добавить комментарий

Капча загружается...