匿名のI2Pネットワークでサイトをホストします(+パラノイドモード)





すでに数回I2Pにログインし、ircのメンバーとチャットし、目に見えないランプのアイデアに触発され、I2Pの自分の(イン)トレジャーについて考えたと仮定します。 これを考えて、開いたノートブックの前に数日間座っていました-フリバスタだけでなくルートトラッカーも禁止されているというニュースから途中で学びました-そして最終的にあなたがスノーデンとウィキリークスの創設者であることを思い出しました(非常に予期しないターン、私は認めません私はあなたにこれを期待していました)、そして社会的に重要な情報を投稿するための踏み台を長い間探していました。 たとえば、Twitterに投稿した猫の写真をどこかにアップロードすることにしました(SnowdenはTwitterで猫が好きです、ご存知ですか?)。 そして、あなたの選択はI2Pにかかっていました。



これに必要なもの:上げられたサーバーとI2Pデーモン(i2pd)。 まだインストールされていない場合は、インストールします(出版物の最後に、winとunixの下の両方のインストールチュートリアルへのリンクがあります)。 この例では、作成したサーバーにアドレスで到達できます



127.0.0.1:8080



注:I2P経由でのみサイトにアクセスできるようにする場合、サーバーをi2pdルーターに接続しても、通常のインターネットに構成した他のサーバー接続がすぐに切断されるわけではありません。 それらをすべて自分で無効にする必要があります。そのため、唯一の接続は、ルーターとローカルマシン上のサーバーの間です。



ご存知のように、i2pdはコンピューターの内部に配置され、I2Pネットワークに接続された多数のポートを持つボックスです。 起動したサーバーは、ポートを介して接続できる別のボックスです。 したがって、ポートをドッキングすると、サーバーはI2Pネットワークに接続します。 また、サーバーは127.0.0.1:8080をリッスンするため、i2pdを取得して同じアドレスに構成します。



構成ファイル(unix-/.i2pd/tunnels.cfg、windows-%appdata%\ i2pd)を開いて追加します。



[スーパーハッカーサイト]

タイプ= http

ホスト= 127.0.0.1

ポート= 8080

キー= superhackersite.dat



IRCのような現在のトンネルとは異なり、ここで私たちはサーバーとして機能し、ネットワーク上の何かに接続しなくなりますが、ネットワークからの人々が来るので、トンネルのタイプ(タイプ)はそれに応じて設定されます。 httpの代わりに、サーバーを指定できます。 2つの違いは、サーバータイプがデータをそのまま転送する(同時に、同じ方法でサーバーに接続できる)ことと、httpタイプは次のヘッダーを使用することです。



X-I2P-DestHash-base64の訪問者アドレスのハッシュ

X-I2P-DestB32-同じことだが、base32

X-I2P-DestB64はすでにbase64の完全なアドレスです



これらのヘッダーは、サーバー管理者が各訪問者と個別に連携してセッションを構築するのに役立ちます(はい、訪問者が同じアドレスから接続されている限り、これはi2pでも可能です)。



既にお気づきのように、キーファイルには好きな名前を付けることができます。 このファイルにはサイトのアドレスが含まれているため、こまめに保存する必要があります。



オプションで、厳密に選択されたアドレスに対して偏執的なアクセスモードを有効にできます。 友人にそれぞれのネットワークアドレスを見てみましょう(このアドレスは、転送されたトンネルのアドレスと共に、LocalDestinationsタブのWebコンソールで利用可能です-I2Pトンネルページで提供されたアドレスと比較することで削除できます)。 作成したトンネルに、26qxgmyqczulza5ym3jij5er3onclacejyqzecuhjllwun3kxuzq(b32.i2p形式の追加なし)の形式で追加の行を入力し、アドレスをコンマで区切る必要があります。 次のタイプ:



accesslist = 26qxgmyqczulza5ym3jij5er3onclacejyqzecuhjllwun3kxuzq、4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspaなど



確かに、これのために、アクセスリストの友人は-あなたが接続したいたびに-proxykeysキーでルーターを起動する必要があります(出版物の最後にある設定のドキュメントへのリンクを詳しく見てみましょう)、彼らのためにスクリプトを書いてください:このような構成のないI2Pは、各ユーザーが毎回新しいアドレスで開始するため、新しいアドレスは匿名のままです。



tunnels.cfgへの変更を保存します。 i2pdが実行中の場合は、次の行を使用してターミナルで停止します。



$ pkill i2pd



そして、もう一度始めます。 これがないと、tunnels.cfgへの変更は有効になりません。



次に、Webコンソールに移動し、「I2Pトンネル」ページへのリンクをたどって、フォーマットの碑文を探します



スーパーハッカーサイト<4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa:8080



すべてをポートにコピーします。 これは、ネットワークに表示されるサイトのb32アドレスです(作成したsuperhackersite.datキーに関連付けられている限り、それは一定のままです)。 末尾の.b32.i2pを追加して、次のようなアドレスを取得します



4bpcp4fmvyr46vb4kqjvtxlst6puz4r3dld24umooiy5mesxzspa.b32.i2p



