I – Objectif
Ce document décrit l’installation et la configuration du service Apache2 sur Ubuntu Server.
Apache permet d’héberger un ou plusieurs sites web grâce au système de VirtualHosts.
II – Prérequis
● Ubuntu Server 20.04.6 LTS
● Ports ouverts : 80/tcp (HTTP)
● (Optionnel) Un utilisateur dédié pour Apache
III – Procedure
1) Installation
sudo apt update
sudo apt install apache2 -y
Vérifier que le service tourne :
systemctl status apache2
IV – Arborescence importante
Fichier principal:
/etc/apache2/apache2.conf
Ports d'écoute :
/etc/apache2/port.conf
Example : Listen 80
Répertoires utiles :
• conf-available : fichiers de configuration disponibles
• mods-available : modules Apache disponibles
• sites-available : VirtualHosts disponibles
Apache active un élément en créant un lien symbolique vers :
• conf-enabled
• mods-enabled
• sites-enabled
V – Gestion des VirtualHosts
1) Création
Créer un fichier dans :
/etc/apache2/sites-available/mon_site.conf
Exemple :
ServerName monsite.local
DocumentRoot /var/www/monsite
2) Activer le site
$ sudo a2ensite nom_site
$ sudo systemctl reload apache2
Désactiver :
$ sudo a2dissite mon_site.conf
VI – Sécurisation d’apache
1) Cacher les informations du serveur
Editer :
/etc/apache2/conf-available/security.conf
Modifier :
• ServerTokens Prod
• ServerSignature Off
$ sudo systemctl reload apache2
2) Désactiver les modules inutiles
Lister les modules actifs :
apache2ctl -M
Désactiver un module :
sudo a2dismod module_name
3) Restreindre l’accès à un VirtualHost
Dans le VirtualHost :
AuthName "Accès restreint"
AuthType Basic
AuthBasicProvider file
AuthUserFile /etc/apache2/passwords
Require valid-user
Créer le fichier de mots de passe :
$ sudo htpasswd -c /etc/apache2/passwords monuser
Restreindre par IP :
Require ip 192.168.29.3
VII – Authentification LDAP
1) Activer le module LDAP
sudo a2enmod authnz_ldap
sudo a2enmod ldap
sudo systemctl reload apache2
2) Exemple de configuration dans un VirtualHost :
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL "ldap://monserveur.local/ou=users,dc=entreprise,dc=local?uid"
Require valid-user