Проект

Общее

Профиль

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

Choose a language: RU | EN | ZH

Table of contents

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

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

Для работы с https используйте порт 9999 (например, https://127.0.0.1:9999).

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

  • Вы можете выбрать SQLite setings database для однонодовой версии почтового сервера (локальная база) но мы рекомендуем Postgres;
  • Либо PosgresSQL этот вариант подходит как для однонодовой версии так и для кластера.

Сохраните введенные данные и сохраните параметры.

Сервер создаст файл конфигурации по указанному вами пути. Отредактируйте эти настройки или нажмите Назад для выхода в корневое меню.

Вы вошли в корневое меню управления сервером.

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

Создание домена и хранилища.

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

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

На данном этапе необходимо выбрать тип хранилища.

Выбрав "Maildir storage" вы можете создать локальное хранилище.

Обратите внимание, что при создании хранилища maildir соответствующий каталог должен быть предварительно создан с правами RW для пользователя mail.

Права на каталоги должны быть такими:

drwxr-x---

Выполним это с помощью команд:

$ mkdir /var/mail/tegu.online

Права на файлы должны быть такими:

-rw-r-----

которые устанавливаются командой:

find /var/mail/tegu.online -type f -exec chmod 640 {} \;

Владелец и группа должны быть те, от которых запускается сервис tegu.
Например, mail.mail, которые устанавливаются командой:

chown -R mail.mail /var/mail/tegu.online

Для создания хранилища укажите:

  • Local mail domain name - интернет-домен, для которого создается хранилище;
  • Root directory path of mail - каталог для хранения почты выбранного домена.

Завершив настройку, нажмите кнопку сохранить.

Хранилище будет создано.

Создание почтового хранилища СУБД

Как было сказано выше, если вы используете редакцию Tegu Enterprise, то вы можете создать хранилище почты в СУБД. С Tegu совместима любая версия от отечественного вендора PosgresPro , либо свободная версия от PostgeSQL . (версия - не ниже 13)

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

createuser -d -S -E -P postgres

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

  • tegu_queue - база данных очередей;
  • tegu_mailboxes - база данных почтового хранилища;
  • tegu_settings - база данных настроек почтового сервера.
createdb -E UTF-8 -O postgres tegu_queue
createdb -E UTF-8 -O postgres tegu_mailboxes
createdb -E UTF-8 -O postgres tegu_settings

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

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

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

psql -U postgres -c "\l+" 

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

psql    
DROP DATABASE tegu_mailboxes;

Для создания хранилища, в начале необходимо создать домен и выбирать хранение в базе данных Postgress

Очевидно, что целесообразно разместить почтовый сервер Tegu и СУБД на различных вычислительных нодах (виртуальных или физических).
Установка сервера БД производится согласно официальной документации Postgre . По окончании установки вам необходимо создать пользователя с правами создания баз, которым будет пользоваться сервер Tegu, а также
  • необходимо создать две базы:
    • для хранения почты;
    • для хранения конфигурации.
  • и, если необходимо:
    • для очереди сообщений SMTP.

Для всех БД пользователь этих БД должен иметь в них право CREATE.

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

Оптимизация БД, а также сборка отказоустойчивого решения БД, выходит за рамки установки почтового сервера и рассматривается в каждом конкретном случае по запросу. Интерес также представляет создание отказоустойчивой конфигурации базы данных, "рассмотренной в данной статье Построение отказоустойчивого кластера СУБД Postgres.

Создание/подключение баз данных пользователей

Итак, для понимания структуры давайте еще раз взглянем на картинку архитектуры объектов сервера.

Как видно, каждый интернет-домен обслуживается одним хранилищем почты (которое может быть любого из двух типов: maildir или СУБД). Количество интернет-доменов не ограничено.

При этом каждый интернет-домен может обслуживать пользователей из различных баз данных. Базы данных могут быть локальными, либо LDAP3 (куда входит в т.ч. и Windows Active Directory).
Можно предположить, что найдутся более одной базы, которые будут содержать данные одного и того же пользователя. Эту коллизию, необходимо разрешить организационными мероприятиями, но сервер разрешит ее следующим образом: обслужен будет пользователь, описанный в конфигурации первым, все остальные будут проигнорированы.

Для создания базы пользователей в корневом меню выберем пункт Домены -> ваш домен -> Провайдеры БД пользователей.
Добавим базу данных кнопкой Добавить провайдер БД пользователей.

Первый вариант базы пользователей JSON File User DB.

В данном диалоге мы можем выбрать локальную базу пользователей пунктом JSON File User DB, либо подключиться к одному из серверов каталогов LDAP User DB

Далее заполняем имя и каталог размещения локальной базы данных, которая будет создана в формате JSON.

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

Второй вариант базы пользователей - подключение к LDAP-серверу каталогов.

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

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

Пример подключения к Active Directory.

Этого вполне достаточно, чтоб начали создаваться пользователи и начала ходить почта.

Пример подключения к OpenLdap.

Загрузка лицензии

Для работы коммерческой редакции сервера вам потребуется загрузить файл лицензии. Это выполняется в Основном меню -> Настройки -> Лицензия

Прочтите лицензионное соглашение.

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

Выберите опцию Загрузить файл лицензии.

Выберите файл лицензии и нажмите Загрузить файл.

По окончанию загрузки вы увидите инфрмацию о вашей лицензии.

Проверка настроек сервера

Проверить все выполненные настройки сервера можно с помощью утилиты teguctl (идущие в комплекте дистрибутива).

Команда:

# /opt/tegu/bin/teguctl dump

выведет всю конфигурацию сервера в тестовом формате.

Утилита teguctl поставляется с дистрибутивом (вы найдете ее в каталоге bin).

Установка и генерация сертификатов 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.вашдомен.рф

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

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

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

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

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

systemctl restart tegu

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

netstat -lnp
См. также: