123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- SpamAssassin SNF4SA Plugin for SNFServer
- Installation and Configuration
-
- Copyright (C) 2009 ARM Research Labs, LLC.
-
- See www.armresearch.com for the copyright terms.
-
- Installing SpamAssassin SNF4SA plugin for SNFServer involves the
- following steps:
-
- 1) Copy snf4sa.pm and snf4sa.cf to /etc/mail/spamassassin .
-
- 2) Edit /etc/mail/spamassassin/snf4sa.cf plugin configuration file
- to meet your needs. See below for a description of the
- configuration settings.
-
- The module writes the email message to a temporary file in
- /tmp/snf4sa. If this directory doesn't exist, the script creates it
- with permission 777. This allows both the script and SNFServer to
- write to that directory. If that directory already exists, ensure
- that it has a permission of 777.
-
- The plugin uses the SNFServer results to calculate a plugin score.
- For SpamAssassin with a version of 3.2.0 or later, this plugin score
- is added to the SpamAssassin score for the message.
-
- If the SpamAssassin version is earlier than 3.2.0, then the plugin
- compares the plugin score to plugin score threshold. If the plugin
- score is greater than or equal to the plugin score threshold, then a
- static score is added to the SpamAssassin score for the message. Both
- the plugin score threshold and static score are specified in the
- configuration file.
-
- Plugin Configuration Settings
- -----------------------------
-
- The plugin file (snf4sa.cf) contains required lines that:
-
- 1) Configures SpamAssassin to load the plugin.
-
- 2) Describes the plugin.
-
- 3) Configures SpamAssassin to add the X-Spam-SNF-Result header to
- the email. This header contains the results of the SNF scan.
-
- In addition, there are lines that can be configured by the user that
- specifies:
-
- 1) Which emails to process through SNFServer.
-
- 2) The relationship between SNFServer results and the plugin score.
- You can specify the value added to or subtracted from the
- SpamAssasin score for each SNFServer result. You can also specify
- whether SpamAssasin should abort further processing for eacn
- SNFServer result.
-
- 3) The relationship between the GBUdb results and the plugin score.
- The GBUdb probability p and confidence c add the following value to
- the SpamAssasin score:
-
- abs(p * c) ^ 0.5 * sign(p) * MaxWeight
-
- where sign(p) is -1 if p < 0, and +1 otherwise, and MaxWeight is
- specified in a configuration line. MaxWeight is greater than or
- equal to zero. If MaxWeight isn't specified in the configuration
- file, then the GBUdb results don't affect the plugin score.
-
- 4) The plugin score threshold and static score (used only if the
- SpamAssassin version is earlier than 3.2.0).
-
- To specify which emails to process, use a line similar to:
-
- full SNF4SA eval:snf4sa_sacheck()
-
- The above line specifies that all emails be processed. Please see the
- SpamAssassin documentation for other options.
-
- To specify the relationship between the SNFServer results and the
- plugin score, enter zero or more lines with the format:
-
- snf_result NN sa_score S short_circuit_[yes|no]
-
- where NN specifies the SNFServer result, and S is the plugin score for
- that SNFServer result. [yes|no] is "yes" if further scanning should
- be skipped if SNFServer returns the result specified by NN, or "no" if
- further scanning should not be skipped. NN can be a combination of a
- series of one or more integers, and a range of integers specified by
- N-M, where N and M are integers. The "short_circuit_[yes|no]" is
- optional, and the default value for [yes|no] is "no" (which specifies
- that SpamAssasin continue scanning).
-
- NOTE: There must not be any space when specifying a range of integers.
- For example, specify "34-43" rather than the incorrect "34 - 43".
-
- For example:
-
- snf_result 63 sa_score 2.5 short_circuit_no
-
- causes the plugin to add 2.5 to the plugin score if SNFServer returns
- 63 (which in the default SNFServer configuration corresponds to
- "caution").
-
- Another example:
-
- snf_result 45 47-62 sa_score 5.0 short_circuit_yes
-
- causes the plugin to add 5.0 to the plugin score and stop further
- processing if SNFServer returns 45 or 47 thru 62.
-
- Final example:
-
- snf_result 1 sa_score -5.0
-
- causes the plugin to subtract 5.0 from the plugin score. SpamAssassin
- continues to process the email.
-
- If SNFServer returns a result that isn't specified, then the plugin
- adds zero to the plugin score.
-
- The following line specifies the MaxWeight parameter:
-
- GBUdb_max_weight MaxWeight
-
- where MaxWeight is the value to specified. For example,
-
- GBUdb_max_weight 3.0
-
- specifies a MaxWeight value of 3.0.
-
- For SpamAssassin with version earlier than 3.2.0
- ------------------------------------------------
-
- The following line specifies the plugin score threshold:
-
- pre_3.2_plugin_score_threshold Threshold
-
- where Threshold is the value to specified. For example:
-
- pre_3.2_plugin_score_threshold 1.1
-
- causes the static score to be added if the plugin score is equal to or
- greater than 1.1.
-
- The following line specifies the static score:
-
- score SNF4SA Score
-
- where Score is the static score to add to the SpamAssassin score for
- the message. For example:
-
- score SNF4SA 8.0
-
- specifies a static score of 8.0. If the SpamAssassin version is
- earlier than 3.2.0, and the plugin score is equal to or greater than
- the plugin score threshold, then a value of 8.0 would be added to the
- SpamAssassin score for the message.
-
- Debugging the configuration
- ---------------------------
-
- The configuration can be tested by running
-
- spamassassin --lint
-
- This outputs a message if any line in in the configuration file cannot
- be parsed, along with the offending line.
-
- In order to obtain more detailed information, run
-
- spamassassin -D --lint
-
- This command outputs information about why a line could not be parsed.
- The output includes a great deal of other debugging information; you
- can filter the information relevant to this plugin like this:
-
- spamassassin -D --lint 2>&1 | grep snf4sa
|