Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. Discuss
  3. Sharing custom SpamAssassin Rules

Sharing custom SpamAssassin Rules

Scheduled Pinned Locked Moved Discuss
mailspam
78 Posts 18 Posters 22.1k Views 27 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • d19dotcaD d19dotca

    @murgero said in Sharing custom SpamAssassin Rules:

    @d19dotca does this just go into email -> Spam Filter -> Custom Spam Assassin Settings?

    Yes, it goes right there. Basically from the Mail page > Spam filtering > Custom Spamassassin Rules box.

    You can copy & paste the entire thing, but do note a few items just in case:

    • You will need to likely remove the blocklist_from or welcomelist_from lines unless you have emails to place in those two sections already, I left those there just for an example.
    • If you want to use the DNSBLs from Abusix then you'll need to use your own API key (it's free for under 5,000 queries per day averaged over 7 days, it seems to work great and I highly recommend it).

    The rest though you can basically copy & paste directly. Of course YMMV as they say, but this list works pretty well for me, or at least is a noticeable improvement over the rule tweaks I was using last year.

    murgeroM Offline
    murgeroM Offline
    murgero
    App Dev
    wrote on last edited by
    #69

    @d19dotca Heyo! Finally got around to applying this - do I need to add anything to Mail ACL or just to custom spamassassin rules?

    --
    https://urgero.org
    ~ Professional Nerd. Freelance Programmer. ~

    d19dotcaD 1 Reply Last reply
    0
    • murgeroM murgero

      @d19dotca Heyo! Finally got around to applying this - do I need to add anything to Mail ACL or just to custom spamassassin rules?

      d19dotcaD Offline
      d19dotcaD Offline
      d19dotca
      wrote on last edited by
      #70

      @murgero just in the SpamAssassin rules part is all you need. 🙂 Nothing else. But let me know if that doesn’t seem to work for you at all and I can try to help with some screenshots later too.

      --
      Dustin Dauncey
      www.d19.ca

      1 Reply Last reply
      2
      • marcusquinnM Offline
        marcusquinnM Offline
        marcusquinn
        wrote on last edited by
        #71

        I've been getting a LOT of spam lately.

        @girish Any chances we can have this implemented but the core app? Save everyone having to discoverer this thread and do the same.

        Web Design & Development: https://www.evergreen.je
        Technology & Apps: https://www.marcusquinn.com

        1 Reply Last reply
        1
        • necrevistonnezrN Online
          necrevistonnezrN Online
          necrevistonnezr
          wrote on last edited by
          #72

          Alternatively: turn it into a community guide, link to the guide in the documentation

          1 Reply Last reply
          3
          • M Offline
            M Offline
            msbt
            App Dev
            wrote on last edited by
            #73

            Thanks a bunch for the list @d19dotca! Quick question about the rest of the setup though: Do you still have entries in the Email ACL DNSBL Zones or is that empty because everything is handled in the custom rules? Like those:

            zen.spamhaus.org
            bl.mailspike.net
            noptr.spamrats.com
            dnsbl.sorbs.net
            

            Or is that empty on your side?

            Hosting & Web Development

            d19dotcaD 1 Reply Last reply
            2
            • M msbt

              Thanks a bunch for the list @d19dotca! Quick question about the rest of the setup though: Do you still have entries in the Email ACL DNSBL Zones or is that empty because everything is handled in the custom rules? Like those:

              zen.spamhaus.org
              bl.mailspike.net
              noptr.spamrats.com
              dnsbl.sorbs.net
              

              Or is that empty on your side?

              d19dotcaD Offline
              d19dotcaD Offline
              d19dotca
              wrote on last edited by
              #74

              @msbt Great question! So for me personally I use the following one in there: {APIKey}.exploit.mail.abusix.zone. The reason being is that seems to be 100% accurate in terms of 0 false positives. The goal is to get to 0 false positives and then tag the rest as either ham or spam so the users can decide from there if anything is incorrect. That way they don’t risk losing any mail that may be important.

              I have also been tinkering with the spam rules again the past month, testing some things out. I’ll go into more detail with that soon with updated scores that I’m using. I wanted to do a bit more analysis of it today actually to make sure it’s in the right direction before sharing it, but I’ll likely be in a position to share it pretty soon. 🙂

              --
              Dustin Dauncey
              www.d19.ca

              BrutalBirdieB humptydumptyH 2 Replies Last reply
              8
              • d19dotcaD d19dotca

                @msbt Great question! So for me personally I use the following one in there: {APIKey}.exploit.mail.abusix.zone. The reason being is that seems to be 100% accurate in terms of 0 false positives. The goal is to get to 0 false positives and then tag the rest as either ham or spam so the users can decide from there if anything is incorrect. That way they don’t risk losing any mail that may be important.

                I have also been tinkering with the spam rules again the past month, testing some things out. I’ll go into more detail with that soon with updated scores that I’m using. I wanted to do a bit more analysis of it today actually to make sure it’s in the right direction before sharing it, but I’ll likely be in a position to share it pretty soon. 🙂

                BrutalBirdieB Offline
                BrutalBirdieB Offline
                BrutalBirdie
                Partner
                wrote on last edited by
                #75

                @d19dotca said in Sharing custom SpamAssassin Rules:

                I have also been tinkering with the spam rules again the past month, testing some things out. I’ll go into more detail with that soon with updated scores that I’m using. I wanted to do a bit more analysis of it today actually to make sure it’s in the right direction before sharing it, but I’ll likely be in a position to share it pretty soon.

                excited waiting gif

                Like my work? Consider donating a drink. Cheers!

                1 Reply Last reply
                5
                • d19dotcaD d19dotca

                  @msbt Great question! So for me personally I use the following one in there: {APIKey}.exploit.mail.abusix.zone. The reason being is that seems to be 100% accurate in terms of 0 false positives. The goal is to get to 0 false positives and then tag the rest as either ham or spam so the users can decide from there if anything is incorrect. That way they don’t risk losing any mail that may be important.

                  I have also been tinkering with the spam rules again the past month, testing some things out. I’ll go into more detail with that soon with updated scores that I’m using. I wanted to do a bit more analysis of it today actually to make sure it’s in the right direction before sharing it, but I’ll likely be in a position to share it pretty soon. 🙂

                  humptydumptyH Offline
                  humptydumptyH Offline
                  humptydumpty
                  wrote on last edited by humptydumpty
                  #76

                  @d19dotca The last rules you provided are working great for me. I still get spam sent via the major mail providers like Gmail and Outlook though. They seem to target my info@ mailboxes. I wonder if there is anything we can do in that regards other than using keyword filtering?

                  d19dotcaD 1 Reply Last reply
                  2
                  • humptydumptyH humptydumpty

                    @d19dotca The last rules you provided are working great for me. I still get spam sent via the major mail providers like Gmail and Outlook though. They seem to target my info@ mailboxes. I wonder if there is anything we can do in that regards other than using keyword filtering?

                    d19dotcaD Offline
                    d19dotcaD Offline
                    d19dotca
                    wrote on last edited by d19dotca
                    #77

                    @humptydumpty That's something I'd like to look into too, although I have a feeling the only thing that can really work its magic there is the Bayesian learning, so running the SpamAssassin learn commands. I've been running a script (with the help of ChatGPT, lol) like one below in case this helps as I find the Bayesian learning in Cloudron seems to be really manual or inconsistent at running (I think they've admitted that too in a post I saw somewhere the other month), and it's improved IMO with running this often. Personally I run this manually for now just because I wanted to make sure it was working, but I'll probably consider throwing this in a cron job soon enough.

                    1. sudo docker exec -ti mail /bin/bash

                    2. Run this script in the mail container:

                    nohup bash -c '
                    MAILDIR="/app/data/vmail"; SPAMD_DIR="/app/data/spamd";
                    for user in $(ls "$MAILDIR"); do
                        MAILBOX="$MAILDIR/$user/mail"; BAYES_PATH="$SPAMD_DIR/$user";
                        mkdir -p "$BAYES_PATH"; chown -R cloudron:cloudron "$BAYES_PATH"; chmod 700 "$BAYES_PATH";
                        echo "🔄 Training SpamAssassin for $user..." | tee -a /app/data/spamd/train.log;
                    
                        # Train spam from .Spam and .Junk folders (including subfolders)
                        find "$MAILBOX/.Spam" "$MAILBOX/.Junk" -type d -name "cur" 2>/dev/null | while read folder; do
                            echo "📂 Training SPAM from: $folder" | tee -a /app/data/spamd/train.log;
                            sa-learn --spam --dbpath "$BAYES_PATH" --dir "$folder" | tee -a /app/data/spamd/train.log;
                        done
                    
                        # Train ham from Inbox and Archive, but EXCLUDE Junk, Spam, Trash, Sent, and Drafts
                        find "$MAILBOX" -type d -name "cur" 2>/dev/null | grep -Ev "/(\.Trash|\.Deleted Messages|\.Sent|\.Sent Messages|\.Drafts|\.Junk|\.Spam)/" | while read folder; do
                            echo "📂 Training HAM from: $folder" | tee -a /app/data/spamd/train.log;
                            sa-learn --ham --dbpath "$BAYES_PATH" --dir "$folder" | tee -a /app/data/spamd/train.log;
                        done
                    
                        echo "✔ Completed training for $user! BAYES files stored in $BAYES_PATH" | tee -a /app/data/spamd/train.log;
                    done;
                    echo "🎉 SpamAssassin training completed for all mailboxes." | tee -a /app/data/spamd/train.log;
                    ' > /app/data/spamd/train.log 2>&1 &
                    

                    It creates that train.log file and writes all the output to it so you can see it learning across all mailboxes for the Inbox and Archive folder as ham and the Junk/Spam folder as spam for all users. It's neat to see it saying it learned ham from 34 messages or something like that for each mailbox, haha.

                    I think my latest spam rules are doing well the past week, so I'll likely be posting them here soon. 🙂

                    --
                    Dustin Dauncey
                    www.d19.ca

                    1 Reply Last reply
                    11
                    • d19dotcaD Offline
                      d19dotcaD Offline
                      d19dotca
                      wrote last edited by d19dotca
                      #78

                      Decided to leave an early Christmas present here for everyone 😆 I have an updated list of SpamAssassin rules I've been analyzing and running with for the past few months. According to my data (and helpful analysis from ChatGPT), this gives me about a 97% accuracy rate in my own mailbox at least. The remaining percentage was mostly from Bayesian learning rather than any particular score that could change the results, so running more spam training seemed to help smooth it out after a while.

                      A kind reminder... your mileage may vary as this is tested only with the spam that myself and other users on my Cloudron instance tend to receive, so it may not be as effective on your own mailboxes, but this should definitely help improve accuracy on spam detection especially for those who aren't yet using any tweaked SpamAssassin rules. Enjoy. 😄

                      Oh and remember to replace {redacted} with your own API key for Abusix if you are using Abusix like I am. If you're not, then just remove or comment-out those lines from the rules below.

                      # ============================
                      # Bayesian Filtering (BAYES)
                      # ============================
                      
                      bayes_auto_learn 1
                      bayes_auto_learn_threshold_nonspam -3.0
                      bayes_auto_learn_threshold_spam 10.0
                      
                      score BAYES_00 -7.0
                      score BAYES_05 -4.0
                      score BAYES_20 -1.0
                      score BAYES_40 0.5
                      score BAYES_50 0.75
                      score BAYES_60 2.25
                      score BAYES_80 3.75
                      score BAYES_95 6.5
                      score BAYES_99 8.0
                      score BAYES_999 8.5
                      
                      
                      # ============================
                      # DNS-based Blocklists (DNSBL)
                      # ============================
                      
                      score RCVD_IN_BL_SPAMCOP_NET 4.0
                      score RCVD_IN_IADB_DK 0.0
                      score RCVD_IN_IADB_DOPTIN_LT50 0.0
                      score RCVD_IN_IADB_LISTED 0.0
                      score RCVD_IN_IADB_RDNS -0.25
                      score RCVD_IN_IADB_SENDERID -0.25
                      score RCVD_IN_IADB_SPF -0.25
                      score RCVD_IN_MSPIKE_BL 0.0
                      score RCVD_IN_MSPIKE_L2 1.0
                      score RCVD_IN_MSPIKE_L3 1.5
                      score RCVD_IN_MSPIKE_L4 3.5
                      score RCVD_IN_MSPIKE_L5 4.0
                      score RCVD_IN_MSPIKE_ZBI 4.0
                      score RCVD_IN_PBL 5.5
                      score RCVD_IN_PSBL 4.0
                      score RCVD_IN_SBL 5.0
                      score RCVD_IN_SBL_CSS 5.0
                      score RCVD_IN_VALIDITY_CERTIFIED 0.0
                      score RCVD_IN_VALIDITY_RPBL 0.0
                      score RCVD_IN_VALIDITY_SAFE 0.0
                      score RCVD_IN_XBL 6.5
                      score RCVD_IN_ZEN_BLOCKED 0.0
                      score RCVD_IN_ZEN_BLOCKED_OPENDNS 0.0
                      
                      ## DNS Whitelists
                      score RCVD_IN_DNSWL_BLOCKED 0.0
                      score RCVD_IN_DNSWL_HI -6.0
                      score RCVD_IN_DNSWL_LOW -1.0
                      score RCVD_IN_DNSWL_MED -4.5
                      score RCVD_IN_DNSWL_NONE 0.0
                      score RCVD_IN_MSPIKE_H2 0.0
                      score RCVD_IN_MSPIKE_H3 -0.25
                      score RCVD_IN_MSPIKE_H4 -0.5
                      score RCVD_IN_MSPIKE_H5 -1.0
                      score RCVD_IN_MSPIKE_WL 0.0
                      
                      
                      # ============================
                      # URI Blocklists (URIBL)
                      # ============================
                      
                      score URIBL_ABUSE_SURBL 6.5
                      score URIBL_BLACK 5.0
                      score URIBL_CR_SURBL 3.5
                      score URIBL_CSS 3.0
                      score URIBL_CSS_A 5.0
                      score URIBL_DBL_ABUSE_BOTCC 5.5
                      score URIBL_DBL_ABUSE_MALW 5.5
                      score URIBL_DBL_ABUSE_PHISH 5.5
                      score URIBL_DBL_ABUSE_REDIR 2.0
                      score URIBL_DBL_ABUSE_SPAM 5.5
                      score URIBL_DBL_BLOCKED 0.0
                      score URIBL_DBL_BLOCKED_OPENDNS 0.0
                      score URIBL_DBL_BOTNETCC 5.5
                      score URIBL_DBL_ERROR 0.0
                      score URIBL_DBL_MALWARE 5.0
                      score URIBL_DBL_PHISH 6.0
                      score URIBL_DBL_SPAM 6.0
                      score URIBL_GREY 0.25
                      score URIBL_MW_SURBL 5.0
                      score URIBL_PH_SURBL 5.0
                      score URIBL_RED 2.0
                      score URIBL_RHS_DOB 2.0
                      score URIBL_SBL 4.0
                      score URIBL_SBL_A 3.0
                      score URIBL_ZEN_BLOCKED 0.0
                      score URIBL_ZEN_BLOCKED_OPENDNS 0.0
                      
                      
                      # ============================
                      # Email Authentication (SPF/DKIM/ARC)
                      # ============================
                      
                      score ARC_INVALID 2.0
                      score ARC_SIGNED 0.0
                      score ARC_VALID 0.0
                      score DKIM_ADSP_ALL 2.0
                      score DKIM_ADSP_CUSTOM_MED 1.5
                      score DKIM_ADSP_NXDOMAIN 4.5
                      score DKIM_INVALID 2.0
                      score DKIM_SIGNED 0.0
                      score DKIM_VALID 0.0
                      score DKIM_VALID_AU 0.0
                      score DKIM_VALID_EF 0.0
                      score DKIM_VERIFIED 0.0
                      score DKIMWL_BL 3.0
                      score DKIMWL_WL_HIGH -6.5
                      score DKIMWL_WL_MED -4.5
                      score DKIMWL_WL_MEDHI -5.0
                      score FORGED_SPF_HELO 4.0
                      score NML_ADSP_CUSTOM_MED 2.0
                      score SPF_FAIL 3.0
                      score SPF_HELO_FAIL 3.0
                      score SPF_HELO_NEUTRAL 1.0
                      score SPF_HELO_NONE 0.0
                      score SPF_HELO_PASS -0.25
                      score SPF_HELO_SOFTFAIL 4.0
                      score SPF_NEUTRAL 0.0
                      score SPF_NONE 1.0
                      score SPF_PASS 0.0
                      score SPF_SOFTFAIL 1.5
                      score T_SPF_HELO_PERMERROR 0.0
                      score T_SPF_HELO_TEMPERROR 0.0
                      score T_SPF_PERMERROR 0.0
                      score T_SPF_TEMPERROR 0.0
                      score USER_IN_DEF_DKIM_WL -6.5
                      score USER_IN_DEF_SPF_WL -6.5
                      
                      
                      # ============================
                      # HTML & MIME Structure Rules
                      # ============================
                      
                      score BODY_URI_ONLY 3.5
                      score DC_PNG_UNO_LARGO 1.5
                      score HTML_FONT_LOW_CONTRAST 0.0
                      score HTML_FONT_SIZE_LARGE 2.0
                      score HTML_FONT_TINY_NORDNS 0.0
                      score HTML_IMAGE_ONLY_04 2.0
                      score HTML_IMAGE_ONLY_08 2.0
                      score HTML_IMAGE_ONLY_12 2.0
                      score HTML_IMAGE_ONLY_16 2.0
                      score HTML_IMAGE_ONLY_20 2.0
                      score HTML_IMAGE_ONLY_24 2.0
                      score HTML_IMAGE_ONLY_28 2.0
                      score HTML_IMAGE_ONLY_32 2.0
                      score HTML_IMAGE_RATIO_02 0.25
                      score HTML_IMAGE_RATIO_04 0.25
                      score HTML_IMAGE_RATIO_06 0.25
                      score HTML_IMAGE_RATIO_08 0.25
                      score HTML_MESSAGE 0.0
                      score HTML_MIME_NO_HTML_TAG 0.5
                      score HTML_OBFUSCATE_05_10 0.5
                      score HTML_OBFUSCATE_10_20 1.0
                      score HTML_OBFUSCATE_20_30 2.0
                      score HTML_OBFUSCATE_30_40 2.5
                      score HTML_OBFUSCATE_50_60 3.0
                      score HTML_OBFUSCATE_70_80 3.5
                      score HTML_OBFUSCATE_90_100 4.0
                      score HTML_SHORT_LINK_IMG_1 2.0
                      score HTML_SHORT_LINK_IMG_2 3.0
                      score HTML_SHORT_LINK_IMG_3 3.0
                      score HTML_TAG_BALANCE_CENTER 0.25
                      score MIME_BASE64_TEXT 1.25
                      score MIME_HEADER_CTYPE_ONLY 0.5
                      score MIME_HTML_MOSTLY 0.0
                      score MIME_HTML_ONLY 0.0
                      score MIME_QP_LONG_LINE 0.25
                      score MPART_ALT_DIFF 0.75
                      score MPART_ALT_DIFF_COUNT 0.5
                      score T_KAM_HTML_FONT_INVALID 0.25
                      score T_TVD_MIME_EPI 0.25
                      
                      
                      # ============================
                      # Header / Envelope Heuristics
                      # ============================
                      
                      score HDRS_MISSP 4.0
                      score HEADER_FROM_DIFFERENT_DOMAINS 0.0
                      score HK_RANDOM_ENVFROM 3.0
                      score MAILING_LIST_MULTI 0.25
                      score MISSING_DATE 2.5
                      score MISSING_FROM 2.0
                      score MISSING_HB_SEP 2.0
                      score MISSING_HEADERS 6.0
                      score MISSING_MID 1.0
                      score MISSING_SUBJECT 1.0
                      score MSGID_OUTLOOK_INVALID 2.5
                      score NO_FM_NAME_IP_HOSTN 2.0
                      score REPLYTO_WITHOUT_TO_CC 2.5
                      score TO_NO_BRKTS_FROM_MSSP 2.5
                      score TO_NO_BRKTS_MSFT 2.5
                      score TVD_RCVD_IP 1.0
                      
                      
                      # ============================
                      # Freemail & Identity Rules
                      # ============================
                      
                      score FORGED_GMAIL_RCVD 3.0
                      score FORGED_MUA_OUTLOOK 3.0
                      score FORGED_YAHOO_RCVD 3.0
                      score FREEMAIL_ENVFROM_END_DIGIT 0.75
                      score FREEMAIL_FORGED_REPLYTO 2.5
                      score FREEMAIL_FROM 0.0
                      score FREEMAIL_REPLY 0.5
                      score FREEMAIL_REPLYTO 2.25
                      score FREEMAIL_REPLYTO_END_DIGIT 0.0
                      score FROM_EXCESS_BASE64 2.5
                      score FROM_FMBLA_NEWDOM 2.5
                      score FROM_FMBLA_NEWDOM14 3.0
                      score FROM_FMBLA_NEWDOM28 2.5
                      score FROM_GOV_SPOOF 3.5
                      score FROM_LOCAL_DIGITS 1.5
                      score FROM_LOCAL_HEX 1.5
                      score FROM_LOCAL_NOVOWEL 1.5
                      score FROM_MISSP_EH_MATCH 3.0
                      score FROM_MISSP_SPF_FAIL 3.0
                      score FROM_MISSPACED 3.0
                      score FROM_NTLD_REPLY_FREEMAIL 3.0
                      score FROM_STARTS_WITH_NUMS 1.0
                      score FROM_SUSPICIOUS_NTLD 2.0
                      score FROM_SUSPICIOUS_NTLD_FP 2.0
                      score GB_FREEMAIL_DISPTO 3.5
                      score GB_FREEMAIL_DISPTO_NOTFREEM 3.5
                      score HK_NAME_MR_MRS 2.5
                      score HK_RANDOM_FROM 1.5
                      score UNDISC_FREEM 2.5
                      
                      
                      # ============================
                      # Scam, Phishing & Social Engineering
                      # ============================
                      
                      score ADVANCE_FEE_2 3.0
                      score ADVANCE_FEE_2_NEW_FORM 3.0
                      score ADVANCE_FEE_2_NEW_MONEY 3.0
                      score ADVANCE_FEE_3 3.0
                      score ADVANCE_FEE_3_NEW 3.0
                      score ADVANCE_FEE_3_NEW_FORM 3.0
                      score ADVANCE_FEE_3_NEW_MONEY 3.0
                      score ADVANCE_FEE_4_NEW 3.0
                      score ADVANCE_FEE_5_NEW 3.0
                      score ADVANCE_FEE_5_NEW_FRM_MNY 3.0
                      score ADVANCE_FEE_5_NEW_MONEY 3.0
                      score BILLION_DOLLARS 1.0
                      score BITCOIN_DEADLINE 5.5
                      score BITCOIN_SPAM_03 5.5
                      score DEAR_FRIEND 2.0
                      score DEAR_SOMETHING 2.0
                      score DIET_1 1.0
                      score FUZZY_BITCOIN 2.5
                      score FUZZY_BTC_WALLET 2.5
                      score FUZZY_CLICK_HERE 1.5
                      score FUZZY_CREDIT 2.0
                      score FUZZY_IMPORTANT 2.5
                      score FUZZY_SECURITY 2.75
                      score FUZZY_UNSUBSCRIBE 1.0
                      score FUZZY_WALLET 2.0
                      score JOIN_MILLIONS 2.0
                      score LOTS_OF_MONEY 0.0
                      score MONEY_BACK 1.0
                      score NA_DOLLARS 1.0
                      score PDS_BTC_ID 4.0
                      score STOX_BOUND_090909_B 1.5
                      score SUBJ_ALL_CAPS 0.5
                      score SUBJ_AS_SEEN 0.75
                      score SUBJ_ATTENTION 1.5
                      score SUBJ_DOLLARS 0.25
                      score SUBJ_YOUR_DEBT 2.5
                      score SUBJ_YOUR_FAMILY 0.75
                      score THIS_AD 0.5
                      score TVD_PH_BODY_ACCOUNTS_PRE 2.0
                      score TVD_PH_BODY_META 1.5
                      score UNCLAIMED_MONEY 4.0
                      score URG_BIZ 1.5
                      score VFY_ACCT_NORDNS 3.0
                      
                      
                      # ============================
                      # Transport / Network Reputation Rules
                      # ============================
                      
                      score CK_HELO_GENERIC 1.5
                      score HELO_DYNAMIC_IPADDR 3.0
                      score HELO_DYNAMIC_IPADDR2 3.0
                      score HELO_DYNAMIC_SPLIT_IP 2.0
                      score KHOP_HELO_FCRDNS 4.0
                      score NO_RDNS_DOTCOM_HELO 3.0
                      score PDS_BAD_THREAD_QP_64 1.5
                      score PDS_RDNS_DYNAMIC_FP 0.5
                      score RCVD_HELO_IP_MISMATCH 1.75
                      score RCVD_ILLEGAL_IP 4.0
                      score RDNS_DYNAMIC 3.5
                      score RDNS_LOCALHOST 3.5
                      score RDNS_NONE 3.5
                      score SPAMMY_XMAILER 2.75
                      score TBIRD_SUSP_MIME_BDRY 2.5
                      score UNPARSEABLE_RELAY 0.0
                      
                      
                      # ============================
                      # URI & Link Obfuscation
                      # ============================
                      
                      score GOOG_REDIR_NORDNS 2.5
                      score HTTPS_HTTP_MISMATCH 1.5
                      score NORMAL_HTTP_TO_IP 3.0
                      score NUMERIC_HTTP_ADDR 3.0
                      score PDS_SHORT_SPOOFED_URL 3.0
                      score SENDGRID_REDIR 0.25
                      score T_PDS_OTHER_BAD_TLD 2.5
                      score TRACKER_ID 0.25
                      score URI_HEX 2.0
                      score URI_NO_WWW_BIZ_CGI 2.5
                      score URI_NO_WWW_INFO_CGI 2.5
                      score URI_NOVOWEL 0.5
                      score URI_OBFU_WWW 3.0
                      score URI_PHISH 6.5
                      score URI_TRUNCATED 3.0
                      score URI_WP_HACKED 6.0
                      score WEIRD_PORT 4.5
                      
                      
                      # ============================
                      # Miscellaneous Heuristics & Content Triggers
                      # ============================
                      
                      score ALIBABA_IMG_NOT_RCVD_ALI 2.5
                      score BIGNUM_EMAILS_FREEM 2.5
                      score BIGNUM_EMAILS_MANY 2.5
                      score DATE_IN_FUTURE_06_12 2.5
                      score DATE_IN_PAST_03_06 2.5
                      score DATE_IN_PAST_06_12 2.5
                      score ENV_AND_HDR_SPF_MATCH -4.0
                      score FILL_THIS_FORM 0.5
                      score FILL_THIS_FORM_LONG 0.5
                      score INVESTMENT_ADVICE 0.5
                      score MALWARE_NORDNS 5.0
                      score PLING_QUERY 1.0
                      score SHOPIFY_IMG_NOT_RCVD_SFY 0.75
                      score STOX_REPLY_TYPE 2.0
                      score STOX_REPLY_TYPE_WITHOUT_QUOTES 3.0
                      score SUSPICIOUS_RECIPS 2.5
                      score T_FILL_THIS_FORM_SHORT 0.25
                      score T_REMOTE_IMAGE 0.25
                      score TVD_SPACE_RATIO_MINFP -0.25
                      
                      
                      # ============================
                      # Spam Eating Monkey DNSBL lists
                      # ============================
                      
                      header RCVD_IN_SEM_BACKSCATTER eval:check_rbl('sembackscatter-lastexternal','backscatter.spameatingmonkey.net')
                      describe RCVD_IN_SEM_BACKSCATTER Received from an IP listed by Spam Eating Monkey Backscatter list
                      tflags RCVD_IN_SEM_BACKSCATTER net
                      score RCVD_IN_SEM_BACKSCATTER 3.0
                      
                      header RCVD_IN_SEM_BLACK eval:check_rbl('semblack-lastexternal','bl.spameatingmonkey.net')
                      describe RCVD_IN_SEM_BLACK Received from an IP listed by Spam Eating Monkey Blocklist
                      tflags RCVD_IN_SEM_BLACK net
                      score RCVD_IN_SEM_BLACK 3.0
                      
                      header RCVD_IN_SEM_NETBLACK eval:check_rbl('semnetblack-lastexternal','netbl.spameatingmonkey.net')
                      describe RCVD_IN_SEM_NETBLACK Received from an IP listed by Spam Eating Monkeys Network Blocklist
                      tflags RCVD_IN_SEM_NETBLACK net
                      score RCVD_IN_SEM_NETBLACK 1.5
                      
                      urirhssub SEM_FRESH30 fresh30.spameatingmonkey.net. A 2
                      body SEM_FRESH30 eval:check_uridnsbl('SEM_FRESH30')
                      describe SEM_FRESH30 Contains a domain registered less than 30 days ago
                      tflags SEM_FRESH30 net
                      score SEM_FRESH30 3.0
                      
                      urirhssub SEM_URI_BLACK uribl.spameatingmonkey.net. A 2
                      body SEM_URI_BLACK eval:check_uridnsbl('SEM_URI')
                      describe SEM_URI_BLACK Contains a URI listed by Spam Eating Monkeys URI Blocklist
                      tflags SEM_URI_BLACK net
                      score SEM_URI_BLACK 2.5
                      
                      
                      # ============================
                      # JunkEmailFilter HostKarma DNSBL & DNSWL
                      # ============================
                      
                      header __RCVD_IN_HOSTKARMA eval:check_rbl('hostkarma','hostkarma.junkemailfilter.com.')
                      describe __RCVD_IN_HOSTKARMA Sender listed in JunkEmailFilter
                      tflags __RCVD_IN_HOSTKARMA net
                      
                      header RCVD_IN_HOSTKARMA_BL eval:check_rbl_sub('hostkarma','127.0.0.2')
                      describe RCVD_IN_HOSTKARMA_BL Sender listed in HOSTKARMA-BLACK
                      tflags RCVD_IN_HOSTKARMA_BL net
                      score RCVD_IN_HOSTKARMA_BL 1.0
                      
                      header RCVD_IN_HOSTKARMA_BR eval:check_rbl_sub('hostkarma','127.0.0.4')
                      describe RCVD_IN_HOSTKARMA_BR Sender listed in HOSTKARMA-BROWN
                      tflags RCVD_IN_HOSTKARMA_BR net
                      score RCVD_IN_HOSTKARMA_BR 0.5
                      
                      header RCVD_IN_HOSTKARMA_W eval:check_rbl_sub('hostkarma','127.0.0.1')
                      describe RCVD_IN_HOSTKARMA_W Sender listed in HOSTKARMA-WHITE
                      tflags RCVD_IN_HOSTKARMA_W net nice
                      score RCVD_IN_HOSTKARMA_W -1.0
                      
                      
                      # ============================
                      # SpamRATS DNSBL
                      # ============================
                      
                      header __RCVD_IN_SPAMRATS eval:check_rbl('spamrats','all.spamrats.com.')
                      describe __RCVD_IN_SPAMRATS SPAMRATS: sender is listed in SpamRATS
                      tflags __RCVD_IN_SPAMRATS net
                      reuse __RCVD_IN_SPAMRATS
                      
                      header RCVD_IN_SPAMRATS_DYNA eval:check_rbl_sub('spamrats','127.0.0.36')
                      describe RCVD_IN_SPAMRATS_DYNA RATS-Dyna: sent directly from dynamic IP address
                      tflags RCVD_IN_SPAMRATS_DYNA net
                      reuse RCVD_IN_SPAMRATS_DYNA
                      score RCVD_IN_SPAMRATS_DYNA 2.25
                      
                      header RCVD_IN_SPAMRATS_NOPTR eval:check_rbl_sub('spamrats','127.0.0.37')
                      describe RCVD_IN_SPAMRATS_NOPTR RATS-NoPtr: sender has no reverse DNS
                      tflags RCVD_IN_SPAMRATS_NOPTR net
                      reuse RCVD_IN_SPAMRATS_NOPTR
                      score RCVD_IN_SPAMRATS_NOPTR 2.5
                      
                      header RCVD_IN_SPAMRATS_SPAM eval:check_rbl_sub('spamrats','127.0.0.38')
                      describe RCVD_IN_SPAMRATS_SPAM RATS-Spam: sender is a spam source
                      tflags RCVD_IN_SPAMRATS_SPAM net
                      reuse RCVD_IN_SPAMRATS_SPAM
                      score RCVD_IN_SPAMRATS_SPAM 4.5
                      
                      
                      # ============================
                      # UCEPROTECT
                      # ============================
                      
                      header RCVD_IN_UCEPROTECT_LEVEL_1 eval:check_rbl('uceprotect1','dnsbl-1.uceprotect.net.')
                      describe RCVD_IN_UCEPROTECT_LEVEL_1 Sender IP listed in UCEPROTECT Level 1
                      tflags RCVD_IN_UCEPROTECT_LEVEL_1 net
                      score RCVD_IN_UCEPROTECT_LEVEL_1 3.0
                      
                      header RCVD_IN_UCEPROTECT_LEVEL_2 eval:check_rbl('uceprotect2','dnsbl-2.uceprotect.net.')
                      describe RCVD_IN_UCEPROTECT_LEVEL_2 Sender IP listed in UCEPROTECT Level 2
                      tflags RCVD_IN_UCEPROTECT_LEVEL_2 net
                      score RCVD_IN_UCEPROTECT_LEVEL_2 2.5
                      
                      
                      # ============================
                      # Abusix Guardian Mail Relay
                      # ============================
                      
                      header __RCVD_IN_ABUSIX eval:check_rbl('abusix','{redacted}.combined.mail.abusix.zone.')
                      describe __RCVD_IN_ABUSIX Received via a relay in Abusix Guardian Mail
                      tflags __RCVD_IN_ABUSIX net
                      
                      header RCVD_IN_ABUSIX_BLACK eval:check_rbl_sub('abusix','^127\.0\.0\.(?:[23]|200)$')
                      describe RCVD_IN_ABUSIX_BLACK Received via a relay in Abusix Guardian Mail Black
                      tflags RCVD_IN_ABUSIX_BLACK net
                      score RCVD_IN_ABUSIX_BLACK 7.5
                      
                      #header RCVD_IN_ABUSIX_EXPLOIT eval:check_rbl_sub('abusix','127.0.0.4')
                      #describe RCVD_IN_ABUSIX_EXPLOIT Received via a relay in Abusix Guardian Mail Exploit
                      #tflags RCVD_IN_ABUSIX_EXPLOIT net
                      #score RCVD_IN_ABUSIX_EXPLOIT 6.0
                      
                      header RCVD_IN_ABUSIX_DYN eval:check_rbl('abusix_dyn','{redacted}.combined.mail.abusix.zone.','^127\.0\.0\.1[12]$')
                      describe RCVD_IN_ABUSIX_DYN Received via a relay in Abusix Guardian Mail Dynamic
                      tflags RCVD_IN_ABUSIX_DYN net
                      score RCVD_IN_ABUSIX_DYN 2.0
                      
                      header RCVD_IN_ABUSIX_WHITE eval:check_rbl('abusix_white','{redacted}.combined.mail.abusix.zone.','127.0.2.1')
                      describe RCVD_IN_ABUSIX_WHITE Received via a relay in Abusix Guardian Mail White
                      tflags RCVD_IN_ABUSIX_WHITE nice net
                      score RCVD_IN_ABUSIX_WHITE -1.5
                      
                      urirhsbl URIBL_ABUSIX_DBLACK {redacted}.dblack.mail.abusix.zone. A
                      body URIBL_ABUSIX_DBLACK eval:check_uridnsbl('URIBL_ABUSIX_DBLACK')
                      describe URIBL_ABUSIX_DBLACK Contains a spam URL listed in the Abusix domain blocklist
                      tflags URIBL_ABUSIX_DBLACK net
                      score URIBL_ABUSIX_DBLACK 7.5
                      
                      urirhssub URIBL_ABUSIX_WHITE {redacted}.white.mail.abusix.zone. A 127.0.2.1
                      body URIBL_ABUSIX_WHITE eval:check_uridnsbl('URIBL_ABUSIX_WHITE')
                      describe URIBL_ABUSIX_WHITE Contains a domain listed in the Abusix domain whitelist
                      tflags URIBL_ABUSIX_WHITE nice net
                      score URIBL_ABUSIX_WHITE -0.25
                      
                      
                      # ============================
                      # Ascams RBLs (IP Reputation)
                      # ============================
                      
                      header RCVD_IN_ASCAMS_BLOCK eval:check_rbl('ascams_block','block.ascams.com.')
                      describe RCVD_IN_ASCAMS_BLOCK Sender listed in Ascams Block RBL
                      tflags RCVD_IN_ASCAMS_BLOCK net
                      score RCVD_IN_ASCAMS_BLOCK 0.0
                      
                      header RCVD_IN_ASCAMS_DROP eval:check_rbl('ascams_white','dnsbl.ascams.com.')
                      describe RCVD_IN_ASCAMS_DROP Sender listed in Ascams DROP list
                      tflags RCVD_IN_ASCAMS_DROP nice net
                      score RCVD_IN_ASCAMS_DROP 3.5
                      
                      
                      # ============================
                      # DroneBL DNSBL
                      # ============================
                      
                      header RCVD_IN_DRONEBL eval:check_rbl('dronebl','dnsbl.dronebl.org.')
                      describe RCVD_IN_DRONEBL Sender listed in DroneBL (suspected bot/malware)
                      tflags RCVD_IN_DRONEBL net
                      score RCVD_IN_DRONEBL 2.0
                      
                      
                      # ============================
                      # GBUDB Truncate DNSBL
                      # ============================
                      
                      header RCVD_IN_GBUDB_TRUNCATE eval:check_rbl('gbudb','truncate.gbudb.net.')
                      describe RCVD_IN_GBUDB_TRUNCATE Sender listed in GBUDB Truncate
                      tflags RCVD_IN_GBUDB_TRUNCATE net
                      score RCVD_IN_GBUDB_TRUNCATE 5.0
                      
                      
                      # ============================
                      # Usenix S5H
                      # ============================
                      
                      header RCVD_IN_S5H_BL eval:check_rbl_txt('s5hbl','all.s5h.net.')
                      describe RCVD_IN_S5H_BL Listed at all.s5h.net
                      tflags RCVD_IN_S5H_BL net
                      score RCVD_IN_S5H_BL 1.5
                      
                      
                      # ============================
                      # Backscatterer.org
                      # ============================
                      
                      header RCVD_IN_BACKSCATTERER eval:check_rbl('backscatterer','ips.backscatterer.org.')
                      describe RCVD_IN_BACKSCATTERER IP listed in Backscatterer (backscatter spam)
                      tflags RCVD_IN_BACKSCATTERER net
                      score RCVD_IN_BACKSCATTERER 2.25
                      

                      --
                      Dustin Dauncey
                      www.d19.ca

                      1 Reply Last reply
                      1
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Bookmarks
                      • Search