我目前正在使用以下规则:
ufw allow out from my_local_ip to any port 587
这对我来说有点太松了。我想把它收紧一点,限制为仅 gmail 的 smtp 服务器 ip 地址,但它们总是在变化。我过去只是等到外发电子邮件没有到达目的地,然后检查系统日志以查找被阻止的 ip 地址,然后将其添加到 ufw 配置脚本中。但是,现在我需要更高的可靠性。
有没有办法在 ufw 中使用 smtp.gmail.com?我不这么认为,但我想问一下。还有其他想法吗?谢谢。
更新
根据 izx 的建议,我从 whois 中获得了以下(缩写)信息:
$ whois 74.125.53.108
...
网络范围:74.125.0.0 - 74.125.255.255
CIDR: 74.125.0.0/16
...
使用此信息,我在我的 ufw 配置脚本中创建了以下命令(我意识到还有其他范围需要打开,这只是一个示例):
ufw allow out from 192.168.2.5 to 74.125.0/24.0/24 port 587
但 ufw 不喜欢这样。所以我把它改成了:
ufw allow out from 192.168.2.5 to 74.125.0.0/24 port 587
这个 ufw 接受了,但显然这只会阻止这个范围内以 0 为第三个八位字节的任何地址。那么我如何才能从 0-255 获得第三个八位字节呢?
答案1
您需要一个脚本来定期解析域名并使用最新 IP 更新防火墙规则。请尝试以下方法:
此类域名通常有多个 IP 与其关联。使用以下host domain.tld
命令获取列表:
$ 主机 smtp.gmail.com smtp.gmail.com 是 gmail-smtp-msa.l.google.com 的别名。 gmail-smtp-msa.l.google.com 的地址为 74.125.127.108 gmail-smtp-msa.l.google.com 的地址为 74.125.127.109
但根据您的问题,这两个可能也在不断变化。因此,最好将整个网络块列入白名单——使用whois
与 IP:
$ whois 74.125.127.108 网络范围:74.125.0.0 - 74.125.255.255 CIDR: 74.125.0.0/16 原产地AS: 网络名称:GOOGLE 网络句柄:NET-74-125-0-0-1 父级:NET-74-0-0-0-0 网络类型: 直接分配 注册日期: 2007-03-13 更新时间:2012-02-24 参考:http://whois.arin.net/rest/net/NET-74-125-0-0-1 ...
/告诉您要将哪些 IP 列入白名单 - 74.125.0.0/16。Google 可以将此范围内的任何 IP 分配给NetRange
smtp.gmail.comCIDR
答案2
以下命令将返回几个域:
nslookup -q=TXT _spf.google.com 8.8.8.8
对每一个运行 nslookup:
nslookup -q=TXT _netblocks.google.com 8.8.8.8
nslookup -q=TXT _netblocks2.google.com 8.8.8.8
nslookup -q=TXT _netblocks3.google.com 8.8.8.8
从:http://support.google.com/a/bin/answer.py?hl=en&answer=60764
答案3
免费 GMail 和付费 GSuite GMail 使用不同的服务器;因为当我运行时:
sudo doveadm dump /home/vmail/acme.com/postmaster/Maildir | grep google.com
它给了我209.85.128.0/17
范围内的地址。
ARIN 甚至有以下 API 响应:果蔬汁。