Shortcircuiting Ruleset

The following is a sample ruleset which uses the SpamAssassin 3.2.0+ feature of short-circuiting, together with existing, reliable, hard-to-forge whitelist/blacklist rules, in order to reduce CPU load. It assumes you have enabled the Shortcircuit plugin in the v320.pre file.

To use this ruleset, save it as shortcircuit.cf in the same folder as local.cf.

# Shortcircuit config - supplements 60_shortcircuit.cf
# see <https://wiki.apache.org/spamassassin/ShortcircuitingRuleset>
#
# Note that these rules use a variety of normally-optional plugins; you need to
# enable the DK, DKIM, SPF, Shortcircuit, ClamAV, and VBounce plugins to use
# them.

ifplugin Mail::SpamAssassin::Plugin::Shortcircuit

# always log shortcircuit status
add_header all Status "_YESNO_, score=_SCORE_ required=_REQD_ tests=_TESTS_ shortcircuit=_SCTYPE_ autolearn=_AUTOLEARN_ version=_VERSION_"

# simple, non-network-based whitelists, locally-generated messages,
# messages via a trusted relay chain
meta SC_HAM (USER_IN_WHITELIST||USER_IN_DEF_WHITELIST||USER_IN_ALL_SPAM_TO||NO_RELAYS||ALL_TRUSTED)
priority SC_HAM -1000
shortcircuit SC_HAM ham
score SC_HAM -20

# simple, non-network based blacklists
meta SC_SPAM (USER_IN_BLACKLIST_TO||USER_IN_BLACKLIST)
priority SC_SPAM -950
shortcircuit SC_SPAM spam
score SC_SPAM 20

# slower, network-based whitelisting
meta SC_NET_HAM (USER_IN_DKIM_WHITELIST||USER_IN_DK_WHITELIST||USER_IN_SPF_WHITELIST||USER_IN_DEF_DK_WL||USER_IN_DEF_DKIM_WL||USER_IN_DEF_SPF_WL)
priority SC_NET_HAM -500
shortcircuit SC_NET_HAM ham
score SC_NET_HAM -20

# bounce messages from non-whitelisted relays: unwanted, so treat as spam
# (requires whitelist_bounce_relays to be set in local.cf)
priority ANY_BOUNCE_MESSAGE -700
shortcircuit ANY_BOUNCE_MESSAGE spam
score ANY_BOUNCE_MESSAGE 20

# ClamAV support: no need to scan viruses/malware
priority CLAMAV -900
shortcircuit CLAMAV spam
score CLAMAV 20

# add additional DK/SPF whitelists
whitelist_from_dk *@never-spams.example.org
whitelist_from_spf *@never-spams.example.org

endif

ShortcircuitingRuleset (last edited 2014-04-13 02:29:39 by MikeBrown)