Fix up formatting
[ikiwiki.git] / docs / handbook / handbook-smtp-auth.mdwn
1 ## 20.10 SMTP Authentication 
2
3
4
5 ***Originally written by James Gorham. ***
6
7 Having SMTP Authentication in place on your mail server has a number of benefits. SMTP Authentication can add another layer of security to  **sendmail** , and has the benefit of giving mobile users who switch hosts the ability to use the same mail server without the need to reconfigure their mail client settings each time.
8
9
10
11 1. Install [`security/cyrus-sasl`](http://pkgsrc.se/security/cyrus-sasl) from the ports. You can find this port in [`security/cyrus-sasl`](http://pkgsrc.se/security/cyrus-sasl). Also, install [`security/cyrus-saslauthd`](http://pkgsrc.se/security/cyrus-saslauthd) and any of the security/cy2-* packages that match how you want to authenticate.  In this case, [`security/cy2-login`](http://pkgsrc.se/security/cy2-login) is needed.
12
13 2. This plan is designed to enable  **sendmail**  to authenticate against your DragonFly `passwd` database. This saves the trouble of creating a new set of usernames and passwords for each user that needs to use SMTP authentication, and keeps the login and mail password the same.  Edit `/usr/pkg/lib/sasl2/Sendmail.conf` (or create it if it does not exist) and add the following line:
14
15         pwcheck_method: saslauthd
16
17 3.   These lines will give  **sendmail**  the proper configuration options for linking to [`cyrus-sasl`](http://pkgsrc.se/cyrus-sasl) at compile time. Make sure that [`cyrus-sasl`](http://pkgsrc.se/cyrus-sasl) has been installed before recompiling  **sendmail** .  Edit `/etc/make.conf` and add the following lines:
18
19         SENDMAIL_CFLAGS=-I/usr/pkg/include/sasl -DSASL
20         SENDMAIL_LDFLAGS=-L/usr/pkg/lib
21         SENDMAIL_LDADD=-lsasl2
22
23
24 4. Recompile  **sendmail**  by executing the following commands:
25
26         # cd /usr/src/usr.sbin/sendmail
27         # make cleandir
28         # make obj
29         # make
30         # make install
31
32 5. To check if SASL was compiled in:
33
34         sendmail -d0.1 -bv root
35
36 5. After  **sendmail**  has been compiled and reinstalled, edit your `/etc/mail/dragonfly.mc` file (or whichever file you use as your `.mc` file. Many administrators choose to use the output from [hostname(1)](http://leaf.dragonflybsd.org/cgi/web-man?command#hostname&section1) as the `.mc` file for uniqueness). These options configure the different methods available to  **sendmail**  for authenticating users. If you would like to use a method other than  **saslauthd** , please see the included documentation.  Add these lines to your .mc file:
37
38         dnl set SASL options
39         TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
40         define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
41
42
43 6. Finally, run [make(1)](http://leaf.dragonflybsd.org/cgi/web-man?command#make&section1) while in `/etc/mail`. That will run your new `.mc` file and create a `.cf` file named `dragonfly.cf` (or whatever name you have used for your `.mc` file). Then use the command `make install restart`, which will copy the file to `sendmail.cf`, and will properly restart  **sendmail** . For more information about this process, you should refer to `/etc/mail/Makefile`.
44
45 If all has gone correctly, you should be able to enter your login information into the mail client and send a test message. For further investigation, set the `LogLevel` of  **sendmail**  to 13 and watch `/var/log/maillog` for any errors.  One example way to run sendmail with that higher debug level:
46
47     sendmail –O LogLevel=14 –bs -Am
48
49 You may wish to add the following line to `/etc/rc.conf` so this service will be available after every system boot:
50
51     saslauthd="YES"
52
53 This will ensure the initialization of SMTP_AUTH upon system boot.
54
55 This is enough to get started.  **Using separate encryption, such as STARTTLS, is recommended.** 
56
57 For more information, please see the  **sendmail**  page regarding [SMTP authentication](http://www.sendmail.org/~ca/email/auth.html).
58
59 CategoryHandbook
60
61 CategoryHandbook-email
62