Apache Tutorials για αρχάριους

⚡ Έξυπνη Σύνοψη

Ο Apache HTTP Server τροφοδοτεί περισσότερο από το ήμισυ του δημόσιου ιστού και αυτός ο πόρος αναλύει την αρχιτεκτονική του, τις διαδρομές εγκατάστασης, τα μοντέλα εικονικής φιλοξενίας, την ενίσχυση της ασφάλειας, την καταγραφή και την ανάπτυξη παραγωγής, ώστε οι διαχειριστές να μπορούν να τον χειρίζονται με σιγουριά σε όλο το Linux. WindowsΤο HIFU, ή Υψηλής Έντασης Εστιασμένος Υπέρηχος, στοχεύει επίσης στο πρόσωπο και τον λαιμό. Προσφέρει θεραπεία σε γρήγορες εκπομπές, γεγονός που κάνει τις συνεδρίες θεραπείας συντομότερες. macOS περιβάλλοντος.

  • 🌐 Αρθρωτή σχεδίαση: Ο Apache φορτώνει λειτουργίες ως Δυναμικά Κοινόχρηστα Αντικείμενα, επιτρέποντας στους διαχειριστές να ενεργοποιούν μόνο ό,τι απαιτεί κάθε φόρτος εργασίας.
  • Ευέλικτες διαδρομές εγκατάστασης: Οι διαχειριστές πακέτων, οι εκδόσεις RPM και τα αρχεία tarball πηγαίου κώδικα επιτρέπουν στις ομάδες να αντιστοιχίζουν τον χρόνο εκτέλεσης με τις ανάγκες του λειτουργικού συστήματος και των μονάδων.
  • ⚙️ Εικονική φιλοξενία: Μία παρουσία Apache μπορεί να εξυπηρετήσει πολλούς ιστότοπους μέσω οδηγιών VirtualHost που βασίζονται σε ονόματα ή IP.
  • 🔒 Βασικά στοιχεία σκλήρυνσης: Τα ServerTokens, ServerSignature, mod_security, mod_evasive και τα όρια αιτημάτων μειώνουν την έκθεση σε συνηθισμένες επιθέσεις ιστού.
  • 📊 Παρατηρησιμότητα καταγραφής: Οι κοινές και οι συνδυασμένες μορφές καταγραφής, καθώς και οι προσαρμοσμένες οδηγίες, παρέχουν λεπτομερή ορατότητα σε κάθε αίτημα που χειρίζεται ο διακομιστής.

Εκμάθηση Apache

Τι είναι το Apache;

Ο Apache είναι ένα αξιοσημείωτο λογισμικό εφαρμογών. Είναι η πιο ευρέως χρησιμοποιούμενη εφαρμογή Web Server στον κόσμο, με μερίδιο άνω του 50% στην αγορά εμπορικών web server. Ο Apache είναι η πιο ευρέως χρησιμοποιούμενη εφαρμογή Web Server σε λειτουργικά συστήματα τύπου Unix, αλλά μπορεί να χρησιμοποιηθ��ί σε σχεδόν όλες τις πλατφόρμες, όπως π.χ. Windows, OS X, OS/2, κ.λπ. Η λέξη Apache προέρχεται από το όνομα της φυλής των ιθαγενών Αμερικανών Apache, η οποία ήταν διάσημη για τις πολεμικές της ικανότητες και τη χάραξη στρατηγικής.

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

Apache

Πώς να εγκαταστήσετε το Apache

Πριν από την ανάπτυξη του Apache, αξίζει να κατανοήσετε τις διαφορετικές διαθέσιμες διαδρομές εγκατάστασης. Υπάρχουν πολλοί τρόποι εγκατάστασης του πακέτου ή της εφαρμογής, όπως αναφέρονται παρακάτω.

  1. Ένα από τα χαρακτηριστικά αυτού του ανοιχτού Η εφαρμογή ιστού πηγαίου κώδικα είναι ότι ο καθένας μπορεί να προετοιμάσει έναν εγκαταστάτη για το δικό του περιβάλλον. Αυτό επέτρεψε σε διάφορους προμηθευτές όπως οι Debian, Red Hat, FreeBSD και SUSE να προσαρμόσουν την τοποθεσία και τη διαμόρφωση των αρχείων του Apache, λαμβάνοντας υπόψη άλλες εγκατεστημένες εφαρμογές και το βασικό λειτουργικό σύστημα.
  2. Εκτός από την εγκατάσταση από ένα πρόγραμμα εγκατάστασης που βασίζεται σε έναν προμηθευτή, υπάρχει πάντα η επιλογή δημιουργίας και εγκατάστασής του από τον πηγαίο κώδικα. Η εγκατάσταση του Apache από το αρχείο πηγαίου κώδικα είναι ανεξάρτητη από την πλατφόρμα και λειτουργεί για σχεδόν κάθε λειτουργικό σύστημα.

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

