У меня есть хост, назовем его foo.com, на котором я запускаю Postfix на Debian. Postfix в настоящее время настроен на следующие действия:
Однако недавно я заметил, что некоторые спамеры могут отправлять мне спам при прохождении проверок SPF. При дальнейшем осмотре выяснилось, что они подключаются к моему серверу Postfix и затем говорят
HELO bar.com
MAIL FROM:<info@foo.com> <---- this!
RCPT TO:<info@foo.com>
DATA
From: "Buy Viagra" <info@foo.com> <--- and this!
...
Как мне предотвратить это? Я хочу, чтобы приложения, работающие на локальном хосте, могли сказать MAIL FROM:<something@foo.com>
. Вот мой текущий конфиг (main.cf): https://gist.github.com/1283647
Вам нужно, чтобы smtpd_sender_restrictions был:
smtpd_sender_restrictions = permit_mynetworks, check_sender_access hash:/etc/postfix/notfromme
И в /etc/postfix/notfromme
ты положил
foo.com REJECT
затем postmap /etc/postfix/notfromme
и перезагрузите постфикс.
Готово.
Вот мой взгляд на это:
SPFv1 защищает адрес отправителя конверта (Return-Path), а не адрес отправителя заголовка (From). В большинстве случаев (по крайней мере, что я видел) адрес отправителя заголовка (From) подделывается (как foo.com), но это не то, что проверяет SPFv1, поэтому он проходит.
Думаю, если добавить:
smtpd_helo_required = да smtpd_helo_restrictions = allow_mynetworks check_helo_access хеш: / etc / postfix / helo_access,
в ваш main.cf и:
foo.com ОТКАЗАТЬ
в / etc / postfix / helo_access, за которым следует postmap helo_access и перезапуск postfix, это должно означать, что любой, кто идентифицирует себя как «@ foo.com», будет отвергнут сразу, ЕСЛИ соединение не с локального хоста, и в этом случае оно будет разрешено (из-за того, что рейтинг permission_mynetworks выше, чем check_helo_access).
edit - на самом деле, это, вероятно, не поможет в случае, если кто-то идентифицируется как «HELO randomhost.net», а затем отправляет письмо с @ foo.com. Вероятно, вам нужно реализовать header_checks:
http://www.postfix.org/header_checks.5.html http://www.postfix.org/BUILTIN_FILTER_README.html#remote_only
После того, как вы настроили header_checks для обнаружения писем @ foo.com, вы сможете настроить master.cf так, чтобы что-либо с localhost пропускало эти проверки, а проверялась только входящая почта из других систем. Затем, когда вы получите электронное письмо от @ foo.com из другой Интернет-системы, от него следует отказаться.