Я получаю большое количество спама, если отправитель подделан как мой собственный адрес электронной почты, то есть from name@example.com
Теперь все электронные письма с моего домена example.com отправляются с использованием определенного сервера. Как я могу настроить фильтр procmail (или другой фильтр) для удаления всех писем, предположительно отправленных с example.com, которые не отправляются через этот конкретный SMTP-сервер?
Или, возможно, есть лучший способ сделать это с помощью самого SMTP-сервера (постфикс).
РЕДАКТИРОВАТЬ: спам поступает с нескольких серверов SMTP. Думаю, я просто хочу, чтобы правило говорило, что если есть электронное письмо в форме xxx@example.com и оно не приходит с SMTP-сервера mail.example.com, тогда электронное письмо должно быть заблокировано.
РЕДАКТИРОВАТЬ: Я выберу параметр SPF, хотя, если кто-то также может показать, как это можно сделать с помощью procmail, мне также было бы интересно узнать об этом.
Если вы знаете, что вы хотите заблокировать только один SMTP-сервер (и один IP-адрес), я бы предложил использовать iptables или что-то в этом роде. Лучше предотвратить обработку электронной почты даже сервером. Вы можете сделать это с помощью такой строки:
iptables -A INPUT -s 71.230.228.47 -j DROP
Однако имейте в виду, что это не предотвратит подделку электронной почты. Это только помешает этому конкретному серверу (IP) отправлять вам что-либо.
Редактировать: Ах, очевидно, я действительно неправильно прочитал «конкретный SMTP-сервер». Еще одно быстрое решение с использованием procmail, как вы предложили, можно найти Вот. Вы можете вставить IP-адрес в переменную, а затем использовать его в рецепте procmail для проверки IP-адреса вашего сервера. Это определенно просто решение "быстрого исправления", поскольку ответ topdog о SPF является более надежным решением.
SPF, DKIM созданы, чтобы остановить подобные вещи. Вы можете заблокировать эти письма на уровне MTA, не принимая их, используя SPF или DKIM.