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

Является ли обратный DNS хорошим методом для продвижения серых IP-адресов из доверенных доменов в белые?

Я пытаюсь настроить почтовый сервер с помощью OpenBSD, OpenSMTPD, spamd, и pf. Первая проблема, с которой я столкнулся, заключается в том, что многие крупные поставщики веб-почты, такие как Gmail, будут повторять попытку доставки с другого сервера с другим IP-адресом, что затрудняет им перенос серого списка в белый список. Я написал сценарий, который, как я думал, может помочь, выполнив запрос PTR на IP-адресе СЕРЫХ кортежей и сравнив полученный домен с вручную поддерживаемым списком доменов, которым я доверяю.

Вот черновик сценария, который я написал для периодического запуска, чтобы автоматически заносить в белый список доверенные домены, которые были обнаружены и занесены в серый список:

#!/bin/sh

set -A whitelist \
    amazon.com \
    google.com

spamdb | while read line
do
    IFS="|"
    set -A fields $line
    status=${fields[0]}
    if [[ $status = "GREY" ]]
    then
        ip=${fields[1]}
        ptr=`host ${ip}`
        IFS="."
        set -A tokens $ptr
        size=${#tokens[*]}
        domain="${tokens[size-2]}.${tokens[size-1]}"
        found=false
        IFS=" "
        for whitelisted in ${whitelist[@]}
        do
            if [[ $domain = $whitelisted ]]
            then
                found=true
            fi
        done
        if (($found))
        then
            echo "+ $ip ($domain) has been whitelisted"
            spamdb -a "$ip"                                                                                                                                                                                
        else
            echo "- $ip ($domain) is unrecognized"
        fi
    fi
done

exit 0
  • Зависит ™:

    • Имейте в виду, что DNS PTR записи могут быть ложными - просто потому, что вы получаете .google.com как часть PTR, не означает, что это Google контролирует рассматриваемый IP-адрес. Конечно, вы также можете захотеть выполнить прямое разрешение перед тем, как предпринимать какие-либо действия (хотя, честно говоря, влияние в случае серых списков будет очень ограниченным, так как любой, кто может изменить PTR скорее всего, также сможет успешно обойти ваши серые списки).
    • Обработка интернет-ввода от sh может быть не лучшим подходом.
    • Кроме того, вы потратите довольно много времени на выполнение этих разрешений, некоторые из которых могут истекать по таймауту, поэтому вы должны убедиться, что не запускаете этот скрипт слишком часто, особенно если другая его копия уже запущена.
  • Не стесняйтесь взглянуть на http://BXR.SU/OpenBSD/usr.sbin/spamdb/spamdb.c#dbupdate. Однако код не выглядел слишком читабельным.

  • Я думаю, что любой подход подойдет. Вероятно, будет проще использовать spamdb чтобы поддерживать этот автоматический белый список, так как он позаботится об обслуживании, истечении срока действия и небольшой статистике. Однако, если вы ведете свой собственный список, у вас есть дополнительное преимущество в виде внесения в белый список для всей сети.

Кроме того, если вы хотите, чтобы это ограничивалось только Google, Amazon и другими поставщиками, которые хранят правильные записи SPF, учтите, что вы можете пойти прямо вперед, получив все их IP-адреса сразу, даже с помощью автоматических средств ( с помощью SPF, например). Видеть https://support.google.com/a/answer/60764. Скорее всего, вы даже можете использовать существующую библиотеку SPF, чтобы получить список всех этих IP-адресов.