2024年3月14日发(作者:)
Zimbra管理员手册
1 核心功能
ZCS是一个创新的消息和协作应用系统,提供了如下一些解决方案:
电子邮件
群组日历
通讯录
任务管理
基于Web的文档管理和创作
ZCS的核心功能包括:
邮件投递和存储
邮件的索引
邮箱服务器的日志
IMAP和POP支持
目录服务
防垃圾邮件保护
防病毒保护
管理员可以通过基于浏览器的管理控制台方便地管理域名、服务器、账号,
包括:
管理服务类型(COS,ClassofService)
添加账号和域名
针对每个账号或服务类型设置一些限制
创建和编辑分发列表
导入MicrosoftExchange用户账号
第1页
为一个域名设置虚拟主机
管理服务器
查看和管理服务器的状态
控制使用情况
Zimbra提供两个基于浏览器的客户端(ZWC,ZimbraWebClient),即采用
Ajax技术的高级ZWC和使用标准HTML技术的标准ZWC。ZWC的特征包括:
编写、阅读、回复、转发以及其它一些标准的电子邮件操作
按照对话查看邮件
给邮件加上标签
执行高级搜索
保存搜索结果
使用日历安排日程
共享日历、邮件夹、通讯录
创建通讯录并共享
设置邮箱的使用喜好,包括定义邮件过滤选项
使用ZCS文档来创建、组织和共享Web文档
使用任务功能来创建待办事项列表,并管理任务
ZCS被设计成为一个端到端的可伸缩的、高可信的邮件解决方案。这个消息
架构基于行业内熟知的开源技术和标准而构建,由一个服务器应用和客户端界面
构成。
架构包括如下一些优点:
开源组件的集成。Linux,Jetty,Postfix,MySQL,OpenLDAP
使用行业内的标准、开放协议。SMTP、LMTP、SOAP、XML、IMA、
POP等。
第2页
时髦的技术设计。Java、JavaScript瘦客户端、DHTML
水平的伸缩性。由于每个邮箱服务器都包括它自己的数据存储、消息存
储、邮箱账号,
所以你在扩充系统时可以豪不担心。要支持更多的账号,只需添加更多
的服务器。RHEL的集群套件、SYMANTEC的VeritasClusterServer等
可以使用。
基于浏览器的客户端。ZimbraWebClient使用户可以通过浏览器享受所
有ZCS的功能。
管理控制台。管理控制台用于管理账号和服务器。
2 创建账号
2.1 创建单个账号
管理控制台中的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.当账户创建完成的时候,就可以收发邮件了。
2.2 批量创建账号
使用批量账户向导(Bulk Account Wizard),每次可以导入多达500 个账户。
该向导要求你上传一个CSV 文件,其中包括用户名、显示名称、密码(可选)
第3页
基本信息。通过这种方式创建的账户使用默认服务类型。
2.3 将现有数据迁移到ZCS
Zimbra 开发了几个工具,帮助用户将现有的电子邮件、日历及联系人迁移
到ZCS服务器上。当用户文件被导入时,文件夹的结构仍被保留。使用ZCS 的
工具来迁移数据可以保证信息能够正确导入。.
如下几个程序及使用指南可从管理控制台中下载。
ZCS Migration Wizard for 格式
使用此工具可以将Microsoft Exchange 服务器中的邮件账户迁移到ZCS 服
务器中。
ZCS Migration Wizard for Lotus 格式。使用此工具可以将
Lotus Domino 服务器中的邮件账户迁移到ZCS服务器中。
Zimbra Collaboration Suite Import Wizard for 格式。使用此工具可
以将Outlook 文件(.pst)中的内容迁移到ZCS 服务器上。
3 zimbra中包含的组件
Zimbra 架构中包括对使用标准协议的开源项目的整合。包括在Zimbra 中的
第三方的软件如下表列示,并且会在安装过程中被安装。所有的这些组件都已经
经过测试和配置,可以和Zimbra 工作得很好。
名称
jetty
Postfix
OpenLDAP
MySQL
Lucene
ClamAV
SpamAssassin
Amavisd-new
James/Sieve
描述
Zimbra的软件运行时需要的Web 服务器
一个开源的邮件传输代理(MTA)
一个开源的目录服务软件,提供用户的验证服务
数据库软件
开源的全文检索和搜索引擎
防病毒软件
反垃圾邮件过滤器
在MTA和内容过滤器之间提供接口
用于建立电子邮件的过滤规则
第4页
4 zimbra软件包
ZCS 包括如下应用程序包:
4.1 Zimbra Core (安装)
包括核心的类库、实用工具、监控工具和基本的配置文件
4.2 Zimbra LDAP (安装)
ZCS 使用开源的OpenLDAP 作为目录服务,实现用户身份验证功能。每个
账号都有一个唯一的邮箱ID 作为账号的主要身份编号。ZCS 中使用的
OpenLDAP 已经经过定制。
4.3 Zimbra MTA (安装)
Postfix 是一个开源的MTA 程序,通过SMTP 协议接收邮件,并通过LMTP 协
议将邮件传递到合适的Zimbra 邮箱服务器中。Zimbra MTA 包中还包括防病毒软
件和反垃圾邮件软件。
4.4 Zimbra Store(邮箱服务器) (安装)
包括了邮箱服务器需要的各个组件,包括Jetty,一个开源的Servlet 容器。
在ZCS 中,邮箱服务器被称作mailboxd。
每个账号只能在一个邮箱服务器中存在;每个账号都会对应一个邮箱,其中
包括所有的邮件和附件。
邮箱服务器中包括如下组件:
4.4.1 数据存储
是一个MySQL 数据库,内部的邮箱ID 与用户账号相关联。数据存储将邮
箱ID 与用户的OpenDLAP 账号进行映射。数据存储包括每个用户的标签定义、
邮件夹、日程安排、联系人,同时也包括每封邮件的状态、所在邮件夹等。
4.4.2 消息存储
消息存储是用来存放邮件及附件的。消息以MIME 格式存放。有多个收件
人的邮件,在消息存储中只存放一份。
第5页
4.4.3 索引存储
索引和搜索技术由Lucene 提供。索引文件基于单个邮箱。 每个服务器都有
单独的数据存储、邮件存储和索引存储。 当新邮件到达时,服务器会安排一个
新的线程来对邮件做索引。
4.5 Zimbr-SNMP (安装)
非必须安装。如果你决定使用它来做监控,建议在每种服务器(邮箱服务器、
LDAP、MTA)上都安装。Zimbra 使用swatch 查看syslog 输出生成SNMP 信号。
4.6 Zimbra Logger (安装)
可选择性地安装于一台邮箱服务器上。这个组件用于syslog 的聚合和报表。
如果未安装,则无法在管理控制台中看到服务器的统计信息。
4.7 Zimbra Spell (不安装)
可选择性安装。它是一个开源的拼写检查工具,用在ZWC 中。如果此包安
装了,Zimbra-apache也会被安装。
4.8 Zimbra Proxy (不安装)
可选择性安装。使用代理服务器可以将同一个域名的邮箱分散到不同的服务
器上。
4.9 Zimbra Memcached (不安装)
Memcached 是一个与代理相关的包,当代理包被安装时,它也会被安装。
运行代理服务器的必须使用Memcached,多台代理可使用同一台Memcached 服
务器。
5 zimbra磁盘结构
邮箱服务器包括如下卷:
邮件存储,位于/opt/zimbra/store
数据存储,位于/opt/zimbra/db下的MySQL数据库
索引存储,位于/opt/zimbra/index
第6页
日志文件,位于/opt/zimbra/log
5.1 邮件存储
邮件存储是用来存放邮件的,包括邮件的正文和附件。邮件以MIME 格式
存放。邮件存储位于每台服务器的/opt/zimbra/store 目录下,每个邮箱都有一个
以ZCS 内部ID 命名的专用目录。
5.2 数据存储
ZCS 的数据存储是一个MySQL 数据库,包含了与邮件相关的元信息,如标
签、会话、或在文件系统中的指针。
每个账号(邮箱)只存在于一台服务器上。每台服务器有它自己独立的数据
存储,包括它所管理的所有邮箱。
数据存储包括:
A、邮箱-账号的映射。在ZCS 中,主要的标识是邮箱的内部ID,无论是
用户名还是账号。 邮箱内部ID 在一台服务器中是唯一的。数据存储将邮箱内部
ID 映射到用户的OpenLDAP账号;
B、每个用户的标签定义、邮件夹、联系人、日程安排、任务、邮件过滤器
等 ;
C、关于每封邮件的信息,包括是否被阅读、与哪个标签相关联等。
5.3 索引存储
索引和搜索技术由Apache Lucene 提供。邮件在进入系统的时候被自动索引。
每个邮箱都有一个对应的索引文件。
管理员或用户无法管理或配置索引进程。 索引过程如下:
将进站的邮件投递到邮箱服务器中
2.邮箱服务器分析邮件,包括邮件头、正文及所有可读的附件如PDF 或DOC,
进行分词索引。
3.邮箱服务器将分词索引传递给Lucene 来创建索引文件。
第7页
5.4 日志
ZCS 部署由很多个第三方的组件构成。每个组件都可能产生它自己的日志。
一些ZCS 日志信息会生成SNMP Trap,你可以用SNMP 监控工具来捕获。
详见监控ZCS 服务器。
6 zimbra命令行方式常用的操作
6.1 更改登录方式
$ zmprov ms
成非443端口)
$ zmtlsctl httphttps $ tomcat restart
6.2 smtp认证错误的解决
zmprov ms `zmhostname` zimbraMtaAuthHost
6.3 日志服务器错误的解决
$ zmprov getConfig zimbraLogHostname
$ zmprov modifyConfig zimbraLogHostname
6.4 查看系统参数
可以通过zmlocalconfig -s命令查看系统的参数
$ postconf //查看postfix的所有配置
$ zmlocalconfig //查看各种组件的配置信息
$ zmlocalconfig -s|grep zimbra_ldap_userdn //查看zimbra帐号在LDAP中
的DN
$ zmlocalconfig -s|grep zimbra_ldap_userdn //查看zimbra帐号在
第8页
LDAP中的密码
$ zmlocalconfig -s|grep zimbra_mysql //查看mysql的配置信息
6.5 更改系统最大邮件大小
查看最大系统邮件大小,显示当前系统最大邮件为10M。
$ postconf message_size_limit message_size_limit = 10240000
将系统最大邮件大小更改为20M。
$ zmprov modifyConfig zimbraMtaMaxMessageSize 2048000
$ postfix reload
6.6 更改系统最大附件大小
将系统中所有帐户允许最大的附件更改为5M
$ zmprov modifyConfig zimbraFileUploadMaxSize 5000000
将系统中帐户允许最大的附件更改为20M
$ zmprov modifyServer zimbraFileUploadMaxSize 20000000
6.7 更改管理员密码:
$ zmprov gaaa //列出所有管理员
$ zmprov sp
密码
例如:zmprov sp admin q1w2e3r4 或 *****************************
6.8 更改LDAP密码
$ ldap status(start)
$ zmldappasswd --root newpass (root)
第9页
$ zmldappasswd newpass (zimbra)
6.9 更改MYSQL Database密码
$ status(start)
$ zmmypasswd --root newrootpass
$ zmmypasswd newpass
6.10 更改Logger MYSQL Database密码
$ status(start)
$ zmmylogpasswd --root newrootpass (root)
$ zmmylogpasswd newpass (zimbra)
6.11 清空邮箱
$*****************************************/[inbox][chats][sent][drafts]
[junk][trash] inbox(收件箱) chats(聊天) snet(已发送邮件) drafts(草稿箱) junk(垃
圾邮件) trash(已删除邮件)
6.12 备份还原LDAP
1、备份LDAP(两个命令是相等的)
1)
、
ldapsearch -h
服务器对外的地址
-x -D "uid=zimbra,cn=admins,cn=zimbra" -w
密
码
objectclass=* >
2)
、
ldapsearch -h
服务器对外的地址
-x -D "uid=zimbra,cn=admins,cn=zimbra" -w
密
码
>
6.13 还原LDAP
ldapadd -h
服务器对外的地址
-x -c -D "uid=zimbra,cn=admins,cn=zimbra" -w
密
码
<
第10页
6.14 导出导入用户的邮件
#!/bin/bash
while read USER
do
TODAY=`date`
LOGFILE="/tmp/bak/"
echo $TODAY >> $LOGFILE
echo $USER >> $LOGFILE
/opt/zimbra/bin/zmmailbox -z -m $USER gms >> $LOGFILE
zmmailbox-z-m$***********************"//?fmt=tgz">/tmp/bak/$
done < /tmp/
PS:里是用户名,不需要跟域名
6.15 恢复用户的邮件
zmmailbox -z -m $*************postRestURL "//?fmt=tgz&resolve=reset"
tmp/bak/$
6.16 签发证书
我们可以重新签发一个证书,而且有效期可以自己设定:
#/opt/zimbra/bin/zmcertmgr createca -new
#/opt/zimbra/bin/zmcertmgr deployca
#/opt/zimbra/bin/zmcertmgr createcrt -new -days 3650
这后面的数字就是证书的使用年限,以天为单位:
$/opt/zimbra/bin/zmcertmgr deploycrt self
$/opt/zimbra/bin/zmcertmgr viewdeployedcrt
$ /etc/init.d/zimbra restart
(zimbra用户)
第11页
$zmcontrol restart
6.17 无法生成证书
Step 1:查看/opy/zimbra/.ssh目录下文件
#ls -l /opt/zimbra/.ssh/
If doesn't exist, we need to create new one
Step 2:创建sshkey
#su - zimbra
$zmsshkeygen
$zmupdateauthkeys
Step 3 (Restart Zimbra service)
#su - zimbra
$zmmtactl restart
Sometimes we need to restar all Zimbra Services.
#su - zimbra
$zmcontrol stop
$zmcontrol start
7 zimbra备份恢复
7.1 备份
7.1.1 备份mailbox
su – zimbra
mkdir /opt/zimbra/backup/store
mkdir /opt/zimbra/backup/index
cp -r /opt/zimbra/store/* /opt/zimbra/backup/store/
cp –r /opt/zimbra/index/* /opt/zimbra/backup/index
7.1.2 备份mysql
su - zimbra
第12页
/opt/zimbra/mysql/bin/mysqldump -uroot -pyoyosys --socket=/opt/zimbra/db/
--all-databases > /opt/zimbra/backup/mysql_all_
7.1.3 备份ldap
su - zimbra
/opt/zimbra/libexec/zmslapcat /opt/zimbra/backup/
会在/opt/zimbra/backup/目录下生成 后面接日期的文件 ..$data
7.1.4 备份脚本
[zimbra@mail backup]$ more zimbra_
#!/bin/bash
#zimbra backup
date=`date '+%Y%m%d'`
#备份zimbra mailbox
mkdir -p /opt/zimbra/backup/$date/store
mkdir -p /opt/zimbra/backup/$date/index
cp -r /opt/zimbra/store/* /opt/zimbra/backup/$date/store
cp -r /opt/zimbra/index/* /opt/zimbra/backup/$date/index
#备份数据库
mysqldump -uroot -pyoyosys --socket=/opt/zimbra/db/
--all-databases > /opt/zimbra/backup/$date/mysql_all_
#备份ldap
/opt/zimbra/libexec/zmslapcat /opt/zimbra/backup/$date/ldap
rm -rf `date --date "7 days ago" +"%Y%m%d"`
exit
0
第13页
7.2 恢复
7.2.1 恢复 mailbox
su – zimbra
mkdir /opt/zimbra/backup/
mv /opt/zimbra/store/* /opt/zimbra/backup//
cp -r /opt/zimbra/backup/store/* /opt/zimbra/store
7.2.2 恢复 mysql
mysql -uroot -p$mysql_pswd < /opt/zimbra/backup/
7.2.3 恢复 ldap
mkdir /opt/zimbra/backup/
mv /opt/zimbra/data/ldap/hdb/db/* /opt/zimbra/backup//
/opt/zimbra/openldap/sbin/slapadd -q -b "" -F /opt/zimbra/data/ldap/config -cv
–l/opt/zimbra/backup/ ..$data
重启zimbra: zmcontrol restart
8 zimbra数据迁移
8.1 备份用户的LDAP
# /opt/zimbra/libexec/zmslapcat /opt/zimbra/data/ldap/mdb/db
备份完是.26和
8.2 删除本机原有的mdb
因为的大小是80G,数据迁移速度太慢,故先备份后迁移。
8.3 拷贝zimbra
通过scp命令将本地的zimbra目录全部拷贝到新安装的服务器上。
8.4 修改LDAP备份文件
在新服务器上编辑.26和更改原服务器地址为
新服务器地址。
第14页
8.5 还原LDAP
# /opt/zimbra/openldap/sbin/slapadd -q -n 0 -F /opt/zimbra/data/ldap/config
-cv -l .26
# /opt/zimbra/openldap/sbin/slapadd -q -b "" -F /opt/zimbra/data/ldap/config
-cv -l
8.6 更改zimbra权限
将新服务器上的/opt/zimbra目录全部更改为zimbra:zimbra
##chown –R zimbra:zimbra /opt/zimbra
8.7 检查/opt/zimbra的权限:
以用户root运行#/opt/zimbra/libexec/zmfixperms
8.8 完成
#su- zimbra
#zmcontrol start
8.9 测试
IP地址:7071测试
9 zimbra垃圾邮件过滤
提高本域权值,提高特定域名权值
本域加权值,避免本域错误过滤。特殊邮箱增加权值
/opt/zimbra/conf/
{ # a hash-type lookup table (associative array)
##如下面的格式
##首先增加本域。修改@放入白名单。避免错误过滤.
##例如'' => -9.0,
##其次,可把和公司相关的,一些域放入白名单。比如下头这些都是一些招
第15页
聘网站投递简历的邮箱。省得hr收不到简历。
##-10是信任,相反+10是阻挡。
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
'' => -9.0,
//重新加载对应服务
#zmamavisdctl reload
9.1 设置白名单,黑名单
如果在中,对某个邮箱加分。会碰到很特殊的情况,其他权
限弄的分很高。导致错误过滤。所以对于特殊邮件采用黑白名单机制。这种方式
完全跳过了过滤。所以只是针对单个邮箱设置即可。
第16页
9.2 增加黑白名单读取机制
vim /opt/zimbra/conf/
##增加以下两行
read_hash(%whitelist_sender,"/opt/zimbra/conf/whitelist");
read_hash(%blacklist_sender,"/opt/zimbra/conf/blacklist");
9.2.1 建立黑白名单文件
cd /opt/zimbra/conf
mkdir {blacklist,whitelist}
##格式形如下,一行一个邮箱名
***********
***********
3:两个文件付权限给zimbra账户
chown zimbra blacklist
chown zimbra whitelist
4:重启服务
zmamavisdctl reload
9.3 关键字过滤
因zimbra对于某些中文关键词的支持并不是很高。所以可以自定义一些权
值
cd /opt/zimbra/zimbramon/bin/spamassassin
##中创建自定义的邮件过滤规则集
cn_
第17页
##格式如下,设定自己觉的是垃圾邮件的词,。
header CN_SUBJECT_1 Subject =~ /优惠/
describe CN_SUBJECT_1 Subject contains "优惠"
score CN_SUBJECT_1 1.254
header CN_SUBJECT_5 Subject =~ /合作/
describe CN_SUBJECT_5 Subject contains "合作"
score CN_SUBJECT_5 0.233
header CN_SUBJECT_6 Subject =~ /发票/
describe CN_SUBJECT_6 Subject contains "发票"
score CN_SUBJECT_6 0.055
##重启服务
zmamavisdctl reload
9.4 使用rbl列表配置
垃圾邮件过滤比较好的方式是用公开的垃圾邮件过滤列表来实现。国内用一
下这个比较好 / 其中有4种列表:CBL,CDL,CBL+,CBL-
zimbra具体设置是在,管理全局设定--MTA设定--RBL列表中添加适合自己
的即可。
可以添加一些国外的列表。根据需求来。这样结合对本域的白名单设定,可
以去除90%以上的垃圾邮件。
使用rbl需要注意的是。会有部分错误过滤,可以根据情况调整。
10 zimbra主机安全策略
10.1 禁止root用户远程登录
##修改/etc/ssh/下的PermitRootLogin值,将yes改为no
第18页
10.2 设置口令最小长度
##在文件/etc/中设置 PASS_MIN_LEN 不小于标准值
10.3 设置密码复杂度策略
##改/etc/pam.d/system-auth文件, 在ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1
选3种,追加到password requisite pam_后面,添加到配置文件中 注:
ucredit:大写字母个数;lcredit:小写字母个数;dcredit:数字个数;ocredit:特
殊字符个数
10.4 设置口令生存周期
##在文件/etc/中设置 PASS_MAX_DAYS 不大于标准值
10.5 设置命令行界面超时退出
##以root账户执行,vi /etc/profile,增加 export TMOUT=180(单位:秒,可根
据具体情况设定超时退出时间,要求不小于180秒),注销用户,再用该用户登录
激活该功能
10.6 防火墙端口策略
将zimbra所用端口开放,不用的端口关闭。Zimbra端口如下 ##
Web server HTTP port: 8080
Web server HTTPS port: 8443
Web server mode: https
IMAP server port: 7143
POP server port: 7110
POP server SSL port: 7995
POP3: 110
POP3 SSL: 995
IMAP: 143
IMAP SSL: 993
SMTP: 25
第19页
SMTP SSL: 465
SMTP TLS: 587
10.7 如有需要可以设置禁ping
##echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all 然后把此命令放到
/etc/中,每次启动自动执行
10.8 禁止提供finger服务
##使用finger命令可以显示本地或远程系统中目前已登录用户的详细信息,
黑客可以利用这些信息,增大侵入系统的机会。为了系统的安全,最好禁止提供
finger服务。如下:从/usr/bin下删除finger命令;
如果要保留finger服务,应将finger文件换名,或修改其权限,使得只允许
root用户执行finger命令
10.9 防止DoS攻击
##对系统所有的用户设置资源限制可以防止DoS类型攻击(denial of service
attacks)。如最大进程数,内存数量等。
编辑/etc/security/加如下几行:
* hard core 0
* hard rss 5000
* hard nproc 20
编辑/etc/pam.d/login文件检查这一行是否存在。session required
/lib/security/pam_ 上面的命令禁止调试文件,限制进程数为50,且限制
内存使用为5MB。
第20页


发布评论