img

Postfix: настройка отправки почты в Asterisk

Дорогой читатель! IP – АТС Asterisk использует e-mail сообщения для отправки уведомлений о различных событиях: голосовая почта, факс, доступные обновления модулей, технические проблемы и много других информативных нотификаций. «Из коробки», для отправки почты используются внутренние механизмы, но что если мы хотим вписать Asterisk в почтовый домен? Для решения данного вопроса можно прибегнуть к двум методам:

icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Укажите вашу электронную почту
Неверный адрес электронной почты
Нажимая на кнопку, вы соглашаетесь на обработку персональных данных
Готово!
Отправили доступы на вашу
электронную почту
  1. Приобретение модуля System Admin Pro за $25 (на
  2. Настройка встроенного почтового сервера Postfix через консоль сервера. Это бесплатно :)

Мы не ищем легких путей, поэтому, в статье расскажем как настроить Postfix для отправки почтовых уведомлений IP – АТС. В качестве примера рассмотрим настройку Яндекс. Почты для домена и общий случай.


Как работает электронная почта: SMTP, IMAP, POP3


Настройка Яндекс. Почты

Подключаемся к консоли нашего сервера IP – АТС через SSH под пользователем root. Открываем для редактирования файл конфигурации Postfix:

[root@asterisk]# vim /etc/postfix/main.cf

Нажимаем «О» для редактирования и добавляем в него следующую конфигурацию (предварительно удалив комментарии):

smtp_sasl_auth_enable = yes //включаем SMTP аутентификацию для SMTP - демона
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd //указываем Postfix путь для файла, в котором хранятся пароль и логин для авторизации на SMTP сервере
smtp_sasl_security_options = noanonymous //мы будем посылать запрос на авторизацию в открытом виде (нешифрованные логин и пароль)
smtp_sasl_type = cyrus // использование библиотеки Cyrus SASL для аутентификации
smtp_sasl_mechanism_filter = login //предлагаемый SMTP клиентом механизм SASL аутентификации
smtp_sender_dependent_authentication = yes //аутентификация в зависимости от отправителя
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay //данная переменная указывает переписывать глобальную настройка relayhost. В данном случае мы будет сравнивать домен отправителя и релэй, куда отправлять почту.
sender_canonical_maps = hash:/etc/postfix/canonical //через какой аккаунт отправлять почту с определенного домена
smtp_generic_maps = hash:/etc/postfix/generic //данная настройка указывает правила, согласно которым, необходимо подменять адрес отправителя письма
smtp_use_tls = yes //у Яндекс. Почты используется TLS
myhostname = asterisk.merionet.ru //хостнейм вашего сервера
mydomain = merionet.ru //домен сервера
myorigin = $mydomain //в данном случае, при отправлении первоначального письма от пользователя root, email адрес отправителя будет root@merionet.ru (в последствие будет заменен согласно правилам переменной smtp_generic_maps)
mynetworks = 127.0.0.0/8 //авторизованная часть сети. Для отправки почты от Asterisk’а оставьте данную настройку как есть
relayhost = [smtp.yandex.ru]:465 //SMTP Яндекс

По окончанию настроек нажимаем :x! и Enter. Начнем конфигурировать файлы, к которым мы указали ссылки в конфигурации main.cf. Открываем файл /etc/postfix/sasl_passwd :

[root@asterisk]# vim /etc/postfix/sasl_passwd

Указываем там следующие параметры:

[root@asterisk]# 
[smtp.yandex.ru] логин:пароль

В качестве логина и пароля используются реквизиты доступа к настраиваемому почтовому адресу. Нажимаем :x! и Enter. Теперь поработаем с файлом sender_relay:

Обратите внимание, что если Вы производите почту для домена от Яндекс. Почты, в поле логин нужно указывать полностью почтовый ящик.
[root@asterisk]# vim /etc/postfix/sender_relay

Вносим следующую конфигурацию:

[root@asterisk]# @домен [smtp.yandex.ru]
пользователь@домен [smtp.yandex.ru]

Для корректной настройки, советуем предварительно перепроверить имя хоста командой hostname, отбросив хостовую часть и точно определив домен. Так же, в качестве отправителя, Вы можете добавить строчку asterisk@домен [smtp.yandex.ru]. Сохраняем изменения указанным ранее способом.

Идем дальше и приступаем к работе с файлом canonical:

[root@asterisk]# vim /etc/postfix/canonical 

Добавляем:

@домен  настраиваемый_почтовый_ящик

В данной настройке мы подсказываем Постфиксу, что отправлять почту с нашего домена нужно через настраиваемый почтовый ящик. Сохраняем изменения. Переходим к настройке generic:

[root@asterisk]# vim /etc/postfix/generic

Здесь мы будем подменять адрес отправителя. Это очень важно поле, так как по умолчанию, в письмо в поле From: будет подставляться значение пользователь@домен. Заполняем:

