Хочу поделиться опытом установки почтового сервера 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.