Опубликован: 21.11.2006 | Уровень: специалист | Доступ: платный
Лекция 11:

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

Рабочая станция под управлением ОС Linux

При подключении рабочей станции на базе ОС Linux к компьютерной сети офиса необходимо знать, каким образом она будет обмениваться электронной почтой с другими рабочими станциями и с внешним миром. Самое простое и очевидное решение в этом случае — использование центрального почтового сервера, на который поступает вся почта. Этот почтовый сервер иногда называют почтовым хабом (mail hub). На него возлагаются задачи обслуживания почтовых ящиков локальных пользователей и обеспечение шлюза для сети офиса при доставке почты в/из сети Internet через почтовый узел провайдера Internet. На рис. 11.3 представлена схема работы такого узла.

Рабочая станция под управлением ОС Linux и почтовый сервер

Рис. 11.3. Рабочая станция под управлением ОС Linux и почтовый сервер

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

1 divert(-1)
2 divert(0)
3 include('/usr/lib/sendmail-cf/m4/cf.m4')dnl
4 OSTYPE('linux')dnl
5
6 FEATURE('nullclient', '[192.168.1.1]')dnl
Листинг 11.6. Пример файла макросов для рабочей станции на базе ОС Linux

В строках 1–4 листинга 11.6 заданы стандартные для начала файла макросов директивы. В строке 6 определяется директива nullclient с IP-адресом 192.168.1.1. Такая конфигурация описывает обычную рабочую станцию на базе Linux, когда вся почта направляется на почтовый сервер.

Сохраните файл макросов, представленный в листинге 11.6, как test1.mc. Затем можно сгенерировать тестовый файл конфигурации:

m4 test1.mc > test1.cf

После этого протестируйте получившийся файл конфигурации test1.cf с программой sendmail. В листинге 11.7 показано, как это сделать.

1 [carol@shadrach carol]$ /usr/sbin/sendmail -bt -C testl.cf
2 ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
3 Enter <ruleset> <address>
4 > 3,0 rich
5 rewrite: ruleset 3 input: rich
6 rewrite: ruleset 3 returns: rich @ [ 192 . 168 . 1 . 1]
7 rewrite: ruleset 0 input: rich @ [ 192 . 168 . 1 . 1 ]
8 rewrite: ruleset 0 returns: $# nullclient $@[ 192 . 168 . 1 . 1 ] $: rich @ [ 192 . 168 . 1 . 1 ]
9 > 3,0 rich@otherhost.org
10 rewrite: ruleset 3 input: rich @ otherhost . org
11 rewrite: ruleset 3 returns: rich @ otherhost . org
12 rewrite: ruleset 0 input: rich @ otherhost . org
13 rewrite: ruleset 0 returns: $# nullclient $@ [ 192 . 168 . 1 . 1 ] $: rich @ otherhost . org
14 >
15 [carol@shadrach carol]$
Листинг 11.7. Тестирование файла конфигурации для рабочей станции на базе ОС Linux

В строке 1 листинга 11.7 задана команда на запуск программы sendmail для тестирования нового файла конфигурации. В режиме тестирования sendmail администратору почтовой системы предоставляется возможность моделирования различных конфигураций. В строке 4 на локальном почтовом адресе происходит тестирование наборов правил 3 и 0. В строке 8 представлены конечные результаты работы файла конфигурации sendmail. Почтовое сообщение будет переслано пользователю rich на хосте с адресом 192.168.1.1, как и планировалось. Последнее тестирование адреса электронной почты происходит в строке 9. Из строки 13 видно, что результатом работы sendmail является пересылка сообщения на почтовый узел с адресом 192.168.1.1. Такое поведение sendmail соответствует обработке директивы nullclient из файла макросов. Для выхода из режима тестирования sendmail нажмите клавиши "Ctrl" +"D". После того как полнофункциональный файл конфигурации получен, можно заменить им текущий файл конфигурации, который обычно находится в /etc/sendmail.cf. Не забудьте перезапустить программу sendmail, чтобы она перечитала новый файл конфигурации.

Valentin Diduk
Valentin Diduk
Украина, одесса, кпи, 2010
Евгений Олабин
Евгений Олабин
Беларусь, Гродно