~ubuntu-branches/ubuntu/precise/dspam/precise

« back to all changes in this revision

Viewing changes to src/dspam.conf.in

  • Committer: Bazaar Package Importer
  • Author(s): Julien Valroff, Julien Valroff, Thomas Preud'homme
  • Date: 2011-05-08 13:43:52 UTC
  • mfrom: (1.2.1 upstream) (8.2.2 experimental)
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: james.westby@ubuntu.com-20110508134352-dxjx9m6tx1cbzlhq
Tags: 3.9.1~rc1+git20110419.29261fb+dfsg-1
[ Julien Valroff ]
* New git snapshot
* Install all dspam_* tools setgid so that they can be used by standard
  users
* Add symbols file for libdspam7
* Upload to unstable

[ Thomas Preud'homme ]
* Fix permissions on dspam_stats and missing opt-{in,out} directories
  (Closes: #394443)

Show diffs side-by-side

added added

removed removed

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