Пошаговые руководства, шпаргалки, полезные ссылки...
БлогФорумАвторы
Полезные Online-сервисы
Перечень Бесплатного ПО
Подписка на RSS-канал
По умолчанию в Debian 8 (Jessie) устанавливаются пакеты exim4 и mutt. exim4 - это почтовый сервис MTA/MDA,который может выступать для приёмки почты от локальных служб и приложений и пересылать её наружу на другие почтовые серверы. mutt - это простой почтовый клиент. По умолчанию exim4 настраивается на обработку только локальной почты самой системы, а почта, предназначенная системному администратору (учётная запись root), будет доставлена на учётную запись обычного пользователя (созданного во время установки) в файл /var/mail/{user}
/var/mail/{user}
Предположим, у нас в организации уже имеется почтовый сервер, нам нужно сделать так, чтобы служба exim4, работающая на нашем сервере, принимала почту от локальных служб на интерфейсе localhost:25 и переправляла всю почту на почтовый сервер организации (relayhost).
Выполним реконфигурацию пакета exim4:
# dpkg-reconfigure exim4-config
Из предложенных вариантов настройки конфигурации выбираем smarthost без локальной почты:
Поле System mail name очистим или оставим FQDN имя нашего сервера
Укажем интерфейс на котором exim4 будет повесит TCP-прослушиватель для приёма почты:
Домены, для которых почта будет считаться локальной указывать не будем, чтобы вся почта шла на smarthost
Укажем адрес внешнего почтового сервера (smarthost)
Не будем отказываться от активного использования DNS, так как предполагаем, что DNS-серверы у нас в сети работают исправно и доступны всегда.
Чтобы не усложнять, откажемся от дробления конфигурации на 50 разных файлов и будем использовать конфигурацию с единым файлом.
Утилита конфигурации завершит свою работу.
Если требуется более тонка настройка, то конфиги exim4 лежат в каталоге /etc/exim4/
/etc/exim4/
В частности, результаты работы exim4-config будут сброшены в /etc/exim4/update-exim4.conf.conf
/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 по умолчанию может иметь примерно следующий вид:
# /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.
mailer-daemon
postmaster
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
Дополнительные источники информации:
Руководство по установке Debian GNU/Linux 8 («jessie»). 8.5. Настройка почты
Проверено на следующих конфигурациях:
Автор первичной редакции: Алексей Максимов Время публикации: 27.02.2017 21:00