Iptables 在 utm 应用程序下的 ubuntu VM 中无法正常工作

Iptables 在 utm 应用程序下的 ubuntu VM 中无法正常工作

我想像这样设置我的 ubuntu 机器,以便它只打开 youtube.com 和 pw.live 网站并阻止所有其他传出流量。

到目前为止我所做的是在文件夹下面创建 ip_table 脚本

/etc/iptables
#!/bin/bash

###### Flush existing rules
iptables -F

###### Allow DNS resolution
iptables -A OUTPUT -p udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT

###### Allow loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

###### Load website rules from file
while read -r website; do
    iptables -A OUTPUT -p tcp -d "$website" -m state --state NEW,ESTABLISHED -j ACCEPT
done < /etc/iptables/websites.txt

###### Block everything else
iptables -A OUTPUT -j DROP

##### Save the rules
iptables-save > /etc/iptables/rules.v4
####################

在我的 website.txt 中我添加了

youtube.com
pw.live
www.youtube.com
www.pw.live

我面临的问题是,我可以打开 YouTube.com,但我无法播放缩略图中的任何视频,它只是显示黑屏。

我怎样才能解决这个问题?

答案1

您在这里贡献了两个主要问题。首先,iptables适用于 IP 地址,而不是域名。 YouTube 等大型域拥有多个 IP 地址,可通过 Akamai 等内容分发网络 (CDN) 进行地理感知分发。您实际上只是从每组中添加一个 IP 地址,这意味着您遗漏了大量有效端点。

您的第二组是实际视频托管在您不允许的其他域名上。是的,您在这些附加域的名称与 IP 方面也会遇到同样的问题。

您可能想要做的是建立一个可以使用域名的代理服务器,例如HA代理然后只允许您的服务器连接到该代理以获取 Web 服务。您将在设置代理时确定代理侦听的端口,这反过来又确定您允许的端口iptables

相关内容