Червоточина, что такое Ubuntu
Обновлено: 21.11.2024
В этом руководстве мы узнаем, как установить magic-wormhole в Ubuntu 20.04.
Что такое волшебная червоточина
Magic Wormhole предоставляет инструмент командной строки и библиотеку Python под названием «червоточина», которая позволяет очень легко переносить короткие фрагменты текста или файлы или каталоги произвольного размера с одного компьютера на другой. . Две конечные точки идентифицируются с помощью идентичных «кодов червоточины»: обычно машина-отправитель генерирует и отображает код, который затем должен быть введен на машине-получателе. Коды короткие и легко произносимые человеком, с использованием фонетически отличного списка слов. Принимающая сторона предлагает завершение кодовых слов с помощью табуляции, поэтому обычно необходимо ввести только несколько символов. Коды червоточин одноразовые, их не нужно запоминать.
Есть три способа установить magic-wormhole в Ubuntu 20.04. Мы можем использовать apt-get, apt и aptitude. В следующих разделах мы опишем каждый метод. Вы можете выбрать один из них.
Установить magic-wormhole с помощью apt-get
Обновите базу данных apt с помощью apt-get, используя следующую команду.
После обновления базы данных apt мы можем установить magic-wormhole с помощью apt-get, выполнив следующую команду:
Установить magic-wormhole с помощью apt
Обновите базу данных apt с помощью следующей команды.
После обновления базы данных apt мы можем установить magic-wormhole с помощью apt, выполнив следующую команду:
Установить magic-wormhole с помощью aptitude
Если вы хотите использовать этот метод, вам может потребоваться сначала установить aptitude, так как aptitude обычно не устанавливается по умолчанию в Ubuntu. Обновите базу данных apt с помощью aptitude с помощью следующей команды.
После обновления базы данных apt мы можем установить magic-wormhole с помощью aptitude, выполнив следующую команду:
Как удалить magic-wormhole в Ubuntu 20.04
Чтобы удалить только пакет magic-wormhole, мы можем использовать следующую команду:
Удалить magic-wormhole и его зависимости
Чтобы удалить magic-wormhole и его зависимости, которые больше не нужны Ubuntu 20.04, мы можем использовать следующую команду:
Удалить конфигурации и данные magic-wormhole
Чтобы удалить конфигурацию и данные magic-wormhole из Ubuntu 20.04, мы можем использовать следующую команду:
Удалить конфигурацию, данные и все зависимости от magic-wormhole
Мы можем использовать следующую команду для удаления конфигураций magic-wormhole, данных и всех их зависимостей, мы можем использовать следующую команду:
Ссылки
Обзор
В этом руководстве мы узнаем, как установить magic-wormhole в Ubuntu 20.04 с помощью различных инструментов управления пакетами, таких как apt, apt-get и aptitude.
Этот пакет предоставляет библиотеку и инструмент командной строки под названием wormhole , который позволяет переносить файлы и каталоги произвольного размера (или короткие фрагменты текста) с одного компьютера на другой. Две конечные точки идентифицируются с помощью идентичных «кодов червоточины»: обычно машина-отправитель генерирует и отображает код, который затем необходимо ввести на машине-получателе.
Коды короткие и легко произносимые человеком, с использованием фонетически четкого списка слов. Принимающая сторона предлагает завершение кодовых слов с помощью табуляции, поэтому обычно необходимо ввести только несколько символов. Коды червоточин одноразовые, их не нужно запоминать.
Пример¶
Установка¶
Самый простой способ установить magic-wormhole — использовать упакованную версию из вашей операционной системы. Если его нет или вы хотите участвовать в разработке, вы можете установить из исходников.
MacOS / OS-X¶
Установите Homebrew, затем запустите brew install magic-wormhole .
Линукс (Debian/Ubuntu)¶
Magic-wormhole доступен с apt в Debian 9 «stretch», Ubuntu 17.04 «zesty» и более поздних версиях:
Linux (Fedora)¶
Линукс (openSUSE)¶
Linux (пакет Snap)¶
Многие дистрибутивы Linux (включая Ubuntu) могут устанавливать пакеты «Snap». Magic-wormhole доступен через сторонний пакет (опубликованный группой snapcrafters):
Установить из исходного кода¶
Magic-wormhole – это пакет Python, который можно установить обычными способами. Основная идея состоит в том, чтобы сделать pip install magic-wormhole , однако, чтобы избежать изменения системных библиотек python, вы, вероятно, захотите поместить его в «пользовательскую» среду (поместив исполняемый файл wormhole в ~/.local/bin/wormhole ), как это :
или поместите его в виртуальную среду, например:
Затем вы можете запустить venv/bin/wormhole без предварительной активации virtualenv, т.е. вы можете сделать символическую ссылку из ~/bin/wormhole в . /path/to/venv/bin/wormhole , а затем обычная отправка через червоточину найдет его в вашем $PATH .
Вероятно, вы не хотите использовать sudo при запуске pip . Это может привести к конфликтам с системными библиотеками Python.
В OS X вам может потребоваться предварительно установить pip и запустить $ xcode-select --install для получения GCC, который необходим для компиляции криптографической библиотеки libsodium в процессе установки.
В системах Debian/Ubuntu может потребоваться сначала установить некоторые вспомогательные библиотеки:
$ sudo apt-get install python-pip build-essential python-dev libffi-dev libssl-dev
В Linux, если вы получаете такие ошибки, как фатальная ошибка: натрия.h: Нет такого файла или каталога, либо используйте SODIUM_INSTALL=bunded pip install magic-wormhole, либо попробуйте установить пакет libsodium-dev / libsodium-devel. Они работают над ошибкой в pynacl, которая сбивается, когда установлена среда выполнения libsodium (например, libsodium13 ), но не пакет разработки.
В Windows python2 может работать лучше, чем python3. В старых системах может потребоваться $ pip install --upgrade pip, чтобы получить версию, которая может скомпилировать все зависимости. Большинство зависимостей публикуются в виде двоичных файлов, но если ваша система не может их найти, ей придется их скомпилировать, для чего может потребоваться Microsoft Visual C++ 9.0.
Мотивация¶
- Перемещение файла на компьютер друга, когда люди могут разговаривать друг с другом (напрямую), а компьютеры не могут
- Доставка правильно случайного пароля новому пользователю по телефону
- Предоставление открытого ключа SSH для будущего входа в систему
Копирование файлов на USB-накопитель требует физической близости и неудобно для передачи долговременных секретов, поскольку флэш-память трудно стереть. Копирование файлов с помощью ssh/scp — это нормально, но требует предварительной подготовки и учетной записи на целевой машине, и как вы загружаете учетную запись? Копирование файлов по электронной почте сначала требует расшифровки адреса электронной почты в обратном направлении, и это еще хуже для секретов, поскольку электронная почта не зашифрована. Копирование файлов через зашифрованную электронную почту требует начальной загрузки ключа GPG, а также адреса электронной почты. Копирование файлов через Dropbox не защищено от сервера Dropbox и приводит к большому URL-адресу, который необходимо транскрибировать. Использование средства сокращения URL-адресов добавляет дополнительный шаг, раскрывает полный URL-адрес службе сокращения и оставляет короткий URL-адрес, который могут угадать посторонние.
Многие распространенные варианты использования начинаются с канала связи, опосредованного человеком, такого как IRC, IM, электронная почта, телефонный звонок или беседа лицом к лицу. Некоторые из них в основном секретны или «достаточно секретны», чтобы действовать до тех пор, пока код не будет доставлен и использован. Если этого недостаточно, пользователи могут включить дополнительную проверку, которая не зависит от секретности канала.
Понятие «волшебная червоточина» происходит от образа двух далеких волшебников, одновременно произносящих одну и ту же зачарованную фразу и вызывающих мистическую связь между ними. Затем волшебники бросают книги в червоточину, и они выпадают с другой стороны. Безопасная передача файлов должна быть такой простой.
Дизайн¶
Инструмент червоточины использует PAKE «обмен ключами с аутентификацией по паролю», семейство криптографических алгоритмов, использующих короткий пароль с низкой энтропией для создания надежного общего ключа с высокой энтропией. Затем этот ключ можно использовать для шифрования данных. червоточина использует алгоритм SPAKE2 благодаря Abdalla и Pointcheval1.
PAKE эффективно противопоставляет взаимодействие офлайн-атакам. Единственный способ для сетевого злоумышленника узнать общий ключ — выполнить атаку «человек посередине» во время первоначальной попытки подключения и правильно угадать код, используемый обеими сторонами. Их шанс сделать это обратно пропорционален энтропии кода червоточины. По умолчанию используется 16-битный код (используйте –code-length=, чтобы изменить это), поэтому при каждом использовании инструмента злоумышленник получает шанс на успех 1 из 65536. Таким образом, пользователи могут ожидать увидеть много сообщений об ошибках, прежде чем у злоумышленника появятся разумные шансы на успех.
Время¶
В программе нет встроенных тайм-аутов, однако предполагается, что оба клиента будут запускаться с разницей в час или около того. Это делает инструмент наиболее полезным для людей, которые уже разговаривают в режиме реального времени и хотят перейти на безопасное соединение. Оба клиента должны оставаться запущенными до завершения передачи.
Реле¶
Для библиотеки червоточин требуется «Сервер почтовых ящиков» (также известный как «Сервер рандеву»): простой ретранслятор на основе WebSocket, который доставляет сообщения от одного клиента к другому. Это позволяет кодам червоточин не указывать IP-адреса и номера портов. URL-адрес общедоступного сервера встроен в библиотеку для использования по умолчанию и будет свободно доступен до тех пор, пока объем или злоупотребление не сделают его невозможным для поддержки. Приложения, которые хотят большей надежности, могут легко запускать собственное реле и настраивать своих клиентов для его использования. Код для сервера почтовых ящиков находится в отдельном пакете с именем magic-wormhole-mailbox-server и имеет документацию здесь. Оба клиента должны использовать один и тот же сервер почтовых ящиков.Значение по умолчанию можно изменить с помощью параметра --relay-url.
Команды передачи файлов также используют «Транзитный ретранслятор», который представляет собой еще один простой сервер, который склеивает два входящих TCP-соединения и передает данные друг другу (моральный эквивалент сервера TURN). Режим отправки файла через червоточину разделяет IP-адреса каждого клиента с другим (внутри зашифрованного сообщения), и оба клиента сначала пытаются подключиться напрямую. Если это не удается, они возвращаются к использованию транзитного ретранслятора. Как и прежде, хост/порт общедоступного сервера встроен в библиотеку, и его должно быть достаточно для обработки умеренного трафика. Код для Transit Relay предоставляется в отдельном пакете magic-wormhole-transit-relay с инструкциями здесь. Клиенты обмениваются информацией о транзитной ретрансляции во время согласования соединения, поэтому их можно без проблем настроить на использование других. Используйте параметр --transit-helper, чтобы переопределить значение по умолчанию.
Протокол включает средства для доставки уведомлений и сообщений об ошибках клиентам: если какой-либо из ретрансляторов должен быть отключен, эти каналы будут использоваться для предоставления информации об альтернативах.
Инструмент командной строки¶
- червоточина отправить [args] --text TEXT
- червоточина отправляет [args] FILENAME
- червоточина отправляет [аргументы] DIRNAME
- червоточина получает [аргументы]
Обе команды принимают дополнительные аргументы, влияющие на их поведение:
- --code-length WORDS: используйте больше или меньше двух слов для кода
- --verify : вывести (и попросить пользователя сравнить) дополнительную строку подтверждения
Библиотека¶
Модуль червоточины позволяет другим приложениям использовать эти защищенные кодом каналы. Это включает в себя поддержку Twisted и (в будущем) также будет включать поддержку блокировки/синхронизации. Подробнее см. docs/api.md.
Инструменты передачи файлов используют второй модуль с именем wormhole.transit , который обеспечивает зашифрованный канал записи. Он знает, как использовать Transit Relay, а также прямые соединения, и пытается использовать их все параллельно. TransitSender и TransitReceiver отличаются друг от друга, хотя после установления соединения данные могут передаваться в любом направлении. Все данные шифруются (с использованием «секретного ящика» nacl/libsodium) с использованием ключа, полученного на этапе PAKE. Примеры см. в src/wormhole/cli/cmd_send.py.
Разработка¶
Чтобы настроить Magic Wormhole для разработки, сначала необходимо установить virtualenv.
После того, как вы это сделаете, git клонируйте репозиторий, перейдите в корень репозитория и запустите:
Теперь ваша виртуальная среда активирована. Вы захотите повторно запускать исходный код venv/bin/activate для каждого нового сеанса терминала, который вы открываете.
Чтобы установить Magic Wormhole и его зависимости для разработки в вашу виртуальную среду, запустите:
Если вы используете zsh, например, в macOS Catalina или более поздних версиях, вместо этого вам придется запустить pip install -e .'[dev]'.
Пока активна виртуальная среда, запустив червоточину, вы получите версию для разработки.
Выполнение тестов¶
В вашей виртуальной среде пробная версия программы командной строки запустит набор тестов:
Это проверяет весь пакет червоточины. Если вы хотите запустить только тесты для определенного модуля или даже только определенный тест, вы можете вместо этого указать его с помощью стандартной точечной нотации импорта Python, например:
Разработчики также могут просто клонировать исходное дерево и запустить tox для запуска модульных тестов на всех поддерживаемых (и установленных) версиях Python: 2.7, 3.4, 3.5 и 3.6.
Устранение неполадок¶
Время от времени вы можете получать трассировку со следующей ошибкой:
Если это произойдет, снова запустите pip install -e .[dev].
Другое¶
Лицензия, совместимость¶
Эта библиотека выпущена под лицензией MIT, подробности см. в разделе ЛИЦЕНЗИЯ.
Эта библиотека совместима с python 2.7, 3.4 (не только для Windows), 3.5 и 3.6.
В следующей статье мы рассмотрим приложение командной строки под названием Magic Wormhole. Это приложение, основанное на «CLI», с помощью которого мы сможем безопасно отправлять текст, файлы и даже папки (которые будут автоматически сжаты) практически любому человеку с нашего терминала.
Сегодня общеизвестно, что если вы хотите получить большую часть информации быстро и безопасно, рекомендуется использовать командную строку. Приложение, которое нас беспокоит, быстрое и простое в использовании. Не нужно беспокоиться о знаниях, необходимых для использования терминальных программ. Его использование чрезвычайно минималистично и не требует предварительных знаний о протоколах или чем-то подобном.
Логика приложения сводится к тому, чтобы узнать, какой файл мы хотим отправить, и выполнить единственную команду, чтобы продолжить его отправку. При доставке ограничений нет. Документы можно отправлять по отдельности или сжатыми файлами.
Давайте представим очень вероятный сценарий. Мы хотим отправить файл другу, который находится за тысячи миль от нас и подключен к Интернету со своего компьютера. Решение этого возможного случая так же просто, как запустить новое окно терминала, открыть червоточину и, введя пару слов, нажать Enter и дождаться другой стороны.
Ваш друг на другом конце запустит свой терминал, также откроет червоточину и введет код для аутентификации вашего доступа к файлам. После того, как вы ввели код, вам останется только дождаться завершения загрузки на ваш компьютер.
Верно, что в случае с файлами ни в какой промежуточной точке нет места хранения как такового, а отправка находится между двумя задействованными крайностями. Хотя это может быть сквозной сервис, это не так. Точнее, связь в какой-то момент должна проходить через прокси-сервер.
Оглавление
Общие характеристики Magic Wormhole
Magic Wormhole использует PAKE (обмен ключами с аутентификацией по паролю) для шифрования информации, передаваемой между конечными точками. Это приложение использует алгоритм SPAKE2.
Прежде чем я упомянул, что в какой-то момент обмен данными должен управляться сервером. Это будет тот, кто будет отвечать за создание туннеля TCP между концами. Это обеспечит отправку информации.
Для библиотеки Magic Wormhole требуется «RendezvousServer». Это простой ретранслятор на основе WebSocket, который доставляет сообщения от одного клиента к другому. Это позволяет кодам Magic Wormhole обходить IP-адреса и номера портов.
Команды передачи файлов используют "Транзитную ретрансляцию". Это еще один простой сервер, который собирает два входящих соединения TCP и передает данные между ними.
Пользователь, отправляющий файл, должен будет отправить ключ через чат/сообщение/вызов, которые Magic Wormhole сгенерирует принимающему пользователю.
Если кому-то нужно узнать больше о том, насколько безопасным может быть Magic Wormhole или о его функциях, загляните на GitHub, чтобы решить многие вопросы.
Установить Волшебную червоточину
В Debian 9 и Ubuntu 17.04+ мы сможем установить Magic Wormhole. Для этого мы будем использовать терминал (Ctrl + Alt + T) и команду apt, показанную ниже.
В старых версиях Debian/Ubuntu перед запуском программы необходимо установить следующие пакеты. Открываем терминал (Ctrl+Alt+T) и пишем в нем.
Использовать Волшебную червоточину
Отправка файлов с помощью Magic Wormhole
Прежде всего, я должен сказать, что я сообщил об ошибках в моей локальной сети. Это происходило, если путь к каталогу, из которого я намеревался отправить файл, содержал диакритические знаки или тому подобное в какой-то точке указанного пути. В этот момент генерируется код, необходимый для доставки. Мы должны передать это получателю. Как только это выяснено, для отправки файла достаточно открыть терминал (Ctrl+Alt+T) и написать следующее.
Получение файлов с помощью Magic Wormhole
Чтобы получить файл, вам просто нужно использовать следующую команду в терминале. Мне это кажется очевидным, но не забывайте, что на приемнике также должна быть установлена Magic Wormhole. Программа попросит получателя ввести код, полученный от отправителя.
И отправитель, и получатель будут получать уведомления о ходе передачи файлов. Он также сообщит нам, если процесс обнаружит какие-либо ошибки.
Очевидно, что это приложение для тех, кому удобно пользоваться терминалом.
Содержание статьи соответствует нашим принципам редакционной этики. Чтобы сообщить об ошибке, нажмите здесь!.
Общеизвестно, что если вы хотите выполнять большинство задач быстро и безопасно, вам следует использовать интерфейс командной строки. Конечно, существуют отличные приложения с быстрыми рабочими процессами, но в некоторых случаях CLI по-прежнему правит. Это один из таких случаев.
Червоточина – это приложение на основе интерфейса командной строки, с помощью которого вы можете безопасно отправлять текст, файлы и даже папки (которые будут автоматически заархивированы) практически кому угодно через интерфейс командной строки.
Представьте себе базовый сценарий: вы хотите отправить пару файлов другу, находящемуся за тысячи миль от вас. Вы запускаете новое окно терминала с помощью Hyper (подмигиваете), открываете червоточину и после ввода пары слов нажимаете Enter.
Ваш друг на другом конце запускает свой терминал, открывает соответствующую червоточину и вводит код для аутентификации своего доступа к файлам. Легко!
О безопасности
Относительно того, насколько безопасно использовать Wormhole, страница GitHub читает:
Инструмент червоточины использует PAKE «обмен ключами с аутентификацией по паролю», [который] затем можно использовать для шифрования данных. В червоточине используется алгоритм SPAKE2.
Для библиотеки червоточин требуется «сервер рандеву»: простой ретранслятор на основе WebSocket, который доставляет сообщения от одного клиента к другому. Это позволяет кодам червоточин не указывать IP-адреса и номера портов. URL-адрес общедоступного сервера встроен в библиотеку для использования по умолчанию и будет свободно доступен до тех пор, пока объем или злоупотребление не сделают его невозможным для поддержки. Jam – слушайте музыку из Google Play прямо с консоли
Чтобы отправить файл, используйте эту команду.
В процессе отправки будет сгенерирован код, который вы передадите предполагаемому получателю.
Отправить файлы через червоточину
Чтобы получить файл, используйте эту команду:
И отправитель, и получатель получат уведомления о ходе передачи файла или об обнаружении в процессе каких-либо ошибок.
Я думаю, что червоточина — отличное приложение; особенно для тех, кто время от времени открывает свой терминал (и мастеров клавиатуры).
Читайте также: