用VirtualBox创建虚拟机。
操作系统:Ubuntu 16.04,最小化安装操作系统,不要安装DNS服务器、邮件服务器等组件,否则在安装Zimbra之前需要手动关闭掉相关服务。
内存:1G。Zimbra要求单机安装内存不少于8G,没那么多内存,只安装必需组件,也够用
磁盘:两块,每块10G,分别专门安装操作系统与Zimbra,也可以只一块磁盘。无论如何,在安装时要有不少于5G的磁盘空间,否则安装程序会报错。
Zimbra安装包:去Zimbra官网下载,选择带Open Source(免费)字样的链接,进去后选择与操作系统相匹配的包,下载到本地。本例是:zcs-8.8.11_GA_3737.UBUNTU16_64.20181207111719.tgz,这个是目前为止最新的。
当前虚拟机有两块网卡,主网卡IP是10.0.2.15,属于NAT网络,可以连接外网,用来下载软件包。
另一块是192.168.56.10,静态IP地址,属于仅主机HOST网络,用来与宿主机通信,通过浏览器访问邮箱时就是通过这个网址。
关于如何用VirtualBox创建虚拟机,如何为其创建网络,可参考本博客中VirtualBox相关文章。
邮件系统有一个标准的组件叫作MTA(邮件转发代理),安装这个组件的主机必需在DNS中有相应的A记录与MX记录。本例用bind9搭建一个局域网范围的DNS供MTA使用。
首先创建一个"zone",粗略理解zone就是一个域名的集合,一般按所归属的组织、功能划分,目的是方便管理。比如sohu.com,这就是一个"zone",下边管理的可能有sport.sohu.com、news.sohu.com、mail.sohu.com、aaa.bbbb.sohu.com等,总之sohu.com之下的域名都归它管。
局域网内的zone可以随意创建,我创建的是“test.com”,步骤如下:
第一步:为当前虚拟机设定全名。执行hostname查看当前主机名,我的是"zimbra"。结合刚才规划的域名"test.com",这台主机的全名应该是"zimbra.test.com"。打开/etc/hosts文件,增加“192.168.56.10 zimbra.test.com zimbra”。
第二步:安装bind9
apt-get install bind9
apt-get update
apt-get upgrade
第三步:配置bind9
打开文件/etc/bind/named.conf.default-zones,在末尾增加如下内容:
zone "test.com" {
type master;
file "/etc/bind/db.test.com";
};
注意zone后边是test.com,就是刚才规划好的zone名称,不要写错。这个文件的意思是有一个“test.com”的zone,这个zone管理的域名定义在db.test.com文件中,保存后运行named-checkconf检查一下格式:
root@zimbra:~# named-checkconf /etc/bind/named.conf.default-zones
root@zimbra:~# echo $?
0
root@zimbra:~#
出错的话说明格式有问题(比如双引号写成中文的等)。
接下来创建/etc/bind/db.test.com文件,内容如下:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA zimbra.test.com. admin.test.com. (
20190316 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
IN NS zimbra
IN MX 10 mail
zimbra IN A 192.168.56.10
mail IN A 192.168.56.10
www IN A 192.168.56.10
ftp IN CNAME www
关于这个文件的格式问题,可以参考:http://blog.chinaunix.net/uid-20094216-id-1977734.html,里边解析的很详细。保存以后运行named-checkzone检察格式:
root@zimbra:~# named-checkzone test.com /etc/bind/db.test.com
zone test.com/IN: loaded serial 20190316
OK
root@zimbra:~#
接下来修改/etc/bind/named.conf.options:
listen-on port 53 {127.0.0.1;192.168.56.10;};
主要是把192.168.56.10这个地址加进去,让bind9在这个地址上监听,其它内容不要修改。
修改/etc/resov.conf,在最前头增加"nameserver 192.168.56.10",要加在最前头,否则可能不起作用。注意以后系统重启,这次修改会失效,注意要手动修改。
查看Zimbra安装脚本关于检测DNS环境的部分,手动执行命令确认一下。如下:
root@zimbra:/etc/bind# nslookup -query=mx test.com
Server: 192.168.56.10
Address: 192.168.56.10#53
test.com mail exchanger = 10 mail.test.com.
root@zimbra:/etc/bind#
查询test.com区域下的MX记录,可以看到,返回的结果为mail.test.com。然后再查询一下mail.test.com的A记录,如下;
root@zimbra:/etc/bind# nslookup mail.test.com
Server: 192.168.56.10
Address: 192.168.56.10#53
Name: mail.test.com
Address: 192.168.56.10
root@zimbra:/etc/bind#
确认返回的地址:192.168.56.10,确认无问题。
Zimbra的安装很简单,参考官方文档:https://zimbra.github.io/installguides/latest/single.html#Installing_Zimbra_Collaboration_Software
按文档及安装过程中的提示一步一步来就可以,有几个地方特别说明一下:
Select the packages to install
Install zimbra-ldap [Y] Y
Install zimbra-logger [Y] N
Install zimbra-mta [Y] Y
Install zimbra-dnscache [Y] N
Install zimbra-snmp [Y] N
Install zimbra-store [Y] Y
Install zimbra-apache [Y] N
Install zimbra-spell [Y] N
Install zimbra-memcached [Y] N
Install zimbra-proxy [Y] Y
Install zimbra-drive [Y] N
Install zimbra-imapd (BETA - for evaluation only) [N] N
Install zimbra-chat [Y] N
接下来是安装脚本下载并安装软件包,保证不要断网,耐心等待。DNS ERROR resolving MX for zimbra.test.com
It is suggested that the domain name have an MX record configured in DNS
Change domain name? [Yes] Y
Create domain: [zimbra.test.com] test.com
MX: mail.test.com (192.168.56.10)
Interface: 10.0.2.15
Interface: 192.168.56.10
Interface: 127.0.0.1
Interface: ::1
Main menu
1) Common Configuration:
2) zimbra-ldap: Enabled
3) zimbra-mta: Enabled
4) zimbra-store: Enabled
+Create Admin User: yes
+Admin user to create: admin@test.com
******* +Admin Password UNSET
+Anti-virus quarantine user: virus-quarantine.kvgxhg5p@test.com
+Enable automated spam training: yes
+Spam training user: spam.ptwcrw6l@test.com
+Non-spam(Ham) training user: ham.xfagn_sq@test.com
+SMTP host: zimbra.test.com
+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: no
+Enable version update checks: TRUE
+Enable version update notifications: TRUE
+Version update notification email: admin@test.com
+Version update source email: admin@test.com
+Install mailstore (service webapp): yes
+Install UI (zimbra,zimbraAdmin webapps): yes
5) zimbra-proxy: Enabled
6) Default Class of Service Configuration:
s) Save config to file
x) Expand menu
q) Quit
到这里,Zimbra邮件系统的安装及简单配置就完成了。
Use Zimbra’s package repository [Y]
管理员界面:https://192.168.56.10:7071
用admin@test.com及设定的密码登录,这里可以添加账号。
邮箱界面:https://192.168.56.10:8443
登录上去可以收发邮件。
本邮件系统内部的用户可以相互收发邮件。因为当前服务器能够连接外网,理论上可以向外网发送,比如qq邮箱发什么的,但一般会被反垃圾邮件系统block掉。外网不可以向本邮件系统发送信件。