Comment installer et configurer Apache sur Centos / Rhel 8

Comment installer et configurer Apache sur Centos / Rhel 8

Centos 8 est la dernière version du système d'exploitation Centos Linux, qui est basé sur Red Hat Enterprise Linux 8. Dans ce tutoriel, nous vous aiderons à installer le serveur Web Apache sur le système CentOS 8 ou RHEL 8 avec une configuration et une sécurité supplémentaires.

Préalables

  • Accès SSH au système CentOS / RHEL 8
  • Sudo privilégie l'utilisateur pour installer des packages

Étape 1 - Installez Apache sur Centos 8

Tout d'abord, connectez-vous à votre système CENTOS 8 ou RHEL 8 via SSH. Installez ensuite les packages de serveur APACHE2 HTTP à l'aide de la commande suivante. Cela installera également des packages requis supplémentaires sur votre système.

sudo dnf installer httpd 

Attendez l'installation complète

Étape 2 - Gérer le service Apache

Le service Apache est géré avec la ligne de commande SystemCTL sur Centos / Rhel 8. Après l'installation, utilisez la commande suivante pour activer le service Apache, puis le démarrer.

sudo systemctl activer httpd.Service sudo systemctl start httpd.service 

Voici les autres commandes pour arrêter et redémarrer le service Apache via la ligne de commande.

sudo systemctl stop apache2.Service sudo systemctl redémarrer apache2.service 

Étape 3 - Testez la configuration d'Apache

Vous pouvez afficher les détails de la version Apache installés à l'aide de la commande suivante.

Version du serveur httpd -v: apache / 2.4.37 (CentOS) Serveur construit: 7 octobre 2019 21:42:02 

Créer une page HTML de test sous le répertoire racine du document par défaut (/ var / www / html).

sudo echo "Bonjour Tecadmin.net "> / var / www / html / index.html 

Accédez maintenant à votre serveur Apache à l'aide de l'adresse IP du serveur ou d'un domaine pointé sur l'IP du serveur.

Étape 4 - Création de VirtualHost

Créons le premier hôte virtuel sur votre serveur Apache. Pour le tutoriel, nous utilisons l'exemple du domaine de l'échantillon.com ». Ici, nous créerons un hôte virtuel par exemple.com sur le port 80.

Créez un exemple de fichier d'index dans un répertoire:

sudo mkdir -p / var / www / exemple.com echo "Hello Exemple.com "| sudo tee / var / www / exemple.com / index.html 

Créez ensuite le fichier de configuration VirtualHost et modifiez dans l'éditeur:

sudo vim / etc / httpd / confre.d / exemple.com.confli 

Ajouter le contenu suivant à la fin du fichier de configuration. Vous pouvez modifier le nom de domaine selon votre domaine.

ServerAdmin Admin @ Exemple.com documentroot / var / www / exemple.COM ServerName Exemple.com servealias www.exemple.com #Allowoverride All ### Uncomment si requis des journaux d'erreur / exemple.com_error.Journal des journaux / exemple de journal Customlog.com_accé.journal combiné
12345678910111213 ServerAdmin Admin @ Exemple.com documentroot / var / www / exemple.COM ServerName Exemple.com servealias www.exemple.com #Allowoverride tout ### non comment si nécessaire Journaux d'erreur / exemple.com_error.Journal des journaux / exemple de journal Customlog.com_accé.journal combiné

Enregistrez le fichier de configuration VirtualHost et rechargez le service Apache à l'aide des commandes suivantes:

sudo systemctl reload httpd.service 

Étape 5 - Configurer SSL VirtualHost

Vous pouvez ignorer cette étape si vous n'avez pas besoin de SSL. Mais la sécurité est toujours la principale préoccupation de tout site Web. Pour utiliser SSL avec Apache, installez le package MOD_SSL sur votre système.

sudo dnf installer mod_ssl 

Pour le tutoriel, j'ai suivi ces instructions pour générer un certificat SSL auto-signé pour notre domaine.

Vous pouvez soit utiliser / etc / httpd / conf / ssl.confli Pour l'hôte virtuel SSL ou vous pouvez utiliser un fichier de configuration d'hôte virtuel distinct pour votre domaine. Par exemple:

sudo vim / etc / httpd / confre.d / exemple.com_ssl.confli 

avec le contenu suivant:

