Архив заметок

Анонимный интернет с помощью i2p

Просмотров: 13008Комментарии: 1
FreeBSD

Цитата:

i2plogo

I2P — это двойник сети Tor, но его авторы часто применяют "противоположные" методы для решения тех же инженерных задач. Например, вместо транспортного протокола TCP используется UDP, вместо роутинга в интернет — внутренняя закрытая сеть (хотя возможно и то и это), вместо "луковичной" маршрутизации — "чесночная", а цепочки называются туннелями. Есть аналоги скрытых сервисов Tor. Туннели разделены на два пути, проходящие через разные наборы узлов (по замыслу авторов это усиливает анонимность, но однозначного мнения исследователей на этот счёт нет — возможны аргументы в пользу обоих мнений). Каждый узел I2P является в принудительном порядке и клиентом и сервером. Ради лучшей анонимности пользователи могут выбирать более длинные цепочки и более высокие задержки трафика, но доказательства того, что это не упрощает профилирование трафика пользователей, не предоставлено. Сеть I2P также нестойка к глобальному наблюдателю. Интересно, что сами разработчики I2P предпочитают оставаться анонимными, что имеет, по крайней мере, такой недостаток: хотя исходный код проекта и открыт, сам проект (его теоретическая проработка) получит заведомо меньше внимания со стороны научного сообщества.

Решил и я попробовать поюзать сию сеть. Что есть на моем сервере:

# uname -srm
FreeBSD 9.2-RELEASE-p2 amd64

Порты обновляю следующем образом:

# svn up /usr/ports && cd /usr/ports && make fetchindex && pkg version -v | grep "need"

Инфа svn по портам:

# svn info /usr/ports
Path: /usr/ports
Working Copy Root Path: /usr/ports
URL: https://svn0.eu.freebsd.org/ports/head
Relative URL: ^/head
Repository Root: https://svn0.eu.freebsd.org/ports
Repository UUID: 35697150-7ecd-e111-bb59-0022644237b5
Revision: 335384
Node Kind: directory
Schedule: normal
Last Changed Author: olivierd
Last Changed Rev: 335384
Last Changed Date: 2013-12-01 21:10:59 +0700 (Sun, 01 Dec 2013)

Зависимости установки i2p:

