CH-J Server Managerδιαχείριση διακομιστή πάνω από SSH
Μενού
Όλοι οι οδηγοί και τα άρθρα →

Χρήστες SSH και πρόσβαση root: ασφαλής ρύθμιση στο Linux

Δημιουργήστε λογαριασμό διαχειριστή, εγκαταστήστε το κλειδί του, δοκιμάστε το sudo και μόνο τότε περιορίστε τη σύνδεση root, χωρίς να αποκλειστείτε.

Ο στόχος και η σειρά των βημάτων

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

Δημιουργήστε τον λογαριασμό και εγκαταστήστε το κλειδί

Δημιουργήστε τον λογαριασμό, προσθέστε το δημόσιο κλειδί του και ορίστε αυστηρά δικαιώματα, επειδή το sshd αγνοεί αρχεία κλειδιών στα οποία μπορούν να γράψουν άλλοι. Ποτέ μην αντιγράφετε ιδιωτικό κλειδί στον διακομιστή. Σε συστήματα της οικογένειας Red Hat χρησιμοποιήστε την ομάδα wheel αντί της sudo.

sudo adduser admin1
sudo usermod -aG sudo admin1
sudo install -d -m 700 -o admin1 -g admin1 /home/admin1/.ssh
sudo install -m 600 -o admin1 -g admin1 ~/admin1.pub /home/admin1/.ssh/authorized_keys

Δοκιμή από δεύτερο παράθυρο

Κρατήστε ανοιχτή την τρέχουσα συνεδρία και δοκιμάστε τη νέα σύνδεση από άλλο τερματικό. Η συμμετοχή σε μια ομάδα δεν αποδεικνύει από μόνη της ότι λειτουργεί το sudo, επειδή αυτό καθορίζεται από τους κανόνες στο sudoers. Επιβεβαιώστε το με sudo -l.

ssh -o IdentitiesOnly=yes -i ~/.ssh/id_ed25519 admin1@server.example
sudo -l
sudo -v

Περιορίστε τη σύνδεση root

Το PermitRootLogin prohibit-password επιτρέπει σύνδεση root μόνο με κλειδί, ενώ η τιμή no αποκλείει εντελώς την πρόσβαση root μέσω SSH. Αποθηκεύστε την αλλαγή σε ξεχωριστό αρχείο στο /etc/ssh/sshd_config.d. Για τις περισσότερες επιλογές, το sshd χρησιμοποιεί την πρώτη τιμή που βρίσκει, οπότε ένα προηγούμενο αρχείο μπορεί να υπερισχύει. Γι’ αυτό επαληθεύστε την τιμή που ισχύει με sshd -T αντί να διαβάζετε απλώς τα αρχεία. Δοκιμάστε νέα σύνδεση πριν κλείσετε την παλιά συνεδρία.

echo 'PermitRootLogin no' | sudo tee /etc/ssh/sshd_config.d/50-root.conf
sudo sshd -t
sudo systemctl reload ssh
sudo sshd -T | grep -iE '^(permitrootlogin|passwordauthentication) '

Σύνδεση με κωδικό και τι να αποφεύγετε

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

Λογαριασμοί στο CH-J Server Manager

Η μονάδα Users διαχειρίζεται λογαριασμούς, ομάδες, κλειδιά SSH και πρόσβαση SSH μέσω ενεργής συνεδρίας SSH. Δεν αλλάζει ποτέ το sudoers ούτε ορίζει NOPASSWD και αναφέρει την πραγματική κατάσταση του sudo από το sudo -l. Ο λογαριασμός root δεν μπορεί να διαγραφεί, ενώ η ενεργοποίηση σύνδεσης root με κωδικό απαιτεί επιπλέον επιβεβαίωση, με προτεινόμενη επιλογή τη σύνδεση μόνο με κλειδί. Κάθε αλλαγή στην πρόσβαση SSH επαληθεύεται με sshd -T και νέα σύνδεση SSH. Η προηγούμενη διαμόρφωση επανέρχεται αυτόματα αν αποτύχει ο έλεγχος ή αν θα αποκλειόσασταν. Χωρίς sudo, η μονάδα είναι μόνο για ανάγνωση.

Λεπτομερής τεκμηρίωση

OpenSSH: sshd_config →

man: sudoers →

Βιομετρική ξεκλείδωμα και ασφάλεια →