首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >后缀和PostFWD (后缀防火墙守护进程)-将两者集成在一起

后缀和PostFWD (后缀防火墙守护进程)-将两者集成在一起
EN

Server Fault用户
提问于 2016-10-19 19:34:18
回答 1查看 2.2K关注 0票数 4

我需要一种方法来积极地限制发送到特定域(整个域)的邮件数量,任何超过速率限制的邮件都需要被拒绝或删除。不延迟的,延迟的。

我不能使用Exim,所以我们在这里,后缀和PostFWD,和一些问题。

有些版本..。

代码语言:javascript
复制
Postfix v2.6.6
PostFWD v1.3.5
CentOS 6.8 x64

因此,首先,我验证了postfwd中是否存在我的汇率限制规则,并从后缀目录(它是)中的postfwd.cf正确地解释了它:

代码语言:javascript
复制
[root@monitoringtest ~]# /usr/local/postfwd/sbin/postfwd -f /etc/postfix/postfwd.cf -C
Rule   0: id->"davelimit001"; action->"rate(recipient_domain/3/1800/421 4.7.1 - Sorry, exceeded 3 messages in 30 minutes.)"; recipient_domain->"==;dave-byrne.co.uk"
[root@monitoringtest ~]#

上述费率限制所有发送给@dave-byrne.co.uk的出站邮件在30分钟内仅为3封。该域是我自己的测试,但在生产中,这将评级限制消息绑定到短信网关外部电子邮件。

快速检查以确保后缀和PostFWD已启动并侦听(它们是):

代码语言:javascript
复制
[root@monitoringtest ~]# netstat -anpl | grep ':10040\|:25'
tcp        0      0 127.0.0.1:10040             0.0.0.0:*                   LISTEN      4093/postfwd.pid
tcp        0      0 0.0.0.0:25                  0.0.0.0:*                   LISTEN      4190/master
tcp        0      0 :::25                       :::*                        LISTEN      4190/master
[root@monitoringtest ~]#

然后,我在内部监听端口10040的PostFWD服务器上发出示例请求。您可以看到PostFWD通过(其不知道的操作)3封邮件,然后将利率限制应用到第4,并拒绝它的421。太完美了。现在,让后缀使用PostFWD!

代码语言:javascript
复制
[root@monitoringtest ~]# nc 127.0.0.1 10040 </usr/local/postfwd/tools/request.sample
action=DUNNO
[root@monitoringtest ~]# nc 127.0.0.1 10040 </usr/local/postfwd/tools/request.sample
action=DUNNO
[root@monitoringtest ~]# nc 127.0.0.1 10040 </usr/local/postfwd/tools/request.sample
action=DUNNO
[root@monitoringtest ~]# nc 127.0.0.1 10040 </usr/local/postfwd/tools/request.sample
action=421 4.7.1 - Sorry, exceeded 3 messages in 30 minutes.
[root@monitoringtest ~]#

摘录自/var/log/maillog,显示适用于上述第4条消息的速率限制

代码语言:javascript
复制
Oct 19 17:15:47 monitoringtest postfwd[25933]: [RULES] rule=0, id=davelimit001, client=root@monitoringtest.co.uk[168.100.1.7], 
sender=<root@monitoringtest.co.uk>, recipient=<admin@dave-byrne.co.uk>, helo=<dave-byrne.co.uk>, proto=ESMTP, state=RCPT, rate=rate/4/21.67s, delay=0.00s, 
hits=davelimit001, action=421 4.7.1 - Sorry, exceeded 3 messages in 30 minutes.

因此,为了与后缀集成,我在后缀main.cf文件中添加了以下内容:

代码语言:javascript
复制
[root@monitoringtest ~]# tail -n 3 /etc/postfix/main.cf
127.0.0.1:10040_time_limit   = 3600
smtpd_recipient_restrictions = permit_mynetworks,
        check_policy_service inet:127.0.0.1:10040
[root@monitoringtest ~]#

这些都是根据PostFWD文档编写的。

然后,我在本地使用telnet连接到Postfix,并向管理员在…Dave-byrne.co.uk发送电子邮件。就像这样:

代码语言:javascript
复制
[root@dedweb ~]# telnet <test-server-IP-here> smtp
Trying xx.xx.xx.xx...
Connected to xx.xx.xx.xx.
Escape character is '^]'.
220 monitoringtest.xxxxxxxxx.com ESMTP Postfix
HELO dave-byrne.co.uk
250 monitoringtest.xxxxxxxxx.com
MAIL FROM: root@monitoringtest.co.uk
250 2.1.0 Ok
RCPT TO: admin@dave-byrne.co.uk
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
test1.
.
250 2.0.0 Ok: queued as 946B621C15

我这样做了4,5,6次,第四次应该有限制的速率,就像它使用网猫直接解雇他们在PostFWD。但它没有,后缀只是高兴地继续它的业务转发邮件,它认为它应该。我可以发送一百,它甚至不会考虑利率限制。在此期间,PostFWD没有向日志输出任何内容,它根本没有被击中,它没有传递任何内容,也没有阻止任何内容。Postfix没有使用PostFWD,尽管它在smtpd_recipient_restrictions中设置为check_policy_service。

这就是我被困的地方。三天过去了,我一点也不聪明。以前是否有人成功地使用过PostFWD (后缀防火墙守护进程),与任何类型的规则集,无论速率限制。我愿意接受许多建议,但是我不能改变postfix,我不能改变OS,而且由于安全问题和实际发送的工作流问题,我不能切换到外部中间邮件中继。

谢谢大家戴夫。

EN

回答 1

Server Fault用户

发布于 2016-10-19 19:39:03

问完这个问题后,我立即意识到,后缀收件人的限制是按照它们在main.cf中出现的顺序执行的。所以我的

代码语言:javascript
复制
[root@monitoringtest ~]# tail -n 3 /etc/postfix/main.cf
127.0.0.1:10040_time_limit   = 3600
smtpd_recipient_restrictions = permit_mynetworks,
         check_policy_service inet:127.0.0.1:10040
[root@monitoringtest ~]#

在“许可_我的网络”中返回一个很难的“OK”。OK将停止处理进一步的限制。

我通过将check_policy_service放在smtp收件人限制的顶部来解决我的问题。如果PostFWD传递一封邮件,它会用'DUNNO‘或更确切地说'DUNNO/OK’来回复,但它会继续运行进一步的smtp限制。

在这样的情况下,PostFWD可以自由地传递没有触发利率限制的邮件,但一旦发送了,它就以421的拒绝回复。这正是我想要的。

所以请记住,你限制的顺序,以及你实际上限制的是什么,都很重要。

请注意,这是一个私人内部邮件服务器,服务于一个非常特定的目的。不要将此代码用于生产或共享邮件服务器。

票数 2
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/810082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档