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


Ημερομηνία δημοσίευσης:8 Δεκεμβρίου 2020.



INFOMARTION > Αρχική διαμόρφωση που απαιτείται από την εγκατάσταση του Apache στο CentOS μέχρι την εκκίνηση.

Επισκόπηση.

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

Οι εκδόσεις έχουν ως εξής.

Έκδοση CentOS7.6 (1810)
Έκδοση Apache2.4.6

Πίνακας περιεχομένων

  1. εγκαταστήστε το
  2. βασική ρύθμιση
  3. περίληψη

1. εγκαταστήστε το

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

1-1. Εγκατάσταση του Apache

Πραγματοποιήστε την εγκατάσταση του Apache μέσω της εντολής yum. Εκτελέστε την εργασία ως χρήστης root.

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install httpd

1-2. Έλεγχος εκκίνησης (πρόσβαση μέσω http)

Ελέγξτε εν συντομία αν είναι προσβάσιμο. Η εγκατάσταση του Apache (httpd) με την εντολή yum ενεργοποιεί την εντολή apachectl. Χρησιμοποιήστε το για να ξεκινήσετε τον Apache.

[root@hostname ~]# apachectl start
[root@hostname ~]# apachectl status
* httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2020-12-06 17:08:12 JST; 1s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 1303 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           |-1303 /usr/sbin/httpd -DFOREGROUND
           |-1304 /usr/sbin/httpd -DFOREGROUND
           |-1305 /usr/sbin/httpd -DFOREGROUND
           |-1306 /usr/sbin/httpd -DFOREGROUND
           |-1307 /usr/sbin/httpd -DFOREGROUND
           `-1308 /usr/sbin/httpd -DFOREGROUND

Dec 06 17:08:11 localhost.localdomain systemd[1]: Starting The Apache HTTP Server...
Dec 06 17:08:12 localhost.localdomain httpd[1303]: AH00558: httpd: Could not reliably determ...ge
Dec 06 17:08:12 localhost.localdomain systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

Εάν το αποτέλεσμα της εκτέλεσης της εντολής 'apachectl status' είναι 'Active: active (running)', το σύστημα έχει ξεκινήσει με επιτυχία.

Στη συνέχεια, αποκτήστε πρόσβαση στον Apache από το πρόγραμμα περιήγησής σας. Ορίστε τα δικαιώματα http καθώς το τείχος προστασίας (ή το iptables για CentOS6 και παλαιότερα) επιτρέπει μόνο την πρόσβαση ssh από προεπιλογή στο CentOS7. Θα ήθελα επίσης να βάλω μια συλλογική ρύθμιση δικαιωμάτων για το https. Προσθέστε επίσης την επιλογή 'permanent' για να κάνετε τη διαμόρφωση μόνιμη.

[root@hostname ~]# firewall-cmd --permanent --add-service=http
[root@hostname ~]# firewall-cmd --permanent --add-service=https
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http https ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

Είναι εντάξει αν τα 'http' και 'https' έχουν προστεθεί στο 'services'. Πρόσβαση μέσω προγράμματος περιήγησης. Στην περίπτωσή μου, η διεύθυνση IP του διακομιστή είναι 192.168.50.10, οπότε έχω πρόσβαση στο "http://192.168.50.10". Είναι εντάξει αν εμφανιστεί η ακόλουθη σελίδα

Μετά την επιτυχή εκκίνηση του συστήματος, σταματήστε το.

[root@hostname ~]# apachectl stop

2. βασική ρύθμιση

2-1. Δημιουργία φακέλου εξόδου αρχείου καταγραφής

Για να διαχειριστείτε την καταγραφή κάτω από το /var/log/, δημιουργήστε έναν κατάλογο httpd κάτω από το /var/log/ ως φάκελο για τα αρχεία καταγραφής του Apache.

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

Το 'mkdir /var/log/httpd' δεν χρειάζεται να εκτελεστεί αν έχει ήδη δημιουργηθεί ένας κατάλογος με το ίδιο όνομα.

[root@hostname ~]# mkdir /var/log/httpd
[root@hostname ~]# chmod 755 /var/log/httpd

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

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

2-2. Ρύθμιση τομέα

Αλλάξτε τις ρυθμίσεις τομέα που αναφέρονται στο httpd.conf. Οι ρυθμίσεις του Apache είναι βασικά συγκεντρωμένες στο httpd.conf, οπότε αν θέλετε να αλλάξετε τις ρυθμίσεις, τροποποιήστε το httpd.conf. Οι τομείς δεν χρειάζεται να δημιουργηθούν εάν το περιβάλλον είναι τοπικό (δεν είναι ανοικτό στο κοινό στο Διαδίκτυο).

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

# Αποσυντονίστε και ενεργοποιήστε τη ρύθμιση ServerName. Το όνομα τομέα ορίζεται ανάλογα με το περιβάλλον.

httpd.conf【Πριν από την αλλαγή】


#ServerName www.example.com:80

httpd.conf【μετά την αλλαγή】


ServerName domainname:80

2-3. Ενεργοποίηση των ενοτήτων SSL και των αρχείων διαμόρφωσης

Ενεργοποιήστε το SSL για να επιτρέψετε την πρόσβαση μέσω https. Οι ρυθμίσεις SSL σχετίζονται με το SEO, και το http δεν είναι καλή ιδέα για λόγους ασφαλείας εξαρχής, οπότε αν δεν είναι απαραίτητο να χρησιμοποιήσετε το http, χρησιμοποιήστε το https.

Εγκαταστήστε την ενότητα ssl με το yum.

[root@hostname ~]# yum -y install mod_ssl

Η εγκατάσταση με το yum ενεργοποιεί αυτόματα την ενότητα ssl, οπότε χρειάζεται μόνο να την εγκαταστήσετε. Ένα αρχείο ρυθμίσεων δημιουργείται επίσης αυτόματα. (Το αρχείο /etc/httpd/conf.d/ssl.conf δημιουργείται αυτόματα.)

2-4. Αλλαγή διαδρομής εξόδου αρχείου καταγραφής

Αλλάξτε τον προορισμό εξόδου αρχείων καταγραφής του Apache στο φάκελο εξόδου αρχείων καταγραφής που μόλις δημιουργήσατε. Αλλάξτε μόνο το αρχείο ρυθμίσεων ssl, καθώς θα ρυθμιστεί σε επόμενο βήμα ώστε η πρόσβαση να γίνεται μόνο μέσω ssl (https).

[root@hostname ~]# vi /etc/httpd/conf.d/ssl.conf


ssl.conf【Πριν από την αλλαγή】


ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log

~σύντμηση~

CustomLog logs/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"


ssl.conf【μετά την αλλαγή】


ErrorLog /var/log/httpd/ssl_error_log
TransferLog /var/log/httpd/ssl_access_log

~σύντμηση~

CustomLog /var/log/httpd/ssl_request_log \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

Η παραπάνω τροποποίηση αλλάζει τον προορισμό εξόδου του αρχείου καταγραφής στο "/var/log/httpd".


'%t, %h', κ.λπ., αυτή είναι η ρύθμιση μορφοποίησης του αρχείου καταγραφής. Ακολουθεί κατάλογος μορφοτύπων που μπορεί να χρησιμοποιούνται συχνά για αναφορά.

【参考】

・%T:Χρόνος επεξεργασίας της αίτησης (δευτερόλεπτα)

・%h:Όνομα κεντρικού υπολογιστή ή διεύθυνση IP του πελάτη. Προσπαθεί να επιλύσει ονόματα κεντρικών υπολογιστών μόνο αν το HostnameLookups έχει οριστεί σε On

・%r:Πρώτη γραμμή της αίτησης

・%b:Bytes της απόκρισης (εξαιρουμένων των επικεφαλίδων HTTP). Μορφή CLF, δηλαδή - εάν κανένα από τα bytes δεν αποστέλλεται

・%D:Χρόνος επεξεργασίας της αίτησης (μικροδευτερόλεπτα)

・%>s:Κατάσταση HTTP

2-5. Δημιουργία πιστοποιητικών SSL

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

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

Οι προεπιλεγμένες ρυθμίσεις πιστοποιητικών για τον Apache είναι "/etc/pki/tls/certs/localhost.crt" και "/etc/pki/tls/private/localhost.key".

Οι ρυθμίσεις βρίσκονται στα "SSLCertificateFile" και "SSLCertificateKeyFile" στο αρχείο "/etc/httpd/conf.d/ssl.conf".


【Για αυτοπιστοποίηση】

Για να δημιουργήσετε ένα αυτοπιστοποιητικό, εκτελέστε την ακόλουθη εντολή. Εκτελέστε ως χρήστης root.

Η εκτέλεση του 'openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.crt' θα σας ζητήσει απάντηση αρκετές φορές, όλες με Enter, χωρίς πρόβλημα. Πρόκειται για πληροφορίες σχετικά με το ποιος εκδίδει το πιστοποιητικό (π.χ. σε ποια χώρα ζει και ποια είναι η διεύθυνση ηλεκτρονικού ταχυδρομείου του). Εάν εκδίδετε κανονικό πιστοποιητικό, εισαγάγετε τις σωστές πληροφορίες και ρυθμίστε το.

[root@hostname ~]# openssl genrsa > /etc/pki/tls/private/localhost.key
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key > /etc/pki/tls/certs/localhost.csr
[root@hostname ~]# openssl x509 -req -signkey /etc/pki/tls/private/localhost.key < /etc/pki/tls/certs/localhost.csr > /etc/pki/tls/certs/localhost.crt

【Για κανονικά πιστοποιητικά】

Για να δημιουργήσετε ένα κανονικό πιστοποιητικό, εκτελέστε την ακόλουθη εντολή. Εκτελέστε ως χρήστης root.

[root@hostname ~]# openssl genrsa -out /etc/pki/tls/private/localhost.key 2048
[root@hostname ~]# openssl req -new -key /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.csr

Για τα κανονικά πιστοποιητικά αυτό δεν αρκεί για να ολοκληρωθεί η διαδικασία. Η εργασία περιλαμβάνει την παράδοση του δημιουργημένου αρχείου 'server.csr' στην Αρχή Πιστοποιητικών για την έκδοση πιστοποιητικού διακομιστή και την εγκατάσταση του πιστοποιητικού διακομιστή που έχει εκδοθεί.

2-6. μόνιμο SSL (Secure Socket Layer)

Δεν είναι καλή ασφάλεια αν η πρόσβαση γίνεται μέσω http, οπότε προσθέστε μια ρύθμιση για ανακατεύθυνση σε https αν η πρόσβαση γίνεται μέσω http.

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

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

Προσθέστε τα ακόλουθα στο τέλος.

httpd.conf


<IfModule rewrite_module>
  RewriteEngine on
  RewriteCond %{HTTPS} off
  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

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

Αναφέρεται ότι αυτή η ρύθμιση δεν λειτουργεί αν έρχεστε μέσω https. (RewriteCond %{HTTPS} off)

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

2-7. Επιβεβαίωση της ενεργοποίησης (πρόσβαση μέσω https).

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

[root@hostname ~]# apachectl start

Πρόσβαση μέσω προγράμματος περιήγησης. Το ίδιο με την πρόσβαση μέσω http, αλλά στην περίπτωσή μου η διεύθυνση IP του διακομιστή είναι 192.168.50.10, οπότε έχω πρόσβαση στο "http://192.168.50.10".

Η διεύθυνση URL αλλάζει από "http://192.168.50.10" σε "https://192.168.50.10" επειδή περιλαμβάνεται η ρύθμιση ανακατεύθυνσης http.

Τώρα που έχει ξεκινήσει επιτυχώς, σταματήστε τον Apache.

[root@hostname ~]# apachectl stop

2-8. Ρύθμιση αυτόματης εκκίνησης

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

Δημιουργήστε ένα αρχείο 'apache.service' και περιγράψτε τις απαιτούμενες ρυθμίσεις.

[root@hostname ~]# touch /etc/systemd/system/apache.service
[root@hostname ~]# vi /etc/systemd/system/apache.service

Παρέχονται οι ακόλουθες πληροφορίες.

[Unit]
#Περιγραφή.
Description=Apache
#Έλεγχος πριν και μετά την εκτέλεση.
#Before=xxx.service
#After=xxx.service

[Service]
#Ορισμός χρήστη και ομάδας
User=root
Group=root
#Μόλις ενεργοποιηθεί, ορίστε την κατάσταση σε Ενεργοποιημένη.
Type=oneshot
RemainAfterExit=yes
#Εκκίνηση, διακοπή και επαναφόρτωση.
ExecStart=/usr/sbin/apachectl start
ExecStop=/usr/sbin/apachectl stop
ExecReload=/usr/sbin/apachectl restart

[Install]
#Ισοδύναμες ρυθμίσεις επιπέδου εκτέλεσης 3.
WantedBy=multi-user.target

Όταν ολοκληρώσετε την περιγραφή του, καταχωρίστε το με την εντολή systemctl.

[root@hostname ~]# systemctl enable apache
[root@hostname ~]# systemctl is-enabled apache
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep apache
apache.service                                enabled
[root@hostname ~]# systemctl daemon-reload


3. περίληψη

Περιγράψαμε τις αρχικές ρυθμίσεις που απαιτούνται κατά την εγκατάσταση του Apache.

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

Σας ευχαριστούμε που παρακολουθήσατε μέχρι το τέλος.