Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1811 / 140 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 11:

Установка и конфигурирование sendmail

Определение опций sendmail

Директива: define

Директива define используется для установки определенных опций файла конфигурации sendmail. Большинство опций конфигурации sendmail могут изменять свое значение под действием директивы define. Формат директивы define следующий:

define ('option', 'value'),

где option — описываемая опция, а value — ее новое значение. Названия опций файла конфигурации обычно начинаются с 'conf'.

Чаще всего для почтового сервера на базе ОС Linux требуется изменение опции SMART_HOST. С ее помощью объявляется удаленный хост, который принимает все почтовые сообщения, адресованные удаленным хостам. Формат опций SMART_HOST в директиве define следующий:

define ('SMART_HOST', 'mailer:host'),

где mailer — почтовый протокол, необходимый для доставки сообщения, а host — это узловой хост.

Определение альтернативного почтового узла

Директива: MASQUERADE_AS

Директива MASQUERADE_AS позволяет sendmail выступать в другом качестве. Формат директивы следующий:

MASQUERADE_AS ('hostname'),

где hostname — полнофункциональное имя хоста и/или имя домена. Программа sendmail во всех исходящих сообщениях будет заменять имя hostname на значение, заданное директивой MASQUERADE_AS hostname. Такое действие распространяется и на поле FROM: заголовка сообщения формата RFC822.

Хотя на первый взгляд присвоение хосту другого имени может показаться бессмысленным, все же эта директива очень полезна. В сети Internet использование доменных имен в качестве адресов электронной почты стало стандартом де-факто. Так, например, адрес prez@smallorg.org понятней, чем адрес prez@mailhost1.smallorg.org. Именно для этого и предназначена директива MASQUERADE_AS.

Имя хоста почтового сервера будет замещаться в sendmail именем домена путем использования доменного имени в качестве значения MASQUERADE_AS. Тогда в поле FROM: заголовка сообщения будет представлен короткий и понятный адрес без полного имени хоста, а лишь с именем домена. Естественно, при этом МХ-запись в DNS для данного домена должна указывать на почтовый сервер, в противном случае обратный адрес будет работать некорректно (см. "Подключение почтового сервера к провайдеру Internet" , "Подключение почтового сервера к провайдеру Internet").

Определение систем транспортировки сообщения

Директива: MAILER

Директива MAILER применяется для определения почтовой системы, которая будет работать в связке с sendmail при транспортировке сообщений. Каждый протокол, используемый для транспортировки почты, должен быть описан директивой MAILER. Формат директивы MAILER следующий:

MAILER('mailer'),

где mailer — название системы транспортировки почты (почтовой программы). Все типы систем транспортировки почты, доступные для использования в sendmail, представлены в табл. 11.3.

Таблица 11.3. Типы транспортных систем в sendmail
Почтовая программа Описание
cyrus Определяет почтовые программы cyrus и cyrusbb
fax Определяет факсимильную почтовую программу
local Определяет программы local и prog (включены автоматически)
mail11 Определяет почтовую программу mail11 для работы в сети DECnet
phquery Определяет программу phquery
pop Определяет почтовую программу для работы по протоколу POP3
procmail Определяет почтовую программу procmail
smtp Определяет почтовую программу для работы по протоколу SMTP
uucp Определяет почтовую программу для работы по протоколу UUCP
usenet Определяет почтовую программу для работы с конференциями Usenet

Все почтовые программы должны быть объявлены в конце файла макросов. Кроме того, при объявлении почтовых программ smtp и uucp нужно первой объявлять почтовую программу smtp или uucp-dom (которая посылает почту в формате SMTP через UUCP-соединение), в противном случае они не будут работать корректно.

Создание файла sendmail.cf

После создания файла макросов можно выполнить обработать его макропроцессором GNU m4 и получить тестовый файл конфигурации. Такая операция выполняется с помощью следующей команды:

m4 test.mc > test.cf

Результатом выполнения этой команды будет файл test.cf, который представляет собой полнофункциональный файл конфигурации sendmail. В следующем разделе приводятся примеры файлов конфигурации, созданных именно таким образом.

И, наконец, можно провести тестирование файла конфигурации, запустив программу sendmail с параметрами -bt и -C, как было сказано в "Программа sendmail" , "Программа sendmail". Если созданный вами файл конфигурации выполняет все необходимые действия, то можно сделать резервную копию рабочего файла /etc/sendmail.cf и на его место скопировать новый. Ввиду того что программа sendmail считывает свой файл конфигурации лишь один раз при запуске, следует перезапустить программу sendmail, чтобы она перечитала файл конфигурации. Это можно сделать с помощью сигнала SIGHUP, посланного процессу sendmail. В листинге 11.5 представлен пример этой процедуры.

1 [carol@shadrach carol]$ su
2 Password:
3 [root@shadrach carol]# ps ax | grep sendmail
4 14061 ? S 0:00 sendmail: accepting connections on port 25
5 26666 pts/0 S 0:00 grep sendmail
6 [root@shadradh carol]# kill -HUP 14061
7 [root@shadrach carol]# ps ax | grep sendmail
8 26667 ? S 0:00 sendmail: accepting connections on port 25
9 26670 pts/0 S 0:00 grep sendmail
10 [root@shadrach carol]#
Листинг 11.5. Пример задания сигнала SIGHUP программе sendmail

Примеры конфигурирования sendmail

Создавать файлы конфигурации sendmail с помощью файлов макросов и макропроцессора m4 довольно просто. Однако иногда нелегко определить, какие директивы следует включить в ту или иную конфигурацию почтового сервера. В этом разделе рассматривается несколько типовых конфигураций почтовых серверов и файлы макросов к ним, из которых затем создаются файлы конфигурации для обработки почты в заданных условиях.