Tuntox는 Tox 프로토콜을 통해 TCP 연결을 전달하는 프로그램입니다. 이를 통해 제어할 수 없는 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를 참조하십시오.
3G를 통해 연결된 노트북, 6개의 NAT 뒤에 있는 가정용 컴퓨터 또는 Raspberry Pi에서 Tuntox 서버를 실행하세요. 공용 IP로 포트를 전달할 필요가 없습니다. 기기는 Tox 오버레이 네트워크를 통해 액세스할 수 있습니다.
./tuntox
서버를 포그라운드에서 실행합니다. 서버가 시작되면 Tox ID가 출력에 인쇄됩니다. 나중에 외부에서 시스템에 액세스하려면 이 ID가 필요합니다.
서버를 종료하고(Ctrl-C) 다시 시작하면 새로운 Tox ID가 생성되므로 다시 적어 두어야 합니다. 이는 목적에 어긋나므로 서버가 Tox ID를 어딘가에 저장하도록 돕고 싶을 것입니다. 기본적으로 파일은 /etc/tuntox/에 저장되므로 이 디렉터리를 만들고 tuntox에 액세스할 수 있도록 축소하면 고정된 Tox ID를 갖게 됩니다.
또는 -C 스위치를 대신 사용할 수도 있습니다.
./tuntox -C /path/to/the/config/directory/
시작 시 데몬화하려면 -z를 추가하세요.
/path/to/tuntox -z
또는 Supervisord 또는 systemd와 같은 것을 실행하는 경우 선택한 시스템에 대한 구성 파일을 제공할 수 있습니다(#3, #4, #6 참조). 서버를 루트로 실행할 필요는 전혀 없습니다.
이제 노트북에 Tuntox 서버가 설치되었습니다. 어떻게 연결하나요?
./tuntox -i -L 2222:127.0.0.1:22
여기서
는 서버를 설정할 때 적어둔 ID입니다. 적어 두는 것 잊지 않았죠?
이 명령을 실행한 후 두 번째 터미널 창을 열고 다음을 실행합니다.
ssh -p 2222 myuser@localhost
Magic, 로컬 호스트의 포트 2222는 이제 Tuntox 서버를 실행하는 시스템의 SSH 서버입니다.
-L 스위치는 SSH에서와 거의 동일한 방식으로 작동합니다. 처음에 -LA:B:C는 "ip B의 포트 C를 로컬 호스트의 포트 A로 전달"을 의미합니다. SSH와 달리 B에는 호스트 이름을 사용할 수 없습니다(바이너리를 동적으로 연결하지 않는 한).
또는 SSH ProxyCommand 모드도 작동합니다.
ssh -o ProxyCommand='./tuntox -i -W localhost:22' gdr@localhost
재미있는 점: Tox를 통한 VPN
A < 1024("A"는 로컬 포트)가 아닌 한 루트가 아닌 일반 사용자로 클라이언트를 실행할 수 있습니다. 해결 방법이 있습니다.
-s 스위치가 없으면 TUNTOX가 안전하지 않습니다. 서버와 클라이언트 모두에 -s yourpassword를 제공하면 괜찮을 것입니다. 이 스위치는 0.0.4, 코드명 "Mr. Lahey's Got My Porno Tape!"에 도입되었습니다. 더 나은 방법은 양쪽에서 TUNTOX_SHARED_SECRET=yourpassword tuntox ...
실행하는 것입니다.
Tuntox 서버는 시작할 때마다 새로운 Tox ID를 생성하거나 개인 키를 파일에 저장합니다. 이 서버에 연결하려는 사람은 누구나 공개적으로 알려진 공개 키와 비밀 32비트 "스팸 방지" 값으로 구성된 Tox ID가 필요합니다. 그런 다음 클라이언트는 공유 비밀을 전송하고 이를 서버의 명령줄에 제공된 비밀과 비교합니다. 일치하지 않으면 친구 요청에 응답하지 않습니다.
따라서 서버의 Tox ID 및 비밀 정보를 소유하는 것은 SSH 액세스가 가능한 Unix 계정을 소유하는 것과 동일하게 간주되어야 합니다. Tuntox는 원격 셸 기능을 구현하지 않지만 악용될 가능성이 있습니다.
PSK 인증은 선택 사항이지만 권장됩니다. 서버 측에 -s 스위치가 있거나 TUNTOX_SHARED_SECRET 환경 변수가 설정된 경우에만 활성화됩니다. PSK는 Tox 친구 요청 메시지로 전송됩니다. 작성자가 libtoxcore 코드를 이해하는 한 서버의 공개 EC 키를 사용하여 암호화됩니다.
Tuntox 서버는 선택적으로 허용된 ToxID만 허용할 수 있습니다. -i yourallowedtoxy를 한 번 이상 입력하여 ToxID를 화이트리스트에 추가하세요. 참고: 기본 클라이언트 동작은 실행할 때마다 새로운 ToxID를 생성하는 것입니다(작성자는 이것이 좋은 개인 정보 보호 기능이라고 생각하기 때문입니다). 클라이언트에서 -C 스위치를 사용하여 tox_save에서 저장된 ID를 강제로 읽을 수 있습니다.
Tuntox는 보안 연구원의 감사를 받지 않은 Tox 프로토콜을 편승하고 있습니다. Tox 암호화는 libsodium(Bernstein의 NaCl 기반)으로 구현되었으므로 키 교환에는 황도 곡선 25519를 사용하고 스트림 암호화에는 salsa20을 사용합니다. 저자의 최선의 지식에 따르면 libsodium은 암호화폐를 잘못 이해하는 것을 최대한 어렵게 만들지 만 Tox가 감사를 받기 전까지는 알 수 없습니다.
네, 하나 있어요
GPLv3에 대해 죄송합니다. toxcore와 utox(일부 코드를 빌렸음)는 모두 GPLv3입니다.
이 프로그램이 없었다면 결코 존재하지 않았을 toxcore 및 utox 개발자에게 감사드립니다.
도움과 동기를 부여해주신 Mr_4551님께 감사드립니다.