免責事項:ここで説明するツールは完全に合法です。それはナイフのようなものです。誰かがキャベツをサラダに切り、誰かがそれを攻撃に使用します。したがって、この投稿は、良い目的と悪い目的の両方に使用できるツールに専念しています。
グローバルDNSは、何十年も生き残った素晴らしいものです。しかし、これには根本的な問題があります。何かに違反したと突然判断された場合、ドメインが単純に分割される可能性があります。または、お金とつながりのある人があなたに恨みを抱くでしょう。誰もが同じtorrents.ruの歴史を覚えています。何らかの理由でそのようなリスクを取り除きたい場合は、ドメイン名を分割できるレギュレーターがないオーバーレイネットワークに目を向けることができます。そのため、タマネギとi2pのWebリソースを調達します。
オニオンリング
古典から始めましょう。 Habréでは、ほとんどの人がTor-browserバンドルの形でTorを使用したと思います。 Telegramを探す過程で、彼らが突然、最も予想外の場所で最大のホスティング業者との接続を突然切断し始めたとき、それは私を大いに助けました。このモードでは、Torは従来のタマネギ暗号化を使用し、パケットの送信元と宛先を確立できないように、データをレイヤーごとにラップします。それでも、ルートの終点は通常のインターネットであり、最終的には出口ノードを通過します。
このソリューションにはいくつかの問題があります。
- Exit- , , . , , , .
- tor , .
-
したがって、通常のインターネットにアクセスせずに、ネットワーク内で直接タマネギのリソースを調達します。たとえば、リソースへの追加のバックアップエントリポイントとして。nginxによって提供されるコンテンツを含むWebサーバーがすでにあると仮定しましょう。手始めに、パブリックインターネットに参加したくない場合は、怠惰になってiptablesにアクセスしてファイアウォールを構成しないでください。localhost以外の場所からWebサーバーにアクセスすることをブロックする必要があります。その結果、ローカルでlocalhost:8080 /にアクセスできるサイトを取得しました。torトランスポートがこのタスクを引き継ぐため、httpsの追加の固定はここでは冗長になります。
TORの拡張
例としてUbuntuを使用したインストールを検討しますが、他のディストリビューションと基本的な違いはありません。まず、リポジトリを定義しましょう。公式ドキュメントでは、ディストリビューション自体によって維持されているパッケージの使用は推奨されていません。これは、開発者によってアップストリームで既にパッチが適用されている重大な脆弱性が含まれている可能性があるためです。さらに、開発者は、タイムリーな配信を保証するために、自動更新に無人アップグレードメカニズムを使用することをお勧めします。
追加のリポジトリ用のファイルを作成します。
# nano /etc/apt/sources.list.d/tor.list
そしてそれに必要なアドレスを追加します:
deb https://deb.torproject.org/torproject.org bionic main
deb-src https://deb.torproject.org/torproject.org bionic main
ここで、gpgキーを処理する必要があります。これがないと、サーバーは新しいパッケージを合理的に信頼できません。
# curl https://deb.torproject.org/torproject.org A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --import
# gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | apt-key add -
これで、アップストリームとキーチェーンからメインパッケージをインストールして、署名を自動的に更新できます。
# apt update
# apt install tor deb.torproject.org-keyring
プロキシの構成
/ etc / tor / torrcには、デーモンの構成ファイルがあります。更新後は、再起動することを忘れないでください。
特に好奇心旺盛なユーザーに警告したいだけです。自宅のマシンでリレーモードを有効にしないでください。特に出口ノードモードで。彼らはノックすることができます。VPSでは、ノードをリレーとして構成しません。これにより、プロセッサーとトラフィックの両方にかなり大きな負荷がかかるためです。ワイドチャネルでは、月に2〜3テラバイトに簡単に到達できます。
次のようなtorrcのセクションを見つけます。
############### This section is just for location-hidden services ###
ここで、localhostWebリソースを登録する必要があります。多かれ少なかれこのように:
HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 127.0.0.1:8080
または、unixソケットを使用できます。
HiddenServiceDir /Library/Tor/var/lib/tor/hidden_service/
HiddenServicePort 80 unix:/path/to/socket
住所を取得します
これで、systemctlを介してtorデーモンを再起動し、HiddenServiceDirを確認します。秘密鍵とタマネギのホスト名など、いくつかのファイルがあります。ランダムな16文字の識別子です。たとえば、gjobqjj7wyczbqie.onionはCandle検索リソースのアドレスです。アドレスは完全にランダムですが、十分に長い検索を行うことで、アドレスと秘密鍵から人間が読み取れるペアを生成することができます。もちろん、16文字すべてではありません-それは数十億年かかるでしょう。たとえば、Flibustaの本の有名なカタログには、ミラーflibustahezeous3.onionがあり、Facebookは、生成されたオプションから最もユーフォニアスなものを選択するために多くのリソースを費やしました:facebookcorewwwi.onion。
それだけです。しばらくすると、リソースが発表され、グローバルに利用できるようになります。httpプロトコルだけでなく、他のプロトコルもプロキシできることに注意してください。
ニンニク
2番目のオプションは、本質的にさらにパラノイアであると考えられていました。i2pプロジェクトは元々、トラフィックを通常のインターネットにプロキシする手段として考案されたものではなく、アーキテクチャ上、完全に閉じたオーバーレイネットワークです。両方向に別々のゲートがありますが、これはかなり例外です。そしてそれは潜在的に危険です。
赤い参照i2pロゴとマゼンタi2pdの実装
I2pには、ソフトウェアルーターノードを実装するためのいくつかのオプションがあります。公式の実装はJavaで書かれています。そして、RAMとCPUの両方の観点から、利用可能なすべてのリソースを途方もなくむさぼり食います。それにもかかわらず、参照と見なされ、定期的に監査されるのは彼女です。C ++で記述されたはるかに軽いバージョンのi2pdを使用することをお勧めします。一部のi2pアプリケーションが失敗する原因となる可能性のある独自のニュアンスがありますが、全体としては優れた代替実装です。このプロジェクトは現在活発に行われています。
悪魔をインストールします
最良の部分は、作成者がdockerやsnapを含む多くの展開オプションを提供していることです。あなたは古典的なリポジトリの道を行くことができます。
sudo add-apt-repository ppa:purplei2p/i2pd
sudo apt-get update
sudo apt-get install i2pd
ただし、スナップを使用することをお勧めします。デーモンを迅速かつ便利にデプロイするだけでなく、選択した配布チャネルに応じて、アップストリームから直接自動更新を提供します。
no_face@i2pd:~$ snap info i2pd
name: i2pd
summary: Distributed anonymous networking framework
publisher: Darknet Villain (supervillain)
store-url: https://snapcraft.io/i2pd
license: BSD-3-Clause
description: |
i2pd (I2P Daemon) is a full-featured C++ implementation of I2P client.
I2P (Invisible Internet Protocol) is a universal anonymous network layer.
All communications over I2P are anonymous and end-to-end encrypted,
participants don't reveal their real IP addresses.
snap-id: clap1qoxuw4OdjJHVqEeHEqBBgIvwOTv
channels:
latest/stable: 2.32.1 2020-06-02 (62) 16MB -
latest/candidate: ↑
latest/beta: ↑
latest/edge: 2.32.1 2020-06-02 (62) 16MB -
スナップをまだインストールしていない場合はインストールし、デフォルトの安定オプションを設定します。
apt install snapd
snap install i2pd
構成
web-gui Javaバージョンとは異なり、i2pdにはそれほど多くの設定、ひねり、タブがありません。禁欲の前に最も必要なものだけ。ただし、最も簡単な方法は、構成ファイルで直接構成することです。
Webリソースをi2pで使用できるようにするには、タマネギの場合と同じ方法でプロキシする必要があります。これを行うには、〜/ .i2pd / tunnels.confに移動し、バックエンドを追加します。
[anon-website]
type = http
host = 127.0.0.1
port = 8080
keys = anon-website.dat
デーモンを再起動すると、ランダムな32ビットアドレスが取得されます。これは、デフォルトで127.0.0.1:7070 /?Page = i2p_tunnelsで使用できるWebコンソールで表示できます。必要に応じて、IPアドレスからのアクセスを許可することを忘れないでください。デフォルトでは、ローカルインターフェイスでのみ使用できます。ukeu3k5oycgaauneqgtnvselmt4yemvoilkln7jpvamvfx7dnkdq.b32.i2pのような恐ろしいものがあります。
i2pネットワークはDNSに似ていますが、/ etc / hostsの散在するリストのようなものです。条件付きflibusta.i2pにアクセスする方法を説明するコンソールの特定のソースをサブスクライブします。したがって、inr.i2pのような大きなリソースに多かれ少なかれ美しい名前を追加することは理にかなっています。
i2pとオニオンを一緒に展開できますか?
防弾ホスティングではなくRuVDSに警告したいだけです。クライアントに対してやる気のある苦情があった場合は、契約を終了して仮想マシンを消滅させることができます。ほとんどのホスティング業者は同じことをします。ただし、torアーキテクチャ、特にi2pの特性により、Webサイトがホストされている場所を正確に特定することは非常に困難であり、多くの場合、単に不可能です。
それにもかかわらず、そのようなツールの使用自体に違法なものは何もありません。したがって、オーバーレイネットワークで合法的なWebリソースのミラーを開いてもかまいません。いずれにせよ、ホームマシンでtorを盲目的に実験しないことを強くお勧めします。IPがブラックリストに登録されるか、またはpativeが到着します。VPSを借りる方が良いです、それは安価です。