Почтовые псевдонимы
Категория: Электронная почта | Автор: admin | 23-05-2010, 23:00 | Просмотров: 7649

Псевдонимы позволяют системному администратору и отдельным пользователям переадресовывать почту. Ими можно пользоваться для задания списков рассылки, для пересылки почты между компьютерами и для того, чтобы к пользователям можно было обращаться по нескольким именам. Псевдонимы обрабатываются рекурсивно, поэтому могут указывать на объекты, которые, в свою очередь, являются псевдонимами.

Программа sendmail поддерживает несколько механизмов создания псевдонимов, а именно: протокол LDAP, службы NIS и NIS+, систему NetInfo (разработка NeXT/Apple), базы данных почтовой маршрутизации, а также различные файлы псевдонимов, которые могут создаваться пользователями и системными администраторами.

Если требуется придерживаться концепции личных почтовых каталогов пользователей, рекомендуем реализовать ее путем хранения псевдонимов на сервере LDAP. Другие методы обладают рядом недостатков. Традиционными файлами псевдонимов обычно должен управлять пользователь root. В случае базы данных псевдонимов ее приходится перестраивать при каждом изменении, а затем реплицировать на все компьютеры, которые доставляют почту. В тех организациях, где имеется много виртуальных доменов, в каждом домене ведется отдельный фрагмент файла псевдонимов, а общий файл псевдонимов собирается посредством специального сценария.

Сам по себе протокол LDAP не может работать с псевдонимами списков рассылки. Ими лучше управлять при помощи стандартных механизмов псевдонимов.

Программа sendndmail работает с сервером LDAP почти так же, как с сервером DNS. Сервер DNS необходим для преобразования имен в IP-адреса, чтобы можно было определить, куда следует послать сообщение. Аналогичным образом с помощью сервера LDAP ведется поиск псевдонимов, позволяющих перенаправлять почту в правильное место. В обоих случаях поиск начинается в простых файлах (/etc/hosts и /etc/aliases) и заканчивается в базе данных.

Протокол LDAP подробно описан в этой главе, а также в главе 18. В конце этого параграфа мы расскажем о том, как работает данный протокол, затем, в параграфе 19.8, рассмотрим вопросы взаимодействия LDAP и sendmail и, наконец, в параграфе 19.9 приведем пример использования протокола для создания псевдонимов и виртуального хостинга.

Однако прежде всего следует рассмотреть традиционные способы назначения псевдонимов. Псевдонимы могут быть определены в трех местах (к сожалению, с использованием трех разных синтаксисов):

  • в файле конфигурации пользовательского агента (пользователем-отправителем);
  • в общесистемном файле псевдонимов /etc/mail/aliases (системным администратором);
  • в пользовательском файле переадресации ~/.forward (пользователем-получателем).

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

Транспортный агент, т.е. программа sendmail, ищет псевдонимы в глобальном файле aliases, а затем в общесистемном файле .forward или в файлах переадресации получателей. Псевдонимы применяются только к тем сообщениям, которые программа sendmail считает локальными.

Вот несколько примеров определения псевдонимов в файле aliases:

 

nemeth: evi

evi: evi@mailhub

authors: evi,garth,scott,trent

 

 

В первой строке указано, что почту, поступающую на имя nemeth, следует доставлять пользователю evi на локальном компьютере. Во второй — что всю почту, приходящую на имя evi, следует доставлять на компьютер mailhub. И наконец, третья строка определяет, что почту, адресованную группе authors следует доставлять пользователям evi, garth, scott и trent. Благодаря рекурсии почта, посланная на имя nemeth, попадет по адресу evi@mailhub.

Глобальные псевдонимы определяются в файле /etc/mail/aliases (в некоторых системах — /usr/lib/aliases или /etc/aliases). Местонахождение файла aliases указывается в файле конфигурации программы sendmail. Допускается наличие нескольких файлов aliases, а также использование альтернативных механизмов, например службы NIS или специальных баз данных.

 

Записи файла aliases имеют следующий формат:

локальное_имя: получателъ1, получатель2,   ...

 

где локальное_имя — это адрес, сопоставляемый с адресом входящего сообщения, а список получателей содержит либо адреса получателей, либо другие псевдонимы. Строки с отступом считаются продолжением предыдущих строк.

С точки зрения системы электронной почты файл aliases имеет приоритет над файлом /etc/passwd, поэтому существование записи

david: david@somewhere_else.edu

 

не позволит локальному пользователю david вообще когда-либо получить почту. По этой причине при добавлении новых пользователей (вручную или с помощью сценария adduser) необходимо проверять и файл passwd, и файл aliases.

Файл /etc/mail/aliases всегда должен содержать псевдоним postmaster, который обеспечивает пересылку сообщений лицу, отвечающему за работу электронной почты. Кроме того, должен существовать псевдоним для автоматических сообщений программы sendmail. Обычно он называется Mailer-Daemon и эквивалентен псевдониму postmaster.

Почту, приходящую на имя root, необходимо переадресовывать администратору или лицу, которое входит в систему ежедневно. Учетные записи bin, sys, daemon, nobody и hostmaster (и все остальные имеющиеся в системе псевдопользовательские учетные записи) также должны располагать псевдонимами, с помощью которых осуществлялась бы пересылка почты реальному пользователю. Файл sendmail/aliases из дистрибутива программы является хорошим шаблоном для создания псевдонимов системного уровня. В нем можно найти советы относительно безопасности и примеры того, как обрабатываются некоторые пользовательские запросы.

Программа sendmail выявляет циклы в псевдонимах, способные привести к бесконечной пересылке почты к месту назначения и обратно. Программа подсчитывает число строк "Received" в заголовке сообщения и, как только это число превышает установленный лимит (обычно он равен 25), возвращает сообщение отправителю. Каждое посещение сообщением нового компьютера на жаргоне разработчиков sendmail называется "прыжком" (hop), а возвращение сообщения отправителю — "рикошетом" (bounce).

Помимо списков пользователей псевдонимы могут обозначать:

  • файл, содержащий список адресов;
  • файл, в который должны добавляться сообщения;
  •  команду, на вход которой должны передаваться сообщения.

Поскольку отправитель сообщения полностью определяет его содержимое, указанные выше элементы часто используются хакерами. Однако программа sendmail очень подозрительна в отношении владельцев и прав доступа к таким файлам и командам. Чтобы избавить программу от этой подозрительности, нужно установить одну из опций DontBlameSendmail. К сожалению, сообщения об ошибках, которые генерируются программой sendmail при обнаружении нарушений, касающихся прав доступа и владельцев файлов, не всегда понятны.

 

Получение списков рассылки из файла

 

Директива :include: является отличным способом управления пользовательскими списками рассылки. Она позволяет не указывать объекты, обозначаемые псевдонимом, непосредственно в файле aliases, а брать их из внешнего файла. Этот файл можно изменять без вмешательства системного администратора, отвечающего за глобальный файл aliases.

Для создания списка рассылки системный администратор должен ввести псевдоним в глобальный файл aliases, а затем создать подключаемый файл и при помощи команды chown сделать его владельцем пользователя, управляющего списком рассылки. Например, файл aliases может содержать строку:

sabook:   :include:/usr/local/mail/usah.readers

 

Файл usah.readers должен находиться в локальной файловой системе, а не в системе, смонтированной средствами NFS. Кроме того, запись в этот файл должна быть разрешена только его владельцу. Для полноты нужно также создать псевдоним, соответствующий владельцу списка рассылки, с тем чтобы сообщения об ошибках ("рикошеты") посылались владельцу, а не отправителю сообщения:

owner-sabook:evi

 

О списках рассылки и их взаимосвязи с файлом aliases речь пойдет чуть ниже.

 

Направление почты в файл

 

Если объект, на который указывает псевдоним, — это абсолютное путевое имя файла (заключенное в двойные кавычки при наличии специальных символов), то сообщения добавляются в указанный файл. Сам файл должен существовать. Вот пример псевдонима:

complaints:  /dev/null

 

Возможность посылать почту в файл или на вход программы очень полезна, но она ослабляет безопасность и поэтому должна быть ограничена Приведенный синтаксис подходит только для файлов aliases и пользовательских файлов .forward (а также для файлов, которые присоединяются к ним посредством директивы :include:). Имена файлов не трактуются как адреса, поэтому почта, направленная по адресу /etc/passwd@host.domain, будет возвращена.

В базах данных LDAP нельзя указывать файлы в качестве места доставки почты. Некоторые пользовательские агенты позволяют направлять почту в локальный файл (например, в папку исходящей почты), но таким способом создается копия сообщения, т.е. сообщение в действительности не посылается в почтовую систему.

Если ссылка на файл содержится в файле aliases, то адресуемый файл должен либо иметь разрешение на запись для всех пользователей, либо иметь установленный бит смены идентификатора пользователя (SUID) и быть неисполняемым, либо принадлежать основному пользователю программы sendmail. Этот пользователь задается при помощи опции DefaultUser. Обычно им является пользователь mailnull, daemon или пользователь со значениями UID и GID, равными 1.

Если же ссылка на файл содержится в файле .forward, то адресуемый файл должен принадлежать и быть доступным для записи основном) получателю сообщения. Необходимо, чтобы этот пользователь был указан в файле /etc/passwd, а его интерпретатор команд был упомянут в файле /etc/shells. Для файлов, принадлежащих пользователю root, следует задать режим доступа 4644 или 4600, т.е. установить бит SUID и отменить возможность выполнения.

 

Направление почты в программу

 

Благодаря псевдонимам можно организовать перенаправление почты на вход заданной программы. Это реализуется с помощью строки примерно следующего вида:

autoftp:  "| /usr/local/bin/ftpserver"

 

Однако использование такого механизма создает еще более серьезные бреши в защите, чем направление почты в файл, поэтому данный механизм разрешен только для файлов aliases и .forward, а также для файлов, которые присоединяются к ним посредством директивы :include:. В файле aliases программа вызывается от имени основного пользователя программы sendmail, в остальных случаях — от имени владельца файла .forward или подключаемого файла. Такой пользователь должен быть указан в файле /etc/passwd, а его интерпретатор команд должен быть упомянут в файле /etc/shells.

Вызываемая программа использует каталог очереди программы sendmail в качестве рабочего, но не всем интерпретаторам команд разрешен к нему доступ. Если выдается сообщение об ошибке, просмотрите в документации сведения о флаге D= агента доставки.

Направление почты в файл создает потенциальную брешь в системе защиты. Поэтому из соображений безопасности не следует использовать программу /bin/sh в качестве агента доставки. Вместо этого применяйте программу smrsh, которая представляет собой усеченный интерпретатор команд sendmail.

 

Примеры псевдонимов

 

Вот некоторые псевдонимы, которые могут понадобиться системному администратору:

 

# Обязательные псевдонимы

postmaster:  trouble, evi

postmistress: postmaster

MAILER-DAEMON:  postmaster

hostmaster: trent

abuse: postmaster

webmaster: trouble, trent

root: trouble, trent

usenet: newsmaster

 

# Списки рассылки для "проблемной" почты

trouble: :include:/usr/local/mail/trouble.alias

troubletrap:  "/usr/local/mail/logs/troublemail"

tmr: troubletrap, :include:/usr/local/mail/tmr.alias

 

# Для удобства системного администратора

diary:  "/usr/local/admin/diary"

info:  "| /usr/local/bin/sendinfo"

 

# Псевдонимы учебных классов, меняющиеся каждый семестр

sa-class: real-sa-class@nag

real-sa-class:  :include:/usr/local/adm/sa-class.list

 

 

В данном примере мы хотим, чтобы при возникновении проблем все пользователи университетского городка могли посылать почту по одному псевдониму: trouble. Отчеты о проблемах всегда должны направляться соответствующей группе местных системных администраторов. Мы считаем, что почтовые псевдонимы нужно задавать так, чтобы:

  • почтовые сообщения о неисправностях всегда поступали в соответствую­щую локальную группу;
  • на всех компьютерах использовался одинаковый файл псевдонимов;
  • отдельные группы администраторов контролировали свои собственные списки рассылки;
  • копии всех почтовых сообщений о неисправностях поступали в локальный журнальный файл каждой группы.

В приведенном выше примере эти цели достигнуты: определение псевдонима trouble берется из одного и того же файла на каждом компьютере Почта по адресу trouble@anchor и почта по адресу trouble@boulder попадает в конце концов в разные места, несмотря на то что на компьютерах anchor и boulder используется один и тот же файл /etc/mail/aliases.

В пределах каждого факультета почтовые сообщения о неисправностях обычно обрабатываются на одном компьютере. Например, при наличии адреса

troubles@главный_компьютер
 

 

в файле trouble.alias на подчиненном компьютере сообщения о неисправностях направляются на соответствующий главный компьютер.

Поступившее сообщение посылается псевдониму tmr, под которым скрываются читатели почты о неисправностях. Псевдоним tmr задан таким образом, что сообщение сначала записывается в журнальный файл благодаря псевдониму troubletrap, а затем рассылается пользователям, список которых берется из файла на главном компьютере. Включение администраторов-новичков в список tmr — хороший способ ознакомить их с типичными вопросами по сопровождению системы, с ответами администраторов и с тем льстивым тоном, которым нужно общаться с пользователями.

Данный механизм — лишь верхушка айсберга, малая часть солидной системы обработки диагностической электронной почты queuemh, построенной на базе пользовательского агента mh.

Псевдоним sa-class является двухуровневым, поэтому файл данных, содержащий список студентов, может управляться с одного компьютера: nag. Для псевдонима sabook, приводившегося в одном из предыдущих примеров также должен использоваться такой подход, чтобы не требовалось копировать подключаемый файл.

Псевдоним diary очень удобен для тех студенческих администраторе, которым требуется документировать свои действия. В файле diary системные администраторы могут хранить сообщения о важных событиях в жизни компьютера (обновление ОС и аппаратных средств, поломки и т.п.). Однако не помещайте этот файл в ту же файловую систему, что и журнальные файлы. Хакеры могут добиться переполнения файловой системы и тем самым воспрепятствовать записи в журнальные файлы (что позволит им замести следы).

 

Перенаправление почты

 

Файл aliases — это общесистемный конфигурационный файл, который должен вестись администратором. Если какой-нибудь пользователь захочет перенаправлять свою почту (а для доступа к почте в организации не применяется протокол POP или IMAP), он сможет сделать это путем создание файла .forward в своем начальном каталоге. Раньше программа sendmail всегда просматривала начальные каталоги пользователей на предмет наличия файла .forward, однако сейчас для включения данного режима необходимо использовать переменную ForwardPath. Файл .forward часто применяется в случае когда пользователь хочет получать почту на конкретном компьютере или когда он переходит из одного подразделения в другое и хочет, чтобы почта пересылалась туда.

Файл .forward состоит из одной строки, в которой содержится список разделенных запятыми адресов, или из нескольких строк с адресами в каждой. Например:

 

evi@ipn.caida.org

evi@xor.com

 

 

или

 

mcbryan,  "/home/mcbryan/archive", mcbryan@flsupil.gmd.de

 

В первом примере почта пользователя evi не будет сохраняться на локальном компьютере, а будет пересылаться на компьютер ipn в организации CAIDA (Сан-Диего) и на узел xor.com. Второй пример — это запись пользователя, который не доверяет почтовым системам и хочет, чтобы его почта копировалась в три места: в обычный почтовый каталог на локальном компьютере, в постоянный архив всей входящей почты и по временному адресу в Германии, где он в настоящей момент находится. Обратная косая перед именем пользователя предписывает сохранять почту на локальном компьютере вне зависимости от того, что задают файлы aliases и .forward.

Если речь идет о временных изменениях в системе маршрутизации почты, то лучше использовать файл .forward, чем глобальный файл aliases. Накладные расходы (машинное и пользовательское время), необходимые для изменения общесистемных псевдонимов, довольно высоки.

Пользовательский файл .forward должен принадлежать данному пользователю и не иметь разрешения на запись для группы и остальных пользователей. Если программа sendmail решит, что путь к файлу .forward является безопасным (т.е. на пути от корневого каталога не нарушаются права доступа), то файл .forward будет включен в почтовую систему. В противном случае присоединения не произойдет, так как подозрительные файлы .forward игнорируются. Права доступа к родительскому каталогу также должны быть правильными (т.е. право записи должен иметь только тот пользователь, который владеет файлами).

Естественно, программа sendmail должна обладать правом доступа к начальному каталогу пользователя на компьютере, куда доставляется почта, ведь программе нужно определить, имеется ли там файл .forward. Если изменение адреса носит постоянный характер, его необходимо внести в файл /etc/mail/aliases, так как начальный каталог и файлы пользователя будут в конечном итоге удалены.

Программа sendmail располагает чудесным средством, FEATURE ('redirect’), которое позволяет обрабатывать изменения почтовых адресов. Если псевдоним пользователя указывает на адрес пользователь@новый_адрес.REDIRECT, почта возвращается отправителю с уведомлением о новом адресе. Поскольку сообщение не пересылается по новому адресу, отправитель вынужден внести изменение в свою адресную книгу и повторно послать сообщение.

Программу sendmail можно сконфигурировать на поддержку центрального каталога для файлов .forward. Это, однако, удобнее для программы sendmail, а не для пользователей. Местоположение файлов .forward задается опцией ForwardPath, которая указывает сначала на центральный каталог, а затем на начальный каталог пользователя. В доменном файле generic.m4 (приведен в параграфе 19.9) содержится пример задания центрального каталога для файлов .forward.

Записи глобального файла aliases имеют приоритет над записями файла .forward. Поскольку эти файлы ведутся разными людьми, следует действовать очень аккуратно и следить, чтобы не создавались "почтовые циклы". Если пользователь сети имеет почтовый каталог (и, следовательно, запись в глобальном файле aliases), он не может с помощью файла .forward перенаправлять почту на компьютер, где используется такой же файл псевдонимов. Например, в университете штата Колорадо, где мы применяем глобальный файл aliases, запись

evi: evi@boulder

 

и файл .forward на компьютере boulder, содержащий строку

 

evi@anchor.cs

 

создадут "почтовый цикл". Почта, адресованная пользователю evi, будет направляться на компьютер boulder, где в файле .forward задана ее пересылка на компьютер anchor в поддомене "cs". Однако в файле aliases на компьютере anchor содержится указание пересылать почту обратно на компьютер boulder. После 25 переходов почта будет возвращена отправителю.

Если ваш основной способ коммуникации — электронная почта, то уведомить пользователя о возникновении "почтового цикла" непросто. Когда псевдоним задан в виде пользователь , почта будет доставляться на локальный компьютер независимо от того, что указано в общесистемном файле aliases и пользовательском файле .forward. Если именно на этом компьютере пользователь ожидает получить почту — прекрасно, если нет, пошлите сообщение о цикле псевдониму postmaster или обратитесь к проверенному средству: телефону.

 

Хэшированием база данных псевдонимов

 

Поскольку элементы в файле aliases расположены неупорядоченно, прямой поиск в этом файле был бы для программы sendmail неэффективным. Поэтому создается хэшированная версия файла aliases. Это делается либо средствами библиотеки Berkeley DB, либо с помощью программы ndbm, которая является стандартом для большинства версий UNIX. Хэширование значительно ускоряет поиск псевдонимов, особенно в больших файлах.

Файлы, образованные из файла /etc/mail/aliases, называются aliases.db (если они получены средствами DB) или aliases.dir и aliases.pag (в случае использования ndbm). Файл с расширением dir — это индекс для файла с расширением pag, в котором находятся данные. При каждом изменении файла aliases хэшированную базу данных следует перестраивать с помощью команды newaliases, которая просто вызывает программу sendmail со специальными флагами командной строки (-bi), указывающими на необходимость перестройки базы данных. Если команда newaliases вызывается в автоматическом режиме, сохраняйте выходные сообщения об ошибках, поскольку могут быть проблемы с форматированием.

Компилируя программу sendmail, нужно включить поддержку базы данных либо для библиотеки dbm/ndbm, либо для библиотеки Berkeley DB, либо для обеих сразу. Если подключены обе библиотеки и создается файл базы данных, тип которого не указан, используется версия DB. Если применяется служба NIS, программа sendmail создаст базы данных обоих типов, но работать будет только с версией DB.

 

Библиотека Berkeley DB написана и сопровождается Китом Бостиком (Keith Bostic) и Марго Сельцер (Margo Seltzer); ее код можно получить на Web-узле www.sleepycat.com. Она намного лучше (обеспечивает более быстрый доступ и меньшие размеры файлов базы данных), чем программа ndbm. Библиотека имеет открытый код и свободно распространяется при условии, что она не входит в состав коммерческого продукта. В противном случае требуется приобрести лицензию.

 

Списки рассылки и программы для работы с ними

 

Список рассылки — это громадный псевдоним, при помощи которого копия каждого сообщения, адресованного списку, передается каждому члену списка. Списки рассылки подобны группам новостей Usenet, в которых новости распространяются посредством электронной почты.

Списки рассылки обычно объявляются в файле aliases, но формируются во внешнем файле. Существуют стандартные соглашения по присвоению имен, понятные программе sendmail и специальным программам ведения списков рассылки. Опытные пользователи тоже придерживаются их. Эти соглашения иллюстрируются следующими примерами:

 

mylist:   :include:/etc/mail/include/mylist

owner-mylist: mylist-request

mylist-request: evi

owner-owner: postmaster

 

 

где mylist — имя списка рассылки; в файле /etc/mail/include/mylist содержится список его членов. Сообщения об ошибках, возникающие при отправке почты по списку рассылки, и запросы на включение в список новых членов посылаются его владельцу: пользователю evi. Косвенная адресация "владелец — запрос — пользователь" удобна, так как адрес владельца (mylist-request) становится адресом "Return-Path" каждого сообщения, посылаемого в список рассылки. Псевдоним mylist-request — более подходящая форма, чем настоящее имя владельца. Сообщения об ошибках при направлении писем псевдониму owner-mylist (на самом деле это evi) посылаются псевдониму owner-owner.

Если доставку сообщения выполнить невозможно и владельцу списка возвращается сообщение об ошибке, это называется рикошетом (bounce). Если же невозможно доставить само сообщение об ошибке, то уведомление об этом называется двойным рикошетом. В нашем примере такое уведомление посылается псевдониму owner-owner (т.е. postmaster).

Когда используется общесистемный файл псевдонимов, необходимо ввести еще один уровень косвенной адресации, связав псевдоним mylist с адресом реальное_имя_списка@главный_компьютер, чтобы файл данных, содержащий список членов, хранился только в одном месте.

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

Majordomo (www.greatcircle.com);

Mailman (www.list.org);

ListProc (www.cren.net);

SmartList (www.procmail.org);

LISTSERV Lite (www.lsoft.org)

 

Хороший FAQ-архив на тему программ для списков рассылки составлен Нормом Алексом (Norm Aleks) и доступен на FTP-узле rtfm.mit.edu (ищите раздел mail/list-admin). К сожалению, этот архив больше не пополняется, поэтому может содержать несколько устаревшую информацию. Тем не менее в нем много полезных сведений, способных помочь в выборе нужной программы.

SmartList — самая простая и маленькая по объему программа из данного перечня, a ListProc — самая большая и сложная. Остальные, согласно этому критерию, находятся где-то посредине. Они отличаются методами управления списками рассылки. Одни больше ориентированы на администраторов (ListProc), другие — на пользователей, управляющих списками рассылки (Majordomo, Mailman, SmartList, LISTSERV Lite). Программы Majordomo и LISTSERV Lite поддерживают удаленное администрирование. Управляющему списком даже не нужно регистрироваться на том компьютере, где находится список, поскольку все операции осуществляются по электронной почте. Большинство программ позволяет создавать информационные подборки (дайджесты) на основе материалов, публикуемых в списке рассылки. Одни делают это автоматически (ListProc, Mailman, LISTSERV Lite), а другие — после соответствующего конфигурирования вручную (SmartList, Majordomo)

Мы предпочитаем использовать Majordomo, однако, по слухам, некоторые организации переходят на Mailman. Программы ListProc и LISTSERV Lite являются коммерческими, поэтому менее предпочтительны: первая — дорогая, а вторая — доступна только в двоичных кодах и ненадежна в работе. Мы не пробовали работать с пакетом SmartList, однако нам нравится программа procmail, на основе которой он построен.

Ниже кратко описана каждая из этих программ. За более подробной информацией обращайтесь к документации.

 

Majordomo

 

Majordomo — это написанный на языках Perl и С программный пакет, который можно получить на Web-узле www.greatcircle.com. Программа была создана Брентом Чапманом (Brent Chapman), улучшена Джоном Руйаром (John Rouillard), а в настоящее время сопровождается Чаном Уилсоном (Chan Wilson). Разработка программы приостановлена. Majordomo 2 существует только в виде бета-версии, поэтому мы опишем исходную версию программы.

Majordomo выполняется с правами непривилегированного пользователя, обычно от имени пользователя majordom и группы daemon. Если в системе поддерживаются длинные имена (более 8 символов), можно задать имя majordomo в качестве регистрационного. Пользователь должен принадлежать к числу "доверенных" пользователей программы sendmail и быть упомянутым в ее конфигурации (обычно посредством объявления опции confTRUSTED_USERS).

 

Majordomo конфигурируется при помощи файла majordomo.cf. Этот файл содержит команды на языке Perl, посредством которых инициализируются переменные, задаются каталоги, определяются поддерживаемые списки рассылки и правила доставки сообщений об ошибках. Вспомогательная программа conf-test позволяет протестировать конфигурационный файл на предмет отсутствия нужных переменных и синтаксических ошибок.

Majordomo требует наличия специальных псевдонимов в файле aliases программы sendmail. Самый правильный способ их интеграции в систему — создание отдельного файла псевдонимов для Majordomo (последние версии программы sendmail поддерживают несколько файлов псевдонимов). Такой файл содержит псевдонимы для самого пакета Majordomo и набор псевдонимов для каждого управляемого им списка рассылки. Дистрибутив пакета включает файл majodomo.aliases, который может служить образцом.

Пользователи часто задают вопрос о том, как исключить себя из списка рассылки (отказаться от подписки). Что касается списков, управляемых программой Majordomo, то ответ звучит так. Чтобы отказаться от получения информации из списка имя_списка@имя_узла, следует направить по адресу majordomo@имя_узла сообщение, в теле (а не в заголовке) которого есть фраза "unsubscribe имя_списка" или "unsubscribe имя_списка адрес_электронной_почты".

В первом случае сообщение должно быть отправлено именно с того компьютера, с которого ранее была осуществлена подписка на рассылку. Во втором случае имя компьютера, для которого следует отказаться от подписки, является частью почтового адреса. Просмотрите еще раз параграф 19.2, где рассказывается, как извлечь необходимую информацию из заголовков сообщения, чтобы отказаться от подписки даже в том случае, когда вы забыли, с какого компьютера когда-то подписались на рассылку. Для некоторых списков рассылки достаточно послать сообщение с текстом "unsubscribe" по адресу имя_списка-request@имя_узла.

Никогда не посылайте сообщение об отказе от подписки непосредственно в список рассылки, поскольку оно будет разослано всем его подписчикам и все поймут, что вы не понимаете, что делаете.

 

Mailman

 

Mailman — это довольно молодой член семейства программ, предназначенных для работы со списками рассылки (версия 1.0 программы появилась в июле 1999 года). Программу можно найти на Web-узле www.list.org или в GNU-архивах. Ее автором является Джон Виега (John Viega). Сейчас в ее разработке принимают участие Кен Манхаймер (Ken Manheimer) и Барри Уорсо (Barry Warsaw). Как и Majordomo, программа Mailman написана на языке сценариев, но в данном случае это Python (www.python.org).

Толчком к созданию Mailman послужили недостатки программы Majordomo: плохое управление "рикошетами", сложный способ конфигурирования дополнительных возможностей (в частности, информационных подборок и списков с централизованным управлением), а также низкая производительность при работе с большими списками. В дистрибутив Mailman входит сценарий, который позволяет импортировать списки Majordomo. Программа Mailman обладает также средствами обнаружения спама и борьбы с ним.

Большим преимуществом программы является ее Web-интерфейс. Его наличие упрощает координатору списка (модератору) или почтмейстеру процесс управления списком, а пользователям — подписку, отказ от рассылки и настройку списка.

 

ListProc

 

ListProc — это одна из старейших программ данного класса. Она была написана в 1991 г. Анастасиосом Котсиконасом (Anastasios Kotsikonas) и поддерживалась приблизительно до 1994 года. Затем, после нескольких лет забвения, в 1998 г. появилась новая бета-версия программы. Ее можно было бесплатно получить на факультете вычислительной техники в университете Бостона, но на несколько странных условиях лицензирования. Сейчас программа ListProc доступна на Web-узле www.cren.net, но условия ее получения неприемлемы (2000$ за копию, даже для университетов). Так что забудьте о ListProc и пользуйтесь свободно распространяемыми программами с открытым кодом.

 

SmartList

 

Программу SmartList написал Стефан ван ден Берг (Stephen van den Benj), который является также автором пакета procmail. Дистрибутив SmartLisi можно найти на Web-узле www.procmail.org. Поскольку данная программа использует пакет procmail, потребуется загрузить файлы procmail.tar.gz и SmartList.tar.gz.

SmartList — простая и маленькая по объему программа. По сути она представляет собой комбинацию кода на языке С, правил пакета procmail и сценариев интерпретатора команд. С "рикошетами", главной неприятностью списков рассылки, программа борется автоматически. Пользователь автоматически удаляется из списка после того, как направленная в его адрес почта возвращается определенное число раз. Программа SmartList требует наличия в файле passwd записи (smart или, может быть, list), соответствующей "доверенному" пользователю в конфигурационном файле программы sendmail

Дистрибутив SmartList включает утилиту led, которая защищает программу от использования с несогласованным или частично отредактированным файлом конфигурации.

 

LISTSERV Lite

 

LISTSERV Lite — это усеченная версия пакета LISTSERV, коммерческого продукта компании L-Soft International, Inc. Ее автором является Эрик Тома; (Eric Thomas). Некоторые возможности LISTSERV здесь отсутствуют, поэтому программа способна управлять всего 10 списками рассылки по 500 членов каждый. Программа работает с правами псевдопользователя listserv, который должен быть владельцем ее файла. Желательно также создать группу listsen. Программа снабжена Web-интерфейсом как для подписки на рассылку, так и для управления самой программой.

Дистрибутив LISTSERV Lite можно загрузить с Web-узла www.lsoft.com. Исходный код программы не распространяется, однако доступны предварительно скомпилированные двоичные файлы для многих версий UNIX и Linux. Тем, кто уже работал с пакетом и располагает созданными им списками рассылки, может быть, имеет смысл использовать усеченную его версию. Всем остальным рекомендуем остановить свой выбор на одной из описанию ранее программ с открытым кодом.

 

LDAP

 

LDAP (Lightweight Directory Access Protocol — упрощенный протокол доступа к каталогам) — это протокол, который обеспечивает доступ к унифицированной службе каталогов. Он существует уже несколько лет, но лишь недавно начал приобретать популярность.

Администраторы обнаружили, что протокол LDAP очень удобен для выполнения самых разнообразных задач, а именно:

  • конфигурирования программы sendmail (псевдонимы, виртуальные домены и почтовые каталоги);
  • управления пользователями (регистрационные имена, пароли и т.д.);
  • ведения административных конфигурационных файлов (например, в SuSE Linux);
  • в качестве замены NIS;
  • в качестве календарного сервера;
  • для использования с подключаемыми модулями аутентификации (Pluggable Authentication Modules, РАМ).

 

Таким образом, LDAP в скором времени станет глобальным инструментом для работы с каталогами, который будет применяться во многих областях.

В основе LDAP лежат протоколы ISO и почтовая система Х.500. А такое наследство предполагает сложность, громоздкость, массу недостатков и т.д. Однако наличие в названии протокола буквы "L" указывает на отсутствие таковых. Версии 1 и 2 протокола уже прошли процесс стандартизации. Работа над версией 3 также завершена. К счастью, все версии обладают обратной совместимостью. Версии 1 и 2 не являются иерархическими, в отличие от версии 3.

Протокол LDAP очень удобен для работы с почтовыми псевдонимами, особенно сейчас, когда программа sendmail обеспечивает внутреннюю поддержку протокола. Программа sendmail может посылать серверу LDAP запрос на поиск псевдонимов, вместо того чтобы осуществлять поиск непосредственно. Протокол способен управлять маршрутизацией почты и виртуальными доменами. Средства поддержки LDAP должны быть встроены в двоичный код программы sendmail на этапе компиляции.

Тем, кто не знает, где взять программную реализацию LDAP, рекомендуем обратиться на сервер www.openldap.org организации OpenLDAP. Она получила в свое распоряжение, а затем улучшила код предыдущего сервера LDAP, разработанного в Мичиганском университете.

Записи базы данных LDAP напоминают элементы базы termcap, но с более длинными именами. Атрибуты (имена переменных) в базе данных LDAP еще не полностью стандартизованы, что может привести к несовместимости реализаций LDAP.

Атрибуты, находящиеся в первой строке записи, определяются в файле конфигурации LDAP. В приводимых ниже примерах мы предполагаем, что серверный демон LDAP (slapd в случае пакета OpenLDAP) сконфигурирован с корневым именем (запись rootdn) следующего вида:

"cn=root,dc=synac,dc=net"

 

Атрибут dc указан дважды, поскольку доменный компонент имени не может включать точку, следовательно, для представления домена synac.net требуются два элемента. Последующие атрибуты (имена переменных) могут быть произвольными. Регистр символов в данном случае не важен. Программа sendmail (которая ищет предопределенные имена атрибутов и назначает им заранее заданные значения), сервер LDAP и утилита создания базы данных LDAP должны взаимодействовать друг и другом и использовать одинаковые соглашения об именовании атрибутов.

Среди допустимых атрибутов, которые могут располагаться в первой строке записи (ключи базы данных), упомянем dn (доменное имя), о (название организации), с (название страны), uid (уникальный идентификатор, например регистрационное имя).

Программа sendmail распознает следующие дескрипторы данных:

 

mailLocalAddress

mailRoutingAddrеss

mailHost

 

 

Ниже приведен пример файла ldap.conf демона slapd:

 

# Файл ldap.conf должен быть доступен для записи всем пользователям.

BASE     dc=synack, dc=net

HOST     gw.synack.net

PORT      389

 

Он обеспечивает поддержку базы данных с записями следующего вида:

dn: uid=jon, dc=synack, dc=net

objectClass: inetLocalMailRecipient

mailLocalAddress: jon@synack.net

mailRoutingAddress: stabilej@cs.colorado.edu

uid: jon

 

 

Адрес получателя входящего сообщения сравнивается с полем mailLocalAddress. Если они совпадают, письмо перенаправляется по адресу указанному в поле mailRoutingAddress. Наличие строки objectClass необходимо: таковы требования документа RFC, который определяет взаимодействие протокола LDAP и почтовой системы. На узле gw.synack.net этому элементу базы данных соответствует псевдоним

jon: stabilej@cs.colorado.edu

 

Все это несколько длинновато, не правда ли? Такие записи базы данных могли бы заменить обычные элементы файла aliases, которые применяются для определения почтовых каталогов пользователей. Однако файл aliases все еще остается лучшим методом объявления списков рассылки (при помощи директивы :include:). Программы управления списками рассылки обычно передают (через канал) сообщение сценарию-упаковщику и повторно посылают сообщение. А LDAP-запрос может вернуть локальный адрес, по которому ведется обработка списка рассылки (посредством файла aliases), но не может непосредственно вызвать программу.


 (голосов: 1)
Версия для печати | Комментариев: 0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии в данной новости.


 
Логин
Пароль
 

 
Locations of visitors to this page