===== Как настроить отсылку уведомлений на внешний почтовый сервер с помощью exim4 в Debian 8 (Jessie) ===== {{:unix-linux:debian:pasted:20170319-123914.png }} По умолчанию в **Debian 8 (Jessie)** устанавливаются пакеты **exim4** и **mutt**. **exim4** - это почтовый сервис MTA/MDA,который может выступать для приёмки почты от локальных служб и приложений и пересылать её наружу на другие почтовые серверы. **mutt** - это простой почтовый клиент. По умолчанию exim4 настраивается на обработку только локальной почты самой системы, а почта, предназначенная системному администратору (учётная запись root), будет доставлена на учётную запись обычного пользователя (созданного во время установки) в файл ''/var/mail/{user}'' Предположим, у нас в организации уже имеется почтовый сервер, нам нужно сделать так, чтобы служба exim4, работающая на нашем сервере, принимала почту от локальных служб на интерфейсе localhost:25 и переправляла всю почту на почтовый сервер организации (relayhost). ---- ==== Реконфигурация пакета exim4 ==== Выполним реконфигурацию пакета exim4: # dpkg-reconfigure exim4-config Из предложенных вариантов настройки конфигурации выбираем smarthost без локальной почты: {{ :unix-linux:debian:pasted:20170227-213017.png }} Поле **System mail name** очистим или оставим FQDN имя нашего сервера {{ :unix-linux:debian:pasted:20170227-232011.png }} Укажем интерфейс на котором exim4 будет повесит TCP-прослушиватель для приёма почты: {{ :unix-linux:debian:pasted:20170227-214241.png }} Домены, для которых почта будет считаться локальной указывать не будем, чтобы вся почта шла на smarthost {{ :unix-linux:debian:pasted:20170227-232305.png }} {{ :unix-linux:debian:pasted:20170227-215208.png }} Укажем адрес внешнего почтового сервера (smarthost) {{ :unix-linux:debian:pasted:20170227-215719.png }} Не будем отказываться от активного использования DNS, так как предполагаем, что DNS-серверы у нас в сети работают исправно и доступны всегда. {{ :unix-linux:debian:pasted:20170227-220130.png }} Чтобы не усложнять, откажемся от дробления конфигурации на 50 разных файлов и будем использовать конфигурацию с единым файлом. {{ :unix-linux:debian:pasted:20170227-220345.png }} Утилита конфигурации завершит свою работу. Если требуется более тонка настройка, то конфиги exim4 лежат в каталоге ''/etc/exim4/'' В частности, результаты работы **exim4-config** будут сброшены в ''/etc/exim4/update-exim4.conf.conf'' Проверяем статус службы: # service exim4 status
● exim4.service - LSB: exim Mail Transport Agent Loaded: loaded (/etc/init.d/exim4) Active: active (running) since Mon 2017-02-27 22:14:09 MSK; 8s ago Process: 7227 ExecStop=/etc/init.d/exim4 stop (code=exited, status=0/SUCCESS) Process: 7237 ExecStart=/etc/init.d/exim4 start (code=exited, status=0/SUCCESS) CGroup: /system.slice/exim4.service └─7496 /usr/sbin/exim4 -bd -q30m Feb 27 22:14:09 KOM-AD01-MON20 exim4[7237]: Starting MTA: exim4. Feb 27 22:14:09 KOM-AD01-MON20 systemd[1]: Started LSB: exim Mail Transport Agent.
---- ==== Тестируем отправку почты ==== Протестируем локальную отправку почты через exim4 на localhost:25 с помощью утилиты mail: $ echo "test mail." | mail -s Test Vasya.Pupkin@holding.com Протестируем более сложную локальную отправку почты через exim4 на localhost:25 с помощью telnet-подключения: # telnet 127.0.0.1 25
Trying 127.0.0.1... Connected to 127.0.0.1. Escape character is '^]'. 220 KOM-AD01-MON20.holding.com ESMTP Exim 4.84_2 Mon, 27 Feb 2017 22:16:28 +0300 ehlo localhost <--- Вводим первую обязательную команду 250-KOM-AD01-MON20.holding.com Hello localhost [127.0.0.1] <--- Ответ сервера 250-SIZE 52428800 250-8BITMIME 250-PIPELINING 250 HELP mail from:KOM-AD01-MON20@holding.com <--- Вводим от кого отправляется письмо 250 OK <--- Сервер готов принять письмо от указанного адресата rcpt to:DST-KOM-MON-Admins@holding.com <-- Вводим кому отправляется письмо 250 Accepted <--- Сервер готов принять письмо для указанного адресата data <--- Вводим команду для начала ввода данных письма 354 Enter message, ending with "." on a line by itself <--- Сервер просит закончить письмо точкой Subject:Test message <--- Вводим тему письма, затем Enter This is my test message body <--- Вводим тело письма . <--- В конце ввода письма на отдельной строчке ставим точку и жмём Enter 250 OK id=1ciQpQ-0001yL-Je <--- Сервер сообщает о том, что письмо сформировано и поставлено в очередь для отправки quit <--- Вводим команду завершения SMTP-сессии 221 KOM-AD01-MON20.holding.com closing connection <--- Сервер закрывает соединение Connection closed by foreign host.
В реальной режиме времени лог отправки можно посмотреть так: # tail -f /var/log/exim4/mainlog ---- ==== Локальная отправка почты ==== Может оказаться так, что некоторые приложения будут пытаться отослать почту на локальных пользователей системы. Например, некоторые приложения по умолчанию могут быть настроены так, что в случае каких-то критических проблем будет предпринята попытка отослать письмо на локального пользователя **root**. В этом случае служба **exim4** может использовать конфигурационный файл ''/etc/aliases'' для определения адреса отправки. Файл ''/etc/aliases'' по умолчанию может иметь примерно следующий вид: # /etc/aliases mailer-daemon: postmaster postmaster: root nobody: root hostmaster: root usenet: root news: root webmaster: root www: root ftp: root abuse: root noc: root security: root root: petya То есть почта, адресованная ''mailer-daemon'' будет переназначать отправку почту на ''postmaster'', ''postmaster'' в свою очередь на ''root'', а ''root'' на локального пользователя ''petya''. Чтобы сделать так, чтобы вся почта, предназначенная локальному пользователю ''root'' перенаправлялась на внешний почтовый адрес администратора сервера, то можно привести файл к следующему виду: # /etc/aliases mailer-daemon: postmaster postmaster: root nobody: root hostmaster: root usenet: root news: root webmaster: root www: root ftp: root abuse: root noc: root security: root # root: petya root: DST-Monitoring@holding.ru Для того, чтобы применить сделанные изменения выполним последовательно команды: # newaliases # systemctl restart exim4.service Снова протестируем отправку почты с явным указанием внешнего почтового адреса: # echo "test mail 1" | mail -s Test DST-Monitoring@holding.ru Также протестируем отправку почты с указанием локального пользователя Linux: # echo "test mail 2" | mail -s Test root ---- Дополнительные источники информации: [[https://www.debian.org/releases/jessie/s390x/ch08s05.html.ru|Руководство по установке Debian GNU/Linux 8 («jessie»). 8.5. Настройка почты]] ---- {{:user:blogroot.png?50&nolink |}} Автор первичной редакции:\\ [[user:blogroot|Алексей Максимов]] \\ Время публикации: 27.02.2017 21:00 {{tag>Linux Debian "Debian 8" "Debian Jessie" exim4 email smarthost relayhost telnet SMTP mutt mail}} ~~DISCUSSION~~