Файл конфигурации sendmail.mc

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

В настоящее время в GNU/Linux используется заранее созданный разработ- чиками Sendmail набор шаблонов, написанных на языке m4, которые позво- ляют быстро и просто настраивать Sendmail, не зная деталей настроек файла sendmail.cf.

При использовании m4 вначале создают файл макросов sendmail.mc, а за- тем с помощью препроцессора m4 его преобразуют в файл sendmail.cf (при- мер 29.10).

 

Пример 29.10. Преобразование sendmail.cf в sendmail.mc

 

m4 sendmail.mc > sendmail.cf


 

Обычно в каталоге /etc/mail находится специально разработанный файл Makefile, позволяющий с помощью утилиты make выполнить это преобразо- вание, а также перестроить при необходимости базы данных в этом каталоге. Для перестроения файла конфигурации и баз данных в каталоге /etc/mail надо выполнить команду, показанную в примере 29.11. Эта команда может обновить конфигурационные базы данных и даже пригодна для рестарта Sendmail.

 

Пример 29.11. Перестройка конфигурационных файлов

 

make all

 

Прежде чем использовать язык m4, следует убедиться, установлен ли в сис- теме соответствующий пакет (он может называться по-разному). Проверить, установлен ли данный пакет в RPM-системах, можно командой, показанной в примере 29.12.

 

Пример 29.12. Проверка наличия пакета с макросами m4 для Sendmail

 

$ rpm -qa | grep sendmail.*cf.* sendmail-cf-8.14.3-4

 

Файлы с макросами для генерации конфигурационного файла sendmail.cf на- ходятся в отдельном каталоге, например, /usr/share/sendmail-cf.

Макропроцессор m4 чувствителен к регистру задаваемых символов. В дирек- тивах FEATURE и DEFINE файла sendmail.mc используются круглые скобки, команды в которых должны быть взяты в кавычки, где открывающая кавыч- ка — обратный апостроф (`), а закрывающая — обычный апостроф (') — пример 29.13.

 

Пример 29.13. Директива m4 — определение операционной системы

 

OSTYPE(`linux')dnl

 

В результате действия этой директивы к файлу sendmail.cf будет подключен файл /usr/share/sendmail-cf/ostype/linux.m4.

Каждый макрос и директива в файле макросов должны записываться с нача- ла строки, в каждой строке может быть только одна директива или макрос. Строки, следующие после директивы dnl, пропускаются препроцессором m4 и представляют собой комментарии. Первыми двумя директивами, устанав- ливаемыми в файле макросов, обычно являются divert(-1) и divert(0).


 

Директива divert(-1) очищает буферы макросов от временных данных, не требующихся в результирующем файле. Директива divert(0) обозначает новый файл макросов.

Директива include предназначена для подключения к файлу макросов со- держимого других файлов макросов (пример 29.14).

 

Пример 29.14. Подключение макросов m4 для Sendmail

 

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl

 

Макрос VERSIONID устанавливает версию получаемого файла конфигурации.

Директива, показанная в примере 29.15, не имеет отношения к доменным именам DNS. Она устанавливает разновидность макросов для построения результирующего файла конфигурации. В GNU/Linux вы можете использо- вать настройки generic.

 

Пример 29.15. Определение стандартных макросов конфигурации

 

DOMAIN(`generic')dnl

 

Макрос MAILER предназначен для указания обработчика почтового трафика (пример 29.16). Эти макросы должны устанавливаться в файле конфигурации последними, причем локальная программа доставки всегда добавляется ав- томатически.

 

Пример 29.16. Установка программы локальной доставки

 

MAILER(`procmail')dnl

 

Макрос включения посылки писем по протоколу SMTP всегда должен нахо- диться до макроса включения программы procmail (пример 29.17).

 

Пример 29.17. Порядок макросов MAILER

 

MAILER(`smtp')dnl MAILER(`procmail')dnl

 

Директива define(MACRO, VALUE) предназначена для определения макроса MACRO со значением VALUE. Например, для определения имени централизо- ванного почтового узла (Smart Host) в sendmail.mc указывают настройку, по- казанную в примере 29.18.


 

Пример 29.18. Определение Smart Host

 

define(`SMART_HOST', `mailrelay.provider.ru')

 

Здесь определен макрос SMART_HOST со значением mailrelay.provider.ru.

В примере 29.19 приведен простой файл конфигурации sendmail.cf.

 

Пример 29.19. Файл sendmail.mc

 

divert(-1)dnl

include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`Simple config')dnl OSTYPE(`linux')dnl define(`confDEF_USER_ID',`8:12')dnl define(`confTO_CONNECT', `1m')dnl define(`confDONT_PROBE_INTERFACES',true)dnl

define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl define(`ALIAS_FILE', `/etc/aliases')dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl FEATURE(always_add_domain)dnl FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl FEATURE(`accept_unresolvable_domains')dnl

MAILER(smtp)dnl MAILER(procmail)dnl

 

В этом файле настроек задано следующее:

r настройка define(`confDEF_USER_ID',`8:12')dnl задает UID и GID поль- зователя, от имени которого работает Sendmail (пользователь mail);

r настройка define(`confTO_CONNECT', `1m')dnl задает время ожидания соединения — 1 минута;

r используя директиву define(`confDONT_PROBE_INTERFACES',true)dnl, можно запретить Sendmail добавление имен хоста, связанных с IP- адресами интерфейсов, в класс w, задающий имена узла;

r путь к программе procmail, являющейся почтовым фильтром и исполь- зуемой в GNU/Linux для локальной доставки, задается с помощью дирек- тивы define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl;

r директива define(`ALIAS_FILE', `/etc/aliases')dnl задает имя файла почтовых псевдонимов;


 

r с помощью ограниченной оболочки Sendmail — smrsh осуществляется передача почты для обработки другим программам. Использование smrsh диктуется настройкой FEATURE(`smrsh',`/usr/sbin/smrsh')dnl;

r настройка FEATURE(always_add_domain)dnl позволяет автоматически до- бавлять адресу отправителя доменное имя;

r опции фильтра procmail для локальной доставки задаются директивой

FEATURE(local_procmail,`',`procmail -t -Y -a $h -d $u')dnl;

r разрешение на прием почты из доменов, имена узлов в которых не удается проверить в DNS, задается настройкой FEATURE(`accept_unresolvable_ domains')dnl.








Дата добавления: 2015-06-12; просмотров: 1714;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.012 сек.