TailscaleでMullvad VPNをExit Nodeとして使う
(tailscale.com)- TailscaleはMullvadと提携し、MullvadのグローバルVPNサーバーをTailscale exit nodeとして使えるようにした。tailnetのユーザーは、別途インフラを用意せずに、よりプライベートにWebを閲覧できる
- Mullvadはアクティビティログや監視を行わず、サブスクリプションに固有のアカウント番号を使うVPNで、個人データがアカウントに直接ひも付かないよう設計されている
- TailscaleはデバイスとMullvadネットワークエッジの間の調整レイヤーのみを担い、実際のインターネットトラフィックは選択したMullvadノードを通じて直接流れる
- この組み合わせは公衆Wi-Fiの保護や地域別アクセスといった用途に有用だが、真の匿名性まで保証するモデルではない
- 機能はパブリックベータとして提供され、既存のTailscaleプランとFreeプランに有料アドオンとして追加できる。価格は5台のデバイスあたり月額5ドル
TailscaleとMullvadが担う役割
- どちらもVPNと呼ばれることがあるが、解決しようとしている問題は異なる
- Tailscaleは個人用のプライベートインターネットであるtailnetを作り、ユーザーが必要なサービスや人に、ほぼどこからでも安全に接続できるよう支援するサービス
- MullvadのようなプライバシーVPNは、広告主、ISP、公衆Wi-Fi上の脅威アクター、マーケティングサイトなどからデバイス識別情報を隠し、よりプライベートに近いインターネット接続を提供する
- 以前は、Tailscaleを使いながらプライバシーVPNに近い利点を得るには、ユーザーが自分でインフラを構成する必要があった
MullvadをTailscale exit nodeとして使う仕組み
- Mullvadは世界40か国以上にある数百台のサーバーへアクセスできるようにしている
- Mullvadサーバーに接続する際、デバイスはWireGuard鍵ペアを生成する
- 公開鍵はMullvadインフラでピアを識別するために使われる
- 秘密鍵はトラフィックの暗号化に使われる
- TailscaleでMullvad exit nodeを使う場合も構造は似ている
- ノードは既存のTailscale生成WireGuard鍵ペアをMullvadインフラに登録する
- インターネットから入ってくるトラフィックはMullvadネットワークエッジで終端される
- トラフィックはデバイスまでエンドツーエンドで暗号化される
- 結果として、Mullvadのサーバーフリートをtailnet内に取り込んで使う形になる
Tailscaleは調整レイヤーとして動作
- TailscaleはユーザーのデバイスとMullvadネットワークエッジの間で調整レイヤーの役割を担う
- 制御レイヤーは利用可能なMullvadネットワークマップを継続的に更新し、各地域や都市でどのサーバーに接続するかをデバイスに伝える
- デバイスは選択した地域・都市のMullvadノード接続情報を受け取った後、そのノードを通じてインターネットへ直接トラフィックを送る
- tailnetの他のトラフィックと同様に、データはエンドツーエンドで暗号化され、Tailscaleは秘密鍵を持たないためトラフィックの内容を見ることはできない
設定と課金
- Mullvad exit nodeを有効にするには、tailnet管理者が管理者コンソールのgeneral settingsページでConfigureを選択する必要がある
- 管理者はtailnetでMullvadと一緒に使うデバイスを選び、決済フローを通じてライセンスを購入する
- 価格は利用したいデバイス5台あたり月額5ドル
- Mullvad VPNへのアクセス権が付与されたデバイスでは、Mullvad exit nodeを選択できる
- 各デバイスはexit nodeを個別にオンまたはオフにできる
- 詳しい使い方はTailscaleドキュメントで確認できる
プライバシーと匿名性の限界
- Tailscale接続はそれぞれWireGuardトンネルであり、エンドツーエンドで暗号化され、認証される
- 認証は、トラフィックが主張されたエンドポイント間を流れているという強い保証を提供する
- Mullvadにはユーザーの個人情報は送信されない
- Tailscaleは接続されたidentity providerを通じてユーザーを認識しているが、Mullvadサーバー接続にはこの情報は必要ない
- ローカルのTailscaleクライアントは公開WireGuard鍵をどこへ送るかを受け取り、その後のインターネットトラフィックはMullvad VPNインフラを通じて流れる
- この構造は、デバイス、ネットワーク、接続に関する個人的な詳細を外部の観察者から隠すのに役立つ
真の匿名性は別の問題
- Tailscaleはこの組み合わせが多くのユースケースに適していると見ているが、真の匿名性を提供するものではない
- Tailscaleが解決しようとしている問題はtrue anonymityではなく、条件付き匿名性を許容する脅威モデルを持つユーザーに合った方式である
- プライバシーと真の匿名性の両方を必要とする正当なユースケースも存在する
- 商業的にこうした保証を提供することにはリスクがある
- MullvadとIVPNは、ポートフォワーディング対応の廃止に関連して悪用の可能性に言及している
- 悪意あるユーザーがサービスを悪用ベクトルにする可能性がある
- こうした悪用は、自身の安全のためにサービスに依存する人も含め、ユーザー体験全体を悪化させ得る
- より難しい脅威モデルを持つユーザーは、EFF Surveillance Self-Defense guideのような資料を使って適切なツールを判断するプロセスが必要になる
パブリックベータとプラン対応
- Mullvad exit nodeはパブリックベータとしてすぐに利用できる
- 家族やチーム単位に拡張でき、アクセス権のあるデバイス5台あたり月額5ドルで定期自動課金が適用される
- Mullvadは現在、Tailscaleのすべてのプランで有料アドオンとして提供されている
- Freeプランでもこのアドオンを利用できる
- 始めるには、管理者コンソールのgeneral settingsタブでConfigureを選択すればよい
1件のコメント
Hacker News の意見
VPN はもともと、Mullvad のような商用コンシューマー VPN とはかなり違う意味で、Tailscale が提供する暗号化されたオーバーレイネットワークに近いものだった
今は再発明の車輪が一周して、両者が再び合流しているように感じる。ここで「再発明」を否定的に使っているわけではない。良い方向だと思う
John Gilmore[1] のような人たちが、IETF 標準の IPSec に基づく汎用的で相互運用可能な VPN 技術によって、インターネットトラフィックをエンドツーエンドで保護できると考えていた歴史的文脈は、90年代の FreeS/WAN の趣旨文書にも見られる: http://web.archive.org/web/20210125023625/https://www.freesw...
その後は VPN の暗黒期があり、主に旧式の企業「内部ネットワーク」に接続するための技術としてだけ使われていた
[1] https://en.wikipedia.org/wiki/John_Gilmore_(activist)
子どもの頃に一つ運営したことがあるが、セキュリティ上の悪夢に近く、Webプロキシの運営者が通過するすべてのユーザー認証情報を盗み見るのを防ぐ方法はない。PHPRoxy をそう改造するのもとても簡単だ
個人的には、2000年代初めの10代の頃にドメインパーキングサービスを運営し、ドメインを Webプロキシとして使い、コンテンツ内の AdSense ブロックを見つけて自分の AdSense コードに差し替え、ドメイン所有者のコードと50/50で分けていた。Google が最終的に気づいて禁止したが、続いている間はかなり良かったし、新しい広告ブロックを追加したのではなく既存のブロックを再利用しただけなので、かなり公平だったと思う
その後コンシューマー向け VPN が出てきて、単一のコンピュータをネットワークに接続するポイントツーマルチポイント構成になったが、そうした混同がどう生じたのかはよく分からない。当時は実質的に SSH トンネルを包装したものに近かった
技術的には Mullvad の VPN もサイト間 VPN で、リモートサイトがインターネットであるだけだ
自宅 LAN 全体の区間をインターネットにつなぐために、似たような VPN をよく使っていた
最大の違いはクライアント側の設定方法で、相手側がほぼ常にホストではなくネットワークだからだ
一般用語としての VPN は、今でも20年前とまったく同じ意味だ
「仮想」は物理ネットワークインターフェースに対応しないという意味で、「プライベート」は ipip や 6in4 のような単純なトンネルと違い、暗号化を含むという意味だ。そしてノードに現れるネットワークインターフェースである点もずっと同じで、そのノードがベンダーの独占的なブラックボックスだったかどうかは別問題だ
数十年前は用途と位置づけがより少なく、専用「ルーター」がより重要で、人々がインフラを無邪気に信頼していただけだ。時間とともに変わった違いはそういう点だ。少し検索すれば、OpenVPN は2001年、tinc は1998年に登場していることが分かる
Tailscale の技術とセキュリティエコシステムへの貢献は好きだが、ここでの多くの反応とは逆に見ている
これは悪いアイデアのように感じるし、もしかすると技術が最大の価値を発揮できる エンタープライズ市場 での敗北の兆候かもしれない。Tailscale は昨年1億ドルの投資を受けており、それは間違いなく上位市場へ成長するという仮説に基づいていたはずだ
このパートナーシップは個人コンシューマーには価値があるだろうが、大きな機会からそれる気晴らしに近く、最悪の場合その機会を達成するうえで逆効果になる可能性もある
個人コンシューマーの満足が B2B の成功につながるフライホイールだという反論にも、あまり納得していない
自分たちが直接欲しく、友人や同僚のギークも好みそうなものを作ることができ、それが企業販売にもつながるなら、やらない理由はない
これまで無料で使っていたギーク顧客から継続収益も得られる、かなり良い機能だ
Tailscale や Tor のように方向性が似た組織と協業するのは、他の VPN 競合のように怪しげなビジネスモデルに手を出さずに ユーザー層を増やす 良い方法に見える
製品があまりに魔法のようだったので、全員が疑っていた。自宅では使っていて、何とか説得しようと努力した
これは製品の「メッシュ」基盤を崩すための長期投資に近いように見える。その魔法のような部分でもあり、同時に問題でもある。外部者の立場ではメッシュのセキュリティモデルを説明できず、一部のコメントによればモバイル端末のバッテリー問題も引き起こすようだ
別々のトンネルを2本作り、それを通してインターネットを閲覧するなら、静的 HTML ページ以外のストリーミングやほぼすべての利用が苦痛になるだろう
Mullvad は最近多くのことをしていて、本当に気に入っている
似た方向を目指す企業とのパートナーシップを通じて、分散型オープンソースエコシステム を作っているように感じる。セキュリティ好き側の「ハッカー」が夢見ていた姿に近い
次は Matrix や Signal になるのか気になる。Signal の可能性は非常に低いだろうが、「表現が実際の意味を持つエコシステム」へ動くという言葉が現実になることを夢見るくらいはできる
オープンソースと公開プロトコルに基づく製品が調和して動く世界を見たい。実のところ、そんな姿はポスト希少性社会にかなり近づくまでは見られないと思っていた
tailscaled は root で実行される。機能を失わずに隔離する方法があるのか気になる
自分のネットワーク上の複数のデバイスを接続しているので、Tailscale の脆弱性は影響が大きい。最近でもほぼ 10 件の CVE があった。標準的なクライアント・サーバー方式では、クライアントをユーザー空間 WireGuard として実行できるため、この問題はそれほど大きくない
Tailscale でポートを直接開いているわけではないが、より正確には Tailscale に外注しているようなものなので、やはり夜も安心して眠れるわけではない
権限なしで Tailscale を実行するのは難しい。tailscaled がネットワークを設定できる必要があり、Tailscale SSH を有効にすると、設定されたユーザーセッションも作成できる必要があるため
SSH が不要で、この挑戦とメンテナンス負担を引き受ける人には可能: https://tailscale.com/kb/1279/security-node-hardening/
根拠は Arch でそう使っていること
見たところ本当に素晴らしく、Tailscale と Mullvad の両方を使っている立場としてはありがたい
ただ主な懸念は プライバシー漏えいの可能性。政府機関が今後 Tailscale に圧力をかけ、Mullvad ID や接続を Tailscale アカウントと結び付けて追跡できるようにするのではないか?
要するに、いつものように 脅威モデル次第
Tailscale が最近キューバ国籍者のサービスアクセスを遮断したため、個人的には非常に有用だったはずの機会を逃した。それなりの理由はあるのだろうが、それでも段階的に作り上げているサービス自体は良いと思う
以前、米国の慈善非営利団体を率いる仕事に関わっていたとき、オバマ政権時代にキューバの技術カンファレンス参加費を誰かに支援しようとしたことがある。キューバ人が別の場所の技術カンファレンスに行く費用だったのかもしれない
実際には実現できたが、弁護士に相談し、状況の詳細を適用される規則と照合し、関係者がその規則の範囲内にとどまると約束する必要があった
推測するに、Tailscale または依存しているプロバイダーのいずれかが、キューバ特有の米国法上の義務を順守するため、あるいは少なくとも違反リスクを減らすために、キューバ人をブロックしているのだと思う
少なくとも GitHub は、制裁にもかかわらず、より狭く禁止された個人・団体を除けば、キューバ人やキューバ国内のユーザーに大半の提供物を合法的に提供する方法を見つけている。Tailscale クライアントと Headscale サーバーのオープンソースコードを入手できるなら、Tailscale ソフトウェアの利点はある程度享受できる
Google も一部は従っている: https://support.google.com/google-ads/answer/6163740?hl=en
設定はずっと多く必要だが、選択肢にはなる。しばらく headscale をセルフホストしているが、かなり安定している
すでに Mullvad の顧客なら、これを既存アカウントに統合する方法があるのか気になる
今は tailnet 経由で Mullvad を使いたいとき、自宅の Linux マシンを出口ノードに設定し、そのマシンがすべてのトラフィックを自動的に Mullvad 経由で送るようにしている。自宅のその Linux マシンではすでに Mullvad の料金を払っているので、自分に追加費用はない
幸い Mullvad に前払い月数をたくさん積み上げていないなら、まったく問題にならない
ここ数年でVPNの利用がなぜ爆発的に増えたように見えるのか、理解の助けにしたい
会社の端末のような典型的なユースケースは分かるが、そういうものは何十年も前からあったので主因には見えない。過去3年以上にわたって大規模な成長が起きたように見える背景は何なのだろうか?
そのため一般の人にとって「VPN」という言葉は、「自分が管理するネットワークへどこからでもアクセスできるようにするもの」ではなく、「トラフィックを特定の地理的位置へルーティングできるようにするもの」に近くなった
「接続を安全にする」「追跡を防ぐ」といった半分だけ本当の話が補足説明なしに出てくるが、実際には端末やブラウザのフィンガープリントの方が、地理的位置よりもユーザー識別に大きく効く。HTTPSがあればトラフィックはすでに暗号化されているし、DNS-over-HTTPSやTLSプロバイダーも、どこへ行こうとしたのかを隠してくれるので、主張される利点のかなりの部分はほとんど蛇油に近い
ただし、地域制限コンテンツを見たい場合や、身元を匿名化するために曖昧さを何層にも重ねる戦略を取るなら、好きに使えばよい。一般利用が爆発した理由は、健全な程度のパラノイアとインフルエンサーマーケティングが混ざった結果だと思う
顧客層はこう見ている:オンラインプライバシーに関心がある人、検閲回避に関心がある人、ローカルISPによる盗聴から自分のマシンと「インターネット」の間の安全なネットワークチャネルを求める人、地理的制限の回避を求める人
インターネットの性質と、最も重要なプロトコルであるIPの動作方式のため、IPアドレスを変えることはオンラインプライバシー保護に必要だが、常に十分とは限らない手順である。この事実は、VPN、Tor、類似技術の長期的な関連性を示している
出どころを明かすと、Mullvad VPNの共同創業者です
Tailscale型のVPNは主に、アプリをセルフホストしつつインターネットには公開せず複数のデバイスからアクセスしたい人や、StarbucksからNASにアクセスしたい人が使っている
sshdをまったく触る必要がなく、tailnetに接続されたマシンには自動でHTTPS証明書が付く。しかも無料[1] https://tailscale.com/tailscale-ssh/
[2] https://tailscale.com/kb/1081/magicdns/
プライバシーを重視しており、プライバシー強化ツールは怪しい人たちが怪しい用途にだけ使うものだという誤った認識に対抗したい
公衆トイレの個室のドアを閉めるのと同じ理由でVPNを使えばよい
最近VPN利用が実際に増えたという前提に必ずしも同意しているわけではない。それが事実かどうかは分からない
興味深いことに、以前MullvadとTailscaleを共存させようとして、接続時に実行するスクリプトを書いた。興味がある人がいればNVPN用のものもある
DOMAINS=(login controlplane log derp1-all derp2-all derp3-all derp4-all derp5-all derp6-all derp7-all derp8-all derp9-all derp10-all derp11-all derp12-all derp13-all derp14-all derp15-all derp16-all derp17-all derp18-all derp19-all derp20-all derp21-all derp22-all derp23-all derp24-all)
FWMARK=$(wg show $1 fwmark)
for d in ${DOMAINS[@]}; do
IPS=$(dig +answer -4 $d.tailscale.com +short)
for IP in ${IPS[@]}; do
iptables -I INPUT --in-interface tailscale0 -j MARK --set-mark $FWMARK
iptables -I OUTPUT --out-interface tailscale0 -j MARK --set-mark $FWMARK
iptables -I INPUT -d $IP/32 -j MARK --set-mark $FWMARK
iptables -I INPUT -s $IP/32 -j MARK --set-mark $FWMARK
iptables -I OUTPUT -d $IP/32 -j MARK --set-mark $FWMARK
done;
done;
iptables -I OUTPUT -d 100.100.100.100/32 -j MARK --set-mark $FWMARK
iptables -I OUTPUT -s 100.100.100.100/32 -j MARK --set-mark $FWMARK
iptables -I INPUT -d 100.100.100.100/32 -j MARK --set-mark $FWMARK
iptables -I INPUT -s 100.100.100.100/32 -j MARK --set-mark $FWMARK
DOMAINS=(login controlplane log derp{1..24}-all)
wg show $1の**$1**は何なのか、またこのスクリプトはいつ、どのように実行するのか気になる