mosh tunnel via proxy


16

Sono un fan crescente di Mosh e lo sto usando sempre di più quando ho collegamenti wifi inaffidabili. Quello che sto cercando di capire è come costruire un tunnel attraverso un server che si trova in una DMZ (connessa a Internet e alla rete firewall).

La mia attuale soluzione con ssh è modificare .ssh / config per includere linee come:

Host server-behind-firewall
  ProxyCommand ssh server-in-dmz nc %h %p

Ho anche capito come posso usare ssh per fare una gamba e mosh l'altra:

ssh -t server-in-dmz mosh server-behind-firewall

Tra server-in-dmz e server-behind-firewall ho una sessione mosh truccata usando lo schermo.

Ma quello che mi piacerebbe davvero usare mosh dall'inizio alla fine. Immagino che dovrei sistemare server-in-dmz per ascoltare un mosh-server. Ma la pagina man di mosh-server dice "Uscirà se nessun client lo ha contattato entro 60 secondi."

In breve, la domanda è: come costruire un tunnel mosh con più host?


Risposte:


5

Potresti provare stone , che è un ripetitore di pacchetti TCP e UDP. Ciò significa essenzialmente che potresti avere la seguente configurazione:

È <---> Stone su server-in-dmz <---> server-dietro-firewall

In parole povere, avere server-in-dmz in ascolto sulla porta X per i pacchetti SSH da inoltrare al server dietro firewall, e anche un'altra porta, porta Y, per i pacchetti UDP che inoltrano alla porta 60000 sul server dietro firewall pogare-server.

Dovrai connetterti a mosh usando il seguente comando:

mosh -p 60000 --ssh='ssh -p PORT_X' server-in-dmz

3
Una cosa interessante da notare è che l'utilizzo di applicazioni di intercettori tcp come tsocks o proxychain non funzionerà. Questo perché intercettano solo i pacchetti TCP e non UDP (che è ciò che usa mosh).
Hengjie,

come posso usare stone con un indirizzo ipv4 e un indirizzo ipv6?
Janus Troelsen,

0

Invece di inoltrare il traffico sul livello applicazione, come suggerito da @Hengjie, puoi anche usare iptables (su server-in-dmz):

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 11559 -j DNAT --to-destination 178.254.55.220:22
iptables -t nat -A PREROUTING -p udp -m udp --dport 60159:60168 -j DNAT --to-destination 178.254.55.220
iptables -t nat -A POSTROUTING -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

Quindi, ti connetti utilizzando mosh -p 60159 --ssh='ssh -p 11559' server-in-dmz

Nota:

  • Non sembra esserci un modo per inserire mosh-port nei file di configurazione. :(
  • Ho scelto le porte a caso.
  • Potresti volere qualche ulteriore configurazione di iptables se lo fai ...
  • Modifica: è meglio DNAT un'intera gamma di porte, poiché ci sono buone probabilità che tu uccida accidentalmente il client mosh senza portare il server con esso. Se non inoltri un intervallo, dovrai ssh sul tuo server e uccidere il server mosh in esecuzione. Può essere leggermente fastidioso se hai una cattiva connessione in primo luogo.
  • Il mio caso d'uso per questo è mosh attraverso iodio.
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.