IBM®
Перейти к тексту
    в России и странах СНГ [изменить]    Условия использования
 
 
   
    Главная страница    Продукты    Услуги и решения    Поддержка и загрузка    Мой профиль    
Перейти к тексту

developerWorks Россия  >  Linux  >

Учебник для экзамена LPI: Почта и новости

Администрирование для специалистов (LPIC-2) тема 206

developerWorks
На предыдущую страницуСтраница 4 из 9 На предыдущую страницу

Опции документа

Обсудить


Выскажите мнение об этом учебном пособии

Помогите нам улучшить содержание


Использование Sendmail

Что делает Sendmail?

Sendmail это Агент Транспортировки почты (Mail Transport Agent -- MTA). Он отправляет, изменяет и доставляет почтовые сообщения в гетерогенных почтовых системах. Если проводить исторические параллели с приложениями для списков рассылки, то Sendmail имеет "постоянную бета" версию с названием Sendmail X которая, как предполагается, будет обновлением/заменой стабильной серии Sendmail 8.x; однако, как Mailman в значительной мере вытеснил Majordomo, так и некоторые другие MTA частично заслонили Sendmail. Выделяется среди новых MTA Postfix, но Qmail и Exim также используются довольно широко. Тем не менее, Sendmail все еще остается (хотя его преимущество практически сошло на нет) наиболее широко используемым MTA для Linux систем. На 16 сентября 2005 года последней стабильной версией Sendmail была 8.13.5.

Не одна, а несколько книг, посвящены Sendmail. Смотри в Ресурсах список доступных книг. Наиболее всеобъемлющая из них это Sendmail, Third Edition (O'Reilly, 2002) от Bryan Costales и Eric Allman. На 1,232 страницах, эта книга описывает намного больше того, чего мы можем только коснуться в этом учебнике.

Хотя Sendmail стандартно поддерживает большое количество почтовых протоколов передачи данных, такие как UUCP, наиболее широко используется Simple Mail Transport Protocol (SMTP -- Простой Почтовый Протокол Передачи данных), включающий также Extended [Расширенный] SMTP (ESMTP) для тел сообщений закодированных при помощи расширенного MIME. Почта, которая не предназначена для передачи другим SMTP хостам доставляется в локальную систему путем размещения сообщений в локальных файлах. Локальные Почтовые Агенты Пользователя (Mail User Agent -- MUA) читают сообщения, которые Sendmail (или другой MTA) размещает в локальных файлах (и часто также забирают почту, используя POP3 или IMAP), и обычно запрашивают у Sendmail доставку исходящих сообщений. Однако некоторые MUA взаимодействуют с SMTP серверами (такими как Sendmail, локальный или удаленный) напрямую, вместо размещения сообщений в очереди Sendmail для последующей обработки. Стандартная очередь Sendmail расположена в /var/spool/mqueue/.



В начало


Установка Sendmail

Первое, что вам следует сделать -- это получить копию ПО Sendmail с sendmail.org (смотри ссылку в Ресурсах), например, sendmail.8.13.5.tar.gz. Как обычно распаковать его. В отличие от многих приложений, использующих шаблон make; make install, сборка Sendmail осуществляется командой sh Build. После начальной сборки, перейдите при помощи cd в подкаталог cf/cf/; создайте копию с именем sendmail.mc соответствующего файла *.mc; измените sendmail.mc; и выполните следующее для создания файла sendmail.cf:

$ m4 ../m4/cf.m4 sendmail.mc > sendmail.cf

Вы можете также использовать ярлык sh Build sendmail.cf. Это может показаться загадочным, но обе указанные команды создают реальную конфигурацию Sendmail из формата более удобного для чтения, с использованием макропроцессора M4. Подлинные файлы sendmail.cf, которые, тем не менее также можно редактировать в ASCII, тяжелы для понимания и должны изменяться вручную минимально.

И наконец, скопируйте бинарный файл sendmail из каталога, в котором он был собран ( обычно что-то вроде obj.Linux.2.6.10-5-386.i686/sendmail/sendmail на его основное место, как правило это /usr/sbin/ (сохраните резервную копию старого файла, если они существует), а также скопируйте ваш вариант sendmail.cf в /etc/mail/sendmail.cf. Его так же можно перенести и в подкаталог cf/cf/ командой sh Build install-cf. Возможно вам понадобится перейти в режим суперпользователя su или sudo, чтобы получить разрешение на добавление файлов в соответствующие каталоги.

С Sendmail поставляется несколько утилит: makemap, mailstats и т. д. В каждом соответствующем каталоге имеется файл README и их можно установить командой sh Build install выполненной в соответствующем подкаталоге.



В начало


Файл sendmail.cf

Основные сложности и основная функциональность Sendmail заключены в его файле sendmail.cf. Это конфигурационный файл содержит некоторые настройки среды Sendmail, шаблоны адресов для перенаправления и/или доставки по имеющимся алгоритмам.

Два алгоритма перенаправления, которые могут быть использованы -- это genericstable и virtusertable, позволяющие вам указывать соответствия локальных пользователей и внешних адресов. Для обоих случаев преобразования сначала вы создаете файл псевдонимов в обычном текстовом формате. Например:


Листинг 2. Исходящее преобразование
                    
david                     david.mertz@gmail.com
root                      root@gnosis.cx
dqm@gnosis.lan            david.mertz@gmail.com

или, для входящей почты преобразование в локальные учетные записи:


Листинг 3. Входящее преобразование
                    
david@mail.gnosis.cx      david
david@smtp.gnosis.cx      david
david@otherdomain.net     david
@mail.gnosis.cx           %1@external-host.com
owner@list.gnosis.cx      owner%3
jax@bar.com               error:5.7.0:550 Address invalid

Для компиляции этих псевдонимов, используйте утилиту makemap:

$ makemap dbm /etc/mail/virtusertable < inbound
$ makemap hash /etc/mail/genericstable < outbound

Разрешение использования этих преобразований может быть настроено с использованием M4 макросов sendmail.cf (или в каком-нибудь другом используемом вами конфигурационном файле).


Листинг 4. Разрешение преобразований в sendmail.cf
                    
DOMAIN(gnosis.cx)dnl
FEATURE(`virtusertable', `dbm /etc/mail/virtusertable')dnl
FEATURE(`genericstable', `hash /etc/mail/genericstable')dnl
GENERICS_DOMAIN_FILE(`/etc/mail/generics-domains')dnl

Здесь указано несколько элементов. DOMAIN макрос, показывающий, что файл вроде cf/domain/gnosis.cx.m4 используется дополнительными макросами. FEATURE макрос, разрешающий использование virtusertable и genericstable. GENERICS_DOMAIN_FILE макрос, определяющий домены, которые соответствуют преобразованию имен со сжатием в genericstable.

Переадресация будет происходить по указанным правилам. В режиме теста (sendmail -bt), вы можете проверить выполнение перенаправления для конкретных адресов. Например, используя genericstable, сообщение локальному пользователю "david" будет доставлено на david.mertz@gmail.com внешним образом. Предположим, что localhost определено в /etc/mail/generics-domains, тогда почта для david@localhost будет отправлена на тот же адрес.

В другом направлении входящая почта для david@mail.gnosis.cx будет доставлена локальному пользователю "david". При помощи Sendmail можно управлять несколькими доменами одновременно, так что david@otherdomain.net будет доставлено также локально.

Главная мощь этих преобразований заключается в символах подстановки. Любая почта, отправленная на mail.gnosis.cx, кроме предназначенной для специального локального пользователя, будет переадресована на то же имя пользователя на external-host.com. Но это простой шаблон. Более интересно то, что %3 может использоваться для извлечения дополнительной информации об имени, то есть owner-foo@list.gnosis.cx и owner-bar@list.gnosis.cx будут доставлены локальным пользователям "owner-foo" и "owner-bar" оответственно. Эти локальные пользователи могут быть псевдонимами системамы обработки списков рассылки или других автоматических манипуляторов сообщений. В качестве специального случая вы можете вызвать ошибку для указанных адресов вместо того, чтобы перенаправить предназначенную им почту куда бы то ни было.

Все что мы рассмотрели -- это просто рябь на поверхности правил переадресации, которые вы можете добавить в Sendmail, но этого достаточно чтобы уловить суть. Приобретите одну из больших книг по данной теме, если хотите изучить это более детально.



В начало


Запуск Sendmail

Sendmail может работать в нескольких режимах. Наиболее распространенный режим -- это работа в качестве демона, работа в фоне с периодической обработкой очереди. Например, выполнение:

$ /usr/sbin/sendmail -bd -q10m

скажет Sendmail запуститься в качестве демона и проверять свою очередь каждые десять минут. Вы можете также запустить Sendmail единократно для обработки очереди один раз, но не как демон:

$ /usr/sbin/sendmail -q

Как указывалось выше, Sendmail имеет тестовый режим для проверки правил переадресации. Например (взято из Linux Network Administrators Guide; смотри ссылку в Ресурсах):


Листинг 5. Тестовый режим Sendmail
                    
$ /usr/sbin/sendmail -bt
ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> 3,0 isaac@vstout.vbrew.com
rewrite: ruleset   3   input: isaac @ vstout . vbrew . com
rewrite: ruleset  96   input: isaac < @ vstout . vbrew . com >
rewrite: ruleset  96 returns: isaac < @ vstout . vbrew . com . >
rewrite: ruleset   3 returns: isaac < @ vstout . vbrew . com . >
rewrite: ruleset   0   input: isaac < @ vstout . vbrew . com . >
rewrite: ruleset 199   input: isaac < @ vstout . vbrew . com . >
rewrite: ruleset 199 returns: isaac < @ vstout . vbrew . com . >
rewrite: ruleset  98   input: isaac < @ vstout . vbrew . com . >
rewrite: ruleset  98 returns: isaac < @ vstout . vbrew . com . >
rewrite: ruleset 198   input: isaac < @ vstout . vbrew . com . >
rewrite: ruleset 198 returns: $# local $: isaac
rewrite: ruleset   0 returns: $# local $: isaac



В начало



На предыдущую страницуСтраница 4 из 9 На предыдущую страницу
    IBM в России Конфиденциальность Контакты