Страница 1 из 1

Фильтрация содержимого в Postfix

Добавлено: 2009-03-24 14:31:43
SKazurov
Здравствуйте!
Я настроил почтовый сервер по статье Настройка почтовой системы на freebsd. Все работает, но встала ребром :) проблема фильтрации содержимого - т.е. проверки (в моем случае) заголовков сообщений по заданному критерию и выполнению тех или иных действий при совпадениии заголовка с условиями этих самы критериев. Конкретно, например, как можно сделать такое:

Код: Выделить всё

If FROM HEADER contains "sample@yandex.ru" then copy message to user pupkin@domain.local 
Т.е. при нахождении в заголовке условного адреса sample@yandex.ru копировать сообщение локальному пользователю pupkin@domain.local. Ну или, допустим, так

Код: Выделить всё

If FROM HEADER contains "sample@yandex.ru" and If SUBJECT HEADER contains "Test"  then copy message to user pupkin@domain.local 
У самого постфикса есть встроенные действия REJECT, IGNORE, WARN, HOLD, DISCARD, REDIRECT и FILTER, но что то как то этого маловато :( Как можно реализовать такие связки? Если не встроенными средствами, то, может быть, есть какая то внешняя программа, которую можно подключить опцией content_filter?

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-25 22:39:11
moury
Встроенными средствами постфикса Ваши задачи решаются без особых проблем, однако у Вас слишком много требований, набор правил будет громоздким.

Пожалуй, Вам лучше воспрользоваться фильтром, встроенным в MDA (то есть, курьеровский maildrop).

Или переходите на exim :smile:

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-26 10:18:45
SKazurov
Встроенными средствами постфикса Ваши задачи решаются без особых проблем
А как? :) Ну хотя бы примерно...
Пожалуй, Вам лучше воспрользоваться фильтром, встроенным в MDA (то есть, курьеровский maildrop).
Это мы посмотрим... :)
Или переходите на exim

По поводу эксима я тоже думал, тем более что у Лиса есть статейка по переходу с postfix на exim...

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-26 11:34:42
rnd
SKazurov писал(а):
Или переходите на exim

По поводу эксима я тоже думал, тем более что у Лиса есть статейка по переходу с postfix на exim...
А какие преимущества в Exim'e по сравнению с Postfix ?
Почему его все тут так советуют??
Сори за Оффтоп.

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-26 12:21:57
SKazurov
Луше безопасность, проще подключать антивирус/антиспам, гибкие правила фильтрации (как оказалось :)). Наверно что то еще есть, пока не ощутил сполна...

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-26 14:54:51
moury
SKazurov писал(а): А как? :) Ну хотя бы примерно...
1. Описание условий: check_<что нужно>_access. В основном, check_sender_access
2. Доставка нужных писем: в нестабильной версии постфикса, можно использовать акцию BCC (man 5 access). в стабильной для доставки письма нескольким получателям придется использовать алиасы.
3. Источник загромождения конфигов : ветвление условий, поскольку в постфиксе в ACL можно перечислять только именованные акции. Если захотите, чтобы проверялись и отправитель, и получатель одновременно, нужно расписывать рестрикшн-классы.
4. Основной источник проблем у Вас: необходимость учитывать тему письма: в письмах, отправленных разными клиентскими программами, заголовки могут стоять в разном порядке. Это проблема - не только встроенного фильтра постфикса, но и, например, procmail'а.
SKazurov писал(а):
Или переходите на exim

По поводу эксима я тоже думал, тем более что у Лиса есть статейка по переходу с postfix на exim...
Она описывает простую конфигурацию и подойдет не всем.
Я, например, пока не могу закончить перевод конфига с постфиксового языка на экзимовский - у меня настройка постфикса далеко не тривиальная.

Вообще - постфикс - хороший MTA: надежный, безопасный, быстрый, удобный в обслуживании и диагностике проблем, крайне простой в настройке, особенно защиты от спама.
В "потребительских качествах" :smile: exim ему проигрывает: он - не для начинающих, он - набор кубиков для сборки почтовой системы.

Но у постфикса есть недостатки, которых нет в экзиме::

1. Сложность ветвления условий в ACL.

2. Невозможность принудительного завершения SMTP-сессии.

3. Невозможность спрятать от клианта (и спамера тоже) информацию, на каком этапе проверки почта отвергнута.
SKazurov писал(а): проще подключать антивирус/антиспам
Ничего себе! :smile:
Для антивируса: описать драйвер, роутер, транспорт да еще второй экземпляр экзима запустить.
Для антиспама: пересобрать exim из исходников с патчем, прилагаемым производителем антиспама.
Или Вы имели в виду конкретный антивирус и антиспам ? :smile:

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-28 0:17:11
tango
в сторону sender_bcc_maps и recipient_bcc_maps смотрели ?

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-28 9:47:21
moury
tango,

Я, честно сказать, забыл про эти фичи, когда отвечал в этом и соседнем топике, потому что запретил себе их применять, если always_bcc, sender_bcc_maps и recipient_bcc_maps указывают на ящики на этом же почтовом сервере.

Причина самозапрета - в том, что при переполнении ящика для карбонок будет парализована переписка всего домена (при always_bcc) или исходных адресов (при *_bcc_maps).

Поэтому и считаю эти фичи опасными.

Re: Фильтрация содержимого в Postfix

Добавлено: 2009-03-28 12:11:08
SKazurov
Она описывает простую конфигурацию и подойдет не всем.
Да у меня и потребности то не велики - 70 машин, примерно 20 пользователей почты - нужно организовать сервер что бы почта проверялась на спам, вирусы, ну и фильтрацию содержимого. Сейчас стоит под виндой MDaemon, но он платный и, в случае чего, за него могут наказать :) Вот я и озадачился...
Я, например, пока не могу закончить перевод конфига с постфиксового языка на экзимовский - у меня настройка постфикса далеко не тривиальная.
А у Вас есть такая задача, как у меня - копировать письма по указанным критериям?
Для антивируса: описать драйвер, роутер, транспорт да еще второй экземпляр экзима запустить.
Я имел в виду CalmAV и Spamassasin. По крайней мере, я для клама указал только av_scanner = clamd:/var/run/clamav/clamd.sock и вроде как все, никаких транспортов, драйверов и пр. я не задавал... Антиспам не пробовал, но там тоже вроде бы все просто... А может, просто я еще не совсем вник в exim :)
в сторону sender_bcc_maps и recipient_bcc_maps смотрели
Не смотрел, но посмотрел :)
Получается, я должен создать такую карту со следующим содержимым?

Код: Выделить всё

sender_bcc_maps = hash:/usr/local/etc/postfix/sender_bcc_map 

>cat sender_bcc_map 

sample@yandex.ru       pupkin@domain.local
sample@yandex.ru       user@domain.local