Проект

Общее

Профиль

Концепция сервера TEGU

TEGU это полностью российское серверное программное обеспечение, представляющее собой современный почтовый сервер, работающий на оборудовании заказчика (on-premise) под управлением ОС Linux, позволяющий организовать обмен с любыми почтовыми серверами по протоколу SMTP и поддерживающий почтовые клиенты по протоколу IMAP/SMTP. Сервер реализует адресные книги по протоколу CardDAV и календари по протоколу CalDAV. Сервер поддерживает интеграции по протоколам LDAPv3 и Milter.

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

Особенности сервера

Среди особенностей сервера можно выделить следующие:
  • TEGU - это высоконагруженное приложение, рассчитанное на обработку до 400 тыс. пользователей;
  • TEGU - не пакет, а монолитное приложение, представляющее собой один единственный файл;
  • Сервер реализует асинхронный алгоритм обработки событий, что важно для производительности и устойчивости к атакам;
  • Все перечисленные методы, форматы и протоколы реализованы в TEGU самостоятельно. Сервер не использует какие бы то ни было внешние приложения или библиотеки;
  • Асинхронность и монолитность TEGU заметно снижает поверхность атаки, делает его работу стабильной, независимой от пакетной базы ОС, нетребовательной к аппаратным ресурсам;
  • TEGU не синхронизирует данные серверов каталогов и не может их скомпрометировать;
  • TEGU не проверяет обновления, не отправляет данные для отладки разработчику, не отправляет никаких неописанных данных.

Редакции сервера

Сервер TEGU выпускается в трех редакциях, сравнить которые удобнее с помощью следующей таблицы:

TEGU Free TEGU Pro TEGU Enterprise
Архитектура Однонодовый сервер с системой хранения MailDir с локальной базой пользователей Однонодовый сервер с системой хранения MailDir с возможностью интерации с серверами каталогов Симестричный высоконагруженный отказоустойчивый кластер с системой хранение в СУБД Postgres
Комплектация Почтовый сервер Почтовый сервер
Интеграция с серверами каталогов
Почтовый сервер
Интеграция с серверами каталогов
Сервер адресных книг
Сервер календарей
Резервируемость
Масштабируемость (кластер)
Лицензия Freeware (бесплатно) Коммерческая лицензия Коммерческая лицензия
Особенность Требуется смежное ПО:
СУБД PostgreSQL или
СУБД Postgres Pro

Архитектура данных сервера

Топологии сервера могут быть очень различны. Для проектирования системы важно понимать основные сущности сервера (как организовано хранение различных типов данных и методов доступа к ним).

Сервер TEGU в своей работе использует три хранилища для:
  1. Хранения конфигурации.
  2. Хранения очередей SMTP.
  3. Хранения данных (почтовых сообщений, календарей, адресных книг и пр.).
Хранилища могут быть локальными или сетевыми.
  • Для хранения конфигурации и очередей может быть использованы SQLite на локальном диске или Postgres на сетевом ресурсе.
  • Для хранения данных сервер может использовать локальный диск в формате MailDir или Postgres на сетевом ресурсе.
Для описания хранилищ используйте:
  • Локальные хранилища задаются описанием каталога. Например: /opt/go-tegu/data .
  • Сетевые хранилища задаются указанием сервера, порта, имени базы данных и аккаунта доступа.
Вы можете в любой момент изменить любой их этих параметров.
  • Например, при изменении "Базы конфигураций" сервер переключится на новый профиль работы. Предположим, что один профиль предполагает работу через прокси, а второй - работу без прокси, но с интегрированным антивирусным сервером, подключенным по протоколу Milter. Переключение между профилями позволит мгновенно менять параметры сервера.
  • Комбинируя параметры вы можете добиться более сложной конфигурации. Предположим, что ваши ноды находятся в разных ЦОДах. Каждый из серверов пользуется своей базой конфигурации, собственными очередями SMTP, но при этом все они используют единое хранилище данных. Понятно, что подобных вариантов настройки может быть множество.

Комбинация хранилищ может быть любой с соблюдением следующих принципов:

TEGU Free TEGU Pro TEGU Enterprise (1 нода) TEGU Enterprise (кластер)
База конфигурации Локальная SQLite Локальная SQLite Локальная SQLite или СУБД Postgres СУБД Postgres
Очередь SMTP Локальная SQLite Локальная SQLite Локальная SQLite или СУБД Postgres СУБД Postgres
Хранилище данных Локальный MailDir Локальный MailDir Локальный MailDir или СУБД Postgres СУБД Postgres

Количество баз данных сервера не ограничено.

Интернет-домены сервера

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

Механизмы аутентификации пользователей

Сервер для аутентификации пользователей может использовать два типа источников:
  1. Локальная база пользователей (хранящаяся в формате JSON);
  2. Серверы каталогов (LDAP v3, включая Windows AD).

В рамках одного интернет-домена может быть использовано неограниченное количество источников баз пользователей в любой комбинации типов.
Все источники баз пользователей используются как единая (объединенная) база для формирования глобальной адресной книги (в разрезе интернет-доменов).

TEGU Free TEGU Pro TEGU Enterprise (1 нода) TEGU Enterprise (кластер)
Базы пользователей Локальная JSON Локальная JSON + LDAP v3 Локальная JSON + LDAP v3 LDAP v3

Роли сервера

На программном уровне сервер выполнен как единый монолитный исполняемый файл.
При этом сервер может выполнять следующие роли (как все, так и их частичные комбинации):
  • Работа в качестве MTA (интеграция с внешним MDA);
  • Работа в качестве MDA (интеграция с внешним MTA);
  • Прием почты через релей;
  • Отправка почты через смарт-хост;
  • Интеграция с антивирусным приложением установленным в качестве прокси или по протоколу Milter;
  • Работа совместно в группе с внешним сервером (обслуживание пользователей одного домена или сервера каталога);
  • Работа в режиме "мягкой миграции" с внешнего on-premise или облачного сервера;
  • Сервер адресных книг по протоколу CardDAV;
  • Сервер календарей по протоколу CalDAV.

Использование Milter

Сервер на этапе сессии SMTP поддерживает протокол Milter, который может быть использован для различных целей.
основными целями использования Milter являются:
  • Интеграция с антивирусными приложениями;
  • Интеграция с антиспамовыми приложениями;
  • Интеграция с ProcMail обработчиком;
  • Интеграция с собственными milter-агентами.

Сервер передает управление milter-программе на этапе приема и отправки сообщений.
Milter не может быть использован при локальной доставке сообщений.

Резервируемость и масштабируемость

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

Резервируемость и масштабируемость СУБД достигается средствами СУБД Postgres. При этом может быть реализован кластер по типу Master + Slave либо Master + Master.

Резервируемость редакций TEGU Free и TEGU Professional не предусмотрена (но может быть частично реализована средствами виртуализации). Масштабируемость редакций TEGU Free и TEGU Professional не предусмотрена.

Резервное копирование сервера

Резервное копирование зависит от комбинации используемых вами типов баз данных сервера. Чаще всего, в эксплуатирующей организации уже есть инструменты для резервного копирования (используемые для других сервисов), либо есть какие-то предпочтения при их выборе. С TEGU вы можете использовать любой инструмент, способный копировать файловые структуры и/или СУБД Postgres без исключения.

Интерфейс управления

Управление сервером осуществляется через графический веб-интерфейс.
Администрирование сервера подробно описано в следующих статьях.

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

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

Документация

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

Мы желаем Вам приятной работы в TEGU!