Postfix policyd-spf отклонить Нет
Как настроить policyd-spf в Postfix для отклонения доменов без записи SPF?
В документации не указано это условие, и оно необходимо для отклонения поддельных / неавторизованных писем в исходящем ретрансляторе.
Аналогичные вопросы и ответы по Stackoverflow рекомендует использовать DMARC вместе с SPF. Но это не идеальный случай для Postfix, так как OpenDMARC все еще находится в стадии бета-тестирования, и я не знаю, как реализована его реализация Postfix или может ли она быть настроена так, чтобы отклонять электронные письма в случае отсутствия записи DMARC.
2 ответа
Серверы политик 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')