Routage de tout le trafic via le proxy de chaussettes à l'aide de ssh -D

9

est-ce un moyen simple d'acheminer tout le trafic via un proxy ssh avec -D?

Je peux configurer des applications spécifiques individuelles pour ce faire, mais je voudrais une configuration qui achemine tout le trafic sur la machine. Merci de votre aide!

grm
la source
J'ai oublié de dire que j'étais sur Linux si bien, quelque chose par lequel je peux router en utilisant iptables.
grm

Réponses:

10

Sous Linux:

  1. iptables -t nat -Une SORTIE! -d 127.0.0.0/8 -j REDIRECT --to 1081
  2. Exécutez le programme qui écoute 1081, récupère l'adresse de destination réelle non redirigée, négocie avec le serveur SOCKS et les relais.

J'ai écrit un tel programme pour un usage privé en Perl (qualité prototype) et écrit une meilleure version en C. Il n'est pas encore publié.

Mise à jour: maintenant publié: http://github.com/vi/socksredirect/ Utilisez prototype.pl. Envoyez-moi un avis si vous êtes intéressé par le développement d'une meilleure version.

Mise à jour 2 Créé une version un peu meilleure: http://github.com/vi/tcpsocks et un correctif pour Socat 2: http://github.com/vi/socksredirect/blob/master/socat-2.0.0- b3-REDIRECT.patch

PS La plupart de mon trafic (et parfois de certains de mes voisins) passe maintenant par le tcpsocks-> ssh.

Vi.
la source
Projet très intéressant Vi. Merci! Je vais y jeter un œil.
grm
Vous devriez probablement utiliser plus de règles iptables pour sélectionner le trafic que vous souhaitez voir chaussé. J'utilise "iptables -t nat -A OUTPUT -j QQQ", puis un tas de "iptables -t nat -A QQQ <checks> -j RETURN" et enfin "iptables -t nat -A QQQ -p tcp -j REDIRECT - -à 1234 ".
Vi.
Je vous remercie! Je me demandais si c'était faisable, c'était sur ma longue liste d'idées de projets à essayer un jour.
Tobu
@Tobu, je l'ai implémenté davantage: maintenant il y a un patch Socat ( github.com/vi/socksredirect/blob/master/… ) pour cela et aussi un programme tcpsocks léger ( github.com/vi/tcpsocks )
Vi .
1
@Tanmay, Avec un périphérique tun, vous ne verrez que des paquets TCP et il serait difficile de les décoder en un flux d'octets (vous auriez besoin de quelque chose comme slirp). avec REDIRECT ou TPROXY, utilisez simplement l'habituel recvqui vous donne des données décodées sans en-têtes TCP.
Vi.
8

Avery Pennarun de sshuttle fonctionne comme Vi de réponse , mais nécessite moins d' installation et fonctionne sur BSD et Mac OS X ainsi que Linux.

éphémère
la source
2

Vous devriez peut-être envisager de configurer un VPN à la place.

Espennilsen
la source
Cela ne nécessiterait-il pas davantage d'accès du côté de la passerelle?
grm
J'ai une configuration de serveur VPN (poptop) à la maison sur Ubuntu. Et au travail, j'utilise simplement le client VPN intégré dans Windows pour s'y connecter. Pas la peine de prendre mon administrateur réseau ou quoi que ce soit.
Espennilsen
1

Je ne pense pas qu'il y ait moyen de le faire, mais vous pouvez peut-être essayer des programmes comme FreeCap (windows), SocksCap (windows) ou proxychains (linux). Ces programmes peuvent vous aider un peu.

Poisson à la vapeur
la source
0

Cela dépend du système d'exploitation que vous utilisez. Si vous êtes sous MacOS, il existe des paramètres de proxy globaux qui devraient être utilisés par chaque application, même s'il y en a qui ne les respectent pas (Firefox ie).

Sideshowcoder
la source
Avec MacOS en particulier, la confiance dans les paramètres globaux du proxy doit être vérifiée.
chiggsy
-1

Vous pouvez également utiliser quelque chose comme Proxifier ( http://www.proxifier.com/ ) pour Mac ou Windows.

Bien que cela ne réponde pas vraiment à votre question.

menthe
la source
réponse pas au point
Alex H