Είσοδος χρήστη vty lines ssh. Περιορισμοί SSH στη διαδικασία σύνδεσης συνεδρίας. Έκδοση πρωτοκόλλου SSH

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

Τα προϊόντα Cisco έχουν κερδίσει την αναγνώριση σε όλο τον κόσμο λόγω της αξιοπιστίας και της ανεπιτήδευσής τους.

Εγκατάσταση Cisco 2960: Σε αυτό το άρθρο, θα εκτελέσουμε τη βασική ρύθμιση του διακόπτη. Το άρθρο θα είναι χρήσιμο σε όλους όσους αρχίζουν να εργάζονται με προϊόντα Cisco.

Βήμα 1: Σύνδεση εξοπλισμού Cisco

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

Για παράδειγμα, για να εκτελέσουμε τις αρχικές ρυθμίσεις των διακοπτών Cisco, θα χρειαστούμε ένα ιδιόκτητο μπλε επίπεδο καλώδιο RJ-45 – RS-232 (περιλαμβάνεται με τον εξοπλισμό) και μια θύρα COM στον υπολογιστή από την οποία θα γίνουν οι ρυθμίσεις.

Η λύση στο πρόβλημα είναι να αντιγράψετε τον φάκελο HyperTerminal από τα Windows XP (θέση καταλόγου - Αρχεία προγράμματος) σε οποιονδήποτε βολικό κατάλογο των Windows 7/8.

Για να εκτελέσετε το πρόγραμμα, χρησιμοποιήστε το αρχείο hypertrm .exe, το οποίο μπορείτε να βρείτε στον ίδιο φάκελο.

Ή χρησιμοποιήστε το πρόγραμμα Putty, το οποίο, εκτός από τη σύνδεση με εξοπλισμό Cisco, μπορεί να χρησιμοποιηθεί για σύνδεση με διακομιστές κ.λπ. χρησιμοποιώντας σύνδεση SSH.

Ας προχωρήσουμε στη σύνδεση. Στον μπροστινό πίνακα του διακόπτη, αναζητήστε την υποδοχή RJ-45 με την ένδειξη "Κονσόλα" και συνδέστε το καλώδιο.

Ενεργοποιήστε το διακόπτη.

Πηγαίνουμε στο HyperTerminal στον υπολογιστή, επιλέγουμε τη διεπαφή σύνδεσης (COM1), η ταχύτητα θύρας είναι 9600 B/s και απαντάμε αρνητικά ("Όχι") σε όλες τις περαιτέρω ερωτήσεις.

Βήμα 3. Γενικές αρχές για την εγκατάσταση εξοπλισμού Cisco

Για λόγους ασφαλείας, οι μεταγωγείς Cisco διαθέτουν 2 λειτουργίες εισαγωγής εντολών: λειτουργία χρήστη για έλεγχο της κατάστασης του μεταγωγέα και προνομιακή λειτουργία (ανάλογη με τον χρήστη root στο UNIX ή διαχειριστή στα Windows) για αλλαγή της διαμόρφωσης του διακόπτη.

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

Για χρήστες που εργάζονται σε Windows, θα δώσουμε μια εξήγηση - εάν η γραμμή πριν από την εντολή ξεκινά με τον χαρακτήρα "#", βρίσκεστε σε προνομιακή λειτουργία.

Το ίδιο ισχύει και για την εισαγωγή κωδικού πρόσβασης, καθώς στα συστήματα UNIX, ο κωδικός που εισάγει ο χρήστης δεν εμφανίζεται στην οθόνη.

Για να μεταβείτε σε προνομιακή λειτουργία, χρησιμοποιήστε την εντολή "enable", χωρίς εισαγωγικά και για έξοδο από την "απενεργοποίηση".

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

Συνέχεια με το παράθυρο διαλόγου διαμόρφωσης; : όχι

Τότε βρισκόμαστε σε λειτουργία χρήστη:

Μεταβαίνουμε σε προνομιακή λειτουργία, ο προεπιλεγμένος κωδικός πρόσβασης, κατά κανόνα, απουσιάζει, επομένως δεν εισάγουμε τίποτα, αλλά πατάμε "Enter".

Switch>enable

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

Βήμα 4: Βασική εγκατάσταση Cisco 2960

1. Αλλάξτε το όνομα του διακόπτη μας (το προεπιλεγμένο όνομα είναι Switch):

Τερματικό διαμόρφωσης διακόπτη#

Switch(config)# όνομα κεντρικού υπολογιστή Switch01 (Ορίστε το όνομα του διακόπτη – Switch01)

Switch01(config)#

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

Εφιστούμε επίσης την προσοχή σας στο γεγονός ότι αντί για μεγάλες εντολές όπως "configure terminal", υπάρχουν σύντομα ανάλογα "conf t".

2. Ορίστε τη διεύθυνση IP για τη διεπαφή διαχείρισης μεταγωγέα.

Switch01(config)# interface fa0/0 (καθορίστε τη διεπαφή προς διαμόρφωση)

Switch01(config-if)# χωρίς τερματισμό (ενεργοποιήστε τη διεπαφή)

Switch01(config-if)# διεύθυνση IP 255.255.255.0 (ορίστε τη διεύθυνση IP και τη μάσκα)

Switch01(config-if)# έξοδος (έξοδος από τη λειτουργία διαμόρφωσης διεπαφής)

Switch01(config)#

3. Ορίστε έναν κωδικό πρόσβασης για την προνομιακή λειτουργία:

Switch01(config)# enable secret pass1234 (κωδικός πρόσβασης 1234)

Έξοδος Switch01(config)#

Διακόπτης 01#

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

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

Switch01# conf t

Switch 01(config)# ip domain name geek -nose .com (Καθορίστε τον τομέα, εάν δεν υπάρχει τομέας, γράψτε κάποιον)

Switch01(config)# κλειδί κρυπτογράφησης δημιουργεί rsa (Δημιουργούμε ένα κλειδί RSA για ssh)

Switch01(config)# ip ssh έκδοση 2 (Καθορίστε την έκδοση πρωτοκόλλου ssh)

Switch01(config)# ip ssh authentication-retries 3 (Ορίστε τον αριθμό των προσπαθειών σύνδεσης μέσω ssh)

Switch01(config)# υπηρεσία κωδικού πρόσβασης-κρυπτογράφηση (Αποθήκευση κωδικών πρόσβασης σε κρυπτογραφημένη μορφή)

Διακόπτης 01(config )# line vty 0 2 (Μετάβαση στη λειτουργία διάσκεψης και τερματικών γραμμών)

Switch01(config-line)# είσοδος μεταφοράς ssh (Επιτρέπονται οι συνδέσεις μόνο μέσω ssh)

Switch01(config-line)# exec timeout 20 0 (Ενεργοποιούμε την αυτόματη αποσύνδεση της συνεδρίας ssh μετά από 20 λεπτά)

Διακόπτης 01 (config -line )# end (Έξοδος από τη λειτουργία διαμόρφωσης)

Switch01# copy running-config startup-config (Αποθηκεύστε τις ρυθμίσεις)

Σπουδαίος!Για έξοδο από το υπομενού διαμόρφωσης ένα επίπεδο υψηλότερα, για παράδειγμα, από το "config -line" στο "config" χρησιμοποιήστε την εντολή "exit". Για να βγείτε εντελώς από τη λειτουργία διαμόρφωσης, χρησιμοποιήστε την εντολή "end".

Η βασική ρύθμιση ssh περιγράφηκε παραπάνω, μπορείτε να βρείτε πιο προηγμένες ρυθμίσεις:

Switch01# conf t

Switch01(config)# aaa new-model (Ενεργοποίηση πρωτοκόλλου AAA)

Εγκατάσταση SSH

Για εξοπλισμό δικτύου, αυτό το βήμα δεν είναι απαραίτητο - η υποστήριξη SSH είναι σχεδόν πάντα ενσωματωμένη ακόμη και στην πιο μινιμαλιστική έκδοση του λειτουργικού συστήματος. Η μόνη εξαίρεση είναι η αρκετά παλιά έκδοση Cisco IOS του W/O CRYPTO.

Αυτή η έκδοση του IOS - με την συνειδητή αφαίρεση όλων των ακόμη και ασήμαντων ιχνών όσων σχετίζονται με την κρυπτογραφία (μέχρι την απουσία (config)#enable secret) χρειαζόταν για εξαγωγή σε χώρες με αυστηρή νομοθεσία σχετικά με την εισαγωγή κρυπτογραφίας. Παρεμπιπτόντως, αυτό περιλαμβάνει όχι μόνο την προφανή Κούβα + Βόρεια Κορέα + Συρία + Ιράν, αλλά και, για παράδειγμα, την Αυστραλία.

Εάν έχετε ένα παρόμοιο iOS - αυτό θα μπορούσε να είναι, για παράδειγμα, στο Catalyst 2950, ​​το οποίο, αν και αρχαίο, μπορεί να συναντηθεί στην παραγωγή - ενημερώστε το. Χωρίς ενημέρωση, οι λειτουργίες που απαιτούνται για το SSH, ιδίως:

  • Ενσωματωμένος πελάτης Secure Shell SSH Έκδοση 1.
  • Υποστήριξη διακομιστή Secure Shell SSH Έκδοση 1.
  • Υποστήριξη διακομιστή Secure Shell SSH Version 2.

θα απουσιάζει σωματικά από το IOS.

Προσθήκη υποστήριξης SSH στον Windows Server

Ξεκινώντας με την έκδοση 1709 του Windows Server 2016, η υποστήριξη SSH προστέθηκε στην πλατφόρμα των Windows.

Είναι εύκολο να το ενεργοποιήσετε.

Πρώτα απ 'όλα, ας μάθουμε ποια έκδοση του προγράμματος-πελάτη και διακομιστή OpenSSH βρίσκεται στα αποθετήρια που είναι διαθέσιμα για εγκατάσταση αυτήν τη στιγμή. Αυτό είναι απαραίτητο ώστε όταν αρχίσουν να αυξάνονται οι εκδόσεις (τη στιγμή που γράφονται αυτές οι εκδόσεις υπάρχει μόνο μία έκδοση, η 1.0), δεν θα έχουμε προβλήματα όπως "το σενάριο που εγκαθιστά μια συγκεκριμένη έκδοση δεν λειτουργεί". Ας το κάνουμε με αυτό το cmdlet:

Get-WindowsCapability-Online | ? Όνομα -όπως "OpenSSH*"

Έχω Windows Server 2019, οπότε η έξοδος μοιάζει με αυτό:

Βλέπουμε ότι ο πελάτης SSH είναι ήδη εγκατεστημένος αρχικά, αλλά ο διακομιστής SSH δεν είναι. Για τον Windows Server 2016, η έξοδος θα είναι ελαφρώς διαφορετική. Εντάξει, ας εγκαταστήσουμε έναν διακομιστή SSH:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Ο πελάτης, όπως είναι σαφές, εάν απουσιάζει, τοποθετείται με τον ίδιο τρόπο. Tilde - τέσσερα κομμάτια, μην πληκτρολογείτε λάθος.

Εάν λάβετε το σφάλμα 0x800f0950, μην απελπίζεστε - είναι μόνο το Feature-On-Demand που δεν μπορεί να βρει το αποθετήριο. Δοκιμάστε το μέσω του παλιού καλού DISM:

dism /Add-Capability /CapabilityName:OpenSSH.Server~~~~0.0.1.0 /LimitAccess /Online

Ας ελέγξουμε ότι όλα είναι εγκατεστημένα:

Get-Service sshd

Λοιπόν, ή απλώς ρωτήστε ξανά Get-WindowsCapability -Online | ? Όνομα όπως "OpenSSH*" :

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

Διόρθωση της έκδοσης SSHv2

Ο αρχικός ζωολογικός κήπος των εκδόσεων SSH είναι το SSH 1.3, μετά το SSH 1.5, μετά «μια ειδική έκδοση από τη Cisco, που δείχνει ότι ο διακομιστής μπορεί να κάνει και το 2.0 και τις προηγούμενες», το οποίο το 1.99 είναι πλέον εντελώς άσχετο, επειδή Όλο το λογισμικό μπορεί να κάνει SSHv2. Η εύρεση λογισμικού που υποστηρίζει μόνο SSH 1.x είναι μια πραγματικά δύσκολη δουλειά. Επομένως, φυσικά, βεβαιωθείτε ότι δεν έχετε τέτοιο λογισμικό και ενημερώστε εάν είναι απαραίτητο - αλλά θα εξετάσουμε μόνο τη λειτουργικότητα και την ασφάλεια της δεύτερης έκδοσης του SSH.

Ενεργοποιήστε το SSH 2.x στο Cisco IOS

Διορθώνεται απλά - για το Cisco IOS θα είναι η εντολή:

atraining(config)#ip ssh έκδοση 2

Εάν αυτή τη στιγμή δεν έχετε δημιουργήσει ακόμη ένα ζεύγος κλειδιών κατάλληλο για SSHv2, τότε θα δείτε κάτι σαν αυτό:

Δημιουργήστε κλειδιά RSA για να ενεργοποιήσετε το SSH (και τουλάχιστον 768 bit για το SSH v2).

Αυτό δεν είναι τρομακτικό, εκτός από το ότι σημειώνουμε ότι το SSHv2 έχει «χαμηλότερες» απαιτήσεις για το μήκος κλειδιού στο ζεύγος κλειδιών. Ωστόσο, δεν θα προσπαθήσουμε να δημιουργήσουμε κλειδιά που δεν εμπίπτουν σε αυτόν τον περιορισμό - οι μέρες που, για παράδειγμα, χρησιμοποιούνταν ενεργά κλειδιά RSA 512-bit, έχουν παρέλθει.

Εάν τα κλειδιά δεν έχουν ακόμη δημιουργηθεί, τότε αυτό γίνεται απλά:

atraining(config)#crypto key generate rsa modulus 2048 label SSH_KEYS

Οι παράμετροι είναι απλές - το rsa θα ορίσει τον αλγόριθμο (η επιλογή ec προστίθεται στο νέο IOS), συντελεστής - το μήκος bit (μπορείτε να το ρυθμίσετε σε 4096, σίγουρα θα είναι πιο ασφαλές), ετικέτα - για να δημιουργήσετε ένα "με όνομα ζεύγος κλειδιών συγκεκριμένου σκοπού.

Ορισμένες εκδόσεις του Cisco IOS έχουν όριο στα αποθηκευμένα ζεύγη κλειδιών - έως 10 ανά συσκευή και έως 2 ανά χρήστη - επομένως μπορεί να εμφανιστεί μια προειδοποίηση όπως "προσοχή, το νέο ζεύγος κλειδιών θα αντικαταστήσει το προηγούμενο". Εντόπισέ το.

Τώρα ας πούμε στο SSH να χρησιμοποιήσει αυτό ακριβώς το ζεύγος:

atraining(config)#ip ssh rsa όνομα ζεύγους κλειδιών SSH_KEYS

Αν όλα είναι εντάξει, θα δούμε κάτι σαν αυτό:

%SSH-5-DISABLED: Το SSH 2.0 έχει απενεργοποιηθεί
%SSH-5-ENABLED: Το SSH 2.0 έχει ενεργοποιηθεί

Αυτό θα σημαίνει ότι η εναλλαγή από "οποιαδήποτε τυχαία κλειδιά" σε "ένα ρητά καθορισμένο ζεύγος" ήταν επιτυχής.

Εάν πρέπει επίσης να ενημερώσουμε ότι αυτή η συσκευή πρέπει να συνδεθεί μόνο χρησιμοποιώντας SSH και όχι telnet, για παράδειγμα, τότε αυτό γίνεται ως εξής - πρώτα μεταβείτε στη λειτουργία διαμόρφωσης VTY:

atraining(config)#line vty 0 5 (ή γραμμή vty 0 15 - εξαρτάται από το μοντέλο)

και αναφέρετε ρητά ότι οι εισερχόμενες συνδέσεις πρέπει να γίνονται αποκλειστικά μέσω SSH:

atraining(config-line)#transport input ssh

Ενεργοποιήστε το SSH 2.x στο Cisco NX-OS

Θα είναι απλό με το Cisco Nexus - υποστηρίζουν μόνο SSH 2.x, επομένως δεν χρειάζονται πρόσθετα βήματα για τον περιορισμό της δυνατότητας σύνδεσης σε παλαιότερες εκδόσεις του SSH.

Μην ξεχάσετε να ενεργοποιήσετε ρητά το SSH:

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

atraining-nx(config)#no feature ssh

atraining-nx(config)#ssh κλειδί rsa 2048

atraining-nx(config)#feature ssh

Οι παράμετροι του κλειδιού ssh είναι ασήμαντες, εκτός από το ότι τα παλιά κλειδιά δεν θα αντικατασταθούν αυτόματα, εάν θέλετε να αντικατασταθούν, προσθέστε δύναμη στο τέλος της εντολής

Ενεργοποίηση SSH 2.x σε sshd

Στις ρυθμίσεις sshd θα χρειαστεί να προσθέσουμε (ή να αντικαταστήσουμε) τη γραμμή:

Ενεργοποιήστε το SSH 2.x στον Windows Server

Στον κατάλογο %WINDIR%\System32\OpenSSH\ θα υπάρχει ένα τυπικό αρχείο διαμόρφωσης OpenSSH, sshd_config_default - και θεωρητικά μπορεί να υπάρχει μια ρύθμιση για "μόνο τη δεύτερη έκδοση", αλλά στην πραγματικότητα χρησιμοποιείται πάντα μόνο το SSHv2. Επομένως, δεν υπάρχει συγκεκριμένη ενέργεια για την ενεργοποίηση του SSHv2 στον Windows Server.

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

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

Το SSH υποστηρίζει διάφορες επιλογές για την επαλήθευση της ταυτότητας του κεντρικού υπολογιστή στον οποίο γίνεται η σύνδεση - χρησιμοποιώντας τους αλγόριθμους DSA, ECDSA, RSA και τους κοινούς αλγόριθμους ελλειπτικής καμπύλης 25519.

Δεν μας αρέσει το DSA αμέσως, γιατί... γνωρίζει μόνο κλειδιά 1024-bit και υπάρχει μια άποψη που εκφράζεται από τον σύντροφο Snowden ότι η NSA δεν αγαπά απλώς ενεργά το DSA.

Επομένως, θα κόψουμε αμέσως την επιλογή χρήσης DSA.

Διορθώνουμε τη χρήση του RSA για την αναγνώριση κεντρικού υπολογιστή στο Cisco IOS

Για τη Cisco θα είναι απλό:

atraining(config)#ip ssh αλγόριθμος διακομιστή ssh κλειδί κεντρικού υπολογιστή ssh-rsa

Διορθώνουμε τους αλγόριθμους αναγνώρισης κεντρικού υπολογιστή για sshd

Στις ρυθμίσεις sshd θα χρειαστεί να πάμε στο φάκελο /etc/sysconfig/sshd και να διορθώσουμε τη γραμμή AUTOCREATE_SERVER_KEYS εκεί:

AUTOCREATE_SERVER_KEYS="RSA ED25519"

Όπως είναι σαφές, πρόκειται για μια ρύθμιση "στις παραλλαγές των οποίων οι αλγόριθμοι θα δημιουργούνται αυτόματα τα κλειδιά κεντρικού υπολογιστή". Σημειώνω ότι εάν ο στόχος είναι η υψηλή αξιοπιστία, τότε το RSA 4096-bit είναι η σωστή επιλογή και εάν είναι γρήγορο, τότε το EC 25519 θα είναι προτιμότερο.

Μετά από αυτό, ας πάμε στον κατάλογο ρυθμίσεων sshd - στην έκδοσή μας θα είναι /etc/ssh - και ας διαγράψουμε τα αρχεία των αχρησιμοποίητων αλγορίθμων με κλειδιά κεντρικού υπολογιστή εκεί. Δηλαδή από μια λίστα όπως:

  • ssh_host_dsa_key
  • ssh_host_dsa_key.pub
  • ssh_host_ecdsa_key
  • ssh_host_ecdsa_key.pub
  • ssh_host_rsa_key
  • ssh_host_rsa_key.pub
  • ssh_host_ed25519_key
  • ssh_host_ed25519_key.pub

Ας αφήσουμε μόνο τα απαραίτητα.

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

Μετά από αυτό, στο αρχείο διαμόρφωσης πρέπει να βρείτε οδηγίες σχετικά με τη χρήση αυτών των αρχείων με κλειδιά - συνήθως (οδηγίες) μοιάζουν με αυτό:

  • HostKey /etc/ssh/ssh_host_rsa_key
  • HostKey /etc/ssh/ssh_host_dsa_key
  • HostKey /etc/ssh/ssh_host_ecdsa_key
  • HostKey /etc/ssh/ssh_host_ed25519_key

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

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

Για παράδειγμα, εάν αφήσετε μόνο το φανταχτερό Ed25519 και απενεργοποιήσετε το RSA, τότε το ευρέως χρησιμοποιούμενο PuTTY μπορεί να λέει κάτι σαν αυτό:

Αυτό, παρεμπιπτόντως, μπορεί να θεραπευτεί με την ενημέρωση του PuTTY στην πιο πρόσφατη έκδοση, η οποία υποστηρίζει νέους αλγόριθμους. Κάντε το λοιπόν εκ των προτέρων.

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

Αυτό γίνεται ως εξής:

Για Ed25519: ssh-keygen -t ed25519 -f ssh_host_ed25519_key -N ""

Για RSA: ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key -N ""

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

Περιορισμός πρωτοκόλλων για έλεγχο ταυτότητας SSH στον Windows Server

Το σχήμα είναι το ίδιο - μεταβείτε στο αρχείο sshd_config_default και αφήστε μόνο:

  • HostKey ssh_host_rsa_key
  • HostKey ssh_host_ed25519_key

Εάν χρειάζεστε και Ed25519 και RSA, ή ακόμα και μόνο Ed25519. Στη συνέχεια, δημιουργούμε τα κλειδιά:

Για Ed25519: .\ssh-keygen -t ed25519 -f ssh_host_ed25519_key

Για RSA: .\ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key

.\ssh-add ssh_host_ed25519_key

Κατ 'αρχήν, αυτό είναι, η υπηρεσία sshd μπορεί να ξεκινήσει.

Επώνυμο δεκανίκι από τη Microsoft

Ο καρπός του θλιβερού μυαλού των προγραμματιστών της Microsoft είναι ένα δεκανίκι για την καταχώρηση δικαιωμάτων σε αρχεία με κλειδιά. Συνιστάται να το εκτελέσετε, αλλά εάν είστε ψυχικά υγιείς και συνειδητοποιείτε ότι η υπηρεσία πρέπει να έχει δικαιώματα στα βασικά αρχεία που χρησιμοποιεί, μπορείτε να το κάνετε χωρίς αυτό. Ωστόσο, αν μη τι άλλο, τοποθετείται ως εξής:

Install-Module -Force OpenSSHUtils

Repair-SshdHostKeyPermission -FilePath

Θα απαιτήσει NuGet και καλά... δείτε μόνοι σας:

Υπολογίστε το επίπεδο του κοινού-στόχου, το οποίο για αυτές τις ενέργειες χρειάζεται να κατεβάσει ένα πακέτο λειτουργιών και να εκτελέσει το cmdlet - δηλ. Εάν δεν ενεργοποιήσετε τον εγκέφαλό σας και δεν δώσετε άδειες, μπορείτε να απομνημονεύσετε εντολές μόνοι σας. Είμαι βέβαιος ότι η Microsoft θα κυκλοφορήσει μερικά MVP για αυτήν την ενότητα.

Τώρα σχετικά με την ανταλλαγή βασικών πληροφοριών.

Ρύθμιση ανταλλαγής κλειδιών/δημιουργία υλικού κλειδιού

Υπάρχουν πολλές επιλογές για το DH, ή τον αλγόριθμο Diffie-Hellman-Merkle. Χωρίς να εμβαθύνουμε στο υλικό του ίδιου του αλγορίθμου σε αυτό το άρθρο, ας δούμε πώς μπορούμε να ενισχύσουμε το μπροστινό μέρος από αυτήν την πλευρά.

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

Ας δούμε πώς έχουμε διαμορφώσει αυτήν τη στιγμή το DH σε SSH στο Cisco IOS:

atraining#sh ip ssh | inc Diffie

Ελάχιστο αναμενόμενο μέγεθος κλειδιού Diffie Hellman: 1024 bit

Κακώς. Πρέπει να είναι τουλάχιστον 2048 bit. Ας το κάνουμε αυτό με την εντολή:

atraining(config)#ip ssh dh ελάχιστο μέγεθος 2048

Επομένως, επιλέξτε μόνοι σας - το SHA-512, εάν υποστηρίζεται σε όλο τον εξοπλισμό που χρησιμοποιείται, θα είναι η καλύτερη επιλογή.

Αλλά υπάρχει μια λεπτότητα - ο τρόπος χρήσης κατακερματισμού και κρυπτογράφησης.

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

Η καλύτερη επιλογή από άποψη ασφαλείας θα ήταν το Encrypt-Then-MAC. Γιατί; Στην περίπτωση που χρησιμοποιείται το σχήμα "κατακερματισμός από ήδη κρυπτογραφημένο", ελέγχεται πρώτα η ακεραιότητα και εάν κάτι δεν πάει καλά, τα δεδομένα απορρίπτονται αμέσως. δεν πραγματοποιείται δοκιμαστική αποκρυπτογράφηση. Τέτοιες παραλλαγές MAC θα έχουν το επίθημα -etm. Λαμβάνοντας υπόψη αυτά τα σημεία, η διαμόρφωσή μας θα μοιάζει με αυτό:

MAC [email προστατευμένο],[email προστατευμένο]

Στο Cisco IOS, ο τύπος MAC θα οριστεί ως εξής:

atraining(config)#ip ssh αλγόριθμος διακομιστή mac hmac-sha1

Το Cisco IOS έχει περιορισμένη επιλογή - hmac-sha1 και hmac-sha1-96. Η δεύτερη επιλογή με μείωση της εξόδου SHA-1 από 160 bit σε 96 (όπως στο ipsec) δεν είναι κατάλληλη για εμάς, επειδή υπολογίζεται με την ίδια ταχύτητα (ακόμα πρέπει να υπολογίσετε το κανονικό SHA-1) και την εξοικονόμηση κίνησης - Λοιπόν, αχ, καθόλου.

MAC για υπολογισμό δακτυλικών αποτυπωμάτων κλειδιού

Στο OpenSSH, μπορούμε επίσης να ορίσουμε τον αλγόριθμο που θα χρησιμοποιηθεί για τον υπολογισμό του «δακτυλικού αποτυπώματος» του κλειδιού. Η προεπιλογή είναι MD5 - αλλά θα ήταν καλύτερο να προσδιορίσετε ρητά ότι είναι καλύτερο να χρησιμοποιήσετε το SHA-2/256 για την εμφάνιση και τη σύγκριση των κατακερματισμών κλειδιών:

FingerprintHash sha256

Τώρα ας περάσουμε από το κρυπτογραφικό μέρος στο τμήμα του δικτύου.

Ρυθμίσεις δικτύου SSHv2

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

Το μπλοκ θα μοιάζει κάπως έτσι:

Θύρα 22
ΔιεύθυνσηFamily inet
IgnoreRhosts ναι
UseDNS αρ
ListenΔιεύθυνση x.x.x.x
TCPKeepAlive ναι
#VerifyHostKeyDNS αρ
#UseRoaming αρ

Μερικές από τις ρυθμίσεις είναι ξεκάθαρες - για παράδειγμα, η Θύρα 22 δεσμεύει την υπηρεσία SSH στον καθορισμένο αριθμό θύρας, η οποία μπορεί να αλλάξει εάν είναι απαραίτητο - τουλάχιστον για να αποτραπεί το χτύπημα των ρομπότ εικασίας κωδικού πρόσβασης και το ListenAddress υποδεικνύει σαφώς ποιες διευθύνσεις L3 για αποδοχή αιτημάτων σύνδεσης (ο περιορισμός είναι σχετικός στην περίπτωση πολλών διευθύνσεων ή/και διεπαφών δικτύου ή στο σενάριο «ο κεντρικός υπολογιστής μπορεί να έχει νέες διεπαφές δικτύου εν κινήσει και αυτό δεν σημαίνει ότι χρειάζεται να περιμένει για συνδέσεις SSH»). Άλλες ρυθμίσεις είναι λιγότερο προφανείς.

Το AddressFamily inet λέει ότι θα περιμένουμε μόνο συνδέσεις μέσω IPv4. Εάν χρησιμοποιείτε IPv6 και μέσω αυτού είναι δυνατές οι συνδέσεις με τον διακομιστή SSH, προσθέστε το AddressFamily inet,inet6.

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

Το IgnoreRhosts ναι απενεργοποιεί τον αρχαίο μηχανισμό δημιουργίας λίστας κεντρικών υπολογιστών (συνήθως στο αρχείο .rhosts) από τον οποίο είναι δυνατές οι συνδέσεις χωρίς έλεγχο ταυτότητας.

Το UseDNS no θα χρειαστεί για να απενεργοποιήσετε τον έλεγχο της εγγραφής PTR του συνδεδεμένου συνδρομητή - επιπλέον του γεγονότος ότι στο εσωτερικό δίκτυο, ακόμη και όταν συνδέεστε από εξωτερικά, η παρουσία PTR είναι εντελώς περιττή, αυτό το μέτρο επιβραδύνει μόνο τη σύνδεση και δεν αυξάνει το επίπεδο ασφάλειας - το μέγιστο είναι αυτό - γράφει στο αρχείο καταγραφής προειδοποιήσεων σχετικά με "ο σύνδεσμος δεν είπε το πραγματικό του όνομα FQDN". Αν και είναι πιθανό αυτός ο έλεγχος να είναι ενεργοποιημένος, αλλά το DNS στον κόμβο να μην λειτουργεί (για παράδειγμα, δείχνει τη λάθος διεύθυνση IP του διακομιστή DNS), σε αυτήν την περίπτωση είναι πιθανό να μην μπορείτε να συνδεθείτε στον κόμβο. Αλλά αυτό δεν είναι καθόλου «προστατευτικό μέτρο», αλλά μάλλον ένας άλλος λόγος για να απενεργοποιήσετε αυτόν τον έλεγχο, γιατί Εξαιτίας αυτού, αποδεικνύεται ότι ο αριθμός των εμπλεκόμενων υποσυστημάτων αυξάνεται και επομένως η συνολική αξιοπιστία του συστήματος μειώνεται.

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

Το UseRoaming no απενεργοποιεί την υποστήριξη για περιαγωγή, μια πειραματική επέκταση OpenSSH που υποτίθεται ότι χειριζόταν σενάρια όπως "ξεκίνησε ως διαχειριστής από ένα μέρος, μετά μετακινήθηκε σε άλλο και συνέχισε από εκεί". Στην πραγματικότητα, αυτή η λειτουργικότητα αποδείχθηκε ότι δεν ήταν χρήσιμη σε κανέναν και δεν πρόσθεσε πρωτοποριακές καινοτομίες, αλλά έφερε προβλήματα ασφάλειας – συμπεριλαμβανομένων ευπαθειών PoC. Επομένως, το απενεργοποιούμε ρητά. Όπως και η προηγούμενη παράμετρος – πελάτης, π.χ. δίνεται εδώ γιατί, πάλι, σε αρκετούς οδηγούς αναγράφεται «απενεργοποίηση παντού, τόσο στον πελάτη όσο και στον διακομιστή». Αυτό δεν ισχύει, μόνο για τον πελάτη.

Περιορισμοί SSH στη διαδικασία σύνδεσης συνεδρίας

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

Το μπλοκ ρυθμίσεων για όλα αυτά θα μοιάζει με αυτό:

Αριθμός ελέγχου ταυτότητας RhostsRSAA
PubkeyAuthentication αρ
HostbaseAuthentication αρ
ChallengeResponseAuthentication αρ
KerberosAuthentication αρ
PasswordAuthentication ναι

LoginGraceTime 15

ClientAliveInterval 1800
ClientAliveCountMax 0

MaxAuthTries 3
MaxSessions 1
PermitTunnel αρ

MaxStartups 10:50:20
ShowPatchLevel αρ

Ας καταλάβουμε τι και πώς.

Ένα μπλοκ RhostsRSAA όχι , PubkeyAuthentication , HostbaseAuthentication no , ChallengeResponseAuthentication no , KerberosAuthentication no , απενεργοποιεί τις αχρησιμοποίητες μεθόδους ελέγχου ταυτότητας. Φυσικά, εάν χρησιμοποιείτε, ας πούμε, το Kerberos για να συνδεθείτε σε έναν διακομιστή SSH, τότε δεν χρειάζεται να απενεργοποιήσετε το Kerberos. Αλλά σε ένα τυπικό σενάριο, όταν η σύνδεση πραγματοποιείται χρησιμοποιώντας πιο κοινές μεθόδους, οι περιττές πρέπει να απενεργοποιηθούν ρητά.

Η παράμετρος LoginGraceTime λέει πόσο χρόνο μπορεί να αφιερώσει ο χρήστης στη διαδικασία σύνδεσης. Η προεπιλογή είναι 2 λεπτά. Είναι πολύ. Πρέπει να είναι πολύ αργός χρήστης για να χρειάζεται τόσο πολύ χρόνο για να συνδεθείτε. Επομένως, αυτή η παράμετρος έχει οριστεί σε 15 - μπορείτε να εισαγάγετε σε 15 δευτερόλεπτα. Εάν χρειάζεστε περισσότερο χρόνο, μπορείτε να το αυξήσετε, αλλά λογικά. Το πιο σημαντικό, ο διακομιστής θα "επαναφέρει" γρήγορα τις περιόδους λειτουργίας που έχουν ξεκινήσει αλλά δεν έχουν ακόμη ολοκληρώσει τον έλεγχο ταυτότητας και θα εξοικονομεί πόρους.

Το αντίστοιχο του LoginGraceTime στο Cisco IOS είναι η εντολή atraining(config)#ip ssh time-out, η οποία ορίζει τον μέγιστο χρόνο για τη διαδικασία σύνδεσης. Η προεπιλογή είναι επίσης 2 λεπτά και αυτό είναι επίσης πάρα πολύ και πρέπει να μειωθεί. Στην περίπτωση του Cisco NX-OS αυτό θα ήταν atraining-nx(config)#ssh login-gracetime .

Θα χρειαστεί ένα ζεύγος ρυθμίσεων ClientAliveCountMax και ClientAliveInterval για να καθοριστεί πότε θα αποσυνδεθεί ένας ανενεργός πελάτης. Το ClientAliveInterval είναι ο χρόνος αδράνειας σε δευτερόλεπτα μετά τον οποίο ο πελάτης θα αποσυνδεθεί και το ClientAliveCountMax είναι ο αριθμός των προσπαθειών "αφύπνισης" του προγράμματος-πελάτη. Στην περίπτωσή μας, ο πελάτης θα αποσυνδεθεί μετά από μισή ώρα αδράνειας.

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

Ένα ανάλογο του MaxAuthTries στο Cisco IOS είναι η εντολή atraining(config)#ip ssh authentication-retries, με προεπιλογή 3 προσπαθειών.

Η παράμετρος MaxSessions δείχνει πόσες συνεδρίες μέσα σε μία σύνδεση SSHμπορεί να αρχικοποιηθεί. Αυτό δεν είναι περιορισμός στις "παράλληλες συνεδρίες από τον ίδιο κεντρικό υπολογιστή"! Αυτό ακριβώς είναι "εγκατέστησε έναν σωλήνα SSH στον διακομιστή και μέσα σε αυτόν πολυπλεξήσατε πολλές συνεδρίες με προώθηση δεδομένων." Εάν δεν χρειάζεστε ένα τέτοιο σενάριο - όταν συνδέεστε στον διακομιστή X και μέσω αυτού προωθείτε την κίνηση βαθύτερα στο δίκτυο, τότε ένα αρκεί - αλλά πρέπει απλώς να συνδεθείτε σε έναν συγκεκριμένο διακομιστή και να τον διαχειριστείτε, τότε MaxSessions 1, ναι . Η παράμετρος PermitTunnel no θα ολοκληρώσει τη διαμόρφωση της λειτουργίας "ssh μόνο για διαχείριση του διακομιστή στον οποίο συνδεόμαστε".

Το MaxStartups 10:50:20 είναι ένας μηχανισμός τύπου WRED, η οικογένεια του οποίου συζητείται και η λογική για τη διαμόρφωσή του θα είναι η εξής - η πρώτη και η τελευταία τιμή είναι ο αρχικός αριθμός των συνδέσεων (μιλάμε μόνο για συνδέσεις που δεν πέρασαν τον έλεγχο ταυτότητας), ξεκινώντας από τον οποίο θα αρχίσει να λειτουργεί ο μηχανισμός ο μέγιστος δυνατός αριθμός συνδέσεων (στην περίπτωσή μας, ο μηχανισμός θα ενεργοποιηθεί όταν υπάρχουν 10 συνδέσεις στον διακομιστή και η 21η σύνδεση θα είναι τεχνικά αδύνατο), και η μέση παράμετρος είναι η πιθανότητα ως ποσοστό. Για εμάς είναι 50, δηλ. θα αρνηθούμε στις μισές περιπτώσεις που ο αριθμός των περιόδων σύνδεσης που «κρεμούν στη φάση ελέγχου ταυτότητας» είναι από 10 έως 20.

Μπορείτε να το κάνετε πιο απλό - για παράδειγμα, MaxStartups 10, π.χ. ορίστε το MaxStartups με μία παράμετρο. Αυτό θα υποδεικνύει απλώς τον μέγιστο αριθμό ταυτόχρονων επικυρωμένων περιόδων σύνδεσης.

Ένα ανάλογο του MaxStartups N με μία παράμετρο στο Cisco IOS είναι η εντολή atraining(config)#ip ssh maxstartups N , όπου N είναι ο ίδιος μέγιστος αριθμός ταυτόχρονων επαληθευμένων περιόδων σύνδεσης.

Χρησιμοποιώντας την εντολή ShowPatchLevel no, θα απενεργοποιήσουμε τη δημοσίευση λεπτομερών πληροφοριών σχετικά με την έκδοση SSH στον συνδεδεμένο πελάτη.

Τώρα ας προχωρήσουμε στο μπλοκ ρυθμίσεων που σχετίζονται με λογαριασμούς.

Ομάδες και χρήστες στη ρύθμιση ενός διακομιστή SSH

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

AllowUsers admin admin2
AllowGroups nixadmins
DenyUsers nginx
DenyGroups nginx
PermitEmptyPasswords αρ
PermitRootLogin αρ
UsePrivilegeSeparation sandbox

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

Στην έκδοση με Cisco IOS, δεν έχει νόημα να κάνετε τέτοιες ρυθμίσεις τοπικά στη συσκευή, γιατί Είναι πιο λογικό να χρησιμοποιείτε AAA και να ανακατευθύνετε αιτήματα για έλεγχο ταυτότητας και εξουσιοδότηση μέσω RADIUS/TACACS σε κάποιον κεντρικό διακομιστή ή (σε νέο IOS) να επικοινωνείτε απευθείας με τον χώρο αποθήκευσης LDAP με ερωτήματα "υπάρχει τέτοιος χρήστης". Η δημιουργία τοπικών βάσεων δεδομένων σε κάθε συσκευή είναι άβολη και μη ασφαλής. Ολόκληρος αυτός ο μηχανισμός δεν συνδέεται με το SSH, αλλά είναι ένας πιο γενικός τρόπος ανακατεύθυνσης αιτημάτων ελέγχου ταυτότητας/εξουσιοδότησης, επομένως δεν περιγράφεται εδώ, ώστε το άρθρο να παραμείνει για το SSH και όχι «για οτιδήποτε μπορεί να σχετίζεται με το SSH».

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

atraining(config)#security password min-length N

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

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

Σύντομη περίληψη

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

Ημερομηνία τελευταίας επεξεργασίας κειμένου:

Η σύνδεση και η διαμόρφωση του Cisco Catalyst 2960 έχει τις δικές του αποχρώσεις και είναι κάπως διαφορετική από τη σύνδεση εξοπλισμού άλλων κατασκευαστών.

Η σύνδεση και η διαμόρφωση του Cisco Catalyst 2960 έχει τις δικές του αποχρώσεις και είναι κάπως διαφορετική από τη σύνδεση εξοπλισμού άλλων κατασκευαστών. Για την αρχική εγκατάσταση θα απαιτείται η παρουσία ενός ιδιόκτητου επίπεδου καλωδίου RJ-45–RS-232 (μπλε πλεγμένο, που παρέχεται με τον εξοπλισμό) και την παρουσία μιας θύρας COM στη μητρική πλακέτα του υπολογιστή μέσω της οποίας θα εκτελούνται οι διαδικασίες εγκατάστασης.


Στις μητρικές πλακέτες των σύγχρονων υπολογιστών δεν υπάρχει θύρα COM, επομένως για να πραγματοποιήσετε τη ρύθμιση θα χρειαστείτε έναν ειδικό προσαρμογέα. Η Cisco χρησιμοποιεί υποδοχές Mini-USB στον εξοπλισμό της κονσόλας. Για να ρυθμίσετε τις παραμέτρους μέσω της θύρας Mini-USB, θα πρέπει να κάνετε λήψη του προγράμματος οδήγησης της κονσόλας usb της Cisco.

Ρύθμιση Hyper Terminal

Εάν η διαδικασία εγκατάστασης εκτελεστεί χρησιμοποιώντας το λειτουργικό σύστημα Windows 7/8, τότε θα προκύψει το πρόβλημα της έλλειψης HyperTerminal. Αυτό μπορεί να επιλυθεί γρήγορα εάν αντιγράψετε τον επιθυμητό φάκελο από τα Windows XP σε οποιονδήποτε κατάλογο των Windows 7/8. Στα Windows XP, ο φάκελος βρίσκεται στον κατάλογο Program Files. Για να εκτελέσετε το πρόγραμμα, χρησιμοποιήστε το αρχείο hypertrm.exe, το οποίο βρίσκεται στον ίδιο φάκελο. Ένα άλλο πρόγραμμα που μπορεί να χρησιμοποιηθεί είναι το Putty. Εκτός από τη σύνδεση με εξοπλισμό Cisco, χρησιμοποιείται για εργασία με δρομολογητές και διακομιστές όταν απαιτείται διαμόρφωση SSH για τη σύνδεσή τους.



Για να εκτελέσετε τη διαδικασία μεταγωγής, το καλώδιο πρέπει να συνδεθεί στην υποδοχή RJ-45, η οποία χαρακτηρίζεται «Κονσόλα» στον μπροστινό πίνακα. Στη συνέχεια, πρέπει να ενεργοποιήσετε την παροχή ρεύματος στον διακόπτη και να μεταβείτε στο HyperTerminal στον υπολογιστή σας. Στο πρόγραμμα πρέπει να επιλέξετε τη διεπαφή σύνδεσης που αντιστοιχεί στο COM1 και την ταχύτητά του ίση με 9600 B/s. Για όλες τις επόμενες ερωτήσεις, επιλέξτε την αρνητική απάντηση «Όχι». Εάν επιλέξετε τη ρύθμιση VLAN στη διεπαφή σύνδεσης, μπορείτε να διαμορφώσετε τη διεύθυνση IP της συσκευής σε αυτήν.



Γενικές αρχές για την εγκατάσταση εξοπλισμού Cisco

Για να διασφαλιστεί υψηλό επίπεδο ασφάλειας, οι μεταγωγείς Cisco υποστηρίζουν δύο λειτουργίες εισαγωγής εντολών:

  • χρήστης – χρησιμοποιείται για τον έλεγχο της κατάστασης του εξοπλισμού.
  • προνομιούχο - χρησιμοποιείται για την αλλαγή της διαμόρφωσης του διακόπτη (είναι ανάλογο με τη λειτουργία διαχειριστή για Windows ή τη λειτουργία root για το UNIX).

Εάν υπάρχει σύμβολο "#" στη γραμμή πριν από την εντολή, τότε η προνομιακή λειτουργία είναι ενεργή. Όπως και στο σύστημα UNIX, όταν εισάγετε έναν κωδικό πρόσβασης, δεν θα εμφανίζεται στην οθόνη. Για να μεταβείτε σε προνομιακή λειτουργία, χρησιμοποιήστε την εντολή ενεργοποίηση και απενεργοποιήστε την για έξοδο.

Αρχική ρύθμιση του διακόπτη. Όταν, κατά την πρώτη εκκίνηση, ο οδηγός εγκατάστασης εμφανίσει ένα βήμα προς βήμα μήνυμα διαμόρφωσης, θα πρέπει να το αρνηθείτε: Συνέχεια με το παράθυρο διαλόγου διαμόρφωσης; :όχι. Αυτό θα φορτώσει την προσαρμοσμένη λειτουργία: Switch>

Switch>enable

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

Βασικές ρυθμίσεις Cisco 2960

Αντικατάσταση του ονόματος διακόπτη (αρχικά ήταν Switch):

Τερματικό διαμόρφωσης διακόπτη#

Switch(config)# όνομα κεντρικού υπολογιστή Switch01 (έχει οριστεί νέο όνομα - Switch01)

Switch01(config)#

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

Ρύθμιση της διεύθυνσης IP για τη θύρα διαχείρισης διακόπτη

Switch01(config)# interface fa0/0 (ρυθμίζει τη διεπαφή που θα διαμορφωθεί)

Switch01(config-if)# χωρίς τερματισμό (η διεπαφή είναι ενεργοποιημένη)

Switch01(config-if)# διεύθυνση IP 192.168.0.1 255.255.255.0 (ορίστε τη διεύθυνση IP και τη μάσκα)

Switch01(config-if)# έξοδος (έξοδος από τη λειτουργία διαμόρφωσης διεπαφής)

Switch01(config)#

Ρύθμιση του κωδικού πρόσβασης για προνομιακή λειτουργία

Switch01(config)# enable secret pass1234 (password pass1234)

Έξοδος Switch01(config)#

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

Switch01# conf t Switch01(config)# ip όνομα τομέα geek-nose.com (ο τομέας έχει οριστεί, αν δεν είναι εκεί, γράφεται κανένας)

Switch01(config)# κλειδί κρυπτογράφησης δημιουργεί rsa (δημιουργία κλειδιού RSA υπό ssh)

Switch01(config)# ip ssh έκδοση 2 (έκδοση πρωτοκόλλου ssh)

Switch01(config)# ip ssh authentication-επαναλαμβάνει 3 (αριθμός προσπαθειών σύνδεσης μέσω ssh)

Switch01(config)# υπηρεσία κωδικού πρόσβασης-κρυπτογράφηση (αποθήκευση κωδικών πρόσβασης σε κρυπτογραφημένη μορφή)

Switch01(config)# line vty 0 2 (μετάβαση σε λειτουργία συνδιάσκεψης και τερματικών γραμμών)

Switch01(config-line)# είσοδος μεταφοράς ssh (σύνδεση μόνο μέσω ssh)

Switch01(config-line)# exec timeout 20 0 (ενεργοποίηση αυτόματης αποσύνδεσης της περιόδου λειτουργίας ssh μετά από 20 λεπτά)

Switch01(config-line)# end (Έξοδος από τη λειτουργία διαμόρφωσης)

Switch01# copy running-config startup-config (Αποθήκευση ρυθμίσεων)

Αυτή ήταν η βασική ρύθμιση SSH. Ένα πιο προηγμένο μοιάζει:

Switch01# conf t Switch01(config)# aaa new-model (το πρωτόκολλο AAA είναι ενεργοποιημένο)

Switch01(config)# όνομα χρήστη δικαιώματα ρίζας 15 μυστικό πέρασμα1234 (δημιουργείται ένας χρήστης root, με μέγιστο επίπεδο προνομίων 15 και κωδικό πρόσβασης1234)

Switch01(config)# access-list 01 permit 192.168.0 0.0.0.255 (ένας κανόνας πρόσβασης με το όνομα 01 μέσω ssh έχει οριστεί για όλους τους κεντρικούς υπολογιστές στο δίκτυο 192.168.0.0/24, μπορεί να οριστεί μια συγκεκριμένη διεύθυνση IP)

Switch01(config)# line vty 0 2 (μετάβαση σε λειτουργία συνδιάσκεψης και τερματικής γραμμής) Switch01(config-line)# επίπεδο προνομίου 15 (επιτρέπει την είσοδο σε προνομιακή λειτουργία)

Switch01(config-line)# Access-class 23 in (δεσμεύει τον δημιουργημένο κανόνα πρόσβασης ssh στη γραμμή τερματικού)

Switch01(config-line)# σύγχρονη καταγραφή (απενεργοποίηση μηνυμάτων καταγραφής)

Switch01(config-line)# end (έξοδος από τη λειτουργία διαμόρφωσης)

Switch01# copy running-config startup-config (αποθήκευση ρυθμίσεων).

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

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

Ρύθμιση SSH στη Cisco. Απαιτούμενες παράμετροι.

Για να ενεργοποιήσετε το SSH στο Cisco IOS, πρέπει να ολοκληρώσετε τα ακόλουθα 5 υποχρεωτικά βήματα.

1. Ορίστε το όνομα της συσκευής χρησιμοποιώντας την εντολή hostname
(config)#hostname sw01
2. Ορίστε όνομα χρήστη και κωδικό πρόσβασης
(config)#username Admin1 μυστικό 5 $1$ukk...
3. Ρυθμίστε έναν τομέα DNS χρησιμοποιώντας την εντολή ip domain-name
(config)#ip domain-name domain.ru
4. Δημιουργήστε ένα κλειδί RSA για να χρησιμοποιήσετε το SSH στη συσκευή.

Για να το κάνετε αυτό, χρησιμοποιήστε την εντολή

(config)#crypto key δημιουργεί rsa

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

#show crypto key mypubkey rsa

Εάν υπάρχει κλειδί, θα εμφανιστεί το όνομα και η ημερομηνία δημιουργίας του:

% Το ζεύγος κλειδιών δημιουργήθηκε στις: 00:07:18 YEKT 31 Ιουλίου 2014
Όνομα κλειδιού: sw01.domain.ru
Χρήση: Κλειδί κρυπτογράφησης
Βασικά δεδομένα:
xxxxxxxxxxxxxxxxxxxxxxxx...

5. Ενεργοποιήστε την υποστήριξη SSH για εικονικό τερματικό
(config)#line vty 0 4 (config-line)#transport input ssh (config-line)#login local (εάν aaa new-model δεν χρησιμοποιείται στο βήμα 2)

Ρύθμιση SSH στη Cisco. Προαιρετικές παράμετροι.

Κατά τη ρύθμιση ενός διακομιστή SSH στη Cisco, συνήθως καθορίζω τις ακόλουθες προαιρετικές παραμέτρους.

1. Έκδοση πρωτοκόλλου SSH.

Χρησιμοποιούμε την έκδοση 2.

(config)#ip ssh έκδοση 2

2. Αριθμός προσπαθειών ελέγχου ταυτότητας

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

(config)#ip ssh έλεγχος ταυτότητας-επαναλήψεις 2
3. Καταγραφή συμβάντων πρωτοκόλλου SSH
(config)#ip ssh καταγραφή συμβάντων

Ταυτόχρονα, στα αρχεία καταγραφής μπορείτε να δείτε ποιοι χρήστες από ποιους οικοδεσπότες προσπάθησαν να αποκτήσουν πρόσβαση στη συσκευή.

1w5d: %SSH-5-SSH2_SESSION: Αίτημα περιόδου σύνδεσης SSH2 από 192.168.1.2 (tty = 0)
με χρήση κρυπτογράφησης "aes128-cbc", hmac "hmac-md5" Επιτυχία
1w5d: %SSH-5-SSH2_USERAUTH: Έλεγχος ταυτότητας χρήστη "Admin1" για περίοδο λειτουργίας SSH2
από 192.168.1.2 (tty = 0) με χρήση κρυπτογράφησης "aes128-cbc", hmac "hmac-md5"
Πέτυχε

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

1w5d: %SSH-5-SSH2_USERAUTH: Έλεγχος ταυτότητας χρήστη "Χρήστης" για περίοδο λειτουργίας SSH2 από
192.168.1.2 (tty = 0) με χρήση κρυπτογράφησης "aes128-cbc", hmac "hmac-md5" Απέτυχε

4. Αλλάζω τη θύρα εισόδου του διακομιστή SSH σε μη τυπική.

Έτσι, οι ρυθμίσεις SSH έχουν ολοκληρωθεί. Τώρα μπορείτε να κατεβάσετε το Putty από την επίσημη ιστοσελίδα και να απολαύσετε το τηλεχειριστήριο της Cisco!


Έλεγχος ρυθμίσεων SSH στη Cisco

Για να ελέγξετε τις ρυθμίσεις, χρησιμοποιήστε την εντολή show ip ssh, η οποία εμφανίζει την κατάσταση και την έκδοση του διακομιστή SSH, καθώς και ορισμένες παραμέτρους ελέγχου ταυτότητας.

Sw01.domain.ru#show ip ssh
Ενεργοποιημένο SSH - έκδοση 2.0
Χρονικό όριο ελέγχου ταυτότητας: 120 δευτερόλεπτα. Επανάληψη ελέγχου ταυτότητας: 3

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

Sw01.domain.ru#show ssh
%Δεν εκτελούνται συνδέσεις διακομιστή SSHv1.
Λειτουργία έκδοσης σύνδεσης Κρυπτογράφηση Κατάσταση Hmac Όνομα χρήστη
0 2.0 IN aes128-cbc hmac-md5 Η συνεδρία ξεκίνησε Διαχειριστής1
0 2.0 OUT aes128-cbc hmac-md5 Η συνεδρία ξεκίνησε Διαχειριστής1
1 2.0 IN aes128-cbc hmac-md5 Η συνεδρία ξεκίνησε Διαχειριστής2
1 2.0 OUT aes128-cbc hmac-md5 Η συνεδρία ξεκίνησε Διαχειριστής2

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

Το πρωτόκολλο SSH χρησιμοποιείται συχνά για την απομακρυσμένη διαχείριση δρομολογητών και μεταγωγέων. Ειδικότερα, για τη διαχείριση εξοπλισμού δικτύου Cisco. Η ρύθμιση αυτού του εξοπλισμού για σύνδεση μέσω SSH θα συζητηθεί σε αυτό το άρθρο.

Γιατί SSH για Cisco

Το SSH είναι ένα ασφαλές πρωτόκολλο που θα εμποδίσει τους αεροπειρατές και τους χάκερ που θέλουν να καταλάβουν τον εξοπλισμό του δικτύου σας Cisco.

Αλλά η σωστή διαμόρφωση είναι σημαντική εάν θέλετε ο δρομολογητής σας να είναι ασφαλής.

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

Πώς να ρυθμίσετε μια σύνδεση SSH για τη Cisco

Η ρύθμιση ξεκινά με το γεγονός ότι πρέπει να εισέλθετε σε προνομιακή λειτουργία. Για να το κάνετε αυτό, χρησιμοποιήστε την ακόλουθη εντολή: cisco> enable. Είναι καλύτερο να χρησιμοποιήσετε ένα δημόσιο κλειδί για τη σύνδεση με τον εξοπλισμό, επομένως συνιστάται η δημιουργία RSA. Και για να το κάνετε αυτό, πρέπει να ορίσετε την ακριβή ημερομηνία και ώρα στο Cisco, διαφορετικά το κλειδί δεν θα λειτουργήσει: cisco# clock set 17:10:00 28 Aug 2016. Μετά από αυτό, μεταβείτε στην άμεση λειτουργία αλλαγής διαμορφώσεων, η οποία θα χρειαστεί για τη δημιουργία μιας σύνδεσης μέσω του πρωτοκόλλου SSH: τερματικό ρύθμισης παραμέτρων cisco#

Για να δημιουργήσετε ένα δημόσιο κλειδί, θα χρειαστεί να εισαγάγετε το όνομα τομέα με το οποίο ο πελάτης θα συνδεθεί στον εξοπλισμό δικτύου. Για να το κάνετε αυτό, χρησιμοποιήστε την εντολή: cisco(config)# ip όνομα τομέα domain_name.ru. Μετά από αυτό, μπορείτε να δημιουργήσετε ένα κλειδί RSA χρησιμοποιώντας τον ακόλουθο συνδυασμό: cisco(config)# κλειδί κρυπτογράφησης δημιουργεί rsa. Εάν θέλετε να βελτιώσετε την προστασία του εξοπλισμού του δικτύου σας, μπορείτε να χρησιμοποιήσετε πρόσθετους κωδικούς πρόσβασης, απλώς ενεργοποιήστε πρώτα την κρυπτογράφηση τους χρησιμοποιώντας την εντολή: cisco(config)# υπηρεσία κωδικού πρόσβασης-κρυπτογράφηση.

Στη συνέχεια, πρέπει να δημιουργήσετε έναν χρήστη, να βρείτε έναν κωδικό πρόσβασης για αυτόν και να καθορίσετε το επίπεδο πρόσβασης: cisco(config)# όνομα χρήστη όνομα χρήστη προνόμιο 15 κωδικός πρόσβασης 7 κωδικός πρόσβασης. Μόνο αφού δημιουργήσετε τουλάχιστον έναν χρήστη στο σύστημα, μπορείτε να ξεκινήσετε το πρωτόκολλο AAA χρησιμοποιώντας την ακόλουθη εντολή: cisco(config)# aaa new-model. Και για να ξεκινήσετε τελικά τις γραμμές τερματικού μέσω του πρωτοκόλλου SSH, πρέπει να μεταβείτε στη διαμόρφωσή τους. Για να το κάνετε αυτό, γράψτε: cisco(config)# line vty 0 4, όπου μπορείτε να καθορίσετε την τιμή διαμόρφωσης από 0 έως 4. Μετά από αυτό, μπορείτε να ενεργοποιήσετε τη σύνδεση μέσω του πρωτοκόλλου SSH - γράψτε cisco(config-line)# transport εισαγωγή ssh.

Παρόλο που έχετε ήδη ξεκινήσει τις γραμμές τερματικού μέσω του πρωτοκόλλου SSH, εισαγάγετε αυτήν τη λειτουργία για να αποθηκεύσετε τις αλλαγές: cisco(config-line)# logging synchronous, και επίσης εισαγάγετε την τιμή για το χρονικό όριο περιόδου λειτουργίας SSH: cisco(config-line)# exec- timeout 60 0. Μετά από αυτό, βγείτε από τη γραμμή config και config. Και τέλος, προσθέστε νέες διαμορφώσεις στο σύστημα εξοπλισμού δικτύου Cisco: cisco# copy running-config startup-config. Αυτό είναι όλο - η δουλειά ολοκληρώθηκε, τώρα ο εξοπλισμός σας θα λειτουργεί μέσω μιας ασφαλούς σύνδεσης SSH.



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

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

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