Gnunet как пользоваться
Представлен выпуск фреймворка GNUnet 0.20, предназначенного для построения защищённых децентрализованных P2P-сетей. Создаваемые при помощи GNUnet сети не имеют единой точки отказа и способны гарантировать неприкосновенность частной информации пользователей, в том числе исключить возможные злоупотребления со стороны спецслужб и администраторов, имеющих доступ к узлам сети.
GNUnet поддерживает создание P2P-сетей поверх TCP, UDP, HTTP/HTTPS, Bluetooth и WLAN, может работать в режиме F2F (Friend-to-friend). Поддерживается обход NAT, в том числе с использованием UPnP и ICMP. Для адресации размещения данных возможно использование распределённой хэш таблицы (DHT), есть средства для развёртывания mesh-сетей. Для выборочного предоставления и отзыва прав доступа применяется сервис децентрализованного обмена атрибутами идентификации reclaimID, использующий GNS (GNU Name System) и шифрование на основе атрибутов (Attribute-Based Encryption).
Система отличается низким потреблением ресурсов и использованием многопроцессной архитектуры для обеспечения изоляции между компонентами. Предоставляются гибкие средства для ведения логов и накопления статистики. Для разработки конечных приложений GNUnet предоставляет API для языка C и биндинги для других языков программирования. Для упрощения разработки вместо потоков предлагается использовать циклы обработки событий (event loop) и процессы.
GNUnet
GNUnet — это одноранговая компьютерная сеть,гарантирующая анонимность , не использующая централизованную службу или другую надежную службу. Первая реализация над сетевым уровнем обеспечиваетанонимный и устойчивый к цензуре совместный доступ к файлам . GNUnet использует простую систему, использующуюэкономическую модель распределения ресурсов, основанную на избытке. В узлах Gnunet принимают во внимание запросы других узлов относительно имеющихся ресурсов ; узлы, вносящие свой вклад в сеть, получают лучшее обслуживание.
Резюме
- 1 История GNUnet
- 2 Как работает GnuNet
- 2.1 Как работают приложения
- 2.2 Протоколы связи
- 2.2.1 Одноранговый протокол
- 2.2.2 Сообщать о своем существовании в сети
- 2.2.3 Установить соединение
- 2.2.4 Обмен сообщениями
- 2.2.4.1 Другие сообщения ядра
- 2.2.6.1 UDP, TCP и HTTP
- 2.2.6.2 SMTP
- 2.2.6.3 Другие протоколы
- 4.1 Примечания
- 4.2 Ссылки
- 5.1 Связанные статьи
- 5.2 Внешние ссылки
История GNUnet
GNUnet был запущен в конце 2001 года с набором новых технических идей из академической публикации для управления безопасными одноранговыми сетями . Эти идеи включают кодирование для устойчивого к цензуре совместного использования (ERCS) и новый протокол для анонимной маршрутизации (пробел). В начале проекта GNUnet были изучены существующие системы (в то время, в частности, Freenet и mnet ), чтобы установить отправную точку. Однако был сделан вывод, что предполагаемая система слишком далека от существующих кодексов, чтобы ее можно было построить на основе любого из них.
Разработчики GNUnet стремились создать хорошую общую инфраструктуру для разработки новых одноранговых протоколов. Вот почему он был разработан так, чтобы его можно было легко расширять для интеграции новых одноранговых приложений или добавления альтернативных транспортных уровней в базовую систему.
Проект продолжает развиваться с точки зрения технических идей и идей реализации, часто путем обсуждения с разработчиками аналогичных проектов. Пожалуй, самый известный из этих проектов — Tor .
Тем не менее GNUnet остается в стадии бета-тестирования . Однако в конце 2011 года были внесены серьезные изменения, в частности, с поддержкой многопроцессорных архитектур благодаря супервизору ARM, который позволяет каждому процессу в GNUnet функционировать отдельно, как в операционной системе. По этому поводу были анонсированы и другие новые функции, такие как использование туннелей VPN, которые теперь могут инкапсулировать трафик в протоколе HTTPS и работать с топологией ячеистой сети .Как работает GnuNet
GnuNet — это анонимная P2P- сеть . На каждом узле сети запускается ядро GnuNET: gnunetd. Gnunetd отвечает за отправку и получение ( зашифрованных ) сообщений другим партнерам . Он также отвечает за распределение полосы пропускания и планирование отправки сообщений. Наконец, последняя функция ядра — загрузка программных модулей.
Gnunetd больше ничего не делает. Приложения (например, совместное использование файлов) построены на основе ядра. Таким образом, последний не имеет понятия, например, об обмене файлами.Как работают приложения
GNUnet делит приложения на две основные части.
- Первая часть состоит из сервисов приложений. Служба (или модуль) — это динамическая библиотека, которая привита к ядру. Обычно модуль определяет одну функцию, вызываемую при запуске ядра. Эта функция регистрирует другие функции для обработки определенных одноранговых сообщений. Соответствующая функция будет вызываться каждый раз, когда будет получено одноранговое сообщение с правильным идентификатором. Например, приложение общего доступа к файлам (FS) использует службу GAP для маршрутизации и службу sqstore для базы данных. Другой пример службы — служба RPC (удаленный вызов процедур), которая помогает повысить надежность сетевого уровня.
- Вторая часть приложения вызывается пользователем и предоставляет интерфейс для службы. Идея состоит в том, что пользователь запускает совершенно отличную от ядра gnunetd программу (например, gnunet-gtk) для доступа к нужной службе. Взаимодействие с первой частью осуществляется через локальное TCP- соединение (поэтому является надежным).
Протоколы связи
Работа GnuNet требует использования протоколов связи в трех различных контекстах. Одноранговый протокол определяет, как узлы сети обмениваются информацией. Протокол клиент-сервер позволяет пользователю общаться с демоном gnunetd на его машине (через клиентов gnunet). Наконец, третье семейство протоколов используется транспортным уровнем и служит для инкапсуляции одноранговых сообщений.
Одноранговый протокол
Этот протокол является основой сети GNUnet. Он определяет 7 различных сообщений (HELLO, SETKEY, PING, PONG, FRAGMENT, NOISE, HANGUP), которые должны поддерживаться всеми узлами. В общем, не все эти сообщения реализуются самим ядром, а скорее внутренними служебными плагинами. Однако загрузка этих служб не является обязательной (ядро загружает их автоматически при запуске).
Сообщите о его наличии в сети
Когда хост прибывает в сеть, чтобы сообщить о своем существовании, он сначала отправляет HELLO любому другому хосту, чтобы проинформировать их о своем существовании в сети. Действительно, пакет HELLO используется для распространения информации об узлах, участвующих в сети GNUnet. Каждый узел GNUnet идентифицируется своим открытым ключом K ( 2048-битный ключ RSA ).
Пакет HELLO — это способ для узлов распространять открытые ключи других узлов. Кроме того, идентификатор узла связан с адресом. Как указывается адрес, зависит от используемого основного транспортного механизма. Узлы GNUnet могут иметь несколько адресов и изменять их в любое время, например, если адрес динамически назначается с помощью DHCP . Сообщение HELLO используется для уведомления других хостов об изменении адреса. Этот адрес подписан закрытым ключом узла, чтобы избежать распространения поддельных адресов в сети.
Принимающий хост HELLO возвращает PING, чтобы подтвердить, что он доступен. Затем получатель PING всегда отправляет обратно PONG для подтверждения получения. Цель этого пинг-понга — предотвратить отправку хостами действительных и подписанных сообщений HELLO с IP- адресами не участвующих машин. GNUnet защищает себя от атак этого типа, отправляя PING предполагаемому хосту, и доверяет только полученному PONG. Таким образом, злонамеренный хост, который отправляет фальшивые сообщения HELLO, потерпит неудачу в своей попытке обмануть GNUnet, пытаясь повторно подключиться к хостам, которые не связаны.Установить соединение
Сеанс между двумя узлами GNUnet использует симметричное шифрование ( AES- 256) и состоит из пары ключей сеанса длиной 256 бит. Чтобы установить соединение, один узел отправляет другому SETKEY (который содержит сеансовый ключ ) и зашифрованный PING (который содержит только случайное число). SETKEY всегда зашифрованы открытым ключом принимающего узла. Отправитель сеансового ключа не только шифрует ключ открытым ключом получателя, но также подписывает его (и добавляет время создания) своим собственным закрытым ключом. Переданный ключ — это ключ, который отправитель будет использовать в будущем для шифрования своих сообщений. PING зашифрован с помощью переданного сеансового ключа.
Затем другой узел должен ответить другим SETKEY (содержащим его сеансовый ключ), PING (зашифрованным этим же ключом) и PONG (зашифрованным таким же образом, как и PING) в ответ на только что полученный PING. . Наконец, первый узел отвечает на PING, который он только что получил, с помощью PONG, зашифрованного с помощью его сеансового ключа.Сообщение PONG, которое отвечает на сообщение PING, должно содержать такое же случайное число. Назначение случайного числа — сделать так, чтобы противник не смог подстроить ответ PONG на PING.
Когда узел получил ожидаемый PONG, он может начать обмен данными по зашифрованному каналу, используя свой сеансовый ключ.
Обмен сообщениями
Когда соединение установлено, узлы могут обмениваться определенными сообщениями. Пакет, которым обмениваются хосты GNUnet, может содержать столько сообщений, сколько необходимо (предел устанавливается MTU транспортного уровня).
В дополнение к шифрованию сообщения ядро GNUnet добавляет контрольную сумму, информацию о регулировании полосы пропускания и информацию о последовательности, чтобы предотвратить многократную обработку одного и того же сообщения. Шифрование, дешифрование и проверка выполняется ядром GNUnet; ни приложение, ни транспортный код не затронуты.
Срок действия сеанса истекает, если он остается неактивным (обычно через 15 минут)Другие основные сообщения
- ВЕШАТЬ ТРУБКУ
Сообщение о закрытии соединения между 2 узлами. Это не признается и не является необходимым, поскольку сеансы истекают.
Сообщение, используемое для передачи сообщений, размер которых превышает MTU .
Чтобы затруднить анализ трафика для злоумышленников, узлы добавляют шум к коротким пакетам, чтобы все пакеты были одинаковыми по размеру. Некоторые сообщения могут содержать только шум, и принимающий узел должен просто молча их игнорировать.
Клиент-серверный протокол
Это надежное локальное TCP- соединение, потому что оно локальное. Список авторизованных IP- адресов присутствует в файле конфигурации. Он используется для связи между ядром GNUnet (и загруженными им службами) и частью пользовательского интерфейса приложения.
Протоколы транспортного уровня
GNUnet использует специальный тип сообщения (HELLO) для привязки открытых ключей к их текущему адресу. У каждого узла GNUnet должен быть хотя бы один адрес. Транспортные механизмы могут использовать различные формы адресов. Обратите внимание, что узлы могут иметь несколько адресов для различных транспортных механизмов, которые они используют. Транспортный уровень, как и IP- протокол Интернет , имеет семантику наилучшего качества. Нет гарантии, что сообщение будет доставлено правильно.
UDP, TCP и HTTP
UDP , TCP , HTTP , HTTPS протоколы могут быть использованы в качестве транспортного слоя для Gnunet. Для этих протоколов адрес состоит из адреса IPv4 (и / или IPv6) и порта ().
SMTP
SMTP можно использовать для отправки сообщения узлу за маршрутизатором NAT с динамической адресацией, чтобы указать узлу установить TCP- соединение с узлом за пределами виртуальной частной сети. Даже чрезвычайная перегрузка сети для этого первого сообщения не будет проблемой в такой ситуации.
Другие протоколы
Также возможно написать свой собственный транспортный механизм для сети GNUnet. Четыре ранее упомянутые в настоящее время являются единственными доступными.
В GnuNet также есть система имен, альтернативная DNS: система имен GNU .
Некоторые варианты GNUnet
- GNUnet, очевидно, предлагает одноранговое (безопасное) приложение для обмена файлами под названием FS.
- GNUnet предлагает вариант «топологии F2F» для построения сетей типа « друг другу» .
- Помимо использования в качестве интерфейса командной строки , GNUnet предлагает три графических интерфейса :
- gnunet- gtk (чаще всего используется)
- гнунет-предохранитель
- gnunet- qt
Примечания и ссылки
Заметки
- ↑ Слово супервизор используется здесь в смысле терминологии ядра Linux.
Рекомендации
- ↑ (in) Мартин Шанценбах, « Выпущен GNUnet 0.14.1 » , 4 апреля 2021 г. (по состоянию на 19 апреля 2021 г. )
- ↑« уведомление о лицензии, размещенное вверху в одном из исходных файлов репозитория проекта, вероятно, в каждом из его исходных файлов »(по состоянию на 8 июня 2018 г. ) : «GNUnet — бесплатное программное обеспечение: вы можете распространять его и / или изменять в соответствии с условиями Стандартной общественной лицензии GNU Affero, опубликованной Free Software Foundation, либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии. «
- ↑http://gnunet.org/papers.php3?xlang= Французская публикация на базе GNUnet
- ↑ (in) страница руководства, «supervisor (3): Generic Supervisor Behavior» linux.die.net , 2012.
- ↑ (в) «Примечательные улучшения 0.9.0» , gnunet.org , 1 — го декабря 2011.
- ↑http://gnunet.org/download/aff.pdf Протокол маршрутизации GAP
- ↑http://gnunet.org/gnunetgtk.php3 gnunet-gtk
Приложения
Статьи по Теме
- Симметричная криптография
- Асимметричная криптография
- Анонимный P2P
- Сетевой оверлей
- Зуко-треугольник
Аналогичное программное обеспечение:
GNUnet (Русский)
GNUnet — это основа для безопасной и анонимной одноранговой сети, которая не использует никаких централизованных или иным образом доверенных служб. В настоящее время фреймворк предлагает защищенный от цензуры файлообменник, обмен сообщениями, VPN, GNS (децентрализованная версия DNS) и многое другое.
Установка
GNUnet можно установить с помощью пакета gnunet AUR . Последняя экспериментальная версия доступна как gnunet-git AUR .
Начало работы
Конфигурация GNUnet по умолчанию является многопользовательской. Это означает, что системные службы запускаются системным пользователем gnunet , а пользователям, входящим в группу gnunet , разрешено взаимодействовать с демоном — например, искать и загружать файлы.
Поэтому перед использованием GNUnet вы должны убедиться, что добавить своего пользователя в группу gnunet , чтобы получить необходимые разрешения.
Конфигурация
Конфигурация по умолчанию должна работать из коробки в большинстве случаев. Для изменения конфигурации системы обратитесь к /etc/gnunet.conf , а для изменения конфигурации текущего пользователя — к ~/.config/gnunet.conf .
Использование
Вхождение в сеть GNUnet
Start и, возможно, enable службы gnunet .
Проверка сети
Вы можете проверить текущее состояние сети, запустив команду gnunet-peerinfo от имени обычного пользователя.
$ gnunet-peerinfo
Чтобы узнать идентификатор вашего пэра, запустите команду:
$ gnunet-peerinfo -s
Чтобы получить список пиров, с которыми вы непосредственно связаны (они называются «соседями»), запустите команду:
$ gnunet-core
Поиск файла
Используйте gnunet-search для поиска файла по ключевым словам (они не обязательно связаны с именем файла). Например, для поиска файлов, которые были проиндексированы по ключевому слову «commons», запустите:
$ gnunet-search --timeout='10 s' 'commons'.
Без указания таймаута (10 секунд в примере выше) gnunet-search работает вечно, ожидая, пока пользователь нажмет CTRL-C.
Команда gnunet-search имеет опцию —printf для работы с печатным выводом, несколько похожую на опцию -printf утилиты find . Пожалуйста, введите man gnunet-search для получения более подробной информации.
Загрузка
Вывод gnunet-search по умолчанию представляет собой список команд gnunet-download , которые вы можете напрямую скопировать и запустить как обычный пользователь.
Например, используя вывод, сгенерированный gnunet-search ‘commons’ ,
$ gnunet-search 'commons'
#1: gnunet-download -o "Liotard (2017)_ Fablab - a new space for commons based peer production.pdf" gnunet://fs/chk/C6369DRQ3S8RYK1FD5VDE666W2HVEJ5G5GJRX29BH6ZM08CBRWS7FY9326RBJ4G0N8V1RJ2N802KBYZT7RJT2EDK1J9JR2DXK5MTVM0.4SXJCK9NT5XGCZ0YAJ0ETXJJGY3P2SMNZ0Q94N775YEX9SXS2RW5FWRFK4GMBTP668Z3R8QZZ4WSHW1KG1AVQ5VFC1VF5T3WF57GT58.336423 #2: gnunet-download -o "Rose, Carol (1986)_ The Comedy of the Commons_ Commerce, Custom, and inherently Public Property.pdf" gnunet://fs/chk/TQK3A2C279EJQ50B1TQWFNTPMGQZJJ4JXYTF2D88D03H038TB7SVVSRBT74FMYPNZ47YZSV096PVVZH0TQ3B8KBVBV2H8GN9VAASTJR.CQ7M7843MGPZCV8M26NKH6EB5MBGZAXRWCF39YS668WM6F22D214GSXNTJ4RYGE7XF68VPZM4C19XR48TT4J8WH8S2E00C96Q8K6790.1593230 #3: gnunet-download -o "Hardin, Garett (1968)_ Tragedy of the Commons.pdf" gnunet://fs/chk/Y1FD7D123CEGWDW544YDEP15YA5E7ZD2XRSJBNP0847A5JXMMZEZ0XACGRG42BBBTGKZ0ZCBW0A9T6196Z5N26HA6SP1T8GDAT5H5SG.RN38G25DMYG3TBQJEGWDZT2B84N1JYYJZ8VRJ8HG2G1A4EFD4GH5TZXB0RXV7QEMZBSKWCCEF736FXNH6C5BYKG9DSTV99ETFGC93R0.1520328 .
вы можете запустить,
$ gnunet-download -o "Hardin, Garett (1968)_ Tragedy of the Commons.pdf" gnunet://fs/chk/Y1FD7D123CEGWDW544YDEP15YA5E7ZD2XRSJBNP0847A5JXMMZEZ0XACGRG42BBTGKZ0ZCBW0A9T6196Z5N26HA6SP1T8GDAT5H5SG. RN38G25DMYG3TBQJEGWDZT2B84N1JYYJZ8VRJ8HG2G1A4EFD4GH5TZXB0RXV7QEMZBSKWCCEF736FXNH6C5BYKG9DSTV99ETFGC93R0.1520328
которая загрузит Hardin, Garett (1968)_ Tragedy of the Commons.pdf в текущий каталог.
Монтирование удаленного каталога GNUnet без его загрузки
Был разработан модуль gnunet-fuse AUR для монтирования удаленных каталогов из сети GNUnet. С помощью gnunet-fuse каталоги, опубликованные в сети GNUnet, могут быть смонтированы как файловые системы только для чтения, и доступ к ним осуществляется с помощью обычных файловых операций. В отличие от рекурсивной загрузки каталога через gnunet-download , преимущество этого метода в том, что файлы загружаются по требованию. Будут загружены только те файлы (или каталоги), к которым вы обращаетесь. Для получения дополнительной информации установите модуль и введите man gnunet-fuse .
Выгрузка
Публикация файла в файлообменной сети GNUnet предполагает выбор ключевых слов, которые впоследствии могут быть использованы другими людьми для поиска файла.
Ключевые слова не являются строго обязательными, но они рекомендуются. Это связано с тем, что в GNUnet разрешен поиск не по имени файла, а по ключевым словам. Библиотека libextractor , которая является зависимой частью GNUnet, может автоматически извлекать ключевые слова из файла, но вы можете захотеть ввести свои собственные ключевые слова.
В следующем примере мы используем ключевые слова «commons» и «state» для публикации файла с именем ostrom.pdf .
$ gnunet-publish -k 'commons' -k 'state' ostrom.pdf
Теперь пользователи GNUnet могут найти этот файл с помощью команды gnunet-search .
$ gnunet-search 'commons'
. #1: gnunet-download -o "ostrom.pdf" gnunet://fs/chk/M57S.
Чтобы получить список всех файлов, которые в настоящее время опубликованы, запустите gnunet-fs -i . Если позже вы захотите прекратить совместное использование файла, вы можете использовать gnunet-unindex filename (в нашем примере gnunet-unindex ‘ostrom.pdf’ ).
После публикации файла невозможно получить ключевые слова, по которым файл был проиндексирован (т.е. обратный поиск). Однако всегда можно добавить к нему дополнительные ключевые слова.
Обратите внимание, что может пройти некоторое время (до нескольких часов), пока ваши коллеги смогут увидеть ваши свежезагруженные файлы.
Warning: Отмена публикации файла остановит только текущую машину от обмена файлом, но не удалит файл из сети GNUnet — что по замыслу невозможно — так как другие люди могли скачать файл и поделиться им самостоятельно. В любом случае gnunet-publish следует считать необратимым действием
Команда gnunet-publish предлагает опцию — -n или эквивалентно —noindex — для публикации файла без его индексирования. При ее использовании GNUnet выполнит полную вставку и сохранит весь файл в зашифрованном виде в базе данных GNUnet.
Эта опция была создана с целью избежать того, чтобы тот, кто имеет физический доступ к компьютеру, на котором работает GNUnet, узнал, какие файлы в настоящее время публикуются, в случае цензурированных файлов в странах с сильной цензурой. Файлы, опубликованные с опцией —noindex , будут отображаться как куски, загруженные из сети, и как таковые не могут быть неопубликованы/неиндексированы (они никогда не были проиндексированы в первую очередь); однако всегда можно указать низкий приоритет содержимого при публикации ( —prio ) и сказать GNUnet, что содержимое, которое будет опубликовано, может быть легко потеряно, когда база данных станет полной.
Изменение и удаление индексированных файлов
- Когда вы изменяете файл, URI файла изменяется. Поэтому GNUnet считает, что это совершенно другой файл, и индексированный файл будет считаться отсутствующим. Поэтому сначала убедитесь, что исходный файл не проиндексирован (с помощью команды gnunet-unindex ), измените файл, а затем проиндексируйте новый файл, чтобы сделать его доступным через сеть.
- Если вы хотите удалить файл из файловой системы, то сначала нужно снять с него индексацию.
- Если вы заранее знаете, что опубликованный файл, скорее всего, будет нуждаться в обновлении чаще или реже, смотрите #Публикация обновляемых файлов.
Загрузка + обмен
Файлообменная сеть GNUnet представляет собой DHT (см. Wikipedia:Distributed hash table). В качестве пиров в DHT пользователи хранят на своем диске фрагменты различных файлов, даже из файлов, которые они не скачивают или уже скачали. Какие файлы хранятся, зависит от метрики/алгоритма расстояния DHT.
Технически, если файл не был полностью скачан, хранятся только его части. Они хранятся в кэше (обычно в /var/lib/gnunet/.local/share/gnunet ). Если DHT-запрос обращается к пиру для получения одной из кэшированных частей, пир предоставит ее. База данных, используемая для хранения блоков совместного использования файлов, поддерживается в ограниченном объеме (ниже настраиваемой квоты), и все кэшированные части могут истечь, чтобы освободить место для новых файлов.
Если кто-то поделится файлом в сети GNUnet, распределенные части этого файла останутся в кэше сети на некоторое время, и файл останется доступным, даже если тот, кто поделился им, уйдет в офлайн. Но если первоначальный издатель пропал, и никто больше не поделился файлом явно (с помощью gnunet-publish ), файл в конце концов станет недоступным, поскольку кэш пиров истечет или пиры уйдут в оффлайн.
Единственный способ гарантировать, что файл сохраняется в сети GNUnet, — это повторно опубликовать его явно после загрузки (с помощью gnunet-publish ) и позволить машине, которая публикует файл, регулярно посещать сеть.
Публикация файла после загрузки всегда будет генерировать тот же URI, по которому файл был загружен ( gnunet://fs/chk/Y1FD. в примере ниже), независимо от ключевых слов, выбранных для повторной публикации:
$ gnunet-download -o 'Hardin, Garett (1968)_ Tragedy of the Commons.pdf' gnunet://fs/chk/Y1FD.
100% [============================================================] Загрузка `Hardin, Garett (1968)_ Tragedy of the Commons.pdf' выполнена (160 b/s).
$ gnunet-publish -k 'tragedy' 'Hardin, Garett (1968)_ Tragedy of the Commons.pdf'
Публикация `/srv/filesharing/gnunet/Hardin, Garett (1968)_ Tragedy of the Commons.pdf' выполнена. URI - `gnunet://fs/chk/Y1FD.
Общение с другими пользователями GNUnet
Для общения с пользователями GNUnet доступна утилита gnunet-messenger , для которой gnunet.service user unit должен быть start» (возможно, вместе с системным блоком gnunet.service — см. #Запуск демона от имени текущего пользователя в многопользовательской установке). Например, чтобы войти в комнату «miscellanea», используя «alice» в качестве псевдонима, запустите
$ gnunet-messenger -e alice -r miscellanea
* Добро пожаловать в мессенджер, 'alice'! * Вы пытаетесь открыть комнату. * Вы присоединились к комнате. [EHDA8T] * 'anonymous' открыл комнату: 2ABN944E16FTWFMOKTMQ5JMPQ233YSPBKC47XR2DHSPQCQ8GYK80 [EHDA8T] * 'anonymous' переименован в 'alice'
VPN
GNUnet предоставляет VPN, которая может быть использована для совместного использования вашего интернет-соединения (да, это может быть опасно, как и запуск узла выхода Tor), или для предоставления доступа к службам на вашем хосте (это должно быть менее опасно, при условии, что эти службы безопасны).
Информацию о том, как настроить VPN с помощью GNUnet, см. на сайте https://gnunet.org/en/use.html#vpn.
Служба имен GNU (GNS)
Служба имен GNU (GNS) — это полностью децентрализованная альтернатива Domain Name System (DNS), которая не должна страдать теми же серьезными недостатками безопасности, что и последняя (см. Wikipedia:Domain Name System#Security issues).
Экосистема приложений
GNUnet GTK
GNUnet GTK — это набор графических интерфейсов для фреймворка GNUnet. Он поставляет следующие GTK приложения:
- gnunet-conversation-gtk
- gnunet-fs-gtk
- gnunet-namestore-gtk
- gnunet-peerinfo-gtk
- gnunet-setup
- gnunet-statistics-gtk
Для установки GNUnet GTK загрузите пакет gnunet-gtk AUR .
Messenger GTK
В настоящее время разрабатывается несколько графических пользовательских интерфейсов для общения в сети GNUnet. Один из них — Messenger GTK ( messenger-gtk AUR , или messenger-gtk-git AUR для версии разработки), удобный для мобильных устройств GTK графический пользовательский интерфейс для общения с пользователями GNUnet. См. также Cadet GTK ( cadet-gtk AUR ), предыдущее приложение для чата, написанное теми же авторами.
Веб-интерфейс пользователя
Веб-интерфейс для GNUnet существует и доступен как gnunet-webui-git AUR .
re:claimID
re:claimID — это децентрализованный сервис Identity Provider (IdP), построенный на базе системы имен GNU. Он позволяет пользователям безопасно обмениваться личной информацией с веб-сайтами, используя стандартизированные протоколы (OpenID Connect).
Для пользователей re:claimID предлагает расширение для Firefox и расширение для Chromium для управления идентификацией re:claimID в браузере (необходимо установить пакет gnunet AUR ).
После установки расширения можно будет добавить новую личность в локальный экземпляр re:claimID и добавить к ней некоторые атрибуты, посетив сайт https://ui.reclaim/ (ссылка не будет работать без установленного расширения).
За дополнительной информацией обращайтесь к руководству.
GNU Taler
GNU Taler — это система микротранзакций и электронных платежей, построенная поверх GNUnet. В отличие от других распределенных платежных систем Taler основана не на блокчейне, а на слепых подписях.
GNU Anastasis
GNU Anastasis — это протокол и реализация, позволяющие пользователям надежно хранить основные секреты в открытом наборе провайдеров условного депонирования и восстанавливать эти секреты в случае потери их оригинальных копий. Anastasis доступен на AUR ( anastasis AUR и anastasis-gtk AUR ). За дополнительной информацией обращайтесь к сайтам https://www.gnu.org/software/anastasis/ и https://anastasis.lu/.
Устранение неполадок
GNUnet не удается опубликовать файлы
Распространенной ошибкой для тех, кто не понимает, как работают службы GNUnet, является попытка опубликовать файлы, расположенные в домашнем каталоге (или в его подкаталогах). Проблема в том, что системный пользователь gnunet (который запускает службу GNUnet) обычно не имеет доступа к домашним каталогам других пользователей.
Простым решением является создание общего каталога, где права на запись имеют только пользователи, входящие в группу gnunet , и использование его для размещения файлов, которые будут опубликованы. Например, /srv/filesharing/gnunet может быть хорошим выбором:
# install -dm775 -g gnunet -o gnunet /srv/filesharing/gnunet
Каждый пользователь, входящий в группу gnunet , может затем создать ссылку на него в своем домашнем каталоге,
$ ln -s /srv/filesharing/gnunet ~/Publishing
которая может быть разыменована gnunet-publish :
$ (cd ~/Publishing && gnunet-publish -k commons ostrom.pdf) && gnunet-fs -i
/srv/filesharing/gnunet/ostrom.pdf
Низкая пропускная способность
Для совместного использования файлов рекомендуется увеличить ограничения пропускной способности GNUnet по сравнению с довольно низкими значениями по умолчанию. Приведенный ниже пример устанавливает ограничения WAN и LAN на unlimited .
$ gnunet-config -s ats -o WAN_QUOTA_IN -V unlimited $ gnunet-config -s ats -o WAN_QUOTA_OUT -V unlimited $ gnunet-config -s ats -o LAN_QUOTA_IN -V неограниченно $ gnunet-config -s ats -o LAN_QUOTA_OUT -V unlimited
/var/lib/gnunet/ становится слишком большим
Кэш GNUnet ограничен и не может расти бесконечно. Однако квота, зарезервированная для него по умолчанию, не маленькая (в настоящее время 5 ГБ). Чтобы уменьшить это число, вы должны присвоить желаемое значение ключу QUOTA в секции datastore раздела /etc/gnunet.conf .
/etc/gnunet.conf
. [datastore] . КВОТА = 2 ГБ .
/var/lib/gnunet/ остается после деинсталляции
Каталог /var/lib/gnunet/ — это домашний каталог системного пользователя gnunet , который остается после деинсталляции GNUnet. Если вы уверены, что больше никогда не будете использовать GNUnet, запустите:
# userdel -r gnunet # groupdel gnunetdns
Warning: Идентификатор и вся информация о сети, хранящаяся в совокупности у текущего пира, будет уничтожена — это не повлияет на файлы, явно загруженные по другим путям.
Сеть слишком статична
По умолчанию GNUnet загружает себя, используя файл hostlist , загруженный из интернета (обычный https ) каждый раз, когда подключается к сети. Если вы хотите указать ему изучать и запоминать списки хостов, предоставленные другими пользователями, вам нужно добавить опцию -e к ключу OPTIONS в разделе hostlist в /etc/gnunet.conf . Также доступны дополнительные опции.
/etc/gnunet.conf
. [hostlist] . # Опции: # -p : предоставить список хостов в качестве серверов списка хостов. # -b : загрузка с использованием настроенных серверов списка хостов # -e : включить обучение рекламируемых хостлистов # -a : рекламировать список хостов другим серверам OPTIONS = -b -e -a -p .
Советы и рекомендации
Запуск демона от имени текущего пользователя в многопользовательской установке
После свежей установки отсутствует файл конфигурации пользователя. В многопользовательской установке он используется практически только (при необходимости) для start и stop gnunet.service user unit во время работы системного демона, поэтому обычно достаточно создать минимальный конфигурационный файл, содержащий только:
~/.config/gnunet.conf
[arm] START_SYSTEM_SERVICES = NO START_USER_SERVICES = YES
Если не установить START_SYSTEM_SERVICES в NO , запуск демона от имени текущего пользователя при запущенном системном демоне приведет к дублированию процессов.
Более подробную информацию смотрите в Многопользовательская настройка, в руководстве.
Кнопка для включения и выключения GNUnet
Если вы используете GNOME, вы можете установить расширение оболочки Systemd Manager ( gnome-shell-extension-systemd-manager AUR ) и добавить в него GNUnet:
$ dconf write /org/gnome/shell/extensions/systemd-manager/systemd \ ''['\'''\'','\'''\'']'.
(После установки расширения вам может потребоваться перезапустить сессию).
Однопользовательская установка
Пир GNUnet может быть запущен и от текущего пользователя без запуска системной службы gnunet . Для однопользовательской установки убедитесь, что START_SYSTEM_SERVICES и START_USER_SERVICES установлены в YES в ~/.config/gnunet.conf :
~/.config/gnunet.conf
[arm] START_SYSTEM_SERVICES = YES START_USER_SERVICES = YES
Чтобы запустить пир от имени текущего пользователя, запустите gnunet.service user unit. Чтобы остановить пир, запущенный от имени текущего пользователя, stop блок пользователя gnunet.service .
Публикация обновляемых файлов
Существует возможность публикации «обновляемых» файлов (т.е. файлов, для которых вы можете захотеть выпустить другую версию в будущем, рекламируя, что это тот же самый файл — только обновленный — а не другой). Чтобы выпустить обновляемый файл, необходимо создать «я» и использовать его для подписи файла. Это единственный способ гарантировать, что злонамеренная сторона не сможет поставлять поддельные обновления.
Для создания ego доступна утилита gnunet-identity , для которой gnunet.service user unit должна быть start» (возможно, вместе с системной единицей gnunet.service — см. #Запуск демона от имени текущего пользователя в многопользовательской установке). Например, чтобы создать эго с именем «caroline», запустите пользовательский блок gnunet и запустите:
$ gnunet-identity -C caroline
Примечание: Если позже вы решите стереть это эго, вы можете запустить gnunet-identity -D caroline .
Теперь, когда вы создали эго, вам нужно указать строку, которая идентифицирует текущий релиз файла (опция -t ), и уже сейчас строку, которая будет идентифицировать вашу планируемую следующую версию (опция -N ) — последнюю вам придется запомнить. Для обеих строк возможно любое содержание.
$ gnunet-publish -P caroline -t 'diary version 1' -N 'diary version 2' -k 'diary' until-2020/my_diary.md
Публикация `/srv/filesharing/gnunet/until-2020/my_diary.md' выполнена. URI - `gnunet://fs/chk/AF26. '. URI пространства имен - `gnunet://fs/sks/V3TK. /diary version 1'.
Когда обновление будет готово, вам придется использовать ту же строку, которую вы выбрали для него ранее («дневник версии 2» в нашем примере), возможно, сопроводив ее другим именем для следующего обновления (если это применимо):
$ gnunet-publish -P caroline -t 'diary version 2' -N 'diary version 3' -k 'diary' until-2021/my_diary.md
Публикация `/srv/filesharing/gnunet/until-2021/my_diary.md' выполнена. URI - `gnunet://fs/chk/5Y7V. '. URI пространства имен - `gnunet://fs/sks/V3TK. /diary version 2'.
Если вы решили, что обновление будет последним, опустите опцию -N (не позволит никаких последующих обновлений).
Обратите внимание, что обновление с помощью GNUnet не сделает старое содержимое недоступным, GNUnet просто позволяет издателю указать пользователям на более свежие версии.
Запуск и остановка GNUnet без systemd
GNUnet поставляется с собственной системой управления демонами, Automatic Restart Manager (ограничен службами GNUnet).
Для запуска системных служб вручную без systemd запустите утилиту gnunet-arm от имени пользователя gnunet :
$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -s
Чтобы завершить работу системных служб вручную без systemd, запустите:
$ sudo -u gnunet gnunet-arm -c /etc/gnunet.conf -e
Чтобы запустить пользовательские службы вручную без systemd, запустите утилиту gnunet-arm от имени текущего пользователя:
$ gnunet-arm -c ~/.config/gnunet.conf -s
Чтобы завершить пользовательские службы вручную без systemd, запустите:
$ gnunet-arm -c ~/.config/gnunet.conf -e
Retrieved from «https://wiki.archlinux.org/index.php?title=GNUnet_(Русский)&oldid=784716»
- Anonymity networks (Русский)
- File sharing (Русский)
- Virtual Private Network (Русский)
Как пользоваться этим вашим gnunet?
Захотел попробовать gnunet, поставил, появилась служба gnunet,
при этом ни каких ярлыков в «Application» не появилось,
набираю gnunet в терминале, пишет что нет такой команды.Что с ним делать то дальше, пока он для меня абсолютно
бесполезен, только процессорное время зря прожирает.
torvn77 ★★★★★
02.04.16 13:11:18 MSKА смысл? Не знаю, во фринете хоть мультики закопирайченные в пендостане есть, которые удивительным образом (на самом деле нет) невозможно найти ни на одном трекере, тем более в таком хорошем качестве, а тут? Зачем?
anonymous
( 02.04.16 13:24:47 MSK )я не знаю. Попробуй man
Reedych★☆
( 02.04.16 23:11:59 MSK )
Последнее исправление: Reedych 02.04.16 23:12:45 MSK (всего исправлений: 1)Ответ на: комментарий от Reedych 02.04.16 23:11:59 MSK

По man пишет что по слову gnunet мануальника нету.