Установка российского почтового сервера Tegu

Ставим почтовый сервер на обычную рабочую станцию

Тестовый стенд:

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

Ставим Ubuntu Server 22 на данный ПК - при установке на этапе выбора дополнительного ПО отмечаем Nextcloud

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

ldd --version

Она должна быть не ниже 2.28 (версии с которой скомпилирован Tegu на момент написания статьи)

Переходим под root

sudo su

Качаем и распаковываем дистрибутив:

wget https://downloads.mbk-lab.ru/stable/free/x86_64/1.36/tegu-free-v1.36.13-x86_64.tar.gz

tar -xvf tegu-free-v1.36.13-x86_64.tar.gz
mkdir /opt/tegu

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

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

cp tegu-free-v1.36.13-x86_64/sbin/* /opt/tegu/sbin/

cp tegu-free-v1.36.13-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

Создаем службу:

nano /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

Создаем файл конфигурации:

nano /etc/tegu.conf

Заполняем следующим содержимым:

[global]
dataDir = /opt/tegu/data

[Log]
debug = false

[WEB]
adminPassword = admin
httpPort = 8888
httpsPort = 9999
ctlPort = 8899

Если нужно журналирование то необходимо изменить параметр:

debug = true

Задаем права на файл конфигурации:

chown root.mail /etc/tegu.conf
chmod 640 /etc/tegu.conf

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

systemctl enable tegu.service

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

systemctl start tegu.service

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

systemctl status tegu.service

Смотрим журнал сервера:

journalctl -f -u tegu -n 100

Проверка портов, которые используются программой:

netstat -tulpn | grep tegu