Εγκατάσταση και διαμόρφωση SSH - Ubuntu. Μεταφορά τυπικής εξόδου από τοπικό μηχάνημα σε απομακρυσμένο μηχάνημα μέσω ssh. Δημιουργία αντιγράφων ασφαλείας σε απομακρυσμένο διακομιστή και ανάκτηση

Το SSH (Secure Shell) είναι ένα πρωτόκολλο δικτύου σχεδιασμένο για διαχείριση απομακρυσμένου διακομιστή και μεταφορά δεδομένων μέσω κρυπτογραφημένων συνδέσεων TCP. Οι περισσότερες υπηρεσίες φιλοξενίας, ακόμη και οι εικονικές, παρέχουν σήμερα πρόσβαση τόσο μέσω FTP όσο και μέσω SSH. Κατά τη γνώμη μου, αυτό είναι υπέροχο, το SSH είναι πολύ πιο βολικό και ασφαλέστερο στη χρήση.

Ρύθμιση SSH

Η εγκατάσταση θα πραγματοποιηθεί για έναν αποκλειστικό διακομιστή, VDS, VPS σε Debian, Ubuntu. Το αρχείο ρυθμίσεων βρίσκεται εδώ: /etc/ssh/sshd_config.
Εάν έχετε κανονική φιλοξενία, όλα θα πρέπει να ρυθμιστούν όπως θα έπρεπε, μεταβείτε στην ενότητα.

Από προεπιλογή, ο δαίμονας SSHD (στον οποίο κάνουμε αλλαγές) δεν χρειάζεται ρυθμίσεις και λειτουργεί καλά. Θα κάνουμε μόνο μερικές μικρές αλλαγές προκειμένου να περιορίσουμε την πρόσβαση ανεπιθύμητων ατόμων στον διακομιστή.

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

Πώς να περιορίσετε την πρόσβαση SSH

Όλες οι αλλαγές γίνονται στο /etc/ssh/sshd_config
Για να τεθούν σε ισχύ οι αλλαγές, πρέπει

Αλλαγή θύρας

Θύρα 9724

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

Απενεργοποιήστε την επικοινωνία χρησιμοποιώντας το παλιό πρωτόκολλο

Εδώ ορίζουμε ότι η επικοινωνία είναι δυνατή μόνο χρησιμοποιώντας το πρωτόκολλο v2

Εάν δεν είστε συνδεδεμένοι ρίζα, πριν από όλες τις εντολές της κονσόλας πρέπει να προσθέσετε sudo - σημαίνει Αντικατάσταση χρήστη και DO- αντικαταστήστε τον χρήστη και κάντε (κάτω από αυτόν). Για παράδειγμα, σας επιτρέπει να εκτελείτε εντολές ως υπερχρήστης ρίζα.

Μειώστε τον αριθμό των προσπαθειών εξουσιοδότησης

MaxAuthTries 2

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

Μειώστε τον χρόνο αναμονής εξουσιοδότησης

LoginGraceTime 30s

Από προεπιλογή, μια περίοδος εξουσιοδότησης μπορεί να διαρκέσει 120 δευτερόλεπτα. Μετά από αυτό το διάστημα τελειώνει. 2 λεπτά για εξουσιοδότηση είναι υπερβολικό όλο αυτό το διάστημα ο διακομιστής κρατά τη σύνδεση ανοιχτή, κάτι που είναι πολύ παράλογο. Μισό λεπτό είναι αρκετό.

Κλείστε την πρόσβαση IP

Εάν χρειάζεστε μόνο πρόσβαση, ο απλούστερος και πιο αξιόπιστος τρόπος είναι να αποκλείσετε την πρόσβαση από παντού εκτός από την IP σας ή, εάν είναι δυναμική, τότε το εύρος IP.

  1. Ανοίξτε το /etc/hosts.allow και προσθέστε SSHD εκεί: 192.168.1.1

    όπου το 192.168.1.1 είναι η IP σας. Εάν έχετε δυναμική IP, ορίστε μια IP με μάσκα υποδικτύου και σημειώστε το υποδίκτυό σας αντί για την IP, για παράδειγμα:

    SSHD: 192.168.0.0/16

  2. Ανοίξτε το /etc/hosts.deny και προσθέστε εκεί: SSHD: ALL

Ένας άλλος τρόπος περιορισμού της πρόσβασης μέσω IP

Μπορείτε να χρησιμοποιήσετε την ακόλουθη οδηγία:

AllowUsers = *@1.2.3.4

Εδώ επιτρέπουμε την πρόσβαση μόνο για IP 1.2.3.4

Εξουσιοδότηση SSH με κλειδιά

Θα είναι πολύ πιο ασφαλές, πιο βολικό και σωστό να ρυθμίσετε την εξουσιοδότηση ssh χωρίς κωδικό πρόσβασης. Για το σκοπό αυτό, θα χρησιμοποιηθεί εξουσιοδότηση κλειδιού.

Ορίστε λοιπόν οι οδηγίες:

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

Φιλοξενία με πρόσβαση sshΜάλλον δεν συμβαίνει τόσο συχνά, τουλάχιστον από την εμπειρία μου. Η τελευταία μου φιλοξενία υποστηρίζει SSH και αποφάσισα να το δοκιμάσω και είχα έναν καλό λόγο για αυτό. Το θέμα είναι ότι η τρέχουσα φιλοξενία μου δεν δείχνει τα μεγέθη των αρχείων λεπτομερώς.

Δεν είναι επίσης δυνατή η προβολή αυτού μέσω ενός προγράμματος-πελάτη FTP, αλλά το χρειάζομαι πραγματικά, καθώς μου τελείωσε γρήγορα ο χώρος στη φιλοξενία και πρέπει να αφαιρέσω όλα τα σκουπίδια για να μην αγοράσω επιπλέον megabyte και να μην πληρώσω επιπλέον. Και πρόσφατα, οι ιστότοποί μου μολύνθηκαν επίσης και χωρίς πρόσβαση ssh αυτό θα ήταν αδύνατο.

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

Τι είναι η φιλοξενία με πρόσβαση ssh;

Αλλά πρώτα θα σας πω τι είναι το SSH, αφού ίσως δεν γνωρίζουν όλοι τι είδους θηρίο είναι. Εν ολίγοις, σύμφωνα με τη Wikipedia είναι:

Το SSH (Αγγλικά Secure SHell - "secure shell") είναι ένα πρωτόκολλο δικτύου σε επίπεδο εφαρμογής που επιτρέπει τον απομακρυσμένο έλεγχο του λειτουργικού συστήματος και τη διοχέτευση των συνδέσεων TCP (για παράδειγμα, για μεταφορά αρχείων). Το SSH επιτρέπει την επιλογή διαφορετικών αλγορίθμων κρυπτογράφησης. Οι πελάτες SSH και οι διακομιστές SSH είναι διαθέσιμοι για τα περισσότερα λειτουργικά συστήματα δικτύου.

Μπορείτε να εργαστείτε με το ssh απευθείας μέσω του τερματικού χρησιμοποιώντας εντολές Linux. Η σύνδεση με τον διακομιστή είναι πολύ εύκολη, πρέπει να πληκτρολογήσετε την εντολή σε αυτήν τη μορφή:

Ssh όνομα χρήστη@διεύθυνση διακομιστή

Όπως μπορείτε να δείτε, όλα είναι πολύ απλά. Θα προσπαθήσω να συνδεθώ μέσω ssh στο hosting μου. Αλλά αυτό δεν συνέβη. Έγραψα για υποστήριξη και τώρα περιμένω απάντηση.

Εν τω μεταξύ, θα σας πω πόσο βολικό είναι να συνδεθείτε μέσω ssh μέσω του διαχειριστή αρχείων Nautilus. Με τη σύνδεση σε αυτό μέσω SSH, θα εργαστείτε με αρχεία που βρίσκονται στο hosting, σαν να ήταν στον υπολογιστή σας. Ανοίξτε το Nautilus και πατήστε Ctrl + L για να μπορέσετε να γράψετε τη διαδρομή προς τον διακομιστή ssh στη γραμμή διευθύνσεων:

Sftp:// [email προστατευμένο]

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

Επομένως, όταν επιλέγετε φιλοξενία, δώστε προσοχή σε αυτό. Μου Φιλοξενία IHOR δίνει πρόσβαση στο SSH και γι' αυτό το χρησιμοποιώ αρκετά χρόνια...

ΣΥΜΒΟΥΛΕΣ ΙΣΤΟΣΕΛΙΔΑ:Η ικανότητα να κερδίσετε χρήματα στο Διαδίκτυο είναι μόνο η μισή μάχη, η άλλη μισή είναι η ικανότητα να εξαργυρώνετε ΚΕΡΔΟΦΟΡΑ το ηλεκτρονικό χρήμα. Ακολουθεί μια λίστα με υπεράκτιες τραπεζικές κάρτες στις οποίες μπορείτε να κάνετε ανάληψη χρημάτων και στη συνέχεια να αποσύρετε ευκρινείς λογαριασμούς από αυτές:

1. Payoneer- Το πιο δημοφιλές σύστημα πληρωμών στον κόσμο για ελεύθερους επαγγελματίες. Κάρτες εκδόσεων, που βρίσκονται στις Η.Π.Α.

2. EpayService- Το αμερικανικό σύστημα πληρωμών, πολύ δημοφιλές σε πολλές χώρες, παρέχει δωρεάν κάρτα MasterCard στον ΕΒΡΟ για κατοίκους της ΚΑΚ και της Ευρώπης.

3. Skrill- Το μόνο σύστημα πληρωμών που λειτουργεί με κρυπτονομίσματα και ταυτόχρονα εκδίδει δωρεάν τραπεζικές κάρτες MasterCard.

4. AdvCash- Η υπεράκτια τράπεζα βρίσκεται στο Μπελίζ, μπορείτε να ανοίξετε λογαριασμό σε δολάρια, ευρώ, λίρες και ρούβλια.

5. Payeer- Η έδρα αυτού του συστήματος πληρωμών βρίσκεται στη Γεωργία, εδώ μπορείτε επίσης να ανοίξετε λογαριασμό σε δολάρια, ευρώ και ρούβλια.


Τομέας RU - 99 RUR
Τομέας RF - 99 RUR

Αυτό το άρθρο είναι αφιερωμένο στη ρύθμιση της απομακρυσμένης πρόσβασης στον διακομιστή Ubuntu. Η αρχή σύνδεσης είναι πολύ απλή: στην πλευρά του πελάτη χρησιμοποιούμε ένα πρόγραμμα για απομακρυσμένη πρόσβαση (για παράδειγμα, Putty), στην πλευρά του διακομιστή εγκαθιστούμε και διαμορφώνουμε το πακέτο OpenSSH. Κατά τη σύνδεση, ο πελάτης υποβάλλεται σε διαδικασία εξουσιοδότησης με τον διακομιστή και δημιουργείται μια κρυπτογραφημένη σύνδεση μεταξύ τους. Η αρχή λειτουργίας του πρωτοκόλλου SSH συζητήθηκε λεπτομερέστερα στο άρθρο για.

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

Εγκαταστήσαμε τον διακομιστή Ubuntu σε έναν καθαρό σκληρό δίσκο. Μετά την εγκατάσταση, πρέπει να διαμορφώσετε τη διεπαφή δικτύου του διακομιστή για πρόσβαση στο δίκτυο. Δηλαδή, ορίστε τη διεύθυνση IP, τη μάσκα δικτύου, την προεπιλεγμένη πύλη. Εάν η διεπαφή σας είναι ήδη ρυθμισμένη, μπορείτε να παραλείψετε αυτό το βήμα. Οι ρυθμίσεις διεπαφής δικτύου καθορίζονται στο αρχείο /etc/network/interfaces. Για την επεξεργασία θα χρησιμοποιήσουμε ένα πρόγραμμα επεξεργασίας κειμένου νανο.

Μπαίνουμε στη λειτουργία επεξεργασίας του αρχείου διεπαφών. Μας ενδιαφέρουν όλα τα παρακάτω # Η κύρια διεπαφή δικτύου. Αυτή τη στιγμή, ο διακομιστής λαμβάνει μια διεύθυνση IP μέσω DHCP, η οποία δεν είναι απολύτως σωστή. Ο διακομιστής πρέπει να έχει στατική IP, ώστε όλοι οι κόμβοι του δικτύου να γνωρίζουν ακριβώς τη διεύθυνσή του. Ας διαμορφώσουμε τις ρυθμίσεις δικτύου με μη αυτόματο τρόπο.

Ο διακομιστής μου βρίσκεται στο τοπικό υποδίκτυο 192.168.1.0/24. Στον διακομιστή έχει εκχωρηθεί IP 192.168.1.2, μάσκα 255.255.255.0, προεπιλεγμένη πύλη 192.168.1.1, διεύθυνση διακομιστή DNS 192.168.0.1

Για να αποθηκεύσετε το αρχείο, πατήστε Ctrl + X -> Y -> Enter. Για να εφαρμόσετε τις ρυθμίσεις πρέπει να επανεκκινήσετε τη διαδικασία δικτύου. Μπορείτε επίσης απλά να επανεκκινήσετε τον διακομιστή με την εντολή sudo reboot.

Ελέγξτε (εντολή ifconfig -α) - εφαρμόζονται οι ρυθμίσεις

Όλα είναι έτοιμα για το OpesnSS, το οποίο μπορεί να εγκατασταθεί από το τερματικό χρησιμοποιώντας τις εντολές

$ sudo apt-get install openssh-client

$ sudo apt-get install openssh-server

Μπορείτε να ελέγξετε την εκκίνηση, τη διακοπή και την επανεκκίνηση του διακομιστή SSH χρησιμοποιώντας τις εντολές

$sudo υπηρεσία ssh στάση | έναρξη | επανεκκίνηση

Στην πραγματικότητα, έχετε ήδη πρόσβαση SSH στον διακομιστή. Αλλά για περισσότερη λεπτομέρεια υπάρχει ένα αρχείο ρυθμίσεων στο /etc/ssh/sshd_config. Η πρόσβαση στις ρυθμίσεις παραμέτρων είναι δυνατή μόνο από το root.

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

___________________________

Περίληψη: Το άρθρο περιγράφει προηγμένες λειτουργίες OpenSSH που μπορούν να απλοποιήσουν σημαντικά τη ζωή των διαχειριστών συστήματος και των προγραμματιστών που δεν φοβούνται το κέλυφος. Σε αντίθεση με τους περισσότερους οδηγούς, που δεν περιγράφουν τίποτα άλλο εκτός από πλήκτρα και επιλογές -L/D/R, προσπάθησα να συγκεντρώσω όλα τα ενδιαφέροντα χαρακτηριστικά και τις ευκολίες που φέρνει το ssh.

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

Πίνακας περιεχομένων:

  • βασική διαχείριση
  • αντιγραφή αρχείων μέσω ssh
  • Προώθηση ροών I/O
  • Τοποθέτηση απομακρυσμένου FS μέσω ssh
  • Απομακρυσμένη εκτέλεση κώδικα
  • Ψευδώνυμα και επιλογές για συνδέσεις στο .ssh/config
  • Προεπιλογές
  • Προώθηση διακομιστή X
  • ssh ως socks-proxy
  • Προώθηση θύρας - προς τα εμπρός και προς τα πίσω
  • Reverse Sox Proxy
  • κυκλοφορία σήραγγας L2/L3
  • Προώθηση αντιπροσώπου εξουσιοδότησης
  • Σήραγγα ssh μέσω ssh μέσω μη αξιόπιστου διακομιστή ( πιθανότατα δεν το ξέρεις αυτό)

Διαχείριση κλειδιών

Η θεωρία με λίγα λόγια: το ssh μπορεί να συνδεθεί όχι με κωδικό πρόσβασης, αλλά με κλειδί. Το κλειδί αποτελείται από ένα ανοιχτό και κλειστό μέρος. Το ανοιχτό τοποθετείται στον αρχικό κατάλογο του χρήστη που έχει πρόσβαση στον διακομιστή, το κλειστό τοποθετείται στον αρχικό κατάλογο του χρήστη που πηγαίνει στον απομακρυσμένο διακομιστή. Τα μισά συγκρίνονται (υπερβάλλω) και αν όλα είναι εντάξει, επιτρέπεται να μπουν. Σημαντικό: όχι μόνο ο πελάτης είναι εξουσιοδοτημένος στον διακομιστή, αλλά και ο διακομιστής σε σχέση με τον πελάτη (δηλαδή, ο διακομιστής έχει το δικό του κλειδί). Το κύριο χαρακτηριστικό ενός κλειδιού σε σύγκριση με έναν κωδικό πρόσβασης είναι ότι δεν μπορεί να «κλαπεί» με παραβίαση του διακομιστή - το κλειδί δεν μεταφέρεται από πελάτη σε διακομιστή και κατά την εξουσιοδότηση ο πελάτης αποδεικνύει στον διακομιστή ότι κατέχει το κλειδί (το ίδιο κρυπτογραφική μαγεία).

Δημιουργία κλειδιών

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

Το κλειδί μπορεί να κλειδωθεί με κωδικό πρόσβασης. Αυτός ο κωδικός πρόσβασης (σε κανονικά GUI) ζητείται μία φορά και αποθηκεύεται για κάποιο χρονικό διάστημα. Εάν ο κωδικός πρόσβασης είναι κενός, δεν θα ερωτηθεί όταν χρησιμοποιείται. Είναι αδύνατο να ανακτήσετε έναν ξεχασμένο κωδικό πρόσβασης.

Μπορείτε να αλλάξετε τον κωδικό πρόσβασης για το κλειδί χρησιμοποιώντας την εντολή ssh-keygen -p.

Δομή κλειδιού

(εάν η ερώτηση σχετικά με την τοποθεσία απαντήθηκε από προεπιλογή).
~/.ssh/id_rsa.pub- δημόσιο κλειδί. Αντιγράφεται στον διακομιστή όπου πρέπει να αποκτήσετε πρόσβαση.
~/.ssh/id_rsa- ιδιωτικό κλειδί. Δεν μπορεί να εμφανιστεί σε κανέναν. Εάν το αντιγράψετε και επικολλήσετε σε ένα γράμμα/συζήτηση αντί για παμπ, τότε πρέπει να δημιουργήσετε ένα νέο κλειδί. (Δεν κάνω πλάκα, περίπου το 10% των ατόμων που ζητάτε για ένα ssh key post id_rsa, και από αυτά τα δέκα τοις εκατό, το 100% είναι άνδρες).

Αντιγραφή του κλειδιού στον διακομιστή

Στον κατάλογο του χρήστη που θέλετε να συνδεθείτε ως, εάν δημιουργήσετε ένα αρχείο ~/.ssh/authorized_keysκαι βάλτε το δημόσιο κλειδί εκεί, μπορείτε να συνδεθείτε χωρίς κωδικό πρόσβασης. Λάβετε υπόψη ότι τα δικαιώματα αρχείου δεν θα πρέπει να επιτρέπουν σε μη εξουσιοδοτημένους χρήστες να γράφουν σε αυτό το αρχείο, διαφορετικά το ssh δεν θα το αποδεχτεί. Το τελευταίο πεδίο στο κλειδί είναι user@machine. Δεν έχει καμία σχέση με την εξουσιοδότηση και χρησιμεύει μόνο για τη διευκόλυνση του προσδιορισμού της θέσης του κλειδιού. Σημειώστε ότι αυτό το πεδίο μπορεί να αλλάξει (ή ακόμα και να διαγραφεί) χωρίς να σπάσει τη δομή του κλειδιού.

Εάν γνωρίζετε τον κωδικό πρόσβασης του χρήστη, η διαδικασία μπορεί να απλοποιηθεί. Ομάδα ssh-copy-id user@serverσας επιτρέπει να αντιγράψετε το κλειδί χωρίς μη αυτόματη επεξεργασία αρχείων.

Σημείωση: Τα παλιά εγχειρίδια ssh αναφέρουν το authorized_keys2. Λόγος: υπήρχε η πρώτη έκδοση του ssh, μετά υπήρχε μια δεύτερη (τρέχουσα), έφτιαξαν το δικό τους σύνολο ρυθμίσεων για αυτό, όλοι ήταν πολύ κουρασμένοι από αυτό και η δεύτερη έκδοση άλλαξε σε εκδόσεις χωρίς "2" πολύ καιρό καιρό πριν. Δηλαδή, πάντα authorized_keys και μην σκέφτεσαι διαφορετικές εκδόσεις.

Εάν έχετε ssh σε μια μη τυπική θύρα, τότε το ssh-copy-id απαιτεί ένα ειδικό κόλπο κατά την εργασία: ssh-copy-id "-p 443 user@server" (προσοχή στα εισαγωγικά).

Κλειδί διακομιστή

Την πρώτη φορά που συνδέεστε στον διακομιστή, το ssh σας ρωτά αν εμπιστεύεστε το κλειδί. Εάν απαντήσετε όχι, η σύνδεση είναι κλειστή. Εάν ναι, το κλειδί αποθηκεύεται σε ένα αρχείο ~/.ssh/known_hosts. Είναι αδύνατο να μάθετε πού βρίσκεται το κλειδί (γιατί δεν είναι ασφαλές).

Εάν το κλειδί διακομιστή έχει αλλάξει (για παράδειγμα, ο διακομιστής εγκαταστάθηκε ξανά), το ssh φωνάζει ότι το κλειδί είναι πλαστό. Λάβετε υπόψη ότι εάν ο διακομιστής δεν έχει αγγίξει, αλλά το ssh ουρλιάζει, τότε εισέρχεστε σε λάθος διακομιστή (για παράδειγμα, ένας άλλος υπολογιστής με την ίδια IP εμφανίστηκε στο δίκτυο, όλα τα είδη τοπικών δικτύων με 192.168.1.1, εκ των οποίων υπάρχουν πολλά εκατομμύρια στον κόσμο, ιδιαίτερα υποφέρουν από αυτό) . Το σενάριο "evil man in the middle attack" είναι απίθανο, τις περισσότερες φορές είναι απλώς ένα σφάλμα με την IP, αν και εάν "όλα είναι καλά" και το κλειδί έχει αλλάξει, αυτός είναι ένας λόγος για να ανεβάσουμε το επίπεδο της παράνοιας μερικά επίπεδα (και εάν έχετε εξουσιοδότηση χρησιμοποιώντας ένα κλειδί και ο διακομιστής ζητά ξαφνικά κωδικό πρόσβασης - τότε η παράνοια μπορεί να ενεργοποιηθεί 100% και δεν χρειάζεται να εισαγάγετε κωδικό πρόσβασης).

Μπορείτε να διαγράψετε ένα γνωστό κλειδί διακομιστή με την εντολή Διακομιστής ssh-keygen -R. Σε αυτήν την περίπτωση, πρέπει επίσης να διαγράψετε το κλειδί IP (αποθηκεύονται χωριστά): ssh-keygen -R 127.0.0.1.

Το κλειδί διακομιστή αποθηκεύεται σε /etc/ssh/ssh_host_rsa_keyΚαι /etc/ssh/ssh_host_rsa_key.pub. Μπορεί να είναι:
α) αντιγραφή από τον παλιό διακομιστή στον νέο.
β) δημιουργία χρησιμοποιώντας ssh-keygen. Δεν χρειάζεται να ορίσετε κωδικό πρόσβασης (δηλαδή κενό). Ο διακομιστής ssh δεν θα μπορεί να χρησιμοποιήσει το κλειδί με τον κωδικό πρόσβασης.

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

Είναι καλύτερα να αφαιρέσετε τα παλιά κλειδιά από το know_hosts, διαφορετικά η ssh θα παραπονεθεί για διπλό κλειδί.

Αντιγραφή αρχείων

Η μεταφορά αρχείων στον διακομιστή μπορεί μερικές φορές να είναι κουραστική. Εκτός από το να μπλέκει κανείς με το sftp και άλλα περίεργα πράγματα, το ssh μας παρέχει την εντολή scp, το οποίο αντιγράφει ένα αρχείο μέσω μιας περιόδου λειτουργίας ssh.

Scp path/myfile [email προστατευμένο]:/full/path/to/new/location/

Μπορείτε επίσης να κάνετε το αντίθετο:
scp [email προστατευμένο]:/full/path/to/file /path/to/put/here

Προειδοποίηση ψαριών: Παρά το γεγονός ότι το mc μπορεί να συνδεθεί μέσω ssh, η αντιγραφή μεγάλων αρχείων θα είναι πολύ επώδυνη, επειδή... fish (η λειτουργική μονάδα mc για εργασία με ssh ως εικονικό fs) είναι πολύ αργή. 100-200kb είναι το όριο, τότε αρχίζει η δοκιμασία της υπομονής. (Θυμήθηκα τα πολύ πρώιμα νιάτα μου, όταν, μη γνωρίζοντας για το scp, αντέγραψα ~5 GB μέσω fish στο mc, χρειάστηκαν λίγο περισσότερες από 12 ώρες στο FastEthernet).

Το να μπορείς να αντιγράψεις είναι υπέροχο. Αλλά θέλω να "αποθηκεύσω ως" - και αμέσως στον διακομιστή. Και για να αντιγράψετε σε γραφική λειτουργία όχι από ένα ειδικό πρόγραμμα, αλλά από οποιοδήποτε γνωστό.

Αυτό είναι επίσης δυνατό:

sshfs

Θεωρία: Η μονάδα ασφάλειας σάς επιτρέπει να "εξάγετε" αιτήματα στο σύστημα αρχείων από τον πυρήνα πίσω στον χώρο χρήστη στο αντίστοιχο πρόγραμμα. Αυτό επιτρέπει την εύκολη εφαρμογή των "ψευδοσυστημάτων αρχείων". Για παράδειγμα, μπορούμε να παρέχουμε πρόσβαση σε ένα απομακρυσμένο σύστημα αρχείων μέσω ssh, έτσι ώστε όλες οι τοπικές εφαρμογές (με λίγες εξαιρέσεις) να μην υποψιάζονται τίποτα.

Στην πραγματικότητα, υπάρχει μια εξαίρεση: το O_DIRECT δεν υποστηρίζεται, δυστυχώς (αυτό δεν είναι πρόβλημα sshfs, αυτό είναι πρόβλημα ασφάλειας γενικά).

Χρήση: εγκαταστήστε το πακέτο sshfs (θα σύρει την ασφάλεια μαζί του).

Στην πραγματικότητα, ένα παράδειγμα του σεναρίου μου που προσαρτά το desunote.ru (βρίσκεται στον υπολογιστή του σπιτιού μου - οι εικόνες εμφανίζονται από αυτό σε αυτό το άρθρο) στον φορητό υπολογιστή μου:

#!/bin/bash sshfs desunote.ru:/var/www/desunote.ru/ /media/desunote.ru -o επανασύνδεση

Φτιάχνουμε το αρχείο +x, το καλούμε, πηγαίνουμε σε οποιαδήποτε εφαρμογή, λέμε αποθήκευση και βλέπουμε:

sshfs επιλογές που μπορεί να είναι σημαντικές: -o επανασύνδεση (λέει ότι προσπαθήστε να επανασυνδεθείτε αντί για σφάλματα).

Εάν εργάζεστε πολύ με δεδομένα από τη root, τότε μπορείτε (θα έπρεπε) να φτιάξετε ένα idmap:

-o idmap=χρήστης. Λειτουργεί ως εξής: εάν συνδεθούμε ως χρήστης pupkin@server και εργαζόμαστε τοπικά ως χρήστης vasiliy, τότε λέμε "υποθέστε ότι τα αρχεία pupkin είναι αρχεία vasiliy". καλά, ή "root", αν συνδεθούμε ως root.

Στην περίπτωσή μου, το idmap δεν χρειάζεται, αφού τα ονόματα χρήστη (τοπικό και απομακρυσμένο) είναι τα ίδια.

Σημειώστε ότι μπορούμε να λειτουργήσουμε άνετα μόνο εάν έχουμε κλειδί ssh (δείτε την αρχή του άρθρου), εάν όχι, η εξουσιοδότηση κωδικού πρόσβασης είναι ενοχλητική για 2-3 συνδέσεις.

Μπορείτε να το απενεργοποιήσετε ξανά με την εντολή fusermount -u /διαδρομή, ωστόσο, εάν η σύνδεση έχει κολλήσει (για παράδειγμα, δεν υπάρχει δίκτυο), τότε μπορείτε/θα πρέπει να το κάνετε αυτό από τη root: sudo umount -f /path.

Απομακρυσμένη εκτέλεση κώδικα

Το ssh μπορεί να εκτελέσει μια εντολή σε έναν απομακρυσμένο διακομιστή και να κλείσει αμέσως τη σύνδεση. Το πιο απλό παράδειγμα:

Ssh user@server ls /etc/

Θα εμφανίσει τα περιεχόμενα του /etc/ στον διακομιστή, ενώ θα έχουμε μια τοπική γραμμή εντολών.

Ορισμένες εφαρμογές θέλουν να έχουν τερματικό ελέγχου. Θα πρέπει να εκτελούνται με την επιλογή -t:
ssh user@server -t remove_command

Παρεμπιπτόντως, μπορούμε να κάνουμε κάτι σαν αυτό:
ssh user@server cat /some/file|awk "(print $2)" |local_app

Αυτό μας οδηγεί στο εξής χαρακτηριστικό:

Εμπρός stdin/out

Ας υποθέσουμε ότι θέλουμε να υποβάλουμε ένα αίτημα σε ένα πρόγραμμα από απόσταση και, στη συνέχεια, να βάλουμε την έξοδο του σε ένα τοπικό αρχείο

Ssh [email προστατευμένο]εντολή >my_file

Ας υποθέσουμε ότι θέλουμε να εξάγουμε τοπική έξοδο από απόσταση

Mycommand |scp - [email προστατευμένο]:/path/remote_file

Ας περιπλέκουμε το παράδειγμα - μπορούμε να μεταφέρουμε αρχεία από διακομιστή σε διακομιστή: Φτιάχνουμε μια αλυσίδα για να βάλουμε το stdin στην 10.1.1.2, η οποία δεν είναι προσβάσιμη από έξω:

Mycommand | ssh [email προστατευμένο]"SCP - [email προστατευμένο]:/path/to/file"

Υπάρχει επίσης μια τέτοια αινιγματική τεχνική για τη χρήση σωλήνα (προτείνεται ευγενικά στα σχόλια στο LJ):

Πίσσα -c * | ssh user@server "cd && tar -x"

Το Tar συσκευάζει αρχεία με μάσκα τοπικά, τα γράφει στο stdout, από όπου το ssh τα διαβάζει, τα μεταφέρει στο stdin σε έναν απομακρυσμένο διακομιστή, όπου το cd τα αγνοεί (δεν διαβάζει το stdin) και το tar τα διαβάζει και τα αποσυσκευάζει. Για να το πω έτσι, το scp είναι για τους φτωχούς.

Ψευδώνυμα

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

Σε μια λίγο πολύ μεγάλη εταιρεία, συχνά αποδεικνύεται ότι τα ονόματα των διακομιστών μοιάζουν με αυτό: spb-MX-i3.extrt.int.company.net. Και ο χρήστης εκεί δεν είναι ίσος με τον τοπικό. Δηλαδή, πρέπει να συνδεθείτε ως εξής: ssh [email προστατευμένο]. Κάθε φορά που πληκτρολογείτε, δεν θα χορταίνετε από σύνδρομα τούνελ. Στις μικρές εταιρείες το πρόβλημα είναι το αντίθετο - κανείς δεν σκέφτεται το DNS και η πρόσβαση στον διακομιστή μοιάζει με αυτό: ssh [email προστατευμένο]. Εν ολίγοις, αλλά και πάλι ενοχλητικό. Υπάρχει ακόμη πιο δράμα αν έχουμε μια μη τυπική θύρα, και, για παράδειγμα, την πρώτη έκδοση του ssh (γεια σας στο Ciscos). Τότε όλα μοιάζουν με αυτό: ssh -1 -p 334 [email προστατευμένο]. Κρεμάστε τον εαυτό σας. Δεν θέλω καν να μιλήσω για το δράμα με το scp.

Μπορείτε να καταχωρίσετε ψευδώνυμα σε όλο το σύστημα σε IP (/etc/host), αλλά αυτή είναι μια λανθασμένη λύση (τόσο ο χρήστης όσο και οι επιλογές εξακολουθούν να εκτυπώνονται. Υπάρχει συντομότερος τρόπος).

Αρχείο ~/.ssh/configσας επιτρέπει να ορίσετε παραμέτρους σύνδεσης, συμπεριλαμβανομένων εκείνων που αφορούν τους διακομιστές, κάτι που είναι το πιο σημαντικό, διαφορετικό για κάθε διακομιστή. Ακολουθεί ένα παράδειγμα διαμόρφωσης:

Host ric Όνομα κεντρικού υπολογιστή ooo-horns-and-hooves.rf Διαχειριστής χρήστη ForwardX11 ναι Συμπίεση ναι Αρχική σελίδα κεντρικού υπολογιστή Όνομα κεντρικού υπολογιστή myhome.dyndns.org Χρήστης vasya Κωδικός πρόσβασης Έλεγχος ταυτότητας όχι

Όλες οι διαθέσιμες επιλογές εμφανίζονται στο άνθρωπος ssh_config(δεν πρέπει να συγχέεται με το sshd_config).

Προεπιλογές

Ως υπόδειξη: μπορείτε να καθορίσετε τις προεπιλεγμένες ρυθμίσεις σύνδεσης χρησιμοποιώντας την κατασκευή Host *, π.χ., για παράδειγμα:

Κεντρικός υπολογιστής * Συμπίεση ρίζας χρήστη ναι

Το ίδιο μπορεί να γίνει στο /etc/ssh/ssh_config (δεν πρέπει να συγχέεται με το /etc/ssh/ssh ρε _config), αλλά αυτό απαιτεί δικαιώματα root και ισχύει για όλους τους χρήστες.

Προώθηση διακομιστή X

Στην πραγματικότητα, χάλασα λίγο αυτό το μέρος στο παραπάνω παράδειγμα διαμόρφωσης. Το ForwardX11 είναι ακριβώς αυτό.

Θεωρία: Οι γραφικές εφαρμογές στο Unix χρησιμοποιούν συνήθως τον διακομιστή X (το wayland είναι καθ' οδόν, αλλά ακόμα δεν είναι έτοιμο). Αυτό σημαίνει ότι η εφαρμογή ξεκινά και συνδέεται με τον διακομιστή X για σχεδίαση. Με άλλα λόγια, εάν έχετε έναν γυμνό μεταλλικό διακομιστή χωρίς gui και έναν τοπικό διακομιστή x (όπου εργάζεστε), τότε μπορείτε να επιτρέψετε σε εφαρμογές από τον διακομιστή να σχεδιάζουν στην επιφάνεια εργασίας σας. Συνήθως η σύνδεση σε έναν απομακρυσμένο διακομιστή X δεν είναι το πιο ασφαλές ή ασήμαντο πράγμα. Το SSH σάς επιτρέπει να απλοποιήσετε αυτή τη διαδικασία και να την κάνετε απόλυτα ασφαλή. Και η δυνατότητα μείωσης της κυκλοφορίας σας επιτρέπει επίσης να τα βγάλετε πέρα ​​με λιγότερη επισκεψιμότητα (δηλαδή, μειώστε τη χρήση του καναλιού, δηλαδή μειώστε το ping (ακριβέστερα, καθυστέρηση), δηλαδή μειώστε τις καθυστερήσεις).

Κλειδιά: -X - X προώθηση διακομιστή. -Υ προώθηση εξουσιοδότησης.

Απλά πρέπει να θυμάστε τον συνδυασμό ssh -XYC user@SERVER.
Στο παραπάνω παράδειγμα (τα ονόματα των εταιρειών είναι εικονικά), συνδέομαι στον διακομιστή ooo-horns-i-kopyta.rf για κάποιο λόγο, αλλά για να αποκτήσω πρόσβαση στον διακομιστή των Windows. Όλοι γνωρίζουμε την ασφάλεια της Microsoft όταν εργαζόμαστε στο δίκτυο, επομένως είναι άβολο να εκθέσουμε γυμνό RDP έξω. Αντίθετα, συνδεόμαστε στον διακομιστή μέσω ssh και, στη συνέχεια, εκτελούμε την εντολή rdesktop εκεί:
ssh ric
rdesktop -k en-us 192.168.1.1 -g 1900x1200

Και ένα θαύμα, ένα παράθυρο σύνδεσης στα παράθυρα στην επιφάνεια εργασίας μας. Σημειώστε ότι είναι προσεκτικά κρυπτογραφημένο και δεν διακρίνεται από την κανονική κίνηση ssh.

Κάλτσες-proxy

Όταν βρίσκομαι σε άλλο ξενοδοχείο (καφέ, συνέδριο), το τοπικό wifi τις περισσότερες φορές αποδεικνύεται τρομερό - κλειστά λιμάνια, άγνωστο επίπεδο ασφάλειας. Και δεν υπάρχει μεγάλη εμπιστοσύνη στα σημεία πρόσβασης άλλων ανθρώπων (αυτό δεν είναι παράνοια, έχω δει πώς κλέβονται κωδικοί πρόσβασης και cookies χρησιμοποιώντας έναν κοινόχρηστο φορητό υπολογιστή που διανέμει 3G σε όλους με το όνομα μιας κοντινής καφετέριας (και γράφει ενδιαφέροντα πράγματα στη διαδικασία )).

Τα κλειστά λιμάνια δημιουργούν ιδιαίτερα προβλήματα. Είτε το Jabber θα κλείσει, μετά το IMAP ή κάτι άλλο.

Ένα κανονικό VPN (pptp, l2tp, openvpn) δεν λειτουργεί σε τέτοιες περιπτώσεις - απλά δεν επιτρέπεται. Είναι γνωστό πειραματικά ότι η θύρα 443 αφήνεται πιο συχνά και σε λειτουργία CONNECT, δηλαδή, μεταβιβάζεται «ως έχει» (το κανονικό http μπορεί επίσης να τυλιχθεί διαφανώς σε ένα SQUID).

Η λύση είναι κάλτσες-πληρεξούσιοςτρόπο λειτουργίας ssh. Η αρχή του: ένας πελάτης ssh συνδέεται με τον διακομιστή και ακούει τοπικά. Έχοντας λάβει το αίτημα, το στέλνει (μέσω ανοιχτής σύνδεσης) στον διακομιστή, ο διακομιστής δημιουργεί μια σύνδεση σύμφωνα με το αίτημα και μεταδίδει όλα τα δεδομένα πίσω στον πελάτη ssh. Και απαντά σε αυτόν που ρώτησε. Για να δουλέψετε, πρέπει να πείτε στις εφαρμογές να "χρησιμοποιήσουν socks-proxy". Και καθορίστε τη διεύθυνση IP του διακομιστή μεσολάβησης. Στην περίπτωση του ssh, αυτό είναι πιο συχνά localhost (με αυτόν τον τρόπο δεν θα δώσετε το κανάλι σας σε αγνώστους).

Μια σύνδεση σε λειτουργία sock-proxy μοιάζει με αυτό:
ssh -D 8080 user@server

Λόγω του γεγονότος ότι το wifi άλλων ανθρώπων δεν είναι μόνο άθλιο, αλλά και αργό, μπορεί να είναι καλή ιδέα να ενεργοποιήσετε την επιλογή -C (συμπίεση κυκλοφορίας). Αποδεικνύεται σχεδόν σαν τούρμπο όπερας (μόνο που δεν πιέζει τις εικόνες). Στο πραγματικό σερφάρισμα στο http, χρειάζονται περίπου 2-3 ​​φορές (διαβάστε - αν έχετε την ατυχία των 64 kbit, τότε θα ανοίξετε σελίδες megabyte όχι σε δύο λεπτά, αλλά σε 40 δευτερόλεπτα. Είναι χάλια, αλλά είναι ακόμα καλύτερα). Αλλά το κύριο πράγμα: όχι κλεμμένα cookies ή υποκλοπές συνεδριών.

Δεν ήταν για τίποτα που είπα για κλειστά λιμάνια. Η θύρα 22 κλείνει ακριβώς με τον ίδιο τρόπο όπως η «περιττή» θύρα jabber. Η λύση είναι να κρεμάσετε τον διακομιστή στη θύρα 443. Δεν αξίζει να το αφαιρέσετε από το 22, μερικές φορές υπάρχουν συστήματα με DPI (βαθιά επιθεώρηση πακέτων) που δεν θα επιτρέψουν το "ψευδο-ssl" σας.

Αυτό είναι το config μου:

/etc/ssh/sshd_config:
(θραύσμα)
Θύρα 22
Θύρα 443

Και εδώ είναι ένα κομμάτι ~/.ssh/config από ένα φορητό υπολογιστή που περιγράφει το vpn

Host vpn Όνομα κεντρικού υπολογιστή desunote.ru Χρήστης vasya Συμπίεση ναι DynamicForward 127.1:8080 Θύρα 443

(σημειώστε τη νωχελική μορφή γραφής localhost - 127.1, αυτή είναι μια απολύτως νόμιμη μέθοδος για να γράψετε 127.0.0.1)

Προώθηση λιμένων

Προχωράμε στο εξαιρετικά δυσνόητο μέρος της λειτουργικότητας του SSH, το οποίο σας επιτρέπει να πραγματοποιείτε τις αινιγματικές λειτουργίες του TCP tunneling «από τον διακομιστή» και «στον διακομιστή».

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

Σχόλια: Δύο γκρίζα δίκτυα. Το πρώτο δίκτυο μοιάζει με ένα τυπικό δίκτυο γραφείου (NAT), το δεύτερο είναι μια «πύλη», δηλαδή ένας διακομιστής με λευκή διεπαφή και ένας γκρι που βλέπει το δικό του ιδιωτικό δίκτυο. Σε περαιτέρω συλλογισμό, υποθέτουμε ότι ο φορητός υπολογιστής "μας" είναι ο Α και ο "διακομιστής" είναι ο Β.

Εργο: Έχουμε μια εφαρμογή που εκτελείται τοπικά, πρέπει να επιτρέψουμε σε άλλον χρήστη (εκτός του δικτύου μας) να τη δει.

Λύση: προωθήστε την τοπική θύρα (127.0.0.1:80) σε μια δημόσια προσβάσιμη διεύθυνση. Ας υποθέσουμε ότι η "δημόσια πρόσβαση" μας B έχει καταλάβει τη θύρα 80 με κάτι χρήσιμο, επομένως θα προωθήσουμε σε μια μη τυπική θύρα (8080).

Τελική διαμόρφωση: τα αιτήματα για 8.8.8.8:8080 θα πάνε στον localhost του φορητού υπολογιστή A.

Ssh -R 127.1:80:8.8.8.8:8080 [email προστατευμένο]

Επιλογή σας επιτρέπει να ανακατευθύνετε από ένα τηλεχειριστήριο ( R emote) θύρα διακομιστή στη δική σας (τοπική).
Σημαντικό: εάν θέλουμε να χρησιμοποιήσουμε τη διεύθυνση 8.8.8.8, τότε πρέπει να ενεργοποιήσουμε το GatewayPorts στις ρυθμίσεις του διακομιστή Β.
Εργο. Στον διακομιστή "Β" ένας συγκεκριμένος δαίμονας (για παράδειγμα, ένας διακομιστής sql) ακούει. Η εφαρμογή μας δεν είναι συμβατή με τον διακομιστή (διαφορετικό ρυθμό μετάδοσης bit, λειτουργικό σύστημα, κακός διαχειριστής που απαγορεύει και επιβάλλει όρια κ.λπ.). Θέλουμε να έχουμε τοπική πρόσβαση στον απομακρυσμένο localhost.

Τελική διαμόρφωση: τα αιτήματα προς τον localhost:3333 στο "A" θα πρέπει να εξυπηρετούνται από τον δαίμονα στο localhost:3128 "B".

Ssh -L 127.1:3333:127.1:3128 [email προστατευμένο]

Επιλογή -ΜΕΓΑΛΟεπιτρέπει τοπικές κλήσεις ( μεγάλο ocal) απευθείας σε έναν απομακρυσμένο διακομιστή.

Εργο: Στον διακομιστή "Β" μια συγκεκριμένη υπηρεσία ακούει στη γκρι διεπαφή και θέλουμε να δώσουμε σε έναν συνάδελφο (192.168.0.3) την ευκαιρία να δει αυτήν την εφαρμογή.

Τελική διαμόρφωση: τα αιτήματα για τη γκρι διεύθυνση IP μας (192.168.0.2) πηγαίνουν στη γκρι διεπαφή του διακομιστή Β.

Ssh -L 192.168.0.2:8080:10.1.1.1:80 [email προστατευμένο]

Φωλιασμένες σήραγγες

Φυσικά, οι σήραγγες μπορούν να επαναδρομολογηθούν.

Ας περιπλέκουμε την εργασία: τώρα θέλουμε να δείξουμε στον συνάδελφό μας μια εφαρμογή που εκτελείται σε localhost σε διακομιστή με τη διεύθυνση 10.1.1.2 (στη θύρα 80).

Η λύση είναι πολύπλοκη:
ssh -L 192.168.0.2:8080:127.1:9999 [email προστατευμένο] ssh -L 127.1:9999:127.1:80 [email προστατευμένο]

Τι συμβαίνει? Λέμε στην ssh να ανακατευθύνει τοπικά αιτήματα από τη διεύθυνσή μας στον localhost του διακομιστή Β και αμέσως μετά τη σύνδεση, εκκινεί το ssh (δηλαδή τον πελάτη ssh) στον διακομιστή Β με την επιλογή ακρόασης στον localhost και προώθηση αιτημάτων στον διακομιστή 10.1.1.2 (όπου ο πελάτης πρέπει να συνδεθεί). Η θύρα 9999 επιλέχθηκε αυθαίρετα, το κυριότερο είναι ότι ταιριάζει στην πρώτη κλήση και στη δεύτερη.

Reverse Sox Proxy

Εάν το προηγούμενο παράδειγμα σας φάνηκε απλό και προφανές, τότε προσπαθήστε να μαντέψετε τι θα κάνει αυτό το παράδειγμα:
ssh -D 8080 -R 127.1:8080:127.1:8080 [email προστατευμένο] ssh -R 127.1:8080:127.1:8080 [email προστατευμένο]

Εάν είστε υπάλληλος ασφαλείας του οποίου η αποστολή είναι να απαγορεύσει τη χρήση του Διαδικτύου στον διακομιστή 10.1.1.2, τότε μπορείτε να ξεκινήσετε να βγάζετε τις τρίχες στον πισινό σας, επειδή αυτή η εντολή οργανώνει την πρόσβαση στο Διαδίκτυο για τον διακομιστή 10.1.1.2 μέσω ενός διακομιστή μεσολάβησης sox που εκτελείται στον υπολογιστή "A". Η κίνηση είναι πλήρως κρυπτογραφημένη και δεν διακρίνεται από οποιαδήποτε άλλη κίνηση SSH. Και η εξερχόμενη κίνηση από τον υπολογιστή, από την άποψη του δικτύου «192.168.0/24», δεν διακρίνεται από την κανονική κίνηση του υπολογιστή Α.

Σήραγγες

Εάν σε αυτό το σημείο ο πισινός του τμήματος ασφαλείας δεν είναι φαλακρός και το ssh εξακολουθεί να μην βρίσκεται στην πρώτη λίστα των εχθρών ασφαλείας, εδώ είναι ο απόλυτος δολοφόνος όλων: IP tunneling ή ακόμα και ethernet. Στις πιο ριζοσπαστικές περιπτώσεις, αυτό σας επιτρέπει να κάνετε τούνελ στο dhcp, να κάνετε απομακρυσμένες πλαστογραφίες arp, να ξυπνάτε στο lan και άλλες αγανακτήσεις δεύτερου επιπέδου.

(αλίμονο, δεν το έχω χρησιμοποιήσει μόνος μου).

Είναι εύκολο να καταλάβουμε ότι σε τέτοιες συνθήκες είναι αδύνατο να πιάσουμε τέτοιες σήραγγες με οποιοδήποτε DPI (βαθιά επιθεώρηση πακέτων) - είτε επιτρέπεται το ssh (διαβάστε - κάντε ό,τι θέλετε), είτε το ssh απαγορεύεται (και μπορείτε να εγκαταλείψετε με ασφάλεια ένα τέτοιο παρέα ηλιθίων χωρίς να νιώθω την παραμικρή λύπη).

Προώθηση εξουσιοδότησης

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

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

Θα επαναλάβω την εικόνα:

Ας υποθέσουμε ότι θέλουμε να συνδεθούμε στον διακομιστή 10.1.1.2, ο οποίος είναι έτοιμος να δεχτεί το κλειδί μας. Αλλά δεν θέλουμε να το αντιγράψουμε στο 8.8.8.8, επειδή είναι μια δημόσια αυλή και οι μισοί άνθρωποι έχουν sudo και μπορούν να ψάξουν στους καταλόγους άλλων ανθρώπων. Ένας συμβιβασμός θα ήταν να έχουμε ένα «διαφορετικό» κλειδί ssh που θα εξουσιοδοτεί [email προστατευμένο]έως την 10.1.1.2, αλλά αν δεν θέλουμε να επιτρέψουμε σε κανέναν από την 8.8.8.8 στην 10.1.1.2, τότε αυτό δεν αποτελεί επιλογή (ειδικά επειδή μπορούν όχι μόνο να χρησιμοποιήσουν το κλειδί, αλλά και να το αντιγράψουν για τον εαυτό τους μία βροχερή μέρα").

Το Ssh προσφέρει τη δυνατότητα προώθησης ενός πράκτορα ssh (αυτή είναι μια υπηρεσία που ζητά κωδικό πρόσβασης για ένα κλειδί). Επιλογή ssh -Aπροωθεί την εξουσιοδότηση σε έναν απομακρυσμένο διακομιστή.

Η κλήση μοιάζει με αυτό:

Ssh-A [email προστατευμένο] ssh [email προστατευμένο]

Ένας απομακρυσμένος πελάτης ssh (στις 8.8.8.8) μπορεί να αποδείξει στην 10.1.1.2 ότι είμαστε εμείς μόνο εάν είμαστε συνδεδεμένοι σε αυτόν τον διακομιστή και έχουμε δώσει στον πελάτη ssh πρόσβαση στον αντιπρόσωπο εξουσιοδότησης (αλλά όχι στο κλειδί!).

Στις περισσότερες περιπτώσεις λειτουργεί.

Ωστόσο, εάν ο διακομιστής είναι εντελώς κακός, τότε η ρίζα του διακομιστή μπορεί να χρησιμοποιήσει την υποδοχή για πλαστοπροσωπία όταν είμαστε συνδεδεμένοι.

Υπάρχει μια ακόμη πιο ισχυρή μέθοδος - μετατρέπει το ssh σε έναν απλό σωλήνα (με την έννοια του "pipe") μέσω του οποίου εργαζόμαστε με τον απομακρυσμένο διακομιστή.

Το κύριο πλεονέκτημα αυτής της μεθόδου είναι η πλήρης ανεξαρτησία της από την εμπιστοσύνη του ενδιάμεσου διακομιστή. Μπορεί να χρησιμοποιήσει έναν ψεύτικο διακομιστή SSH, να καταγράψει όλα τα byte και όλες τις ενέργειες, να υποκλέψει οποιαδήποτε δεδομένα και να τα παραποιήσει όπως θέλει - η αλληλεπίδραση λαμβάνει χώρα μεταξύ του διακομιστή "που προκύπτει" και του πελάτη. Εάν τα δεδομένα τελικού διακομιστή είναι παραποιημένα, τότε η υπογραφή δεν θα ταιριάζει. Εάν τα δεδομένα δεν έχουν παραβιαστεί, τότε η συνεδρία εγκαθίσταται σε ασφαλή λειτουργία, επομένως δεν υπάρχει τίποτα για υποκλοπή.

Δεν ήξερα αυτό το ωραίο σκηνικό, οπότε το έσκαψα.

Η ρύθμιση βασίζεται σε δύο επιλογές ssh: την επιλογή -W (που μετατρέπει το ssh σε "pipe") και την επιλογή config ProxyCommand(φαίνεται να μην υπάρχει επιλογή γραμμής εντολών), η οποία λέει "τρέξτε το πρόγραμμα και συνδέστε το στο stdin/out του". Αυτές οι επιλογές εμφανίστηκαν πρόσφατα, επομένως οι χρήστες του centos αντιμετωπίζουν προβλήματα.

Μοιάζει με αυτό (αριθμοί για την παραπάνω εικόνα):

Ssh/config:
Host raep HostName 10.1.1.2 User user2 ProxyCommand ssh -W %h:%p [email προστατευμένο]

Λοιπόν, η σύνδεση είναι ασήμαντη: ssh raep .

Επιτρέψτε μου να επαναλάβω ένα σημαντικό σημείο: ο διακομιστής 8.8.8.8 δεν μπορεί να υποκλέψει ή να πλαστογραφήσει την κυκλοφορία, να χρησιμοποιήσει έναν παράγοντα εξουσιοδότησης χρήστη ή να τροποποιήσει με άλλο τρόπο την κυκλοφορία. Απαγορέψτε το - ναι, μπορεί. Αλλά αν το επιτρέψετε, θα περάσει από μέσα σας χωρίς αποκρυπτογράφηση ή τροποποίηση. Για να λειτουργήσει η διαμόρφωση, πρέπει να έχετε το δικό σας δημόσιο κλειδί στα authorized_keys όπως για [email προστατευμένο], και στο [email προστατευμένο]

Φυσικά, η σύνδεση μπορεί να εξοπλιστεί με όλα τα άλλα μπιχλιμπίδια - προώθηση θύρας, αντιγραφή αρχείων, socks proxies, σήραγγες L2, σήραγγα διακομιστή X κ.λπ.
ssh tunneling Προσθήκη ετικετών

Τι είναι το SSH;

SSH(Αγγλικά Secure SHell - "secure shell") είναι ένα πρωτόκολλο δικτύου σε επίπεδο συνεδρίας που επιτρέπει τον απομακρυσμένο έλεγχο του λειτουργικού συστήματος και τη δημιουργία σήραγγας των συνδέσεων TCP (για παράδειγμα, για μεταφορά αρχείων). Είναι παρόμοιο σε λειτουργικότητα με τα πρωτόκολλα Telnet και rlogin, αλλά, σε αντίθεση με αυτά, κρυπτογραφεί όλη την κίνηση, συμπεριλαμβανομένων των μεταδιδόμενων κωδικών πρόσβασης.

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

Προγράμματα για εργασία με SSH

Εντολές αρχείου

ls - λίστα αρχείων και καταλόγων
ls -al - μορφοποιημένη λίστα με κρυφούς καταλόγους και αρχεία
cd dir - αλλάξτε τον κατάλογο σε dir
cd - αλλαγή στον αρχικό κατάλογο
pwd - εμφάνιση τρέχοντος καταλόγου
mkdir dir - δημιουργία καταλόγου dir
αρχείο rm - διαγραφή αρχείου
rm -r dir - αφαίρεση καταλόγου dir
Αρχείο rm -f - αναγκαστική διαγραφή αρχείου
rm -rf dir - διαγράψτε αναγκαστικά τον κατάλογο dir *
cp file1 file2 - αντιγράψτε το αρχείο1 στο file2
cp -r dir1 dir2 - αντιγραφή dir1 σε dir2. θα δημιουργήσει τον κατάλογο dir2 αν δεν υπάρχει
mv file1 file2 - μετονομάστε ή μετακινήστε το αρχείο1 στο file2. Εάν το file2 είναι ένας υπάρχων κατάλογος, μετακινήστε το αρχείο1 στον κατάλογο file2
Σύνδεσμος αρχείου ln -s - δημιουργήστε έναν συμβολικό σύνδεσμο για το αρχείο αρχείου
αρχείο αφής - δημιουργία αρχείου
cat > αρχείο - άμεση τυπική είσοδος στο αρχείο
περισσότερα αρχείο — εμφανίστε τα περιεχόμενα του αρχείου
αρχείο κεφαλής - εκτυπώστε τις πρώτες 10 γραμμές του αρχείου
αρχείο ουράς - εκτυπώστε τις τελευταίες 10 γραμμές του αρχείου
αρχείο tail -f - εκτυπώστε τα περιεχόμενα του αρχείου καθώς μεγαλώνει, ξεκινώντας από τις τελευταίες 10 γραμμές
προβολή αρχείου - εμφάνιση αρχείου στην οθόνη

ΥΓ Σε μια από τις προσεχείς αναρτήσεις μου θα σας πω τι με οδήγησε στο SSH αρχικά)



Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: