Gnunet что это
Перейти к содержимому

Gnunet что это

  • автор:

Введение

GNUnet — это программный пакет для безопасного peer-to-peer соединения, не нуждающегося в серверах. Проект GNUnet возник в 2001 году и был вдохновлён целым рядом технических идей, призванных обеспечить безопасный файлообмен в пиринговых (P2P) сетях.

GNUnet является не просто файлообменной сетью. Основная цель проекта — создание надежной, открытой, равноправной и анонимной (т.е. недоступной цензуре и контролю) системы обмена информацией. Планируется предоставление множества интернет-услуг, а GNUnet стремится стать платформой для разработки децентрализованных сервисов следующего поколения.

Основные технические вопросы работы GNUnet подробно описаны в ряде научных публикаций. Среди этих идей — улучшенное кодирование содержимого (ECRS) и новый протокол анонимной маршрутизации (gap). Вы можете найти все материалы на сайте gnunet. Когда началась работа над GNUnet, были изучены существующие системы (в частности, Freenet и Mnet) на основе которых можно было бы начать новую работу. Однако задуманная система слишком отличалась от существовавших реализаций, чтобы строить GNUnet на основе одной из существовавших систем.

Первый реализованный сервис позволяет обмениваться файлами (анонимно и без какой либо цензуры). Анонимность обеспечивается за счет того, что исходящие от узла сети сообщения неотличимы от чужих сообщений, в передаче которых участвует узел. Все узлы действуют как маршрутизаторы, установленные между ними соединения шифруются, а уровень использования пропускной способности канала поддерживается постоянным. GNUnet использует простую, основанную на избытках экономическую модель для выделения ресурсов. Узлы в GNUnet следят за поведением друг друга, с уважением к использованию ресурсов; узлы, которые больше дают сети награждаются лучшим обслуживанием.

GNUnet продолжает развиваться: появляются новые идеи и улучшается программный код. Часто улучшения GNUnet являются результатом дискуссий с разработчиками других проектов. Наверное, один из наиболее известных таких проектов — это Tor — децентрализованная сеть, действующая как анонимный прокси для TCP трафика с низкой латентностью. Tor спроектирован как универсальное решение, и в нем отсутствуют некоторые возможности специфичные для анонимного файлообмена, например поиск, дублирование данных, параллельная загрузка с нескольких узлов.

Кроме всего прочего, впечатляет список протоколов, которые может использовать GNUnet для передачи. Это стандартные tcp и udp, и необычные для p2p http (причем может работать и через прокси) и smtp. Ко всему прочему GNUnet вполне хорошо работает за NAT.

GNUnet является частью проекта GNU. Страница проекта на сайте gnu имеет адрес http://www.gnu.org/software/gnunet/. Кроме того, существует отдельный сайт gnunet: http://gnunet.org/.

Текущая версия 0.8.0c написана на С (однако существует проект реализации GNUnet на Java), работает под ОС GNU/Linux, *BSD, Mac OS X, Solaris, Windows и распространяется под лицензией GNU GPL. В данный момент в проект входит демон gnunetd, несколько библиотек и два фронтенда: gnunet-gtk и gnunet-qt (соответственно написанные с использованием GTK и Qt).

Сервисы и модули GNUnet

Для идентификации объектов и сервисов GNUnet использует URI (Uniform Resource Identifiers). Любой объект в сети GNUnet идентефицируется с помощью URI, который в текущей версии выглядит как gnunet://module/identifier, где module — имя модуля сети, а identifier — уникальный хеш, идентефецирующий сам объект.

File Sharing и ECRS

Самый популярным и наиболее стабильным сервисом является File Sharing (fs), и, как следует из названия, он предназначен для анонимного децентрализованного обмена файлами. Он позволяет искать, выкладывать (publish) и скачивать (download) как отдельные файлы, так и целые директории. С точки зрения пользователя, все это осуществляется аналогично тому, как это происходит например в dc++, однако, благодаря сложному механизму роутинга запросов и ответов, вы понятия не имеете от кого вы на самом деле принимаете или кому передаете файл.

Интересный момент — можно настраивать степень анонимности: от 0 (не анонимно) до бесконечности. По умолчанию используется 1 и этого в большинстве случаев достаточно (вы же не собираетесь передавать таким образом сверхсекретные данные). Передаваемые файлы закодированы с помощью ECRS (An Encoding for Censorship-Resistant Sharing) и обрабатываются модулем с соответствующем названием.

Другие сервисы

Существует также чат (очень простой, с минимумом функций), планируется еще несколько сервисов (например, анонимная p2p почта).

Установка и Настройка

Я пользуюсь дистрибутивом на основе Gentoo, и в моем случае ebuild для gnunet 0.8.0 уже был в официальном дереве портов (в ветке ~). Для работы gnunet требует sql-бд. В настоящий момент поддерживаются mysql и sqlite. Поскольку я не использую mysql, я выбрал sqlite (USE=»sqlite» emerge -v1 gnunet), после чего все собралось без каких-либо проблем.

Также, без проблем нашлись rpm для RHEL/CentOS 5 (в репозитории rpmforge), пакеты для Debian, Ubuntu и Arch Linux. Думаю, готовый пакет легко найдется и для других дистрибутивов.

GNUnet работает в клиент-серверном режиме. Т.е. основной рабочий процесс — gnunetd работает в качестве демона, работает без какого-либо интерфейса и управляется фронтендами gnunet (которые не обязательно должны быть запущены на той же машине). Это отлично вписывается в мою домашнюю сеть: у меня есть headless сервер, подключеный к интернету, который я использую в качестве интернет-шлюза, NAS, proxy, dns и svn сервера, а моим основным рабочим компьютером является ноутбук.

Сервер

Итак, сначала я установил gnunet на сервер. После установки portage подсказала мне что для настойки нужно запустить gnunet-setup -d с правами пользователя root, что я и сделал. gnunet-setup в диалоговом режиме спросил меня о настройках, после чего создал конфигурационный файл /etc/gnunet.conf для демона. Все опции достаточно понятны, и обладают подробной стправкой. Однако оказалось что диалоговый режим генерирует не совсем корректный конфигурационный файл, поэтом я собрал на ноутбуке GNUnet с поддержкой gtk, вместо диалогового увидел вот такое окно конфигурации:

А получившийся gnunetd.conf скопировал на сервер.

Клиент

Итак, затем я настроил клиента на моем ноутбук. К сожалению, ebuild’а для gnunet-qt я не нашел (я использую KDE), а написать по-быстрому его не удалось. Поэтому я оставил это до лучших времен и установил gnunet-gtk. После выполнения gnunet-setup я смог подключиться к серверу и успешно запустить несколько поисков и закачек.

Итак, вот несколько скриншотов:

Недостатки

К сожалению не все так безоблачно в GNUnet как хотелось бы.

Основная проблема — это очень высокая задержка, низкая скорость работы и достаточно высокое потребление ресурсов. Это — цена, которую приходится платить за децентрализованность и шифрование. Так, поиск редкого контента может длиться часами, а прежде чем начнется его скачивание может пройти еще много часов, да и скорость скачивания будет не на высоте. Однако, это пробоема всех децентрализованных сетей, и чем более децентрализованна она, тем более усугубляется эта пробоема (так, eDonkey показывает чуть лучшие результаты, а не децентрализованный torrent намного более лучшие). Остается надеяться что в будущем, с увеличением пропускной способности сетей и производительности компьютеров эта проблема будет становится все менее актуальной.

Вторая проблема — малая популярность сети, и, как следствие, недостаточное количества контента. Отчасти в этом виновата малая раскручености протокола, отчасти — нетривиальность использование, да и проблема высокой задержки тоже играет немаловажную роль. Эту проблему можно решить, и я надеюсь что данная статья приведет новых пользователей в сеть GNUnet.

