0
|
1 .\" Copyright (c) 2008 by Rhyolite Software, LLC |
|
2 .\" |
|
3 .\" This agreement is not applicable to any entity which sells anti-spam |
|
4 .\" solutions to others or provides an anti-spam solution as part of a |
|
5 .\" security solution sold to other entities, or to a private network |
|
6 .\" which employs the DCC or uses data provided by operation of the DCC |
|
7 .\" but does not provide corresponding data to other users. |
|
8 .\" |
|
9 .\" Permission to use, copy, modify, and distribute this software without |
|
10 .\" changes for any purpose with or without fee is hereby granted, provided |
|
11 .\" that the above copyright notice and this permission notice appear in all |
|
12 .\" copies and any distributed versions or copies are either unchanged |
|
13 .\" or not called anything similar to "DCC" or "Distributed Checksum |
|
14 .\" Clearinghouse". |
|
15 .\" |
|
16 .\" Parties not eligible to receive a license under this agreement can |
|
17 .\" obtain a commercial license to use DCC by contacting Rhyolite Software |
|
18 .\" at sales@rhyolite.com. |
|
19 .\" |
|
20 .\" A commercial license would be for Distributed Checksum and Reputation |
|
21 .\" Clearinghouse software. That software includes additional features. This |
|
22 .\" free license for Distributed ChecksumClearinghouse Software does not in any |
|
23 .\" way grant permision to use Distributed Checksum and Reputation Clearinghouse |
|
24 .\" software |
|
25 .\" |
|
26 .\" THE SOFTWARE IS PROVIDED "AS IS" AND RHYOLITE SOFTWARE, LLC DISCLAIMS ALL |
|
27 .\" WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES |
|
28 .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL RHYOLITE SOFTWARE, LLC |
|
29 .\" BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES |
|
30 .\" OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, |
|
31 .\" WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, |
|
32 .\" ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS |
|
33 .\" SOFTWARE. |
|
34 .\" |
|
35 .\" Rhyolite Software DCC 1.3.103-1.143 $Revision$ |
|
36 .\" |
|
37 .Dd February 26, 2009 |
|
38 .ds volume-ds-DCC Distributed Checksum Clearinghouse |
|
39 .Dt dccd 8 DCC |
|
40 .Os " " |
|
41 .Sh NAME |
|
42 .Nm dccd |
|
43 .Nd Distributed Checksum Clearinghouse Daemon |
|
44 .Sh SYNOPSIS |
|
45 .Bk -words |
|
46 .Nm dccd |
|
47 .Op Fl 64dVbfFQ |
|
48 .Fl i Ar server-ID |
|
49 .Op Fl n Ar brand |
|
50 .Op Fl h Ar homedir |
|
51 .Fl I Xo |
|
52 .Sm off |
|
53 .Op Ar host-ID |
|
54 .Op Ar ,user |
|
55 .Sm on |
|
56 .Xc |
|
57 .br |
|
58 .Oo |
|
59 .Fl a Xo |
|
60 .Sm off |
|
61 .Op Ar server-addr |
|
62 .Op Ar ,server-port |
|
63 .Xc |
|
64 .Sm on |
|
65 .Oc |
|
66 .Op Fl q Ar qsize |
|
67 .br |
|
68 .Oo |
|
69 .Fl G Xo |
|
70 .Sm off |
|
71 .Op Ar on, |
|
72 .Op Ar weak-body, |
|
73 .Op Ar weak-IP, |
|
74 .Op Ar embargo |
|
75 .Op Ar ,window |
|
76 .Op Ar ,white |
|
77 .Xc |
|
78 .Sm on |
|
79 .Oc |
|
80 .br |
|
81 .Oo |
|
82 .Fl W Xo |
|
83 .Sm off |
|
84 .Op Ar rate |
|
85 .Op Ar ,chg |
|
86 .Op Ar ,dbsize |
|
87 .Sm on |
|
88 .Xc |
|
89 .Oc |
|
90 .Oo |
|
91 .Fl K Xo |
|
92 .Sm off |
|
93 .Op Ar no- |
|
94 .Ar type |
|
95 .Sm on |
|
96 .Xc |
|
97 .Oc |
|
98 .Op Fl T Ar tracemode |
|
99 .Op Fl u Ar anon-delay Ns Op Ar *inflate |
|
100 .Op Fl C Ar dbclean |
|
101 .Op Fl L Ar ltype,facility.level |
|
102 .br |
|
103 .Oo |
|
104 .Fl R Xo |
|
105 .Sm off |
|
106 .Op Ar RL_SUB , |
|
107 .Op Ar RL_ANON , |
|
108 .Op Ar RL_ALL_ANON , |
|
109 .Op Ar RL_BUGS |
|
110 .Xc |
|
111 .Sm on |
|
112 .Oc |
|
113 .Ek |
|
114 .Sh DESCRIPTION |
|
115 .Nm Dccd |
|
116 receives reports of checksums related to mail received by DCC clients |
|
117 and queries about the total number of reports of particular checksums. |
|
118 A DCC server never receives |
|
119 mail, address, headers, or other information from clients, but only |
|
120 cryptographically secure checksums of such information. |
|
121 A DCC server cannot determine the text or other information that corresponds |
|
122 to the checksums it receives. |
|
123 It only acts as a clearinghouse of total counts of checksums |
|
124 computed by clients. |
|
125 .Pp |
|
126 Each DCC server or close cluster of DCC servers is identified by a numeric |
|
127 .Ar server-ID . |
|
128 Each DCC client is identified by a |
|
129 .Ar client-ID , |
|
130 either explicitly listed in the |
|
131 .Pa ids |
|
132 file or |
|
133 the special anonymous client-ID. |
|
134 Many computers are expected to share a single |
|
135 .Ar client-ID . |
|
136 A |
|
137 .Ar server-ID |
|
138 is less than 32768 while a |
|
139 .Ar client-ID |
|
140 is between 32768 and 16777215. |
|
141 DCC server-IDs need be known only to DCC servers and the people running |
|
142 them. |
|
143 The passwords associated with DCC server-IDs should be protected, |
|
144 because DCC servers listen to commands authenticated with server-IDs |
|
145 and their associated passwords. |
|
146 Each client that does not use the anonymous ID must know the client-ID |
|
147 and password used by each of its servers. |
|
148 A single client computer can use different passwords with different |
|
149 server computers. |
|
150 See the |
|
151 .Pa ids |
|
152 file. |
|
153 .Pp |
|
154 A whitelist of known good (or bad) sources of email prevents |
|
155 legitimate mailing lists from being seen as unsolicited bulk email |
|
156 by DCC clients. |
|
157 The whitelist used by a DCC server is built into |
|
158 the database when old entries are removed by |
|
159 .Xr dbclean 8 . |
|
160 Each DCC client has its own, local whitelist, and in general, |
|
161 whitelists work better in DCC clients than servers. |
|
162 .Pp |
|
163 The effectiveness of a Distributed Checksum Clearinghouse |
|
164 increases as the number of subscribers increases. |
|
165 Flooding reports of checksums among DCC servers increases |
|
166 the effective number of subscribers to each server. |
|
167 Each |
|
168 .Nm |
|
169 daemon tries to maintain TCP/IP connections to the other servers |
|
170 listed in the |
|
171 .Pa flod |
|
172 file, and send them reports containing checksums with total |
|
173 counts exceeding thresholds. |
|
174 Changes in the |
|
175 .Pa flod |
|
176 file are noticed automatically within minutes. |
|
177 .Pp |
|
178 Controls on report flooding are specified in the |
|
179 .Pa flod |
|
180 file. |
|
181 Each line specifies a hostname and port number to which reports |
|
182 should be flooded, |
|
183 a server-ID to identify and authenticate the output stream, |
|
184 a server-ID to identify and authenticate an input stream from the |
|
185 same server, |
|
186 and flags with each ID. |
|
187 The ability to delete reports of checksums is handy, but could |
|
188 be abused. |
|
189 If |
|
190 .Ar del |
|
191 is not present among the |
|
192 .Ar in-opts |
|
193 options for the incoming ID, |
|
194 incoming delete requests are logged and then ignored. |
|
195 Floods from DCC "brands" that count only mail to |
|
196 spam traps and whose servers use the |
|
197 .Fl Q |
|
198 option to count extremely bulk mail |
|
199 should be marked with |
|
200 .Ar traps . |
|
201 They can be seen as counting millions of targets, so the |
|
202 .Ar traps |
|
203 flag on their |
|
204 .Pa flod |
|
205 file entry changes their incoming flooded reports counts to |
|
206 .Em many. |
|
207 .Pp |
|
208 .Nm Dccd |
|
209 automatically checks its |
|
210 .Pa flod |
|
211 and |
|
212 .Pa ids |
|
213 files periodically. |
|
214 .Xr Cdcc 8 |
|
215 has the commands |
|
216 .Ic new ids |
|
217 and |
|
218 .Ic flood check |
|
219 to tell |
|
220 .Nm |
|
221 to check those two files immediately. |
|
222 Both files are also checked for changes after the SIGHUP signal. |
|
223 .Ss OPTIONS |
|
224 The following options are available: |
|
225 .Bl -tag -width 3n |
|
226 .It Fl 6 |
|
227 enable IPv6. |
|
228 The default is equivalent to |
|
229 .Fl 4 . |
|
230 See also the IPv4 and IPv6 options in the |
|
231 .Pa flod |
|
232 file description below and the |
|
233 .Em IPv6 on |
|
234 .Xr cdcc 8 |
|
235 command. |
|
236 .It Fl 4 |
|
237 disable IPv6. |
|
238 See also |
|
239 .Fl 6 . |
|
240 .It Fl d |
|
241 enables debugging output. |
|
242 Additional |
|
243 .Fl d |
|
244 options increase the number of messages. |
|
245 .It Fl V |
|
246 displays the version of the DCC server daemon. |
|
247 .It Fl b |
|
248 causes the server to not detach itself from the controlling tty |
|
249 or put itself into the background. |
|
250 .It Fl F |
|
251 uses write() instead of mmap() in some cases to modify the DCC database. |
|
252 It is the default on Solaris. |
|
253 .It Fl f |
|
254 turns off |
|
255 .Fl F . |
|
256 .It Fl Q |
|
257 causes the server to treat reports of checksums as queries |
|
258 except from DCC clients marked trusted in the |
|
259 .Pa ids |
|
260 file with |
|
261 .Ar rpt-ok . |
|
262 See |
|
263 .Fl u |
|
264 to turn off access by anonymous or unauthenticated clients |
|
265 .It Fl i Ar server-ID |
|
266 specifies the ID of this DCC server. |
|
267 Each server identifies itself as responsible for checksums |
|
268 that it forwards to other servers. |
|
269 .It Fl n Ar brand |
|
270 is an arbitrary string of letters and numbers that |
|
271 identifies the organization running the DCC server. |
|
272 The brand is required, and appears in the SMTP |
|
273 .Em X-DCC |
|
274 headers generated by the DCC. |
|
275 .It Fl h Ar homedir |
|
276 overrides the default DCC home directory, |
|
277 .Pa @prefix@ . |
|
278 .It Fl I Xo |
|
279 .Sm off |
|
280 .Op Ar host-ID |
|
281 .Op Ar ,user |
|
282 .Sm on |
|
283 .Xc |
|
284 changes the server's globally unique identity for flooding |
|
285 from the default value |
|
286 consisting of the first 16 characters of the host name. |
|
287 or changes the UID and GID of the process |
|
288 .Ar Host-ID |
|
289 is a string of up to 16 characters that replaces the first |
|
290 16 characters of the system's hostname in assertions |
|
291 of the server-ID that are flooded to peers. |
|
292 .Ar User |
|
293 must be valid user name. |
|
294 .It Fl a Xo |
|
295 .Sm off |
|
296 .Op Ar server-addr |
|
297 .Op Ar ,server-port |
|
298 .Sm on |
|
299 .Xc |
|
300 adds an hostname or IP address to the list of local IP addresses |
|
301 that the server answers. |
|
302 Multiple |
|
303 .Fl a |
|
304 options can be used to specify a subset of the available network |
|
305 interfaces or to use more than one port number. |
|
306 The default without any |
|
307 .Fl a |
|
308 options is to listen on all local IP addresses. |
|
309 It can be useful to list some of the IP addresses of |
|
310 multi-homed hosts to deal with firewalls. |
|
311 By default |
|
312 .Ar server-port |
|
313 is 6277 for DCC servers and 6276 for Greylist servers. |
|
314 It is the UDP port at which DCC |
|
315 requests are received and the TCP port for incoming floods of reports. |
|
316 .Pp |
|
317 If |
|
318 .Ar server-addr |
|
319 is absent |
|
320 and if the |
|
321 .Xr getifaddrs 8 |
|
322 function is supported, |
|
323 separate UDP sockets are bound to each configured network interface so |
|
324 that each DCC clients receives replies from the |
|
325 IP addresses to which corresponding request are sent. |
|
326 If |
|
327 .Nm |
|
328 is started before all network interfaces are turned on or |
|
329 there are interfaces that are turned on and off or change their addresses |
|
330 such as PPP interfaces, |
|
331 then the special string |
|
332 .Ar @ |
|
333 should be used to tell |
|
334 .Nm |
|
335 to bind to an IN_ADDRANY UDP socket. |
|
336 .Pp |
|
337 Outgoing TCP connections to flood checksum reports to other DCC servers |
|
338 used the IP address of a single |
|
339 .Fl a |
|
340 option, |
|
341 but only if there is single option that is not localhost. |
|
342 See also the |
|
343 .Pa flod |
|
344 file. |
|
345 .It Fl q Ar qsize |
|
346 specifies the maximum size of the queue of requests from anonymous or |
|
347 unauthenticated clients. |
|
348 The default value is the maximum DCC RTT in seconds times 200 or 1000. |
|
349 .It Fl G Xo |
|
350 .Sm off |
|
351 .Op Ar on, |
|
352 .Op Ar weak-body, |
|
353 .Op Ar weak-IP, |
|
354 .Op Ar embargo |
|
355 .Op Ar ,window |
|
356 .Op Ar ,white |
|
357 .Xc |
|
358 .Sm on |
|
359 changes |
|
360 .Nm |
|
361 to a Greylist server for |
|
362 .Xr dccm 8 |
|
363 or |
|
364 .Xr dccifd 8 . |
|
365 Greylisting consists of temporarily rejecting or embargoing mail from |
|
366 unfamiliar combinations of SMTP client IP address, SMTP envelope sender, |
|
367 and SMTP envelope recipient. |
|
368 If the SMTP client persists for |
|
369 .Ar embargo seconds |
|
370 and so is probably not an open proxy, worm-infected personal computer, |
|
371 or other transient source of spam, the triple of |
|
372 .Em (IP\ address,sender,recipient) |
|
373 is added to a database similar to the usual DCC database. |
|
374 If the SMTP client does not try again after |
|
375 .Ar embargo |
|
376 seconds and before |
|
377 .Ar window |
|
378 seconds after the first attempt, |
|
379 the triple is forgotten. |
|
380 If the SMTP client persists past the embargo, |
|
381 the triple is added to the database and becomes familiar |
|
382 and the message is accepted. |
|
383 Familiar triples are remembered for |
|
384 .Ar white |
|
385 seconds after the last accepted mail message. |
|
386 The triple is forgotten if it is ever associated with unsolicited bulk email. |
|
387 .Pp |
|
388 All three durations can be a number of minutes, hours, days, or |
|
389 weeks followed by |
|
390 .Ar MINUTES , |
|
391 .Ar M , |
|
392 .Ar HOURS , |
|
393 .Ar H , |
|
394 .Ar DAYS , |
|
395 .Ar D , |
|
396 .Ar WEEKS |
|
397 or |
|
398 .Ar W . |
|
399 The default is |
|
400 .Fl G Ar 270seconds,7days,63days . |
|
401 The first duration or the |
|
402 .Ar embargo |
|
403 should be longer than open proxies can linger retransmitting. |
|
404 The second |
|
405 .Ar window |
|
406 time should be as long as legitimate mail servers persist in retransmitting |
|
407 to recognize embargoed messages whose retransmissions were not |
|
408 received because of network or other problems. |
|
409 The |
|
410 .Ar white |
|
411 time should be long enough to recognize and not embargo messages from |
|
412 regular senders. |
|
413 .Pp |
|
414 Usually the DCC greylist system requires that an almost |
|
415 identical copy of the message be retransmitted during the |
|
416 .Ar embargo . |
|
417 If |
|
418 .Ar weak-body |
|
419 is present, |
|
420 any message with the same triple of sender IP address, sender mail |
|
421 address, and target mail address ends the embargo, |
|
422 even if the body of the message differs. |
|
423 .Pp |
|
424 If |
|
425 .Ar weak-IP |
|
426 is present, |
|
427 all mail from an SMTP client at an IP address is accept |
|
428 after any message from the same IP address has been accepted. |
|
429 .Pp |
|
430 Unlike DCC checksums, the contents of |
|
431 greylist databases are private and do not benefit from broad sharing. |
|
432 However, large installations can use more two or more greylist servers |
|
433 flooding triples among themselves. |
|
434 Flooding among greylist servers is controlled by the |
|
435 .Pa grey_flod |
|
436 file. |
|
437 .Pp |
|
438 All greylist cooperating or flooding greylist servers |
|
439 .Em must |
|
440 use the same |
|
441 .Fl G |
|
442 values. |
|
443 .Pp |
|
444 Clients of greylist servers cannot be anonymous and must have |
|
445 client-IDs and passwords assigned in the |
|
446 .Pa ids |
|
447 file. |
|
448 This implies that |
|
449 .Xr cdcc |
|
450 commands directed to greylist servers must specify the server-ID. |
|
451 .Pp |
|
452 White- and blacklists are honored by the DCC clients. |
|
453 whitelisted messages are embargoed or checked with a greylist server. |
|
454 The greylist triples of blacklisted messages, messages whose DCC counts make |
|
455 them spam, and other messages known to be spam are sent to a greylist |
|
456 server to be removed from the greylist database and cause an embargo |
|
457 on the next messages with those triples. |
|
458 .Pp |
|
459 Messages whose checksums match greylist server whitelists |
|
460 are not embargoed and the checksums of their triples are not |
|
461 added to the greylist database. |
|
462 .Pp |
|
463 The target counts of embargoed messages are reported to the DCC network |
|
464 to improve the detection of bulk mail. |
|
465 .It Fl W Xo |
|
466 .Sm off |
|
467 .Op Ar rate |
|
468 .Op Ar ,chg |
|
469 .Op Ar ,dbsize |
|
470 .Sm on |
|
471 .Xc |
|
472 controls quick database cleaning. |
|
473 If the database is larger than |
|
474 .Ar dbsize , |
|
475 it seems that the database has not recently and is not about to be cleaned, |
|
476 .Nm |
|
477 is receiving fewer than |
|
478 .Ar rate |
|
479 requests per second, |
|
480 and if telling DCC clients that the database is about to be cleaned |
|
481 reduces that rate by |
|
482 .Ar chg Ns %, |
|
483 then |
|
484 .Nm |
|
485 starts |
|
486 .Xr dbclean 8 |
|
487 for a quick database cleaning. |
|
488 The cleaning is abandoned if it takes too long. |
|
489 The default values are equivalent to |
|
490 .Bk -words |
|
491 .Fl W Ar 1.0,40.0,RSS |
|
492 where |
|
493 .Ar RSS |
|
494 is the maximum dccd resident set |
|
495 displayed the system log by |
|
496 .Fl d |
|
497 when |
|
498 .Nm starts . |
|
499 .Ek |
|
500 .It Fl K Xo |
|
501 .Sm off |
|
502 .Op Ar no- |
|
503 .Ar type |
|
504 .Sm on |
|
505 .Xc |
|
506 marks checksums of |
|
507 .Ar type |
|
508 (not) be kept |
|
509 or counted in the database unless they appear in the whitelist. |
|
510 Explicit settings add to or remove from the initial contents of the list, |
|
511 which is equivalent to |
|
512 .Fl K Ar Body |
|
513 .Fl K Ar Fuz1 |
|
514 .Fl K Ar Fuz2 . |
|
515 .It Fl T Ar tracemode |
|
516 causes the server to trace or record some operations. |
|
517 .Ar tracemode |
|
518 must be one of the following: |
|
519 .Bl -tag -width FLOOD2 -offset 2n -compact |
|
520 .It Ar ADMN |
|
521 administrative requests from the control program, |
|
522 .Xr cdcc 8 |
|
523 .It Ar ANON |
|
524 errors by anonymous clients |
|
525 .It Ar CLNT |
|
526 errors by authenticated clients |
|
527 .It Ar RLIM |
|
528 rate-limited messages |
|
529 .It Ar QUERY |
|
530 all queries and reports |
|
531 .It Ar RIDC |
|
532 some messages concerning the report-ID cache that is used |
|
533 to detect duplicate reports from clients |
|
534 .It Ar FLOOD |
|
535 messages about inter-server flooding connections |
|
536 .It Ar FLOOD2 |
|
537 messages about flooded reports |
|
538 .It Ar IDS |
|
539 unknown server-IDs in flooded reports |
|
540 .It Ar BL |
|
541 requests from clients in the |
|
542 .Pa blacklist |
|
543 file. |
|
544 .It Ar DB |
|
545 odd database events including long chains of duplicate checksums |
|
546 .It Ar WLIST |
|
547 reports of whitelisted checksums from authenticated, not anonymous DCC clients |
|
548 .El |
|
549 The default is |
|
550 .Ar ANON CLNT . |
|
551 .It Fl u Ar anon-delay Ns Op Ar *inflate |
|
552 changes the number of milliseconds anonymous or unauthenticated clients |
|
553 must wait for answers to their queries and reports. |
|
554 The purpose of this delay is to discourage large anonymous clients. |
|
555 The |
|
556 .Ar anon-delay |
|
557 is multiplied by 1 plus the number of recent anonymous requests from |
|
558 an IP address divided by the |
|
559 .Ar inflate |
|
560 value. |
|
561 .Pp |
|
562 The string |
|
563 .Ar FOREVER |
|
564 turns off all anonymous or unauthenticated access not only |
|
565 for checksum queries and reports but also |
|
566 .Xr cdcc 8 |
|
567 .Ic stats |
|
568 requests. |
|
569 A missing value for |
|
570 .Ar inflate |
|
571 turns off inflation. |
|
572 .Pp |
|
573 The default value is |
|
574 .Ar 50,none , |
|
575 except when |
|
576 .Fl G |
|
577 is used in which case |
|
578 .Ar FOREVER |
|
579 is assumed and required. |
|
580 .It Fl C Ar dbclean |
|
581 changes the default name or path of the program used to rebuild |
|
582 the hash table when it becomes too full. |
|
583 The default value is |
|
584 .Pa @libexecdir@/dbclean |
|
585 in the |
|
586 .Pa @libexecdir@ |
|
587 directory. |
|
588 The value can include arguments as in |
|
589 .Ar -C '$DCC_LIBEXEC/dbclean -F' . |
|
590 .Pp |
|
591 Dbclean |
|
592 .Em should not |
|
593 be run by |
|
594 .Nm |
|
595 except in emergencies such as database corruption or hash table overflow. |
|
596 .Xr Dbclean 8 |
|
597 should be run daily with the @libexecdir@/cron-dccd cron script |
|
598 .It Fl L Ar ltype,facility.level |
|
599 specifies how messages should be logged. |
|
600 .Ar Ltype |
|
601 must be |
|
602 .Ar error , |
|
603 .Ar info , |
|
604 or |
|
605 .Ar off |
|
606 to indicate which of the two types of messages are being controlled or |
|
607 to turn off all |
|
608 .Xr syslog 3 |
|
609 messages from |
|
610 .Nm . |
|
611 .Ar Level |
|
612 must be a |
|
613 .Xr syslog 3 |
|
614 level among |
|
615 .Ar EMERG , |
|
616 .Ar ALERT , |
|
617 .Ar CRIT , ERR , |
|
618 .Ar WARNING , |
|
619 .Ar NOTICE , |
|
620 .Ar INFO , |
|
621 and |
|
622 .Ar DEBUG . |
|
623 .Ar Facility |
|
624 must be among |
|
625 .Ar AUTH , |
|
626 .Ar AUTHPRIV , |
|
627 .Ar CRON , |
|
628 .Ar DAEMON , |
|
629 .Ar FTP , |
|
630 .Ar KERN , |
|
631 .Ar LPR , |
|
632 .Ar MAIL , |
|
633 .Ar NEWS , |
|
634 .Ar USER , |
|
635 .Ar UUCP , |
|
636 and |
|
637 .Ar LOCAL0 |
|
638 through |
|
639 .Ar LOCAL7 . |
|
640 The default is equivalent to |
|
641 .Dl Fl L Ar info,MAIL.NOTICE Fl L Ar error,MAIL.ERR |
|
642 .It Fl R Xo |
|
643 .Sm off |
|
644 .Op Ar RL_SUB , |
|
645 .Op Ar RL_ANON , |
|
646 .Op Ar RL_ALL_ANON , |
|
647 .Op Ar RL_BUGS |
|
648 .Xc |
|
649 .Sm on |
|
650 sets one or more of the four rate-limits. |
|
651 .Ar RL_SUB |
|
652 limits the number of DCC transactions per second from subscribers |
|
653 or DCC clients with known client-IDs and passwords. |
|
654 This limit applies to each IP address independently. |
|
655 .Pp |
|
656 .Ar RL_ANON |
|
657 limits the number of DCC transactions per second from anonymous DCC clients. |
|
658 This limit applies to each IP address independently. |
|
659 It is better to use |
|
660 .Fl u |
|
661 than to change this value to exclude anonymous clients. |
|
662 .Pp |
|
663 .Ar RL_ALL_ANON |
|
664 limits the number of DCC transactions per second from all anonymous DCC clients. |
|
665 This limit applies to all anonymous clients as a group, regardless of their |
|
666 IP addresses. |
|
667 .Pp |
|
668 .Ar RL_BUGS |
|
669 limits the number of complaints or error messages per second for all |
|
670 anonymous DCC clients as a group as well as for each DCC client by IP |
|
671 address. |
|
672 .Pp |
|
673 The default is equivalent to |
|
674 .Fl R Ar 400,50,600,0.1 |
|
675 .El |
|
676 .Sh FILES |
|
677 .Bl -hang -width @prefix@ -compact |
|
678 .It Pa @prefix@ |
|
679 is the DCC home directory containing data and control files. |
|
680 .It Pa dcc_db |
|
681 is the database of mail checksums. |
|
682 .It Pa dcc_db.hash |
|
683 is the mail checksum database hash table. |
|
684 .It Pa grey_db |
|
685 is the database of greylist checksums. |
|
686 .It Pa grey_db.hash |
|
687 is the greylist database hash table. |
|
688 .It Pa flod |
|
689 contains lines controlling DCC flooding of the form: |
|
690 .br |
|
691 .Bd -ragged -compact |
|
692 .Ar host Ns Xo |
|
693 .Sm off |
|
694 .Op Ar ,rport |
|
695 .Op Ar ;src Op Ar ,lport |
|
696 .Sm on |
|
697 .Xc |
|
698 .Ar rem-ID |
|
699 .Op Ar passwd-ID Op Ar o-opt Op Ar i-opt |
|
700 .Ed |
|
701 where absent optional values are signaled with "-" and |
|
702 .Bl -hang -offset 1n -width 2n -compact |
|
703 .It Ar host |
|
704 is the IP address or name of a DCC server and |
|
705 .Ar rport |
|
706 is the name or number of the TCP port used by the remote server. |
|
707 .It Ar src |
|
708 and |
|
709 .Ar lport |
|
710 are the IP address or host name and TCP port |
|
711 from which the outgoing flooding connection should come. |
|
712 Incoming flooding connections must arrive at an address and port |
|
713 specified with |
|
714 .Fl a . |
|
715 .It Ar rem-id |
|
716 is the server-ID of the remote DCC server. |
|
717 .It Ar passwd-ID |
|
718 is a server-ID that is not assigned to a server, |
|
719 but whose first password is used to sign |
|
720 checksum reports sent to the remote system. |
|
721 Either of its passwords are required with incoming reports. |
|
722 If it is absent or "-", outgoing floods are signed with the first |
|
723 password of the local server in the |
|
724 .Pa ids |
|
725 file and incoming floods must be signed with either password of |
|
726 the remote server-ID. |
|
727 .It Ar i-opt Li and Ar o-opt |
|
728 are comma separated lists of |
|
729 .Bl -hang -offset 1n -width 2n -compact |
|
730 .It Ar off |
|
731 turns off flooding to the remote or local system. |
|
732 .It Ar traps |
|
733 indicates that |
|
734 the remote sending or local receiving system has only spam traps. |
|
735 .It Ar no-del |
|
736 says checksum delete requests are refused by the remote or local server |
|
737 and so turns off sending or accepting delete requests, respectively. |
|
738 By default, delete requests are sent to remote servers and accepted |
|
739 in incoming floods if and only if the peers are exchanging DCC reputations. |
|
740 .It Ar del |
|
741 says delete requests are accepted by the remote or local server. |
|
742 .It Ar no-log-del |
|
743 turns off logging of incoming requests to delete checksums. |
|
744 .It Ar passive |
|
745 is used to tell a server outside a firewall to expect a peer |
|
746 inside to create both of the pair |
|
747 of input and output TCP connections used for flooding. |
|
748 The peer inside the firewall should use |
|
749 .Ar SOCKS |
|
750 or |
|
751 .Ar NAT |
|
752 on its |
|
753 .Pa flod |
|
754 file entry for this system. |
|
755 .It Ar SOCKS |
|
756 is used to tell a server inside a firewall that it should create both |
|
757 of the TCP connections used for flooding and that SOCKS protocol should |
|
758 be used. |
|
759 The peer outside the firewall should use |
|
760 .Ar passive |
|
761 on its |
|
762 .Pa flod |
|
763 file entry for this system. |
|
764 .It Ar NAT |
|
765 differs from |
|
766 .Ar SOCKS |
|
767 only by not using the SOCKS protocol. |
|
768 .It Ar ID1->ID2 |
|
769 converts server-ID |
|
770 .Ar ID1 |
|
771 in flooded reports to server-ID |
|
772 .Ar ID2 . |
|
773 Either |
|
774 .Ar ID1 |
|
775 or |
|
776 .Ar ID2 |
|
777 may be the string |
|
778 .Sq self |
|
779 to specify the server's own ID. |
|
780 .Ar ID1 |
|
781 can be the string |
|
782 .Sq all |
|
783 to specify all server-IDs |
|
784 or a pair of server-IDs separated by a dash to specify an inclusive range. |
|
785 .Ar ID2 |
|
786 can be the string |
|
787 .Sq ok |
|
788 to send or receive reports without translation |
|
789 or the string |
|
790 .Sq reject |
|
791 to not send outgoing or refuse incoming reports. |
|
792 Only the first matching conversion is applied. |
|
793 For example, when |
|
794 .Sq self->ok,all->reject |
|
795 is applied to a locally generated report, |
|
796 the first conversion is applied and the second is ignored. |
|
797 .It Ar leaf=path-len |
|
798 does not send reports with paths longer than |
|
799 .Ar path-len |
|
800 server-IDs. |
|
801 .It Ar IPv4 |
|
802 overrides a |
|
803 .Fl 6 |
|
804 setting for this flooding peer. |
|
805 .It Ar IPv6 |
|
806 overrides the |
|
807 default or an explicit |
|
808 .Fl 4 |
|
809 setting. |
|
810 .It Ar vers |
|
811 specifies the version of the DCC flooding protocol used by the remote |
|
812 DCC server with a string such as |
|
813 .Sq version2 . |
|
814 .It Ar trace |
|
815 sends information about a single peer like the |
|
816 .Xr cdcc 8 |
|
817 command |
|
818 .Ic trace FLOOD on |
|
819 does for all peers. |
|
820 .It Ar trace2 |
|
821 sends information about individual flooded reports like the |
|
822 .Xr cdcc 8 |
|
823 command |
|
824 .Ic trace FLOOD2 on |
|
825 does for all peers. |
|
826 .El |
|
827 .El |
|
828 .It Pa grey_flod |
|
829 is the equivalent of |
|
830 .Pa flod |
|
831 used by |
|
832 .Nm |
|
833 when it is a greylist server. |
|
834 .It Pa flod.map |
|
835 is an automatically generated file in which |
|
836 .Nm |
|
837 records its progress sending or flooding reports to DCC peers. |
|
838 .It Pa grey_flod.map |
|
839 is the equivalent of |
|
840 .Pa flod.map used by |
|
841 .Nm |
|
842 when it is a greylist server. |
|
843 .It Pa ids |
|
844 contains the IDs and passwords known by the DCC server. |
|
845 An |
|
846 .Pa ids |
|
847 file that can be read by others cannot be used. |
|
848 It contains blank lines, comments starting |
|
849 with "#" and lines of the form: |
|
850 .Bd -ragged -compact -offset indent |
|
851 .Sm off |
|
852 .Ar id |
|
853 .Op Ar ,rpt-ok |
|
854 .Op Ar ,delay=ms Ns Op Ar *inflate |
|
855 .Sm on |
|
856 .Ar passwd1 Op Ar passwd2 |
|
857 .Ed |
|
858 where |
|
859 .Bl -hang -offset 1n -width 2n -compact |
|
860 .It Ar id |
|
861 is a DCC |
|
862 .Ar client-ID |
|
863 or |
|
864 .Ar server-ID . |
|
865 .It Ar Rpt-ok |
|
866 if present overrides |
|
867 .Fl Q |
|
868 by saying that this client is trusted |
|
869 to report only checksums for unsolicited bulk mail. |
|
870 .It Ar delay=ms Ns Op Ar *inflate |
|
871 delays answers to systems using the client |
|
872 .Ar id . |
|
873 The |
|
874 .Ar delay |
|
875 in milliseconds is multiplied by 1 plus the number of recent requests from |
|
876 an IP address using |
|
877 .Ar id |
|
878 divided by the |
|
879 .Ar inflate |
|
880 value. |
|
881 See |
|
882 .Fl u . |
|
883 .It Ar passwd1 |
|
884 is the password currently used by clients with identifier |
|
885 .Ar id . |
|
886 It is a 1 to 32 character string that does not contain |
|
887 blank, tab, newline or carriage return characters. |
|
888 .It Ar passwd2 |
|
889 is the optional next password that those clients will use. |
|
890 A DCC server accepts either password if both are present in the file. |
|
891 .El |
|
892 Both passwords can be absent if the entry not used except to tell |
|
893 .Nm |
|
894 that server-IDs in the flooded reports are valid. |
|
895 The string |
|
896 .Em unknown |
|
897 is equivalent to the null string. |
|
898 .It Pa whitelist |
|
899 contains the DCC server whitelist. |
|
900 It is not used directly but is loaded into the database when |
|
901 .Xr dbclean 8 |
|
902 is run. |
|
903 .It Pa grey_whitelist |
|
904 contains the greylist server whitelist. |
|
905 It is not used directly but is loaded into the database when |
|
906 .Xr dbclean 8 |
|
907 is run with |
|
908 .Fl G . |
|
909 .It Pa blacklist |
|
910 if present, contains a list of IP addresses and blocks of IP addresses |
|
911 DCC clients that are ignored. |
|
912 Each line in the file should be blank, a comment starting with '#', |
|
913 or an IP address or block of IP addresses in the form |
|
914 .Bd -ragged -compact -offset indent |
|
915 .Op Ar trace, |
|
916 .Op Ar ok, |
|
917 .Op Ar bad |
|
918 .No xxx.xxx.xxx.xxx Ns Op /yy |
|
919 .Ed |
|
920 Changes to the file are automatically noticed and acted upon within |
|
921 a few minutes. |
|
922 Addresses or blocks of addresses can be preceded with |
|
923 .Em ok |
|
924 to "punch holes" |
|
925 in blacklisted blocks or with |
|
926 .Em trace |
|
927 to log activity. |
|
928 This mechanism is intended for no more than a few dozen blocks of addresses. |
|
929 .It Pa dccd_clients |
|
930 contains client IP addresses and activity counts. |
|
931 .It Pa grey_clients |
|
932 contains greylist client IP addresses and activity counts. |
|
933 .El |
|
934 .Sh EXAMPLES |
|
935 .Nm |
|
936 is usually started with other system daemons with something like the |
|
937 script |
|
938 .Pa @libexecdir@/rcDCC . |
|
939 That scripts uses values in @prefix@/dcc_conf to start the server. |
|
940 With the argument |
|
941 .Em stop , |
|
942 .Pa @libexecdir@/rcDCC |
|
943 can be used to stop the daemon. |
|
944 .Pp |
|
945 The database grows too large unless old reports are removed. |
|
946 .Xr dbclean 8 |
|
947 should be run daily with the @libexecdir@/cron-dccd cron script |
|
948 .Sh SEE ALSO |
|
949 .Xr cdcc 8 , |
|
950 .Xr dcc 8 , |
|
951 .Xr dbclean 8 , |
|
952 .Xr dblist 8 , |
|
953 .Xr dccifd 8 , |
|
954 .Xr dccm 8 , |
|
955 .Xr dccproc 8 . |
|
956 .Xr dccsight 8 , |
|
957 .Sh HISTORY |
|
958 .Nm |
|
959 is based on an idea from Paul Vixie. |
|
960 It was designed and written at Rhyolite Software, starting in 2000. |
|
961 This document describes version 1.3.103. |