Cloudflare WARP クライアントをつかった WARP の方法を列記します。
(WARP = Cloudflare 経由で通信のプライバシーを保護する)
#DNS を WARP
端末に設定されたフルリゾルバに DNS クエリ(UDP/TCP 53)を送信する代わりに、Cloudflare との暗号化チャネル上で DNS クエリを送信します。
暗号化チャネルは選択が可能です。
Protocol | SNI | Port |
---|---|---|
TLS | cloudflare-dns.com | TCP 853 |
HTTPS | cloudflare-dns.com | TCP 443 |
WARP クライアントの設定は 1.1.1.1 を選択します。
Preferences > Connection > DNS Protocol で TLS を選択してみます。
DNS クエリを送信し、パケットをキャプチャすると UDP 53 での送信はされず、下記の SNI を使い TLS コネクション (Port 853 TCP) 上でやり取りされていることが確認できます。
HTTPS を選択すると、違うポート (Port 443 TCP) で TLS コネクションが張られます。
#全部を WARP
DNS を含めたすべてのアプリケーション通信を Cloudflare との暗号化チャンネル経由やり取りすることができます。
WARP クライアントの設定は下記の 1.1.1.1 with WARP を選択します。
Preferences > Connection > DNS Protocol では WARP が選択されています。
パケットキャプチャを見てみると、すべての通信が WARP トンネル (WireGuard プロトコル Port 2408 UDP) で Cloudflare 経由でやり取りされています。
##例外
実際にはすべてのプロトコルではなく、宛先に応じて WARP トンネルインタフェースの利用が選択されています。ローカルインターフェスに直接送信される宛先は下記で確認できます。
Preferences > Advanced > Network
設定項目 | 内容 |
---|---|
Split Tunnels | 指定する IP やドメインあての通信は WARP せず、ローカルインターフェースに投げる |
Local Domain Fallback | 指定するドメインはローカルのフルリゾルバで名前解決をする(DNS の WARP をやめる) |
###Split Tunnels
当該ドメインのホストに HTTP リクエストをすると、WARP トンネルインターフェースでなく、ローカルインターフェースから直接アクセスがされています。
###Local Domain Fallback
デフォルトで登録してある *.intranet のホストに DNS クエリを投げると、ローカルのリゾルバに直接クエリが送信されており、暗号化されていないクエリの内容を確認することができます。
#特定プロトコルを WARP
Proxy Mode を選択することで、特定のプロトコルを Cloudflare 経由で WARP させることができます。
Proxy Protocol は HTTP および SOCKS5 を利用することができます。
Cloudflare との Proxy 接続は WARP トンネル上で行われるため、暗号化されます。
Preferences > Advanced > Network > Configure Proxy Mode で設定を行います。
デフォルトでは Port 40000 (TCP) がリスナーとして指定されています。
Enable proxy mode on this device を有効化します。
有効にすると、下記の WARP via Local Proxy が出現するので、選択します。
転送できるアプリケーションと Proxy プロトコルの関係は以下のとおりです。
Proxy プロトコル | 転送することのできるアプリケーション | Cloudflare とのやり取り |
---|---|---|
HTTP | HTTPS (HTTP は転送しません、HTTP の場合は SOCKS5 を利用します) | WARP トンネルで暗号化 |
SOCKS5 | TCP | WARP トンネルで暗号化 |
curl の --socks5 オプションの場合、宛先ホストの DNS 解決をローカルで行うため下記の DNS クエリが確認されました。
#まとめ
以上、Cloudflare WARP クライアントを使って WARP する方法について簡単に紹介しました。
1.1.1.1 for Families でのコンテンツフィルタリングやマウルウェア防御、Cloudflare for Teams をつかったさらなるパーソナライゼーションには触れていませんが、ご興味があればぜひともお試しください。
#リンク
##1.1.1.1
https://1.1.1.1/
https://developers.cloudflare.com/1.1.1.1/
https://www.cloudflare.com/ja-jp/learning/dns/dns-over-tls/
https://blog.cloudflare.com/announcing-warp-for-linux-and-proxy-mode/
https://blog.cloudflare.com/introducing-1-1-1-1-for-families/
##Cloudflare for Teams
https://www.cloudflare.com/ja-jp/teams/
https://developers.cloudflare.com/cloudflare-one/