Αυτό το άρθρο είναι μέρος της σειράς Apache Server Guide:

  • Ασφάλεια Apache στο Ubuntu - Μέρος 1
  • Ασφάλεια του Apache στο Ubuntu - Μέρος 2
  • Βελτιστοποίηση της απόδοσης του Apache - Μέρος 1
  • Βελτιστοποίηση της απόδοσης του Apache - Μέρος 2
  • Ρύθμιση του βασισμένου σε όνομα Apache του
  • Εγκατάσταση IP και Port-Based Virtualhost στο Apache
  • Πώς να ρυθμίσετε τον Κατάλογο Ιστού Προστατέψτε τον Κωδικό στο Apache
  • Εγκατάσταση του Apache Server με υποστήριξη SSL στο Ubuntu
  • Ρύθμιση του Fail2ban για την προστασία του Apache από επίθεση DDOS
  • Πώς να ρυθμίσετε το Webdav με Apache στο Ubuntu
  • Παρακολούθηση του διακομιστή Web Apache χρησιμοποιώντας το Mod_status
  • Πώς να προστατεύσετε το DDoS με Mod_evasive στο Apache Server

Το Apache είναι ένας από τους πιο διαδεδομένους και δημοφιλείς εξυπηρετητές ιστού στον κόσμο και εξουσιάζει σχεδόν το 40% όλων των διακομιστών στον κόσμο. Εάν είστε webmaster ή διαχειριστής που διατηρεί έναν διακομιστή Apache, είναι σημαντικό να γνωρίζετε πώς μπορείτε να ασφαλίσετε το Apache και να αποτρέψετε την αποφυγή του hacking. Σε αυτό το άρθρο θα περιγράψουμε κάποιες συμβουλές και κόλπα που μπορείτε να χρησιμοποιήσετε για να ασφαλίσετε τον διακομιστή Apache.

Σημείωση : Χρησιμοποιούμε το Ubuntu 14.04 για αυτό το σεμινάριο.

Εγκαταστήστε και ενημερώστε το Apache

Πρώτον, θα πρέπει να ενημερώσετε και να εγκαταστήσετε το Apache στο σύστημά σας.

Για αυτό, εκτελέστε την ακόλουθη εντολή:

 sudo apt-get ενημέρωση sudo apt-get εγκαταστήσετε apache2 

Απόκρυψη έκδοσης Apache

Από προεπιλογή, το Apache εμφανίζει την έκδοση του διακομιστή ιστού Apache που είναι εγκατεστημένη στο σύστημά σας με το όνομα του λειτουργικού συστήματος του διακομιστή σας.

Στο παραπάνω στιγμιότυπο οθόνης μπορείτε να δείτε την έκδοση Apache και το λειτουργικό σύστημα που είναι εγκατεστημένο στον διακομιστή σας. Αυτό μπορεί να είναι ένα σημαντικό ζήτημα ασφαλείας για τον διακομιστή ιστού σας. Για να αποκρύψετε αυτές τις πληροφορίες, πρέπει να επεξεργαστείτε το κύριο αρχείο διαμόρφωσης του Apache ("/etc/apache2/conf-enabled/security.conf").

 sudo nano /etc/apache2/conf-enabled/security.conf 

Προσθέστε / επεξεργαστείτε την ακόλουθη γραμμή:

 ServerSignature Off ServerTokens Prod 

Αποθηκεύστε το αρχείο και επανεκκινήστε την υπηρεσία Apache.

 sudo /etc/init.d/apache2 επανεκκίνηση 

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

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

Μπορείτε να δείτε την προεπιλεγμένη λίστα καταλόγου στην παρακάτω εικόνα.

Μπορείτε να απενεργοποιήσετε αυτήν τη ρύθμιση τροποποιώντας το αρχείο ρυθμίσεων Apache.

 sudo nano /etc/apache2/apache2.conf 

Προσθέστε / επεξεργαστείτε την ακόλουθη γραμμή:

 Επιλογές -FollowSymLinks AllowOverride Κανένα Απαιτείται η χορήγηση όλων 

Σημείωση : Ο παραπάνω κώδικας προϋποθέτει ότι οι ιστοσελίδες σας προβάλλονται από το φάκελο "/ var / www / html". Εάν έχετε αλλάξει τον δημόσιο φάκελο σε μια προσαρμοσμένη τοποθεσία, αλλάξτε τη διαδρομή Directory στον παραπάνω κώδικα.

Η γραμμή Options -FollowSymLinks απενεργοποιεί επίσης συμβολικούς συνδέσμους. Αν θέλετε να ενεργοποιήσετε συμβολικούς συνδέσμους, αφαιρέστε το σύμβολο "-" μπροστά από το FollowSymLinks, ώστε να γίνει Options FollowSymLinks.

Αποθηκεύστε το αρχείο και κάντε επανεκκίνηση του διακομιστή Apache.

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

Απενεργοποιήστε τις περιττές ενότητες

Από προεπιλογή, το Apache έρχεται με πολλές εγκατεστημένες μονάδες που δεν είναι απαραίτητες για κανονική χρήση. Συνιστάται να κόψετε το λίπος και να απενεργοποιήσετε όλες τις περιττές ενότητες. Μπορείτε να απαριθμήσετε όλες τις ενεργοποιημένες λειτουργικές μονάδες στο διακομιστή σας χρησιμοποιώντας την ακόλουθη εντολή:

 sudo ls / etc / apache2 / mods-enabled / 

Αυτό θα εμφανίσει την έξοδο όπως φαίνεται στην παρακάτω εικόνα.

Από τις προαναφερθείσες ενότητες, ορισμένες λειτουργικές μονάδες όπως "κατάσταση" και "autoindex" είναι ενεργοποιημένες αλλά δεν χρειάζονται.

Μπορείτε να απενεργοποιήσετε αυτές τις ενότητες χρησιμοποιώντας την ακόλουθη εντολή:

 sudo a2dismod αυτόματη index sudo a2dismod κατάσταση sudo /etc/init.d/apach2 επανεκκίνηση 

Κάντε χρήση του ModSecurity

Η ασφάλεια Mod είναι μια ελεύθερη λειτουργική μονάδα Apache που χρησιμοποιείται για την προστασία του διακομιστή ιστού από διάφορες επιθέσεις όπως SQL injection, script scripting, αεροπειρατεία συνεδρίας, ωμή δύναμη και πολλές άλλες εκμεταλλεύσεις. Σας επιτρέπει επίσης να παρακολουθείτε την κυκλοφορία σε πραγματικό χρόνο.

Μπορείτε να εγκαταστήσετε την ασφάλεια mod χρησιμοποιώντας την ακόλουθη εντολή:

 sudo apt-get να εγκαταστήσετε το libapache2-modsecurity 

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

 sudo apachectl -M | grep -color security 

Η εικόνα που φαίνεται παρακάτω υποδεικνύει ότι η μονάδα έχει φορτωθεί.

Για να ενεργοποιήσετε τους κανόνες mod_security, πρέπει να μετονομάσετε και να επεξεργαστείτε το αρχείο ρύθμισης συνιστώμενης ασφάλειας και να ρυθμίσετε την επιλογή SecRuleEngine σε On .

Για αυτή την εκτέλεση εκτελέστε την ακόλουθη εντολή:

 sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf sudo nano /etc/modsecurity/modsecurity.conf 

Προσθέστε / επεξεργαστείτε την ακόλουθη γραμμή:

 SecRuleEngine On 

Τώρα, κάντε επανεκκίνηση του Apache για να εφαρμοστούν οι αλλαγές.

Υπάρχουν πολλοί κανόνες ασφαλείας που συνοδεύονται από το Modesecurity (το οποίο ονομάζεται Core Set) που βρίσκεται στον κατάλογο "/ usr / share / modsecurity-crs". Τώρα πρέπει να ενεργοποιήσετε αυτούς τους κανόνες για να το λειτουργήσετε με το Apache.

Μπορείτε να το κάνετε αυτό επεξεργάζοντας το αρχείο "/etc/apache2/mods-enabled/security2.conf".

 sudo nano /etc/apache2/mods-enabled/security2.conf 

Προσθέστε / επεξεργαστείτε την ακόλουθη γραμμή:

 ΣυμπεριλάβετεΕπιλογή /etc/modsecurity/*.conf ΣυμπερίληψηΠληροφορίες "/usr/share/modsecurity-crs/*.conf" IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf 

Αποθηκεύστε το αρχείο και κάντε επανεκκίνηση του Apache.

Απενεργοποίηση της σελίδας του διακομιστή Περιλαμβάνει και Εκτέλεση CGI.

Συνιστάται να απενεργοποιήσετε τη συμπεριφορά της πλευράς του διακομιστή και την εκτέλεση CGI, αν δεν είναι απαραίτητη.

Για να το κάνετε αυτό, πρέπει να επεξεργαστείτε το κύριο αρχείο ρύθμισης του Apache.

 sudo nano /etc/apache2/apache2.conf 

Προσθέστε / επεξεργαστείτε την ακόλουθη γραμμή:

 Επιλογές -FollowSymLinks-Περιλαμβάνει -ExecCGI AllowOverride Κανένα Απαιτούνται όλοι οι χορηγούμενοι 

Αποθηκεύστε το αρχείο και κάντε επανεκκίνηση του Apache.

Μπορείτε επίσης να το κάνετε αυτό για έναν συγκεκριμένο κατάλογο. Για παράδειγμα, για να απενεργοποιήσετε τις εκτελέσεις αρχείων της σελίδας του διακομιστή και του αρχείου cgi για τον κατάλογο "/ var / www / html / webdir1", επεξεργαστείτε την παρακάτω γραμμή:

 Επιλογές-Περιλαμβάνει -ExecCGI 

Αποθηκεύστε το αρχείο και κάντε επανεκκίνηση του Apache.

Περιορισμός μεγάλων αιτημάτων

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

Μπορείτε να ορίσετε την τιμή από το 0 (απεριόριστο) έως το 2147483647 (2GB) στο κύριο αρχείο ρύθμισης Apache.

Για παράδειγμα, περιορίστε το μέγεθος του αιτήματος του καταλόγου "/ var / www / html / webdir1" σε 200K.

 sudo nano /etc/apache2/apache2.conf 

Προσθέστε / επεξεργαστείτε την ακόλουθη γραμμή:

 LimitRequestBody 204800 

Αποθηκεύστε το αρχείο και κάντε επανεκκίνηση του Apache.

Απενεργοποίηση περιήγησης εκτός της ρίζας εγγράφου

Συνιστάται στο Apache να έχει πρόσβαση μόνο στον ριζικό κατάλογο του εγγράφου. Μπορείτε να ασφαλίσετε τον ριζικό κατάλογο (/) ορίζοντας την ακόλουθη γραμμή:

 sudo nano /etc/apache2/apache2.conf 

Προσθέστε / επεξεργαστείτε την ακόλουθη γραμμή:

 Επιλογές Κανένα σχόλιο δεν επιτρέπεται, επιτρέπεται η άρνηση όλων 

Αυτός είναι ο κώδικας που κάνει:

  • Options None : Αυτό θα απενεργοποιήσει όλες τις επιλογές.
  • Order deny, allow : Η σειρά με την οποία εφαρμόζονται οι εντολές επιτρέπουν και απορρίπτουν.
  • Deny from all : Αυτό θα απορρίψει ένα αίτημα από όλους στον ριζικό κατάλογο.

Αποθηκεύστε το αρχείο και κάντε επανεκκίνηση του Apache.

Κρατήστε το Apache μέχρι την ημερομηνία

Οι νέες ενημερώσεις του Apache θα περιέχουν νέες διορθώσεις και ενημερώσεις κώδικα που θα μειώσουν την ευπάθεια του διακομιστή σας Apache, επομένως συνιστάται να χρησιμοποιήσετε την πιο πρόσφατη έκδοση του διακομιστή Apache.

Μπορείτε να ενημερώσετε το Apache στην πιο πρόσφατη έκδοση χρησιμοποιώντας την ακόλουθη εντολή:

 sudo apt-get να εγκαταστήσετε το apache2 --reinstall 

συμπέρασμα

Ελπίζω ότι αυτή η ανάρτηση θα σας βοηθήσει στη διασφάλιση του διακομιστή σας Apache. Θα βρείτε περισσότερες συμβουλές και τεχνάσματα ασφαλείας για την ασφάλεια του διακομιστή Apache στην επόμενη ανάρτησή μου. Μη διστάσετε να σχολιάσετε παρακάτω εάν έχετε οποιεσδήποτε απορίες.