Как я вчера и рассказывал (за эти сутки ситуация не изменилась), i2p — это анонимная сеть инкапсулированная в глобальную сеть интернет, и которая шифрует всех и всё, то есть, в конечном счете, это самые обычные сайты, но ни владельцы сайтов не знают кто к ним заходит, ни клиенты не знают к кому конкретно они обращаются через такую пиринговую сеть за контентом. Их интернет-провайдеры конечно видят какую-то сетевую типа активность, но тоже не знают кто к кому и за чем, и только одинокий браузер на локальном ПК у осторожного пользователя i2p, точно знает адрес захода — но и этот адрес ни к чему не привязан!
Сегодня день FreeBSD! Я покажу, как настроить эту анонимную подсеть встроенную глубоко в нутро глобальной сети на фряхе, но всем остальным не расслабляться — как и обещал, завтра будут ещё Ubuntu и Windows, и даже кое-что ещё на эту тему (о чем пока скромно умолчу).
Поехали!
Итак, мы остановились на адресах. В i2p нет DNS, доменов и IP — адрес выглядит так forum.i2p
, но это просто красивый адрес, быстрее сайт откроется по такому прямому адресу —
33pebl3dijgihcdxxuxm27m3m4rgldi5didiqmjqjtg4q6fla6ya.b32.i2p
Технологию разработали немцы, да ещё и на Java, поэтому придется её ставить странным способом. Не анонимность этой экзотической сети меня привлекала (кстати, её разработчики не гарантируют на все 100% вашу анононимность в ней), а возможность создания сайта в этой сети без привязки к домену айпи или хостингу, — то есть бесплатный во всех смыслах хостинг, ну только за интернет домашний надо платить самому, конечно же.
В обычном интернете, чем больше посетителей на сайте, тем он хуже работает, а здесь всё наоборот! Соответственно чем дольше вы находитесь в сети, чем популярнее ресурс, тем он быстрее работает — поэтому выгодно поставить i2p на шлюз и забыть о его существовании не отключаясь от сети i2p никогда! Да и трафик у вас должен быть бесплатный — это же всё-таки p2p! Учитывая острую конкуренцию за посетителя в традиционном интернете — здесь просто расчищенная от конкурентов поляна. Об этом говорят мои самые первые опыты, когда новый ресурс буквально с нуля САМ начинает привлекать ощутимый для нулевого новичка трафик. Впрочем, этот пост не про мои поиски нетрадиционной ниши в SEO, а про технологию настройки p2p.
Большую рекламу сети i2p сделал перенос в неё одного российского сайта с персональными базами (которые продаются на любом рынке у метро), в начале все думали что его наконец-то закрыли, ан нет — он сам ушел. Разработчики i2p этому очень рады, несмотря на некоторые проблемы — благодаря ему количество пиров выросло до небывалых размеров, вот они пишут (даже русский выучили по такому случаю):
Окей, ребята, это ещё что, потому как на площадку выходим мы, — сейчас увидите, как это делается «ин раша». Покажем трафик удивленным немцам? Про создание сайта я расскажу чуть позже, а сейчас собственно, само подключение к i2p в качестве первого необходимого условия и шага.
Ингредиенты:
Для начала обновляем коллекцию портов, это поможет избежать некоторых проблем с версиями:
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
В 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} sеtup
Перезагружаем ipfw:
/etc/rc.d/ipfw restart
В разделе общей информации, где сейчас написано «Сеть: ОК», как пить дать, будет ругаться на время: ОШИБКА - Часы сбиты на столько-то
...
Окей, окей, окей, правим время на правильное:
dаte 201110101515
2011 год 10 месяц 10 день 15 час 15 минута
Находим кнопку Перезагрузить в веб-интерфейсе и таки — как вы догадались? — перезагружаем i2p — это займет минуты
Продолжение и окончание в одном лице — в следующем посте.
3 комментария
I2P может использовать и TCP протокол. По умолчанию он работает и с TCP и с UDP.
Пару замечаний.
Время лучше всего синхронизировать автоматически, например с помощью ntpd. Иначе через некоторое время опять получите ошибку со сбитым временем.
Вы логотип использовали насколько я знаю не проекта "Невидимый интернет", а какого-то французского туристического фонда impossible2possible. Ничего страшного, но в заблуждение вводит.
А так - очень хорошая статья.
На Bodrenko.net есть I2P браузер, который не надо настраивать