Sync with FreeBSD. This adds read-only support for zip and ISO9660.
[dragonfly.git] / contrib / sendmail / README
1
2                         SENDMAIL RELEASE 8
3
4 This directory has the latest sendmail(TM) software from Sendmail, Inc.
5
6 Report any bugs to sendmail-bugs@sendmail.ORG
7
8 There is a web site at http://WWW.Sendmail.ORG/ -- see that site for
9 the latest updates.
10
11 +--------------+
12 | INTRODUCTION |
13 +--------------+
14
15 0. The vast majority of queries to <sendmail-questions@sendmail.org>
16    are answered in the README files noted below.
17
18 1. Read this README file, especially this introduction, and the DIRECTORY
19    PERMISSIONS sections.
20
21 2. Read the INSTALL file in this directory.
22
23 3. Read sendmail/README, especially:
24    a. the introduction
25    b. the BUILDING SENDMAIL section
26    c. the relevant part(s) of the OPERATING SYSTEM AND COMPILE QUIRKS section
27
28    You may also find these useful:
29
30    d. sendmail/SECURITY
31    e. devtools/README
32    f. devtools/Site/README
33    g. libmilter/README
34    h. mail.local/README
35    i. smrsh/README
36
37 4. Read cf/README.
38
39 Sendmail is a trademark of Sendmail, Inc.
40
41 +-----------------------+
42 | DIRECTORY PERMISSIONS |
43 +-----------------------+
44
45 Sendmail often gets blamed for many problems that are actually the
46 result of other problems, such as overly permissive modes on directories.
47 For this reason, sendmail checks the modes on system directories and
48 files to determine if they can be trusted.  For sendmail to run without
49 complaining, you MUST execute the following command:
50
51         chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
52         chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
53
54 You will probably have to tweak this for your environment (for example,
55 some systems put the spool directory into /usr/spool instead of
56 /var/spool).  If you set the RunAsUser option in your sendmail.cf, the
57 /var/spool/mqueue directory will have to be owned by the RunAsUser user.
58 As a general rule, after you have compiled sendmail, run the command
59
60         sendmail -v -bi
61
62 to initialize the alias database.  If it gives messages such as
63
64         WARNING: writable directory /etc
65         WARNING: writable directory /var/spool/mqueue
66
67 then the directories listed have inappropriate write permissions and
68 should be secured to avoid various possible security attacks.
69
70 Beginning with sendmail 8.9, these checks have become more strict to
71 prevent users from being able to access files they would normally not
72 be able to read.  In particular, .forward and :include: files in unsafe
73 directory paths (directory paths which are group or world writable) will
74 no longer be allowed.  This would mean that if user joe's home directory
75 was writable by group staff, sendmail would not use his .forward file.
76 This behavior can be altered, at the expense of system security, by
77 setting the DontBlameSendmail option.  For example, to allow .forward
78 files in group writable directories:
79
80         O DontBlameSendmail=forwardfileingroupwritabledirpath
81
82 Or to allow them in both group and world writable directories:
83
84         O DontBlameSendmail=forwardfileinunsafedirpath
85
86 Items from these unsafe .forward and :include: files will be marked
87 as unsafe addresses -- the items can not be deliveries to files or
88 programs.  This behavior can also be altered via DontBlameSendmail:
89
90         O DontBlameSendmail=forwardfileinunsafedirpath,
91                 forwardfileinunsafedirpathsafe
92
93 The first flag allows the .forward file to be read, the second allows
94 the items in the file to be marked as safe for file and program
95 delivery.
96
97 Other files affected by this strengthened security include class
98 files (i.e., Fw /etc/mail/local-host-names), persistent host status files,
99 and the files specified by the ErrorHeader and HelpFile options.  Similar
100 DontBlameSendmail flags are available for the class, ErrorHeader, and
101 HelpFile files.
102
103 If you have an unsafe configuration of .forward and :include:
104 files, you can make it safe by finding all such files, and doing
105 a "chmod go-w $FILE" on each.  Also, do a "chmod go-w $DIR" for
106 each directory in the file's path.
107
108
109 +--------------------------+
110 | FILE AND MAP PERMISSIONS |
111 +--------------------------+
112
113 Any application which uses either flock() or fcntl() style locking or
114 other APIs that use one of these locking methods (such as open() with
115 O_EXLOCK and O_SHLOCK) on files readable by other local untrusted users
116 may be susceptible to local denial of service attacks.
117
118 File locking is used throughout sendmail for a variety of files
119 including aliases, maps, statistics, and the pid file.  Any user who
120 can open one of these files can prevent sendmail or it's associated
121 utilities, e.g., makemap or newaliases, from operating properly.  This
122 can also affect sendmail's ability to update status files such as
123 statistics files.  For system which use flock() for file locking, a
124 user's ability to obtain an exclusive lock prevents other sendmail
125 processes from reading certain files such as alias or map databases.
126
127 A workaround for this problem is to protect all sendmail files such
128 that they can't be opened by untrusted users.  As long as users can
129 not open a file, they can not lock it.  Since queue files should
130 already have restricted permissions, the only files that need
131 adjustment are alias, map, statistics, and pid files.  These files
132 should be owned by root or the trusted user specified in the
133 TrustedUser option.  Changing the permissions to be only readable and
134 writable by that user is sufficient to avoid the denial of service.
135 For example, depending on the paths you use, these commands would be
136 used:
137
138         chmod 0640 /etc/mail/aliases /etc/mail/aliases.{db,pag,dir}
139         chmod 0640 /etc/mail/*.{db,pag,dir}
140         chmod 0640 /etc/mail/statistics /var/log/sendmail.st
141         chmod 0600 /var/run/sendmail.pid /etc/mail/sendmail.pid
142
143 If the permissions 0640 are used, be sure that only trusted users belong
144 to the group assigned to those files.  Otherwise, files should not even
145 be group readable.  As of sendmail 8.12.4, the permissions shown above
146 are the default permissions for newly created files.
147
148 Note that the denial of service on the plain text aliases file
149 (/etc/mail/aliases) only prevents newaliases from rebuilding the
150 aliases file.  The same is true for the database files on systems which
151 use fcntl() style locking.  Since it does not interfere with normal
152 operations, sites may chose to leave these files readable.  Also, it is
153 not necessary to protect the text files associated with map databases
154 as makemap does not lock those files.
155
156
157 +-----------------------+
158 | RELATED DOCUMENTATION |
159 +-----------------------+
160
161 There are other files you should read.  Rooted in this directory are:
162
163   FAQ
164         The FAQ (frequently answered questions) is no longer maintained
165         with the sendmail release.  It is available at
166         http://www.sendmail.org/faq/ .  The file FAQ is a reminder of
167         this and a pointer to the web page.
168   INSTALL
169         Installation instructions for building and installing sendmail.
170   KNOWNBUGS
171         Known bugs in the current release.
172   RELEASE_NOTES
173         A detailed description of the changes in each version.  This
174         is quite long, but informative.
175   sendmail/README
176         Details on compiling and installing sendmail.
177   cf/README
178         Details on configuring sendmail.
179   doc/op/op.me
180         The sendmail Installation & Operations Guide.  In addition
181         to the shipped PostScript version, plain text and PDF versions
182         can be generating using (assuming the required conversion software
183         is installed on your system, see doc/op/Makefile):
184
185         cd doc/op && make op.txt op.pdf
186
187         Be warned: on some systems calling make in doc/op/ will cause
188         errors due to nroff/groff problems.  Known problems are:
189         - running this off on systems with an old version of -me, you
190         need to add the following macro to the macros:
191
192                 .de sm
193                 \s-1\\$1\\s0\\$2
194                 ..
195
196         This sets a word in a smaller pointsize.
197
198         - with new groff versions (1.18 seems affected)
199
200         GROFF_NO_SGR=1
201
202         needs to be set, e.g., in doc/op/Makefile:
203
204         ROFF_CMD=       GROFF_NO_SGR=1 groff
205
206
207 +--------------+
208 | RELATED RFCS |
209 +--------------+
210
211 There are several related RFCs that you may wish to read -- they are
212 available via anonymous FTP to several sites.  For a list of the
213 primary repositories see:
214
215         http://www.isi.edu/in-notes/rfc-retrieval.txt
216
217 They are also online at:
218
219         http://www.ietf.org/
220
221 They can also be retrieved via electronic mail by sending
222 email to one of:
223
224         mail-server@nisc.sri.com
225                 Put "send rfcNNN" in message body
226         nis-info@nis.nsf.net
227                 Put "send RFCnnn.TXT-1" in message body
228         sendrfc@jvnc.net
229                 Put "RFCnnn" as Subject: line
230
231 For further instructions see:
232
233         http://www.isi.edu/in-notes/rfc-editor/rfc-info
234
235 Important RFCs for electronic mail are:
236
237         RFC821  SMTP protocol
238         RFC822  Mail header format
239         RFC974  MX routing
240         RFC976  UUCP mail format
241         RFC1123 Host requirements (modifies 821, 822, and 974)
242         RFC1344 Implications of MIME for Internet Mail Gateways
243         RFC1413 Identification server
244         RFC1428 Transition of Internet Mail from Just-Send-8 to
245                 8-bit SMTP/MIME
246         RFC1652 SMTP Service Extension for 8bit-MIMEtransport
247         RFC1869 SMTP Service Extensions (ESMTP spec)
248         RFC1870 SMTP Service Extension for Message Size Declaration
249         RFC1891 SMTP Service Extension for Delivery Status Notifications
250         RFC1892 Multipart/Report Content Type for the Reporting of
251                 Mail System Administrative Messages
252         RFC1893 Enhanced Mail System Status Codes
253         RFC1894 An Extensible Message Format for Delivery Status
254                 Notifications
255         RFC1985 SMTP Service Extension for Remote Message Queue Starting
256         RFC2033 Local Mail Transfer Protocol (LMTP)
257         RFC2034 SMTP Service Extension for Returning Enhanced Error Codes
258         RFC2045 Multipurpose Internet Mail Extensions (MIME) Part One:
259                 Format of Internet Message Bodies
260         RFC2476 Message Submission
261         RFC2487 SMTP Service Extension for Secure SMTP over TLS
262         RFC2554 SMTP Service Extension for Authentication
263         RFC2821 Simple Mail Transfer Protocol
264         RFC2822 Internet Message Format
265         RFC2852 Deliver By SMTP Service Extension
266         RFC2920 SMTP Service Extension for Command Pipelining
267
268 Other standards that may be of interest (but which are less directly
269 relevant to sendmail) are:
270
271         RFC987  Mapping between RFC822 and X.400
272         RFC1049 Content-Type header field (extension to RFC822)
273
274 Warning to AIX users: this version of sendmail does not implement
275 MB, MR, or MG DNS resource records, as defined (as experiments) in
276 RFC1035.
277
278
279 +---------+
280 | WARNING |
281 +---------+
282
283 Since sendmail 8.11 and later includes hooks to cryptography, the
284 following information from OpenSSL applies to sendmail as well.
285
286 PLEASE REMEMBER THAT EXPORT/IMPORT AND/OR USE OF STRONG CRYPTOGRAPHY
287 SOFTWARE, PROVIDING CRYPTOGRAPHY HOOKS OR EVEN JUST COMMUNICATING
288 TECHNICAL DETAILS ABOUT CRYPTOGRAPHY SOFTWARE IS ILLEGAL IN SOME
289 PARTS OF THE WORLD.  SO, WHEN YOU IMPORT THIS PACKAGE TO YOUR
290 COUNTRY, RE-DISTRIBUTE IT FROM THERE OR EVEN JUST EMAIL TECHNICAL
291 SUGGESTIONS OR EVEN SOURCE PATCHES TO THE AUTHOR OR OTHER PEOPLE
292 YOU ARE STRONGLY ADVISED TO PAY CLOSE ATTENTION TO ANY EXPORT/IMPORT
293 AND/OR USE LAWS WHICH APPLY TO YOU.  THE AUTHORS ARE NOT LIABLE FOR
294 ANY VIOLATIONS YOU MAKE HERE.  SO BE CAREFUL, IT IS YOUR RESPONSIBILITY.
295
296 If you use OpenSSL then make sure you read their README file which
297 contains information about patents etc.
298
299
300 +-------------------+
301 | DATABASE ROUTINES |
302 +-------------------+
303
304 IF YOU WANT TO RUN THE NEW BERKELEY DB SOFTWARE:  ****  DO NOT  ****
305 use the version that was on the Net2 tape -- it has a number of
306 nefarious bugs that were bad enough when I got them; you shouldn't have
307 to go through the same thing.  Instead, get a new version via the web at
308 http://www.sleepycat.com/.  This software is highly recommended; it gets
309 rid of several stupid limits, it's much faster, and the interface is
310 nicer to animals and plants.  If the Berkeley DB include files
311 are installed in a location other than those which your compiler searches,
312 you will need to provide that directory when building:
313
314         Build -I/path/to/include/directory
315
316 If you are using Berkeley DB versions 1.85 or 1.86, you are *strongly*
317 urged to upgrade to DB version 2 or later, available from
318 http://www.sleepycat.com/.  Berkeley DB versions 1.85 and 1.86 are known to
319 be broken in various nasty ways (see http://www.sleepycat.com/db.185.html),
320 and can cause sendmail to dump core.  In addition, the newest versions of
321 gcc and the Solaris compilers perform optimizations in those versions that
322 may cause fairly random core dumps.
323
324 If you have no choice but to use Berkeley DB 1.85 or 1.86, and you are
325 using both Berkeley DB and files in the UNIX ndbm format, remove ndbm.h
326 and ndbm.o from the DB library after building it.  You should also apply
327 all of the patches for DB 1.85 and 1.86 found at the Sleepycat web site
328 (see http://www.sleepycat.com/db.185.html), as they fix some of the known
329 problems.
330
331 If you are using a version of Berkeley DB 2 previous to 2.3.15, and you
332 are using both Berkeley DB and files in the UNIX ndbm format, remove dbm.o
333 from the DB library after building it.  No other changes are necessary.
334
335 If you are using Berkeley DB version 2.3.15 or greater, no changes are
336 necessary.
337
338 The underlying database file formats changed between Berkeley DB versions
339 1.85 and 1.86, again between DB 1.86 and version 2.0, and finally between
340 DB 2.X and 3.X.  If you are upgrading from one of those versions, you must
341 recreate your database file(s).  Do this by rebuilding all maps with
342 makemap and rebuilding the alias file with newaliases.
343
344
345 +--------------------+
346 | HOST NAME SERVICES |
347 +--------------------+
348
349 If you are using NIS or /etc/hosts, it is critical that you
350 list the long (fully qualified) name somewhere (preferably first) in
351 the /etc/hosts file used to build the NIS database.  For example, the
352 line should read
353
354         128.32.149.68   mastodon.CS.Berkeley.EDU mastodon
355
356 **** NOT ****
357
358         128.32.149.68   mastodon
359
360 If you do not include the long name, sendmail will complain loudly
361 about ``unable to qualify my own domain name (mastodon) -- using
362 short name'' and conclude that your canonical name is the short
363 version and use that in messages.  The name "mastodon" doesn't mean
364 much outside of Berkeley, and so this creates incorrect and unreplyable
365 messages.
366
367
368 +-------------+
369 | USE WITH MH |
370 +-------------+
371
372 This version of sendmail notices and reports certain kinds of SMTP
373 protocol violations that were ignored by older versions.  If you
374 are running MH you may wish to install the patch in contrib/mh.patch
375 that will prevent these warning reports.  This patch also works
376 with the old version of sendmail, so it's safe to go ahead and
377 install it.
378
379
380 +----------------+
381 | USE WITH IDENT |
382 +----------------+
383
384 Sendmail 8 supports the IDENT protocol, as defined by RFC 1413.
385 Note that the RFC states a client should wait at least 30 seconds
386 for a response.  As of 8.10.0, the default Timeout.ident is 5 seconds
387 as many sites have adopted the practice of dropping IDENT queries.
388 This has lead to delays processing mail.
389
390 No ident server is included with this distribution.  It is available
391 from:
392
393   ftp://ftp.lysator.liu.se/pub/ident/servers/
394   http://sf.www.lysator.liu.se/~pen/pidentd/
395
396 +-------------------------+
397 | INTEROPERATION PROBLEMS |
398 +-------------------------+
399
400 Microsoft Exchange Server 5.0
401         We have had a report that ``about 7% of messages from Sendmail
402         to Exchange were not being delivered with status messages of
403         "connection reset" and "I/O error".''  Upgrading Exchange from
404         Version 5.0 to Version 5.5 Service Pack 2 solved this problem.
405
406 CommuniGate Pro
407         CommuniGate Pro 3.2.4 does not accept the AUTH= -parameter on
408         the MAIL FROM command if the client is not authenticated.  Use
409
410                 define(`confAUTH_OPTIONS', `A')
411
412         in .mc file if you have compiled sendmail with Cyrus SASL
413         and you communicate with CommuniGate Pro servers.
414
415 +---------------------+
416 | DIRECTORY STRUCTURE |
417 +---------------------+
418
419 The structure of this directory tree is:
420
421 cf              Source for sendmail configuration files.  These are
422                 different than what you've seen before.  They are a
423                 fairly dramatic rewrite, requiring the new sendmail
424                 (since they use new features).
425 contrib         Some contributed tools to help with sendmail.  THESE
426                 ARE NOT SUPPORTED by sendmail -- contact the original
427                 authors if you have problems.  (This directory is not
428                 on the 4.4BSD tape.)
429 devtools        Build environment.  See devtools/README.
430 doc             Documentation.  If you are getting source, read
431                 op.me -- it's long, but worth it.
432 editmap         A program to edit and query maps that have been created
433                 with makemap, e.g., adding and deleting entries.
434 include         Include files used by multiple programs in the distribution.
435 libsmdb         sendmail database library with support for Berkeley DB 1.X,
436                 Berkeley DB 2.X, Berkeley DB 3.X, and NDBM.
437 libsmutil       sendmail utility library with functions used by different
438                 programs.
439 mail.local      The source for the local delivery agent used for 4.4BSD.
440                 THIS IS NOT PART OF SENDMAIL! and may not compile
441                 everywhere, since it depends on some 4.4-isms.  Warning:
442                 it does mailbox locking differently than other systems.
443 mailstats       Statistics printing program.
444 makemap         A program that creates the keyed maps used by the $( ... $)
445                 construct in sendmail.  It is primitive but effective.
446                 It takes a very simple input format, so you will probably
447                 expect to preprocess must human-convenient formats
448                 using sed scripts before this program will like them.
449                 But it should be functionally complete.
450 praliases       A program to print the DBM or NEWDB version of the
451                 aliases file.
452 rmail           Source for rmail(8).  This is used as a delivery
453                 agent for for UUCP, and could presumably be used by
454                 other non-socket oriented mailers.  Older versions of
455                 rmail are probably deficient.  RMAIL IS NOT PART OF
456                 SENDMAIL!!!  The 4.4BSD source is included for you to
457                 look at or try to port to your system.  There is no
458                 guarantee it will even compile on your operating system.
459 smrsh           The "sendmail restricted shell", which can be used as
460                 a replacement for /bin/sh in the prog mailer to provide
461                 increased security control.  NOT PART OF SENDMAIL!
462 sendmail        Source for the sendmail program itself.
463 test            Some test scripts (currently only for compilation aids).
464 vacation        Source for the vacation program.  NOT PART OF SENDMAIL!
465
466 $Revision: 8.90.2.1 $, Last updated $Date: 2002/11/09 23:32:28 $