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

postfix-policyd-spf-python - защита от спуфинга - spf проверяет FAIL, но никаких действий не предпринимается - почему?

Я установил postfix-policyd-spf-python и настроил postfix интеграция согласно документации.

Это мое policyd-spf.conf файл конфигурации:

debugLevel = 1 
TestOnly = 0

HELO_reject = SPF_Not_Pass
Mail_From_reject = Fail

PermError_reject = False
TempError_Defer = False

skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1

Входящие электронные письма от зарубежных почтовых серверов проверяются и помечаются правильно. Но когда я проверяю защиту от спуфинга, письма каким-то образом проходят:

$ telnet mail.example.com 25

Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com ESMTP Postfix
helo asd.somedomain.com
250 mail.example.com
mail from: me@example.com
250 2.1.0 Ok
rcpt to: test@example.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
from: "ME" <me@example.com>
to: "test" <test@example.com>
subject: test

asdasd klajsdlaksjd 

thanks!
.

250 2.0.0 Ok: queued as 8C9EC1260E1

На мой взгляд, это письмо НЕ ДОЛЖНО доставляться.

Вот результаты отладки из postfix-policyd-spf-python:

policyd-spf[34414]: Found the end of entry
policyd-spf[34414]: Config: {'debugLevel': 5, 'HELO_reject': 'SPF_Not_Pass', 'Mail_From_reject': 'Fail', 'PermError_reject': 'False', 'TempError_Defer': 'False', 'skip_addresses': '127.0.0.0/8,::ffff:127.0.0.0/104,::1', 'TestOnly': 0, 'SPF_Enhanced_Status_Codes': 'Yes', 'Header_Type': 'SPF', 'Hide_Receiver': 'Yes', 'Authserv_Id': 'mail.example.com', 'Lookup_Time': 20, 'Whitelist_Lookup_Time': 10, 'Void_Limit': 2, 'Reason_Message': 'Message {rejectdefer} due to: {spf}. Please see {url}', 'No_Mail': False, 'Mock': False}
policyd-spf[34414]: Cached data for this instance: []

policyd-spf[34414]: skip_addresses enabled.

policyd-spf[34414]: _get_resultcodes: scope: helo, Reject_Not_Pass_Domains: None, helo_policy: SPF_Not_Pass, mfrom_policy: Fail
policyd-spf[34414]: Scope helo unused results: ['Pass', 'None', 'Temperror', 'Permerror']
policyd-spf[34414]: helo policy true results: actions: {'defer': [], 'reject': ['Fail', 'Softfail', 'Neutral'], 'prepend': ['Pass', 'None', 'Temperror', 'Permerror']} local {'local_helo': False, 'local_mfrom': False}
policyd-spf[34414]: spfcheck: pyspf result: "['None', '', 'helo']"
policyd-spf[34414]: None; identity=no SPF record; client-ip=xx.xx.xx.xx; helo=asd.somedomain.com; envelope-from=me@example.com; receiver=<UNKNOWN> 


policyd-spf[34414]: _get_resultcodes: scope: mfrom, Reject_Not_Pass_Domains: None, helo_policy: SPF_Not_Pass, mfrom_policy: Fail
policyd-spf[34414]: Scope mfrom unused results: ['Pass', 'None', 'Neutral', 'Softfail', 'Temperror', 'Permerror']
policyd-spf[34414]: mfrom policy true results: actions: {'defer': [], 'reject': ['Fail'], 'prepend': ['Pass', 'None', 'Neutral', 'Softfail', 'Temperror', 'Permerror']} local {'local_helo': False, 'local_mfrom': False}
policyd-spf[34414]: spfcheck: pyspf result: "['Fail', 'SPF fail - not authorized', 'mailfrom']"

policyd-spf[34414]: Fail; identity=mailfrom; client-ip=xx.xx.xx.xx; helo=asd.somedomain.com; envelope-from=me@example.com; receiver=<UNKNOWN> 


policyd-spf[34414]: Action: None: Text: None Reject action: 550 5.7.23

Как видно из файлов журнала, проверка SPF действительно возвращает:

spfcheck: pyspf result: "['Fail', 'SPF fail - not authorized', 'mailfrom']"

однако последняя строка гласит:

Action: None: Text: None Reject action: 550 5.7.23

Это почему? Почему Action: None? На мой взгляд, письмо должно быть отклонено и не принято сервером. Что я делаю не так?

Параметр TestOnly = 1 не останавливает почту, которая не прошла проверку SPF, в целях тестирования. Для производственного почтового сервера отключите эту опцию.

Вероятно, ваша проблема связана с тем, что вы используете telnet и проверяете с того же хоста, который разрешен b / c следующего параметра: skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1

установка

TestOnly = 1

устраняет проблему!