Comment accéder à une machine derrière une passerelle NAT restreinte que je ne gère pas?

J'ai une machine linux que j'aimerais pouvoir accéder à distance pour SSH, FTP, HTTP, et ainsi de suite. Je me suis inscrit à DNS Dynamique avec No-IP.com, mais ce n'est pas suffisant car je suis sur un réseau de campus universitaire, derrière un NAT, et je n'ai pas l'autorisation d'accéder au routeur pour configurer le transfert de port. Je ne sais pas si les routeurs du campus supportent UPnP ou NAT-PMP mais j'en doute.

Quoi qu'il en soit, je me demandais s'il y avait un moyen de contourner cela en utilisant un VPN. Je sais qu'un VPN me permettrait, par exemple, d'accéder à ma machine Linux depuis mon ordinateur portable si j'avais le logiciel VPN installé sur les deux machines. Mais j'aimerais pouvoir accéder à mon linux depuis n'importe quel ordinateur, sans devoir installer de logiciel. Ou à tout le less être en mesure d'accéder à la partie HTTP de cette façon. Et bien que je sache que de nombreux services VPN offrent des interfaces web pour le transfert de files, etc., je préférerais pouvoir accéder à ma boîte Linux en utilisant un logiciel client FTP et SSH.

Quoi qu'il en soit, est-ce quelque chose que vous pouvez faire avec un VPN? Ou existe-t-il un moyen d'enstringr un VPN avec le DNS dynamic? J'ai regardé le site Web pour Hamachi VPN, mais il a décrit toutes les fonctionnalités dans des termes non techniques, donc je n'ai pas pu comprendre ces questions et je préférerais savoir avant de créer un count.

Du coup, le pare-feu de votre campus n'autorise aucune connection depuis l'extérieur du campus vers votre ordinateur. Donc, afin de se connecter à votre machine, vous devrez initier la connection de l'intérieur.

Vous devrez donc établir une connection entre votre machine à dortoir D et une machine externe E à l'extérieur du campus. Ensuite, lorsque vous souhaitez vous connecter à votre ordinateur dortoir à partir de certains clients C, connectez-vous à E et configurez E pour qu'il relaie la connection.

Pour la connection D → E, vous pouvez utiliser un VPN. Cela nécessite un access au niveau racine sur D et E. Un VPN donne une connectivité IP entre D et E, donc de C vous pouvez accéder à n'importe quel service réseau sur D que E est prêt à router entre C et D.

Une solution plus légère consiste à établir une connection SSH à partir de D et E, ce qui nécessite seulement un count shell des deux côtés (et E doit autoriser SSH, bien sûr). De D, courir

ssh -R 2242:localhost:22 E sleep 999999999 

Cela crée un redirection de port de E vers D: toute connection faite avec E sur le port 2242 est relayée à D sur le port 22. Le port 22 est le port ssh, donc quand vous exécutez ssh -p 2242 E , cela vous connecte à D, où vous pouvez vous connecter. Pour l'automatiser, vous pouvez définir un alias dans ~/.ssh/config comme suit (PuTTY a des parameters similaires, consultez son manuel):

 Host dorm UserName bob HostName E Port 2242 

Vous pouvez router plusieurs ports de cette façon. Par exemple, pour relayer également le port 8042 sur E sur le port 80 sur D:

 ssh -R 2242:localhost:22 -R 8042:localhost:80 E sleep 999999999 

Vous devrez réexécuter cette command chaque fois que votre connection réseau démarre sur D.

Si vous avez une machine qui ne se trouve pas derrière NAT (c'est-à-dire librement accessible depuis Internet), vous pouvez l'envoyer depuis la machine sur le campus et transférer les ports distants arbitraires vers les ports locaux appropriés (sur la machine de campus) l'option pour OpenSSH est -R . Vous vous connecteriez ensuite au port transféré sur la machine non-NATed et le SSH de l'ordinateur du campus apatherait datatables par le biais du NAT du campus. Un peu maladroit, mais ça marche.

Un VPN peut résoudre cela, oui.

Plus précisément, vous aurez besoin d'un VPN qui autorise le transfert de port. Je n'ai qu'une expérience avec Mullvad et ils le font, mais je suis sûr que beaucoup d'autres VPN fournissent aussi cela.

Avec la plupart des services, vous ne pouvez probablement pas attendre de transférer des ports arbitraires (22 pour ssh par exemple), vous devrez donc utiliser un port «random» de numéro élevé. Mais la configuration de ssh / ftp pour cela devrait être très simple.