
インターネットから隠されたTorサイトへのゲートウェイを作成する方法について説明しましょう。
Torネットワークは、匿名ネットワーク接続を確立できるプロキシシステムです。 Torを使用すると、通常のサーバーに匿名で接続し、Torネットワーク自体で前代未聞のサーバーをホストできます。 後者の場合、隠しサーバーがタマネギゾーンに作成されます。 サーバー名には、16個の文字と数字(指紋)が含まれます。

非表示のサーバーに移動するにはどうすればよいですか:
- Torをインストールし、それを介してブラウザのトラフィックを誘導します。 Torブラウザーは、必要なものすべてを含むポータブルアプリケーションです。
- ただし、すべての人がTorブラウザをインストールするわけではないため、通常のネットワークユーザーに隠しサーバーのコンテンツを表示する方法が必要です。 Tor2webサービスは、隠されたサイトへの直接アクセスを提供する救助に来ます。
非表示のWiki Webサイト(
kpvzxxbbraaigawj.onion )は、通常のブラウザー(
kpvzxxbbraaigawj.tor2web.fi )で開くことができます。 ユーザーがtor2web経由でサイトに接続すると、Torをインストールせずに隠しサイトへのアクセスと引き換えに匿名性を失います。 同様のサービスのリストを提供しますが、その一部は閉鎖されています。
- * .Tor2web.org(3サーバー)
- * .Tor2web.fi
- * .Tor2web.blutmagie.de
- * .onion.sh(無効)
- * .onion.to(無効)
- * .onion.lu(無効)
- * .t2w.pw(無効)
- * .tor2web.ae.org(無効)
tor2webサービスを実行する既存の方法を検討してください。その後、独自の方法を共有します。
プロジェクトTor2web-3.0?
Tor2web-3.0は
GlobaLeaksプロジェクトの重要な部分であり、ネットワークユーザーの非表示サーバーへのアクセスを容易にします。
サンプルサイト:
kpvzxxbbraaigawj.tor2web.orgTor2web-3.0プロジェクトには3台のサーバーが接続されています。 サーバーにTor2webをインストールして、ネットワークに参加できます。 無効になった.luサーバーと.toサーバーは同じ人に
属します。
Tor2web-3.0は、スタンドアロンサービスとしてインストールされます。 コードはPythonで書かれています。 Tor2web-3.0に関する苦情はほとんどありませんが、追加の参加者(ユーザー
-Nginx-Tor2web-3.0 -
Tor-ターゲットサイト)を避けたいと思いました。 また、私はPythonで書かれたネットワークソフトウェアが好きではありません。
ポリポ?
Polipoは、SOCK5サーバーに接続をリダイレクトできるHTTPサーバーです。 以前、PolipoはTorブラウザの一部としてこの目的で使用されていました。
チェーンを構築できます:Nginx-
Polipo -Tor。 Tor2web-3.0の場合のように、NginxはSOCK5サーバーを介してトラフィックをプロキシできないため、余分な参加者が発生します。 さらに、サイトの通常の表示では、サーバーの応答のオニオンリンクをゲートウェイへのリンクに置き換えたいと思います:s / .onion / .onion.xx /
Nginxパッチ?
SOCK5サーバーを介してトラフィックをプロキシする機能を追加するNginxの
パッチがあります。 実際、
SOCKS5プロトコルは非常にシンプルであるため、まだ公式モジュールがないのは奇妙です。 このソリューションは魅力的に見えますが、思い浮かばれていません。更新ごとにNginxにパッチを適用する必要があります。 Debian Wheezyボックスの通常のNginxで動作するソリューションが欲しいです。 また、サーバー応答のリンクを置き換える方法はありません。
LuaでのNginxのモジュールの作成

Nginxは長い間、Luaにスクリプト
を埋め込む
機能をサポートしてきました。 Luaコードは、直接アクセスソケットの操作を含む幅広いオプションを提供します。 残念ながら、SOCKS5サーバーに接続するためのモジュールが見つからなかったため
、独自のを作成しました 。 各リクエストに対して、ポート9050を介してTorプログラムとの接続が確立され、SOCKS5ハンドシェイクが通過し、ターゲットサイトのアドレスが送信されます。 その後、ソケットはターゲットサイトへの直接ソケットであるかのように使用されます。 ユーザーのリクエストはメモリに読み込まれ、編集されてサーバーに送信されます。 サーバーの応答が読み取られ、編集され(リンクを置き換え)、ユーザーに送信されます。 すべての操作は非ブロッキングです。 この部分は、別個の
onion2webモジュールとして設計しました。
サイトに初めて接続するとき、ユーザーには、サイトに入るための確認フォームが記載されたスタブが表示されます。 これは、通常のサイトのページに隠されたサービスの写真を含めることができないようにするために必要です。
socks5モジュールには、ソケットがSOCK5サーバーを介して転送される機能が含まれています。 機能は
モジュールページで説明されてい
ます 。 onion2webモジュールには、tor2webゲートウェイに対応する1つのhandle_onion2web関数が含まれています。 使用例を以下に示します。 トーラスのアドレスとポートを設定し、サイトへのアクセスの確認フォームを無効にすることができます。
欠陥:
- キープアライブと送信データの圧縮が無効になっている非常に単純なHTTPクライアントバージョン1.0を実装しました。
- 要求と応答は完全にメモリに読み込まれ、受信者に転送されます。 これにより、特にサイトからユーザーへの方向で、メモリ消費が増加し、情報の転送が遅くなります。 別のコルーチンでSOCKS5サーバーと通信する必要があると思います。 サーバー応答のアドレスの置換には問題があります(データブロックの境界は、置換されるアドレスに該当する場合があります)。
- スタブフォームにはCSRFに対する保護が含まれておらず、常にメインページにリダイレクトされます(最初に開かれたパスにリダイレクトすることをお勧めします)。
- サーバーの応答は、より慎重に編集する必要があります。HTMLおよび属性のみでリンクを置き換えます。
このオプションでは、停止して
tor2webゲートウェイに使用しました。 サイト自体の欠点には、SSLの欠如が含まれます。 他にも欠点があると思います。 一般的に、決定はむしろ松葉杖です。
tor2webゲートウェイを上げる方法
このドメインには、ドメイン、サーバー、および
ワイルドカードSSL証明書が必要です。
ドメインでは、すべてのサブドメインをサーバーのIPアドレスで登録する必要があります。

サーバーは、NginxからSOCKS5サーバーに接続するために、新鮮なngx_luaを備えたTor、Nginx、および私のonion2webモジュールを必要とします。 Debian Wheezyには、古すぎるngx_luaを含むnginx-extrasパッケージがあります。 (この古いngx_luaは、使用されているメソッドの一部、たとえばngx.req.raw_headerをサポートしていません。)wheezy-backportsのnginx-extrasのバージョンには、かなり新しいngx_luaが含まれています。 onion2webモジュールはluarocks経由でインストールできます(これにより、socks5モジュールが依存関係として自動的にインストールされます)。
Debian Wheezyのインストール:
# echo deb http://ftp.us.debian.org/debian/ wheezy-backports main > /etc/apt/sources.list.d/wheezy-backports.list # apt-get update # apt-get install tor luarocks nginx-extras/wheezy-backports # luarocks install onion2web
Nginxでは、次のサイトを作成します。
server { listen 80; server_name *.onion.gq; location / { default_type text/html; content_by_lua ' require("onion2web").handle_onion2web(".onion.gq"); '; } }
ドメインは、server_nameとLuaコード内の2つの場所の構成に表示されます。
ウェブサイト準備完了:
kpvzxxbbraaigawj.onion.gqSocks5モジュールのソース:
github.com/starius/lua-resty-socks5onion2webモジュールのソース:
github.com/starius/onion2web