postfix部署多个Content Filter的方法

Postfix邮件服务器可以在接收邮件时使用content_filter来扫描邮件(病毒,广告等).通过整合一个集中化的电子邮件内容过滤器,比如amavis或mailscanner,Postfix可以利用单次调用来进行多个扫描.这非常好,但是有些过滤器很难或者几乎不可能整合到一个集中化的过滤器中.这是一个问题,尤其是你的Postfix系统已经安装了某些集中化的content_filter.我们能解决这个问题吗,当然可以.这个文档将给出许多可能的解决方案中的一种.你的步骤可能不一样,根据你的配置而定.

在案例中,我们假设我们需要一个运行Postfix,Amavis(包含各种插件)和Avira MailGate的邮件系统.Postfix已经配置为使用Amavis系统作为content_filter.MailGate 不能通过Amavis进行整合,因此它要使用一个单独的content_filter.

Amavis配置:Amavis监听10026端口,然后通过10027端口进行转发.

代码如下
$inet_socket_port = 10026;
forward_method => 'smtp:[127.0.0.1]:10027';

MailGate配置:MailGate监听20024端口,然后通过20025端口进行转发.

代码如下
ListenAddress localhost port 20024
ForwardTo SMTP: localhost port 20025

Postfix需要配置两个过滤器.

这可以通过串接过滤器:进入的邮件首先提交到Postfix Content_filter,(www.3lian.net然后Content_filter将扫描后的邮件传给Postfix.扫描后的邮件再传给第二个Content_filter.最后再送到用户手中.我们的链是这样的:Postfix > MailGate > Postfix > Amavisd-new >

代码如下

Postfix > User
main.cf:

content_filter = smtp:127.0.0.1:20024
master.cf

localhost:20025 inet n - n - - smtpd
-o content_filter=smtp:127.0.0.1:10026
127.0.0.1:10027 inet n - n - - smtpd
-o content_filter= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions= -o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o smtpd_restriction_classes=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters
-o local_header_rewrite_clients=

就这样,Postfix提交所有进来的邮件到20024端口的MailGate,MailGate再将扫描的结果传回到20025的Postfix.Postfix在20025端口运行着一个额外的SMTP服务,这个服务也包含了一个content_filter,因此所有到达20025端口的邮件会再传给10026端口.Amavis监听着10026端口,因此邮件将被Aamavis扫描.扫描完成后Amavis将邮件传送到10027端口.而在10027端口上运行着另外一个Postfix提供的SMTP服务,至此邮件到达链的终点,邮件将被邮递给用户.

另外一个配置样例可能如下:

代码如下

In main.cf:

# send email to amavisd
content_filter = amavisd:[127.0.0.1]:10024
In master.cf:

# amavisd
amavisd unix - - n - 2 lmtp
-o lmtp_data_done_timeout=1200s
-o disable_dns_lookups=yes

# receive email from amavisd
# and then send email to altermine
127.0.0.1:10025 inet n - n - - smtpd
-o content_filter=altermine

# receive email from 127.0.0.1:10025
altermine unix - - n - 2 pipe
...

# receive email from altermine
127.0.0.1:20025 inet n - n - - smtpd
-o content_filter=
-o ...

整个流程为: postfix -> amavisd:[127.0.0.1]:10024 -> postfix -> altermine -> postfix -> user

(0)

相关推荐

  • Linux下安装和部署LXC(内核虚拟化技术)的方法

    Linux Container容器是一种内核虚拟化技术,简称LXC,是一种轻量级的虚拟化手段,那么LXC要如何安装部署呢?下面小编就给大家介绍下Linux下LXC的安装部署方法。 LXC 中文名称就是 ...

  • 怎么将myeclipse项目部署到tomcat服务器

    怎么将myeclipse项目部署到tomcat?MyEclipse支持使用灵活的部署来对项目进行装配部署,灵活的部署支持允许你自定义最终归档是如何装配的.好了,话不多说,接下来我们小编就给大家具体介绍 ...

  • 企业用户Win7自动安装建议使用此方法

    操作方法 01 本文介绍企业用户如何利用自动安装方法部署Windows 7系统.此方法在安装的开始需要有限的交互,但是该过程的其余时候都是自动进行的.如果您的公司拥有专门的 IT 人员以及 200-5 ...

  • 阿里云邮箱群发退信显示错误代码怎么办?

    阿里云企业邮箱群发退信显示shamed by local spam engine错误代码怎么办 邮件被反垃圾系统认定为垃圾邮件,无法继续发送. (13)ESO_LOCAL_SPAM: spamed b ...

  • 如何自学java编程

    java是面向过程的编程语言:Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java 技术具有卓越的通用性.高效性.平台移植性和安全性,广泛应用于PC.数据中心.游戏控制台.科学超级计 ...

  • 利用SDN扩展虚拟网络

    SDN可以将你带到现有网络没有到过的地方,但你可能要重新考虑转发表。 SDN被认为是企业实现完全虚拟化网络的主要途径,乃至实现完全虚拟数据中心的主要方式。 所有这些虚拟化的主要好处之一是规模。不受硬件 ...

  • 企业用户Windows 7自动安装

    本文介绍企业用户如何利用自动安装方法部署Windows 7系统。此方法在安装的开始需要有限的交互,但是该过程的其余时候都是自动进行的。如果您的公司拥有专门的 IT 人员以及 200-500 台客户端计 ...

  • U大侠如何安装原版Win7系统

    如何利用u盘来安装原版win7系统?如何使用u大侠u盘装系统工具这一傻瓜式的装机工具,重装原版win7系统?是很多用户会遇到的问题,但很多电脑小白用户对此一无所知,有点为难,好心的小编下面就为大家具体 ...

  • ffdshow(全能的解码编码器)怎么解码

    ffdshow软件它能够解码的视频格式已经远远超出了mepg4的范围,包括indeo video,WMV,mpeg2等等.同时,它也提供了丰富的加工处理选项,可以锐化画面,调节画面的亮度等等,一起来看 ...