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

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

  • Во-первых, это разумный подход? С какими проблемами я могу столкнуться?
  • Во-вторых, почему бы не СЕРЫЙ записи исчезают из spamdb после того, как я внес их в белый список через spamdb -a XXXX , а затем они отображаются как БЕЛАЯ запись? После того, как они внесены в белый список, это должно быть для всего IP, и я полагаю, что СЕРЫЙ кортеж к этому моменту устарел. Каков типичный жизненный цикл этих spamdb кортежей? Я видел, как некоторые исчезали, некоторые дублировались (СЕРЫЙ, затем БЕЛЫЙ) и т. Д.
  • В-третьих, следует ли мне вместо этого записывать эти IP-адреса из белого списка из моего скрипта в файл, а затем загружать этот файл как pf таблица, которая передает соединения из этих доверенных доменов напрямую в smtpd ? Другими словами, вместо того, чтобы проходить через spamd и добавлять эти IP-адреса в белый список с помощью spamdb -a , которые затем добавляются в таблицу pf, следует Я просто обхожу spamdb , оставляя их в сером списке, и перейти прямо к какой-нибудь таблице белого списка pf.

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

#!/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
4
задан 15 November 2015 в 23:35
1 ответ
  • Зависит ™:

    • Имейте в виду, что записи 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-адресов.

2
ответ дан 3 December 2019 в 03:56

Теги

Похожие вопросы