Chrome / Chromiumを使用しているときにiptablesがGoogleウェブサイトをブロックできないのはなぜですか?

Chrome / Chromiumを使用しているときにiptablesがGoogleウェブサイトをブロックできないのはなぜですか?

私は次のコマンドを使用しました。ここ:

# Allow loopback device (internal communication)
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT

# Allow all local traffic.
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT

# Set default policies to drop all communication unless specifically allowed
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP

これはほぼすべてのソースからのインターネットトラフィックを正常にブロックしているように見えますが、Chromium(Pi 4モデルBのRaspbian Buster)を介してアクセスされるGoogleサービスは許可されています(例:youtube.comは邪魔なしにロードされます)。検索は問題を理解するのに本当に役に立ちませんでした。私が見つけた最も近い結果は次のとおりです。この問題しかし、私が答えることができる限り、ドメインを指定するルールフィルタはパケットに正常に適用できず、私が使用するルールはドメインをまったく指定しないということです。ドメインやブラウザに関係なく、ローカルとループバックを除くすべてのパケットを破棄する必要があります。そうですか?

背景として、これはNASにあり、インターネットにさらされているものに対して編集的です。 OpenVPN経由でインターネットにアクセスする私のPiにも同様の規則があり、VPN接続が失われたときに同様の動作を観察します。 Chromium 経由で奇妙にアクセスされる Google サービスを除き、トラフィックは許可されません。最大の問題は、NASがVPNを削除することに関する懸念です。

sudo iptables-save編集:YouTubeがブラウザにロードされ、ルールが適用されると、各リクエストの出力がコメントに追加されます。

# Generated by xtables-save v1.8.2 on Mon Apr 27 13:24:52 2020
*filter
:INPUT DROP [7:2304]
:FORWARD DROP [0:0]
:OUTPUT DROP [482:36138]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 192.168.1.0/24 -j ACCEPT
COMMIT
# Completed on Mon Apr 27 13:24:52 2020

私はネットワーキングでその用語の正確な定義に慣れていませんが、プロキシがあるとは信じていません。 Googleはルータをモデム(仲介サーバーではない)からISPに接続していることを示します。関係ありますか?

また、削除されたコメントに応答して、私のISPはIPv6をサポートしているようです。

編集2:出力ping -c6 2001:67c:2564:a119::77

PING 2001:67c:2564:a119::77(2001:67c:2564:a119::77) 56 data bytes
64 bytes from 2001:67c:2564:a119::77: icmp_seq=1 ttl=49 time=132 ms
64 bytes from 2001:67c:2564:a119::77: icmp_seq=2 ttl=49 time=130 ms
64 bytes from 2001:67c:2564:a119::77: icmp_seq=3 ttl=49 time=127 ms
64 bytes from 2001:67c:2564:a119::77: icmp_seq=4 ttl=49 time=147 ms
64 bytes from 2001:67c:2564:a119::77: icmp_seq=5 ttl=49 time=129 ms
64 bytes from 2001:67c:2564:a119::77: icmp_seq=6 ttl=49 time=128 ms

--- 2001:67c:2564:a119::77 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 12ms
rtt min/avg/max/mdev = 126.981/132.157/147.250/6.932 ms

編集3:これまでの最終編集。解決策の提案に従って得られた作業規則を添付したかった。

# Allow loopback device (internal communication)
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
sudo ip6tables -A INPUT -i lo -j ACCEPT
sudo ip6tables -A OUTPUT -o lo -j ACCEPT

# Allow all local traffic.
sudo iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
sudo iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT

# Allow VPN establishment
# Only 2 ports open, 1 for DNS and 1 for VPN
# If establishing through an IP and not a name, the ones with port 53 can be removed
# Port 1198 may be different depending on the VPN
sudo iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
sudo iptables -A INPUT -p udp --sport 53 -j ACCEPT
sudo iptables -A OUTPUT -p udp --dport 1198 -j ACCEPT
sudo iptables -A INPUT -p udp --sport 1198 -j ACCEPT

# Accept all TUN connections (tun = VPN tunnel)
sudo iptables -A OUTPUT -o tun+ -j ACCEPT
sudo iptables -A INPUT -i tun+ -j ACCEPT

# Set default policies to drop all communication unless specifically allowed
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP
sudo ip6tables -P INPUT DROP
sudo ip6tables -P OUTPUT DROP
sudo ip6tables -P FORWARD DROP

これには、ip6tablesのローカルトラフィックルールはありませんが、ローカルネットワークがIPv4の代わりにIPv6を実行している場合は必要です。この場合、ローカルトラフィックルールでIPアドレスを変更してiptables交換するだけです。ip6tables

答え1

pingの結果は、お使いのコンピュータがIPv6を使用して外部の世界と通信できることを示します。したがって、ChromiumがIPv4接続を取得できない場合は、IPv6を使用します。これが起こらないようにするにはip6tables

関連情報