Проект

Общее

Профиль

Введение.

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

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

Мы специально не стали заострять внимание на разные операционные системы, а сосредоточились только на Linux Debian как эталон.
Но это вовсе не означает, что нужно выбирать именно этот вариант дистрибутива, напротив, все зависит от вашего опыта и технической подготовки.

На что мы хотим в первую очередь обратить ваше внимание:

Необходимо внимательно изучить статью "быстрый старт", следовать каждому шагу четко в строгой последовательности не пропуская ни одного раздела, в противном случае вы рискуете потерять время.
Для контроля каждого этапа, лучше завести чекап лист и строго фиксировать каждый свой шаг в процессе выполнения задачи:

  1. Помните, что шесть часов отладки могут сэкономить вам пять минут чтения документации, но мы рекомендуем все же начать с ее прочтения.
  2. Устанавливая сервер в первый раз, научитесь это делать в простейшем варианте, а только затем приступайте к конструированию экзотических схем.
  3. Правильно прописать все DNS зоны. (по возможности лучшим вариантом будет если ресурсные записи будут сразу публичными, в противном случае опять же есть шанс потери времени на настройке и отладке внутренних DNS зон. )
  4. Сделать необходимые настройки маршрутизации.
  5. Установить почтовый сервер Tegu.
  6. Установить и настроить базы данных Postgres.
  7. Провести первоначальные настройки почтового сервера.
  8. Добавить хранилище почты.
  9. Настроить очереди сообщений.
  10. Провести интеграцию с сервером каталогов (здесь необходимо педантично и весьма скурпулезно подойти к данному разделу, все настройки индивидуальны для каждого сервера каталогов, неправильно прописанные параметры не могут гарантировать верную работу, поэтому мы рекомендуем максимально заострить ваше внимание на данном этапе настройки)
  11. Установить и настроить сертификаты.
  12. Сгенерировать DKIM.
  13. Провести финальную настройку DNS зон.
  14. Установить лицензии.
  15. Начать тестирование продукта.

Правила обращения в тех.поддержку:

  • Помните, краткое описание — лишняя трата Вашего времени. Мы будем вести с Вами диалог до тех пор, пока не будет получена вся информация, необходимая для решения вопроса.
  • Поэтому Ваше обращение должно быть максимально информативно.
  • Описание проблемы должно быть пошаговым, без пропусков действий, без обобщений, без использования неоднозначного сленга, простыми словами, строго в терминах системы.
  • Предоставьте информацию о вашей системе. Для этого выполните команду /opt/tegu/bin/teguctl dump и верните нам ее вывод.
  • Включите и проанализируйте сообщения системного журнала. Для чего воспользуйтесь командой journalctl -f -u tegu
  • Если вы не владеете английским языком для чтения журнала, воспользуйтесь переводчиком.
  • Обращаясь в тех.поддержку приведите часть журнала, относящуюся к описываемой проблеме.
  • По возможности сопровождайте описание скриншотами.
  • Описывая свои действия, пожалуйста обязательно приводите ссылки на документацию, согласно которой вы выполняли работу.

Быстрый старт TEGU Enterprise

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

Пара слов о Tegu. В отличие от всех остальных подобных систем, данный продукт написан полностью с нуля, представляет собой один скомпилированный файл,
который умеет работать и запускаться абсолютно на всех современных операционных системах Linux основанных на systemd,
а так же нет каких-либо зависимостей от системных библиотек.

По итогу вы получаете полностью рабочий web интерфейс из коробки, отсутствие дополнительных компонентов в виде apache или nginx,
встроенную защиту от перебора паролей на почтовые ящики и сам web интерфейс.

Редакции почтового сервера:

Tegu существует в двух разных редакция:

Free — свободная для использования, рекомендованная производителем до 50 почтовых ящиков,
Tegu Enterprise - это коммерческий сервер, поддерживающий централизованное хранилище почты в базе данных Postgres, не ограниченная поддержка горизонтального масштабирования вычислительных нод, встроенный сервер общих индивидуальных и календарей, а также сервер адресных книг, как общих, так и индивидуальных.

Внешние службы:

Tegu в работе с серверами каталогов, нигде не ведёт и не синхронизирует базу пользователей, а значит не позволяет скомпрометировать пароли.
В качестве серверов каталогов может выступать Microsoft Active Directory, ALD Pro, FreeIPA, OpenLDAP в неограниченном кол-ве.

Архитектура данных Tegu Enterprise:

Сервер TEGU в своей работе использует три хранилища для:

1. Хранения конфигурации. 
2. Хранения очередей SMTP.
3. Хранения данных (почтовых сообщений, календарей, адресных книг и пр.).

Хранилища могут быть локальными или сетевыми.

• Для хранения конфигурации и очередей может быть использованы SQLite на локальном диске или Postgres на сетевом ресурсе. 
• Для хранения данных сервер может использовать локальный диск в формате MailDir или Postgres на сетевом ресурсе.

Развертывание почтового севера:

Что нам потребуется для успешного развертывания почтовой системы:

Знание и понимание основ работы: сети, почтовых протоколов, DNS, служб каталогов и четкое последовательное выполнение действий в данной статье.

Необходимые компоненты для развертывания:

Операционная система Linux Debian 12, postgres, сертификат, сервер каталогов (подразумевается что он у вас есть установлен и настроен), проброс портов на маршрутизаторе.

Мы сегодня рассматриваем установку в однонодовой конфигурации вместе с базой данных postgres, (в рабочей системе в продакшн базу данных нужно всегда размещать отдельно от почтовой ноды).

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

DNS зоны

DNS (Domain Name System) - это глобальная распределенная база данных, хранящая записи для каждого домена интернет.

Для успешной работы почтового сервера, необходимо правильно и грамотно один раз прописать DNS зоны и забыть про них.
Как правило, на практике я встречаю много ошибочных и с одной стороны нелепых конфигураций в DNS зонах:
отсутствие DKIM, MX, SFP или присутствие более одной записи SFP, встречается и такое что некоторые записи прописаны неверно,
в результате чего почта не доходит до сервера просто потому, что DNS не знает о его существовании.

Вывод: DNS — это фундамент от которого зависит будущая работа вашего почтового сервера и игнорировать или пропускать данный раздел категорически не рекомендуется.
Какие необходимо сделать записи в DNS и за что они отвечают?

Запись SOA (Start of Authority) - Описывает основные/начальные настройки зоны.
Для каждой зоны должна существовать только одна запись SOA, и она должна быть первая.

Записи NS (name server) - Указывают сервера, на которые делегирован данный домен.
(как правило, они уже присутствуют когда вы заказываете интернет домен у хостера)

Запись A (address record) - Отображает имя хоста (доменное имя) на адрес IPv4.
Для каждого сетевого интерфейса машины должна быть сделана одна A-запись.

Записи MX (mail exchange) - Указывают хосты для доставки почты, адресованной домену.
(пожалуй самая главная запись, без которой работа почтовой системы невозможна)

Запись TXT для DKIM - механизм, позволяющий проверить является ли отправитель достоверным или нет.
Проверка осуществляется с помощью цифровой подписи, публичная часть которой находится в DNS соответствующей зоны.
DKIM защищает от отправки сообщения с подменой адреса отправителя.

Запись TXT для DMARC - механизм снижения количества спамовых и фишинговых писем.
DMARC описывает действие, которое должен совершить сервер для писем, которые не прошли проверку DKIM и SPF.
А также описывает адрес, на который раз в сутки будет отправляться отчет об этих действиях.

Обратная зона DNS - это особая доменная зона, которая позволяет совершить обратное разрешение доменных имен относительно IP-адресов.
Для обратной зоны фактически разрешена только запись одного типа А, называемая PTR.

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

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

