Как настроить policyd-spf в Postfix для отклонения доменов без записи SPF?
В документация не указывает это условие и необходимо для отклонения поддельных / неавторизованных писем на исходящем реле.
Аналогичный Вопросы и ответы на Stackoverflow рекомендует использовать DMARC вместе с SPF. Но это не идеальный случай для Postfix, поскольку OpenDMARC все еще находится в стадии бета-тестирования, и я не знаком с его реализацией Postfix, и можно ли его даже настроить на отклонение электронных писем в случае отсутствия записи DMARC.
Серверы политик SPF, такие как policyd-spf, не имеют возможности отклонять домены без записей SPF. Решение заключалось в использовании настраиваемого сервера политики.
Если вы используете python policyd-spf, вы можете отредактировать исполняемый файл (/ usr / bin / policyd-spf в debian):
В строке ~ 515 заменить:
if configData.get('Mail_From_reject') != 'No_Check':
res = spf.check2(ip, sender, helo, querytime=configData.get('Lookup_Time'))
mfrom_result = [res[0], res[1]]
mfrom_result.append('mailfrom')
mfrom_result[0] = mfrom_result[0].lower()
mfrom_result[0] = mfrom_result[0].capitalize()
mfrom_resultpolicy, local = _get_resultcodes(configData, 'mfrom')
по :
if configData.get('Mail_From_reject') != 'No_Check':
res = spf.check2(ip, sender, helo, querytime=configData.get('Lookup_Time'))
mfrom_result = [res[0], res[1]]
# Selenith's add : reject if no spf record
if mfrom_result[0]=='none':
mfrom_result[0] = 'fail'
mfrom_result[1] = 'no SPF record'
mfrom_result.append('mailfrom')
mfrom_result[0] = mfrom_result[0].lower()
mfrom_result[0] = mfrom_result[0].capitalize()
mfrom_resultpolicy, local = _get_resultcodes(configData, 'mfrom')