Καλές πρακτικές με το OpenSSH

OpenSSH (Ανοίξτε το Secure Shell) είναι ένα σύνολο εφαρμογών που επιτρέπουν κρυπτογραφημένες επικοινωνίες μέσω δικτύου, χρησιμοποιώντας το πρωτόκολλο SSH. Δημιουργήθηκε ως μια ελεύθερη και ανοιχτή εναλλακτική λύση στο πρόγραμμα Secure Shell, το οποίο είναι ιδιόκτητο λογισμικό. « Wikipedia.

Ορισμένοι χρήστες μπορεί να πιστεύουν ότι οι καλές πρακτικές θα πρέπει να εφαρμόζονται μόνο σε διακομιστές και όχι. Πολλές διανομές GNU / Linux περιλαμβάνουν το OpenSSH από προεπιλογή και υπάρχουν μερικά πράγματα που πρέπει να θυμάστε.

ασφάλεια

Αυτά είναι τα 6 πιο σημαντικά σημεία που πρέπει να θυμάστε κατά τη διαμόρφωση του SSH:

  1. Χρησιμοποιήστε έναν ισχυρό κωδικό πρόσβασης.
  2. Αλλαγή της προεπιλεγμένης θύρας SSH.
  3. Να χρησιμοποιείτε πάντα την έκδοση 2 του πρωτοκόλλου SSH.
  4. Απενεργοποίηση πρόσβασης root.
  5. Περιορίστε την πρόσβαση χρήστη.
  6. Χρησιμοποιήστε τον έλεγχο ταυτότητας κλειδιού.
  7. Άλλες επιλογές

Ένας ισχυρός κωδικός πρόσβασης

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

Αλλάξτε την προεπιλεγμένη θύρα

Η προεπιλεγμένη θύρα του SSH είναι 22. Για να το αλλάξουμε, το μόνο που πρέπει να κάνουμε είναι να επεξεργαστούμε το αρχείο / etc / ssh / sshd_config. Ψάχνουμε για τη γραμμή που λέει:

#Port 22

το ανεβάζουμε και αλλάζουμε το 22 για έναν άλλο αριθμό .. για παράδειγμα:

Port 7022

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

$ netstat -ntap

Τώρα για πρόσβαση στον υπολογιστή ή στον διακομιστή μας πρέπει να το κάνουμε με την επιλογή -p ως εξής:

$ ssh -p 7022 usuario@servidor

Χρησιμοποιήστε το πρωτόκολλο 2

Για να βεβαιωθούμε ότι χρησιμοποιούμε την έκδοση 2 του πρωτοκόλλου SSH, πρέπει να επεξεργαστούμε το αρχείο / etc / ssh / sshd_config και αναζητήστε τη γραμμή που λέει:

# Πρωτόκολλο 2

Αποσυσκευάζουμε και επανεκκίνηση της υπηρεσίας SSH.

Μην επιτρέπετε την πρόσβαση ως root

Για να αποτρέψουμε την πρόσβαση του root χρήστη από απόσταση μέσω SSH, κοιτάζουμε το αρχείο/ etc / ssh / sshd_config η γραμμή:

#PermitRootLogin no

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

Περιορίστε την πρόσβαση από τους χρήστες

Επίσης, δεν είναι κακό να επιτρέπεται η πρόσβαση μέσω SSH μόνο σε ορισμένους αξιόπιστους χρήστες, επομένως επιστρέφουμε στο αρχείο / etc / ssh / sshd_config και προσθέτουμε τη γραμμή:

AllowUsers elav usemoslinux kzkggaara

Όπου προφανώς, οι χρήστες elav, usemoslinux και kzkggaara είναι αυτοί που έχουν πρόσβαση.

Χρησιμοποιήστε τον έλεγχο ταυτότητας κλειδιού

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

Το πρώτο πράγμα είναι να δημιουργήσετε ένα ζευγάρι κλειδιών (δημόσια και ιδιωτικά):

ssh-keygen -t rsa -b 4096

Στη συνέχεια μεταβιβάζουμε το κλειδί μας στον υπολογιστή / διακομιστή:

ssh-copy-id -i ~/.ssh/id_rsa.pub elav@200.8.200.7

Τέλος, πρέπει να έχουμε αφαιρεθεί στο αρχείο / etc / ssh / sshd_config η γραμμή:

AuthorizedKeysFile .ssh/authorized_keys

Άλλες επιλογές

Η συνεισφορά του Yukiteru

Μπορούμε να μειώσουμε τον χρόνο αναμονής κατά τον οποίο ένας χρήστης μπορεί να συνδεθεί με επιτυχία στο σύστημα σε 30 δευτερόλεπτα

LoginGraceTime 30

