Журнал Витуса.'s Journal
 
[Most Recent Entries] [Calendar View]

Wednesday, June 24th, 2015

    Time Event
    7:39a
    Почтовый ящик с бананами
    Вчера я, наконец, нашел время и доделал последний штрих к конфигурации почтового сервера на Banana Pi.

    Так я вообще-то уже две недели им пользуюсь, но до сих пор у пользователей не было возможности самостоятельно, без обращения к системному администратору, то есть мне, менять свои пароли. Теперь есть. Заодно разобрался в некоторых, еще не во всех, тонкостях взаимодействия Prayer Web mail с managesieve.

    На мой взгляд, получилось вполне self-contained решение.

    Конечно некоторые могут сказать, что почта должна использовать общесетевую базу пользователей, например из ldap, но эти некоторые пускай сами настраивают.

    Собственно, новой для меня задачей в этой истории было сделать так, чтобы почтовые пользователи не должны были быть системными пользователям. Если заводить всех почтовых польозователей как системных, то prayer-accountd из дистрибутива задачу управления паролями и finger information решает из коробки.

    Но мне интересно было решить задачу с виртуальными пользователями, авторизационная информация по которым хранится в базе данных (sqlite). Поэтому пришлось нарисовать свой собственный accountd. Благо протокол accountd крайне простой.

    Получилось решение, которое

    1. Хранит архивы почты у меня на столе, а не где-то в облаке
    2. Позволяет доступ по IMAP и отправку почты из любой точки земного шара
    3. Позволяет доступ через web-интерфейс, если вдруг по каким-то причинам нет возможности использовать нормальный эргономичный почтовый клинент
    4. Осуществляет server-side фильтрацию почты, например раскладывает списки рассылки в отдельные папки. Правила фильтрации настраиваются через стандартный протокол managesieve, к которому есть и отдельные клиенты и плагины к почтовым клиентам, либо через веб-интерфейс.
    5. Имеет обучаемый пользователями байесовский спамфильтр, причем общий для всех пользователей.
    Обучение сводится к тому что проскочивший фильтры спам надо складывать в папку "спам", а весь не спам куда-то перекладывать из INBOX-а. Можно - в "Корзину".
    Кстати, спама почему-то стало ощутимо меньше. Возможно потому что я поменял исторически сложившиеся настройки spamassassin-а на дистрибутивные.
    6. Пользователи могут менять пароли (через веб-интерфейс к почте).

    Получилась следующая картина:

    Аппаратура:

    Banana PI, 16 Гб UHS SD-карта, самодельный жестяной корпус.

    Установлены:

    postfix, dovecot, spamassassin и prayer.

    Есть sqlite-база которой пользуется dovecot для авторизации и postfix для проверки существования адреса.
    Вообще есть мысль в ту же базу засунуть еще таблицу алиасов (которая virtual_alias_map) и научить accountd ее редактировать, чтобы в web-интерфейсе prayer заработала функциональность "перенаправить почту на более другой адрес". Мне это нафиг не нужно, но ради спортивного интереса и полноты реализации протокола accountd...

    У postfix в master.cf описан транспорт dovecot, который сначала фильтрует почту через spamc, а потом отправляет в dovecot-lda. Этот транспорт прописан как виртуальный транспорт для всех доменов. Естетсвенно, включена smtp-авторизация. Через dovecot-овский sasl, то есть кончается все дело той же sqlite-базой.

    С доменами у меня сделано так, что каждый пользователь имеет адрес во всех доменах, которые поддерживаются на сервере. Можно было бы развести, но зачем?

    Соответственно доступ к почте поддерживается по imap over ssl и через web-интерфейс. Управление фильтрами - через manage-sieve (благо в нем есть starttls) или через тот же web-интерфейс. У prayer, кстати, есть довольно неплохой консруктор фильтров, который пишет за человека sieve скрипты. Если бы он еще знал о существовании в sieve расширения spamtest...

    На входном роутере у меня порты 443 993 465 и 4190 отправляются на эту коробочку. А 22 и 80 - на рабочую станцию. 25 вообще у провайдера закрыт. Поэтому приходится направлять MX на VDS, с которой почта перенаправляется опять же через postfix-овские virtual transport через openvpn. Что позволяет вообще пользоваться провайдером за NAT-ом. Где бы я эту коробочку ни включил, как только она загрузится и установит OpenVPN-соединение с VDS, почта в обе стороны ходить будет (Правда читать ее смогут только те, кто в одной локальной сети с этой коробочкой). Но поскольку провайдер дает достижимый извне IP, то читать почту и отправлять ее можно откуда угодно - 465 порт не фильтруется. А зафильтруют, так 587 есть.

    На самом деле еще на этой коробочке крутится SNIProxy, которая перенаправляет https-запросы к home.wagner.pp.ru (а не к mail.wagner.pp.ru) на рабочую станцию. Чтобы можно было снаружи рулить transmission-ом через web-интерфейс.

    К сожалению, найти web-mail, который бы уживался на одном виртуальном сервере с другими веб-приложениями мне не удалось, поэтому весь https://mail.wagner.pp.ru занят prayer-ом (и он же является там web-сервером).


    В данной конструкции не описан greylisting и мендежер списков рассылки, потому что они стоят на VDS. Грейлистинг - по совершенно очевидным причинам, а менеджер списков рассылки чтобы не гонять их траффик туда-обратно через vpn.

    Резервное копирование:

    По крону rsync-ом на рабочую станцию. Не rsnapshot-ом а просто rsync-ом. rsnapshot-ом оно потом на внешний носитель копируется, а на диске рабочей станции есть просто ровно одна копия всей файловой системы почтового сервера.



    Таким образом, единственное действие, которое требует захода на эту коробочку по ssh (не считая установки апдейтов и смены сертификатов), это заведение новых пользователей. Все остальное делается самими пользователями либо через почтовый клиент, либо через web-интерфейс.

    This entry was originally posted at http://vitus-wagner.dreamwidth.org/1099737.html. Please comment there using OpenID. Now there are Image comments
    9:55a
    Город-Сад
    Город-Сад это, наверное, центр наследственного лена рода маркизов де Сад. Там должен стоять родовой замок оных маркизов, ну и доходами с этого города оплачиваться труд маркиза по написанию своих опусов.

    This entry was originally posted at http://vitus-wagner.dreamwidth.org/1099939.html. Please comment there using OpenID. Now there are Image comments
    9:06p
    Лоиса Сейберт и её кошки
    Что-то представился эпизод, как Лоиса Сейберт хвастается Сандре с Венерой, что-де "Я настоящего землянина видела". Ведь действительно, видела, в "ДП" описано. А не так уж много девчонок в Боотисе могут этим похвастаться.

    Причем начинается эпизод с того, как Лоиса рассказывает анекдот про землянина, тагарскую кошку и шаблоны.

    На что старшие девчонки относительно резонно спрашивают "ну ты живого землянина-то вообще видела", и тут выясняется что не только Лоиса, но и её кошка Стелла с настоящим землянином общалась.

    Или еще момент:

    — Почему у тебя всех котят зовут так по-разному? Обычно котята из одного помёта называются на одну букву. А у тебя этот Пашка, этот Горацио, а этот Честер.

    — На самом деле они все на Н - Нахимов, Нельсон и Нимиц. (единственного котенка из этого помёта, который уже упомянут в тексте, зовут Нимфа).

    This entry was originally posted at http://vitus-wagner.dreamwidth.org/1100251.html. Please comment there using OpenID. Now there are Image comments

    << Previous Day 2015/06/24
    [Calendar]
    Next Day >>

Журнал Витуса.   About LJ.Rossia.org