Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Zimbra

8 постов сначала свежее
7
Вопрос из ленты «Эксперты»
colorblind
colorblind
4 месяца назад
Лига Сисадминов

Проблема ротации логов в Zimbra⁠⁠

Доброго времени суток, господа. Столкнулся со следующей проблемой:

Почтовый сервер Zimbra. Интересующий лог файл: audit.log. Его ротация происходит при помощи log4j из комплекта почтовика. Вот дефолтный конфиг:

/opt/zimbra/conf/log4j.properties

# Appender AUDIT writes to the file "audit.log".

log4j.appender.AUDIT=org.apache.log4j.rolling.RollingFileAppender

log4j.appender.AUDIT.RollingPolicy=org.apache.log4j.rolling.TimeBasedRollingPolicy

log4j.appender.AUDIT.RollingPolicy.FileNamePattern=/opt/zimbra/log/audit.log.%d{yyyy-MM-dd}

log4j.appender.AUDIT.File=/opt/zimbra/log/audit.log

log4j.appender.AUDIT.layout=com.zimbra.common.util.ZimbraPatternLayout

log4j.appender.AUDIT.layout.ConversionPattern=%d %-5p [%t] [%z] %c{1} - %m%n

Для работы с данным логом я написал небольшой баш скрипт, который отлавливает сообщения о неудачной попытке авторизации и отправляет их мне в ТГ:

#!/bin/bash

logfile="/opt/zimbra/log/audit.log"

tail -f "$logfile" | while IFS= read -r line; do

if [[ "$line" == *"error=authentication failed for"* ]]; then

...

<разные действия + отправка в ТГ>

...

fi

done

Проблема заключается, как я понял, в том, что во время ротации файлов, log4j переименовывает текущий audit.log в audit.log.%d{yyyy-MM-dd}, затем создает новый файл с именем audit.log и пишет новые события туда. Поскольку создается новый файл, то соответственно и меняется его дескриптор, tail же висит на старом файле, со старым дескриптором и после 12 ночи перестает получать новые события. Как можно обойти данный момент? Есть ли в log4j что-то вроде опции truncate из logrotate, которая не создавала бы новый файл, а копировала текущий и затем очищала его, дабы дескриптор не изменился и tail продолжил работать?

Буду благодарен за ответы.

P.S.: не хотелось бы использовать костыльные методы а-ля перезапуск скрипта и т.д.

Показать полностью
Компьютерная помощь Linux Вопрос Zimbra Хвост Спроси Пикабу Текст
5
41
colorblind
colorblind
10 месяцев назад
Лига Сисадминов

Установка Let's Encrypt SSL сертификата в Zimbra [2024]⁠⁠

На сайте с вики зимбры есть отличный гайд https://wiki.zimbra.com/wiki/Installing_a_LetsEncrypt_SSL_Ce...

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

Имеем: Zimbra Collaboration Suite 8.7.10 GA 1829 на базе Ubuntu Server 16

Дистрибутив уже пропал в ссылках на офф. сайте, но его можно загуглить по: zcs-8.7.10_GA_1829.UBUNTU16_64.20170524161336.tgz

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

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

Из гайда:

apt install -y python3 python3-venv libaugeas0

Там этот вариант не подходит, используем:

add-apt-repository ppa:deadsnakes/ppa

apt update

apt install -y python3.8 python3.8-venv libaugeas0

update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

Для проверки, мало ли:

python3 -V

Должны увидеть: Python 3.8.1

Почему именно 3.8? Потому что во-первых на самых свежих версиях питона у меня ничего не взлетело, а во-вторых потому что на данной версии все отработало как нужно)

Далее из гайда:

ln -s /opt/certbot/bin/certbot /usr/local/sbin/certbot

/usr/local/sbin/certbot certonly -d $(hostname --fqdn) --standalone --preferred-chain "ISRG Root X2" --agree-tos --register-unsafely-without-email

И работать это у нас не будет! pyopenssl 23.2.0, который идет в комплекте, не подходит для certbot'a.

Поэтому сначала делаем:

/opt/certbot/bin/pip install -U "pyopenssl==23.1.0"

Далее, при выполнении скрипта из crontab:

/etc/cron.daily/letsencrypt-zimbra

не пройдет верификация сертификата из-за устаревших корневых сертификатов. Лечится это следующим образом:

wget -O /tmp/ISRG-X1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt

cat /tmp/ISRG-X1.pem >> /etc/letsencrypt/live/$(hostname --fqdn)/chain.pem

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

/etc/cron.daily/letsencrypt-zimbra

Вот и все. Не забываем рестартнуть сервер:

su zimbra -c '/opt/zimbra/bin/zmcontrol restart'

И радуемся полученному результату.

P.S.: надеюсь заметки из данного поста пригодятся хотя бы одному человеку. Тогда эта простыня текста будет не напрасной.

Показать полностью
[моё] Инструкция Linux Zimbra Lets encrypt Ubuntu Текст
16
12
colorblind
colorblind
2 года назад
GNU/Linux

Ubuntu 12.04.5 + Zimbra 8.7.10⁠⁠

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

Имеется указанный в заголовке сервер, хочу обновить систему с целью обновления zimbra.

root@mailserver:~# lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 12.04.5 LTS

Release: 12.04

Codename: precise

В /etc/apt/sources.list имеем следующее:

deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted

deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted

deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted

deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted

deb http://old-releases.ubuntu.com/ubuntu/ precise universe

deb-src http://old-releases.ubuntu.com/ubuntu/ precise universe

deb http://old-releases.ubuntu.com/ubuntu/ precise-updates universe

deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates universe

deb http://old-releases.ubuntu.com/ubuntu/ precise multiverse

deb-src http://old-releases.ubuntu.com/ubuntu/ precise multiverse

deb http://old-releases.ubuntu.com/ubuntu/ precise-updates multiverse

deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates multiverse

deb http://old-releases.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

deb-src http://old-releases.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://old-releases.ubuntu.com/ubuntu precise-security main restricted

deb-src http://old-releases.ubuntu.com/ubuntu precise-security main restricted

deb http://old-releases.ubuntu.com/ubuntu precise-security universe

deb-src http://old-releases.ubuntu.com/ubuntu precise-security universe

deb http://old-releases.ubuntu.com/ubuntu precise-security multiverse

deb-src http://old-releases.ubuntu.com/ubuntu precise-security multiverse

Выполнение apt-get update сообщает следующее:

W: Не удалось получить https://repo.zimbra.com/apt/87/dists/precise/zimbra/sourc e/Sources gnutls_handshake() failed: Был принят TLS пакет с неожиданной длиной.

W: Не удалось получить https://repo.zimbra.com/apt/87/dists/precise/zimbra/binar y-amd64/Packages gnutls_handshake() failed: Был принят TLS пакет с неожиданной длиной.

E: Некоторые индексные файлы не скачались. Они были проигнорированы или вместо н их были использованы старые версии.

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

root@mailserver:~# apt-get upgrade

Чтение списков пакетов… Готово

Построение дерева зависимостей

Чтение информации о состоянии… Готово

Пакеты, которые будут оставлены в неизменном виде:

landscape-common

обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.

Все компоненты обновлены, на сколько это возможно.

Далее начинается самое интересное. При попытке сделать do-release-upgrade получаю следующую ошибку:

root@mailserver:~# do-release-upgrade

Проверка наличия нового релиза Ubuntu

Ваша версия Ubuntu больше не поддерживается.

Traceback (most recent call last):

File "/usr/bin/do-release-upgrade", line 97, in <module>

"%(url)s\n") % { 'url' : url }

ValueError: unsupported format character '

' (0xa) at index 97

По сути, это незначительная проблема и в файле /usr/bin/do-release-upgrade можно закоментировать строку с выводом на экран URL'a для обновления. Тогда обновление пойдет дальше, НО!

1) Я ставил чистую Ubuntu 12.04.5, менял sources.list как выше, обновлялся и при выполнении do-release-upgrade не возникало ошибки с выводом URL

2) Система нормально обновлялась до 14 версии

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

Чтение списков пакетов... Выполнено

Построение дерева зависимостей

Чтение информации о состоянии... Выполнено

Построение структуры данных... Выполнено

Обновление информации о репозитории

В таком состоянии сервер может висеть часами. Хотя аналогичная чистая система пролетала этот шаг за секунды.

Ну и собственно самый главный вопрос: Как быть и что с этим делать?

P.S.: Я понимаю, что самый нормальный вариант - это установить чистую систему последней версии и там развернуть Zimbra последней версии, но такой возможности нет, т.к. почтовый сервер всего один, никакой репликации нет, а перенести пользовательские данные на новый не представляется возможным по ряду причин, включая большое количество ящиков с корреспонденцией за несколько лет.

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

Показать полностью
IT Linux Zimbra Компьютерная помощь Длиннопост Текст
14
6
krashow
2 года назад

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 3⁠⁠

Disclaimer
Я не претендую на истину в последней инстанции, выбор есть, и не маленький, можно хоть на голом postfix+postfix-admin+roundcube поднять, dovecot или mailcow. Каждый выбирает тот набор продуктов, какой он захочет.

Создание учётных записей

После установки и настройки необходимо добавить домен, по которому будет ходить почта. Браузером заходим на https://IP:7071 и вводим логин admin и пароль, который указывали при установке.

Т.к. при установке мы не меняли домен, то необходимо добавить нужный. Заходим в Настройки – Домены. В правой части кликаем по шестерёнке и Создать. Задаём Имя домена – example.org, нажимаем Далее. В следующем окне выбираем сервер mail.example.org и нажимаем Готово.

Теперь меняем домен по умолчанию. Идём в Настройка – Глобальные настройки. Меняем Домен по умолчанию на example.org и нажимаем Сохранить.

Теперь создаём почтовые ящики. Идём Управление – Учётные записи, в правой части кликаем по шестерёнке и Создать. Задаём имя учётной записи и имя пользователя. Опускаемся чуть ниже и в поле Пароль задаём пароль и его подтверждение. Если необходимо, можно поставить галочку «Требуется сменить пароль», тогда, при первом входе пользователя, Zimbra потребует сменить пароль. При необходимости, чуть выше, в поле «Установка учётной записи», можно назначить пользователя Администратором, для этого ставим галочку «Глобальный администратор».

Таким образом создаём нужное количество ящиков и пользуемся почтовым сервером

Перенос писем

Тут есть два варианта - imapsync и перенос руками через почтовый клиент типа Thunderbird. Тут у меня провал в знаниях, ибо всем клиентам, кому я переносил почту, на архив было по барабану и временно оставили доступ к Яндекс.Почте со всем архивом писем, благо за это Яндекс деньги не берёт

Показать полностью
[моё] Linux Почтовый сервер Яндекс Почта Zimbra Текст
8
18
krashow
2 года назад

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 2⁠⁠

Disclaimer
Я не претендую на истину в последней инстанции, выбор есть, и не маленький, можно хоть на голом postfix+postfix-admin+roundcube поднять, dovecot или mailcow. Каждый выбирает тот набор продуктов, какой он захочет.

Подготовка

Продолжаем устанавливать. Теперь ставим сам почтовый сервер – Zimbra. Он поддерживает RHEL-подобные системы 7 и 8 версии, а также Ubuntu LTS от 16.04 до 20.04. Я рассмотрю установку на Rocky Linux 8. Во время установки ОС надо обратить внимание на 2 вещи – корректный часовой пояс и включенную синхронизацию времени. Если Вы ошиблись с часовым поясом, то исправим его:

timedatectl set-timezone Asia/Krasnoyarsk

В данном случае мы задали Красноярское время.
Проверяем статус утилиты синхронизации времени:

systemctl status chronyd

Если она не запущена, то запускаем:

systemctl enable chronyd --now

Если не установлена, то устанавливаем и запускаем:

yum install chrony
systemctl enable chronyd --now

Если Вы решили использовать RHEL-подобную систему, то рекомендуется отключить SELinux. Для этого используем две команды:

setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

Для своей работы Zimbra OSE использует следующие порты:
25 — основной порт для обмена почтой по протоколу SMTP
80 — веб-интерфейс для чтения почты (http)
443 — SSL веб-интерфейс для чтения почты (https)
465 — безопасный SMTP для отправки почты с почтового клиента
993 — SSL IMAP для работы с почтовым ящиком с помощью клиента
995 — SSL POP3 для загрузки почты
7071 — для защищенного доступа к администраторской консоли
Т.к. у нас Zimbra будет работать в связке с PMG, то 25 порт заменится на 26.

Если Zimbra стоит за NAT’ом, то рекомендую не прокидывать порт 7071, а использовать его только внутри сети. Так безопаснее. В любом случае, необходимо открыть эти порты в файерволле:

firewall-cmd --permanent --add-port={26,80,443,465,993,995,7071}/tcp

firewall-cmd –reload

Для Zimbra важно, что бы её внешнее имя было прописано локально. Поэтому задаём имя сервера:

hostnamectl set-hostname mail.example.org

Теперь открываем файл hosts:

nano /etc/hosts

И добавляем:

IP_адрес mail.example.org mail

На этом подготовка завершена

Установка Zimbra

Страница загрузки находится по адресу https://www.zimbra.com/downloads/zimbra-collaboration-open-source . Ищем нужную версию и скачиваем дистрибутив на сервер:

wget https://files.zimbra.com/downloads/8.8.15_GA/zcs-8.8.15_GA_4362.RHEL8_64.20220721104405.tgz

Распаковываем скачанный архив:

tar -xzvf zcs-*.tgz

Переходим в каталог:

cd zcs-*/

Запускаем установку:

./install.sh

Появится вопрос о принятии лицензионного соглашения – принимаем:

Do you agree with the terms of the software license agreement? [N] Y

Разрешаем использование репозитория Zimbra:

Use Zimbra's package repository [Y] Y

И соглашаемся на установку всех модулей, кроме zimbra-imapd:

Install zimbra-ldap [Y] Y
Install zimbra-logger [Y] Y
Install zimbra-mta [Y] Y
Install zimbra-dnscache [Y] Y
Install zimbra-snmp [Y] Y
Install zimbra-store [Y] Y
Install zimbra-apache [Y] Y
Install zimbra-spell [Y] Y
Install zimbra-convertd [Y] Y
Install zimbra-memcached [Y] Y
Install zimbra-proxy [Y] Y
Install zimbra-archiving [N] Y
Install zimbra-drive [Y] Y
Install zimbra-imapd (BETA - for evaluation only) [N] N
Install zimbra-network-modules-ng [Y] Y
Install zimbra-talk [Y] Y

Подтверждаем ранее введённые настройки:

The system will be modified. Continue? [N] Y

Начался процесс установки, ждём окончания.

Если Ваш сервер находится за NAT или Вы ещё не настроили домен, то появился сообщение, что нет записи MX:

It is suggested that the domain name have an MX record configured in DNS

Просто игнорируем его.

Установщик предложит поменять домен – не соглашаемся

Change domain name? [Yes] No

Далее установщик покажет меню настройки. Нас интересует строка Admin Password UNSET. Вводим 7, затем 4 и устанавливаем пароль администратора. Затем выходим из меню (r) и применяем настройки (a).

Сохраняем конфигурацию:

Save configuration data to a file? [Yes] Y

The system will be modified - continue? [No] Y

И ждём окончания установки. На запрос отправки уведомления об установке отвечаем по своему усмотрению (по умолчанию Да)

Notify Zimbra of your installation? [Yes]

В конце концов всё установится, и просто нажимаем Enter

Configuration complete - press return to exit

Установщик меняет пароль root, поэтому необходимо изменить его обратно:

passwd root

Небольшая донастройка

Вместе с Zimbra поставился пакет dnscache, установщик меняет DNS-сервера в сервере и перестаёт работать разрешение DNS имён. Исправим это. Для начала посмотрим, какой мастер DNS прописан в конфигурации:

su - zimbra -c "zmprov getServer 'mail.example.org' | grep DNSMasterIP"

В моём случае последний октет разный, пусть будет 127.0.0.48:

zimbraDNSMasterIP: 127.0.0.48

Удаляем данную запись:

su - zimbra -c "zmprov ms 'mail.example.org' -zimbraDNSMasterIP 127.0.0.48"

И добавляем свои DNS сервера:

su - zimbra -c "zmprov ms 'mail.example.org' +zimbraDNSMasterIP  IP_адрес"

Если сервер находится за NAT, то после настройки сервер не сможет принимать почту, а в логах можно увидеть ошибку delivery temporarily suspended: connect to 7025: Connection refused). Это происходит из-за попытки передать письмо из очереди в ящик по внешнему порту 7025, который недоступен из-за NAT. Исправим это:

su - zimbra -c "zmprov ms mail.example.org zimbraMtaLmtpHostLookup native"

su - zimbra -c "zmprov mcf zimbraMtaLmtpHostLookup native"

Т.к. Zimbra работает в связке с PMG, то добавим для SMTP 26 порт:

nano /opt/zimbra/common/conf/master.cf.in

И после строки

smtp inet n - n - 1 postscreen

Добавляем строку

26 inet n - n - - smtpd

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

su - zimbra -c "zmmtactl restart"

SSL сертификат Let’s Encrypt

Без этого сертификата не будут работать почтовые клиенты, а также, при входе через WEB, будет выскакивать назойливое сообщение о небезопасном подключении. Так приступим же к установке!

yum install certbot

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

certbot certonly --dry-run --standalone -d mail.example.org

Если всё хорошо и ошибок нет, то выпускаем сертификат:

certbot certonly --standalone -d mail.example.org

В процессе будет запрошен e-mail администратора и два вопроса:
1) О согласии с лицензионным соглашением
2) О предоставлении своего почтового ящика для рассылки
Соглашаться ли со вторым пунктом – дело Ваше

После выпуска сертификата переходим в каталог Let’s Encrypt с Вашим доменом, качаем корневые сертификаты и формируем корректную цепочку, что бы Zimbra её приняла:

cd /etc/letsencrypt/live/mail.example.org/
wget -4 -O /etc/letsencrypt/live/mail.example.org/isrgrootx1.pem https://letsencrypt.org/certs/isrgrootx1.pem.txt
wget -4 -O /etc/letsencrypt/live/mail.example.org/letsencryptauthorityx3.pem https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt
cat /etc/letsencrypt/live/mail.example.org/isrgrootx1.pem > /etc/letsencrypt/live/mail.example.org/zimbra_chain.pem
cat /etc/letsencrypt/live/mail.example.org/letsencryptauthorityx3.pem >> /etc/letsencrypt/live/mail.example.org/zimbra_chain.pem
cat /etc/letsencrypt/live/mail.example.org/chain.pem >> /etc/letsencrypt/live/$DOMAIN/zimbra_chain.pem

Создадим папку letsencrypt в структуре каталогов Zimbra и скопируем туда полученные сертификаты:

mkdir /opt/zimbra/ssl/letsencrypt

cp /etc/letsencrypt/live/mail.example.org/* /opt/zimbra/ssl/letsencrypt/

Назначим права на эти файлы и проведем верификацию:

chown zimbra:zimbra -R /opt/zimbra/ssl/letsencrypt

su - zimbra -c "zmcertmgr verifycrt comm /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/zimbra_chain.pem"

Успешный вывод:

** Verifying '/opt/zimbra/ssl/letsencrypt/cert.pem' against '/opt/zimbra/ssl/letsencrypt/privkey.pem'

Certificate '/opt/zimbra/ssl/letsencrypt/cert.pem' and private key '/opt/zimbra/ssl/letsencrypt/privkey.pem' match.

** Verifying '/opt/zimbra/ssl/letsencrypt/cert.pem' against '/opt/zimbra/ssl/letsencrypt/zimbra_chain.pem'

Valid certificate chain: /opt/zimbra/ssl/letsencrypt/cert1.pem: OK

Переименовываем закрытый ключ, перемещаем в каталог коммерческих сертификатов, выполняем установку и перезапускаем службы Zimbra:

mv /opt/zimbra/ssl/letsencrypt/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key

su - zimbra -c "zmcertmgr deploycrt comm /opt/zimbra/ssl/letsencrypt/cert.pem /opt/zimbra/ssl/letsencrypt/zimbra_chain.pem"

su - zimbra -c "zmcontrol restart"

Данный сертификат выпускается на 3 месяца. В последние дни сертификата его необходимо перевыпустить:

certbot renew

После чего повторяем все шаги, начиная с «После выпуска сертификата переходим в каталог Let’s Encrypt»

На этом установка Zimbra завершена

Показать полностью
[моё] Linux Почтовый сервер Яндекс Почта Zimbra Длиннопост Текст
8
32
krashow
2 года назад

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 1⁠⁠

Disclaimer
Я не претендую на истину в последней инстанции, выбор есть, и не маленький, можно хоть на голом postfix+postfix-admin+roundcube поднять, dovecot или mailcow. Каждый выбирает тот набор продуктов, какой он захочет.

Вступление

Итак, раз обещал инструкцию по относительно простому развёртыванию почтового сервера, то надо исполнять. Статья получилась длинной, так что пришлось разбить на 3 части. Выбор мой пал на Zimbra 8 OSE, потому что ранее уже работал с ним, достался в наследство от прошлого системного администратора у одного из клиентов. Да, последняя версия 8.8.15 и больше выпускать не будут, но есть форк – Carbonio, но он пока не совсем стабильный и использовать полусырой продукт в продакшне не очень-то и хочется. Надеюсь, за пару лет его хорошо допилят и можно будет переезжать на него.

Перед Zimbr’ой было решено поставить Proxmox Mail Gateway – у него более продвинутый антиспам с кучей настроек, из коробки есть TLS и DKIM, да и в целом более современный продукт защиты почтового сервера.

Весь этот набор я, обычно, ставлю на Proxmox VE – гипервизор, в котором создаю 2 виртуалки, одну для Zimbr’ы, вторую для PMG. Во первых, не надо плодить лишнего железа, а во вторых будет проще перенести виртуалки на другой сервер, если с железом что-то случится, чем заново всё поднимать и раскатывать из бэкапов. Ну и сами бэкапы виртуалок тоже просто делать, буквально пару кликов мышки.

Весь этот набор, на одной из последних инсталляций, крутится на HP Proliant DL320 G6 с процессором Intel Xeon E5630 и 32 GB RAM с 50 средне-активными ящиками, примерно по 30 писем в день на каждом. Для PMG выдано 4 потока процессора и 4 GB RAM, для Zimbra 4 потока и 8 GB RAM. В принципе, хватает. И да, я знаю, что сервер старый. Все риски с заказчиком проговорили, таков путь его бюджет.

Как ставить PVE и PMG есть куча статей в инете, здесь я расскажу про настройку PMG, установку и настройку Zimbra, а так же настройку домена.

Самое главное – у почтового сервера должен быть белый IP-адрес. Сервер не обязательно должен смотреть напрямую в интернет, можно через роутер пустить, но тогда необходимо прокинуть порты на него.

Настройка домена

Для начала определимся в типах записи домена

А – служит для преобразования имени хоста в IP-адрес
MX – определяет, на каком хосте находится почтовый сервер, а так же порядок его использования
TXT – общая текстовая информация, в данном случае служит для настройки записей SPF, DMARC и DKIM
PTR – обратная запись DNS. Служит для проверки нахождения почтового сервера на конкретном IP-адресе
SPF – служит для проверки, с каких почтовых серверов разрешена отправка писем
DMARC – указывает, что делать с письмами, если записи SPF и DKIM окажутся некорректными
DKIM – служит для подписания писем закрытым ключом, таким образом, сервер-получатель знает, что письмо отправлено именно с Вашего почтового сервера, а не с фишингового.

Наш почтовый сервер будет иметь домен mail.example.org. Для начала, необходимо запросить у провайдера/хостера (смотря где находится сервер) прописать PTR-запись на Ваш IP-адрес вида mail.example.org
Затем идём в управление DNS-зонами домена (если используете DNS регистратора) и добавляем следующие записи:

1) Создаём домен mail.example.org, делаем запись типа А с IP-адресом сервера.
2) Переходим в домен example.org, добавляем записи MX с приоритетом 10 и адресом mail.example.org и TXT запись со значением v=spf1 mx –all.
3) Создаём домен _dmarc.example.org и добавляем туда TXT запись со значением v=DMARC1; p=none

Обновление DNS-записей домена может доходить до суток, но на моей практике всё обновлялось в течении 30 минут.

PMG

После установки PMG заходим по SSH и, первым делом, отключаем коммерческий репозиторий и добавляем бесплатный:

rm /etc/apt/sources.list.d/pmg-enterprise.list
touch /etc/apt/sources.list.d/pmg-no-subscription.list

Заходим в pmg-no-subscription.list:

nano /etc/apt/sources.list.d/pmg-no-subscription.list

И добавляем репозиторий:

deb http://download.proxmox.com/debian/pmg bullseye pmg-no-subscription

Выходим с сохранением (Ctrl+X) и обновляем систему:

apt update && apt upgrade –y

Если в списке обновляемых файлов было ядро (pve-kernel-*), то перезагружаем PMG после обновления, что бы он загрузился на новом ядре:

reboot

Проверяем, что бы имя сервера соответствовало его локальному IP-адресу

nano /etc/hosts

В этом файле должна быть запись вида IP_адрес mail-gw.example.org mail-gw, при этом IP_адрес НЕ 127.0.0.1.

После всех описанных процедур заходим браузером на https://ip:8006 и вводим логин-пароль, который указали при установке

Идём во вкладку Configuration-Network/Timeи, при необходимости, правим часовой пояс, время и настройки DNS

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 1 Linux, Почтовый сервер, Яндекс Почта, Zimbra, Длиннопост

Затем идём в Options и правим настройки отчётов

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 1 Linux, Почтовый сервер, Яндекс Почта, Zimbra, Длиннопост

А теперь переходим к настройке самого релея. Идём в Configuration – Mail Proxy и указываем в поле Default Relay адрес почтового сервера, на который PMG будет пересылать всю почту

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 1 Linux, Почтовый сервер, Яндекс Почта, Zimbra, Длиннопост

Далее в Relay Domains указываем, какие домены будет обслуживать PMG и почтовый сервер. Это один из этапов защиты, если не указать домен, то письма будут автоматически отбрасываться.
Во вкладке Ports указываем наружный и внутренний SMTP порты. Советую оставить по умолчанию, далее в Zimbra заменим порт SMTP на 26.
Во вкладке Options я, как правило, правлю 3 пункта – Message Size (размер письма, ставлю 50 мбайт), Use SPF = yes (SPF-запись нужна для настройки домена, что бы другие почтовые сервера понимали, с каких серверов для этого домена разрешена отправка писем) и SMTPD Banner (что бы при приветствии сервера по SMTP протоколу не палиться, что это PMG).

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 1 Linux, Почтовый сервер, Яндекс Почта, Zimbra, Длиннопост

Далее – DKIM. Включаем подпись DKIM, указываем селектор и говорим, что необходимо подписывать все исходящие письма DKIM-ключом

Переезжаем с Яндекс.Почты на свой почтовый сервер. Часть 1 Linux, Почтовый сервер, Яндекс Почта, Zimbra, Длиннопост

Затем, чуть ниже в Sign Domains добавляем домен example.org.
Затем идём в генератор DKIM (например, https://2ip.ru/dkim), задаём имя домена example.org, селектор mail и размер ключа (2048). Получаем три записи – Private Key, Public Key и TXT-запись в домен. Если присмотреться, то увидите, что в TXT записи есть пробелы – это нормально, так и должно быть. Опять идём в управление DNS-зонами домена и добавляем домен mail._domainkey.example.org, создаём в нём TXT запись и вставляем всё, что окажется в поле «TXT запись», начиная с V=DKIM и до конца, исключая кавычки. Для проверки, что DKIM-запись в домене появилась и она правильная, идём на сервис проверки DKIM (например, https://dmarcian.com/dkim-inspector), прописываем имя домена, селектор и нажимаем «Inspect DKIM». Если запись правильная, то появится надпись «Congratulations! Your DKIM record is valid».
Затем подключаемся по SSH к PMG и открываем файл /etc/pmg/dkim/mail.private

nano /etc/pmg/dkim/mail.private

Удаляем всё содержимое и вставляем с поля «Приватный ключ» с сайта 2ip.ru.

Может возникнуть вопрос – а зачем было менять ключ, если он есть, почему нельзя было его скопировать в DNS-запись? Отвечаю – отсутствие пробелов в нужных местах. В DNS родная запись PMG будет выглядеть одной строкой, и такая запись будет невалидна из-за своей длины.

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

SMTP_HELO

SMTP_HELO - это приветствие между почтовыми серверами. Сервер должен представляться своим почтовым доменом (в нашем случае mail.example.org), однако PMG подставляет туда своё локальное имя (в моём случае mail-gw.example.local). Исправим это.

Проверяем, что существует папка /etc/pmg/templates. Если нет, то создадим её

mkdir /etc/pmg/templates

Копируем шаблон настроек и открываем в редакторе

cp /var/lib/pmg/templates/main.cf.in /etc/pmg/templates/main.cf.in

nano /etc/pmg/templates/main.cf.in

Находим строку smtpd_banner = $myhostname [% pmg.mail.banner %] и меняем $myhostname на mail.example.org
Ищем строку biff = no и, после неё, добавляем строку smtp_helo_name = mail.example.org

Затем перезагружаем PMG, что бы он принял конфиг

pmgconfig sync --restart 1

RAR архивы

Изначально PMG не может просканировать RAR архивы во вложениях на предмет вирусов. Исправим это

Добавим non-free репозитории. Открываем на редактирование sources.list

nano /etc/apt/sources.list

И приводим содержимое к следующему виду:

deb http://deb.debian.org/debian bullseye main contrib non-free
deb-src http://deb.debian.org/debian bullseye main contrib non-free
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
deb-src http://deb.debian.org/debian bullseye-updates main contrib non-free

После чего устанавливаем пакеты

apt update && apt install libclamunrar p7zip-rar

Готово, теперь PMG сможет сканировать RAR архивы

Ошибка SPF-записи

Если PMG использует DNS сервера внутри сети, то может происходить следующее - иногда сервера получателей не могут проверить SPF запись и не принимают письмо, хотя сама SPF запись есть и настроена корректна. Этот момент не всегда очевиден и легко пропустить в логах. Решение простое - добавить SPF запись на локальном DNS сервере. Если PMG использует внешние публичные DNS-сервера, то такой проблемы нет.

На этом настройка PMG закончена, можно приступать к установке и настройке Zimbra

Показать полностью 5
[моё] Linux Почтовый сервер Яндекс Почта Zimbra Длиннопост
12
NorthMambus
NorthMambus
2 года назад

Почтовый сервер Zimbra⁠⁠

Добрый день пикабутяне. Есть почтовый сервер Zimbta версия 8, который крутится на 16 убунте. Так вот, придя утром рано обнаружил в сообщениях почты Missing Blob for item.

Гуглил, пробовал. Возможность восстановить упирается в отсутствующий параметр hsm. То есть по нагугленному мануалу нужно прописать команду, а в ответ: Invalid parametr hsm. Кто сталкивался, что можно сделать? Ну кроме как накатить бэкап, иначе за два дня переписка всех отделов тупо пропадёт, а не хотелось бы

Помощь Zimbra Ubuntu Текст
14
24
specx1989
specx1989
3 года назад

Почтовый сервер Zimbra и антивирус ClamAV (после блокировки из России)⁠⁠

Наверняка у многих сисадминов из РФ всплыла проблема с отказом антивируса ClamAV работающим в связке с почтовым сервером Zimbra. Набросал краткий мануал.


Так как Clamav принадлежит по факту корпорации Cisco, то достучаться из Россия уже просто не получится (по состоянию на 16.03.2022)


Будем использовать tor-прокси (в связке TOR+Privoxy) . В моем случае все крутится в отдельном крошечном lxc ( вы можете вынести на отдельный vds вне корп сети, как угодно. Но самом почтовике делать явно не стоит)


Вносим изменения в:

/opt/zimbra/conf/freshclam.conf.in


Необходимо в раскомментировать и поправить :


HTTPProxyServer **.**.**.** # Адрес прокси-сервера

HTTPProxyPort 8446 # порт прокси-сервера (стандартный 8118)


Под zimbra делаем полный рестарт антивируса :


zmantivirusctl restart


Проверяем:

$ zmantivirusctl status

antivirus is running


--

+

Если у вас ещё не настроен TOR + Privoxy


Берём виртуалку  (в моём случае lxc с ubuntu 20.04 lts)


Ставим TOR


apt-get install tor

Ставим прокси-сервер Privoxy

apt-get install tor privoxy


Открываем конфиг

nano /etc/privoxy/config

И добавляем в конфиг строку:


forward-socks4a / localhost:9050 . (точка обязательна!)

Также можно изменить стандартный порт на другой

listen-address 192.168.1.55:8118 (в моём примере 8446)


Сохраняем и стартуем всё

service tor start

service privoxy start

Почтовый сервер Zimbra и антивирус ClamAV (после блокировки из России) IT, Будни сисадмина, Длиннопост, Zimbra
Показать полностью 1
[моё] IT Будни сисадмина Длиннопост Zimbra
20
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии