Αρχιτεκτονική προσέγγιση του tunnel
Η δημιουργία ενός tunnel για την έκθεση υπηρεσιών που τρέχουν σε localhost απαιτεί συνήθως εξειδικευμένα εργαλεία. Η προτεινόμενη λύση απλοποιεί τη διαδικασία χρησιμοποιώντας το OpenSSH για τη δημιουργία ενός ασφαλούς καναλιού επικοινωνίας. Με την εντολή ssh -R 0:localhost:8080, ο server δεσμεύει αυτόματα μια ελεύθερη θύρα, την οποία στη συνέχεια το Nginx αναλαμβάνει να προωθήσει (proxy) μέσω ενός wildcard domain.
Ασφάλεια και έλεγχος πρόσβασης
Το κρίσιμο σημείο της υλοποίησης είναι η προστασία της δημόσιας πρόσβασης. Αντί για απλή έκθεση της θύρας, χρησιμοποιείται το ngx_http_secure_link_module. Το σύστημα παράγει ένα hash που περιλαμβάνει την ημερομηνία λήξης, τη θύρα και ένα μυστικό κλειδί (secret). Αυτό το hash ενσωματώνεται στο URL ως username, επιτρέποντας στο Nginx να επικυρώνει το αίτημα πριν προχωρήσει στο proxy_pass.
Αυτοματοποίηση και developer experience
Η δυσκολία εντοπισμού της δυναμικά ανατεθείσας θύρας από το SSH επιλύεται με ένα βοηθητικό script. Το script αναλύει την ιεραρχία των διεργασιών sshd-session και χρησιμοποιεί το ss (socket statistics) για να εντοπίσει τη θύρα που αντιστοιχεί στο συγκεκριμένο session. Με την προσθήκη ενός RemoteCommand στο ~/.ssh/config, η διαδικασία γίνεται διαφανής για τον χρήστη, προσφέροντας μια εμπειρία εφάμιλλη εμπορικών λύσεων όπως το ngrok, αλλά με πλήρη έλεγχο της υποδομής.