source: npl/mailserver/dspam/dspam-3.10.2/src/dspam.conf.in

Last change on this file was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100644
File size: 35.1 KB
Line 
1## $Id: dspam.conf.in,v 1.103 2011/11/10 00:27:34 tomhendr Exp $
2## dspam.conf -- DSPAM configuration file
3##
4
5#
6# DSPAM Home: Specifies the base directory to be used for DSPAM storage
7#
8Home @dspam_home@
9
10#
11# StorageDriver: Specifies the storage driver backend (library) to use.
12# You'll only need to set this if you are using dynamic storage driver plugins
13# from a binary distribution. The default build statically links the storage
14# driver (when only one is specified at configure time), overriding this
15# setting, which only comes into play if multiple storage drivers are specified
16# at configure time. When using dynamic linking, be sure to include the path
17# to the library if necessary, and some systems may use an extension other
18# than .so (e.g. OSX uses .dylib).
19#
20# Options include:
21#
22#   libmysql_drv.so     libpgsql_drv.so   libsqlite_drv.so
23#   libsqlite3_drv.so   libhash_drv.so
24#
25# IMPORTANT: Switching storage drivers requires more than merely changing
26# this option. If you do not wish to lose all of your data, you will need to
27# migrate it to the new backend before making this change.
28#
29StorageDriver @libdir@/dspam/@storage_driver@
30
31#
32# Trusted Delivery Agent: Specifies the local delivery agent DSPAM should call
33# when delivering mail as a trusted user. Use %u to specify the user DSPAM is
34# processing mail for. It is generally a good idea to allow the MTA to specify
35# the pass-through arguments at run-time, but they may also be specified here.
36#
37# Most operating system defaults:
38#TrustedDeliveryAgent "/usr/bin/procmail"       # Linux
39#TrustedDeliveryAgent "/usr/bin/mail"           # Solaris
40#TrustedDeliveryAgent "/usr/libexec/mail.local" # FreeBSD
41#TrustedDeliveryAgent "/usr/bin/procmail"       # Cygwin
42#
43# Other popular configurations:
44#TrustedDeliveryAgent "/usr/cyrus/bin/deliver"  # Cyrus
45#TrustedDeliveryAgent "/bin/maildrop"           # Maildrop
46#TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned" # Exim
47#
48TrustedDeliveryAgent "@delivery_agent@"
49
50#
51# Untrusted Delivery Agent: Specifies the local delivery agent and arguments
52# DSPAM should use when delivering mail and running in untrusted user mode.
53# Because DSPAM will not allow pass-through arguments to be specified to
54# untrusted users, all arguments should be specified here. Use %u to specify
55# the user DSPAM is processing mail for. This configuration parameter is only
56# necessary if you plan on allowing untrusted processing.
57#
58#UntrustedDeliveryAgent "/usr/bin/procmail -d %u"
59
60#
61# SMTP or LMTP Delivery: Alternatively, you may wish to use SMTP or LMTP
62# delivery to deliver your message to the mail server instead of using a
63# delivery agent. You will need to configure with --enable-daemon to use host
64# delivery, however you do not need to operate in daemon mode. Specify an IP
65# address or UNIX path to a domain socket below as a host.
66#
67# If you would like to set up DeliveryHost's on a per-domain basis, use
68# the syntax: DeliveryHost.example.org 1.2.3.4
69#
70#DeliveryHost           127.0.0.1
71#DeliveryPort           24
72#DeliveryIdent          localhost
73#DeliveryProto          LMTP
74
75#
76# FallbackDomains: If you want to specify certain domains as fallback domains,
77# enable this option. For example, you could create a user @example.org, and
78# if bob@example.org does not resolve to a known user on the system, the user
79# could default to your @example.org user. NOTE: This also requires designating
80# fallbackDomain for the domain name;
81# e.g. dspam_admin ch pref example.org fallbackDomain on
82#
83#FallbackDomains on
84
85#
86# Quarantine Agent: DSPAM's default behavior is to quarantine all mail it
87# thinks is spam. If you wish to override this behavior, you may specify
88# a quarantine agent which will be called with all messages DSPAM thinks is
89# spam. Use %u to specify the user DSPAM is processing mail for.
90#
91#QuarantineAgent        "/usr/bin/procmail -d spam"
92
93#
94# DSPAM can optionally process "plused users" (addresses in the user+detail
95# form) by truncating the username just before the "+", so all internal
96# processing occurs for "user", but delivery will be performed for
97# "user+detail". This is only useful if the LDA can handle "plused users"
98# (for example Cyrus IMAP) and when configured for LMTP delivery above
99#
100#EnablePlusedDetail     on
101
102#
103# Character to use as seperator between user names and address extensions.
104# If you change this value then please adjust QuarantineMailbox to use the
105# new specified character. The default is '+'.
106#
107#PlusedCharacter        +
108
109#
110# Turn this feature on if you want to force DSPAM to lowercase the "plused
111# users" username.
112#
113#PlusedUserLowercase    on
114
115#
116# Quarantine Mailbox: DSPAM's LMTP code can send spam mail using LMTP to a
117# "plused" mailbox (such as user+quarantine) leaving quarantine processing
118# for retraining or deletion to be performed by the LDA and the mail client.
119# "plused" mailboxes are supported by Cyrus IMAP and possibly other LDAs. If
120# you don't set/change PlusedCharacter then the mailbox name must have the +
121# since the + is the default used character.
122#
123#QuarantineMailbox      +quarantine
124
125#
126# OnFail: What to do if local delivery or quarantine should fail. If set
127# to "unlearn", DSPAM will unlearn the message prior to exiting with an
128# un successful return code. The default option, "error" will not unlearn
129# the message but return the appropriate error code. The unlearn option
130# is use-ful on some systems where local delivery failures will cause the
131# message to be requeued for delivery, and could result in the message
132# being processed multiple times. During a very large failure, however,
133# this could cause a significant load increase.
134#
135OnFail error
136
137#
138# Trusted Users: Only the users specified below will be allowed to perform
139# administrative functions in DSPAM such as setting the active user and
140# accessing tools. All other users attempting to run DSPAM will be restricted;
141# their uids will be forced to match the active username and they will not be
142# able to specify delivery agent privileges or use tools.
143#
144Trust root
145Trust dspam
146Trust apache
147Trust mail
148Trust mailnull
149Trust smmsp
150Trust daemon
151#Trust nobody
152#Trust majordomo
153
154#
155# Debugging: Enables debugging for some or all users. IMPORTANT: DSPAM must
156# be compiled with debug support in order to use this option. DSPAM should
157# never be running in production with debug active unless you are
158# troubleshooting problems.
159#
160# DebugOpt: One or more of: process, classify, spam, fp, inoculation, corpus
161#   process     standard message processing
162#   classify    message classification using --classify
163#   spam        error correction of missed spam
164#   fp          error correction of false positives
165#   inoculation message inoculations (source=inoculation)
166#   corpus      corpusfed messages (source=corpus)
167#
168#Debug *
169#Debug bob bill
170#
171#DebugOpt process spam fp
172
173#
174# ClassAlias: Alias a particular class to spam/nonspam. This is useful if
175# classifying things other than spam.
176#
177#ClassAliasSpam badstuff
178#ClassAliasNonspam goodstuff
179
180#
181# Training Mode: The default training mode to use for all operations, when
182# one has not been specified on the commandline or in the user's preferences.
183# Acceptable values are:
184#     toe     Train on Error (Only)
185#     teft    Train Everything (Trains on every message)
186#     tum     Train Until Mature (Train only tokens without enough data)
187#     notrain Do not train or store signatures (large ISP systems, post-train)
188#
189TrainingMode teft
190
191#
192# TestConditionalTraining: By default, dspam will retrain certain errors
193# until the condition is no longer met. This usually accelerates learning.
194# Some people argue that this can increase the risk of errors, however.
195#
196TestConditionalTraining on
197
198#
199# Features: Specify features to activate by default; can also be specified
200# on the commandline. See the documentation for a list of available features.
201# If _any_ features are specified on the commandline, these are ignored.
202#
203#Feature noise
204Feature whitelist
205
206# Training Buffer: The training buffer waters down statistics during training.
207# It is designed to prevent false positives, but can also dramatically reduce
208# dspam's catch rate during initial training. This can be a number from 0
209# (no buffering) to 10 (maximum buffering). If you are paranoid about false
210# positives, you should probably enable this option.
211#
212#Feature tb=5
213
214#
215# Algorithms: Specify the statistical algorithms to use, overriding any
216# defaults configured in the build. The options are:
217#    naive       Naive-Bayesian (All Tokens)
218#    graham      Graham-Bayesian ("A Plan for Spam")
219#    burton      Burton-Bayesian (SpamProbe)
220#    robinson    Robinson's Geometric Mean Test (Obsolete)
221#    chi-square  Fisher-Robinson's Chi-Square Algorithm
222#
223# You may have multiple algorithms active simultaneously, but it is strongly
224# recommended that you group Bayesian algorithms with other Bayesian
225# algorithms, and any use of Chi-Square remain exclusive.
226#
227# NOTE: For standard "CRM114" Markovian weighting, use 'naive', or consider
228#       using 'burton' for slightly better accuracy
229#
230# Don't mess with this unless you know what you're doing
231#
232#Algorithm chi-square
233#Algorithm naive
234Algorithm graham burton
235
236#
237# Tokenizer: Specify the tokenizer to use. The tokenizer is the piece
238# responsible for parsing the message into individual tokens. Depending on
239# how many resources you are willing to trade off vs. accuracy, you may
240# choose to use a less or more detailed tokenizer:
241#   word    uniGram (single word) tokenizer
242#           Tokenizes message into single individual words/tokens
243#           example: "free" and "viagra"
244#   chain   biGram (chained tokens) tokenizer (default)
245#           Single words + chains adjacent tokens together
246#           example: "free" and "viagra" and "free viagra"
247#   sbph    Sparse Binary Polynomial Hashing tokenizer
248#           Creates sparse token patterns across sliding window of 5-tokens
249#           example: "the quick * fox jumped" and "the * * fox jumped"
250#   osb     Orthogonal Sparse biGram tokenizer
251#           Similar to SBPH, but only uses the biGrams
252#           example: "the * * fox" and "the * * * jumped"
253#
254# In general the reccomendation is to use 'osb' for new installations.
255# The default value of 'chain' remains here as not to surprise anyone upgrading
256# that has not changed from the default value.
257#
258Tokenizer chain
259
260#
261# PValue: Specify the technique used for calculating Probability Values,
262# overriding any defaults configured in the build. These options are:
263#    bcr         Bayesian Chain Rule (Graham's Technique - "A Plan for Spam")
264#    robinson    Robinson's Technique (used in Chi-Square)
265#    markov      Markovian Weighted Technique (for Markovian discrimination)
266#
267# Unlike the "Algorithms" property, you may only have one of these defined.
268# Use of the chi-square algorithm automatically changes this to robinson.
269#
270# Don't mess with this unless you know what you're doing.
271#
272#PValue robinson
273#PValue markov
274PValue bcr
275
276#
277# WebStats: Enable this if you are using the CGI, which writes .stats files
278WebStats on
279
280#
281# ImprobabilityDrive: Calculate odds-ratios for ham/spam, and add to
282# X-DSPAM-Improbability headers
283#
284#ImprobabilityDrive on
285
286#
287# Preferences: Specify any preferences to set by default, unless otherwise
288# overridden by the user (see next section) or a default.prefs file.
289# If user or default.prefs are found, the user's preferences will override any
290# defaults.
291#
292Preference "trainingMode=TEFT"          # { TOE | TUM | TEFT | NOTRAIN } -> default:teft
293Preference "spamAction=quarantine"      # { quarantine | tag | deliver } -> default:quarantine
294Preference "spamSubject=[SPAM]"         # { string } -> default:[SPAM]
295Preference "statisticalSedation=5"      # { 0 - 10 } -> default:0
296Preference "enableBNR=on"               # { on | off } -> default:off
297Preference "enableWhitelist=on"         # { on | off } -> default:on
298Preference "signatureLocation=message"  # { message | headers } -> default:message
299Preference "tagSpam=off"                # { on | off }
300Preference "tagNonspam=off"             # { on | off }
301Preference "showFactors=off"            # { on | off } -> default:off
302Preference "optIn=off"                  # { on | off }
303Preference "optOut=off"                 # { on | off }
304Preference "whitelistThreshold=10"      # { Integer } -> default:10
305Preference "makeCorpus=off"             # { on | off } -> default:off
306Preference "storeFragments=off"         # { on | off } -> default:off
307Preference "localStore="                # { on | off } -> default:username
308Preference "processorBias=on"           # { on | off } -> default:on
309Preference "fallbackDomain=off"         # { on | off } -> default:off
310Preference "trainPristine=off"          # { on | off } -> default:off
311Preference "optOutClamAV=off"           # { on | off } -> default:off
312Preference "ignoreRBLLookups=off"       # { on | off } -> default:off
313Preference "RBLInoculate=off"           # { on | off } -> default:off
314Preference "notifications=off"          # { on | off } -> default:off
315
316#
317# Overrides: Specifies the user preferences which may override configuration
318# and commandline defaults. Any other preferences supplied by an untrusted user
319# will be ignored.
320#
321AllowOverride enableBNR
322AllowOverride enableWhitelist
323AllowOverride fallbackDomain
324AllowOverride ignoreGroups
325AllowOverride ignoreRBLLookups
326AllowOverride localStore
327AllowOverride makeCorpus
328AllowOverride optIn
329AllowOverride optOut
330AllowOverride optOutClamAV
331AllowOverride processorBias
332AllowOverride RBLInoculate
333AllowOverride showFactors
334AllowOverride signatureLocation
335AllowOverride spamAction
336AllowOverride spamSubject
337AllowOverride statisticalSedation
338AllowOverride storeFragments
339AllowOverride tagNonspam
340AllowOverride tagSpam
341AllowOverride trainPristine
342AllowOverride trainingMode
343AllowOverride whitelistThreshold
344AllowOverride dailyQuarantineSummary
345AllowOverride notifications
346
347# --- MySQL ---
348
349#
350# Storage driver settings: Specific to a particular storage driver. Uncomment
351# the configuration specific to your installation, if applicable.
352#
353#MySQLServer            /var/lib/mysql/mysql.sock
354#MySQLPort             
355#MySQLUser              dspam
356#MySQLPass              changeme
357#MySQLDb                dspam
358#MySQLCompress          true
359#MySQLReconnect         true
360
361# If you are using replication for clustering, you can also specify a separate
362# server to perform all writes to.
363#
364#MySQLWriteServer       /var/lib/mysql/mysql.sock
365#MySQLWritePort         
366#MySQLWriteUser         dspam
367#MySQLWritePass         changeme
368#MySQLWriteDb           dspam_write
369#MySQLCompress          true
370#MySQLReconnect         true
371
372# If your replication isn't close to real-time, your retraining might fail if
373# the  signature isn't found. One workaround for this is to use the write
374# database for all signature reads:
375#
376#MySQLReadSignaturesFromWriteDb on
377
378# If you're running DSPAM in client/server (daemon) mode, uncomment the
379# setting below to override the default connection cache size (the number
380# of connections the server pools between all clients). The connection cache
381# represents the maximum number of database connections *available* and should
382# be set based on the maximum number of concurrent connections you're likely
383# to have. Each connection may be used by only one thread at a time, so all
384# other threads _will block_ until another connection becomes available.
385#
386#MySQLConnectionCache   10
387
388# If you're using vpopmail or some other type of virtual setup and wish to
389# change the table dspam uses to perform username/uid lookups, you can over-
390# ride it below
391
392#MySQLVirtualTable              dspam_virtual_uids
393#MySQLVirtualUIDField           uid
394#MySQLVirtualUsernameField      username
395
396# UIDInSignature: MySQL supports the insertion of the user id into the DSPAM
397# signature. This allows you to create one single spam or fp alias
398# (pointing to some arbitrary user), and the uid in the signature will
399# switch to the correct user. Result: you need only one spam alias
400
401#MySQLUIDInSignature    on
402
403# --- PostgreSQL ---
404
405# For PgSQLServer you can Use a TCP/IP address or a socket. If your socket is
406# in /var/run/postgresql/.s.PGSQL.5432 specify just the path where the socket
407# resits (without .s.PGSQL.5432).
408
409#PgSQLServer            /var/run/postgresql/
410#PgSQLPort             
411#PgSQLUser              dspam
412#PgSQLPass              changeme
413#PgSQLDb                dspam
414
415# If you're running DSPAM in client/server (daemon) mode, uncomment the
416# setting below to override the default connection cache size (the number
417# of connections the server pools between all clients).
418#
419#PgSQLConnectionCache   3
420
421# UIDInSignature: PgSQL supports the insertion of the user id into the DSPAM
422# signature. This allows you to create one single spam or fp alias
423# (pointing to some arbitrary user), and the uid in the signature will
424# switch to the correct user. Result: you need only one spam alias
425
426#PgSQLUIDInSignature    on
427
428# If you're using vpopmail or some other type of virtual setup and wish to
429# change the table dspam uses to perform username/uid lookups, you can over-
430# ride it below
431
432#PgSQLVirtualTable              dspam_virtual_uids
433#PgSQLVirtualUIDField           uid
434#PgSQLVirtualUsernameField      username
435
436# --- SQLite ---
437
438#SQLitePragma           "synchronous = OFF"
439
440# --- Hash ---
441
442#
443# HashRecMax: Default number of records to create in the initial segment when
444# building hash files. 100,000 yields files 1.6MB in size, but can fill up
445# fast, so be sure to increase this (to a million or more) if you're not using
446# autoextend.
447#
448# NOTE: If you're using a heavy-weight tokenizer, such as SBPH, you should be
449#       looking for settings in the 'millions' of records.
450#
451# Primes List:
452#  53, 97, 193, 389, 769, 1543, 3079, 6151, 12289, 24593, 49157, 98317, 196613,
453#  393241, 786433, 1572869, 3145739, 6291469, 12582917, 25165843, 50331653,
454#  100663319, 201326611, 402653189, 805306457, 1610612741, 3221225473,
455#  4294967291
456#
457HashRecMax              98317
458
459#
460# HashAutoExtend: Autoextend hash databases when they fill up. This allows
461# them to continue to train by adding extents (extensions) to the file. There
462# will be a small delay during the growth process, as everything needs to be
463# closed and remapped.
464#
465HashAutoExtend          on
466
467#
468# HashMaxExtents: The maximum number of extents that may be created in a single
469# hash file. Set this to zero for unlimited
470#
471HashMaxExtents          0
472
473#
474# HashExtentSize: The initial record size for newly created extents. Creating
475# this too small could result in many extents being created. Creating this too
476# large could result in excessive disk space usage. Typically, a value close
477# to half of the HashRecMax size is good.
478#
479HashExtentSize          49157
480
481#
482# HashPctIncrease: Increase the next extent size by n% from the size of the
483# last extent. This is useful in accommodating systems where the default
484# HashExtentSize can be too small for certain high-volume users, and can also
485# help keep seeks nice and speedy and/or prevent too many unnecessary extents
486# from being created when using a low HashMaxSeek. The default behavior, when
487# HashPctIncrease is not used, is to always use # HashExtentSize with no
488# increase.
489#
490HashPctIncrease         10
491
492#
493# HashMaxSeek: The maximum number of record seeks when inserting a new record
494# before failing or adding a new extent. This ultimately translates into the
495# max # of acceptable seeks per segment. Setting this too high will exhaustively
496# scan each segment and hurt performance. Typically, a low value is acceptable
497# as even older extents will continue to fill as training progresses.
498#
499HashMaxSeek             10
500
501#
502# HashConcurrentUser: If you are using a single, stateful hash database in
503# daemon mode, specifying a concurrent user below will cause the user to be
504# permanently mapped into memory and shared via rwlocks. This is very fast and
505# very cool if you are running a "userless" relay appliance.
506#
507#HashConcurrentUser     user
508
509#
510# HashConnectionCache: If running in daemon mode, this is the max # of
511# concurrent connections that will be supported. NOTE: If you are using
512# HashConcurrentUser, this option is ignored, as all connections are read-
513# write locked instead of mutex locked.
514#
515HashConnectionCache     10
516
517
518# --- ExtLookup ---
519
520# ExtLookup: Perform various external lookup functions depending on user-
521# defined variables. ExtLookup can either be set to 'on' or 'off'. The
522# behavior of such lookups are defined by the use of ExtLookupMode, which
523# can be set to 'verify', 'map' and 'strict'.
524#
525#  verify   Will cause dspam to validate the user, prior to
526#           creating the user entry in the system.
527#
528#  map      Will cause dspam to try to map the user address
529#           to a certain unique identifier.
530#
531#  strict   Will cause dspam to enforce both 'verify' and 'map'.
532#
533# ExtLookupDriver will set the engine behind the lookups. For now the only
534# supported mechanisms are 'ldap' and 'program'. The first will make dspam
535# talk directly to the configured LDAP server. The second will prefrom the
536# various lookup functions by running a certain binary program or executable
537# script. The program MUST be a binary executable or a script with a well
538# defined interpreter in its first line ( #!/path/to/interpreter ). There
539# are plans to support TLS/SSL connections to backend databases.
540#
541#ExtLookup              on                              # Turns on/off external lookup
542#ExtLookupMode          strict                          # available modes are 'verify', 'map' and 'strict'.
543                                                        # 'strict' enforces both verify and map
544#ExtLookupDriver        ldap                            # Currently only ldap and program are supported.
545                                                        # There are plans to support both MySQL and Postgres.
546#ExtLookupServer        ldap.example.org                # Can either be a database hostname or the full path to
547                                                        # an executable lookup program and its arguments.
548#ExtLookupPort          389                             # Desired port when connecting to the lookup database.
549#ExtLookupDB            "ou=Users,dc=domain,dc=com"     # Can either be an LDAP search base or a database name (TODO).
550#ExtLookupQuery         "(&(objectClass=qmailUser)(|(mail=%u)(mailAlternateAddress=%u)))"       # Can either be an LDAP search filter or an SQL query (TODO)
551#ExtLookupLDAPAttribute "mail"                          # Attribute to be used when ExtLookupDriver is 'ldap'
552                                                        # and ExtLookupMode 'map' or 'strict'
553#ExtLookupLDAPScope     sub                             # Can be set to 'base', 'sub' or 'one'. Only used when ExtLookupDriver is 'ldap'.
554#ExtLookupLDAPVersion   3                               # Sets the LDAP protocol version (1, 2 or 3)
555#ExtLookupLogin         "cn=admin,dc=domain,dc=com"     # Login to be used when connecting to any direct database backend.
556#ExtLookupPassword      itsasecret                      # Password to use with ExtLookupLogin.
557#ExtLookupCrypto        tls                             # Sets the use of TLS on backend communication (only compatible with LDAPv3)
558
559
560# --- Profiles ---
561
562#
563# You can specify multiple storage profiles, and specify the server to
564# use on the commandline with --profile. For example:
565#
566#Profile DECAlpha
567#MySQLServer.DECAlpha   10.0.0.1
568#MySQLPort.DECAlpha     3306
569#MySQLUser.DECAlpha     dspam
570#MySQLPass.DECAlpha     changeme
571#MySQLDb.DECAlpha       dspam
572#MySQLCompress.DECAlpha true
573#MySQLReconnect.DECAlpha        true
574#
575#Profile Sun420R
576#MySQLServer.Sun420R    10.0.0.2
577#MySQLPort.Sun420R      3306
578#MySQLUser.Sun420R      dspam
579#MySQLPass.Sun420R      changeme
580#MySQLDb.Sun420R        dspam
581#MySQLCompress.Sun420R  false
582#MySQLReconnect.Sun420R true
583#
584#DefaultProfile DECAlpha
585
586#
587# If you're using storage profiles, you can set failovers for each profile.
588# Of course, if you'll be failing over to another database, that database
589# must have the same information as the first. If you're using a global
590# database with no training, this should be relatively simple. If you're
591# configuring per-user data, however, you'll need to set up some type of
592# replication between databases.
593#
594#Failover.DECAlpha      SUN420R
595#Failover.Sun420R       DECAlpha
596
597# If the storage fails, the agent will follow each profile's failover up to
598# a maximum number of failover attempts. This should be set to a maximum of
599# the number of profiles you have, otherwise the agent could loop and try
600# the same profile multiple times (unless this is your desired behavior).
601#
602#FailoverAttempts       1
603
604#
605# Ignored headers: If DSPAM is behind other tools which may add a header to
606# incoming emails, it may be beneficial to ignore these headers - especially
607# if they are coming from another spam filter. If you are _not_ using one of
608# these tools, however, leaving the appropriate headers commented out will
609# allow DSPAM to use them as telltale signs of forged email.
610#
611#IgnoreHeader X-Spam-Status
612#IgnoreHeader X-Spam-Scanned
613#IgnoreHeader X-Virus-Scanner-Result
614
615#
616# Lookup: Perform lookups on streamlined blackhole list servers (see
617# http://www.nuclearelephant.com/projects/sbl/). The streamlined blacklist
618# server is machine-automated, unsupervised blacklisting system designed to
619# provide real-time and highly accurate blacklisting based on network spread.
620# When performing a lookup, DSPAM will automatically learn the inbound message
621# as spam if the source IP is listed. Until an official public RABL server is
622# available, this feature is only useful if you are running your own
623# streamlined blackhole list server for internal reporting among multiple mail
624# servers. Provide the name of the lookup zone below to use.
625#
626# This function performs standard reverse-octet.domain lookups, and while it
627# will function with many RBLs, it's strongly discouraged to use those
628# maintained by humans as they're often inaccurate and could hurt filter
629# learning and accuracy.
630#
631#Lookup         "sbl.example.org"
632
633#
634# RBLInoculate: If you want to inoculate the user from RBL'd messages it would
635# have otherwise missed, set this to on.
636#
637#RBLInoculate   off
638
639#
640# Notifications: Enable the sending of notification emails to users (first
641# message, quarantine full, etc.)
642#
643Notifications   off
644
645# TxtDirectory: the directory that holds the templates for notification
646# messages (see Notifications) and tagging (see tagSpam/tagNonspam).
647#
648#TxtDirectory @dspam_home@/txt
649
650#
651# QuarantineWarnSize: You may specify a size when DSPAM should send a "Quarantine
652# Full" message to each user. This is only working if you enable notifications
653# (see above). Value is in bytes. Default is 2097152 -> 2MB.
654#
655#QuarantineWarnSize 2097152
656
657#
658# Purge configuration: Set dspam_clean purge default options, if not otherwise
659# specified on the commandline
660#
661PurgeSignatures 14      # Stale signatures
662PurgeNeutral    90      # Tokens with neutralish probabilities
663PurgeUnused     90      # Unused tokens
664PurgeHapaxes    30      # Tokens with less than 5 hits (hapaxes)
665PurgeHits1S     15      # Tokens with only 1 spam hit
666PurgeHits1I     15      # Tokens with only 1 innocent hit
667
668#
669# Purge configuration for SQL-based installations using purge.sql
670#
671#PurgeSignature off     # Specified in purge.sql
672#PurgeNeutral   90
673#PurgeUnused    off     # Specified in purge.sql
674#PurgeHapaxes   off     # Specified in purge.sql
675#PurgeHits1S    off     # Specified in purge.sql
676#PurgeHits1I    off     # Specified in purge.sql
677
678#
679# Local Mail Exchangers: Used for source address tracking, tells DSPAM which
680# mail exchangers are local and therefore should be ignored in the Received:
681# header when tracking the source of an email. Note: you should use the address
682# of the host as appears between brackets [ ] in the Received header.
683# By default DSPAM is considering the following IPs always as LocalMX:
684#       10.0.0.0/8      - Private IP addresses (RFC 1918)
685#       127.0.0.0/8     - Localhost Loopback Address (RFC 1700)
686#       169.254.0.0/16  - Zeroconf / APIPA (RFC 3330)
687#       172.16.0.0/12   - Private IP addresses (RFC 1918)
688#       192.168.0.0/16  - Private IP addresses (RFC 1918)
689#
690LocalMX 127.0.0.1
691
692#
693# Logging: Disabling logging for users will make usage graphs unavailable to
694# them. Disabling system logging will make admin graphs unavailable.
695#
696SystemLog       on
697UserLog         on
698
699#
700# TrainPristine: for systems where the original message remains server side
701# and can therefore be presented in pristine format for retraining. This option
702# will cause DSPAM to cease all writing of signatures and DSPAM headers to the
703# message, and deliver the message in as pristine format as possible. This mode
704# REQUIRES that the original message in its pristine format (as of delivery)
705# be presented for retraining, as in the case of webmail, imap, or other
706# applications where the message is actually kept server-side during reading,
707# and is preserved. DO NOT use this switch unless the original message can be
708# presented for retraining with the ORIGINAL HEADERS and NO MODIFICATIONS.
709#
710# NOTE: You can't use this setting with dspam_trian; if you're going to use it,
711#       wait until after you train any corpora.
712#
713#TrainPristine on
714
715#
716# Opt: in or out; determines DSPAM's default filtering behavior. If this value
717# is set to in, users must opt-in to filtering by dropping a .dspam file in
718# /var/dspam/opt-in/user.dspam (or if you have homedirs configured, a .dspam
719# folder in their home directory).  The default is opt-out, which means all
720# users will be filtered unless a .nodspam file is dropped in
721# /var/dspam/opt-out/user.nodspam
722#
723Opt out
724
725#
726# TrackSources: specify which (if any) source addresses to track and report
727# them to syslog (mail.info). This is useful if you're running a firewall or
728# blacklist and would like to use this information. Spam reporting also drops
729# RABL blacklist files (see http://www.nuclearelephant.com/projects/rabl/).
730#
731#TrackSources spam nonspam virus
732
733#
734# ParseToHeaders: In lieu of setting up individual aliases for each user,
735# DSPAM can be configured to automatically parse the To: address for spam and
736# false positive forwards. From there, it can be configured to either set the
737# DSPAM user based on the username specified in the header and/or change the
738# training class and source accordingly. The options below can be used to
739# customize most common types of header parsing behavior to avoid the need for
740# multiple aliases, or if using LMTP, aliases entirely..
741#
742# ParseToHeader: Parse the To: headers of an incoming message. This must be
743#                set to 'on' to use either of the following features.
744#
745# ChangeModeOnParse: Automatically change the class (to spam or innocent)
746#   depending on whether spam- or notspam- was specified, and change the source
747#   to 'error'. This is convenient if you're not using aliases at all, but
748#   are delivering via LMTP.
749#
750# ChangeUserOnParse: Automatically change the username to match that specified
751#   in the To: header. For example, spam-bob@example.org will set the username
752#   to bob, ignoring any --user passed in. This may not always be desirable if
753#   you are using virtual email addresses as usernames. Options:
754#     on or user        take the portion before the @ sign only
755#     full              take everything after the initial {spam,notspam}-.
756#
757#ParseToHeaders on
758#ChangeModeOnParse on
759#ChangeUserOnParse on
760
761#
762# Broken MTA Options: Some MTAs don't support the proper functionality
763# necessary. In these cases you can activate certain features in DSPAM to
764# compensate. 'returnCodes' causes DSPAM to return an exit code of 99 if
765# the message is spam, 0 if not, or a negative code if an error has occured.
766# Specifying 'case' causes DSPAM to force the input usernames to lowercase.
767# Specifying 'lineStripping' causes DSPAM to strip ^M's from messages passed
768# in.
769#
770#Broken returnCodes
771#Broken case
772#Broken lineStripping
773
774#
775# MaxMessageSize: You may specify a maximum message size for DSPAM to process.
776# If the message is larger than the maximum size, it will be delivered
777# without processing. Value is in bytes.
778#
779#MaxMessageSize 4194304
780
781# --- ClamAV ---
782
783#
784# Virus Checking: If you are running clamd, DSPAM can perform stream-based
785# virus checking using TCP. Uncomment the values below to enable virus
786# checking.
787#
788# ClamAVResponse: reject (reject or drop the message with a permanent failure)
789#                 accept (accept the message and quietly drop the message)
790#                 spam   (treat as spam and quarantine/tag/whatever)
791#
792#ClamAVPort             3310
793#ClamAVHost             127.0.0.1
794#ClamAVResponse         accept
795
796# --- CLIENT / SERVER ---
797
798#
799# Daemonized Server: If you are running DSPAM as a daemonized server using
800# --daemon, the following parameters will override the default. Use the
801# ServerPass option to set up accounts for each client machine. The DSPAM
802# server will process and deliver the message based on the parameters
803# specified. If you want the client machine to perform delivery, use
804# the --stdout option in conjunction with a local setup.
805#
806# ServerHost: Not enabling ServerHost will bind DSPAM server to all available
807# interfaces.
808#
809#ServerHost             127.0.0.1
810#ServerPort             24
811#ServerQueueSize        32
812#ServerPID              /var/run/dspam.pid
813
814#
815# ServerMode specifies the type of LMTP server to start. This can be one of:
816#     dspam: DSPAM-proprietary DLMTP server, for communicating with dspamc
817#  standard: Standard LMTP server, for communicating with Postfix or other MTA
818#      auto: Speak both DLMTP and LMTP; auto-detect by ServerPass.IDENT
819#
820#ServerMode dspam
821
822# If supporting DLMTP (dspam) mode, dspam clients will require authentication
823# as they will be passing in parameters. The idents below will be used to
824# determine which clients will be speaking DLMTP, so if you will be using
825# both LMTP and DLMTP from the same host, be sure to use something other
826# than the server's hostname below (which will be sent by the MTA during a
827# standard LMTP LHLO).
828#
829#ServerPass.Relay1      "secret"
830#ServerPass.Relay2      "password"
831
832# If supporting standard LMTP mode, server parameters will need to be specified
833# here, as they will not be passed in by the mail server. The ServerIdent
834# specifies the 250 response code ident sent back to connecting clients and
835# should be set to the hostname of your server, or an alias.
836#
837# NOTE: If you specify --user in ServerParameters, the RCPT TO will be
838#       used only for delivery, and not set as the active user for processing.
839#
840#ServerParameters       "--deliver=innocent -d %u"
841#ServerIdent            "localhost.localdomain"
842
843# If you wish to use a local domain socket instead of a TCP socket, uncomment
844# the following. It is strongly recommended you use local domain sockets if
845# you are running the client and server on the same machine, as it eliminates
846# much of the bandwidth overhead.
847#
848#ServerDomainSocketPath "/tmp/dspam.sock"
849
850#
851# Client Mode: If you are running DSPAM in client/server mode, uncomment and
852# set these variables. A ClientHost beginning with a / will be treated as
853# a domain socket.
854#
855#ClientHost     /tmp/dspam.sock
856#ClientIdent    "secret@Relay1"
857#
858#ClientHost     127.0.0.1
859#ClientPort     24
860#ClientIdent    "secret@Relay1"
861
862# --- RABL ---
863
864# RABLQueue: Touch files in the RABL queue
865# If you are a reporting streamlined blackhole list participant, you can
866# touch ip addresses within the directory the rabl_client process is watching.
867#
868#RABLQueue      /var/spool/rabl
869
870# ---  ---
871
872# DataSource: If you are using any type of data source that does not include
873# email-like headers (such as documents), uncomment the line below. This
874# will cause the entire input to be treated like a message "body"
875#
876#DataSource document
877
878# ProcessorWordFrequency: By default, words are only counted once per message.
879# If you are classifying large documents, however, you may wish to count once
880# per occurrence instead.
881#
882#ProcessorWordFrequency occurrence
883
884# ProcessorURLContext: By default, a URL context is generated for URLs, which
885# records their tokens as separate from words found in documents. To use
886# URL tokens in the same context as words, turn this feature off.
887#
888ProcessorURLContext on
889
890# ProcessorBias: Bias causes the filter to lean more toward 'innocent', and
891# usually greatly reduces false positives. It is the default behavior of
892# most Bayesian filters (including dspam).
893#
894# NOTE: You probably DONT want this if you're using Markovian Weighting, unless
895# you are paranoid about false positives.
896#
897ProcessorBias on
898
899# StripRcptDomain: Cut the domain (including the at sign) from recipients.
900# This is particularly useful if the recipient name is equal to real user
901# accounts as recipients with domains tend to cause permission issues with
902# dspam-web.
903#
904StripRcptDomain off
905
906# GroupConfig: The configuration file for groups. See the README file
907# for details on how to enable users to combine their training data to
908# get better results.
909GroupConfig @dspam_home@/group
910
911# --- Split Configuration File Support ---
912
913# Include a directory with configuration items.
914#Include /etc/dspam/dspam.d/
915
916# ---  ---
917
918## EOF
Note: See TracBrowser for help on using the repository browser.