Edcomp.ru

Советы по настройке и оптимизации компьютера
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Настройка Postfix и Dovecot на Ubuntu

HOW-TO: Настройка Postfix + Dovecot + Dovecot SASL + виртуальные пользователи в LDAP

И так, у нас уже есть настроенный LDAP сервер по этой статье и внём уже есть пользователи, хотелось бы использовать данных пользователей для почтового сервера. Сформируем условия для нашего почтового сервера:

1. Пользователи являются виртуальными и находятся в базе LDAP на другом сервере

2. Алиасы пользователей так же находятся в LDAP сервере

3. Домены поддерживаемые серверов тоже находятся в LDAP

4. Существует поддержка квот, значения квот берутся из LDAP

5. В качестве логина будет использоваться email пользователя

6. Почтовые папки пользователей будут находится по адресу /home/mail/_домен_/_email_пользователя_/

7. В качестве почтового пользователя на сервере, будет пользователь vmail которого необходимо создать

8. В качестве почтовой группы на сервере, будет группа mail которая присутствует по умолчанию

9. Почтовый сервер будет работать только по защищённым соединениям т. е. pop3 соединения будут осуществляться на 995 порту либо на 110 порту с обязательно включенной опцией starttls, imap соединения будут осуществляться на 993 порту либо на 143 порту с обязательно включенной опцией starttls, smtp соединение для отправки почты пользователями будет осуществляться на 465 порту либо на 25 порту с обязательно включенной опцией starttls.

В распоряжении имеется машина со свежеустановленной Ubuntu 10.04.

Все действия в этой статье выполняются от пользователя root.

Прежде чем приступить к настройке самого почтового сервера необходимо немного подготовить LDAP сервер. И так, для начала нам необходимо добавить ещё одну схему в LDAP .

и в конце файла удаляем всё начиная с structuralObjectClass: и до конца файла.

Добавляем эту схему в LDAP

Теперь открываем Gosa, в разделе Administration открываем Системы, далее жмём Действия → Создать → Сервер указываем Server name, обязательно указываем IP-адрес, по этому полю будет выставлен фильтр серверов при поиске доменов и указываем MAC-адрес, его можно указать произвольно.

Переходим на вкладку Services, жмём Действия → Создать → Service в поле Service to add выбираем Mail smtp service(Postfix) и жмём продолжить. В открывшейся странице в поле Domains to accept mail for добавляем домены которые будет обслуживать почтовый сервер, в данном случае это example.com. Жмём Сохранить, затем Ок, в результате должен появится новый сервер с названием которое мы указали в Server name.

Переходим к пользователям, создаём нового или открываем существующего, переходим на вкладку Почта, жмём Add Почта settings. Заполняем поля:

Основной адрес — здесь полностью указываем основной адрес пользователя, в данном случае это test@example.com

Размер квоты — здесь указываем размер квоты (ВНИМАНИЕ. размер квоты указываем в байтах. К сожалению мне не удалось найти способ преобразовывать Мб в байты при получении данных из LDAP ), если хотите чтоб ящик не имел ограничений то это поле оставьте пустым.

Alternative addresses — здесь можно добавить алиасы.

Перенаправлять сообщения — если хотите чтоб сообщения доставлялись не только на основной адрес, а и на другой адрес на этом почтовом сервере, то укажите этот адрес здесь.

Далее жмём Ок, всё почтовый пользователь добавлен.

Также необходимо добавить адрес postmaster@example.com я этот адрес добавил админу samba.

1. Базовая настройка postfix.

Настраиваем базовую конфигурацию

Отвечаем на вопросы

Применяем патч квоты Postfix

Мы должны получить исходники Postfix, патч к нему, построить .deb пакеты и установить эти .deb пакеты:

Устанавливаем необходимые пакеты для сборки

Загружаем исходники postfix

Загружаем и применяем патч квоты

Собираем пропатченный postfix

Перейдем на один уровень вверх и посмотрим какие новые .deb пакеты были созданы:

Выбираем пакеты postfix и postfix-ldap и устанавливаем их:

2. Создание сертификатов для postfix и dovecot

Генерируем Certificate Signing Request (CSR)

Создадим ключ для Certificate Signing Request (CSR)

здесь необходимо будет указать пароль для защищённого ключа

Теперь создадим незащищённый ключ

здесь необходимо будет указать пароль от защищённого ключа

здесь необходимо будет ответить на ряд вопросов

Установим ключ сервера

Создаём внутренний Certification Authority (CA) Для начала создадим директории необходимые для СА сертификатов

Создаём необходимые файлы

Редактируем /etc/ssl/openssl.cnf в секции [ CA_default ] следующим образом

Создадим self-singed корневой сертификат

здесь необходимо будет указать пароль для ключа и ответить на вопросы

Установим корневой сертификат и ключ

Создадим сертификаты для postfix и dovecot Создаём сертификат для postfix

отвечаем на вопросы

Установим полученный сертификат

Для создания следующего сертификата необходимо в файле /etc/ssl/CA/index.txt.attr заменить значение unique_subject с yes на no

Создаём сертификат для dovecot

Устанавливаем полученный сертификат

3. Создание сертификатов для связи с LDAP

Создаём ключ для почтового сервера

Создаём файл mail.info следующего содержания

Первые пять значений меняйте на свои.

Копируем СА сертификат и переименовываем его

Теперь содержимое папки mail-ssl необходимо скопировать на почтовый сервер следующим образом файлы mail_server_ldap_ca.pem и mail_server_ldap_cert.pem необходимо положить в папку /etc/ssl/certs на почтовом сервере файл mail_server_ldap_key.pem необходимо положить в папку /etc/ssl/private на почтовом сервере.

4. Настраиваем Dovecot

Устанавливаем пакет dovecot-postfix который автоматически установит dovecot и настроит postfix на использование SASL. Также этот пакет настроит dovecot для IMAP , IMAPS, POP3 , и POP3S.

Приступаем к настройке dovecot.

Создадим пользователя для почты

Создадим папку для почты и установим на неё права

Зайдём в папку dovecot

На данный момент dovecot не настроен на использование виртуальных пользователей из ldap, а так же пакет dovecot-postfix разделил конфигурацию dovecot на несколько файлов

лично мне это не удобно, поэтому я сделал копию текущего dovecot.conf

и создал свой dovecot.conf

Теперь необходимо настроить подключение к ldap, переименовываем файл настроек ldap

и создаём свой dovecot-ldap.conf

Не знаю с чем это связано но для того чтоб dovecot смог соединиться с ldap на другом сервере по tls, необходимо чтоб на сервере с dovecot присутствовал файл /etc/ldap/ldap.conf в котором находится строка

в ubuntu 10.04 этот файл присутствует, поэтому просто добавляем в него выше указанную строку.

5. Настраиваем postfix

Теперь заходим в файл /etc/postfix/master.cf, убираем комментарий со строк

и добавляем в конец файла строки

Читайте так же:
Способы настройки телевизоров Рhilips

и postfix наотрез отказывается принимать почту. В связи с эти файлы запросов соединяются с ldap через не защищённое соединение. Если кто решил данную проблему или знает с чем это связано, поделитесь пожалуйста буду очень признателен. Лично я перерыл весь инет но решение так и не нашёл. И так создаём файлы запросов в папке /etc/postfix

Разрешим группе mail писать логи в файлы dovecot.log и dovecot_info.log, если этого не сделать postfix не будет принимать почту

На этом настройка postfix и dovecot закончена.

6. Тестирование почтового сервера

Протестируем работоспособность, отправив сообщение через telnet пользователю test.

telnet localhost 25

helo example.com

data

Пишем содержание письма

Ставим «.» точку и жмём Enter чтоб закончить ввод сообщения

quit

После этого в папке /home/mail должна появится папка с названием домена в данном случае example.com, а внутри неё папка с адресом пользователя test@example.com, если не появилась лезем в логи и ищем ошибку, если появилась то всё ок.

openssl s_client -host localhost -port 995

в конце ответа должно быть

user test@example.com

pass secret

list

quit

Если ошибок нет то всё работает нормально.

7. Отправка писем из очереди

Всю почту отправляемую во внешний мир postfix ставит в очередь, для того чтоб письма из очереди доставлялись адресатам необходимо выполнить команду postfix flush. Добавим в crontab эту команду, так чтоб письма в очереди отправлялись каждую минуту

и добавляем следующее

в результате письма из очереди будут отправляться каждую минуту.

Всё почтовый сервер готов к использованию.

P.S. Лично мне не удобно использовать в качестве логина email пользователя. Мой почтовый сервер обслуживает один домен, поэтому я немного модифицировал запрос получения пароля из ldap в dovecot-ldap.conf, изменив в нём одну строку с

при таком варианте в качестве логина нужно использовать имя пользователя (к примеру если email пользователя test@example.com то в качестве логина нужно использовать test).

Итак почтовый сервер настроен и работает, хотелось бы чтоб почта приходящая на него проверялась на наличие вирусов и на спам. Для решения этой задачи существует множество способов, лично мне в качестве спам фильтра больше нравится Dspam, но возможности amavisd-new меня тоже устраивают, поэтому в следующей статье я попробую скрестить Dspam, Amavisd-new и ClamAV

Пошаговая инструкция установки Postfix и Dovecot на Ubuntu

Иногда на предприятии или в быту требуется создать собственный почтовый сервер. Рассмотрим создание такого сервера под управлением ОС Ubuntu 16.04 LTS, а также установку и настройку почтовых агентов Postfix и Dovecot. Все действия будем выполнять из SSH-клиента PuTTY.

Postfix — агент передачи почты (MTA — mail transfer agent), является свободным программным обеспечением и создавался как альтернатива Sendmail.

Dovecot — свободный IMAP- и POP3-сервер, разработанный с акцентом на безопасность, гибкость настройки и быстродействие.

Перед установкой обновляем данные о репозиториях и индексах пакетов:

sudo apt-get update

Обновляем пакеты и компоненты системы:

sudo apt-get upgrade

Перезагружаем систему, иногда это требуется:

Приступим к установке. Сперва устанавливаем Postfix:

sudo apt-get install postfix

Система спрашивает о необходимости установки пакетов и намерении продолжать. Отвечаем Y. Запустится пользовательский интерфейс установки:

На клавиатуре нажимаем курсорную клавишу вправо (->). Будет подсвечен “Ok”. На клавиатуре нажимаем Enter. В обновленном окне Выбираем Internet site, нажимаем курсорную клавишу вправо (->), подсветится “Ок” — нажимаем Enter:

В новом окне, в поле System mail name, нужно указать доменное или локальное имя сервера и нажать Enter на клавиатуре:

Установка Postfix завершена. Приступаем к настройке.

Переходим в каталог /etc/postfix:

Создаем файл virtual, в котором будут храниться почтовые адреса и имена пользователей почтового сервера:

sudo touch virtual

Создаем директорию private для хранения файлов настроек yandex smtp:

sudo mkdir private

Проверим результаты командой ls:

Перейдем в каталог /etc/postfix/private/ и создадим еще три необходимых файла:

cd /etc/postfix/private/ sudo touch canonical sender_relay sasl_passwd

canonical — в файле определяются правила подмены адресов
sender_relay — определяется соответствие доменов и конкретных отправителей к внешним службам
sasl_passwd — в этот файл добавим внешние учетные данные почтового провайдера

Теперь внесем изменения в файл конфигурации main.cf:

sudo nano /etc/postfix/main.cf

Записи в данном файле имеют формат параметр = значение1, значение2, значение3. Комментарии начинаются с символа “решетка” #. Заменим значение параметра myhostname на ваше доменное имя. Если доменного имени нет — оставляем по умолчанию:

В параметр mydestination следует указать IP-адрес сервера, а также доменное имя, через запятую, если таковое имеется. Чтобы письмо можно было переслать на другие домены или адреса, заменяем параметр alias_maps на virtual_alias_maps и изменяем расположение хеш-файла. Должно получиться так:

В параметре mynetworks определяем список авторизованных сетей:

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Для отправки почты с помощью Yandex SMTP добавим в конец файла следующие строки:

smtp_sasl_auth_enable = yes smtp_sasl_mechanism_filter = login smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_type = cyrus smtp_sender_dependent_authentication = yes sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay sender_canonical_maps = hash:/etc/postfix/private/canonical

Выйдем из редактирования файла сочетанием клавиш Ctrl+X, и на вопрос о желании сохранить файл нажимаем Y и Enter.

Следует объяснить, что значат добавленные строки:

smtp_sasl_auth_enable — параметр отвечает за включение поддержки sasl для проверки подлинности почтовых серверов;
smtp_sasl_password_maps – указываем путь до файла sasl_passwd с внешними учетными данными;
smtp_sasl_security_options – параметр безопасности, запрещающий механизмы, которые разрешают анонимную проверку подлинности.

Возможные значения параметра:

noplaintext — не использовать механизмы, которые передают незашифрованное имя пользователя и пароль;
nodictionary — не использовать механизмы, которые уязвимы для атак по словарю;
mutual_auth — использовать только механизмы, которые прошли проверку подлинности клиента и сервера друг с другом;
smtp_sasl_type — тип плагина sasl, используемый для проверки подлинности, по умолчанию установлен cyrus;
smtp_sasl_mechanism_filter — список поддерживаемых методов аутентификации;
smtp_sender_dependent_authentication – проверка подлинности будет зависеть от домена отправителя;
sender_dependent_relayhost_maps — указываем путь до файла sender_relay;
sender_canonical_maps — указываем путь до файла canonical.

