/[cvs]/nfo/doc/computing/sysadmin/linux/howto-sendmail_tls-imap_sasl-ldap-kerberosV.pod
ViewVC logotype

Contents of /nfo/doc/computing/sysadmin/linux/howto-sendmail_tls-imap_sasl-ldap-kerberosV.pod

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations)
Mon Jan 27 09:12:52 2003 UTC (21 years, 5 months ago) by jonen
Branch: MAIN
CVS Tags: HEAD
+ create new

1 ######################################
2 #
3 # $Id$
4 #
5 ######################################
6 #
7 # $Log$
8 #
9 #
10 ######################################
11
12
13 =pod
14
15
16
17 =head2 Sendmail TLS + Cyrus IMAP/SASL + LDAP + AMaViS + Kerberos V HowTo
18
19 Sebastian Utz S<seut@netfrag.org>
20
21
22 B<last changes>
23
24 Revision 1.1 2003/01/27 09:11:05 jonen
25 + create new
26
27
28 =head3 Description
29
30 Install and configure Sendmail with TLS, Cyrus IMAP/SASL, LDAP, and Kerberos V support
31
32
33 The installation instructions described here are mainly debian only.
34 For detailed installation instructions take a look at L<Resources|resources>,
35 e.g. the "OpenLDAP, OpenSSL, SASL and KerberosV HOWTO" from Turbo Fredriksson explains a lot (great stuff!)...
36
37
38 =head3 Prerequisites
39
40 To use all described features to sendmail the following have to be installed:
41
42 - Cyrus SASL v1 http://asg.web.cmu.edu/cyrus/sasl/
43 - Cyrus IMAP v1 http://asg.web.cmu.edu/cyrus/sasl/
44 - OpenLDAP 2 http://www.openldap.org/
45 - AMaViS (Milter) http://www.amavis.org/
46 - MIT Kerberos V http://web.mit.edu/kerberos/www/
47 - OpenSSL http://www.openssl.org/
48
49
50
51 =head3 AMaViS
52
53 =head4 install
54
55 debian testing/unstable:
56
57 - apt-get install amavis-milter
58
59 debian woody/stable:
60
61 - dowload latest amavis-milter_*.deb which could found at
62 http://packages.debian.org/testing/mail/amavis-milter.html
63
64 - dpkg -i amavis-milter_*.deb
65
66 other systems
67
68 sorry but I'm using Debian, for install instructions on other distributions look at 'Resource' section and always google.
69
70 will try write some docu here soon, too....
71
72
73 =head4 configure & start amavisd
74
75 - edit /etc/amavid.conf to configure your local settings e.g. your used anti-virus scanner
76
77 - start amavid with: /etc/init.d/amavid start
78
79 note: you should always start amavid *before* sendmail as the amavis docu explained...
80
81
82 =head3 Install Sendmail
83
84 =head4 debian
85
86 - apt-get install sendmail
87
88 if software described at L<Prerequisites|prerequisites> isn't installed yet, look at
89
90 - http://www.netfrag.org/~jonen/computing/install_cyrus_sasl_v1.html
91 - http://www.netfrag.org/~jonen/computing/mini-howto-cyrus_imapd_v1-pam-kerberosV.html
92 - others comming soon.....
93
94 after installing required packages, run
95
96 - sendmail config
97
98 or some more specifing scripts under '/usr/share/sendmail/' (e.g. /usr/share/update_auth to update SASL support)
99 and follow the instructions printed, e.g. for updating TLS support:
100
101 - run: /usr/share/sendmail/update_tls
102 - insert at sendmail.mc
103 - debian stable/testing: include(`/etc/mail/starttls.m4')dnl
104 - debian unstable: include(`/etc/mail/tls/starttls.m4')dnl
105 - cd /etc/mail
106 - run: make
107 - restart sendmail: /etc/init.d/sendmail restart
108
109 - test supported features:
110 - telnet localhost 25
111 - enter: ehlo <servername>
112 - should do some output like:
113
114 250-mail.netfrag.org Hello localhost [127.0.0.1], pleased to meet you
115 250-ENHANCEDSTATUSCODES
116 250-PIPELINING
117 250-EXPN
118 250-VERB
119 250-8BITMIME
120 250-SIZE
121 250-DSN
122 250-ETRN
123 250-AUTH GSSAPI CRAM-MD5 PLAIN LOGIN
124 250-STARTTLS
125 250-DELIVERBY
126 250 HELP
127
128
129 the 'AUTH GSSAPI CRAM-MD5 PLAIN LOGIN' and 'STARTTLS' is most important to us cause this means,
130 gssapi, digestmd5 and plain authentication is supported and also TLS is enabled.
131
132
133
134 =head4 other systems
135
136 sorry but I'm using Debian, for install instructions on other distributions look at 'Resource' section and always google.
137
138 will try write some docu here soon, too....
139
140
141 =head3 Configure Sendmail
142
143 =head4 general sendmail.mc configurations:
144
145 comming soon....
146
147
148 =head3 Configure Sendmail + SASL v1
149
150 =head4 debian
151
152 - run /usr/share/sendmail/update_auth
153
154
155 =head4 sendmail.mc configurations(not needed at debian)
156
157 TRUST_AUTH_MECH(`GSSAPI PLAIN LOGIN')dnl
158 define(`confAUTH_MECHANISMS', `GSSAPI PLAIN LOGIN')dnl
159
160
161
162
163 =head3 Configure Sendmail + Cyrus IMAP v1
164
165 =head4 sendmail.mc configurations
166
167 dnl # Cyrus Imap
168 dnl #
169 define(`confLOCAL_MAILER', `cyrus')
170 define(`CYRUS_MAILER_FLAGS', `A5@/:|')dnl
171 define(`CYRUS_MAILER_PATH', `/usr/sbin/cyrdeliver')dnl
172 define(`CYRUS_MAILER_ARGS', `cyrdeliver -e -q -m $h -- $u ')dnl
173 define(`CYRUS_MAILER_USER', `cyrus:mail')dnl
174 define(`CYRUS_BB_MAILER_FLAGS', `')dnl
175 define(`CYRUS_BB_MAILER_ARGS', `cyrdeliver -e -q -m $u ')dnl
176 dnl #
177 MAILER(cyrus)dnl
178
179 LOCAL_CONFIG
180 ## Custom configurations below (will be preserved)
181 LOCAL_RULE_0
182 R$=I $: $#cyrus $: $1
183 R$=I < @ $=w . > $: $#cyrus $: $1
184 R$=I < @ $=R . > $: $#cyrus $: $1
185 Rbb + $+ < @ $=w . > $#cyrusbb $: $1
186
187
188
189 =head3 Configure Sendmail + TLS
190
191 =head4 debian
192
193 - run /usr/share/sendmail/update_tls & place 'include(`/etc/mail/starttls.m4')dnl' at sendmail.mc
194 - make & restart sendmail
195 - see "Install Sendmail" for details...
196
197
198 =head4 other systems
199
200 comming soon......
201
202
203
204
205 =head4 sendmail.mc configurations(not needed at debian)
206
207 TRUST_AUTH_MECH(`GSSAPI PLAIN LOGIN')dnl
208 define(`confAUTH_MECHANISMS', `GSSAPI PLAIN LOGIN')dnl
209
210
211
212
213 =head3 PAM + LDAP + MIT Kerberos V
214
215 =head4 Authentication/Authorizisation via pam_ldap
216
217 - edit /etc/pam.d/smtp as follow:
218
219 auth reqired pam_ldap.so
220 account required pam_ldap.so
221
222
223 =head4 Authentication via MIT Kerberos V - gssapi and pam_krb5
224
225 =head5 Some note on MIT Kerberos V
226
227 If SASL is compiled with 'gssapi' support, sendmail would support KerberosV/gssapi Authentication,
228 but as I can't found any documentation about kerberosV support at up-to-date mail-clients (Evolution does kerberos4, but no gssapi... ;-( ),
229 i'm using pam_krb5 with a lots of drawbacks against real gssapi!
230
231 Short quote from Kerberos V5 Installation Guide (http://web.mit.edu/kerberos/www/krb5-1.2/krb5-1.2.7/doc/install.html#SEC3):
232
233 "Under Kerberos, a client (generally either a user or a service) sends a request for a ticket to the Key Distribution Center (KDC).
234 The KDC creates a ticket-granting ticket (TGT) for the client, encrypts it using the client's password as the key,
235 and sends the encrypted TGT back to the client. The client then attempts to decrypt the TGT, using its password.
236 If the client successfully decrypts the TGT (i.e., if the client gave the correct password), it keeps the decrypted TGT,
237 which indicates proof of the client's identity."
238
239
240 As you read, no passwords would go over the network, so security would be much improved!
241
242
243 =head5 pam_krb5
244
245 If pam_krb5 is used, PAM will request a 'faked' ticket for the deamons which you want authenticate on.
246 Also only PLAIN passwords are supported, which means, PLAIN passwords will go over your network
247 what would be very unsecure!
248 But if we are using TLS (which is always a good idea), passwords will go through a Secure Transport Layer
249 which encrypts the whole connection, so pam_krb5 over TLS would be ok for now....
250
251 - edit /etc/pam.d/smtp as follow:
252
253 auth required pam_krb5.so
254 account required pam_ldap.so
255
256
257
258 =head4 sendmail.mc configurations
259
260 - read http://www.sendmail.org/m4/ldap_routing.html !!
261 - i added an 'sendmail' user to ldap like followed which allows sendmail to query request:
262
263 uid=sendmail,ou=People,dc=netfrag,c=org
264 objectClass: top
265 objectClass: account
266 objectClass: possixAccount
267 uid: sendmail
268 cn: sendmail account
269 uidNumber: 25
270 gidNumber: 25
271 homeDirectory: /etc/mail
272 userPassword::
273
274
275 - set default bind DN after ' -b'
276 - set sendmail user, used for query requests after '-d'
277 - other option, but still not tested/needed (kerberos5/gssapi supported ?)
278
279 -m <authentication mechanism> (none | simple | krb4)
280 -P <passinfo> (/path/to/passwd_containing_file | /path/to/krb4_ticket)
281
282
283 dnl # define LDAP server used for routing
284 define(`confLDAP_DEFAULT_SPEC',`-h ldap.netfrag.org -b ou=Mail,dc=netfrag,dc=org -d uid=sendmail,ou=People,dc=netfrag,dc=org')dnl
285
286 dnl # define path to file which includes routeabled domains
287 LDAPROUTE_DOMAIN_FILE(`/etc/mail/ldapdomains')dnl
288
289 dnl # switch ldap routing on
290 FEATURE(ldap_routing)dnl
291
292
293 - example '/etc/mail/ldapdomains':
294
295 netfrag.org
296 example.com
297 your-domain.com
298
299
300 =head4 query 'aliases' against ldap
301
302 - To use the default schema, simply use(at sendmail.mc):
303
304 define(`ALIAS_FILE', `ldap:')
305
306 - By doing so, you will use the default schema which expands to a map declared as follows:
307
308 ldap -k (&(objectClass=sendmailMTAAliasObject)
309 (sendmailMTAAliasGrouping=aliases)
310 (|(sendmailMTACluster=${sendmailMTACluster})
311 (sendmailMTAHost=$j))
312 (sendmailMTAKey=%0))
313 -v sendmailMTAAliasValue
314
315 - Example LDAP LDIF entries might be:
316
317 dn: sendmailMTAKey=test-aliases, ou=Mail, dc=netfrag, dc=org
318 objectClass: top
319 objectClass: sendmailMTA
320 objectClass: sendmailMTAAlias
321 objectClass: sendmailMTAAliasObject
322 sendmailMTAAliasGrouping: aliases
323 sendmailMTAHost: mail.netfrag.org
324 sendmailMTAKey: test-aliases
325 sendmailMTAAliasValue: jonen
326
327 dn: sendmailMTAKey=postmaster, ou=Mail, dc=netfrag, dc=org
328 objectClass: top
329 objectClass: sendmailMTA
330 objectClass: sendmailMTAAlias
331 objectClass: sendmailMTAAliasObject
332 sendmailMTAAliasGrouping: aliases
333 sendmailMTACluster: Servers
334 sendmailMTAKey: postmaster
335 sendmailMTAAliasValue: jonen
336
337
338
339
340 =head4 query map definitions (e.g. virtusertable, mailertable, access_db, etc.) against ldap
341
342 - read http://www.sendmail.org/m4/ldap.html !!
343 - example for 'virtusertable' (other map definitions goes near the same way..):
344
345 - sendmail.mc:
346
347 FEATURE(`virtusertable', `LDAP')
348
349 - add sendmailMTAMapName (have to be created for each map definition!!)
350
351 dn: sendmailMTAMapName=virtuser, ou=Mail, dc=netfrag, dc=org
352 objectClass: top
353 objectClass: sendmailMTA
354 objectClass: sendmailMTAMap
355 sendmailMTAHost: mail.netfrag.org
356 sendmailMTAMapName: virtuser
357
358 - example virtuser entries:
359
360 dn: sendmailMTAKey=test-virtuser@netfrag.com, ou=Mail, dc=netfrag, dc=org
361 objectClass: sendmailMTA
362 objectClass: sendmailMTAMap
363 objectClass: sendmailMTAMapObject
364 sendmailMTAMapName: virtuser
365 sendmailMTAHost: mail.netfrag.org
366 sendmailMTAKey: test-virtuser@netfrag.org
367 sendmailMTAMapValue: jonen
368
369 dn: sendmailMTAKey=no-user@example.com, ou=Mail, dc=netfrag, dc=org
370 objectClass: sendmailMTA
371 objectClass: sendmailMTAMap
372 objectClass: sendmailMTAMapObject
373 sendmailMTAMapName: virtuser
374 sendmailMTAHost: mail.netfrag.org
375 sendmailMTAKey: no-user@example.com
376 sendmailMTAMapValue: error: no-user@example.com doesn't exits here
377
378
379
380 =head3 Configure Sendmail Milter + AMaViS
381
382 =head4 sendmail.mc configurations
383
384 define(`MILTER', 1)
385 INPUT_MAIL_FILTER(`milter-amavis',`S=local:/var/run/amavis/amavis-milter.sock, F=T, T=S:10m;R:10m;E:10m')
386
387
388
389 =head3 Resources
390
391 =over
392
393 =item Sendmail
394
395 http://www.sendmail.org/
396
397
398 =item LDAP Implementation HOWTO
399
400 http://www.tldp.org/HOWTO/LDAP-Implementation-HOWTO/
401
402
403 =item OpenLDAP
404
405 http://www.openldap.org/
406
407
408 =item MIT Kerberos V5
409
410 http://web.mit.edu/kerberos/www/
411
412
413 =item Kerberos Authenticated SMTP Service Installation Instructions
414
415 http://www.upenn.edu/computing/pennkey/sysadmin/d_install_unix/smtp.html
416
417
418 =item sendmail with LDAP, TLS and AUTH
419
420 http://logout.sh/computers/sendmail/
421
422
423 =item Sendmail + LDAP HOWTO
424
425 http://www.iconimaging.net/~jradford/sendmail/sendmail-ldap.html
426
427
428 =item Sendmail mit Milter, AMaViS, Cyrus IMAP + SSL, Anti Spam
429
430 http://wwwhomes.uni-bielefeld.de/schoppa/saia-howto.html
431
432
433 =item Sendmail mit Milter, AMaViS, Anti Spam, Cyrus IMAP auf Debian woody Basis
434
435 http://wwwhomes.uni-bielefeld.de/schoppa/saia-woody-howto.html
436
437
438 =item AMaViS
439
440 http://www.amavis.org/
441
442 =back
443
444
445 =head3 ToDo
446
447 o seems NO mail-client currently supports kerberos V tickets, DO MORE RESEARCH!
448 x so use pam_krb5
449 o if so, seems only PLAIN password authentication works (no Digest-MD5 or others!)
450 x so usage of TLS/SSL for secure trasport layer is recommend
451 o docu installation for other distribution than Debian
452 o check out Cyrus Imapd v2 and SASL v2 more and write howto
453 o MORE docu !!
454
455
456
457
458 =cut

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed