Εισαγωγή
Προαπαιτούμενα
Βήμα 1: Δημιουργήστε έναν τυπικό λογαριασμό χρήστη
Βήμα 2: Απαγόρευση της σύνδεσης ρίζας και του ελέγχου ταυτότητας με κωδικό πρόσβασης
Βήμα 3: Διαμορφώστε τη Ζώνη ώρας
Βήμα 4: Ενεργοποιήστε το Τείχος προστασίας IPTables
Βήμα 5: Επιτρέψτε επιπλέον επισκεψιμότητα μέσω του τείχους προστασίας
Εισαγωγή
Ένας πρόσφατα ενεργοποιημένος διακομιστής CentOS 7 πρέπει να προσαρμοστεί για να μπορέσει να χρησιμοποιηθεί ως σύστημα παραγωγής. Σε αυτό το άρθρο, οι πιο σημαντικές προσαρμογές που θα πρέπει να κάνετε δίνονται με τρόπο κατανοητό.
Προαπαιτούμενα
Ένας πρόσφατα ενεργοποιημένος διακομιστής CentOS 7, κατά προτίμηση ρυθμισμένος με κλειδιά SSH. Συνδεθείτε στο διακομιστή ως root.
ssh -l root server-ip-address
Βήμα 1: Δημιουργήστε έναν τυπικό λογαριασμό χρήστη
Για λόγους ασφαλείας, δεν συνιστάται να εκτελείτε καθημερινές υπολογιστικές εργασίες χρησιμοποιώντας τον λογαριασμό root. Αντίθετα, συνιστάται η δημιουργία ενός τυπικού λογαριασμού χρήστη που θα χρησιμοποιείται sudoγια την απόκτηση δικαιωμάτων διαχειριστή. Για αυτό το σεμινάριο, ας υποθέσουμε ότι δημιουργούμε έναν χρήστη με το όνομα joe . Για να δημιουργήσετε τον λογαριασμό χρήστη, πληκτρολογήστε:
adduser joe
Ορίστε έναν κωδικό πρόσβασης για τον νέο χρήστη. Θα σας ζητηθεί να εισαγάγετε και να επιβεβαιώσετε έναν κωδικό πρόσβασης.
passwd joe
Προσθέστε τον νέο χρήστη στην ομάδα τροχών , ώστε να μπορεί να αποκτήσει δικαιώματα root χρησιμοποιώντας sudo.
gpasswd -a joe wheel
Τέλος, ανοίξτε ένα άλλο τερματικό στον τοπικό σας υπολογιστή και χρησιμοποιήστε την ακόλουθη εντολή για να προσθέσετε το κλειδί SSH στον αρχικό κατάλογο του νέου χρήστη στον απομακρυσμένο διακομιστή. Θα σας ζητηθεί να κάνετε έλεγχο ταυτότητας πριν εγκατασταθεί το κλειδί SSH.
ssh-copy-id joe@server-ip-address
Αφού εγκατασταθεί το κλειδί, συνδεθείτε στον διακομιστή χρησιμοποιώντας τον νέο λογαριασμό χρήστη.
ssh -l joe server-ip-address
Εάν η σύνδεση είναι επιτυχής, μπορείτε να κλείσετε το άλλο τερματικό. Από εδώ και στο εξής, θα προηγείται όλων των εντολών sudo.
Βήμα 2: Απαγόρευση της σύνδεσης ρίζας και του ελέγχου ταυτότητας με κωδικό πρόσβασης
Εφόσον μπορείτε πλέον να συνδεθείτε ως τυπικός χρήστης χρησιμοποιώντας κλειδιά SSH, μια καλή πρακτική ασφαλείας είναι να διαμορφώσετε το SSH έτσι ώστε η ρίζα σύνδεσης και ο έλεγχος ταυτότητας με κωδικό πρόσβασης να μην επιτρέπονται και οι δύο. Και οι δύο ρυθμίσεις πρέπει να διαμορφωθούν στο αρχείο διαμόρφωσης του δαίμονα SSH. Επομένως, ανοίξτε το χρησιμοποιώντας nano.
sudo nano /etc/ssh/sshd_config
Αναζητήστε τη γραμμή PermitRootLogin , αφαιρέστε το σχόλιο και ορίστε την τιμή σε όχι .
PermitRootLogin no
Κάντε το ίδιο για τη PasswordAuthenticationγραμμή, η οποία δεν πρέπει να σχολιαστεί ήδη:
PasswordAuthentication no
Αποθηκεύστε και κλείστε το αρχείο. Για να εφαρμόσετε τις νέες ρυθμίσεις, φορτώστε ξανά το SSH.
sudo systemctl reload sshd
Από προεπιλογή, η ώρα στον διακομιστή δίνεται σε UTC. Είναι καλύτερο να το ρυθμίσετε ώστε να εμφανίζει την τοπική ζώνη ώρας. Για να το πετύχετε αυτό, εντοπίστε το αρχείο ζώνης της χώρας/γεωγραφικής περιοχής σας στον /usr/share/zoneinfoκατάλογο και δημιουργήστε έναν συμβολικό σύνδεσμο από αυτό προς τον /etc/localtimeκατάλογο. Για παράδειγμα, εάν βρίσκεστε στο ανατολικό τμήμα των ΗΠΑ, θα δημιουργήσετε τον συμβολικό σύνδεσμο χρησιμοποιώντας:
sudo ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
Στη συνέχεια, βεβαιωθείτε ότι η ώρα δίνεται τώρα σε τοπική ώρα εκτελώντας την dateεντολή. Η έξοδος πρέπει να είναι παρόμοια με:
Tue Jun 16 15:35:34 EDT 2015
Το EDT στην έξοδο επιβεβαιώνει ότι είναι τοπική ώρα.
Βήμα 4: Ενεργοποιήστε το Τείχος προστασίας IPTables
Από προεπιλογή, η ενεργή εφαρμογή τείχους προστασίας σε έναν πρόσφατα ενεργοποιημένο διακομιστή CentOS 7 είναι το FirewallD. Αν και είναι μια καλή αντικατάσταση για IPTables, πολλές εφαρμογές ασφαλείας εξακολουθούν να μην έχουν υποστήριξη για αυτό. Επομένως, εάν χρησιμοποιείτε οποιαδήποτε από αυτές τις εφαρμογές, όπως το OSSEC HIDS, είναι καλύτερο να απενεργοποιήσετε/απεγκαταστήσετε το FirewallD.
Ας ξεκινήσουμε με την απενεργοποίηση/απεγκατάσταση του FirewallD:
sudo yum remove -y firewalld
Τώρα, ας εγκαταστήσουμε/ενεργοποιήσουμε τα IPTables.
sudo yum install -y iptables-services
sudo systemctl start iptables
Διαμορφώστε τα IPTables ώστε να ξεκινούν αυτόματα κατά την εκκίνηση.
sudo systemctl enable iptables
Το IPTables στο CentOS 7 συνοδεύεται από ένα προεπιλεγμένο σύνολο κανόνων, το οποίο μπορείτε να προβάλετε με την ακόλουθη εντολή.
sudo iptables -L -n
Η έξοδος θα μοιάζει με:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Μπορείτε να δείτε ότι ένας από αυτούς τους κανόνες επιτρέπει την κυκλοφορία SSH, επομένως η συνεδρία SSH σας είναι ασφαλής.
Επειδή αυτοί οι κανόνες είναι κανόνες χρόνου εκτέλεσης και θα χαθούν κατά την επανεκκίνηση, είναι καλύτερο να τους αποθηκεύσετε σε ένα αρχείο χρησιμοποιώντας:
sudo /usr/libexec/iptables/iptables.init save
Αυτή η εντολή θα αποθηκεύσει τους κανόνες στο /etc/sysconfig/iptablesαρχείο. Μπορείτε να επεξεργαστείτε τους κανόνες ανά πάσα στιγμή αλλάζοντας αυτό το αρχείο με το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου.
Βήμα 5: Επιτρέψτε επιπλέον επισκεψιμότητα μέσω του τείχους προστασίας
Δεδομένου ότι πιθανότατα θα χρησιμοποιήσετε τον νέο σας διακομιστή για να φιλοξενήσετε ορισμένους ιστότοπους κάποια στιγμή, θα πρέπει να προσθέσετε νέους κανόνες στο τείχος προστασίας για να επιτρέψετε την κυκλοφορία HTTP και HTTPS. Για να το πετύχετε αυτό, ανοίξτε το αρχείο IPTables:
sudo nano /etc/sysconfig/iptables
Ακριβώς μετά ή πριν από τον κανόνα SSH, προσθέστε τους κανόνες για την κυκλοφορία HTTP (θύρα 80) και HTTPS (θύρα 443), έτσι ώστε αυτό το τμήμα του αρχείου να εμφανίζεται όπως φαίνεται στο μπλοκ κώδικα παρακάτω.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
Αποθηκεύστε και κλείστε το αρχείο και, στη συνέχεια, φορτώστε ξανά τα IPTables.
sudo systemctl reload iptables
Με την ολοκλήρωση του παραπάνω βήματος, ο διακομιστής σας CentOS 7 θα πρέπει πλέον να είναι αρκετά ασφαλής και να είναι έτοιμος για χρήση στην παραγωγή.