Проверка записей NS:

$ host -t ns tegu.online
tegu.online name server ns4-cloud.nic.ru.
tegu.online name server ns4-l2.nic.ru.
tegu.online name server ns8-cloud.nic.ru.
tegu.online name server ns3-l2.nic.ru.
tegu.online name server ns8-l2.nic.ru.

Проверка записей CNAME:

$ host mail.tegu.online
mail.tegu.online has address 79.137.210.127

Проверка записей MX:

$ host -t mx tegu.online
tegu.online mail is handled by 10 mail.tegu.online.

Проверка записи TXT для SPF:

$ host -t txt tegu.online
tegu.online descriptive text "v=spf1 mx -all" 

Проверка записи TXT для DMARC:

$ host -t txt _dmarc.tegu.online
_dmarc.tegu.online descriptive text "v=DMARC1; p=quarantine; rua=mailto:abuse@tegu.online" 

Проверка записи TXT для DKIM:


$ host -t txt mail._domainkey.tegu.online
mail._domainkey.tegu.online descriptive text "v=DKIM1; h=sha256; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDRKjngoDbWD3Cj1NHc/GB9YB4i3bjmJV2R0HfVpph2Hze1e6u1a9p8PiTkZQOA/Meuusb9YwrnxD27L+boZways1CQvWWvK3aySEWMy5VcauJw3BBNRJK4cMwlXv1DC9hzrFLqjynVQfqEWtKGk3Dgm6K+nH1IBu6ZVUwCC35nQQIDAQAB" 

Настройка маршрутизатора

Проброс портов наружу для корректной работы сервера.

Стандартные TCP порты для почтового сервера:

25, 80, 443, 465, 993 все остальное по желанию.

На маршрутизаторах с прошивкой OpenWRT все порты пробрасываются в разделе "Port Forwards"

Также важно на виртуальной машине с почтовым сервером указать в качестве DNS: Yandex DNS

и NAT Rules.

Установка почтового сервера TEGU Enterprise

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

В Debian это можно сделать так:

Проверить

  systemctl status postfix

Удалить

  apt remove purge postfix

Перед установкой обратите внимание, что все работы необходимо выполнять от имени root.

Переходим на страницу с дистрибутивами. https://project.mbk-lab.ru/documents/280
копируем ссылку, на момент написания статьи с версией tegu-ent-v1.37.8-x86_64.tar.gz
Не мало важно, не перепутайте архитектуру, дело в том что Tegu компилируется как под x86_64, так и под arm архитектуры.

Далее в консоли вставляем ссылку с командой wget

wget https://project.mbk-lab.ru/attachments/download/18853/tegu-ent-v1.37.8-x86_64.tar.gz

Распаковываем здесь же

$ tar -xvf tegu-ent-v1.37.8-x86_64.tar.gz
tegu-ent-v1.37.8-x86_64/
tegu-ent-v1.37.8-x86_64/sbin/
tegu-ent-v1.37.8-x86_64/sbin/tegu

Создаем структуру каталогов для сервера:


$ mkdir /opt/tegu
$ mkdir /opt/tegu/{bin,sbin,data,certs}

Копируем исполняемый файл в рабочий каталог:


