I2PをDebianへインストールする方法、リモートでウェブコントロールを使う方法

I2Pって何?

I2P (Invisible Internet Project) はThe Internetを利用して、匿名の通信をするためのソフトウェアです。
メール、掲示板、チャットなどのアプリが利用できます。
通信の内容は256bitAESで暗号化されているので(たぶん)第三者が覗き見ることは不可能ですが、I2Pを使用していることについては秘密にできません。I2PやTorといった匿名通信ソフトを使うとNSAをはじめとする諜報機関の興味の対象になるという話もあります。

このページは何?

Debian の Wheezy 以降はI2Pの導入が簡単になっているのですが、日本語の解説が見当たらなかったのでこのページを作りました。

また、I2Pをインストールしたマシンをリモートで設定する方法も記します。これはWindows以外のOSで共通です。




インストール - Debian Wheezy以降  Ubuntu 12.04以降


まず、rootになってリポジトリ導入のための公開鍵を下記コマンドでインストールします。

# apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB2CC88B

次に、/etc/apt/sources.list.d/i2p.list を作成し、下記の2行を書きます

deb http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu raring main
deb-src http://ppa.launchpad.net/i2p-maintainers/i2p/ubuntu raring main

aptデータベースを更新し、I2Pパッケージが登録されたことを確認しましょう

# apt-get update
# apt-cache gencaches
# apt-cache show i2p

i2pパッケージの説明が表示されましたか?
では、下記コマンドでインストール。これで終わりです。簡単ですね。

# apt-get install i2p

起動

I2Pの起動は一般ユーザーでもできます。

$ i2prouter start            #起動
$ i2prouter stop            #停止
$ i2prouter restart          #再起動

マシン立ち上げ時にいつもデーモンとして起動させるには root になって下記コマンドを実行します。I2Pを起動するユーザーの名前とI2Pのために何メガバイトのメモリを割り当てるかを問われますので、あらかじめ考えておきましょう。
メモリはとりあえず128MBにして、後から増減させればよいでしょう。

# dpkg-reconfigure i2p

I2Pのリモート設定

I2Pが動いているマシン上でのウェブブラウザが使えれば、 http://127.0.0.1:7657/index.jsp にアクセスすることで簡単にI2Pの設定が行えます。(I2Pの設定方法や使い方は他のドキュメントに譲ります)
しかし、デフォルトでは外部のマシンからのアクセスは禁止されているので、GUIをインストールしていないマシンなどではI2Pの設定が行えません。

他のマシンからウェブコントロールにアクセスする方法は下記の通りです。
なお、説明上 i2prouter を動かすマシンの ip アドレスを 192.168.0.10 とします。


まず、I2Pを動かすユーザーになります。
それから ~/.i2p/clients.config をエディタで開きます。
(もし ~/.i2p/clients.config が無ければ、コマンド i2prouter start を実行すれば作成されます。)
.i2p/clients.config には ”clientApp.0.args=7657 ::1,127.0.0.1 ./webapps/”という行がありますが、この行をコメントアウトして次のように変えてください。

#clientApp.0.args=7657 ::1,127.0.0.1 ./webapps/
clientApp.0.args=7657 ::,0.0.0.0 ./webapps/      #注

  注: もしアクセス元のIPアドレスが固定されているなら、例えば10.0.0.10からしかアクセスしないなら、

clientApp.0.args=7657 ::,127.0.0.0,10.0.0.10 ./webapps/

    と書くこともできます。セキュリティ上こちらが望ましいでしょう。


書き換えたファイルをセーブしたら、下記コマンドを実行してください。

$ i2prouter restart


これで他のマシンのウェブブラウザから、http://192.168.0.10:7657/index.jsp にアクセスできるようになりました。でも、これでは誰でもアクセスできてしまうのでパスワードを設定しましょう。
ブラウザから http://192.168.0.10:7657/configadvanced.jsp にアクセスしてください。

ウェブコントロールにアクセスするためのパスワードを、上記画面のテキストボックスに
consolePassword=password
と、書きます。
その後右下の"Save Changes"ボタンをクリックするとパスワードが設定されます。
なお、一度パスワードを設定すると、次にこの画面でパスワードを設定しても変更はされませんのでご注意ください。パスワードの再設定方法は筆者は知りません。


ブラウザを閉じて、I2Pを再起動します

$ i2prouter restart

これ以降ブラウザで http://192.168.0.10:7657/ にアクセスするときパスワードが求められます。
ユーザー名を "admin" として先に設定したパスワードを入力すればウェブコントロールにアクセスできます。



セキュリティをより強固にするにはiptablesを設定してください。


I2CPエラーの対処

http://192.168.0.10:7657/logs.jsp にアクセスしてみてください。ログに”I2CP error to listening port 7657 - another instance is runnning” というエラーが出ていますか?
もしこのエラーが出ていたら http://192.168.0.10:7657/configclients.jsp にアクセスして、

I2CP Port: に他で使っていないポート番号、たとえば 7658 を指定して I2P を再起動してください。



Tips

他のマシンで動いているI2Pルーターを使って eepsite を見る方法

I2Pが動いてるマシンでプロクシサーバーを立ち上げ、このプロクシサーバーの上位プロクシに 127.0.0.1:4444 を指定するのが一番簡単だと思うのですがどうでしょう?eepsite を閲覧する時はこのプロクシを経由させます。


たとえばI2Pが動いているマシンに squid3 を入れて、squid3 の設定ファイル /etc/squid3/squid.conf に
  cache_peer 127.0.0.1 parent 4444 3130 no-query
という行を加えて、ブラウザにこのプロクシサーバーを使うよう設定してやればeepsiteが閲覧できます。
なお、squid3にはパスワードを設定して第三者に使用させないようにしましょう。




2013/6/29作成 
文書作成者のメールアドレス: infoアットマークmail.a2the.net