如何将出站连接限制为单个域名?

如何将出站连接限制为单个域名?

我想将我的设备的出站访问限制为单个域名,例如 abc.com。我怎样才能做到这一点?

设备需要将域名解析为 IP 地址,该地址可能会根据服务器负载而变化。我同意允许 DNS 访问+单个域。

看起来 iptables 可以接受主机名,但如果主机名的 IP 地址发生变化,这不会是动态的。我什至不知道 nftables 中是否有主机名支持。

我想知道我有什么选择。

答案1

作为起点:

/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT

然后添加此 crontab 作业(如果需要,可以每分钟运行一次):

#! /bin/bash

dig +short abc.com | while read address; do
    if [ -z "`/sbin/iptables-save | grep "$address"`" ]; then
        /sbin/iptables -A OUTPUT -d "$address" -p tcp -m tcp --dport 80  -j ACCEPT
        /sbin/iptables -A OUTPUT -d "$address" -p tcp -m tcp --dport 443 -j ACCEPT
    fi
done

这完全未经测试,但应该可行。

相关内容