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 | # |
---|
8 | Home @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 | # |
---|
29 | StorageDriver @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 | # |
---|
48 | TrustedDeliveryAgent "@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 | # |
---|
135 | OnFail 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 | # |
---|
144 | Trust root |
---|
145 | Trust dspam |
---|
146 | Trust apache |
---|
147 | Trust mail |
---|
148 | Trust mailnull |
---|
149 | Trust smmsp |
---|
150 | Trust 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 | # |
---|
189 | TrainingMode 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 | # |
---|
196 | TestConditionalTraining 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 |
---|
204 | Feature 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 |
---|
234 | Algorithm 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 | # |
---|
258 | Tokenizer 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 |
---|
274 | PValue bcr |
---|
275 | |
---|
276 | # |
---|
277 | # WebStats: Enable this if you are using the CGI, which writes .stats files |
---|
278 | WebStats 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 | # |
---|
292 | Preference "trainingMode=TEFT" # { TOE | TUM | TEFT | NOTRAIN } -> default:teft |
---|
293 | Preference "spamAction=quarantine" # { quarantine | tag | deliver } -> default:quarantine |
---|
294 | Preference "spamSubject=[SPAM]" # { string } -> default:[SPAM] |
---|
295 | Preference "statisticalSedation=5" # { 0 - 10 } -> default:0 |
---|
296 | Preference "enableBNR=on" # { on | off } -> default:off |
---|
297 | Preference "enableWhitelist=on" # { on | off } -> default:on |
---|
298 | Preference "signatureLocation=message" # { message | headers } -> default:message |
---|
299 | Preference "tagSpam=off" # { on | off } |
---|
300 | Preference "tagNonspam=off" # { on | off } |
---|
301 | Preference "showFactors=off" # { on | off } -> default:off |
---|
302 | Preference "optIn=off" # { on | off } |
---|
303 | Preference "optOut=off" # { on | off } |
---|
304 | Preference "whitelistThreshold=10" # { Integer } -> default:10 |
---|
305 | Preference "makeCorpus=off" # { on | off } -> default:off |
---|
306 | Preference "storeFragments=off" # { on | off } -> default:off |
---|
307 | Preference "localStore=" # { on | off } -> default:username |
---|
308 | Preference "processorBias=on" # { on | off } -> default:on |
---|
309 | Preference "fallbackDomain=off" # { on | off } -> default:off |
---|
310 | Preference "trainPristine=off" # { on | off } -> default:off |
---|
311 | Preference "optOutClamAV=off" # { on | off } -> default:off |
---|
312 | Preference "ignoreRBLLookups=off" # { on | off } -> default:off |
---|
313 | Preference "RBLInoculate=off" # { on | off } -> default:off |
---|
314 | Preference "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 | # |
---|
321 | AllowOverride enableBNR |
---|
322 | AllowOverride enableWhitelist |
---|
323 | AllowOverride fallbackDomain |
---|
324 | AllowOverride ignoreGroups |
---|
325 | AllowOverride ignoreRBLLookups |
---|
326 | AllowOverride localStore |
---|
327 | AllowOverride makeCorpus |
---|
328 | AllowOverride optIn |
---|
329 | AllowOverride optOut |
---|
330 | AllowOverride optOutClamAV |
---|
331 | AllowOverride processorBias |
---|
332 | AllowOverride RBLInoculate |
---|
333 | AllowOverride showFactors |
---|
334 | AllowOverride signatureLocation |
---|
335 | AllowOverride spamAction |
---|
336 | AllowOverride spamSubject |
---|
337 | AllowOverride statisticalSedation |
---|
338 | AllowOverride storeFragments |
---|
339 | AllowOverride tagNonspam |
---|
340 | AllowOverride tagSpam |
---|
341 | AllowOverride trainPristine |
---|
342 | AllowOverride trainingMode |
---|
343 | AllowOverride whitelistThreshold |
---|
344 | AllowOverride dailyQuarantineSummary |
---|
345 | AllowOverride 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 | # |
---|
457 | HashRecMax 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 | # |
---|
465 | HashAutoExtend 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 | # |
---|
471 | HashMaxExtents 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 | # |
---|
479 | HashExtentSize 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 | # |
---|
490 | HashPctIncrease 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 | # |
---|
499 | HashMaxSeek 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 | # |
---|
515 | HashConnectionCache 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 | # |
---|
643 | Notifications 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 | # |
---|
661 | PurgeSignatures 14 # Stale signatures |
---|
662 | PurgeNeutral 90 # Tokens with neutralish probabilities |
---|
663 | PurgeUnused 90 # Unused tokens |
---|
664 | PurgeHapaxes 30 # Tokens with less than 5 hits (hapaxes) |
---|
665 | PurgeHits1S 15 # Tokens with only 1 spam hit |
---|
666 | PurgeHits1I 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 | # |
---|
690 | LocalMX 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 | # |
---|
696 | SystemLog on |
---|
697 | UserLog 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 | # |
---|
723 | Opt 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 | # |
---|
888 | ProcessorURLContext 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 | # |
---|
897 | ProcessorBias 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 | # |
---|
904 | StripRcptDomain 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. |
---|
909 | GroupConfig @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 |
---|