ОффТоп / Анонимная сеть i2p - добро пожаловать. FreeBSD. Часть 1

Анонимная сеть i2p - добро пожаловать. FreeBSD. Часть 1

Как я вчера и рассказывал (за эти сутки ситуация не изменилась), i2p — это анонимная сеть инкапсулированная в глобальную сеть интернет, и которая шифрует всех и всё, то есть, в конечном счете, это самые обычные сайты, но ни владельцы сайтов не знают кто к ним заходит, ни клиенты не знают к кому конкретно они обращаются через такую пиринговую сеть за контентом. Их интернет-провайдеры конечно видят какую-то сетевую типа активность, но тоже не знают кто к кому и за чем, и только одинокий браузер на локальном ПК у осторожного пользователя i2p, точно знает адрес захода — но и этот адрес ни к чему не привязан!
Сегодня день FreeBSD! Я покажу, как настроить эту анонимную подсеть встроенную глубоко в нутро глобальной сети на фряхе, но всем остальным не расслабляться — как и обещал, завтра будут ещё Ubuntu и Windows, и даже кое-что ещё на эту тему (о чем пока скромно умолчу).
Поехали!
i2p Tor Freenet безопасность шифровка шифр канал скрытый интернет глубокий скачать анонимный анонимизатор кодировка

Intro

Итак, мы остановились на адресах. В i2p нет DNS, доменов и IP — адрес выглядит так forum.i2p , но это просто красивый адрес, быстрее сайт откроется по такому прямому адресу —
33pebl3dijgihcdxxuxm27m3m4rgldi5didiqmjqjtg4q6fla6ya.b32.i2p

Технологию разработали немцы, да ещё и на Java, поэтому придется её ставить странным способом. Не анонимность этой экзотической сети меня привлекала (кстати, её разработчики не гарантируют на все 100% вашу анононимность в ней), а возможность создания сайта в этой сети без привязки к домену айпи или хостингу, — то есть бесплатный во всех смыслах хостинг, ну только за интернет домашний надо платить самому, конечно же.
В обычном интернете, чем больше посетителей на сайте, тем он хуже работает, а здесь всё наоборот! Соответственно чем дольше вы находитесь в сети, чем популярнее ресурс, тем он быстрее работает — поэтому выгодно поставить i2p на шлюз и забыть о его существовании не отключаясь от сети i2p никогда! Да и трафик у вас должен быть бесплатный — это же всё-таки p2p! Учитывая острую конкуренцию за посетителя в традиционном интернете — здесь просто расчищенная от конкурентов поляна. Об этом говорят мои самые первые опыты, когда новый ресурс буквально с нуля САМ начинает привлекать ощутимый для нулевого новичка трафик. Впрочем, этот пост не про мои поиски нетрадиционной ниши в SEO, а про технологию настройки p2p.
Большую рекламу сети i2p сделал перенос в неё одного российского сайта с персональными базами (которые продаются на любом рынке у метро), в начале все думали что его наконец-то закрыли, ан нет — он сам ушел. Разработчики i2p этому очень рады, несмотря на некоторые проблемы — благодаря ему количество пиров выросло до небывалых размеров, вот они пишут (даже русский выучили по такому случаю):
Сердечно приветствую наших новых русскоязычных пользователей! (A warm welcome to our new Russian users!) Due to ruslеаks we’ve recently been experiencing a massive influx of many new routers. We have now hit the mark of 10,000 and later even the one of 12,000 active routers. This is currently making the ride a bit bumpy, but all is fine. This means a growth of the network, which comes accompanied by some growing pains, but it’s nothing to worry about. Generally, growth is good for the network and good for your anonymity. So if you are having problems accessing some services, be patient. Not all eepsites are currently reachable on first attempt, but we hope that will level out soon. So again, be patient, don’t leave straight away, and stay tuned for the soon-to-come I2P router update!
Окей, ребята, это ещё что, потому как на площадку выходим мы, — сейчас увидите, как это делается «ин раша». Покажем трафик удивленным немцам? Про создание сайта я расскажу чуть позже, а сейчас собственно, само подключение к i2p в качестве первого необходимого условия и шага.
Ингредиенты:
  1. FreeBSD сервер
  2. Putty

Предварительная настройка

Для начала обновляем коллекцию портов, это поможет избежать некоторых проблем с версиями:
portsnap fetch extract && portsnap fetch update

Идем в коллекцию портов:
cd /usr/ports/net-p2p/i2p
make


Много чего предлагает — на все соглашаемся, ничего отдельно не отмечаем!
В какой-то момент подготовка обрывается, потому что, из-за каких-то там лицензионных соглашений (даже лень читать, sic!) надо установить вручную JDK и для неё потребуется 2.5 Gb места! Сразу качаем всё, что потребуется, версии могут отличаться — следите за своими системными сообщениями!
Идем в папку:
cd /usr/ports/distfiles

И качаем то, что попросили, обратите внимание, какие файлы большие — это Java, классная технология, правда?
fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar


И еще файлы, которые надо дополнительно скачать, по уже кривым ссылкам:

bsd-jdk16-patches-4.tar.bz2
tzupdater-1_3_40-2011h.zip
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2


Кладем их в стопку тоже в /usr/ports/distfiles и опять делаем:
cd /usr/ports/net-p2p/i2p
make


