Comment acheminer mon Internet via un tunnel SSH?

24

Ancien Q Comment configurer un serveur OpenVPN sans privilèges root?

Existe-t-il un moyen de configurer un serveur OpenVPN sans privilèges root? Par exemple, avec des fichiers de configuration dans mon répertoire personnel? Si oui, comment le configurer?

J'essaie de SSH dans un système et de configurer un serveur OpenVPN là-bas pour un usage personnel.

MODIFIER

Puisqu'il est évident qu'OpenVPN a besoin des privilèges root, je change la question en routant mon Internet en utilisant SSH que je peux facilement configurer.

Oxwivi
la source
Par "espace utilisateur", voulez-vous dire dans un dossier personnel sans autorisations root? Habituellement, "espace utilisateur" est utilisé comme l'opposé de "espace noyau".
Lekensteyn
@Lekensteyn, oui sans autorisation root, je ne savais pas que l'espace utilisateur faisait référence à autre chose. N'hésitez pas à modifier ma question en quelque chose de approprié. Je pensais également à cette réponse, mais je ne sais pas comment configurer les choses sans privilèges root.
Oxwivi

Réponses:

32

sshuttle est un serveur proxy transparent qui transfère sur une connexion SSH et configure un proxy en exécutant des scripts Python sur le serveur distant. sshuttlepeut être exécuté dans les conditions suivantes:

  • la machine ou le routeur client est basé sur Linux, FreeBSD ou Mac OS
  • privilèges administratifs sur le client
  • accès au réseau distant via SSH
  • aucun privilège administrateur sur le réseau distant
  • disponibilité de Python sur un serveur distant

Installez sshuttleentrez la description de l'image ici depuis le centre logiciel ou le terminal:

sudo apt-get install sshuttle

La commande de base pour exécuter sshuttle avec routage de tout le trafic est:

sshuttle -r username@sshserver:port 0/0

Lors de l'exécution de la commande, une sudoinvite de mot de passe apparaîtra et ensuite le mot de passe pour le compte SSH. Aucun autre détail n'apparaîtra à l'exception d'un court message et reviendra au shell en cas d'échec. Pour plus de messages d'état, exécutez sshuttleen mode détaillé avec l' -vindicateur.

Dans cet exemple, tout le trafic Internet, à l'exception du DNS, est acheminé via le VPN. -rflag indique le nom d'hôte distant et le nom d'utilisateur et le port facultatifs qui suivent dans l'exemple ci-dessus. 0/0est l'abréviation de 0.0.0.0/0qui représente les sous-réseaux à acheminer via le VPN. L'utilisation de 0/0routes tout le trafic sauf les requêtes DNS vers le serveur distant. L'optimisation DNS est possible avec l'utilisation du -Hdrapeau.

Veuillez lire la page de manuel ( man sshuttle) pour les détails des options et des modes sous lesquels sshuttlepeuvent s'exécuter. Pour plus d'informations sur le concept et d'autres exemples, reportez-vous à la page du projet .

André Paramés
la source
les chaussettes rouges méritent également d'être examinées; mêmes caractéristiques, exécution légèrement différente
sanmai
17

Vous ne pouvez pas configurer OpenVPN sans privilèges root car certaines opérations le nécessitent.

  • Prérequis: vous devez activer le transfert de paquets dans votre pare-feu (iptables?)
  • Ajout d'appareils en fonctionnement: un appareil virtuel spécial doit être ajouté à l'aide de ifconfig. Sinon, aucune communication n'est possible entre le serveur et le client

Selon vos besoins, d'autres solutions sont disponibles. Pour parcourir votre serveur, vous pouvez configurer un serveur SOCKS.

Proxy SOCKS

La configuration d'un proxy SOCKS n'est pas difficile: elle est intégrée à OpenSSH. Pour activer le serveur SOCKS, exécutez la commande suivante dans un terminal :

ssh user@host -D1234

Remplacez 1234 par votre port préféré. Dans votre navigateur, vous pouvez entrer localhostcomme hôte et 1234comme port sur le serveur SOCKS4 / 5.

Voici un exemple dans le navigateur Firefox:

  1. Allez dans Edition -> Préférences
  2. Ouvrez la section Avancé
  3. Accédez à l' onglet Réseau
  4. Appuyez sur Paramètres
  5. Sélectionnez Configuration manuelle du proxy
  6. Entrer localhostcomme hôte SOCKS
  7. Entrez 1234comme port (le même port que celui spécifié dans la commande SSH)
  8. Appuyez sur OK et sur Fermer pour fermer les boîtes de dialogue des préférences.

Exemple de configuration de FIrefox

Lekensteyn
la source
1
Je souhaite acheminer mon Internet via le système sur lequel je souhaite configurer le VPN.
Oxwivi
Malheureusement, vous ne pouvez pas modifier les règles de routage sur le serveur sans privilèges root. Une solution qui fournit au moins une solution sécurisée pour la navigation consiste à utiliser un proxy SOCKS comme décrit dans la réponse.
Lekensteyn
1
J'ai réussi à acheminer mon Internet via le tunnel SSH. Dois-je modifier votre réponse pour y faire spécifiquement référence lorsque j'ai modifié la question? Ou le ferez-vous?
Oxwivi
@Oxwivi: Je vais le réorganiser et j'ai ajouté un exemple pour Firefox.
Lekensteyn
-1

Si vous souhaitez uniquement tunneler le trafic TCP de vos systèmes, je recommande d'utiliser un programme appelé tun2socks. Si vous souhaitez également tunneler le trafic UDP, vous devez installer udpgw sur votre serveur.

Voici un didacticiel sur l'installation et l'utilisation de ces programmes: http://board.nwrk.biz/viewtopic.php?id=3

giri
la source
4
Pourriez-vous mettre à jour votre réponse et expliquer les étapes les plus importantes de votre lien ici? De cette façon, cette réponse sera toujours utile même si le site a disparu.
Louis Matthijssen