Βήμα 1 - Εγκατάσταση του διακομιστή web
Βήμα 2 - Ασφάλιση των καταλόγων του σπιτιού σας
Βήμα 3 - Εφαρμόστε μια ενημερωμένη έκδοση κώδικα ασφαλείας στον Apache για διαχωρισμό των δικαιωμάτων χρήστη
Βήμα 3 - Δημιουργία του πρώτου σας εικονικού κεντρικού υπολογιστή
Βήμα 4 - Διαμόρφωση του Apache ώστε να εκτελείται ως άλλος χρήστης
Βήμα 5 - Απόκρυψη της έκδοσης του Apache
Βήμα 6 - Επανεκκίνηση του Apache για εφαρμογή των αλλαγών
συμπέρασμα
Είναι εύκολο να κάνετε συντομεύσεις κατά την ασφάλεια ενός διακομιστή, αλλά θα διακινδυνεύσετε την απώλεια δεδομένων σε περίπτωση που ένας εισβολέας αποκτήσει πρόσβαση root σε οποιονδήποτε από τους διακομιστές σας. Ακόμη και για απλές εγκαταστάσεις, πρέπει να προστατεύσετε τον διακομιστή σας εκ των προτέρων. Η ασφάλεια των διακομιστών είναι ένα ευρύ θέμα και ποικίλλει ανάλογα με το λειτουργικό σύστημα και τις εφαρμογές που εκτελούνται σε αυτούς.
Αυτό το σεμινάριο εστιάζει στην ασφάλεια του Apache στο CentOS 6. Υπάρχουν μερικά βήματα μετά την εγκατάσταση που μπορείτε να ακολουθήσετε για να προστατευτείτε από την κλιμάκωση των προνομίων, καθώς και από επιθέσεις που δεν έχουν προνόμια.
Χωρίς περαιτέρω καθυστέρηση, ας ξεκινήσουμε.
Βήμα 1 - Εγκατάσταση του διακομιστή web
Φυσικά, εάν δεν έχετε εγκατεστημένο Apache ή PHP, θα πρέπει να το κάνετε τώρα. Εκτελέστε αυτήν την εντολή ως χρήστης root ή χρησιμοποιήστε το sudo:
yum install httpd php
Βήμα 2 - Ασφάλιση των καταλόγων του σπιτιού σας
Τώρα που έχει εγκατασταθεί το Apache, ας προχωρήσουμε και ας αρχίσουμε να το ασφαλίζουμε. Αρχικά, θέλουμε να βεβαιωθούμε ότι οι κατάλογοι άλλων χρηστών δεν είναι ορατοί από κανέναν εκτός από τον κάτοχο. Θα μετατρέψουμε όλους τους οικιακούς καταλόγους σε 700, έτσι ώστε μόνο οι αντίστοιχοι κάτοχοι των οικιακών καταλόγων να μπορούν να δουν τα δικά τους αρχεία. Εκτελέστε αυτήν την εντολή ως root ή χρησιμοποιήστε sudo:
chmod 700 /home
chmod 700 /home/*
chmod 700 /home/*/*
Χρησιμοποιώντας χαρακτήρες μπαλαντέρ, καλύπτουμε όλα τα αρχεία που βρίσκονται αυτήν τη στιγμή στον αρχικό κατάλογο.
Βήμα 3 - Εφαρμόστε μια ενημερωμένη έκδοση κώδικα ασφαλείας στον Apache για διαχωρισμό των δικαιωμάτων χρήστη
Πριν διορθώσουμε το Apache, πρέπει πρώτα να εγκαταστήσουμε το αποθετήριο που περιέχει το πακέτο με την ενημερωμένη έκδοση κώδικα. Εκτελέστε τις παρακάτω εντολές ως root (ή sudo).
yum install epel-release
yum install httpd-itk
Με το "apache2-mpm-itk", μπορούμε να πούμε ποιος χρήστης πρέπει να εκτελείται η PHP με βάση τον εικονικό κεντρικό υπολογιστή. Προσθέτει μια νέα επιλογή διαμόρφωσης AssignUserId virtualhost-user virtualhost-user-group, η οποία μας επιτρέπει να πούμε στους Apache/PHP να εκτελέσουν τον κώδικα χρήστη σε έναν συγκεκριμένο λογαριασμό χρήστη.
Εάν μοιράζεστε αυτόν τον διακομιστή, υποθέτω ότι έχετε ήδη δημιουργήσει έναν εικονικό κεντρικό υπολογιστή για τον Apache στο παρελθόν. Σε αυτήν την περίπτωση, μπορείτε να μεταβείτε στο βήμα 4.
Βήμα 3 - Δημιουργία του πρώτου σας εικονικού κεντρικού υπολογιστή
Μπορείτε να ακολουθήσετε το παρακάτω πρότυπο για να δημιουργήσετε έναν εικονικό κεντρικό υπολογιστή στο Apache.
NameVirtualHost mytest.website
<VirtualHost mytest.website>
DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
</VirtualHost>
Ανοίξτε το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου /etc/httpd/conf.d/example-virtualhost.confκαι, στη συνέχεια, προσθέστε το παραπάνω περιεχόμενο σε αυτό. Ακολουθεί η εντολή για τη χρήση του nano:
nano /etc/httpd/conf.d/example-virtualhost.conf
Επιτρέψτε μου να εξηγήσω τη διαμόρφωση εδώ. Όταν καθορίζουμε "NameVirtualHost", στην πραγματικότητα λέμε στον διακομιστή ιστού ότι φιλοξενούμε πολλούς τομείς σε μία IP . Τώρα, σε αυτό το παράδειγμα, χρησιμοποίησα mytest.websiteως παράδειγμα τομέα. Αλλάξτε το στο δικό σας ή σε έναν τομέα της επιλογής σας. DocumentRootείναι αυτό που λέει στον Apache πού βρίσκεται το περιεχόμενο. ServerNameείναι μια οδηγία που χρησιμοποιούμε για να πούμε στον Apache τον τομέα του ιστότοπου. Και μια τελευταία ετικέτα, </VirtualHost>, που λέει στον Apache ότι είναι το τέλος της διαμόρφωσης εικονικού κεντρικού υπολογιστή.
Βήμα 4 - Διαμόρφωση του Apache ώστε να εκτελείται ως άλλος χρήστης
Όπως αναφέρθηκε προηγουμένως, μέρος της ασφάλειας του διακομιστή σας περιλαμβάνει την εκτέλεση του Apache/PHP ως ξεχωριστού χρήστη για κάθε εικονικό κεντρικό υπολογιστή. Το να πείτε στον Apache να το κάνει αυτό είναι απλό αφού εφαρμόσουμε την ενημερωμένη έκδοση κώδικα - το μόνο που χρειάζεται να κάνετε είναι να προσθέσετε:
AssignUserId vhost-user vhost-user-group
... στη διαμόρφωσή σας. Δείτε πώς θα μοιάζει το παράδειγμα εικονικού κεντρικού υπολογιστή αφού προσθέσουμε αυτήν την επιλογή:
NameVirtualHost mytest.website
<VirtualHost mytest.website>
DocumentRoot /home/vhost-user/public_html
ServerName mytest.website
AssignUserId vhost-user vhost-user-group
</VirtualHost>
Η μαγεία είναι στη γραμμή που αρχίζει με AssignUserId. Με αυτήν την επιλογή, λέμε στους Apache/PHP να εκτελούνται ως ο ακόλουθος χρήστης/ομάδα.
Βήμα 5 - Απόκρυψη της έκδοσης του Apache
Αυτό το βήμα είναι αρκετά απλό. απλά ανοίξτε το αρχείο ρυθμίσεων του Apache εκτελώντας την ακόλουθη εντολή ως χρήστης root:
nano /etc/httpd/conf/httpd.conf
Βρείτε το "ServerTokens" και αλλάξτε την επιλογή μετά από αυτό σε "ProductOnly". Αυτό λέει στον Apache να αποκαλύψει μόνο ότι είναι "Apache", αντί για "Apache/2.2" ή κάτι παρόμοιο.
Βήμα 6 - Επανεκκίνηση του Apache για εφαρμογή των αλλαγών
Τώρα που έχουμε ασφαλίσει τον διακομιστή, πρέπει να επανεκκινήσουμε τον διακομιστή Apache. Κάντε αυτό εκτελώντας την ακόλουθη εντολή ως root ή με sudo:
service httpd restart
συμπέρασμα
Αυτά είναι μερικά μόνο βήματα που μπορείτε να ακολουθήσετε για να ασφαλίσετε τον διακομιστή σας. Για άλλη μια φορά, ακόμα κι αν είναι κάποιος που εμπιστεύεστε ότι φιλοξενεί έναν ιστότοπο στον διακομιστή σας, θα πρέπει να σχεδιάσετε να τον προστατέψετε. Στα παραπάνω σενάρια, ακόμα κι αν παραβιαστεί ένας λογαριασμός χρήστη, ο εισβολέας δεν θα έχει πρόσβαση σε ολόκληρο τον διακομιστή.