Uwaga: to nie jest, powtarzam nie pytanie o tunelowania VNC nad czymś innym, np SSH. To zupełnie inna sprawa .
Ustawiać
Mam maszynę M1 w pewnym segmencie sieci, która jest dostępna z komputera M2 poza segmentem za pośrednictwem VNC, ale (dla celów dyskusji) nie ma żadnego innego protokołu. Żadne inne maszyny w tym segmencie nie są dostępne spoza segmentu. Ponadto M1 i inne maszyny w jego lokalnym segmencie mają ograniczoną łączność wychodzącą; konkretnie, M1 nie może połączyć się przez SSH z żadnym nachine poza swoim lokalnym segmentem (a może nawet tam nie ma).
Teraz, jeśli uruchamiam klienta VNC na M2, kieruję go do M2, loguję się i uruchamiam powłokę, mogę w zasadzie uruchamiać cokolwiek chcę i uzyskiwać dostęp do maszyn w lokalnym segmencie M1. Jednak jestem ograniczony graficzną interakcją klienta VNC.
Cel
Chciałbym móc jakoś tunelować połączenia z mojej maszyny M2 do dowolnej maszyny w lokalnym segmencie M1, do dowolnego miejsca, w którym będę mógł połączyć się z M1.
Pytanie
Jak mogę to zrobić? A raczej, czy niezbędne do tego narzędzia zostały już opracowane i są dostępne bezpłatnie?
Pomysły
VNC jest oparty na pikselach . Nie znam protokołu, ale przypuśćmy, że nie ma interesujących danych z „kanału bocznego”, wydaje się, że potrzebowalibyśmy pliku binarnego lub skryptu na M, który otworzyłby okno lub dowolny prostokąt na VNC „display”, używając prostokąta dla wyjścia i ruchu klawiatury / myszy, który to okno otrzymuje jako dane wejściowe. Tych dwóch potoków można używać do komunikowania się, powiedzmy, z sesją powłoki (lub nc
sesją, jeśli chcesz). Naciskanie klawiszy staje się strumieniem wejściowym (być może ograniczającym się do base64), a piksele odpowiadają strumieniowi wyjściowemu (i będziemy mieli albo naprawdę małe okno, które zmienia się bardzo szybko, albo, cóż, większe okna, które również muszą zmieniać się dość szybko .
Z drugiej strony „klient” VNC nie może wyświetlać żadnego z tych śmieci na ekranie ani pobierać danych z klawiatury lub myszy, a raczej używać portów do wprowadzania i wyprowadzania tych danych.
Co myślisz?
[Urządzenie ma serwer SSH, ale obsługuje tylko połączenia localhost