实施Zimbra协作开源,通过AD授权,并自动创建邮箱

图片

1.源数据


服务器操作系统 :CentOS 7

关于操作系统
实际上,CentOS7与任何其他系统之间的区别仅在于向服务器发送命令以安装依赖项,以及可能安装某些文件的位置。 该工作主要是使用Zimbra cmdlet进行的,因此配置差异将最小。

Windows域 :home.local
邮件服务器地址和名称 :10.40.0.80 / zimbramail.home.local
用户访问AD目录 :ZimbraLDAP,密码为qwe123

2.陷阱


Zimbra本身的安装过程非常简单。 您需要安装从属软件包,下载档案文件,运行脚本并正确回答安装程序的问题。 但是,像其他地方一样,也存在一些小困难。

1)Zimbra对主机名敏感。 安装之前的第一件事是将/ etc / hosts文件转换为以下形式:

127.0.0.1 localhost.localdomain localhost 10.40.0.80 zimbramail.home.local zimbramail 

2)如果无法访问互联网,奇迹将不会发生。 如果无法访问Internet,则该脚本将冻结20-40分钟,因此,其结果当然是错误。 看来,为什么我们需要一台不能访问Internet的邮件服务器,但“在月球下世界才不会发生这种情况”。

3.直接安装


所以到了重点!

1)安装依赖项:

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

2)下载档案:

 $ wget https://files.zimbra.com/downloads/8.8.11_GA/zcs-8.8.11_GA_3737.RHEL7_64.20181207111719.tgz 

3)解压缩下载的档案,进入目录并开始安装:

 $ tar –xzf zcs-8.8.11_GA_3737.RHEL7_64.20181207111719.tgz $ cd zcs-8.8.11_GA_3737.RHEL7_64.20181207111719 $ ./install.sh --platform-override 

4)同意许可协议并使用Zimbra存储库:

 Do you agree with the terms of the software license agreement? [N] Y Use Zimbra's package repository [Y] Y 

5)选择必要的组件并确认更改:

显示文字
 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] N The system will be modified. Continue? [N] Y 

6)接下来,您需要输入Zimbra的管理员密码:

显示文字
 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@zimbramail.home.local ******* +Admin Password UNSET +Anti-virus quarantine user: virus-quarantine.2hwbbw7msh@zimbramail.ciam.local +Enable automated spam training: yes +Spam training user: spam.jedk1fhggz@zimbramail.home.local +Non-spam(Ham) training user: ham.y4nb2o4bt@zimbramail.home.local +SMTP host: zimbramail.home.local +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:// zimbramail.home.local :7780/aspell.php +Enable version update checks: TRUE +Enable version update notifications: TRUE +Version update notification email: admin@zimbramail.home.local +Version update source email: admin@zimbramail.home.local +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 Select, or 'r' for previous menu [r] 4 Password for admin@example.com (min 6 characters): [MFSPcRW18] qwe123 


此菜单的其余部分对我们并不感兴趣。 但是 默认情况下,Zimbra将在其zmhostname(读取的主机名)的映像和相似图中创建其自己的内部域,即域zimbramail.home.local。 如果您不喜欢,则此选项很适合我,并且域名必须严格对应于[home.local],然后,我建议立即将用于接收版本更新通知和版本更新源的地址更改为admin@home.local

7)在这里,您需要单击[a]按钮以应用更改,然后同意将配置保存到文件并再次按[Enter]继续安装。

单词“ done”完成后,系统未挂起,它等待按键被按下。

显示文字
 Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Save config in file: [/opt/zimbra/config.10925] Saving config in /opt/zimbra/config.10925...done. 


接下来,安装脚本开始工作,然后提供按任意键继续的功能

8)安装完成后,需要在防火墙中打开所需的端口。 端口列表可在开发人员Wiki上找到,网址为

9)我强烈建议您确保Zimbra正确理解了所有内容,并且其zmhostname与服务器的主机名匹配:

 $ su – zimbra $ zmhostname zimbramail.home.local 

如果名称不匹配,请执行以下操作:

a)首先,检查DNS中是否有新zmhostname的A和MX记录,如果没有,请创建它们

b)
 $ su – zimbra /opt/zimbra/libexec/zmsetservername -n [servername] 

c)我们清理zmloggerhostmap:

 $ zmloggerhostmap 

此命令列出所有主机名映射。

通过命令删除:

 $ zmloggerhostmap -d localhost localhost.localdomain 

需要将Hostname和localhost.localdomain替​​换为Hostname Map列表中的一行
然后重新启动Zimbra

10)我们启动服务器:

 $ su – zimbra $ zmcontrol start 

显示文字
  Host zimbramail.home.local 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. 