root настраиваемый_почтовый_ящик 
root@localhost настраиваемый_почтовый_ящик 
root@localhost.localdomain настраиваемый_почтовый_ящик 
root@freepbx настраиваемый_почтовый_ящик 
root@freepbx.localdomain настраиваемый_почтовый_ящик 
asterisk настраиваемый_почтовый_ящик 
asterisk@localhost настраиваемый_почтовый_ящик 
asterisk@localhost.localdomain настраиваемый_почтовый_ящик 
asterisk@freepbx настраиваемый_почтовый_ящик 
asterisk@freepbx.localdomain настраиваемый_почтовый_ящик

Сохраняем изменения :x!. Готово, теперь необходимо выполнить команду:

[root@asterisk ~]# postmap /etc/postfix/generic && postmap /etc/postfix/canonical && postmap /etc/postfix/sender_relay && postmap /etc/postfix/sasl_passwd 

И затем перезагружаем Postfix:

[root@asterisk ~]# service postfix restart
Shutting down postfix:                                  [  OK  ]
Starting postfix: :                                     [  OK  ]

Выполняем проверку. Отправьте тестовое пустое письмо на свой личный почтовый ящик:

[root@asterisk ~]#  mail -s "Postfix Test with Yandex" ваш_email < /dev/null

Как результат, получаем письмо на адрес электронной почты:

Postfix: настройка отправки почты в Asterisk

Общий случай настройки Postfix

Выше мы рассмотрели частный случай настройки Яндек.Почты для домена. Давайте пошагово рассмотрим настройку любого другого SMTP:

  1. Подключаемся по SSH к консоли сервера
  2. Открываем файл /etc/postfix/main.cf
    • добавляем relayhost = [ip – адрес SMTP сервера]
  3. Выполняем команду service postfix restart
  4. Открываем файл /etc/postfix/sasl_passwd
    • добавляем запись вида [ip – адрес SMTP сервера] логин:пароль
  5. Даем команду postmap hash:/etc/postfix/sasl_passwd
  6. Снова открываем файл /etc/postfix/main.cf
    • добавляем
      smtp_sasl_auth_enable = yes
      smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
      smtp_sasl_security_options =
      smtp_generic_maps = hash:/etc/postfix/generic
      
  7. Выполняем команду service postfix restart
  8. Открываем файл /etc/postfix/generic
    • добавляем в него строчки, которые добавили на этапе настройки Яндекс.Почты:
      root настраиваемый_почтовый_ящик 
      asterisk настраиваемый_почтовый_ящик 
      ….
      
  9. Выполняем команду postmap /etc/postfix/generic
  10. Выполняем команду service postfix restart

Возможные ошибки

После команды тестовой отправки почты смотрим лог:

[root@asterisk ~]# tail -f /var/log/maillog

Если наблюдаете ошибку вида 503 5.5.4 Error: send AUTH command first. , то она означает, что email с которого мы пытаемся отправить сообщение отбивается SMTP сервером (как правило, это видно в выводе лога в поле from=<>). В таком случае, проверьте корректность настроек файла /etc/postfix/generic.

Если в логах обнаружили ошибку warning: SASL authentication failure: No worthy mechs found, то вам необходимо установить механизм аутентификации SASL (Simple Authentication and Security Layer). Сделать это можно с помощью команды ниже:

[root@asterisk ~]# yum install cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain

Если на этапе отладки Вы получаете ошибку вида bash: mail: команда не найдена, то Вам необходимо установить Unix утилиту mailx. Сделать это можно с помощью этой команды:

[root@asterisk ~]# yum install mailx
Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
icon strelka icons icons

узнай больше на курсе

Базовый курс по Asterisk
Двухнедельный онлайн курс по Asterisk от Мерион Нетворкс. 5 блоков обучения с домашним заданием. Именной сертификат с уникальным номером при успешной сдаче экзамена
Подробнее о курсе
DevOps-инженер с нуля
Стань DevOps-инженером с нуля и научись использовать инструменты и методы DevOps
Подробнее о курсе
Полный курс по сетевым технологиям
Полный курс по сетевым технологиям от Мерион Нетворкс - учим с нуля сетевых инженеров и DevOPS специалистов
Подробнее о курсе
Онлайн-курс по сетевой безопасности
Изучи основы сетевой безопасности и прокачай скилл системного администратора и сетевого инженера
Подробнее о курсе
Онлайн-курс по кибербезопасности
Полный курс по кибербезопасности от Мерион Нетворкс - учим с нуля специалистов по информационной безопасности. Пора стать безопасником!
Подробнее о курсе
Этичный хакинг
Научись работать с Kali Linux, изучи самые распространенные уязвимости, разверни виртуальную лабораторию для пентестинга
Подробнее о курсе
Еще по теме:
img
Мы создали калькулятор инсталляции IP - АТС Asterisk. При планировании сервера и необходимого оборудования заполните соответствующие поля для расчета производительности, шлюзов и плат
img
Скачать руководство администратора Cisco UCM/CME на русском языке
img
Скачать руководство администратора FreePBX на русском языке
img
Рассказываем как рассчитать пропускную способность для IP-вызовов Cisco
img
Рассказываем как настроить отправку СМС сообщений из контакт-центра Октелл через Ростелеком СМС Реклама
Весенние скидки
30%
50%
60%
До конца акции: 30 дней 24 : 59 : 59