Για να αποφύγουμε τις επιθέσεις ssh μέσω του TCP Spoofing, αφήνοντας το κρυπτογραφημένο ζωντανό στην πλευρά ssh ενεργό για 3 λεπτά το πολύ, μπορούμε να ενεργοποιήσουμε αυτές τις 3 επιλογές.

TCPKeepAlive no ClientAliveInterval 60 ClientAliveCountMax 3

Απενεργοποιήστε τη χρήση αρχείων rhosts ή shosts, τα οποία για λόγους ασφαλείας καλούνται να μην χρησιμοποιηθούν.

IgnoreRhosts yes IgnoreUserKnownHosts yes RhostsAuthentication no RhostsRSAΑυτοποίηση όχι

Ελέγξτε τα πραγματικά δικαιώματα του χρήστη κατά τη σύνδεση.

StrictModes yes

Ενεργοποίηση διαχωρισμού προνομίων.

UsePrivilegeSeparation yes

Συμπεράσματα:

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

πηγή: HowToForge


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

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

*

*

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

  1.   Γιουκιτέρου dijo

    Εξαιρετική ανάρτηση @elav και προσθέτω μερικά ενδιαφέροντα πράγματα:

    ΕίσοδοςGraceTime 30

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

    TCPKeepAlive αρ
    ClientAliveInterval 60
    ClientAliveCountMax 3

    Αυτές οι τρεις επιλογές είναι αρκετά χρήσιμες για την αποφυγή επιθέσεων ssh μέσω του TCP Spoofing, αφήνοντας την κρυπτογραφημένη ζωντανή στην πλευρά ssh ενεργή για μέγιστο 3 λεπτά.

    IgnoreRhosts ναι
    IgnoreUserKnownHosts ναι
    RhostsAuthentication αρ
    RhostsRSAΑυτοποίηση αρ

    Απενεργοποιεί τη χρήση αρχείων rhosts ή shosts, τα οποία για λόγους ασφαλείας καλούνται να μην χρησιμοποιηθούν.

    StrictModes ναι

    Αυτή η επιλογή χρησιμοποιείται για τον έλεγχο των πραγματικών δικαιωμάτων του χρήστη κατά τη σύνδεση.

    UsePrivilegeSeparation ναι

    Ενεργοποίηση διαχωρισμού προνομίων.

    1.    Έλαβ dijo

      Λοιπόν, σε λίγο θα επεξεργαστώ την ανάρτηση και θα την προσθέσω στην ανάρτηση 😀

  2.   Eugenio dijo

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

    1.    Έλαβ dijo

      # Η στρατηγική που χρησιμοποιείται για τις επιλογές στο προεπιλεγμένο sshd_config που συνοδεύει
      # Το OpenSSH είναι να καθορίσετε επιλογές με την προεπιλεγμένη τιμή τους όπου
      # δυνατό, αλλά αφήστε τους να σχολιάσουν. Οι ασυμβίβαστες επιλογές αντικαθιστούν το
      # Προεπιλεγμένη τιμή.

      Ναι, αλλά για παράδειγμα, πώς ξέρουμε ότι χρησιμοποιούμε μόνο την έκδοση 2 του πρωτοκόλλου; Επειδή θα μπορούσαμε να χρησιμοποιούμε ταυτόχρονα 1 και 2. Όπως λέει η τελευταία γραμμή, αποσυνδέοντας αυτήν την επιλογή για παράδειγμα, αντικαθιστά την προεπιλεγμένη επιλογή. Εάν χρησιμοποιούμε την έκδοση 2 από προεπιλογή, ωραία, αν όχι, τη χρησιμοποιούμε ΝΑΙ ή ΝΑΙ 😀

      Ευχαριστώ για το σχόλιο

  3.   Sli dijo

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

  4.   αντίο dijo

    Χαιρετισμούς, έχω εγκαταστήσει το debian 8.1 και δεν μπορώ να συνδεθώ από τον υπολογιστή μου windows στο debian με το WINSCP, θα πρέπει να χρησιμοποιήσω το πρωτόκολλο 1; οποιαδήποτε βοήθεια .. ευχαριστώ
    αντίο

  5.   Φρανκσανάμπρια dijo

    Μπορεί να σας ενδιαφέρει αυτό το βίντεο σχετικά με το openssh https://m.youtube.com/watch?v=uyMb8uq6L54

  6.   Πλακάκι dijo

    Θέλω να δοκιμάσω κάποια πράγματα εδώ, αρκετά που έχω ήδη δοκιμάσει χάρη στο Arch Wiki, άλλα λόγω της τεμπελιάς ή της άγνοιας. Θα το αποθηκεύσω όταν ξεκινώ το RPi μου