现在该服务器位于https://zimbramail.home.local:7071

图片

11)为了能够同时通过https和http访问服务器,请执行以下操作:

 $ su – zimbra $ zmtlsctl both $ zmcontrol restart 

12)对于那些无法访问Internet或服务器位于NAT之后的用户,您仍然需要注册以下命令:

 $ su – zimbra $ zmprov ms zimbramail.home.local zimbraMtaLmtpHostLookup native $ zmcontrol restart 

zmprov是用于管理服务器设置的实用程序,当我们需要配置邮箱的自动创建,其备份和恢复以及邮件列表的自动创建和更新时,我们仍然需要它。 但是稍后会更多。

13)通过将证书从证书颁发机构导入服务器可以解决自签名证书的问题。

或者通过从Zimbra服务器导出证书:

 $ cd /opt/zimbra/ssl/zimbra/ca $ openssl x509 -in ca.pem -outform DER -out ~/zimbra-mail-example.cer 

然后通过在客户端计算机的“受信任的根证书颁发机构”中安装证书,将其导出到域的客户端计算机,域或组策略。

这样就完成了安装和初始设置。

4.通过LDAP配置授权


首先,您需要在AD中创建一个用户来访问目录。 我有它ZimbraLDAP,然后通过Web转到管理控制台,并在zimbramail.home.local域中配置授权。

1)转到“设置”-“域”,RMB通过域名-“配置身份验证”:

图片

2)选择“外部Active Directory”,然后单击下一步:

图片

3)在“ AD域名”字段中输入域名,在“ ldap://”字段中输入域名或域控制器的名称,或域控制器的IP。 我有几个控制器,所以我写了域名。 端口保持不变。 点击下一步:

图片

4)LDAP绑定保持不变。

5)认证配置摘要。 ZimbraLDAP用户名,qwe123密码。 点击“测试”按钮:

图片

设置外部组负责在AD Zimbra中确切搜索用户的位置以及将应用哪些过滤器。 您可以应用过滤器:

 (&(objectClass=user)(objectClass=person)) 

在这种情况下,将仅选择AD用户和person对象。 并且将不使用“外部组LDAP搜索基础”参数,在EAGER模式的配置过程中,它将由“ zimbraAutoProvLdapSearchBase ”代替。

现在,用户将使用其AD密码登录。 即使创建新邮箱,也无法设置密码。

5.配置自动邮箱创建


一点理论:

Zimbra有3个创建盒子的选项:

EAGER-全自动,它会定期扫描AD并为新用户创建邮箱。

LAZY-半自动,在用户首次使用域凭据登录到邮件服务器时创建一个邮箱。

手动 -手动搜索和选择需要为其创建邮箱的帐户。

由于明显的原因,MANUAL模式仅适用于人员流动缓慢的小型公司。 LAZY模式适用于通过Web界面使用邮件,而无需连接邮件客户端。 这两个选项都不适合我,因为任务是最大程度地自动化(自动安装Zimbra Desktop客户端应用程序,因此用户只需输入登录密码并访问邮件)。 因此,只有EAGER。 是的,说实话更方便。

为了方便编辑和应用参数,创建文件更加方便。 设为/ tmp / prov

该文件的内容如下:

文件内容
 md zimbramail.home.local zimbraAutoProvAccountNameMap "samAccountName" md zimbramail.home.local +zimbraAutoProvAttrMap description=description md zimbramail.home.local +zimbraAutoProvAttrMap displayName=displayName md zimbramail.home.local +zimbraAutoProvAttrMap givenName=givenName md zimbramail.home.local +zimbraAutoProvAttrMap cn=cn md zimbramail.home.local +zimbraAutoProvAttrMap sn=sn md zimbramail.home.local zimbraAutoProvAuthMech LDAP md zimbramail.home.local zimbraAutoProvBatchSize 300 md zimbramail.home.local zimbraAutoProvLdapAdminBindDn "CN=ZimbraLDAP,OU=HOME_Users,DC=home,DC=local" md zimbramail.home.local zimbraAutoProvLdapAdminBindPassword qwe123 md zimbramail.home.local zimbraAutoProvLdapBindDn "admin@zimbramail.home.local" md zimbramail.home.local zimbraAutoProvLdapSearchBase "CN=HOME_Users,dc=home,dc=local" md zimbramail.home.local zimbraAutoProvLdapSearchFilter "(&(objectClass=user)(objectClass=person))" md zimbramail.home.local zimbraAutoProvLdapURL "ldap://home.local:389" md zimbramail.home.local zimbraAutoProvMode EAGER md zimbramail.home.local zimbraAutoProvNotificationBody "Your account has been auto provisioned. Your email address is ${ACCOUNT_ADDRESS}." md zimbramail.home.local zimbraAutoProvNotificationFromAddress prov-admin@zimbramail.home.local md zimbramail.home.local zimbraAutoProvNotificationSubject "New account auto provisioned" ms zimbramail.home.local zimbraAutoProvPollingInterval "1m" ms zimbramail.home.local +zimbraAutoProvScheduledDomains "zimbramail.home.local" 


