Установка почтового сервера Zimbra на CentOS 7

Хочу поделиться опытом установки почтового сервера Zimbra на CentOS 7. И так – Zimbra Collaboration Suite — программный продукт, аналог MS Exchange, предоставляющий собой не только электронную почту корпоративного уровня, но и календарь, и средство совместной работы, одинаково подходящий как крупным компаниям, так и небольшим фирмам. Включает в себя ряд бесплатных и открытых продуктов (Nginx, Apache, MySQL, Postfix и др.), имеет очень удобный web-интерфейс. Существуют как платные так и бесплатные версии ZCS. В данной статье мы рассмотрим установку бесплатной Open Source версии Zimbra на сервер под управлением СentOS 7.

Дам совет тем кто не силен в Linux, ставить ОСь следует с GUI (с графическим интерфейсом), т.к., разработчики CentOS заменили Iptables на firewalld – что изменило настройку firewall в ОС. Перед началом установки самой Zimbra нужно обязательно прописать на DNS сервере A-запись с названием сервера – mail.example.ru и МХ-запись с именем того же сервера, мастер установки Zimbrы будет проверять A и MX и в случае неудачи завершит работу с ошибкой.

В процессе установки обязательно нужно настроить сетевой интерфейс, прописать статический ip, задать dns сервера и прописать имя нашего сервера – mail.example.ru. После того как установили CentOS поставим Midnight Commander для более удобного использования.

yum install mc

Далее заходим на наш сервер по ssh и правим файл hosts, нужно прописать правильное имя хоста. Сделать это можно через CLI или через MC.

[root@mail ~]# hostnamectl set-hostname mail.example.com
# cat /etc/hosts
127.0.0.1      localhost.localdomain localhost
::1            localhost localhost.localdomain
192.168.100.15     mail.example.ru

Переводим SELinux в разрешающий режим:

#vi /etc/selinux/config
SELINUX=permissive

Ставим обновления и патчи на CentOS. После успешной установки перезагрузим сервер.

#yum update -y

Отключаем автозагрузку службы postfixa, которая стоит по умолчанию, Zimbra поставит свою.

#systemctl disable postfix

Теперь ставим необходимые пакеты и библиотеки необходимые для установки и работы Zimbra

#yum install perl perl-core ntpl nmap sudo libidn gmp libaio libstdc++ unzip sysstat sqlite -y

После необходимо открыть нужные Zimbre порты. Сделать это лучше через графический интерфейс CentOSи. Список портов которые требуются для нормальной работы сервера можно найти на Wiki Zimbra – https://wiki.zimbra.com/wiki/Ports Большинство портов открывается в зонах External Access и Internal Access, также некоторые порты нужно будет открыть и в остальных зонах.

Качаем дистрибутив с сайта производителя

# wget https://files.zimbra.com/downloads/8.7.0_GA/zcs-8.7.0_GA_1659.RHEL7_64.20160628202714.tgz

Разархивируем архив и перейдем в полученный каталог:

# tar -xzf zcs-8.7.0_GA_1659.RHEL7_64.20160628202714.tgz 
# cd zcs-8.7.0_GA_1659.RHEL7_64.20160628202714

Запускаем процесс установки следующей командой:

# ./install.sh --platform-override

Ниже представлен вывод консоли, в которой показана работа install-скрипта с вопросами и ответами:

# ./install.sh --platform-override
Operations logged to /tmp/install.log.XtF7xszB
Checking for existing installation...
    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
----------------------------------------------------------------------
Do you agree with the terms of the software license agreement? [N] Y

Checking for installable packages

Found zimbra-core
Found zimbra-ldap
Found zimbra-logger
Found zimbra-mta
Found zimbra-dnscache
Found zimbra-snmp
Found zimbra-store
Found zimbra-apache
Found zimbra-spell
Found zimbra-memcached
Found zimbra-proxy

Use Zimbra's package repository [Y] Y
Importing Zimbra GPG key
Configuring package repository

Select the packages to install

Install zimbra-ldap [Y] Y Install zimbra-logger [Y] Y
Install zimbra-mta [Y] Y Install zimbra-dnscache [Y] N
Install zimbra-snmp [Y] Y Install zimbra-store [Y] Y
Install zimbra-apache [Y] Y Install zimbra-spell [Y] Y
Install zimbra-memcached [Y] Y Install zimbra-proxy [Y] Y
Checking required space for zimbra-core
Checking space for zimbra-store
Checking required packages for zimbra-store
zimbra-store package check complete.
Installing:
    zimbra-core
    zimbra-ldap
    zimbra-logger
    zimbra-mta
    zimbra-snmp
    zimbra-store
    zimbra-apache
    zimbra-spell
    zimbra-memcached
    zimbra-proxy

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

