通常の DNS クエリを送ると、ISP と DNS リゾルバーの両方に、あなたの IP アドレスと照会したドメインが見えます。Cloudflare の Tor Onion サービスは、DNS クエリを Tor ネットワーク経由で送るため、直接リクエストするより匿名性が大きく高まります。リゾルバーはあなたの IP アドレスを見ることがなく、ISP もドメイン名の解決を試みたことを特定できません。
このサービスの詳細は、ブログ記事 ↗を参照してください。
トラフィックを IP アドレスへ直接送る通常の DNS モードとは異なり、Tor ネットワークは IP アドレスを露出させずにトラフィックをルーティングします。そのため、隠しリゾルバーへの接続はすべて Tor クライアント経由にする必要があります。
始める前に、Tor Project のサイト ↗から Tor クライアントをダウンロードしてインストールしてください。Tor Browser を使う場合は、127.0.0.1:9150 で SOCKS プロキシ ↗が自動的に起動します。
コマンドラインから Tor を使う場合は、次の設定ファイルを作成します。
SOCKSPort 9150次のコマンドで Tor を起動できます。
tor -f tor.confまた、Tor Browser を使っている場合は、リゾルバーのアドレスを開くと、いつもの 1.1.1.1 のページが表示されます。
https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/1.1.1.1 のアドレスを忘れた場合は、cURL で取得できます。
curl -sI https://tor.cloudflare-dns.com | grep -i alt-svcalt-svc: h2="dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443"; ma=315360000; persist=1すべての DNS クライアントが Tor ネットワークへ直接接続できるわけではありません。socat ↗ は、ローカルポートを Tor プロキシ経由で転送し、DNS 対応ソフトから隠しリゾルバーへ到達できるようにします。
隠しリゾルバーは TCP ポート 53(DNS over TCP)とポート 853(DNS over TLS)で待ち受けます。Tor プロキシを用意したあと、特権ユーザーで次の socat コマンドを実行します。プロトコルに応じて PORT を 53 または 853 に設定してください。
PORT=853; socat TCP4-LISTEN:${PORT},reuseaddr,fork SOCKS4A:127.0.0.1:dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:${PORT},socksport=9150以降は、1.1.1.1 のセットアップの通常手順に従えます。ただし、常に 1.1.1.1 ではなく 127.0.0.1 を使ってください。別のデバイスからプロキシへアクセスする場合は、socat コマンド内の 127.0.0.1 をローカル IP アドレスに置き換えます。
ブログ記事で説明しているとおり ↗、推奨する方法は DNS over HTTPS(DoH)です。DNS クエリ全体を HTTPS 接続内で暗号化します。セットアップ手順は次のとおりです。
-
DNS over HTTPS クライアントで 1.1.1.1 に接続するの手順に従って
cloudflaredをダウンロードします。 -
Tor SOCKS プロキシを起動し、
socatで TCP:443 を localhost へ転送します。
socat TCP4-LISTEN:443,reuseaddr,fork SOCKS4A:127.0.0.1:dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion:443,socksport=9150- マシンで
.onionアドレスを localhost として扱うようにします。
cat << EOF >> /etc/hosts
127.0.0.1 dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion
EOFこのコマンドを複数回実行した場合は、競合を避けるため /etc/hosts の重複エントリを削除してください。
- 最後に、ローカルの DNS over UDP デーモンを起動します。
cloudflared proxy-dns --upstream "https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"INFO[0000] Adding DNS upstream url="https://dns4torpnlfs2ifuz2s2yf3fc7rdmsbhm6rw75euj35pac6ap25zgqad.onion/dns-query"
INFO[0000] Starting DNS over HTTPS proxy server addr="dns://localhost:53"
INFO[0000] Starting metrics server addr="127.0.0.1:35659"