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

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

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

В конце 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

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

Комментарии (24)


  1. iskatel
    03.07.2023 18:25
    +6

    " К тому же, весь доступ к почте, предполагает только локальное использование, без доступа из внешней сети. "

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

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

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

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

    вот это

    " у нас есть VPS, который выступает в качестве сервера пересылки, то не забываем настроить SmartHost. "

    решает лишь часть спам-проблем.

    И за сервером потом прийдётся постоянно смотреть и корректировать, если что, те. работа по саппорту (если за неё будут платить).

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


    1. loginoffvich
      03.07.2023 18:25

      я понял что они переносят яндекс в местный local - если пулялку вместе настроят то наверное не попадут в junk хотя у жирных любой junk если нет диалога а у новых акков второе письмо без ответа уже spam&block a из gmail с outlook в сторону ya&mail вообще без извещения ситуации как в /dev/nul всё уходит и только между gmail c outlook как-то яснее ситуация (либо сфетофор - либо прям причина) ... все эти анти уже держится на работке контактов - фаил не даёт отправить пока текстом не согласуешь отправку или блочат за bitly ссылку а потом оказывается что причина то-что получатель убрал синхронизацию gmail в локаль (какие-то 5 мб запаришься переслать) + блоки возникают когда сервис не может понять содержание текста письма или теряет ветв дискусий в цитировании


      1. Teon_501 Автор
        03.07.2023 18:25

        Уже перенесли, пол года полет нормальный. Переход длился месяц, в этот период в качестве MX использовали и свой сервер с приоритетом 20 и сервер yandex с приоритетом 40


  1. BugM
    03.07.2023 18:25
    +8

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

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


    1. Teon_501 Автор
      03.07.2023 18:25
      +1

      Полностью согласен, но эта проблема уже была решена, почта отправляется через VPS, там чистый postfix настроенный только на отправку почты с определенного IP и определенного домена. Настроены все обратные зоны и записи DNS. Со спамом борется amavisd-new + SpamAssassin, в добавок к нему greylisting. И конечно же RBL, а именно строка в Postfix submission_recipient_restrictions = [...] reject_rbl_client zen.spamhaus.org, reject_rbl_client ix.dnsbl.manitu.net, reject_rbl_client bl.spamcop.net, [...]


      1. BugM
        03.07.2023 18:25
        +4

        И как хорошо работает?

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

        Пара недоставленных писем в год могут стоить на порядок больше годовой абонентки того же Яндекса. Если почта для работы используется.


        1. Teon_501 Автор
          03.07.2023 18:25

          Очень хорошо, а вот с Yandex были проблемы, у одного из получателей (одна довольно крупная нефтенная компания), никак не хотела получать письмо именно от яндекса и именно от почтового домена, но если отправка была от учетки типа mail@yandex.ru, то все приходило. Как оказалось была проблема в неверной настройке DNS


          1. oller
            03.07.2023 18:25
            +2

            Неверную настройку сделать в Яндекс ещё умудриться нужно, а свой почтовик это сотни настроек и схем и после этого все равно в спам кладется, проходя все проверки, просто по внутренним алгоритмам, чаще всего этот алгоритм сводится к тому что ты новый ip адрес с всего месячной давности существования. И кладет в один ящик спам во второй не спам, хоть чё делай.

            Отправьте за день 20-100 писем на yahoo при любых своих навороченных настройках;)

            Свою систему всегда нужно развивать и поддерживать, бороться с вирусами и спамом и т.д не говоря про обновления.

            Вашу статью надо было назвать аналог zimbra и привести примеры плюсов и минусов, а вы написали статью из 90х для тех кто не понимая вводит команды получая неизвестно что


      1. avelor
        03.07.2023 18:25

        Rbl фу. Имхо их можно использовать только для увеличения скора в байесовской системе. Ну и как условно-коробочное решение неплох proxmox mail gateway - желательно к нему только движок антивируса повеселее прикрутить


    1. PereslavlFoto
      03.07.2023 18:25
      +1

      сделать так чтобы с него письма везде доходили

      Провайдерский релей.

      спам не доходил

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


      1. xSVPx
        03.07.2023 18:25

        Релей штука такая. Амазоновский ses к примеру очень не любит попыток отправки по несуществующим адресам. Абсолютно непонятно как с помощью него обрабатывать формы подтверждения регистрации, в которые спамботы пишут несуществующие адреса.

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


  1. PereslavlFoto
    03.07.2023 18:25

    Какова итоговая стоимость этого решения? Сколько заказчик заплатил за всё это?


    1. Teon_501 Автор
      03.07.2023 18:25
      +1

      Точную сумму разглашать не буду, но эквивалент месячной стоимости 50 пользователей yandex. Аппаратные ресурсы предоставлены заказчиком.


      1. PereslavlFoto
        03.07.2023 18:25
        +1

        Аппаратные ресурсы предоставлены заказчиком.

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

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


      1. Yumado
        03.07.2023 18:25

        50*200, да ладно пусть будет 50*400. 20 000 руб.

        нде. без сопровождения работать не будет. так что плюс еще регулярные расходы на тех поддержку.


  1. scruff
    03.07.2023 18:25

    Почему не рассмотрели round-cube?


    1. Teon_501 Автор
      03.07.2023 18:25

      kolab использует roundcube как web интерфейс


  1. shachneff
    03.07.2023 18:25

    Какая своевременная тема. Коллеги, ищу готовое или около того решение: свой почтовый сервак, исключительно для внутренних нужд и специфичного взаимодействия с 5ю контрагентами. Фича: у юзеров нет доступа ни веб, ни imap/pop/smtp. Все сообющения на их адрес доставляются ботом в телеграм.

    Исходящей почты нет, саморегистрации нет. Есть получение всех писем от 5 доменов в телегу.

    P.S. давно были у сотовых операторов виртуальные почтовые ящики, написав на которые содержимое приходило в смс


    1. Vizmaros
      03.07.2023 18:25

      У постфик maildir, можно читать файлы и все новые пересылать в телеграм. Разве что с переводом из base64 проблемы возникнут.


    1. mfc166
      03.07.2023 18:25

      Я использую iRedMail вот уже больше года. Очень доволен.


  1. Johan_Palych
    03.07.2023 18:25

    Предустановка:
    FQDN в /etc/hostname
    389 Directory Server - hostname resolve (запись в DNS и/или в /etc/hosts)

    Не стоит использовать apt-key add - Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)
    "Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))
    The apt-key man page mentions that the "use of apt-key is deprecated, except
    for the use of apt-key del in maintainer scripts to remove existing keys from the main keyring.
    What's more, "apt-key will last be available in Debian 11 and Ubuntu 22.04."

    Рабочий вариант:

    sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release
    wget -q -O- https://ssl.kolabsys.com/community.asc | sudo gpg --yes --dearmor --output /etc/apt/trusted.gpg.d/kolab.gpg

    Добавляем репу одной командой:

    sudo tee /etc/apt/sources.list.d/kolab.list <<EOF
    deb https://mirror.apheleia-it.ch/repos/Kolab:/16/Debian_11.0/ ./
    # deb-src https://mirror.apheleia-it.ch/repos/Kolab:/16/Debian_11.0/ ./
    EOF

    Приоритетет установки:

    sudo tee /etc/apt/preferences.d/kolab.pref <<EOF
    Package: *
    Pin: origin mirror.apheleia-it.ch
    Pin-Priority: 501
    EOF


  1. MaxStirlits
    03.07.2023 18:25

    Зачем столько сложностей если есть communigatepro, всё что нужно и ещё много чего из коробки и без танцев на статью на хабре?


  1. camojiet
    03.07.2023 18:25

    Шалом православные!
    Самый лучший бесплатный почтовый комбайн, который я встречал - это mailcow.
    Всё есть, работает из коробки. Раньше настраивал руками exim + dovecot + roundcube, тратил кучу времени на борьбу со спамом, обновление. Вспоминаю как страшный сон. Для небольшой компании - самое то.


  1. crazybomex
    03.07.2023 18:25

    Здравствуйте, хочу уточнить у Вас один вопрос.

    Поликлиника частная или гос?