摘 要: 学院邮件服务器采用了Tmail开源邮件系统搭建,经过将近2年的运转效果一直比较稳定,为学校节约了资金也提升了邮件系统的可扩展性和可维护性。作者通过邮件系统升级,把老的邮件系统从roundcube 0.3升级至0.5.2版本,解决了webmail登录界面不能连接数据库和系统老版本中数据迁移的问题。新的邮件系统目前运行稳定。
1 引言
Tmail是开源邮件技术社区的最新的邮件服务器软件包,软件基于GPL协议,集成了postfix,spamassasin,clamav,courier-imap,courier-authlib的简易安装包.其中独创的web界面管理postfix选项,web设置spamassassin,web设置中文退信模板等,基于web管理系统配置是开源邮件系统中的首创.
安装过程简单快速,运行效率是开源邮件系统最快,最稳定的.垃圾邮件过滤和病毒邮件过滤是开源邮件系统中效率最高,成功率极高的邮件服务器软件.
Tmail的webmail采用ajax技术,使用人性化,符合国际标准编码,Tmail后台管理完全由开源邮件技术社区自己原创开发,整个安装容易,维护简单.
Tmail核心功能包括1.系统设置;2.Spamassassin设置;3.系统备份;4.域名管理;5.用户管理;6.用户监控;7.用户别名;8.系统级IP白名单;9.系统级IP黑名单;10.系统级发送者白名单;11.系统级发送者黑名单;12.服务器使用资源;13.服务器负载情况监测;14.各项服务运行情况监测;15.管理员管理;16.域管理可以设置启用Domainkey.启用域级Clamav,Spamassassin等式。
国家计算机网络入侵防范中心也多次针对Tmail RoundCube早期版本发布了信息泄漏漏洞预警,学院的邮件服务器升级势在必行。
RoundCube Webmail是基于浏览器,支持多国语言的IMAP客户端,操作界面提供方便的桌面应用程序。它提供e-mail客户端应该具备的所有功能包括 MIME支持,地址薄,文件夹操作,信息搜索和拼写检查。RoundCube Webmail采用PHP+Ajax开发并且需要MySQL数据库来存储数据。 用户界面采用XHTML+CSS2设计。
本次邮件服务器升级主要是在保证迁移数据到新系统的情况下,完成Tmail4.6.1中roundcube 0.3升级到0.5.2版本,在升级的过程中进行必要的数据库结构完善。
2系统升级与实现
现有邮件服务器包含CentOS 5.3(Community Enterprise Operating System社区企业操作系统) + Postfix(MTA 邮件代理)+ Maildrop(MDA邮件分发代理) + SpamAssasin(垃圾邮件过滤) + Clamav(病毒过滤) + Courier-IMAP(IMAP协议支持) + Courier-AUTHLIB (账户认证) + Tmail 后台管理中心 + RoundCube Webmail 等。
图1 系统架构
为了系统本次系统升级的安全稳定行,我们首先在虚拟机上进行了模拟升级测试,在升级测试成功以后,本次升级过程中主要进行了如下工作:
1 备份现有邮件系统及其数据库;
通过SSH Secure Shell Client登录邮件服务器,压缩现有的Tmail文件夹,并下载文件夹到本地客户端。
压缩目录命令:#tar –cvf Tmail
解压缩目录命令:#tar –zxvf Tmail
2 roundcube下载升级包并进行系统升级;
到http://roundcube.net/ 网站下面下载最新的roundcube升级安装包,roundcube 0.3升级至0.5.2版本。
A、升级PHP插件(关键)
安装MDB2_Driver_mysql:在tmail/httpd/php/bin中,执行
yum install pear_mysql(可不执行)
./pear install MDB2_Driver_mysql 注意此一定要成功,否则系统出现问题
其他插件(可选)
./pear install FileInfo
./pear install Intl
升级后的版本消除原版本中的跨站入侵漏洞!增加了一些应用插件。
B、更新程序
将原tmail/httpd/html/webmail目录下bin,plugs,program,skins,config,SQL目录先更名
将原tmail/httpd/html/webmail/index.php文件先更名
将升级包中的bin,plugs,program,skins,config,SQL目录复制入tmail/httpd/html/webmail目录下
将升级包根目录中index.php文件复制入tmail/httpd/html/webmail
C、修改系统的配置文件
打开tmail/httpd/html/webmail/config/db.inc.php文件,修改DSN设置
注解:rcmail_config[‘db_dsnw’] = ‘mysql://用户名:密码@域名或IP地址/数据库名’;
=》rcmail_config[‘db_dsnw’] = ‘mysql://tmail:tmail@localhost/webmail’;
保存。
注意:tmail/httpd/html/webmail/config/main.inc.php 可以不作修改,但要查看以下内容:运行时用!!!
$rcmail_config[‘enable_installer’] = false; 安装环境测试用时!!!
$rcmail_config[‘enable_installer’] = true;
D、进行测试,成功
E、删除目标机上所有更名的目录与文件
F、系统升级完成。
3 MySQL数据库脚本升级;
A、打开升级目标机器的数据库管理器
B、http://域名或IP地址/dbadmin 输入用户名、密码
注意数据库的选择-webmail(此时数据库中的表为6个)
C、打开:mysql.update.sql文件,复制并粘贴执行升级(注意升级版本)
数据库升级完成后表为8个
D、MySQL的最大连接数默认是2000客户端登录。
命令:set GLOBAL max_connections=2000;
最大连接数配置文件
/tmail/mysql/share/mysql
my-large.cnf文件
[mysqld] 下面增加 set-variable = max_connections=2000
mysql 目录 tmail/mysql目录
./share/mysql/mysql.server restart
4 linux 防火墙设置;
linux防火墙技术作为linux安全策略的重要组成部分,安全策略的设置对邮件系统的安全稳定也起着重要的作用。我们关闭了除pop3端口、smtp端口、IMAP交互式邮件存取协议、web 端口以外的所有端口和协议。
3小结
自安装2011年5月15日升级完成后,系统稳定运行,负载占有率极低,基本能满足邮件系统的需求。开源软件作为数字化校园平台的重要组成部分为学校将为学校的信息化应用工作作出巨大的贡献。
参考文献:
[1] Postfix Documentation http://mirror.postfixchina.org/documentation.html
[2] SpamAssassin Project Documentation http://spamassassin.apache.org/doc.html
[3] Clam AntiVirus 0.95 User Manual http://www.clamav.net/doc/latest/clamdoc.pdf
[4] Cyrus http://cyrusimap.web.cmu.edu/twiki/bin/view/Cyrus/WebHome
[5] RoundCube Webmail http://trac.roundcube.net/wiki
[6] Tmail 后台管理中心 http://www.thismail.org/
[7] 国家计算机网络入侵防范中心 http://www.nipc.org.cn/index.aspx
[8] 基于imap的webmail–roundcube,安装前必读http://www.sunnybox.net/archives/35#more-35
附加:
数据表修复命令:
http://mailaddress/dbadmin/
命令处理:
use tmail;
repair table tmail_triplet;
use webmail;
repair table messages;
修复完成数据表
repair table session;
PURGE {MASTER | BINARY} LOGS TO ‘log_name‘
PURGE {MASTER | BINARY} LOGS BEFORE ‘date‘
用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件中的清单中被删除,这样被给定的日志成为第一个。
例如:
PURGE MASTER LOGS TO ‘mysql-bin.010’;
PURGE MASTER LOGS BEFORE ‘2003-04-02 22:46:26’;
BEFORE变量的date自变量可以为’YYYY-MM-DD hh:mm:ss’格式。MASTER和BINARY是同义词。
如果您有一个活性的从属服务器,该服务器当前正在读取您正在试图删除的日志之一,则本语句不会起作用,而是会失败,并伴随一个错误。不过,如果从属服务器是休止的,并且您碰巧清理了其想要读取的日志之一,则从属服务器启动后不能复制。当从属服务器正在复制时,本语句可以安全运行。您不需要停止它们。
要清理日志,需按照以下步骤:
1. 在每个从属服务器上,使用SHOW SLAVE STATUS来检查它正在读取哪个日志。
2. 使用SHOW MASTER LOGS获得主服务器上的一系列日志。
3. 在所有的从属服务器中判定最早的日志。这个是目标日志。如果所有的从属服务器是更新的,这是清单上的最后一个日志。
4. 制作您将要删除的所有日志的备份。(这个步骤是自选的,但是建议采用。)
5. 清理所有的日志,但是不包括目标日志。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/39521.html