第一章:
zimbra
的安装
可能是出于稳定性的考虑,
Zimbra
目前支持在
UBUNTU
的
LTS
版本上安装。
因为
LTS
版本提供更长的厂商服务支持,所以目前
Zimbra
只能在
UBUNTU
的
6.04
和
8.04
上安装。
1.1、
安装
UBUNTU
操作系统。
由于实验里没有公网的域名和
MX
记录,所以我们在本地安装
DNS
服务器,添加域名和
MX
记录。
选择安装
DNS
和
SSH
服务器,其它的都不要安装。
1.2
、修改
UBUNTU
版本为
8.04LTS
sudo vim /etc/lsb-release
sudo vim /etc/issue
Sudo lsb_release �Ca
查看版本是否改成
8.04
1.3
、网络配置
sudo vim /etc/hosts
更改主机名为
mail
sudo vim /etc/hostname
mail
确保主
DNS
为本地,搜索域为本地域。并添加外网
DNS
,保证能上外网
sudo vim /etc/network/interfaces
sudo vim /etc/resolv.conf
1.4
、
DNS
服务器的配置:
创建本地域和
MX
记录。
sudo vim /etc/bind/named.conf
添加如下内容
sudo vim /etc/bind/db.wish.com
添加如下内容
重启
DNS
服务
sudo service bind9 restart
sudo rndc reload
1.5
、下载并压
ZCS
wget http://h.yimg.com/lo/downloads/6.0.4_GA/zcs-6.0.4_GA_2038.UBUNTU8.20091214184037.tgz
tar �Cjxvf zcs-6.0.4_GA_2038.UBUNTU8.20091214184037.tgz
安装相关的依赖软件包,确保安装检测如下图所示。
sudo apt-get update
sudo apt-get install libstdc++5 sysstat libgmp3c2
sudo ./install.sh
Libstdc++5
是
compat-libstdc++-33
这个包
安装的时候会报
MX
记录解析错误,这里输入正确的域名就行(如:
wish.com
)。
剩下的按默认安装就行。
1.6 zimbra
的卸载
要卸载
ZCS
,运行安装脚本(带
-u
参数),删除对应目录即可。
第二章:
zimbra
的
WEB
管理
2
.1 登陆
zimbra
的
WEB
控制台
控制台的登录网址是:
https://[mailhost.example.com]:7071/zimbraAdmin
提示:要登录到管理控制台,必须使用https 协议。在你第一次登录的时候,可
能会出现一个关于证书的警告框,此时选择接受即可。最好的办法是选择永久接受。
输入管理员账号和密码(在安装过程中设定的),就可以正式开始管理账号了。
本实例中
控制台的登录如下图:
2
.
2
通过
WEB
控制台查看
ZIMBRA
的工作状态
看到如下界面就证明
ZIMBRA
正常工作。
如果出现如下报错,是
zimbraLogHostname
设置错误
日志服务器错误的解决办法
# su - zimbra
$ zmprov getConfig zimbraLogHostname
$ zmprov modifyConfig zimbraLogHostname [mailhost.example.com]
2
.
3
创建账号
A
:创建单个账号
管理控制台中的
New Account Wizard
可以用来创建单个账号,步骤如下:
1.
从管理控制台的导航板上选择账户(
Accounts
)
提示:至少显示
4
个已经存在的账户:
1
个管理员、
2
个与垃圾邮件相关的、
1
个与全局文档相关的。这
4
个账号不需要做额外的修改。
2.
点击新建(
New
),
New Account Wizard
出现。
3.
输入账户名称(邮件地址格式)和姓氏。这两项信息是必须。
4.
此时可直接点击完成(
Finish
),账户将使用默认的服务类型(
COS
)及全局设置。
5.
如果要为此账户配置别名、转发地址或其它的特定功能,可在
New Account Wizard
的界面里完成,最后再点击完成(
Finish
)。
6.
当账户创建完成的时候,就可以收发邮件了。
B
:批量创建账号
使用批量账户向导(
Bulk Account Wizard
),每次可以导入多达
500
个账户。该向导要求你上传一个
CSV
文件,其中包括用户名、显示名称、密码(可选)基本信息。通过这种方式创建的账户使用默认服务类型。
C
:将现有数据迁移到
ZCS
Zimbra
开发了几个工具,帮助用户将现有的电子邮件、日历及联系人迁移到
ZCS
服务器上。当用户文件被导入时,文件夹的结构仍被保留。使用
ZCS
的工具来迁移数据可以保证信息能够正确导入。
.
如下几个程序及使用指南可从管理控制台中下载。
ZCS Migration Wizard for Exchange
.exe
格式。使用此工具可以将
Microsoft® Exchange
服务器中的邮件账户迁移到
ZCS
服务器中。
ZCS Migration Wizard for Lotus® Domino®.
.exe
格式。使用此工具可以将
Lotus Domino
服务器中的邮件账户迁移到
ZCS
服务器中。
Zimbra Collaboration Suite Import Wizard for Outlook®
.exe
格式。使用此工具可以将
Outlook
文件
(.pst)
中的内容迁移到
ZCS
服务器上。
2.4 WEB
控制台的管理工作
WEB
控制台能够完成ZIMBRA的绝大部份管理工作,并且管理操作都非常简单,关于
WEB
控制台详细操作我这里就不再介绍了。
如果要想更深入的了解ZIMBRA的管理操作就必须
第三章:
zimbra
的体系结构
3.1 Zimbra
中包含的组件
Zimbra
架构中包括对使用标准协议的开源项目的整合。包括在Zimbra 中的第三方的软件如下表列示,并且会在安装过程中被安装。所有的这些组件都已经经过测试和配置,可以和Zimbra 工作得很好。
名称 描述
Jetty Zimbra
的软件运行时需要的Web 服务器
Postfix
一个开源的邮件传输代理(MTA)
OpenLDAP
一个开源的目录服务软件,提供用户的验证服务
MySQL
数据库软件
Lucene
开源的全文检索和搜索引擎
ClamAV
防病毒软件
SpamAssassin
反垃圾邮件过滤器
Amavisd-new
在MTA 和内容过滤器之间提供接口
James/Sieve
用于建立电子邮件的过滤规则
3.2 Zimbra
软件包
ZCS
包括如下应用程序包:
Zimbra Core
包括核心的类库、实用工具、监控工具和基本的配置文件
Zimbra LDAP
ZCS
使用开源的OpenLDAP 作为目录服务,实现用户身份验证功能。每个账号都有一个唯一的邮箱ID 作为账号的主要身份编号。ZCS 中使用的OpenLDAP 已经经过定制。
ZimbraMTA
Postfix
是一个开源的MTA 程序,通过SMTP 协议接收邮件,并通过LMTP 协议将邮件传递到合适的Zimbra 邮箱服务器中。Zimbra MTA 包中还包括防病毒软件和反垃圾邮件软件。
Zimbra Store
(邮箱服务器)
包括了邮箱服务器需要的各个组件,包括Jetty,一个开源的Servlet 容器。在ZCS 中,邮箱服务器被称作
mailboxd
。
每个账号只能在一个邮箱服务器中存在;每个账号都会对应一个邮箱,其中包括所有的邮件和附件。
邮箱服务器中包括如下组件:
A
、数据存储
是一个MySQL 数据库,内部的邮箱ID 与用户账号相关联。数据存储将邮箱ID 与用户的OpenDLAP 账号进行映射。数据存储包括每个用户的标签定义、邮件夹、日程安排、联系人,同时也包括每封邮件的状态、所在邮件夹等。
B
、消息存储
消息存储是用来存放邮件及附件的。消息以MIME 格式存放。有多个收件人的邮件,在消息存储中只存放一份。
C
、索引存储
索引和搜索技术由Lucene 提供。索引文件基于单个邮箱。
每个服务器都有单独的数据存储、邮件存储和索引存储。
当新邮件到达时,服务器会安排一个新的线程来对邮件做索引。
Zimbr-SNMP
非必须安装。如果你决定使用它来做监控,建议在每种服务器(邮箱服务器、LDAP、MTA)上都安装。Zimbra 使用swatch 查看syslog 输出生成SNMP 信号。
Zimbra Logger
可选择性地安装于一台邮箱服务器上。这个组件用于syslog 的聚合和报表。如果未安装,则无法在管理控制台中看到服务器的统计信息。
Zimbra Spell
可选择性安装。它是一个开源的拼写检查工具,用在ZWC 中。如果此包安装了,Zimbra-apache也会被安装。
Zimbra Proxy
可选择性安装。使用代理服务器可以将同一个域名的邮箱分散到不同的服务器上。
ZimbraMemcached
Memcached
是一个与代理相关的包,当代理包被安装时,它也会被安装。运行代理服务器的必须使用Memcached,多台代理可使用同一台Memcached 服务器。
3.3
磁盘结构
邮箱服务器包括如下卷:
邮件存储
,位于/opt/zimbra/store
数据存储
,位于/opt/zimbra/db 下的MySQL 数据库
索引存储
,位于/opt/zimbra/index
日志文件
,位于/opt/zimbra/log
邮件存储
邮件存储是用来存放邮件的,包括邮件的正文和附件。邮件以MIME 格式存放。
邮件存储位于每台服务器的/opt/zimbra/store 目录下,每个邮箱都有一个以ZCS 内部ID 命名的专用目录。
数据存储
ZCS
的数据存储是一个MySQL 数据库,包含了与邮件相关的元信息,如标签、会话、或在文件系统中的指针。
每个账号(邮箱)只存在于一台服务器上。每台服务器有它自己独立的数据存储,包括它所管理的所有邮箱。
数据存储包括:
A
、邮箱-账号的映射。在ZCS 中,主要的标识是邮箱的内部ID,无论是用户名还是账号。
邮箱内部ID 在一台服务器中是唯一的。数据存储将邮箱内部ID 映射到用户的OpenLDAP账号。
B
、每个用户的标签定义、邮件夹、联系人、日程安排、任务、邮件过滤器等
C
、关于每封邮件的信息,包括是否被阅读、与哪个标签相关联等。
索引存储
索引和搜索技术由Apache Lucene 提供。邮件在进入系统的时候被自动索引。每个邮箱都有一个对应的索引文件。
管理员或用户无法管理或配置索引进程。
索引过程如下:
1.MTA
将进站的邮件投递到邮箱服务器中
2.
邮箱服务器分析邮件,包括邮件头、正文及所有可读的附件如PDF 或DOC,进行分词索引。
3.
邮箱服务器将分词索引传递给Lucene 来创建索引文件
日志
ZCS
部署由很多个第三方的组件构成。每个组件都可能产生它自己的日志。
一些ZCS 日志信息会生成SNMP Trap,你可以用SNMP 监控工具来捕获。详见监控ZCS 服务器。
附件:ZIMBRA命令行方式常用的操作
将HTTP登陆方式更改为HTTP\HTTPS登陆方式
$ zmprov ms <servername> zimbraMailSSLPort <https port>
(将HTTPS更改成非443端口)
$ zmtlsctl http\https
$ tomcat restart
smtp
认证错误的解决
zmprov ms `zmhostname` zimbraMtaAuthHost mail.example.com
日志服务器错误的解决
$ zmprov getConfig zimbraLogHostname
$ zmprov modifyConfig zimbraLogHostname mail.domain.com
查看系统参数
可以通过zmlocalconfig -s命令查看系统的参数
$ postconf //
查看postfix的所有配置
$ zmlocalconfig //
查看各种组件的配置信息
$ zmlocalconfig -s|grep zimbra_ldap_userdn
//查看zimbra帐号在LDAP中的DN
$ zmlocalconfig -s|grep zimbra_ldap_userdn //
查看zimbra帐号在LDAP中的密码
$ zmlocalconfig -s|grep zimbra_mysql //
查看mysql的配置信息
更改系统最大邮件大小:
查看最大系统邮件大小,显示当前系统最大邮件为10M。
$ postconf message_size_limit
message_size_limit = 10240000
将系统最大邮件大小更改为20M。
$ zmprov modifyConfig zimbraMtaMaxMessageSize 2048000
$ postfix reload
更改系统最大附件大小:
将系统中所有帐户允许最大的附件更改为5M
$ zmprov modifyConfig zimbraFileUploadMaxSize 5000000
将系统中mail2.domain.com帐户允许最大的附件更改为20M
$ zmprov modifyServer mail2.domain.com zimbraFileUploadMaxSize 20000000
更改管理员密码:
$ zmprov gaaa
//列出所有管理员
$ zmprov sp <admin email address> <new password> //更改管理员密码
更改LDAP密码:
$ ldap status(start)
$ zmldappasswd --root newpass
(root)
$ zmldappasswd newpass (zimbra)
更改MYSQL Database密码:
$ mysql.server status(start)
$ zmmypasswd --root newrootpass
$ zmmypasswd newpass
更改Logger MYSQL Database密码:
$ logmysql.server status(start)
$ zmmylogpasswd --root newrootpass (root
)
$ zmmylogpasswd newpass (zimbra)
清空邮箱
$ zmmailbox -z -m [email protected] emptyFolder /[inbox][chats][sent][drafts][junk][trash]
inbox(
收件箱) chats(聊天) snet(已发送邮件) drafts(草稿箱) junk(垃圾邮件) trash(已删除邮件)
备份还原LDAP
1
、备份LDAP(两个命令是相等的)
1)
、ldapsearch -h 服务器对外的地址 -x -D "uid=zimbra,cn=admins,cn=zimbra" -w 密码 objectclass=* > 201014.ldif
2)
、ldapsearch -h 服务器对外的地址 -x -D "uid=zimbra,cn=admins,cn=zimbra" -w 密码 > 201014.ldif
2
、还原LDAP
ldapadd -h
服务器对外的地址 -x -c -D "uid=zimbra,cn=admins,cn=zimbra" -w 密码 < 20101214.ldif
导出导入用户的邮件
#!/bin/bash
while read USER
do
TODAY=`date`
LOGFILE="/tmp/bak/backuplog.txt"
echo $TODAY >> $LOGFILE
echo $USER >> $LOGFILE
/opt/zimbra/bin/zmmailbox -z -m $USER gms >> $LOGFILE
done < /tmp/user.txt
PS:user.txt
里是用户名,不需要跟域名
恢复用户的邮件
zmmailbox -z -m [email protected] postRestURL "//?fmt=tgz&resolve=reset" tmp/bak/$USER.tgz
Zimbra
之黑名单、白名单
由于zimbra采用ClamAV 做防病毒软件和SpamAssassin 做反垃圾邮件过滤器,但在WEB控制台中ClamAV+SpamAssassin只有6个调节选项。所以如果要想详细的调节防病毒、反垃圾邮件的功能只有更改相应的配置文件了。
例如调节SpamAssassin的配置文件实现黑名单、白名单的功能。
编辑/opt/zimbra/conf/amavisd.conf.in
寻找下列段落,然后加上你要信任的域:
{ # a hash-type lookup table (associative array)
-10
就是无条件信任了,相反+10就是无条件阻挡了。然后存盘,
$ su zimbra
$ zmamavisdctl stop
$ zmamavisdctl start