Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Почтовый агент sendmail



Почтовый агент sendmail распространяется в виде открытого кода и доступен на сайте sendmail.org, но в настоящее время его редко приходится собирать с само­ го начала. При желании можно сослаться на файл верхнего уровня INSTALL. Если не­ обходимо обойти определенные установки, сделанные по умолчанию, то можно найти их в файле devtools/OS/имя-вашей-OS. Можно также добавить новые функциональ­ ные свойства, отредактировав файл devtools/Site/site.config.m4. Программа sendmail использует препроцессор макросов m4 не только во время компиляции, но и для конфигурирования. Файл конфигурации m4 обычно называется имя_компьютера. mc. Он компилируется из довольно понятного синтаксиса в совершенно невразумитель­ ный низкоуровневый язык и записывается в файл имя_компьютера.cf, который в свою очередь инсталлируется как /etc/mail/sendmail.cf.

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

linux$ /usr/sbin/sendmail -d0.1 -bt < /dev/null

Version 8.13.8

Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG

MAP_REGEX MATCHGECOS MILTER MIME7T08 MIME8T07 NAMED_BIND

NETINET NETINET6 NETUNIX NEWDB NIS PIPELINING SASLv2 SCANF

SOCKETMAP STARTTLS TCPWRAPPERS USERDB USE_LDAP_INIT

необходимой для выполнения их функций, включая следующие.

Конфигурация простых клиентов.

Конфигурация почтового сервера, имеющего выход в Интернет.

Управление маршрутизацией входящей и исходящей корреспонденции. Штемпелевание почты, поступающей от центрального сервера или самого домена. Безопасность.

Отладка.

Если вы реализуете почтовую систему с нуля и не придерживаетесь заранее установ­

============ SYSTEM IDENTITY (after readcf) ============

(short domain name) $w = ross

(canonical domain name) $j = ross.atrust.com

822 Часть II. Работа в сети

(subdomain name) $m = atrust.com

(node name) $k = ross.atrust.com

Эта команда переводит программу sendmail в режимы проверки адреса (-bt) и отладки (-d0.1), но не вводит никакого адреса для тестирования (</dev/null). Побочный эффект заключается в том, что программа sendmail сообщает номер своей версии и флаги компилятора, с которыми она компилировалась. Зная номер версии, вы можете зайти на веб-сайт sendmail.org и увидеть, существуют ли у этой версии про­ граммы скрытые недостатки.

Для того чтобы найти файлы программы sendmail в своей системе, посмотрите в начало инсталлированного файла /etc/mail/sendmail.cf. Комментарии, которые там находятся, содержат имя каталога, в котором была собрана данная конфигурация. Этот каталог, в свою очередь, приведет вас к файлу .mc, являющемуся исходным источ­ ником конфигурации.

Большинство поставщиков программы sendmail включают в дистрибутивный пакет не только исполняемый модуль, но и каталог cf из дистрибутивного дерева, который они скрывают среди файлов операционной системы. Найти его поможет табл. 20.5.

Таблица 20.5. Местоположение каталога конфигурации программы sendmail

Система Каталог

Ubuntu /usr/share/sendmail

SUSE /usr/share/sendmail

Red Hat /usr/share/sendmail-cf

Solaris /etc/mail/cf

HP-UX /usr/newconfig/etc/mail/cf

AIX

/usr/samples/tcpip/sendmail/cf

 

34. Почтовый агент Postfix

Постфикс — популярная альтернатива программе sendmail. Вице Венема (Wietse Venema) начал работу над проектом Postfix в 1996 году, когда проводил годичный творче­ ский отпуск в Исследовательском центре им. Т. Дж. Уотсона компании IBM (Т. J. Watson Research Center), и до сих пор активно работает над ним. Целью разработки програм­ мы Postfix является не только безопасность (хотя это ее первоочередная и самая главная цель!), но и реализация политики распространения открытого программного обеспече­ ния, высокое быстродействие, надежность и гибкость. Все основные дистрибутивные пакеты системы Linux включают Postfix, а начиная с версии 10.3 система Mac OS X по умолчанию оснащается почтовой системой Postfix, а не sendmail.

Более подробно регулярные выражения описаны в разделе 2.3.

О системе Postfix следует знать два самых важных факта: во-первых, она поставляет­ ся в практически работоспособном виде (простейшие файлы конфигурации состоят из одной-двух строк) и, во-вторых, эффективно использует ассоциативные массивы регу­ лярных выражений для фильтрации почты, особенно в сочетании с библиотекой PCRE (Perl Compatible Regular Expression). Система Postfix совместима с программой sendmail в том смысле, что файлы aliases и .forward системы Postfix имеют тот же формат и семантику, что и аналогичные файлы в системе sendmail.

Система Postfix поддерживает протокол ESMTP. Кроме того, поддерживаются вирту­ альные домены и фильтрация спама.

Для перезаписи адресов система Postfix использует поиск в таблицах, которые мо­ гут быть записаны в обычных файлах или в форматах Berkeley DB, DBM, LDAP, NIS, NetInfo и SQL. Кроме того, система Postfix поддерживает протокол почтового фильтра программы sendmail, поэтому ее функционирование можно легко настроить с помощью множества открытых почтовых фильтров (внешних программ, решающих специальные задачи в ходе сеанса SMTP; см. раздел 20.6).

Архитектура системы Postfix

Система Postfix состоит из нескольких небольших взаимодействующих программ, посылающих сообщения по сети, получающих сообщения, выполняющих локальную доставку почты и т.д. Взаимодействие между ними осуществляется через сокеты локаль­ ных доменов или именованные каналы FIFO. Эта архитектура довольно сильно отлича­ ется от архитектуры программ sendmail и Exim, в которых основную работу выполняет большая монолитная программа.

Запуск системы Postfix и слежение за всеми ее процессами выполняет программа master. В ее конфигурационном файле, master.cf, перечислены все вспомогатель­ ные программы, а также информация о том, как они должны запускаться. Значения, по умолчанию установленные в этом файле, удовлетворяют большую часть потребностей пользователей, так что изощряться не обязательно. В основном, приходится отключать программы, например smtpd, которые клиент не должен прослушивать на порту SMTP.

Самые важные серверные программы, вовлеченные в доставку электронной почты, показаны на рис. 20.4.

Глава 20. Электронная почта 877

Рис. 20.4. Серверные программы системы Postfix

Получение почты

Программа smtpd получает почту, поступающую в систему через сервер SMTP. Она также проверяет, имеют ли право клиенты, установившие соединение, отправлять по­ чту, которую они пытаются доставить. Если электронная почта послана локально с по­ мощью программы /usr/lib/sendmail, то файл записывается в каталог /var/spool/ postfix/maildrop. Этот каталог периодически сканируется программой pickup, об­ рабатывающей любой найденный новый файл.

Вся входящая почта проходит через программу cleanup, которая добавляет пропу­ щенные заголовки и перезаписывает адреса в соответствии с таблицами canonical и virtual. Прежде чем вставить сообщение в очередь входящих сообщений, программа cleanup передает его программе trivial-rewrite, которая выполняет небольшое ре­ дактирование адресов, например добавляет почтовый домен к не полностью заданным адресам.

Управление почтовыми очередями ожидания

Программа qmgr управляет пятью очередями, содержащими почту, ожидающую до­ ставки.

incoming — поступающая почта

active — доставленная почта

deferred — почта, доставка которой завершилась неудачей

hold — почта, заблокированная в очереди администратором

corrupt — почта, которую невозможно прочитать или проанализировать 
Менеджер очереди обычно выбирает следующее сообщение для обработки, руко­ водствуясь простой стратегией FIFO, но помимо нее он также поддерживает сложный алгоритм приоритетного обслуживания, который среди всей массы сообщений отдает предпочтение сообщениям, направленным избранным получателям. 
Для того чтобы не перегружать узел, предназначенный для получения почты, осо­ бенно после его выхода из строя, система Postfix использует алгоритм медленного пуска, управляющий скоростью доставки почты. 
Отложенная почта получает временную метку о повторной доставке, которая имеет экспоненциальное затухание, чтобы не затрачивать ресурсы на недоставленные сообще­ ния. Избежать излишних попыток доставить почту, которую невозможно доставить, по­ зволяет кеш статуса.

878 Часть II. Работа в сети

Отправка сообщений

Программа qmgr с помощью программы trivial-rewrite решает, куда следует по­ слать сообщение. Вместо решений, принимаемых программой trivial-rewrite, мож­ но использовать поиск в таблицах (transport_maps).

Доставка почты удаленным узлам через сервер SMTP выполняется программой smtp. Программа lmtp доставляет почту, используя протокол LMTP (Local Mail Transfer Protocol), определенный в документе RFC2033. Протокол LMTP основан на протоколе SMTP, но был модифицирован так, что почтовый сервер не обязан управлять почтовой очередью. Этот обработчик почты очень полезен для доставки сообщений на почтовые серверы, такие как Cyrus IMAP.

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

Программа virtual доставляет почту в “виртуальные почтовые ящики”, т.е. в по­ чтовые ящики, не связанные с локальной учетной записью в системе Linux, но имею­ щие корректные адреса.

В заключение программа pipe выполняет доставку посредством внешних программ. Безопасность

Система Postfix обеспечивает безопасность на нескольких уровнях. Большинство серверных программ системы Postfix могут выполняться в окружении, созданном с по­ мощью команды chroot. Это отдельные программы, не имеющие отношений типа “предок-потомок”. Ни одна из них не имеет механизма setuid. Каталог maildrop запол­ няется группой postdrop, для которой программа postdrop установила идентификатор setgid.

Впечатляет тот факт, что ни в одной версии системы Postfix еще не обнаружены де­ фекты, которые можно было бы использовать дистанционно.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.