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

Почтовые псевдонимы и преобразование адресов

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >

Файл 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 представляет собой полный путь к выполняемому модулю программы, которая будет заниматься дальнейшей обработкой сообщения. Более подробно работа с этим форматом описана в "Списки рассылки" . Программа для работы со списками рассылки 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, описанных в "Программа sendmail" , "Программа sendmail".

Для создания файла базы данных псевдонимов /etc/aliases.db необходимо запустить программу sendmail с параметром -bi. Когда программа sendmail запущена с этим параметром, она считывает текстовый файл /etc/aliases и автоматически формирует файл базы данных /etc/aliases.db. При установке программы sendmail создается также специальный выполняемый файл newaliases, при запуске которого выполняются действия, аналогичные работе sendmail с параметром -bi. Каждый раз после внесения изменений в текстовый файл /etc/aliases нужно запускать программу newaliases.

< Лекция 16 || Лекция 17: 12345 || Лекция 18 >