Шрифт:
Интервал:
Закладка:
В файле /etc/mail/sendmail.cw перечислены все псевдонимы вашего почтового сервера. Предположим, что имя вашего сервера mail.dhsilabs.ru. Если отправитель отправит почту по адресу [email protected], письмо будет без проблем доставлено пользователю den. А если кто-то отправит письмо по адресу [email protected], то его доставка вызовет определенные трудности, так как не ясно, какому узлу домена dhsilabs адресовано сообщение. Для решения этой проблемы в файл sendmail.cw нужно поместить строку:
dhsilabs.ru
Теперь, когда будет приходить почта формата [email protected], она будет доставлена почтовому серверу mail.dhsilabs.ru.
Напомню, что перед изменением файла sendmail.cf желательно остановить программу sendmail. Это делается с помощью команды:
# /etc/init.d/sendmail stop
Конечно, удобнее сначала отредактировать файл sendmail.cf с помощью m4, а потом выполнить команду /etc/init.d/sendmail restart для перезапуска программы sendmail.
14.2. Аутентификация в sendmail
14.2.1. Установка и настройка SASL
Программа Sendmail 8.10/8.11 поддерживает SMTP AUTH согласно стандарту RFC 2554. Аутентификация базируется на SASL (Simple Authentication and Security Layer). Она позволит вам несколько повысить безопасность вашей сети, но создаст определенные неудобства для пользователей, потому что не все почтовые клиенты (пользовательские агенты) ее поддерживают.
Первым делом убедитесь в том, что ваша сборка sendmail поддерживает библиотеку SASL:
# sendmail -d0.1 -bv root | grep SASL
При отсутствии поддержки SASL от вас потребуется перекомпилировать sendmail. Распаковав исходные коды в каталог 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/')
После этого запустите сценарий Build:
# ./Build
# ./Build install
Если вы все сделали правильно, ваш sendmail теперь должен поддерживать SMTP AUTH. Теперь вам потребуются библиотеки Cyrus SASL, исходные коды которых вы можете найти по адресу ftp://ftp.andrew.emu.edu/pub/cyrus-mail.
Соберите библиотеку Cyrus SASL, выполнив следующую последовательность действий:
# tar -xzf cyrus-sasl-1.5.24.tar.gz
# cd cyrus-sasl-1.5.24/
# ./configure --prefix=/usr
# make
# make install
После установки библиотеки отредактируйте файл /usr/lib/sasl/Sendmail.conf. Если он не существует, создайте его. В конец этого файла необходимо добавить строку:
pwcheck_method: sasldb
Это укажет sendmail, что аутентификацию нужно проводить с использованием SASL. Теперь займитесь созданием базы данных всех пользователей, которые могут отправлять почту. Для этого используются две программы: saslpasswd и sasldblistusers. Они должны находиться в каталоге /sbin. Запускать их нужно от имени суперпользователя.
# saslpasswd -a sendmail newuser
password:<пароль для newuser>
Эту процедуру нужно провести для всех пользователей, которым разрешено отправление почты. Утилита sasldblistusers предназначена для просмотра всех записей в базе данных. После ее запуска вы должны увидеть что-то наподобие этого:
user: newuser realm: dhsilabs.com mech: CRAM-MD5
user: newuser realm: dhsilabs.com mech: DIGEST-HD5
user: newuser realm: dhsilabs.com mech: PLAIN
Отображенная информация означает, что пользователь newuser может аутентифицироваться тремя методами: CRAM-MD5, DIGEST-MD5, PLAIN. Рекомендую использовать метод CRAM-MD5, но в крайнем случае подойдет и PLAIN.
14.2.2. Настройка sendmail+SASL
В файл sendmail.mc внесите следующие строки:
TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 PLAIN')dnl
define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 PLAIN')dnl
define(`confDEF_AUTH_INFO', `/etc/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, как самый ненадежный, можно было бы убрать из списка авторизации, но я рекомендую вам его оставить для совместимости с некоторыми почтовыми клиентами.
Запустите интерпретатор m4:
# m4 sendmail.mc > sendmail.cf
Скопируйте новый файл 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
Теперь желательно добавить описания поддерживаемых вашим сервером методов аутентификации. Это делается для того, чтобы в заголовке письма появилось такое сообщение:
(auth_type is CRAM-MD5, user den)
Откройте файл sendmail.cf в любом текстовом редакторе и найдите следующие строки:
#########################
# Format of headers #
#########################
После них вам нужно добавить следующее:
$.$?{auth_type}(auth_type is ${тип}, user ${пользователь}$.)
14.2.3. Настройка почтовых клиентов с использованием аутентификации
Я рассмотрю настройку трех самых популярных почтовых клиентов:
1. TheBat!. Создайте учетную запись (Account→New). В качестве имени и пароля введите регистрационные данные пользователя, установленные на сервере с помощью команды passwd. Сервером входящей и исходящей почты назначьте только что созданный почтовый сервер den.dhsilabs.com. Нажмите кнопку More (рис. 14.4). В окне Advanced SMTP Options установите режим Perform SMTP authentication. Если имя пользователя и пароль на сервере POP совпадают с именем пользователя и паролем на сервере SMTP, а это обычно так, установите режим Use POP server login. В противном случае укажите нужное имя пользователя и пароль.
Рис. 14.4. Настройка TheBat!
2. Outlook Express. Создайте учетную запись (Сервис→Учетные записи, кнопка Добавить). В окне свойств учетной записи перейдите на вкладку Серверы. Включите режим Проверка подлинности пользователя, нажмите кнопку Настройка и установите параметры аутентификации.
3. Netscape Messenger. Выберите пункт меню Edit→Preferences. В окне Preferences (рис. 14.5) перейдите в раздел Mail servers и укажите необходимые вам параметры. Параметры протокола POP можно задать, выбрав почтовый сервер и нажав на кнопку Edit Netscape Messenger версии 4.76 поддерживает только метод авторизации PLAIN.
Рис. 14.5. Настройка Netscape Messenger
14.3. Агент доступа — fetchmail
Программа fetchmail используется для загрузки сообщений с сервера входящей почты в почтовый ящик пользователя. В домашнем каталоге того пользователя, от имени которого будет запускаться fetchmail, создайте файл .fetchmailrc. Добавьте в него следующие строки:
set postmaster "mail"
poll provider.ru proto POP3 no dns
user "mail" pass "my_password" to mail here
options fetchall
Provider.ru — это имя почтового сервера, откуда вы будете забирать почту по протоколу POP3. При этом вы будете использовать имя пользователя mail и пароль my_password. Директива fetchall указывает программе получить всю почту и потом удалить полученные сообщения с сервера.
Запускать программу fetchmail можно как демон, а можно с помощью планировщика cron. В первом случае просто выполните команду:
$ fetchmail -d 12000
При этом fetchmail будет проверять наличие новой почты через каждые 20 минут.
Во втором случае отредактируйте пользовательский crontab-файл и введите новое задание:
$ crontab -е
0,20,40 * * * * /usr/bin/fetchmail
14.4. Автоматическая сортировка входящей почты — программа procmail
Лучше всего объяснять работу любой программы на практическом примере. Допустим, в вашей организации три отдела, и их адреса [email protected], [email protected] и [email protected] У вас также есть пользователь mail, на имя которого будет приходить вся почта. Вам нужно сортировать приходящую почту по названию отдела: например, если в теле письма или в одном из его заголовков упоминается название отдела, отправить это сообщение одному из пользователей отдела. Кроме того, вы хотите, чтобы рассылка проекта LinuxRSP отправлялась вам по адресу [email protected]
Создайте в домашнем каталоге пользователя mail файл .procmailrc, примерное содержание которого показано в листинге 14.2.
Листинг 14.2. Файл .procmailrc — правила сортировки почты
:0
* ^Subject:.*dep1
! dep1
:0
* ^Subject:.*dep2
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение