Почтовый сервер Лаборатории МБК
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Роман Бородин c07e9ed944 Правила входящих писем. Количество очков спама учитывается только в последнем поле заголовка письма 3 weeks ago
mailstoragePlugins/maildirMailstorage Зависимости 3 weeks ago
miscPlugins/sslTlsMisc Зависимости 3 weeks ago
settingsDbPlugins/sqliteSettingDB Зависимости 3 weeks ago
smtpQueuePlugins/sqliteFilesSmtpQueue Зависимости 3 weeks ago
tegu Правила входящих писем. Количество очков спама учитывается только в последнем поле заголовка письма 3 weeks ago
userDBPlugins/jsonfileUserDB Зависимости 3 weeks ago
.gitignore функции плагина работы с сертификатом 2 months ago
LICENSE Initial commit 10 months ago
README.md Обновлено описание 3 weeks ago

README.md

Тегу

Почтовый сервер Лаборатории МБК

Система написана на языке Go (сервер SMTP, сервер IMAP, WEB панель администрирования).

Список воплощённых функций:

  • Собственная реализация сервера SMTP
  • Собственная реализация сервера IMAP
  • Доставка писем на сторонний сервер по протоколу LMTP (например, Dovecot) или доставка в собственное хранилище maildir
  • WEB панель администрирования
  • Локальная база пользователей, групп, перенаправлений
  • Поддержка псевдонимов почтовых ящиков, списков перенаправления (списки рассылки), почтовых групп (группы с адресом email позволяют доставить письмо всем их членам), вложенности почтовых групп
  • Содержание неограниченного количества почтовых доменов Для каждого домена может быть подключена одна и более БД пользователей и групп
  • Мастер-пользователи почты (те кто имеют доступ ко всем ящикам) определяются членством в группе
  • Поддержка квоты размера ящика IMAP
  • Поддержка белых и чёрных списков отправителей для входящих писем
  • Поддержка проверки SPF
  • Поддержка технологии GreyList (временный отказ незнакомому отправителю) Данная технология срезает до 80% нежелательной корреспонденции. Возможно исключить проверку для списка доменов отправителя.
  • Поддержка DNS Black List Данная технология позволяет отказать в обслуживании отправителям, сервера которых были скомпрометированы в глобальной сети Интернет
  • Поддержка антивирусной проверки. Сетевое подключение к антивирусу по протоколу Milter.
  • Поддержка проверки на спам. Сетевое подключение к антиспаму по протоколу Milter. Количество очков спама в заголовке письма теперь можно обработать через условие правил обработки входящих писем
  • Подпись DKIM для исходящих сообщений
  • Защита от перебора пароля с баном IP (SMTP, IMAP, WEB)
  • Модульная архитектура для БД пользователей и групп, хранилищ почты, обработчика очереди сообщений

Инструкция

Установка

Скачанный архив распаковываем в любую папку (например в /opt/). Папку с версией (tegu-x.x.x) переименовывем в tegu. Чтобы можно было запускать от непривилегированного пользователя, необходимо выполнить:

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

/opt/tegu/sbin/tegu - путь до исполняемого файла.

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

  • /etc/tegu.conf
  • ~/tegu.conf

Если файл не найден, то он будет создан по пути ~/tegu.conf со следующим содержанием:

[global]
dataDir = /opt/tegu/data
pluginDir = /opt/tegu/plugins

[Log]
debug = false

[WEB]
adminPassword = admin

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

Для запуска через systemd необходимо добавить файл /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

В User и Group указываем системные пользователя и группу, от которых планируется запуск сервера. Устанавливаем права на каталоги:

chown -R mail. /opt/tegu/{data,certs,dkim}
chmod 750 /opt/tegu/{data,certs,dkim}

mail - пользователь, от которого запускаем сервер.

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

systemctl enable tegu.service
systemctl start tegu.service

Настройка

После установки необходимо зайти WEB-браузером на порт 8888 (например, http://127.0.0.1:8888) и авторизоваться под администратором (логин admin) с паролем, указанным в конфиге в параметре adminPassword.

В разделе Настройки необходимо указать основные настройки.

В разделе Провайдеры БД пользователей необходимо добавить подключение (или несколько) к базе пользователей, групп и перенаправлений.

В разделе Хранилища почты необходимо добавить хранилище (или несколько) почты.

В разделе Очередь SMTP необходимо настроить обработчик очереди SMTP.

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

Правила обработки входящих писем

Для настройки правил необходимо авторизоваться в WEB-панели под почтовой учётной записью. Каждому пользователю доступны только его правила.

Лицензия

Продукт распространяется под лицензией GPL версии 3. Ознакомиться с текстом лицензии можно по адресу:

https://www.gnu.org/licenses/gpl-3.0.ru.html