Comment installer et configurer Apache sur Debian 10

Comment installer et configurer Apache sur Debian 10

Préalables

Vous devez avoir SSH avec l'accès aux privilèges sudo au serveur pour l'installation du serveur Web Apache sur Debian 10.

Installez Apache sur Debian 10

Tout d'abord, connectez-vous à votre système Debain 10 via SSH et mettez à jour le cache APT. Installez ensuite les packages de serveur HTTP APACHE2 comme ci-dessous:

sudo apt mise à jour sudo apt install apache2 

Gérer le service Apache

Le service Apache est géré avec la ligne de commande SystemCTL. Après l'installation, utilisez la commande suivante pour vérifier l'état du service Apache.

Sudo Systemctl Status apache2.service 

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

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

Tester la configuration d'Apache

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

APACHE2 -V Version du serveur: Apache / 2.4.38 (Debian) Serveur construit: 2019-10-15T19: 53: 42 

Accédez maintenant à votre serveur Apache à l'aide de l'adresse IP du serveur ou d'un domaine pointé sur l'IP du serveur. Vous verrez une page Apache par défaut sur le navigateur Web. Cela signifie qu'Apache Web Server a réussi à installer sur votre système Debian 10.

Créer des hôtes virtuels

Créons le premier hôte virtuel sur votre serveur Apache. Pour le tutoriel, nous utilisons un exemple de domaine «Exemple.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 sudo echo "Hello Exemple.com "> / var / www / exemple.com / index.html 

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

sudo vim / etc / apache2 / sites disponible / exemple / exemple.com.confli 

Ajouter le contenu suivant dans le 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 ErrorLog $ apache_log_dir / exemple.com_error.log Customlog $ apache_log_dir / exemple.com_accé.journal combiné
123456789101112 ServerAdmin Admin @ Exemple.com documentroot / var / www / exemple.COM ServerName Exemple.com servealias www.exemple.com #Allowoverride tout ### non comment si nécessaire ErrorLog $ apache_log_dir / exemple.com_error.log Customlog $ apache_log_dir / exemple.com_accé.journal combiné

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

Exemple Sudo A2ensite.com sudo systemctl reload apache2.service 

Configurer SSL VirtualHost

Vous pouvez ignorer cette étape si vous n'avez pas besoin de SSL. Mais la sécurité est toujours le concert principal pour n'importe quel site Web.

L'Apache Https par défaut écoute sur le port 443. Assurez-vous qu'aucun autre service n'utilisant le même port. Maintenant, vous devez activer le module SSL Apache, qui est désactivé par défaut.

sudo a2enmod ssl 

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

Créez ensuite un nouveau fichier hôte virtuel et modifiez-le:

sudo vim / etc / apache2 / sites disponible / exemple / 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.Key ErrorLog $ apache_log_dir / exemple.com_ssl-error.log Customlog $ apache_log_dir / exemple.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.Key ErrorLog $ apache_log_dir / exemple.com_ssl-error.log Customlog $ apache_log_dir / exemple.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:

Exemple Sudo A2ensite.com_ssl sudo systemctl reload apache2.service 

Secure Apache Server

Modifier le fichier de configuration de la sécurité Apache

sudo vim / etc / apache2 / conf-compatiable / Security.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.

SERVERTOKENS PROD SERVERSIGNATURATURE OFF TRACEALABLE OFF TENDER TOUJOUR Transport-Security "MAX-Age = 31536000; incluent les en-tête de la base" Modifier toujours Set-Cookie ^ (.*) $ 1 $; httponly; sécurisé
12345678SERVERTOKENS PRODSERSERVERSIGNATURE OFFTRACIABLE DE DUFFEMBRE APPENDANT TOUJOURS X-Frame-Options SameoriginHeader toujours définir X-XSS-Protection: "1; Mode = Block" L'en-tête définit toujours le Type-Type-Type-Options "Nosniff" définir toujours Strict-Transport-Security " max-age = 31536000; incluse.*) $ 1 $; httponly; sécurisé

Modifiez maintenant le fichier de configuration SSL. Ici, vous pouvez définir le protocole SSL large du serveur et SSLCiphersuite pour utiliser des cipères sécurisés pour servir votre site Web.

sudo vim / etc / apache2 / mods-compatible / ssl.confli 
Sslprotocol -all + tlsv1.2 SSLCiphersuite High:!anull:!Md5
12Sslprotocol -all + tlsv1.2SSLCIPHERSuite High:!anull:!Md5

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

Sudo Systemctl Reload apache2.service 

Conclusion

Tout ce qui est fait, vous avez un serveur Apache sécurisé fonctionnant sur votre système Debian 10 Linux.