Создан: 11.10.2007
Иванов Аркадий
Задачи:
1. Получать почту с сервера через Интернет на домашний компьютер по защищённому каналу (TLS, SSL), поскольку обычным IP-сниффером можно пронюхать передаваемые пароли.
2. Доступ к папкам должен быть с любого компьютера Интернета, т.е. почта не должна при скачивании уничтожаться на сервере.
3. Необходимо удалять, сортировать почту прямо на сервере без скачивания её к себе на компьютер.
Дополнение к задаче: Для авторизации необходимо использовать стандартные пользовательские пароли Linux сервера. Доступ через PAM (и только через PAM).
Естествено для решения требуется просто выбрать нормальный IMAP-сервер и клиента, который нормально умеет работать с папками на сервере по протоколу IMAP.
В качестве почтовых клиентов у моих сотрудников стоит Seamonkey. Она поддерживает IMAP и шифрование.
Проблема выбора.
В качестве сервера я пробовал пакеты Courier-imap, Cyrus-imapd и uw-imap.
Courier-imap использует для хранения почты формат Maildir, что мне сразу не понравилось, поскольку Seamonkey не умеет работать с этим форматом и гибкость в администрировании почтовых файлов исчезает. Также Courier работает с PAM-аутентификацией только в режиме "root".
У Cyrus-imap формат хранения почты вообще собственный. Поэтому этот вариант глубоко не прорабатывался.
UW-IMAP сразу заработал понятным образом и удоволетворил и безопасности и форматом хранения файлов. Несколько замечаний по его использованию я для себя здесь напишу:
Настройка uw-imap.
Последний раз работал с AltLinux Server 4.0.0. Пакет uw-imap2004g.
После установки в файле /etc/xinetd.d/uw-imaps исправляем запись, чем и
разрешаем обращение к серверу:
Не забываем проконтролировать в /etc/xinetd.conf строчку с "only_from", которая может неожиданно ограничить доступ к сервисам с нужных вам хостов.
Дальше перезапускаем суперсервер xinetd:
Для того, чтобы Seamonkey не мучала пользователей при каждом запуске подозрениями о том, что сервер выдаёт левый сертификат (для SSL), следует сгенерить свой сертификат, который соответстует имени вашего сервера:
Сертификаты лежат в каталоге /var/lib/ssl/certs/ . Вот в этом каталоге мы и развернём деятельность.
Сертификат для IMAP называется imapd.pem
Генерируем пару ключей (секретный и публичный) на 10 лет:
openssl req -new -x509 -days 3660 -newkey rsa:1024 -keyout privkey.pem -out pubkey.pem |
При генерации ключа будут запрошены дополнительно:
пароль(вводите любой, только запомните),
имя страны(ru),
регион (North Pole),
город (Kulichiki),
название организации (Roga i Kopyta),
название подразделения (Internet division),
имя вашего хоста - например mail.myinternal.net.ru
E-mail: superadministrator@domainname
ВНИМАНИЕ!!!Имя хоста, которое указывается при генерации сертификата , должно в точности совпадать с именем хоста на котором будет работать IMAP--сервер. В противном случае вся эта суета с генерацией сертификата ни к чему.
Убираем с приватного ключа пароль. В противном случае, сервис не сможет открыть приватный ключ.
mv privkey.pem privkey.pem.orig openssl rsa -in privkey.pem.orig -out privkey.pem |
Копируем получившуюся парочку в один файл с нужным нам именем:
cat privkey.pem pubkey.pem >imapd.pem |
Вот собственно и всё, что требуется от настроек на сервере. :-)
Настройка почтовой программы, например, Seamonkey.
В Seamonkey надо создать профиль для почты с протоколом IMAP.
В параметрах IMAP-сервера указать использование протокола SSL (порт 993).
При первом запуске Seamonkey с подозрением спросит вас о сертификате, который она получила с сервера. Достаточно один раз ей подтвердить правильность сертификата и она при последующих запусках больше не будет приставать.
Почтовые файлы в формате mailbox будут лежать у вас в рабочих каталогах пользователей. Поэтому, чтобы не засорять домашний каталог я сделал в учётной записи общую папку для обработанной почты (MailSorted), в которой и создаю своё дерево с подпапками и отсортированными сообщениями.
Из приколов uw-imap: Если вы хотите иметь на сервере вложенные папки, то при созданиипапки вы должны сразу создать хотя бы одну вложенную. Т.е. если вы создаёте папку "Commerce" и хотите, чтобы в будущем вы могли вставить туда подпапки,вам следует Seamonkey указать сразу создание "Commerce/Firms".
Проверка.
Отключите в профиле почтового клиента использование SSL и проверьте, что оно не позволит получить почту по незащищённому каналу.