From a2215124bb8cc8744f1a81dc9dcb776184161195 Mon Sep 17 00:00:00 2001 From: Stuart Gathman <stuart@gathman.org> Date: Sun, 15 Apr 2007 00:54:30 +0000 Subject: [PATCH] Ban ips with too many bad rcpts on a connection. --- bms.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/bms.py b/bms.py index c75d3e9..f159b28 100644 --- a/bms.py +++ b/bms.py @@ -1,6 +1,9 @@ #!/usr/bin/env python # A simple milter that has grown quite a bit. # $Log$ +# Revision 1.105 2007/04/13 17:20:09 customdesigned +# Check access_file at startup. Compress rcpt to log. +# # Revision 1.104 2007/04/05 17:59:07 customdesigned # Stop querying gossip server twice. # @@ -797,6 +800,15 @@ class bmsMilter(Milter.Milter): self.reputation = int(a[-2]) self.confidence = int(a[-1]) self.umis = umis + # We would like to reject on bad reputation here, but we + # need to give special consideration to postmaster. So + # we have to wait until envrcpt(). Perhaps an especially + # bad reputation could be rejected here. + if self.reputation < -70 and self.confidence > 5: + self.log('REJECT: REPUTATION, rcpt to',to,str) + self.setreply('550','5.7.1', + 'Your domain has been sending nothing but spam') + return Milter.REJECT except: gossip = None raise -- GitLab