|
|
Строка 1: |
Строка 1: |
| После установки на сервер CentOS 7 (Minimal) (x86_64) 8Gb RAM, 4 CPU, 50Gb SSD, приступаем к подготовке сервера.
| | [[Установка и настройка почтового сервера Zimbra 9.0 на CentOS 7]] |
| === Подготовка сервера ===
| |
| <pre>
| |
| yum update -y
| |
| yum install epel-release wget nano mc zip unzip net-tools nfs-utils bind-utils -y
| |
| yum install libreoffice libreoffice-headless htop open-vm-tools hostname -y
| |
| </pre>
| |
|
| |
|
| <pre>
| | [[Установка и настройка «1С-Битрикс: Веб-окружение» на CentOS 7]] |
| systemctl stop postfix
| |
| systemctl disable postfix
| |
| </pre>
| |
|
| |
|
| === Настройка времени ===
| | [[Установка и настройка WEB сервера NGINX + Apache (httpd) + MariaDB (MySQL) + PHP + PHP-FPM (fastCGI) + FTP + PHPMyAdmin + Memcached + Postfix на CentOS 7]] |
|
| |
|
| Устанавливаем корректный часовой пояс:
| | [[Установка и настройка WEB сервера NGINX + Apache (httpd) + MariaDB (MySQL) + PHP + PHP-FPM (fastCGI) + FTP + PHPMyAdmin + Memcached + Postfix на CentOS 8]] |
| <pre>
| |
| timedatectl set-timezone Europe/Moscow
| |
| </pre>
| |
| Теперь установим утилиту для синхронизации времени и запустим ее.
| |
| <pre>
| |
| yum install chrony -y
| |
| systemctl enable chronyd --now
| |
| </pre>
| |
|
| |
|
| === Безопасность ===
| | [[Установка и настройка Nginx reverse proxy, web сервер на на CentOS 7]] |
| Если на сервере используется SELinux (по умолчанию, на системах RPM), рекомендуется ее отключить.
| |
| <pre>
| |
| setenforce 0
| |
| sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
| |
| </pre>
| |
| === Брандмауэр ===
| |
| Для нормальной работы Zimbra нужно открыть много портов:
| |
| * 25 — основной порт для обмена почтой по протоколу SMTP.
| |
| * 80 — веб-интерфейс для чтения почты (http).
| |
| * 110 — POP3 для загрузки почты.
| |
| * 143 — IMAP для работы с почтовым ящиком с помощью клиента.
| |
| * 443 — SSL веб-интерфейс для чтения почты (https).
| |
| * 465 — безопасный SMTP для отправки почты с почтового клиента.
| |
| * 587 — SMTP для отправки почты с почтового клиента (submission).
| |
| * 993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
| |
| * 995 — SSL POP3 для загрузки почты.
| |
| * 5222 — для подключения к Zimbra по протоколу XMPP.
| |
| * 5223 — для защищенного подключения к Zimbra по протоколу XMPP.
| |
| * 7071 — для защищенного доступа к администраторской консоли.
| |
| * 8443 — SSL веб-интерфейс для чтения почты (https).
| |
| * 7143 — IMAP для работы с почтовым ящиком с помощью клиента.
| |
| * 7993 — SSL IMAP для работы с почтовым ящиком с помощью клиента.
| |
| * 7110 — POP3 для загрузки почты.
| |
| * 7995 — SSL POP3 для загрузки почты.
| |
| * 9071 — для защищенного подключения к администраторской консоли.
| |
| <pre>
| |
| firewall-cmd --permanent --add-port={25,80,110,143,443,465,587,993,995,5222,5223,9071,7071,8443,7143,7993,7110,7995}/tcp
| |
| firewall-cmd --reload
| |
| </pre>
| |
| В конце установки ZIMBRA почему-то отключается файрволл, так что нужно его запустить и сделать автозапуском!!!
| |
| ------------------------------
| |
| В некоторых системах CentOS может не оказаться firewalld. Для его установки вводим:
| |
| <pre>
| |
| yum install firewalld -y
| |
| </pre>
| |
| Для автоматического запуска вводим:
| |
| <pre>
| |
| systemctl enable firewalld
| |
| </pre>
| |
| И для остановки или запуска службы:
| |
| <pre>
| |
| systemctl stop firewalld
| |
| systemctl start firewalld
| |
| </pre>
| |
| Посмотреть созданные правила:
| |
| <pre>
| |
| firewall-cmd --list-all
| |
| </pre>
| |
| Добавление правило для открытия 80-о порта:
| |
| <pre>
| |
| firewall-cmd --permanent --add-port=80/tcp
| |
| </pre>
| |
| Удалим правило для открытия 80-о порта:
| |
| <pre>
| |
| firewall-cmd --permanent --remove-port=80/tcp
| |
| </pre>
| |
| -------------------------
| |
|
| |
|
| === DNS и имя сервера ===
| | [[Установка и настройка Nginx reverse proxy, web сервер на на CentOS 8]] |
| Для корректной работы почтового сервера необходимо создать mx-записи для домена.
| |
| Но для установки Zimbra важнее, чтобы в локальном файле hosts была запись о нашем сервере, в противном случае, установка прервется с ошибкой. И так, задаем FQDN-имя для сервера:
| |
| <pre>
| |
| hostnamectl set-hostname mail.putyato.ru
| |
| </pre>
| |
| Теперь открываем на редактирование файл:
| |
| <pre>
| |
| nano /etc/hosts
| |
| </pre>
| |
| И добавляем в конец файла:
| |
| <pre>
| |
| 10.7.7.7 mail.putyato.ru mail
| |
| </pre>
| |
| * где 10.7.7.7 — IP-адрес нашего сервера; mail — имя сервера; putyato.ru — наш домен.
| |
|
| |
|
| Проверяем настройку сетевой карты.
| | [[Установка сертификата Let’s Encrypt Nginx в CentOS 7]] |
| Открываем файл конфигурации и убеждаемся, что DNS1 — это DNS приписанный в нашем роутере, у нас он 10.7.7.1.
| |
| <pre>
| |
| cd /etc/sysconfig/network-scripts
| |
| ls
| |
| nano ifcfg-ens192
| |
| cd ~
| |
| </pre>
| |
| Содержание, как показано ниже. Обращаем внимание на DNS1. Если нужно то исправляем. Должно выглядеть как то так.
| |
| <pre>
| |
| TYPE="Ethernet"
| |
| PROXY_METHOD="none"
| |
| BROWSER_ONLY="no"
| |
| BOOTPROTO="none"
| |
| DEFROUTE="yes"
| |
| IPV4_FAILURE_FATAL="yes"
| |
| IPV6INIT="yes"
| |
| IPV6_AUTOCONF="yes"
| |
| IPV6_DEFROUTE="yes"
| |
| IPV6_FAILURE_FATAL="no"
| |
| IPV6_ADDR_GEN_MODE="stable-privacy"
| |
| NAME="ens192"
| |
| UUID="5b830a1e-7aa4-4e06-9790-638b10c6cede"
| |
| DEVICE="ens192"
| |
| ONBOOT="yes"
| |
| IPADDR="10.7.7.7"
| |
| PREFIX="24"
| |
| GATEWAY="10.7.7.25"
| |
| DNS1="10.7.7.1"
| |
| DNS2="8.8.8.8"
| |
| DNS3="8.8.4.4"
| |
| IPV6_PRIVACY="no"
| |
| </pre>
| |
| Затем введите следующую команду, чтобы перезапустить сетевую службу.
| |
| <pre>
| |
| systemctl restart network
| |
| systemctl restart NetworkManager.service
| |
| </pre>
| |
| После перезапуска сетевой службы проверьте /etc/resolv.conf файл, чтобы убедиться, что DNS1 всегда является вашим собственным почтовым сервером.
| |
| <pre>
| |
| cat /etc/resolv.conf
| |
| </pre>
| |
| Должны получить вот такой ответ, если не получили то поправляем этот файл:
| |
| <pre>
| |
| # Generated by NetworkManager
| |
| search putyato.ru
| |
| nameserver 10.7.7.1
| |
| nameserver 8.8.8.8
| |
| nameserver 8.8.4.4
| |
| </pre>
| |
| === Загрузить скрипт автоматической настройки ===
| |
| Этот скрипт автоматически настроит /etc/hosts, имя хоста, создаст локальный DNS с помощью BIND и установит зависимости, необходимые для Zimbra.
| |
| <pre>
| |
| screen -S install-zimbra
| |
| wget -c https://raw.githubusercontent.com/imanudin11/script/master/persiapan-zimbra-centos7.sh
| |
| chmod +x persiapan-zimbra-centos7.sh
| |
| ./persiapan-zimbra-centos7.sh
| |
| </pre>
| |
| или
| |
| <pre>
| |
| cd ~
| |
| wget "https://cloud.putyato.pro/index.php/s/LStD7w4g566a2qn/download/persiapan-zimbra-centos7.sh" --no-check-certificate -O persiapan-zimbra-centos7.sh
| |
| chmod +x persiapan-zimbra-centos7.sh
| |
| ./persiapan-zimbra-centos7.sh
| |
| </pre>
| |
| При запуске сценария вас спросят об имени хоста, домене и IP-адресе почтового сервера. Ниже информация, которую я использовал.
| |
| <pre>
| |
| [INFO] : Configuring /etc/hosts
| |
|
| |
|
| Hostname. Example mail : mail
| | [[Установка сертификата Let’s Encrypt Nginx в CentOS 8]] |
| Domain name. Example imanudin.net : putyato.ru
| |
| IP Address : 10.7.7.7
| |
| </pre>
| |
|
| |
|
| === Загрузка дистрибутива и установка Zimbra ===
| | [[Установка и настройка NextCloud на CentOS 8]] |
| Скачиваем лицензионный дистрибутив ZIMBRA 9.0 с официального сайта. Распаковываем архив.
| |
| <pre>
| |
| cd ~
| |
| wget https://files.zimbra.com/downloads/9.0.0_GA/zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz
| |
| tar -xzvf zcs-*.tgz
| |
| </pre>
| |
| или
| |
| <pre>
| |
| cd ~
| |
| wget "https://cloud.putyato.pro/index.php/s/TkX47w2ggTcZLMT/download/zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz" --no-check-certificate -O zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312.tgz
| |
| tar -xzvf zcs-*.tgz
| |
| </pre>
| |
|
| |
|
| ---------------
| | [[Установка и настройка почтового сервера Postfix с виртуальными доменами, системой управления Dovecot, веб-доступом Roundcube на CentOS 8, 9]] |
| Далее с помощью программы WinSCP (https://winscp.net/eng/download.php) копируем следующие файлы:
| |
| zimbra-license-tools.jar, lic.xml, lic_a.xml в корневую папку root.
| |
| или:
| |
| <pre>
| |
| cd ~
| |
| wget "https://cloud.putyato.pro/index.php/s/jZWMH4nbfcH5Egi/download/lic.xml" --no-check-certificate -O lic.xml
| |
| wget "https://cloud.putyato.pro/index.php/s/JEbd3fNjFcm2xNz/download/lic_a.xml" --no-check-certificate -O lic_a.xml
| |
| wget "https://cloud.putyato.pro/index.php/s/CHQ2FfTdka2Zx4x/download/zimbra-license-tools.jar" --no-check-certificate -O zimbra-license-tools.jar
| |
| </pre>
| |
|
| |
|
| Переписываем содержимое файлов lic.xml, lic_a.xml или создаем свои:
| | [[Установка и настройка Asterisk + FreePBX на CentOS 8]] |
| <pre>
| |
| nano /root/lic.xml
| |
| </pre>
| |
| Вписываем в него следующее содержимое изменив имя почтового сервера и почту админа:
| |
| <pre>
| |
| <?xml version="1.0" encoding="UTF-8"?>
| |
|
| |
|
| <ZimbraLicense verifier="ZV2">
| | [[Установка и настройка личного IM-мессенджера со сквозным шифрованием только для узкого круга людей на CentOS 8]] |
| <item name="AccountsLimit" value="50000"/>
| |
| <item name="ArchivingAccountsLimit" value="50000"/>
| |
| <item name="AttachmentConversionEnabled" value="true"/>
| |
| <item name="AttachmentIndexingAccountsLimit" value="50000"/>
| |
| <item name="BackupEnabled" value="true"/>
| |
| <item name="CrossMailboxSearchEnabled" value="true"/>
| |
| <item name="EwsAccountsLimit" value="50000"/>
| |
| <item name="HierarchicalStorageManagementEnabled" value="true"/>
| |
| <item name="ISyncAccountsLimit" value="50000"/>
| |
| <item name="InstallType" value="perpetual"/>
| |
| <item name="IssuedOn" value="20220807140803Z"/>
| |
| <item name="IssuedToEmail" value="admin@putyato.ru"/>
| |
| <item name="IssuedToName" value="PUTYATO"/>
| |
| <item name="LicenseId" value="151356bf-b539-4c31-aef2-15c6f5e7931b"/>
| |
| <item name="MAPIConnectorAccountsLimit" value="50000"/>
| |
| <item name="MobileSyncAccountsLimit" value="50000"/>
| |
| <item name="MobileSyncEnabled" value="true"/>
| |
| <item name="ResellerName" value="Pavel PUTYATO"/>
| |
| <item name="SMIMEAccountsLimit" value="50000"/>
| |
| <item name="TouchClientsAccountsLimit" value="50000"/>
| |
| <item name="TwoFactorAuthAccountsLimit" value="50000"/>
| |
| <item name="ValidFrom" value="20220807000000Z"/>
| |
| <item name="ValidUntil" value="20991231235959Z"/>
| |
| <item name="VoiceAccountsLimit" value="50000"/>
| |
| <item name="ZSSAccountsLimit" value="50000"/>
| |
| <item name="ZTalkAccountsLimit" value="50000"/>
| |
| <signature value="1" key="myzm"/>
| |
| </ZimbraLicense>
| |
| </pre>
| |
| Далее создаем или редактируем файл lic_a.xml
| |
| <pre>
| |
| nano /root/lic_a.xml
| |
| </pre>
| |
| В дальнейшем в этом файле заменим параметр Fingerprint.
| |
| <pre>
| |
| <?xml version="1.0" encoding="UTF-8"?>
| |
|
| |
|
| <ZimbraLicenseActivation verifier="ZV2">
| | [[Настройка и использование Fail2ban на CentOS]] |
| <item name="ActivationId" value="232cd85f-cbea-4c12-8fde-bee4a40b74ea"/>
| |
| <item name="Fingerprint" value="00b5fc1be9ae526c1d9ad57ad6dea292"/>
| |
| <item name="LastUpdate" value="20991231235959Z"/>
| |
| <item name="LicenseId" value="151356bf-b539-4c31-aef2-15c6f5e7931b"/>
| |
| <item name="Version" value="999"/>
| |
| <signature value="1" key="myzm"/>
| |
| </ZimbraLicenseActivation>
| |
| </pre>
| |
| --------------
| |
| Копируем с заменой файл '''zimbra-license-tools.jar > zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312/lib/jars/'''
| |
|
| |
|
| Начинаем установку самой ZIMBRA.
| | [[SimpleX – первый мессенджер без идентификаторов пользователей, настройка сервера на Debian 12]] |
| <pre>
| |
| cd ~
| |
| cd zcs-*/
| |
| ./install.sh --skip-activation-check
| |
| </pre>
| |
| Процесс установки будет происходить, как показано ниже.
| |
| <pre>
| |
| [root@mail zcs-NETWORK-9.0.0_GA_3924.RHEL7_64.20200331010312]# ./install.sh --skip-activation-check
| |
|
| |
| Operations logged to /tmp/install.log.j5mRhLRW
| |
| Checking for existing installation...
| |
| zimbra-drive...NOT FOUND
| |
| zimbra-imapd...NOT FOUND
| |
| zimbra-patch...NOT FOUND
| |
| zimbra-mta-patch...NOT FOUND
| |
| zimbra-proxy-patch...NOT FOUND
| |
| zimbra-license-tools...NOT FOUND
| |
| zimbra-license-extension...NOT FOUND
| |
| zimbra-network-store...NOT FOUND
| |
| zimbra-network-modules-ng...NOT FOUND
| |
| zimbra-chat...NOT FOUND
| |
| zimbra-talk...NOT FOUND
| |
| zimbra-ldap...NOT FOUND
| |
| zimbra-logger...NOT FOUND
| |
| zimbra-mta...NOT FOUND
| |
| zimbra-dnscache...NOT FOUND
| |
| zimbra-snmp...NOT FOUND
| |
| zimbra-store...NOT FOUND
| |
| zimbra-apache...NOT FOUND
| |
| zimbra-spell...NOT FOUND
| |
| zimbra-convertd...NOT FOUND
| |
| zimbra-memcached...NOT FOUND
| |
| zimbra-proxy...NOT FOUND
| |
| zimbra-archiving...NOT FOUND
| |
| zimbra-core...NOT FOUND
| |
|
| |
|
| |
| ----------------------------------------------------------------------
| |
| PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE SOFTWARE.
| |
| SYNACOR, INC. ("SYNACOR") WILL ONLY LICENSE THIS SOFTWARE TO YOU IF YOU
| |
| FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY DOWNLOADING OR INSTALLING
| |
| THE SOFTWARE, OR USING THE PRODUCT, YOU ARE CONSENTING TO BE BOUND BY
| |
| THIS AGREEMENT. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS
| |
| AGREEMENT, THEN DO NOT DOWNLOAD, INSTALL OR USE THE PRODUCT.
| |
|
| |
| License Terms for this Zimbra Collaboration Suite Software:
| |
| https://www.zimbra.com/license/zimbra-public-eula-2-6.html
| |
| ----------------------------------------------------------------------
| |
| </pre>
| |
| На экране отобразится лицензионное соглашение — принимаем его, при том 2 раза:
| |
| <pre>
| |
| Do you agree with the terms of the software license agreement? [N] Y
| |
| </pre>
| |
| Разрешаем использование репозитория от Zimbra:
| |
| <pre>
| |
| Use Zimbra's package repository [Y] Y
| |
| </pre>
| |
| Устанавливаем необходимые модули (или все):
| |
| <pre>
| |
| 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
| |
| </pre>
| |
| Подтверждаем ранее введенные настройки:
| |
| <pre>
| |
| The system will be modified. Continue? [N] Y
| |
| </pre>
| |
| Начнется процесс установки и конфигурирования Zimbra. Ждем окончания процесса.
| |
| Если для нашего домена еще нет записи MX, мы увидим сообщение:
| |
| <pre>
| |
| It is suggested that the domain name have an MX record configured in DNS
| |
| </pre>
| |
| Установщик предложит поменять домен — отвечаем Yes и меняем домен mail.putyato.ru на putyato.ru:
| |
| <pre>
| |
| Change domain name? [Yes] Yes
| |
| Create domain: [mail.putyato.ru] putyato.ru
| |
| </pre>
| |
| ... установщик покажет меню с настройкой Zimbra:
| |
| <pre>
| |
| Main menu
| |
|
| |
| 1) Common Configuration:
| |
| 2) zimbra-ldap: Enabled
| |
| 3) zimbra-logger: Enabled
| |
| 4) zimbra-mta: Enabled
| |
| 5) zimbra-snmp: Enabled
| |
| 6) zimbra-store: Enabled
| |
| +Create Admin User: yes
| |
| +Admin user to create: admin@putyato.ru
| |
| ******* +Admin Password UNSET
| |
| +Anti-virus quarantine user: virus-quarantine.exqbgv28@putyato.ru
| |
| +Enable automated spam training: yes
| |
| +Spam training user: spam.qg1kjm_q@putyato.ru
| |
| +Non-spam(Ham) training user: ham.cuhpcmq7h@putyato.ru
| |
| +SMTP host: mail.putyato.ru
| |
| +Web server HTTP port: 8080
| |
| +Web server HTTPS port: 8443
| |
| +Web server mode: https
| |
| +IMAP server port: 7143
| |
| +IMAP server SSL port: 7993
| |
| +POP server port: 7110
| |
| +POP server SSL port: 7995
| |
| +Use spell check server: yes
| |
| +Spell server URL: http://mail.putyato.ru:7780/aspell.php
| |
| +Enable version update checks: TRUE
| |
| +Enable version update notifications: TRUE
| |
| +Version update notification email: admin@putyato.ru
| |
| +Version update source email: admin@putyato.ru
| |
| +Install mailstore (service webapp): yes
| |
| +Install UI (zimbra,zimbraAdmin webapps): yes
| |
| ******* +License filename: UNSET
| |
| 7) zimbra-spell: Enabled
| |
| 8) zimbra-proxy: Enabled
| |
| 9) zimbra-imapd: Enabled
| |
| 10) Default Class of Service Configuration:
| |
| s) Save config to file
| |
| x) Expand menu
| |
| q) Quit
| |
| </pre>
| |
| В данном случае мы можем поменять любую из настроек. Настройки, которые необходимо сделать для продолжения установки показаны звездочками — в данном примере необходимо задать пароль администратора (Admin Password) и указать путь до файла с лицензией (License filename). И так, кликаем 7:
| |
| <pre>
| |
| Address unconfigured (**) items (? - help) 7
| |
| </pre>
| |
| Переходим к установке пароля:
| |
| <pre>
| |
| Select, or 'r' for previous menu [r] 4
| |
| </pre>
| |
| ... и задаем пароль.
| |
|
| |
|
| Далее указываем путь до файла с лицензией:
| | [[Обход блокировок с полной маскировкой:3X-UI: Shadowsocks-2022 & XRay (XTLS), настройка сервера на Debian 12]] |
| <pre>
| |
| Select, or 'r' for previous menu [r] 25
| |
| </pre>
| |
| <pre>
| |
| Enter the name of the file that contains the license: /root/lic.xml
| |
| </pre>
| |
| Теперь выходим из меню:
| |
| <pre>
| |
| Select, or 'r' for previous menu [r] r
| |
| </pre>
| |
| И применяем настройки:
| |
| <pre>
| |
| Select from menu, or press 'a' to apply config (? - help) a
| |
| </pre>
| |
| Сохраняем конфигурационный файл:
| |
| <pre>
| |
| Save configuration data to a file? [Yes] Yes
| |
| </pre>
| |
| Соглашаемся с путем сохранения файла:
| |
| <pre>
| |
| Save config in file: [/opt/zimbra/config.20863]
| |
| </pre>
| |
| Продолжаем конфигурирование:
| |
| <pre>
| |
| The system will be modified - continue? [No] Y
| |
| </pre>
| |
| Дожидаемся окончания установки, на запрос отправки уведомления можно ответить отказом:
| |
| <pre>
| |
| Notify Zimbra of your installation? [Yes] No
| |
| </pre>
| |
| В конечном итоге, нажимаем Enter:
| |
| <pre>
| |
| Configuration complete - press return to exit
| |
| </pre>
| |
| Сервер установлен. Однако, установщик меняет пароль пользователя root. Меняем его обратно:
| |
| <pre>
| |
| passwd root
| |
| </pre>
| |
| | |
| === Zimbra DNSCache ===
| |
| Вместе с зимброй мы установили службу dnscache, которая позволяет увеличить производительность почтового сервера. Однако, принцип работы сети немного меняется, а именно, в файле /etc/resolv.conf появляется запись:
| |
| <pre>
| |
| nameserver 127.0.0.1
| |
| </pre>
| |
| ... а разрешение DNS имени в IP-адреса перестает работать. Удаление или смена записи в файле resolv.conf ни к чему не приводит, так как, по прошествии некоторого времени, настройка принимает исходный вид.
| |
| | |
| Для корректной настройки службы dnscache необходимо сначала посмотреть Master DNS в настройках Zimbra:
| |
| <pre>
| |
| su - zimbra -c "zmprov getServer '$myhostname' | grep DNSMasterIP"
| |
| </pre>
| |
| * где $myhostname — имя сервера, на котором установлена Zimbra (в данной конфигурации, mail.putyato.ru).
| |
| В моем случае было:
| |
| <pre>
| |
| zimbraDNSMasterIP: 127.0.0.53
| |
| </pre>
| |
| Удалить данную запись:
| |
| <pre>
| |
| su - zimbra -c "zmprov ms '$myhostname' -zimbraDNSMasterIP 127.0.0.53"
| |
| </pre>
| |
| И добавить свои рабочие серверы DNS, например:
| |
| <pre>
| |
| su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP 10.7.7.1"
| |
| su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP 8.8.8.8"
| |
| su - zimbra -c "zmprov ms '$myhostname' +zimbraDNSMasterIP 77.88.8.8"
| |
| </pre>
| |
| * где 10.7.7.1 — DNS сервер в моей сети; 8.8.8.8 — DNS сервер от Google; 77.88.8.8 — DNS сервер от Яндекс.
| |
| Теперь DNS-запросы на сервере будут работать.
| |
| === zimbraMtaLmtpHostLookup ===
| |
| Если наш сервер находится за NAT и разрешение IP происходит не во внутренний адрес, а внешний (можно проверить командой nslookup <имя сервера>), после настройки наш сервер не сможет принимать почту, а в логах мы можем увидеть ошибку delivery temporarily suspended: connect to 7025: Connection refused). Это происходит из-за попытки Zimbra передать письмо в очереди по внутреннему порту локальной почты 7025 (LMTP) на внешний адрес, который недоступен из NAT. Для решения проблемы можно использовать внутренний DNS с другими А-записями (split dns) или собственный поиск IP-адресов для lmtp, а не для DNS. Рассмотрим второй вариант — вводим две команды:
| |
| <pre>
| |
| su - zimbra -c "zmprov ms $myhostname zimbraMtaLmtpHostLookup native"
| |
| su - zimbra -c "zmprov mcf zimbraMtaLmtpHostLookup native"
| |
| </pre>
| |
| * где $myhostname — имя нашего почтового сервера.
| |
| | |
| После перезапускаем службы зимбры:
| |
| <pre>
| |
| su - zimbra -c "zmmtactl restart"
| |
| </pre>
| |
| Проверьте статус и версию Zimbra с помощью этих команд:
| |
| <pre>
| |
| su - zimbra -c "zmcontrol status"
| |
| su - zimbra -c "zmcontrol -v"
| |
| </pre>
| |
| === Устанавливаем лицензию ===
| |
| Копируем c заменой файл '''/root/zimbra-license-tools.jar > /opt/zimbra/lib/ext-common'''
| |
| | |
| Перед установкой lic.xml вам необходимо перезапустить сервер, иначе он выйдет из строя.
| |
| <pre>
| |
| reboot
| |
| </pre>
| |
| ---------- Продолжим...
| |
| <pre>
| |
| su zimbra
| |
| zmlicense -i /root/lic.xml
| |
| zmlicense -f
| |
| </pre>
| |
| Получаем параметр fingerprint
| |
| и добавляем его в /root/lic_a.xml
| |
| Активируем:
| |
| <pre>
| |
| zmlicense -A /root/lic_a.xml
| |
| </pre>
| |
| Если не удалось активировать:
| |
| | |
| 1) Заходим https://10.7.7.7:7071 чтобы активировать через web интерфейс.
| |
| | |
| 2) Теперь перейдите в «Настройка -> Глобальные настройки -> Лицензия» и примените файл лицензии Crack «lic.xml» (от значка шестеренки в верхнем углу и выбора «Обновить лицензию»)
| |
| | |
| 3) Лицензия будет успешно применена, но теперь она начнет выдавать ошибку активации.
| |
| | |
| 4) Теперь вам нужно выполнить следующую команду с учетной записью «zimbra» на вашем сервере, чтобы получить значение «fingerprint»
| |
| zmlicense -f
| |
| | |
| Это покажет уникальный номер, который вы теперь должны скопировать в «lic_a».
| |
| | |
| 5) Отредактируйте файл "lic_a.xml" и вставьте значение из шага 4 в следующую строку: <item name="Fingerprint" value="00b5fc1be9ae526c1d9ad57ad6dea292"/>
| |
| | |
| Сохраните файл
| |
| | |
| 6) Теперь перейдите в раздел лицензии в панели администратора Zimbra и выберите «Активировать лицензию вручную». Найдите файл «lic_a.xml» и загрузите его на сервер.
| |
| | |
| Все должно заработать, и лицензия примениться.
| |
| | |
| === Настройка zimbra после установки ===
| |
| Чтобы начать пользоваться сервером, внесем основные настройки. Для этого открываем браузер и вводим адрес https://<IP-адрес сервера>:7071 — должна открыться страница с ошибкой, разрешаем открытие страницы и мы увидим форму для входа в панель администрирования Zimbra. Вводим логин admin и пароль, который задавали при установке.
| |
| В нашем случае https://10.7.7.7:7071
| |
| | |
| [[File:Mail_01.jpg|link=]]
| |
| | |
| ==== Добавление домена ====
| |
| Если мы не меняли рабочий домен в настройках во время установки сервера, то основной домен будет таким же, как имя сервера. Как правило, это не то, что нам нужно. И так, заходим в Настройка - Домены. В правой части окна кликаем по значку шестеренки и Создать:
| |
| | |
| [[File:Mail_02.jpg|link=]]
| |
| | |
| Задаем название для нового домена:
| |
| | |
| [[File:Mail_03.jpg|link=]]
| |
| | |
| ... и кликаем Далее.
| |
| В следующем окне выбираем сервер:
| |
| | |
| [[File:Mail_04.jpg|link=]]
| |
| | |
| ... можно нажать Готово.
| |
| Теперь поменяем домен по умолчанию. Переходим в Настройка - Глобальные настройки. Меняем значение для поля «Домен по умолчанию»:
| |
| | |
| [[File:Mail_05.jpg|link=]]
| |
| | |
| ... и нажимаем Сохранить.
| |
| ==== Создание почтового ящика ====
| |
| Переходим с главного меню панели администрирования в Управление - Учетные записи. Справа кликаем по шестеренке - Создать:
| |
| | |
| [[File:Mail_06.jpg|link=]]
| |
| | |
| Задаем имя учетной записи, а также фамилию пользователя:
| |
| | |
| [[File:Mail_07.jpg|link=]]
| |
| | |
| Задаем пароль пользователя и, по желанию, ставим галочку Требуется сменить пароль:
| |
| | |
| [[File:Mail_08.jpg|link=]]
| |
| | |
| При необходимости создания административной учетной записи ставим галочку Глобальный администратор:
| |
| | |
| [[File:Mail_09.jpg|link=]]
| |
| | |
| Готово
| |
| === Конфигурации после установки: ===
| |
| Вам необходимо выполнить некоторые настройки после установки, хотя это и не обязательно. Когда мы устанавливаем Zimbra, он создает системного пользователя Zimbra с отключенным паролем. На самом деле, он использует ключи ssh для подключения. Поэтому нам нужно обновить ключи ssh следующим образом.
| |
| <pre>
| |
| [root@mail ~]# sudo -u zimbra -i
| |
| [zimbra@mail ~]$ zmupdateauthkeys
| |
| | |
| Updating keys for mail.putyato.ru
| |
| Fetching key for mail.putyato.ru
| |
| Updating keys for mail.putyato.ru
| |
| Updating /opt/zimbra/.ssh/authorized_keys
| |
| </pre>
| |
| Теперь, чтобы отобразить статистику сервера в консоли администратора, нам нужно обновить файлы конфигурации Syslog следующим образом.
| |
| | |
| Если вы работаете как выход пользователя Zimbra (выполните команду exit) , переключитесь на пользователя root и выполните следующую команду.
| |
| <pre>
| |
| [root@mail ~]# /opt/zimbra/libexec/zmsyslogsetup
| |
| updateSyslog: Updating /etc/rsyslog.conf...done.
| |
| </pre>
| |
| Желательно включить автоматическую проверку вложений электронной почты антивирусом ClamAV . Поэтому выполните следующую команду.
| |
| <pre>
| |
| [root@mail ~]# su - zimbra
| |
| [zimbra@mail ~]$ zmprov mcf zimbraAttachmentsScanURL clam://localhost:3310/
| |
| [zimbra@mail ~]$ zmprov mcf zimbraAttachmentsScanEnabled TRUE
| |
| </pre>
| |
| ==== Почтовый сервер Zimbra и антивирус ClamAV (после блокировки из России) ====
| |
| Наверняка у многих сисадминов из РФ всплыла проблема с отказом антивируса ClamAV работающим в связке с почтовым сервером Zimbra. Набросал краткий мануал.
| |
| Так как Clamav принадлежит по факту корпорации Cisco, то достучаться из Россия уже просто не получится (по состоянию на 16.03.2022)
| |
| Будем использовать tor-прокси (в связке TOR+Privoxy) . В моем случае все крутится в отдельном крошечном lxc ( вы можете вынести на отдельный vds вне корп сети, как угодно. Но самом почтовике делать явно не стоит)
| |
| Вносим изменения в:
| |
| <pre>
| |
| nano /opt/zimbra/conf/freshclam.conf.in
| |
| </pre>
| |
| Необходимо в раскомментировать и поправить :
| |
| HTTPProxyServer **.**.**.** # Адрес прокси-сервера
| |
| HTTPProxyPort 8446 # порт прокси-сервера (стандартный 8118)
| |
| | |
| Я Установил:
| |
| <pre>
| |
| HTTPProxyServer 66.76.140.239
| |
| HTTPProxyPort 39593
| |
| </pre>
| |
| Под zimbra делаем полный рестарт антивируса :
| |
| <pre>
| |
| su zimbra
| |
| zmantivirusctl restart
| |
| </pre>
| |
| Проверяем:
| |
| <pre>
| |
| $ zmantivirusctl status
| |
| | |
| antivirus is running
| |
| </pre>
| |
| === Настройка DNS ===
| |
| Для корректной работы почты необходимо настроить DNS для нашего домена.
| |
| | |
| '''1. Запись MX.'''
| |
| Позволяет определить почтовый сервер для домена.
| |
| | |
| '''2. Запись A.'''
| |
| Для нашего сервера, который определен как MX запись нужна запись А, которая указывает на его IP-адрес. В моем примере это сервер mail.putyato.ru, который из сети Интернет должен разрешаться во внешний IP-адрес.
| |
| | |
| '''3. PTR.'''
| |
| Данная запись представляет из себя обратное разрешение IP-адреса в домен. С ее помощью подтверждается легитимность отправителя.
| |
| | |
| '''4. SPF.'''
| |
| Это запись TXT, которая определяет список серверов для домена, с которых разрешена отправка почты.
| |
| | |
| '''5. DKIM.'''
| |
| Подтверждение владельца домена. Письмо отправляется с зашифрованным заголовком и расшифровать его можно с помощью последовательности, хранящейся в TXT-записи на DNS. Соответственно, если владелец домена разместил такую последовательность, то он и является его владельцем.
| |
| | |
| '''6. DMARC.'''
| |
| Определяет для домена политику проверки писем.
| |
| | |
| {| class="wikitable"
| |
| |+ Зона
| |
| |-
| |
| ! Хост !! Тип !! Значение
| |
| |-
| |
| | * || A || 67.248.99.132
| |
| |-
| |
| | @ || A || 67.248.99.132
| |
| |-
| |
| | www || A || 67.248.99.132
| |
| |-
| |
| | || ||
| |
| |-
| |
| | @ || MX || 10 mail
| |
| |-
| |
| | mail || A || 67.248.99.132
| |
| |-
| |
| | @ || TXT || v=spf1 a mx -all
| |
| |-
| |
| | 3EF6B3C0-2E8A-11CD-A4E2-B3DCE640B747._domainkey || TXT || v=DKIM1;k=rsa;
| |
| p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMI...
| |
| 6Kcp7+JglnrttF5p6Pz8GUIApECGx2htTle...
| |
| |-
| |
| | _domainkey || TXT || 0=~
| |
| |}
| |
| === Проброс портов на роутере ===
| |
| Если наш сервер находится во внутренней сети, необходимо настроить проброс портов. В двух словах, это настройка на сетевом устройстве, которое смотрит в Интернет, которая позволит запросы на определенный порт передать на наш почтовый сервер.
| |
| Требуется пробросить следующие порты: 80(HTTP), 443(HTTPS), 993(IMAP/S), 25(SMTP), 5222(XMPP), 7025(LMTP)
| |
| === Настройка DKIM ===
| |
| Отдельно рассмотрим процесс настройки подписи DKIM на почтовом сервере Zimbra. Формирование ключей выполняется для каждого из доменов из командной строки. Подключаемся к серверу по SSH и вводим команду:
| |
| <pre>
| |
| su - zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -a -d putyato.ru"
| |
| </pre>
| |
| * данная команда создаст последовательности ключей для домена putyato.ru.
| |
| Мы должны получить ответ на подобие:
| |
| <pre>
| |
| Public signature to enter into DNS:
| |
| 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey IN TXT ( "v=DKIM1; k=rsa; "
| |
| "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5iLy58AJ1fdB15BZgh/VtGfZsi+TrDyvqqZaL5pJ+MQaQrpqHW8AF5kyxW2QzAMjyKzySMZX0PoHUuV93Yxf2t52IFihvb7ivqmRwlqFV3gU7j8zqbAGWHfZo4Ydw0kUmU6pm+Z85aWt4k7rQ7vWXludQGf8yIaSMMmodxze9E5VUOtUA18dIEEPcbwSgOO6YhQLuC78T4FiF5"
| |
| "8epQnsX0voSfg9tMW+r+P1b5fTy5Guyqh1plWYseKxPzHKHbc4Lokcgo1AZzKG5Mvo5OCXsKUE1fSoc366AFSoUnWr23P7oUbf+NjXzPMS8ESGA9TfpDA6eRJT4QEpi72AdIy4rQIDAQAB" ) ; ----- DKIM key 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 for putyato.ru
| |
| </pre>
| |
| В данном ответе нас интересуют записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey — это имя для TXT в домене putyato.ru; "v=DKIM1; k=rsa; " "p=M...AB" — содержимое записи.
| |
| | |
| В настройках домена необходимо добавить данную запись, после чего подождать, минут 15. После выполняем проверку:
| |
| <pre>
| |
| opendkim-testkey -d putyato.ru -s 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 -x /opt/zimbra/conf/opendkim.conf
| |
| </pre>
| |
| * где putyato.ru — наш домен; 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49 — селектор, который мы видели в записи 5D8C3E02-4EFA-11EA-872A-D9A5B4628C49._domainkey.
| |
| * если при вводе команды мы получим ошибку «Command 'opendkim-testkey' not found», необходимо установить opendkim-tools командой yum install opendkim-tools.
| |
| | |
| Для просмотра имеющихся записей DKIM можно воспользоваться командой:
| |
| <pre>
| |
| su - zimbra -c "/opt/zimbra/libexec/zmdkimkeyutil -q -d putyato.ru"
| |
| </pre>
| |
| ==== Отправка тестового письма ====
| |
| Открываем браузер и переходим по ссылке https://<IP-адрес сервера>:8443/ — откроется веб-клиент для чтения и отправки почты. В качестве логина используем созданный email и его пароль.
| |
| | |
| Теперь заходим на сайт https://www.mail-tester.com/ и копируем email-адрес для отправки тестового сообщения.
| |
| | |
| Создаем новое сообщение и отправляем его на тестовый адрес. Возвращаемся на сайт для проверки и кликаем по (Затем проверьте оценку).
| |
| | |
| Если наше письмо не получило 10 баллов, анализируем проблемы и исправляем их.
| |
| | |
| === Установка SSL-сертификата ===
| |
| При заходе на веб-интерфейс мы будем получать ошибку, так как по умолчанию, создается самоподписный сертификат. Рассмотрим процесс установки бесплатного сертификата от Let;s Encrypt.
| |
| ==== Получение сертификата ====
| |
| Создаем каталог:
| |
| <pre>
| |
| mkdir /opt/letsencrypt
| |
| </pre>
| |
| Загружаем в него утилиту letsencrypt-auto:
| |
| <pre>
| |
| wget https://raw.githubusercontent.com/certbot/certbot/7f0fa18c570942238a7de73ed99945c3710408b4/letsencrypt-auto-source/letsencrypt-auto -O /opt/letsencrypt/letsencrypt-auto
| |
| </pre>
| |
| или
| |
| <pre>
| |
| wget "https://cloud.putyato.pro/index.php/s/j5Q4XxJrn7bwWAe/download/letsencrypt-auto" --no-check-certificate -O /opt/letsencrypt/letsencrypt-auto
| |
| </pre>
| |
| | |
| Разрешаем ее запускать на выполнение:
| |
| <pre>
| |
| chmod +x /opt/letsencrypt/letsencrypt-auto
| |
| </pre>
| |
| После чего:
| |
| <pre>
| |
| /opt/letsencrypt/letsencrypt-auto certonly --standalone
| |
| </pre>
| |
| Будет установлено несколько пакетов, после необходимо ввести адрес почты, принять лицензионное соглашение и, в принципе, можно подписаться на рассылки от Let's Encrypt:
| |
| <pre>
| |
| Enter email address (used for urgent renewal and security notices) (Enter 'c' to
| |
| cancel): admin@putyato.ru
| |
| | |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| Please read the Terms of Service at
| |
| https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
| |
| agree in order to register with the ACME server at
| |
| https://acme-v02.api.letsencrypt.org/directory
| |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| (A)gree/(C)ancel: A
| |
| | |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| Would you be willing to share your email address with the Electronic Frontier
| |
| Foundation, a founding partner of the Let's Encrypt project and the non-profit
| |
| organization that develops Certbot? We'd like to send you email about our work
| |
| encrypting the web, EFF news, campaigns, and ways to support digital freedom.
| |
| - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| |
| (Y)es/(N)o: Y
| |
| </pre>
| |
| После утилита предложит ввести адрес, для которого необходимо получить сертификат — вводим адрес нашего сервера, например:
| |
| <pre>
| |
| Please enter in your domain name(s) (comma and/or space separated) (Enter 'c'
| |
| to cancel): mail.putyato.ru
| |
| </pre>
| |
| Мы должны получить что-то на подобие:
| |
| <pre>
| |
| ...
| |
| - Congratulations! Your certificate and chain have been saved at:
| |
| /etc/letsencrypt/live/mail.putyato.ru/fullchain.pem
| |
| Your key file has been saved at:
| |
| ...
| |
| </pre>
| |
| Сертификат получен и все его файлы находятся в каталоге /etc/letsencrypt/live/mail.putyato.ru/.
| |
| | |
| ==== Установка сертификата ====
| |
| Процесс установки сертификата для ZIMBRA, несколько, отличается от многих других сервисов — он требует дополнительных телодвижений.
| |
| | |
| И так, сначала скопируем полученные сертификаты в каталог ZIMBRA — в моем случае, команды такие:
| |
| <pre>
| |
| cp /etc/letsencrypt/live/mail.putyato.ru/* /opt/zimbra/ssl/zimbra/commercial/
| |
| </pre>
| |
| * где mail.putyato.ru — домен, для которого мы получали сертификат.
| |
| Меняем владельца для скопированных файлов:
| |
| <pre>
| |
| chown zimbra /opt/zimbra/ssl/zimbra/commercial/*
| |
| </pre>
| |
| Теперь нюанс — zimbra не примет цепочку сертификатов, если в ней не будет корневых от Let's Encrypt. Получить их можно по ссылкам:
| |
| | |
| 1. https://letsencrypt.org/certs/isrgrootx1.pem.txt.
| |
| или
| |
| https://cloud.putyato.pro/index.php/s/Nq9RzgyCE593zsr/download/isrgrootx1.pem.txt
| |
| | |
| 2. https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt.
| |
| или
| |
| https://cloud.putyato.pro/index.php/s/wnCdj6eFAwr9wTT/download/letsencryptauthorityx3.pem.txt
| |
| | |
| Полученную последовательность добавляем к файлу chain.pem:
| |
| <pre>
| |
| nano /opt/zimbra/ssl/zimbra/commercial/chain.pem
| |
| </pre>
| |
| <pre>
| |
| -----BEGIN CERTIFICATE-----
| |
| <первую последовательность оставляем>
| |
| -----END CERTIFICATE-----
| |
| -----BEGIN CERTIFICATE-----
| |
| <вторую последовательность удаляем>
| |
| -----END CERTIFICATE-----
| |
| -----BEGIN CERTIFICATE-----
| |
| MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw
| |
| TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
| |
| cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4
| |
| WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu
| |
| ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY
| |
| MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc
| |
| h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+
| |
| 0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U
| |
| A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW
| |
| T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH
| |
| B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC
| |
| B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv
| |
| KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn
| |
| OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn
| |
| jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw
| |
| qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI
| |
| rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV
| |
| HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq
| |
| hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL
| |
| ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ
| |
| 3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK
| |
| NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5
| |
| ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur
| |
| TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC
| |
| jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc
| |
| oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq
| |
| 4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA
| |
| mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d
| |
| emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc=
| |
| -----END CERTIFICATE-----
| |
| -----BEGIN CERTIFICATE-----
| |
| MIIFjTCCA3WgAwIBAgIRANOxciY0IzLc9AUoUSrsnGowDQYJKoZIhvcNAQELBQAw
| |
| TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
| |
| cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTYxMDA2MTU0MzU1
| |
| WhcNMjExMDA2MTU0MzU1WjBKMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
| |
| RW5jcnlwdDEjMCEGA1UEAxMaTGV0J3MgRW5jcnlwdCBBdXRob3JpdHkgWDMwggEi
| |
| MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCc0wzwWuUuR7dyXTeDs2hjMOrX
| |
| NSYZJeG9vjXxcJIvt7hLQQWrqZ41CFjssSrEaIcLo+N15Obzp2JxunmBYB/XkZqf
| |
| 89B4Z3HIaQ6Vkc/+5pnpYDxIzH7KTXcSJJ1HG1rrueweNwAcnKx7pwXqzkrrvUHl
| |
| Npi5y/1tPJZo3yMqQpAMhnRnyH+lmrhSYRQTP2XpgofL2/oOVvaGifOFP5eGr7Dc
| |
| Gu9rDZUWfcQroGWymQQ2dYBrrErzG5BJeC+ilk8qICUpBMZ0wNAxzY8xOJUWuqgz
| |
| uEPxsR/DMH+ieTETPS02+OP88jNquTkxxa/EjQ0dZBYzqvqEKbbUC8DYfcOTAgMB
| |
| AAGjggFnMIIBYzAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADBU
| |
| BgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEBATAwMC4GCCsGAQUFBwIB
| |
| FiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQub3JnMB0GA1UdDgQWBBSo
| |
| SmpjBH3duubRObemRWXv86jsoTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js
| |
| LnJvb3QteDEubGV0c2VuY3J5cHQub3JnMHIGCCsGAQUFBwEBBGYwZDAwBggrBgEF
| |
| BQcwAYYkaHR0cDovL29jc3Aucm9vdC14MS5sZXRzZW5jcnlwdC5vcmcvMDAGCCsG
| |
| AQUFBzAChiRodHRwOi8vY2VydC5yb290LXgxLmxldHNlbmNyeXB0Lm9yZy8wHwYD
| |
| VR0jBBgwFoAUebRZ5nu25eQBc4AIiMgaWPbpm24wDQYJKoZIhvcNAQELBQADggIB
| |
| ABnPdSA0LTqmRf/Q1eaM2jLonG4bQdEnqOJQ8nCqxOeTRrToEKtwT++36gTSlBGx
| |
| A/5dut82jJQ2jxN8RI8L9QFXrWi4xXnA2EqA10yjHiR6H9cj6MFiOnb5In1eWsRM
| |
| UM2v3e9tNsCAgBukPHAg1lQh07rvFKm/Bz9BCjaxorALINUfZ9DD64j2igLIxle2
| |
| DPxW8dI/F2loHMjXZjqG8RkqZUdoxtID5+90FgsGIfkMpqgRS05f4zPbCEHqCXl1
| |
| eO5HyELTgcVlLXXQDgAWnRzut1hFJeczY1tjQQno6f6s+nMydLN26WuU4s3UYvOu
| |
| OsUxRlJu7TSRHqDC3lSE5XggVkzdaPkuKGQbGpny+01/47hfXXNB7HntWNZ6N2Vw
| |
| p7G6OfY+YQrZwIaQmhrIqJZuigsrbe3W+gdn5ykE9+Ky0VgVUsfxo52mwFYs1JKY
| |
| 2PGDuWx8M6DlS6qQkvHaRUo0FMd8TsSlbF0/v965qGFKhSDeQoMpYnwcmQilRh/0
| |
| ayLThlHLN81gSkJjVrPI0Y8xCVPB4twb1PFUd2fPM3sA1tJ83sZ5v8vgFv2yofKR
| |
| PB0t6JzUA81mSqM3kxl5e+IZwhYAyO0OTg3/fs8HqGTNKd9BqoUwSRBzp06JMg5b
| |
| rUCGwbCUDI0mxadJ3Bz4WxR6fyNpBK2yAinWEsikxqEt
| |
| -----END CERTIFICATE-----
| |
| </pre>
| |
| * где мы добавили к файлу две последовательности.
| |
| | |
| Теперь зайдем в систему под пользователем zimbra:
| |
| <pre>
| |
| su - zimbra
| |
| </pre>
| |
| ... и перейдем в каталог:
| |
| <pre>
| |
| $ cd /opt/zimbra/ssl/zimbra/commercial
| |
| </pre>
| |
| Проверяем, правильно ли сформированы сертификаты для Zimbra:
| |
| <pre>
| |
| $ zmcertmgr verifycrt comm privkey.pem cert.pem chain.pem
| |
| </pre>
| |
| Мы должны получить ответ:
| |
| <pre>
| |
| ** Verifying 'cert.pem' against 'privkey.key'
| |
| Certificate 'cert.pem' and private key 'privkey.key' match.
| |
| ** Verifying 'cert.pem' against 'chain.pem'
| |
| Valid certificate chain: cert.pem: OK
| |
| </pre>
| |
| Переименовываем закрытый ключ:
| |
| <pre>
| |
| $ mv privkey.pem commercial.key
| |
| </pre>
| |
| Можно устанавливать сертификаты:
| |
| <pre>
| |
| $ zmcertmgr deploycrt comm cert.pem chain.pem
| |
| </pre>
| |
| Чтобы настройка применилась, перезапускаем zimbra и выходим из его окружения:
| |
| <pre>
| |
| $ zmcontrol restart
| |
| $ exit
| |
| </pre>
| |
| | |
| ==== Продление сертификата ====
| |
| На роутере напрямую пробросить 80 и 443 порт на виртуальную машину с ZIMBRA, проброс через прокси не работает.
| |
| Отключить проверку SSL сертификата:
| |
| <pre>
| |
| su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=0"
| |
| su - zimbra -c "zmcontrol restart"
| |
| </pre>
| |
| | |
| Обновление сертификата не потребует больших усилий. Для начала, обновляем сертификат Let's Encrypt:
| |
| <pre>
| |
| /opt/letsencrypt/letsencrypt-auto renew
| |
| </pre>
| |
| Скопируем обновленные сертификаты в каталог зимбры:
| |
| <pre>
| |
| cp /etc/letsencrypt/live/mail.putyato.ru/* /opt/zimbra/ssl/zimbra/commercial/
| |
| </pre>
| |
| * где mail.putyato.ru — домен, для которого мы получали сертификат.
| |
| Меняем владельца для файлов:
| |
| <pre>
| |
| chown zimbra /opt/zimbra/ssl/zimbra/commercial/*
| |
| </pre>
| |
| Переходим в каталог с сертификатами:
| |
| <pre>
| |
| cd /opt/zimbra/ssl/zimbra/commercial
| |
| </pre>
| |
| Загружаем корневые сертификаты Let's Encrypt:
| |
| <pre>
| |
| wget https://letsencrypt.org/certs/isrgrootx1.pem.txt
| |
| wget https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt
| |
| </pre>
| |
| или
| |
| <pre>
| |
| wget "https://cloud.putyato.pro/index.php/s/Nq9RzgyCE593zsr/download/isrgrootx1.pem.txt" --no-check-certificate -O isrgrootx1.pem.txt
| |
| wget "https://cloud.putyato.pro/index.php/s/wnCdj6eFAwr9wTT/download/letsencryptauthorityx3.pem.txt" --no-check-certificate -O letsencryptauthorityx3.pem.txt
| |
| </pre>
| |
| | |
| Создаем файл с полной цепочкой сертификатов:
| |
| <pre>
| |
| echo "-----BEGIN CERTIFICATE-----" > new_chain.pem
| |
| openssl x509 -in chain.pem -outform der | base64 -w 64 >> new_chain.pem
| |
| echo "-----END CERTIFICATE-----" >> new_chain.pem
| |
| mv new_chain.pem chain.pem
| |
| cat isrgrootx1.pem.txt >> chain.pem
| |
| cat letsencryptauthorityx3.pem.txt >> chain.pem
| |
| </pre>
| |
| Проверяем корректность сертификатов:
| |
| <pre>
| |
| su - zimbra -c "zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/privkey.pem /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem"
| |
| </pre>
| |
| Переименовываем закрытый ключ:
| |
| <pre>
| |
| mv privkey.pem commercial.key
| |
| </pre>
| |
| Можно устанавливать сертификаты:
| |
| <pre>
| |
| su - zimbra -c "zmcertmgr deploycrt comm /opt/zimbra/ssl/zimbra/commercial/cert.pem /opt/zimbra/ssl/zimbra/commercial/chain.pem"
| |
| </pre>
| |
| Включаем проверку SSL сертификата:
| |
| <pre>
| |
| su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=1"
| |
| </pre>
| |
| Чтобы настройка применилась, перезапускаем zimbra:
| |
| <pre>
| |
| su - zimbra -c "zmcontrol restart"
| |
| </pre>
| |
| Готово.
| |
| | |
| | |
| Если почта организована через прокси, то нужно полученные два сертификата скопировать в папку на прокси виртуальной машины:
| |
| | |
| Почтовая виртуалка:
| |
| | |
| '''/opt/zimbra/ssl/zimbra/commercial'''
| |
| | |
| Берем два файла: '''fullchain.pem; commercial.key'''
| |
| | |
| И копируем их в папку ('''/etc/letsencrypt/live/mail.putyato.ru/''') на прокси виртуальной машины.
| |
| | |
| Восстанавливаем проброс портов 443 и 80 на роутере, на прокси виртуалку.
| |
| | |
| И все готово!
| |
| | |
| === Настройка почтового клиента ===
| |
| Приведем пример настройки почтового клиента. Подключимся к нашему серверу по IMAP и отправим почту по SMTP. В качестве почтового клиента я буду использовать Mozilla Thunderbird — принцип настройки других клиентов аналогичен.
| |
| | |
| Для настройки используем следующие параметры:
| |
| {| class="wikitable"
| |
| |+ Настройки
| |
| |-
| |
| ! Настройка !! IMAP !! POP3 !! SMTP
| |
| |-
| |
| | Адрес сервера || IP-адрес сервера или его имя
| |
| |-
| |
| | Порт || 143 || 110 || 587
| |
| |-
| |
| | SSL || STARTTLS
| |
| |-
| |
| | Имя пользователя || Почтовый адрес, к которому выполняем подключение
| |
| |-
| |
| | Пароль || Пароль для почтового ящика
| |
| |}
| |
| Пример настройки:
| |
| | |
| [[File:Mail_10.jpg|link=]]
| |
| | |
| === Защита от СПАМа ===
| |
| ==== 1. Обновление правил в SpamAssassin ====
| |
| Для улучшения защиты от СПАМ-сообщений мы включим автоматическое обновление правил для SpamAssassin. Для этого вводим:
| |
| <pre>
| |
| su - zimbra -c "zmlocalconfig -e antispam_enable_rule_updates=true"
| |
| su - zimbra -c "zmlocalconfig -e antispam_enable_restarts=true"
| |
| </pre>
| |
| После перезапустим соответствующие службы:
| |
| <pre>
| |
| su - zimbra -c "zmamavisdctl restart"
| |
| su - zimbra -c "zmmtactl restart"
| |
| </pre>
| |
| ==== 2. Черные списки ====
| |
| Чтобы усилить защиту, разрешим проверку отправителя в черных списках:
| |
| <pre>
| |
| su - zimbra -c 'zmprov mcf zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"'
| |
| </pre>
| |
| * в данном примере мы подключаем rbl-список от zen.spamhaus.org.
| |
| ==== 3. Настройка mynetworks ====
| |
| После установки Zimbra в опции postfix mynetworks может оказаться подсеть, в которой находится наш сервер. На практике, это приводит к возможности отправки сообщений без пароля, что в свою очередь, позволяет любому вирусу в нашей сети делать нелегальную рассылку.
| |
| Задаем для mynetworks только адрес локальной петли и адрес сервера:
| |
| <pre>
| |
| su - zimbra -c 'zmprov ms mail.putyato.ru zimbraMtaMyNetworks "127.0.0.0/8 10.7.7.7/32"'
| |
| </pre>
| |
| * где 10.7.7.7 — IP-адрес нашего почтового сервера.
| |
| Перезапускаем postfix:
| |
| <pre>
| |
| su - zimbra -c 'postfix reload'
| |
| </pre>
| |
| Проверить текущую настройку можно командой:
| |
| <pre>
| |
| su - zimbra -c 'postconf mynetworks'
| |
| </pre>
| |
| | |
| === Дополнительные настройки ===
| |
| ==== Добавление отправителей в белый список ====
| |
| Может возникнуть ситуация, при которой нам нужно изменить назначение СПАМ-балов для некоторых отправителей. Для этого открываем файл:
| |
| <pre>
| |
| nano /opt/zimbra/conf/amavisd.conf.in
| |
| </pre>
| |
| Находим строку:
| |
| <pre>
| |
| { # a hash-type lookup table (associative array)
| |
| ...
| |
| }
| |
| </pre>
| |
| ... и внутри фигурных скобок {} добавим нужный нам домен или конкретного отправителя:
| |
| <pre>
| |
| ...
| |
| 'putyato.ru' => -10.0,
| |
| 'sender@putyato2.ru' => -10.0,
| |
| }
| |
| </pre>
| |
| * таким образом мы сказали, что для писем с домена putyato.ru и отправителя sender@putyato2.ru отнимать 10 баллов за СПАМ. Такие письма начнут приходить без блокировки (при условии, что не будет отправлен явный СПАМ, который наберет очень много баллов).
| |
| | |
| После настройки перезапускаем amavis:
| |
| <pre>
| |
| su - zimbra -c "zmamavisdctl stop && zmamavisdctl start"
| |
| </pre>
| |
| ==== Размер отправляемого сообщения ====
| |
| Задать максимальный размер сообщений можно командой:
| |
| <pre>
| |
| su - zimbra -c 'zmprov modifyConfig zimbraMtaMaxMessageSize 31457280'
| |
| </pre>
| |
| * в данном примере мы задаем максимальный размер сообщения 30 мб.
| |
| | |
| После перезапускаем postfix:
| |
| <pre>
| |
| su - zimbra -c "postfix reload"
| |
| </pre>
| |
| ==== Сделать пользователя админом ====
| |
| <pre>
| |
| su zimbra
| |
| zmprov ma pavel@putyato.ru zimbraIsAdminAccount TRUE
| |
| </pre>
| |
| ==== Служебные сообщения ====
| |
| * кому приходят все служебные сообщения
| |
| <pre>
| |
| zmlocalconfig -e smtp_destination=admin@putyato.ru
| |
| </pre>
| |
| ==== Отключение redolog ====
| |
| <pre>
| |
| zmprov mcf zimbraRedoLogEnabled FALSE
| |
| </pre>
| |
| | |
| === Возможные проблемы ===
| |
| ==== Служба zmconfigd не стартует ====
| |
| В консоли управления почтовым сервером мы можем увидеть ошибку запуска службы zmconfigd. При попытке запустить ее:
| |
| <pre>
| |
| $ zmconfigdctl start
| |
| </pre>
| |
| ... мы получаем ошибку:
| |
| <pre>
| |
| Starting zmconfigd...failed
| |
| </pre>
| |
| Решение:
| |
| <pre>
| |
| yum -y install nmap-ncat
| |
| </pre>
| |
| После пробуем запустить сервис (от пользователя zimbra):
| |
| <pre>
| |
| $ zmconfigdctl start
| |
| </pre>
| |
| ==== Файл zmstat.out большого размера ====
| |
| Файл /opt/zimbra/zmstat/zmstat.out становится очень большим. Если открыть его, то мы увидим много строк:
| |
| <pre>
| |
| Use of uninitialized value $line in pattern match (m//) at /opt/zimbra/libexec/zmstat-io line 76.
| |
| </pre>
| |
| Причина:
| |
| Ошибка в скрипте /opt/zimbra/libexec/zmstat-io.
| |
| | |
| Решение:
| |
| Открываем скрипт, в котором есть ошибка:
| |
| <pre>
| |
| nano /opt/zimbra/libexec/zmstat-io
| |
| </pre>
| |
| Переходим на неправильную строку - 1 (в нашем примере, 75). Мы должны увидеть:
| |
| <pre>
| |
| while ($line !~ /^avg-cpu/ && $line !~ /^Device:/) {
| |
| </pre>
| |
| Меняем на:
| |
| <pre>
| |
| while ($line !~ /^avg-cpu/ && $line !~ /^Device/) {
| |
| </pre>
| |
| * то есть, убираем : после Device.
| |
| Перезапускаем службы Zimbra:
| |
| <pre>
| |
| su - zimbra -c "zmcontrol restart"
| |
| </pre>
| |
| | |
| ==== Отключение и включение проверки SSL сертификата. ====
| |
| Отключить проверку:
| |
| <pre>
| |
| su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=0"
| |
| </pre>
| |
| Включить проверку:
| |
| <pre>
| |
| su - zimbra -c "zmlocalconfig -e ldap_starttls_supported=1"
| |
| </pre>
| |
| | |
| | |
| ==== Получение писем с переполнением диска. ====
| |
| Когда у вас установлен Snap на экземпляре Zimbra (при установке Certbot), вы можете получать массу электронных писем от инструментов мониторинга Zimbra с предупреждениями, в которых говорится:
| |
| <pre>
| |
| Feb 14 19:40:01 mail zimbramon[4751]: 4751:crit: Disk warning: mail.ttc-service.ru: /var/lib/snapd/snap/core/14447 on device /dev/loop0 at 100%
| |
| </pre>
| |
| Это нормально, так как все /dev/loopX доступны только для чтения и автоматически создаются Snap. Вы можете увидеть их, выполнив df -h :
| |
| <pre>
| |
| [root@mail ~]# df -h
| |
| Filesystem Size Used Avail Use% Mounted on
| |
| devtmpfs 1.9G 0 1.9G 0% /dev
| |
| tmpfs 1.9G 0 1.9G 0% /dev/shm
| |
| tmpfs 1.9G 215M 1.7G 12% /run
| |
| tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
| |
| /dev/mapper/centos_mail-root 96G 22G 75G 23% /
| |
| /dev/sda1 1014M 193M 822M 19% /boot
| |
| tmpfs 379M 0 379M 0% /run/user/0
| |
| /dev/loop1 62M 62M 0 100% /var/lib/snapd/snap/core20/904
| |
| /dev/loop5 50M 50M 0 100% /var/lib/snapd/snap/certbot/952
| |
| /dev/loop2 99M 99M 0 100% /var/lib/snapd/snap/core/10823
| |
| /dev/loop0 100M 100M 0 100% /var/lib/snapd/snap/core/10859
| |
| /dev/loop4 50M 50M 0 100% /var/lib/snapd/snap/certbot/1042
| |
| </pre>
| |
| | |
| Вы можете исключить эти устройства из мониторинга Zimbra, выполнив zmlocalconfig -e zmstat_df_excludes='/dev/loop0:/dev/loop1:/dev/loop2:/dev/loop3:/dev/loop4:/dev/loop5:/dev /loopX' как пользователь Zimbra:
| |
| <pre>
| |
| su - zimbra
| |
| zmlocalconfig -e zmstat_df_excludes=’/dev/loop0:/dev/loop1:/dev/loop2:/dev/loop3:/dev/loop4:/dev/loop5’
| |
| zmstatctl restart
| |
| </pre>
| |
| That’s all, these devices won’t bother you no more.
| |
| | |
| ==== Как удалить DNSCACHE из сервисов Zimbra. ====
| |
| <pre>
| |
| su - zimbra
| |
| zmcontrol status
| |
| zmprov ms `zmhostname` -zimbraServiceEnabled dnscache
| |
| zmprov ms `zmhostname` -zimbraServiceInstalled dnscache
| |
| zmcontrol status
| |
| exit
| |
| </pre>
| |