postfix邮件服务器进阶

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

十三、配置postfix使用maildrop投递邮件


 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

 maildrop需要pcre的支持,因此,需要事先提供pcre的头文件及库文件等开发组件。如果选择以yum源来提供pcre,请确保安装pcre-devel包。
 # yum -y install pcre-devel

 # groupadd -g 1001 vmail
 # useradd -g vmail -u 1001 -M -s /sbin/nologin vmail
 # tar xf maildrop-2.6.0.tar.bz2
 # cd maildrop-2.6.0
 # ./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.6.0 Copyright 1998-2005 Double Precision, Inc.
GDBM/DB extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension are now always 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

 将下面两项指定的UID和GID作相应的修改:
 virtual_uid_maps = static:2525
 virtual_gid_maps = static:2525
 修改为:
 virtual_uid_maps = static:1001
 virtual_gid_maps = static:1001


 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/mailbox和extman的临时目录/tmp/extman的属主和属组指定为vmail
#chown -R vmail.vmail /var/mailbox
#chown -R vmail.vmail /tmp/extman

7、修改extman的主配置文件中的默认用户ID和组ID,确保其为类似如下内容
SYS_DEFAULT_UID = 1001
SYS_DEFAULT_GID = 1001

8、验正
接下来重新启动postfix和apache,进行发信测试后,如果日志中的记录类同以下项,则安装成功
Apr 15 15:33:54 localhost postfix/pipe[11964]: 04B92147CE9: to=<jerry@magedu.com>, relay=maildrop, delay=0.16, delays=0.07/0.03/0/0.07, dsn=2.0.0, status=sent (delivered via maildrop service)


十四、安装clamav-0.97.7

 最新的clamav-0.97.7需要zlib-1.2.2以上的版本的支持,因此需要事先安装相应版本的zlib-devel;在RHEL5.8上,使用系统yum源安装即可。

1、安装clamav-0.97.7

 添加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.97.7.tar.gz
 #cd clamav-0.97.7
 #./configure --prefix=/usr/local/clamav --with-dbdir=/usr/local/clamav/share --sysconfdir=/etc/clamav
 #make
 #make check
 #make install

 3、配置Clam AntiVirus:

 编辑主配置文件:
 #vim /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  

 说明:上面最后一个参数后面的数值应该与邮件服务器允许的最大附件值相一致


 编辑更新进程的配置文件
 #vim /etc/clamav/freshclam.conf

 注释掉Example,如下:
 # Example

 找到如下行
 #DatabaseDirectory /var/lib/clamav
 #UpdateLogFile /var/log/freshclam.log
 PidFile /var/run/freshclam.pid
 分别修改为:
 DatabaseDirectory /usr/local/clamav/share
 UpdateLogFile /var/log/clamav/freshclam.log
 PidFile /var/run/clamav/freshclam.pid

 启用以下选项:
 DatabaseMirror db.XY.clamav.net  (这里也可以把XY改成您的国家代码来实现,比如,我们用cn来代替)
 LogSyslog yes
 LogFacility LOG_MAIL
 LogVerbose yes

 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

 建立freshlog的日志文件
 #touch  /var/log/clamav/freshclam.log
 #chown  clamav.clamav  /var/log/clamav/freshclam.log

 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
 # chkconfig --level 2345 clamav-milter on

 编辑/etc/rc.d/init.d/clamd,将服务进程的路径指向刚才的安装目录
 #vi /etc/rc.d/init.d/clamd
 找到如下行
 progdir="/usr/local/sbin"
 修改为:
 progdir="/usr/local/clamav/sbin"

 启动clamd
 #service clamd start



     本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1628161,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
网络协议 Linux 文件存储
Postfix 邮件服务器的配置
Postfix是一种功能强大且功能多样的邮件传输代理。在本文中,我们已经了解了如何使用postfix 和 dovecot为基于系统用户帐户的单个域实现基本电子邮件服务器。我们几乎没有涉及基于 postfix 的系统的真正功能,但希望能为新用户构建提供坚实的工作基础。
1394 0
|
存储 网络协议 Linux
Postfix + Extmail 企业邮件服务器搭建
ExtMail套件用于提供从浏览器中登录、使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的IT应用环境,满足用户多变的需求,能快速进行开发、改进和升级,适应能力强的webmail系统。
671 0
Postfix + Extmail 企业邮件服务器搭建
|
网络协议 Linux 网络安全
Linux服务器---邮件服务安装postfix
安装postfix      postfix是一个快速、易于管理、安全性高的邮件发送服务,可以配合dovecot实现一个完美的邮箱服务器。1、安装postfix       [root@localhost ~]# rpm -qa | grep postfix      [root@localhos...
2303 0
|
开发工具 网络安全 数据安全/隐私保护
Postfix 邮件服务器安装与配置
#!/bin/bash yum -y install postfix dovecot; #/etc/postfix/main.cf #postfix check  postfix start  postfix stop postfix flush  postfixreload #/etc/postfix/main.
1245 0
|
网络协议 测试技术 开发工具
|
网络协议 测试技术 数据安全/隐私保护
|
测试技术 开发工具 数据安全/隐私保护
|
网络协议 安全 关系型数据库
|
Linux 开发工具 数据安全/隐私保护
|
网络协议 测试技术 开发工具