标签: Zimbra

  • Zimbra 8.X安装使用阿里云免费SSL证书脚本(更新)

    Zimbra 8.X安装使用阿里云免费SSL证书脚本(更新)

    网上一搜都是使用 Let’s Encrypt或者沃通的SSL,他们的格式和阿里云下载的还是不同的,阿里云的相对来说,可能更简单些,不用合并root证书。

    首先当然要去阿里云申请的ssl证书下载其他类型证书,解压缩后有两个文件上传到相应目录,这里是/opt/zimbra/ssl/aliyunssl/,文件名类似18131-domain.key和.pem

    对比Let’s Encrypt和Wosign的证书,这里会涉及到转换阿里云的RSA密钥到PKCS#8的格式,两者的区别,在于开头和结尾的内容。zimbra是不能验证RSA秘钥的。

    —–BEGIN RSA PRIVATE KEY—–

    —–BEGIN PRIVATE KEY—–

    我们可以通过openssl命令把阿里云的私钥转成zimbra能接受的格式。

     openssl pkcs8 -topk8 -inform PEM -in 18131XXXXXXXXX.key -outform PEM -nocrypt -out privkey.pem

    完整脚本如下:

    #!/bin/bash
    # Note: create by itgeeker
    
    domain=mail.itgeeker.net
    
    su - zimbra -c 'zmproxyctl stop'
    su - zimbra -c 'zmmailboxdctl stop'
    
    mkdir /opt/zimbra/ssl/aliyunssl/
    echo "up load aliyun ssl other to this folder first !!!!!!!"
    cd /opt/zimbra/ssl/aliyunssl/
    openssl pkcs8 -topk8 -inform PEM -in 18131XXXXXXXXX.key -outform PEM -nocrypt -out privkey.pem
    mv 1813131_mail.geekerconsulting.com.pem cert.pem
    chown zimbra:zimbra /opt/zimbra/ssl/aliyunssl/*
    
    su - zimbra -c 'cd /opt/zimbra/ssl/aliyunssl/ && /opt/zimbra/bin/zmcertmgr verifycrt comm privkey.pem cert.pem '
    
    echo "Backup Zimbra SSL directory"
    cp -a /opt/zimbra/ssl/zimbra /opt/zimbra/ssl/zimbra.$(date "+%Y%m%d")
    
    echo "Copy the private key under Zimbra SSL path"
    cp /opt/zimbra/ssl/aliyunssl/privkey.pem /opt/zimbra/ssl/zimbra/commercial/commercial.key
    
    echo "Final SSL deployment"
    su - zimbra  -c 'cd /opt/zimbra/ssl/aliyunssl/ /opt/zimbra/bin/zmcertmgr deploycrt comm cert.pem'
    
    echo "restart zimbra"
    su - zimbra -c 'zmcontrol restart'

    gist link:

    https://gist.github.com/alanljj/2f90ca543dc2f2e45319ac13c30bbf72

    验证zimbra ssl证书命令:

    su - zimbra -c '/opt/zimbra/bin/zmcertmgr viewdeployedcrt'

    更新

    通过上面的方法虽然没有提示任何错误,但可能无法更新证书,使用验证命令,仍然会显示老的证书。那么就需要以下的复杂流程了。

    zimbra证书的三个文件,目录/opt/zimbra/ssl/zimbra/commercial/:

    1. commercial_ca.crt
    2. commercial.crt
    3. commercial.key

    zimbra ssl证书制作方法:

    commercial_ca.crt – 阿里云下载证书1813131_domain.pem的第二部分,也就是第二个—–BEGIN CERTIFICATE—–到—–END CERTIFICATE—– 也就是中级证书(mid-digicert-ca) + 根证书(root-digiert-ca)

    阿里云免费ssl的根证书分享,不同发证机构根证书会有所不同:

    -----BEGIN CERTIFICATE-----
    MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
    d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
    QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
    MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
    b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
    9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
    CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
    nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
    43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
    T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
    gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
    BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
    TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
    DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
    hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
    06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
    PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
    YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
    CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
    -----END CERTIFICATE-----

    https://gist.github.com/alanljj/26b12b591173b3ba7c3c51edea09cad6

    commercial.crt – 1813131_domain.pem的第一部分,也就是第一个—–BEGIN CERTIFICATE—–到—–END CERTIFICATE—–部分。

    commercial.key – 就是1813131_domain.key,用上面的RSA密钥到PKCS#8 转换方法先转换,然后改名字就可以了。

    开始部署

    上传三个文件到/opt/zimbra/ssl/zimbra/commercial/目录,上传前检查、检查、再检查是否已经正确,如果老的文件已存在,先删除老的三个文件(技术奇客有碰到未删除,生成的文件格式不对导致无法更新ssl证书的情况)

    验证证书。进入/opt/zimbra/ssl/zimbra/commercial/目录后,使用zimbra用户执行:

    /opt/zimbra/common/bin/openssl verify -CAfile commercial_ca.crt commercial.crt

    部署证书。 使用zimbra用户执行 :

    /opt/zimbra/bin/zmcertmgr deploycrt comm commercial.crt commercial_ca.crt

    重启zimbra服务。

    su - zimbra -c 'zmcontrol restart' 

    查看新证书。

    su - zimbra -c '/opt/zimbra/bin/zmcertmgr viewdeployedcrt' 

    本方法ITGeeker技术奇客在CentOS 6 zimbra 8.8.11_FOSS版本实操通过。

    by ITGeeker Approven
  • 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
奇客罗方公众号 奇客罗方小程序 奇客罗方客服 ITGeeker Telegram

网站由ITGeeker技术奇客开发并管理;隶属于GeekerCloud奇客罗方智能科技
Site designed and developed by ITGeekerwhich is a sub-website of GeekerCloud
网站地图 | 沪ICP备2021031434号-4