source: npl/mailserver/dspam/dspam.conf

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: 20.8 KB
RevLine 
[c5c522c]1## dspam.conf -- DSPAM configuration file
2##
3
4#
5# DSPAM Home: Specifies the base directory to be used for DSPAM storage
6#
7Home /home/system/dspam
8
9#
10# Trusted Delivery Agent: Specifies the local delivery agent DSPAM should call
11# when delivering mail as a trusted user. Use %u to specify the user DSPAM is
12# processing mail for. It is generally a good idea to allow the MTA to specify
13# the pass-through arguments at run-time, but they may also be specified here.
14#
15# Most operating system defaults:
16#TrustedDeliveryAgent "/usr/bin/procmail"       # Linux
17#TrustedDeliveryAgent "/usr/bin/mail"           # Solaris
18#TrustedDeliveryAgent "/usr/libexec/mail.local" # FreeBSD
19#TrustedDeliveryAgent "/usr/bin/procmail"       # Cygwin
20#
21# Other popular configurations:
22#TrustedDeliveryAgent "/usr/cyrus/bin/deliver"  # Cyrus
23#TrustedDeliveryAgent "/bin/maildrop"           # Maildrop
24#TrustedDeliveryAgent "/usr/local/sbin/exim -oMr spam-scanned" # Exim
25#
26TrustedDeliveryAgent "/usr/cyrus/bin/deliver -a %u %u"
27
28#
29# Untrusted Delivery Agent: Specifies the local delivery agent and arguments
30# DSPAM should use when delivering mail and running in untrusted user mode.
31# Because DSPAM will not allow pass-through arguments to be specified to
32# untrusted users, all arguments should be specified here. Use %u to specify
33# the user DSPAM is processing mail for. This configuration parameter is only
34# necessary if you plan on allowing untrusted processing.
35#
36#UntrustedDeliveryAgent "/usr/bin/procmail -d %u"
37
38#
39# SMTP or LMTP Delivery: Alternatively, you may wish to use SMTP or LMTP
40# delivery to deliver your message to the mail server. You will need to
41# configure with --enable-daemon to use host delivery, however you do not need
42# to operate in daemon mode. Specify an IP address or UNIX path to a domain
43# socket below as a host.
44#
45#DeliveryHost        127.0.0.1
46#DeliveryPort        24
47#DeliveryIdent       localhost
48#DeliveryProto       LMTP
49
50#
51# Quarantine Agent: DSPAM's default behavior is to quarantine all mail it
52# thinks is spam. If you wish to override this behavior, you may specify
53# a quarantine agent which will be called with all messages DSPAM thinks is
54# spam. Use %u to specify the user DSPAM is processing mail for.
55#
56QuarantineAgent "/usr/cyrus/bin/deliver -a %u -m Spam %u"
57
58#
59# OnFail: What to do if local delivery or quarantine should fail. If set
60# to "unlearn", DSPAM will unlearn the message prior to exiting with an
61# un successful return code. The default option, "error" will not unlearn
62# the message but return the appropriate error code. The unlearn option
63# is use-ful on some systems where local delivery failures will cause the
64# message to be requeued for delivery, and could result in the message
65# being processed multiple times. During a very large failure, however,
66# this could cause a significant load increase.
67#
68OnFail error
69
70# Trusted Users: Only the users specified below will be allowed to perform
71# administrative functions in DSPAM such as setting the active user and
72# accessing tools. All other users attempting to run DSPAM will be restricted;
73# their uids will be forced to match the active username and they will not be
74# able to specify delivery agent privileges or use tools.
75#
76Trust root
77Trust mail
78Trust mailnull
79Trust smmsp
80Trust daemon
81#Trust nobody
82#Trust majordomo
83
84#
85# Debugging: Enables debugging for some or all users. IMPORTANT: DSPAM must
86# be compiled with debug support in order to use this option. DSPAM should
87# never be running in production with debug active unless you are
88# troubleshooting problems.
89#
90# DebugOpt: One or more of: process, classify, spam, fp, inoculation, corpus
91#   process     standard message processing
92#   classify    message classification using --classify
93#   spam        error correction of missed spam
94#   fp          error correction of false positives
95#   inoculation message inoculations (source=inoculation)
96#   corpus      corpusfed messages (source=corpus)
97#
98#Debug *
99#Debug bob bill
100#
101#DebugOpt process spam fp
102
103#
104# Training Mode: The default training mode to use for all operations, when
105# one has not been specified on the commandline or in the user's preferences.
106# Acceptable values are: toe, tum, teft, notrain
107#
108TrainingMode teft
109
110#
111# Features: Specify features to activate by default; can also be specified
112# on the commandline. See the documentation for a list of available features.
113# If _any_ features are specified on the commandline, these are ignored.
114#
115Feature whitelist
116Feature noise
117
118# Training Buffer: The training buffer waters down statistics during training.
119# It is designed to prevent false positives, but can also dramatically reduce
120# dspam's catch rate during initial training. This can be a number from 0
121# (no buffering) to 10 (maximum buffering). If you are paranoid about false
122# positives, you should probably enable this option.
123#
124Feature tb=4
125
126
127# Algorithms: Specify the statistical algorithms to use, overriding any
128# defaults configured in the build. The options are:
129#    naive       Naive-Bayesian (All Tokens)
130#    graham      Graham-Bayesian ("A Plan for Spam")
131#    burton      Burton-Bayesian (SpamProbe)
132#    robinson    Robinson's Geometric Mean Test (Obsolete)
133#    chi-square  Fisher-Robinson's Chi-Square Algorithm
134#
135# You may have multiple algorithms active simultaneously, but it is strongly
136# recommended that you group Bayesian algorithms with other Bayesian
137# algorithms, and any use of Chi-Square remain exclusive.
138#
139# NOTE: For standard "CRM114" Markovian weighting, use 'naive', or consider
140#       using 'burton' for slightly better accuracy
141#
142# Don't mess with this unless you know what you're doing
143#
144Algorithm graham burton
145
146#
147# Tokenizer: Specify the tokenizer to use. The tokenizer is the piece
148# responsible for parsing the message into individual tokens. Depending on
149# how many resources you are willing to trade off vs. accuracy, you may
150# choose to use a less or more detailed tokenizer:
151#   word    uniGram (single word) tokenizer
152#           Tokenizes message into single individual words/tokens
153#           example: "free" and "viagra"
154#   chain   biGram (chained tokens) tokenizer (default)
155#           Single words + chains adjacent tokens together
156#           example: "free" and "viagra" and "free viagra"
157#   sbph    Sparse Binary Polynomial Hashing tokenizer
158#           Creates sparse token patterns across sliding window of 5-tokens
159#           example: "the quick * fox jumped" and "the * * fox jumped"
160#   osb     Orthogonal Sparse biGram tokenizer
161#           Similar to SBPH, but only uses the biGrams
162#           example: "the * * fox" and "the * * * jumped"
163#
164Tokenizer chain
165
166
167#
168# PValue: Specify the technique used for calculating Probability Values,
169# overriding any defaults configured in the build. These options are:
170#    bcr         Bayesian Chain Rule (Graham's Technique - "A Plan for Spam")
171#    robinson    Robinson's Technique (used in Chi-Square)
172#    markov      Markovian Weighted Technique (for Markovian discrimination)
173#
174# Unlike the "Algorithms" property, you may only have one of these defined.
175# Use of the chi-square algorithm automatically changes this to robinson.
176#
177# Don't mess with this unless you know what you're doing.
178#
179PValue bcr
180
181# WebStats: Enable this if you are using the CGI, which writes .stats files
182WebStats on
183
184
185
186#
187# Preferences: Specify any preferences to set by default, unless otherwise
188# overridden by the user (see next section) or a default.prefs file.
189# If user or default.prefs are found, the user's preferences will override any
190# defaults.
191#
192Preference "spamAction=quarantine"
193Preference "signatureLocation=headers"  # 'message' or 'headers'
194Preference "showFactors=on"
195#Preference "spamAction=tag"
196Preference "spamSubject=[ SPAM ]"
197
198#
199# Overrides: Specifies the user preferences which may override configuration
200# and commandline defaults. Any other preferences supplied by an untrusted user
201# will be ignored.
202#
203AllowOverride enableBNR
204AllowOverride enableWhitelist
205AllowOverride fallbackDomain
206AllowOverride ignoreGroups
207AllowOverride ignoreRBLLookups
208AllowOverride localStore
209AllowOverride makeCorpus
210AllowOverride optIn
211AllowOverride optOut
212AllowOverride optOutClamAV
213AllowOverride processorBias
214AllowOverride RBLInoculate
215AllowOverride showFactors
216AllowOverride signatureLocation
217AllowOverride spamAction
218AllowOverride spamSubject
219AllowOverride statisticalSedation
220AllowOverride storeFragments
221AllowOverride tagNonspam
222AllowOverride tagSpam
223AllowOverride trainPristine
224AllowOverride trainingMode
225AllowOverride whitelistThreshold
226AllowOverride dailyQuarantineSummary
227
228#
229# Storage driver settings: Specific to a particular storage driver. Uncomment
230# the configuration specific to your installation, if applicable.
231#
232MySQLServer     /var/run/mysql/mysql.sock
233#MySQLPort
234MySQLUser               dspamdb
235MySQLPass               %mysql_passwd%
236MySQLDb                 dspamdb
237#MySQLCompress          true
238
239# If you're running DSPAM in client/server (daemon) mode, uncomment the
240# setting below to override the default connection cache size (the number
241# of connections the server pools between all clients). The connection cache
242# represents the maximum number of database connections *available* and should
243# be set based on the maximum number of concurrent connections you're likely
244# to have. Each connection may be used by only one thread at a time, so all
245# other threads _will block_ until another connection becomes available.
246#
247#MySQLConnectionCache   10
248
249#PgSQLServer            127.0.0.1
250#PgSQLPort              5432
251#PgSQLUser              dspam
252#PgSQLPass              changeme
253#PgSQLDb                dspam
254
255# If you're running DSPAM in client/server (daemon) mode, uncomment the
256# setting below to override the default connection cache size (the number
257# of connections the server pools between all clients).
258#
259#PgSQLConnectionCache   3
260
261#OraServer       "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=PROD)))"
262#OraUser         dspam
263#OraPass         changeme
264#OraSchema       dspam
265
266#SQLitePragma   "synchronous = OFF"
267
268#
269# Optionally, you can specify storage profiles, and specify the server to
270# use on the commandline with --profile. For example:
271#
272#Profile DECAlpha
273#MySQLServer.DECAlpha   10.0.0.1
274#MySQLPort.DECAlpha     3306
275#MySQLUser.DECAlpha     dspam
276#MySQLPass.DECAlpha     changeme
277#MySQLDb.DECAlpha       dspam
278#MySQLCompress.DECAlpha true
279#
280#Profile Sun420R
281#MySQLServer.Sun420R    10.0.0.2
282#MySQLPort.Sun420R      3306
283#MySQLUser.Sun420R      dspam
284#MySQLPass.Sun420R      changeme
285#MySQLDb.Sun420R        dspam
286#MySQLCompress.Sun420R  false
287#
288#DefaultProfile DECAlpha
289
290#
291# If you're using storage profiles, you can set failovers for each profile.
292# Of course, if you'll be failing over to another database, that database
293# must have the same information as the first. If you're using a global
294# database with no training, this should be relatively simple. If you're
295# configuring per-user data, however, you'll need to set up some type of
296# replication between databases.
297#
298#Failover.DECAlpha      SUN420R
299#Failover.Sun420R       DECAlpha
300
301# If the storage fails, the agent will follow each profile's failover up to
302# a maximum number of failover attempts. This should be set to a maximum of
303# the number of profiles you have, otherwise the agent could loop and try
304# the same profile multiple times (unless this is your desired behavior).
305#
306#FailoverAttempts       1
307
308#
309# Ignored headers: If DSPAM is behind other tools which may add a header to
310# incoming emails, it may be beneficial to ignore these headers - especially
311# if they are coming from another spam filter. If you are _not_ using one of
312# these tools, however, leaving the appropriate headers commented out will
313# allow DSPAM to use them as telltale signs of forged email.
314#
315#IgnoreHeader X-Spam-Status
316#IgnoreHeader X-Spam-Scanned
317#IgnoreHeader X-Virus-Scanner-Result
318
319#
320# Lookup: Perform lookups on streamlined blackhole list servers (see
321# http://www.nuclearelephant.com/projects/sbl/). The streamlined blacklist
322# server is machine-automated, unsupervised blacklisting system designed to
323# provide real-time and highly accurate blacklisting based on network spread.
324# When performing a lookup, DSPAM will automatically learn the inbound message
325# as spam if the source IP is listed. Until an official public SBL server is
326# available, this feature is only useful if you are running your own
327# streamlined blackhole list server for internal reporting among multiple mail
328# servers. Provide the name of the lookup zone below to use.
329#
330# This function performs standard reverse-octet.domain lookups, and while it
331# will function with many RBLs, it's strongly discouraged to use those
332# maintained by humans as they're often inaccurate and could hurt filter
333# learning and accuracy.
334#
335#Lookup "sbl.yourdomain.com"
336
337#
338# Notifications: Enable the sending of notification emails to users (first
339# message, quarantine full, etc.)
340#
341Notifications   on
342
343#
344# Purge configuration: Set dspam_clean purge default options, if not otherwise
345# specified on the commandline
346#
347PurgeSignatures 14          # Stale signatures
348PurgeNeutral    90          # Tokens with neutralish probabilities
349PurgeUnused     90          # Unused tokens
350PurgeHapaxes    30          # Tokens with less than 5 hits (hapaxes)
351PurgeHits1S     15          # Tokens with only 1 spam hit
352PurgeHits1I     15          # Tokens with only 1 innocent hit
353
354#
355# Purge configuration for SQL-based installations using purge.sql
356#
357#PurgeSignature off # Specified in purge.sql
358#PurgeNeutral   90
359#PurgeUnused    off # Specified in purge.sql
360#PurgeHapaxes   off # Specified in purge.sql
361#PurgeHits1S    off # Specified in purge.sql
362#PurgeHits1I    off # Specified in purge.sql
363
364#
365# Local Mail Exchangers: Used for source address tracking, tells DSPAM which
366# mail exchangers are local and therefore should be ignored in the Received:
367# header when tracking the source of an email. Note: you should use the address
368# of the host as appears between brackets [ ] in the Received header.
369#
370#LocalMX 127.0.0.1
371
372#
373# Logging: Disabling logging for users will make usage graphs unavailable to
374# them. Disabling system logging will make admin graphs unavailable.
375#
376SystemLog on
377UserLog   on
378
379#
380# TrainPristine: for systems where the original message remains server side
381# and can therefore be presented in pristine format for retraining. This option
382# will cause DSPAM to cease all writing of signatures and DSPAM headers to the
383# message, and deliver the message in as pristine format as possible. This mode
384# REQUIRES that the original message in its pristine format (as of delivery)
385# be presented for retraining, as in the case of webmail, imap, or other
386# applications where the message is actually kept server-side during reading,
387# and is preserved. DO NOT use this switch unless the original message can be
388# presented for retraining with the ORIGINAL HEADERS and NO MODIFICATIONS.
389#
390#TrainPristine on
391
392#
393# Opt: in or out; determines DSPAM's default filtering behavior. If this value
394# is set to in, users must opt-in to filtering by dropping a .dspam file in
395# /var/dspam/opt-in/user.dspam (or if you have homedirs configured, a .dspam
396# folder in their home directory).  The default is opt-out, which means all
397# users will be filtered unless a .nodspam file is dropped in
398# /var/dspam/opt-out/user.nodspam
399#
400Opt out
401
402#
403# TrackSources: specify which (if any) source addresses to track and report
404# them to syslog (mail.info). This is useful if you're running a firewall or
405# blacklist and would like to use this information. Spam reporting also drops
406# SBL blacklist files (see http://www.nuclearelephant.com/projects/sbl/).
407#
408#TrackSources spam nonspam
409
410#
411# ParseToHeaders: In lieu of setting up individual aliases for each user,
412# DSPAM can be configured to automatically parse the To: address for spam and
413# false positive forwards. From there, it can be configured to either set the
414# DSPAM user based on the username specified in the header and/or change the
415# training class and source accordingly. The options below can be used to
416# customize most common types of header parsing behavior to avoid the need for
417# multiple aliases, or if using LMTP, aliases entirely..
418#
419# ParseToHeader: Parse the To: headers of an incoming message. This must be
420#                set to 'on' to use either of the following features.
421#
422# ChangeModeOnParse: Automatically change the class (to spam or innocent)
423#   depending on whether spam- or notspam- was specified, and change the source
424#   to 'error'. This is convenient if you're not using aliases at all, but
425#   are delivering via LMTP.
426#
427# ChangeUserOnParse: Automatically change the username to match that specified
428#   in the To: header. For example, spam-bob@domain.tld will set the username
429#   to bob, ignoring any --user passed in. This may not always be desirable if
430#   you are using virtual email addresses as usernames.
431#
432#ParseToHeaders on
433#ChangeModeOnParse on
434#ChangeUserOnParse on
435
436#
437# Broken MTA Options: Some MTAs don't support the proper functionality
438# necessary. In these cases you can activate certain features in DSPAM to
439# compensate. 'returnCodes' causes DSPAM to return an exit code of 99 if
440# the message is spam, 0 if not, or a negative code if an error has occured.
441# Specifying 'case' causes DSPAM to force the input usernames to lowercase.
442# Spceifying 'lineStripping' causes DSPAM to strip ^M's from messages passed
443# in.
444#
445#Broken returnCodes
446#Broken case
447#Broken lineStripping
448
449#
450# MaxMessageSize: You may specify a maximum message size for DSPAM to process.
451# If the message is larger than the maximum size, it will be delivered
452# without processing. Value is in bytes.
453#
454MaxMessageSize 4194304
455
456#
457# Daemonized Server: If you are running DSPAM as a daemonized server using
458# --daemon, the following parameters will override the default. Use the
459# ServerPass option to set up accounts for each client machine. The DSPAM
460# server will process and deliver the message based on the parameters
461# specified. If you want the client machine to perform delivery, use
462# the --stdout option in conjunction with a local setup.
463#
464#ServerPort             24
465ServerQueueSize 32
466ServerPID              /var/run/dspam.pid
467
468#
469# ServerMode specifies the type of LMTP server to start. This can be one of:
470#     dspam: DSPAM-proprietary DLMTP server, for communicating with dspamc
471#  standard: Standard LMTP server, for communicating with Postfix or other MTA
472#      auto: Speak both DLMTP and LMTP; auto-detect by ServerPass.IDENT
473#
474ServerMode dspam
475
476# If supporting DLMTP (dspam) mode, dspam clients will require authentication
477# as they will be passing in parameters. The idents below will be used to
478# determine which clients will be speaking DLMTP, so if you will be using
479# both LMTP and DLMTP from the same host, be sure to use something other
480# than the server's hostname below (which will be sent by the MTA during a
481# standard LMTP LHLO).
482#
483ServerPass.localhost    "qprmnvdi5fpd324tjpe09"
484#ServerPass.Relay2      "password"
485
486# If supporting standard LMTP mode, server parameters will need to be specified
487# here, as they will not be passed in by the mail server. The ServerIdent
488# specifies the 250 response code ident sent back to connecting clients and
489# should be set to the hostname of your server, or an alias.
490#
491# NOTE: If you specify --user in ServerParameters, the RCPT TO will be
492#       used only for delivery, and not set as the active user for processing.
493#
494#ServerParameters       "--deliver=innocent -d %u"
495#ServerIdent            "localhost.localdomain"
496
497# If you wish to use a local domain socket instead of a TCP socket, uncomment
498# the following. It is strongly recommended you use local domain sockets if
499# you are running the client and server on the same machine, as it eliminates
500# much of the bandwidth overhead.
501#
502ServerDomainSocketPath  "/tmp/dspam.sock"
503
504#
505# Client Mode: If you are running DSPAM in client/server mode, uncomment and
506# set these variables. A ClientHost beginning with a / will be treated as
507# a domain socket.
508#
509ClientHost      /tmp/dspam.sock
510ClientIdent     "qprmnvdi5fpd324tjpe09@localhost"
511#
512#ClientHost     127.0.0.1
513#ClientPort     24
514#ClientIdent    "secret@Relay1"
515
516#
517# SBLQueue: Touch files in the SBL queue
518# If you are a reporting streamlined blackhole list participant, you can
519# touch ip addresses within the directory the sbl_client process is watching.
520#
521#RABLQueue      /var/spool/sbl
522
523# ProcessorBias: Bias causes the filter to lean more toward 'innocent', and
524# usually greatly reduces false positives. It is the default behavior of
525# most Bayesian filters (including dspam).
526#
527# NOTE: You probably DONT want this if you're using Markovian Weighting, unless
528# you are paranoid about false positives.
529#
530ProcessorBias off
531
532# TestConditionalTraining: By default, dspam will retrain certain errors
533# until the condition is no longer met. This usually accelerates learning.
534# Some people argue that this can increase the risk of errors, however.
535TestConditionalTraining on
536
537# ProcessorURLContext: By default, a URL context is generated for URLs, which
538# records their tokens as separate from words found in documents. To use
539# URL tokens in the same context as words, turn this feature off.
540#
541ProcessorURLContext on
542
543
544GroupConfig /home/system/dspam/group
Note: See TracBrowser for help on using the repository browser.