Проект

Общее

Профиль

Опыт установки TEGU Freeeware

Добавил(а) Жадан Виталий больше 1 года назад

Добрый день

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

Несколько дней все это настраивали, в итоге запустили, но любое дополнение или изменение, надо кучку конфигов править (по специфике настройки, пришлось еще и в базе некоторые моменты самим дописывать).

Решено было параллельно еще раз посмотреть на TEGU, но уже не читая, а установив и пощупав.

Вся настройка заняла несколько часов, с внесением всех учёток и параметров.

Несколько часов занял перенос почты из яндекса в tegu (более 60 гигов данных, в среднем от 5к писем на учетку).
Благодаря инструкции разработчиков + утилите imapsync (предлагаемый скрипт не взлетел с учетками из файла txt (разбираться не стали), сделали свой, который одновременно запускает несколько аккаунтов, а не по очереди). Так же было интересно посмотреть как поведет себя сервер при большой количестве писем.

Запустили imapsync параллельно на 20 аккаунтах. Результат оказался впечатляющий.
Принято решение оставить TEGU.

И сразу впечатление о работе (+ понравилось, - хотелось бы):
+ бесплатность
+ простота установки/настройки/обновления
+ скорость работы
+ требуемые ресурсы
- отсутствие расширенных логов
+ как выяснилось, FREE версия так же имеет поддержку (а это перекрывает минусы!)

В данной инструкции, будет всего лишь описан опыт (прошу сильно не ругать, это всего лишь личный опыт, не более) установки TEGU (на момент написания v1.27.0) версии FREE, на две ОС (Ubuntu, Debian).


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

MX запись mx.ВАШ_ДОМЕН
MAIL  для веб-клиента  mail.ВАШ_ДОМЕН

По установке TEGU, точно так же проблем не возникло, есть очень хорошая инструкция от разработчиков ( Tegu_Install ).
Личный совет: выполнять все по пунктам как описано, и не пропускать ничего.

Установку веб-сервера расписывать так же подробно не будем (каждый настраивает любимый ему веб-сервер), в нашем случаи был установлен стек LAMP.

cd /etc/apache2/sites-available

создаем файл mail.ВАШ_ДОМЕН.conf
в него добавляем минимальный конфиг:
<VirtualHost *:80>
ServerName mail.ВАШ_ДОМЕН
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Выполняем команды, что бы включить домен:
a2ensite mail.ВАШ_ДОМЕН
systemctl restart apache2

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

Сразу решаем, что надо настроить SSL:
Ставим certbot + плагин для apache2

apt-get install certbot  python3-certbot-apache

Получаем сертификат на mail.ВАШ_ДОМЕН (документаций много, можно получить как и по ДНС, так и автоматически через плагин), в нашем случаи через установленный плагин для apache2.

Автоматизируем получение сертификата (частично модернизирована инструкция разработчиков TEGU):
создаем файл /etc/letsencrypt/renewal-hooks/deploy/hook01 , с содержимым:

do
        if [ "$domain" = mail.ВАШ_ДОМЕН ]
        then
                /opt/tegu/tegu_certs
                /bin/systemctl restart tegu
        fi
done

делаем исполняемым:
chmod +x /etc/letsencrypt/renewal-hooks/deploy/hook01

создаем файл /opt/tegu/ 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 /opt/tegu/ tegu_certs

выпоняем:
chgrp root /etc/letsencrypt/archive/ mail.ВАШ_ДОМЕН /*

P.S. по рекомендации разработчиков TEGU, этот пункт не нужен:
добавляем задание в Crontab, по команде crontab –e :
20 0,12 * * *           /opt/tegu/ tegu_certs >/dev/null 

Сертификаты получены и должны обновляться автоматически теперь)

А основных настройках TEGU указали, соответственно:
Имя сервера (используется в приветствии SMTP и в HELO/EHLO) mx.ВАШ_ДОМЕН
Путь до сертификатов не трогаем.
После применения настроек проверяем

 netstat -tulpn | grep tegu  


Как видим 993 и 465 порты есть, значит сертификаты прочитались и все хорошо.

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

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

Рассматривалось два варианта:
Rainloop
RoundCube
Оба варианты не плохие, первый более легкий и шустрый, второй с большим набором функций.

Установка Rainloop:

Так как ставить будем как единственный веб-клиент то выполняем следующие команды:
скачиваем последнюю версию:

wget https://www.rainloop.net/repository/webmail/rainloop-latest.zip

распаковываем:
unzip rainloop-latest.zip -d /var/www/html 

переходим в каталог:
cd /var/www/html

выставляем права:
chown -R www-data:www-data

фактически можно заходить по mail.ВАШ_ДОМЕН и начинаем настраивать админку, которая доступна по ссылке:
https://mail.ВАШ_ДОМЕН/?admin

Для входа в админку возможно спросит логин/пароль: admin/12345.

идем сначала в Домены, там удаляем все тестовые домены и добавляем наш домен, двумя вариантами на выбор:

1) localhost (на скриншоте, без использования SSL)
2) mail.ВАШ_ДОМЕН (на скриншоте, с использованием SSL)


Если нажать кнопку ТЕСТ, то сразу произойдет проверка настроек, и надпись IMAP + SMTP загорятся зеленым, то поздравляю, ВЫ все сделали верно!!!
В случаи если загорятся красным, проверяйте работу с сертификатами и проверйте подробнее настройки.

Что бы были красивые логины, без @ВАШ_ДОМЕН, указываем:

Возможно будет проблема с проверкой SSL сертификата, тогда вот эта опция, позволит ее решить:

В этом же разделе, настраиваем безопасный доступ в админку.

Плагины ставятся по желанию, устанавливаемая версия:

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

Установка RoundCube:

Так как ставить будем как единственный веб-клиент то выполняем следующие команды:
скачать можно две версии на выбор Stable и LTS
наш выбор сделан в пользу LTS, поэтому дальнейшие действия все сделаны для нее
выполняем команды:

wget https://github.com/roundcube/roundcubemail/releases/download/1.5.3/roundcubemail-1.5.3-complete.tar.gz

готовим LAMP, нужны некоторые доп модули:
apt-get install php7.2 php7.2-gd php-mysql php7.2-curl php7.2-zip php7.2-ldap php7.2-mbstring php-imagick php7.2-intl php7.2-xml

расспаковываем:
tar xvzf roundcubemail-1.5.3-complete.tar.gz

копируем в /var/www:
cp -R roundcubemail-1.5.3/* /var/www/html

выставляем права:
chown -R www-data:www-data /var/www/html
chmod -R 775 /var/www/html

вспоминаем, что mysql стоит уже у нас, заходим в него
mysql -u root -p
CREATE DATABASE roundcube_database; 
CREATE USER 'roundcube'@'localhost' IDENTIFIED BY 'password'; 
GRANT ALL PRIVILEGES ON roundcube_database.* to 'roundcube'@'localhost';

(логины и пароли тестовые, рекомендуется сделать свои)

Потом загружаем базу данных:

mysql -u roundcube -p roundcube_database < SQL/mysql.initial.sql

теперь можем перейти в графическую установку:
http://mail.ВАШ_ДОМЕН/installer

Выделенные пункты обязательно должны быть ОК (зеленными), если что не соответствует, необходимо исправить (раздел по databases нужен только mysql, на остальные можно не обращать внимание)

Нажимаем NEXT и переходим непосредственно в конфигуратор:
скрины делать не буду, так как очень объемно, просто распишу переменные конфига, которые используются у нас:

product_name – по выбору
Database setup – данные используем из создания базы!
IMAP Settings:
default_host - ssl://mail.ВАШ_ДОМЕН
default_port - 993
username_domain - ВАШ_ДОМЕН 
smtp_server - ssl://mail.ВАШ_ДОМЕН
smtp_port – 465
smtp_user/smtp_pass  - оставляем как есть

остальное по желанию.

Нажимаем NEXT
Переходим в Test config
Тут в пункте Check DB config, нажимаем инициализировать базу (база сама заполнится необходимыми данными)
Если везде горит ОК (зеленым) то можно проводить Test IMAP config
Заполняем логин/пароль и проверяем, что авторизация успешна.

Удаляем папку installer, как требует установщик (мы же находимся в каталоге /var/www/html/):

rm -Rfv installer

И на всякий случай, настройка, которая облегчит жизнь в будущем, проверить/дописать в конфиг /var/www/html/config/config.inc.php :
$config['enable_installer'] = false;
#запрет запуска установщика.

$config['smtp_helo_host'] = ‘mx.ВАШ_ДОМЕН’;
#нужна если у вас используется запись MX, отличающаяся от mail.ВАШ_ДОМЕН, как в нашем случаи.

На этом можно считать работу законченной, почта должна приходить успешно.

Дополнение:
Для телефона так же есть клиенты, которые удалось подружить (проверяли на адроиде):
Почта Email - Blue Mail
Почта Email - TypeApp Mail (рекомендую его)


Ответы (5)

RE: Опыт установки TEGU Freeeware - Добавил(а) Кальметов Игорь больше 1 года назад

Ну, что можно сказать?
Прекрасная работа.
Мы рады, что TEGU вам понравился.
И конечно спасибо за позитивный отклик.

RE: Опыт установки TEGU Freeeware - Добавил(а) Кальметов Игорь больше 1 года назад

Виталий, у вас написано "После быстрого осмотра описания, подумали что не подходит, нет нужных функций".
Интересно каких функцией не хватило?

RE: Опыт установки TEGU Freeeware - Добавил(а) Бородин Роман больше 1 года назад

Виталий, отличная история успеха. Одно замечание.

добавляем задание в Crontab, по команде crontab –e :

 20 0,12 * * *           /opt/tegu/ tegu_certs >/dev/null

Однако, ранее Вы этот же скрипт добавили в хук обновления certbot-а.
В этой конфигурации нет необходимости добавлять задание в cron, т.к. у certbot есть своё собственное задание. При выполнении обновления сертификата будет выполнен Вами же добавленный хук, а следовательно и скрипт перезаписи сертификатов. Советую tegu_certs из crontab убрать.

RE: Опыт установки TEGU Freeeware - Добавил(а) Жадан Виталий больше 1 года назад

Бородин Роман писал(а) (RE: Опыт установки TEGU Freeeware):

Виталий, отличная история успеха. Одно замечание.

добавляем задание в Crontab, по команде crontab –e :
[...]

Однако, ранее Вы этот же скрипт добавили в хук обновления certbot-а.
В этой конфигурации нет необходимости добавлять задание в cron, т.к. у certbot есть своё собственное задание. При выполнении обновления сертификата будет выполнен Вами же добавленный хук, а следовательно и скрипт перезаписи сертификатов. Советую tegu_certs из crontab убрать.

Хорошо, уберу (спасибо).
Кстати это у вас в инструкции тоже есть))) собственно не понял зачем, но решил что игнорировать не стоит, если вы написали в инструкции (2.7. Установка и генерация сертификатов Letsencrypt)

RE: Опыт установки TEGU Freeeware - Добавил(а) Жадан Виталий больше 1 года назад

Кальметов Игорь писал(а) (RE: Опыт установки TEGU Freeeware):

Виталий, у вас написано "После быстрого осмотра описания, подумали что не подходит, нет нужных функций".
Интересно каких функцией не хватило?

команды
алиасы к ящикам
пересылка на внешние ящики

Просто у вас это называлось по другому (не как в яндексе), поэтому не поняли сначала, что все это есть.
Потом разобрались.

    (1-5/5)