The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Правило для postfix"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Почта / Linux)
Изначальное сообщение [ Отслеживать ]

"Правило для postfix"  +/
Сообщение от Alting email(ok) on 18-Янв-13, 11:28 
Коллеги, прошу прощения за наглость, надо быстро набросать правило:
Есть некий робот, который шлет письма извне всем сотрудникам нашей организации. Необходимо написать правило: если e-mail получателя не совпадает с адресом из списка (к примеру, текстовый файлик) - уничтожать письмо после принятия. Если совпадает - отправлять на почтовый сервер (posftix у меня выступает в качестве почтового прокси для корпоративного сервера).
Поделитесь решением, пожалуйста, кто такое реализовывал.
Заранее благодарю!
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Правило для postfix"  +/
Сообщение от SHRDLU (ok) on 19-Янв-13, 10:48 
>  Есть некий робот, который шлет письма извне всем сотрудникам нашей организации.
> Необходимо написать правило: если e-mail получателя не совпадает с адресом из
> списка (к примеру, текстовый файлик) - уничтожать письмо после принятия. Если
> совпадает - отправлять на почтовый сервер (posftix у меня выступает в
> качестве почтового прокси для корпоративного сервера).

Думаю, лучше всего добавить к postfix procmail или maildrop, и эту работу поручить им, во избежание ошибок.

в конфиге procmail написать что-то вроде

:0 :
* ^From: robot@domain
* ^To: user01@me
/dev/null

...

:0 :
* ^From: robot@domain
* ^To: user10@me
/dev/null

Т.е. почта с адреса robot@domain для user01@me - user10@me будет уходить в /dev/null, остальная почта пойдет как и раньше.

C maildrop дела почти не имел, поэтому отправляю в гугл

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Правило для postfix"  +/
Сообщение от user (??) on 19-Янв-13, 12:37 
> Коллеги, прошу прощения за наглость, надо быстро набросать правило:
>  Есть некий робот, который шлет письма извне всем сотрудникам нашей организации.
> Необходимо написать правило: если e-mail получателя не совпадает с адресом из
> списка (к примеру, текстовый файлик) - уничтожать письмо после принятия. Если
> совпадает - отправлять на почтовый сервер (posftix у меня выступает в
> качестве почтового прокси для корпоративного сервера).
>  Поделитесь решением, пожалуйста, кто такое реализовывал.
> Заранее благодарю!

  Непонятно в чем проблема. У вас что, postfix пропускает все письма. Если внутри у вас Active Directory, то пишите скриптик, который делает выборку и скидывает все адреса в текстовый файл. Ну а дальше стандартная процедура настройки postfix. Я это сделал через virtual:

virtual_mailbox_maps = cdb:/path_to_file/ldapquery


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Правило для postfix"  +/
Сообщение от SHRDLU (ok) on 19-Янв-13, 14:10 
>   Непонятно в чем проблема.

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

> письма. Если внутри у вас Active Directory, то пишите скриптик, который
> делает выборку и скидывает все адреса в текстовый файл. Ну а

Это ему ничего не даст.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Правило для postfix"  +/
Сообщение от user (??) on 19-Янв-13, 15:03 
>>   Непонятно в чем проблема.
> Ему нужно не пропускать почту от одного отправителя к группе получателей.
> При этом к другой группе получателей эти письма таки должны приходить, и
> вся остальная почта должна проходить беспрепятственно.
>> письма. Если внутри у вас Active Directory, то пишите скриптик, который
>> делает выборку и скидывает все адреса в текстовый файл. Ну а
> Это ему ничего не даст.

Если так, то можно с postfix все сделать, например, с помощью класса. Нужно пытаться выполнять задачу существующими решениями, а не придумывать колеса (я о доп. ПО в лице procmail)

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Правило для postfix"  +/
Сообщение от SHRDLU (ok) on 19-Янв-13, 15:40 
> Если так, то можно с postfix все сделать, например, с помощью класса.
> Нужно пытаться выполнять задачу существующими решениями, а не придумывать колеса (я
> о доп. ПО в лице procmail)

Может быть, но я с ходу такую конфигурацию не рожу, если у вас есть готовый ответ - поделитесь с человеком...

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Правило для postfix"  +/
Сообщение от user (??) on 19-Янв-13, 16:47 
>> Если так, то можно с postfix все сделать, например, с помощью класса.
>> Нужно пытаться выполнять задачу существующими решениями, а не придумывать колеса (я
>> о доп. ПО в лице procmail)
> Может быть, но я с ходу такую конфигурацию не рожу, если у
> вас есть готовый ответ - поделитесь с человеком...

