Выбрать главу
На заметку

Анализируя заголовок письма в листинге 11.1, нетрудно заметить одну особенность, которая обеспечивает гибкость в работе почтовой системы, но в то же время затрудняет определение реального отправителя письма. В полях From: и Return-Path: указано, что отправителем письма является пользователь ben@pangaea.edu. Тем не менее эти поля заголовка нетрудно подделать. Кроме того, в заголовке каждого письма присутствует поле Received:, в котором указан сервер, использованный при получении письма, и адрес, с которого письмо попало на этот сервер. Я отправил это сообщение с одного компьютера, подключенного к моей сети, на другой компьютер; этот факт отражен в поле Received:. Как видно из листинга, письмо отправлено с speaker.rodsbooks.com и доставлено на nessus.rodsbooks.com. Компьютер pangaea.edu в передаче письма не участвовал.

Пример сеанса взаимодействия по протоколу IMAP

Как и POP, IMAP представляет собой протокол получения почты, однако IMAP позволяет использовать расширенные средства управления сообщениями. Применяя IMAP, пользователь, перед тем как копировать письма на свой компьютер, может ознакомиться с их заголовками. Наличие дополнительных возможностей предполагает реализацию дополнительных команд; таковых в IMAP-4 предусмотрено больше двадцати. (IMAP-4 является текущей версией данного протокола и использует при работе порт 143.) Пример сеанса взаимодействия по протоколу IMAP приведен в листинге 11.2. В ходе этого сеанса достигается такой же результат, как и при использовании протокола POP (листинг 11.1). Отличие лишь в том, что листинг 11.2 включает команду копирования сообщения в папку IMAP.

Листинг 11.2. Пример сеанса IMAP-4

$ telnet nessus 143

Trying 192.168.1.3...

Connected to nessus.rodsbooks.com.

Escape character is '^]' .

* OK nessus.rodsbooks.com IMAP4rev1 v12.264.phall server ready

A1 LOGIN rodsmith password

A1 OK LOGIN completed

A2 SELECT Inbox

* 1 EXISTS

* NO Trying to get mailbox lock from process 29559

* 1 RECENT

* OK [UIDVALIDITY 997295985] UID validity status

* OK [UIDNEXT 4] Predicted next UID

* FLAGS (\Answered \Flagged \Deleted \Draft \Seen)

* OK [PERMANENTFLAGS (\* \Answered \Flagged \Deleted \Draft \Seen)]

Permanent flags

* OK [UNSEEN first unseen message in /var/spool/mail/rodsmith

A2 OK [READ-WRITE] SELECT completed

A3 FETCH 1 BODY [HEADER]

* 1 FETCH (BODY[HEADER] {494}

>From rodsmith Wed Aug 8 16:02:47 2001

Return-Path:

Delivered-To: rodsmith@nessus.rodsbooks.com

Received: from speaker.rodsbooks.com (speaker.rodsbooks.com [192.168.1.1])

 by nessus.rodsbooks.com (Postfix) with SMTP id 2C7121A2BD

 for <rodsmith@nessus.rodsbooks.com>; Wed, 8 Aug 2001 16:02:25 -0400 (EDT)

Message-Id: <20010808200225.2C7121A2BD@nessus.rodsbooks.com>

Date: Wed, 8 Aug 2001 16:02:25 -0400 (EDT)

From: ben@pangea.edu

To : undisclosed-recipients: ;

)

* 1 FETCH (FLAGS (\Recent \Seen))

A3 OK FETCH completed

A4 FETCH 1 BODY [TEXT]

* 1 FETCH (BODY[TEXT] {25}

This is a test message.

)

A4 OK FETCH completed

A5 COPY 1 demos

A5 OK COPY completed

A6 LOGOUT

* BYE nessus.rodsbooks.com IMAP4rev1 server terminating connection

A6 OK LOGOUT completed

Connection closed by foreign host.

Листинг 11.2 демонстрирует дополнительные возможности IMAP, которые отсутствуют в протоколе POP. IMAP требует от клиента передавать ему нумерованные команды, например, вместо LOGOUT в листинге указано A6 LOGOUT. Эта особенность скрыта от пользователя, так как обработка команд полностью производится клиентской программой. IMAP позволяет копировать заголовки отдельно от текста сообщений (команды A3 и A4 в приведенном листинге). Использование папок предполагает выбор нужной папки в ходе сеанса взаимодействия (команда A2), но пользователь получает возможность копировать письма из одной папки в другую (команда A5). В листинге 11.2 представлена лишь часть возможностей IMAP. Существует много разновидностей приведенных команд, в частности, различные способы обработки писем обеспечиваются с помощью команды FETCH. Дополнительные сведения о протоколе IMAP можно получить в специальных документах, один из которых находится по адресу http://www.ietf.org/rfc/rfc2060.txt.

Несмотря на то что рассмотрение низкоуровневых команд позволяет получить представление о работе IMAP, вам, как системному администратору, вряд ли необходимо знать детали функционирования этого протокола. Однако наличие некоторых команд оказывает влияние на конфигурацию сервера. Поскольку IMAP позволяет работать с папками, эти папки надо где-то хранить. Расположение папок зависит от используемого сервера. В настоящее время наиболее популярен сервер IMAP, разработанный в Вашингтонском университете (UW IMAP; http://www.washington.edu/imap/). Этот сервер хранит все папки в рабочем каталоге пользователя. Исключение составляет папка INBOX, которая находится в одном из стандартных каталогов, используемых почтовой системой, а именно, в /var/spool/mail/имя_пользователя. Когда пользователь впервые обращается к серверу IMAP, для него существует только папка INBOX. В процессе работы пользователь может создавать новые папки, применяя для этого соответствующие команды программы просмотра почты. Получив подобную команду, сервер UW IMAP создает каталог в рабочем каталоге пользователя. Прочие серверы используют для организации папок другие каталоги. Необходимые сведения по этому вопросу вы можете получить из документации на конкретный сервер. Выполняя администрирование системы, необходимо знать, где размещаются папки, чтобы выделить необходимое для них дисковое пространство. Это особенно важно на крупных серверах, обслуживающих большое количество пользователей, либо в тех случаях, когда пользователи хранят на сервере почтовые сообщения большого объема.

Выбор протокола

Выбор протокола получения почты зависит от имеющихся в наличии ресурсов и от того, какие клиентские программы применяют пользователи. Не секрет, что на решение вопроса большое влияние оказывают вкусы и привычки самого системного администратора. При использовании протокола POP требования к ресурсам сервера и пропускной способности линии минимальны, поскольку подавляющее большинство пользователей не хранят письма на сервере, а копируют их на клиентские машины. Некоторые пользователи предпочитают работать с сервером IMAP. Чтобы организовать функционирование такого сервера, необходимы дополнительные ресурсы, в частности, для хранения писем на сервере потребуется жесткий диск большего объема. В составе почтовых систем серверы POP используются чаще, чем IMAP, поэтому, если вы установите сервер IMAP, желательно установить на том же компьютере и сервер POP. При этом дополнительная нагрузка на компьютер практически не будет ощущаться, но пользователи, которые работают с клиентскими программами, не поддерживающими IMAP, смогут получать свои письма. POP-клиент может очистить папку INBOX, но он не разрушает папки, созданные сервером IMAP. С другой стороны, использование дополнительного почтового сервера нежелательно с точки зрения безопасности системы. Если в защите сервера POP будут обнаружены недостатки, позволяющие проникать в систему, наличие такого сервера создаст дополнительную возможность незаконного доступа к данным.