Ανακατεύθυνση θυρών μέσω SSH

Μερικές φορές χρειαζόμαστε μεταδίδουν δεδομένα μέσω υποδοχής μεταξύ διαφορετικών μηχανών, όπως σύνδεση Telnet, λήψη αρχείου FTP, ερώτημα SQL ή οποιοδήποτε άλλο είδος μετάδοσης.

Αυτά τα δεδομένα ταξιδεύουν ωμά μέσω του δικτύου, έτσι ανασφαλής, που σημαίνει ότι θα μπορούσαν να υποκλαπούν από οποιονδήποτε κόμβο που βρίσκεται στη διαδρομή μεταξύ της προέλευσης και του προορισμού, δηλαδή, ροδάδος.

Δεν μπορούμε να αποτρέψουμε τη λήψη αυτών των δεδομένων, αλλά αυτό που μπορούμε να αποτρέψουμε είναι ότι ερμηνεύονται και κατανοούνται από τρίτα μέρη, κρυπτογραφώντας την επικοινωνία.

SSH είναι το εργαλείο που μας επιτρέπει να κάνουμε ασφαλείς συνδέσεις μεταξύ μηχανών. Η συνηθέστερη χρήση του είναι η απομακρυσμένη σύνδεση με διερμηνέα εντολών.

Ωστόσο, προσφέρει άλλες δυνατότητες, όπως δημιουργία κρυπτογραφημένες σήραγγες μεταξύ διαφορετικών μηχανών.
Ας υποθέσουμε ότι θέλουμε να telnet από host1 σε host2:

host1$ telnet host2

Αυτή η επικοινωνία είναι εντελώς ανοιχτή και μπορεί να είναι παρεμπόδιση. Για την προστασία του, θα ανακατευθύνουμε μια αυθαίρετα επιλεγμένη θύρα (για παράδειγμα 5000) στον κεντρικό υπολογιστή 1 στη θύρα 23 (telnet) του κεντρικού υπολογιστή2.

Με αυτόν τον τρόπο θα λάβουμε όλα τα δεδομένα που αποστέλλονται στη θύρα 5000 του host1 για να ταξιδέψουν κρυπτογραφημένα μέσω της σήραγγας που ανοίγει μέσω της θύρας 22 του host2 και στη συνέχεια θα μεταφερθούν στη θύρα 23 του host2, φτάνοντας έτσι στον τελικό προορισμό.

Για να γίνει αυτό, πρέπει να γνωρίζουμε το όνομα χρήστη και τον κωδικό πρόσβασης του host2.

Για να ανοίξετε τη σήραγγα γράφουμε:

host1$ ssh -R 5000:localhost:23 usuariohost2@host2

Ω καλά:

host1$ ssh -L 5000:host2:23 usuariohost2@host2

Και οι δύο επιλογές είναι ισοδύναμες. Για να δημιουργήσουμε τη σύνδεση telnet, δεν αναφερόμαστε πλέον στο host2 αλλά στη θύρα που επιλέξαμε στο host1:

host1$ telnet localhost 5000

Με αυτό κάνουμε οποιαδήποτε επικοινωνία ασφαλή, είτε πρόκειται για telnet ή με άλλο τρόπο. Ερευνώντας λίγο περισσότερο θα το δούμε χάρη στη δύναμη του SSH Αυτές οι ανακατευθύνσεις μπορούν επίσης να γίνουν σε τρίτα μηχανήματα, τα οποία θα μας επέτρεπαν ότι με ένα μόνο σημείο εισόδου θα μπορούσαμε να έχουμε ασφαλή πρόσβαση από ένα ολόκληρο LAN σε διαφορετικό LAN.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.

  1.   nano dijo

    Η θεωρία φαίνεται εξαιρετικά ενδιαφέρουσα, αλλά θα ήταν ακόμη περισσότερο αν είδαμε μια πρακτική περίπτωση.

    Αλλά η αλήθεια είναι ότι, παρόλο που ήμουν σύντομος, μου άρεσε πολύ το άρθρο.

    1.    igual dijo

      ίσως κοιτάζοντας το wiki να εμπνευστείτε https://wiki.archlinux.org/index.php/Secure_Shell#Forwarding_other_ports
      και το ίδιο, αλλά η ενότητα autossh https://wiki.archlinux.org/index.php/Secure_Shell#Autossh_-_automatically_restarts_SSH_sessions_and_tunnels
      Στην πραγματικότητα, οτιδήποτε μπορείτε να στείλετε μέσω ssh, είτε πρόκειται για ροή, συνδέσεις με τον κεντρικό υπολογιστή. και τα λοιπά. ότι για x λόγο θέλετε να τα κρυπτογραφήσετε.
      και τους κανόνες Securecrt

  2.   Τέσλα dijo

    Μερικές φορές χρησιμοποιώ SSH σε πολύ βασικό επίπεδο. Η προεπιλεγμένη θύρα είναι 22, σωστά;

    Επομένως, εάν καταλαβαίνω σωστά, ο υπολογιστής μου είναι κεντρικός υπολογιστής 1 και αυτός στον οποίο θέλω να συνδεθώ είναι ο κεντρικός υπολογιστής2, αυτή η σήραγγα θα δημιουργούσε μια σύνδεση μεταξύ της θύρας 5000 και της θύρας 23 και, στη συνέχεια, θα καταλήξει στη θύρα 22;

    Γιατί οι λόγοι εναλλαγής θυρών; Μπορείτε να δημιουργήσετε μια σήραγγα με τη θύρα 22;

    Πολύ ενδιαφέρον άρθρο. Όπως το νανο, θέλω περισσότερα!

    1.    Getafix dijo

      Το SSH χρησιμοποιεί πράγματι τη θύρα 22 από προεπιλογή (αν και μπορεί να αλλάξει). Αυτή η θύρα είναι αυτή που θα χρησιμοποιείται από την πραγματική επικοινωνία μεταξύ των δύο κεντρικών υπολογιστών. Είναι αυτό που πρέπει να βεβαιωθείτε ότι είναι ανοιχτό και κανένα τείχος προστασίας δεν το κόβει. Αλλά για τον χρήστη είναι εντελώς διαφανές. Μπορείτε να τον ξεχάσετε. Στο παράδειγμα, η ανακατεύθυνση είναι μεταξύ των θυρών 5000 και 23. Αυτά τα δύο είναι τα μόνα που πρέπει να ανησυχείτε. Ο χρήστης θα δει ότι ό, τι στέλνει στη θύρα 5000 του κεντρικού υπολογιστή του εμφανίζεται στα 23 του κεντρικού υπολογιστή προορισμού.
      Προφανώς, κάθε χρήστης μπορεί να ανακατευθύνει τις θύρες που θεωρεί κατάλληλες.

      Ευχαριστώ για τα σχόλιά σας. Αυτή είναι η πρώτη μου ανάρτηση και οι απόψεις σας θα σας βοηθήσουν να βελτιώσετε την επόμενη.

  3.   eliotime3000 dijo

    Αυτό μπορεί επίσης να γίνει με το VPS;

  4.   κυνηγός dijo

    Εντάξει αυτή είναι η περίπτωσή μου, το PC1 έχει πρόσβαση σε διακομιστή, αλλά το PC2 δεν συνδέεται, και τα δύο μέσω ssh, θέλω να έχω πρόσβαση στο PC2, αλλά σε ποια θύρα του PC1 ανακατευθύνω; αν στην πραγματικότητα αυτό που θέλω είναι να φτάσω στη θύρα διακομιστή από το PC2 και ότι τα πακέτα έχουν το PC1 ως πηγή IP. καταλαβαίνω;

    1.    Getafix dijo

      Κάνετε τον εαυτό σας κατανοητό. Σε αυτήν την περίπτωση, χρειάζεστε PC1 για να ανακατευθύνετε μια θύρα PC2 στη θύρα 22 του διακομιστή:

      PC2 $ ssh -L 5000: Διακομιστής: 22 χρήστης PC1 @ PC1

      και, διατηρώντας αυτήν τη σύνδεση ανοιχτή, από άλλο τερματικό:

      PC2 $ ssh userServer @ localhost -p 5000

      και είσαι ήδη μέσα.

      1.    κυνηγός dijo

        Τέλος μια λειτουργική λύση !! Ευχαριστώ, Getafix, μου έδωσες έναν κόσμο δυνατοτήτων !!

        1.    Getafix dijo

          Χαίρομαι!

  5.   Έλαβ dijo

    εξαιρετικό άρθρο. Καλωσήρθες στο DesdeLinux ????

    Και τι να κάνουμε αν έχουμε 22 αποκλεισμένους; ΧΑΧΑΧΑ..

    1.    Getafix dijo

      Ευχαριστώ elav.
      Εάν έχετε αποκλείσει τη θύρα 22, mmmm, θα πρέπει να αναζητήσουμε μια εναλλακτική λύση για να χαράξουμε το τείχος προστασίας XD

    2.    eliotime3000 dijo

      Και το χειρότερο απ 'όλα (υποθετικό): ότι αποκλείεται από τον πάροχο VPS.

  6.   ΑΓΡ dijo

    Μόλις έκανα μια εξέταση πριν από λίγες ώρες με ερωτήσεις σχετικά με αυτό 😛

  7.   Mario dijo

    Δεν θα το ελεγα:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    είναι ισοδύναμο με την άλλη γραμμή εντολών ... αυτή με το -L.
    Δεδομένου ότι το -R δείχνει ότι η θύρα που ανοίγει σε νέες συνδέσεις βρίσκεται στην απομακρυσμένη πλευρά, δηλαδή στην πλευρά του διακομιστή ssh. ενώ το -L ανοίγει μια θύρα στην τοπική πλευρά, στην πλευρά του πελάτη για να λαμβάνει νέες συνδέσεις.

    Η μετάφραση της γραμμής:
    host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2
    Θα ήταν κάπως έτσι: Όντας στο host1, συνδεθείτε στον διακομιστή ssh (θύρα 22) του host2 με το userhost2 χρήστη και προωθήστε τις συνδέσεις που δημιουργούνται στην απομακρυσμένη θύρα 5000 του host2 στη θύρα 23 στο host1 (my localhost)

    Εάν όχι, διορθώστε με! 😉

    -

    Από την άλλη πλευρά ... εάν ένας διακομιστής έχει αποκλείσει την είσοδο συνδέσεων στη θύρα 22, δηλαδή δεν μπορούμε να συνδεθούμε εξ αποστάσεως με τον διακομιστή ssh. αυτό που μπορεί να γίνει είναι; ότι από το διακομιστή (ένας φίλος sysadmin πίσω από το τείχος προστασίας του απομακρυσμένου συστήματος host2) εκτελείται μια γραμμή εντολών:

    host2 $ nohup ssh -fN -R 6000: localhost: 22 userhost1 @ host1

    -f πηγαίνει στο φόντο
    -N δεν εκτελεί καμία εντολή στο τηλεχειριστήριο
    Το nohup αποτρέπει τη διακοπή της εκτέλεσης της εντολής κατά την αποσύνδεση

    host1 $ ssh userhost2 @ localhost -p 6000

    Με αυτόν τον τρόπο, από το host1 δημιουργούμε μια σύνδεση με το localhost (το ίδιο host1) στη θύρα 6000 που θα προωθήσει τη σύνδεση στη θύρα 22 του απομακρυσμένου συστήματος host2, στην οποία θα συνδεθούμε με τον χρήστη host2.

    Αυτό θα επέτρεπε (δεν το δοκίμασα, αλλά ακούγεται ότι λειτουργεί) να συνδεθείτε σε έναν διακομιστή ssh που έχει αποκλειστεί από το firewal με λίγη βοήθεια από μέσα! 😀

    Το τελευταίο διάβασα από μια εξήγηση που έγινε στο περιοδικό The Geek Stuff
    http://www.thegeekstuff.com/2013/11/reverse-ssh-tunnel/

    Μου αρέσει πολύ η δημοσίευσή σας. Τα διαβάζω συχνά!
    Χαιρετισμούς.

    1.    Getafix dijo

      Εχεις δίκιο. Υπάρχει ένα σφάλμα στο άρθρο. Οι ανακατευθύνσεις δεν είναι ισοδύναμες. Η εντολή host1 $ ssh -R 5000: localhost: 23 userhost2 @ host2 εκτελεί την αντίστροφη ανακατεύθυνση, δηλαδή, ανακατευθύνει την απομακρυσμένη θύρα 5000 στην τοπική 23, το αντίθετο από αυτό που κάνει η εντολή με το -L.
      Ευχαριστώ για τη διόρθωση.