У меня под рукой нет рабочей виртуальной среды с Postfix'ом что бы перед тем как сюда запостить, проверить правильность работы. В приведенной ссылке есть примеры. По аналогии можно подогнать под нужды товарисча, задавшего вопрос.
http://www.postfix.org/RESTRICTION_CLASS_README.html

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Правило для postfix"  +/
Сообщение от ALex_hha (??) on 20-Янв-13, 01:46 
> Коллеги, прошу прощения за наглость, надо быстро набросать правило:
>  Есть некий робот, который шлет письма извне всем сотрудникам нашей организации.
> Необходимо написать правило: если e-mail получателя не совпадает с адресом из
> списка (к примеру, текстовый файлик) - уничтожать письмо после принятия. Если
> совпадает - отправлять на почтовый сервер (posftix у меня выступает в
> качестве почтового прокси для корпоративного сервера).
>  Поделитесь решением, пожалуйста, кто такое реализовывал.
> Заранее благодарю!

как то так

smtpd_restriction_classes = robot
robot = check_recipient_access hash:/etc/postfix/robot_list, reject
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access, ...

/etc/postfix/sender_access
robot@example.com robot

/etc/postfix/robot_list
user1@localdomain.com OK
user2@localdomain.com OK
...
user100@localdomain.com OK

В принципе для robot_list можно выбирать список напрямую из АД

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 21-Янв-13, 12:04 
>[оверквотинг удален]
> smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender_access,
> ...
> /etc/postfix/sender_access
> robot@example.com robot
> /etc/postfix/robot_list
> user1@localdomain.com OK
> user2@localdomain.com OK
> ...
> user100@localdomain.com OK
> В принципе для robot_list можно выбирать список напрямую из АД

Спасибо всем ответившим!
Нет, с АД я заморачиваться не стану, задача несколько упростилась.
Письма от робота изъявило получать пара сотрудников, всем остальным этот спам не нужен.
Осталось определиться, как проще это сделать, через procmail или через классы...
Там надо-то ручками пару е-майлов вбить, чтобы получали, остальное - в /dev/null


Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Правило для postfix"  +/
Сообщение от ALex_hha (??) on 21-Янв-13, 12:17 
> Спасибо всем ответившим!
> Нет, с АД я заморачиваться не стану, задача несколько упростилась.
> Письма от робота изъявило получать пара сотрудников, всем остальным этот спам не
> нужен.
> Осталось определиться, как проще это сделать, через procmail или через классы...
> Там надо-то ручками пару е-майлов вбить, чтобы получали, остальное - в /dev/null

так в чем проблема то? Добавь адреса, которые хотят получать эту рассылку в /etc/postfix/robot_list, для всех остальных будет реджект

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 21-Янв-13, 12:20 
>> Спасибо всем ответившим!
>> Нет, с АД я заморачиваться не стану, задача несколько упростилась.
>> Письма от робота изъявило получать пара сотрудников, всем остальным этот спам не
>> нужен.
>> Осталось определиться, как проще это сделать, через procmail или через классы...
>> Там надо-то ручками пару е-майлов вбить, чтобы получали, остальное - в /dev/null
> так в чем проблема то? Добавь адреса, которые хотят получать эту рассылку
> в /etc/postfix/robot_list, для всех остальных будет реджект

Да, да, так и сделал. Прямо по Вашему конфигу. Теперь тестирую...

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 21-Янв-13, 14:45 
>>> Спасибо всем ответившим!
>>> Нет, с АД я заморачиваться не стану, задача несколько упростилась.
>>> Письма от робота изъявило получать пара сотрудников, всем остальным этот спам не
>>> нужен.
>>> Осталось определиться, как проще это сделать, через procmail или через классы...
>>> Там надо-то ручками пару е-майлов вбить, чтобы получали, остальное - в /dev/null
>> так в чем проблема то? Добавь адреса, которые хотят получать эту рассылку
>> в /etc/postfix/robot_list, для всех остальных будет реджект
> Да, да, так и сделал. Прямо по Вашему конфигу. Теперь тестирую...

