A good combination of rbl lists with postscreen im using. 

postscreen_dnsbl_threshold=4
postscreen_dnsbl_sites =
        b.barracudacentral.org*4
        bad.psky.me*4
        zen.spamhaus.org*4
        dnsbl.cobion.com*2
        bl.spameatingmonkey.net*2
        fresh.spameatingmonkey.net*2
        dnsbl.anonmails.de*2
        dnsbl.kempt.net*2
        dnsbl.inps.de*2
        bl.spamcop.net*2
        dnsbl.sorbs.net*2
        psbl.surriel.com*2
        bl.mailspike.net*2
        bl.suomispam.net*2
        all.rbl.jp*2
        swl.spamhaus.org*-4

basicly. If one of the servers is in barracuda spamhaus or psky 
its always spam so i gave the the max (4). 
If its a "new" domain name fresh.spameatingmonkey.net give 2. 
And mostly one of the other gives also to if its really spam. 

Works good here and espacialy with fail2ban 
Using these filter/failregex 
failregex = addr <HOST> listed by domain
            client \[<HOST>\] blocked using multiple DNS-based blocklists
Which reduces cpu load and unneeded connections. 

And if you use spamassassin 
https://github.com/extremeshok/spamassassin-extremeshok_fromreplyto 

but setting up dkim dmarc spf is recommended yes. 

Greetz, 

Louis



