Развёртывание почтового сервера Zimbra на виртуальную машину с ОС CentOS 6.5.
Данное решение бесплатно и не имеет лицензионных ограничений.
Не рекомендуется на сегодняшний день ставить на CentOS 7.
В процессе установки операционной системы, рекомендую на этапе указания имени хоста настроить сетевой интерфейс (для экономии время).Не рекомендуется на сегодняшний день ставить на CentOS 7.
Кстати, Hostname при установке укажите по шаблону mail.domain.ru
1) Устанавливаем VM Tools:
https://www.vmware.com/support/ws55/doc/ws_newguest_tools_linux.html
Изменить настройки VM Tools можно через:
vmware-config-tools.pl
2) Настройка сетевой карты и поднятие интерфейса eth0
$ system-config-network-tui
или
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:00:00:00:00:00
TYPE=Ethernet
UUID=62146aee-9a29-4826-9756-30ba7193529c
ONBOOT=yes
IPADDR=192.168.0.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS1=192.168.100.1
DNS2=192.168.100.2
NM_CONTROLLED=yes
BOOTPROTO=static
3) Прописываем DNS сервера
$ vi /etc/resolv.conf
search mail.ru
nameserver 8.8.8.8
nameserver 8.8.4.4
4) Прописывает наш Zimbra сервер в hosts:
$ vi /etc/hosts
192.168.0.100 mail.domain.ru mx
127.0.0.1 localhost.localdomain localhost
(желательно, чтобы запись mail.domain.ru в локальной сети разрешалась в этот же IP)
5) Тоже имя указываем в качестве hostname:
$ vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mail.domain.com
GATEWAY=192.168.0.1
6) Поднимаем интерфейс:
ifup eth0Чтобы происходило это автоматом в файле
vi /etc/sysconfig/network-scripts/ifcfg-eth0 должна быть строка: ONBOOT=yes
7) Установка и настройка NTP клиента:
$ yum install ntp
$ vi /etc/ntp.conf
server dc1.domain.local
server dc2.domain.local
Добавление службы в автозагрузку
$ chkconfig ntpd on
Корректировка временной зоны UTC +3:00
$ cp /usr/share/zoneinfo/Europe/Moscow /etc/localtime
или
$ rm -rf /etc/localtime
$ ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
$ date
8) Установка необходимых пакетов для Zimbra:
$ yum -y install gcc nc libaio.x86_64 unzip.x86_64 perl perl-core wget bind-tools sysstat nc unzip
9) Отключаем Sendmail и Postfix:
$ chkconfig sendmail off
$ chkconfig postfix off
$ service postfix stop
$ service sendmail stop
Если этого не сделать, то получите конфликт на 25м порту:
Checking for port conflicts
Port conflict detected: 25 (zimbra-mta)
Port conflicts detected! - Any key to continue
10) Загрузка Zimbra исходников:
$ wget wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.RHEL6_64.20141215151155.tgz
11) Распаковка:
$ tar zxpf /mnt/cdrom/VMwareTools-9.4.5-1598834.tar.gz
12) Установка (Ставим все компоненты кроме Proxy):
$ cd zcs*
$ ./install.sh
(для деинсталяции ./install.sh -u)
По окончании нужно указать DNS имя и установить пароль Администратора:
Installing LDAP configuration database...done.
Setting defaults...
DNS ERROR resolving MX for mx.domain.local
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] yes
Create domain: [mx.domain.local] domain.local (УКАЗЫВАЕМ ТОЛЬКО ДОМЕН)
MX: mx.domain.local (126.18.180.3)
Interface: 192.168.0.242
Interface: 127.0.0.1
Interface: ::1
DNS ERROR - none of the MX records for kuchuk.net
resolve to this host
It is suggested that the MX record resolve to this host
Re-Enter 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-dnscache: Enabled
6) zimbra-snmp: Enabled
7) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@kuchuk.net
******* +Admin Password UNSET
+Anti-virus quarantine user: virus-quarantine.lv2m_xm8h@kuchuk.net
+Enable automated spam training: yes
+Spam training user: spam.igkiplbw@kuchuk.net
+Non-spam(Ham) training user: ham.lyxjdldvhw@kuchuk.net
+SMTP host: mx.kuchuk.net
+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://mx.kuchuk.net:7780/aspell.php
+Enable version update checks: TRUE
+Enable version update notifications: TRUE
+Version update notification email: admin@kuchuk.net
+Version update source email: admin@kuchuk.net
+Install mailstore (service webapp): yes
+Install UI (zimbra,zimbraAdmin webapps): yes
8) zimbra-spell: Enabled
9) zimbra-proxy: Enabled
10) Default Class of Service Configuration:
s) Save config to file
x) Expand menu
q) Quit
Address unconfigured (**) items (? - help) 7
Store configuration
1) Status: Enabled
2) Create Admin User: yes
3) Admin user to create: admin@kuchuk.net
** 4) Admin Password UNSET
5) Anti-virus quarantine user: virus-quarantine.lv2m_xm8h@kuchuk.net
6) Enable automated spam training: yes
7) Spam training user: spam.igkiplbw@kuchuk.net
8) Non-spam(Ham) training user: ham.lyxjdldvhw@kuchuk.net
9) SMTP host: mx.kuchuk.net
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://mx.kuchuk.net:7780/aspell.php
19) Enable version update checks: TRUE
20) Enable version update notifications: TRUE
21) Version update notification email: admin@kuchuk.net
22) Version update source email: admin@kuchuk.net
23) Install mailstore (service webapp): yes
24) Install UI (zimbra,zimbraAdmin webapps): yes
Select, or 'r' for previous menu [r] 4
Password for admin@kuchuk.net (min 6 characters): [3DT6r5] Passw0rd (ПАРОЛЬ УКАЗВАЕМ)
Store configuration
1) Status: Enabled
2) Create Admin User: yes
3) Admin user to create: admin@kuchuk.net
4) Admin Password set
5) Anti-virus quarantine user: virus-quarantine.lv2m_xm8h@kuchuk.net
6) Enable automated spam training: yes
7) Spam training user: spam.igkiplbw@kuchuk.net
8) Non-spam(Ham) training user: ham.lyxjdldvhw@kuchuk.net
9) SMTP host: mx.kuchuk.net
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://mx.kuchuk.net:7780/aspell.php
19) Enable version update checks: TRUE
20) Enable version update notifications: TRUE
21) Version update notification email: admin@kuchuk.net
22) Version update source email: admin@kuchuk.net
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-dnscache: Enabled
6) zimbra-snmp: Enabled
7) zimbra-store: Enabled
8) zimbra-spell: Enabled
9) zimbra-proxy: Enabled
10) 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
/opt/zimbra/libexec/zmsetup.pl
13) Включение доступа как с http так и с https:
$ su zimbra
$ zmtlsctl both
14) Меняем SSH порт (если нужно вам):
$ vi /etc/ssh/sshd_conf
Port 77722
$ su zimbra
$ zmprov mcf zimbraRemoteManagementPort 9242
15) Открываем порты в IPtables:
$ vi /etc/sysconfig/iptables
# SSH
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
# HTTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
# SMTP - Postfix
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
# POP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
# IMAP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
# HTTPs
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
# SMTPs - Postfix
-A INPUT -m state --state NEW -m tcp -p tcp --dport 465 -j ACCEPT
# IMAPs
-A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
# POP3s
-A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT
# LMTP
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7025 -j ACCEPT
# HTTPs - Admin Console
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7071 -j ACCEPT
Они должны быть до строк:
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
16) Проверяем почту:
https://192.168.0.100
17) Проверяем Админку:
https://192.168.0.100:7071/
Полезным может быть видео:
Развёртывание Zimbra за NAT-ом (DNSMASQ)
Как изменить приветствие helo в Zimbra:
su zimbra
zmlocalconfig -e postfix_smtpd_banner="mail.mydomain.com NO UCE ESMTP"
postconf -e smtpd_banner="mail.mydomain.com NO UCE ESMTP"
zmmtactl reload
Если не помогло:
su zimbra
zmprov mcf zimbraMtaMyHostname mail.mydomain.com
zmcontrol stop && zmcontrol start
Также можете заглянуть в файл /opt/zimbra/postfix/conf/main.conf или /opt/zimbra/postfix-**.*.*/conf/main.conf (с указанием версии). Нужно правки делать в обоих фалах, чтобы были идентичны. Либо пользоваться командами zmlocalconfig, postconf (представлены выше).
http://mtaalamu.ru
https://community.zimbra.com
https://community.zimbra.com
Настройка авторизацию в Active Directory для Zimbra:
Оптимизация загрузки процессора и памяти системы под Zimbra:
$ vi /opt/zimbra/conf/my.cnf
innodb_buffer_pool_size = 384M
innodb_buffer_pool_size = 384M
$ vi /opt/zimbra/conf/amavisd.conf.in
max_servers = 2
max_servers = 2
Memory Allocation
Both the Java mailboxd and MariaDB/MySQL processes that are part of the mailbox service benefit from more memory, with a few caveats. Allocation of memory to these two processes is done through the local config variable mailboxd_java_heap_size (in ZCS7 and later) mailboxd_java_heap_memory_percent (in ZCS6 and earlier) and the my.cnf variable innodb_buffer_pool_size (details on both are in the following sections). In a new install, ZCS tries to allocate 30% of system memory to the Java heap, and 25% of system memory to innodb buffer pool. Please make sure that you do not configure these values too high for your system. If these values are too high, your system will swap and swapping is extremely detrimental to ZCS performance. Check the JVM Options section to see if you should reduce your heap memory percent. If you believe your system has unused RAM, you can allocate this memory to innodb buffer pool, only after you have monitored your system and made sure your system in not swapping.
On a <8GB system, set Java heap size percent to 20 and mysql innodb buffer pool to 20% of system memory.
On a 8GB system, set Java heap size percent to 30 and mysql innodb buffer pool to 25% of system memory.
On a 16GB system, set Java heap size percent to 25 and mysql innodb buffer pool to 30% of system memory, monitor and then increase innodb buffer pool size.
On a 32GB system, set Java heap size percent to 20 and mysql innodb buffer pool to 35% of system memory, monitor and then increase innodb buffer pool size.
Never run memory hungry processes like rsync or imapsync along side a mailbox server.
http://wiki.zimbra.com
Настройка Глобальной адресной книги (GAL) в Zimbra:
http://wiki.zimbra.com/wiki/GAL_Sync_Account
Экспорт и настройка сертификата Zimbra:
1) Выполнить с правами Root на сервере Zimbra:
openssl x509 -in ca.pem -outform DER -out ~/zimbra.cer
1) Узнать какие компоненты Zimbra установлены:
zmcontrol status
Host mx.kuchuk.net
amavis Running
antispam Running
antivirus Running
dnscache Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
opendkim Running
proxy Running
service webapp Running
snmp Running
spell Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running
2) Выяснить какие порты используются:
zmprov -l gs `zmhostname` | grep -i port
3) Выставляем значение портов под службы Proxy в 0:
zmprov ms `zmhostname` zimbraImapProxyBindPort 0
zmprov ms `zmhostname` zimbraImapSSLProxyBindPort 0
zmprov ms `zmhostname` zimbraPop3ProxyBindPort 0
zmprov ms `zmhostname` zimbraPop3SSLProxyBindPort 0
4) Выставляем стандартные значения не "Proxy2 портов:
zmprov ms `zmhostname` zimbraImapBindPort 143
zmprov ms `zmhostname` zimbraImapSSLBindPort 993
zmprov ms `zmhostname` zimbraPop3BindPort 110
zmprov ms `zmhostname` zimbraPop3SSLBindPort 995
5) Включаем 2 необходимые службы:
zmprov ms `zmhostname` -zimbraServiceEnabled memcached
zmprov ms `zmhostname` -zimbraServiceEnabled imapproxy
6) Останавливаем службы Proxy сервиса и перегружаем почтовую службу Zibra:
zmproxyctl stop
zmmemcachedctl stop
zmmailboxdctl stop
zmmailboxdctl start
2) Скачиваем себе сертификат с сервера Zibra:
Я воспользовался программой WinSCP
3) Устанавливаем при помощи групповой политики данный сертификат на все пользовательские машины в домене (если у вас есть домен): Руководство
Помогло это руководство: interface31.ru
Backup Zimbra:
Структура директорий Zimbra для Backup
Backup&Restore скрипты
Полезно:
ZmSetServerName
postconf -e smtp_helo_name='emailserver.yourdomain.com'
zmlocalconfig -e postfix_smtp_helo_name = 'emailserver.yourdomain.com'
postconf -e smtpd_banner='$smtp_helo_name ESMTP $mail_name'
zmlocalconfig -e postfix_smtpd_banner = '$smtp_helo_name ESMTP $mail_name'
Вывод приложений работающих на порту 53:
lsof -Pn +M | grep ':53 (LISTEN)'
Вывод наиболее тяжёлых каталогов:
du / -hx | sort -nr | grep [0-9][G,M] | head -n50
Удалить домен:
zmprov dd kuchuk.net
Создать домен:
zmprov cd kuchuk.net
Установить домен по-умолчанию:
zmprov mcf zimbraDefaultDomainName domain.com
Учётки:
Создать админскую учётку:
zmprov ca admin@domain.com PASSW0RD zimbraIsAdminAccount TRUE
Дать учётке права админа:
zmprov ma user@domain.com zimbraIsAdminAccount TRUE
Создать учётную запись:
zmprov ca user@domain.com PASSW0RD
Создать пользователя с указанием Имени, Фамилии и формы отображения:
zmprov ca name@example.com PASSW0RDcn "Firstname Lastname" displayName "Firstname Lastname" givenName "Firstname" zimbraPrefFromDisplay "Firstname Lastname"
Удалить учётку:
zmprov da user@domain.com
Вывести список пользователей:
zmprov gaa
Вывести список пользователей и их конфигураций в данном домене:
zmprov gaa -v domain.com
Изменить Пароль:
zmprov sp testadmin@domain.com NEW_PASSW0RD
Вывести список админов:
zmprov gaaa
Другое:
Пересылка писем с одного ящика на другой:
zmprov ca user@domain.com PASSW0RD zimbraMailForwardingAddress user@otherdomain.com
Создать Псевдоним для учётки:
zmprov aaa accountname@domain.com aliasname@domain.com
Создать группу рассылки:
zmprov cdl listname@domain.com
Добавить учётку в группу рассылки:
zmprov adlm listname@domain.com member@domain.com
Вывести пароли системных учёток:
$ zmlocalconfig -s |grep ldap |grep password
ldap_amavis_password = zmamavis
ldap_nginx_password = zmnginx
ldap_postfix_password = zmpostfix
ldap_replication_password = zmreplica
ldap_root_password = A1eRG0zP
zimbra_ldap_password = A1eRG0zP
Вывести версию:
$ zmcontrol -v
Release 5.0.9_GA_2534.RHEL4_20080814054137 RHEL4 NETWORK edition
Backup&Restore скрипты
Полезно:
ZmSetServerName
postconf -e smtp_helo_name='emailserver.yourdomain.com'
zmlocalconfig -e postfix_smtp_helo_name = 'emailserver.yourdomain.com'
postconf -e smtpd_banner='$smtp_helo_name ESMTP $mail_name'
zmlocalconfig -e postfix_smtpd_banner = '$smtp_helo_name ESMTP $mail_name'
Вывод приложений работающих на порту 53:
lsof -Pn +M | grep ':53 (LISTEN)'
Вывод наиболее тяжёлых каталогов:
du / -hx | sort -nr | grep [0-9][G,M] | head -n50
Настройка Антиспам в Zimbra:
http://as.zabedu.ruУправление Учётками и Доменами в Zimbra:
Домены:Удалить домен:
zmprov dd kuchuk.net
Создать домен:
zmprov cd kuchuk.net
Установить домен по-умолчанию:
zmprov mcf zimbraDefaultDomainName domain.com
Учётки:
Создать админскую учётку:
zmprov ca admin@domain.com PASSW0RD zimbraIsAdminAccount TRUE
Дать учётке права админа:
zmprov ma user@domain.com zimbraIsAdminAccount TRUE
Создать учётную запись:
zmprov ca user@domain.com PASSW0RD
Создать пользователя с указанием Имени, Фамилии и формы отображения:
zmprov ca name@example.com PASSW0RDcn "Firstname Lastname" displayName "Firstname Lastname" givenName "Firstname" zimbraPrefFromDisplay "Firstname Lastname"
Удалить учётку:
zmprov da user@domain.com
Вывести список пользователей:
zmprov gaa
Вывести список пользователей и их конфигураций в данном домене:
zmprov gaa -v domain.com
Изменить Пароль:
zmprov sp testadmin@domain.com NEW_PASSW0RD
Вывести список админов:
zmprov gaaa
Другое:
Пересылка писем с одного ящика на другой:
zmprov ca user@domain.com PASSW0RD zimbraMailForwardingAddress user@otherdomain.com
Создать Псевдоним для учётки:
zmprov aaa accountname@domain.com aliasname@domain.com
Создать группу рассылки:
zmprov cdl listname@domain.com
Добавить учётку в группу рассылки:
zmprov adlm listname@domain.com member@domain.com
Вывести пароли системных учёток:
$ zmlocalconfig -s |grep ldap |grep password
ldap_amavis_password = zmamavis
ldap_nginx_password = zmnginx
ldap_postfix_password = zmpostfix
ldap_replication_password = zmreplica
ldap_root_password = A1eRG0zP
zimbra_ldap_password = A1eRG0zP
Вывести версию:
$ zmcontrol -v
Release 5.0.9_GA_2534.RHEL4_20080814054137 RHEL4 NETWORK edition
Примеры: wiki.zimbra.com
Disk Layout
- I generally create two partitions: /boot and the rest a LVM partition
- Inside I create a volume group with the name vg00, and create inside of it:
- lvRoot mounted on /
- lvTmp mounted on /tmp
- lvVar mounted on /var
- lvOpt mounted on /opt
- lvSwap
- Unallocated space for expansion of any non-lvOpt partition that threatens to get full. I treat lvOpt differently because it’s the mail storage partition, and if it fills up I want to at least double the amount of space available. If /opt starts to get full, I will:
- add a whole new disk,
- add it as a physical volume,
- expand the volume group with the physical volume,
- expand lvOpt, and
- expand the /opt filesystem.
http://jamesreubenknowles.com/installing-zimbra-7-on-centos-1327
Что делать если /opt переполнился:
http://dev.digi-corp.com/2009/09/moving-opt-data-to-new-partition-in-linux-due-to-low-disk-space/
Просмотр Логов:
tail -f /var/log/zimbra.logКак деинсталировать Zimbra Proxy:
zmcontrol status
Host mx.kuchuk.net
amavis Running
antispam Running
antivirus Running
dnscache Running
ldap Running
logger Running
mailbox Running
memcached Running
mta Running
opendkim Running
proxy Running
service webapp Running
snmp Running
spell Running
stats Running
zimbra webapp Running
zimbraAdmin webapp Running
zimlet webapp Running
zmconfigd Running
zmprov -l gs `zmhostname` | grep -i port
3) Выставляем значение портов под службы Proxy в 0:
zmprov ms `zmhostname` zimbraImapProxyBindPort 0
zmprov ms `zmhostname` zimbraImapSSLProxyBindPort 0
zmprov ms `zmhostname` zimbraPop3ProxyBindPort 0
zmprov ms `zmhostname` zimbraPop3SSLProxyBindPort 0
4) Выставляем стандартные значения не "Proxy2 портов:
zmprov ms `zmhostname` zimbraImapBindPort 143
zmprov ms `zmhostname` zimbraImapSSLBindPort 993
zmprov ms `zmhostname` zimbraPop3BindPort 110
zmprov ms `zmhostname` zimbraPop3SSLBindPort 995
5) Включаем 2 необходимые службы:
zmprov ms `zmhostname` -zimbraServiceEnabled memcached
zmprov ms `zmhostname` -zimbraServiceEnabled imapproxy
6) Останавливаем службы Proxy сервиса и перегружаем почтовую службу Zibra:
zmproxyctl stop
zmmemcachedctl stop
zmmailboxdctl stop
zmmailboxdctl start
Хорошая статья, но есть пара вопросов:
ОтветитьУдалить# это мы меняем пароль для админки?
zmprov mcf zimbraRemoteManagementPort 9242
# устанавливая сервис zimbra-dnscache мы получаем локальный кеширующий dns?
1) Это смена стандартного порта. Если вы не будете менять стандартный порт SSH, то и это делать не нужно.
ОтветитьУдалить2) Да. Но рекомендую вместо него поставить dns-masq
Понял, спасибо, и последний вопрос, за что отвечает zimbra-spel?
УдалитьПро назначение пакетов Zimbra можно почитать тут:
Удалитьhttps://www.zimbra.com/docs/ne/6.0.6/multi_server_install/planning%20a%20multi-server%20instalaltion.3.1.html
Здравствуйте!
ОтветитьУдалитьПодскажите, пожалуйста, куда копать:
в заголовках писем, отправленных с моего сервера, присутствуют записи Received from localhost [127.0.0.1]), поэтому они пападают в спам у получателей.
Быть может в настройках Helo стоит это значение.
УдалитьНапишите мне на почту ваш Skype. Думаю можно будет совместно посмотреть.