我想允许 gmail(并且只允许 gmail 或其他 Google 产品,而不是其他 IP)访问我的 pop3 服务器。
有没有办法设置 iptables 以允许所有由 Google 控制的 IP 通过我的防火墙?
答案1
您需要拥有一份 Google 拥有的 IP 列表。该列表会随时间而变化,因此您需要维护它,但获取列表的过程至少相当清晰。
https://support.google.com/a/answer/60764?hl=en给出了流程,你可以把它转换成一行代码,像这样:
dig +short TXT @8.8.8.8 _spf.google.com | perl -ne 'print join "\n",m/'nclude:([^ ]*)/g' | xargs -n 1 dig +short TXT @8.8.8.8 | perl -ne 'print join "\n", m/ip[46]:([^ ]*)/g'
现在,您只需要再进行一点处理即可将其转换为防火墙规则,并且您将拥有一些可以从 cron 运行的程序来维护防火墙,因为 google 的 IP 偶尔会发生变化。不过,在如何做到这一点方面还有一点变化的空间。您是直接操作 iptables,还是通过更友好的防火墙配置工具进行操作?(例如,我主要使用ferm
)。