网站首页 | 网页制作 | 网络编程 | 图形图象 | 冲浪宝典 | 操作系统 | 软件教学 | 网络安全 | 认证考试 | 下载中心 | 游戏下载
| 操作系统首页|Windowns2003|Windowns2000|WindownsXP|Linux|FreeBSD|Unix|DOS|Solaris|SCO_Unix|HP-Unix|注册表|经验技巧 |
您现在的位置: 超人气学院 >> 操作系统 >> Linux >> 文章正文 用户登录 新用户注册
linux完整web邮件系统的架设           ★★★
linux完整web邮件系统的架设
作者:devil4he… 文章来源:DLR 点击数: 更新时间:2007-1-5 20:31:25
正好最近需要把原来架设的web mail系统整体转移,顺便把原来放了N久的文档补齐吧.
目的是为用户提供web方式的邮件系统,注意,只有web方式,不提供pop3等等方式,要求系统良好的扩展性以及相应的安全(防病毒、垃圾邮件)等等。

系统中apache+php+hivemail来提供web访问,hivemail通过pipe gateway默认于mta连接,

整个邮件系统涉及:
1.linux rhas3
2.mta postfix
3.database mysql
4.webmail apache+php+hivemail
5.anti-virus,anti-spam f-secure internet gatekeeper



A。操作系统,linux,习惯了rhas3
当然debain、suse等都可以,安装过程忽略。推荐使用较大的硬盘,大用户量下还是感觉mail放在硬盘上比放在mysql数据库里性能要好的多,硬盘大小根据你的用户量以及邮箱容量计算。
注意因为偶是采用的硬盘目录存储邮件,ext3文件系统存在单一目录下子目录不能超过32k的限制,推荐使用reiserfs文件系统。
B。postfix配置
而不是sendmail,可以使用rhas3自带的,也可以手工编译,偶是懒人,直接使用了rhas3自带的postfix,需要编辑更改一下main.cf以及alias文件
main.cf需要更改myhostname、mydomain、myorigin、inet_interfaces、mydestination、mynetworks、relay_domains等等,整个相当于postfix作为mta开始对外使用 ,注意不要打开open relay
针对我们的web系统,需要优化一下postfix,例如maximal_queue_lifetime、smtpd_timeout减小之类以避免影响性能
最终需要配置main.cf,这个是使用pipe-gateway方式来连接hivemail,注意一下两项都需要
luser_relay = hivemail
local_recipient_maps =
这个是保证postfix把接受的邮件转移个hivemail用户,当然需要在alias文件里添加用户如下
hivemail: |/opt/php/bin/hivemail_process.php
然后更新一下aliases.db
# postalias aliases
最后重启一下postfix服务,看看postfix是不是配置正确。
C。Mysql编译
偶不喜欢rh自带的mysql,使用的是mysql4.0.27源码编译的,参数如下
./configure --prefix=/resource/mysql --with-extra-charsets=complex --enable-thread-safe-client --enable-local-infile --enable-assembler --disable-shared --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --without-debug
make & make install
然后参照INSTALL-SOURCE完成数据库安装,具体请查看INSTALL-SOURCE内容,配置/etc/my.cnf等等,包括需要的表类型、数据库引擎类型等等。
最终需要创建我们需要的数据库跟用户
mysql>create database hivemail;
mysql>grant all on hivemail.* to 'user'@'%' identified by 'pwd';
注意这里我们user用户是可以在任何地点连接的,需要通过防火墙阻止非信任ip对mysql 3306端口的访问。


D。apache+php+hivemail编译安装
注意这里没有使用lighty或者zeus,zeus4.2完全可以使用hivemail,只要正确配置的fastcgi,但lighty+fastcgi+php方式却不能正常使用hivemail,怀疑某个变量没有被传输过来,偶没有时间来继续做测 试,有兴趣的可以测试一下。
apache2编译安装,偶需要对apache加装mod_evasive、mod_security、ssl等等,所以编译比较繁琐,正常情况下简化即可
./configure --prefix=/opt/apache2 --enable-so --enable-rewrite --enable-forward --enable-deflate --enable-headers --enable-ssl --with-ssl=/opt/openssl
make & make install

php编译安装,主要是--with-apxs2参数编译mod_php,参数如下,偶打开了fastcgi
./configure --prefix=/opt/php --enable-fastcgi --enable-force-cgi-redirect --with-config-file-path=/etc --with-zlib --with-mysql=/resource/mysql --with-xml --with-mysql-sock=/tmp/mysql.sock --enable-discard-path --with-apxs2=/opt/apache2/bin/apxs
make & make install

如果需要增加其它例如ecacceleator、zend optimizer之类的,请自己手动安装一提高php执行性能。

hivemail安装,这里我们是使用pipe gateway方式来连接postfix,偶这里是hivemail1.2.2,没有采用最新的hivemail1.3,因为偶改了N多东西,所以一直没有升级。
ⅰ。hivemail web安装很简单,仔细看INSTALL安装文件,需要把upload ftp到服务器上,然后修改upload/include/config.php,正确设置mysql连接,然后通过web访问upload/install/index.php通过web一路next即可。
注意这里有个sql_install.php,实际上就是它创建的hivemail各项使用表,默认的为myisam表格式,偶喜欢innodb,所以通过更改sql_install.php,直接创建为innodb表。
2。pipe gateway连接mta,需要把hivemail_process.php上传到我们的php执行路径下,编辑一下hivemail_process.php设置正确的各个路径,包括php路径,hivemail安装目录等等,最后chmod +x hivemail_process.php。
3.使用你创建的admin登陆,然后更改存储方式为storage method,即硬盘存储邮件方式,以减轻大用户量下mysql的压力。

E。防毒防垃圾邮件,推荐f-secure internet gatekeeper,比偶原来使用Trend IMSS性能好的多
internet gatekeeper是优秀的网关防毒软件,当然也是商业软件,支持http、ftp、smtp、pop3防毒。
到f-secure下载个for linux的30天试用版本,tar zxvf解压,sh INSTALL.sh即默认安装到/opt/f-secure/fsigk下,默认的管理端口为127.0.0.1:9012,更改一下fsigk/etc/fsigk.ini改成公网ip重新启动fsigk_admin服务即可远程管理,这里打开smtp,监听9025端口,parent smtp设置127.0.0.1 25,打开virus以及spam检查,对于收到virus以及spam邮件自个设定如何处理。fsigk_smtp会自动启动,监听9025端口
注意这里需要我们把对25端口的收信转移到9025上以方便gatekeeper检查病毒、spam,然后再转移回postfix,利用iptables的nat端口转换功能来完成此项操作。
iptables -t nat -A PREROUTING -d publicip -p tcp -m tcp --dport 25 -j DNAT --to-destination publicip:9025


系统的优化:
偶使用的是hivemail1.2.2,性能在默认情况下有些问题,经过检查发现一个sql占用了大量的cpu,就是对hive_emailid的操作,表现为系统中有N个hivemail_process.php,mysql占用大量的系统cpu,对此 表emailid字段创建index即可坚决此严重的性能问题。此问题曾经在hivemail forum多次出现,官方只推荐升级到hivemail1.3。偶没有测试过1.3,所以不知道1.3是否解决此性能问题。至少在1.2.2上创建index后在偶的接近10W用户里没再出现相应的性能问题。

题外话:
hivemail作为商业web mail系统,已经2年没更新了,怀疑已经是个dead project,但其用户还是挺多的,对于中小型使用非常合适而且可以根据需要更改php程序,整体界面非常漂亮。这么死掉的话非常可惜。
最近发现的hivemail漏洞是因为对于各个id的检查不够,各位可以在相应的php程序开头加入intme($*id)以防止此注入。
要求安全性高的话可以在apache加装mod_security、mod_evasive等以防止一些常见的攻击。

附件为当初从某个ccf那里down回来汉化一半的skin,偶已经在此基础上差不多汉化了所有的前台功能 ,安装后admin身份import此皮肤,然后用户就可以使用中文界面了
 

[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda    责任编辑:kinda 
  • 上一篇文章:

  • 下一篇文章: 没有了
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
     LinuxC编程---网络编程[2565]
     Linux的Find[1943]
     grub简单应用[1199]
     硬件安装指南[1136]
     SmoothWall2.0(强烈推[1121]
     部分的ADSL路由器默认[1039]
     从硬盘安装Linux和从G[966]
     Linux常见命令:进程查[851]
     黑客帝国屏保[772]
     elf文件格式-- 1[722]
    相 关 文 章
    都是宽带造的福-用宽带架设
    用宽带网来架设个人服务器
    OpenServer5架设NTP时间服
    转贴dns的设定第五章:架设
    [推荐]如何以Solaris架设F
    在LAN内架设简单的time se
    在Solaris中架设FTP虚拟系
    如何以Solaris架设FTP虚拟
    FreeBSD 5.2.1R Web Serve
    在 linux 上架设 FreeBSD 
    FreeBSD 5.2.1R Web Serve
    [原创]FreeBSD下架设CS服务
    NetBSD2.0下架设入门级www
    FreeBSD WEB服务器架设笔记
    在FREEBSD 5.2中使用Puref
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)