��λες οι ενότητες μπορούν να μεταγλωττιστούν ως Δυναμικά Κοινόχρηστα Αντικείμενα (ένα DSO είναι ένα αρχείο αντικειμένου που μπορεί να χρησιμοποιηθεί από πολλές εφαρμογές κατά την εκτέλεσή τους) που υπάρχουν ξεχωριστά από το κύριο δυαδικό αρχείο Apache. Η προσέγγιση DSO συνιστάται ανεπιφύλακτα. Απλοποιεί πολύ την εργασία προσθήκης, αφαίρεσης ή ενημέρωσης λειτουργικών μονάδων από τη διαμόρφωση του διακομιστή.

Εγκατάσταση Apache: Πλατφόρμα Linux

Σε συστήματα που βασίζονται σε Red Hat ή στροφές ανά λεπτό

Εάν χρησιμοποιείτε μια διανομή Linux που βασίζεται σε rpm (Red Hat Package Manager, ένα βοηθητικό πρόγραμμα για την εγκατάσταση εφαρμογών σε συστήματα Linux), δηλαδή Red Hat, Fedora, CentOS ή SUSE, μπορείτε να εγκαταστήσετε αυτήν την εφαρμογή είτε μέσω ενός Package Manager που είναι ειδικός για τον προμηθευτή είτε δημιουργώντας απευθείας το αρχείο rpm από το διαθέσιμο αρχείο tarball.

Μπορείτε να εγκαταστήσετε το Apache μέσω του προεπιλεγμένου Package Manager που είναι διαθέσιμος σε όλες τις διανομές που βασίζονται στο Red Hat, όπως το CentOS, το Red Hat και το Fedora.

[root@amsterdam ~]# yum install httpd

Το αρχείο tarball πηγαίου κώδικα Apache μπορεί να μετατραπεί σε αρχείο rpm χρησιμοποιώντας την ακόλουθη εντολή.

[root@amsterdam ~]# rpmbuild -tb httpd-2.4.x.tar.bz2

Είναι υποχρεωτικό να έχετε εγκατεστημένο το πακέτο -devel στον διακομιστή σας για τη δημιουργία ενός αρχείου .rpm από τον πηγαίο κώδικα.

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

[root@amsterdam ~]# rpm -ivh httpd-2.4.4-3.1.x86_64.rpm

Μετά την εγκατάσταση, ο διακομιστής δεν ξεκινά αυτόματα. Για να ξεκινήσετε την υπηρεσία, πρέπει να χρησιμοποιήσετε οποιαδήποτε από τις ακόλουθες εντολές στο Fedora, το CentOS ή το Red Hat.

[root@amsterdam ~]# /usr/sbin/apachectl start

[root@amsterdam ~]# service httpd start

[root@amsterdam ~]# /etc/init.d/httpd start

Εγκαταστήστε το Apache από το Source

Εάν μια έκδοση του διαχειριστή πακέτων δεν ταιριάζει με το περιβάλλον σας, η εγκατάσταση του πηγαίου κώδικα προσφέρει πλήρη έλεγχο. Η εγκατάσταση του Apache από τον πηγαίο κώδικα απαιτεί την εγκατάσταση του πακέτου -dev στον διακομιστή σας. Μπορείτε να βρείτε την πιο πρόσφατη διαθέσιμη έκδοση του Apache και να την κατεβάσετε από το Επίσημη σελίδα λήψης ApacheΜόλις κατεβάσετε το αρχείο προέλευσης, μετακινήστε το στον φάκελο /usr/local/src.

[root@amserversterdam ~] cd /usr/local/src

[root@amserversterdam ~] gzip -d httpd-2.2.26.tar.gz

[root@amserversterdam ~] tar xvf httpd-2.2.26.tar

[root@amserversterdam ~] httpd-2.2.26

Για να δείτε όλες τις διαθέσιμες επιλογές διαμόρφωσης για τον Apache, μπορείτε να χρησιμοποιήσετε την επιλογή ./configure –help. Η πιο συνηθισμένη επιλογή διαμόρφωσης είναι –prefix={όνομα καταλόγου εγκατάστασης}.

[root@amserversterdam ~]./configure --help

[root@amserversterdam ~]./configure --prefix=/usr/local/apache --enable-so

[root@amserversterdam ~] make

[root@amserversterdam ~] make install

Το παραπάνω παράδειγμα δείχνει τη μεταγλώττιση του Apache εντός του καταλόγου /usr/local/apache με τη δυνατότητα DSO. Η επιλογή –enable-so επιτρέπει τη φόρτωση των απαιτούμενων ενοτήτων στον Apache κατά το χρόνο εκτέλεσης μέσω του μηχανισμού DSO αντί να απαιτείται εκ νέου μεταγλώττιση.

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

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

υπηρεσία iptables αποθήκευση

Μπορείτε να δείτε την προεπιλογή Οθόνη καλωσορίσματος Apache2 περιηγούμενοι στη διεύθυνση IP του διακομιστή σας.

Εγκαταστήστε το Apache από το Source

Τι είναι το Virtual Host;

Μόλις εκτελεστεί ο Apache, το επόμενο λογικό βήμα είναι να μάθετε πώς να φιλοξενείτε πολλαπλούς ιστότοπους στον ίδιο υπολογιστή. Ένας διακομιστής ιστού Apache μπορεί να φιλοξενήσει πολλαπλούς ιστότοπους στον ΙΔΙΟ διακομιστή. Δεν χρειάζεστε ξεχωριστό μηχάνημα διακομιστή και λογισμικό Apache για κάθε ιστότοπο. Αυτό μπορεί να επιτευχθεί χρησιμοποιώντας την έννοια ενός Εικονικός οικοδεσπότης or VHost.

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

Εικονικός οικοδεσπότης

Τύποι Apache Virtualhost

  1. Εικονικός κεντρικός υπολογιστής βάσει ονόματος
  2. Εικονικός κεντρικός υπολογιστής που βασίζεται σε διεύθυνση ή IP

Εικονικός κεντρικός υπολογιστής βάσει ονόματος

Η εικονική φιλοξενία που βασίζεται σε ονόματα χρησιμοποιείται για τη φιλοξενία πολλαπλών εικονικών ιστότοπων σε μία μόνο διεύθυνση IP.

Εικονικός κεντρικός υπολογιστής βάσει ονόματος

Για να ρυθμίσετε την εικονική φιλοξενία που βασίζεται σε ονόματα, πρέπει να ορίσετε τη διεύθυνση IP στην οποία θα λαμβάνετε τα αιτήματα Apache για όλους τους επιθυμητούς ιστότοπους. Μπορείτε να το κάνετε αυτό με την οδηγία NameVirtualHost μέσα στη ρύθμιση παραμέτρων του Apache, δηλαδή, το Το αρχείο httpd.conf ή apache2.conf.

Παράδειγμα εικονικού κεντρικού υπολογιστή Apache:

NameVirtualHost *:80

<VirtualHost 192.168.0.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.0.108:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

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

[root@amsterdam ~]#httpd -t
Syntax OK

Εάν το αρχείο διαμόρφωσης έχει εσφαλμένη σύνταξη, θα εμφανιστεί ένα σφάλμα:

[root@115 conf.d]# httpd -t

Syntax error on line 978 of /etc/httpd/conf/httpd.conf:

Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration

Εικονικός κεντρικός υπολογιστής που βασίζεται σε IP

Για να ρυθμίσετε μια εικονική φιλοξενία που βασίζεται σε IP, χρειάζεστε περισσότερες από μία διευθύνσεις IP που έχουν ρυθμιστεί στον διακομιστή σας. Επομένως, ο αριθμός των vhost που μπορεί να εξυπηρετήσει το Apache θα εξαρτηθεί από τον αριθμό των διευθύνσεων IP που έχουν ρυθμιστεί στον διακομιστή σας. Εάν ο διακομιστής σας έχει 10 διευθύνσεις IP, μπορείτε να δημιουργήσετε 10 εικονικούς κεντρικούς υπολογιστές που βασίζονται σε IP.

Εικονικός κεντρικός υπολογιστής που βασίζεται σε IP

Στο παραπάνω διάγραμμα, σε δύο ιστότοπους, τον example1.com και τον example2.com, εκχωρήθηκαν διαφορετικές IP και χρησιμοποιούν εικονική φιλοξενία που βασίζεται σε IP.

Listen 192.168.0.100:80

<VirtualHost 192.168.10.108:80>

ServerAdmin webmaster@example1.com

DocumentRoot /var/www/html/example1.com

ServerName www.example1.com

</VirtualHost>

<VirtualHost 192.168.10.109:80>

ServerAdmin admin@example2.com

DocumentRoot /var/www/html/example2.com

ServerName www.example2.com

</VirtualHost>

Apache vs Nginx: Γρήγορη Σύγκριση

Ο Apache συχνά σταθμίζεται έναντι του Nginx κατά τον σχεδιασμό μιας νέας ανάπτυξης. Ο παρακάτω πίνακας συνοψίζει τα πιο συνηθισμένα σημεία λήψης αποφάσεων.

Παράγοντας Apache HTTP Server nginx
Μοντέλο επεξεργασίας Διεργασία ή νήμα ανά σύνδεση (prefork, worker, MPM συμβάντων) Βασισμένο σε συμβάντα, ασύγχρονο
διαμόρφωση Υποστηρίζονται παρακάμψεις .htaccess ανά κατάλογο Κεντρική διαμόρφωση, χωρίς .htaccess
Δυναμικό περιεχόμενο Το mod_php και άλλες ενότητες ενσωματώνουν χρόνους εκτέλεσης εν εξελίξει Διακομιστές μεσολάβησης σε PHP-FPM ή εξωτερικούς διακομιστές εφαρμογών
Στατική απόδοση αρχείων Ισχυρή, αλλά υψηλότερη μνήμη ανά σύνδεση Εξαιρετικό υπό πολύ υψηλό ταυτόχρονο ρυθμό
Οικοσύστημα μονάδων Πολύ μεγάλο. Φορτώνεται ως DSO κατά τον χρόνο εκτέλεσης Μεταγλωττισμένες ή δυναμικές ενότητες, μικρότερο οικοσύστημα
Τυπική περίπτωση χρήσης Κοινόχρηστη φιλοξενία, ροές εργασίας .htaccess, μικτές δυναμικές εφαρμογές Reverse μεσολάβηση, στατική παράδοση, τελικά σημεία υψηλής ταυτόχρονης λειτουργίας

Τι χρειάζεται ο Apache για την εκτέλεση του αρχείου Php;

Εκτέλεση αρχείων PHP σε ανάγκες Apache mod_php ενεργοποιημένο στον διακομιστή σας. Επιτρέπει στον Apache να ερμηνεύει αρχεία .php. Διαθέτει χειριστές PHP που ερμηνεύουν τον κώδικα PHP στον Apache και στέλνουν HTML στον διακομιστή ιστού σας.

Εάν το mod_php είναι ενεργοποιημένο στον διακομιστή σας, θα έχετε ένα αρχείο με όνομα php.conf στον κατάλογο /etc/httpd/conf.d/. Μπορείτε επίσης να το ελέγξετε με:

httpd -M | grep "php5_module"

Η έξοδος θα είναι παρόμοια με:

Τι χρειάζεται ο Apache για την εκτέλεση του αρχείου Php

Προγράμματα χειρισμού php στον Apache

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_php είναι ο παλαιότερος χειριστής PHP. Κάνει την PHP μέρος του Apache και δεν καλεί καμία εξωτερική διεργασία PHP. Αυτή η ενότητα εγκαθίσταται από προεπιλογή σε κάθε αποθετήριο διανομής Linux, επομένως η ενεργοποίηση ή η απενεργοποίησή της είναι πολύ εύκολη.

Εάν χρησιμοποιείτε FastCGI Ως πρόγραμμα χειρισμού PHP, μπορείτε να ορίσετε πολλές εκδόσεις της PHP που θα χρησιμοποιούνται από διαφορετικούς λογαριασμούς στον διακομιστή σας.

FastCGI, δηλαδή, mod_fastcgi, είναι μια επέκταση του mod_fcgid, Όπου mod_fcgid είναι μια εναλλακτική λύση υψηλής απόδοσης για το CGI (mod_cgi). Ξεκινά έναν επαρκή αριθμό στιγμιότυπων CGI για να χειρίζεται ταυτόχρονα αιτήματα ιστού. Χρησιμοποιεί επίσης το suexec για να υποστηρίζει διαφορετικούς χρήστες με τις δικές τους στιγμιότυπες PHP και βελτιώνει την ασφάλεια ιστού.

Η εκτέλεση αρχείων Ruby στον Apache απαιτεί την ενεργοποίηση του mod_ruby. Ο Apache μπορεί επίσης να χειριστεί αρχεία Ruby μέσω του FastCGI. Είναι δυνατή η χρήση πολλαπλών εκδόσεων του Ruby με τη βοήθεια του mod_fcgid, δηλαδή του FastCGI.

Μπορείτε επίσης να εγκαταστήσετε το Apache Passenger και να ρυθμίσετε το Apache ώστε να το χρησιμοποιεί για την προβολή σελίδων Ruby.

(Phusion Passenger, επίσης γνωστό ως «Επιβάτης“, είναι μια δωρεάν ενότητα διακομιστή ιστού που έχει σχεδιαστεί για ενσωμάτωση με Apache και Nginx.)

Βήματα για την εγκατάσταση του mod_ruby στον διακομιστή σας:

cd /tmp

wget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gz

tar zxvf mod_ruby-1.2.6.tar.gz

cd mod_ruby-1.2.6/

./configure.rb --with-apr-includes=/usr/include/apr-1

make

make install

Πώς να εκτελέσετε το Ruby με το Apache

Πρέπει να προσθέσουμε την ενότητα mod_ruby στη διαμόρφωση του Apache, δηλαδή /etc/httpd/conf.d/ruby.conf, και να προσθέσουμε την ακόλουθη γραμμή.

LoadModule ruby_module modules/mod_ruby.so

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

Εκτελέστε το Ruby με Apache

Πώς να ασφαλίσετε τον διακομιστή Web Apache

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

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

1) Απόκρυψη πληροφοριών έκδοσης Apache και λειτουργικού συστήματος

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

Απόκρυψη της έκδοσης του Apache και των πληροφοριών του λειτουργικού συστήματος

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

Για να αποτρέψουμε την εμφάνιση αυτών των πληροφοριών από τον Apache, πρέπει να τροποποιήσουμε την επιλογή «υπογραφή διακομιστή» που είναι διαθέσιμη στο αρχείο ρυθμίσεων του Apache. Από προεπιλογή, είναι «ενεργοποιημένη». Πρέπει να την ορίσουμε σε «απενεργοποιημένη».

vim /etc/httpd/conf/httpd.conf
ServerSignature Off

ServerTokens Prod

Έχουμε επίσης ορίσει το "ServerTokens Prod" που λέει στον διακομιστή ιστού να επιστρέφει μόνο το Apache και να αποκρύπτει την κύρια και δευτερεύουσα έκδοση του λειτουργικού συστήματος.

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

service httpd restart

Απόκρυψη της έκδοσης του Apache και των πληροφοριών του λειτουργικού συστήματος

2) Απενεργοποιήστε τη λίστα καταλόγου

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

Απενεργοποιήστε την καταχώριση καταλόγου

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

<Directory /var/www/html>

    Options -Indexes

</Directory>

Απενεργοποιήστε την καταχώριση καταλόγου

3) Απενεργοποίηση περιττών μονάδων

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

[root@amsterdam ~]#httpd -M

perl_module (shared)

php5_module (shared)

proxy_ajp_module (shared)

python_module (shared)

ssl_module (shared)

Πολλές από τις αναφερόμενες ενότητες μπορούν να απενεργοποιηθούν, όπως οι mod_imap, mod_include, mod_info, mod_userdir και mod_autoindex, καθώς χρησιμοποιούνται ελάχιστα από κανέναν διακομιστή ιστού παραγωγής.

vi /etc/httpd/conf/httpd.conf

#LoadModule auth_digest_module modules/mod_auth_digest.so

Μόλις σχολιάσετε την ενότητα, αποθηκεύστε το αρχείο.

Επανεκκινήστε τις υπηρεσί��ς Apache με την ακόλουθη εντολή.

/etc/init.d/httpd restart

4) Περιορισμός της πρόσβασης σε αρχεία εκτός του ριζικού καταλόγου web

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

<Directory/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

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

Περιορισμός της πρόσβασης σε αρχεία εκτός του καταλόγου ρίζας Web

5) Χρήση του mod_evasive για την απόκρουση επιθέσεων DoS

Αν θέλετε να προστατεύσετε τον διακομιστή ιστού σας από επιθέσεις DoS (Άρνηση Υπηρεσίας), πρέπει να ενεργοποιήσετε τη λειτουργική μονάδα mod_evasive. Είναι μια λειτουργική μονάδα τρίτου κατασκευαστή που ανιχνεύει επιθέσεις DoS και τις εμποδίζει να προκαλέσουν τόση ζημιά όση θα έκαναν αν δεν εκτελούνταν. Μπορείτε να τη κατεβάσετε παρακάτω.

Κατεβάστε το παραπάνω Αρχείο

6) Χρήση του mod_security για βελτίωση της ασφάλειας του Apache

Αυτή η ενότητα λειτουργεί ως τείχος προστασίας για τον Apache και σας επιτρέπει να παρακολουθείτε την κίνηση σε πραγματικό χρόνο. Αποτρέπει επίσης τον διακομιστή ιστού από επιθέσεις brute-force. Η ενότητα mod_security μπορεί να εγκατασταθεί με τον προεπιλεγμέ��ο διαχειριστή πακέτων της διανομής σας.

Χρήση mod_security για βελτίωση της ασφάλειας του Apache

7) Περιορισμός μεγέθους αιτήματος

Ο Apache δεν έχει κανέναν περιορισμό στο συνολικό μέγεθος του αιτήματος HTTP, κάτι που θα μπορούσε να οδηγήσει σε επίθεση DoS. Μπορείτε να περιορίσετε το μέγεθος του αιτήματος με την οδηγία Apache "LimitRequestBody" μέσα σε μια ετικέτα καταλόγου. Η τιμή μπορεί να οριστεί από 0 έως 2 GB (2147483647 bytes) ανάλογα με τις απαιτήσεις σας.

<Directory "/var/www/html/uploads">

   LimitRequestBody 512000

</Directory>

Μορφή καταγραφής Apache

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

Για να δημιουργήσετε αρχεία καταγραφής πρόσβασης, πρέπει να ενεργοποιηθεί η ενότητα mod_log_config.

Τρεις οδηγίες διαθέσιμες στο αρχείο ρυθμίσεων Apache

  • TransferLog: Δημιουργία αρχείου καταγραφής.
  • LogFormat: Καθορισμός προσαρμοσμένης μορφής.
  • CustomLog: Δημιουργία και μορφοποίηση ενός αρχείου καταγραφής.

Η οδηγία TransferLog είναι διαθέσιμη στο αρχείο ρύθμισης παραμέτρων του Apache και εναλλάσσει τα αρχεία καταγραφής εικονικού κεντρικού υπολογιστή σύμφωνα με τις καθορισμένες παραμέτρους.

<VirtualHost www.example.com>

  ServerAdmin webmaster@example.com

  DocumentRoot /usr/www/example/httpd/htdocs/

  ServerName www.example.com

  ServerAlias example.com www.example

  ErrorLog /usr/www/example/httpd/logs/error_log

  TransferLog /usr/www/example/httpd/logs/accesslog

  CustomLog /usr/www/example/httpd/logs/accesslog combined

</VirtualHost>

Δύο τύποι μορφής καταγραφής Apache

  • Κοινή μορφή αρχείου καταγραφής
  • Μορφή συνδυασμένου αρχείου καταγραφής

Μπορείτε να τα ενεργοποιήσετε επεξεργάζοντας το αρχείο διαμόρφωσης Apache, δηλαδή το apache2.conf (Debian/Ubuntu) ή httpd.conf (συστήματα που βασίζονται σε rpm).

Κοινή μορφή αρχείου καταγραφής

LogFormat "%h %l %u %t \"%r\" %>s %b" common

CustomLog logs/access_log common

Κοινό αρχείο καταγραφής που δημιουργήθηκε από τον Apache

[Wed Oct 11 14:32:52 2000] [error] [client 127.0.0.1] client denied by server configuration: /export/home/live/ap/htdocs/test

Μορφή συνδυασμένου αρχείου καταγραφής

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined

CustomLog log/access_log combined

Εδώ,

  • Το %h είναι ο απομακρυσμένος κεντρικός υπολογιστής.
  • Το %l είναι η ταυτότητα του χρήστη που καθορίζεται από την identd.
  • %u είναι το όνομα χρήστη που καθορίζεται από τον έλεγχο ταυτότητας HTTP.
  • %t είναι ο χρόνος που ο διακομιστής ολοκλήρωσε την επεξεργασία του αιτήματος.
  • %r είναι η γραμμή αιτήματος από τον πελάτη. ("GET / HTTP/1.0")
  • %>s είναι ο κωδικός κατάστασης που αποστέλλεται από τον διακομιστή στον πελάτη (500, 404, κ.λπ.).
  • %b είναι το μέγεθος της απόκρισης στον πελάτη (σε bytes).
  • Η σελίδα παραπομπής είναι η σελίδα που συνδέεται με αυτό URL.
  • User-agent είναι η συμβολοσειρά αναγνώρισης του προγράμματος περιήγησης.

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

199.187.122.91 - - [06/Mar/2014:04:22:58 +0100] "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

Το Custom Log δημιουργεί ένα ξεχωριστό αρχείο καταγραφής για κάθε Virtual Host στον διακομιστή σας. Πρέπει να καθοριστεί στην ενότητα virtual host του αρχείου ρυθμίσεων.

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

Συνδυασμένο αρχείο καταγραφής που δημιουργήθηκε από τον Apache

Διαμορφώστε τον πρώτο σας διακομιστή Web παραγωγής

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

1. Για να έχετε έναν διακομιστή web παραγωγής σε λειτουργία, χρειάζεστε έναν αποκλειστικό κόμβος (φυσική, εικονική ή cloud instance) που εκτελεί Linux, Unix, Windows, macOSΚ.λπ.

2. Ο διακομιστής ιστού πρέπει να διαθέτει απευθείας σύνδεση δικτύου και σε έναν στατική διεύθυνση IP έχει ρυθμιστεί σε αυτό.

3. Πρέπει να έχει όλα τα ενότητες Απαιτείται για την εκτέλεση ιστοσελίδων. Εάν ένας διακομιστής ιστού επεξεργάζεται σελίδες PHP, χρειάζεται να είναι ενεργοποιημένη η ενότητα PHP.

Διαμόρφωση διακομιστή Web Production

  1. Χρειάζεται επίσης ένα καλό προστασίας από ιούς εφαρμογή που έχει ρυθμιστεί και εκτελείται για την προστασία του Διακομιστή Ιστού από επιθέσεις κακόβουλου λογισμικού ή ιών. Χρειάζεστε επίσης έναν μηχανισμό για να ενημέρωση την ρυθμισμένη εφαρμογή προστασίας από ιούς ή κακόβουλο λογισμικό σε τακτική βάση χωρίς καμία χειροκίνητη παρέμβαση, προκειμένου να αποκομίσετε το μέγιστο όφελος.
  2. Εάν έχετε εκατοντάδες τομείς που θα φιλοξενηθούν στον διακομιστή ιστού σας, πρέπει να εφαρμόσετε περιορισμοί στο όριο του συστήματος αρχείων για κάθε τομέα, ο αριθμός των βάσεων δεδομένων που μπορεί να δημιουργήσει κάθε τομέας, ο αριθμός των λογαριασμών email ανά τομέα, κ.λπ.
  3. Εάν ο διακομιστής ιστού σας έχει ρυθμιστεί για υπηρεσίες κοινόχρηστης φιλοξενίας, οι χρήστες στον διακομιστή ιστού σας πρέπει να είναι περιορισμένοιΈνας χρήστης κοινόχρηστης φιλοξενίας θα πρέπει να έχει τα λιγότερα δικαιώματα χρήστη, ώστε να μην καταστρέφει σημαντικά αρχεία ή να μην προκαλεί προβλήματα σε ολόκληρο τον διακομιστή. Ο Apache δεν παρέχει καμία τέτοια λειτουργικότητα και χρειάζεται διαφορετικές εφαρμογές τρίτων και προσαρμογή του λειτουργικού συστήματος για να το πετύχει αυτό.
  4. Εάν προσθέτετε α νέο τομέα Στον διακομιστή ιστού σας, απαιτείται η επεξεργασία εκατοντάδων καταχωρίσεων διαμόρφωσης για την ενεργοποίηση όλων των λειτουργιών για τον προστιθέμενο τομέα.
  5. Εάν απαιτείται ένας από τους φιλοξενούμενους τομείς διαφορετικές ρυθμίσεις PHP σε σχέση με τα υπόλοιπα domains, η εφαρμογή αυτού στον πυρήνα του Apache είναι πολύ περίπλοκη και απαιτεί εκτεταμένη προσαρμογή του διακομιστή ιστού σας.
  6. Ένας διακομιστής ιστού παραγωγής χρειάζεται α firewall για να αποκλείσετε ανεπιθύμητη κίνηση που θα μπορούσε να προκαλέσει υψηλό φόρτο στον διακομιστή σας. Υλοποίηση IPTABLE Η χρήση κανόνων με τη γραμμή εντολών είναι πολύπλοκη. Απαιτείται εμπειρία στα βασικά περιβάλλοντα Linux ή Unix για τη σύνταξη αποτελεσματικών κανόνων τείχους προστασίας για τον αποκλεισμό ανεπιθύμητης κίνησης. Το IPTABLE βασίζεται στη μονάδα netfilter. Είναι ένα τείχος προστασίας σε επίπεδο λειτουργικού συστήματος που επιτρέπει σε έναν διαχειριστή να δημιουργεί κανόνες για την εισερχόμενη και εξερχόμενη κίνηση στον διακομιστή.
  7. Ένας διακομιστής ιστού παραγωγής απαιτεί πολλές διαφορετικές εφαρμογές όπως ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ, fTP για μεταφόρτωση αρχείων, και Σύστημα ονομάτων τομέα για παρκαρισμένα domains. Η διαχείριση όλων αυτών των εφαρμογών σε ένα βασικό σύστημα Linux ή Unix απαιτεί εξειδίκευση στις αντίστοιχες τεχνολογίες.

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

Η Λύση χρησιμοποιώντας Cpanel ή παρόμοιο λογισμικό

Το cPanel παρέχει έναν γραφικό τρόπο διαχείρισης του διακομιστή ιστού σαςΠροορίζεται για την παροχή υπηρεσιών μαζικής φιλοξενίας που είναι εύκολες στη χρήση και τη διαμόρ��ωση. Το cPanel έχει μειώσει τα τεχνικά εμπόδια εισόδου στη φιλοξενία και τη διαχείριση διακομιστών ιστού. Διευκολύνει τις πολύπλοκες εργασίες. Παρέχει πολλές χρήσιμες και εύχρηστες διεπαφές ιστού που εκτελούν κοινές εργασίες διαχείρισης συστήματος που απαιτούνται για τη λειτουργία ενός διακομιστή ιστού.

Η λύση με χρήση Cpanel ή παρόμοιου λογισμικού

Το cPanel καταρτίζει τη δική του έκδοση λογισμικού.

Εάν πρέπει να επαναμεταγλωττίσετε τον διακομιστή ιστού σας (Apache) σε μια κανονική πλατφόρμα Linux, πρέπει να επιλέξετε ή να αναζητήσετε χειροκίνητα τις απαιτούμενες ενότητες. Το cPanel παρέχει λειτουργικότητα EasyApache, η οποία είναι μια μέθοδος μεταγλώττισης διακομιστή ιστού που βασίζεται σε script.

Η λύση με χρήση Cpanel ή παρόμοιου λογισμικού

Δεν σας παρέχει μόνο διαδικτυακές υπηρεσίες αλλά και Mail, DNS, FTP και πολλές άλλες υπηρεσίες που απαιτούνται για την εφαρμογή ιστού σας.

Εργασίες που απαιτούν εξειδίκευση σε βασικές υπηρεσίες φιλοξενίας που βασίζονται σε Linux ή Unix, όπως η εγκατάσταση SSL, η επαναμεταγλώττιση του Apache με διαφορετικές ενότητες PHP, η ενημέρωση της ασφάλειας ιστού, η ρύθμιση αποτελεσματικών κανόνων IPTABLE, η προσθήκη χρηστών FTP, η δημιουργία λογαριασμών αλληλογραφίας για κάθε τομέα, η σάρωση του root του εγγράφου σας με antivirus και η δημιουργία βάσεων δεδομένων, είναι εύκολο να ολοκληρωθούν με το cPanel.

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

Παρέχει λειτουργικότητα δημιουργίας αντιγράφων ασφαλείας και επαναφοράς, εξαλείφοντας την ανάγκη χειροκίνητης αντιγραφής αρχείων στον χώρο αποθήκευσης αντιγράφων ασφαλείας. Εάν δημιουργείτε αντίγραφα ασφαλείας του domain σας, το cPanel θα δημιουργήσει ένα αρχείο tar που θα περιέχει τον ριζικό φάκελο του εγγράφου, τους λογαριασμούς email και τα email, τους λογαριασμούς FTP, τις βάσεις δεδομένων, τις εγγραφές DNS και άλλες εφαρμογές.

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

Έτσι, μπορεί κανείς να το πει αυτό cPanel είναι μια ισχυρή εφαρμογή για τη διαχείριση του διακομιστή ιστού σας με τις απαιτούμενες λειτουργίες. Παρέχει ένα εύχρηστο περιβάλλον εργασίας για τη διαχείριση του τομέα σας και έναν μηχανισμό για την αποφυγή της πολυπλοκότητας της διαχείρισης ενός βασικού διακομιστή ιστού.

Υπάρχουν πολλά ανταγωνιστικά προϊόντα για το cPanel, όπως το Plesk, το ISPConfig, το Ajenti, το Kloxo, το Open Panel και το ZPanel.

Συχνές Ερωτήσεις

Επιλέξτε Apache για κοινόχρηστη φιλοξενία, παρακάμψεις .htaccess και ενσωματωμένη PHP μέσω mod_php. Το Nginx είναι κατάλληλο για στατική παράδοση υψηλής ταυτόχρονης λειτουργίας ή αντίστροφη μεσολάβηση.

Το 403 σηματοδοτεί απαγορευμένα δικαιώματα ή περιορισμούς καταλόγου, το 404 σημαίνει έλλειψη πόρου, το 500 είναι σφάλμα διακομιστή και το 503 σημαίνει υπερφορτωμένο ή μη διαθέσιμο backend.

mod_rewrite για URL κανόνες, mod_ssl για HTTPS, mod_headers για ρύθμιση απόκρισης, mod_deflate για συμπίεση και mod_proxy για αντίστροφη μεσολάβηση διακομιστών εφαρμογών.

Ναι. Οι βοηθοί τεχνητής νοημοσύνης μπορούν να εξετάσουν αποσπάσματα του httpd.conf, να εξηγήσουν τους κανόνες mod_rewrite, να προτείνουν διορθώσεις του VirtualHost και να αναλύσουν καταχωρήσεις error_log για να εντοπίσουν πιθανές βασικές αιτίες.

Οι ομάδες χρησιμοποιούν την Τεχνητή Νοημοσύνη για να προβλέπουν τις αιχμές της επισκεψιμότητας, να ρυθμίζουν τον αριθμό των εργαζομένων MPM, να επισημαίνουν ανώμαλα μοτίβα καταγραφής και να προτείνουν τροποποιήσεις στην προσωρινή μνήμη ή τη συμπίεση με βάση τα παρατηρούμενα μείγματα αιτημάτων.

Συνοψίστε αυτήν την ανάρτηση με: