Мини-аналог «mail.yandex.ru» для небольшой компании

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Приветствую!

Давно не писал статей, все руки не доходили, наконец то, выбралось время и решил поделиться с Вами решением одной задачи.

Немного предыстории.

В конце 2018 довелось участвовать в создание инфраструктуры одной поликлиники и одна из задач была организация почтового сервера. По желанию заказчика, предпочтение было отдано внешним службам, а именно pdd.yandex.ru. На тот момент требовалось не более 3-5 пользователей, и это решение посчитали оптимальным и самым быстрым. Но время шло, задачи менялись и в конце 2022 г. число учетных записей выросло до 95 из них активных, в повседневной работе, 25. Когда Яндекс ввел плату за каждого пользователя, было принято решение о переводе всей почты на локальное размещение. К тому же, весь доступ к почте, предполагает только локальное использование, без доступа из внешней сети. Перелопатив кучу вариантов, от коробочных решений до самосборной конфигурации, пал выбор на Kolab Groupware. Выбор был обусловлен желанием работы через WEB интерфейс, с общей адресной книгой, календарем, списком дел и файловым облаком. Плюшек хватало с лихвой, но возник ряд трудностей, о способах решения которых, я напишу ниже.

Исходные данные:

Сервер: контейнер на ProxMox, 6Gb RAM, 120 Gb SSD, 4 Core.

OS: Debian 11 (все linux сервера, в компании Debian 10-11).

VPS от REG.RU с внешним IP, для отправки почты(провайдер выделяет внешний IP но нет возможности сделать PTR-запись).

Приступим

Kolab рассчитан на использование в среде RHEL, в рекомендациях RHEL 8, но пакеты под Debian 11 есть, что только подкинуло проблем, разбираться с ними пришлось не мало. Но это всё лирика, приступим к делу.

Начнем с установок ключей для репозиториев:

wget -q -O- https://ssl.kolabsys.com/community.asc | apt-key add -

Если вдруг, получим ошибку, как я, то не переживем, просто в системе нет пакетов, исправляем это:

apt install gnupg2

Теперь прописываем сам репозиторий:

nano /etc/apt/sources.list.d/kolab.list:

deb https://mirror.apheleia-it.ch/repos/Kolab:/16/Debian_11.0/ ./

deb https://mirror.apheleia-it.ch/repos/Kolab:/16:/Testing/Debian_11.0/ ./

deb-src https://mirror.apheleia-it.ch/repos/Kolab:/16:/Testing/Debian_11.0/ ./

deb-src https://mirror.apheleia-it.ch/repos/Kolab:/16/Debian_11.0/ ./

Указываем приоритет репозитория:

nano /etc/apt/preferences.d/kolab:

Package: *

Pin: origin mirror.apheleia-it.ch

Pin-Priority: 501

Обновляемся и ставим пакеты:

apt update && apt install kolab

Это была самая простая часть, которая есть в документации.

Дальше нам надо получить сертификат SSL, инструкций куча, от самописных до Let's Encrypt. Вместе с kolab, ставиться сервер Apache2, на него был получен сертификат от Let's Encrypt его и будет использовать. Подготовим его для применения:

cp /etc/letsencrypt/live/mail.example.ru/cert.pem /etc/ssl/private/cyrus-imapd.pem
cp /etc/letsencrypt/live/mail.example.ru/privkey.pem /etc/ssl/private/cyrus-imapd.key
usermod -a -G ssl-cert cyrus
chmod 0755 /etc/ssl/private
chmod 0644 /etc/ssl/private/cyrus-imapd.key

Приступаем к настройке kolab:

setup-kolab --with-php-ini=/etc/php/7.4/apache2/php.ini

Все делаем по умолчанию и по вашему желанию. В идеале, на этом этапе, все должно было бы уже работать, но по факту система еще требует работы руками. Приступаем к исправлению.

Изменяем пути:

sed -i 's#/var/lib/imap/#/var/lib/cyrus/#' /etc/cyrus.conf

sed -i 's#/var/lib/imap/#/var/lib/cyrus/#' /etc/imapd.conf

sed -i 's#/var/lib/imap/#/var/lib/cyrus/#'  /etc/postfix/ldap/transport_maps.cf

sed -i 's#/var/lib/imap/#/var/lib/cyrus/#' /etc/postfix/transport

Пакеты kolab собраны с путями RHEL, я же изменил их на пути DEB систем.

В системе GUAM добавляем пути к сертификату:

nano /etc/guam/sys.config:

{ keyfile, "/etc/ssl/private/cyrus-imapd.key" }

Добавляем сертификаты в postfix:

postfix tls deploy-server-cert /etc/ssl/private/cyrus-imapd.pem /etc/ssl/private/cyrus-imapd.key

Перенастраиваем postfix

postmap /etc/postfix/transport

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

echo "partition-archive: /var/spool/ cyrus/archive" >> /etc/imapd.conf

Перезагружаем систему:

reboot

B радуемся рабочей почтовой системе, если бы не но....

По умолчанию, в Debian у Amavis отключены проверки на спам и вирусы, это дело надо исправить:

Редактируем

nano /etc/amavis/conf.d/15-content_filter_mode

И снимаем комментарии, со строк с началом @@bypass_

Так как у нас есть VPS, который выступает в качестве сервера пересылки, то не забываем настроить SmartHost. На этом основные шаги, для запуска почтового сервера, закончены. Осталось настроить DKIM, проброс портов и DNS. Но этих инструкций куча в интернете. Если возникнет потребность, с радостью добавлю информацию в эту статью.

В качестве материалов, для реализации данного проекта, использовались статьи и форумы из интернета, в частности:

https://kb.kolabenterprise.com/

https://habr.com/ru/articles/260527/

https://docs.kolab.org/

https://git.kolab.org

Спасибо за внимание

Источник: https://habr.com/ru/articles/745656/


Интересные статьи

Интересные статьи

Привет! Меня зовут Ксюша Вахова, я руководитель корпоративного центра обучения в Selectel. Занимаюсь организацией обучения сотрудников и помогаю им развиваться. В этом тексте поделюсь опытом составл...
Когда Россию отключили от международных платёжных систем, многие компании моментально потеряли своих клиентов, покупателей и пользователей, фрилансеры — заказчиков, онлайн-криэйторы и инфлюенсеры — до...
Данные любой величины и любого типа в деятельности любой компании требуют управления, централизации, хранения и организации, особенно в условиях современного развития, цифровизации и формирования отно...
Соло-разработка проекта ПО — непростая задача. Никто не будет подталкивать тебя, проверять код и обеспечивать руководство, ты сам по себе путешествуешь в неизведанное. Чаще всего н...
Поводом для написания данной статьи послужила статья “Я хотел купить недорогой 3D-принтер, но посмотрел YouTube и расхотел”, в конце которой автор просит ответить на неск...