Connessione SSH su VPN


11

Abbiamo un server AWS EC2 che abbiamo configurato per essere accessibile (tramite SSH) solo dalla nostra rete dell'ufficio. Ovviamente questo non è l'ideale per gli accordi remoti in cui qualcuno deve connettersi all'istanza EC2 e lavora in remoto fuori dall'ufficio, ad esempio durante un viaggio d'affari.

Sono riuscito a configurare una VPN tramite PPTP e posso collegarmi alla rete dell'ufficio (ho due IP locali uno da wlan0 e uno da ppp0) indipendentemente da dove mi trovo. Tuttavia, quando eseguo l'accesso SSH all'istanza EC2, mi respinge ancora molto probabilmente perché vede che sto ancora cercando di ssh dall'esterno della rete.

Immagino che il problema sia che non riesco a instradare il traffico ssh per passare attraverso la VPN. Qualche idea su come posso farlo?

L'altra mia opzione è quella di inviare SSH a una macchina all'interno della rete dell'ufficio e quindi utilizzare quella macchina per SSH all'istanza EC2, ma sono stato titubante nel farlo poiché sembra eccessivo.


La risposta breve è indirizzare il tuo traffico SSH attraverso la VPN. E usa qualcosa di un po 'più sicuro di PPTP.
Hyppy,

Risposte:


15

Supponiamo che il tuo AWS sia raggiungibile tramite SSH su IP "tuo.ec2.ip.address". Supponiamo che la tua rete dell'ufficio abbia accesso a Internet tramite un router che applica alcune traduzioni NAT e, come tale, i tuoi PC dell'ufficio sono visti, su Internet, con IP "your.office.external.ip".

Supponiamo anche che ti trovi all'esterno del tuo ufficio, con il tuo laptop collegato in tutto il mondo, con:

  • un indirizzo IP principale assegnato dal tuo provider Internet locale (supponiamo che 192.168.0.33 con la maschera di rete 255.255.255.0 e def-gw 192.168.0.1);
  • un indirizzo PPP0, assegnato al tuo laptop dal tuo server PPTP remoto (una volta stabilito con successo il tunnel VPN). Supponiamo che PPP0 sia the.local.ppp0.ip con P2P remoto the.remote.pptp.address. In altre parole, il tuo laptop sa di essere the.local.ppp0.ip e sa anche che dall'altra parte del tunnel VPN c'è il tuo server PPTP raggiungibile, tramite la VPN, all'indirizzo the.remote.pptp.address.

In tale scenario, se non sei in grado - dal tuo notebook - di raggiungere il tuo AWS su "indirizzo.ec2.ip.adress" Scommetto che il problema è - come indovini - instradamento: il tuo traffico SSH diretto a " your.ec2.ip.address " NON sta lasciando il tuo netbook all'interno della VPN, ma, invece, sta lasciando il percorso comune, esterno-VPN, (aka: viene inviato al gateway locale: 192.168.0.1).

Per diagnosticare questo problema, è possibile eseguire un controllo molto semplice con:

  • Linux: il comando tracepath (es .: "tracepath -n your.ec2.ip.address")
  • windows: il comando "tracert" (es .: "tracert -d your.ec2.ip.address")

Dall'output è possibile verificare se il secondo passaggio riporta gli indirizzi PPTP o meno.

Se il tuo traffico procede lungo il percorso sbagliato, la soluzione semplice per instradarlo all'interno della VPN è:

  • Linux: "route add -host your.ec2.ip.address gw the.remote.pptp.address"
  • Windows: "route aggiungi la tua maschera.ec2.ip.address 255.255.255.255 the.remote.pptp.address"

Dopo aver configurato il percorso sopra, è possibile ricontrollare il routing con tracert / tracepath

Una volta che il routing è configurato correttamente, c'è una probabilità minore che possano sorgere problemi all'interno del tuo ufficio: se il tuo server PPTP NON sta eseguendo l'inoltro IP e le traduzioni NAT, c'è un'alta probabilità che tu sperimenti il ​​"filtraggio", in caso di mancante inoltro ip o "instradamento asimmetrico" (in caso di NAT mancante) tra il notebook e l'indirizzo.ec2.ip.:

  • traffico da te verso Amazon, viaggia lungo la VPN verso il tuo ufficio e, da allora, verso Amazon;
  • restituisci il traffico da Amazon a te, viene instradato lungo il percorso Internet comune e ... le probabilità sono alte è lasciato cadere da qualche parte.

Ancora una volta: tracepath / tracert può aiutarti a controllare il problema.

Su Linux box, un altro amico molto utile è "tcpdump". Alcuni utili comandi di tcpdump sono:

  • "tcpdump -n -i interface icmp" per verificare la richiesta / risposta PING in entrata / in uscita;
  • "tcpdump -n -i host an.ip.add.ress " per controllare il traffico in arrivo / inviato a an.ip.add.ress;
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.