zimbra 从7.x 升级到 8.6 安全配置备忘录

最近升级了 zimbra 服务器 从7.x 版本直接到 8.6,考虑到openssl安全因素牵扯面广,os cent os 6.2 没有升,因为6.2的openssl到目前还是安全的。

升级具体过程就不说了,网上很多,主要步骤如下:

#切换用户 切记
su zimbra
# 停止服务
zmcontroal stop
# 备份
~/rsync/bin/rsync -av /opt/zimbra /SOME_DIRS/zimbra_backup/
cd zcs-8.6.0_GA_1153.RHEL6_64.20141215151155
# 安装
./install.sh --platform-override --skip-upgrade-check
# --skip-upgrade-check 很重要 否则 ldap会报错 没有时间去解决
## Waiting...
#

如果没有什么错误,应该能正常运行了,zimbra的安装还是很智能的,特别是数据库,会自动逐步升级,所以机器慢的话,1个小时很正常

登录页面测试,嗯一切正常。特别的,安装时有提示,意思升级后现有账户的配置不会更新等等,建议全新安装,还以为老账户啥都不变,结果都是最新的界面,比以前兼容性好多了,起码ie safari等高级模式显示正常了。

最关键的问题开始了,安全设置,特别时防止smtp本地用户发送欺骗,走了不少冤枉路。因为网上很多文章,特别是中文的,都没有明确说明zimbra版本号,有些只是简单的写了 7.xx 和 8.xx,但实际上,就是8.0x和8.5、8.6都不一样的,很简单的问题,浪费了我一个通宵,哎,想起句古话,“尽信书,则不如无书“。所以大家碰到问题时,还是要多想想,也许在我这对了,但细微的环境差异会导致在你的机器就是错的,一定要多看实际配置文件和日志输出(我用tail -f LOG_FILE实时输出)。为什么要看实际配置文件?因为在 zimbra 中,postfix 的配置有不少是通过 zimbra 的 配置文件来修改的,可是每个版本的 zimbra 能直接修改的 postfix 配置参数都不一样,所以老版本也许需要直接修改 main.cf 比如 postconf -e xxx=yyyy ,但在新版本中可能就必须通过 zmprov 来修改,否则自以为改了main.cf 结果重启(postfix reload )后还是原来的配置,所以怎么测试都是错的。

啰嗦一堆,回到正题,主要的问题是:1、只有本地数据库中实际用户才能发信;2、本能用户不能以其它本地用户名义发信 。简单说就是,不能伪造用户发邮件,只能本人发邮件。具体实现如下:

1)只允许本地数据库中实际用户发邮件
参见:
https://wiki.zimbra.com/wiki/Rejecting_false_%22mail_from%22_addresses#Zimbra_Collaboration_8.5_and_above

主要命令:

zmprov mcf zimbraMtaSmtpdRejectUnlistedRecipient yes
zmprov mcf zimbraMtaSmtpdRejectUnlistedSender yes
zmmtactl restart
zmconfigdctl restart

原文中的 domainrestrict 我没有做,因为已经足够用了。

2)解决本地用户冒用其他人名义发邮件
参见:
https://wiki.zimbra.com/wiki/Enforcing_a_match_between_FROM_address_and_sasl_username_8.5

主要命令:

zmprov mcf zimbraMtaSmtpdSenderLoginMaps 'lmdb:/opt/zimbra/conf/slm-exceptions-db, proxy:ldap:/opt/zimbra/conf/ldap-slm.cf' +zimbraMtaSmtpdSenderRestrictions reject_authenticated_sender_login_mismatch

我使用了 slm-exceptions-db 数据库,因为我想看看谁在冒用别人名义发信,所以实际上我是允许 slm-exceptions-db 数据库中的用户冒用他人名义发邮件。当然数据库如果只放一个不能登录的账户,那也等于禁止了,比较方便,如果没有这个考虑,去掉这个数据库就行了。另外还要修改 opt/zimbra/conf/zmconfigd/smtpd_sender_restrictions.cf ,添加:
reject_sender_login_mismatch
特别注意添加顺序,错了就不起作用,或者根本就不能发邮件了。原文说的很清楚:
permit_mynetworks, reject_sender_login_mismatch
这个顺序是以原始安装文件为基础的。
另外,一个小问题, mynetworks,需要用命令查看:
zmprov gs zimbra.example.com zimbraMtaMyNetworks

其中,服务器名需要替换成自己服务器名。
mynetworks 用管理控制台修改,我这有点小问题,输入127.0.0.0/8时,老是自动修改成127.0.0.1/8,而这个就是错的,所以要看下,最好用命令行修改。还有除了loop地址外,本机公网地址一定要放进去(如果有的话,掩码32就代表本机)。

另外,如果需要生成用户列表,可参考:
http://www.ttlsa.com/yun_wei_an_li/fix-zimbra-without-login-send-mails-bugs/
主要命令:

#/opt/zimbra/bin/ldapsearch -LLL -x -D "uid=zimbra,cn=admins,cn=zimbra" -w "PASSWORD" -H  ldap://LOCAL_LDAP_IP:389 | sed -n 's/^mail: \(\(.*\)@.*\)$/\1 \2/p' > /opt/zimbra/conf/slm-exceptions-db

注意:PASSWORD 需要查看 ~/conf/localconfig.xml , LOCAL_LDAP_IP 需要替换成实际的LDAP服务器地址。

看起来,很简单吧?确实简单,正常情况下一刻钟即可测试完成,可惜由于本人不清楚zmbra配置体系,参照其他文章,不加思索自行修改 main.cf 结果浪费一晚上时间,引以为戒!!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值