更多精彩内容,请访问云邮科技官方网站:http://www.yunrelay.com
现在位置:首页 » »

postfix垃圾邮件过滤机制 及 GW/relay_domain/relayhost

作者:山坛兄弟 ⁄ 时间:2014年05月03日 ⁄ 分类: 评论:0
postfix垃圾邮件过滤机制,有谁全部使用了
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jxwpx.blog.51cto.com/15242/238679
 
POSTFIX有传说中最强的垃圾邮件过滤机制,有谁把这些机制全部利用起来了。
 
smtpd_restriction_classes 
             spamlover      
             spamhater
spamhater 

             reject_invalid_hostname
             reject_non_fqdn_hostname
             reject_unknown_sender_domain
             reject_rbl_client   nospam.example.com
spamlover 
 permit
smtd_helo_required 
 yes
smtpd_client_restrictions 

          check_client_access  hash:/ect/postfix/client_access
smtpd_helo_restrictions =
       reject_invalid_hostname
       check_helo_access hash:/etc/postfix/helo_access
smtpd_sender_restrictions =
       reject_non_fqdn_sender
       reject_unknown_sender_domain
       check_sender_access hash:/etc/postfix/sender_access
smtpd_recipient_restrictions = 
          permit_mynetworks
          reject_unauth_destination
          reject_non_fqdn_recipient
          reject_unknown_recipient_domain
smtpd_data_restrictions =
       reject_unauth_pipelining
header_checks = /etc/postfix/header_checks
body_checks = /etc/postfix/body_checks

本文出自 “网络数据优化与安全_jxwpx” 博客,请务必保留此出处http://jxwpx.blog.51cto.com/15242/238679

 

================================================

postfix配置 main.cf

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

# Debian specific: Specifying a file name will cause the first
# line of that file to be used as the name. The Debian default
# is /etc/mailname.

#用于限定系统所接受的最大的单封邮件长度。限制postfix队列文件的大小。缺省值为#10240000 bytes。
message_size_limit = 1572864000 

#限制信头长度。缺省值为102400bytes
#header_size_limit =

#这是用于设定当SMTP连接来时,要显示的版本资讯
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

# biff是一个能在收到新邮件时,发出通知给本地用户的小程序。如果你的用户不会登录邮#件系统,建议你关掉biff通知,因为这有助于提升邮件系统得效率。
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem   # TLS需要的ssl证书位置
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key # TLS需要的ssl私钥位置
smtpd_use_tls=yes     #用ssl加密认证SMTP会话
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache

#sasl parameters
smtpd_sasl_type=dovecot     #使用dovecot进行验证
smtpd_sasl_auth_enable = yes     #启用sasl验证
smtpd_sasl_path= private/auth   #

#这个参数限制了谁可以用你的邮件服务器中继和转发邮件。
smtpd_recipient_restrictions= permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
l
#设置您的主机名称,且这个设置值被后续很多其他的参数所引用
myhostname = localhost     

#参数决定了Postfix 可以帮忙传递哪些域的邮件
#relay_domains = $mydestination, 126.com

# mynetworks 参数指定你所在的网络的网络地址,postfix系统根据其值来区别用户是远程的还是本地的,如果是本地网络用户则允许其访问。你可以用标准的A、B、C类网络地址,也可以用CIDR(无类域间路由)地址来表示, ( 注:请注意,如果你没有设定 mynetworks 的话,一定要将 mynetworks_style 设定为 host !不然你的 IP 所在的子网域的 IP 会被自动的认为是‘合法的’!)
mynetworks = 127.0.0.0/8 ,192.168.1.0/24

#用来指定含有用户别名定义的文件路径
alias_maps = hash:/etc/aliases
#用来指定别名表数据库文件路径
alias_database = hash:/etc/aliases

#这个项目用于设置邮件标头上面的Mail from地址,即代表本MTA传出去的信件将以此设置值为准。
myorigin = /etc/mailname

#mailbox_command = procmail -a "$EXTENSION"
#default_transport = smtp

#指定postfix在进行邮件投递时使用与Qmail类似的Maildir方式,此方式每封邮件是一个独立的文件,比较易于管理,另外IMAP默认也是在用户目录的Maildir中访问邮箱的。在选Maildir方式时,mailbox_command选项应该置空。
#home_mailbox = Maildir/

#设置“能够收信的主机名称”, 你的 postfix 只有在发现 mydestination 这个项目中有写入
#的主机名称做为收信主机时,才会将该封信件收下来!
mydestination = debian.domain, localhost, localhost.localdomain, localhost
#来决定你的邮件是不是直接传递到internet还是通过其它的主机进行传递
relayhost =
mailbox_size_limit = 0

#允许使用扩展的用户名
recipient_delimiter = +

#指定Postfix邮件系统监视的网络接口
inet_interfaces = all


#"virtual_gid_maps"和"virtual_uid_maps"是postfix用户的gid和uid
virtual_uid_maps = static:5566
virtual_gid_maps = static:5566

# virtual_mailbox_maps参数定义虚拟邮箱查询表位置
virtual_mailbox_maps = mysql:/home/postfix/-mailbox-maps.cf
#这个参数是用在虚拟投递代理的。它指出了一个域名列表,拥有这些域名的电子邮件才能够被postfix的虚拟投递代理处理。它也是代替在$mydestination参数指出一长串的域名。
virtual_mailbox_domains = mysql:/home/postfix/-mailbox-domains.cf
#virtual_alias_maps参数指向一个虚拟别名表
virtual_alias_maps = mysql:/home/postfix/-alias-maps.cf
#virtual_alias_maps = mysql:/home/postfix/-alias-maps.cf,mysql:/home/postfix/-email2email.cf
#通过postfix 发送出去的邮件
sender_bcc_maps = mysql:/home/postfix/-mail-watch.cf
#通过postfix 接收到的邮件
recipient_bcc_maps = mysql:/home/postfix/-mail-watch.cf
#指定dovecot投递代理来负责投递
virtual_transport = dovecot
dovecot_destination_recipient_limit = 1

#content_filter = smtp-amavis:[127.0.0.1]:10024
#receive_override_options = no_address_mappings

#可以同时采用多个备用的邮件中继
smtp_fallback_relay =
# transport_maps参数可指向一个或多个传输表
transport_maps = hash:/home/postfix/transport



-----------------------------------------------------
# Postfix 主要的组态档,删除了多数说明文字,
# 并且尝试依照最常用的邮件主机设定来依序设定与说明,
# 许多不常用的设定并未列出。
### 0. 几个 Postfix 主要的设置参数,一般状况下不需要更改。
queue_directory = /var/spool/postfix
command_directory = /usr/sbin
daemon_directory = /usr/libexec/postfix
mail_owner = postfix
##
# 一、设定邮件主机的识别身分(重要)
# myhostname 主机名称:如果系统设置得当,应该不用设置,系统会以gethostname()取得
# mydomain 网域名称:预设会以myhostname第一个点之后的作为domain名称
# myorigin 补齐缺少的资讯:自动补齐资讯所用的,通常使用网域名称
# mydestination 本地网域:指Postfix应该视为「本地网域」的所有网域名称
# (本地网域的部份会后续在设定)
#myhostname = host.domain.tld
#mydomain = domain.tld
myorigin = $mydomain
##
# 二、设定 Postfix 能使用的网路介面(重要)
# (如果是对外服务的邮件主机,就必须要设定为all,预设为localhost)
inet_interfaces = all
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost
##
# 三、先设定简易的代转(Relay)管控
# 3.1 mynetworks_style 提供三种简易设定型态
# class =>与伺服器位于同一级IP网路的主机都可以使用代转服务
# subnet =>所在网域的任一个IP都可以使用代转服务
# host =>仅开放localhost为信任


 

#mynetworks_style = class
#mynetworks_style = subnet
#mynetworks_style = host
# 3.2 mynetworks 明确设定可使用relay的主机范围
# (优先于mynetworks_style,建议採用此种设定法)
mynetworks = 192.168.0.0/24, 192.168.1.0/24, 127.0.0.0/8
#mynetworks = $config_directory/mynetworks
#mynetworks = hash:/etc/postfix/network_table
##
# 四、设定Postfix会收下信件的网域
# Postfix会收下四种特定网域的信件,除了main.cf中的设定外,
# 也应该被正确的设置在DNS中的MX纪录中。
# (1)本地网域(local domain)=>由mydestination参数设定
# (2)代转网域(relay domains)=>由relay_domains参数设定
# (3)虚拟网域(virtual domains)之虚拟别名(virtual aliases)
# =>由 virtual_alias_domains参数设定
# (4)虚拟网域之虚拟信箱(virtual mailboxes)
# =>由 virtual_mailbox_domains参数设定
# (上列四种设定不应重複,网域已设为本地网域,就不应该出现在代转网域)
# 4.1 设定本地网域
#mydestination = $myhostname, localhost.$mydomain
mydestination = $myhostname, localhost.$mydomain, $mydomain
#mydestination = $myhostname, localhost.$mydomain, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
# 4.2 设定代转网域
# Postfix 预设会提供代转服务的设置:
# (代转服务=该网域并非由本Postfix MTA所管控,但可以代转发)
# - 从信任的客户端(指ip符合$mynetworks)寄出到任何目的地
# - 从非信任的客户端寄出到符合$relay_domains或其下次网域的目的地
# 若信件终点站是relay_domains参数中的网址,被视为外地邮件,
# 由 relay MDA来执行投递作业。
# relay_domains 预设值= $mydestination.(主机名称)
#
# 4.3 设定虚拟别名


