[mdk-re] secure imap

Ivan Zakharyaschev =?iso-8859-1?q?imz_=CE=C1_linux=2Eru=2Enet?=
Чт Май 10 01:46:01 MSD 2001


  Hello, Maxim!

On Wed, 9 May 2001, Maxim Savrilov wrote:

> Так вот, поднят imap через stunnel (все это работает через xinetd).
> Поднято все "из коробки". Все хорошо, но...

На всякий случай уточнение: это imap-2000c-ipl2mdk от University of
Washington?

> Когда пользователь получает письмо, прочитывает и удаляет его из Inbox,
> то из var/spool/mail/login оно не удаляется и что самое главное, не
> помечается как прочитанное. То-есть, если по удалении письма, зайти

Пометка "удалено" и настоящее выкидывание из ящика -- две разные вещи.
Выкидывание часто производится по воле клиента тогда, когда ящик
закрывается. Клиенты, в том числе и Netscape, обычно допускают настройку
этого поведения.

То, когда же ставится физически (т.е. записывается в файл ящика на диск)
пометка "прочитано", волновать не должно (равно как и пометка "удалено" и
то, когда происходит физическое выкидывание сообщений из файла). Все равно
в моделе доступа к ящику нет возможности проверить, когда изменения были
физически внесены в ящик: что сервер скажет клиенту, то клиент и должен
считать правдой. Сервер же может запоминать ("кэшировать") внесенные
изменения, а время от времени проводить синхронизацию с физическим
носителем. (Это может увеличить производительность сервера.)

В такой моделе нет места для прямого доступа с помощью mail -- и может
случится так, что открыв ящик mail'ом, Вы там увидите совсем не то, что
сервер выдает за правду.

> телнетом, то получишь сообщение "you have new mail". Самое поганое, что

Странно.

> после команды mail, и выхода из нее _без_ совершения каких либо
> операций
> с письмами (среди которых есть и то, которое пользователь уже "прочитал
> и удалил"), нетскапе, при нажатии кнопки get msg получает это письмо
> снова. Это решается с помощью команды Compact Folders в том же
> нетскапе,

imap-сервер (и библиотека c-client, на которой он основан) не расчитан на
параллельный доступ к ящикам формата mbox.  Поэтому сам он не
предоставляет одновременно нескольким клиентам один ящик, а если все-таки
одновременный доступ происходит, минуя его, то нужно ожидать всяких
глюков.

> но ведь раньше же такого не было! Раньше, это на MDK RE7.0 + Appendix +
> самособранный stunnel. Честно говоря, то больше всего достает

Вряд ли stunnel на все это как-то влияет.

> постоянное
> you have new mail, так как не знаешь, действительно ли это новая почта
> или проделки imap.

Вот это действительно очень странно! Я такого воспроизвести не могу. Там
именно _new_ mail? Эта проблема, на самом деле, не имеет отношения к
другой (рассинхронизации того, что видит mail, и того, что показывает
imap). Насколько я понимаю, выводы о new mail, просто mail или no mail
делаются только на основании трех атрибутов файла почтового ящика: size,
access time и modification time. (finger $USER точно так делает.) Эти
простые утилиты не лезут внутрь ящика и не разбираются во флагах. Это на
совести программ, работающих с почтой, правильно выставлять
access/modification time:

когда приходит новая почта (и, может быть, по-другому меняется состояние
ящика), touch --time=modify;

когда читается ящик (просто показывается список сообщений), touch
--time=access.

Соответственно, если access time > modify time, то сообщается о том,
что новый почты нет, если access time < modify time, то новая почта есть.

И imap-сервер исправно следует этим правилам: когда ящик открывается,
меняется access time, когда закрывается (или по-иному синхронизуется), то
modification time ставится на секунду меньше access time, что и заставляет
считать. что новой почты нет.

> Кто нибудь с таким сталкивался? Подскажите, куда копать, плиз!

Опишите, пожалуйста, в деталях, как воспроизвести Вашу ситуацию.
Поподробнее о конфигурации: какой клиент (какая версия), какие его
IMAP-настройки (способ удаления сообщений и пр.).

Понаблюдайте за access/modification time с помощью stat. Что говорит
lsattr /var/spool/mail/$USER?  На какой файловой системе ящик? (Совсем
странные мысли.) А так же ли наблюдается сообщение о new mail, если
пользоваться другими IMAP-клиентами? Какой MDA?

-- 
Best regards,
Ivan Zakhrayschev






Подробная информация о списке рассылки community