Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
serveur_hebergement:apache2:proteger_une_page_web [2022/05/10 13:52] – créée fate | serveur_hebergement:apache2:proteger_une_page_web [2023/08/08 14:00] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Protéger une page web ====== | ====== Protéger une page web ====== | ||
- | On va voir dans cet article comment protéger l’accès à une page web (phpsysinfo par exemple) par mot de passe car toutes les interfaces web n’ont pas toujours de fonction native pour protéger l’accès. | + | On va voir dans cet article comment protéger l’accès à une page web (phpsysinfo par exemple) par mot de passe, car toutes les interfaces web n’ont pas toujours de fonction native pour protéger l’accès. |
===== Création du fichier Digest ===== | ===== Création du fichier Digest ===== | ||
Ligne 7: | Ligne 7: | ||
On va utiliser une authentification Digest qui permettra de sécuriser la connexion le temps de l’échange de l' | On va utiliser une authentification Digest qui permettra de sécuriser la connexion le temps de l’échange de l' | ||
- | Tout d’abord, il faut activer le module Digest | + | Tout d’abord, il faut activer le module Digest |
<code bash> | <code bash> | ||
Ligne 25: | Ligne 25: | ||
Maintenant que notre fichier htdigest est créé, il faut dire à Apache de l’utiliser. | Maintenant que notre fichier htdigest est créé, il faut dire à Apache de l’utiliser. | ||
- | ===== Configuration | + | ===== Configuration |
- | Allez dans le répertoire / | + | Allez dans le répertoire / |
- | On va garder l’exemple | + | Petite parenthèse. Si le répertoire que vous voulez protéger ne se trouve pas dans le DocumentRoot indiqué dans le fichierde config, il faudra utiliser un Alias. Il vous suffit |
- | Voici à quoi ressemble mon fichier 000-default-ssl.conf : | + | Ca donnerait par exemple <code apache> |
- | <code apache>< | + | Ajoutez les lignes suivantes dans votre virtualhost pour protéger l' |
- | < | + | |
- | ServerAdmin webmaster@localhost | + | |
- | DocumentRoot /var/www | + | <code apache>< |
- | + | AuthType Digest | |
- | | + | AuthName " |
- | | + | AuthDigestDomain |
- | | + | AuthDigestProvider file |
- | </ | + | |
- | < | + | Require valid-user |
- | Options Indexes FollowSymLinks MultiViews | + | </Location></ |
- | AllowOverride None | + | |
- | Order allow, | + | |
- | allow from all | + | |
- | </ | + | |
- | + | ||
- | # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, | + | |
- | # error, crit, alert, emerg. | + | |
- | # It is also possible to configure the loglevel for particular | + | |
- | # modules, e.g. | + | |
- | LogLevel warn | + | |
- | + | ||
- | ErrorLog ${APACHE_LOG_DIR}/error.log | + | |
- | CustomLog ${APACHE_LOG_DIR}/ | + | |
- | + | ||
- | SSLEngine on | + | |
- | + | ||
- | SSLCertificateFile | + | |
- | | + | |
- | + | ||
- | < | + | |
- | SSLOptions +StdEnvVars | + | |
- | </ | + | |
- | < | + | |
- | SSLOptions +StdEnvVars | + | |
- | </Directory> | + | |
- | + | ||
- | BrowserMatch "MSIE [2-6]" \ | + | |
- | nokeepalive ssl-unclean-shutdown \ | + | |
- | downgrade-1.0 force-response-1.0 | + | |
- | # MSIE 7 and newer should be able to use keepalive | + | |
- | BrowserMatch "MSIE [17-9]" | + | |
- | </ | + | |
- | </ | + | |
- | + | ||
- | Le répertoire racine pour ce fichier est indiqué par “DocumentRoot /var/www” et est donc /var/www. | + | |
- | Il faut donc que le répertoire que vous souhaitez protéger par mot de passe se trouve dans /var/www. | + | |
- | + | ||
- | Petite parenthèse. Si votre répertoire ne se trouve pas dans /var/www il faudra utiliser un Alias. Il vous suffit de rajouter la ligne <code apache> | + | |
- | Ca donnerai par exemple <code apache> | + | |
- | + | ||
- | On va rajouter les lignes suivantes après la dernière balise </ | + | |
+ | Si vous souhaitez protéger que l' | ||
<code apache>< | <code apache>< | ||
| | ||
- | | + | |
| | ||
| | ||
| | ||
| | ||
- | | ||
</ | </ | ||
- | Quelques | + | Quelques |
- | * Location indique le répertoire concerné | + | * Location indique le répertoire concerné |
* AuthType indique le type d’authentification. | * AuthType indique le type d’authentification. | ||
* AuthName doit correspondre au Realm que vous avez choisi lors de la création de l’utilisateur avec la commande htdigest. Ca permettra à Apache de savoir quel utilisateur choisir dans le fichier passwords. | * AuthName doit correspondre au Realm que vous avez choisi lors de la création de l’utilisateur avec la commande htdigest. Ca permettra à Apache de savoir quel utilisateur choisir dans le fichier passwords. | ||
* AuthDigestDomain doit avoir le chemin complet du répertoire à protéger suivi de l’url de l’interface web (ou du répertoire dans ce cas où vous voulez protéger un répertoire). | * AuthDigestDomain doit avoir le chemin complet du répertoire à protéger suivi de l’url de l’interface web (ou du répertoire dans ce cas où vous voulez protéger un répertoire). | ||
* AuthUserFile doit être renseigné avec le chemin du fichier contenant l’utilisateur et le mot de passe. | * AuthUserFile doit être renseigné avec le chemin du fichier contenant l’utilisateur et le mot de passe. | ||
- | * SetEnv R_ENV doit lui aussi être renseigné avec le chemin complet du répertoire à protéger. | ||
Il vous reste plus qu’à sauvegarder et à redémarrer Apache. | Il vous reste plus qu’à sauvegarder et à redémarrer Apache. | ||
Ligne 111: | Ligne 67: | ||
Si tout a fonctionné, | Si tout a fonctionné, | ||
- | ===== Pensez à protéger l’accès | + | ===== Pensez à rediriger les connexions |
- | Dans mon cas, toutes les connexions http sont redirigées vers le https (voir ici comment faire), donc je n’ai besoin | + | Dans mon cas, toutes les connexions http sont redirigées vers le https, donc je n’ajoute la protection |
- | Idem si vous accéder à votre interface via un nom de domaine. Si vous n’avez pas de redirection https pensez bien à rajouter cette modif dans le vhost du port 80 ET dans le vhost du port 443. | + | |