1 votes

Remplacer l'écouteur tcp script pour qu'il utilise un fichier sock à la place

J'ai un programme qui, lorsqu'il est exécuté, lance une liste sur le port 12345.

$ ./cool_script.pl

Mon administrateur linux dit qu'il est contraire à la politique d'ouvrir des ports. Il dit que je suis autorisé à utiliser ~/cool_script.sock (socket de domaine unix) pour la communication. Apparemment, son serveur nginx peut lire et écrire sur le sock comme s'il s'agissait d'un port tcp.

Quoi qu'il en soit, existe-t-il un moyen d'envelopper un exécutable (./cool_script.pl) de sorte que sa tentative d'ouverture d'un port d'écoute soit redirigée vers un fichier .sock.

Ce que j'ai essayé : lire la documentation de socat

0voto

Patrick Mevzek Points 409

Cet exemple devrait vous convenir : https://coderwall.com/p/c3wyzq/forwarding-tcp-traffic-to-a-unix-socket

En principe :

Forwarding port 15432 to socket /srv/mongodb-27017.sock:

socat -d -d TCP4-LISTEN:15432,fork UNIX-CONNECT:/srv/mongodb-27017.sock

0voto

Schof Points 952

Vous devrez modifier le fonctionnement du programme. Faites-le écouter sur un Socket Unix au lieu de TCP. En supposant que le programme soit lié dynamiquement à la bibliothèque standard (pratiquement tous les programmes le sont), vous n'avez pas besoin de modifier le programme lui-même, mais seulement la façon dont vous l'exécutez. Vous pouvez le faire avec LD_PRELOAD en chargeant un wrapper pour la fonction d'ouverture de socket TCP qui ouvre à la place un socket Unix. ttu fait précisément cela (d'après sa documentation, je ne l'ai jamais utilisé).

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