Recherche de site Web

Configuration d’un serveur Apache sécurisé sur Ubuntu 24.04


Dans ce guide complet, nous allons vous guider tout au long du processus de configuration d’un serveur Apache sécurisé sur Ubuntu 24.04. Que vous configuriez un site Web personnel ou une plateforme d’entreprise, en suivant ces étapes, vous vous assurerez que votre serveur est non seulement fonctionnel, mais aussi sécurisé. N’oubliez pas de remplacer « myweb.linuxconfig.org » par votre propre domaine tout au long de ce tutoriel.

Dans ce tutoriel, vous allez apprendre :

  • Comment mettre à jour et mettre à niveau votre système Ubuntu
  • Étapes d’installation et de configuration d’Apache
  • Configuration du pare-feu pour la sécurité
  • Création d’un exemple de site Web et configuration d’hôtes virtuels
  • Activation et démarrage du service Apache
  • Test de votre configuration Apache
  • Sécurisation d’Apache avec le certificat SSL Let’s Encrypt
  • Renforcez votre serveur Apache pour une sécurité renforcée

Guide étape par étape

  1. Mettre à jour et mettre à niveau le système : commencez par mettre à jour les index des packages et mettez à niveau votre système vers la dernière version. Cela garantit que vous disposez de tous les derniers correctifs de sécurité et dépendances.

    sudo apt update
    sudo apt upgrade
    
  2. Installez Apache : Ensuite, installez le serveur Web Apache2. Apache est un logiciel de serveur Web gratuit et open-source qui alimente une grande partie du Web.

    sudo apt install apache2
    
  3. Configuration du pare-feu : configurez le pare-feu pour autoriser le trafic HTTP et HTTPS. De plus, activez SSH si vous prévoyez de gérer votre serveur à distance.

    sudo ufw allow http
    sudo ufw allow https
    sudo ufw allow OpenSSH
    sudo ufw enable
    
  4. Les commandes sudo ufw allow http et sudo ufw allow https sont utilisées pour autoriser le trafic HTTP et HTTPS entrant, respectivement, qui sont essentiels pour la diffusion de pages Web et la sécurisation des communications Web. La commande sudo ufw allow OpenSSH permet d’ouvrir le port SSH, permettant une gestion à distance sécurisée du serveur. Enfin, sudo ufw enable active le pare-feu UFW, appliquant les règles spécifiées pour contrôler le trafic du serveur.

  5. Créer un exemple de site Web : créez un répertoire pour votre site Web et ajoutez un exemple de fichier index.html. Ensuite, changez la propriété pour l’utilisateur du serveur Web (www-data).

    mkdir -p /var/www/html/myweb
    echo "Setting Up a Secure Apache Server on Ubuntu 24.04" > /var/www/html/myweb/index.html
    chown -R www-data:www-data /var/www/html/myweb/
    
  6. La commande mkdir -p /var/www/html/myweb crée un nouveau répertoire nommé 'myweb' dans le chemin '/var/www/html', qui est généralement utilisé pour stocker le contenu web. La commande echo est utilisée pour créer un simple fichier HTML nommé 'index.html' à l’intérieur de ce répertoire, contenant le texte « Configuration d’un serveur Apache sécurisé sur Ubuntu 24.04 ». Enfin, chown -R www-data :www-data /var/www/html/myweb/ change la propriété du répertoire 'myweb' et de son contenu en l’utilisateur et le groupe 'www-data', qui est l’utilisateur par défaut pour le serveur web Apache, garantissant ainsi les permissions appropriées pour les opérations du serveur web.

  7. Configuration de l’hôte virtuel : créez un fichier d’hôte virtuel pour votre domaine. Cela permet à Apache de répondre aux demandes pour votre domaine. N’oubliez pas d’activer le site et éventuellement de désactiver le site par défaut.

    sudo nano /etc/apache2/sites-available/myweb.conf
    
    Insert the following configuration:
    <VirtualHost *:80>
        ServerAdmin admin@myweb.linuxconfig.org
        ServerName myweb.linuxconfig.org
        DocumentRoot /var/www/html/myweb
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    Ensuite, activez le site et désactivez éventuellement le site par défaut

    sudo a2ensite myweb
    sudo a2dissite 000-default
    
  8. La commande sudo a2ensite myweb est utilisée pour activer le site 'myweb' dans Apache. Cette commande crée un lien symbolique entre le fichier de configuration du site et le répertoire 'sites-enabled', activant ainsi la configuration du site. À l’inverse, la commande sudo a2dissite 000-default désactive le site par défaut fourni par Apache. Ceci est réalisé en supprimant le lien symbolique pour la configuration '000-default' du répertoire 'sites-enabled', ce qui empêche Apache de charger les paramètres par défaut.

  9. Démarrer et activer Apache : activez le service Apache pour qu’il démarre au démarrage, puis redémarrez le service pour appliquer les modifications.

    sudo systemctl enable apache2
    sudo systemctl restart apache2
    
  10. La commande sudo systemctl enable apache2 est utilisée pour s’assurer que le service Apache2 démarre automatiquement au démarrage du système. Cela crée un paramètre persistant qui lie le service Apache2 au processus de démarrage du système. Ensuite, la commande sudo systemctl restart apache2 est utilisée pour redémarrer le service Apache2. Ceci est nécessaire pour appliquer les modifications récentes apportées à la configuration Apache ou pour lancer le service après l’installation ou les mises à jour. Le redémarrage du service permet de s’assurer qu’Apache s’exécute avec les dernières configurations.

  11. Testez votre configuration Apache : testez votre configuration en accédant à votre site Web. Vous pouvez utiliser un navigateur ou des outils en ligne de commande comme wget pour voir si votre site est correctement diffusé.

    wget myweb.linuxconfig.org
    

  12. Sécurisation d’Apache avec Let’s Encrypt : Facultatif : Sécurisez votre site avec un certificat SSL Let’s Encrypt gratuit. Cela fournit un cryptage pour votre site Web, protégeant ainsi les données de vos visiteurs.

    sudo apt install certbot python3-certbot-apache
    sudo certbot --apache
    

    La commande sudo apt install certbot python3-certbot-apache installe 'certbot' et son plugin Apache sur le système. 'Certbot' est un outil gratuit et automatisé conçu pour obtenir des certificats SSL auprès de Let’s Encrypt, une autorité de certification gratuite. Le plug-in Apache, 'python3-certbot-apache', est spécifiquement utilisé pour configurer les certificats SSL sur les serveurs Apache. Après l’installation, la commande sudo certbot --apache est exécutée. Celui-ci exécute 'certbot' avec le plugin Apache, qui non seulement obtient le certificat SSL de Let’s Encrypt, mais configure également automatiquement Apache pour utiliser ce certificat, activant HTTPS sur le serveur.

  13. Testez le site Web Secure SSL : à ce stade, le serveur Web Apache2 doit automatiquement rediriger toutes les requêtes HTTP vers le port HTTPS. Testez votre site Web et confirmez qu’il fonctionne sur un port http SSL sécurisé.

  14. Renforcez la sécurité Apache : Enfin, renforcez votre installation Apache en modifiant le fichier de configuration Apache. Cela inclut la désactivation des demandes de trace, le masquage de la version d’Apache et la désactivation des signatures de serveur.

    sudo nano /etc/apache2/apache2.conf

    Ajoutez ou modifiez les lignes suivantes :

    TraceEnable Off
    ServerTokens Prod
    ServerSignature Off
    

    Les directives de configuration Apache TraceEnable Off, ServerTokens Prod et ServerSignature Off sont importantes pour améliorer la sécurité du serveur. TraceEnable Off désactive la méthode de requête HTTP TRACE, empêchant ainsi toute attaque XST (Cross-Site Tracing). ServerTokens Prod limite la quantité d’informations (en particulier, la version du serveur et le type de système d’exploitation) qui sont envoyées dans les en-têtes de réponse du serveur, réduisant ainsi l’exposition des informations à des attaquants potentiels. ServerSignature Off limite davantage la fuite d’informations en supprimant la version du serveur des pages d’erreur et des documents générés par le serveur. Collectivement, ces paramètres sont cruciaux pour masquer les détails du serveur qui pourraient autrement être exploités par les attaquants dans l’élaboration d’attaques ciblées.

    En plus des directives de configuration TraceEnable Off, ServerTokens Prod et ServerSignature Off, vous pouvez envisager d’ajouter les paramètres suivants pour améliorer encore la sécurité et les performances de votre serveur Apache. Vous pouvez ajouter à la section .htaccess, httpd.conf ou VirtualHost :

    L’en-tête définit toujours X-Content-Type-Options « nosniff » : cet en-tête empêche les navigateurs d’effectuer un reniflage de type MIME, ce qui peut réduire l’exposition aux attaques de téléchargement intempestif.

    L’en-tête définit toujours X-Frame-Options « SAMEORIGIN » : Ce paramètre empêche le détournement de clic en indiquant au navigateur de ne pas autoriser l’affichage de la page dans un cadre à moins qu’elle ne soit demandée à partir de la même origine.

    L’en-tête définit toujours X-XSS-Protection « 1 ; mode=block » : cela active le filtre XSS (Cross-Site Scripting) intégré à la plupart des navigateurs Web récents et lui indique de bloquer les réponses contenant des attaques détectées.

    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 : cette ligne désactive les protocoles SSL/TLS plus anciens et moins sécurisés (SSLv3, TLSv1 et TLSv1.1) et n’autorise que les protocoles plus sécurisés, réduisant ainsi le risque d’attaques de rétrogradation de protocole.

    SSLCipherSuite HIGH :!aNULL :! MD5 : il définit une suite de chiffrement solide pour les connexions SSL/TLS, qui définit les algorithmes de chiffrement utilisés.

    L’ajout de ces paramètres renforce la sécurité globale en atténuant plusieurs vulnérabilités Web courantes et en garantissant que la communication avec votre serveur reste cryptée et sécurisée. N’oubliez pas de redémarrer Apache après avoir effectué ces modifications pour les appliquer.

    Enregistrez et quittez, puis redémarrez Apache

    sudo systemctl restart apache2
    

Conclusion

En suivant ces étapes, vous avez réussi à configurer un serveur Apache sécurisé sur Ubuntu 24.04. Cette configuration fournit une base solide pour l’hébergement de votre site Web, garantissant à la fois la fonctionnalité et la sécurité. N’oubliez pas de maintenir votre serveur à jour et de revoir périodiquement vos paramètres de sécurité pour maintenir une présence Web robuste et sécurisée.

Articles connexes: