socat

Astuces

“SSLifier” un service réseau à l’arrache

Besoin de rendre accessible temporairement un service via SSL ? socat est votre ami :

socat OPENSSL-LISTEN:443,cert=certificat.crt,key=certificat.key,verify=0,reuseaddr,fork TCP4:localhost:80

Accéder à une socket UNIX locale sur une machine distante

À l’aide de socat, vous pouvez créer une passerelle vous permettant d’utiliser localement une socket UNIX située sur un serveur distant.

Sur le serveur distant :

socat TCP-LISTEN:6666,reuseaddr,fork UNIX:/var/run/socket.sock

Sur la machine locale :

socat TCP:serveur.loin.com:6666 UNIX-LISTEN:/var/run/socket.sock,fork

Vous pouvez à présent utiliser la socket /var/run/socket.sock comme si vous étiez sur le serveur distant.

⚠️ Attention, cette méthode créé une faille de sécurité potentielle : ne faites ceci que sur un réseau de confiance, et en aucun cas sur Internet sans firewall !

Accéder à une socket UNIX en shell

echo blah | socat unix-connect:/var/run/socket.sock stdio