Обзор электронной почты


обратите внимание экономичное отопление для дома со скидками далее

Большинство сообщений, передаваемых по электронной почте, создают пользователи на своих настольных компьютерах. Чаще всего это PC под управлением Windows или Mac с Outlook, Eudora, Thunderbird или одной из подобных программ, однако почту можно посылать почти в любой операционной системе.

Клиент посылает сообщения серверу электронной почты. Почти у каждой компании или интернет-провайдера есть по крайней мере одна выделенная почтовая система. Почтовый сервер выполняет основную «санитарную» проверку сообщений, посылаемых клиентом, а затем пытается найти сервер, который возьмет на себя ответственность за доставку адресату. Ваш почтовый сервер, отыскав сервер места назначения, передает ему сообщение электронной почты. Когда получатель проверяет наличие почты, клиентская программа соединяется с почтовым сервером, запрашивает все сообщения и загружает их на настольный компьютер. Если получатель отвечает, весь процесс повторяется в обратную сторону.

Поиск почтового сервера домена

Почтовые серверы обмениваются электронной почтой между собой, но как они отыскивают друг друга? Например, моя личная электронная почта поступает из домена blackhelicopters.org. Если я отправлю электронное послание пользователю из домена freebsd.org — как мой почтовый сервер отыщет почтовый сервер для домена freebsd.org?

В записи DNS для каждого домена почтовые серверы перечислены в виде записей «MX». Мы вкратце рассмотрели записи типа MX в главе 14. (В случае отсутствия записей типа MX почта возвращается к записям типа А, что менее гибко.) Запись DNS для домена, принимающего электронную почту, включает одну или более записей типа MX, каждая из которых содержит число, обозначающее приоритет. Вот пример поиска почтовых серверов для домена freebsd.org с помощью запроса MX:

# dig freebsd.org mx
...
;; QUESTION SECTION:
;freebsd.org. IN MX
;; ANSWER SECTION:
freebsd.org. 381 IN MX 10 mx1.freebsd.org.

В домене freebsd.org имеется единственный сервер MX с приоритетом 10. Любая входящая почта, предназначенная для этого домена, будет идти через mx1.freebsd.org. Сравните эту запись с записью крупной компании, например cnn.com:

У CNN имеется шесть почтовых ретрансляторов! Два сервера имеют приоритет 10. Это самое маленькое значение, поэтому при передаче почты сначала будет произведена попытка отправить ее на сервер atlmail3.turner.com (3) или atlmail5.turner.com (4). Если один из них окажется недоступен, сервер-отправитель попробует связаться с другим. Если оба сервера с приоритетом 10 окажутся недоступны, будет выполнена попытка обратиться к серверу с приоритетом 20, nycmail1.turner.com (5) или nycmail2.turner.com (6), в случайном порядке. Если окажутся недоступны все серверы с приоритетами 10 и 20, сервер-отправитель попробует использовать сервер с приоритетом 30 (1), а затем с приоритетом 40 (2). Хотя бы один из этих серверов должен работать и принимать почту.

Наличие единственной записи типа MX становится все более популярной мерой защиты от спама. Если в вашем домене сервер DNS настроен правильно, отправитель будет удерживать почту в очереди несколько дней. Часто резервные почтовые ретрансляторы не знают, какие адреса электронной почты являются допустимыми, что делает их основными кандидатами на получение спама. Многие инструменты рассылки спама используют резервные записи MX как дополнительные пути проникновения в домен. Выше я говорил, что в каждом домене должно быть несколько хостов MX, но с каждым днем становится все труднее и труднее иметь их, не увеличивая объем времени, которое тратится на борьбу со спамом.

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

Если почтовый сервер обнаруживает почтовые ретрансляторы для требуемого домена, но ни один из них не принимает электронную почту, почтовый сервер помещает сообщение в очередь. Каждые пятнадцать минут, или что-то около того, сервер снова и снова будет пытаться выполнить доставку сообщения. Стандарты Интернета допускают доставку почтового сообщения до пяти суток.* Если сообщение не будет доставлено в этот срок, оно возвращается отправителю.

Если почтовому серверу не удалось отыскать в домене запись типа MX или какую-либо запись с именем хоста, совпадающим с именем домена, сообщение немедленно возвращается отправителю. После этого пользователь спросит вас, почему его совершенно нормальное письмо не дошло до адресата, а вы сможете указать ему, что yahoo.com пишется не через Q.

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

POSTMASTER@EXAMPLE.COM

Копии всех отвергнутых электронных писем отсылаются на учетную запись postmaster вашего домена. Наличие этого электронного адреса является обязательным, и все сайты Интернета, выполняющие обмен электронной почтой, должны иметь эту учетную запись. Обеспечьте доставку электронной почты, которая приходит на учетную запись postmaster, вашему администратору электронной почты. Стандарты требуют, чтобы эту почту читал человек, а не автоответчик. Если в дополнение к FreeBSD у вас установлена коммерческая почтовая система, убедитесь, что она принимает электронную почту по адресу postmaster@!

Протокол SMTP

Передача электронной почты осуществляется по протоколу SMTP (Simple Mail Transfer Protocol — простой протокол передачи почты), который работает через порт TCP с номером 25. По умолчанию электронная почта не шифруется и целостность ее не проверяется. Это очень старый протокол, появившийся в те дни, когда о безопасности не особенно беспокоились. В действительности почту довольно легко послать вручную, не прибегая к клиентской программе. Этот прием можно использовать для устранения сложных неполадок или для того, чтобы похвастаться перед знакомыми. (Только не пытайтесь подобными трюками произвести впечатление на девушку, поверьте моему опыту.)

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

# telnet имя_хоста 25

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

# telnet bewilderbeast.blackhelicopters.org 25
Trying 198.22.63.8...
Connected to bewilderbeast.blackhelicopters.org.
Escape character is '^]'.
220 bewilderbeast.blackhelicopters.org ESMTP Sendmail 8.13.8/8.13.8; Thu, 7 Jun 2008 22:06:25 -0400 (EDT)

Такой ответ не только доказывает, что в системе запущен почтовый сервер, он еще демонстрирует точную версию программного обеспечения сервера (Sendmail 8.13.8), а также локальную дату, время и часовой пояс. Единственная непонятная часть ответа — это число 220. Каждый ответ почтового сервера включает в себя код ответа и понятный для человека текст ответа. Программы, которые общаются с почтовым сервером, читают только код ответа, а остальная часть предназначена для слабого человеческого мозга. Описания всех кодов ответов SMTP можно найти на некоторых сайтах в Интернете.

Попробуем теперь пообщаться с почтовым сервером. Начнем беседу с команды helo и имени хоста, с которого выполняется соединение:

helo pesty.blackhelicopters.org

Сервер должен дать примерно такой ответ:

250 bewilderbeast.blackhelicopters.org Hello d149-67-12- 190.col.wideopenwest.com [67.149.190.12], pleased to meet you

Полученный ответ включает в себя числовой код B50) и имя хоста, с которым установлено соединение (bewilderbeast.blackhelicopters.org). Приветствие Hello означает, что сервер готов общаться с вами, и он смог идентифицировать компьютер, с которого вы установили соединение. Мой ноутбук имеет сетевое имя pesty.blackhelicopters.org, но обратный поиск в DNS по моему IP-адресу показывает, что в действительности я подключен к Интернету через кабельный модем Wide Open West. Имя хоста pesty является действительным только за моим домашним брандмауэром.

Теперь с помощью команды mail from: сообщим почтовому серверу, от кого исходит сообщение, указав адрес электронной почты автора:

mail from: <mwlucas@AbsoluteFreeBSD.com>
250 2.1.0 mwlucas@AbsoluteFreeBSD.com... Sender ok

Если сервер готов продолжать общаться с вами, он вернет код 250 и сообщит, что вы можете продолжать. В противном случае, если сервер не пожелает продолжить общение, он закроет соединение. Теперь можно указать имя получателя с помощью команды rcpt to:.

rcpt to: <mwlucas@blackhelicopters.org>
250 2.1.5 mwlucas@blackhelicopters.org... Recipient ok

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

Теперь почтовый сервер знает отправителя и получателя. Это наиболее типичное место, в котором отклоняется передача сообщения, как говорится в разделе «Управление ретрансляцией» далее в этой главе. Теперь все готово к отправке вашего сообщения. Выполните команду data:

data
354 Enter mail, end with "." on a line by itself

Теперь можно набирать любое сообщение. Согласно инструкциям, которые следуют за кодом 354, после текста сообщения надо ввести одну точку в отдельной строке. В следующем примере отправляются слова «Тестовое сообщение»:

Тестовое сообщение
.

После того как точка набрана в отдельной строке, почтовый сервер должен вернуть код 250, подтверждая прием сообщения и сообщая числовой идентификатор (ID) электронного письма:

250 2.0.0 l5827nBE004533 Message accepted for delivery

Введите команду quit, чтобы закончить сеанс связи.

Такой метод можно применить как во благо, так и во вред. Как администратор вы можете проверять почтовую конфигурацию без возни с клиентской программой, которая может скрыть результаты теста. Однако такой метод позволяет легко подделать сообщения, просто придумав какой угодно свой собственный обратный адрес mail from. Правда, причин, которыми можно было бы оправдать такую подделку*, не так уж много.

Управление ретрансляцией

Вообще говоря, почтовый сервер принимает почту, предназначенную для его локальных доменов, или почту, отправляемую с них. Если почтовый сервер домена аbsolutefreebsd.com получает сообщение для пользователя с адресом в домене absolutefreebsd.com, он принимает это сообщение. Если сообщение от пользователя с адресом в absolutefreebsd.com предназначено для другого домена и если имеют место другие процедуры контроля доступа, то сервер принимает это сообщение и отправляет его получателю. Если кто-либо, совершенно не связанный с absolutefreebsd.com, пытается использовать данный почтовый сервер как ретранслятор (relay) для перенаправления писем на сторону, сервер отклонит такой запрос.

Пользователи, рассылающие незатребованные коммерческие предложения (спам), постоянно ищут почтовые серверы, позволяющие передавать через них электронную почту. Если на вашем сервере такая  ретрансляция возможна, он становится потенциальным источником «макулатурной» электронной почты (junk email). Обязательно контролируйте прохождение почты через свою систему. Разрешая неограниченный поток писем через свои серверы, вы попадете в различные черные списки. Если не управлять ретрансляцией почты, можно потерять связь с 30% или 40% хостов Интернета.

Итак, что представляет собой упомянутый выше «контроль доступа»? Одна из самых распространенных составляющих — ограничение IP-адресов, с которых через вашу систему можно посылать почту на любые адреса. Если отправку писем через данный сервер вы разрешите только пользователям локальной или корпоративной сети, посторонние лица уже не смогут использовать ваш сервер для передачи «макулатурной» почты.

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

Борьба со спамом

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

Черные списки содержат перечень хостов, рассылающих макулатурную почту. Будучи общедоступной службой, учредители черных списков позволяют администраторам почтовых серверов проверять каждое входящее сообщение на попадание в черный список. Если сообщение приходит с IP-адреса, включенного в черный список, сервер отвергает его. При использовании черного списка его администратор должен вызывать у вас доверие, чтобы вы могли добавлять и удалять спамеров, а также проводить действенную нелицеприятную политику по борьбе со спамом.

Серый список — это, пожалуй, самая эффективная методика борьбы со спамом, разработанная в последние несколько лет, которая в действительности не использует насильственных методов. Спам, черви, вирусы часто рассылаются с некоторыми нарушениями протокола SMTP — почтовые серверы обычно более близко придерживаются стандарта. Электронная почта не является средой передачи сообщений в реальном масштабе времени; предполагается, что почтовые серверы должны выполнить несколько попыток доставить сообщение, прежде чем вернуть его отправителю. Ботнеты, выполняющие отправку макулатурной почты, не придерживаются этого правила — они производят отправку каждому отдельному получателю всего один раз. Таким образом, если ваш почтовый сервер будет принимать сообщения от новых серверов только со второй попытки, он эффективно сможет отделять настоящие почтовые серверы от ботнетов.

В состав операционной системы FreeBSD входит почтовый сервер Sendmail(8), который поддерживает работу как с черными, так и с серыми списками.

Комментарии запрещены.