postfix过滤规则的几个关键规则

软件集成
1354
linux
linux 举报
2022-08-17

一切都可以去看官方的文档http://www.postfix.org/postconf.5.html


# 列出本地用户的列表,默认是空

smtpd_sender_login_maps = mysql:/etc/postfix/mysql_virtual_sender_maps.cf

# 设置发送者策略,拒绝发送者和登录的用户名不匹配。

smtpd_sender_restrictions = reject_sender_login_mismatch# 拒绝没有列出的用户列表,默认为空

# 拒绝没列出的发送者,默认是no,这样其他MTA可以rcpt to本地的用户

smtpd_reject_unlisted_sender = no

以上3个通常是一起来设置达成效果。

# 设置收件人过滤规则,不在收件人列表的就拒绝,默认是拒绝。如果设置成no,那也可以发邮件给没有的用户,如test1@dowish.net,但是会收到一封退信的邮件,如果配置成yes,在发送的过程中就会返回错误,拒绝发送。

smtpd_reject_unlisted_recipient = yes



# 不使用匿名方式认证

smtpd_sasl_security_options = noanonymous

#  设置接受邮件策略

#  开启sasl用户认证模式

smtpd_sasl_auth_enable = yes

# 设置smtpd使用什么样的sasl方式进行验证,默认是cyrus。

smtpd_sasl_type = dovecot

如果采用SASL 进行认证,那么这里不做设置,默认为空smtpd_sasl_local_domain=

# 表示是否兼容非标准的SMTP认证,开启后会出现250-AUTH=PLAIN LOGIN

broken_sasl_auth_clients=yes




postfix过滤规则的几个关键规则 - lightyellow - 一路向前,找到半山中的电梯

 


smtpd_recipient_restrictions:表示通过收件人地址对客户端发来的邮件进行过滤。通常有以下几种限制规则。

      permit_mynetworks:当客户端建立连接时,若它来自mynetworks或mynetworks_style定义的网络,则 permit_mynetworks返回OK,整个smtpd_recipient_restrictions过滤规则也就跟着结束,不再检查其他条件; 如果客户端来自外界网络,permit_mynetworks不会返回OK,也不会返回REJECT,而是返回DUNNO,于是postfix接着检查后面的规则。      permit_sasl_authenticated:表示允许转发通过SASL认证返回OK,如果用户已经通过sasl验证登录的用户,同样会返回OK,这个可以做实验(在局域网内,去掉permit_mynetworks,reject_unauth_destination规则前保留或布保留permit_sasl_authenticated规则,用foxmail发送邮件就知道)。这个会去查找虚拟用户数据库。

      reject_unauth_destination:如果邮件的收件人不在postfix所管辖的网域(由mydestination定义,包括虚拟网域),reject_unauth_destination返回REJECT;否则返回DUNNO。

Postfix is the final destination: the resolved RCPT TO domain matches $mydestination, $inet_interfaces, $proxy_interfaces, $virtual_alias_domains, or $virtual_mailbox_domains, and contains no sender-specified routing (user@elsewhere@domain).


postfix有几种状态,一种是ok,一种是reject,一种是dunno,比如

permit_mynetworks, 如果通过,则返回ok,过滤规则判断结束,如果不通过,则返回dunno,进行后面的规则判断,这是permit的处理流程,reject处理流程则不 同,如果不命中reject的规则,那就返回dunno,进行后面的规则过滤,如果命中reject规则,直接返回reject。


倒序看帖 只看楼主
热点关注
You need Perl 5 安装openssl时报错提示需要安装perl 5
shell 脚本中常见的 if [ $? -ne 0 ]; 意思
shell 中 if [ “x${var}“ == “x“ ] 中 x的作用
shell脚本每行后面多了一个^M的原因和解决办法
服务停止、启动、重启一体化脚本,万能语言启动脚本
shell参数判断
在后台用进程名运行bash脚本
shell脚本每行后面多了一个^M的原因和解决办法
定时检测服务,检测down掉后重启。系统检测到DMSERVER运行正常
挂载磁盘的时候遇到一个问题,挂载完磁盘之后重启服务器挂载的盘丢失了.
中标麒麟系统Your trial is EXPIRED and no VALID licens
termux 开启ssh并用用户名和密码登陆
extman-1.1自带了图形化显示日志的功能;此功能需要rrdtool的支持,您需要安装此些模块才可能正常显示图形日志。
postfix的相关个别参数设置
postfix中recipient/client/sender/helo四者的区别