# Metrics settings # Please don't modify this file as your changes might be overwritten with # the next update. # # You can modify '$LOCAL_CONFDIR/rspamd.conf.local.override' to redefine # parameters defined on the top level # # You can modify '$LOCAL_CONFDIR/rspamd.conf.local' to add # parameters defined on the top level # # For specific modules or configuration you can also modify # '$LOCAL_CONFDIR/local.d/file.conf' - to add your options or rewrite defaults # '$LOCAL_CONFDIR/override.d/file.conf' - to override the defaults # # See https://rspamd.com/doc/tutorials/writing_rules.html for details metric { name = "default"; # If this param is set to non-zero # then a metric would accept all symbols # unknown_weight = 1.0 actions { reject = 15; add_header = 6; greylist = 4; } group "excessqp" { max_score = 2.4; } group "excessb64" { max_score = 3.0; } group "header" { symbol "FORGED_SENDER" { weight = 0.30; description = "Sender is forged (different From: header and smtp MAIL FROM: addresses)"; } symbol "R_MIXED_CHARSET" { weight = 5.0; description = "Mixed characters in a message"; one_shot = true; } symbol "R_MIXED_CHARSET_URL" { weight = 7.0; description = "Mixed characters in a URL inside message"; one_shot = true; } symbol "FORGED_RECIPIENTS" { weight = 2.0; description = "Recipients are not the same as RCPT TO: mail command"; } symbol "FORGED_RECIPIENTS_MAILLIST" { weight = 0.0; description = "Recipients are not the same as RCPT TO: mail command, but a message from a maillist"; } symbol "FORGED_SENDER_MAILLIST" { weight = 0.0; description = "Sender is not the same as MAIL FROM: envelope, but a message is from a maillist"; } symbol "ONCE_RECEIVED" { weight = 0.1; description = "One received header in a message"; } symbol "RDNS_NONE" { weight = 1.0; description = "Cannot resolve reverse DNS for sender's IP"; } symbol "ONCE_RECEIVED_STRICT" { weight = 4.0; description = "One received header with 'bad' patterns inside"; } symbol "MAILLIST" { weight = -0.2; description = "Message seems to be from maillist"; } } group "subject" { max_score = 6.0; } group "mua" { symbol "FORGED_MUA_MAILLIST" { weight = 0.0; description = "Avoid false positives for FORGED_MUA_* in maillist"; } } group "rbl" { symbol "DNSWL_BLOCKED" { weight = 0.0; description = "Resolver blocked due to excessive queries"; } symbol "RCVD_IN_DNSWL" { weight = 0.0; description = "Unrecognised result from dnswl.org"; } symbol "RCVD_IN_DNSWL_NONE" { weight = 0.0; description = "Sender listed at http://www.dnswl.org, low none"; } symbol "RCVD_IN_DNSWL_LOW" { weight = 0.0; description = "Sender listed at http://www.dnswl.org, low trust"; } symbol "RCVD_IN_DNSWL_MED" { weight = 0.0; description = "Sender listed at http://www.dnswl.org, medium trust"; } symbol "RCVD_IN_DNSWL_HI" { weight = 0.0; description = "Sender listed at http://www.dnswl.org, high trust"; } symbol "RBL_SPAMHAUS" { weight = 0.0; description = "Unrecognised result from Spamhaus zen"; } symbol "RBL_SPAMHAUS_SBL" { weight = 2.0; description = "From address is listed in zen sbl"; } symbol "RBL_SPAMHAUS_CSS" { weight = 2.0; description = "From address is listed in zen css"; } symbol "RBL_SPAMHAUS_XBL" { weight = 4.0; description = "From address is listed in zen xbl"; } symbol "RBL_SPAMHAUS_XBL_ANY" { weight = 4.0; description = "From or receive address is listed in zen xbl (any list)"; } symbol "RBL_SPAMHAUS_PBL" { weight = 2.0; description = "From address is listed in zen pbl (ISP list)"; } symbol "RBL_SPAMHAUS_DROP" { weight = 7.0; description = "From address is listed in zen drop bl"; } symbol "RECEIVED_SPAMHAUS_XBL" { weight = 3.0; description = "Received address is listed in zen xbl"; one_shot = true; } symbol "RBL_SENDERSCORE" { weight = 2.0; description = "From address is listed in senderscore.com BL"; } symbol "RBL_ABUSECH" { weight = 1.0; description = "From address is listed in ABUSE.CH BL"; } symbol "MAILSPIKE" { weight = 0.0; description = "Unrecognised result from Mailspike"; } symbol "RWL_MAILSPIKE_NEUTRAL" { weight = 0.0; description = "Neutral result from Mailspike"; } symbol "RBL_MAILSPIKE_WORST" { weight = 2.0; description = "From address is listed in RBL - worst possible reputation"; } symbol "RBL_MAILSPIKE_VERYBAD" { weight = 1.5; description = "From address is listed in RBL - very bad reputation"; } symbol "RBL_MAILSPIKE_BAD" { weight = 1.0; description = "From address is listed in RBL - bad reputation"; } symbol "RWL_MAILSPIKE_POSSIBLE" { weight = 0.0; description = "From address is listed in RWL - possibly legit"; } symbol "RWL_MAILSPIKE_GOOD" { weight = 0.0; description = "From address is listed in RWL - good reputation"; } symbol "RWL_MAILSPIKE_VERYGOOD" { weight = 0.0; description = "From address is listed in RWL - very good reputation"; } symbol "RWL_MAILSPIKE_EXCELLENT" { weight = 0.0; description = "From address is listed in RWL - excellent reputation"; } symbol "RBL_SEM" { weight = 1.0; description = "Address is listed in Spameatingmonkey RBL"; } symbol "RBL_SEM_IPV6" { weight = 1.0; description = "Address is listed in Spameatingmonkey RBL (ipv6)"; } } group "bayes" { symbol "BAYES_SPAM" { weight = 4.0; description = "Message probably spam, probability: "; } symbol "BAYES_HAM" { weight = -3.0; description = "Message probably ham, probability: "; } } group "fuzzy" { symbol "FUZZY_UNKNOWN" { weight = 5.0; description = "Generic fuzzy hash match"; } symbol "FUZZY_DENIED" { weight = 12.0; description = "Denied fuzzy hash"; } symbol "FUZZY_PROB" { weight = 5.0; description = "Probable fuzzy hash"; } symbol "FUZZY_WHITE" { weight = -2.1; description = "Whitelisted fuzzy hash"; } } group "spf" { symbol "R_SPF_FAIL" { weight = 1.0; description = "SPF verification failed"; } symbol "R_SPF_SOFTFAIL" { weight = 0.0; description = "SPF verification soft-failed"; } symbol "R_SPF_NEUTRAL" { weight = 0.0; description = "SPF policy is neutral"; } symbol "R_SPF_ALLOW" { weight = -0.2; description = "SPF verification allows sending"; } symbol "R_SPF_DNSFAIL" { weight = 0.0; description = "SPF DNS failure"; } } group "dkim" { symbol "R_DKIM_REJECT" { weight = 1.0; description = "DKIM verification failed"; one_shot = true; } symbol "R_DKIM_TEMPFAIL" { weight = 0.0; description = "DKIM verification soft-failed"; } symbol "R_DKIM_ALLOW" { weight = -0.2; description = "DKIM verification succeed"; one_shot = true; } } group "surbl" { max_score = 12.5; symbol "SURBL_BLOCKED" { weight = 0.0; description = "SURBL: blocked by policy/overusage"; } symbol "PH_SURBL_MULTI" { weight = 5.5; description = "SURBL: Phishing sites"; } symbol "MW_SURBL_MULTI" { weight = 5.5; description = "SURBL: Malware sites"; } symbol "ABUSE_SURBL" { weight = 5.5; description = "SURBL: ABUSE"; } symbol "CRACKED_SURBL" { weight = 4.0; description = "SURBL: cracked site"; } symbol "RAMBLER_URIBL" { weight = 4.5; description = "rambler.ru uribl"; } symbol "SEM_URIBL_UNKNOWN" { weight = 0.0; description = "Spameatingmonkey uribl: unknown result"; } symbol "SEM_URIBL" { weight = 3.5; description = "Spameatingmonkey uribl"; } symbol "SEM_URIBL_FRESH15_UNKNOWN" { weight = 0.0; description = "Spameatingmonkey Fresh15 uribl: unknown result"; } symbol "SEM_URIBL_FRESH15" { weight = 3.0; description = "Spameatingmonkey uribl. Domains registered in the last 15 days (.AERO,.BIZ,.COM,.INFO,.NAME,.NET,.PRO,.SK,.TEL,.US)"; } symbol "DBL" { weight = 0.0; description = "DBL unknown result"; } symbol "DBL_SPAM" { weight = 6.5; description = "DBL uribl spam"; } symbol "DBL_PHISH" { weight = 6.5; description = "DBL uribl phishing"; } symbol "DBL_MALWARE" { weight = 6.5; description = "DBL uribl malware"; } symbol "DBL_BOTNET" { weight = 5.5; description = "DBL uribl botnet C&C domain"; } symbol "DBL_ABUSE" { weight = 6.5; description = "DBL uribl abused legit spam"; } symbol "DBL_ABUSE_REDIR" { weight = 1.5; description = "DBL uribl abused spammed redirector domain"; } symbol "DBL_ABUSE_PHISH" { weight = 7.5; description = "DBL uribl abused legit phish"; } symbol "DBL_ABUSE_MALWARE" { weight = 7.5; description = "DBL uribl abused legit malware"; } symbol "DBL_ABUSE_BOTNET" { weight = 5.5; description = "DBL uribl abused legit botnet C&C"; } symbol "DBL_PROHIBIT" { weight = 0.00000; description = "DBL uribl IP queries prohibited!"; } symbol "URIBL_MULTI" { weight = 0.0; description = "uribl.com: unrecognised result"; } symbol "URIBL_BLOCKED" { weight = 0.0; description = "uribl.com: query refused"; } symbol "URIBL_BLACK" { weight = 7.5; description = "uribl.com black url"; } symbol "URIBL_RED" { weight = 3.5; description = "uribl.com red url"; } symbol "URIBL_GREY" { weight = 1.5; description = "uribl.com grey url"; one_shot = true; } symbol "RAMBLER_EMAILBL" { weight = 9.5; description = "rambler.ru emailbl"; one_shot = true; } symbol "SBL_URIBL" { weight = 0.0; description = "SBL URIBL: Filtered result"; } symbol "URIBL_SBL" { weight = 6.5; description = "Spamhaus SBL URIBL"; } symbol "URIBL_SBL_CSS" { weight = 6.5; description = "Spamhaus SBL CSS URIBL"; } symbol "RBL_SARBL_BAD" { weight = 2.5; description = "A domain listed in the mail is blacklisted in SARBL"; } } group "phishing" { symbol "PHISHING" { weight = 4.0; description = "Phished URL"; one_shot = true; } symbol "PHISHED_OPENPHISH" { weight = 7.0; description = "Phished URL found in openphish.com"; } symbol "PHISHED_PHISHTANK" { weight = 7.0; description = "Phished URL found in phishtank.com"; } } group "hfilter" { symbol "HFILTER_HELO_BAREIP" { weight = 3.00; description = "Helo host is bare ip"; } symbol "HFILTER_HELO_BADIP" { weight = 4.50; description = "Helo host is very bad ip"; } symbol "HFILTER_HELO_1" { weight = 0.5; description = "Helo host checks (very low)"; } symbol "HFILTER_HELO_2" { weight = 1.00; description = "Helo host checks (low)"; } symbol "HFILTER_HELO_3" { weight = 2.00; description = "Helo host checks (medium)"; } symbol "HFILTER_HELO_4" { weight = 2.50; description = "Helo host checks (hard)"; } symbol "HFILTER_HELO_5" { weight = 3.00; description = "Helo host checks (very hard)"; } symbol "HFILTER_HOSTNAME_1" { weight = 0.5; description = "Hostname checks (very low)"; } symbol "HFILTER_HOSTNAME_2" { weight = 1.00; description = "Hostname checks (low)"; } symbol "HFILTER_HOSTNAME_3" { weight = 2.00; description = "Hostname checks (medium)"; } symbol "HFILTER_HOSTNAME_4" { weight = 2.50; description = "Hostname checks (hard)"; } symbol "HFILTER_HOSTNAME_5" { weight = 3.00; description = "Hostname checks (very hard)"; } symbol "HFILTER_HELO_NORESOLVE_MX" { weight = 0.20; description = "MX found in Helo and no resolve"; } symbol "HFILTER_HELO_NORES_A_OR_MX" { weight = 0.3; description = "Helo no resolve to A or MX"; } symbol "HFILTER_HELO_IP_A" { weight = 1.00; description = "Helo A IP != hostname IP"; } symbol "HFILTER_HELO_NOT_FQDN" { weight = 2.00; description = "Helo not FQDN"; } symbol "HFILTER_FROMHOST_NORESOLVE_MX" { weight = 0.5; description = "MX found in FROM host and no resolve"; } symbol "HFILTER_FROMHOST_NORES_A_OR_MX" { weight = 1.50; description = "FROM host no resolve to A or MX"; } symbol "HFILTER_FROMHOST_NOT_FQDN" { weight = 3.00; description = "FROM host not FQDN"; } symbol "HFILTER_FROM_BOUNCE" { weight = 0.00; description = "Bounce message"; } /* symbol { weight = 0.50; name = "HFILTER_MID_NORESOLVE_MX"; description = "MX found in Message-id host and no resolve"; } symbol { weight = 0.50; name = "HFILTER_MID_NORES_A_OR_MX"; description = "Message-id host no resolve to A or MX"; } symbol { weight = 0.50; name = "HFILTER_MID_NOT_FQDN"; description = "Message-id host not FQDN"; } */ symbol "HFILTER_HOSTNAME_UNKNOWN" { weight = 2.50; description = "Unknown hostname (no PTR or no resolve PTR to hostname)"; } symbol "HFILTER_RCPT_BOUNCEMOREONE" { weight = 1.50; description = "Message from bounce and over 1 recepient"; } symbol "HFILTER_URL_ONLY" { weight = 2.20; description = "URL only in body"; } symbol "HFILTER_URL_ONELINE" { weight = 2.50; description = "One line URL and text in body"; } } group "dmarc" { symbol "DMARC_POLICY_ALLOW" { weight = -0.5; description = "DMARC permit policy"; } symbol "DMARC_POLICY_ALLOW_WITH_FAILURES" { weight = -0.5; description = "DMARC permit policy with DKIM/SPF failure"; } symbol "DMARC_POLICY_REJECT" { weight = 2.0; description = "DMARC reject policy"; } symbol "DMARC_POLICY_QUARANTINE" { weight = 1.5; description = "DMARC quarantine policy"; } symbol "DMARC_POLICY_SOFTFAIL" { weight = 0.1; description = "DMARC failed"; } } group "mime_types" { symbol "MIME_GOOD" { weight = -0.1; description = "Known content-type"; one_shot = true; } symbol "MIME_BAD" { weight = 1.0; description = "Known bad content-type"; one_shot = true; } symbol "MIME_UNKNOWN" { weight = 0.1; description = "Missing or unknown content-type"; one_shot = true; } symbol "MIME_BAD_ATTACHMENT" { weight = 4.0; description = "Invalid attachement mime type"; one_shot = true; } symbol "MIME_ENCRYPTED_ARCHIVE" { weight = 2.0; description = "Encrypted archive in a message"; one_shot = true; } symbol "MIME_ARCHIVE_IN_ARCHIVE" { weight = 5.0; description = "Archive within another archive"; one_shot = true; } symbol "MIME_DOUBLE_BAD_EXTENSION" { weight = 3.0; # This rule has dynamic weight up to 4.0 description = "Bad extension cloaking"; one_shot = true; } symbol "MIME_BAD_EXTENSION" { weight = 2.0; # This rule has dynamic weight up to 4.0 description = "Bad extension"; one_shot = true; } } .include(try=true; priority=1; duplicate=merge) "$LOCAL_CONFDIR/local.d/metrics.conf" .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/metrics.conf" }