youtube.comとpw.liveのウェブサイトだけを開き、他のすべての発信トラフィックはブロックするようにUbuntuシステムを設定したいと思います。
今まで私がしたことは、フォルダの下に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
これには2つの主な問題があります。まず、iptables
ドメイン名ではなくIPアドレスに適用されます。 YouTubeなどの大規模なドメインには、Akamaiなどのコンテンツ配信ネットワーク(CDN)を介した地理認識配信用の複数のIPアドレスがあります。実際には、各グループに1つのIPアドレスを追加するだけです。つまり、有効なエンドポイントが非常に欠けていることを意味します。
2番目のセットは、あなたが許可しない別のドメイン名でホストされている実際のビデオです。はい、これらの追加ドメインの名前とIPにも同じ問題があります。
あなたが望むのは、ドメイン名を使用できるプロキシサーバーを設定することです。HAプロキシ次に、サーバーがWebサービス用のプロキシにのみ接続できるようにします。プロキシを設定すると、プロキシがリッスンするポートが決まり、それによって許可されるポートが決まりますiptables
。