反向 DNS 是否是将灰色 IP 从受信任域提升为白色 IP 的好方法?

反向 DNS 是否是将灰色 IP 从受信任域提升为白色 IP 的好方法?

spamd我正在尝试使用 OpenBSD、OpenSMTPD 、和设置邮件服务器pf。我遇到的第一个问题是,许多大型网络邮件提供商(如 Gmail)会从具有不同 IP 地址的不同服务器重试投递,这使得他们很难将灰名单移至白名单。我编写了一个脚本,我认为它可能有帮助,它对 GREY 元组的 IP 执行 PTR 请求,并将生成的域与我信任的手动维护的域列表进行比较。

  • 首先,这是一个合理的方法吗?我可能会遇到什么问题?
  • spamdb其次,为什么在我通过白名单将灰色记录加入白名单后 ,灰色记录不会消失,spamdb -a X.X.X.X而是显示为白色记录?一旦将它们列入白名单,它应该适用于整个 IP,我想到那时灰色元组已经过时了。这些spamdb元组的典型生命周期是什么?我看到一些消失了,一些重复了(灰色然后是白色),等等。
  • 第三,我是否应该将这些列入白名单的 IP 从我的脚本写入文件,然后将该文件作为表加载,pf从而将这些受信任域的连接直接传递到smtpd?换句话说,我是否应该绕过,将它们列入灰名单,然后直接转到某个 pf 白名单表,而不是spamd仔细检查这些 IP 并将spamdb -a其添加到<spamd-white>pf 表中,spamdb然后将它们列入白名单。

这是我编写的脚本草稿,它会定期运行,以自动将遇到的和列入灰名单的受信任域列入白名单:

#!/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

答案1

  • 这取决于™:

    • 请记住,DNSPTR记录可能是错误的——仅仅因为您.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 地址的列表。

相关内容