Появится лицензионное соглашение, его надо осилить доскролить до конца и набрать yes!
Установка опять прерывается, причина:
Found libtool-2.2.6a_1, but you need to upgrade to libtool>=2.4

Конкретно так напрягшись, идем и шустро делаем:
cd /usr/ports/devel/libtool
make
make install


Устанавливается как раз 2.4 версия. Опять возвращаемся.
cd /usr/ports/net-p2p/i2p
make


Опять прерывается — причина:
Requested 'x11 >= 1.2.99.1' but version of X11 is 1.2.1
Requested 'xext >= 1.0.99.1' but version of Xext is 1.0.5
Requested 'inputproto >= 1.9.99.902' but version of InputProto is 1.5.0


У меня основная часть системы устанавливалась давно, так что придется обновить многое, вам это может и не потребуется, поехали:
cd /usr/ports/x11/xproto
make deinstall && make deinstall
make install
cd /usr/ports/x11/xextproto
make deinstall && make deinstall
make install
cd /usr/ports/x11/libXext
make deinstall
make install
cd /usr/ports/x11/inputproto
make deinstall
make install
cd /usr/ports/x11/fixesproto
make deinstall
make install
cd /usr/ports/devel/xorg-macros
make deinstall
make install
cd /usr/ports/x11/xorg
make deinstall
make install
cd /usr/ports/x11
make deinstall
make install
ошибка
cd /usr/ports/x11/libxcb/
make clean install
cd /usr/ports/x11
make install
ошибка
cd /usr/ports/graphics/libGLU
make install
cd /usr/ports/x11
make clean install


Честно говоря, на этом этапе система еще что-то просила дообновить, но я послал её в dev/null и вернулся к установке i2p — и о чудо, она завершилась успешно!
cd /usr/ports/net-p2p/i2p
make clean install


Основная настройка i2p

В rc.conf добавляем:
i2p_enable="YES"
i2p_user="i2p"


Добавляем пользователя с каким-нибудь паролем (запомните его, это в ваших интересах) под именем i2p:
adduser

Заходим по SSH (PUtty) на наш сервер от имени этого нового пользователя и делаем:
i2p# /usr/local/sbin/i2prouter install

В папке пользователя i2p появляются файлы настроек:
i2p# cd в /home/i2p/i2p

По какой-то причине в настройках нет ссылок на наши папки — их надо добавить вручную:
%INSTALL_PATH - /home/i2p/i2p
%SYSTEM_java_io_tmpdir /tmp


Правим файлы:
i2p# vi i2prouter
i2p# vi wrapper.config


Меняем также адрес 127.0.0.1 на адрес нашего сервера в файлах:
i2p# clients.config
i2p# i2ptunnel.config


Опять пытаемся запустить i2p, если проблема все еще в папке, он матюгнётся так:
If you accidentally end up inside vi, you can quit it by pressing Escape, colon
(:), q (q), bang (!) and pressing return.
i2p start
To access i2p:
Point your browser at http://localhost:7657/ to access configuration
Point your browser proxy at http://localhost:4444/ to access i2p network
Unable to locate i2psvc in %INSTALL_PATH!
The most likely reason is that a supported version of the java
wrapper is not available in the I2P installation package for your
platform. It may be possible to manually download and install
a compatible wrapper for your system.
See http://www.i2p2.de/manualwrapper for hints.
In the meantime, you may start I2P by running the script
%INSTALL_PATH/runplain.sh


Если он так уже не ругается — это есть хорошо, но он точно еще ругнется на отсутствие misc/compat6x — его надо установить:
Возвращаемся под рутом и такие все накрученные бесконечным процессом установки, и делаем:
cd /usr/ports/misc/compat6x
make install


Возвращаемся под i2p:
i2p# /usr/local/sbin/i2prouter start

Уже не ругается, молодец:
Point your browser at http://localhost:7657/ to access configuration
Point your browser proxy at http://localhost:4444/ to access i2p network
Starting I2P Service...done.


Смотрим, начал ли слушать i2p порты:
i2p# sockstat -4l | grep i2p

После удачного старта все настройки перемещаются в папку /home/i2p/.i2p теперь всё надо править там и перегружаться, чтобы вступило в силу!
По нашим настройкам, консоль i2p должна быть по адресу 192.168.1.107 (это внешний ip нашего сервера, ксати) на порту 7657, шлюз нас пока просто не пустит сюда, ну так открываем!
Добавляем в rc.firewall:
vi /etc/rc.firewall

строку в разделе разрешенных портов:
${FwCMD} add allow tcp from any to ${ipout} 7657 in via ${lanin} setup

Перезагружаем ipfw:
/etc/rc.d/ipfw restart

В разделе общей информации, где сейчас написано «Сеть: ОК», как пить дать, будет ругаться на время: ОШИБКА - Часы сбиты на столько-то ...
Окей, окей, окей, правим время на правильное:
dаte 201110101515

2011 год 10 месяц 10 день 15 час 15 минута
Находим кнопку Перезагрузить в веб-интерфейсе и таки — как вы догадались? — перезагружаем i2p — это займет минуты 3-5, в это время веб-интерфейс доступен не будет, так что расслабьтесь немного, выпейте чашечку кофэ или примите прохладный душ.
Продолжение и окончание в одном лице — в следующем посте.