Τρόπος χρήσης του SSH Tunneling για πρόσβαση σε περιορισμένους διακομιστές και ασφαλή περιήγηση

Ένας υπολογιστής-πελάτης SSH συνδέεται με έναν διακομιστή Secure Shell, ο οποίος σας επιτρέπει να εκτελείτε εντολές τερματικού σαν να καθόσασταν μπροστά από έναν άλλο υπολογιστή. Αλλά ένας πελάτης SSH σάς επιτρέπει επίσης να «διοχετεύσετε» μια θύρα μεταξύ του τοπικού σας συστήματος και ενός απομακρυσμένου διακομιστή SSH.

Υπάρχουν τρεις διαφορετικοί τύποι σήραγγας SSH και όλοι χρησιμοποιούνται για διαφορετικούς σκοπούς. Καθένα περιλαμβάνει τη χρήση ενός διακομιστή SSH για την ανακατεύθυνση της κίνησης από τη μία θύρα δικτύου στην άλλη. Η κυκλοφορία αποστέλλεται μέσω της κρυπτογραφημένης σύνδεσης SSH, επομένως δεν μπορεί να παρακολουθείται ή να τροποποιείται κατά τη μεταφορά.

Μπορείτε να το κάνετε με την sshεντολή που περιλαμβάνεται σε Linux, macOS και άλλα λειτουργικά συστήματα τύπου UNIX. Στα Windows, που δεν περιλαμβάνει ενσωματωμένη εντολή ssh, προτείνουμε το δωρεάν εργαλείο PuTTY για σύνδεση σε διακομιστές SSH. Υποστηρίζει επίσης τη σήραγγα SSH.

Προώθηση τοπικής θύρας: Κάντε πρόσβαση σε απομακρυσμένους πόρους στο τοπικό σας σύστημα

Η "Προώθηση τοπικής θύρας" σάς επιτρέπει να έχετε πρόσβαση σε πόρους τοπικού δικτύου που δεν εκτίθενται στο Διαδίκτυο. Για παράδειγμα, ας υποθέσουμε ότι θέλετε να αποκτήσετε πρόσβαση σε έναν διακομιστή βάσης δεδομένων στο γραφείο σας από το σπίτι σας. Για λόγους ασφαλείας, αυτός ο διακομιστής βάσης δεδομένων έχει ρυθμιστεί μόνο για αποδοχή συνδέσεων από το τοπικό δίκτυο γραφείων. Εάν όμως έχετε πρόσβαση σε έναν διακομιστή SSH στο γραφείο και ότι ο διακομιστής SSH επιτρέπει συνδέσεις από το εξωτερικό του γραφείου, μπορείτε να συνδεθείτε σε αυτόν τον διακομιστή SSH από το σπίτι και να αποκτήσετε πρόσβαση στο διακομιστή βάσης δεδομένων σαν να ήσασταν στο γραφείο. Αυτό συμβαίνει συχνά, καθώς είναι πιο εύκολο να ασφαλίσετε έναν διακομιστή SSH από επιθέσεις παρά να εξασφαλίσετε μια ποικιλία διαφορετικών πόρων δικτύου.

Για να το κάνετε αυτό, δημιουργείτε μια σύνδεση SSH με τον διακομιστή SSH και πείτε στον πελάτη να προωθήσει την κυκλοφορία από μια συγκεκριμένη θύρα από τον τοπικό υπολογιστή σας - για παράδειγμα, τη θύρα 1234 - στη διεύθυνση του διακομιστή της βάσης δεδομένων και της θύρας του στο δίκτυο γραφείων. Έτσι, όταν προσπαθείτε να αποκτήσετε πρόσβαση στο διακομιστή βάσης δεδομένων στη θύρα 1234, ο τρέχων υπολογιστής σας, "localhost", αυτή η κίνηση αυτόματα "διοχετεύεται" μέσω της σύνδεσης SSH και αποστέλλεται στον διακομιστή βάσης δεδομένων. Ο διακομιστής SSH βρίσκεται στη μέση, προωθώντας κίνηση πίσω και πίσω. Μπορείτε να χρησιμοποιήσετε οποιαδήποτε γραμμή εντολών ή γραφικό εργαλείο για να αποκτήσετε πρόσβαση στο διακομιστή βάσης δεδομένων σαν να εκτελείται στον τοπικό υπολογιστή σας.

Για να χρησιμοποιήσετε τοπική προώθηση, συνδεθείτε κανονικά με τον διακομιστή SSH, αλλά και παρέχετε το -Lεπιχείρημα. Η σύνταξη είναι:

ssh -L local_port: remote_address: remote_port [email protected]

Για παράδειγμα, ας υποθέσουμε ότι ο διακομιστής βάσης δεδομένων στο γραφείο σας βρίσκεται στη διεύθυνση 192.168.1.111 στο δίκτυο γραφείων. Έχετε πρόσβαση στον διακομιστή SSH του γραφείου ssh.youroffice.com, και ο λογαριασμός χρήστη σας στον διακομιστή SSH είναι bob. Σε αυτήν την περίπτωση, η εντολή σας θα μοιάζει με αυτήν:

ssh -L 8888: 192.168.1.111: 1234 [email protected]

Αφού εκτελέσετε αυτήν την εντολή, θα έχετε πρόσβαση στον διακομιστή βάσης δεδομένων στη θύρα 8888 στο localhost. Επομένως, εάν ο διακομιστής βάσης δεδομένων πρόσφερε πρόσβαση στο διαδίκτυο, θα μπορούσατε να συνδέσετε το // localhost: 8888 στο πρόγραμμα περιήγησής σας για πρόσβαση σε αυτό. Εάν είχατε ένα εργαλείο γραμμής εντολών που χρειάζεται τη διεύθυνση δικτύου μιας βάσης δεδομένων, θα το δείγατε στο localhost: 8888. Όλη η κυκλοφορία που αποστέλλεται στη θύρα 8888 στον υπολογιστή σας θα διοχετευτεί στο 192.168.1.111.11234 στο δίκτυο του γραφείου σας.

Είναι λίγο πιο συγκεχυμένο εάν θέλετε να συνδεθείτε σε μια εφαρμογή διακομιστή που εκτελείται στο ίδιο σύστημα με τον ίδιο τον διακομιστή SSH. Για παράδειγμα, ας υποθέσουμε ότι έχετε έναν διακομιστή SSH που εκτελείται στη θύρα 22 στον υπολογιστή του γραφείου σας, αλλά έχετε επίσης έναν διακομιστή βάσης δεδομένων που εκτελείται στη θύρα 1234 στο ίδιο σύστημα στην ίδια διεύθυνση. Θέλετε να αποκτήσετε πρόσβαση στο διακομιστή βάσης δεδομένων από το σπίτι, αλλά το σύστημα δέχεται μόνο συνδέσεις SSH στη θύρα 22 και το τείχος προστασίας δεν επιτρέπει άλλες εξωτερικές συνδέσεις.

Σε αυτήν την περίπτωση, θα μπορούσατε να εκτελέσετε μια εντολή όπως η ακόλουθη:

ssh -L 8888: localhost: 1234 [email protected]

Όταν προσπαθείτε να αποκτήσετε πρόσβαση στο διακομιστή βάσης δεδομένων στη θύρα 8888 στον τρέχοντα υπολογιστή σας, η κίνηση θα σταλεί μέσω της σύνδεσης SSH. Όταν φτάνει στο σύστημα που εκτελεί τον διακομιστή SSH, ο διακομιστής SSH θα τον στείλει στη θύρα 1234 στο "localhost", που είναι ο ίδιος υπολογιστής που εκτελεί τον ίδιο τον διακομιστή SSH. Έτσι, το "localhost" στην παραπάνω εντολή σημαίνει "localhost" από την προοπτική του απομακρυσμένου διακομιστή.

Για να το κάνετε αυτό στην εφαρμογή PuTTY στα Windows, επιλέξτε Σύνδεση> SSH> Σήραγγες. Ορίστε την επιλογή «Τοπική». Για το "Source Port", εισαγάγετε την τοπική θύρα. Για "Προορισμός", εισαγάγετε τη διεύθυνση προορισμού και τη θύρα με τη μορφή remote_address: remote_port.

Για παράδειγμα, εάν θέλετε να ρυθμίσετε την ίδια σήραγγα SSH όπως παραπάνω, θα εισαγάγατε 8888ως θύρα προέλευσης και localhost:1234ως προορισμό. Κάντε κλικ στο "Προσθήκη" στη συνέχεια και στη συνέχεια κάντε κλικ στο "Άνοιγμα" για να ανοίξετε τη σύνδεση SSH. Θα πρέπει επίσης να εισαγάγετε τη διεύθυνση και τη θύρα του ίδιου του διακομιστή SSH στην κύρια οθόνη «Συνεδρία» πριν από τη σύνδεση, φυσικά.

Προώθηση απομακρυσμένης θύρας: Κάντε πρόσβαση στους τοπικούς πόρους σε απομακρυσμένο σύστημα

Η "Προώθηση απομακρυσμένης θύρας" είναι το αντίθετο της τοπικής προώθησης και δεν χρησιμοποιείται τόσο συχνά. Σας επιτρέπει να διαθέσετε έναν πόρο στον τοπικό σας υπολογιστή στον διακομιστή SSH. Για παράδειγμα, ας υποθέσουμε ότι εκτελείτε έναν διακομιστή ιστού στον τοπικό υπολογιστή στον οποίο βρίσκεστε μπροστά. Αλλά ο υπολογιστής σας βρίσκεται πίσω από ένα τείχος προστασίας που δεν επιτρέπει την εισερχόμενη κυκλοφορία στο λογισμικό διακομιστή.

Υποθέτοντας ότι μπορείτε να αποκτήσετε πρόσβαση σε έναν απομακρυσμένο διακομιστή SSH, μπορείτε να συνδεθείτε σε αυτόν τον διακομιστή SSH και να χρησιμοποιήσετε προώθηση απομακρυσμένης θύρας Ο πελάτης SSH θα ζητήσει από τον διακομιστή να προωθήσει μια συγκεκριμένη θύρα - ας πούμε, θύρα 1234 - στον διακομιστή SSH σε μια συγκεκριμένη διεύθυνση και θύρα στον τρέχοντα υπολογιστή ή το τοπικό σας δίκτυο. Όταν κάποιος αποκτά πρόσβαση στη θύρα 1234 του διακομιστή SSH, αυτή η κίνηση αυτόματα θα «διοχετεύεται» μέσω της σύνδεσης SSH. Όποιος έχει πρόσβαση στον διακομιστή SSH θα μπορεί να έχει πρόσβαση στον διακομιστή ιστού που εκτελείται στον υπολογιστή σας. Αυτός είναι ουσιαστικά ένας τρόπος για τη σήραγγα μέσω τείχους προστασίας.

Για να χρησιμοποιήσετε απομακρυσμένη προώθηση, χρησιμοποιήστε την sshεντολή με το -Rόρισμα. Η σύνταξη είναι σε μεγάλο βαθμό η ίδια με την τοπική προώθηση:

ssh -R remote_port: local_address: local_port [email protected]

Ας υποθέσουμε ότι θέλετε να κάνετε μια εφαρμογή διακομιστή να ακούει στη θύρα 1234 στον τοπικό υπολογιστή σας διαθέσιμη στη θύρα 8888 στον απομακρυσμένο διακομιστή SSH. Η διεύθυνση του διακομιστή SSH είναι ssh.youroffice.comκαι το όνομα χρήστη σας στο διακομιστή SSH είναι bob . Θα εκτελέσετε την ακόλουθη εντολή:

ssh -R 8888: localhost: 1234 [email protected]

Κάποιος θα μπορούσε στη συνέχεια να συνδεθεί στον διακομιστή SSH στη θύρα 8888 και αυτή η σύνδεση θα διοχετευόταν στην εφαρμογή διακομιστή που εκτελείται στη θύρα 1234 στον τοπικό υπολογιστή από τον οποίο δημιουργήσατε τη σύνδεση.

Για να το κάνετε αυτό στο PuTTY στα Windows, επιλέξτε Σύνδεση> SSH> Σήραγγες. Ορίστε την επιλογή "Απομακρυσμένη". Για το "Source Port", εισαγάγετε την απομακρυσμένη θύρα. Για "Προορισμός", εισαγάγετε τη διεύθυνση προορισμού και τη θύρα στη φόρμα local_address: local_port.

Για παράδειγμα, εάν θέλετε να ρυθμίσετε το παραπάνω παράδειγμα, θα εισαγάγατε 8888ως θύρα προέλευσης και localhost:1234ως προορισμό. Κάντε κλικ στο "Προσθήκη" στη συνέχεια και στη συνέχεια κάντε κλικ στο "Άνοιγμα" για να ανοίξετε τη σύνδεση SSH. Θα πρέπει επίσης να εισαγάγετε τη διεύθυνση και τη θύρα του ίδιου του διακομιστή SSH στην κύρια οθόνη «Συνεδρία» πριν από τη σύνδεση, φυσικά.

Στη συνέχεια, οι χρήστες θα μπορούσαν να συνδεθούν στη θύρα 8888 στον διακομιστή SSH και η κυκλοφορία τους θα διοχετευόταν στη θύρα 1234 στο τοπικό σας σύστημα.

Από προεπιλογή, ο απομακρυσμένος διακομιστής SSH θα ακούει μόνο συνδέσεις από τον ίδιο κεντρικό υπολογιστή. Με άλλα λόγια, μόνο τα άτομα στο ίδιο σύστημα με τον ίδιο τον διακομιστή SSH θα μπορούν να συνδεθούν. Αυτό είναι για λόγους ασφαλείας. Θα πρέπει να ενεργοποιήσετε την επιλογή "GatewayPorts" στο sshd_config στον απομακρυσμένο διακομιστή SSH εάν θέλετε να παρακάμψετε αυτήν τη συμπεριφορά.

Προώθηση δυναμικής θύρας: Χρησιμοποιήστε τον διακομιστή SSH ως διακομιστή μεσολάβησης

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Ποια είναι η διαφορά μεταξύ ενός VPN και ενός διακομιστή μεσολάβησης;

Υπάρχει επίσης "δυναμική προώθηση θυρών", η οποία λειτουργεί παρόμοια με έναν διακομιστή μεσολάβησης ή VPN. Ο πελάτης SSH θα δημιουργήσει έναν διακομιστή μεσολάβησης SOCKS που μπορείτε να διαμορφώσετε εφαρμογές για χρήση. Όλη η κίνηση που αποστέλλεται μέσω του διακομιστή μεσολάβησης θα αποστέλλεται μέσω του διακομιστή SSH. Αυτό είναι παρόμοιο με την τοπική προώθηση - παίρνει την τοπική κίνηση που αποστέλλεται σε μια συγκεκριμένη θύρα στον υπολογιστή σας και την αποστέλλει μέσω της σύνδεσης SSH σε μια απομακρυσμένη τοποθεσία.

ΣΧΕΤΙΖΕΤΑΙ ΜΕ: Γιατί η χρήση ενός δημόσιου δικτύου Wi-Fi μπορεί να είναι επικίνδυνη, ακόμη και κατά την πρόσβαση σε κρυπτογραφημένους ιστότοπους

Για παράδειγμα, ας υποθέσουμε ότι χρησιμοποιείτε ένα δημόσιο δίκτυο Wi-Fi. Θέλετε να περιηγηθείτε με ασφάλεια χωρίς να παρακολουθείτε. Εάν έχετε πρόσβαση σε έναν διακομιστή SSH στο σπίτι, θα μπορούσατε να συνδεθείτε σε αυτόν και να χρησιμοποιήσετε τη δυναμική προώθηση θυρών. Ο πελάτης SSH θα δημιουργήσει έναν διακομιστή μεσολάβησης SOCKS στον υπολογιστή σας. Όλη η κίνηση που αποστέλλεται σε αυτόν τον διακομιστή μεσολάβησης θα σταλεί μέσω της σύνδεσης διακομιστή SSH. Κανείς που παρακολουθεί το δημόσιο δίκτυο Wi-Fi δεν θα μπορεί να παρακολουθεί την περιήγησή σας ή να λογοκρίνει τους ιστότοπους στους οποίους έχετε πρόσβαση. Από την οπτική γωνία των ιστότοπων που επισκέπτεστε, θα ήταν σαν να κάθεστε μπροστά στον υπολογιστή σας στο σπίτι. Αυτό σημαίνει επίσης ότι θα μπορούσατε να χρησιμοποιήσετε αυτό το τέχνασμα για να αποκτήσετε πρόσβαση σε ιστότοπους μόνο των ΗΠΑ ενώ βρίσκεστε εκτός των ΗΠΑ - υποθέτοντας ότι έχετε πρόσβαση σε έναν διακομιστή SSH στις ΗΠΑ, φυσικά.

Ως ένα άλλο παράδειγμα, μπορεί να θέλετε να αποκτήσετε πρόσβαση σε μια εφαρμογή διακομιστή πολυμέσων που έχετε στο οικιακό σας δίκτυο. Για λόγους ασφαλείας, ενδέχεται να έχετε μόνο έναν διακομιστή SSH εκτεθειμένο στο Διαδίκτυο. Δεν επιτρέπετε εισερχόμενες συνδέσεις από το Διαδίκτυο στην εφαρμογή διακομιστή πολυμέσων. Θα μπορούσατε να ρυθμίσετε την προώθηση δυναμικής θύρας, να διαμορφώσετε ένα πρόγραμμα περιήγησης ιστού για να χρησιμοποιήσετε τον διακομιστή μεσολάβησης SOCKS και, στη συνέχεια, να αποκτήσετε πρόσβαση σε διακομιστές που εκτελούνται στο οικιακό σας δίκτυο μέσω του προγράμματος περιήγησης ιστού σαν να καθόσασταν μπροστά από το σύστημα SSH στο σπίτι σας. Για παράδειγμα, εάν ο διακομιστής πολυμέσων σας βρίσκεται στη θύρα 192.168.1.123 στο οικιακό σας δίκτυο, θα μπορούσατε να συνδέσετε τη διεύθυνση 192.168.1.123σε οποιαδήποτε εφαρμογή χρησιμοποιώντας τον διακομιστή μεσολάβησης SOCKS και θα έχετε πρόσβαση στον διακομιστή πολυμέσων σαν να βρίσκεστε στο οικιακό σας δίκτυο.

Για να χρησιμοποιήσετε δυναμική προώθηση, εκτελέστε την εντολή ssh με το -Dόρισμα, ως εξής:

ssh -D local_port [email protected]

Για παράδειγμα, ας υποθέσουμε ότι έχετε πρόσβαση σε έναν διακομιστή SSH ssh.yourhome.comκαι το όνομα χρήστη σας στον διακομιστή SSH είναι bob. Θέλετε να χρησιμοποιήσετε δυναμική προώθηση για να ανοίξετε έναν διακομιστή μεσολάβησης SOCKS στη θύρα 8888 στον τρέχοντα υπολογιστή. Θα εκτελέσετε την ακόλουθη εντολή:

ssh -D 8888 [email protected]

Στη συνέχεια, θα μπορούσατε να διαμορφώσετε ένα πρόγραμμα περιήγησης ιστού ή άλλη εφαρμογή για να χρησιμοποιήσετε την τοπική σας διεύθυνση IP (127.0.01) και τη θύρα 8888. Όλη η κίνηση από αυτήν την εφαρμογή θα ανακατευθυνόταν μέσω της σήραγγας.

Για να το κάνετε αυτό στο PuTTY στα Windows, επιλέξτε Σύνδεση> SSH> Σήραγγες. Ορίστε την επιλογή «Δυναμική». Για το "Source Port", εισαγάγετε την τοπική θύρα.

Για παράδειγμα, εάν θέλετε να δημιουργήσετε έναν διακομιστή μεσολάβησης SOCKS στη θύρα 8888, θα εισαγάγατε 8888ως θύρα προέλευσης. Κάντε κλικ στο "Προσθήκη" στη συνέχεια και στη συνέχεια κάντε κλικ στο "Άνοιγμα" για να ανοίξετε τη σύνδεση SSH. Θα πρέπει επίσης να εισαγάγετε τη διεύθυνση και τη θύρα του ίδιου του διακομιστή SSH στην κύρια οθόνη «Συνεδρία» πριν από τη σύνδεση, φυσικά.

Στη συνέχεια, θα μπορούσατε να διαμορφώσετε μια εφαρμογή για να αποκτήσετε πρόσβαση στον διακομιστή μεσολάβησης SOCKS στον τοπικό υπολογιστή σας (δηλαδή, τη διεύθυνση IP 127.0.0.1, που δείχνει στον τοπικό υπολογιστή σας) και να καθορίσετε τη σωστή θύρα.

ΣΧΕΤΙΚΟΙ: Πώς να ρυθμίσετε έναν διακομιστή μεσολάβησης στον Firefox

Για παράδειγμα, μπορείτε να ρυθμίσετε τον Firefox ώστε να χρησιμοποιεί τον διακομιστή μεσολάβησης SOCKS. Αυτό είναι ιδιαίτερα χρήσιμο επειδή ο Firefox μπορεί να έχει τις δικές του ρυθμίσεις διακομιστή μεσολάβησης και δεν χρειάζεται να χρησιμοποιεί ρυθμίσεις διακομιστή μεσολάβησης σε ολόκληρο το σύστημα. Ο Firefox θα στείλει την κυκλοφορία του μέσω της σήραγγας SSH, ενώ άλλες εφαρμογές θα χρησιμοποιούν κανονικά τη σύνδεσή σας στο Διαδίκτυο.

Όταν το κάνετε αυτό στον Firefox, επιλέξτε "Μη αυτόματη διαμόρφωση διακομιστή μεσολάβησης", εισαγάγετε "127.0.0.1" στο πλαίσιο κεντρικού υπολογιστή SOCKS και εισαγάγετε τη δυναμική θύρα στο πλαίσιο "Θύρα". Αφήστε τα πλαίσια διακομιστή μεσολάβησης HTTP, διακομιστή μεσολάβησης SSL και διακομιστή μεσολάβησης FTP κενά.

Η σήραγγα θα παραμείνει ενεργή και ανοιχτή για όσο διάστημα έχετε ανοιχτή τη σύνδεση περιόδου λειτουργίας SSH. Όταν τερματίσετε την περίοδο λειτουργίας SSH και αποσυνδεθείτε από έναν διακομιστή, η σήραγγα θα κλείσει επίσης. Απλώς επανασυνδεθείτε με την κατάλληλη εντολή (ή τις κατάλληλες επιλογές στο PuTTY) για να ανοίξετε ξανά τη σήραγγα.