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!


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.


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.


2

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


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.


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).


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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.