Украина, kyiv |
Установка и конфигурирование 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 применяется для определения почтовой системы, которая будет работать в связке с sendmail при транспортировке сообщений. Каждый протокол, используемый для транспортировки почты, должен быть описан директивой MAILER. Формат директивы MAILER следующий:
MAILER('mailer'),
где mailer — название системы транспортировки почты (почтовой программы). Все типы систем транспортировки почты, доступные для использования в sendmail, представлены в табл. 11.3.
Все почтовые программы должны быть объявлены в конце файла макросов. Кроме того, при объявлении почтовых программ 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 довольно просто. Однако иногда нелегко определить, какие директивы следует включить в ту или иную конфигурацию почтового сервера. В этом разделе рассматривается несколько типовых конфигураций почтовых серверов и файлы макросов к ним, из которых затем создаются файлы конфигурации для обработки почты в заданных условиях.