come ssh due computer dietro NAT e Firewall, senza il terzo computer


9

Sto provando a ssh nel mio box Linux a casa. La mia casa è un ambiente in stile dormitorio - NAT e Firewall con laptop personale con Arch Linux. Il mio lavoro è Windows 7 in stile aziendale - NAT e firewall proxy, nessun diritto di amministratore.

Sono in grado di collegare i due Team Viewer portatili in esecuzione. Tuttavia, questo non soddisfa ciò che sto davvero cercando. Sto semplicemente cercando SSH nel mio box Linux a casa, lasciando completamente chiuso il mio box Linux - praticamente senza testa quando non ci sono.

Ho letto sul tunneling, tuttavia se capisco correttamente il tunneling ho bisogno di un server di terze parti a cui entrambi i computer possono connettersi. Non ho un server del genere e non desidero pagare neanche per una cosa del genere.


Qual è la soluzione semplice e sicura per SSH nel mio laptop dal lavoro? Esiste un "terzo server" gratuito e sicuro? Sono stato su e giù per Google, ma mi sembra di essere sempre più confuso.


2
Hai accesso al router? Di solito è necessario regolare le impostazioni NAT per indirizzare il proprio indirizzo IP pubblico al server SSH interno per fare qualcosa del genere.
jmreicha,

No, non ho accesso al router e non riesco a regolare le impostazioni NAT.
user1026169

Quindi in questo caso dovrai probabilmente eseguire il proxy tramite un terzo server per connetterti se l'opzione Team Viewer non funzionerà.
jmreicha,

chi fornisce un server che posso usare solo come proxy per ssh?
user1026169

Scommetto che un VPS basato su cloud farebbe il trucco.
jmreicha,

Risposte:


16

pwnat è uno strumento open source che presumibilmente risolve questo problema. Dice :

pwnat è uno strumento che consente a qualsiasi numero di client dietro NAT di comunicare con un server dietro un NAT separato senza port forwarding e nessuna configurazione DMZ su qualsiasi router per comunicare direttamente tra loro. Il server non ha bisogno di sapere nulla dei client che tentano di connettersi.

Non c'è nessun intermediario, nessun proxy, nessuna terza parte, nessun UPnP / STUN / ICE richiesto, nessuno spoofing e trucchi DNS.

Ancora più importante, il client può quindi connettersi a qualsiasi host o porta su qualsiasi host remoto o a un host fisso e una porta decisi dal server.

pwnat stabilisce questo tipo di connessione:

Macchina A (IP: 192.168.1.3) -> NAT A (IP: 122.xxx) -> Internet -> NAT B (IP: 59.xxx) -> Macchina B (192.168.2.10)

pwnat è distribuito solo per Linux, ma l'articolo PWNAT: Windows Complied Version contiene la versione di Windows . Vedi anche, dallo stesso autore PWNAT: Esempio .

Il metodo usato da pwnat è incredibilmente intelligente, ma non vi è alcuna garanzia che funzioni con il tuo ambiente.


1
Nota: pwnat dipende dall'ICMP per funzionare. In particolare, icmp echo e Time hanno superato i messaggi. Questo funziona perché ICMP è apolide.
Shadowbq,

Non funziona per me. I router NAT non sono abbastanza intelligenti da implementare gli standard, né abbastanza intelligenti da capire l'autore pwnat. +1 ancora per intelligenza.
quantum

Ho anche provato Pwnat senza successo. Ma è possibile che abbia qualcosa di sbagliato nella mia configurazione. C'è qualcuno che ha avuto successo che può dare supporto?
rapina

5

Personalmente penso che il tunneling sia la tua migliore opzione, anche se non possiedi già un terzo server.

Amazon EC2 offre un'opzione di prezzo di livello gratuito che consente ai nuovi clienti di eseguire una microistanza di Linux / Windows per un massimo di 750 ore al mese, gratuitamente, per un anno. Non ho usato il servizio da solo, ma suppongo che se si esegue il server virtuale solo quando necessario, si ottiene un tunnel SSH attivo e funzionante. Potresti anche trovare il servizio abbastanza economico da giustificare il pagamento?

Hak5 ha prodotto una buona introduzione al tunneling (con persistenza). È inoltre possibile impostare uno script attivato da CRON per tentare connessioni al server virtuale in modo da avere accesso al laptop entro pochi minuti dall'avvio dell'istanza EC2 ...


Grazie, ho trovato un VPS gratuito con l'aiuto di alcuni forum.
user1026169

1
Inoltre, 750 ore sono 31,25 giorni ... Quindi in pratica ottieni t2.microun'istanza gratis, per un anno.
Attie,

3

L'opzione migliore sarebbe impostare il port forwarding se puoi, ma se il tuo campus esegue il firewalling e non puoi eseguire il port forwarding da solo, usa questo suggerimento.

Sì, esiste un terzo server gratuito e lo stai già utilizzando, TeamViewer. Assicurati di avere TeamViewer installato come servizio (o qualunque sia l'equivalente per Linux, io uso solo la versione di Windows). Quindi installare il driver VPN al lavoro e a casa. Sarai quindi in grado di connetterti utilizzando una VPN dal lavoro e il tuo computer di casa avrà un indirizzo IP 7.xxx. Quindi, se si desidera accedere a una sessione terminale, eseguire SSH sul collegamento VPN.

L'opzione di installazione VPN è nelle impostazioni avanzate. inserisci qui la descrizione dell'immagine

Ciò aggiungerà un'opzione "VPN" per i tipi di connessioni che è possibile effettuare. inserisci qui la descrizione dell'immagine


1
Grazie mille per l'aiuto dettagliato e gli screenshot. Sto usando TeamViewer portatile e non ho diritti di amministratore. L'opzione VPN è disattivata e non posso utilizzarla.
user1026169

1

Dovresti essere in grado di impostare il port forwarding (porta 22) sul router / firewall di casa. E poi connettiti al tuo indirizzo IP pubblico a casa quando sei al lavoro. Puoi usare qualcosa come dyndns se non hai un IP pubblico statico a casa.


Il port forwarding non è possibile su nessuna delle mie macchine a causa della rete che le serve. Non ho una configurazione IP, tuttavia non ci sono porte che posso usare per connettere le macchine.
user1026169

0

È possibile utilizzare un server XMPP / Tox pubblico come "terzo server". Vale a dire, ci sono progetti come Tuntox e PPPoAT (PPP su qualsiasi trasporto), che utilizzano questi protocolli di messaggistica istantanea come livelli di trasporto.

Ho provato PPPoAT, che supporta XMPP e, a differenza di PWNAT, questo meccanismo funziona davvero per me.

Per utilizzarlo, sono necessari due account XMPP su qualsiasi server pubblico, uno per il server a cui si desidera accedere, un altro per il client. Dopo aver avviato pppoatsul server, quindi sul client (entrambi con i parametri di configurazione appropriati), è possibile avviare immediatamente la connessione come ad es

ssh username@10.0.0.2

Sarà più lento della connessione diretta, ovviamente, e la velocità dipenderà molto probabilmente dal server XMPP scelto, ma per la normale attività della console è abbastanza buono.

Per quanto riguarda la sicurezza, SSH può funzionare in una rete totalmente insicura, poiché implementa già la propria crittografia, quindi se la connessione basata su XMPP è sicura è effettivamente irrilevante quando si utilizza SSH.

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.