web-dev-qa-db-ja.com

HTTPサーバーを介したトンネル

ご存知のように、多くの国では検閲が原因で一部のサイトにアクセスできません。

トルコでは、FacebookとYoutubeで検閲が行われます。

これらの検閲をHTTPサーバー経由で渡すのは素晴らしいことだと思いました。

トンネルのようにHTTPサーバーを使用できるようにするスクリプトやアプリケーションはありますか?

または、どのように実装できますか、何を使用しますか?

トラフィックが無制限のサーバーをレンタルし、トンネリングのためだけに5〜10人で使用します。

3
Enes Unal

OpenVPNを使用できます。ポート443でリッスンしているOpenVPNサーバーを使用する場合、おそらくフィルタリングされません。ただし、ネットワークトラフィックを分析している人は、OpenvPNを使用していることを知っているでしょう。これは避けたいと思うかもしれません。

これを回避したい場合は、HTTPSプロキシを介してOpenVPNサーバーに接続できます。 OpenVPNはHTTPプロキシの使用方法を知っていますが、HTTPプロキシは知らないため、socatなどのツールを使用する必要があります。

  • ローカルホストでsocatを使用してHTTPSプロキシ(OpenVPNサーバーの近くにデプロイ)に転送します。

    socat TCP-LISTEN:9999、bind = localhost OPENSSL:proxy.example.com:443

  • ローカルホストをHTTPプロキシとして使用するようにOpenVPNに依頼します。

OpenVPN-(HTTPプロキシ)->ローカルプロキシアンラッパー-(TLS)-> HTTPプロキシ-(OpenVPN/TCP)-> OpenVPNサーバー

4
ysdx

SSL経由でPPPを使用することをお勧めします:

socat OPENSSL:ppp.example.com:443 EXEC:"Sudo pppd nodetach noipdefault notty noauth 192.168.0.1:198.169.0.2"

またはPPP HTTPSプロキシ経由:

socat EXEC:"corkscrew www.exmaple.com 443 ppp.example.com 9999" EXEC:"Sudo pppd nodetach noipdefault notty noauth 192.168.0.1:198.169.0.2"
1
ysdx

SSHトンネルを設定し、corscrewでProxyCommandを使用して、HTTPS(またはプレーンTLS)プロキシに中継することができます。

ssh ssh.example.com

と:

 Tunnel point-to-point
 ProxyCommand corkscrew proxy proxyport %h %p
1
ysdx

人々にWebサイトへのアクセスのみを許可する場合、より簡単な解決策は、おそらくCONNECT対応のHTTPSプロキシを設定することです。

1
ysdx