web-dev-qa-db-fra.com

Comment se connecter à Internet via un serveur distant via une connexion SSH

J'ai un problème pour accéder à Internet via un serveur ssh-accessible

Situation

EDIT: FYI, mon système d'exploitation est Ubuntu 16.04, et IIRC, identique au serveur.

Ok, voici le deal.

  • Ma société me fournit un PC avec une connexion réseau (via un proxy), mais je n’ai pas accès à certaines ressources sur le réseau (je ne peux ni ajouter de PPA externe ni apt-get update après les avoir ajoutés manuellement, ni avoir accès à certaines sections de téléchargement de certaines applications. , mais peut toujours installer le package en utilisant apt-get install ou pip).
  • De plus, mon PC (ci-dessus) a accès à certains serveurs de mon entreprise via une connexion SSH. L'un d'eux (délibérément) dispose d'un accès illimité à Internet (ça sonne bizarre, mais c'est comme ça). J'ai demandé à mon patron si je pouvais d'une manière ou d'une autre connecter mon ordinateur à Internet sans restriction via ce serveur, et il m'a dit que c'était possible mais qu'il ne savait pas comment faire. Et pour info, bien qu'il ne m'encourage pas à le faire, je ne suis pas interdit.

Ma question

Est-il possible de faire ce que je viens de décrire? À partir de mon PC, accès (illimité) à Internet via un serveur distant (avec accès Internet illimité)

Ce que j'ai essayé jusqu'à présent

Pas beaucoup, en fait, parce que je ne sais pas comment chercher (difficile de trouver un mot clé) le problème. La plupart du temps, j'ai essayé de configurer le proxy afin de pouvoir résoudre (partiellement) le problème (pour PPA, j'ai essayé d'ajouter à source.list et d'ajouter le signe, d'ajouter des entrées de proxy à /etc/apt/apt.conf, ...). Toujours pas de bonbons pour le bébé. Si quelqu'un a besoin de voir l'erreur, dites-le-moi, mais je veux résoudre le problème complètement :(

Je suis reconnaissant de toute suggestion. Merci d'avance!

4
enamoria

D'accord. J'ai oublié cette question. Désolé, je devrais mettre à jour la situation plus tôt.
J'ai essayé certaines des suggestions ci-dessus. L'un d'eux fonctionne, les autres non (une erreur dont je ne me souviens plus, peut-être à cause de ma configuration). La solution est assez compliquée (je dois un peu google pour que cela fonctionne).

Une solution facile

Ensuite, un de mes collègues m'a suggéré d'utiliser sshuttle et au sein d'une seule commande, j'ai obtenu ce dont j'avais besoin. Tout ce que j'ai à faire est d'ouvrir un nouveau terminal, de saisir sshuttle -r username@serverIP 0.0.0.0/0 et de profiter du monde entier d'Internet. Parfois, il renverra une erreur et étrangement, il suffit de réessayer pour que cela fonctionne.

0
enamoria

Essayez le tunneling SSH/la redirection de port. Il y a beaucoup d'informations sur Internet. Lisez ceci: SSH/OpenSSH/PortForwardin g et tunneling SSH avec ubunt .

J'aime utiliser SSH chaussettes-proxy. Installer plink:

Sudo apt install plink

Exécutez la commande sur votre ordinateur local (client SSH) avec un accès restreint à Internet:

plink -ssh 111.111.11.111 -C -N -l user -D 127.0.0.1:8081

111.111.11.111 - l'adresse IP de votre serveur SSH distant avec un accès illimité et user - votre nom d'utilisateur du serveur SSH.

C'est tout. Maintenant vous avez le proxy SOCKS - tout le trafic via le proxy sera chiffré et routé via votre serveur SSH distant. Les paramètres du proxy sont les suivants: Host 127.0.0.1, port 8081.

Ajoutez ces paramètres en tant que paramètres de proxy à l'échelle du système Ubuntu et demandez aux navigateurs, bash, etc. d'utiliser le proxy système. Il est possible d’ajouter un proxy système avec l’interface utilisateur graphique de paramètres système d’Ubuntu (la mienne a des paramètres régionaux ukrainiens): enter image description here

Si vous voulez utiliser le proxy pour apt, lisez Configurez le proxy pour APT? , tenez uniquement compte du fait que vous avez socks-proxy. Par conséquent, les URL du proxy doivent être socks4://127.0.0.1:8081 ou socks5://127.0.0.1:8081 au lieu de http://127.0.0.1:8081, par exemple:

export http_proxy="socks4://127.0.0.1:8081"
5
Bob

Deux étapes pour utiliser le proxy Socks

Le proxy socks permet d'accéder facilement à Internet à l'aide d'un ordinateur proxy. Dans ce cas, le serveur dispose d'un accès illimité à Internet.

Étape 1: Configuration du proxy socks pour le bureau

Cela peut être fait au niveau du navigateur ou du système. Nous le ferons au niveau du système afin que tout programme souhaitant accéder à Internet utilise le proxy socks. Nous allons le faire en utilisant la ligne de commande.

Ouvrez un terminal sur votre bureau Ubuntu en utilisant Ctrl+Alt+T et entrez les lignes suivantes:

gsettings set org.gnome.system.proxy.socks Host 'localhost'
gsettings set org.gnome.system.proxy.socks port 1080
gsettings set org.gnome.system.proxy mode 'manual'

Cela acheminera tout le trafic Internet via le localhost:1080.

Étape 2: ssh avec quelques options

Supposons que le serveur a l'adresse IP aaa.bbb.ccc.ddd et que vous avez un compte d'utilisateur sur ce serveur appelé user007.

Dans le terminal, entrez:

ssh [email protected] 

Si cela fonctionne, vous êtes tous ensemble. tapez exit pour revenir du serveur au bureau. Maintenant, recommençons avec quelques options:

ssh -CD 1080 [email protected] 
  • C compresse tout ce qui se passe entre le poste de travail et le serveur.
  • Le D 1080 lie le port local 1080 au serveur.

Pour revenir à la normale

First, quitte la session ssh. Si vous ajoutez l’option -N dans le ssh, vous devrez utiliser Ctrl+C.

Deuxièmement changer le proxy en none:

gsettings set org.gnome.system.proxy mode 'none'

Si vous voulez être sophistiqué, vous pouvez combiner ces étapes dans un script bash, mais le travail sera fait.

#!/bin/bash 
gsettings set org.gnome.system.proxy.socks Host 'localhost'
gsettings set org.gnome.system.proxy.socks port 1080
gsettings set org.gnome.system.proxy mode 'manual'
ssh -CD 1080 [email protected]
gsettings set org.gnome.system.proxy mode 'none'
echo "Finished with the Internet, now back to work..."

Ce script définira le proxy socks, puis lancera le ssh. Lorsque vous quittez ssh, le proxy est désactivé.

J'espère que cela t'aides

3
user68186

Les autres réponses fonctionnent pour les choses qui ont un support pour SOCKS dans leur configuration. Lorsque l'outil que vous souhaitez utiliser n'est pas pris en charge, vous pouvez utiliser socksify à partir du package dante-client.

ssh -fND 1080 $server
SOCKS_SERVER=127.0.0.1:1080 socksify git fetch
1
JoL