Далее внесем изменения в файлы:

echo “@yandex.ru username@yandex.ru” >> /etc/postfix/private/canonical
echo “@yandex.ru smtp.yandex.ru” >> /etc/postfix/private/sender_relay

Вместо ****** указываем пароль от почты:

echo “[smtp.yandex.ru] username@yandex.ru:******” >> /etc/postfix/private/sasl_password

Читайте так же:
Что такое дефрагментация диска и для чего она нужна

Для переадресации писем на другие почтовые адреса следует создать псевдонимы. Для этого отредактируем файл virtual:

sudo nano /etc/postfix/virtual

Указываем произвольные электронные адреса, которые необходимо создать, и имена существующих системных пользователей, которым нужно доставлять почту:

mailbox_1@example.org username1 mailbox_2@example.org username1, username2

Чтобы посмотреть список всех системных пользователей, выполним команду:

cut -d: -f1 /etc/passwd

Преобразуем файл /etc/postfix/virtual и файлы в директории /etc/postfix/private/ в справочные таблицы выполнив команду postmap и перезапускаем сервис:

sudo postmap /etc/postfix/virtual sudo postmap /etc/postfix/private/* sudo /etc/init.d/postfix restart

С помощью iptables (это Firewall в Unix-системах) добавим разрешающие правила для отправки почты. Аналогичное следует выполнить и для других портов (465 и 587) если такие используются:

sudo iptables -A INPUT -p tcp —dport 25 -j ACCEPT

Проверим работу с помощью утилиты mutt. Для начала установим её:

sudo apt-get install mutt

echo «Text message» | mutt -s «Subject» mailbox@yandex.ru

Настроим получение писем с помощью Dovecot, но вначале установим:

sudo apt-get install dovecot-imapd dovecot-pop3d

Перейдем к настройке.

В файле /etc/dovecot/dovecot.conf перечислим протоколы, с которыми будем работать:

protocols = pop3 pop3s imap imaps

В файле /etc/dovecot/conf.d/10-mail.conf проверяем значение параметра mail_location:

sudo /etc/init.d/dovecot restart

В файл /etc/hosts, добавим собственное доменное имя:

С помощью iptables (это Firewall в Unix-системах) добавим разрешающие правила для получения почты:

sudo iptables -A INPUT -p tcp —dport 220 -j ACCEPT sudo iptables -A INPUT -p tcp —dport 993 -j ACCEPT sudo iptables -A INPUT -p tcp —dport 110 -j ACCEPT sudo iptables -A INPUT -p tcp —dport 995 -j ACCEPT

Для проверки нужно отправить письмо с любого почтового сервиса на созданные почтовые адреса. Письмо должно быть доставлено только одному адресату, только существующему системному пользователю и только на адрес с указанием доменного имени. Доставка писем по IP-адресу невозможна.

Следует обратить внимание, что после перезагрузки сервера правила iptables следует указать заново. Для решения этой проблемы следует прибегнуть к чтению руководства к iptables:

Установка и настройка Postfix и Dovecot на Ubuntu 20.04

Установка и настройка Postfix и Dovecot на Ubuntu

Postfix – это программный продукт, позволяющий организовать почтовый сервер. Он был создан как альтернатива Sendmail – старейшему агенту передачи почты (MTA – Mail Transfer Agent). Postfix распространяется с открытым исходным кодом и используется разработчиками для маршрутизации и пересылки почтовых писем внутри системы Linux.

В ходе сегодняшней статьи мы подробно рассмотрим, как выполняется установка и настройка Postfix на сервере Ubuntu 20.04, а также поговорим о том, что представляет собой Dovecot и как правильно его установить в связке с Postfix.

Требования

Прежде чем переходить к установке программного средства, рекомендуем ознакомиться c необходимыми требованиями. Для реализации рассматриваемой задачи нам потребуется:

  • Сервер на Ubuntu 20.04, который будет функционировать в режиме почтовой службы. Требуется, чтобы он включал в себя пользователя без прав root с привилегиями sudo. Вместе с этим также необходим брандмауэр, настроенный с помощью Uncomplicated Firewall (UFW).
  • Доменное имя сервера. Если вам потребуется получить доступ к почте из внешнего источника, то нужно также позаботиться об MX-записи, которая будет указывать на почтовый сервер.

Обратите внимание на то, что настройка хоста будет выполняться с доменным именем типа email.example2.com. В последующем вам потребуется заменить все подобные значения на свое собственное доменное имя.

Как установить Postfix

По умолчания Postfix включен в репозиторий операционной системы Ubuntu, поэтому с установкой не должно возникнуть никаких проблем. Провести ее мы можем с использованием команды apt.

Первым делом обновляем кэш пакетов:

Затем устанавливаем непосредственно сам пакет Postfix. Здесь важно обратить внимание на значение DEBIAN_PRIORITY=low – оно позволяет нам подключить некоторые дополнительные опции.

В результате перед нами отобразится ряд вопросов и сообщений. Отвечаем на них следующим образом:

  • Generaltypeofmailconfiguration? – в нашем случае мы указываем значение «Internet Site», но оно может отличаться в зависимости от инфраструктуры.
  • Systemmailname – стандартный домен, который используется для создания точного адреса электронной почты. Он необходим в тех случаях, когда имеется только часть адреса с именем профиля. Например, имя сервера email.example2.com, но мы хотим, чтобы имя системной почты выглядело как example2.com. В этом случае для пользователя user будет использоваться адрес user@example2.com.
  • Root and postmaster mail recipient – это аккаунт Linux, на который будет перенаправляться почта, адресованная root@ и postmaster@. В данном случае вам потребуется использовать свою учетную запись, например, UserNameZ7.
  • Otherdestinationstoacceptmailfor – текущий параметр определяет получателей почты, которых будет принимать этот экземпляр Postfix. При необходимости вы можете указать собственные доменные имена, для которых сервер будет получать почту.
  • Forcesynchronousupdatesonmailqueue? – если в вашем случае используется журнальная файловая система, то укажите значение «No».
  • Local networks – это список локальных сетей, для которых почтовая служба настроена как устройство пересылки сообщений. Начальные значения подойдут для всех, но если вы захотите их изменить, то рекомендуется максимально сократить диапазон сетей.
  • Mailbox size limit – позволяет сократить размер сообщения. Если установлено значение «0», то в таком случае ограничения будут полностью отключены.
  • Localaddressextensioncharacter – символ, который используется для отделения обычной части адреса от расширения. По умолчанию значение установлено как «+», можете его оставить.
  • Internetprotocolstouse – здесь указываем, требуется ли ограничивать версии IP, которые поддерживаются Postfix. Выбираем значение «All».

Все вышеуказанные настройки мы в любой момент времени можем подкорректировать. Чтобы открыть окно редактирования, достаточно ввести:

На этом установка Postfix на Ubuntu завершена, теперь можем переходить к более детальным настройкам.

Настройка Postfix

Большинство настроек конфигурации Postfix заданы в файле main.cf, который можно найти по адресу /etc/postfix/main.cf. Здесь мы можем пойти следующим образом: изменять параметры непосредственно в самом файле либо воспользоваться командой postconf.

Для настройки Postfix первым делом нам потребуется прописать расположение почты обычного пользователя Ubuntu. В нашем случае мы используем формат Maildir – в нем сообщения выделяются в отдельные файлы, перемещаемые между каталогами. Также вы можете хранить сообщения в формате mbox или любом удобном для вас.

Читайте так же:
Учимся определять IP-адрес роутера

Указываем значение 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:

В конец вставим следующее:

Расшифруем каждую строчку:

  • set emptystart – дает возможность клиенту открываться даже при пустом почтовом ящике;
  • set folder=Maildir – прописывает для директории Maildir переменную folder;
  • set record=+sent – создает файл sent в формате mbox для хранения отправленной почты в каталоге, заданном в переменной folder.

На этом с файлом заканчиваем – сохраняемся и закрываем его. Теперь нам потребуется выполнить еще одно действие – инициализировать структуру Maildir. Чтобы это сделать, необходимо отправить себе электронное письмо командой s-nail. Так как файл sent доступен только после создания Maildir, потребуется отключить запись в этот файл. Для этого воспользуемся командой -Snorecord.

Для отправки письма добавим строку в команду s-nail. Обратите внимание, что в конце указывается имя пользователя – вам потребуется изменить его на свое.

В ответе вы можете увидите сообщение:

Это нормально – такое сообщение обычно появляется только при первой отправке.

Убедимся, что каталог был создан:

В результате должно отобразиться примерно следующее:

Теперь мы можем перейти к тестированию почтового клиента.

Тестирование отправки почты

Для начала запустим клиент, для этого используем команду:

Чтобы отправить сообщение, передадим содержимое текстового файла в процесс s-nail. Откроем для этого текстовый редактор:

Пропишем туда сообщение, например:

Сохраняемся и закрываем редактор. Для передачи сообщения в s-nail, используем команду cat. Она может принимать следующие значения:

  • -s – задает строку темы сообщения;
  • -r – изменяет поле «From», в котором по умолчанию указан текущий пользователь Linux. Данный параметр необходим для того, что заменить его на необходимый адрес, например, на excontact@example2.com.

Также вам потребуется заменить последний адрес, указанный в строчке кода:

После этого на указанную электронную почту должно прийти письмо. Чтобы проверить отправленные сообщения через 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 и настраиваем в нем использование шифрования:

  • ssl = required – прикажет Dovecot требовать от клиентов использование шифрования;
  • ssl_cert – путь до открытого сертификата;
  • ssl_key – путь к закрытому ключу.

Добавляем автоматическое создания каталогов в файле 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. Начинающим системным администраторам на первый взгляд это может показаться непосильной задачей, но с данными инструкциями все должно получиться. Удачи!

Установка и настройка Postfix в Ubuntu 20.04

Postfix — популярный почтовый агент (MTA) с открытым исходным кодом, который можно использовать для маршрутизации и доставки почты в системе Linux. Согласно оценкам, примерно 25% публичных почтовых серверов в Интернете используют Postfix.

В этом руководстве мы расскажем, как установить и настроить Postfix на сервере Ubuntu 20.04. Затем мы протестируем способность Postfix правильно выполнять маршрутизацию, выполнив установку s-nail , почтового пользовательского агента (MUA), также называемого клиентом электронной почты.

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

Предварительные требования

Для прохождения этого обучающего модуля вам потребуется следующее:

  • Сервер под управлением Ubuntu 20.04, который будет работать как ваш почтовый сервер Postfix. Этот сервер должен иметь пользователя без прав root с привилегиями sudo , а также брандмауэр, настроенный с помощью UFW. Для выполнения этого требования следуйте указаниям нашего руководства по начальной настройке сервера Ubuntu 20.04.
  • Полное доменное имя, указывающее на ваш сервер Ubuntu 20.04. Помощь по настройке доменного имени в DigitalOcean можно найти в нашей документации по доменам и сетям DNS. Помните, что если вы планируете получать доступ к почте из внешнего источника, вам также потребуется запись MX, указывающая на ваш почтовый сервер.

Для этого обучающего модуля предполагается, что вы настраиваете хост с доменным именем mail.example.com . При необходимости заменяйте example.com или mail.example.com собственным полным доменным именем.

Шаг 1 — Установка Postfix

Postfix включен в репозиторий Ubuntu по умолчанию, так что вы можете установить его с помощью APT.

Для начала обновите локальный кэш пакетов apt :

Затем установите пакет postfix с помощью следующей команды. Обратите внимание, что мы передаем переменную среды DEBIAN_PRIORITY=low в эту команду установки. В связи с этим, процедура установки предложит вам настроить некоторые дополнительные опции:

Процедура установки откроет серию интерактивных диалогов. Для целей данного обучающего модуля введите в диалогах следующие данные:

  • General type of mail configuration?: Для данного параметра выберем пункт Internet Site, соответствующий потребностям нашей инфраструктуры.
  • System mail name: это базовый домен, используемый для построения корректного адреса электронной почты, когда имеется только часть адреса с именем учетной записи. Допустим, имя хоста вашего сервера mail. example.com . Возможно вы захотите задать для системной почты имя example.com . В этом случае для имени пользователя user1 Postfix будет использовать адрес user1@ example.com .
  • Root and postmaster mail recipient: это учетная запись Linux, на которую будет перенаправляться почта, адресованная root@ и postmaster@ . Используйте для этой цели свою основную учетную запись. В данном примере это имя пользователя sammy.
  • Other destinations to accept mail for: определение получателей почты, которых будет принимать этот экземпляр Postfix. Если вам потребуется добавить любые другие домены, для которых этот сервер будет получать почту, добавьте их здесь. В противном случае значений по умолчанию будет достаточно.
  • Force synchronous updates on mail queue?: поскольку вы вероятно используете журнальную файловую систему, выберите No.
  • Local networks: это перечень локальных сетей, для которых ваш почтовый сервер настроен как реле пересылки сообщений. Значение по умолчанию подойдет для большинства случаев. Если вы пожелаете изменить его, постарайтесь максимально ограничить диапазон сетей.
  • Mailbox size limit: используется для ограничения размера сообщений. Значение « 0 » отключает любые ограничения размера.
  • Local address extension character: символ, используемый для отделения обычной части адреса от расширения (используется для создания динамических псевдонимов). Для этого обучающего модуля подойдет значение по умолчанию « + ».
  • Internet protocols to use: укажите, нужно ли ограничивать версии протокола IP, поддерживаемые Postfix. Для целей данного обучающего модуля выберите вариант «all».

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

  • General type of mail configuration?: Internet Site
  • System mail name: example.com (не mail.example.com )
  • Root and postmaster mail recipient: имя пользователя основной учетной записи Linux (в наших примерах sammy)
  • Other destinations to accept mail for: $myhostname, example.com , mail.example.com , localhost.example.com , localhost
  • Force synchronous updates on mail queue?: No
  • Local networks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
  • Mailbox size limit: 0
  • Local address extension character: +
  • Internet protocols to use: all

Примечание. Если впоследствии вам потребуется изменить эти настройки, введите команду:

Для параметров будут указаны заданные ранее значения.

После завершения процедуры установки можно внести некоторые изменения в конфигурацию Postfix.

Шаг 2 — Изменение конфигурации Postfix

Теперь вы можете изменить дополнительные настройки, которые не предлагались в диалогах процедуры установки. Многие параметры конфигурации Postfix заданы в файле /etc/postfix/main.cf . Вместо того, чтобы редактировать этот файл напрямую, вы можете использовать команду Postfix postconf для запроса или установки параметров конфигурации.

Для начала задайте расположение почтового ящика пользователя Ubuntu без прав root. В этом обучающем модуле мы используем формат Maildir, в котором соообщения выделяются в отдельные файлы, перемещаемые между каталогами в зависимости от действий пользователя. Также существует возможность хранить все сообщения в одном файле в формате mbox, но мы не рассматриваем ее в этом обучающем модуле.

Задайте для переменной home_mailbox значение Maildir/ . Впоследствии вы создадите структуру каталогов с этим именем в своем домашнем каталоге пользователя. Настройте home_mailbox с помощью следующей команды:

Задайте расположение таблицы virtual_alias_maps , где произвольные учетные записи электронной почты сопоставляются с системными учетными записями Linux. Запустите следующую команду, сопоставляющую расположение таблицы с файлом базы данных хэша под именем /etc/postfix/virtual :

Читайте так же:
Ошибка ERR_EMPTY_RESPONSE: что означает и как её исправить

Мы определили расположение файла виртуальной карты в файле main.cf и теперь можем создать сам файл и начать сопоставление учетных записей электронной почты с учетными записями пользователей в системе Linux. Создайте файл в nano или другом предпочитаемом текстовом редакторе:

Укажите все адреса, для которых вы хотите получать электронную почту, а затем укажите через пробел имя пользователя Linux, которому должна доставляться эта почта.

Например, если вы хотите принимать электронную почту на адреса contact@ example.com и admin@ example.com и доставлять ее пользователю Linux с именем sammy, файл можно настроить следующим образом:

После сопоставления всех почтовых адресов с соответствующими учетными записями сервера вы можете сохранить и закрыть файл. Если вы использовали nano , нажмите CTRL + X , Y , а затем ENTER .

Перезапустите процесс Postfix, чтобы все изменения были применены:

Если вы следовали указаниям руководства по начальной настройке сервера, вы настроили брандмауэр с помощью UFW. Этот брандмауэр по умолчанию блокирует внешние подключения к службам вашего сервера, если эти подключения прямо не разрешены, и поэтому вам нужно будет добавить исключение для Postfix в правило брандмауэра.

Вы можете разрешить подключение к службе с помощью следующей команды:

Теперь Postfix настроен и готов принимать внешние подключения. Однако мы еще не готовы тестировать его с помощью почтового клиента. Прежде чем устанавливать почтовый клиент и использовать его для взаимодействия с доставляемой на сервер почтой, необходимо внести некоторые изменения в настройки сервера Ubuntu.

Шаг 3 — Установка почтового клиента и инициализация структуры Maildir

Этот шаг поможет вам установить пакет s-nail для взаимодействия с доставляемой почтой. Это функциональный вариант почтового клиента BSD xmail , правильно работающий с форматом Maildir.

Перед установкой клиента желательно проверить настройку переменной среды MAIL . Клиент s-nail использует эту переменную для определения мест поиска почты для вашего пользователя.

Если требуется гарантированно задать переменную MAIL вне зависимости от способа доступа к учетной записи (через ssh , su , su — , sudo и т. п.), необходимо задать переменную в файле /etc/bash.bashrc и добавить ее в файл /etc/profile.d , чтобы она использовалась всеми пользователями по умолчанию.

Чтобы добавить переменную в эти файлы, введите:

Чтобы прочитать переменную для текущего сеанса, в качестве источника можно использовать файл /etc/profile.d/mail.sh :

Выполнив этот шаг, установите клиент электронной почты s-nail с помощью APT:

Перед запуском клиента необходимо изменить несколько настроек. Откройте файл /etc/s-nail.rc в своем редакторе:

Добавьте в конец файла следующие опции:

Вот что делают эти строки:

  • set emptystart : позволяет клиенту открываться даже при пустом почтовом ящике
  • set folder=Maildir : задает для каталога Maildir внутреннюю переменную folder
  • set record=+sent создает файл sent в формате mbox для хранения отправленной почты в каталоге, заданном в переменной folder , в данном случае Maildir

Сохраните файл и закройте его после завершения. Теперь вы готовы инициализировать структуру Maildir в вашей системе.

Чтобы быстро создать структуру Maildir в домашнем каталоге, отправьте себе электронное письмо с помощью команды s-nail . Поскольку файл sent будет доступен только после создания Maildir, для этого первого письма нужно отключить запись в этот файл. Используйте для этого опцию -Snorecord .

Для отправки письма добавьте строку в команду s-nail . Измените команду, чтобы сделать получателем вашего пользователя Linux:

Примечание. Вы можете получить следующий ответ:

Это нормально, и такой ответ может появиться только при отправке первого сообщения.

Для проверки создания каталога выполните поиск каталога

Вы увидите, что структура каталогов создана, и что новый файл сообщений находится в каталоге

Структура каталогов создана, и теперь мы готовы протестировать клиент s-nail . Для этого мы просмотрим отправленное вами сообщение init и отправим сообщение на сторонний адрес электронной почты.

Шаг 5 — Тестирование клиента

Чтобы открыть клиент, запустите команду s-nail :

В консоли вы увидите рудиментарную папку входящих с ожидающим сообщением init :

Нажмите ENTER , чтобы вывести сообщение:

Вы можете вернуться к списку сообщений, введя h и нажав ENTER :

Теперь сообщение имеет состояние R , означающее, что оно прочитано.

Поскольку это сообщение не очень полезно, мы можем удалить его, введя d и нажав ENTER :

Чтобы вернуться к терминалу, введите q и нажмите ENTER :

В качестве последнего испытания проверим, может ли s-nail правильно отправлять электронные сообщения. Для этого передадим содержимое текстового файла text в процесс s-nail , как мы делали это с сообщением init на предыдущем шаге.

Для начала напишем тестовое сообщение в текстовом редакторе:

Введите текст, которы вы хотите отправить:

Сохраните и закройте файл после написания сообщения.

Затем используйте команду cat для передачи сообщения в процесс s-nail . Для этого можно использовать следующий пример, где используются следующие опции:

  • -s : задает строку темы электронного сообщения
  • -r : изменение поля «From» письма. По умолчанию в этом поле указан текущий пользователь Linux. Опция -r позволяет заменить его корректным адресом, в том числе определенным в файле /etc/postfix/virtual . Например, в следующей команде используется адрес contact@example.com

Также следует заменить user @ email.com на корректный адрес электронной почты, к которому у вас имеется доступ:

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

Примечание. Если сообщение отсутствует в почтовом ящике, оно может быть доставлено в папку Spam.

Вы можете просмотреть отправленные сообщения в клиенте s-nail . Запустите интерактивный клиент еще раз:

Для просмотра отправленных сообщений в клиенте электронной почты введите:

Вывод будет выглядеть следующим образом:

Вы можете управлять отправленными письмами с помощью тех же команд, которые используются для входящих писем.

Заключение

Теперь почтовая система Postfix настроена на вашем сервере Ubuntu 20.04. Управление серверами электронной почты может оказаться непростой задачей для начинающих системных администраторов, но с этой конфигурацией у вас должно быть достаточно функций MTA для работы с электронной почтой, чтобы начать эту работу.

голоса
Рейтинг статьи
Ссылка на основную публикацию