Транспортный агент (Transport Agent) играет важнейшую роль
в безопасности и чистоте регуляции сообщений в Exchange Server
2007. Его действия распространяются на уровне центральной и
граничной транспортировки.
Транспортная архитектура Exchange Server 2007 сделана таким
образом, что весь поток сообщений, проходящих через сервер,
может быть обработан транспортными агентами(transport agents).
Агенты используют Application Programming Interface (API,
интерфейс программирования приложений, или другими словами
набор готовых функций, который могут использовать
разработчики), что интересно – точно такое же набор функций
использован Microsoft, чтобы создать стандартизированного
транспортного агента, который поставляется вместе с Exchange
2007.
SMTP события
SMTP Event(SMTP события), которые применялись в Exchange
Server 2003, показали свою несостоятельность, поэтому Вы не
найдете их в новой версии Exchange 2007, где используется
совершенно новый протокол SMTP и способ транспортировки.
Как было сказано выше, теперь используются транспортные
агенты. Как только сообщение приходит на сервер, его
перенаправляют через транспортную сеть SMTP(рисунок 1), при
этом каждое SMTP событие может иметь транспортных агентов,
которые имеют доступ к сообщению и могут производить некоторые
действия.
Рисунок 1: SMTP
события. Процесс исполнения слева направо
Все SMTP события происходят лишь после того, как произойдет
определенное действие. Ниже показана таблица, с помощью
которой можно понять очередность и какой тип действия
используется в каждом случае.
Таблица 1
Очередность
SMTP событие
Происходит при
1 |
OnConnectEvent |
От удаленного хоста посылается сигнал на
установление соединения |
2 |
OnHeloCommand |
Исходит команда HELO SMTP |
3 |
OnEhloCommand |
Исходит команда EHLO SMTP |
4 |
OnAuthCommand |
Исходит команда AUTH SMTP |
5 |
OnEndOfAuthentication |
Полная аутентификация завершена |
6 |
OnMailCommand |
Исходит команда MAIL FROM SMTP |
7 |
OnRcptCommand |
Исходит команда RCPT TO SMTP |
8 |
OnDataCommand |
Исходит команда DATA SMTP |
9 |
OnEndOfHeaders |
Заголовки сообщений были полностью утверждены |
10 |
OnEndOfData |
Удаленный сервер посылает <CRLF>.<CRLF>,
что означает конец потока данных |
** |
OnHelpCommand |
Действие помощи может быть вызвано в любой момент
после OnConnectEvent и до
OnDisconnectEvent SMTP события |
** |
OnNoopCommand |
Команда пустого действия может быть вызвана в любой
момент после OnConnectEvent и до
OnDisconnectEvent SMTP события |
** |
OnReject |
Получающий хост посылает код уведомления на
посылающий SMTP хост. Событие может быть вызвано в любой
момент после OnConnectEvent и до
OnDisconnectEvent SMTP события. |
** |
OnRsetCommand |
Событие включается в работу после посылки действия
RSET SMTP активным(в данный момент производит отправку)
SMTP хостом. Событие может быть вызвано в любой момент
после OnConnectEvent и до
OnDisconnectEvent SMTP события. |
11 |
OnDisconnectEvent |
Событие включается после отсоединения либо от
посылающего, либо от принимающего хоста |
12 |
OnSubmittedMessage |
Событие включается сразу после попадания сообщения в
очередь Submission. Все сообщения вызывают это событие
назависимо от того пришли ли они через SMTP, MAPI или
директорий Pickup(Replay). |
13 |
OnRoutedMessage |
После распределения всех сообщений по категориями,
завершения записи листов распределения и получения
ответа со стороны получателя |
Таблицу, находящуюся выше, можно найти в документации по
Exchange 2007 или на сайте TechNet (http://technet.microsoft.com/en-us/library/aa996847.aspx).
Транспортные агенты и их роль в передаче
Транспортные агенты, которые встроены в сервис передачи,
могут быть полезны лишь там, где этот сервис вообще доступен –
крайней и центральной транспортных системах. Каждый
транспортный агент будет сопоставлен с другими в соответствии
с его ролью, приоритетом и SMTP событиями, которые его
вызывают. Эти стандартные агенты были также разработаны с
использованием API, который может свободно применяться любым
программистом.
Роль центральной передачи(2 транспортных агента)
Таблица 2
Имя агента
Приоритет
SMTP события
Transport Rule agent(агент, управляющий
передачей) |
1 |
OnRoutedMessage |
Journaling agent(агент, делающий заметки в
журнале) |
2 |
OnSubmittedMessage,
OnRoutedMessage |
Важной особенностью центральной передачи является то, что
стандартные транспортные агенты могут быть обнаружены на
уровне категоризации(на нем происходит определение категории
объекта) после их вызова событием(показано на рисунке 2).
Рисунок 2:
Транспортные агенты, управляющие при центральной передаче
Роль системы крайней передачи(10 транспортных агентов):
Таблица 3
Имя агента
Приоритет
SMTP события
Connection Filtering agent(фильтрация соединений) |
1 |
OnConnectEvent, OnMailCommand, OnRcptComand,
OnEndOfHeaders |
Address Rewriting Inbound agent(перезапись входящих
адресов) |
2 |
OnRcptCommand, OnEndOfHeaders |
Edge Rule agent(управляющий краевыми функциями) |
3 |
OnEndOfData |
Content Filter agent(фильтрующий содержимое) |
4 |
OnEndOfData |
Sender ID agent(посылающий идентификационный
номер) |
5 |
OnEndOfHeaders |
Sender Filter agent(фильтрующий отправляемое) |
6 |
OnMailCommand, OnEndOfHeaders |
Recipient Filter agent(фильтрующий получаемое) |
7 |
OnRcptCommand |
Protocol Analysis agent(анализатор протокола) |
8 |
OnEndOfHeaders, OnEndOfData, OnReject,
OnRsetCommand, OnDisconnectEvent |
Attachment Filtering agent(фильтрующий вложенное) |
9 |
OnEndOfData |
Address Rewriting Outbound agent(перезаписывающий
исходящие адреса) |
10 |
OnRcptCommand,
OnEndOfHeaders |
Вы видите правила краевой(граничной) передачи на рисунке 3.
Каждый транспортный агент использует специальное SMTP
событие.(рис 3)
Рисунок 3:
Транспортные агенты и SMTP события на уровне граничной
передачи
Замечание. Чтобы увидеть полную картину
транспортной(как центральной, так и краевой) архитектуры,
можно скачать pdf файлы в секции «дополнительная
информация»(More Information)
Установка антиспам-агентов в центральной системе
передачи
У нас есть прекрасный пример, который показывает всю пользу
транспортных агентов – один компьютер, выполняющий сразу 3
действия(Почтовый ящик, центральная передача и допуск клиента
к ресурсам). Эта машина ответственна за весь интернет трафик.
В таком случае транспортные агенты будут ответственны за все
процессы «чистки» (антиспам, фильтр содержимого и т.д.), здесь
их польза бесспорна.
Несмотря на то, что изначально существует лишь 2
транспортных агента(в центральной передаче), использование
скрипта Install-AntiSpamAgents.ps1 позволит создать
дополнительных, таких как Connection Filtering, Content
Filtering, Sender ID, Sender Filter, RecipientFilter и
Protocol Analysis(о них было подробнее написано выше). Если не
производить установку дополнительно, то их можно найти лишь в
системе граничной передачи.(Edge Transport).
Для установки антиспам-агентов необходимо провести
следующие операции:
- Подключиться к центральному транспортную серверу
- Открыть оболочку управления Exchange
- Запустить скрипт Install-AntispamAgents.ps1, который
находится в папке Scripts(на диске с установочными файлами,
рис 4)
Рисунок 4: Установка
антиспам-агентов на уровне центральной транспортной передачи
После установки перезапускаем сервис Exchange Transport,
чтобы новые транспортные агенты вступили в действие, появится
новая вкладка в консоли управления(при раскрытии слева
Organization Configuration, рис 5) Теперь новые агенты
запускаются в качестве транспортных и работают на прием, а
старые два продолжают работать на уровне
категоризации(Categorizer).
Рисунок 5: Новая
вкладка Анти-спам на уровне центральной транспортной передачи