Come ssh un computer che si trova dietro il firewall


1

Considera che ho tre computer

  1. home il mio computer a casa
  2. work il mio computer al lavoro
  3. server il mio server

Non riesco a collegarmi da homea workusando ssh a causa della mia firewall aziendale. Ma posso ssh qualsiasi computer dal lavoro. Ad esempio posso ssh il computer server dal lavoro. Quello che non voglio fare è collegarmi a Internet usando la workconnessione (voglio accedere localhostal computer di lavoro). Ho letto da alcuni toturial che posso fare:

woork:~# ssh -D 4096 server

Ma questo mi permette solo di collegarmi a Internet usando il server. Voglio fare l'inverso di questo, ma non riesco ad accedere workda server.

Il risultato finale è aprire Firefox su homee navigare su localhostdi work.

Qual è la soluzione per il mio caso?


@DavidPostill Questo non può essere fatto usando un tunnel?
Hunsu,

@DavidPostill scrivi un commento assolutamente fuorviante, sta parlando di ssh e ssh può fare un tunnel inverso che può gestire un firewall che non puoi controllare.
barlop,

Vuoi un tunnel inverso. Quello è ssh -R
barlop

1
@barlop Tuttavia hai ancora bisogno di aprire le porte appropriate. Non vi è alcuna indicazione nella domanda che possa ssh al di fuori della sua rete aziendale. In ogni caso dovrebbe comunque chiedere l'autorizzazione per farlo. Una soluzione migliore sarebbe sicuramente per la sua azienda di creare un VPS se ha bisogno di lavorare da casa.
DavidPostill

@DavidPostill Le porte aperte normalmente implicano l'apertura delle porte in entrata. E la maggior parte dei firewall non blocca l'accesso a Internet, quindi consentirebbe la porta in uscita 80 e la porta 443 in uscita (e forse un carico di altre o tutte le porte in uscita). E sicuro che dovrebbe chiedere il permesso se vuole uscire ma tecnicamente può farlo.
barlop,

Risposte:


2

Se riesci a impostare una connessione ssh in uscita, allora puoi probabilmente impostare un tunnel inverso per rientrare (non sono consapevole del fatto che l'IT possa proibirlo, ma non lo sai mai).

work:~# ssh -fN -R 2222:localhost:22 server

Quindi sul server puoi farlo:

server:~# ssh -p2222 localhost

E sarai magicamente ricollegato alla porta del server SSH sulla tua macchina di lavoro. Per impostazione predefinita, la porta 2222 è associata solo all'indirizzo "localhost", quindi le richieste di connessione da casa non funzioneranno :

home:~# ssh -p2222 server  ;# this will not work

Invece, puoi farlo:

home:~# ssh server
server:~# ssh -p2222 localhost

o entrambi in un comando come questo:

home:~# ssh -o ProxyCommand="ssh -W localhost:2222" server

Per rendere tutto più facile da vivere, aggiungi questo al tuo .ssh/configa casa:

Host work
    ProxyCommand ssh -W localhost:2222
    HostName server

... e adesso:

home:~# ssh work

... farà solo la cosa giusta.

È possibile creare il binding inverso del tunnel in modo che l'attività proxy non sia necessaria, ma poi anche tutti gli hacker del mondo sbatteranno sul tuo tunnel (pensando che la porta 2222 sia non standard e quindi sicura sia ingenua). I tentativi di accesso non riusciti verranno visualizzati nei registri su "lavoro", l'IT lo scoprirà e verrai licenziato. Naturalmente, il tunnel da solo è probabilmente un'offesa di fuoco, ma non è necessario renderlo ovvio.


Scrivi "Se riesci a impostare una connessione ssh in uscita, allora puoi probabilmente impostare un tunnel inverso per rientrare (non sono consapevole del fatto che l'IT possa proibirlo, ma non lo sai mai)." <- beh, ci sarebbe un modo. Potrebbero bloccare ssh in uscita. È improbabile che lo facciano, ma in teoria potrebbero, il che sembra essere quello che stai chiedendo.
barlop

@barlop "Se è possibile impostare una connessione SSH in uscita ...." significa che il resto della frase si applica solo se l'IT non ha bloccato SSH, quindi il punto non ha senso. In effetti, il mio datore di lavoro blocca alcune connessioni ssh in uscita (penso che ci sia una lista bianca), e tutte le connessioni a porte non standard, penso.
am

sì, devo aver dimenticato l'inizio della frase quando l'ho scritto !! In effetti, se è consentita una connessione SSH in uscita, allora non possono fermare un tunnel inverso, o anche più tunnel inversi, perché dal loro punto di vista tutto sembra solo ssh che è tutto crittografato.
barlop

0

Supponi di avere

work:~#

home:~#

E funziona: ~ # è il firewall che non puoi controllare

Quando scrivi server, vedo dal contesto (server ssh -D 4096) che intendi server SSH. (e non ad es. server VNC). Dovresti specificare davvero, è più chiaro. Normalmente se si dispone di un server SSH sarebbe sul lavoro o a casa. Dovrebbe essere sul computer con il firewall che puoi controllare, ovvero Home.

In genere avresti anche un normale server che vuoi raggiungere e che normalmente non è un server SSH. Sebbene possa essere, c'è una domanda con un ottimo esempio di dove si potrebbe desiderare che sia.

Forse puoi spiegare di più quale server: ~ # è, ma nel frattempo lo salterò fuori perché sembra inutile e non è chiaro cosa intendi con questo perché se hai un server SSH, ad esempio al lavoro, allora otterresti un pronto lavoro: ~ #

Quindi quello che fai è

Da quello che non puoi controllare, ad esempio il lavoro, fai una connessione in uscita. perché il firewall li fa uscire.

home:~# START VNC server on e.g. 5901

home:~# START SSHD SERVER on e.g. port 80 <-- whatever the command is to start your sshd.

work:~# ssh -R 1234:127.0.0.1:5901 user@homeip -p 80

home:~# vncviewer 127.0.0.1:1234 

La casa vede il lavoro.

veramente gli switch da sapere per SSH sono -L, -R e -D

E se stai collegando il programma client alla porta di ascolto in modo tale che il programma client si trovi su una macchina diversa dalla tua porta di ascolto, allora deve essere -R *:1234:127.0.0.1:5901o0.0.0.0:1234:127.0.0.1:5901

Anche se tieni a mente, è per qualcosa come VNC, ma se lo facessi per HTTP saresti in grado di visualizzare solo un sito. C'è -D che come vedi è locale.

Alcune persone sono a casa e vogliono accedere a un server al lavoro e quel server si trova dietro un firewall che non controllano.

Ma se vuoi l'accesso a Internet, allora sei al lavoro, vuoi accedere a un server a casa ..

Perché mai non puoi farlo?

Prova a eseguire il server SSHD sulla porta 80 o 443 a casa, e fallo work~:#ssh homeip -p 443


home non ha un IP statico. Ecco perché uso un server che ha un IP statico. server si riferisce a un computer (vps) non a un server ssh.
Hunsu,

noip.com/free "Usa il tuo nome.no-ip.info invece di un indirizzo IP o URL difficile da ricordare per accedere al tuo computer da remoto. Inoltre, usa il nostro client di aggiornamento DNS dinamico gratuito per tenere traccia del tuo indirizzo IP dinamico. essere sempre in grado di accedere al tuo computer anche se il tuo indirizzo IP è assegnato dinamicamente. "
DavidPostill

@ RobinA.Meade hai pubblicato la tua domanda sulla risposta sbagliata, sono stati gli ams a scrivere una riga del genere
barlop
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.