zoukankan      html  css  js  c++  java
  • zimbra邮件服务器的搭建和迁移

    背景:

      公司最近由于服务器费用问题,需要将邮件服务器从亚马逊(新加坡)云服务器A迁移到阿里云(香港)云服务器B。

      由于邮箱使用的是域名访问,但是没有进行备案,所以只能迁移到港澳台地区,才能正常使用。

    概述:

      在服务器A上面发现有当时的zimbra的安装包,于是直接使用这个包在服务器B上安装使用,安装倒是没有什么问题,迁移是个大问题,由于zimbra套件比较臃肿,要想搞透太难,而且时间也不允许,在找了几个方案后,最近决定使用rsync直接同步来迁移,简单。哈哈。

    准备:

      在原服务器A上发现了原来的安装包zcs-8.6.0_GA_1153.RHEL6_64.20141215151155,于是直接拷贝到服务器B上使用安装。

      假如安装过程中出现问题,或者安装失败想重新安装,只需要讲安装的zimbra程序卸载就可以了,由于zimbra所有的程序都是zimbra开头的,所以我们只需要执行下面这个脚本就可以卸载了

    1 #uninstall
    2 
    3 for i in $(rpm -qa|grep zimbra)
    4 do
    5     echo starting uninstall $i
    6     rpm -e $i
    7 done

    1.关闭selinux编辑/etc/selinux/config,阿里云上面默认是关闭的

    SELINUX=disabled

    2.开放防火墙端口,你也可以直接在阿里云的安全组里面开放以下端口,这些端口都是zimbra要用到的。

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 7071 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8087 -j ACCEPT
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT 
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT

    3.配置主机名,编辑/etc/sysconfig/network

    HOSTNAME=mail.my.com

    备注:阿里云上面直接修改上面后,需要重启主机名才会生效,亲测。不想重启的话,可以直接使用修改完配置文件后,直接使用hostname修改主机名。

    4.配置hosts,编辑/etc/hosts

    10.10.10.25  mail.my.com  mail

    5.关闭系统自带的mta服务(sendmail,postfix),避免25端口被占用

    chkconfig postfix off
    service postfix stop
    chkconfig sendmail off
    service sendmail stop

    6.重启服务器,使所有配置生效。

    reboot

    安装

    1.安装dnsmasq,一个轻量级的dns解析服务,也可以安装重磅炸弹bind

    yum install dnsmasq bind-utils

    2.配置dnsmasq

    添加下面内容到/etc/dnsmasq.conf

    no-resolv

    server=10.10.10.25

    domain=my.com.cn

    mx-host=my.com.cn,mail.my.com.cn,5

    添加下面内容到/etc/resolv.conf阿里云默认的几个地址上面

    nameserver 127.0.0.1

    3.测试dns

    dig mail.my.com.cn MX

    如果记录显示正确,则配置成功。

    4.安装zimbra

    解压缩zimba的安装包,进入到解压目录里面,直接运行里面的install.sh脚本即可。

    Do you agree with the terms of the software license agreement? [N] y 

    然后程序会自动检测需要的依赖包,没有安装的话,会有提示,并结束程序运行。

    在打开一个终端窗口,安装所需软件即可。

    Change domain name? [Yes] yes

    Create domain:my.com

    #这个步骤可以在网上找现成的,下面是一个百度文库的连接

    安装过程

    安装完成后,可以通过本机访问https://mail.my.com:7071验证是否成功

    迁移:

    安装完成后,就是迁移了,迁移的文档在网上找了很多,zimbra自带了一个迁移和共存的工具,不过在配置ldap的时候不知道怎么配置,官网论坛上或者官方wiki上面直接搜ldap,查找了文档,但是按照文档只是举了个例子,按照它配置不成功,其他的zmtozmig的啥的工具,根本没找到。

    有一个可以单独迁移个用户的所有数据的工具,imapsync这个工具,不过一条一条复制太麻烦了,我也没有尝试

    最后决定用rsync来直接同步/opt/zimbra目录,因为zimbra的所有程序都安装在这个目录下面。

    配置rsync服务。

    同步:

    #同步过程中zimbra的数据库文件
    /opt/zimbra/data/ldap/mdb/db/data.mdb
    #这个文件使用了像vm虚拟机的动态硬盘大小似的原理,直接复制的话,需要#直接复制80G的大小,我尝试了。
    rsync -azHpr   --delete zimbra@10.10.10.25::zcshome /opt/zimbra/ --password-file=/etc/rsyncd/rsyncd.secrets
    #同步时可以通过rsync的exclude参数跳过上面的data.mdb文件
    #对于data.mdb的同步,我们可以使用一个官方自带的工具mdb_copy
    mkdir /opt/zimbra/data/ldap/mdb/db
    mdb_copy /opt/zimbra/data/ldap/db /opt/zimbra/backup/ldap/mdb/db
    #mdb_copy需要切换到zimbra用户才可以使用
    #然后通过rsync同步这个备份的文件就可以了

    mdb_copy官方连接

    后续:

    同步完成后,如果发现权限不对,可以使用zimbra自带的工具修复

    /opt/zimbra/libexec/zmfixperms

    rsync同步后,发现属组不对,原来同步的时候,使用了use changeroot=yes选项,没有进行gid和gname的映射,取消这个选项或者设置为no即可

    原因:http://blog.sina.com.cn/s/blog_4c77206d0102vvmg.html

    启动:

    su - zimbra

    zimbra start

    可以正常运行

    参考资料:

    http://aba.qzu.cn/archives/523.html

    https://www.chenxie.net/archives/1476.html

    感谢他们的分享

  • 相关阅读:
    IT北漂攻略—择业篇(程序员.net)
    Log4net和Log2Console 结合使用时出现的中文问题
    日志设计规范
    IT北漂攻略租房篇
    Log2Console日志监测工具使用方法
    一些好用的开源控件
    工作流设计简介
    代码设计规范
    正则表达式分割字符串但是不分割字符串中引号中间的数据
    解决Android 应用运行报Unable to resolve superclass of L错误
  • 原文地址:https://www.cnblogs.com/z-books/p/6407268.html
Copyright © 2011-2022 走看看