Напомню, что перед изменением файла sendmail.cf желательно остановить программу sendmail. Это делается с помощью команды:
/etc/init.d/sendmail stop
Запустить sendmail заново можно с помощью команды:
/etc/init.d/sendmail start
Конечно, удобнее сначала отредактировать файл sendmail.cf с помощью m4, а потом выполнить команду /etc/init.d/sendmail restart для перезапуска программы sendmail.
13.2. Аутентификация в sendmail
Программы Sendmail 8.10/8.11 поддерживают SMTP AUTH, согласно стандарту RFC 2554. Аутентификация базируется на SASL. Она позволит вам несколько повысить безопасность вашей сети, но создаст определенные неудобства для пользователей, потому что не все почтовые клиенты ее поддерживают.
Вам потребуются библиотеки Cyrus SASL, исходные коды которых вы можете найти по адресу ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/. Последней версией на момент написания этих строк являлась 1.5.14. Желательно также выкачать последнюю версию sendmail, хорошо бы в исходных кодах. Скачать последнюю версию программы sendmail можно по адресу: http:// www.sendmail.org. Распакуйте библиотеку Cyrus SASL выполнив следующую последовательность:
# tar –xzf cyrus-sasl-1.5.24.tar.qz
# cd cyrus-sasl-1.5.24/
# ./configure –prefix=/usr
# make
# make install
Распаковывать лучше всего, зарегистрировавшись в системе root. Сама по себе операция извлечения файлов из архива не требует таких полномочий, однако, если у вас не было прав суперпользователя, вам нужно будет изменить права доступа для файлов, которые будут распакованы в каталоги /usr/lib и /usr/include. Распаковав исходные коды, отредактируйте файл /usr/lib/sasl/Sendmail.conf. Если он не существует, создайте его. В конец этого файла необходимо добавить строку:
pwcheck_method: sasldb
Это укажет sendmail, что аутентификацию нужно проводить с использованием SASL. Теперь займитесь созданием базы данных всех пользователей, которые могут отправлять почту. Для этого используются две программы: saslpasswd и sasldblistusers. Они должны находиться в каталоге /sbin. Запускать их нужно от имени пользователя root.
# saslpasswd –a sendmail newuser
password:<type passwdord for newuser>
Эту процедуру требуется провести для всех пользователей, которым разрешено отправление почты. Затем используйте вторую программу:
sasldblistusers
Она применяется для просмотра всех записей в базе данных. После ее запуска вы должны увидеть что-то наподобие этого:
user: newuser realm: dhsilabs.com mech: CRAM-MD5
user: newuser realm: dhsilabs.com mech: DIGEST-MD5
user: newuser realm: dhsilabs.com mech: PLAIN
Отображенная информация означает, что пользователь newuser может аутентифицироваться тремя методами: CRAM-MD5, DIGEST-MD5, PLAIN. Рекомендую использовать метод CRAM-MD5, но в крайнем случае подойдет и PLAIN.
Далее проверьте, поддерживает ли ваш sendmail библиотеку SASL:
sendmail –d0.1 –bv root | grep SASL
При отсутствии поддержки SASL от вас потребуется перекомпилировать sendmail. Вот для чего я просил в начале раздела приготовить исходные коды sendmail. Итак, распакуйте sendmail, как обычно, программой tar:
tar –xzf senmail-x.xx.xx.tar.gz cd sendmail-x.xx.xx/
Теперь нужно создать файл sendmail-x.xx.x/devtools/Site /site.config.m4, в котором необходимо прописать следующие строки:
APPENDDEF('confENVDEF' , '-DSASL')
APPENDDEF('conf_sendmail_LIBS', '-lsasl')
APPENDDEF('confLIBDIRS', '-L/usr/lib/')
APPENDDEF('confINCDIRS' , '-I/usr/include/' )
Напомню, создать файл в простейшем случае можно командой:
cat > sendmail-x.xx.x/devtools/Site/site.config.m4
Самое время запустить скрипт Build:
./Build
./Build install
Если вы все сделали правильно, ваш sendmail теперь должен поддерживать SMTP AUTH. Проверить это можно с помощью уже знакомой команды:
sendmail –d0.1 –bv root | grep SASL
После этого приступите к настройке самой программы sendmail. Для этого в файл sendmail.me внесите следующие строки:
TRUST_AUTH_MECH('GSSAPI DIGEST-MD5 CRAM-MD5 PLAIN')dnl
define('confAUTH_MECHANISMS', 'GSSAPI DIGEST-MD5 CRAM-MD5 PLAIN')dnl
define('confDEF_AUTH_INFO', Vetc/mail/auth/auth-info')dnl
FEATURE('no_default_msa')dnl turn off default entry for MSA
DAEMON_OPTIONS('Port=25, Name=MSA, M=E')dnl
Метод PLAIN, как самый ненадежный, можно было бы убрать из списка авторизации, но я не советую вам этого делать, так как не все почтовые клиенты поддерживают не только метод PLAIN, а и SMTP аутентификацию вообще.
Запустите интерпретатор m4:
m4 senmail.mc > sendmail.cf
Скопируйте новый файл sendmail.cf на место старого, обычно он находится в каталоге /etc/mail:
ср ./sendmail.cf /etc/mail/sendmail.cf
Почти все! Осталось проверить работоспособность sendmail и убедиться, что он работает корректно. С этой целью запустите клиент telnet и присоединитесь к порту 25 вашего компьютера:
telnet localhost 25
Trying 127.0.0.1.. .
Connected to localhost
Escape character is '^ ]'.
220 local.sendmail.ORG ESMTP Sendmail 8.10.0/8.10.0; Thu, 9 Sep 1999 10:48:44 –0700 (PDT)
ehlo localhost
250-local.sendmail.ORG Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-DSN
250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN
250 HELP
quit
Теперь желательно добавить описания поддерживаемых вашим сервером методов аутентификации. Откройте файл /etc/mail/sendmail.cf в любом текстовом редакторе и найдите следующие строки:
#####################
# Format of headers #
#####################
После этих строк вам нужно добавить следующее:
$.$?{auth_type}(auth_type is ${auth_type}, user
${auth_author}$.)
Хочу заметить, что файл sendmail.cf у вас может находиться в другом каталоге. Это делается для того, чтобы в заголовке письма появилось такое сообщение:
(auth_type is CRAM-MD5, user den)
Указание метода авторизации поможет вам при дальнейшей настройке вашего сервера.
13.3. Настройка почтовых клиентов
В предыдущих разделах данной главы мы рассмотрели два типа настройки программы sendmail — без аутентификации и с наличием таковой. Поэтому сначала рассмотрим настройку почтовых клиентов для первого случая, а потом — для второго. Ради написания этого материала мне даже пришлось установить Outlook Express. Этой программы не наблюдалось на моей машине с момента выхода первой версии TheBat!
Итак, рассмотрим настройку трех самых популярных почтовых клиентов:
1. TheBat!, версия 1.38е.
2. Outlook Express, версия 5.00.
3. Netscape Messenger, версия 4.76.
Я специально не стал использовать более новые версии программ, потому что не у всех пользователей они могут оказаться. Это, правда, не относится к Outlook — более ранней версии я не нашел. Все более новые версии программ настраиваются абсолютно аналогично.
Начнем с предпочитаемой мною программы — TheBat!
Для создания новой учетной записи выберите пункт меню Account→New… В появившемся окне введите название новой учетной записи, затем собственную информацию, серверы исходящей почты (SMTP server) и сервер для входящих сообщений (POP3 server). Затем введите имя пользователя и пароль. Пароль должен быть установлен на сервере с помощью команды passwd! Нажмите на кнопку «Finish» и учетная запись готова. Проверить параметры учетной записи вы можете с помощью меню Account→Properties. Для нашего «виртуального» почтового сервера, используемого в примерах, настройки будут выглядеть так как это показано на рис. 13.3.
Рис. 13.3. Параметры учетной записи (программаTheBat!)
На рис. 13.3. видно, что в качестве сервера для входящей и исходящей почты используется компьютер den.dhsilabs.com. Протокол сервера входящей почты — POP3. Параметры протокола (порт, порядок удаления сообщения) можно указать в разделе Mail management. Остальные параметры не представляют интереса. Имя пользователя и пароль должны быть такими же, какие вы используете для локальной регистрации на своем компьютере, в данном случае на компьютере den.dhsilabs.com.
Теперь перейдем к Outlook Express. Выберите пункт меню Сервис→Учетные записи и нажмите на кнопку «Добавить». Затем выберите пункт подменю «Почта» и введите аналогичные параметры. После создания учетной записи нажмите на кнопку «Свойства» и еще проверьте ее параметры. На вкладке Серверы можно указать серверы для приема и передачи сообщений, а на вкладке Дополнительно — установить параметры протоколов.
Почтовый клиент Netscape Messenger настраивается так: выберите пункт меню Edit→Preferences. Причем это можно сделать из любой программы, входящей в пакет Netscape Communicator. В появившемся окне Preferences (рис. 13.4) перейдите в раздел Почтовые серверы (Mail servers) и укажите необходимые вам параметры. Параметры протокола POP можно задать, выбрав почтовый сервер и нажав на кнопку «Edit».
Я уже успел рассмотреть конфигурирование всех трех программ без использования аутентификации. Теперь же давайте настроим эти же программы, но уже используя аутентификацию. Я буду использовать те же учетные записи, чтобы не создавать новые. Начнем по порядку.
Программа The Bat!
Возле поля ввода сервера для отправления сообщений есть кнопка «More» (см. рис. 13.3). При нажатии на нее откроется окно Advanced SMTP Options. Установите режим Perform SMTP authenication (RFC 2554). Если имя пользователя и пароль на сервере POP совпадают с именем пользователя и паролем на сервере SMTP, а это обычно так, установите режим Use POP server login. В противном случае, укажите нужное имя пользователя и пароль.