$ cp tegu-ent-v1.37.8-x86_64/sbin/* /opt/tegu/sbin/
$ cp tegu-ent-v1.37.8-x86_64/bin/* /opt/tegu/bin/

Назначаем пользователя и права:

$ chown -R mail. /opt/tegu/{data,certs}
$ chgrp -R mail /opt/tegu/{bin,sbin}
$ chmod 750 /opt/tegu/{data,certs}
$ chmod -R 750 /opt/tegu/sbin
$ chmod -R 750 /opt/tegu/bin

Проверяем правильность создания каталогов и файлов, а также их прав:

$ ls -l /opt/tegu

Должно быть примерно так:

$ ls -l /opt/tegu
/opt/tegu:
итого 16
drwxr-x--- 2 root mail 4096 апр 11 14:32 bin
drwxr-x--- 2 mail mail 4096 апр 11 14:32 certs
drwxr-x--- 2 mail mail 4096 апр 11 14:32 data
drwxr-x--- 2 root mail 4096 апр 11 14:33 sbin
Настраиваем механизм запуска и управления:
$ nano /etc/systemd/system/tegu.service

Содержимое файла /etc/systemd/system/tegu.service должно быть таким:

[Unit]
Description=Tegu. MBK-Lab Mail Server

[Service]
ExecStart=/opt/tegu/sbin/tegu
User=mail
Group=mail
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target

Разрешаем запуск сервера от имени непривелегированного пользователя:

$ setcap CAP_NET_BIND_SERVICE=+eip /opt/tegu/sbin/tegu

Необходимо создать конфигурационный файл в /etc/tegu.conf со следующим содержанием:

$ nano /etc/tegu.conf
[global]
dataDir = /opt/tegu/data

[Log]
debug = false

[WEB]
adminPassword = admin
httpPort = 8888
httpsPort = 9999
ctlPort = 8899
И сменить права:
$ chown root.mail /etc/tegu.conf
$ chmod 640 /etc/tegu.conf

Во время первого запуска сервер будет искать свой файл конфигурации в следующем порядке:

• /etc/tegu.conf
• ~/tegu.conf (например, /var/mail/tegu.conf)

Если файл не был найден, то он будет создан по пути ~/tegu.conf

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

debug = true

Значение параметра adminPassword используйте для регистрации в административном веб-интерфейсе (с логином admin).

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

Разрешаем автозапуск сервера во время загрузки ОС:

$ systemctl enable tegu.service

Эта команда создает символическую ссылку на копию файла сервиса в /etc/systemd/system/tegu.service в точке на диске,
где systemd ищет файлы для автозапуска, а также обновляет конфигурацию systemd.

Помните, что вы должны обновлять конфигурацию systemd всякий раз, когда меняете конфигурацию в файле /etc/systemd/system/tegu.service.
Обновление выполняется командой sudo systemctl reload tegu.service.

Запускаем сервер (вручную):

$ systemctl start tegu.service

Контролируем запуск сервиса (статус сервиса):


$ systemctl status tegu.service

Правильно работающий сервер возвращает примерно такое:

● tegu.service - Tegu. MBK-Lab Mail Server
     Loaded: loaded (/etc/systemd/system/tegu.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-04-11 13:58:09 MSK; 50min ago
   Main PID: 88519 (tegu)
      Tasks: 9 (limit: 9357)
     Memory: 3.3M
     CGroup: /system.slice/tegu.service
             └─88519 /opt/tegu/sbin/tegu

апр 11 13:58:09 systemd[1]: Started Tegu. MBK-Lab Mail Server.

Если все предыдущие шаги выполнены правильно, то вам становится доступной веб-панель администрирования сервером, в которой производятся все остальные настройки.
На этом установка сервера завершена.

Переходим к установке сервера базы данных Postgres.

Установка и настройка Postgres

apt install postgresql postgresql-contrib

Проверяем статус службы.

systemctl status postgresql

Сразу после установки проверяем слушает ли сервер порт 5432 и на каком адресе.

ss -lnpt | grep 5432

Должны увидеть примерно такой вывод.

LISTEN 0      244        127.0.0.1:5432      0.0.0.0:*    users:(("postgres",pid=26097,fd=6))      
LISTEN 0      244            [::1]:5432         [::]:*    users:(("postgres",pid=26097,fd=5))

Размещаем автоматический запуск Postgresql.

systemctl enable postgresql

Важно - Если у нас в качестве операционной системы используется Alt Linux или RedOS то необходимо в этих системах установить дополнительные компоненты contrib или extensions в противном случае в логе tegu мы увидим ошибку

2023-04-14 14:54:10.389 +05 [39961] ОШИБКА:  не удалось открыть управляющий файл расширения "/usr/pgsql-13/share/extension/intarray.control": No such file or directory

и если базы были созданы до установки эти компонентов то их необходимо будет удалить и создать вновь.

Создание баз данных.

Необходимо создать пользователя tegu.

Переходим в postrges

su - postgres -s /bin/bash

Создаем пользователя:


createuser -d -S -E -P tegu

Важно: как я писал ранее если у вас ALT Linux или RedOS после создания юзера надо зайти в psql от postgres и создать расширения:

create extension if not exists lo;
create extension if not exists intarray;

Создаем 3 базы данных.

tegu_queue -база данных очередей
tegu_mailboxes - база данных почтового хранилища
tegu_settings - база данных настроек почтового сервера

createdb -E UTF-8 -O tegu tegu_queue
createdb -E UTF-8 -O tegu tegu_mailboxes
createdb -E UTF-8 -O tegu tegu_settings

Прописываем доступы с подсетей.

nano /var/lib/pgsql/data/pg_hba.conf

Полезные команды

Смотрим какие базы данных у нас есть.

psql -U postgres -c "\l+" 

Удалить базы данных.

psql    
DROP DATABASE tegu_mailboxes;

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

psql -U  tegu -d tegu_settings -h 172.16.10.2 -p 5432 -W
-U (имя пользователя
-d (имя базы данных)
-h (хост сервера базы данных)
-p (порт)
-W (пароль)

Первоначальная настройка

Заходим в web интерфейс по своему ip адресу у меня localhost у вас будет свой адрес.

http://localhost:8888

Первое, что мы увидим, выбор типа базы данных, мы выбираем postgreSQL.

Заполняем соответствующие настройки в новой базе данных параметров.

Нажимаем сохранить параметры.

После сохранения почтовый сервер перезапустится и перед вами предстанет полноценный web интерфейс, который нам и нужно будет последовательно настроить.
Первое, что мы увидим — информационная панель, в которой нас сразу привлекает внимание отсутствие лицензии.
Лицензию можно будет установить либо потом, либо сразу, на настройки ее отсутствие никак не влияет.
Для установки лицензии необходимо открыть в панели раздел - инструменты → панель управления → прочитать лицензионное соглашение → принять его → загрузить файл лицензии.

После загрузки лицензии, в информационной панели вы увидите что статус лицензии изменился.

Основные настройки Tegu

В основных настройках первое что мы видим, имя сервера.

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

В моем случаем здесь будет следующая настройка: mail.tegu.online

Если DNS зоны прописаны верно, то при пинге данного ресурса мы увидим что ресурс отвечаем внешним ip адресом.

Настраиваем хранилища почты: опять выбираем в качестве хранилища Postgres.

Важно: Обратите внимание на параметр - Почтовый домен.
Здесь мы указываем интернет домен, в нашем случаем — tegu.online, но никак не mail.tegu.online

Прописываем настройки подключения к серверу базы данных, имя базы данных соответственно tegu_mailboxes, логин и пароль.


Здесь же можно установить квоту на все почтовые ящики, а также включить папку восстановления,
это новая функция которая позволит вам в будущем восстанавливать удаленные сообщения из корзины.

Настройка очереди сообщений

При настройке очереди сообщений в качестве обработчика выбираем PostgreSQL

Заполняем все данные, должно получиться примерно так.

Проверяем доступность сервера SQL и сохраняем параметры.

Настройка параметров БД пользователей.

Обратите внимание на почтовый домен, здесь как в хранилище почты также указываем интернет домен,
в нашем случае tegu.online ставим галку использовать источник в Глобальной адресной книге.

Должно получится так:

Прописываем настройки подключения к LDAP

Перед тем как что-то хаотично прописывать, лучше воспользоваться утилитой ldapsearch

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

Если у вас нет утилиты ldapsearch, то установите пакет ldap-utils примерно такой командой:

apt install ldap-utils

Синопсис команды:


ldapsearch -x -b <search_base> -H <ldap_host> -D <bind_dn> -W

В моем случае для подключения к LDAP получается следующая команда:


ldapsearch -x -b "DC=tegu,DC=online" -H ldap://10.44.44.16:389

Вывод команды весьма интересен и многое говорит сам за себя.
Но мы с вами запросим информацию о конкретном пользователей uid=ikurennov :

$ ldapsearch -x -b "uid=ikurennov,ou=People,DC=tegu,DC=online" -H ldap://10.44.44.16:389
# extended LDIF
#
# LDAPv3
# base <uid=ikurennov,ou=People,DC=tegu,DC=online> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# iurennov, People, tegu.online
dn: uid=ikurennov,ou=People,dc=tegu,dc=online
objectClass: posixAccount
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
homeDirectory: /home/ikurennov
loginShell: /bin/bash
uid: ikurennov
uidNumber: 10001
gidNumber: 10000
title:: 0JjQvdC20LXQvdC10YA=
o:: 0JzQkdCaLdCb0LDQsQ==
mail: ikurennov@tegu.online
sn:: 0JrQsNC70YzQvNC10YLQvtCy
givenName:: 0JjQs9C+0YDRjA==
cn:: 0JrQsNC70YzQvNC10YLQvtCyINCY0LPQvtGA0Yw=
jpegPhoto:: /9j/4AAQSkZJRgABAQAASABIAAD/7QByUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAD
 ocAVoAAxslRxwCAAACAAIcAigAFm0zTXV6VDhMVHNHQ0JLWCUwc0t4MEEcAhkAC1Bob3RvIEJvb3R
 Bh479yI1rrF7bn/9k=
facsimileTelephoneNumber: 10000

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Как трактовать данный вывод?

• Почтовый сервер может обратиться к LDAP серверу ldap://10.44.44.16:389 с логином BindDN: cn=admin,dc=tegu,dc=online и вашим паролем; 
• Определена область поиска BaseDN dc=tegu,dc=online ;
• Определено поле Attr for mailbox e-mail = mail ;
• Определено поле Attr for mailbox quota (value in MB) = facsimileTelephoneNumber.

Теперь переходим к настройке Провайдера БД пользователей в административном интерфейсе Tegu.

• Поле Provider Name - любой текст, означающий имя подключения; 
• Local Domain Name - имя домена (а не сервера т.е. то, что в email-адресе следует после @);
• LDAP server connection URI - найденный и проверенный выше пусть к серверу;
• BindDN - логин;
• Password - пароль;
• BaseDN - найденный выше фильтр поиска.;
• Atr for mailbox e-mail - название поля, которое в LDAP заполнено email-адресом пользователя (важно! с доменным суффиксом);
• Atr for mailbox quota - название поля, которое в LDAP используется для определения квоты.

Это тот минимум который нам необходимо прописать для успешной интеграции с сервером каталогов.
Важно:
Сейчас поле BindDN прописано в формате UPN - так как мы используем OpenLDAP,
такой вариант работает также и с Microsoft AD, но если вы в качестве сервера каталогов используете FreeIPA или ALD Pro,
то BindDN должен быть полным DN (uid=user,ou=org_unit,dc=domain,dc=com)

Установка и генерация сертификатов Letsencrypt

Центр сертификации, предоставляющий бесплатные криптографические сертификаты X.509
для шифрования передаваемых через интернет данных HTTPS и других протоколов,
используемых серверами в Интернете.
Процесс выдачи сертификатов полностью автоматизирован.

Центр сертификации Let’s Encrypt выдаёт сертификаты со сроком действия в 90 дней.
Для получения сертификата должны быть проброшены порты: 80, 443

Важно!

При генерации сертификата, или его приобретении, сертификат всегда должен быть выдан на имя почтового сервера,
а не на имя домена!

Для Debian дистрибутивов.

Проверяем обновления пакетов

 
apt update 

Устанавливаем Letsencrypt

 
apt install certbot 

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

 
certbot certonly --standalone -m ваша_почта@yandex.ru -d mail.вашдомен.рф 
  • ваша_почта@yandex.ru - Здесь вы указываете действующий рабочий почтовый ящик, куда будут приходить письма от Letsencrypt

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

 
cd /etc/letsencrypt/live/mail.вашдомен.рф/ 

ls 

должны увидеть следующие файлы:

 
cert.pem    chain.pem    fullchain.pem    privkey.pem    README 

Нас интересуют fullchain.pem privkey.pem

Для RED OS 7.3

Для того что бы получить и установить сертификат, нам необходимо установить пакет certbot,
но в репозитории РЕД ОС данного пакета нет, поэтому будем устанавливать его с помощью python.
Python у нас уже установлен, установим недостающий нам пакет.

 
dnf install    python-virtualenv 

Создаем каталог

 
mkdir -p /web/install/python/ 

Переходим в этот каталог

 
cd /web/install/python/ 

Далее нам необходимо создать виртуальную среду для приложения. Саму среду мы назовём python-red

 
python3 -m venv python-red 

Далее, активируем среду приложения python-red

 
source python-red/bin/activate 

Если всё сделано правильно, мы увидим что перешли в среду разработки python

Далее, нам необходимо обновить

 
pip install --upgrade pip 

Теперь устанавливаем пакет certbot

 
pip install certbot 

После установки пакета, запускаем процедуру получения ssl сертификатов

 
certbot certonly --standalone -m ваша_почта@yandex.ru -d mail.вашдомен.рф 

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

 
cd /etc/letsencrypt/live/mail.вашдомен.рф/ 

ls 

должны увидеть следующие файлы:

 
cert.pem    chain.pem    fullchain.pem    privkey.pem    README 

Нас интересуют fullchain.pem privkey.pem

Автообновление сертификатов

создаем папку work в папке root она нам чуть позже пригодится

 
mkdir work 

Создаем в папке Letsencrypt hook со следующим содержанием:

nano /etc/letsencrypt/renewal-hooks/deploy/hook01

 
#!/bin/sh 
do 
        if [ "$domain" = mail.вашдомен.рф ] 
        then 
                /root/work/tegu_certs 
                /bin/systemctl restart tegu 
        fi 
done 

Делаем его исполняемым

 
chmod +x /etc/letsencrypt/renewal-hooks/deploy/hook01 

Далее создаем еще один скрипт

 
nano /root/work/tegu_certs 
 
и прописываем в нем следующие строки 
 
#!/bin/bash 
cat /etc/letsencrypt/live/mail.вашдомен.рф/fullchain.pem > /opt/tegu/certs/cert.pem 
cat /etc/letsencrypt/live/mail.вашдомен.рф/privkey.pem > /opt/tegu/certs/key.pem 
chgrp mail /opt/tegu/certs/* 
chmod 640 /opt/tegu/certs/* 

Делаем скрипт исполняемым

 
chmod +x /root/work/tegu_certs 

Меняем группу владельцев

 
chgrp root /etc/letsencrypt/archive/mail.вашдомен.рф/* 

Запускаем скрипт

 
/root/work/tegu_certs 

Проверяем результат отрабатывания скрипта

 
ls -lh /opt/tegu/certs/ 

В этой папке должны появится сертификаты

 
cert.pem key.pem 

Соответственно в основных настройках почтового сервера мы указываем следующие пути к сертификатам.

 
/opt/tegu/certs/cert.pem 
/opt/tegu/certs/key.pem 

Должно получиться так.

После того как сертификаты сгенерированы и прописаны на почтовом сервере, в основных настройках необходимо включить опцию "Требовать шифрования TLS/SSL для авторизации"

Перезапустим почтовый сервер:

 
systemctl restart tegu 

Важно помнить что для успешной атоматической генерации сертификатов, порты 80 и 443 должны быть проброшены наружу.

После того как все настройки выполнены только теперь можно проверять какие порты слушает почтовый сервер.

 
netstat -lnp 

В ответ должны увидеть:

root@tegu:~# netstat -tulpn | grep tegu
tcp        0      0 127.0.0.1:8899          0.0.0.0:*               LISTEN      81/tegu             
tcp6       0      0 :::8888                 :::*                    LISTEN      81/tegu             
tcp6       0      0 :::9999                 :::*                    LISTEN      81/tegu             
tcp6       0      0 :::25                   :::*                    LISTEN      81/tegu             
tcp6       0      0 :::143                  :::*                    LISTEN      81/tegu             
tcp6       0      0 :::465                  :::*                    LISTEN      81/tegu             
tcp6       0      0 :::993                  :::*                    LISTEN      81/tegu

Генерация DKIM

Переходим в раздел DKIM, нажимаем кнопку

Добавить ключь DKIM.

Финальная тонкая настройка DNS

После того как все настройки прописаны, кто ранее не прописал DNS зоны, идем в Web интерфейс в раздел - Информационная панель

В самом низу видим все настройки в формате BIND, которые TEGU советует вам сделать.
Отнеситесь к этому со всей внимательностью.

Управление почтовыми ящиками

Для создания почтового ящика в учетной доменной записи необходимо задать:

Логин;
Пароль;
Поле Email должно содержать email-адрес пользователя в полном формате. Пример: test@tegu.ooline

Условие для создания почтового ящика

Управление почтовыми ящиками пользователей осуществляется двумя способами:
  1. Созданием учетной записи в локальной JSON File User DB. Этот способ применим лишь для очень небольших и однонодовых серверов. И этот способ является единственно доступным для редакции TEGU Free.
  2. Созданием учетной записи на сервере каталогов (интегрированным с почтовым сервером). Этот способ является преимущественным для большей части информационных систем.
Для создания почтового ящика в учетной доменной записи необходимо задать:
  • Логин;
  • Пароль;
  • Поле Email должно содержать email-адрес пользователя в полном формате. Пример: .

Остальные поля являются необязательными, но рекомендованными. К примеру квота и т.п.

Создание почтового ящика

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

Кеширование необходимо, чтобы в случае DDOS-а почтовый сервер не завалил запросами сервер каталогов.
По умолчанию время кеширования составляет 10 секунд и вы можете самостоятельно изменить его с помощью параметра "Провайдеры БД пользователей/<выбранный провайдер>/Cache TTL (seconds)".

Это обстоятельство означает, что сервер не знает от существовании вашего пользователя, созданного на сервере каталогов до тех пор, пока не возникнет необходимость его авторизации.

Необходимость авторизации возникает когда:

  • Сервер получил письмо в адрес этого пользователя;
  • Сервер получил письмо от этого пользователя;
  • Пользователь настраивает клиентское ПО или регистрируется на сайте веб-мэйла.

Если таких ситуаций не было, но сервер не знает о существовании и, как следствие, не создает почтовый ящик. Более того, этот пользователь не участвует в подсчете использованных лицензий.

Однако, при первой попытке успешно авторизации почтовый ящик создается автоматически.

Удаление почтового ящика

Рассмотрим обратную ситуация. Вы удалили пользователя в домене и пользовательский аккаунт больше не существует. Это означает только то, что сервер не получает запросов на авторизацию, но это не означает, что ящик должен быть удален. Он останется на почтовом сервере.
Таким образом, это означает, что удалять ставшие ненунжными ящики вы должны самостоятельно (вручную).

Для удаления ящика используйте диалог "Хранилища почты/Панель управления <соответствующего домена>/Почтовые ящики".

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