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

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
SKazurov
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-09-06 15:15:15

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

Непрочитанное сообщение SKazurov » 2009-03-24 14:31:43

Здравствуйте!
Я настроил почтовый сервер по статье Настройка почтовой системы на 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?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

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

Непрочитанное сообщение moury » 2009-03-25 22:39:11

Встроенными средствами постфикса Ваши задачи решаются без особых проблем, однако у Вас слишком много требований, набор правил будет громоздким.

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

Или переходите на exim :smile:
Сисадмин - вождь апачей

SKazurov
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-09-06 15:15:15

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

Непрочитанное сообщение SKazurov » 2009-03-26 10:18:45

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

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

Аватара пользователя
rnd
мл. сержант
Сообщения: 112
Зарегистрирован: 2007-11-06 20:36:25
Откуда: RonDon

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

Непрочитанное сообщение rnd » 2009-03-26 11:34:42

SKazurov писал(а):
Или переходите на exim

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

SKazurov
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-09-06 15:15:15

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

Непрочитанное сообщение SKazurov » 2009-03-26 12:21:57

Луше безопасность, проще подключать антивирус/антиспам, гибкие правила фильтрации (как оказалось :)). Наверно что то еще есть, пока не ощутил сполна...

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

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

Непрочитанное сообщение moury » 2009-03-26 14:54:51

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:
Сисадмин - вождь апачей

Аватара пользователя
tango
Access Forbidden
Сообщения: 247
Зарегистрирован: 2007-12-15 17:41:18
Откуда: Санкт- Петербург
Контактная информация:

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

Непрочитанное сообщение tango » 2009-03-28 0:17:11

в сторону sender_bcc_maps и recipient_bcc_maps смотрели ?

moury
сержант
Сообщения: 249
Зарегистрирован: 2009-02-06 23:02:40
Откуда: Москва
Контактная информация:

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

Непрочитанное сообщение moury » 2009-03-28 9:47:21

tango,

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

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

Поэтому и считаю эти фичи опасными.
Сисадмин - вождь апачей

SKazurov
ефрейтор
Сообщения: 51
Зарегистрирован: 2008-09-06 15:15:15

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

Непрочитанное сообщение SKazurov » 2009-03-28 12:11:08

Она описывает простую конфигурацию и подойдет не всем.
Да у меня и потребности то не велики - 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