109 votes

Trafic UDP à travers un tunnel SSH

Le titre résume assez bien la situation. J'aimerais envoyer du trafic UDP à travers un tunnel SSH. Plus précisément, j'ai besoin de pouvoir envoyer des paquets UDP à travers le tunnel et que le serveur puisse me les renvoyer de l'autre côté. Je sais comment le faire pour les connexions TCP. Est-il possible de le faire avec UDP?

0 votes

Pouvez-vous publier comment le faire pour les connexions TCP ?

0 votes

@GabrielStaples la fonction mentionnée s'appelle "transfert de port". Vous pouvez simplement rechercher "transfert de port ssh". Voici l'un des résultats de recherche - help.ubuntu.com/community/SSH/OpenSSH/PortForwarding. J'espère que vous trouverez ce dont vous avez besoin.

0 votes

@VictorYarema, merci. J'ai aussi expérimenté et écrit un programme de redirection de port UDP de base en Python: socket_udp_port_forwarding.py dans mon dépôt eRCaGuy_hello_world. Je suis sûr que je pourrais le convertir en TCP aussi.

5voto

Michael Points 63

Un VPN est une meilleure solution si vous avez accès à un port UDP.

Si vous n'avez accès qu'au port SSH TCP, alors un tunnel SSH est aussi bon qu'un VPN, au moins pour le ping et le suivi des paquets.

1 votes

Une solution ssh unique ne suffira pas. ssh ne peut transférer que du trafic tcp. Pour de l'udp, vous devrez acheminer vos paquets udp sur un ou plusieurs sockets tcp comme ils le font dans les autres réponses.

3voto

canochordo Points 21

Sur le serveur ssh :

sudo ip tuntap add dev tun7 mode tun user SSHUSER
sudo ip addr add 192.168.7.1/30 dev tun7
sudo iptables -t nat -A PREROUTING -p udp -i eth0 --dport PUBLIC_PORT -j DNAT --to-destination 192.168.7.2:LOCAL_PORT
sudo iptables -t filter -A FORWARD -i eth0 -p udp -d 192.168.7.2 --dport LOCAL_PORT -j ACCEPT
sudo iptables -t filter -A FORWARD -i tun7 -o eth0 -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o tun7 -j MASQUERADE
# définir "PermitTunnel point-to-point" pour l'utilisateur SSHUSER dans /etc/ssh/sshd_config
sudo sshd -t && sudo systemctl restart sshd

remplacer eth0 par l'interface connectée à Internet

sur le client ssh exécutant le serveur udp :

sudo ip tuntap add dev tun8 mode tun user LOCALUSER
sudo ip addr add 192.168.7.2/30 dev tun8
ssh -v -w 8:7 SSHUSER@REMOTEHOST

vous pourriez également avoir besoin de sudo ip link set tun7 up sur l'hôte distant et de sudo ip link set tun8 up sur l'hôte local.

inspiré par le commentaire Trafic UDP à travers un tunnel SSH

0voto

Zach Sparks Points 9

Un red teamer expérimenté a réussi à le faire et l'a prouvé avec Wireshark, mais il a dû changer les paquets UDP en paquets TCP, les transmettre dans le tunnel ssh, puis les convertir de nouveau en paquets UDP vers le port UDP du destinataire de l'application.

1 votes

Veuillez consulter Comment rédiger une bonne réponse dans la section Aide. Je vous suggère d'éditer la réponse pour inclure comment exactement le problème a été résolu. Tel quel, ce n'est pas très utile, et sera probablement signalé pour sa longueur et sa qualité, et sera probablement supprimé. Ce serait acceptable en tant que commentaire, mais vous devrez accumuler un peu de réputation avant de pouvoir commenter.

0 votes

@Peregrino69, en réalité, c'est une réponse utile. Il est très utile de savoir que les paquets UDP ne peuvent pas être transférés par eux-mêmes. Ensuite, on peut décider de quelle approche utiliser. Par exemple, je peux demander à mon logiciel qui a besoin d'un tunnel d'utiliser TCP et les autres réponses que j'ai besoin de déchiffrer pour comprendre cela. Je n'ai pas besoin d'autres outils.

0voto

Utilisez sshuttle pour configurer un VPN via SSH sans avoir à configurer manuellement le mode tunnel. Il prend en charge UDP.

1 votes

Nous avons besoin de plus d'informations

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X