Итак, теперь, когда ваш почтовый сервер
настроен и слаженно работает, все клиенты
получают и отправляют почту, настало
идеальное время для экспериментов с
некоторыми полезными возможностями
электронной почты. В этой лекции мы обсудим
две дополнительные функции, которые может
выполнять на почтовый сервер в вашем офисе.
Первая — использование так называемых
почтовых псевдонимов (mail aliases). И
вторая — преобразование адресов
(masquerading), благодаря чему на базе
одного почтового сервера под управлением ОС
Linux вы можете поддерживать работу еще
нескольких почтовых серверов.
Файл
.forward
Один из способов задания почтовых
псевдонимов — использование файла
.forward. С
помощью этого файла легче всего
перенаправлять электронную почту с одного
адреса на другой. Схема работы
перенаправления почты с помощью файла
.forward
показана на рис. 17.1.
Рис. 17.1. Использование файла
.forward для перенаправления электронной
почты
Для любого
пользователя можно создать файл
.forward и
поместить его в рабочий каталог пользователя.
Когда программа для работы с почтой получает
сообщение для пользователя, она проверяет
наличие файла
.forward. Если таковой имеется, то
сообщение будет переслано на адреса,
указанные в этом файле, а не в почтовый ящик
пользователя. Помните, что в файле
.forward может
быть указано несколько адресов электронной
почты. Они задаются по одному в строке, и
программа для работы с электронной почтой
тиражирует пришедшее сообщение для каждого
из них.
Перенаправление почты может понадобиться в
нескольких случаях. Например, когда
пользователю по какой-либо причине
необходимо сменить адрес электронной почты (смена
фамилии и т.п.), вы можете оставить активным
на какое-то время его старый почтовый адрес,
но при этом создать в рабочем каталоге этого
пользователя файл
.forward. В этом файле необходимо
указать новый адрес электронной почты. Таким
образом, пользователь, зарегистрировавшись в
системе под новым именем, будет получать
почту, приходящую как на новый, так и на
старый адрес.
Иногда также
необходимо поддерживать некоторое время
активным адрес электронной почты сотрудника,
который уволился из организации. С помощью
файла .forward
можно обеспечить перенаправление почты с его
адреса в вашей организации на его новый
адрес электронной почты в другой компании (при
условии, что там имеется доступ к сети
Internet).
Еще одно из
применений файла
.forward — формирование простых
списков рассылки. Списки рассылки позволяют
рассылать одно сообщение нескольким
получателям, но при этом отправитель
указывает лишь одного из них. Более детально
списки рассылки рассматриваются в лекции 18,
"Списки рассылки" Несмотря на то что
существуют более комплексные методы
формирования списков рассылки, при
необходимости это можно сделать и на базе
файла .forward.
Для поддержания работы списка рассылки
необходимо создать специальную учетную
запись на сервере. Затем в рабочем каталоге
для этой записи создать файл
.forward и
внести туда всех получателей списка рассылки.
Получателями рассылки могут быть как
локальные пользователи почтового сервера,
так и пользователи других серверов, имеющие
адрес электронной почты. Пересылку сообщений
удаленным пользователям можно организовать с
помощью программы
fetchmail.
Предположим,
вам необходимо создать список рассылки с
именем officenews.
Любое сообщение, посланное на адрес
электронной почты
officenews, должно быть разослано
всем пользователям локального сервера и
нескольким клиентам, которые имеют почтовые
ящики на других серверах. Для решения этой
задачи необходимо создать учетную запись на
почтовом сервере под управлением ОС Linux с
рабочим каталогом
/home/officenews. Затем в рабочем
каталоге пользователя
officenews создать файл
.forward (содержимое
такого файла представлено в листинге 17.1).
1 rich
2 barbara
3 katie
4 jessica
5 riley
6 haley
7 matthew@othercompany.com
8 christopher@othercompany.com
9 frank@secondcompany.com
10 melanie@secondcompany.com
Листинг 17.1.
Пример файла .forward
При такой
конфигурации сообщение, полученное на адрес
officenews@smallorg.org,
будет растиражировано и его копии будут
отправлены по адресам электронной почты,
указанным в листинге. В строках 1–6 листинга
заданы пользователи локального сервера
электронной почты. В строках 7–10 указаны
адреса пользователей других почтовых
серверов, которые также получат это
сообщение.
Псевдонимы
Одна из
полезных функций программы sendmail —
возможность создания почтовых псевдонимов
для пользователей сервера электронной почты.
Иногда в определенных случаях необходимо
создать отдельные адреса электронной почты.
Например, для регистрации клиентов компании
можно создать адрес
register@smallorg.org. Если бы не
было почтовых псевдонимов, то на почтовом
сервере нужно было бы создавать новую
учетную запись c именем
register и
назначать специального сотрудника, который
бы входил на сервер под этим именем и
проверял почтовый ящик, или с помощью файла
.forward
перенаправлять сообщения из этого почтового
ящика в какой-либо другой.
При
использовании псевдонимов необходимость в
создании отдельного почтового ящика и
учетной записи отпадает. Так, вы можете
просто описать псевдоним с именем
register и
определить его для уже существующего в
системе электронной почты пользователя.
Тогда все почтовые сообщения, направленные
на адрес register,
будут автоматически перенаправлены
программой sendmail на пользователя, для
которого вы определили этот псевдоним.
Файл
aliases
Все почтовые
псевдонимы, используемые программой sendmail,
находятся в одном файле с именем
aliases. Этот
файл обычно находится в каталоге
/etc, но его
местоположение можно изменить в файле
sendmail.cf. В
файле aliases
описываются псевдонимы, используемые в
адресах электронной почты. Описание
псевдонима заключается в сопоставлении его с
реальным адресом электронной почты,
программой или файлом. Каждый псевдоним
описывается в отдельной строке. Псевдонимы
могут быть заданы в четырех представленных
ниже форматах.
Формат 1:
name: name_1,
name_2, name_3, ...
Формат 2:
name: | program
Формат 3:
name: file
Формат 4:
name :include :filelist
В первом
случае почтовый псевдоним указывает на один
или несколько реальных адресов электронной
почты. Здесь строка, описывающая псевдоним,
интерпретируется следующим образом:
name — имя
псевдонима, name_1,
name_2 ... — адреса электронной почты,
на которые пересылается сообщение, если оно
было получено на адрес, содержащий псевдоним
name. Здесь
можно использовать несколько адресов. На
каждый из них будет пересылаться копия
сообщения.
Второй формат
определения псевдонимов предполагает, что
псевдоним может указывать на какую-либо
программу. То есть при обращении к адресу,
который является псевдонимом, будет
запускаться определенная программа. Таким
образом, аргумент
program представляет собой полный
путь к выполняемому модулю программы,
которая будет заниматься дальнейшей
обработкой сообщения. Более подробно работа
с этим форматом описана в лекции 18.
Программа для работы со списками рассылки
Majordomo широко использует при обработке
сообщений именно этот формат.
Третий формат
применения псевдонимов предполагает
сохранение всех поступивших сообщений в
определенный файл. Аргумент
file — полный
путь к текстовому файлу, в который будут
помещаться сообщения. Для обеспечения
нормальной работы такой схемы нужно
правильно задать права доступа к этому файлу.
Чтение и запись должны быть разрешены и в
файл, и в каталог, в котором он находится.
Последний
формат описания псевдонимов позволяет
пересылать принятые сообщения по списку
адресов электронной почты, которые
содержатся в файле. В этом случае аргумент
filelist
представляет собой полный путь к файлу, в
котором содержится список адресов
электронной почты. Описание псевдонимов в
этом формате было бы идентично формату 1,
если бы вы указали адреса из списка через
запятую. Однако этот формат удобно
использовать, если требуется оперировать с
большими списками адресов, которые к тому же
часто меняются.
Соглашения
об использовании почтовых псевдонимов
Почтовый
псевдоним, представленный в файле
aliases в
любом из приведенных выше форматов,
действителен только для локального сервера
электронной почты. То есть вы не можете
создавать на локальном сервере псевдоним
вида alias@otherhost.com
для переадресации почты на удаленный хост.
Однако адрес, на который указывает псевдоним,
может быть адресом на удаленном почтовом
сервере.
В листинге
17.2 приведен пример файла
aliases из ОС
Mandrake Linux 6.0.
1 #
2 # @(#)aliases 8.2 (Berkeley) 3/5/94
3 #
4 # Aliases in this file will NOT be
expanded in the header from
5 # Mail, but WILL be visible over
networks or from /bin/mail.
6 #
7 # >>>>>>>> The program "newaliases"
must be run after
8 # >> note >> this file is updated for
any changes to
9 # >>>>>>>>> show through to sendmail.
10 #
11
12 # Basic system aliases -- these MUST
be present.
13 MAILER-DAEMON: postmaster
14 postmaster: root
15
16 # General redirections for pseudo
accounts.
17 bin: root
18 daemon: root
19 games: root
20 ingres: root
21 nobody: root
22 system: root
23 toor: root
24 uucp: root
25
26 # Well-known aliases.
27 manager: root
28 dumper: root
29 operator: root
30
31 # trap decode to catch security
attacks
32 decode: root
33
34 # Person who should get root's mail
35 root: rich
36
37 # Program used to auto-reply to
messages
38 auto-test: |/home/rich/auto-test
39
40 # Send all messages to a text file
41 saveme: /home/rich/test.txt
42
43 # Send all messages to remote site
44 rich: rich@othercompany.com
45
46 #Create a simple multi-user mail list
47 officenews: :include:/home/rich/office.txt
Листинг 17.2.
Пример файла /etc/aliases
В строках
13–32 листинга 17.2 почта перенаправляется
от обычных пользователей ОС Linux,
создаваемых при установке операционной
системы, пользователю
root. Таким образом вы сможете
наблюдать за попытками несанкционированного
доступа в систему с использованием системных
имен. Если идентификаторы этих пользователей
не указаны псевдонимами для пользователя
root, то все
приходящие на них сообщения будут утеряны. В
строке 35 указано перенаправление почты с
помощью псевдонима от пользователя
root
администратору сервера. И помните: если вы
одновременно являетесь и системным
администратором, не стоит очень часто
входить в систему в качестве пользователя
root.
Старайтесь входить в систему под своим
именем и лишь при необходимости использовать
права пользователя
root.
В строке 38
сообщения перенаправляются указанной
программе. Чтобы оболочка смогла
самостоятельно запустить программу, должен
быть описан полный путь к ней. В строке 41
приведен пример назначения псевдонима
текстовому файлу, в который будут собраны
все сообщения, посланные на адрес-псевдоним.
Помните о правильности разрешения прав
доступа к файлу, иначе система будет
генерировать сообщения о нарушении прав
доступа к файлу и не выполнять необходимых
действий.
В строке 44
вы видите, как с помощью псевдонима
сообщение перенаправляется на удаленный
сервер. Как и в случае с использованием
файла .forward,
можно перенаправить почтовое сообщение
пользователю, который имеет учетную запись
на другом почтовом сервере. Эти функции
могут быть полезны, если пользователь
курсирует между несколькими почтовыми
серверами в разных филиалах компании или
переходит на работу в другую компанию и
необходимо какое-то время поддерживать его
старую учетную запись.
В строке 47
приведен пример использования в качестве
псевдонима файла со списком адресов, по
которым осуществляется рассылка. Файл
/home/rich/office.txt
представляет собой обычный текстовый файл со
списком адресов электронной почты, подобный
файлу .forward.
Когда по адресу, содержащему псевдоним
officenews,
приходит сообщение, считывается файл
office.txt, и
копии сообщения рассылаются по адресам,
указанным в нем.
Программа
newaliases
Администратор
почтовой системы описывает псевдонимы в
текстовом файле
/etc/aliases, но программа sendmail
при обработке почты считывает другой файл —
/etc/aliases.db.
В этом файле псевдонимы хранятся уже в
хешированном виде, как и большинство других
настроек sendmail, описанных в лекции 10, "Программа
sendmail".
Для создания
файла базы данных псевдонимов
/etc/aliases.db
необходимо запустить программу sendmail с
параметром -bi.
Когда программа sendmail запущена с этим
параметром, она считывает текстовый файл
/etc/aliases и
автоматически формирует файл базы данных
/etc/aliases.db.
При установке программы sendmail создается
также специальный выполняемый файл
newaliases,
при запуске которого выполняются действия,
аналогичные работе sendmail с параметром
-bi. Каждый
раз после внесения изменений в текстовый
файл /etc/aliases
нужно запускать программу
newaliases.
Преобразование адресов (маскарадинг)
Как и на
обычном маскараде, адреса электронной почты
или IP-адреса могут "притворяться" другими.
Звучит это немного странно, но смысл
преобразования адресов лучше всего
передается словом маскарад (по-английски
masquerade — притворяться, надевать маску).
В профессиональных кругах вместо
словосочетаний "преобразование адресов" или
"подстановка адресов" чаще употребляется
термин "маскарадинг". В этом разделе мы
рассмотрим методики, которые могут
использоваться программой sendmail, для
приема и отправки сообщений электронной
почты с подставными адресами.
Преобразование адреса одного хоста
В лекции 13,
"Подключение почтового сервера к провайдеру
Internet", уже демонстрировалось возможное
применение преобразованного адреса хоста.
Например, очень часто желательно настроить
почтовый сервер для приема и передачи
сообщений с доменным именем, без имени
самого почтового сервера в адресной части.
Как правило, почтовый сервер на базе ОС
Linux принимает и передает электронную почту,
адресованную определенному хосту. Если имя
хоста, на котором находится почтовый сервер
mail1, то весь
обмен сообщениями будет осуществляться по
полному доменному имени
mail1.smallorg.org.
Для того чтобы направить письмо пользователю
этого сервера, необходимо указать в адресе
электронной почты полное имя хоста:
username@mail1.smallorg.org
Чтобы
почтовый сервер на базе ОС Linux мог
принимать сообщения, адресованные на
доменное имя без указания имени хоста,
необходимо сделать две вещи. Во-первых,
МХ-запись в
DNS для этого домена должна указывать на
определенный почтовый сервер — либо на
сервер провайдера, либо на локальный
почтовый сервер вашей компании, в
зависимости от способа подключения к сети
Internet. Таким образом удаленные хосты
информируются о том, что почтовый сервер
будет принимать почту на доменное имя (в
нашем случае это
smallorg.org). База данных сервера
DNS, содержащая сведения о доменах сети
Internet, рассмотрена нами в лекции 4, "DNS
и доменные имена". Запись в DNS о почтовом
сервере под управлением ОС Linux, который
обслуживает домен, выглядит примерно так:
smallorg.org IN MX
10 mail1.smallorg.org
По этой
записи вся почта от удаленных хостов,
направленная в домен
smallorg.org, будет передаваться
прямо на хост
mail1.smallorg.org (локальный
почтовый сервер). Так решается проблема с
приемом входящей почты.
Вторая часть
этой головоломки — исходящая почта,
отправляемая с локального почтового сервера.
Несмотря на то что теперь ваш почтовый
сервер может принимать сообщения из
Internet, адресованные в домен
smallorg.org,
исходящие сообщения посылаются с полным
именем хоста в поле обратного адреса. Это
может привести к неустойчивой работе системы
электронной почты. Здесь на помощь приходит
преобразование адресов.
Преобразование почтовых адресов при работе
sendmail позволяет изменять содержимое полей
заголовков исходящих сообщений, в частности
поля, где указывается обратный адрес.
Содержимое этого поля заголовка должно быть
изменено таким образом, чтобы обратный адрес
указывал на нужный домен, а не на имя хоста
в домене. Таким образом, даже если сообщение
будет послано непосредственно с локального
почтового сервера, в поле обратного адреса
все равно будет указано имя домена, а не
хоста. Для разрешения преобразования адресов
в программе sendmail необходимо настроить
соответствующим образом файл конфигурации
sendmail.
Как уже
отмечалось в лекции 11, "Установка и
конфигурирование sendmail", для изменения
настроек в файле конфигурации sendmail
создается файл макросов. Затем для создания
нового файла конфигурации запускается
макропроцессор GNU m4.
Директива, с помощью которой в программе
sendmail включается преобразование адресов,
представлена ниже:
MASQUERADE_AS(domain),
где
domain —
доменное имя, которое sendmail должна
использовать в качестве обратного адреса в
заголовках исходящих сообщений. Обратите
внимание: эта директива изменяет только
обратные адреса в заголовках сообщений. Если
нужно изменить все заголовки сообщений с
учетом маскарадинга доменного имени, то
воспользуйтесь настройкой:
FEATURE('masquerade_envelope')
Для более
тонкой настройки преобразования адресов на
почтовом сервере можно использовать другие
опции. В табл. 17.1 приведен список настроек,
которые можно применять в программе sendmail
для преобразования адресов электронной почты.
Таблица 17.1. Настройки для
преобразования адресов в sendmail
Настройка |
Описание |
masquerade_envelope |
Преобразование
адресов отправителя и получателя
в конверте сообщения |
allmasquerade |
Принудительное
преобразование всех адресов
получателей |
limited_masquerade |
Избирательное
преобразование адресов |
masquerade_entire_domain |
Преобразование
адресов для нескольких доменных
имен, определенных в настройке
MASQUERADE_DOMAIN |
Преобразование адресов нескольких хостов
В крупных
офисах иногда целесообразно распределять
различные функции почтового сервера между
несколькими хост-компьютерами. Идея
мультисерверной сети заключается в том, что
один сервер выступает в роли центрального
почтового узла (его еще называют почтовым
хабом), в то время как другие серверы
обслуживают клиентов почтовой системы,
которые отправляют и получают почтовые
сообщения. Благодаря этому снимается
нагрузка на центральный почтовый сервер, но
если вы имеете дело с сотнями и даже
тысячами пользователей, то такая схема
работы почтовой системы, скорее, затруднит
ее функционирование. Конечно же, бывают
ситуации, когда поддержание нескольких
почтовых серверов продиктовано, скорее,
политическими, а не техническими
соображениями. На рис. 17.2 представлен
пример мультисерверной системы электронной
почты.
Рис. 17.2. Мультисерверная почтовая
система
На
центральном почтовом сервере под управлением
ОС Linux используется одна из стандартных
схем подключения к провайдеру Internet,
описанных в лекции 13. Вспомогательные
почтовые серверы должны быть
сконфигурированы для работы с центральным
сервером, который выступает в роли
интеллектуального хоста. Кроме того, на
вспомогательных серверах в программе
sendmail должны быть включены настройки для
преобразования адресов, что позволит
изменять обратные адреса в исходящих
сообщениях пользователей на доменное имя.
Применение
такой конфигурации упрощает исходящие
сообщения, поскольку, к какому из
вспомогательных серверов не был бы подключен
пользователь, адрес его электронной почты
будет одним и тем же (если, конечно, на двух
вспомогательных серверах нет пользователей с
одним и тем же именем). Однако при работе по
данной схеме возникают некоторые проблемы с
входящей почтой. Предположим, что на
вспомогательном почтовом сервере с именем
spoke1.smallorg.org
имеется пользователь
frank. Все исходящие сообщения от
сервера
spoke1.smallorg.org посылаются через
центральный почтовый сервер провайдеру
Internet. Если используется преобразование
адресов, обратный адрес пользователя
frank будет
frank@smallorg.org.
На рис. 17.3 иллюстрируется этот пример.
Рис. 17.3. Пример отправки сообщения
через вспомогательный почтовый сервер
Итак,
исходящее сообщение поступает от
вспомогательного сервера на центральный
почтовый сервер и далее, через сервер
провайдера, в сеть Internet. А как же ведет
себя входящее сообщение? Предположим, что
запись в DNS, определяющая почтовый сервер
для домена, указывает на сервер провайдера.
Тот, в свою очередь, собирает почту для
вашего домена и передает ее через
определенные интервалы времени на
центральный почтовый сервер вашего домена.
Затем центральный почтовый сервер определяет,
на какой из вспомогательных серверов нужно
переслать пришедшие сообщения. На рис. 17.4
показана схема получения сообщения для
пользователя на вспомогательном сервере.
Рис. 17.4. Схема прохождения
сообщения для пользователя на
вспомогательном сервере (в данном случае
сообщение утеряно)
Если обратный
адрес в сообщении указан как
frank@spoke1.smallorg.org, то работа
центрального сервера сильно упрощается.
Однако в нашем случае (и в реальной жизни
тоже) в сообщении указывается обратный адрес
frank@smallorg.org.
Центральный почтовый сервер (hub.smallorg.org)
сконфигурирован для преобразования всех
адресов к виду
smallorg.org. Итак, центральный
почтовый сервер при получении сообщения для
пользователя frank
решает, что домен
smallorg.org достигнут, а этот
пользователь является пользователем на
сервере
hub.smallorg.org. Очевидно, что такой
пользователь на центральном сервере
отсутствует, следовательно, сообщение будет
возвращено отправителю из-за невозможности
его доставки.
Для решения
этой проблемы можно воспользоваться файлом
aliases на
центральном сервере. Если создать для
пользователя frank
псевдоним, который будет указывать на адрес
frank@spoke1.smallorg.org, то
сообщение будет доставлено на
соответствующий почтовый сервер, откуда
пользователь frank
сможет его получить. Хотя такой способ имеет
право на существование, все же он
представляется не совсем правильным. Чаще в
такой ситуации применяется специальная
конфигурация программы sendmail — поддержка
виртуальных хостов (виртуальный хостинг).
С помощью этой настройки почта для
пользователя frank
будет пересылаться на соответствующий
вспомогательный почтовый сервер и затем в
почтовый ящик пользователя
frank.
Виртуальный хостинг
Виртуальный
хостинг позволяет программе sendmail
обращаться к специальной таблице
пользователей, в которой описываются способы
перенаправления входящих сообщений. Эта
таблица напоминает файл
aliases, но
является более универсальной. На рис. 17.5
представлена схема работы таблицы
виртуальных пользователей.
Рис. 17.5. Пересылка почты с помощью
таблицы виртуальных пользователей
Сначала
необходимо создать новый файл конфигурации
для sendmail, где описывается центральный
почтовый сервер. Для использования
виртуального хостинга задайте в файле
макросов настройку
virtusertable. Это делается следующим
образом:
FEATURE ('virtusertable',
'hash /etc/virtusertable')
После
регенерации файла конфигурации sendmail с
помощью макропроцессора
m4
перезапустите на сервере программу sendmail.
Создайте
таблицу виртуальных пользователей, в которой
указывается, каким образом, пользователям
будут пересылаться почтовые сообщения. Как и
файл aliases,
таблица виртуальных пользователей
представляет собой текстовый файл, который
необходимо преобразовать в файл хешированной
базы данных.
Текстовая
версия таблицы виртуальных пользователей
содержится в файле
/etc/virtusertable.
Каждый
пользователь должен описываться в отдельной
строке. Формат записи в таблице виртуальных
пользователей следующий:
virtaddress
realaddress,
где
virtaddress —
адрес виртуального пользователя, для
которого sendmail будет принимать сообщения,
а realaddress
— его реальный почтовый адрес, на который
sendmail будет пересылать принятые сообщения.
Эти два адреса в строке таблицы должны
разделяться символом табуляции (клавиша
Tab). В листинге 17.3 представлен пример
таблицы виртуальных пользователей.
1 frank@smallorg.org
frank@spoke1.smallorg.org
2 melanie@smallorg.org melanie@spoke1.smallorg.org
3 haley@smallorg.org haley@spoke2.smallorg.org
4 riley@smallorg.org
riley@spoke2.smallorg. org
5 katie@smallorg.org katie@spoke3.smallorg.
org
6 jessicaiasmallorg.org jessica@spoke3.smallorg.org
7 rich@smallorg.org rich
8 barbara@smallorg.org barbara
Листинг 17.3.
Пример файла /etc/virtusertable
В строках 1 и
2 листинга 17.3 описаны пользователи,
которые работают с электронной почтой через
сервер
spoke1.smallorg.org. Таким образом,
когда центральный почтовый сервер получает
сообщение на адрес
frank@smallorg.org, он автоматически
пересылает его на
frank@spoke1.smallorg.org. То же
самое происходит в строках 3–4 —
пользователи сервера
spoke2.smallorg.org получают почту из
Internet через центральный почтовый сервер
hub.smallorg.org.
Таким же образом обслуживаются и остальные
вспомогательные почтовые серверы в локальной
сети. При создании новой учетной записи на
одном из вспомогательных серверов необходимо
добавлять соответствующую строку в таблицу
виртуальных пользователей. Помните также,
что на двух вспомогательных почтовых
серверах нельзя использовать одинаковые
имена пользователей.
Строки 7 и 8
немного отличаются от предыдущих. В них
описаны пользователи центрального почтового
сервера
hub.smallorg.org. Дело в том, что по
умолчанию, если имя пользователя не указано
в таблице виртуальных пользователей,
программа sendmail предполагает, что она
имеет дело с пользователем на локальном
сервере. Следовательно, строки 7 и 8 можно
было бы опустить, но иногда для учета
пользователей их желательно указывать.
После
создания файла /etc/virtusertable
его необходимо преобразовать в формат
хешированной базы данных, понятный программе
sendmail. Для этого воспользуйтесь
программой makemap.
Формат команды на запуск
makemap
следующий:
makemap hash /etc/virtusertable
< /etc/virtusertable
Возможно, он
покажется вам несколько необычным, но именно
таким образом из текстового файла
/etc/virtusertable
программа makemap
создает файл /etc/virtusertable.db.
При внесении каких-либо изменений в таблицу
виртуальных пользователей необходимо
повторно запускать программу
makemap.
Кроме
пересылки сообщений на соответствующие
вспомогательные почтовые серверы, таблица
виртуальных пользователей может применяться
и для других целей. В листинге 17.4
представлено несколько дополнительных
записей, которые могут присутствовать в
файле /etc/virtusertable.
1 rich@smallorg.org
rich@othermail.com
2 @acct.smallorg. acct
3 baduser@smallorg.org error:nouser No
such user
4 register@smallorg.org rich
5 officenews@smallorg.org officenews
6 @smallorg.org %1@neworg.org
Листинг 17.4.
Дополнительные записи в /etc/virtusertable
В строках
листинга 17.4 представлены все возможные
варианты записей, поддерживаемых в таблице
виртуальных пользователей. В строке 1
представлена запись, которая выполняет
фактически ту же функцию, что и файл
aliases, —
пересылает сообщения на адрес электронной
почты пользователя другого почтового сервера
в сети Internet.
Запись в
строке 2, вероятно, очень часто применяется
вашим провайдером сети Internet. С ее
помощью вся почта, адресованная
определенному домену, направляется в один
почтовый ящик на сервере. Этот способ
обработки почты может быть весьма полезен,
если необходимо поддерживать связь с
удаленными филиалами офиса, которые
соединяются с центральным почтовым сервером
для получения почты на домен второго уровня
acct.smallorg.org.
В лекции 13 подробно описан процесс рассылки
сообщений из общего почтового ящика на
главном сервере в индивидуальные ящики
пользователей на удаленных серверах.
В строке 3
представлена еще одна полезная запись,
применяемая в таблице виртуальных
пользователей. Например, если необходимо
принудительно выдать на определенный адрес
электронной почты сообщение об ошибке, то
это можно сделать прямо в таблице. В строке
4 представлена запись, благодаря которой
почта, принятая на псевдоним,
перенаправляется на реальную учетную запись
пользователя локального почтового сервера.
В строке 5
представлена запись таблицы виртуальных
пользователей, совмещающая функции почтовых
псевдонимов со своими функциями. При
создании псевдонима
officenews, описанного в начале
лекции, таблица виртуальных пользователей
может перенаправлять на локальный псевдоним
сообщения, посланные на этот адрес. И если в
качестве локального псевдонима будет задан
список адресов электронной почты в виде
файла, то сообщение будет разослано каждому
из них.
Запись в
строке 6 представляет собой довольно редкий
случай перенаправления сообщений электронной
почты. Если по какой-либо причине возникает
необходимость перенаправлять электронную
почту для целого домена, то приведенная в
строке 6 запись решает именно эту задачу. В
этой записи все сообщения для домена
smallorg.org
будут перенаправлены в домен
neworg.org.
Имена пользователей при этом остаются
неизменными.
Резюме
В этой лекции
мы рассмотрели несколько дополнительных
функций, присущих офисным системам
электронной почты. Довольно часто в системе
электронной почты возникает потребность
создания временных учетных записей для
специальных событий или для выполнения
определенных задач. Так, программа sendmail
позволяет использовать почтовые псевдонимы
для перенаправления почтовых сообщений от
несуществующего пользователя на действующий
почтовый ящик. В файле
/etc/aliases
хранятся все псевдонимы для действующих
почтовых ящиков. Для преобразования
текcтового файла
/etc/aliases в хешированную базу
данных, к которой сможет обращаться
программа sendmail, воспользуйтесь
программой newaliases.
При внесении каких-либо изменений в
текстовую версию файла также необходимо
запускать программу
newaliases, с помощью которой эти
изменения вносятся и в файл хешированной
базы данных. Еще одна полезная функция
программы sendmail — преобразование адресов
электронной почты (маскарадинг). С его
помощью несколько хостов могут использовать
в обратных адресах сообщений одно и то же
доменное имя. Для этого необходимо
организовать центральный почтовый сервер и
создать на нем таблицу виртуальных
пользователей. С помощью таблицы виртуальных
пользователей центральный почтовый сервер
может доставлять сообщения, адресованные
пользователям домена, в почтовые ящики на
соответствующих вспомогательных почтовых
серверах.
|