web-dev-qa-db-ja.com

Linuxで同等のUSVIDEO.ORG DNS-Proxyをセットアップする方法

私はUbuntuを実行している米国のVPSを持っています。 http://www.usvideo.org に似たものをセットアップしたい。基本的に、USVIDEOは、カナダ人がHulu、Netflix、NBCなどのアメリカのコンテンツにアクセスできるようにするDNSサービスです( IP)。

USVideoがそれを行う方法は次のとおりです。

  1. クライアント(PS3、XBOX、PC)は、USVIDEO.orgのWebサイトで指定されているDNSサーバーを指定します。
  2. DNSリクエストがNetflixやPandoraなどのビデオ/オーディオサイトである場合は、リクエストをプロキシに転送します。それ以外の場合は、他のすべてのリクエストについて、別のDNSサーバーに転送します。
  3. 特定のビデオ/オーディオURLが要求された場合は、プロキシサーバーのアドレスを返します。プロキシサーバーは、トラフィックを米国のゲートウェイ経由で宛先のビデオ/オーディオドメインに中継し、アクセスが米国のIPアドレスからのものであるように見せます。
  4. DNSリクエストが米国のIPアドレスチェックに合格すると、プロキシサーバーはループから抜け出し、ビデオストリーミングサイトから直接連絡してビデオストリームを開始できるようになります。このトリックは、ビデオストリーミングサイトが事前にIPアドレスの国をチェックする方法に依存していますが、ビデオのストリーミング中に実際には宛先IPアドレスの国をチェックしません。

このソリューションの優れている点は、特定のWebサイトからの地理的なIPチェックをバイパスするためにVPNトンネルが必要ないことです。クライアント側で必要なのは、DNSサーバー(VPS)を指定することだけです。特定のサイトが地理的にロックされている場合は、トラフィックをプロキシに転送するだけです。これらのサイトは、DNSエントリで指定することも、プロキシサービスで指定して、DNS要求を独自のプロキシにリダイレクトすることもできます。

似たようなものをセットアップするために必要なのは、Squid Proxy、IPTables、およびDNSだと思います。私が助けを必要としているのは、これに正確に取り組む方法ですか? Squidプロキシは透過プロキシとして設定されますか?

3
Gary

秘訣は、プロキシするものだけでなく、プロキシしないものです。ほとんどのビデオサイトは、異なるホストまたは異なるドメインのWebコンテンツとビデオコンテンツをホストします。 hulu.comの場合、すべてのビデオコンテンツはakamaitechnologies.comドメインにあります...したがって、hulu.comをプロキシし、akamaitechnologies.comをプロキシしない場合、地理的領域を偽造できます。

さらに良いのは、ルーターへのアクセスと低帯域幅のVPNサービスがある場合、ファイアウォールルールを使用してこれを実行できることです。低帯域幅のものをVPNサービスにリダイレクトし、高帯域幅のものはフィルタリングされないままにします。このソリューションの利点は、無料の低帯域幅VPNプロバイダーが多数あることです...チェックするサイトの数がかなり少ない場合は、vpnの代わりにsshトンネルを使用することもできます。

2
Bill

しかし、 http://tunlr.net のようなサービスは、これを自動的かつ無料で行います。そこには「netflux」は存在しないと確信しています...

1
joe

私はDNSで何のトリックもしません。むしろ、指定したドメインのVPSでのみプロキシを使用するローカルネットにプロキシを設定します。例:イカのcache_peer_domainオプションはこれを実現します。追加する地元のイカに

cache_peer_domain vps-in-america.example.com .Pandora.com
1
Mark Wagner
  1. pandora.comなどの人工レコードを使用して独自のプライベートDNSを実行する必要があります
  2. また、フォールバックするには実際のDNSが必要です。
  3. これらのサイトへのすべてのリクエストが米国にあるボックスに送信されるようになったので、イカのポート80を開いて、トラフィックをリッスンできます。 cache_peer設定で、各ドメインを実際のIPにマップできるようにする必要があります。トラフィックは、最初は米国にあるボックスからサービスに流れますが、サーバーはホストに直接応答します。ここには魔法はありません。これを過度に悪用しないためにおそらく最善の方法であるため、詳細については説明しません。
1
Jon

参考までに、キャッシュのみのBIND DNSおよびSNIプロキシを使用してこれを行う方法があります。

  1. 米国で安価なLinuxVPSを入手してください(例: Digital Ocean
  2. VPSにBINDとSNIプロキシをインストールします
  3. * .netflix.comをオーバーライドしてVPSのIPを返すようにBINDを構成します
  4. SNIプロキシをプロキシ* .netflix.com(HTTP/HTTPS)に構成する
  5. プレーヤーデバイス(例:Apple TV))をVPSのパブリックIPにポイントします

米国では、*。netflix.comリクエストのみがVPSを介してプロキシされますが、AkamaiCDNからのビデオコンテンツにはプレーヤーデバイスから直接アクセスされます。

Pandora、Crackleなど、他の多くのジオロックサービスでも機能します。

--ab1

参照: 安価な米国ベースのVPSでのNetflix Tunlr/Unblock-Us/UnoTellyのDIYクローン

参照: SNIプロキシGitHub

1
ab77

mmmmmmmm、メタコンテンツを見ると、ムービーが読み込まれるとすぐに、GeoLocationがフラッシュで実行されていることがわかります。繰り返しますが、これはnetflixの初期インストール、サインアップ、およびログインでチェックされます。

では、unblock-usは何をしているのでしょうか?本質的に彼らはnetflixのクローンを実行しているので、このクローンをnetflux.comと呼びます。

彼らは実際のウェブサイト(ビデオコンテンツを除く)からすべてのデータを取得し、クローンサイトnetflux.comに投稿します。これは、DNSサーバーの出番です。サイトnetflux.comは実際にはイントラネットにのみ存在し、インターネットには存在しないため、レコードはドメインネームサーバーにしか存在できないため、表示するにはサーバーの一部でなければなりません。グローバルに更新されないためです。

  • これは明確なATMではないかもしれませんが、読み続けてください。独自のDNSサーバーをセットアップするときは、その実際のnetflix.com名を再定義し、そのIPを別の名前に向ける必要があることを忘れないでください。 IE:www.hollyflix.com-> * 1.1.1.1(netflixのrealip)。

ステップ1(非常に簡単)既存の名前の仮想ネームサーバーをセットアップしますが、DNSサーバーによってのみ指示できるIPをリッスンします。したがって、dnsを使用するとnetflix.comは10.20.30.80(例)になり、netflix.comにアクセスすると、netflux.comが自動的に読み込まれます。

オリジナル:netflix.com->(実際のnetflix ip)->お使いのデバイス。

新しいdnsmap:
netflix.com->(サーバーIP)-> [email protected]>/var/www1/netflux/index.pl->デバイス。

Dnsサーバーは「your server ip」セクションを制御します。

step 2(easy):実際のnetflixにログインし、ビデオを除くWebコンテンツ全体をリーチします。これは基本的にWebサイトをコピーするので比較的簡単です。ネットワークで何を監視できますか? wii/360/sp3)はWebリクエストであり、そのコンテンツもダウンロードして、好きなシステムと互換性を持たせます。

ステップ3(ある程度のスキルが必要):次の部分は、phpを理解している平均的なコーダーにとって簡単です(Perlはこれをパイのように簡単にします)。 netflixが使用する基本的なフォーラム認証は、ここでの弱点です。holyflux.com(*実際のnetflix)へのログイン中にユーザーの資格情報を解析するだけです。

MAP:www.netflix.com->(DNSはnetflux.comをロードします)->ユーザーがログインします-> holyflix.com(* real netflix)は検証を返します。

step3は、サーバーのコーディング方法に応じて、ある程度オプションです。プライベートDNSサーバーを使用しているユーザーが有効な認証を持っていることがわかっている場合は、サイトにログインする必要はまったくありません。それを得る?

ステップ4(熟練)これで、netflixのミラーを完全に参照しています。ビデオをクリックして、サーバーにデバイスIDを取得させ、サーバーに基づいてholyflux.comに解析させます(すでに確立され、確認されているか、完全にトークンが有効であることを知っていて、タイトルを見ようとすると確認されるので、それを切り取ります)これで、デバイスはコンテンツをストリーミングするためのソケットを開いています。戻りアドレスは、サーバーパケットからholyflux.comへのヘッダーに設定され、地理位置情報はサーバーIPによってだまされ、ソケットは実際のnetflixサーバーからのデバイスで確立されます。彼らのソフトウェアはDRMを処理し、ビデオはチェック柄です。

パケットレベルで抽出する必要があるため、最も難しい部分はプロトコルですが、すべてが実際にはプレーンテキストの暗号化です。MSNPについて考えてみてください。ただし、文字キーとMSG順序付けはありません。

乾杯〜InSaneGame〜

1
InSaneGame

別の解決策は、このオーストラリア人がしたように、Pythonでソケットを使用してプロキシを設定することです http://delx.net.au/blog/2011/12/hulu-and-Pandora-outside-usa/

彼のソリューションのパフォーマンスのオーバーヘッドについてはよくわかりませんが、とにかくジオブロッキングドメインをプロキシするためだけのものです。

0
ximo