Tuntox ist ein Programm, das TCP-Verbindungen über das Tox-Protokoll weiterleitet. Dies ermöglicht den Zugriff auf entfernte Maschinen mit geringer Latenz hinter einem nicht kontrollierbaren NAT oder mit einer dynamischen IP-Adresse.
Tuntox ist eine einzelne Binärdatei, die im Client-Modus oder Server-Modus ausgeführt werden kann. Als Faustregel gilt: Führen Sie den Server auf dem Remote-Computer aus, auf den Sie zugreifen möchten, und den Client auf Ihrem lokalen Computer, von dem aus Sie auf den Server zugreifen möchten.
Tuntox befindet sich im frühen Work-in-Progress-Stadium . Es wird Ihre Ziegen nicht töten, aber es kann zu Fehlern, Speicherlecks oder Sicherheitsproblemen kommen (obwohl ich versucht habe, es ziemlich sicher zu machen).
Wenn Sie nicht wissen, was Tox ist – es ist ein Instant-Messenger-Protokoll, das vollständig P2P ist und Audio-/Videoanrufe und Dateiübertragungen unterstützt. Im Gegensatz zu Skype ist es vollständig offen und im Gegensatz zu beispielsweise XMPP funktionieren die Anrufe und Dateiübertragungen tatsächlich P2P. Schauen Sie sich https://tox.chat/ an und laden Sie bei Gelegenheit einen Client herunter.
Holen Sie sich die Binärdateien über die Registerkarte „Releases“ auf Github. Laden Sie einfach die richtige Datei für Ihre Architektur herunter, führen Sie chmod +x aus und fertig. Die Binärdateien sind mit meinem PGP-Schlüssel 11C1 B15A 5D5D D662 E469 928A EBDA 6B97 4ED3 D2B7 signiert.
Wenn Sie die Zeiten vermissen, in denen Männer ihre eigenen Gerätetreiber schrieben, schauen Sie sich BUILD.md an.
Führen Sie den Tuntox-Server auf einem Laptop aus, der über 3G verbunden ist, auf Ihrem Heimcomputer hinter sechs NATs oder auf Ihrem Raspberry Pi. Es müssen keine Ports an seine öffentliche IP weitergeleitet werden – die Maschine ist über das Tox-Overlay-Netzwerk erreichbar.
./tuntox
Läuft den Server im Vordergrund. Wenn der Server startet, druckt er seine Tox-ID auf den Ausgang. Notieren Sie sich diese, Sie benötigen sie später, um von außen auf die Maschine zuzugreifen.
Wenn Sie den Server beenden (Strg-C) und erneut starten, generiert er eine neue Tox-ID und Sie müssen diese erneut notieren. Das macht den Zweck irgendwie zunichte, also sollten Sie dem Server helfen, seine Tox-ID irgendwo zu speichern. Standardmäßig wird eine Datei in /etc/tuntox/ gespeichert. Wenn Sie also dieses Verzeichnis erstellen und es so auswählen, dass es für tuntox zugänglich ist, hat es eine feste Tox-ID.
Alternativ können Sie stattdessen den Schalter -C verwenden:
./tuntox -C /path/to/the/config/directory/
Um beim Start zu dämonisieren, fügen Sie -z hinzu:
/path/to/tuntox -z
Oder wenn Sie etwas wie supervisord oder systemd ausführen, können Sie gerne eine Konfigurationsdatei für das System Ihrer Wahl beisteuern (siehe Nr. 3, Nr. 4, Nr. 6). Es ist absolut nicht erforderlich, den Server als Root auszuführen.
Auf dem Laptop ist nun der Tuntox-Server installiert. Wie verbindest du dich damit?
./tuntox -i -L 2222:127.0.0.1:22
Dabei ist
die ID, die Sie sich beim Einrichten des Servers notiert haben. Du hast doch nicht vergessen, es aufzuschreiben, oder?
Nachdem Sie diesen Befehl ausgeführt haben, öffnen Sie ein zweites Terminalfenster und führen Sie Folgendes aus:
ssh -p 2222 myuser@localhost
Magic, Port 2222 auf Ihrem Localhost ist jetzt der SSH-Server auf dem Rechner, auf dem der Tuntox-Server läuft.
Der Schalter -L funktioniert (fast) genauso wie in SSH. Für den Uneingeweihten bedeutet -LA:B:C „Port C auf IP B an Port A auf Localhost weiterleiten“. Im Gegensatz zu SSH können Sie für B keine Hostnamen verwenden (es sei denn, Sie verknüpfen die Binärdatei dynamisch).
Alternativ funktioniert auch der SSH-ProxyCommand-Modus:
ssh -o ProxyCommand='./tuntox -i -W localhost:22' gdr@localhost
Lustiges Zeug: VPN über Tox
Der Client kann als normaler Nicht-Root-Benutzer ausgeführt werden, es sei denn, A < 1024 („A“ ist der lokale Port). Es gibt eine Problemumgehung.
TUNTOX IST OHNE DEN -S-SCHALTER NICHT SICHER. Geben Sie -s Ihr Passwort sowohl auf dem Server als auch auf dem Client ein, und schon ist alles in Ordnung. Dieser Schalter wird in 0.0.4 eingeführt, Codename „Mr. Lahey's Got My Porno Tape!“. Noch besser: Führen Sie auf beiden Seiten TUNTOX_SHARED_SECRET=yourpassword tuntox ...
aus.
Der Tuntox-Server generiert bei jedem Start eine neue Tox-ID oder speichert seinen privaten Schlüssel in einer Datei. Wer sich mit diesem Server verbinden möchte, benötigt seine Tox-ID, die aus dem öffentlich bekannten Pubkey und einem geheimen 32-Bit-„Antispam“-Wert besteht. Anschließend sendet der Client ein gemeinsames Geheimnis, das dann mit dem in der Befehlszeile des Servers angegebenen Geheimnis verglichen wird. Wenn sie nicht übereinstimmen, bleibt die Freundschaftsanfrage unbeantwortet.
Daher sollte der Besitz der Tox-ID des Servers und eines Geheimnisses als gleichbedeutend mit dem Besitz eines Unix-Kontos mit SSH-Zugriff angesehen werden. Tuntox implementiert keine Remote-Shell-Funktion, es ist jedoch möglich, dass diese ausgenutzt werden kann.
Die PSK-Authentifizierung ist optional, wird aber empfohlen. Sie ist nur aktiviert, wenn der Schalter -s auf der Serverseite vorhanden ist oder die Umgebungsvariable TUNTOX_SHARED_SECRET festgelegt ist. PSK wird als Tox-Freundschaftsanfragenachricht gesendet – soweit der Autor den libtoxcore-Code versteht, wird er mit dem öffentlichen EC-Schlüssel des Servers verschlüsselt.
Der Tuntox-Server kann optional nur ToxIDs auf der Whitelist zulassen. Geben Sie -i yourallowedtoxid einmal oder mehrmals ein, um eine ToxID zur Whitelist hinzuzufügen. Hinweis: Das Standardverhalten des Clients besteht darin, für jeden Lauf eine neue ToxID zu generieren (da der Autor der Meinung ist, dass dies eine nette Datenschutzfunktion ist). Sie sollten den Schalter -C im Client verwenden, um das Lesen einer gespeicherten Identität aus tox_save zu erzwingen.
Tuntox greift auf das Tox-Protokoll zurück, das selbst nicht von Sicherheitsforschern geprüft wurde. Tox-Krypto wurde mit libsodium (das auf Bernsteins NaCl basiert) implementiert und nutzt somit die Ekliptikkurve 25519 für den Schlüsselaustausch und Salsa20 für die Stream-Verschlüsselung. Nach bestem Wissen des Autors macht libsodium es so schwierig wie möglich, bei Kryptowährungen Fehler zu machen, aber wir wissen es erst, wenn Tox geprüft wurde.
Ja, es gibt einen
Tut mir leid wegen GPLv3 – sowohl toxcore als auch utox (von dem ich Code ausgeliehen habe) sind GPLv3.
Vielen Dank an die toxcore- und utox-Entwickler, ohne die dieses Programm nie existieren würde.
Vielen Dank, Herr_4551, für Ihre Hilfe und Motivation.