# 七、别名档资料库设定(aliases)
# 使用default_database_type参数决定资料库格式,预设为 hash
alias_maps = hash:/etc/postfix/aliases
alias_database = hash:/etc/postfix/aliases
# (安装时随附的别名档范本,已经预设了一组惯例别名,最后都指向root,
# 仅需要设置 root 别名,指向一个平常会收取信件的帐户信箱即可)
##
# 八、本地信件与信箱设置
# 预设使用的信箱格式是mbox,下列的参数设置,如果结尾没有"/",
# 就表示是使用mbox;如果结尾跟着"/",就是使用 maildir格式。
# (建议还是使用最通用的mbox,与其他程式的相容性最高)
#
# 所有本地收件人的名称,都必须列在local_recipient_maps参数所指的表,
# 预设值是指向Unix系统的密码档与别名表,通常不需要修改它。
# local_recipient_maps = proxy:unix:passwd.byname $aliase_maps
#
# 信箱投递作业
#mail_spool_directory = /var/mail
#mail_spool_directory = /var/spool/mail
#
# 可以要求 Postfix 将信件放在使用者的主目录下
home_mailbox = Mailbox
#home_mailbox = Maildir/
#
# 用于将邮件投递到信箱的外部命令(通常用来过滤防堵邮件)
#mailbox_command = /usr/bin/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"
# 用于执行信箱投递作业的传输服务
#mailbox_transport = lmtp:unix:/file/name
#mailbox_transport = cyrus
#
##
# 八、启用 SASL 验证(服务于远端、外部网域使用的认证机制)
# 决定 Postfix SMTP server 是否要支援 SASL 验证
# smtpd_sasl_auth_enable = yes
# 设定信件收件的限制规则
# smtpd_recipient_restrictions = permit_mynetworks,
# permit_sasl_authenticated, reject_unauth_destination
# 确认已经通过认证的网域(这条有点疑问...)
# smtpd_sasl_local_domain =
# 限制某些登入的方式(拒绝匿名登入)
# smtpd_sasl_security_options = noanonymous
##
# 九、邮件代转设定(交换站、入境、出境闸道)
# (下列程序示范如何设定 gw.abc.com,让它将邮件交给正确的内部伺服器
# (1)hr.abc.com, sales.abc.com的DNS MX均指向 gw.abc.com
# (2)编辑gw的main.cf档,将子网域列入 relay_domains 参数
# relay_domains = hr.abc.com, sales.abc.com
# (3)设定正确的传输表(transport map)
# transport_maps = hash:/etc/postfix/transport
# (4)编辑传输表(编完记得postmap一下)
# hr.abc.com relay:[m1.abc.com]
# sales.abc.com relay:[m2.abc.com]
# (5)彙整m1,m2的合法信箱名单成一个受理名单,放在gw上
# relay_recipient_maps = hash:/etc/postfix/relay_recipients
# (怎么收集、更新,是个大问题)
# (6)postfix reload
#
# 设定出境邮件闸道(将外地邮件交给闸道系统代为递送)
# relayhost = $mydomain
# relayhost = gateway.my.domain
# relayhost = uucphost
# relayhost = [an.ip.add.ress]
#
# 拒绝不知名用户的代转 REJECTING UNKNOWN RELAY USERS
# (其实是将所有合法使用者放入一个名单中)
#relay_recipient_maps = hash:/etc/postfix/relay_recipients
##
# 十、设定 Open Relay Data Base
# smtpd_client_restrictions = hash:/etc/postfix/access,
# reject_rbl_client relays.ordb.org,
# reject_rhsbl_client dsn.rfc-ignorant.org
##
# 除错管理
debug_peer_level = 2
#debug_peer_list = 127.0.0.1
#debug_peer_list = some.domain
# debugger_command =
# PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
# xxgdb $daemon_directory/$process_name $process_id & sleep 5
# 如果并未安装X-windows可以改用下列:
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin; export PATH; (echo cont;
echo where) gdb $daemon_directory/$process_name $process_id2>&1
>$config_directory/$process_name.$process_id.log & sleep 5
##
# 其他、安装时的一些设置资讯
#
sendmail_path = /usr/sbin/sendmail.postfix
newaliases_path = /usr/bin/newaliases.postfix
mailq_path = /usr/bin/mailq.postfix
setgid_group = postdrop
manpage_directory = /usr/share/man
sample_directory = /usr/share/doc/postfix-2.0.16/samples
readme_directory = /usr/share/doc/postfix-2.0.16/README_FILES

本文由山坛兄弟原创或编辑,转载请保留链接【postfix垃圾邮件过滤机制 及 GW/relay_domain/relayhost】http://www.030904.net/116.html
本文标签: postfix
上一篇: apache反向proxy的范例配置文
下一篇:POSTFIX 管理技巧
目前有 0 条评论