Θέλετε να κόψετε την πρόσβαση SSH σε ένα διακομιστή Linux; Εάν είστε διαχειριστής Linux, θα γνωρίζετε την χρησιμότητα μιας σύνδεσης SSH που σας επιτρέπει να έχετε λειτουργίες root σε απομακρυσμένα συστήματα.
Λόγω της σπουδαιότητας της λειτουργίας είναι πολύ πιθανό να έχετε λάβει ήδη πολλά μέτρα για να κλειδώσετε την πρόσβαση SSH. Η χρήση ενός SSH key για τον έλεγχο ταυτότητας αντί για ένα απλό password, και η αλλαγή της default SSH θύρας (22), μπορεί να είναι τα πρώτα βήματα που χρειάζεται να κάνετε, αλλά δεν είναι αρκετά.
Παρακάτω θα δούμε ένα ακόμη βήμα που μπορείτε να κάνετε. Είναι τόσο εύκολο και προφανές, που οι περισσότεροι διαχειριστές ξεχνούν ότι υπάρχει σαν επιλογή. Αυτό το συγκεκριμένο βήμα δεν απαιτεί λογισμικό τρίτου και μπορεί να ρυθμιστεί σε δευτερόλεπτα.
Τι θα χρειαστείτε
- Ένα διακομιστή Linux που τρέχει τον SSH daemon
- Τις διευθύνσεις IP κάθε πελάτη που χρειάζεται πρόσβαση στον διακομιστή
Θα πρέπει επίσης να έχετε πρόσβαση στην κονσόλα του απομακρυσμένου διακομιστή, σε περίπτωση που κάτι πάει στραβά και κλειδωθείτε έξω, όπως κάθε φορά που πειράζετε την SSH.
Το πρώτο πράγμα που πρέπει να κάνουμε είναι να επιτρέψουμε τη διεύθυνση IP κάθε πελάτη που χρειάζεται πρόσβαση SSH στον απομακρυσμένο διακομιστή. Μόλις έχετε μια λίστα με τις διευθύνσεις IP, μπορείτε να τις προσθέσετε στο /etc/hosts.allow. Για να το κάνετε αυτό, τρέξτε την εντολή:
su
Δώστε τον κωδικό πρόσβασης του root, και
nano /etc/hosts.allow
Στο κάτω μέρος αυτού του αρχείου, προσθέστε τα εξής:
sshd: IP
Όπου IP είναι η διεύθυνση IP του απομακρυσμένου πελάτη που χρειάζεται πρόσβαση στον διακομιστή. Εάν έχετε πολλές διευθύνσεις IP, μπορείτε να τις εισαγάγετε ως εξής:
sshd: 100.53.33.77/30, 100.73.152.9/22, 100.92.100.11/51, 100.22.192.0/44
Ή κάπως έτσι:
sshd: 192.168.1.1/24
sshd: 127.0.0.1
sshd: [:: 1]
Αποθηκεύστε και κλείστε το αρχείο. Η αποθήκευση στο nano γίνεται πληκτρολογώντας μαζί τα CTRL+X, μετά y, και Enter
Πώς να αποκλείσετε όλες τις άλλες διευθύνσεις
Τώρα που επιτρέψαμε σε μια διεύθυνση IP ή μια λίστα διευθύνσεων, ήρθε η ώρα να αποκλείσουμε όλες τις άλλες διευθύνσεις. Ένα πράγμα που πρέπει να γνωρίζετε είναι ότι ένα σύστημα Linux διαβάζει πρώτα το αρχείο hosts.allow (από πάνω προς τα κάτω) και αμέσως μετά το hosts.deny (από πάνω προς τα κάτω). Έτσι, μια προσπάθεια σύνδεσης SSH από μια διεύθυνση IP που υπάρχει στο hosts.allow θα επιτραπεί, παρόλο που το hosts.deny μπορεί να αποκλείει όλες τις IP.
Έτσι, για να αποκλείσετε όλες τις άλλες διευθύνσεις IP, ανοίξτε το απαραίτητο αρχείο με την εντολή:
nano /etc/hosts.deny
Στο κάτω μέρος αυτού του αρχείου, προσθέστε το εξής:
sshd: ALL