postfix что это такое
Postfix
IBM Public License 1.0
Postfix создавался как альтернатива Sendmail. Считается, что Postfix быстрее работает, легче в администрировании, более защищён и, что важно, совместим с Sendmail.
Изначально Postfix был разработан Вейтсом Венемой в то время, когда он работал в Исследовательском центре имени Томаса Уотсона компании IBM. Первые версии программы стали доступны в середине 1999 года.
Postfix отличается продуманной модульной архитектурой, которая позволяет создать очень надёжную и быструю почтовую систему. Так, например, привилегии root требуются только для открытия порта (TCP 25 порт), а демоны, которые выполняют основную работу, могут работать непривилегированным пользователем в изолированном (chroot) окружении, что очень положительно сказывается на безопасности.
Архитектура Postfix выполнена в стиле UNIX — где простые программы выполняют минимальный набор функций, но выполняют их быстро и надежно. При простое почтовой системы ненужные демоны могут прекращать свою работу, высвобождая тем самым память, а при необходимости снова запускаются master-демоном.
Также стоит отметить более простую и понятную конфигурацию по сравнению с Sendmail и меньшую ресурсоёмкость, особенно во время простоя почтовой системы.
Совместим с AIX, BSD, HP-UX, IRIX, GNU/Linux, Mac OS X, Solaris, Tru64 UNIX, фактически может быть собран на любой Unix-подобной операционной системе, поддерживающей POSIX и имеющей компилятор C. Является службой пересылки почты по умолчанию в ОС NetBSD.
The Postfix Home Page
First of all, thank you for your interest in the Postfix project.
What is Postfix? It is Wietse Venema’s mail server that started life at IBM research as an alternative to the widely-used Sendmail program. Now at Google, Wietse continues to support Postfix.
Postfix attempts to be fast, easy to administer, and secure. The outside has a definite Sendmail-ish flavor, but the inside is completely different.
As of July 2015, all supported Postfix releases have new TLS default settings that no longer enable export-grade ciphers, and no longer enable the SSLv2 and SSLv3 protocols. These ciphers and protocols have little if any legitimate use today, and have instead become a vehicle for downgrade attacks. See the announcement for more.
Logjam Attack: this has mostly the same countermeasure as FREAK: disable EXPORT ciphers on the SMTP server side, as described under the next bullet.
FREAK Attack: To protect vulnerable clients execute as root «postconf smtpd_tls_exclude_ciphers=EXPORT; postfix reload«. This command removes EXPORT ciphers with opportunistic as well as mandatory TLS. The impact of this attack was already low because each Postfix SMTP server process computes its own own «ephemeral» RSA key and terminates after a limited time.
GHOST Attack: Postfix does not call gethostbyname() since 2005. There is no Postfix code that invokes this function unless Postfix is specifically built for operating systems from more than 10 years ago (this requires the compile-time option «-DNO_IPV6«).
About this website
This website has information about the Postfix source code distribution. Built from source code, Postfix can run on UNIX-like systems including AIX, BSD, HP-UX, Linux, MacOS X, Solaris, and more.
Postfix is also distributed as ready-to-run code by operating system vendors, appliance vendors, and other providers. Their versions may have small differences with the software that is described on this website.
Особенности работы Postfix
Добрый день, сообщество. В этой статье хочу поговорить о Postfix – о том, каковы принципы его работы, и о возможностях диагностики проблем. В силу специфики работы приходится с ним сталкиваться — либо для решения своих задач, либо для понимания того, как работает чужая инфраструктура. В интернете о Postfix много информации, однако в основной массе это готовые конфиги для развертывания почтового сервера с нуля. Здесь же я постараюсь охватить основные аспекты администрирования Postfix.
Известно, что Postfix разработан как альтернатива Sendmail. ПО повышало производительность, обеспечивало устойчивость, гибкость и безопасность решения. Все основные Linux-дистрибутивы включают Postfix, в Mac OS X, начиная с версии 10.3, программа также используется вместо Sendmail.
Главные особенности
Архитектура
Postfix состоит из нескольких небольших, совместно работающих программ, которые посылают сетевые сообщения, принимают сообщения, осуществляют локальную доставку почты и другие действия. Связь между программами обеспечивается с помощью сокетов Unix или алгоритмов FIFO. Архитектура отличается от Sendmail, где всю работу нужно выполнять одной большой программе.
Самые важные программы показаны в блок-схеме:
За прием почты на порту SMTP отвечает smtpd. Он же проверяет, авторизован ли клиент для отправки почты. Если письмо отправляется локально, через совместимость с /usr/lib/sendmail, файл будет записан в каталог /var/spool/postfix/maildrop. Этот каталог сканируется программой pickup, которая обрабатывает найденные файлы. Входящая почта обрабатывается программой cleanup. Она добавляет отсутствующие заголовки и переписывает адреса в соответствии с картами canonical и virtual. Прежде чем поместить письмо в очередь, incoming программа cleanup передает письмо программе trivial-rewrite, которая также выполняет незначительные исправления в адресах, добавляя домен и частично заполненный адрес.
Электронные письма, ожидающие доставки, находятся под управлением qmgr – администратора очередей:
Incoming – входящая почта;
Active – доставляемая почта;
Deferred – письма, доставка которых не осуществилась ранее;
Hold – письма, заблокированные в очереди администратором;
Corrupt – письма, которые невозможно прочитать.
Анализатор очередей обычно выбирает сообщение для обработки на основе алгоритма FIFO.
Также он поддерживает и более сложный алгоритм — например, отбирает события только с определенных адресов.
Чтобы не перегружать хост приемки, после доставки писем Postfix использует алгоритм медленного запуска, который позволяет контролировать скорость доставки. Отсроченные письма получают метку с обозначением времени повторной отправки. Время увеличивается экспоненциально, благодаря этому вы можете избежать траты ресурсов на сообщения, которые не удается доставить. Состояние недосягаемых мест кешируется — во избежание новых попыток.
Отправка почты идет при поддержке trivial-rewrite, утилита qmgr принимает решение, куда должно быть отправлено сообщение. Решение о маршруте может быть аннулировано transport картой.
Доставка с помощью SMTP осуществляется, конечно, smtp-программой. Lmtp осуществляет локальную пересылку почты по протоколу LMTP, использующим семантику ESMTP (https://tools.ietf.org/html/rfc2033). LMTP изменен так, что для управления локальной очередью почтовый сервер не нужен.
Задача local – локальная доставка почты. Программа распознает в таблице aliases и выполняет инструкции из файла .forward получателя. Сообщения могут быть направлены по другому адресу, переданы внешней программе на обработку или сохраниться в почтовых папках пользователей.
Программа virtual доставляет письма в виртуальные почтовые ящики – ящики, представляющие собой адреса назначения. Наконец, программа pipe реализует доставку через внешние программы.
Взаимодействие между пользователем и системой обработки регулируется утилитами:
sendmail, mailq, newaliases — интерфейс совместимости postfix и sendmail.
]# sendmail user@example.com
from test@test.com
user@example.com
HI.
.
Поставьте «.» И нажмите Enter — sendmail попытается отправить письмо.
postfix – запускает и прекращает работу системы обработки почты;
]# postfix status
postfix/postfix-script: the Postfix mail system is running: PID: 16765
postalias — создает и модифицирует таблицы псевдонимов;
postmap – создает, модифицирует, запрашивает таблицы преобразований;
onedomain.ru smtp:10.1.2.10
twodomain.ru smtp:10.1.3.10
Утилиты фактически создают индексированные карты файлов. Повторить запуск при изменениях в файлах aliases и transport;
Postcat –напечатает содержимое файла из очереди;
Postsuper и postqueue – управляют почтовыми очередями. Первая используется для высокопривилегированных операций. Например, удаление очереди:
Postconf – инструментальное средство, позволяющее конфигурировать postfix- конфиг main.cf. Без аргументов выводит все параметры в текущей конфигурации. Если передать значение параметра – выведет значение этого параметра. С ключом –d напечатает default-настройки, а не сконфигурированные.
]# postconf virtual_mailbox_limit
virtual_mailbox_limit = 51200000
С ключом –n напечатает только значения, отличные от типовых.
Главным файлом Postfix является main.cf. Он конфигурирует серверные программы и определяет таблицы преобразований, на которые содержит ссылки. Содержит более 300 параметров. Для запуска почтового сервера в средней организации достаточно лишь несколько из них. В документацию рекомендуется включать лишь параметры, содержащие нестандартные значения.
Базовая возможная настройка
Супер-простая конфигурация – пустой файл. Как ни странно, вполне приемлемая и приводит к тому, что создается почтовый сервер, осуществляющий локальную доставку почты в пределах домена локального хоста. Любые нелокальные сообщения посылаются дистанционным серверам.
Второй вариант – null клиент. Система не выполняет локальную доставку, а направляет исходящую почту на указанный почтовый сервер. При этом конфиге указывается несколько параметров: mydomain – определяющий домен компьютера; myorigin — определяющий почтовый домен, добавляемый к почтовым адресам. Третьим параметром будет mydestination, определяющий локальные почтовые домены (они же canonical домены). Если домен получателя соответствует mydestination, письмо доставит программа local (при условии что файла .forward не найдено). Если в mydestination несколько записей, они рассматриваются как псевдонимы одного домена. Null клиенту локальная доставка не нужна, поэтому параметр mydestination — пустой. Также программа local проведет поиск псевдонима адреса в таблицах alias_maps. Наконец, параметр relayhost оповещает Postfix о том, что нелокальные сообщения нужно посылать на указанный компьютер, а не адресатам. Квадратные скобки говорят о том, что указанная строка обрабатывается как имя компьютера, то есть A не MX запись DNS. Null клиент не должен получать почту с других систем – комментируем строчку smtpd в файле master.cf – программа smtpd не запустится.
Преобразования и виртуальные домены
Аспекты поведения Postfix определяются использованием таблиц поиска, отражающих ключи как значения тип: путь или просто как списки. Например, таблица alias_maps:dbm:/etc/mail/aliases.
Обратите внимание, синтаксис ключ: значение обеспечивает совместимость с Sendmail.
Помимо традиционного файла базы данных бинарного формата dbm, источником данных для таблицы преобразований может быть ldap, regexp выражения, postgres, Mysql и многое другое.
Если вам нужно обслуживать почтовый домен, то можно сделать это тремя путями:
— Указать домен в mydestination – доставка пойдет по схеме, описанной выше;
— Указать домен в параметре virtual_alias_domains. Домен получит собственное адресное пространство. Потребуется обеспечить возможность преобразования адресов в реальные (карта virtual_alias_maps);
— Указать домен в virtual_mailbox _domains. Здесь также будет собственное именное пространство. Но управление списком пользователей будет независимым от системных учеток. Потребуется указать параметр virtual_mailbox _maps c таблицей действительных пользователей в домене.
Защита и доступ
Postfix защищает себя на нескольких уровнях. Большинство серверных Postfix-программ могут выполняться в среде с измененным корневым каталогом (chroot). Они являются отдельными программами без связи Родитель-дочерний. Ни одна из них не имеет бита setuid. Каталог, в который направлена почта, открыт для записи группе postdrop, для нее — программа postdrop setgid.
Что касается доступа, почтовые домены ретранслируют почту на сторонние адреса только для надежных агентов. Открытая ретрансляция с неизвестных адресов, как известно, не сулит ничего хорошего. Postfix по умолчанию закрыт как ретранслятор. Стандартные настройки сильно ограничены, возможно вам придется ослаблять ограничения. Доступы конфигурируются списками ограничения доступа access restriction list. Важнейшим параметром будет smtpd_recipient_restrictions, так как адресом получателя куда проще управлять. По крайней мере, можно установить локальный ли он.
Вот список ограничений для проверки ретрансляции:
Check_client_address – проверяет адрес ПК клиента;
Check_recipient_access – проверяет почтовый адрес получателя;
Permit_mynetworks – предоставляет доступ к адресам в параметре mynetworks;
Reject_anauth_destination – отклоняет почту для нелокальных получателей – ретрансляция отсутствует.
Одна из мер защиты – строгая реализация протокола ESMTP. Легитимные почтовые сервера протокол принимают, а рассылки спама могут не принять и дискредитировать себя. Однако сейчас технология уже не столь надежна. Есть злоумышленники, способные обработать легитимную почту.
Фильтрация – для проверки самого Body письма Postfix использует regexp выражения в реальном времени. А также может передавать сообщения другим программам. Postfix поддерживает SpamAssasin и фильтры подобного рода.
До сих пор в версиях Posfix удавались лишь DDOS атаки.
Отладка
Если возникла проблема с почтой, первым делом можно заглянуть в журнальные файлы Posfix. Каждая Postfix-программа регистрирует запись в журнале для обработанного сообщения.
Идентификатор письма 96987C3CFB40 — общий для каждой строки. Postfix присвоит его, как только сообщение попадает в систему и никогда не изменяет. Таким образом, при поиске в журнале можно сосредоточиться на поиске ID, затем с помощью grep отследить маршрут.
Другим местом поиска является сама очередь. Утилита postqueue –p (или аналогичный вывод mailq) печатает содержимое очереди.
90190C3B9B9F 2242 Mon Jul 27 19:50:05 MAILER-DAEMON
(connect to 10.70.85.12[10.70.85.12]:25: No route to host)
95E96C3CFB5A 2307 Mon Jul 27 19:50:05 MAILER-DAEMON
(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)
956FAC3CFB46 2311 Mon Jul 27 19:50:05 MAILER-DAEMON
(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)
96987C3CFB40 2311 Mon Jul 27 19:50:05 MAILER-DAEMON
(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)
97944C3CFB5E 2311 Mon Jul 27 19:50:05 MAILER-DAEMON
(delivery temporarily suspended: connect to 10.70.85.12[10.70.85.12]:25: No route to host)
postcat –qv 96987C3CFB40 Найдет письмо по ID, покажет заголовок и дополнительную информацию:
[root@iwtm611
postcat: name_mask: all
postcat: inet_addr_local: configured 2 IPv4 addresses
postcat: inet_addr_local: configured 2 IPv6 addresses
*** ENVELOPE RECORDS deferred/9/96987C3CFB40 ***
message_size: 2311 201 1 0 2311
message_arrival_time: Mon Jul 27 19:50:05 2020
create_time: Mon Jul 27 19:50:05 2020
regular_text: Received: from Vvpc (unknown [10.254.1.250])
regular_text: by iwtm611.local (Postfix) with ESMTP id BCB42C3CFB62
regular_text: for ; Thu, 2 Jul 2020 12:48:45 +0300 (MSK)
regular_text: MIME-Version: 1.0
regular_text: From: user@domain.ru
regular_text: To: usr111@test.com
regular_text: Date: 2 Jul 2020 12:48:40 +0300
regular_text: Subject: test
regular_text: Content-Type: text/plain; charset=utf-8
regular_text: Content-Transfer-Encoding: base64
*** HEADER EXTRACTED deferred/9/96987C3CFB40 ***
*** MESSAGE FILE END deferred/9/96987C3CFB40 ***
qshape – новый инструмент свежих версий – показывает сводную статистику содержимого и подводит итог – количество минут, в течение которых сообщение отправляется. Например, для итога по домену отправителя запустите qshape –s, а отклоненные письма можно посмотреть через параметр qshape deferred.
В примере таблицы можно увидеть, что 4 сообщения на gmail висят в очереди более 120 минут.
Рикошет – вызывается параметром soft_bounce. Это конфигурационный параметр. Postfix будет отправлять временные сообщения при отправке сообщений об ошибках типа: user_unknown или relay_denied. Это эффективное средство, позволяющее отслеживать местонахождение сообщения после изменений конфигурации и не терять их. Все, что вы отклоните, в конечном итоге вернется отправителю. Не забудьте это отключить после завершения проверки.
Для проверки доступа в Postfix есть расширение xclient, имитирующее отправку сообщений из другого места. Включается в main.cf параметром smtpd_autorized_xclient_hosts.
Postfix можно легко установить и запустить. Но быстро разобраться и решить проблему его внедрения в незнакомой структуре, удастся лишь при понимании тонкостей его работы. Надеюсь, кому-то эта статья поможет сэкономить время и силы на выявление причин проблем. И понять, почему почтовая система работает таким образом, а не иначе.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Postfix
Архитектура Postfix выполнена в стиле UNIX — где простые программы выполняют минимальный набор функций, но выполняют их быстро и надежно. Во время простоя почтовой системы ненужные демоны могут прекращать свою работу, высвобождая тем самым память, а при необходимости снова запускаются master-демоном. [Источник 1]
Содержание
Обязанности
Базовая настройка почтового сервиса
Установка Postfix на Ubuntu
При конфигурировании пакета будут заданы несколько вопросов, внимание стоит обратить лишь на предлагаемые профили первоначальной настройки. Вне зависимости от того, какова цель использования Postfix, всегда нужно выбирать Internet Site. Это необходимо сделать для того, чтобы Postfix сгенерировал файл main.cf и сразу начал работу. В противном случае, необходимо будет конфигурировать этот файл самостоятельно.
Общие настройки Postfix
Итак, Postfix установлен. Все настройки этого почтового сервера хранятся в /etc/postfix. В этом каталоге в первую очередь должен интересовать основной файл конфигурации, называющийся main.cf. Теперь настала пора определиться с тем, какую функцию будет выполнять ваш почтовый сервер. Собственно, для каждого из обслуживаемых доменов тут есть два варианта:
В настройках Postfix есть три основных группы параметров:
Postfix занимается обработкой почты для указанных в конфигурации доменов. Каждый домен может обрабатываться ровно одним из указанных способов, то есть либо как конечный домен для почты, либо как домен для пересылки, либо как виртуальный домен.
Стандартная локальная доставка основана на системе авторизации и учёта пользователей вашей системы, что значительно уменьшает её гибкость, поэтому смысла её использовать обычно нет. Вместо этого следует использовать механизм «виртуальных доменов» для доставки почты в локальные почтовые ящики. Однако рассмотреть параметры, отвечающие за локальную доставку, всё же надо, ибо на них много что завязано.
Комментарии можно добавлять, поставив в начало строки символ #. Параметры, имеющие несколько значений, можно записывать одним из следующих способов:
В третьем и четвёртом случае необходим пробел в начале каждой строчки с параметром.
Настройка основных параметров Postfix
Прежде всего вам надо настроить следующие параметры, отвечающие за домен и имя сервера:
Теперь можно перейти к настройке общих параметров сервера:
Локальная доставка
Для организации локальной доставки будет использован не стандартный механизм Postfix, доставшийся в наследство от Sendmail, а механизм виртуальных доменов. Это позволит нам не зависеть от списка локальных пользователей вашего сервера и добавлять ящики даже для пользователей, не имеющих учётных записей на сервере. Конфигурировать виртуальные домены гораздо проще локальных, плюс есть много очень мощных возможностей, доступных только для виртуальных доменов. [Источник 3]
Видео установки Postfix
Совместимость
Совместим с AIX, BSD, HP-UX, IRIX, GNU/Linux, Mac OS X, Solaris, Tru64 UNIX, фактически может быть собран на любой Unix-подобной операционной системе, поддерживающей POSIX и имеющей компилятор C. Является службой пересылки почты по умолчанию в ОС NetBSD.
Установка и настройка Postfix и Dovecot на Ubuntu 20.04
Postfix – это программный продукт, позволяющий организовать почтовый сервер. Он был создан как альтернатива Sendmail – старейшему агенту передачи почты (MTA – Mail Transfer Agent). Postfix распространяется с открытым исходным кодом и используется разработчиками для маршрутизации и пересылки почтовых писем внутри системы Linux.
В ходе сегодняшней статьи мы подробно рассмотрим, как выполняется установка и настройка Postfix на сервере Ubuntu 20.04, а также поговорим о том, что представляет собой Dovecot и как правильно его установить в связке с Postfix.
Требования
Прежде чем переходить к установке программного средства, рекомендуем ознакомиться c необходимыми требованиями. Для реализации рассматриваемой задачи нам потребуется:
Обратите внимание на то, что настройка хоста будет выполняться с доменным именем типа email.example2.com. В последующем вам потребуется заменить все подобные значения на свое собственное доменное имя.
Как установить Postfix
По умолчания Postfix включен в репозиторий операционной системы Ubuntu, поэтому с установкой не должно возникнуть никаких проблем. Провести ее мы можем с использованием команды apt.
Первым делом обновляем кэш пакетов:
Затем устанавливаем непосредственно сам пакет Postfix. Здесь важно обратить внимание на значение DEBIAN_PRIORITY=low – оно позволяет нам подключить некоторые дополнительные опции.
В результате перед нами отобразится ряд вопросов и сообщений. Отвечаем на них следующим образом:
Все вышеуказанные настройки мы в любой момент времени можем подкорректировать. Чтобы открыть окно редактирования, достаточно ввести:
На этом установка Postfix на Ubuntu завершена, теперь можем переходить к более детальным настройкам.
Настройка Postfix
Большинство настроек конфигурации Postfix заданы в файле main.cf, который можно найти по адресу /etc/postfix/main.cf. Здесь мы можем пойти следующим образом: изменять параметры непосредственно в самом файле либо воспользоваться командой postconf.
Для настройки Postfix первым делом нам потребуется прописать расположение почты обычного пользователя Ubuntu. В нашем случае мы используем формат Maildir – в нем сообщения выделяются в отдельные файлы, перемещаемые между каталогами. Также вы можете хранить сообщения в формате mbox или любом удобном для вас.
Указываем значение Maildir для переменной home_mailbox. Настроить ее можно с помощью команды:
Прописываем расположение таблицы virtual_alias_maps, где все учетные записи почты сопоставляются с аккаунтами системы Linux. Также активируем еще одну команду, с помощью которой мы сопоставим расположение таблицы с файлом базы данных хэша в /etc/postfix/virtual:
Теперь мы можем начать сопоставление учетных записей почты с профилями пользователей в ОС Linux. Для этого создадим файл в nano, вы же можете выбрать любой другой текстовый редактор:
Записываем все адреса, для которых мы хотим получать электронную почту, а также прописываем пользователей Ubuntu Postfix, которым будут приходить письма. Для примера возьмем следующую ситуацию: нам нужно получать все письма на адреса excontact@example2.com и exadmin@examlpe2.com и отправлять их пользователю операционной системы Linux с именем UserNameZ7. В таком случае настройка файла будет выглядеть следующим образом:
После успешного ввода данных сохраняемся и выходим из файла. В нашем случае это редактор nano, поэтому зажимаем на клавиатуре комбинацию клавиш «CTRL+X, Y» и жмем «Enter». После этого осуществляем сопоставление строчкой кода:
Затем перезагружаемся командой:
Если брандмауэр был настроен с помощью UFW, вам потребуется добавить одно исключение. Это связано с тем, что UFW по умолчанию блокирует все внешние подключения к службам сервера. Решить проблему можно одной строчкой кода:
Готово! Настройка Postfix на Ubuntu 20.04 прошла успешно. Теперь было бы хорошо его протестировать на почтовом клиенте, но сделать этого мы пока не можем. Прежде чем установить почтовый клиент, для начала нам нужно внести некоторые корректировки в параметры сервера Ubuntu.
Установка почтового клиента
В данном разделе мы установим пакет s-nail для взаимодействия с доставляемой почтой. Перед тем как начать установку, рекомендуем проверить настройку переменной среды «MAIL». Клиенту эта переменная необходима для того, чтобы определять места почты для пользователя.
Если необходимо гарантированно задать переменную MAIL, вне зависимости от способа доступа к учетной записи, потребуется указать ее в файле /etc/bash.bashrc и добавить в /etc/profile.d, чтобы она использовалась всеми юзерами.
Для этого введем следующее:
Чтобы прочитать переменную текущего сеанса, можно ввести:
Теперь мы можем переходить к установке клиента s-nail. Прописываем для этого:
Пока что не запускаем его, добавим в него несколько записей. Сначала откроем файл в редакторе nano:
В конец вставим следующее:
Расшифруем каждую строчку:
На этом с файлом заканчиваем – сохраняемся и закрываем его. Теперь нам потребуется выполнить еще одно действие – инициализировать структуру Maildir. Чтобы это сделать, необходимо отправить себе электронное письмо командой s-nail. Так как файл sent доступен только после создания Maildir, потребуется отключить запись в этот файл. Для этого воспользуемся командой -Snorecord.
Для отправки письма добавим строку в команду s-nail. Обратите внимание, что в конце указывается имя пользователя – вам потребуется изменить его на свое.
В ответе вы можете увидите сообщение:
Это нормально – такое сообщение обычно появляется только при первой отправке.
Убедимся, что каталог был создан:
В результате должно отобразиться примерно следующее:
Теперь мы можем перейти к тестированию почтового клиента.
Тестирование отправки почты
Для начала запустим клиент, для этого используем команду:
Чтобы отправить сообщение, передадим содержимое текстового файла в процесс s-nail. Откроем для этого текстовый редактор:
Пропишем туда сообщение, например:
Сохраняемся и закрываем редактор. Для передачи сообщения в s-nail, используем команду cat. Она может принимать следующие значения:
Также вам потребуется заменить последний адрес, указанный в строчке кода:
После этого на указанную электронную почту должно прийти письмо. Чтобы проверить отправленные сообщения через s-nail, нужно прописать file +sent, где file – ваше уникальное название.
Установка и настройка Dovecot
Dovecot – это свободный IMAP- и POP3-сервер, разработанный с упором на безопасность. Нам он потребуется для того, чтобы подключить авторизацию по протоколу SMTP.
Устанавливаем Dovecot с компонентом для работы с СУБД:
Настраиваем способ хранения сообщений, для этого откроем файл:
Пропишем в него следующее:
В данном случае сообщения будут храниться в уже известном нам формате Maildir.
Далее настраиваем слушателя для аутентификации:
В файле прописываем:
На этом примере мы настраиваем сервис для аутентификации и создаем два прослушивателя: /var/spool/postfix/private/auth – для возможности Постфиксом использовать авторизацию через Dovecot, auth-userdb – сокет для авторизации через dovecot-lda.
В этот же файл добавляем:
Переходим к настройке аутентификации в Dovecot, открываем файл 10-auth.conf:
Задаем в нем следующие значения:
Открываем файл 10-ssl.conf командой vi /etc/dovecot/conf.d/10-ssl.conf и настраиваем в нем использование шифрования:
Добавляем автоматическое создания каталогов в файле vi /etc/dovecot/conf.d/15-lda.conf:
Настраиваем подключение к базе данных. Для начала открываем нужный файл:
В этом фрагменте мы указали на файл, в котором будут находиться настройки для получения пользователей и паролей из БД.
Переходим к корректированию файла с настройками работы mySQL:
В конце файла добавляем:
Таким образом, мы смогли настроить запрос на получение данных из БД. Осталось сконфигурировать интерфейс, на котором мы будем слушать Dovecot:
В этот файл прописываем:
По умолчанию Dovecot слушает и на ipv6 (listen = *, ::). Если на сервере не используется 6-я версия протокола TCP/IP, то в логах могут быть ошибки.
Разрешаем запуск Dovecot:
Изменение конфигурации Postfix для Dovecot
Так как для отправки писем мы используем протокол SMTP через Dovecot, нам потребуется внести некоторые изменения в основном файле. Откроем его:
Изменяем в нем следующее:
Также комментируем строки:
Вместо них прописываем:
Откроем файл sudo nano /etc/postfix/master.cf и раскомментируем в нем строчку:
Осталось перезагрузиться в Postfix:
Теперь вы можете протестировать отправку почты. Обратите внимание, что у Dovecot также есть лог – чтобы его включить, необходимо открыть файл sudo nano /etc/dovecot/conf.d/10-logging.conf и внести в него корректировки:
Первая строка указывает на путь к логу, а вторая показывает неудачные попытки авторизации.
Заключение
Теперь вы знаете, как выполняется установка и настройка Postfix и Dovecot на Ubuntu 20.04. Начинающим системным администраторам на первый взгляд это может показаться непосильной задачей, но с данными инструкциями все должно получиться. Удачи!