Назад | Перейти на главную страницу

Как ограничить домен отправителя для почты, отправляемой на определенные адреса пересылки в Postfix?

В настоящее время у меня есть установка Postfix, которая успешно доставляет почту (веб-почта / IMAP) для более чем 100 пользователей в нашей компании, распределенных между несколькими доменами (продажи, операции, управление и т. Д.). Недавно кто-то слил (не знаю, кто, неважно) коллективный адрес продавцов сборщику спама, который теперь использует его для целевого фишинга, потому что он распространяется на 30+ сотрудников отдела продаж. Форвард выглядит так:

salespeople@mycompany.com ====> bill@mycompany.com, charles@mycompany.com, dan@mycompany.com ... zed@mycompany.com

Каждый из них теперь получает через этот адрес пересылки много спама, чтобы связаться с HR (вредоносная ссылка), чтобы обновить свой адрес W-2, или собрать защищенное сообщение, или что-то подобное.

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

Я хочу только разрешить отправку почты на этот адрес пересылки (но не на ЛЮБОЙ адрес пересылки, так как у меня есть несколько типов info @) только с адресов электронной почты в указанных доменах, то есть @ mycompany.com.

Моя установка Postfix использует виртуальный поиск MySQL для доменов, пересылки и пользователей, аналогично тому, что описано Вот и другие места в сети. На данный момент все работает безупречно, за исключением того, что некоторым пересылкам слишком легко отправлять почту.

Еще раз, я хочу ограничить домен отправителя только для выбранных перенаправлений, а не для всех. В настоящее время мы смягчаем это, используя поле bcc: при рассылке сообщений в эти списки, поэтому фактический адрес списка не покидает здание. Это ограничивает обсуждение среди получателей посредством ответа всем, не уверен, что это функция или ошибка на данный момент.

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

Добавьте следующее в smptd_recipient_restrictions в main.cf:

check_sender_access hash:/etc/postfix/sender_access, check_recipient_access hash:/etc/postfix/recipient_access

В /etc/postfix/sender_accessнапишите правило, разрешающее mycompany.com:

mycompany.com OK

В /etc/postfix/recipient_accessнапишите правило, которое блокирует почту на salespeople@mycompany.com:

salespeople@mycompany.com REJECT Sorry, only mycompany.com can mail this address

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

postmap /etc/postfix/sender_access
postmap /etc/postfix/recipient_access

Первый smptd_recipient_restrictions Правило проверяет отправителя. Если он находится в домене mycompany.com, сообщение немедленно принимается. Если нет, он перейдет к следующему правилу, которое проверяет получателя. Если это ваш псевдоним продавца, он отклонен. Как видите, он выполняет то, что вам нужно, хотя он немного негибкий, потому что вы не можете произвольно объединять домены отправителя с адресами получателей.

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

Вы, вероятно, можете хранить таблицы sender_access и recipient_access в MySQL вместо файлов, хотя у меня нет опыта с этим.