> -----Oorspronkelijk bericht-----
> Van: postfixlists-070...@billmail.scconsult.com [mailto:owner-postfix-
> us...@postfix.org] Namens Bill Cole
> Verzonden: woensdag 13 juli 2016 7:53
> Aan: postfix-users@postfix.org
> Onderwerp: Re: This ought to be simple to stop. Am I missing something?
> 
> On 12 Jul 2016, at 15:44, Phil Stracchino wrote:
> 
> > On 07/12/16 10:30, Bill Cole wrote:
> >> On 12 Jul 2016, at 9:14, Phil Stracchino wrote:
> >>
> >>> I'm getting spam leaking through from sites with non-resolving IP or
> >>> invalid DNS, sending mail to myself as me.
> >>
> >> You COULD use reject_unknown_client_hostname but it has substantial
> >> false positives.
> >>
> >> More directly, you could enforce your own SPF record:
> >>
> >> caerllewys.net.            259200  IN      TXT     "v=spf1
> ip4:216.246.132.90 -all"
> >
> > I'm trying to.  :)
> 
> Well, the choices for how to do that are many. Probably the simplest way
> to do it is with a "policy daemon" and the pypolicyd-spf implementation
> is the purest up-to-date SPF enforcement tool in that class.
> 
> Other options: there are other more comprehensive policy daemons, you
> can do SPF checks with amavisd-new, or if you're a Perl weenie like me
> you can install MIMEDefang and either implement SPF checks through one
> of the available Perl modules in filter_sender() or let SpamAssassin
> handle it.
> 
> I'd definitely choose pypolicyd-spf if I had noticeable quantities of
> this sort of crap making it to holistic filtering. SPF failure is
> actually decisive in so little mail that I see anywhere that I've not
> seen a need to push it to the top of the filtering heap.
> 
> That's assuming you have a need to accept some mail claiming to be from
> addresses in your own domain via that service, which you may not if
> you've got a submission service set up. Based on the absence of any SASL
> settings in your postconf -n output, I'm guessing you have such a
> service, unless you rely entirely on source IP (i.e. permit_mynetworks)
> for relay control.
> 
> [...]
> >> In this case it also appears that the IP address was in the CBL and
> >> hence SpamHaus Zen when you accepted it. Maybe not, but if you are
> >> not
> >> killing such IPs in postscreen you're going to have a lot of spam
> >> getting further in than it needs to. Also, if you're running a
> >> smallish
> >> mail system with a limited audience that does not include a need to
> >> communicate with Vietnamese correspondents, you can probably block
> >> all
> >> email traffic from 14.160.0.0/11.
> >
> > I considered that option, yes.  I ...  could have sworn I *was* using
> > the Zen RBL, actually.  It looks as though I took it out for some
> > reason
> > at some time in the past and never restored it.
> 
> I strongly recommend it. If you want fine-grained control over which
> parts you use, you can select which return codes to look for. In my
> case, I use these as part of my smtpd_recipient_restrictions list:
> 
> reject_rbl_client zen.spamhaus.org=127.0.0.2,
> reject_rbl_client zen.spamhaus.org=127.0.0.3,
> reject_rbl_client zen.spamhaus.org=127.0.0.4,
> reject_rbl_client zen.spamhaus.org=127.0.0.10,
> reject_rbl_client zen.spamhaus.org=127.0.0.11,
> 
> Those are, in order: SBL(chronic spam sources), CSS(snowshoers),
> CBL(spambots), PBL(ISP-designated dynamic), and PBL(Spamhaus-determined
> dynamic)
> 
> > I haven't deployed postscreen yet, as I simply don't know enough about
> > it.
> 
> It's designed for doing the simplest and most numerous spam rejections
> with the least effort. Its best features are the greeting delay, which
> catches many of the most aggressively obnoxious bots, and the ability to
> use multiple DNSBLs and DNSWLs in a scoring configuration. ~90% of the
> rejections my personal mail system does are by postscreen, and I don't
> believe it has ever made a mistake in rejecting a would-be sender.
> That's with ONLY the DNSBL and PREGREET functions enabled. Obviously
> everything else I do to keep the spam out is marginal in comparison...
> 
> > I've been working on various additional services (including DKIM)
> > to try to tighten things up, but I have limited time to work on my own
> > stuff and - I admit - it tends to get attention mainly when something
> > is
> > obviously broken.
> >
> >
> >> Why are you signing mail that came from a random bot in Vietnam? If
> >> OpenDKIM can't be made to require authentication in order to sign
> >> mail,
> >> it is broken. I'm not familiar with it, so I expect you're just
> >> missing
> >> some setting that exists...
> >
> > Quite likely, yes.  I'm fairly new to OpenDKIM and don't know all of
> > the
> > best practices for it yet.  It certainly SHOULDN'T have been signing
> > it.
> [...]
> >>> OpenDKIM is picking up that 14.167.212.244 is falsely trying to send
> >>> mail as caerllewys.net,
> >>
> >> It doesn't seem to me like OpenDKIM is noticing any sort of falsity,
> >> since it claims to be adding a signature.
> >
> > Which is probably a configuration error on my part.
> 
> I don't use it so I don't know what knob to turn, but if this is a pure
> MTA then the opendkim milter probably shouldn't be signing at all. Sign
> messages only in the submission service, verify only on the MTA.
> 
> >>> [...] but surely there should be some straightforward
> >>> directive to tell Postfix not to allow a site outside of $mynetworks
> >>> to send me mail using my own email address as sender.
> >>
> >> Yes, there are such directives, and you're not showing the most
> >> suitable
> >> places for them.
> >>
> >> You should have smtpd_recipient_restrictions and maybe
> >> smtpd_relay_restrictions lists, one or both of which end with
> >> "reject".
> >
> > I'm quite possibly doing some checks in the wrong (or sub-optimal)
> > places.  And it's been a while since I last read through the full
> > documentation, and I know I haven't kept up with changes.
> >
> > Postconf -n output follows; I'd appreciate any tips on errors I'm
> > making
> > or places where I could improve my configuration.  There's always room
> > to learn more.
> 
> 1st note: You have a lot of explicitly set parameters that simply
> replicate defaults. That's not harmful per se, but it adds noise to
> postconf -n. The ones I found trivially are:
> 
> allow_untrusted_routing
> fast_flush_domains
> inet_interfaces
> invalid_hostname_reject_code
> local_destination_concurrency_limit
> mail_owner
> milter_default_action
> parent_domain_matches_subdomains
> relay_transport
> setgid_group
> smtpd_soft_error_limit
> soft_bounce
> tls_random_source
> unknown_client_reject_code
> unknown_local_recipient_reject_code
> 
> So you can reduce clutter in main.cf and postconf -n by removing the
> explicit setting of those. There are likely others.
> 
> [...]
> > smtpd_client_restrictions = permit_mynetworks
> 
> Noise. There's no need to define any of the smtpd_*_restrictions lists
> if the definition only includes a sequence of conditions that are going
> to show up in logically later ones.
> 
> > smtpd_helo_restrictions = reject_invalid_hostname
> > reject_unknown_reverse_client_hostname pcre:/etc/postfix/helo.pcre
> 
> I cannot make sense of the dangling map reference at the end. Perhaps
> you want 'check_helo_access' before it? I would expect an error to be
> logged about this.
> 
> Also: it seems that you've been using Postfix longer than me. :) The
> 'new' name for "reject_invalid_hostname" is
> "reject_invalid_helo_hostname" because there are too many nuances in
> email jargon... Non-critical to change it, but doing so may save you a
> 'man 5 postconf' next year or later.
> 
> Also, consider putting all of that in smtpd_recipient_restrictions
> instead, after permit_mynetworks.
> 
> > smtpd_milters = inet:localhost:8891
> 
> Presumably opendkim?
> 
> 
> > smtpd_recipient_restrictions = permit_mynetworks
> > reject_unauth_destination reject_unknown_reverse_client_hostname
> 
> All fine, and a fine order, but I would suggest a consolidation (see
> above and below...)
> 
> > smtpd_sender_restrictions = permit_mynetworks reject_invalid_hostname
> > reject_unknown_sender_domain reject_non_fqdn_sender
> > check_sender_access
> > btree:/etc/postfix/block-local-sender
> 
> There's probably no reason not to merge this list and
> smtpd_helo_restrictions into one grand smtpd_recipient_restrictions
> list:
> 
> smtpd_recipient_restrictions =
> permit_mynetworks,reject_unauth_destination,
> 
> reject_unknown_reverse_client_hostname,reject_invalid_helo_hostname,
>      check_helo_access pcre:/etc/postfix/helo.pcre,
>      reject_unknown_sender_domain,reject_non_fqdn_sender,
>      check_sender_access btree:/etc/postfix/block-local-sender
> 
> CAVEAT: taking advice from me on this is worth what you pay for it, *at
> most*. Note that I go a bit "grander" myself:
> 
>    # postconf -f smtpd_recipient_restrictions|wc
>          26      59    1709
> 
> Which includes 12 map checks, 11 DNSBL checks, and 7 simple of postfix's
> reject_* rules. (It's complicated)
> 
> Also, it is quite safe to add:
> 
>    smtpd_data_restrictions =
> reject_multi_recipient_bounce,reject_unauth_pipelining,permit
> 
> Those will not catch much which won't be caught by Zen and/or
> postscreen's PREGREET check, but they are non-zero and extremely safe.
> 
> > unknown_client_reject_code = 450
> 
> If you're sticking with reject_unknown_reverse_client_hostname only
> (which I'd recommend) you can change this safely to 550 (and in my
> opinion should, on a 'fail fast' principle.)


Reply via email to