Kerberos и электронная почта
Михаил Кондрин
Предлагаем вам способ интеграции SMTP-сервера Postfix и IMAP/POP3-сервера
Сyrus-IMAP в систему единой регистрации пользователей Heimdal Kerberos. А также
пример использования этой системы в гетерогенном окружении при помощи почтового
клиента Thunderbird.
Электронная почта – Postfix и Cyrus-IMAP
В сети существует достаточно много информации об установке и тонкой
настройке этих двух программ. Я не ставлю себе целью осветить все детали
конфигурации, к примеру, их взаимодействие с программами контроля спама и
антивирусами, «виртуализации» пользователей и почтовых ящиков, настройки
почтового транспорта и т. д. Будет рассмотрена минимальная конфигурация,
которая позволяет аутентифицировать пользователей для работы с электронной
почтой с помощью Kerberos, причем чем меньше потребуется изменений в
стандартные конфигурационные файлы, прилагаемые к этим программам, тем с точки
зрения данной статьи лучше.
Итак, напомню задачу. Требуется настроить
IMAP/SMTP-сервер таким образом, чтобы зарегистрированный в секторе Kerberos
пользователь мог получать/отправлять свою почту без дополнительной регистрации
в секторе Kerberos, только на основании действительного супербилета,
полученного им ранее. Либо в том случае, если почтовый клиент не может
обеспечить такой функциональности, пароль, вводимый пользователем, сверялся бы
с базой данных паролей, хранимых в Kerberos. Последний вариант обеспечивает
совместимость со старыми или недостаточно функциональными почтовыми клиентами.
Аутентификация пользователя для протокола IMAP
нужна, хотя бы для того, чтобы каждый пользователь мог читать только свои
письма и не имел возможности заглядывать в чужие ящики. В то же время
аутентификация для SMTP не столь обязательна и является только средством защиты
от несанкционированной рассылки почты. Протокол SMTP разрешает передачу почты
от пользователя, находящегося в одном домене, через сервер, находящийся в
другом, для получателя в третьем, чем в недавнем прошлом активно пользовались спамеры
(так называемый open-relay). Практически все современные SMTP-серверы тем или
иным способом запрещают такую пересылку почты, по умолчанию разрешая передачу
сообщений только от определенного множества отправителей или только получателю
из заранее описанного множества доменов. Для большинства почтовых сетей такая
установка достаточна, и проблемы возникают только тогда, когда требуется
обеспечить пересылку почты от мобильных пользователей, находящихся вне сети.
Запреты/разрешения, основанные на адресе отправителя, небезопасны сами по себе
(помним про IP-spoofing) и, более того, не всегда применимы, поскольку адрес
может меняться динамически и вполне легальный пользователь перемещаться из
одной сети в другую. В таком случае идеальным решением было бы дать возможность
пользователю аутентифицироваться на SMTP-сервере с помощью своего логина и
пароля.
Принцип построения почтовой системы достаточно
прост – поскольку у нас уже есть библиотека SASL с поддержкой Kerberos, нужно
только встроить поддержку SASL в почтовые сервисы, указать поддерживаемые ими
механизмы SASL и зарегистрировать эти сервисы в секторе Kerberos. В дальнейшем
нужно будет только выбрать подходящих клиентов, которые максимально прозрачно
для пользователя будут взаимодействовать с почтовыми сервисами и Kerberos.
|