Πώς να ρυθμίσετε έναν διακομιστή SSH Jump στο Linux


Ένας jump host (γνωστός και ως jump server) είναι ένας ενδιάμεσος κεντρικός υπολογιστής ή μια πύλη SSH σε ένα απομακρυσμένο δίκτυο, μέσω του οποίου μπορεί να πραγματοποιηθεί μια σύνδεση με έναν άλλο κεντρικό υπολογιστή σε ένα διαφορετική ζώνη ασφαλείας, για παράδειγμα, μια αποστρατιωτικοποιημένη ζώνη (DMZ). Γεφυρώνει δύο ανόμοιες ζώνες ασφαλείας και προσφέρει ελεγχόμενη πρόσβαση μεταξύ τους.

Ένας jump host θα πρέπει να είναι εξαιρετικά ασφαλής και να παρακολουθείται ειδικά όταν εκτείνεται σε ένα ιδιωτικό δίκτυο και ένα DMZ με διακομιστές που παρέχουν υπηρεσίες στους χρήστες στο διαδίκτυο.

Ένα κλασικό σενάριο είναι η σύνδεση από τον επιτραπέζιο ή φορητό υπολογιστή σας μέσα από το εσωτερικό δίκτυο της εταιρείας σας, το οποίο είναι εξαιρετικά ασφαλές με τείχη προστασίας σε ένα DMZ. Για να διαχειριστείτε εύκολα έναν διακομιστή σε ένα DMZ, μπορείτε να έχετε πρόσβαση σε αυτόν μέσω ενός jump host.

Με λίγα λόγια, ένας διακομιστής SSH Jump είναι ένας διακομιστής Linux που χρησιμοποιείται ως πύλη σε άλλους διακομιστές Linux σε ιδιωτικό δίκτυο μέσω του πρωτοκόλλου SSH.

Σε αυτό το άρθρο, θα δείξουμε πώς να αποκτήσετε πρόσβαση σε έναν απομακρυσμένο διακομιστή Linux μέσω ενός jump host και επίσης θα διαμορφώσουμε τις απαραίτητες ρυθμίσεις στις διαμορφώσεις πελάτη SSH ανά χρήστη.

SSH Jump Server Setup

Εξετάστε το ακόλουθο σενάριο.

Για περισσότερη σαφήνεια, παρακάτω είναι μια απλή ρύθμιση που δείχνει το ρόλο ενός διακομιστή SSH Jump.

Λόγοι για τη διαμόρφωση ενός διακομιστή SSH Jump

Ένας διακομιστής Jump παρέχει μια πύλη στην υποδομή σας και μειώνει την πιθανή επιφάνεια επίθεσης στους πόρους σας. Παρέχει επίσης διαφανή διαχείριση των συσκευών καθώς και ένα μόνο σημείο εισόδου στους πόρους σας.

Λάβετε υπόψη ότι καθώς ενσωματώνετε έναν διακομιστή jump στην υποδομή σας, βεβαιωθείτε ότι ο διακομιστής είναι σκληρός, διαφορετικά θα ήταν τόσο καλό όσο να μην χρησιμοποιείτε έναν. Θα επανέλθουμε σε αυτό αργότερα σε αυτό το σεμινάριο.

Πώς να δημιουργήσετε έναν απλό διακομιστή SSH Jump

Ας εστιάσουμε τώρα στο πώς μπορείτε να δημιουργήσετε έναν απλό διακομιστή SSH Jump. Εδώ είναι η απλή μας ρύθμιση.

  • IP προέλευσης: 105.68.76.85.
  • Jump Server IP (θα ονομάσουμε αυτό το host-jump): 173.82.232.55.
  • IP προορισμού (θα ονομάσουμε αυτόν τον host_destination): 173.82.227.89.

Στο παραπάνω σενάριο, θέλετε να συνδεθείτε στο HOST 2 (173.82.227.89), αλλά πρέπει να περάσετε από το HOST 1 (173.82.232.55), λόγω τείχους προστασίας, δρομολόγηση και δικαιώματα πρόσβασης. Υπάρχουν διάφοροι βάσιμοι λόγοι για τους οποίους χρειάζονται οι κεντρικοί υπολογιστές jump.

Λίστα Dynamic Jumphost

Ο απλούστερος τρόπος σύνδεσης σε έναν διακομιστή προορισμού μέσω ενός jump host είναι η χρήση των σημαιών -A και -J από τη γραμμή εντολών. Αυτό λέει στη ssh να κάνει μια σύνδεση με τον κεντρικό υπολογιστή μετάβασης και στη συνέχεια να δημιουργήσει μια προώθηση TCP στον διακομιστή προορισμού, από εκεί (βεβαιωθείτε ότι έχετε Σύνδεση SSH χωρίς κωδικό πρόσβασης μεταξύ των μηχανημάτων).

ssh -A -J user@jump-server  user@destination server

Για παράδειγμα, στις ρυθμίσεις μας, έχουμε διαμορφώσει τις παραμέτρους του χρήστη που ονομάζεται james στον Jump Server και το tecmint στον προορισμό ή το σύστημα προορισμού.

Η εντολή θα φαίνεται ως εξής από την αρχική IP.

ssh -A -J [email  [email 

Η εντολή θα σας ζητήσει τον κωδικό πρόσβασης χρήστη του διακομιστή jump, ακολουθούμενο από τον κωδικό πρόσβασης του συστήματος προορισμού, βάσει του οποίου θα σας παραχωρηθεί πρόσβαση στο σύστημα προορισμού.

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

ssh -J username@host1:port username@host2:port	  

Λίστα πολλαπλών Jumphost

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

ssh -J username@host1:port,username@host2:port username@host3:port

Στατική λίστα Jumphost

Στατική λίστα jumphost σημαίνει ότι γνωρίζετε τα jumphost ή τα jumphost που χρειάζεστε για να συνδέσετε ένα μηχάνημα. Επομένως, πρέπει να προσθέσετε την ακόλουθη στατική «δρομολόγηση» του jumphost στο αρχείο ~/.ssh/config και να καθορίσετε τα ψευδώνυμα του κεντρικού υπολογιστή όπως φαίνεται.

### First jumphost. Directly reachable
Host vps1
  HostName vps1.example.org

### Host to jump to via jumphost1.example.org
Host contabo
  HostName contabo.example.org
  ProxyJump vps1

Τώρα δοκιμάστε να συνδεθείτε σε έναν διακομιστή προορισμού μέσω ενός jump host όπως φαίνεται.

ssh -J vps1 contabo

Η δεύτερη μέθοδος είναι να χρησιμοποιήσετε την επιλογή ProxyCommand για να προσθέσετε τη διαμόρφωση jumphost στο ~.ssh/config ή στο $HOME/. ssh/config όπως φαίνεται.

Σε αυτό το παράδειγμα, ο κεντρικός υπολογιστής στόχος είναι contabo και ο jumphost είναι vps1.

Host vps1
	HostName vps1.example.org
	IdentityFile ~/.ssh/vps1.pem
	User ec2-user

Host contabo
	HostName contabo.example.org	
	IdentityFile ~/.ssh/contabovps
	Port 22
	User admin	
	Proxy Command ssh -q -W %h:%p vps1

Αποθηκεύστε τις αλλαγές και βγείτε από το αρχείο. Για να εφαρμόσετε τις αλλαγές, επανεκκινήστε τον δαίμονα SSH.

sudo systemctl restart ssh

Ας εξερευνήσουμε τις επιλογές που χρησιμοποιούνται στο αρχείο διαμόρφωσης:

  • -q – Αυτό σημαίνει αθόρυβη λειτουργία. Καταστέλλει προειδοποιήσεις και διαγνωστικά μηνύματα.
  • -W – Ζητεί να προωθηθεί η τυπική είσοδος και έξοδος στον πελάτη στο HOST στο PORT μέσω του ασφαλούς καναλιού.
  • %h – Καθορίζει τον κεντρικό υπολογιστή στον οποίο θα συνδεθείτε.
  • %p – Καθόρισε τη θύρα στην οποία θα συνδεθείτε στον απομακρυσμένο κεντρικό υπολογιστή.

Για να «μεταπηδήσετε» στο σύστημα προορισμού από την αρχική σας IP μέσω του διακομιστή Jump, απλώς εκτελέστε την ακόλουθη εντολή:

ssh contabo

Η παραπάνω εντολή θα ανοίξει πρώτα μια σύνδεση ssh στο vps1 στο παρασκήνιο που επηρεάζεται από το ProxyCommand και, στη συνέχεια, θα ξεκινήσει η περίοδος λειτουργίας ssh στον διακομιστή προορισμού contabo δυνατός>.

Κάνοντας τον SSH Jump Server πιο ασφαλή

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

Επιπλέον, ρίξτε μια ματιά στις συμβουλές σκλήρυνσης διακομιστή SSH.

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

Για περισσότερες πληροφορίες, ανατρέξτε στη σελίδα ssh man ή ανατρέξτε στο: OpenSSH/Cookbxook/Proxies και Jump Hosts.

Αυτα για τωρα! Σε αυτό το άρθρο, δείξαμε πώς να αποκτήσετε πρόσβαση σε έναν απομακρυσμένο διακομιστή μέσω ενός κεντρικού υπολογιστή μετάβασης. Χρησιμοποιήστε την παρακάτω φόρμα σχολίων για να κάνετε ερωτήσεις ή να μοιραστείτε τις σκέψεις σας μαζί μας.