ServerAdmin Admin @ Exemple.com documentroot / var / www / exemple.COM ServerName Exemple.com servealias www.exemple.com #allowoverride tout ### inconvénient si nécessaire sslengine sur sslcertificatefile / etc / pki / tls / certs / exemple.com.CRT SSLCertificateKeyFile / etc / PKI / TLS / CERTS / Exemple.com.Journaux / exemple d'erreur de clé.com_ssl-error.Journal des journaux / exemple de journal Customlog.com_ssl-accès.journal combiné
123456789101112131415161718 ServerAdmin Admin @ Exemple.com documentroot / var / www / exemple.COM ServerName Exemple.com servealias www.exemple.com #Allowoverride tout ### non comment si nécessaire Sslengine sur sslcertificatefile / etc / pki / tls / certs / exemple.com.CRT SSLCertificateKeyFile / etc / PKI / TLS / CERTS / Exemple.com.Journaux / exemple d'erreur de clé.com_ssl-error.Journal des journaux / exemple de journal Customlog.com_ssl-accès.journal combiné

Voici trois termes utilisés pour configurer SSL VirtualHost:

  • Sslengine - Réglez ceci sur «ON»
  • Sslcertificatefile - Définissez le chemin de votre certificat SSL
  • Sslcertificatekeyfile - Il s'agit des fichiers de clés privés utilisés pour générer un certificat SSL

Après cela, activez le VirtualHost et rechargez le service Apache à l'aide des commandes suivantes:

Sudo Systemctl Reload apache2.service 

Étape 6 - Sécugeler le serveur Apache

La sécurité est la partie la plus importante de l'hébergement. Les pirates sont prêts à exploiter votre serveur Web. Modifier le fichier de configuration principale Apache

sudo vim / etc / httpd / conf / httpd.confli 

Ajoutez les valeurs suivantes à la fin du fichier:

SERVERTOKENS PRODE SERVERSIGNATURATURE OFFRABLE OFF OFF
123 SERVERTOKENS PRODE SERVERSIGNATURATURE OFFRABLE OFF OFF

Après cela, modifiez le fichier de configuration SSL par défaut Apache:

sudo vim / etc / httpd / confre.d / ssl.confli 

Voici les multiples paramètres liés à la sécurité. Ajouter ou mettre à jour les paramètres suivants. Nous n'allons pas dans des descriptions détaillées à ce sujet, mais ces paramètres sont très utiles pour les serveurs de production.

#Rules tirées de https: // cipherli.ST / SSLCIPHERSuite EECDH + AESGCM: EDH + AESGCM # nécessite Apache 2.4.36 & OpenSSL 1.1.1 sslprotocol -all + tlsv1.3 + tlsv1.2 SSLOPENSSLCONFCMD CURVES X25519: SECP521R1: SECP384R1: PRIME256V1 # Versions anciennes # SSLProtocol All -SSLV2 -SSLV3 -TLSV1 -TLSV1.1 SSLHONORCIPHERORDORDOR sur l'en-tête Réglez toujours Strict-Transport-Security "Max-Age = 63072000; includeBdomains; Preload" En-tête toujours définir les options X-Frame-Options de refuser toujours.4 SSLCOMPRESSION OFF SSLUSESTAPLING SUR SSLSTAPLINGCACHE "SHMCB: LOGS / STAPLING-CACH (150000)" # Nécessite Apache> = 2.4.11 SSLSessionTickets
123456789101112131415161718#Rules tirées de https: // cipherli.ST / SSLCIPHERSuite EECDH + AESGCM: EDH + AESGCM # nécessite Apache 2.4.36 & OpenSSL 1.1.1SSLProtoCol -all + Tlsv1.3 + tlsv1.2SSLOPENSSLCONFCMD CURVES X25519: SECP521R1: SECP384R1: PRIME256V1 # Versions anciennes # SSLProtocol All -SSLV2 -SSLV3 -TLSV1 -TLSV1.1SSLHONORCIPHERORDORDER ONHEADER REGING TOUJOURS STRICT-TRANSPORT-SECURITY "MAX-AGE = 63072000; inclutUbdomains; Preload" En-tête toujours définir des options X-Frame-Options Denyheader toujours définir X-CONTENT-TYPE-OPTIONS NOSNIFF # nécessite Apache> = 2.4SSLCOMPRESSION OFFSSLUSESTAPLING ONSSLSTAPLINGCACHE "SHMCB: LOGS / STAPLING-CACH (150000)" # nécessite Apache> = 2.4.11SSLSESSESSICKETS

Après avoir apporté des modifications à redémarrer le service Apache pour appliquer la nouvelle configuration.

Sudo Systemctl Reload apache2.service 

Conclusion

Tout cela, vous exécutez un serveur Apache sécurisé sur votre système CENTOS 8 ou RHEL 8 Linux.