Мдя... Не выходит каменный цветок...
fatal: restriction class `robot' needs a definition
Весь конфиг перетряхнул... Чего ему надо?
Ситуация, как тут: http://forum.altlinux.org/index.php?topic=25904.0
или как тут: http://www.postfix.ru/viewtopic.php?t=23709&postdays=0&posto...
чего ему надо, непонятно :(
может, ключи какие в postmap?
система 2.6.32-279.14.1.el6.centos.plus.x86_64
майлер postfix-2.6.6-2.2.el6_1.x86_64
default_database_type = hash

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "Правило для postfix"  +/
Сообщение от ALex_hha (??) on 21-Янв-13, 17:51 
postconf -n покажи
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 22-Янв-13, 09:34 
> postconf -n покажи

postconf -n
alias_database = hash:/etc/postfix/aliases
body_checks = regexp:/etc/postfix/body_checks smtpd_restriction_classes = robot
robot = check_recipient_access hash:/etc/postfix/robot, reject
config_directory = /etc/postfix
content_filter = smtp-amavis:[127.0.0.1]:10024
disable_vrfy_command = yes
local_recipient_maps =
message_size_limit = 51200000
milter_default_action = accept
mydestination = $myhostname, $mydomain, localhost.$mydomain, localhost
mydomain = XXX.ru
myhostname = XXX.ru
mynetworks = 127.0.0.0/8, 192.168.1.0/24
non_smtpd_milters = $smtpd_milters
show_user_unknown_table_name = no
smtp_always_send_ehlo = yes
smtp_helo_timeout = 60s
smtp_host_lookup = dns, native
smtp_mail_timeout = 60s
smtp_rcpt_timeout = 90s
smtpd_client_restrictions = permit_mynetworks, reject_unauth_pipelining, reject_unknown_client_hostname, reject_rbl_client bl.spamcop.net, reject_rbl_client dul.ru, check_client_access regexp:/etc/postfix/client_check.pcre
smtpd_delay_reject = yes
smtpd_end_of_data_restrictions = permit_mynetworks permit_sasl_authenticated reject_multi_recipient_bounce permit
smtpd_etrn_restrictions = reject
smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks, reject_invalid_helo_hostname, reject_non_fqdn_helo_hostname, reject_unknown_helo_hostname
smtpd_milters = inet:127.0.0.1:8891
smtpd_recipient_restrictions = permit_mynetworks,  reject_unauth_destination, reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unlisted_recipient, reject_unverified_recipient,
smtpd_reject_unlisted_recipient = yes
smtpd_reject_unlisted_sender = yes
smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/robot_sender_access, permit_mynetworks, reject_unknown_sender_domain, reject_non_fqdn_sender, reject_unlisted_sender,
smtpd_timeout = 120s
strict_rfc821_envelopes = yes
transport_maps = hash:/etc/postfix/transport

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Правило для postfix"  +/
Сообщение от SHRDLU (ok) on 22-Янв-13, 09:38 
> Мдя... Не выходит каменный цветок...
> fatal: restriction class `robot' needs a definition
> Весь конфиг перетряхнул... Чего ему надо?

definition ему надо. Предварительно.

robot = check_recipient_access hash:/etc/postfix/robot_list, reject
smtpd_restriction_classes = robot

как-то так...

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 22-Янв-13, 10:23 
>> Мдя... Не выходит каменный цветок...
>> fatal: restriction class `robot' needs a definition
>> Весь конфиг перетряхнул... Чего ему надо?
> definition ему надо. Предварительно.
> robot = check_recipient_access hash:/etc/postfix/robot_list, reject
> smtpd_restriction_classes = robot
> как-то так...

Простите... что ему надо? :\
в смысле, сначала robot = ...
а ниже строчкой smtpd_restriction_classes = robot ?
Порядок строк поменять?

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Правило для postfix"  +/
Сообщение от SHRDLU (ok) on 22-Янв-13, 10:27 
> Простите... что ему надо? :\
> в смысле, сначала robot = ...
> а ниже строчкой smtpd_restriction_classes = robot ?
> Порядок строк поменять?

Да.
Сначала опишите создаваемый класс.
Он пишет: "restriction class `robot' needs a definition", в вольном переводе "требуется описание для класса ограничений 'robot'"

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 22-Янв-13, 10:37 
>> Простите... что ему надо? :\
>> в смысле, сначала robot = ...
>> а ниже строчкой smtpd_restriction_classes = robot ?
>> Порядок строк поменять?
> Да.
> Сначала опишите создаваемый класс.
> Он пишет: "restriction class `robot' needs a definition", в вольном переводе "требуется
> описание для класса ограничений 'robot'"

Ага, уф, спасибо огромное! Вроде даже работает :)
Понаблюдаю еще.
P.S. а можно ли вместо , reject тихо дропать письма? И как? Роботу ответ отправлять бессмысленно, он не читатель, он писатель :)

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Правило для postfix"  +/
Сообщение от SHRDLU (ok) on 22-Янв-13, 11:33 
> P.S. а можно ли вместо , reject тихо дропать письма? И как?

discard вместо reject попробуйте, подробности в
http://www.postfix.org/access.5.html

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 22-Янв-13, 11:37 
>> P.S. а можно ли вместо , reject тихо дропать письма? И как?
> discard вместо reject попробуйте, подробности в
> http://www.postfix.org/access.5.html

Спасибо Вам огромное за терпение и помощь! И особенно за ссылку. О результатах отпишусь.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

20. "Правило для postfix"  +/
Сообщение от Alting email(ok) on 23-Янв-13, 14:35 
>>> P.S. а можно ли вместо , reject тихо дропать письма? И как?
>> discard вместо reject попробуйте, подробности в
>> http://www.postfix.org/access.5.html
> Спасибо Вам огромное за терпение и помощь! И особенно за ссылку. О
> результатах отпишусь.

Так, резюмирую:
все работает, discard вместо reject ничего не дает - письма все равно реджектятся, да и фиг бы с ним.
Еще раз благодарю всех за помощь!

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру