Chaque fois que j'utilise Internet depuis un emplacement non sécurisé (comme le wifi public), j'aime utiliser un tunnel ssh ( ssh -D port host
) pour m'assurer que mon trafic ne peut pas être reniflé. Malheureusement, de nombreuses applications ne permettent pas de spécifier un proxy (Flash en est un exemple majeur).
Il me semble qu’il devrait exister un moyen d’utiliser un tunnel pour tout le trafic réseau de mon ordinateur, mais je ne sais absolument pas comment procéder. Toute aide serait grandement appréciée.
Réponses:
Pour faire ce que vous voulez, je vous recommande sshuttle .
Vous l'utilisez comme ceci:
Il tunnelera tout votre trafic TCP automatiquement pour vous. Vous pouvez ajouter l'
--dns
argument pour qu'il tunnelise également votre trafic DNS. Python doit uniquement être installé sur le serveur distant.Si vous ne souhaitez que des programmes spécifiques du tunnel Je recommande proxychains .
Une fois installé, démarrez votre proxy ssh socks comme suit:
Cela lancera un proxy "SOCKS" à l’écoute sur <port local>.
Ensuite, éditez /etc/proxychains.conf pour qu'il pointe vers le même port que <port local>.
Enfin, démarrez votre programme que vous voulez utiliser comme proxy:
Cela devrait juste marcher. Cependant, quelques programmes auront du mal à travailler avec les chaînes proxy. N'oubliez pas non plus qu'avec Firefox, vous devez modifier des éléments supplémentaires sous about: config pour le forcer à effectuer des recherches DNS via le proxy au lieu de le contourner.
Remarque supplémentaire sur les navigateurs Web. S'ils prennent en charge les proxy socks, vous n'avez rien d'autre à faire pour les amener à utiliser le tunnel ssh mentionné ci-dessus. Il vous suffit d'entrer 127.0.0.1 pour le serveur proxy SOCKS et le <port local> pour le port de proxy.
EDIT 3/29/16
Étant donné que ce billet continue de recevoir des votes positifs, j'ai pensé le mettre à jour. Proxychains est toujours dans la plupart des dépôts Linux et fonctionne toujours sous Linux. Cependant, le projet est effectivement abandonné et ne fonctionne pas sous OSX. Pour Linux ou OSX, je recommande vivement de mettre à niveau vers un fork encore maintenu: proxychains-ng: https://github.com/rofl0r/proxychains-ng
En plus de fonctionner sous Linux et OSX, il est facile à compiler et supporte beaucoup mieux le tunneling DNS.
Je devrais également mentionner une autre option, qui est les chaussettes rouges. Cela fonctionne de la même manière que proxychains (-ng) et est probablement aussi dans votre référentiel dist: https://github.com/darkk/redsocks
la source
sshuttle -r root@host -x host 0/0
man ssh
donne un exemple de cela. Un vpn basé sur ssh:~~ snip ~~
Une fois cette nouvelle interface installée, il vous suffira d'en faire la route par défaut, ce qui est une question différente.
la source
Recherchez l'option "Tunnel" dans ssh. Cela crée un périphérique de tunnel auquel vous pouvez attribuer une adresse IP, puis vous modifiez la route par défaut pour utiliser ce tunnel.
la source
J'ai développé un logiciel qui vous permet de transférer tous les protocoles TCP et éventuellement UDP via un proxy SOCKS5, à l'échelle du système.
http://code.google.com/p/badvpn/wiki/tun2socks
Il peut même être installé sur un routeur pour transférer toutes les connexions des ordinateurs du réseau local.
la source
RÉSEAUX PRIVÉS VIRTUELS BASÉS SUR SSH ssh prend en charge le tunneling de réseau privé virtuel (VPN) à l'aide du pseudo-périphérique réseau tun (4), permettant ainsi à deux réseaux de se connecter en toute sécurité. L'option de configuration PermitTunnel de sshd_config (5) détermine si le serveur le prend en charge et à quel niveau (trafic de couche 2 ou 3).
la source
Je voulais juste préciser que (hôte ssh -D port) n’est pas un moyen 100% sécurisé de ne pas renifler le trafic. Ajouter (hôte ssh -D -c blowfish) serait un meilleur choix car vous ajoutez au moins le cryptage à votre session. Vous pouvez ajouter d’autres options, mais il est assez facile de taper simplement "man ssh" dans votre terminal ou sur Google pour obtenir une liste complète.
L'option que je pense que vous recherchez est la mise en place d'un VPN (réseau privé virtuel)
Consultez cet article pour comprendre la différence entre les deux ( SSH vs VPN ) ou une bonne version résumée avant de vous lancer dans la création de votre propre VPN. Si vous décidez d’utiliser la route VPN, je recommande OpenVPN , une documentation gratuite et abondante.
la source
ssh -2 -C -D [...]
(forcer SSH2, utiliser la compression) et abandonner le fichier-c
. selonman ssh
la liste de chiffrement de mon système dans SSH2 par défautaes128-cbc,3des-cbc,blowfish-cbc,[etc]
. Si vous le demandez,-c blowfish
vous risquez de vous retrouver avec SSH1, qui est beaucoup moins sécurisé que SSH2.Utilisez ces exemples:
Transférez le port 80 depuis un hôte distant vers 8888 sur votre localhost
Utilisez-le pour accéder aux services d'un hôte distant qui n'y sont disponibles que
Transférer le port 80 de votre serveur local vers 8888 sur un hôte distant
Utilisez cette option pour permettre à d’autres utilisateurs d’accéder à vos services: serveur Web ou autre.
À votre santé! :)
la source