Ссылки:

  • Официальный сайт
  • Страница GNUnet на сайте GNU
  • канал IRC #gnunet на freenode
  • Страница в Wikipedia

GNUnet

GNUnet — это программный пакет для безопасного P2P-соединения, не нуждающегося в серверах. Проект GNUnet возник в 2001 году и был вдохновлён целым рядом технических идей, призванных обеспечить безопасный файлообмен в пиринговых сетях.

Основная цель проекта — создание надежной, открытой, равноправной и анонимной сети обмена информацией. Планируется предоставление множества интернет-услуг, а сама сеть стремится стать платформой для разработки децентрализованных сервисов следующего поколения. GNUnet использует drupal в качестве системы управления содержимым [1] и Mantis для отслеживания ошибок. [2]

За основу GNUnet были взяты существующие Freenet и Mnet (англ.) . Однако получившаяся система существенно отличается от уже существующих.

Первый реализованный сервис позволяет обмениваться файлами анонимно и без какой либо сетевой цензуры. GNUnet может использовать для передачи данных как стандартные протоколы TCP и UDP, так и необычные для P2P HTTP, причем с возможностью работы через прокси-сервер, а также SMTP. Кроме того, GNUnet может работать за NAT.

В данный момент в проект входит демон gnunetd, несколько библиотек и два фронтенда: gnunet-gtk и gnunet-qt, соответственно написанные с использованием GTK и Qt.

Фронтенд gnunet-gtk

Фронтенд gnunet-qt

Сервисы и модули GNUnet

Для идентификации объектов и сервисов GNUnet использует URI. Любой объект в сети GNUnet идентифицируется с помощью URI, который в текущей версии выглядит как gnunet://module/identifier, где module — имя модуля сети, а identifier — уникальный хеш, идентифицирующий сам объект.

File Sharing и ECRS

Самый популярным и наиболее стабильным сервисом GNUnet является File Sharing, предназначенный для анонимного децентрализованного файлообмена. Он позволяет искать, выкладывать и скачивать как отдельные файлы, так и целые директории. Благодаря сложному механизму роутинга запросов и ответов пользователь не может знать, от кого он принимает или кому передает файл.

В GNUnet можно настраивать степень анонимности от 0 (не анонимно) до бесконечности. По умолчанию используется 1. Передаваемые файлы закодированы с помощью ECRS (An Encoding for Censorship-Resistant Sharing) и обрабатываются соответствующим модулем.

Другие сервисы

В GNUnet также существует простейший чат, и планируются ещё несколько служб, например, анонимная P2P-почта.

См. также

  • Анонимные сети
  • Одноранговые сети
  • Файлообменные сети

Примечания

  1. Facilitating the free flow of information for the GNUnet community
  2. GNUnet.org bugtracking

GNUnet: создавайте безопасные P2P-сети из Linux

Gnunet

GNUnet все еще жив, как и P2P (одноранговые) сети обмена файлами они не умерли. Несмотря на закрытые платформы или программы, которые были заброшены и были очень популярны в прошлом, эти типы протоколов совместного использования продолжают свой курс, и многие пользователи используют их для совместного использования.

В лице проект GNUnet у вас будет платформа для безопасного создания этих децентрализованных сетей. Это программное обеспечение, написанное на C (в настоящее время Python), с открытым исходным кодом, бесплатно, бесплатно и под зонтиком GNU. Цель состоит в том, чтобы реализовать программу для децентрализованных сетей P2P с безопасностью благодаря шифрованию на сетевом уровне и расположении ресурсов.

С помощью GNUnet вы можете создавать эти сети, гарантия конфиденциальности пользователей и обеспечение совместного использования данных, управление самой сетью, мониторинг и блокирование возможных злоупотреблений, гарантия целостности данных, управление узлами доступа к сети P2P и т. д. Все это при низком потреблении ресурсов по сравнению с другими аналогичными проектами.

GNUnet имеет Недавние обновления, и это не мертвый проект, как другие. Фактически, для использования Python (за исключением gnunet-qr) была проведена огромная модернизация с использованием преимуществ этого языка. Эти изменения улучшили функциональность этого проекта.

При этом некоторые технологии Они используют этот проект как основу, например:

  • Система VPN для создания скрытых сервисов с доменом .gnu с туннелями IPv4 / IPv6 через P2P.
  • GNU Доменные имена GNS (замена DNS), работающие децентрализованно и недоступные для цензуры.
  • Secureshare для децентрализованных социальных сетей с использованием протокола PSYC со сквозным шифрованием.
  • Easy Privacy для шифрования электронной почты.
  • Анонимная платежная система GNU Taler (использует текущие валюты и известные криптовалюты).

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Любители Linux » SPA-программы » GNUnet: создавайте безопасные P2P-сети из Linux

Будьте первым, чтобы комментировать

gnunet-transport — Интернет в облаке

Это команда gnunet-transport, которую можно запустить в провайдере бесплатного хостинга OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ

gnunet-transport — измерение и контроль транспортной подсистемы

СИНТАКСИС

гнунет-транспорт [ОПЦИИ]

ОПИСАНИЕ

gnunet-transport — это инструмент для доступа к различным функциям транспортной подсистемы GNUnet.
из командной строки. Ожидается, что большинство из них не будут полезны для конечных пользователей.
gnunet-transport может использоваться для оценки производительности транспортов, принудительного использования однорангового узла.
для подключения к другому узлу (если возможно). Остальные функции должны быть добавлены в ближайшее время.
будущее.

-b, — тест
измерить, насколько быстро мы получаем данные (от всех подключений). При выходе данные
ставка будет сообщена. Работает, пока не будет отменено с помощью CTRL-C.

-C PEER, —connect = PEER
одноранговый узел для подключения (используется вместе с -p)

-c ИМЯ ФАЙЛА, —config = ИМЯ ФАЙЛА
файл конфигурации для использования

-e —События
предоставлять информацию обо всех событиях подключения и отключения (постоянно)

-h, —Помогите
распечатать страницу справки

-i, —Информация
распечатать информацию о наших текущих связях (один раз)

-L ЛОГИЧЕСКИЙ УРОВЕНЬ, —loglevel = УРОВЕНЬ
Измените уровень ведения журнала. Возможные значения для LOGLEVEL: ERROR, WARNING, INFO и
ОТЛАЖИВАТЬ.

-l ЛОГ-ФАЙЛ, —logfile = ЛОГФАЙЛ
настроить ведение журнала для записи журналов в LOGFILE

-m, —монитор
распечатать информацию о наших текущих связях (постоянно)

-p PEER, —peer = PEER
идентичность пэра

-s, —Отправить
передавать (фиктивный) трафик как можно быстрее партнеру, указанному с помощью -p
вариант. Ставка по-прежнему будет ограничена квотами, определенными партнерами.
(Подсистема АТС). Будет работать, пока не будет нажата CTRL-C или пока не будет установлено соединение с
другой одноранговый узел нарушен.

-t, —тестовое задание
тестовая транспортная конфигурация. С этим флагом инструмент будет проверять, все ли
настроенные транспортные плагины имеют рабочий адрес. Плагины, у которых нет
настроенный порт прослушивания будет проигнорирован. Тест проводится с помощью
внешний сервер (по умолчанию запущенный на gnunet.org), который пытается связаться с локальным
машина. Тест может работать, только если локальный узел GNUnet еще не запущен.

-v, —версия
распечатать номер версии

-V, —подробный
быть многословным

ПРИМЕЧАНИЯ
СОСТАВЛЕНИЕ ОТЧЕТОВ ОШИБКИ

Сообщайте об ошибках с помощью mantis или отправив электронное письмо на адрес
<[электронная почта защищена] >

Используйте gnunet-transport онлайн с помощью сервисов onworks.net

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *