HeadlinesBriefing HeadlinesBriefing.com

Tunnels HTTP auto-hébergés avec SSH et Nginx

Hacker News •
×

Un ami veut relire votre article de blog en cours de rédaction, mais son aperçu ne fonctionne que sur localhost:8080. Plusieurs outils peuvent aider. Certains fonctionnent en tant que service commercial, comme ngrok ou Cloudflare Quick Tunnels. Certains sont auto-hébergés mais nécessitent un client spécifique, comme frp ou localtunnel. Certains ne nécessitent qu'un client SSH simple mais dépendent d'un serveur SSH spécifique, comme sish. Mettons en œuvre une solution auto-hébergée avec uniquement Open SSH et nginx !

Tout d'abord, nous redirigeons les connexions depuis un port sur un serveur distant vers votre service local : `$ ssh -N -R 0:localhost:8080 web02.luffy.cx`. Lorsque vous spécifiez `0` comme port distant, le serveur attribue un port libre, tel que 41535. Ensuite, nous configurons nginx pour qu'il proxy les requêtes depuis `https://p41535.ssh.luffy.cx` vers `http://127.0.0.1:41535` en utilisant un bloc de serveur qui correspond au port dans le nom de domaine.

Nous devons également ajouter des enregistrements DNS pour `*.ssh.luffy.cx` et obtenir un certificat wildcard via Let’s Encrypt. Dans mon cas, Nix OS obtient les certificats automatiquement. Le contrôle d'accès est réalisé grâce au module ngx_http_secure_link_module, qui calcule un hachage sur un ensemble de valeurs, incluant un secret, et le compare avec le hachage de la requête. Le hachage est encodé en base64 et placé dans l'URL sous forme de nom d'utilisateur, accompagné de son horodatage d'expiration.

Entités clés : Entreprises : Cloudflare, Let's Encrypt | Lieux : localhost:8080, web02.luffy.cx, p41535.ssh.luffy.cx, ssh.luffy.cx, acme.luffy.cx, Route 53

Source: Hacker News · Résumé par HeadlinesBriefing