Port tunelowanie zza firewalla do zdalnego serwera przez laptop VNC?


0

Mam aplikację wiersza poleceń na Linuksie, która używa określonego portu do rozmowy ze zdalnym serwerem. Niestety w pracy port ten jest zablokowany.

Jestem w stanie podłączyć mój laptop przez VNC do sieci, a laptop jest na połączeniu Wi-Fi, które ma dostęp do portu do zdalnego serwera. Mogę ssh do mojego laptopa z bezpiecznej sieci, gdy jest podłączony.

Czy istnieje sposób na wykorzystanie tunelowania portu ssh do obejścia tego problemu? Czy mogę przenieść tunel do mojego laptopa i sprawić, by mój laptop działał jako pośrednik między zaporą sieciową a serwerem zdalnym?

Firewalled Linux Box ---ssh---> Mac OSX Laptop ---wifi---> Remote Server

Niektóre szczegóły:

  • Aplikacja wiersza poleceń jest opakowaniem do pip. Linia poleceń nie ma możliwości określenia serwera proxy lub alternatywnego serwera ip / serwera, z którego mógłby korzystać.
  • Według mnie Pip może komunikować się z wieloma różnymi serwerami, ale najprawdopodobniej z pypi.python.org.
  • Zgodnie ze znalezionym źródłem Pip komunikuje się przez port 3128

Próbowałem:

ssh -v -f -4 -N -L 3128:pypi.python.org:3128 andy@xx.x.xx.xxx

(Xx.x.xx.xxx stoi za adresem IP laptopa)

Gdy działa, mówi:

Remote connections from LOCALHOST:3128 forwarded to local address pypi.python.org:3128

To wydaje mi się cofnięte, ale jestem nowicjuszem, więc kto wie! Tak czy inaczej, nie działa. FYI, jako test używam:

telnet pypi.python.org 3128

sprawdzić, czy komputer z zaporą ma teraz dostęp, ale tak nie jest.

jakieś pomysły?


telnet localhost 3128
Ipor Sircer

Cześć @IporSircer, zwróć uwagę na zdanie pogrubione. Nie mogę zmienić sposobu, w jaki pip próbuje znaleźć serwer, więc nie mogę go wskazać na localhost 3128.
AndyN

Następnie użyj proxyhack lub httppc
Ipor Sircer

Odpowiedzi:


1

Uwaga ogólna: wiązanie bezpiecznych sieci z niezabezpieczonymi sieciami nie jest kwestią techniczną. Może cię zwolnić lub gorzej. Uzyskaj pozwolenie na up-chain.

W sprawie technicznej:

Osiągnąć:

telnet pypi.python.org 3128

będziesz musiał zmienić plik / etc / hosts, aby zawierał „pypi.python.org” jako część linii localhosts.

W moim przypadku, uzyskując dostęp do zdalnych repozytoriów kodu przez tunel ssh, aby konfiguracja narzędzia programistycznego pozostała spójna (zawsze odwołując się do tej samej nazwy hosta), nawet gdy jest zdalna, używam po prostu czegoś takiego jak poniższy przykładowy skrypt do hostów konfiguracyjnych (może być wywołany przez cron lub ręcznie).

Przed użyciem skryptu wykonaj kopię zapasową pliku / etc / hosts.

triggerport=1234
servname="myserver"
if [ `netstat -nl | grep :631 | wc -l ` -gt 0  ]
  then 
    awk -v serv=$servname  '/127.0.0.1/ {print $0 " " serv;next} 1' /etc/hosts > /etc/hosts
 else
    awk -v serv=$servname '{gsub(serv,"")};1' /etc/hosts > /etc/hosts
fi

Jak już powiedziałem, możesz ustawić zadanie cron, aby uruchomić ten skrypt i automatycznie utworzyć mapowanie nazwy hosta tunelu. Zwykle robiłem to tylko na połączeniach system-system, które w razie potrzeby będą uruchamiać i wyłączać tunele ssh.


Dziękuję za odpowiedź John. Dobra rada dotycząca uzyskania pozwolenia na awans! Hehe! Na pewno to zrobię.
AndyN
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.