Removing /opt/zimbra
Removing zimbra crontab entry...done.
Cleaning up zimbra init scripts...done.
Cleaning up /etc/security/limits.conf...done.

Finished removing Zimbra Collaboration Server.

Installing packages

Local packages zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apa
che zimbra-spell zimbra-proxy selected for installation
Monitor /tmp/install.log.XtF7xszB for package installation progress
Remote package installation started
Installing zimbra-core-components zimbra-ldap-components zimbra-mta-componen
ts zimbra-snmp-components zimbra-store-components zimbra-apache-components zimbra-spell-components zimbra-memcached zimbra-
proxy-components....done
Local package installation started
Installing zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apache
zimbra-spell zimbra-proxy...done
Operations logged to /tmp/zmsetup.20160721-144706.log
Installing LDAP configuration database...done.
Setting defaults...No results returned for A lookup of mail.example.ru
Checked nameservers:
    192.168.100.15 
No results returned for AAAA lookup of mail.example.ru
Checked nameservers:
    192.168.100.15 

DNS ERROR resolving mail.example.ru
It is suggested that the hostname be resolvable via DNS
Change hostname [Yes] No

DNS ERROR resolving MX for mail.example.ru
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] No
done.
Checking for port conflicts

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@mail.example.ru 
******* +Admin Password                        UNSET                         
        +Anti-virus quarantine user:           virus-quarantine.2hwbbw7msh@mail.example.ru 
        +Enable automated spam training:       yes                           
        +Spam training user:                   spam.jedk1fhggz@mail.example.ru 
        +SMTP host:                            mail.example.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.example.com :7780/aspell.php
        +Enable version update checks:         TRUE                          
        +Enable version update notifications:  TRUE                          
        +Version update notification email:    admin@mail.example.ru   
        +Version update source email:          admin@mail.example.ru   
        +Install mailstore (service webapp):   yes                           
        +Install UI (zimbra,zimbraAdmin webapps): yes                           

   7) zimbra-spell:                            Enabled                       
   8) zimbra-proxy:                            Enabled                       
   9) Default Class of Service Configuration:                                
   s) Save config to file                                                    
   x) Expand menu                                                            
   q) Quit                                    

Address unconfigured (**) items  (? - help) 6

Store configuration

   1) Status:                                  Enabled                       
   2) Create Admin User:                       yes                           
   3) Admin user to create:                    admin@mail.example.ru   
** 4) Admin Password                           UNSET                         
   5) Anti-virus quarantine user:              virus-quarantine.2hwbbw7msh@mail.example.ru 
   6) Enable automated spam training:          yes                           
   7) Spam training user:                      spam.jedk1fhggz@mail.example.ru 
   8) Non-spam(Ham) training user:             ham.y4nb2o4bt@mail.example.ru 
   9) SMTP host:                               mail.example.ru          
  10) Web server HTTP port:                    8080                          
  11) Web server HTTPS port:                   8443                          
  12) Web server mode:                         https                         
  13) IMAP server port:                        7143                          
  14) IMAP server SSL port:                    7993                          
  15) POP server port:                         7110                          
  16) POP server SSL port:                     7995                          
  17) Use spell check server:                  yes                           
  18) Spell server URL:                        http://mail.example.ru :7780/aspell.php
  19) Enable version update checks:            TRUE                          
  20) Enable version update notifications:     TRUE                          
  21) Version update notification email:       admin@mail.example.ru    
  22) Version update source email:             admin@mail.example.ru    
  23) Install mailstore (service webapp):      yes                           
  24) Install UI (zimbra,zimbraAdmin webapps): yes                           

Select, or 'r' for previous menu [r] 3

Create admin user: [admin@mail.example.ru ] admin@example.ru 
Password for admin@example.ru  (min 6 characters): [OVJAfSH4V] вашПа0ль123

Store configuration

   1) Status:                                  Enabled                       
   2) Create Admin User:                       yes                           
   3) Admin user to create:                    admin@example.ru          
   4) Admin Password                           set                           
   5) Anti-virus quarantine user:              virus-quarantine.2hwbbw7msh@mail.example.ru 
   6) Enable automated spam training:          yes                           
   7) Spam training user:                      spam.jedk1fhggz@mail.example.ru 
   8) Non-spam(Ham) training user:             ham.y4nb2o4bt@mail.example.ru
   9) SMTP host:                               mail.example.ru         
  10) Web server HTTP port:                    8080                          
  11) Web server HTTPS port:                   8443                          
  12) Web server mode:                         https                         
  13) IMAP server port:                        7143                          
  14) IMAP server SSL port:                    7993                          
  15) POP server port:                         7110                          
  16) POP server SSL port:                     7995                          
  17) Use spell check server:                  yes                           
  18) Spell server URL:                        http://mail.example.ru :7780/aspell.php
  19) Enable version update checks:            TRUE                          
  20) Enable version update notifications:     TRUE                          
  21) Version update notification email:       admin@mail.example.ru    
  22) Version update source email:             admin@mail.example.ru    
  23) Install mailstore (service webapp):      yes                           
  24) Install UI (zimbra,zimbraAdmin webapps): yes                           

Select, or 'r' for previous menu [r] 21

Version update destination address: [admin@mail.example.com ] admin@example.ru 

Store configuration

   1) Status:                                  Enabled                       
   2) Create Admin User:                       yes                           
   3) Admin user to create:                    admin@example.ru       
   4) Admin Password                           set                           
   5) Anti-virus quarantine user:              virus-quarantine.2hwbbw7msh@mail.example.ru
   6) Enable automated spam training:          yes                           
   7) Spam training user:                      spam.jedk1fhggz@mail.example.ru
   8) Non-spam(Ham) training user:             ham.y4nb2o4bt@mail.example.ru 
   9) SMTP host:                               mail.example.ru          
  11) Web server HTTPS port:                   8443                          
  12) Web server mode:                         https                         
  13) IMAP server port:                        7143                          
  14) IMAP server SSL port:                    7993                          
  15) POP server port:                         7110                          
  16) POP server SSL port:                     7995                          
  17) Use spell check server:                  yes                           
  18) Spell server URL:                        http://mail.example.ru :7780/aspell.php
  19) Enable version update checks:            TRUE                          
  20) Enable version update notifications:     TRUE                          
  21) Version update notification email:       admin@example.ru         
  22) Version update source email:             admin@mail.example.ru   
  23) Install mailstore (service webapp):      yes                           
  24) Install UI (zimbra,zimbraAdmin webapps): yes                           

Select, or 'r' for previous menu [r] 22

Version update source address: [admin@mail.example.com ] admin@example.ru 

Store configuration

   1) Status:                                  Enabled                       
   2) Create Admin User:                       yes                           
   3) Admin user to create:                    admin@example.ru         
   4) Admin Password                           set                           
   5) Anti-virus quarantine user:              virus-quarantine.2hwbbw7msh@mail.example.ru 
   6) Enable automated spam training:          yes                           
   7) Spam training user:                      spam.jedk1fhggz@mail.example.ru 
   8) Non-spam(Ham) training user:             ham.y4nb2o4bt@mail.example.ru 
   9) SMTP host:                               mail.example.ru          
  10) Web server HTTP port:                    8080                          
  11) Web server HTTPS port:                   8443                          
  12) Web server mode:                         https                         
  13) IMAP server port:                        7143                          
  14) IMAP server SSL port:                    7993                          
  15) POP server port:                         7110                          
  16) POP server SSL port:                     7995                          
  17) Use spell check server:                  yes                           
  18) Spell server URL:                        http://mail.example.ru :7780/aspell.php
  19) Enable version update checks:            TRUE                          
  20) Enable version update notifications:     TRUE                          
  21) Version update notification email:       admin@example.ru          
  22) Version update source email:             admin@example.ru          
  23) Install mailstore (service webapp):      yes                           
  24) Install UI (zimbra,zimbraAdmin webapps): yes                           

Select, or 'r' for previous menu [r] r

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                       
   7) zimbra-spell:                            Enabled                       
   8) zimbra-proxy:                            Enabled                       
   9) Default Class of Service Configuration:                                
   s) Save config to file                                                    
   x) Expand menu                                                            
   q) Quit                                    

*** CONFIGURATION COMPLETE - press 'a' to apply
Select from menu, or press 'a' to apply config (? - help) a
Save configuration data to a file? [Yes] Yes
Save config in file: [/opt/zimbra/config.6974] 
Saving config in /opt/zimbra/config.6974...done.
The system will be modified - continue? [No] Yes
Operations logged to /tmp/zmsetup.20160721-144706.log
Setting local config values...done.
Initializing core config...Setting up CA...done.
Deploying CA to /opt/zimbra/conf/ca ...done.
Creating SSL zimbra-store certificate...done.
Creating new zimbra-ldap SSL certificate...done.
Creating new zimbra-mta SSL certificate...done.
Creating new zimbra-proxy SSL certificate...done.
Installing mailboxd SSL certificates...done.
Installing MTA SSL certificates...done.
Installing LDAP SSL certificate...done.
Installing Proxy SSL certificate...done.
Initializing ldap...done.
Setting replication password...done.
Setting Postfix password...done.
Setting amavis password...done.
Setting nginx password...done.
Setting BES searcher password...done.
Creating server entry for mail.example.com ...done.
Setting Zimbra IP Mode...done.
Saving CA in ldap...done.
Saving SSL Certificate in ldap...done.
Setting spell check URL...done.
Setting service ports on mail.example.com ...done.
Setting zimbraFeatureTasksEnabled=TRUE...done.
Setting zimbraFeatureBriefcasesEnabled=TRUE...done.
Checking current setting of zimbraReverseProxyAvailableLookupTargets
Querying LDAP for other mailstores
Searching LDAP for reverseProxyLookupTargets...done.
Adding mail.example.com  to zimbraReverseProxyAvailableLookupTargets
Setting TimeZone Preference...done.
Initializing mta config...done.
Setting services on mail.example.com ...done.
Adding mail.example.com  to zimbraMailHostPool in default COS...done.
Creating domain mail.example.com ...done.
Setting default domain name...done.
Creating domain example.com ...done.
Creating admin account admin@example.com ...done.
Creating root alias...done.
Creating postmaster alias...done.
Creating user spam.jedk1fhggz@mail.example.com ...done.
Creating user ham.y4nb2o4bt@mail.example.com ...done.
Creating user virus-quarantine.2hwbbw7msh@mail.example.com ...done.
Setting spam training and Anti-virus quarantine accounts...done.
Initializing store sql database...done.
Setting zimbraSmtpHostname for mail.example.com ...done.
Configuring SNMP...done.
Setting up syslog.conf...done.
Starting servers...done.
Installing common zimlets...
    com_zimbra_cert_manager...done.
    com_zimbra_ymemoticons...done.
    com_zimbra_adminversioncheck...done.
    com_zimbra_tooltip...done.
    com_zimbra_mailarchive...done.
    com_zimbra_viewmail...done.
    com_zimbra_date...done.
    com_zimbra_url...done.
    com_zimbra_email...done.
    com_zimbra_webex...done.
    com_zimbra_attachcontacts...done.
    com_zimbra_bulkprovision...done.
    com_zimbra_srchhighlighter...done.
    com_zimbra_proxy_config...done.
    com_zimbra_attachmail...done.
    com_zimbra_clientuploader...done.
    com_zimbra_phone...done.
Finished installing common zimlets.
Restarting mailboxd...done.
Creating galsync account for default domain...done.

You have the option of notifying Zimbra of your installation.
This helps us to track the uptake of the Zimbra Collaboration Server.
The only information that will be transmitted is:
    The VERSION of zcs installed (8.7.0_GA_1659_RHEL7_64)
    The ADMIN EMAIL ADDRESS created (admin@example.ru )

Notify Zimbra of your installation? [Yes] No
Notification skipped
Setting up zimbra crontab...done.

Moving /tmp/zmsetup.20160721-144706.log to /opt/zimbra/log

Configuration complete - press return to exit

Запускаем сервер:

# su - zimbra
[zimbra@mail ~]$ zmcontrol start
Host mail.example.com 
    Starting zmconfigd...Done.
    Starting logger...Done.
    Starting mailbox...Done.
    Starting memcached...Done.
    Starting proxy...Done.
    Starting amavis...Done.
    Starting antispam...Done.
    Starting antivirus...Done.
    Starting opendkim...Done.
    Starting snmp...Done.
    Starting spell...Done.
    Starting mta...Done.
    Starting stats...Done.
    Starting service webapp...Done.
    Starting zimbra webapp...Done.
    Starting zimbraAdmin webapp...Done.
    Starting zimlet webapp...Done.
[zimbra@mail ~]$

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

https://mail.example.ru:7071

Добавляем узел в исключения и видим панель администрирования.

В случае если страница не отображается – проверяем настройки – firewalld.