FreeSource : Статьи/ПочтоваяСистема

Настройка почтовой системы на базе Postfix


Уфф. Сегодня от vvk@ пришло предложение – стоп, сейчас уже более 12... значит вчера :) – предложение зафиксировать наши знания по postfix на wiki. Я так подумал, и решил что действительно не помешало бы. Так как мне надо от чего-то отталкиваться, то расскажу про свою конфигурацию, почему она такая, и какой я хочу видеть свою сеть, чтобы не превратить статью в простой справочник.

Перевод postconf
самый хороший справочник по postfix – man 5 postconf. Осталось его только перевести и добавить к командам пояснения, что такое sasl, smtp протокол, xforward, чем helo отличается от ehlo. Кто займётся переводом? :)2
В принципе я уже начал, только так как я английский понимаю, но не могу внятно сказать это по-русски, то могут быть неточности. см /Документация/Postfix/postconf.


Для начала я опишу свою общую конфигурацию.

Background

Есть локальная сеть – она полностью мне подконтрольна, насколько это возможно при условии работы на машинах других людей. То есть сетевую активность машин я контролировать могу, что установлено на них тоже, но контроль не абсолютный – то есть если они подхватят вирус, я могу его заметить только при активности выше стандартной для этого пользователя – количество ошибок проверяет nagios, и если они будут укладываться в выделенный предел я могу и прошляпить. Если конечно у меня ничего не зачешется в заднице и я не пойду не поду не полюбопытствую, а что творится у такого-то пользователя :) В общем локальной сети доверие выше, чем кому либо другому, но не всё-таки абсолютное.

Есть моя машина. Ей доверие поболе, чем моим пользователям. Но это только на время тестов доверия, так как удобнее быть простым пользователем – быстрее замечаешь неполадки.

Есть два backup mx хоста. Один мой, другой моего знакомого. То есть доверие им обоим высокое, но управлять я могу только своим.

Задачи:

  1. Пользователи должны работать с почтой независимо от их нахождения. Так как доверия инету в общем нет, то значит нужен ssl (шифрование, сертификаты) и sasl – пароли, если уж пользователь не имеет сертификата.
  2. Подход в локальной сети более либерален чем к интернет-пользователям. Например один пользователь любит outlook, другой the bat. Thunderbird используют только те, кого пришлось учить пользоваться почтой мне. Outlook, например, имеет одну проблему – поле helo у него является netbios именем машины (при dhcp доступе в сеть), то есть не имеет полного DNS-адреса. Значит им нужны отдельные правила.
  3. С почтой работать они должны всеми возможными способами – imap, pop3, web. Потому что мне это интересно :)
  4. Так как трафик платный, backup mx должен фильтровать почту сам, до фильтров головного smtp сервера. => общая база фильтров.
  5. проверка на вирусы, spamfilters. Более того, результаты spamassassina должны фиксироваться в общей базе, чтобы ни один mx более не пропускал это письмо, так как spamassassin имеет одну проблему – он целиком получает письмо, анализирует, а потом идентифицирует. То есть кушается трафик, что для меня критично. => нужен скрипт, что после работы assassina обновит базу фильтров.

В итоге получаем связку:
postfix+sasl+courier-imap+ldap+open-xchange+spamassassin+clamav+handsmake scripting

Кто для чего и почему


Так, дока, по которое я всё это дело рисовал в самом начале – оттуда были взяты ldap схема, этот самый скрипт, строки в master.cf – короче всё, до чего могла дотянуться моя мыша :): http://www.opennet.ru/base/net/postfix_openldap.txt.html. Сейчас от этой схемы остались только коментарии, но путь был проложен.

Хм. А вот скрипт-обвязку я там не нашёл. Где ж его откопал-то...

Скрещивание


Теперь как я вообще всё это завёл.

Postfix и Courier

Ну, как всегда, опишем что нам от них обоих вообще надо. Рецепты смотрите на том же opennet'е (http://www.opennet.ru/base/net/postfix_openldap.txt.html), либо /Software / Postfix.

Наша задача по сути заключается в том, чтобы заставить их обоих по имени пользователя брать одну и ту же необходимую им информацию: путь к ящику, права на ящик, пароль. Всё. И конечно брать из одного и того же места :)

Какие есть способы:

Postfix

Доставка почты (final destination)

final destination — конечный пункт в цепоке smtp серверов 3, сервер, на котором и находятся ящики пользователей, откуда они берут почту через POP3/IMAP протоколы.

Наша задача научить postfix доставлять почту в ящик пользователя — в файл, либо каталог. Так как postfix весь построен на транспортах, то на этом этапе ему надо сказать, какие адреса будут локальными (либо виртуальными) и указать транспорт для этого класса.

to be continued как только будет время и желание.

1 как отметил /Vitaly Lipatov, «Вообще-то есть /ALTLinux/Документация/OpenLDAP". Прогулявшись по ссылке я понял, что это больше рецепт. Там не раскрыты мучавшие меня в самом начале вопросы, что такое схема, обьекты, атрибуты, принципы acl. На всё, конечно, есть ответ в документации, но её ещё надо понять :) Вот, есть желание опубликовать базовые знания *ldap*. Так сказать – отвдечённо от практики, но на её примерах – вот, примеры уже приготовили, так что даже писать не надо будет :)

gns: все давно написано http://www.samba.org.ua/articles/?section=1&articleid=26 ;)

2 как было отмечено в примечании:
Проект по переводу документации postfix на русский: http://www.elantech.ru/docs/postfix-docs-ru/
— Vladimir Kamarzin (2005–10–12 15:29:25)


3 /Статьи / Почтовая Система / Термины

Страницы, ссылающиеся на данную: Документация/Postfix
Статьи/ПочтоваяСистема/MaildropWithVirtual


Для внеклассного чтения:
Smtp аутентификация клиентов postfix в Aсtive Directory – ldap
Интеграция MTA qmail с LDAP
Заметки vvk@ по конфигурированию Postfix