i2pdをオンに戻し、この新しいアドレスを介してサイトに接続します。 終わった? したがって、サイトはI2Pからアクセスできます。 彼らは最も重要なことをほとんど忘れていました:あなたは本当にあなたのページに猫を加えたかったです!



猫が追加されると、アドレスを友人と共有できます(そして、あなたがスノーデンではないが、このすべての時間を装っている場合は、猫を愛するこのスノーデンにサイトのアドレスを送信することを忘れないでください)。



ところで、あなたはまだあなたのサイトのために完全に無料のアドレスを得ることができます。 結局のところ、あなたや私のような本物の匿名の人々が公開アドレスを必要とすることもあります。 これを行うために、I2Pアドレス指定システムを詳しく見ていきます。



ここでは、IPアドレスの代わりに、真に非人間的な長い暗号化base64識別子(512バイト長!)があります。 そして、それらは任意のネットワークアドレスに割り当てられます。ルーターボックス自体と、このルーターに関連付けられたトンネル上のすべてのアドレスの両方に加えて、サイトにもこのような識別子があります。



しかし、base64アドレスはルータールータースキームでは正常に機能しますが、個人対個人のスキームでは非常に不便であることを誰もが理解しています。 したがって、ネットワークは、不快で長い繰り返し、512バイトものアドレス、便利な短いアドレスの間の対応を提供します。



2種類の便利なアドレスがあります。 1つ目は、インターネットタイプのアドレスです(たとえば、onelon.i2pまたはarmada.i2p)。 2番目のタイプはb32で、これはすでに検出されており、b64から計算されます。 すでに見たように、B32ははるかに短いので、チャットのどこかで他の人に転送する方が便利です。 その違いは何ですか、なぜこれと他の両方が使用されています:b32、およびおなじみのインターネットアドレス? そして、問題は、b32でルーターが対応するb64アドレスを独自に認識できることです。 また、インターネットでの会議に慣れているサイトの名前は、人々によって割り当てられます。 したがって、計算によってソースb64を同じdirect.i2pから取り出すことはできません。つまり、このアドレスにアクセスするには、対応するb64識別子をどこかに保存する必要があります。



識別子とサイト名の対応はアドレス帳に保存されており、ネットワークで実行されているルーターごとに1つのホームコピーがあります。 実際には、ホストの類似物と比較する価値がありますが、ここではI2Pネットワークアドレス帳でのみ、より重要な役割を果たしますが、機能的にはもちろん、互いに類似しています。 I2PではDNSサーバーの現象として存在しないため(ネットワークの復元力を高めるため)。 つまり、もちろん、他のルーターがサイト名とbase64の間の通信をダウンロードできるノードがありますが、アドレス帳の更新をダウンロードするためにそれらへのアクセスは不規則に発生します。 つまり、アドレスバーにサイトアドレスを入力すると、ルーターはbase64を検索してbase64を検索するのではなく、独自のアドレス帳を検索します。



アドレス帳は、適切なディレクトリadressbookにあります。 その中にあるaddresss.csvファイルは、インターネットアドレスタイプとbase32識別子間の対応文字列で構成されています。



既に述べたように、これらはすべて、信頼されたサーバー(実際には、あなたと同じノード)からのサブスクリプションを通じてネットワークから定期的にダウンロードされます。 つまり、私たちのサイトは他のノードのアドレス帳にも落ちたので、適切なリソースの1つに登録する必要があります。 たとえば、I2P Name Registry:inr.i2pリソース。 登録するには、サイトのb64識別子を使用してアプリケーションを送信する必要がありますが、Webコンソールで簡単に見つけることができます。I2Pトンネルに移動して、b32アドレスをクリックするだけです。 接続に関する情報と、もちろんb64があります。



技術的には、リソースに一致するアドレスを持つテキストファイルを配置し、訪問者にあなたのサイトをサブスクリプションの別のソースとして追加するよう説得することにより、独自の名前登録サービスを手配できます。



その結果、友人にb32識別子を送信でき、それにアクセスするにはネットワークへの接続のみが必要です。または、サイトにクールな名前を付けることができますが、この名前はアドレス帳に表示されます。



ネットワーク上のサイトのアドレスを配布することに加えて、あらゆる種類のディレクトリ、トーラスの隠しウィキに似たウィキ、およびrobots.txtを使用する少なくとも1つの検索エンジンがありますが、これは言うまでもなく、まったく別の話です。



IRCにアクセスし、チャンネル#i2pd-ruで開発者とチャットします。 匿名性は主にあなた次第であることに注意してください。 サイトの構築を頑張ってください!



それでもi2pdのインストール方法がわからない場合は、次のようにします。



habrahabr.ru/post/275643-i2pdを初めて起動する方法:Debian / Ubuntuの手順



habrahabr.ru/post/275647-i2pdの使用方法:MS Windowsの包括的な説明



以下を読むこともお勧めします。



i2pd.readthedocs.org/en/latest/configuration.html#config-files-構成設定とデーモンの起動



xakep.ru/2011/07/07/56161-I2Pを介した匿名ホスティング:暗号ネットワークの使用に関する実用的なヒント



All Articles