# portmaster --show-work net-p2p/i2p
===>>> Port directory: /usr/ports/net-p2p/i2p
===>>> Starting check for all dependencies
===>>> Gathering dependency list for net-p2p/i2p from ports
===>>> NOT INSTALLED            archivers/unzip
===>>> NOT INSTALLED            archivers/zip
===>>> Installed converters/libiconv
===>>> NOT INSTALLED            devel/apache-ant
===>>> Installed devel/autoconf
===>>> Installed devel/autoconf-wrapper
===>>> NOT INSTALLED            devel/automake
===>>> NOT INSTALLED            devel/automake-wrapper
===>>> Installed devel/cmake
===>>> Installed devel/cmake-modules
===>>> Installed devel/gettext
===>>> Installed devel/gmake
===>>> NOT INSTALLED            devel/libcheck
===>>> NOT INSTALLED            devel/libpthread-stubs
===>>> Installed devel/libsigsegv
===>>> Installed devel/libtool
===>>> Installed devel/m4
===>>> Installed devel/p5-Locale-gettext
===>>> Installed devel/pkgconf
===>>> NOT INSTALLED            devel/xorg-macros
===>>> Installed graphics/jpeg
===>>> Installed graphics/png
===>>> NOT INSTALLED            java/bootstrap-openjdk
===>>> NOT INSTALLED            java/java-zoneinfo
===>>> NOT INSTALLED            java/javavmwrapper
===>>> NOT INSTALLED            java/openjdk6
===>>> Installed lang/perl5.18
===>>> Installed lang/python
===>>> Installed lang/python2
===>>> Installed lang/python27
===>>> NOT INSTALLED            math/gmp
===>>> NOT INSTALLED            misc/compat8x
===>>> Installed misc/help2man
===>>> Installed ports-mgmt/pkg
===>>> NOT INSTALLED            print/cups-client
===>>> Installed print/freetype2
===>>> NOT INSTALLED            security/libgcrypt
===>>> NOT INSTALLED            security/libgpg-error
===>>> Installed textproc/expat2
===>>> Installed textproc/libxml2
===>>> NOT INSTALLED            textproc/libxslt
===>>> NOT INSTALLED            x11-fonts/dejavu
===>>> NOT INSTALLED            x11-fonts/fontconfig
===>>> NOT INSTALLED            x11-fonts/libXft
===>>> NOT INSTALLED            x11-fonts/xf86bigfontproto
===>>> NOT INSTALLED            x11-toolkits/libXaw
===>>> NOT INSTALLED            x11-toolkits/libXmu
===>>> NOT INSTALLED            x11-toolkits/libXt
===>>> NOT INSTALLED            x11-toolkits/open-motif
===>>> NOT INSTALLED            x11/bigreqsproto
===>>> NOT INSTALLED            x11/fixesproto
===>>> NOT INSTALLED            x11/inputproto
===>>> NOT INSTALLED            x11/kbproto
===>>> NOT INSTALLED            x11/libICE
===>>> NOT INSTALLED            x11/libSM
===>>> NOT INSTALLED            x11/libX11
===>>> NOT INSTALLED            x11/libXau
===>>> NOT INSTALLED            x11/libXdmcp
===>>> NOT INSTALLED            x11/libXext
===>>> NOT INSTALLED            x11/libXfixes
===>>> NOT INSTALLED            x11/libXi
===>>> NOT INSTALLED            x11/libXp
===>>> NOT INSTALLED            x11/libXpm
===>>> NOT INSTALLED            x11/libXrender
===>>> NOT INSTALLED            x11/libXtst
===>>> NOT INSTALLED            x11/libxcb
===>>> NOT INSTALLED            x11/printproto
===>>> NOT INSTALLED            x11/recordproto
===>>> NOT INSTALLED            x11/renderproto
===>>> NOT INSTALLED            x11/xbitmaps
===>>> NOT INSTALLED            x11/xcb-proto
===>>> NOT INSTALLED            x11/xcmiscproto
===>>> NOT INSTALLED            x11/xextproto
===>>> NOT INSTALLED            x11/xproto
===>>> NOT INSTALLED            x11/xtrans
===>>> Exiting

Мда. Море пакетов. Чтож, ставим сие:

# portmaster net-p2p/i2p

Или

# make -C /usr/ports/net-p2p/i2p config-recursive && make -C /usr/ports/net-p2p/i2p install clean

Ждем пока соберется все это хозявство.

Сборка

Может вылезти следующая ошибка:

===> Compilation failed unexpectedly.

Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to

Лечение:

# make MAKE_JOBS_UNSAFE=yes install clean

Рихтуем /etc/rc.conf:

i2p_enable="YES"
i2p_user="i2p"

Юзер при установке не создается, надо создавать самим:

# adduser i2p
Username: i2p
Full name: i2p user
Uid (Leave empty for default):
Login group [i2p]:
Login group is i2p. Invite i2p into other groups? []:
Login class [default]:
Shell (sh csh tcsh bash rbash nologin) [sh]:
Home directory [/home/i2p]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]: y
Lock out the account after creation? [no]:
Username   : i2p
Password   : <random>
Full Name  : i2p user
Uid        : 1002
Class      :
Groups     : i2p
Home       : /home/i2p
Home Mode  :
Shell      : /bin/sh
Locked     : no
OK? (yes/no): y
adduser: INFO: Successfully added (i2p) to the user database.
adduser: INFO: Password for (i2p) is: jS4g6SVhXA
Add another user? (yes/no): n
Goodbye!

Заходим по ssh под этим пользователем и запускаем установку:

$ /usr/local/sbin/i2prouter install

После установки, переходим в папку /home/i2p/i2p. В ней находится установленный сервер i2p и файлы настройки. Открываем wrapper.conf и видим следующее:

# NOTE - The izpack installer performs variable subsitiution on this

# file upon installation. If you did not use izpack, you must

# find and replace all instances of (dollar)INSTALL_PATH and

# (dollar)SYSTEM_java_io_tmpdir with appropriate values

# (perhaps . and /var/tmp, respectively)

То есть надо заменить эти значения:

%INSTALL_PATH на /home/i2p/i2p
%SYSTEM_java_io_tmpdir на /tmp

Так же эти значения надо поменять в файле i2prouter

Затем в файлах:

  • clients.config
  • i2ptunnel.config

Заменить ip адрес 127.0.0.1 на адрес сервера.

Сохраняем и пробуем запустить:

# /usr/local/etc/rc.d/i2p start

Вижу вот это:

# /usr/local/etc/rc.d/i2p start
To do a fast search for a file, try
         locate filename
locate uses a database that is updated every Saturday (assuming your computer
is running FreeBSD at the time) to quickly find files based on name only.
i2p start
To access i2p:
Point your browser at https://localhost:7657/ to access configuration
Point your browser proxy at https://localhost:4444/ to access i2p network
Starting I2P Service...**Failed to load the wrapper**
In an attempt to ensure that I2P will run on as many systems as possible, included in the
installation package is a version of the wrapper that was compiled for FreeBSD 6.
Necessary compatibility libraries may not be on your system.
Please install the misc/compat6x port and try running I2P again.
If you cannot (or choose not to) install these libraries, I2P may be started with the
'runplain.sh' script. Another option would be to compile the java wrapper for your system.
Hints to accomplish this can be found at https://www.i2p2.de/manualwrapper.

Устанавливаем:

# portmaster misc/compat6x

Еще раз запустим:

# /usr/local/etc/rc.d/i2p start
i2p start
To access i2p:
Point your browser at https://localhost:7657/ to access configuration
Point your browser proxy at https://localhost:4444/ to access i2p network
Starting I2P Service...done.

Проверим работоспособность:

# sockstat -4l | grep i2p
i2p      i2psvc     58934 4  tcp4   127.0.0.1:32000       *:*

Проработал буквально минуту и потом отвалился:

2013/12/02 22:11:23 | The configured wrapper.java.command could not be found, attempting to launch anyway: java
2013/12/02 22:11:23 | Launching a JVM...
2013/12/02 22:11:23 | JVM exited while loading the application.
2013/12/02 22:11:23 | Unable to start JVM: No such file or directory (2)
2013/12/02 22:11:23 | Dwrapper.jvm.port.max=31999
2013/12/02 22:11:23 | wrapper  | Command[13] : -Dwrapper.debug=TRUE
2013/12/02 22:11:23 | wrapper  | Command[14] : -Dwrapper.disable_console_input=TRUE
2013/12/02 22:11:23 | wrapper  | Command[15] : -Dwrapper.pid=859
2013/12/02 22:11:23 | wrapper  | Command[16] : -Dwrapper.version=3.5.9
2013/12/02 22:11:23 | wrapper  | Command[17] : -Dwrapper.native_library=wrapper
2013/12/02 22:11:23 | wrapper  | Command[18] : -Dwrapper.service=TRUE
2013/12/02 22:11:23 | wrapper  | Command[19] : -Dwrapper.cpu.timeout=10
2013/12/02 22:11:23 | wrapper  | Command[20] : -Dwrapper.jvmid=5
2013/12/02 22:11:23 | wrapper  | Command[21] : org.tanukisoftware.wrapper.WrapperSimpleApp
2013/12/02 22:11:23 | wrapper  | Command[22] : net.i2p.router.Router
2013/12/02 22:11:23 | wrapper  | Ping settings: wrapper.ping.interval=300, wrapper.ping.interval.logged=1, wrapper.ping.timeout=320
2013/12/02 22:11:23 | wrapper  | Launching a JVM...
2013/12/02 22:11:23 |
2013/12/02 22:11:23 | ------------------------------------------------------------------------
2013/12/02 22:11:23 | Advice:
2013/12/02 22:11:23 | Usually when the Wrapper fails to start the JVM process, it is because
2013/12/02 22:11:23 | of a problem with the value of the configured Java command.  Currently:
2013/12/02 22:11:23 | wrapper.java.command=java
2013/12/02 22:11:23 | Please make sure that the PATH or any other referenced environment
2013/12/02 22:11:23 | variables are correctly defined for the current environment.
2013/12/02 22:11:23 | ------------------------------------------------------------------------
2013/12/02 22:11:23 |
2013/12/02 22:11:24 | There were 5 failed launches in a row, each lasting less than 300 seconds.  Giving up.
2013/12/02 22:11:24 |   There may be a configuration problem: please check the logs.
2013/12/02 22:11:24 | <-- Wrapper Stopped

Для корректной работы java, необходимо смонтировать следующее:

# mount -t fdescfs fdesc /dev/fd
# mount -t procfs proc /proc

Добавить поддержку фс в /etc/fstab

fdesc   /dev/fd         fdescfs         rw      0       0
proc    /proc           procfs          rw      0       0

Проверяем версию java:

# java -version
openjdk version "1.6.0_32"
OpenJDK Runtime Environment (build 1.6.0_32-b28)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)

И стартуем i2p снова. И проверим заодно логи:

2013/12/02 23:09:07 | --> Wrapper Started as Daemon
2013/12/02 23:09:07 | Java Service Wrapper Community Edition 64-bit 3.5.9
2013/12/02 23:09:07 |   Copyright (C) 1999-2011 Tanuki Software, Ltd. All Rights Reserved.

Проверяем демонов:

# sockstat -4l | grep i2p
i2p      java       75567 4  tcp4   127.0.0.1:32000       *:*
i2p      java       75567 36 udp4   *:22030               *:*
i2p      java       75567 38 tcp4   192.168.1.3:7652      *:*
i2p      java       75567 39 udp4   *:1900                *:*
i2p      java       75567 42 udp4   *:7653                *:*
i2p      java       75567 52 tcp4   192.168.1.3:7657      *:*
i2p      java       75567 58 tcp4   *:22030               *:*
i2p      java       75567 60 tcp4   127.0.0.1:7654        *:*
i2p      java       75567 62 tcp4   127.0.0.1:7658        *:*

И открываем сайт по адресу https://myserver:7657

Главная страница

Следующий этап - это настройки.

Сменим язык на русский. I2P Internals->UI

Настройка языка и темы оформления

Далее укажем порты и ip адреса по необходимости. Настройки I2P->Сеть

tcp/udp настройки

Укажем скорость входящих/исходящих соединений. Настройки I2P->Траффик

03-12-2013-15-42-38.png

На всех экранах настроек есть справка по указываемым параметрам и значениям. Осталось добавить в адресную книгу источник адресов. Переходим в Адресная Книга > Подписки и добавляем:

  • https://i2host.i2p/cgi-bin/i2hostetag
  • https://stats.i2p/cgi-bin/newhosts.txt
  • https://tino.i2p/hosts.txt
  • https://dream.i2p/hosts.txt
  • https://hosts.i2p/
  • https://hosts.i2p/hosts.cgi?filter=all
  • https://bl.i2p/hosts2.txt
  • https://rus.i2p/hosts.txt

Сохраняем и перезагружаем адресную книгу.

Для использования сети i2p в браузере необходимо установить прокси. Адрес прокси ip вашего сервера, где работает i2p шлюз, адрес порта 4444. В Firefox есть дополнение FoxyProxy, с помощью которого вы сможете параллельно использовать сети i2p и обычный интернет.

P.S. Источник, откуда черпал инфу по установке и настройке сего софта (на этапе установки были внесены свои дополнения, в следствие устаревшей статьи оригинала). Настройку браузеров описывать не буду, эти шаги подробно описаны источником.

Комментариев: 1 RSS

Оставьте комментарий!

grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

Используйте нормальные имена.

Вы можете войти под своим логином или зарегистрироваться на сайте.

(обязательно)