快捷搜索:   服务器  安全  linux 安全  MYSQL  dedecms

linux上安装基于postfix的全功能邮件服务器(3)

  3、apache相关配置

  由于extmail要进行本地邮件的投递操作,故必须将运行apache服务器用户的身份修改为您的邮件投递代理的用户;本例中打开了apache 服务器的suexec功能,故使用以下方法来实现虚拟主机运行身份的指定。此例中的MDA为postfix自带,因此将指定为postfix用户:

  <VirtualHost *:80>

  ServerName mail.benet.org

  DocumentRoot /var/www/extsuite/extmail/html/

  ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

  Alias /extmail /var/www/extsuite/extmail/html

  SuexecUserGroup postfix postfix

  </VirtualHost>

  修改 cgi执行文件属主为apache运行身份用户:

  # chown -R postfix.postfix /var/www/extsuite/extmail/cgi/

  如果您没有打开apache服务器的suexec功能,也可以使用以下方法解决:

  # vi /etc/httpd/httpd.conf

  User postfix

  Group postfix

  <VirtualHost *:80>

  ServerName mail.benet.org

  DocumentRoot /var/www/extsuite/extmail/html/

  ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi

  Alias /extmail /var/www/extsuite/extmail/html

  </VirtualHost>

  4、依赖关系的解决

  extmail将会用到perl的DBD::Mysql和Unix::syslogd功能,您可以去http://search.cpan.org搜索下载原码包进行安装。

  http://cpan.modperl.cn/authors/id/M/MH/MHARNISCH/Unix-Syslog-1.0.tar.gz

  # tar zxvf Unix-Syslog-0.100.tar.gz

  # cd Unix-Syslog-0.100

  # perl Makefile.PL

  # make

  # make install

  DBD-Mysql目前最新的版本为DBD-mysql-4.005,但它和系统中的perl结合使用时会造成extmail无法正常使用,因此我们采用3的版本:

  PATH=/usr/local/mysql/bin:$PATH; export PATH

  rpm -qa perl-DBI   #没有就安装

  rpm -ivh perl-DBI-1.53-2.fc7.i386.rpm

  # tar zxvf DBD-mysql-3.0002_4.tar.gz

  # cd cd DBD-mysql-3.0002_4

  # perl Makefile.PL   (此步骤中如果出现类同Can't exec "mysql_config": No such file or directory at Makefile.PL line 76.的错误是因为您的mysql的bin目录没有输出至$PATH环境变量)

  # make

  # make install

  好了,到此为止,您的Webmail已经可以使用了,可以在浏览器中输入指定的虚拟主机的名称进行访问,如下:

  http://mail.benet.org

  十三、安装Extman-0.2.2

  http://www.extmail.org/cgi-bin/download.cgi

  #tar zxvf extman-0.2.2.tar.gz

  # mv extman-0.2.2 /var/www/extsuite/extman

  修改配置文件以符合本例的需要:

  # vi /var/www/extsuite/extman/webman.cf

  SYS_MAILDIR_BASE = /home/domains

  此处即为您在前文所设置的用户邮件的存放目录,可改作:

  SYS_MAILDIR_BASE = /var/spool/mail

  SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock

  此处修改为:

  SYS_MYSQL_SOCKET = /tmp/mysql.sock

  使用extman源码目录下docs目录中的extmail.sql和init.sql建立数据库:

  # mysql -u root -p <extmail.sql

  # mysql -u root -p <init.sql

  修改cgi目录的属主:

  # chown -R postfix.postfix /var/www/extsuite/extman/cgi/

  如果extman访问数据库权限不足的话,可采用以下命令将新生成的数据库赋予webman用户具有所有权限:

  mysql> GRANT all privileges on extmail.* TO webman@localhost IDENTIFIED BY 'webman';

  mysql> GRANT all privileges on extmail.* TO [email protected] IDENTIFIED BY 'webman';

  在apache的主配置文件中Extmail的虚拟主机部分,添加如下两行:

  ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi

  Alias /extman /var/www/extsuite/extman/html

  重新启动apache服务器,即可使用Extman了。默认管理帐号为:[email protected] 密码为:extmail*123*

  有验证码问题,需要安装perl-gd库,我安了一下报错,干脆屏蔽这个功能

  修改/var/www/extsuite/extman/webman.cf

  SYS_CAPTCHA_ON = 0

  取消验证就改成0

  perl-gd下载安装就行了

  http://www.extmail.org/forum/thread-1747-1-1.html

  安装ExtMan手记(extman-0.15-20060518)

  1,下载相关软件:

  [Copy to clipboard] [ - ]CODE:

  extman-0.15-20060518.tar.gz

  File-Tail-0.99.3.tar.gz(extman需要)

  libart_lgpl-2.3.17.tar.gz(rrdtool需要)

  rrdtool-1.2.13.tar.gz

  Time-HiRes-1.87.tar.gz(extman需要)

  2,安装libart_lgpl

  [Copy to clipboard] [ - ]CODE:

  ./configure --prefix=/usr &&

  make &&

  make install

  3,安装rrdtool-1.2.13

  [Copy to clipboard] [ - ]CODE:

  ./configure &&

  make &&

  make install

  ln -s rrdtool-1.2.13 rrdtool (建立连接,部分脚本文件调用命令的时候使用rrdtool路径)

  cd /usr/local/rrdtool-1.2.13/lib/perl/5.8.7

  cp -pR * /usr/lib/perl5/5.8.7/ (将RRD的perl模块复制到系统的perl目录,在安装RRDTOOL的时候可以指定perl模块的安装目录)

  注意:安装rrdtool的时候可能需要其它的依赖软件你没有安装,请安装相应的软件。

  4,安装perl_File-Tail

  [Copy to clipboard] [ - ]CODE:

  cd File-Tail-0.99.3 &&

  perl Makefile.PL &&

  make &&

  make install

  5,安装perl_Time-HiRes

  [Copy to clipboard] [ - ]CODE:

  cd Time-HiRes-1.87 &&

  perl Makefile.PL &&

  make &&

  make install

  配置Mailgraph_ext

  XiaoHui 补充: 此模块主要是为提供图形化显示日志的能力。可以不必安装。

  自ExtMan 0.14-pre2 开始,系统集成了Mailgraph_ext插件,该插件使extman具备图形化显示邮件日志的能力。mailgraph_ext融合了 mailgraph和queuegraph两个软件包,除增加了更多的日志分析及图形显示能力外,还重写了web模块,集成到ExtMan后台里,这样邮 件日志将只能给经过授权的用户查看,提高了安全性。

  mailgraph_ext及Extman都需要安装rrdtool工具

  必需的软件包

  - Perl 5.6+ (建议5.8以上)

  - rrdtool 及rrdtool的perl包,地址:

  http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/

  - File::Tail (还需要Time::HiRes模块)

  RHEL/CentOS一般自带了perl-Time-HiRes(1.5x)所以以下的rpm安装也许会报错(提示冲突),可以不必理会。如果想安装本文所带的新版Time-HiRes模块,可以用如下命令删除系统自带的包:

  rpm -e perl-Time-HiRes --nodeps

  安装依赖包/RRDtool

  rpm -ivh RPMS/rrdtool-1.2.12-1hzq.i386.rpm RPMS/perl-rrdtool-1.2.12-1hzq.i386.rpm

  rpm -ivh RPMS/perl-Time-HiRes-1.72-1hzq.i386.rpm

  rpm -ivh RPMS/perl-File-Tail-0.99.3-1hzq.i386.rpm

  复制mailgraph_ext

  执行以下命令:

  cp -r /var/www/extsuite/extman/addon/mailgraph_ext/ /usr/local/mailgraph_ext/

  注意事项:

  本文使用qmonitor来搜集队列数据,而不是使用crontab来定时提取,这与官方网站上的文档有差异。使用qmonitor的好处是它实时的监视队列目录的变化,显示的结果更加精确。

  启动进程

  启动mailgraph_ext及qmonitor:

  /usr/local/mailgraph_ext/mailgraph-init start

  /usr/local/mailgraph_ext/qmonitor-init start

  加入自启动

  为了一开机就能自动执行上述进程,将上述命令加到rc.local 里面:

  echo "/usr/local/mailgraph_ext/mailgraph-init start" >> /etc/rc.d/rc.local

  echo "/usr/local/mailgraph_ext/qmonitor-init start" >> /etc/rc.d/rc.local

  十四、安装maildrop-2.0.4

  maildrop是一个使用C++编写的用来代替本地MDA的带有过滤功能邮件投递代理,是courier邮件系统组件之一。它从标准输入接受信息并投递 到用户邮箱;maildrop既可以将邮件投递到mailboxes格式邮箱,亦可以将其投递到maildirs格式邮箱。同时,maildrop 可以从文件中读取入站邮件过滤指示,并由此决定是将邮件送入用户邮箱或者转发到其它地址等。和procmail不同的是,maildrop使用结构化的过 滤语言,因此,邮件系统管理员可以开发自己的过滤规则并应用其中。

  我们在此将使用maildrop来代替postfix自带的MDA,并以此为基础扩展后文的邮件杀毒和反垃圾邮件功能的调用;在此可能会修改前文中的许多设置,请确保您的设置也做了相应的修改。

  1、安装

  将courier-authlib的头文件及库文件链接至/usr目录(编译maildrop时会到此目录下找此些相关的文件):

  # ln -sv /usr/local/courier-authlib/bin/courierauthconfig   /usr/bin

  # ln -sv /usr/local/courier-authlib/include/*   /usr/include

  # groupadd -g 1001 vmail

  # useradd -g vmail -u 1001 -M -s /sbin/nologin vmail

  # ./configure \

  --enable-sendmail=/usr/sbin/sendmail \

  --enable-trusted-users='root vmail' \

  --enable-syslog=1 --enable-maildirquota \

  --enable-maildrop-uid=1001 \

  --enable-maildrop-gid=1001 \

  --with-trashquota --with-dirsync

  # make

  # make install

  检查安装结果,请确保有"Courier Authentication Library extension enabled."一句出现:

  # maildrop -v

  maildrop 2.0.4 Copyright 1998-2005 Double Precision, Inc.

  GDBM extensions enabled.

  Courier Authentication Library extension enabled.

  Maildir quota extension enabled.

  This program is distributed under the terms of the GNU General Public

  License. See COPYING for additional information.

  2、新建其配置文件/etc/maildroprc文件,首先指定maildrop的日志记录位置:

  # vi /etc/maildroprc

  添加:

  logfile "/var/log/maildrop.log"

  # touch /var/log/maildrop.log

  # chown vmail.vmail /var/log/maildrop.log

  3、配置Postfix

  编辑master.cf

  # vi /etc/postfix/master.cf

  启用如下两行

  maildrop unix -       n       n       -       -       pipe

  flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

  注意:定义transport的时候,即如上两行中的第二行,其参数行必须以空格开头,否则会出错。

  编辑main.cf

  # vi /etc/postfix/main.cf

  virtual_transport = virtual

  修改为:

  virtual_transport = maildrop

  4、编辑/etc/authmysqlrc

  # vi /etc/authmysqrc

  MYSQL_UID_FIELD '2525'

  MYSQL_GID_FIELD '2525'

  更改为:

  MYSQL_UID_FIELD '1001'

  MYSQL_GID_FIELD '1001'

  注意:没有此处的修改,maildrop可能会报告 “signal 0x06”的错误报告。

  5、编辑/etc/httpd/httpd.conf,修改运行用户:

  如果启用了suexec的功能,则将虚拟主机中指定的

  SuexecUserGroup postfix postfix

  修改为:

  SuexecUserGroup vmail vmail

  如果没有使用上面的功能,则修改User和Group指令后的用户为vmail

  将前文中的如下项

  User postfix

  Group postfix

  修改为:

  User vmail

  Group vmail

  6、将用户邮件所在的目录/var/spool/mail的属主和属组指定为vmail

  #chown -R vmail.vmail /var/spool/mail

  接下来重新启动postfix和apache,进行发信测试后,如果日志中的记录类同以下项,则安装成功

  Sep 16 12:04:43 Ixor postfix/pipe[14266]: 46B491A5CB: to=<[email protected]>, relay=maildrop, delay=2306, delays=2306/0.04/0/0.07, dsn=2.0.0, status=sent (delivered via maildrop service)

  说明:其实您可以在前面的安装过程中就把maildrop规划进系统中;这里之所以这样实现,也是为了突出maildrop在系统构建过程中的影响,也体现了一步步扩充系统的过程。

  接下来安装反病毒和反垃圾邮件的相关组件clamav、amavisd和SpamAssassin

  ClamAV是一个unix系统平台上的开源反病毒工具,它是特地为在邮件网关上进行邮件扫描而设计的。整套软件提供了许多的实用工具,包括一个可伸缩和可升级的多线程守护进程、一个命令行扫描工具和病毒库自动升级工具。

  SpamAssassin 是目前最好的、最流行的开源反垃圾邮件软件之一。它是一个邮件过滤器,使用了多种反垃圾邮件技术,如:文本分析、贝叶斯过滤、DNS黑名单和分布式协同过滤数据库等。

  amavisd-new是一个连接MTA和内容检测工具(诸如病毒扫描工具和SpamAssassin)的高性能接口程序,使用perl语言写成。它一般 通过SMTP、ESMTP或者LMTP和MTA进行通讯,当然也可以借助于其它外部程序进行。同postfix(MTA)协同工作时表现尤佳。当它呼叫 SpamAssassin进行内容过滤时,对于一封邮件只需要呼叫一次,而不管这封邮件将发往多少个收件人;同时,它亦会尽力保证实现每一位收件人的偏好 设置,如接收/拒绝,检测/不检测,垃圾邮件级别等;它还会在邮件头部分插入spam相关信息。

  十五、安装clamav-0.91.2

  最新的clamav-0.91.2需要zlib-1.2.2以上的版本的支持,而RHEL4上的版本为zlib-1.2.1,因此您需要先升级zlib

  1、安装zlib-1.2.3

  #tar zvxf zlib-1.2.3.tar.gz

  #cd zlib-1.2.3

  #./configure --prefix=/usr --shared

  #make

  #make test

  2、安装clamav-0.91.2

  添加ClamAV运行所需的组和用户:

  #groupadd clamav

  #useradd -g clamav -s /sbin/nologin -M clamav

  添加配合amavisd-new使用的用户amavis

  #groupadd amavis

  #useradd -g amavis -s /sbin/nologin -M amavis

  #tar zxvf clamav-0.91.2.tar.gz

  #cd clamav-0.91.2

  #./configure --prefix=/usr/local/clamav --with-dbdir=/usr/local/clamav/share --sysconfdir=/etc/clamav

  #make

  #make check

  #make install

  3、配置Clam AntiVirus:

  编辑主配置文件:

  #vi /etc/clamav/clamd.conf

  注释掉第八行的Example,如下:

  # Example

  找到如下行

  #LogFile /tmp/clamd.log

  #PidFile /var/run/clamd.pid

  LocalSocket /tmp/clamd.socket

  #DatabaseDirectory /var/lib/clamav

  #User clamav

  修改为:

  LogFile /var/log/clamav/clamd.log

  PidFile /var/run/clamav/clamd.pid

  LocalSocket /var/run/clamav/clamd.socket

  DatabaseDirectory /usr/local/clamav/share

  User amavis

  启用以下选项

  LogSyslog yes

  LogFacility LOG_MAIL

  LogVerbose yes

  StreamMaxLength 20M (后面的数值应该与邮件服务器允许的最大附件值相一致)

  编辑更新进程的配置文件

  #vi /etc/clamav/freshclam.conf

  注释掉Example,如下:

  # Example

  找到如下行

  #DatabaseDirectory /var/lib/clamav

  #UpdateLogFile /var/log/freshclam.log

  分别修改为:

  DatabaseDirectory /usr/local/clamav/share

  UpdateLogFile /var/log/clamav/freshclam.log

  4、建立日志所在的目录、进程与socket所在的目录,并让它属于clamav用户:

  # mkdir -v /var/log/clamav

  # chown -R amavis.amavis /var/log/clamav

  # mkdir -v /var/run/clamav

  # chmod 700 /var/run/clamav

  # chown -R amavis.amavis /var/run/clamav

  5、配置crontab,让Clam AntiVirus每小时检测一次新的病毒库:

  # crontab -e

  添加:

  37 * * * * /usr/local/clamav/bin/freshclam

  6、配置库文件搜索路径:

  # echo “/usr/local/clamav/lib” >> /etc/ls.so.conf

  # ldconfig -v

  7、配置clamav开机自动启动

  # cp contrib/init/RedHat/clamd /etc/rc.d/init.d/clamd

  # cp contrib/init/RedHat/clamav-milter /etc/rc.d/init.d/clamav-milter

  # chkconfig --add clamd

  # chkconfig --add clamav-milter

  # chkconfig --level 2345 clamd on

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论