Tcp/ip и Интернет 2



страница13/25
Дата18.11.2016
Размер1.5 Mb.
Просмотров3348
Скачиваний0
1   ...   9   10   11   12   13   14   15   16   ...   25

31. Фильтрация почты


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

Эти почтовые фильтры используются для борьбы со спамом, распознавания вирусов, статистического анализа, шифрования и многих других целей. Почтовые фильтры поддерживаются как утилитой sendmail, так и транспортными агентами сервера Postfix; вместо них сервер Exim использует обычные фильтры и списки контроля доступа aka ACL. Транспортные агенты применяют почтовые фильтры к входящим сообщениям, пока те еще остаются на связи с сайтом-отправителем. Почтовые фильтры могут распознать профиль вируса или спама и сообщить об этом транспортному агенту, игнорировать со­ общение, создать записи в журнале или предпринять другое действие, которое вы со­ чтете приемлемым. Почтовые фильтры имеют доступ и к метаданным, и к содержимому сообщения.

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

32. Почтовый агент 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), но не вводит никакого адреса для тестирования (

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

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

Местоположение каталога конфигурации программы 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


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

Postfix — популярная альтернатива программе sendmail О 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.



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

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

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

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

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

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

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

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

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

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

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

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

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

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

Программа 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 еще не обнаружены де­ фекты, которые можно было бы использовать дистанционно.




Поделитесь с Вашими друзьями:
1   ...   9   10   11   12   13   14   15   16   ...   25


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал