Guide technique — Serveur Web

Installation &
Configuration Apache2

Apache HTTP Server — mise en place d'un VirtualHost, configuration htaccess avec authentification, gestion des utilisateurs et modules X-Forwarded-For.

Auteur
EHAVOX
Mise à jour
2025
Système
Debian / Ubuntu
Sommaire
01

Installation du service Apache2

Sur Debian / Ubuntu, installez le paquet depuis les dépôts officiels :

bash
sudo apt update
sudo apt install apache2 -y

Vérifier que le service est actif :

bash
sudo systemctl status apache2
02

VirtualHost & configuration

Le fichier de configuration par défaut se trouve ici :

path
/etc/apache2/sites-available/000-default.conf

Créez votre propre fichier de configuration à partir du modèle :

bash
sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mon-site.conf
sudo nano /etc/apache2/sites-available/mon-site.conf

Exemple de VirtualHost complet avec authentification htaccess et support X-Forwarded-For (pour LXC/Nginx) :

apache2.conf
<VirtualHost *:80>
    ServerAdmin    webmaster@localhost
    DocumentRoot   /var/www/html

    # X-Forwarded-For — uniquement si derrière un reverse proxy (LXC/Nginx)
    RemoteIPHeader         X-Forwarded-For
    RemoteIPTrustedProxy   127.0.0.1
    RemoteIPTrustedProxy   ip_du_reverse_proxy

    <Directory "/var/www/html/">
        AuthName      "Connexion_au_Panel"
        AuthType      Basic
        AuthUserFile  /chemin/absolu/vers/mes.mdp
        Require       valid-user
    </Directory>
</VirtualHost>
Info
Les lignes RemoteIPHeader et RemoteIPTrustedProxy sont facultatives. Elles ne sont utiles que si Apache est derrière un reverse proxy (Nginx ou LXC).

Activer votre site et désactiver le site par défaut :

bash
sudo a2ensite mon-site.conf
sudo a2dissite 000-default.conf
03

Authentification htaccess

Créez le fichier de mots de passe avec le premier utilisateur :

bash
echo user:$(mkpasswd mdp_de_user) > mes.mdp
Attention
Si la commande mkpasswd est introuvable, installez le paquet whois qui la fournit :

sudo apt install whois -y

Pour ajouter des utilisateurs supplémentaires au fichier (sans l'écraser) :

bash
# Le double >> ajoute à la suite sans écraser le fichier existant
echo user2:$(mkpasswd mdp_de_user2) >> mes.mdp
Info
Le chemin du fichier mes.mdp doit correspondre exactement à la valeur de AuthUserFile dans votre VirtualHost. Utilisez un chemin absolu.
04

Modules & redémarrage

Si vous utilisez le support X-Forwarded-For, activez les modules nécessaires :

bash
# Activer les modules requis pour X-Forward, réécriture et headers
sudo a2enmod rewrite remoteip headers

Après toute modification, redémarrez Apache pour appliquer les changements :

bash
sudo systemctl restart apache2

Pour tester la syntaxe de la configuration avant de redémarrer :

bash
sudo apache2ctl configtest
Attention
Toujours lancer apache2ctl configtest avant de redémarrer le service pour s'assurer qu'il n'y a pas d'erreur de syntaxe dans vos fichiers .conf.
05

Astuces & sécurisation

  • Si votre serveur est accessible publiquement, hébergez Apache dans un container LXC puis redirigez les requêtes via Nginx en reverse proxy — cela isole Apache du reste du système hôte.
  • Sécurisez les connexions avec Certbot pour obtenir un certificat SSL/TLS gratuit et forcer le trafic en HTTPS.
  • Combinez avec Fail2ban pour bloquer automatiquement les IP qui échouent trop souvent à l'authentification htaccess.
  • Désactivez le listing des répertoires en ajoutant Options -Indexes dans votre bloc <Directory> pour éviter d'exposer le contenu de vos dossiers.
Astuce
Consultez les guides LXC et Nginx pour mettre en place une architecture complète Apache → Nginx → Internet avec isolation réseau.