Question redirection de port sous Linux sans root ni ssh


Je me demandais s'il était possible d'obtenir un transfert de port sans être root ou ssh.

Actuellement je fais

ssh -L 20080:othermachine:80 localhost

Utiliser ssh peut vous apporter certains avantages, comme la création de tunnels cryptés, etc. Dans l'exemple ci-dessus, je ne le fais pas, donc l'utilisation de ssh semble inutile. Y a-t-il un moyen plus facile de le faire?

Je suppose que ce n'est pas si difficile de créer un programme qui lit toutes les données sur un socket et l'envoie à un autre et vice versa. Il doit y avoir un outil qui fait ce travail mieux que je ne pourrai jamais écrire.


4
2017-10-03 08:53


origine


Vous n'auriez pas besoin de root pour cet exemple. - Arjan
Je pense que j'aurais dû préciser que je n'avais pas de problème particulier. C'était plus que, même si cela fonctionnait, je pensais qu'il devait y avoir d'autres solutions qui pourraient être meilleures. (Comme pour la partie racine, je pourrais utiliser le transfert de port avec iptables, mais cela nécessiterait root.) - BlackShift


Réponses:


Je préférerais aussi ssh PARCE QUE le cryptage, mais 'socat«Ça devrait bien marcher pour toi aussi.


8
2017-10-03 09:04



Merci! jamais entendu parler de socat, ce programme peut faire beaucoup plus que ce que j'espérais. Je suis sûr que je trouverai plus d'utilisations que la redirection de port. - BlackShift


Tu demandes: Is there an easier way to do this?  La réponse simple serait "non". SSH fait ce dont vous avez besoin, et c'est un programme bien utilisé, bien connu et très efficace avec très peu de bogues, j'imagine, il est disponible sur toutes les plates-formes imaginables, et il est sécurisé pour démarrer. Vous ne déclarez pas que la performance est un problème, donc je ne vois pas de raison de ne pas utiliser SSH, personnellement.

Si vous souhaitez transférer un port local vers un port sur un autre ordinateur, vous avez besoin de quelque chose qui s'authentifiera sur cet hôte distant. C'est SSH. Si vous ne voulez que gâcher avec les ports locaux, alors comme déjà mentionné, socat peut-être juste ce que vous recherchez.


3
2017-10-03 14:35



Il n'y avait pas de raison spécifique de ne pas utiliser ssh pour le moment, mais je voulais élargir ma collection d'outils, et socat semble très puissant. (Akira a été la première à le proposer, alors j'ai vérifié sa réponse.) - BlackShift
btw, trois raisons pour lesquelles ssh n'est pas optimal: 1) il n'est pas disponible (comme sur mon téléphone, mais je doute d'y installer socat), 2) pas de sshd, ou dans mon cas un nombre limité de connexions autorisées, 3) pas de compte sur la machine distante (donc un tunnel chiffré / compressé n'est pas possible de toute façon) - BlackShift
Un autre cas où ssh n'est pas optimal est lorsque vous déplacez de grandes quantités de données et que vous disposez d'une puissance de traitement limitée. La charge du processeur imposée par le cryptage ssh est importante dans ce cas et ralentit également les transferts. Cependant, cela ne signifie pas que vous pouvez négliger la sécurité pour des raisons de performances, mais dans certains cas, la couche de sécurité est inutile (par exemple, lorsque vous communiquez sur un réseau privé). - wojtow


Si ce que vous faites fonctionne et que vous ne rencontrez aucun problème de performance, je ne changerais rien. Si vous ne transférez pas de grandes quantités de données, cela ne devrait pas avoir beaucoup d'impact. Et si vous l'êtes, ssh peut compresser les données pour que vous soyez encore mieux lotis.

Le seul problème pourrait être la latence. Il semble que vous ayez du tunneling sur le trafic http, il devrait donc être négligeable.


1
2017-10-03 13:48



(De man ssh: La compression est souhaitable sur les lignes de modem et autres connexions lentes, mais ne fera que ralentir les choses sur les réseaux rapides.) - Arjan
J'ai vu ça, mais je ne suis pas tout à fait d'accord. Cela dépend de la vitesse du réseau, de la vitesse du réseau et de la quantité de données déplacées. J'ai eu une bonne expérience en l'utilisant pour de grandes quantités de données (plusieurs gigaoctets) sur des réseaux GigE utilisant des serveurs rapides. - KeithB


Juste un petit mot, il semble que ncat qui vient avec le nouveau nmap 5 peut faire des choses similaires comme socat: http://nmap.org/ncat/


1
2017-11-30 15:55





Quel que soit l'outil que vous utilisez: lorsque vous n'utilisez pas Windows, vous toujours (et seulement) doivent être exécutés avec des privilèges de superutilisateur lors de l’utilisation de ports privilégiés ("ports connus"). Donc: lorsque vous utilisez des ports jusqu’à 1023 inclus.


0
2017-10-03 14:03



le transfert vers un port bas (qui écoute déjà) ne nécessite pas de privilèges de superutilisateur, uniquement pour le port acceptant (qui était 10080 dans mon exemple). - BlackShift