Tuntox — это программа, которая перенаправляет TCP-соединения по протоколу Tox. Это обеспечивает доступ с малой задержкой к удаленным машинам за NAT, которым вы не можете управлять, или с динамическим IP-адресом.
Tuntox — это один двоичный файл, который может работать как в режиме клиента, так и в режиме сервера. Как правило, запускайте сервер на удаленном компьютере, к которому вы хотите получить доступ, и клиент на локальном компьютере, с которого вы хотите получить доступ к серверу.
Tuntox находится на ранней стадии разработки . Он не убьет ваших коз, но может вызвать сбой, утечку памяти или проблемы с безопасностью (хотя я старался сделать его достаточно безопасным).
Если вы не знаете, что такое Tox — это протокол обмена мгновенными сообщениями, полностью P2P, поддерживающий аудио/видео звонки и передачу файлов. В отличие от Skype он полностью открыт и в отличие, скажем, от XMPP — звонки и передача файлов действительно работают по протоколу P2P. Посетите https://tox.chat/ и скачайте клиент, когда у вас будет такая возможность.
Загрузите двоичные файлы на вкладке «Релизы» на GitHub. Просто загрузите файл, соответствующий вашей архитектуре, выполните chmod +x, и все готово. Двоичные файлы подписаны моим ключом PGP: 11C1 B15A 5D5D D662 E469 928A EBDA 6B97 4ED3 D2B7.
Если вы скучаете по временам, когда мужчины сами писали драйверы устройств, посетите BUILD.md.
Запустите сервер Tuntox на ноутбуке, который подключается через 3G, на домашнем компьютере за шестью NAT или на Raspberry Pi. Никакие порты не нужно перенаправлять на общедоступный IP-адрес — машина будет доступна через оверлейную сеть Tox.
./tuntox
запускает сервер на переднем плане. Когда сервер запустится, он выведет на вывод свой Tox ID — обратите внимание, он понадобится вам позже для доступа к машине извне.
Если вы завершите работу сервера (Ctrl-C) и запустите его заново, он сгенерирует новый идентификатор Tox, и вам придется записать его снова. Это как бы противоречит цели, поэтому вам нужно помочь серверу где-то хранить свой Tox ID. По умолчанию он сохраняет файл в /etc/tuntox/, поэтому, если вы создадите этот каталог и настроите его так, чтобы он был доступен для tuntox, он будет иметь фиксированный идентификатор Tox.
В качестве альтернативы вы можете использовать ключ -C:
./tuntox -C /path/to/the/config/directory/
Чтобы демонизировать при запуске, добавьте -z:
/path/to/tuntox -z
Или, если вы используете что-то вроде Supervisor или Systemd, вы можете предоставить файл конфигурации для системы по вашему выбору (см. № 3, № 4, № 6). Нет абсолютно никакой необходимости запускать сервер от имени пользователя root.
Итак, на ноутбуке теперь установлен сервер Tuntox. Как вы к нему подключаетесь?
./tuntox -i -L 2222:127.0.0.1:22
где
— это идентификатор, который вы записали при настройке сервера. Ты ведь не забыл это записать?
После запуска этой команды откройте второе окно терминала и выполните:
ssh -p 2222 myuser@localhost
Волшебство, порт 2222 на вашем локальном хосте теперь является SSH-сервером на машине, на которой работает сервер Tuntox.
Переключатель -L работает (почти) так же, как и в SSH. Для непосвященных -LA:B:C означает «перенаправить порт C на IP-адресе B на порт A на локальном хосте». В отличие от SSH, вы не можете использовать имена хостов для B (если вы не связываете двоичный файл динамически).
В качестве альтернативы также работает режим SSH ProxyCommand:
ssh -o ProxyCommand='./tuntox -i -W localhost:22' gdr@localhost
Забавная штука: VPN через Tox
Клиент может быть запущен от имени обычного пользователя без полномочий root, если только A < 1024 («A» — локальный порт). Существует обходной путь.
TUNTOX НЕ БЕЗОПАСЕН БЕЗ ПЕРЕКЛЮЧАТЕЛЯ -s. Укажите -s свой пароль как на сервере, так и на клиенте, и все будет в порядке. Этот переключатель представлен в версии 0.0.4 под кодовым названием «Моя порнокассета у мистера Лэхи!». Еще лучше, запустите TUNTOX_SHARED_SECRET=yourpassword tuntox ...
с обеих сторон.
Сервер Tuntox генерирует новый идентификатор Tox при каждом запуске или сохраняет свой закрытый ключ в файле. Каждому, кто хочет подключиться к этому серверу, нужен его Tox ID, который состоит из общеизвестного открытого ключа и секретного 32-битного значения «антиспама». Затем клиент отправляет общий секретный ключ, который затем сравнивается с секретным ключом, указанным в командной строке сервера. Если они не совпадают, запрос на добавление в друзья остается без ответа.
Следовательно, владение Tox ID и секретом сервера следует считать эквивалентным владению учетной записью Unix с доступом по SSH. Tuntox не реализует возможность удаленной оболочки, но вполне возможно, что ее можно использовать.
Аутентификация PSK не является обязательной, но рекомендуется — она включается только в том случае, если на стороне сервера присутствует ключ -s или установлена переменная среды TUNTOX_SHARED_SECRET. PSK отправляется как сообщение с запросом друга Tox — насколько автор понимает код libtoxcore, он зашифрован с использованием открытого EC-ключа сервера.
Сервер Tuntox может дополнительно разрешать только ToxID из белого списка. Введите -i yourallowedtoxy один или несколько раз, чтобы добавить ToxID в белый список. Примечание. Поведение клиента по умолчанию — создание нового ToxID для каждого запуска (поскольку автор считает, что это хорошая функция конфиденциальности). Вам понадобится использовать ключ -C в клиенте, чтобы принудительно прочитать сохраненный идентификатор из tox_save.
Tuntox использует протокол Tox, который сам по себе не проверялся исследователями безопасности. Криптовалюта Tox была реализована с помощью libsodium (которая основана на NaCl Бернштейна) и, таким образом, использует кривую эклиптики 25519 для обмена ключами и salsa20 для потокового шифрования. По сведениям автора, libsodium максимально затрудняет ошибочное использование криптовалюты, но мы не знаем этого, пока Tox не будет проверен.
да, есть один
Извините за GPLv3 — и toxcore, и utox (из которых я позаимствовал некоторый код) относятся к GPLv3.
Спасибо разработчикам toxcore и utox, без которых эта программа никогда бы не существовала.
Спасибо Mr_4551 за вашу помощь и мотивацию.