Zimbra 8.8.8自建yum升级源(Repository)on CentOS x64

首先要确保你已经更新Python到2.7系列版本,然后安装了最新的pip 10.0以上版本,如果还没升级,请参看ITGeeker技术奇客指导文档:升级Python到2.7.15 on CentOS 6 x64

安装Amazon网页服务命令

yum install python-pip
pip install awscli
#如果python或pip未升级,可能会出错。

创建放源文件的目录

mkdir /var/repositories
cd /var/repositories

获取源的文件

aws s3 sync s3://repo.zimbra.com/rpm/87 ./rpm/87 --no-sign-request --delete
aws s3 sync s3://repo.zimbra.com/rpm/zv1 ./rpm/zv1 --no-sign-request --delete
aws s3 sync s3://repo.zimbra.com/rpm/888patch ./rpm/888patch --no-sign-request --delete
aws s3 sync s3://repo.zimbra.com/rpm/888patch-nw ./rpm/888patch-nw --no-sign-request --delete

编辑Nginx配置

vi /etc/nginx/conf.d/default.conf

server {
listen 80;
listen 443 ssl;
server_name www.itgeeker.net;
# ssl_certificate /etc/nginx/certs/zimbra-wilcard.crt;
# ssl_certificate_key /etc/nginx/certs/zimbra-wilcard.key;
# ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
# ssl_ciphers HIGH:!aNULL:!MD5;
## Let your repository be the root directory
root /var/repositories;

## Always good to log
access_log /var/log/nginx/repo.access.log;
error_log /var/log/nginx/repo.error.log;

## Prevent access to Reprepro's files
location ~ /(db|conf) {
deny all;
return 404;
}
}
#ITGeeker技术切开这里没有配置ssl,需要的请自行配置。相对应在客户机的Repository源文件链接要把https换成http
service nginx restart

关注一下硬盘空间,需要占用5-8G不等的空间

df -h

配置Cron自动执行源文件更新

crontab -e

30 3 * * * /usr/bin/aws s3 sync s3://repo.zimbra.com/rpm/87 /var/repositories/rpm/87 --no-sign-request --delete
30 3 * * * /usr/bin/aws s3 sync s3://repo.zimbra.com/rpm/zv1 /var/repositories/rpm/zv1 --no-sign-request --delete
30 3 * * * /usr/bin/aws s3 sync s3://repo.zimbra.com/rpm/888patch /var/repositories/rpm/888patch --no-sign-request --delete
crontab -l
service crond restar

# 也可以用的时候手动更新

aws s3 sync s3://repo.zimbra.com/rpm/87 /var/repositories/rpm/87 --no-sign-request --delete
aws s3 sync s3://repo.zimbra.com/rpm/zv1 /var/repositories/rpm/zv1 --no-sign-request --delete
aws s3 sync s3://repo.zimbra.com/rpm/888patch /var/repositories/rpm/888patch --no-sign-request --delete

以下在你的Zimbra邮件服务器配置yum repository

创建repo文件

vi /etc/yum.repos.d/zimbra.repo

[zimbra]
name=Zimbra RPM Repository
baseurl=http://www.itgeeker.net/rpm/87/rhel$releasever
gpgcheck=1
enabled=1 
[zimbra-v1]
name=Zimbra New RPM Repository
baseurl=http://www.itgeeker.net/rpm/zv1/rhel$releasever
gpgcheck=1
enabled=1
[zimbra-888-patch]
name=Zimbra New RPM Repository
baseurl=http://www.itgeeker.net/rpm/888patch/rhel$releasever
gpgcheck=1
enabled=1
#注意:这里是http,因为前面nginx没有配置ssl 443端口

导入源Key文件

rpm --import https://files.zimbra.com/downloads/security/public.key

测试是否成功

yum search zimbra
#成功的话会列出类似:
 zimbra-altermime.x86_64 : Zimbra's altermime build
 zimbra-amavis-logwatch.x86_64 : Zimbra's amavis-logwatch build
 zimbra-amavisd.x86_64 : Zimbra's amavisd build

Zimbra禁止接收带有加密的文件邮件 提醒病毒(Heuristics.Encrypted.PDF)

最近碰到一个国际性大客户,一定要发送经过加密的文件,因为是合约相关的文件,对方公司有这方面要求。但是Zimbra默认是禁止接收加密的文件 – ‘Block encrypted archives’,这样当客户发送邮件过来的时候,就会把邮件自动过滤/阻止掉,然后会收到管理员的邮件:

VIRUS ALERT

Our content checker found

virus: Heuristics.Encrypted.Zip

in an email to you from probably faked sender:

如何解决Zimbra此类问题?

reference:Emails are blocked with the notification VIRUS (Heuristics.Encrypted.PDF)

第一步:登陆管理员后台,找到配置菜单

找到Configure > Global Settings > AS/AV > Antivirus Settings and un-check ‘Block encrypted archives.’

Block encrypted archives by ITGeeker

记得保存配置。

第二步:登陆shell,重启病毒防护进程

 

su – zimbra  #记得切换到zimbra用户先

zmclamdctl restart

 

搞定,再发送带有加密附件的邮件看看,是否已经收到了?

Zimbra 8.5GA升级到8.6GA之后 Zimbra Desktop “SSL peer shut down incorrectly 异常”的解决方法

当你顺利升级到Zimbra8.6GA之后,你会发现桌面客户端ZD 7.2.5版本无法收取邮件,进入设置,编辑我的账户,选择认证后保存,出现错误提示:

“SSL peer shut down incorrectly 异常”

zimbra-divestiture-tn

更多错误信息:

zclient.IO_ERROR: Remote host closed connection during handshake

Display error details
com.zimbra.common.soap.SoapFaultException: Remote host closed connection during handshake ExceptionId:com.zimbra.common.zclient.ZClientException: Remote host closed connection during handshake ExceptionId:btpool0-50:1418841437568:ef1b4de35db6766a Code:zclient.IO_ERROR at com.zimbra.common.zclient.ZClientException.IO_ERROR(ZClientException.java:45) at com.zimbra.cs.zclient.ZMailbox.invoke(ZMailbox.java:570) at ......

官方论坛已有人贴出了解决方案,有说更新Java版本的,有说不用更新JRE的,ITGeeker技术奇客采用了下面的方法,并已解决问题:

以'zimbra'运行以下命令:

su zimbra

zmprov mcf +zimbraMailboxdSSLProtocols SSLv2Hello

然后重启mailbox服务:

zmmailboxdctl restart

官方相关帖子: https://community.zimbra.com/collaboration/f/1886/t/1136983

Zimbra 8.5GA垃圾邮件过滤设置的5种方法 201/09/26更新

邮件系统里,和垃圾邮件的斗争是最激烈,最残酷的。这是一场没有硝烟的持久战。道高一尺,魔高一丈!

spam

 

1.提高特定域名权值

zimbra垃圾邮件过滤的第一步,可以通过提高特定域名权值,避免正规的域名被错误过滤。
修改配置文件:/opt/zimbra/conf/amavisd.conf.in (大约在348行找到{ # a hash-type lookup table (associative array)
首先把自己公司的域名加入,这样就不会把自己公司的邮件认为垃圾邮件了。

例如:’itgeeker.net’    => -10.0,

-10就是无条件信任了,相反+10就是无条件阻挡了。

其次,可把和公司相关的客户之类的域也加入。比如下头这些都是一些招聘网站投递简历的邮箱。省得hr收不到简历。

‘linkedin.com’                    => -9.0,
‘welink.com’                      => -9.0,
‘quickmail.51job.com’             => -9.0,
‘zhaopinmail.com’                 => -9.0,
‘zhaopin.com.cn’                  => -9.0,
’email.cjol.com’                  => -9.0,
’01job.cn’                        => -9.0,
‘job168.com’                      => -9.0,
’01hr.com’                        => -9.0,
‘chinahr.com’                     => -9.0,
‘web.job168.com’                  => -9.0,
切换到Zimbra用户,重新加载对应服务 
su zimbra 
zmamavisdctl reload

2. 白名单,黑名单


如果在amavisd.conf.in中,对某个域名加分后,所有该域名的邮箱权限的分也很高,导致无法很好的过滤垃圾邮件。所以对于特殊邮件采用黑白名单机制。这种方式完全跳过了过滤。可以针对单个邮箱设置即可。

增加黑白名单读取机制

配置文件:/opt/zimbra/conf/amavisd.conf.in
增加以下两行
read_hash(\%whitelist_sender, '/opt/zimbra/conf/whitelist'),
read_hash(\%blacklist_sender, '/opt/zimbra/conf/blacklist'),

然后建立黑白名单文件

touch /opt/zimbra/conf/blacklist
touch /opt/zimbra/conf/whitelist

输入黑白列表邮件。格式是一行一个邮箱名,例如:

abc@itgeeker.net

给两个文件赋予权限给zimbra账户

su root
chown zimbra /opt/zimbra/conf/blacklist
chown zimbra /opt/zimbra/conf/whitelist

最后以 zimbra 身份,执行以下指令重新启动 antispam 模组

su zimbra
zmamavisdctl reload
或
zmamavisdctl stop && zmamavisdctl start && zmamavisdctl status

 

3.关键字过滤


因zimbra对于某些中文关键词的支持并不是很高。所以可以自定义一些权值。
配置目录:/opt/zimbra/data/spamassassin/localrules (ZCS8.5的目录,之前8.0的目录为/opt/zimbra/conf/spamassassin)
创建自定义的邮件过滤规则集,可以直接下载(可能已经失效,需要的话请联系ITGeeker):
wget -N -P /opt/zimbra/conf/spamassassin www.ccert.edu.cn/spam/sa/Chinese_rules.cf
Chinese_rules.cf是用于业界广泛使用的免费垃圾邮件过滤系统SpamAssassin的中文垃圾邮件过滤规则集。由于以前没有中文的过滤规则集,SpamAssassin对中文邮件过滤的准确性不高。CCERT反垃圾邮件研究小组利用CCERT所掌握的最新和丰富的样本数据,推出了第一个基于SpamAssassin的中文垃圾邮件过滤规则集Chinese_rules.cf。该规则集每周更新一次,时效性非常好。
 
不过ITGeeker发现官网已经很久没有更新了。大家可以去官方关注一下动态。http://www.ccert.edu.cn
ITGeeker目前下载到的Chinese_rules.cf是updated 2005 Aug 14
垃圾邮件过滤规则的格式如下,可以网上找,建议去一些大学的系统来找,或者设定自己痛恨的词。
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

4.使用RBL列表配置


垃圾邮件过滤比较好的方式是用公开的垃圾邮件过滤列表来实现
国内用一下这个比较好
http://anti-spam.org.cn/
其中有4种列表
CBL,CDL,CBL+,CBL-
zimbra具体设置是在,管理全局设定–MTA设定–RBL列表中添加适合自己的即可。
cblless.anti-spam.org.cn
一些国外的RBL列表,也能抵挡很多英文垃圾邮件,但有时候会连接不上,引起Zimbra报错,大家可以都试试。

RBL列表-Zimbra官方推荐的

* zen.spamhaus.org
* psbl.surriel.com
* b.barracudacentral.org
* bl.spamcop.net
非官方推荐的:
* cbl.abuseat.org
* new.spam.dnsbl.sorbs.net
* all.s5h.net
* bl.blocklist.de
* dnsbl.inps.de
* ubl.unsubscore.com (note: Rejects mail from places such as Yahoo!, Facebook, etc.)
* virbl.dnsbl.bit.nl
* mail-abuse.blacklist.jippg.org
* dnsbl.njabl.org

The Client RHSBLs客户端RHSBL列表官方推荐 (updated June 2, 2014)

* dbl.spamhaus.org
* multi.uribl.com
* multi.surbl.org
* rhsbl.sorbs.net

Sender RHSBLs发件人RHSBL列表官方推荐

* multi.uribl.com
* multi.surbl.org
* rhsbl.sorbs.net
* dbl.spamhaus.org

Reverse Client RHSBLs反向客户端RHSBL列表官方推荐

* dbl.spamhaus.org

命令行添加RBL and RHSBLs

For RBLs:

zmprov mcf +zimbraMtaRestriction "reject_rbl_client zen.spamhaus.org"

For RHSBL clients:

zmprov mcf +zimbraMtaRestriction "reject_rhsbl_client dbl.spamhaus.org"

如何检查RBL列表是否添加成功?

查看/opt/zimbra/postfix(版本号)/conf/main.cf文件中的smtpd_recipient_restrictions项有没有 reject_rbl_client cblless.anti-spam.org.cn 这个内容?

如果没有的话说明还没生效,在root用户下执行

/opt/zimbra/postfix/sbin/postfix reload

据说,结合对本域的白名单设定,可以去除90%以上的垃圾邮件。

使用RBL需要注意的是会有部分错误过滤,可以根据情况调整。


5.使用SpamAssassin的local.cf配置黑白名单


SpamAssassin是一种安装在邮件伺服主机上的邮件过滤器,它是使用大量的预设规则检查垃圾信,这些规则会检查寄到网域内所有邮件的标头,内文,以及送信者。就像大多数Linux应用程序一样,SpamAssassin需要对配置文件的编辑。
这个配置文件的路径是:/opt/zimbra/data/spamassassin/localrules/local.cf(和之前的ZCS8.0目录不同,请参看底部说明)
whitelist_from关键字可指定不应该被视为垃圾邮件的地址blacklist_from用于指定应始终标记为垃圾邮件的地址
#Whitelist by ITGeeker
whitelist_from *@itgeeker.net
whitelist_from *@freegeeker.com.cn
#Blacklist by ITGeeker
blacklist_from *@001web.uk
 
可以在whitelist_from和blacklist_from行上指定多个地址,并用空格隔开。每个地址可以包含通配符。可以使用多个whitelist_from和blacklist_from行。

参考Customizing SpamAssassin on Zimbra

 
ZCS 8.5 and later
For ZCS 8.5, Spamassassin layout has been corrected as per the SpamAssassin developers. sauser.cf is migrated to the /opt/zimbra/data/spamassassin/localrules directory. This is the supported location for doing customizations of SpamAssassin for ZCS 8.5 and later.
 
ZCS 8
For ZCS 8.0, SpamAssassin scans for all *.cf files in /opt/zimbra/conf/sa and loads them in alphabetical order. If you create a sauser.cf file, it will be loaded after salocal.cf is loaded. This is the supported method for doing customizations of SpamAssassin for ZCS8.0