Mercurial > notdcc
comparison INSTALL.html.in @ 0:c7f6b056b673
First import of vendor version
author | Peter Gervai <grin@grin.hu> |
---|---|
date | Tue, 10 Mar 2009 13:49:58 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c7f6b056b673 |
---|---|
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> | |
2 <HTML> | |
3 <HEAD> | |
4 <TITLE>DCC Installation</TITLE> | |
5 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> | |
6 <META HTTP-EQUIV="Content-Style-Type" content="text/css"> | |
7 <STYLE type="text/css"> | |
8 <!-- | |
9 BODY {background-color:white; color:black} | |
10 TABLE.centered {margin-left: auto; margin-right: auto; } | |
11 TD {font-size:80%} | |
12 TD.env {font-family:monospace} | |
13 TD.conf {font-family:monospace} | |
14 DL.compat {margin-left:5%; margin-right:10%} | |
15 .small {font-size:smaller} | |
16 SUP {font-size:smallest} | |
17 IMG.logo {width:6em; vertical-align:middle} | |
18 --> | |
19 </STYLE> | |
20 </HEAD> | |
21 | |
22 <BODY> | |
23 <H1>Distributed Checksum Clearinghouse (DCC) Installation</H1> | |
24 | |
25 <P> | |
26 <OL> | |
27 <LI><H3>Fetch the Source and Read the License</H3> | |
28 The DCC source is available at | |
29 <A HREF="http://www.dcc-servers.net/dcc/">dcc-servers.net</A> | |
30 and | |
31 <A HREF="http://www.rhyolite.com/dcc/">Rhyolite Software</A>. | |
32 <P> | |
33 Please <EM>do not</EM> try to use the more than 3 year old modified | |
34 versions of DCC software distributed by some Linux packagers. | |
35 Those versions do not detect bulk mail as well as more recent versions. | |
36 Installations using those old versions also have problems using the | |
37 public DCC servers that often make it necessary to add their IP addresses | |
38 to the blacklist that protects the public DCC servers. | |
39 Even worse, all known Linux redistributions of DCC software have been | |
40 changed in ways that break things, including the | |
41 <A HREF="misc/updatedcc.in">libexec/updatedcc</A> shell script that could | |
42 otherwise be used to fetch, configure, compile, install, and restart | |
43 a current version. | |
44 <P> | |
45 The license on the free source is in the source as well as | |
46 <A HREF="http://www.dcc-servers.net/dcc/dcc-tree/LICENSE">dcc-servers.net</A> | |
47 and | |
48 <A HREF="http://www.rhyolite.com/dcc/dcc-tree/LICENSE">Rhyolite | |
49 Software</A>. | |
50 The free license is intended to cover individuals and organizations | |
51 including Internet service providers using DCC to filter their own mail. | |
52 Organizations selling anti-spam appliances or managed mail services are | |
53 not eligible for the free license. | |
54 | |
55 | |
56 <P><LI><H3>Read the Documentation</H3> | |
57 <P> | |
58 The <A HREF="dcc.html#Installation-Considerations">DCC</A> | |
59 and other man pages describe the features, operating modes, | |
60 required data files, and other characteristics of the DCC. | |
61 Also see the DCC <A HREF=FAQ.html>FAQ</A> | |
62 or list of frequently answered questions. | |
63 | |
64 | |
65 <P><LI><H3><A NAME="step-sendmail">Build Sendmail</A></H3> | |
66 If the DCC-sendmail interface, <A HREF="dccm.html">dccm</A>, is not used, | |
67 then <B>skip</B> to the <A HREF="#step-compile">next step</A>. | |
68 <P> | |
69 Sendmail must have the | |
70 Mail Filter API or Milter enabled. | |
71 Some systems such a FreeBSD 4.6 and newer are shipped with | |
72 Milter enabled and the library installed by default. | |
73 If your system comes with the Milter interface turn on, | |
74 then <B>skip</B> to the <A HREF="#step-compile">next step</A>. | |
75 Otherwise, the Milter interface must be explicitly enabled | |
76 by adding lines like those in | |
77 <A HREF="misc/site.config.m4">misc/site.config.m4</A> | |
78 to your sendmail/devtools/Site/site.config.m4 file or equivalent. | |
79 Then build sendmail as described in the INSTALL file distributed with sendmail. | |
80 You must build <CODE>libmilter</CODE> separately by something like | |
81 <PRE> | |
82 cd libmilter | |
83 sh ./Build | |
84 </PRE> | |
85 <P> | |
86 After sendmail has been rebuilt if necessary it will need to be restarted. | |
87 That should be done after <A HREF="#step-compile">the next step</A> | |
88 after <A HREF="misc/dcc.m4">misc/dcc.m4</A> has been created by the | |
89 <EM>./configure</EM> script. | |
90 | |
91 | |
92 <P><LI><H3><A NAME="step-compile">Configure, Build, and | |
93 Install the DCC Programs</A></H3> | |
94 <P> | |
95 See the installation considerations in the | |
96 <A HREF="dcc.html#Installation-Considerations">DCC man page</A>. | |
97 <P> | |
98 Most DCC files are in a "home directory" such as @prefix@. | |
99 DCC programs such as cdcc and dccproc are run by end | |
100 users and should be installed in a directory such as /usr/local/bin. | |
101 They must also be set-UID to the UID that can change the DCC | |
102 data files. | |
103 DCC programs that do not need to be run by end users | |
104 are installed by default in the libexec subdirectory of the DCC home directory. | |
105 See the <A HREF="#envtbl">table</A> of | |
106 <EM>./configure</EM> script and makefile parameters. | |
107 If necessary, set CFLAGS, LDFLAGS, LIBS or other environment variables | |
108 listed in the <A HREF="#envtbl">table</A>. | |
109 Omit any parameters you don't really need to change and usually use only: | |
110 <PRE> | |
111 ./configure | |
112 make install | |
113 </PRE> | |
114 <P> | |
115 End users installing only <A HREF="dccproc.html">dccproc</A> | |
116 can install it in their private | |
117 <Q>~/bin</Q> directories and use private directories for their DCC | |
118 home directories. | |
119 In this case, the DCC programs that would otherwise need to be set-UID | |
120 need not be. | |
121 <P> | |
122 To build <A HREF="dccproc.html">dccproc</A> | |
123 <A NAME="individual-user">for an individual user</A>, | |
124 use something like | |
125 <PRE> | |
126 ./configure <A HREF="#envtbl--disable-sys-inst">--disable-sys-inst</A> <A HREF="#envtbl--disable-dccm">--disable-dccm</A> <A HREF="#envtbl--homedir">--homedir=$HOME/dccdir</A> <A HREF="#envtbl--bindir">--bindir=$HOME/bin</A> | |
127 make install | |
128 </PRE> | |
129 <P> | |
130 The sendmail interface, <A HREF="dccm.html">dccm</A>, | |
131 must be built with the sendmail source and object tree. | |
132 By default, the makefiles look for a | |
133 native sendmail libraries (e.g. on FreeBSD 4.6), an installed "package" | |
134 (e.g. on FreeBSD), or a directory named sendmail parallel to the DCC | |
135 source and object tree. | |
136 Those who regularly build new versions of sendmail may find it convenient | |
137 to make a symbolic link there to their current sendmail. | |
138 Otherwise configure the dccm makefile with | |
139 <PRE> | |
140 ./configure <A HREF="#envtbl--with-sendmail">--with-sendmail</A>=/some/where/sendmail | |
141 make install | |
142 </PRE> | |
143 If dccm does not build because it cannot find libmilter, | |
144 check that libmilter was compiled with sendmail | |
145 in the <A HREF="#step-sendmail">previous step</A>. | |
146 <P> | |
147 To connect the sendmail Milter interface to <A HREF="dccm.html">dccm</A>, | |
148 copy or "sym-link" <A HREF="misc/dcc.m4">misc/dcc.m4</A> to | |
149 your sendmail/cf/feature directory and | |
150 add <CODE>FEATURE(dcc)</CODE> lines to your sendmail.mc configuration file. | |
151 Then rebuild and reinstall your sendmail.cf file, and restart sendmail. | |
152 | |
153 | |
154 <P><LI><H3>Create Client Configuration Files</H3> | |
155 All DCC configuration files are in the DCC home directory, usually @prefix@. | |
156 See the | |
157 <A HREF="dcc.html#Client-Installation">dcc</A>, | |
158 <A HREF="dccm.html#FILES">dccm</A>, | |
159 <A HREF="dccifd.html#FILES">dccifd</A>, | |
160 and <A HREF="dccproc.html#FILES">dccproc</A> | |
161 man pages | |
162 for the files each needs. | |
163 Example files are in the <A HREF="homedir/">homedir</A> directory in the source. | |
164 | |
165 <UL> | |
166 <LI>Unless run anonymously, DCC clients need client-ID numbers and passwords | |
167 assigned by the operators of the chosen DCC servers in the @prefix@/map file. | |
168 <LI><P>Even if run anonymously, the @prefix@/map file must contain the IP addresses | |
169 of DCC servers. | |
170 If your mail system handles fewer than 100,000 mail messages per day, | |
171 the installation process generates a serviceable @prefix@/map file | |
172 from the included <A HREF="homedir/map.txt">homedir/map.txt</A>. | |
173 That file points to the public DCC servers. | |
174 | |
175 <LI><P>If using remote DCC servers such as the public DCC servers, | |
176 ensure that your firewalls allow outgoing packets to UDP port 6277 | |
177 on distant systems and incoming responses from UDP port 6277. | |
178 There is a | |
179 <A HREF="http://www.dcc-servers.net/dcc/firewall.html">description</A> | |
180 one firewall's configuration. | |
181 | |
182 <LI><P>Your MX servers and mail submission clients should be listed in the main | |
183 <A NAME=whitelist HREF="homedir/whiteclnt">whiteclnt</A> file with lines like: | |
184 <PRE> | |
185 mx ip 10.2.3.4 | |
186 mx ip 10.5.6.0/28 | |
187 mxdcc ip 10.5.6.0/28 | |
188 ok ip 10.7.8.9 | |
189 submit ip 192.168.1.0/24 | |
190 </PRE> | |
191 If those other systems also run DCC clients, use <EM>MXDCC</EM> instead | |
192 of <EM>MX</EM> so that messages will not be reported twice to the DCC network | |
193 and so have higher target counts, | |
194 and appear to be unsolicited bulk mail. | |
195 <P> | |
196 Use <EM>OK</EM> for mail systems that you trust to never send or | |
197 forward unsolicited bulk mail. | |
198 <P> | |
199 Untrusted SMTP clients such as end users with browsers used as | |
200 MUAs (mail user agents) should be listed in the | |
201 <A HREF="homedir/whiteclnt">whiteclnt</A> file with <EM>submit</EM>. | |
202 | |
203 <LI><P>Sources of legitimate bulk mail must be recorded in whitelists. | |
204 Example <A HREF="homedir/whiteclnt">whiteclnt</A>, | |
205 <A HREF="homedir/whitelist">whitelist</A>, and | |
206 <A HREF="homedir/whitecommon">common</A> whitelists are among | |
207 the <A HREF="homedir/">sample configuration files</A> in the homedir directory. | |
208 The format of DCC whitelists is described in the | |
209 <A HREF="dcc.html#White-and-Blacklists">DCC</A> man page. | |
210 | |
211 <LI><P>Put suitable values in the DCC configuration file, | |
212 <A HREF="homedir/dcc_conf.in">@prefix@/dcc_conf</A> for dccm or dccifd. | |
213 The default client values are usually good for a start and often only | |
214 DCCM_REJECT_AT needs to be changed when it is time to reject spam. | |
215 | |
216 <LI><P>Optionally configure DNS blacklist (DNSBL) checks in | |
217 <A HREF="dccm.html#OPTION-B">dccm</A> | |
218 or | |
219 <A HREF="dccifd.html#OPTION-B">dccifd</A> | |
220 by setting DNSBL_ARGS in in the configuration file, | |
221 <A HREF="homedir/dcc_conf.in">dcc_conf</A>, in the home directory. | |
222 | |
223 | |
224 <LI><P>Optionally create per-user directories for logs and whitelists. | |
225 See also the | |
226 <A HREF="cgi-bin/">CGI scripts</A> that allow users to | |
227 maintain their private whitelists | |
228 and monitor their individual logs of rejected mail. | |
229 | |
230 <LI><P>Install a daily or more frequent cron job like | |
231 <A HREF="misc/crontab.in">misc/crontab</A> | |
232 and | |
233 <A HREF="misc/cron-dccd.in">@libexecdir@/cron-dccd</A> | |
234 to prune <A HREF="dccm.html#FILE-logdir">dccm</A> or | |
235 <A HREF="dccifd.html#FILE-logdir">dccifd</A> | |
236 log files and the prune dccd database with | |
237 <A HREF="dbclean.html">dbclean</A>. | |
238 </UL> | |
239 | |
240 <P><LI><H3>Create Server Files and Start the Server</H3> | |
241 <B><A HREF="#step-greylist">Skip</A></B> this and the next step | |
242 if only remote DCC servers will be used. | |
243 You should use your own, local DCC servers if your mail system handles | |
244 more than 100,000 mail messages per day. | |
245 <P> | |
246 It is best to use remote servers until the DCC client, | |
247 dccm, dccifd, or dccproc, is stable. | |
248 Then | |
249 <UL> | |
250 <LI>Put suitable values for dccd | |
251 in the configuration file, | |
252 <A HREF="homedir/dcc_conf.in">dcc_conf</A>. | |
253 Every DCC server requires a unique | |
254 <A HREF="dcc.html#Client-and-Server-IDs">server-ID</A>. | |
255 Obtain a server-ID by contacting Vernon Schryver | |
256 <A HREF="mailto:vjs@rhyolite.com">vjs@rhyolite.com</A> by email | |
257 or via a | |
258 <A HREF="http://www.rhyolite.com/cgi-bin/ct.cgi?sb=DCC+server-ID">web | |
259 form</A>. | |
260 | |
261 <LI><P>Choose a secret password for your server-ID in your | |
262 <A HREF="homedir/ids">@prefix@/ids file</A>. | |
263 This password can be used to control your server remotely. | |
264 | |
265 <LI><P>Start the server with the system by installing | |
266 <A HREF="misc/rcDCC.in">@libexecdir@/rcDCC</A> or an equivalent. | |
267 If it is used unchanged, rcDCC is best installed with a symbolic link | |
268 to automate installing updates. | |
269 The server can be started manually with | |
270 <PRE> | |
271 rcDCC start | |
272 </PRE> | |
273 | |
274 <LI><P>The script | |
275 <A NAME=cleaning HREF="misc/cron-dccd.in">@libexecdir@/cron-dccd</A> | |
276 <EM>must</EM> be used to run | |
277 <A HREF="dbclean.html">dbclean</A> about once a day. | |
278 An entry like <A HREF="misc/crontab.in">misc/crontab</A> can be put into | |
279 the crontab file for the user that runs dccd. | |
280 If you have more than one DCC server, | |
281 stagger the times at which the cron job is run so | |
282 that not all of your servers are simultaneously busy cleaning databases. | |
283 | |
284 <LI><P>Install the shutdown script | |
285 <A HREF="misc/rcDCC.in">@libexecdir@/rcDCC</A> | |
286 to shut down the DCC server as the operating system stops. | |
287 If the DCC server fails to close the database cleanly, | |
288 the database must be cleaned by the server with it starts. | |
289 That takes time. | |
290 | |
291 </UL> | |
292 | |
293 | |
294 | |
295 <P><LI><H3><A NAME="step-flooding">Configure Flooding</A></H3> | |
296 <A HREF="#step-greylist">Skip to the next step</A> | |
297 if only remote DCC servers will be used. | |
298 <P> | |
299 Flooding requires that every server participating in a network of DCC | |
300 servers have a unique server-ID. | |
301 Server-IDs can be obtained by contacting Vernon Schryver | |
302 <A HREF="mailto:vjs@rhyolite.com">vjs@rhyolite.com</A> by email | |
303 or via a | |
304 <A HREF="http://www.rhyolite.com/cgi-bin/ct.cgi?sb=DCC+server-ID">web | |
305 form</A>. | |
306 <P> | |
307 After you have an official server-ID, | |
308 <UL> | |
309 <LI>Obtain the <A HREF="dccd.html#FILE-flod">passwd-ID</A> and its password | |
310 and add them to your <A HREF="homedir/ids">@prefix@/ids file</A>. | |
311 <LI>If necessary adjust your firewalls to allow both incoming TCP connections | |
312 to port 6277 on your DCC server and outgoing TCP connections to port 6277 | |
313 on your flooding peer. | |
314 <LI>Add a line for each flooding peer to | |
315 the <A HREF="dccd.html#FILE-flod">@prefix@/flod</A> file. | |
316 <LI>Wait a few minutes for dccd to notice the change to the file | |
317 and start flooding. | |
318 The <A HREF="cdcc.html#OPERATION-stats">cdcc stats</A>, | |
319 <A HREF="cdcc.html#OPERATION-flood-list">cdcc "id X; flood list"</A> | |
320 and | |
321 <A HREF="dblist.html#OPTION-H">@libexecdir@/dblist -Hv</A> | |
322 commands can be used to monitor the floods of reports of checksums | |
323 of bulk mail. | |
324 </UL> | |
325 <P> | |
326 Flooded reports of bulk email contain timestamps that are used for several | |
327 things including expiring old reports. | |
328 To accurately detect stale incoming reports, | |
329 a DCC server needs a clock that is not too inaccurate. | |
330 For that reason it is good to run an NTP daemon on systems running DCC servers. | |
331 | |
332 <P><LI><H3><A NAME="step-greylist">Configure Greylisting</A></H3> | |
333 <B>Skip</B> to the <A HREF="#step-start-dccm">next step</A> | |
334 if greylisting will not be used. | |
335 Greylist is very effective. | |
336 See this | |
337 <A HREF="http://www.dcc-servers.net/dcc/greylist.html">description</A>. | |
338 <P> | |
339 Larger sites can use more than one greylist server, | |
340 with the greylist servers flooding data just like DCC servers. | |
341 <P> | |
342 To configure greylisting: | |
343 <OL> | |
344 <LI><H4>Assign greylist client- and server-IDs</H4> | |
345 <P>Client-IDs and matching passwords must be used by clients of | |
346 greylist servers such as dccm and dccifd. | |
347 The client-IDs must be in the @prefix@/map file on the client system. | |
348 Greylist client- and server-IDs must be in the | |
349 <A HREF="homedir/ids">@prefix@/ids</A> file on the | |
350 greylist server. | |
351 When a system hosts both DCC and greylist servers, it is convenient | |
352 for clients to use the same client-ID and password for both. | |
353 It is also convenient for a greylist server and a DCC server on a system | |
354 to share a common server-ID and password. | |
355 <P> | |
356 The vast majority of installations, which do not have local DCC servers, | |
357 can use the greylist server-ID generated by the makefiles in the | |
358 <A HREF="homedir/ids">@prefix@/ids</A> file. | |
359 | |
360 <P><LI><H4>Add the greylist server to @prefix@/map</H4> | |
361 <P>If the | |
362 cdcc "<A HREF="cdcc.html#OPERATION-info">info</A>" | |
363 command does not show the correct greylist server, | |
364 add it with something like | |
365 <PRE> | |
366 cdcc "<A HREF="cdcc.html#OPERATION-add">add localhost greylist 32768 secret"</A> | |
367 </PRE> | |
368 The DCC makefile files add a greylist server at localhost or 127.0.0.1 | |
369 to <A HREF="cdcc.html#FILES">@prefix@/map</A> file created for a new | |
370 DCC installation. | |
371 | |
372 <P><LI><H4>Set @prefix@/dcc_conf</H4> | |
373 In most installations, enable a local greylist server by | |
374 installing the script <A HREF="misc/rcDCC.in">@libexecdir@/rcDCC</A> | |
375 with a symbolic link, | |
376 setting <EM>GREY_ENABLE=on</EM> in @prefix@/dcc_conf | |
377 and then running | |
378 <PRE> | |
379 <A HREF="misc/rcDCC.in">@libexecdir@/rcDCC</A> start | |
380 </PRE> | |
381 | |
382 <P>If absolutely necessary, override the greylist | |
383 <A HREF="dccd.html#OPTION-G">embargo, wait, and white</A> values | |
384 in GREY_DCCD_ARGS in @prefix@/dcc_conf. | |
385 Usually simply set GREY_CLIENT_ARGS=on | |
386 | |
387 <P><LI><H4>Set @prefix@/grey_flod</H4> | |
388 <P> | |
389 Sites with more than one greylist server should arrange to flood | |
390 data among them by adding lines to | |
391 <A HREF="dccd.html#FILE-grey_flod">@prefix@/grey_flod</A> files | |
392 in the same format as | |
393 <A HREF="dccd.html#FILE-flod">@prefix@/flod</A> files. | |
394 Flooding among greylist servers uses port 6276 by default, and so that | |
395 port may need to be opened in firewalls. | |
396 | |
397 <P><LI><H4>Set cron job</H4> | |
398 <P> | |
399 Install a daily cron job like | |
400 <A HREF="misc/crontab.in">misc/crontab</A> | |
401 and | |
402 <A HREF="misc/cron-dccd.in">@libexecdir@/cron-dccd</A> | |
403 to clean the database. | |
404 <P> | |
405 | |
406 <P><LI><H4>Whitelist Mail Submission Clients</H4> | |
407 <P> | |
408 Greylisting of local mail systems must be turned off because common | |
409 mail user agents (MUAs) cannot handle temporary rejections. | |
410 One way to turn off greylisting of local client is with <EM>submit</EM> lines | |
411 in the main <A HREF="homedir/whiteclnt">whiteclnt</A> file | |
412 as described <A HREF="#whitelist">above</A>. | |
413 <P> | |
414 An alternative to whitelisting mail submission clients is available with | |
415 <A HREF="dccm.html">dccm</A> and sendmail by using the | |
416 <A HREF="misc/hackmc">misc/hackmc -T</A> | |
417 script to modify sendmail.cf to trust SMTP clients authenticated with | |
418 SMTP-TLS or SMTP-AUTH. | |
419 | |
420 </OL> | |
421 | |
422 | |
423 | |
424 <P><LI><H3><A NAME="step-start-dccm">Start dccm</A></H3> | |
425 If the DCC-sendmail interface, dccm, is not used, | |
426 <B>skip</B> to the <A HREF="#step-start-dccifd">next step</A>. | |
427 <P> | |
428 The DCC sendmail milter interface <A HREF="dccm.html">dccm</A> | |
429 should be started before sendmail. | |
430 That often requires changing an /etc/rc script or configuration file. | |
431 The script <A HREF="misc/rcDCC.in">@libexecdir@/rcDCC</A> | |
432 should be installed, best with a symbolic link. | |
433 The milter daemon can be started manually with | |
434 <PRE> | |
435 rcDCC start | |
436 </PRE> | |
437 | |
438 | |
439 | |
440 <P><LI><H3><A NAME="step-start-dccifd">Start dccifd</A></H3> | |
441 If the general MTA interface, dccifd, is not used, | |
442 <B>skip</B> to the <A HREF="#configure-dccproc">next step</A>. | |
443 If you are using SpamAssassin, then you almost certainly | |
444 should be using dccifd. | |
445 <P> | |
446 The general MTA interface <A HREF="dccifd.html">dccifd</A> | |
447 should usually be started before the mail transfer agent or MTA. | |
448 It should be enabled by setting <EM>DCCIFD_ENABLE=on</EM> | |
449 in <A HREF="homedir/dcc_conf.in">dcc_conf</A>. | |
450 It is also usually necessary to change an /etc/rc script or configuration file | |
451 to start and stop the daemon with the system. | |
452 The script <A HREF="misc/rcDCC.in">@libexecdir@/rcDCC</A> | |
453 should be installed, best with a symbolic link. | |
454 The daemon can be started manually with | |
455 <PRE> | |
456 rcDCC start | |
457 </PRE> | |
458 <P> | |
459 Dccifd can be used as a | |
460 <A HREF="http://www.postfix.org/SMTPD_PROXY_README.html">Postfix Before-Queue | |
461 Content filter</A> | |
462 as described the | |
463 <A HREF="dccifd.html#EXAMPLES">dccifd documentation</A>. | |
464 | |
465 | |
466 <P><LI><H3><A NAME="configure-dccproc">Configure Uses of dccproc</A></H3> | |
467 If dccproc is used with procmail, | |
468 add rules to procmailrc files as described in the | |
469 <A HREF="dccproc.html#EXAMPLES">dccproc man page</A>. | |
470 | |
471 <P><LI><H3>Adjust Rejection Thresholds</H3> | |
472 <P>It is best to only mark mail with X-DCC SMTP headers | |
473 before changing procmail or dccm to reject mail. | |
474 Configure dccm with DCCM_LOG_AT in <A HREF="homedir/dcc_conf.in">dcc_conf</A> | |
475 to log bulk mail with somewhat lower counts. | |
476 | |
477 | |
478 <P><LI><H3>Additional Considerations</H3> | |
479 <P>Some additional mechanisms are available in the DCC client programs. | |
480 They are often unnecessary when | |
481 <A HREF="#step-greylist">greylisting</A> is used. | |
482 <UL> | |
483 <LI><A HREF="dccm.html#OPTION-B">DNS blacklists (DNSBL)</A> | |
484 can reject messages containing "spamvertised" URLs. | |
485 <LI><A HREF="dccm.html#OPTION-t">DCC reputations</A> | |
486 are available in the commercial version of the DCC source. | |
487 </UL> | |
488 | |
489 <P> | |
490 When possible, it is almost always better to use dccifd than dccproc. | |
491 This is certainly true with SpamAssassin. | |
492 | |
493 | |
494 | |
495 <P><LI><H3>Update As Needed</H3> | |
496 <P>New versions released at the | |
497 <A HREF="http://www.dcc-servers.net/dcc/">usual place</A> | |
498 can be installed by running the | |
499 <A HREF="misc/updatedcc.in">@libexecdir@/updatedcc</A> script. | |
500 That script is (re)built by the | |
501 <EM>./configure</EM> script | |
502 and runs <EM>./configure</EM> with parameters and | |
503 environment variables from the previous installation. | |
504 | |
505 | |
506 | |
507 <P><LI><H3>Remove or Uninstall</H3> | |
508 <P>Most of the DCC can be removed by running | |
509 <A HREF="misc/uninstalldcc.in">@libexecdir@/uninstalldcc</A> script. | |
510 Some logs and configuration files with locally chosen parameters in the home | |
511 directory are not deleted. | |
512 Manual changes such as links to | |
513 <A HREF="misc/rcDCC.in">@libexecdir@/rcDCC</A> | |
514 or the installation of the cron job, | |
515 <A HREF="misc/cron-dccd.in">@libexecdir@/cron-dccd</A>, | |
516 are not reversed. | |
517 | |
518 | |
519 </OL> | |
520 | |
521 | |
522 | |
523 <H2>Installation Parameters</H2> | |
524 <P>There are several installation configuration parameters that can | |
525 set to suit individual preferences and systems. | |
526 | |
527 <P> | |
528 <TABLE class=centered border="1" cellpadding="2%" frame=void rules=rows | |
529 summary="table of makefile and configure script controls"> | |
530 <CAPTION><A NAME="envtbl"> | |
531 <B>Makefile and <EM>./configure</EM> Script Controls | |
532 <BR>Do NOT set these parameters unless absolutely necessary.</B></A> | |
533 </CAPTION> | |
534 <TR><TH><EM>./configure</EM> option | |
535 <TH>env name or <br>make variable | |
536 <TH>used by | |
537 <TH>default value | |
538 <TH>use | |
539 <TR><TD class=env><A NAME="envtbl--homedir">--homedir=HOMEDIR</A> | |
540 <TD> | |
541 <TD><EM>./configure</EM> | |
542 <TD>@prefix@/ | |
543 <TD>DCC home directory with most DCC files | |
544 <TR><TD class=env><A NAME="envtbl--libexecdir">--libexecdir=DIR</A> | |
545 <TD> | |
546 <TD><EM>./configure</EM> | |
547 <TD><A HREF="#envtbl--homedir">--homedir</A>/libexec | |
548 <TD>directory containing most DCC programs | |
549 <TR><TD class=env><A NAME="envtbl--bindir">--bindir</A>=DIR | |
550 <TD> | |
551 <TD><EM>./configure</EM> | |
552 <TD>/usr/local/bin | |
553 <TD>installation directory for DCC user commands including cdcc and | |
554 dccproc<SUP>3</SUP> | |
555 <TR><TD class=env>--mandir=DIR | |
556 <TD>  | |
557 <TD><EM>./configure</EM> | |
558 <TD>/usr/local/man | |
559 <TD>installation directory for man pages<SUP>3</SUP> | |
560 <TR><TD class=env> | |
561 <TD class=conf>NOMAN<SUP>1</SUP> | |
562 <TD>make | |
563 <TD>(unset) | |
564 <TD>do not install man pages when set<SUP>3</SUP> | |
565 <TR><TD class=env><A NAME="envtbl--installroot">--with-installroot=DIR</A> | |
566 <TD> | |
567 <TD><EM>./configure</EM> | |
568 <TD>(unset) | |
569 <TD>prefix all installation directory paths to build a binary tarball | |
570 <TR><TD class=env><A NAME="envtbl--configsuffix">--with-configsuffix=str</A> | |
571 <TD> | |
572 <TD><EM>./configure</EM> | |
573 <TD>(unset) | |
574 <TD>append <EM>str</EM> to generated configuration file names | |
575 <TR><TD class=env><A NAME="envtbl--with-uid">--with-uid=UID</A> | |
576 <TD> | |
577 <TD><EM>./configure</EM> | |
578 <TD>root | |
579 <TD>user name and set-UID for DCC programs and data | |
580 <TR><TD class=env> | |
581 <TD class=conf><A NAME="envtbl-DCC_OWN">DCC_OWN</A><SUP>1</SUP> | |
582 <TD>make | |
583 <TD>bin, daemon on OS X, or current | |
584 <TD>owner or UID of most installed files<SUP>3</SUP> | |
585 <TR><TD class=env> | |
586 <TD class=conf><A NAME="envtbl-DCC_GRP">DCC_GRP</A><SUP>1</SUP> | |
587 <TD>make | |
588 <TD>bin, daemon on OS X, or current | |
589 <TD>group of most installed files<SUP>3</SUP> | |
590 <TR><TD class=env> | |
591 <TD class=conf>DCC_MODE<SUP>1</SUP> | |
592 <TD>make | |
593 <TD>555 | |
594 <TD>mode of most installed programs | |
595 <TR><TD class=env> | |
596 <TD class=conf>MANOWN<SUP>1</SUP> | |
597 <TD>make | |
598 <TD><A HREF="#envtbl-DCC_OWN">DCC_OWN</A> | |
599 or current | |
600 <TD>owner or UID of installed man pages<SUP>3</SUP> | |
601 <TR><TD class=env> | |
602 <TD class=conf>MANGRP<SUP>1</SUP> | |
603 <TD>make | |
604 <TD><A HREF="#envtbl-DCC_GRP">DCC_GRP</A> | |
605 or current | |
606 <TD>group of installed man pages<SUP>3</SUP> | |
607 <TR><TD class=env><A NAME="envtbl--disable-sys-inst">--disable-sys-inst</A> | |
608 <TD> | |
609 <TD><EM>./configure</EM> | |
610 <TD>enabled | |
611 <TD>disable system installation or chmod, chgrp, and set-UID<SUP>3</SUP> | |
612 <TR><TD class=env><A NAME="envtbl--disable-server">--disable-server</A> | |
613 <TD> | |
614 <TD><EM>./configure</EM> | |
615 <TD>build but do not start | |
616 <TD>do not build server including dbclean and dccd | |
617 <TR><TD class=env><A NAME="envtbl--disable-dccifd">--disable-dccifd</A> | |
618 <TD> | |
619 <TD><EM>./configure</EM> | |
620 <TD>build but do not start | |
621 <TD>do not build program interface | |
622 <TR><TD class=env><A NAME="envtbl--disable-dccm">--disable-dccm</A> | |
623 <TD> | |
624 <TD><EM>./configure</EM> | |
625 <TD>build but do not start | |
626 <TD>do not build sendmail interface | |
627 <TR><TD class=env><A NAME="envtbl--with-sendmail">--with-sendmail=DIR</A> | |
628 <TD> | |
629 <TD><EM>./configure</EM> | |
630 <TD>../sendmail or /usr/ports/mail/... | |
631 <TD>directory containing sendmail milter header files | |
632 <TR><TD class=env><A NAME="envtbl--cgibin">--with-cgibin</A>=DIR | |
633 <TD> | |
634 <TD><EM>./configure</EM> | |
635 <TD><A HREF="#envtbl--homedir">--homedir</A>/cgi-bin | |
636 <TD>directory for DCC whitelist <A HREF="cgi-bin/">CGI scripts</A> | |
637 <TR><TD class=env>--with-rundir=DIR | |
638 <TD> | |
639 <TD><EM>./configure</EM> | |
640 <TD>@dcc_rundir@ | |
641 <TD>"run" directory for PIDs and sockets | |
642 <TR><TD class=env> | |
643 <TD class=conf>CFLAGS<SUP>1</SUP> | |
644 <TD>make & <EM>./configure</EM> | |
645 <TD> | |
646 <TD>global compiler options such as -g or -O2 | |
647 <TR><TD class=env> | |
648 <TD class=conf>DCC_CFLAGS<SUP>2</SUP> | |
649 <TD><EM>./configure</EM> | |
650 <TD>depends on target | |
651 <TD>global compiler options | |
652 <TR><TD class=env> | |
653 <TD class=conf>PTHREAD_CFLAGS<SUP>2</SUP> | |
654 <TD><EM>./configure</EM> | |
655 <TD>depends on target | |
656 <TD>compiler options for compiling dccm and dccifd with pthreads | |
657 <TR><TD class=env> | |
658 <TD class=conf>LDFLAGS<SUP>1</SUP> | |
659 <TD>make & <EM>./configure</EM> | |
660 <TD> | |
661 <TD>global linker options | |
662 <TR><TD class=env> | |
663 <TD class=conf><A NAME="envtbl-DCC_LDFLAGS">DCC_LDFLAGS</A><SUP>2</SUP> | |
664 <TD><EM>./configure</EM> | |
665 <TD>depends on target | |
666 <TD>global linker options | |
667 <TR><TD class=env> | |
668 <TD class=conf>PTHREAD_LDFLAGS<SUP>2</SUP> | |
669 <TD><EM>./configure</EM> | |
670 <TD>depends on target | |
671 <TD>linker options for dccm and dccifd | |
672 <TR><TD class=env> | |
673 <TD class=conf><A NAME="envtbl-LIBS">LIBS</A><SUP>2</SUP> | |
674 <TD><EM>./configure</EM> | |
675 <TD> | |
676 <TD>additional libraries linked with all programs | |
677 <TR><TD class=env> | |
678 <TD class=conf>PTHREAD_LIBS<SUP>2</SUP> | |
679 <TD><EM>./configure</EM> | |
680 <TD>depends on target | |
681 <TD>libraries for dccm and dccifd | |
682 <TR><TD class=env> | |
683 <TD class=conf>CC | |
684 <TD>make & <EM>./configure</EM> | |
685 <TD>cc | |
686 <TD>C compiler such as "gcc" or "/opt/SUNWspro/SC6.1/bin/cc" | |
687 <TR><TD class=env> | |
688 <TD class=conf>INSTALL<SUP>1</SUP> | |
689 <TD>make | |
690 <TD><A HREF="autoconf/install-sh">./autoconf/install-sh</A> | |
691 <TD>installation script | |
692 <TR><TD class=env> | |
693 <TD class=conf>DCCD_MAX_FLOODS<SUP>1</SUP> | |
694 <TD>make | |
695 <TD>32 | |
696 <TD>maximum DCC server flooding peers | |
697 <TR><TD class=env><A NAME="envtbl--with-db-memory">--with-db-memory=MB</A> | |
698 <TD> | |
699 <TD><EM>./configure</EM> | |
700 <TD>64 | |
701 <TD>minimum server database buffer size between 32 MBytes and 49152 MBytes | |
702 <!-- DB_MIN_MBYTE --> | |
703 <TR><TD class=env><A NAME="envtbl--with-max-db-mem">--with-max-db-mem=MB</A> | |
704 <TD> | |
705 <TD><EM>./configure</EM> | |
706 <TD>1920 <!--DB_MAX_2G_MBYTE--> on 32-bit systems | |
707 <BR>49152 <!--MAX_MAX_DB_MBYTE--> on 64-bit systems | |
708 <TD>maximum server database buffer size | |
709 <!-- DB_MAX_MBYTE --> | |
710 <TR><TD class=env><A NAME="envtbl--with-max-log-size">--with-max-log-size=KB</A> | |
711 <TD> | |
712 <TD><EM>./configure</EM> | |
713 <TD>32 | |
714 <TD>maximum dccifd and dccm log file size in KBytes; 0=no limit | |
715 <TR><TD class=env><A NAME="envtbl--disable-IPv6">--without-IPv6</A> | |
716 <TD> | |
717 <TD><EM>./configure</EM> | |
718 <TD>IPV6 on if supported | |
719 <TD>turn off IPv6 support | |
720 <TR><TD class=env><A NAME="envtbl--with-socks">--with-socks[=lib]</A> | |
721 <TD> | |
722 <TD><EM>./configure</EM> | |
723 <TD>none | |
724 <TD>location of <A HREF="#SOCKS">SOCKS</A> client library | |
725 <TR><TD class=env><A NAME="envtbl--64bits">--enable-64-bits</A> | |
726 <TD> | |
727 <TD><EM>./configure</EM> | |
728 <TD>correct value on most systems | |
729 <BR>32 bits Solaris and Linux PowerPC | |
730 <TD>use MD5 code in DCC source instead of any local library | |
731 <TR><TD class=env><A NAME="envtbl--with-DCC-MD5">--with-DCC-MD5</A> | |
732 <TD> | |
733 <TD><EM>./configure</EM> | |
734 <TD>local library if available; | |
735 <TD>use MD5 code in DCC source instead of any local library | |
736 <TR><TD class=env><A NAME="envtbl--with-kludge">--with-kludge=FILE</A> | |
737 <TD> | |
738 <TD><EM>./configure</EM> | |
739 <TD>none | |
740 <TD>include header FILE, best with an absolute path | |
741 <TR><TD class=env><A NAME="envtbl--fetch-cmd">--with-fetch-cmd=pgm</A> | |
742 <TD> | |
743 <TD><EM>./configure</EM> | |
744 <TD>wget, fetch, curl, or ftp | |
745 <TD>program used by | |
746 <A HREF="misc/updatedcc.in">@libexecdir@/updatedcc</A>, | |
747 and other utilities to fetch files | |
748 <TR><TD> | |
749 </TABLE> | |
750 | |
751 <DL class=small> | |
752 <DT>Note<SUP>1</SUP> | |
753 <DD>These values are not built into the Makefiles by the | |
754 <EM>./configure</EM> script but their current values in the environment | |
755 are used by the script and the Makefiles. | |
756 | |
757 <DT>Note<SUP>2</SUP> | |
758 <DD>These values are copied by the <EM>./configure</EM> script from the | |
759 environment into the generated Makefiles. | |
760 | |
761 <DT>Note<SUP>3</SUP> | |
762 <DD>When <A HREF="#envtbl--disable-sys-inst">--disable-sys-inst</A> | |
763 is specified, the current UID and GID become the defaults, | |
764 and the man pages are not installed. | |
765 If the <EM>./configure</EM> script is not run as root, | |
766 <A HREF="dccproc.html">dccproc</A>, <A HREF="cdcc.html">cdcc</A>, | |
767 and <A HREF="dccsight.html">dccsight</A> are not installed set-UID. | |
768 It is usually also necessary to set | |
769 <A HREF="#envtbl--bindir">--bindir</A> to a private directory such | |
770 as $HOME/bin. | |
771 </DL> | |
772 | |
773 <H2><A NAME="Compatibility">Compatibility</A></H2> | |
774 <P>DCC is thought to work on several systems including: | |
775 <DL class=compat> | |
776 <DT>BSDI BSD/OS | |
777 <DD>DCC works starting with version 3.0 of BSD/OS. | |
778 | |
779 <DT>FreeBSD | |
780 <DD>The works starting with at least version 4.0 of FreeBSD. | |
781 | |
782 <DT>NetBSD | |
783 <DD>The DCC should work starting with at least 1.4.2 without threads | |
784 and so with dccd, dccproc, and all of DCC except the part that uses | |
785 threads, dccm. | |
786 Dccm is available if you point PTHREAD_LIBS, PTHREAD_CFLAGS, and | |
787 PTHREAD_LDFLAGS to the optional threads package. | |
788 | |
789 <DT>OpenBSD | |
790 <DD>DCC works starting with at least 2.9 despite lame | |
791 the lame mmap() implementation. | |
792 | |
793 <DT>Linux | |
794 <DD>DCC works starting with at least RedHat 5.2. | |
795 <P> | |
796 On 64-bit PowerPC systems with more than 4 GBytes, | |
797 use <EM>./configure --with-64-bits</EM> to build a DCC server that can | |
798 benefit from a full sized database. | |
799 A 64-bit sendmail milter library will be needed if | |
800 <A HREF="dccm.html">Dccm</A> is used | |
801 | |
802 <DT>AIX | |
803 <DD>DCC on 4.1.PPC has been tried but not well tested. | |
804 Rumor has it that the 4.1.PPC pthreads code does not work | |
805 with the sendmail milter library and dccm, but the rest of | |
806 DCC does work. | |
807 | |
808 <DT>Solaris | |
809 <DD>DCC compiles on several versions of Solaris with gcc or | |
810 native C compiler by setting the environment variable CC appropriately. | |
811 <EM>You must install gmake</EM>. | |
812 <EM>Do not</EM> use "CFLAGS=-fast" with the native compiler. | |
813 <P> | |
814 While building the sendmail milter library, consider using | |
815 <EM>_FFR_USE_POLL</EM> to avoid problems with large file descriptors | |
816 and select(). | |
817 <P> | |
818 On 64-bit systems with more than 4 GBytes, | |
819 use <EM>./configure --with-64-bits</EM> to build a DCC server that can | |
820 benefit from a full sized database. | |
821 A 64-bit sendmail milter library will be needed if | |
822 <A HREF="dccm.html">Dccm</A> is used | |
823 | |
824 <DT>HP-UX | |
825 <DD>DCC compiles on versions of HP-UX starting with 11.00. | |
826 It requires gmake. Dccproc and dccm work. | |
827 Dccifd does not work with UNIX domain sockets because select() and | |
828 poll() do not notice the results of shutdown(). | |
829 Dccifd does work with TCP/IP connections to MTAs or spam filters. | |
830 <BR> | |
831 Dccproc should work on version 10.20, since it does not use pthreads. | |
832 | |
833 <DT>IRIX | |
834 <DD>DCC compiles on IRIX 6.5. | |
835 It requires gmake. | |
836 | |
837 <DT>OSF1 | |
838 <DD>DCC compiles on OSF1 V5.0 with gmake. | |
839 | |
840 <DT>OpenUNIX | |
841 <DD>DCC compiles on OpenUNIX 8.0.1. | |
842 | |
843 <DT>Mac OS/X | |
844 <DD>DCC compiles on at least some versions of Apple's OS/X. | |
845 | |
846 <DT>Windows | |
847 <DD>The DCC client dccproc compiles and works on at least some versions of | |
848 Windows 98 and Windows XP with Borland's free SDK | |
849 and with Microsoft's SDK. | |
850 See the <A HREF="win32.mak">main Makefile</A> for Windows. | |
851 | |
852 | |
853 </DL> | |
854 <P> | |
855 <SMALL>Those system names include trademarks. Please don't abuse them.</SMALL> | |
856 | |
857 <H2><A NAME="Troubleshooting">Troubleshooting</A></H2> | |
858 <P> | |
859 Much of the DCC <A HREF=FAQ.html>list of frequently asked questions</A> | |
860 concerns troubleshooting DCC installations. | |
861 Many of the messages in the archive of the | |
862 <A HREF="http://www.rhyolite.com/pipermail/dcc/">DCC mailing list</A> | |
863 are also troubleshooting questions and answers. | |
864 | |
865 <H2><A NAME="spam-traps"></A><A NAME="spamtraps">Spam Traps</A></H2> | |
866 <P><A HREF="dccm.html">Dccm</A> and sendmail can be configured to | |
867 report the checksums of unsolicited bulk mail so that other DCC clients | |
868 can reject later copies of the same unsolicited bulk mail | |
869 sent from other sources. | |
870 Such mechanisms are commonly called <EM>spam traps</EM>. | |
871 | |
872 <P>Entries in a sendmail access_db can also be rejected or discarded | |
873 while they are reported to the DCC server by dccm. | |
874 The script | |
875 <A HREF="misc/hackmc">misc/hackmc</A> modifies the output of | |
876 sendmail .mc files to tell dccm about some undesirable mail. | |
877 The script accepts one or more .mc files and generates the corresponding | |
878 slightly modified .cf files. | |
879 If the access_db entry starts with the string "DCC:", | |
880 the message is reported by dccm to the DCC server as extremely bulky. | |
881 Otherwise the message is rejected as usual. | |
882 The remainder of the the access_db entry after "DCC:" consists of | |
883 the optional string "DISCARD" followed by an optional SMTP status message. | |
884 If the string "DISCARD" is present, the message is discarded instead of | |
885 rejected. This is important to keep senders of unsolicited bulk mail from | |
886 discovering and removing "spam trap" addresses from their target lists. | |
887 | |
888 <P>For example, a line like the following in an access_db can | |
889 discard all mail from example.com while reporting it to the DCC server | |
890 as extremely bulky. | |
891 Note the quotes ("). | |
892 <PRE> | |
893 example.com DCC: "DISCARD spam" | |
894 </PRE> | |
895 | |
896 <P>It is also possible to route mail from a spam trap address to | |
897 dccproc as described in the | |
898 <A HREF="dccproc.html#EXAMPLES">dccproc man page</A> | |
899 | |
900 | |
901 <H2><A NAME="SOCKS">SOCKS</A></H2> | |
902 <P>The DCC client and server programs can be built to use the SOCKS | |
903 protocol. | |
904 The | |
905 <A HREF="#envtbl--with-socks">--with-socks</A> | |
906 <EM>./configure</EM> parameter | |
907 configures the DCC client library and the DCC server | |
908 to use common SOCKS network library functions. | |
909 If the SOCKS library is in a standard place, | |
910 something like <A HREF="#envtbl--with-socks">--with-socks=socks</A> | |
911 should be sufficient. | |
912 Setting the environment variable | |
913 <A HREF="#envtbl-DCC_LDFLAGS">DCC_LDFLAGS</A> to something | |
914 like <Em>-L/usr/local/lib</Em> is sometimes helpful. | |
915 Otherwise, using <A HREF="#envtbl--with-socks">--with-socks</A> | |
916 without specifying the library name and setting <A HREF="#envtbl-LIBS">LIBS</A> | |
917 to the full pathname of the library | |
918 might work. | |
919 <P> | |
920 DCC client programs | |
921 including dccproc and dccm that use the DCC client library | |
922 must be told to use the SOCKS5 protocol with the | |
923 <A HREF="cdcc.html#OPERATION-SOCKS">SOCKS on</A> | |
924 operation of | |
925 <A HREF="cdcc.html">cdcc</A>. | |
926 SOCKS5 is required instead of SOCKS4 | |
927 because DCC clients communicate with DCC servers using UDP. | |
928 | |
929 <P> | |
930 DCC servers can use SOCKS4 or SOCKS5 when exchanging | |
931 floods of reports of checksums. | |
932 Links between individual pairs of peers are configured with the | |
933 <Em>passive</Em> and <Em>SOCKS</Em> flags in the flod file described | |
934 in the <A HREF="dccd.html#FILE-flod">dccd</A> man page. | |
935 In both cases, the SOCKS library code must be configured, often | |
936 in the files /etc/socks.conf and /etc/socksd.conf. | |
937 | |
938 <P> | |
939 When the DCC software is built with SOCKS, | |
940 IPv6 name resolution is turned off. | |
941 | |
942 <P> | |
943 The DCC server and client programs have been tested with the | |
944 <A HREF="http://www.inet.no/dante/">DANTE</A> library and server. | |
945 The DANTE SOCKS implementation is also one of the FreeBSD "ports" | |
946 or packages. | |
947 <P> | |
948 Note that if a connection fails repeatedly, Dante will disable the rule | |
949 that failed and will eventually try the underlying connect() | |
950 call. | |
951 This fails in almost every SOCKS environment because there is | |
952 no available route for an ordinary connect(). | |
953 Dante by default won't re-enable the failing rule. | |
954 To fix this, change BADROUTE_EXPIRE from the default of <EM>0*60</EM> | |
955 to <EM>5</EM> in include/config.h in the Dante source and recompile. | |
956 | |
957 | |
958 <P class=small> | |
959 This document describes DCC version 1.3.103. | |
960 <P> | |
961 <A HREF="http://www.dcc-servers.net/dcc/"> | |
962 <IMG SRC="http://logos.dcc-servers.net/border.png" | |
963 class=logo ALT="DCC logo"> | |
964 </A> | |
965 <A HREF="http://validator.w3.org/check?uri=referer"> | |
966 <IMG class=logo ALT="Valid HTML 4.01 Strict" | |
967 SRC="http://www.w3.org/Icons/valid-html401"> | |
968 </A> | |
969 </BODY> | |
970 </HTML> | |
971 <!-- LocalWords: dccproc libmilter pthreads procmail dccm dccd dcc libmilter | |
972 --> | |
973 <!-- LocalWords: homedir dbclean whitelist setenv nbsp Solaris crontab Linux | |
974 --> | |
975 <!-- LocalWords: gmake FreeBSD NetBSD CFLAGS PTHREAD LDFLAGS LIBS HPUX IDs DT | |
976 --> | |
977 <!-- LocalWords: cdcc DL DD ids var RTT TD TR dccifd greylist MTA | |
978 --> | |
979 <!-- LocalWords: whitelisting | |
980 --> |