更多理论:

该文件包含用于分配变量的命令。 因此,例如,参数zimbraAutoProvAttrMap cn = cn意味着Zimbra将以“显示名称”(AD中的CN)将被替换为Zimbra中的“显示名称”字段的方式来形成其框。

zimbraAutoProvLdapAdminBindDn参数负责Zimbra将用于访问AD目录的帐户。 在这种情况下,“ CN = ZimbraLDAP,OU = HOME_Users,DC = home,DC = local”,这意味着:使用显示名称为ZimbraLDAP的帐户存储在OU HOME_Users中,该帐户位于home.local域的根目录中

zimbraAutoProvLdapAdminBindPassword存储ZimbraLDAP帐户的密码

zimbraAutoProvLdapBindDn存储zimbramail.home.local域的Zimbra服务器管理员帐户

zimbraAutoProvLdapSearchBase负责OU,Zimbra将在其中查找域帐户以创建邮箱。 就我而言,这是ZimbraLDAP用户所在的容器

zimbraAutoProvPollingInterval是与AD联系以搜索新帐户的时间段。

使用其余的参数,一切都变得清晰了。

在开发人员的网站上写道,如果您使用的Zimbra版本最高为8.0.8,则要使EAGER模式正常工作,还需要将zimbraAutoProvLastPolledTimestamp参数设置为空值“”,否则它将不能多次使用。

接下来,执行命令:

 $ su – zimbra $ zmprov < /tmp/prov 

要查看所有zmprov值,可以输入以下命令:

 $ su – zimbra $ zmprov gd zimbramail.home.local 

您可以使用相同的zmprov实用程序来编辑参数,重写变量的值(实用程序-动作-域-变量-值)可以帮助调试:

 $ su – zimbra $ zmprov md zimbramail.home.local zimbraAutoProvBatchSize 200 

在开发人员的站点上,有一小段LDAP错误疑难解答。 自动启动日志写在/opt/zimbra/log/mailbox.log中

友情链接

还有一点保留。 我收到了LevZ的反馈,该反馈从头开始设置了服务器。 版本8.8.12_GA_3794.RHEL7_64_20190329045002 RHEL7_64 FOSS版本,补丁8.8.12_P1代理。

事情是这样:全新安装后,需要初始化参数“ zimbraAutoProvScheduledDomains”-运行不带“ +”号的命令“ ms zimbraAutoProvScheduledDomains”。 如果立即写“ + zimbraAutoProvScheduledDomains”,则不会记录该记录,并且该过程不会启动。

感谢此人提供的信息!

6.安装客户端应用程序


从官方网站下载最新版本的msi软件包。 我们将其复制到所有人都可以读取的共享网络文件夹中。 您可以将其复制到Netlogon,但是该软件包的重量超过100 MB,因此我决定使用该球。

Zimbra Desktop使用Java,这意味着您需要下载它并将其放在同一文件夹中。
进一步品尝-KIX,GPO,指针。 我使用GPO。

在同一球中,创建具有以下内容的installZimbra.cmd文件:

 \\SharedFolder\jrex64.exe INSTALL_SILENT=Enable \\SharedFolder\ZimbraInstall.msi /q /norestart 

在前面创建的“计算机配置”-“ Windows配置”-“脚本(开始/结束)”-“启动”部分中添加。 该脚本将以静默方式安装Java和Zimbra Desktop,并且不需要重新启动。 接下来-幻想管理员的狂欢。

但是 为了在我们的服务器上配置Zimbra Desktop,您需要用手驱动参数。

图片

因此,对于用户,您需要创建一种说明备忘录,其中需要驱动的字段以及单击该按钮以访问邮件的字段。 一般来说,这并不困难。

结论


因此,我们非常迅速且相当迅速地实施了基于Zimbra协作套件的完全免费的公司交互系统,建立了与域的交互,简化了邮箱的创建,并消除了许多额外帐户的问题。

在我看来,Zimbra是公司细分市场中相当强大的工具。 但是已经有大量文章对此进行了介绍,我不会对其进行介绍。

PS:
下一篇文章将重点介绍备份和还原Zimbra OSE邮箱。
第三篇文章介绍了基于Zimbra OSE中AD用户组的邮件列表的自动生成和更新。

Source: https://habr.com/ru/post/zh-CN439440/


All Articles