Базовые примитивы конфигурации программы sendmail
Категория: Электронная почта | Автор: admin | 28-05-2010, 02:50 | Просмотров: 2720

Конфигурационные команды sendmail чувствительны к регистру символов. В соответствии с принятыми соглашениями имена стандартных макросов пишутся прописными буквами (например, OSTYPE), а команды препроцессора m4 — строчными (например, define). Имена конфигурационных переменных начинаются с префикса conf, за которым следует описательная часть имени, набранная прописными буквами (например, confCOPY_ERRORS_TO). Макросы обычно (за исключением VERSIONID) ссылаются на файлы ../имя_макроса/арг1.m4. К примеру, макрос OSTYPE(‘linux') вызывает подключение файла ../ostype/linux.m4.

В этом параграфе мы рассмотрим только основные конфигурационные команды. Дополнительные средства будут описаны далее.

 

Макрос VERSIONID

 

Файлы конфигурации необходимо вести с применением системы контроля версий CVS, RCS или SCCS. Это нужно не только для того, чтобы иметь возможность вернуться к одной из предыдущих версий, но и для того, чтобы можно было определить версии m4-файлов, задействованных в формировании файла конфигурации. Для автоматического встраивания информации о версии используется макрос VERSIONID. В системе CVS/RCS этот макрос вызывается следующим образом:

versionid   ($Id$')

 

а в SCCS вызов макроса будет таким:

versionid('%W%   (идентификатор)  %g%’)

 

Реальная информация о версии вносится системой CVS/RCS или SCCS, когда пользователь компилирует файл. В итоговом файле sendmail.cf она появляется в виде комментария. Эта информация может оказаться полезной в ситуации, когда пользователь забыл, куда он поместил дистрибутив sendmail (во многих случаях местоположение файлов определяется не логикой построения файловой системы, а свободным дисковым пространством).

В SCCS выражение %W% раскрывается в имя и версию файла, a %G% — в дату последней модификации. Аргумент идентификатор следует заменить строкой, которая идентифицирует организацию.

 

Макрос OSTYPE

 

Файлы в каталоге ostype носят имена, соответствующие операционным системам. Эти файлы содержат установки по умолчанию для соответствующей операционной системы. В частности, в них хранится информация о местоположении относящихся к почтовой службе файлов, путевых именах команд, необходимых программе sendmail, флагах агентов доставки и т.п.

По соглашению эта информация встраивается в конфигурационный файл с помощью макроса OSTYPE. Вызов макроса располагается в начале файла, обычно после макроса VERSIONID.

Файлы в каталоге ostype в основном содержат определения других переменных m4. Например, команда

define('ALIAS_FILE’,   "/usr/lib/aliases')

 

задает местоположение общесистемного файла aliases. Стандартные установки можно переопределить в -файле. Только не изменяйте находящийся в каталоге ostype файл, за исключением случаев, когда он действительно неправильный (при этом нужно послать отчет о найденной ошибке). В некоторых организациях стремятся унифицировать местоположение файла aliases для разных платформ и потому переопределяют его местоположение в файле каталога domain.

В файле README, находящемся в каталоге cf, перечислены все переменные, которые могут быть определены в файлах каталога ostype. Наиболее важные из них приведены в табл. 19.10. В таблицу также включены переменные, связанные с борьбой против спама (по умолчанию они не заданы).

Таблица 19.10. Стандартные значения переменных, устанавливаемых в файлах каталога ostype

Переменная

Значение по умолчанию

ALIAS_FILE

/etc/mail/aliases

HELP_FILE

/etc/mail/helpfile

STATUS_FILE

/etc/mail/statistics

QUEUE_DIR

/var/spool/mqueue

LOCAL_MAILER_PATH

/bin/mail

LOCAL_SHELL_PATH

/bin/sh

LOCAL_MAI LER_MAX

не определена

LOCAL_MAI LER_MAXMSGS

не определена

SMTP_MAILER_MAX

не определена

SMTP MAILER MAXMSGS

не определена

 

Программа sendmail допускает использование нескольких файлов aliases и NIS-карт. Это позволяет искать псевдонимы одновременно в обычных файлах, и в службе NIS, а также упрощает распределение псевдонимов между локальными и глобальными файлами. Например, команда

define('ALIAS_FILE',   ‘’/etc/aliases,nis:mail.aliases'')

 

задает следующий порядок поиска: сначала в файле /etc/aliases, а затем, если поиск завершился неудачей, в NIS-карте, называемой mail.aliases.

 

Если программа sendmail инсталлируется в новой версии ОС или в новой среде, создайте соответствующий файл в каталоге ostype и отправьте его на узел sendmail.org, чтобы файл был включен в последующие версии программы. Моделируйте новый файл на основе существующих и сверяйтесь с таблицей стандартных значений из файла cf/README. Если значение переменной в новой системе такое же, как значение по умолчанию, нет необходимости повторно определять эту переменную (можно, правда, обезопасить себя на случай изменения стандартных установок).

Файлы каталога ostype для наших тестовых систем перечислены в табл. 19.11.

Таблица 19.11. Файлы из каталога ostype для распространенных операционных систем

Система

Файл

Строка вызова

Solaris

solars2.m4

OSTYPE('solaris2’)

HP-UX

hpux11.m4

OSTYPE(‘hpuxll’)

Red Hat

linux.m4

OSTYPE('linux')

FreeBSD

bsd4.4.m4

OSTYPE(‘bsd4.4’)

 

Макрос DOMAIN

 

Макрос DOMAIN позволяет хранить общесистемную информацию в одном месте (cf/domain/имя_файла.m4) и ссылаться на нее в файлах конфигурации каждого компьютера следующим образом:

DOMAIN (‘имя_файла')

 

Имя файла обычно выбирается так, чтобы в нем отражалось название организации. Например, наш файл для факультета вычислительной техники (Computer Science department) носит имя cs.m4:

DOMAIN ('cs')

 

Как и макрос OSTYPE, макрос DOMAIN является хорошим средством подключения внешних файлов. Он делает структуру конфигурационного файла понятнее и позволяет в будущем легко вносить изменения в конфигурацию. Макрос особенно полезен, когда все cf-файлы централизовано создаются из mc-файлов, хранящихся в одном месте.

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

Доменный файл, включенный в дистрибутив, содержит примеры записей, которые обычно помещают в общесистемные файлы.

 

Макрос MAILER

 

Макрос MAILER необходимо включать для каждого агента доставки, который требуется активизировать. Полный перечень поддерживаемых агентов находится в каталоге cf/mailers дистрибутива sendmail. В настоящее время поддерживаются следующие агенты: local, smtp, fax, usenet, procmail, qpage, cyrus, pop, phquery и uucp. Вот синтаксис этого макроса:

 

MAILER ('local')

MAILER ("smtp')

 

 

Первая директива активизирует агенты local и prog, а вторая — агенты smtp, esmtp, dsmtp, smtp8 и relay.

Планируя менять значение какой-либо макроконстанты, связанной с агентами доставки (например, USENET_MAILER_ARGS или FAX_MAILER_PATH), убедитесь, что строка, в которой устанавливается макроконстанта, предшествует строке вызова самого агента. В противном случае будет использовано старое значение. По этой причине макросы MAILER размещают в конце файла конфигурации.

Агент pop взаимодействует с программой spop, которая является частью пакета МН и реализует поддержку протокола POP, определенного в документе RFC1460. Агент pop применяется персональными компьютерами и Мас-системами для доступа к почте, находящейся на UNIX-станции. Агент cyrus предназначен для использования с сервером IMAP разработки университета Карнеги-Меллона.

Директива MAILER('uucp') активизирует несколько разновидностей UUCP-агентов.

Агент usenet формирует интерфейс между электронной почтой и системой телеконференций Usenet. Для того чтобы он работал правильно, нужно настроить значения макроконстант USENET_MAILER_* в файле каталога ostype, соответствующем архитектуре системы. Публикация статьи в телеконференции осуществляется путем отправки текста статьи по адресу телеконференция.USENET. Иногда добавляют аргумент, идентифицирующий локальную организацию. Например, добавление элемента

-о "Organization: University of Colorado"

 

к значению макроконстанты USENET_MAILER_ARGS приведет к включению заголовка "Organization" в каждую публикуемую статью. К сожалению, Usenet — это рай для спамеров. Еще больше проблем возникнет, если будет применяться агент usenet, поэтому мы не рекомендуем делать это.

Агент fax интегрирует пакет HylaFAX, написанный Сэмом Леффлером (Sam Leffler), в систему электронной почты. При отправке почты по адресу пользователь@получатель.fax тело сообщения передается как факс-документ. В качестве аргумента получатель, как правило, задают номер телефона. Чтобы разрешить указание символических имен вместо телефонных номеров, используйте индексированную базу данных или файлы /etc/remote и /etc/phones.

 

Программы HylaFAX и sendmail необходимо интегрировать друг с другом путем инсталляции сценария из дистрибутива HylaFAX в каталог /usr/local/bin. Если требуется, измените значение макроконстанты FAX_MAILER_PATH. Для доставки входящих факсов из буферной области в почтовый ящик пользователя все равно необходимо вмешательство человека. Факс-документы можно преобразовывать в формат PostScript (с помощью программы HylaFAX) и просматривать с помощью GNU-пакета ghostscript.

 

Агент qpage взаимодействует с программой QuickPage для доставки почты на пейджер. (За более полной информацией об этой программе обратитесь на Web-узел www.qpage.org.)

Описанные выше макросы versionid, ostype, domain и mailer — это все, что необходимо для создания базового файла имя_компьютера.mc.



 (голосов: 0)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page