Σειρά RHCSA: Ασφάλεια SSH, ρύθμιση ονόματος κεντρικού υπολογιστή και ενεργοποίηση υπηρεσιών δικτύου - Μέρος 8


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

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

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

Εγκατάσταση και διασφάλιση της επικοινωνίας SSH

Για να μπορέσετε να συνδεθείτε εξ αποστάσεως σε ένα πλαίσιο RHEL 7 χρησιμοποιώντας SSH, θα πρέπει να εγκαταστήσετε το openssh, openssh -πελάτες και πακέτα openssh-servers. Η ακόλουθη εντολή όχι μόνο θα εγκαταστήσει το πρόγραμμα απομακρυσμένης σύνδεσης, αλλά και το εργαλείο ασφαλούς μεταφοράς αρχείων, καθώς και το βοηθητικό πρόγραμμα απομακρυσμένης αντιγραφής αρχείων:


yum update && yum install openssh openssh-clients openssh-servers

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

Μετά την εγκατάσταση, υπάρχουν μερικά βασικά πράγματα που πρέπει να λάβετε υπόψη εάν θέλετε να ασφαλίσετε την απομακρυσμένη πρόσβαση στον διακομιστή SSH σας. Οι ακόλουθες ρυθμίσεις πρέπει να υπάρχουν στο αρχείο /etc/ssh/sshd_config.

1. Αλλάξτε τη θύρα όπου θα ακούει ο δαίμονας sshd από 22 (η προεπιλεγμένη τιμή) σε υψηλή θύρα (2000 ή μεγαλύτερη), αλλά πρώτα βεβαιωθείτε ότι η επιλεγμένη θύρα δεν χρησιμοποιείται.

Για παράδειγμα, ας υποθέσουμε ότι επιλέγετε τη θύρα 2500. Χρησιμοποιήστε το netstat για να ελέγξετε εάν η επιλεγμένη θύρα χρησιμοποιείται ή όχι:


netstat -npltu | grep 2500

Εάν το netstat δεν επιστρέψει τίποτα, μπορείτε να χρησιμοποιήσετε με ασφάλεια τη θύρα 2500 για sshd και θα πρέπει να αλλάξετε τη ρύθμιση Port στο αρχείο διαμόρφωσης ως εξής:


Port 2500

2. Να επιτρέπεται μόνο το πρωτόκολλο 2:


Protocol 2

3. Διαμορφώστε το χρονικό όριο ελέγχου ταυτότητας σε 2 λεπτά, μην επιτρέψετε τις συνδέσεις root και περιορίστε στο ελάχιστο τη λίστα των χρηστών που επιτρέπεται να συνδέονται μέσω ssh:


LoginGraceTime 2m
PermitRootLogin no
AllowUsers gacanepa

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


PasswordAuthentication no
RSAAuthentication yes
PubkeyAuthentication yes

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

  1. Ενεργοποίηση σύνδεσης χωρίς κωδικό πρόσβασης SSH

Ρύθμιση παραμέτρων δικτύου και ανάλυσης ονόματος

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

  1. Το /etc/hosts χρησιμοποιείται για την επίλυση ονομάτων <---> IP σε μικρά δίκτυα.

Κάθε γραμμή στο αρχείο /etc/hosts έχει την ακόλουθη δομή:


IP address - Hostname - FQDN

Για παράδειγμα,


192.168.0.10	laptop	laptop.gabrielcanepa.com.ar

2. /etc/resolv.conf καθορίζει τις διευθύνσεις IP των διακομιστών DNS και του τομέα αναζήτησης, ο οποίος χρησιμοποιείται για τη συμπλήρωση ενός συγκεκριμένου ονόματος ερωτήματος σε ένα πλήρως αναγνωρισμένο όνομα τομέα όταν δεν παρέχεται επίθημα τομέα.

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


nameserver - IP address

Για παράδειγμα,


nameserver 8.8.8.8

3. 3. /etc/host.conf καθορίζει τις μεθόδους και τη σειρά με την οποία επιλύονται τα ονόματα κεντρικών υπολογιστών σε ένα δίκτυο. Με άλλα λόγια, λέει στο πρόγραμμα επίλυσης ονομάτων ποιες υπηρεσίες να χρησιμοποιήσει και με ποια σειρά.

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


order bind,hosts

Πράγμα που υποδηλώνει ότι το πρόγραμμα επίλυσης πρέπει πρώτα να κοιτάξει στους διακομιστές ονομάτων που καθορίζονται στο resolv.conf και μετά στο αρχείο /etc/hosts για ανάλυση ονομάτων.

4. /etc/sysconfig/network περιέχει πληροφορίες δρομολόγησης και καθολικού κεντρικού υπολογιστή για όλες τις διεπαφές δικτύου. Μπορούν να χρησιμοποιηθούν οι ακόλουθες τιμές:


NETWORKING=yes|no
HOSTNAME=value

Όπου η τιμή πρέπει να είναι το Πλήρως Πιστοποιημένο Όνομα Τομέα (FQDN).


GATEWAY=XXX.XXX.XXX.XXX

Όπου XXX.XXX.XXX.XXX είναι η διεύθυνση IP της πύλης του δικτύου.


GATEWAYDEV=value

Σε ένα μηχάνημα με πολλαπλά NIC, η τιμή είναι η συσκευή πύλης, όπως το enp0s3.

5. Αρχεία μέσα στο /etc/sysconfig/network-scripts (αρχεία διαμόρφωσης προσαρμογέων δικτύου).

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


ifcfg-name

Όπου όνομα είναι το όνομα του NIC όπως επιστρέφεται από το ip link show:

Για παράδειγμα:

Εκτός από τη διεπαφή loopback, μπορείτε να περιμένετε παρόμοια διαμόρφωση για τα NIC σας. Σημειώστε ότι ορισμένες μεταβλητές, εάν οριστούν, θα αντικαταστήσουν αυτές που υπάρχουν στο /etc/sysconfig/network για τη συγκεκριμένη διεπαφή. Κάθε γραμμή σχολιάζεται για διευκρίνιση σε αυτό το άρθρο, αλλά στο πραγματικό αρχείο θα πρέπει να αποφύγετε τα σχόλια:


HWADDR=08:00:27:4E:59:37 # The MAC address of the NIC
TYPE=Ethernet # Type of connection
BOOTPROTO=static # This indicates that this NIC has been assigned a static IP. If this variable was set to dhcp, the NIC will be assigned an IP address by a DHCP server and thus the next two lines should not be present in that case.
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no # Should be added to the Ethernet interface to prevent NetworkManager from changing the file.
NAME=enp0s3
UUID=14033805-98ef-4049-bc7b-d4bea76ed2eb
ONBOOT=yes # The operating system should bring up this NIC during boot

Ρύθμιση ονομάτων κεντρικού υπολογιστή

Στο Red Hat Enterprise Linux 7, η εντολή hostnamectl χρησιμοποιείται τόσο για το ερώτημα όσο και για τον ορισμό του ονόματος κεντρικού υπολογιστή του συστήματος.

Για να εμφανίσετε το τρέχον όνομα κεντρικού υπολογιστή, πληκτρολογήστε:


hostnamectl status

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


hostnamectl set-hostname [new hostname]

Για παράδειγμα,


hostnamectl set-hostname cinderella

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


systemctl restart systemd-hostnamed

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


nmcli general hostname

και για να το αλλαξεις:


nmcli general hostname [new hostname]

Για παράδειγμα,


nmcli general hostname rhel7

Εκκίνηση υπηρεσιών δικτύου κατά την εκκίνηση

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

Στην περίπτωση του τείχους προστασίας (/usr/lib/systemd/system/firewalld.service):


[Install]
WantedBy=basic.target
Alias=dbus-org.fedoraproject.FirewallD1.service

Για να ενεργοποιήσετε την υπηρεσία:


systemctl enable firewalld

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


systemctl disable firewalld

συμπέρασμα

Σε αυτό το άρθρο συνοψίσαμε τον τρόπο εγκατάστασης και ασφάλειας συνδέσεων μέσω SSH σε έναν διακομιστή RHEL, πώς να αλλάξετε το όνομά του και, τέλος, πώς να διασφαλίσετε ότι οι υπηρεσίες δικτύου ξεκινούν μπότα. Εάν παρατηρήσετε ότι μια συγκεκριμένη υπηρεσία απέτυχε να ξεκινήσει σωστά, μπορείτε να χρησιμοποιήσετε τα systemctl status -l [service] και journalctl -xn για την αντιμετώπιση προβλημάτων.

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