Дистрибутив sendmail включает несколько примеров файла настройки. В главе 10 содержится пример создания файла настройки для системы Linux на основе файла tcpproto.mc. Файл прототипа - это файл макроопределений ш4, результатом обработки которого является пригодный к использованию файл sendmail.cf. Файлы прототипов хранятся в каталоге sendmail/cf/cf дистрибутива sendmail. Используйте эти прототипы в качестве примеров разумных настроек sendmail.
Все файлы настройки sendmail состоят из следующих макроопределений Ш4:
divert
Перенаправляет вывод процесса m4. dnl
Удаляет все символы до следующей новой строки.
VERSIONID
Определяет номер версии исходного файла .тс . Обычно для этой дели используются номера версий RCS или SCCS. Данная команда является необязательной.
OSTYPE
Указывает исходный файл ш4, содержащий информацию, специфичную для используемой операционной системы. Данное макроопределение является обязательным.
DOMAIN
Указывает исходный файл т4, содержащий информацию настройки, специфичную для данного домена. Данное макроопределение является необязательным.
L0CAL_D0MAIN
Определяет псевдонимы данного сервера.
CANONIFY_DOMAIN
Указывает домены, которые должны подвергаться преобразованию в канонический формат, даже если канонизация отключена.
CANONIFY_DOMAIN_FILE
Указывает файл, содержащий список доменов, которые должны подвергаться преобразованию в канонический формат, даже если канонизация отключена.
GENERICS_DOMAIN
Определяет доменные имена, которые должны обрабатываться с использованием базы данных genericstable.
GENERICS_DOMAIN_FILE
Указывает файл, содержащий список доменных имен, которые должны обрабатываться с использованием базы данных genericstable.
LDAPROUTE_DOMAIN
Определяет домены, маршрутизация для которых должна осуществляться в соответствии с указаниями из каталога LDAP.
LDAPROUTE_DOMAIN_FILE
Указывает файл, содержащий список доменов, маршрутизация для которых должна осуществляться в соответствии с указаниями из каталога LDAP.
RELAY_DOMAIN
Определяет домены, для которых данный сервер должен осуществлять пересылку почты.
RELAY_DOMAIN_FILE
Указывает файл, содержащий список доменов, для которых данный сервер должен осуществлять пересылку почты.
VIRTUSER_DOMAIN
Определяет виртуальные домены, которые должны обрабатываться с использованием virtusertable.
VIRTUSER_DOMAIN_FILE
Указывает файл, содержащий список доменов, которые должны обрабатываться с использованием virtusertable.
FEATURE
Указывает исходный файл т4, содержащий определение необязательных возможностей sendmail. Для обработки исходного файла .тс данное макроопределение не требуется, однако во многих файлах настройки присутствует большое число записей FEATURE.
MASQUERADE_AS
Определяет доменное имя, используемое для сокрытия имени сервера в исходящей почте.
MASQUERADE_DOMAIN
Определяет домены, для которых следует выполнять сокрытие.
MASQUERADE_DOMAIN_FILE
Указывает файл, содержащий список доменов, для которых должно выполняться сокрытие.
MASQUERADE_EXCEPTION
Определяет узел, для которого не должно выполняться сокрытие, даже если оно выполняется для всего домена.
EXPOSEDJJSER
Определяет имена пользователей, исключающие сокрытие. Если адрес содержит одно из перечисленных имен, сокрытие узла в адресе не выполняется.
HACK
Указывает исходный файл ш4, содержащий специфичную для сервера информацию настройки. Это временные настройки, исправляющие временные проблемы. Использование HACK не приветствуется.
SITE
Указывает узел UUCP с локальным подключением.
SITECONFIG
Указывает исходный файл, содержащий команды m4 SITE, определяющие площадки UUCP, подключенные к данному узлу. Формат команды: SITECONFIG (файл, локальное имя узла, класс); имена узлов UUCP добавляются из файла в класс.
UUCPSMTP
Отображает имя узла UUCP в имя узла Интернета.
define
Определяет локальное значение. Большинство «определений» содержится в исходных файлах гп4, включаемых файлом .тс, а не в самом файле .тс. Определять можно значения для макроопределений и параметров sendmail.cf либо другие команды.
undefine
Снимает значение, установленное для параметра настройки.
MAILER
Указывает исходный файл ш4, содержащий команды настройки, определяющие почтовую программу sendmail. В файле настройки должна присутствовать, по меньшей мере, одна команда MAILER. Обычно таких команд несколько.
MAILER_DEFINITIONS
Открывает раздел команд sendmail.cf, определяющих пользовательскую почтовую программу.
MODIFY_MAILER_FLAGS
Переопределяет флаги, определенные для почтовой программы.
MAIL_FILTER
Определяет почтовый фильтр.
INPUT_MAIL_FILTER
Определяет почтовый фильтр и переменные, необходимые для вызова фильтра.
DAEM0N_0PTI0NS
Определяет параметры работы демона sendmail.
TRUST_AUTH_MECH
Определяет список доверенных механизмов авторизации.
LOCAL_RULE_n
Открывает раздел кода, добавляемого к набору правил л, где л - число О, 1, 2 или 3. Код, следующий за командой LOCAL_RULE_n, состоит из стандартных правил подстановки sendmail.cf.
Команда LOCAL_RULE_n ис-пользуется редко.
LOCA L_R U L ES ETS
Открывает раздел кода, определяющий пользовательский набор правил.
LOCALJJSER
Определяет имена пользователей, для которых не должна выполняться пересылка, даже когда она выполняется для локальной почты.
LOCAL_NET_CONFIG
Открывает раздел кода sendmail.cf, определяющего, как обрабатывается почта, предназначенная локальному узлу.
L0CAL_C0NFIG
Открывает раздел кода, добавляемого в файл sendmail.cf после раздела локальной информации и перед правилами подстановки. Данный раздел кода содержит стандартные команды настройки sendmail.cf. Данное макроопределение редко используется.
Описанные выше встроенные команды т4 - а именно те, что обозначены строчными буквами - делятся на два вида: управляющие выводом и устанавливающие значения макроопределений. Выводом управляют команды dnl и divert. Текст, следующий за командой dnl, не попадает в файл вывода.
Эта команда используется в начале строки комментария. Команда divert (-1) направляет вывод в «никуда» и отмечает начало блока комментариев. Команда divert(O) направляет вывод в стандартный поток результатов ш4. В дополнение к -1 и 0 команда divert принимает девять других численных аргументов: значения от 1 до 9. Эти другие значения используются в исходном тексте макроопределений т4 для записи данных в различные части файла sendmail.cf. В собственных настройках вы не будете использовать эти значения. Вместо этого вы будете использовать другие команды для записи данных в определенные части файла sendmail.cf.
Команды LOCAL CONFIG, LOCAL_USER, LOCALRULESETS, MAILER_ DEFINITION, LOCAL NET CONFIG и LOCAL RULE позволяют записывать данные в различные части файла sendmail.cf, не задействуй напрямую различные значения divert. Команды вроде LOCAL_CONFIG и MAILER DEFINITION отмечают начало фрагментов кода sendmail.cf, который должен включаться в ту или иную часть конечного файла. Эти команды позволяют изменять файл sendmail.cf всеми возможными способами.
Встроенные команды ш4, define и undefine, устанавливают значения макроопределений. define инициализирует переменную значением, undefine сбрасывает переменную в значение по умолчанию. Команда define позволяет контролировать больше параметров настройки, чем любая другая, и, как следствие, большая часть этого приложения отведена под описание параметров define.
Около половины макроопределений т4 действуют подобно команде define -просто устанавливают значения параметров. Примеры таких команд: MAS-QUERADE AS, MASQUER ADE_ DOMAIN, RELAYDOMAIN и VIRTU-SERDOMAINFILE.
TRUST_AUTH_MECH - хороший пример макроопределения, дополняющего define. Как вы увидите в разделе «define» данного приложения, параметр confAUTH_MECHANISMS может использоваться для определения доверенных механизмов аутентификации, о которых ваш сервер сообщает другим серверам. Макроопределение TRUST AUTH МЕСН имеет обратный смысл, оно указывает механизмы других серверов, с которыми готов работать ваш сервер. Для настройки TRUST AUTH MECHANISMS используется тот же список ключевых слов, что и для настройки confAUTH_MECHANISMS (см. раздел «define»).
Имена макроопределений OSTYPE, DOMAIN, FEATURE, MAILER, HACK и SITECONFIG соответствуют именам подкаталогов каталога cf. Значения этих макроопределений соответствуют именам файлов из каталогов. К примеру, команда FEATURE(nouucp) предписывает т4 загрузить файл поииср.т4 из каталога ostype и обработать его содержимое (код т4). Исходные файлы .т4 для команд OSTYPE, DOMAIN, FEATURE и MAILER состоят преимущественно из команд define и FEATURE.
Еще два макроопределения, SITECONFIG и HACK, используются редко. SITECONFIG указывает исходный файл, содержащий макроопределения SITE, обозначающий системы UUCP, подключенные к локальному узлу. Создав самостоятельно файл, содержащий макроопределения SITE, вы должны подключить его при помощи команды SITECONFIG. Эти команды, наряду с UUCPSMTP, вышли из употребления и сохраняются только из соображений обратной совместимости.
Макроопределение HACK указывает исходный файл ш4, содержащий временные, специфичные для данной системы поправки на проблемы sendmail. Администратор создает файл в каталоге hack и подключает его к настройкам при помощи команды HACK. Использование этого метода не приветствуется и обычно не требуется.
В следующем разделе содержится дополнительная информация о макроопределениях OSTYPE, DOMAIN, FEATURE и MAILER, а также сведения о различных командах, используемых для создания соответствующих этим макроопределениям исходных файлов ш4. Пример создания частного варианта исходного файла макроопределений DOMAIN содержится в главе 10.
Исходные файлы могут содержать любые макроопределения из уже упомянутых, а также дополнительные, речь о которых пойдет далее. Файл макроопределений настройки {.тс) также может содержать любую из описанных ниже команд. По сути дела, практически любое макроопределение может фигурировать в любом из файлов.
Чтобы некоторым образом упорядочить хаос, команды сгруппированы по файлам, в которых наиболее вероятно их присутствие. Подобная организация описаний существует и в документации из дистрибутива sendmail. Запомните, что на практике файлы могут иметь иную структуру. Мы начнем с изучения макроопределений define и FEATURE, базовых строительных блоков всех прочих файлов.