|
Отчёт №4
|
Электронная почта
Электро́нная по́чта (англ. email, e-mail, от англ. electronic mail) — технология и предоставляемые ею услуги по пересылке и получению электронных сообщений (называемых «письма» или «электронные письма») по распределённой (в том числе глобальной) компьютерной сети. Основным отличием от прочих систем передачи сообщений (например, служб мгновенных сообщений) является возможность отложенной доставки и развитая (и запутанная из-за длительного времени развития) система взаимодействия между независимыми почтовыми серверами.
История
Появление электронной почты можно отнести к 1965 году, когда сотрудники Массачусетского технологического института (MIT) Ноэль Моррис и Том Ван Влек написали программу MAIL для операционной системы CTSS (Compatible Time-Sharing System), установленную на компьютере IBM 7090/7094. Общее развитие электронной почты шло через развитие локального взаимодействия пользователей на многопользовательских системах. Пользователи могли, используя программу mail (или её эквивалент), пересылать друг другу сообщения в пределах одного мейнфрейма (компьютера). Следующий шаг был в возможности переслать сообщение пользователю на другой машине — для этого использовалось указание имени машины и имени пользователя на машине. Адрес мог записываться в виде foo!joe (пользователь joe на компьютере foo). Третий шаг для становления электронной почты произошёл в момент появления передачи писем через третий компьютер. В случае использования UUCP адрес пользователя включал в себя маршрут до пользователя через несколько промежуточных машин (например, gate1!gate2!foo!joe — письмо для joe через машину gate1, gate2 на машину foo). Недостатком такой адресации было то, что отправителю (или администратору машины, на которой работал отправитель) необходимо было знать точный путь до машины адресата. После появления распределённой глобальной системы имён DNS, для указания адреса стали использоваться доменные имена — user@example.com — пользователь user на машине example.com. Одновременно с этим происходило переосмысление понятия «на машине»: для почты стали использоваться выделенные серверы, на которые не имели доступ обычные пользователи (только администраторы), а пользователи работали на своих машинах, при этом почта приходила не на рабочие машины пользователей, а на почтовый сервер, откуда пользователи забирали свою почту по различным сетевым протоколам (среди распространённых на настоящий момент — POP3, IMAP, MAPI, веб-интерфейсы). Одновременно с появлением DNS была продумана система резервирования маршрутов доставки почты, а доменное имя в почтовом адресе перестало быть именем конкретного компьютера и стало просто фрагментом почтового адреса. За обслуживание домена могут отвечать многие серверы (возможно, физически размещённые на разных континентах и в разных организациях), а пользователи из одного домена могут не иметь между собой ничего общего (особенно подобное характерно для пользователей бесплатных серверов электронной почты).
Современная архитектура (SMTP)
Общепринятым в мире протоколом обмена электронной почтой является SMTP (англ. Simple mail transfer protocol, протокол передачи почты). В общепринятой реализации он использует DNS для определения правил пересылки почты (хотя в частных системах, вроде Microsoft Exchange, SMTP может действовать исходя из информации из других источников). В различных доменах настроены свои, независимые друг от друга, почтовые системы. У каждого почтового домена может быть несколько пользователей. (Однако, фактически, может быть так, что одна организация или персона владеет многими доменами, которые обслуживаются (физически) одной почтовой системой). Почта передаётся между узлами с использованием программ пересылки почты (англ. Mail Transfer Agent) (Такими, как, например, sendmail, exim4, postfix, Microsoft Exchange Server, Lotus Domino и т. д.). Поведение систем при связи друг с другом строго стандартизировано, для этого используется протокол SMTP (и соблюдение этого стандарта, наравне с всеобщей поддержкой DNS всеми участниками, является основой для возможности связи «всех со всеми» без предварительных договорённостей). Взаимодействие почтовой системы и пользователей, в общем случае, никак не регламентируется и может быть произвольным, хотя существуют как открытые, так и закрытые (завязанные на ПО конкретных производителей) протоколы взаимодействия между пользователями и почтовой системой. Программа, работающая в почтовой системе и обслуживающая пользователей, называется MDA (англ. mail delivery agent, агент доставки почты). В некоторых почтовых системах MDA и MTA могут быть объединены в одну программу, в других системах могут быть разнесены в виде разных программ или вообще выполняться на различных серверах. Программа, с помощью которой пользователь осуществляет доступ, называется MUA (англ. mail user agent), хотя, в случае, например, веб-интерфеса, может и отсутствовать. Внутри заданной почтовой системы (обычно находящейся в рамках одной организации) может быть множество почтовых серверов, выполняющих как пересылку почты внутри организации, так и другие, связанные с электронной почтой задачи: фильтрацию спама, проверку вложений антивирусом, обеспечение автоответа, архивация входящей/исходящей почты, обеспечение доступа пользователям различными методами (от POP3 до ActiveSync). Взаимодействие между серверами в рамках одной почтовой системы может быть как подчинено общим правилам (использование DNS и правил маршуртизации почты с помощью протокола SMTP), так и следовать собственным правилам компании (используемого программного обеспечения). Релеи DNS позволяет указать в качестве принимающего сервера (MX-запись) любой узел интернета, не обязательно являющийся частью доменной зоны домена получателя. Это может использоваться для настройки релеинга (пересылки) почты через третьи серверы. Сторонний сервер (например, более надёжный, чем серверы пользователя) принимает почту для домена пользователя и пересылает его на почтовые серверы пользователя как только появляется возможность. Исторически, контроля за тем, «кому пересылать» почту не было (или этому не придавали должного значения), и серверы без подобного контроля передавали почту на любые домены. Такие серверы называются открытыми релеями (в настоящее время новые открытые релеи появляются в основном из-за ошибок в конфигурировании сервера). Для своих пользователей серверы почтовой системы являются релеями (пользователи отправляют почту не на серверы почтовой системы адресата, а на «свой» почтовый сервер, который передаёт письма далее). Во многих сетях провайдеров интернета возможность отправлять письма по протоколу SMTP за пределы сети закрыта (из-за использования этой возможности троянами, вирусами). В этом случае провайдер предоставляет свой SMTP-сервер, через который и направляется вся почта за пределы сети. Открытым релеем при этом считается такой релей, который не проверяет, является ли пользователь «своим» (проверка может осуществляться как на основании сетевого адреса компьютера пользователя, так и на основании идентификации пользователя паролем/сертификатом). Маршрутизация почты Почтовый сервер при обработке письма действует по следующему алгоритму: для домена-получателя ищутся все MX-записи. Они сортируются в порядке убывания приоритета. Если адрес почтового сервера совпадает с одним из узлов, указанных в MX-записях, то все записи с приоритетом меньшим приоритета узла в MX-записи (а так же MX-запись самого узла) отбрасываются, а доставка осуществляется на первый отвечающий узел (узлы пробуются в порядке убывания приоритета). Если сеть имеет различные DNS-серверы (например, внешние — в Интернете, и локальные — в собственных пределах), то возможна ситуация, когда «внутренние» DNS-серверы в качестве наиболее приоритетного получателя указывают на недоступный в Интернете сервер, куда и перенаправляется почта с релея, указанного как узел-получатель для Интернета. Подобное разделение позволяет осуществлять маршрутизацию почты по общим правилам между серверами, не имеющими выхода в Интернет. В случае Microsoft Exchange, для маршрутизации почты между несколькими серверами внутри органзации используется информация о получателях из Active Directory. Версии Microsoft Exchange 2000 и 2003 используют понятие группа маршрутизации (и задаваемые вручную соединители между группами), начиная с Exchange 2007 маршрутизация осуществляется исходя из информации о топологии Active Directory (то есть маршрутизация осуществляется согласно настройкам репликации между узлами Active Directory). Почтовый сервер sendmail поддерживает файл конфигурации mailertable, позволяющий задать правила пересылки почты минуя DNS. Протоколы доступа к почтовому серверу После попадания почты на конечный сервер, он осуществляет временное или постоянное хранение принятой почты. Существует две различные модели работы с почтой: концепция почтового ящика и хранилища почты. В концепции почтового ящика почта на сервере хранится временно, в ограниченном объёме (аналогично почтовому ящику для бумажной почты), а пользователь периодически обращается к ящику и «забирает» письма (то есть почтовый клиент скачивает копию письма к себе и удаляет оригинал из почтового ящика). На основании этой концепции действует протокол POP3. Концепция постоянного хранения подразумевает, что вся корреспонденция, связанная с почтовым ящиком (включая копии отправленных писем) хранится на сервере, а пользователь обращается к хранилищу (иногда его по традиции так же называют «почтовым ящиком») для просмотра корреспонденции (как новой, так и архива) и написания новых писем (включая ответы на другие письма). На этом принципе действует протокол IMAP и большинство веб-интерфейсов бесплатных почтовых служб. Подобное хранение почтовой переписки требует значительно бо́льших мощносте́й от почтовых серверов, в результате, во многих случаях происходит разделение между почтовыми серверами, пересылающими почту, и серверами хранения писем. В определённых условиях сервер хранения писем может быть настроен на поведение, подобное клиенту: такой сервер обращается к почтовому серверу по протоколу pop3 и забирает почту себе. Подобные решения используются обычно в малых организациях, в которых нет инфраструктуры для развёртывания полноценных почтовых серверов; в этом случае используется локальный сервер для хранения почты и почтовый сервер провайдера, предоставляющий услугу получения почты по pop3 (например, с помощью fetchmail). Основным недостатком подобного решения является задержка в доставке (т.к. забирающее почту ПО обращается на сервера с некоторой задержкой), например, pop3 connector из Exchange 2003 server в составе Windows SBS не позволяет через интерфейс конфигурирования выставить интервал менее 15 минут.
|